summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GCC-README.md129
-rw-r--r--exception_lists/check_rtime3
-rw-r--r--exception_lists/cstyle166
-rw-r--r--exception_lists/hdrchk70
-rw-r--r--usr/src/Makefile5
-rw-r--r--usr/src/Makefile.lint1
-rw-r--r--usr/src/Makefile.master34
-rw-r--r--usr/src/Makefile.master.648
-rw-r--r--usr/src/cmd/Makefile1
-rw-r--r--usr/src/cmd/Makefile.check1
-rw-r--r--usr/src/cmd/dtrace/test/tst/Makefile.com8
-rw-r--r--usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpu.h19
-rw-r--r--usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpuerr.c34
-rw-r--r--usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_main.c1
-rw-r--r--usr/src/cmd/fm/modules/sun4u/Makefile2
-rw-r--r--usr/src/cmd/fm/modules/sun4u/fps-transport/Makefile36
-rw-r--r--usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.c178
-rw-r--r--usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.conf25
-rw-r--r--usr/src/cmd/fm/modules/sun4u/fps-transport/fpst-defines.h60
-rw-r--r--usr/src/cmd/fps/Makefile70
-rw-r--r--usr/src/cmd/fps/compilercheck/Makefile55
-rw-r--r--usr/src/cmd/fps/compilercheck/fps_compiler_check.c184
-rw-r--r--usr/src/cmd/fps/fpsd/Makefile83
-rw-r--r--usr/src/cmd/fps/fpsd/fpsd.h177
-rw-r--r--usr/src/cmd/fps/fpsd/fpsd.xml119
-rw-r--r--usr/src/cmd/fps/fpsd/fpsd_esutil.c479
-rw-r--r--usr/src/cmd/fps/fpsd/fpsd_log.c155
-rw-r--r--usr/src/cmd/fps/fpsd/fpsd_main.c1246
-rw-r--r--usr/src/cmd/fps/fpsd/fpsd_sched.c761
-rw-r--r--usr/src/cmd/fps/fpsd/fpsd_util.c137
-rw-r--r--usr/src/cmd/fps/fpsd/messages.h325
-rw-r--r--usr/src/cmd/fps/fptest/Makefile182
-rw-r--r--usr/src/cmd/fps/fptest/Makefile.rules147
-rw-r--r--usr/src/cmd/fps/fptest/benchmarks.c769
-rw-r--r--usr/src/cmd/fps/fptest/cbbcopy.c213
-rw-r--r--usr/src/cmd/fps/fptest/cheetah_sdc.c130
-rw-r--r--usr/src/cmd/fps/fptest/cheetah_sdc.h157
-rw-r--r--usr/src/cmd/fps/fptest/cheetah_sdc.s271
-rw-r--r--usr/src/cmd/fps/fptest/externs.h153
-rw-r--r--usr/src/cmd/fps/fptest/fp.h284
-rw-r--r--usr/src/cmd/fps/fptest/fps_defines.h67
-rw-r--r--usr/src/cmd/fps/fptest/fps_ereport.h66
-rw-r--r--usr/src/cmd/fps/fptest/fps_ereport_mod.c491
-rw-r--r--usr/src/cmd/fps/fptest/fptest.c2596
-rw-r--r--usr/src/cmd/fps/fptest/fptest.h590
-rw-r--r--usr/src/cmd/fps/fptest/fpu_fsr_test.c708
-rw-r--r--usr/src/cmd/fps/fptest/fpu_if64.s1381
-rw-r--r--usr/src/cmd/fps/fptest/fpu_test64.s2052
-rw-r--r--usr/src/cmd/fps/fptest/fputest.c4385
-rw-r--r--usr/src/cmd/fps/fptest/fsr_test.s229
-rw-r--r--usr/src/cmd/fps/fptest/linpack.c521
-rw-r--r--usr/src/cmd/fps/fptest/linpack.h171
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64_sos10.h6139
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64_sos8.h6137
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64_ss12.h6125
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64_ss12u1.h6113
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64v9b_sos10.h6137
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64v9b_sos11.h6139
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64v9b_sos8.h6136
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64v9b_ss12.h6126
-rw-r--r--usr/src/cmd/fps/fptest/singdoub64v9b_ss12u1.h6115
-rw-r--r--usr/src/cmd/fps/fptest/util.c98
-rw-r--r--usr/src/cmd/fps/fptest/visfps.il98
-rw-r--r--usr/src/cmd/fps/include/fpsapi.h86
-rw-r--r--usr/src/cmd/krb5/kadmin/gui/native/Kadmin.c44
-rw-r--r--usr/src/cmd/krb5/krb5kdc/Makefile5
-rw-r--r--usr/src/cmd/lms/Makefile3
-rw-r--r--usr/src/cmd/mdb/common/libstandctf/mapfile1
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs2
-rw-r--r--usr/src/cmd/vi/port/Makefile3
-rw-r--r--usr/src/cmd/vi/port/ex_cmdsub.c2
-rw-r--r--usr/src/common/ctf/ctf_open.c10
-rw-r--r--usr/src/common/openssl/crypto/asn1/asn1.h63
-rw-r--r--usr/src/common/openssl/crypto/pem/pem.h24
-rw-r--r--usr/src/common/openssl/crypto/pem/pem_lib.c4
-rw-r--r--usr/src/grub/grub-0.97/Makefile.solaris.defs8
-rw-r--r--usr/src/lib/libbc/libc/sys/common/uname.c30
-rw-r--r--usr/src/lib/libc/Makefile2
-rw-r--r--usr/src/lib/libc/inc/base_inlines.h67
-rw-r--r--usr/src/lib/libc/inc/thr_inlines.h240
-rw-r--r--usr/src/lib/libc/port/fp/floatundidf.c (renamed from usr/src/cmd/fps/fptest/fpstestmsg.h)39
-rw-r--r--usr/src/lib/libc/port/fp/floatundisf.c (renamed from usr/src/cmd/fps/fptest/iflush.s)50
-rw-r--r--usr/src/lib/libc/port/mapfile-vers2
-rw-r--r--usr/src/lib/libc/sparc/Makefile.com7
-rw-r--r--usr/src/lib/libc/sparc/crt/_rtld.c11
-rw-r--r--usr/src/lib/libc/sparcv9/Makefile.com5
-rw-r--r--usr/src/lib/libc_db/common/thread_db.c3
-rw-r--r--usr/src/lib/libctf/common/mapfile-vers1
-rw-r--r--usr/src/lib/libdns_sd/java/com/apple/dnssd/DNSSDRecordRegistrar.java20
-rw-r--r--usr/src/lib/libdtrace/common/dt_module.c11
-rw-r--r--usr/src/lib/libkmsagent/Makefile.com3
-rw-r--r--usr/src/lib/libkmsagent/amd64/Makefile9
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgent.cpp17
-rw-r--r--usr/src/lib/libkmsagent/sparcv9/Makefile9
-rw-r--r--usr/src/lib/libnisdb/db_dictionary.cc16
-rw-r--r--usr/src/lib/libnisdb/db_mindex.cc2
-rw-r--r--usr/src/lib/libnisdb/db_mindex2.cc20
-rw-r--r--usr/src/lib/libnisdb/db_mindex3.cc14
-rw-r--r--usr/src/lib/libnisdb/db_table.cc14
-rw-r--r--usr/src/lib/libnisdb/ldap_glob.c6
-rw-r--r--usr/src/lib/libnisdb/ldap_glob.h6
-rw-r--r--usr/src/lib/libnisdb/ldap_util.c20
-rw-r--r--usr/src/lib/libnisdb/ldap_util.h21
-rw-r--r--usr/src/lib/libnisdb/nis_db.cc53
-rw-r--r--usr/src/lib/libnisdb/nis_parse_ldap_yp_util.c288
-rw-r--r--usr/src/lib/libtsol/common/call_labeld.c12
-rw-r--r--usr/src/lib/lvm/libmeta/common/meta_metad_subr.c113
-rw-r--r--usr/src/lib/lvm/libmeta/common/meta_namespace.c104
-rw-r--r--usr/src/lib/scsi/libses/Makefile.defs4
-rw-r--r--usr/src/lib/scsi/libsmp/Makefile.com4
-rw-r--r--usr/src/lib/sun_fc/Makefile.com5
-rw-r--r--usr/src/lib/sun_fc/amd64/Makefile2
-rw-r--r--usr/src/lib/sun_fc/sparcv9/Makefile2
-rw-r--r--usr/src/man/man1m/Makefile1
-rw-r--r--usr/src/man/man1m/fpsd.1m103
-rw-r--r--usr/src/pkg/manifests/developer-build-onbld.mf1
-rw-r--r--usr/src/pkg/manifests/service-fault-management.mf4
-rw-r--r--usr/src/pkg/manifests/system-floating-point-scrubber.mf39
-rw-r--r--usr/src/psm/stand/boot/sparc/common/bootops.c4
-rw-r--r--usr/src/psm/stand/bootblks/ufs/i386/Makefile6
-rw-r--r--usr/src/stand/lib/fs/hsfs/hsfsops.c5
-rw-r--r--usr/src/stand/lib/fs/ufs/ufsops.c4
-rw-r--r--usr/src/tools/ctf/Makefile3
-rw-r--r--usr/src/tools/ctf/common/ctf_headers.h13
-rw-r--r--usr/src/tools/ctf/common/utils.h3
-rw-r--r--usr/src/tools/ctf/ctfstrip/Makefile45
-rw-r--r--usr/src/tools/ctf/ctfstrip/ctfstrip.c155
-rw-r--r--usr/src/tools/ctf/cvt/ctftools.h13
-rw-r--r--usr/src/tools/ctf/dwarf/Makefile.com16
-rw-r--r--usr/src/tools/ctf/dwarf/common/config.h141
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf.h1505
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_abbrev.c195
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_abbrev.h20
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_addr_finder.c679
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_alloc.c1292
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_alloc.h26
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_arange.c784
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_arange.h16
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_base_types.h62
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.c834
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.h11
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_elf_access.c976
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_elf_access.h55
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_error.c184
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_error.h8
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_form.c885
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_frame.c3874
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_frame.h274
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_frame2.c1540
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_frame3.c290
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_funcs.c77
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_funcs.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_global.c645
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_global.h42
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_harmless.c226
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_harmless.h31
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_incl.h21
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_init_finish.c1056
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_leb.c104
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_line.c2637
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_line.h185
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_line2.c110
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_loc.c1353
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_loc.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_macro.c580
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_macro.h12
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_names.c2408
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_names.h34
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_opaque.h224
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_original_elf_init.c209
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_print_lines.c1073
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_pubtypes.c138
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_query.c754
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_ranges.c171
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_sort_line.c1000
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_string.c45
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_stubs.c10
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_types.c80
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_types.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_util.c470
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_util.h124
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_vars.c80
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_vars.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_weaks.c76
-rw-r--r--usr/src/tools/ctf/dwarf/common/dwarf_weaks.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/libdwarf.h2892
-rw-r--r--usr/src/tools/ctf/dwarf/common/libdwarfdefs.h30
-rw-r--r--usr/src/tools/ctf/dwarf/common/malloc_check.c339
-rw-r--r--usr/src/tools/ctf/dwarf/common/malloc_check.h62
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_alloc.c153
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_alloc.h12
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_arange.c273
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_arange.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_die.c310
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_die.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_encode_nm.c74
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_encode_nm.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_error.c52
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_error.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_expr.c415
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_expr.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_finish.c16
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_forms.c871
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_frame.c660
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_frame.h16
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_funcs.c14
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_incl.h33
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_init.c182
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_line.c244
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_line.h15
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_macinfo.c324
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_macinfo.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_opaque.h153
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_pubnames.c14
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_reloc.c163
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_reloc.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_reloc_stream.c327
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_reloc_stream.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.c321
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_section.c3069
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_section.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_types.c188
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_types.h10
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_util.h89
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_vars.c12
-rw-r--r--usr/src/tools/ctf/dwarf/common/pro_weaks.c14
-rw-r--r--usr/src/tools/cw/Makefile10
-rw-r--r--usr/src/tools/cw/cw.12
-rw-r--r--usr/src/tools/cw/cw.c2
-rw-r--r--usr/src/tools/findunref/exception_list.open6
-rw-r--r--usr/src/uts/Makefile.uts1
-rw-r--r--usr/src/uts/common/avs/ns/dsw/dsw_dev.c23
-rw-r--r--usr/src/uts/common/ctf/mapfile1
-rw-r--r--usr/src/uts/common/fs/udfs/udf_alloc.c128
-rw-r--r--usr/src/uts/common/fs/udfs/udf_inode.c2
-rw-r--r--usr/src/uts/common/fs/udfs/udf_vnops.c2
-rw-r--r--usr/src/uts/common/gssapi/gssd_clnt_stubs.c282
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_eth.c2
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_lv.c4
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/qlge/qlge_dbg.c12
-rw-r--r--usr/src/uts/common/sys/ccompile.h15
-rw-r--r--usr/src/uts/common/sys/ctf_api.h1
-rw-r--r--usr/src/uts/common/sys/pathconf.h4
-rw-r--r--usr/src/uts/i86pc/dboot/dboot_startkern.c12
-rw-r--r--usr/src/uts/i86pc/os/cpr_impl.c14
-rw-r--r--usr/src/uts/i86pc/os/mp_pc.c3
-rw-r--r--usr/src/uts/intel/amd64/sys/privregs.h8
-rw-r--r--usr/src/uts/intel/asm/atomic.h48
-rw-r--r--usr/src/uts/intel/asm/bitmap.h65
-rw-r--r--usr/src/uts/intel/asm/byteorder.h25
-rw-r--r--usr/src/uts/intel/asm/clock.h9
-rw-r--r--usr/src/uts/intel/asm/cpu.h30
-rw-r--r--usr/src/uts/intel/asm/cpuvar.h6
-rw-r--r--usr/src/uts/intel/asm/htable.h18
-rw-r--r--usr/src/uts/intel/asm/mmu.h21
-rw-r--r--usr/src/uts/intel/asm/sunddi.h60
-rw-r--r--usr/src/uts/intel/asm/thread.h6
-rw-r--r--usr/src/uts/intel/dtrace/fbt.c5
-rw-r--r--usr/src/uts/intel/kdi/kdi_idt.c3
-rw-r--r--usr/src/uts/intel/sys/segments.h2
-rw-r--r--usr/src/uts/sfmmu/vm/hat_sfmmu.c2
-rw-r--r--usr/src/uts/sparc/Makefile.sparc.shared2
-rw-r--r--usr/src/uts/sparc/asm/cpu.h9
-rw-r--r--usr/src/uts/sparc/asm/flush.h3
-rw-r--r--usr/src/uts/sparc/asm/sunddi.h5
-rw-r--r--usr/src/uts/sparc/asm/thread.h9
-rw-r--r--usr/src/uts/sparc/dtrace/fbt.c5
-rw-r--r--usr/src/uts/sun4u/io/i2c/clients/lm75.c2
-rw-r--r--usr/src/uts/sun4u/io/pci/pcisch.c5
-rw-r--r--usr/src/uts/sun4u/serengeti/io/sbdp_cpu.c3
-rw-r--r--usr/src/uts/sun4u/starcat/io/mboxsc.c7
-rw-r--r--usr/src/uts/sun4u/starcat/io/schpc.c7
-rw-r--r--usr/src/uts/sun4u/starcat/sys/domaind.h23
-rw-r--r--usr/src/uts/sun4u/starcat/sys/sc_cvcio.h4
-rw-r--r--usr/src/uts/sun4u/starcat/sys/schpc_msg.h3
-rw-r--r--usr/src/uts/sun4u/starfire/io/drmach.c3
-rw-r--r--usr/src/uts/sun4u/starfire/io/idn.c5
-rw-r--r--usr/src/uts/sun4u/starfire/sys/idn.h3
-rw-r--r--usr/src/uts/sun4u/starfire/sys/idn_smr.h5
-rw-r--r--usr/src/uts/sun4u/vm/zulu_hat.c151
281 files changed, 26998 insertions, 90613 deletions
diff --git a/GCC-README.md b/GCC-README.md
new file mode 100644
index 0000000000..012284aef7
--- /dev/null
+++ b/GCC-README.md
@@ -0,0 +1,129 @@
+
+# Illumos GCC 4
+
+## Intro
+
+This is a work in progress that may or may not work (or work well) at any
+given time. If you encounter problems you think are likely my fault, send me
+email describing them in detail.
+
+This has booted to login and done fairly basic work on 32bit and 64bit x86 in
+qemu, VirtualBox (32bit), and a random whitebox Athlon 64. And on a Sun-Fire
+V250 on sun4u. It has been tried nowhere else.
+
+## What you need
+
+### Patched GCC 4.4.4
+
+This is the GCC available at http://github.com/richlowe/gcc on the il-4_4_4
+branch. It is patched in numerous ways, a stock GCC will most certainly not
+work.
+
+I've made binary tarballs available, they assume a `--prefix` of
+`/opt/gcc/4.4.4` (unpack them from `/opt`)
+
+i386: http://richlowe.openindiana.org/~richlowe/il-gcc-444-i386.tar.bz2
+sparc: http://richlowe.openindiana.org/~richlowe/il-gcc-444-sparc.tar.bz2
+
+### Further patch GCC
+
+Unfortunately, we need to bake appropriate runpaths for libstdc++ and libgcc_s
+into the GCC spec, at least at present, so you need to further patch GCC to
+reflect the location in which you're going to install it.
+
+Choose a prefix in which to install GCC (the one you'll give to `configure
+--prefix`), I'm using /opt/gcc/4.4.4.
+
+Now, look at revision a1583073 (`git show a1583073`). In every place that
+changeset added a /usr/sfw/lib path, adding a matching path based on your
+prefix _before_ the SFW path (you need your libcc_s to be found first).
+
+I'm hoping to find a way to avoid doing this, but at present haven't come up
+with one that works in every case.
+
+### Build GCC
+
+I've been using a script to make this easier on myself
+
+```bash
+#!/bin/ksh -e
+VER=$1
+
+if [[ -z $VER ]]; then
+ print -u2 "Usage: build.sh <Version>"
+ exit 2
+fi
+
+export PATH="/opt/dejagnu/bin:/opt/SUNWspro/bin:"
+PATH="$PATH:/usr/gnu/bin:/usr/sfw/bin"
+PATH="$PATH:/usr/bin:/usr/ccs/bin"
+
+export CC=/usr/sfw/bin/gcc
+export CFLAGS="-g -O2"
+
+AS_OPTIONS=""
+if [[ $(mach) == "sparc" ]]; then
+ CFLAGS="$CFLAGS -fkeep-inline-functions"
+ AS_OPTIONS="--without-gnu-as --with-as=/usr/ccs/bin/as"
+else
+ AS_OPTIONS="--with-gnu-as --with-as=/usr/sfw/bin/as"
+fi
+
+export STAGE1_CFLAGS=$CFLAGS
+export CFLAGS_FOR_TARGET=$CFLAGS
+
+GMSGFMT=/usr/gnu/bin/msgfmt \
+../../configure --prefix=/opt/gcc/$VER $AS_OPTIONS \
+ --with-ld=/usr/bin/ld \
+ --without-gnu-ld \
+ --enable-languages="c,c++,objc" \
+ --enable-shared \
+ --with-mpfr-include=/usr/include/mpfr \
+ --with-gmp-include=/usr/include/gmp
+
+gmake -j8 CFLAGS="$CFLAGS" STAGE1_CFLAGS="$CFLAGS" \
+ CFLAGS_FOR_TARGET="$CFLAGS" bootstrap
+```
+
+Then:
+
+```bash
+mkdir -p builds/il-444 && cd builds/il-444
+../../build.sh 4.4.4
+```
+
+If you wish to run the tests, you'll need to install expect, then build and
+install dejagnu and run 'gmake check-gcc'. It's most useful to compare the
+test results of an unpatched build and a patch build at the same GCC revision
+(the gcc-4.4.4 tag, v. the il-4_4_4 branch for instance).
+
+## Build Illumos
+
+As part of this, I've (at least temporarily) adjusted the build infrastruture
+to support building with either version of GCC as either shadow or primary
+compiler. This adds a little complication to building with GCC4
+
+In addition to your normal settings in your env file you should add
+
+```bash
+source ./illumos.sh # Source your normal environment file
+export GCC_ROOT=/opt/gcc/4.4.4; # Where to find GCC4.x
+export CW_GCC_DIR=${GCC_ROOT}/bin; # A temporary hack to allow bootstrap of cw(1)
+export __GNUC=""; # Use GCC as the primary compiler
+export __GNUC4=""; # Use GCC4 specific flags
+```
+
+This should be sufficient to have GCC 4 used as the primary throughout the
+build (check nightly.log, and/or run `mcs -p foo.o` to check individual
+objects.
+
+## Illumos Live is really helpful
+
+A good and convenient way to test stuff is to use Joyent's illumos-live
+(http://github.com/joyent/illumos-live). My fork contains some additional
+changes to make it mildly more convenient if you don't have netbooting
+infrastructure.
+
+Just make sure that the projects/illumos tree is a clone of this branch, edit
+the generated illumos.sh env file as in "Build Illumos" above, and build it
+following their directions.
diff --git a/exception_lists/check_rtime b/exception_lists/check_rtime
index 012b493c94..bde10090df 100644
--- a/exception_lists/check_rtime
+++ b/exception_lists/check_rtime
@@ -159,6 +159,7 @@ UNREF_OBJ /lib.*\ of\ .*libxml2\.so\.2
UNREF_OBJ /lib.*\ of\ .*libxslt\.so\.1
UNREF_OBJ /lib.*\ of\ .*libpq\.so\.4
UNREF_OBJ /lib.*\ of\ .*libpython2\.4\.so\.1\.0
+UNREF_OBJ /libgcc_s.*\ of\ .*libstdc\+\+\.so\.6
# Unreferenced object of objects we can't change for other reasons
UNREF_OBJ /libmapmalloc\.so\.1;\ unused\ dependency\ of # interposer
@@ -167,6 +168,8 @@ UNREF_OBJ /libm\.so\.2.*\ of\ .*libstdc\+\+\.so\.6 # gcc build
UNREF_OBJ /lib.*\ of\ .*/lib/picl/plugins/ # picl
UNREF_OBJ /lib.*\ of\ .*kcfd # interposer
UNREF_OBJ /libpkcs11\.so\.1; .*\ of\ .*libkmf\.so\.1 # interposed
+UNREF_OBJ /libc\.so\.1.*\ of\ .*kldap\.so\.1 # gcc build
+
# Objects that used to contain system functionalty that has since
# migrated to libc. We preserve these libraries as pure filters for
diff --git a/exception_lists/cstyle b/exception_lists/cstyle
index 5f2d70637e..94d70f7fa0 100644
--- a/exception_lists/cstyle
+++ b/exception_lists/cstyle
@@ -936,3 +936,169 @@ usr/src/lib/libkmsagent/common/debug.h
usr/src/lib/libkmsagent/common/ieee80211_crypto.c
usr/src/lib/libkmsagent/common/k_setupssl.c
usr/src/lib/libkmsagent/common/k_setupssl.h
+usr/src/lib/libparted/common/libparted/debug.c
+usr/src/lib/libparted/common/libparted/libparted.c
+usr/src/lib/libparted/common/libparted/fs/hfs/file_plus.h
+usr/src/lib/libparted/common/libparted/fs/hfs/journal.c
+usr/src/lib/libparted/common/libparted/fs/hfs/hfs.c
+usr/src/lib/libparted/common/libparted/fs/hfs/file.h
+usr/src/lib/libparted/common/libparted/fs/hfs/advfs.h
+usr/src/lib/libparted/common/libparted/fs/hfs/advfs_plus.c
+usr/src/lib/libparted/common/libparted/fs/hfs/probe.c
+usr/src/lib/libparted/common/libparted/fs/hfs/cache.c
+usr/src/lib/libparted/common/libparted/fs/hfs/reloc_plus.c
+usr/src/lib/libparted/common/libparted/fs/hfs/reloc.c
+usr/src/lib/libparted/common/libparted/fs/hfs/advfs.c
+usr/src/lib/libparted/common/libparted/fs/hfs/advfs_plus.h
+usr/src/lib/libparted/common/libparted/fs/hfs/probe.h
+usr/src/lib/libparted/common/libparted/fs/hfs/hfs.h
+usr/src/lib/libparted/common/libparted/fs/hfs/file.c
+usr/src/lib/libparted/common/libparted/fs/hfs/journal.h
+usr/src/lib/libparted/common/libparted/fs/hfs/file_plus.c
+usr/src/lib/libparted/common/libparted/fs/hfs/reloc.h
+usr/src/lib/libparted/common/libparted/fs/hfs/reloc_plus.h
+usr/src/lib/libparted/common/libparted/fs/hfs/cache.h
+usr/src/lib/libparted/common/libparted/fs/ntfs/ntfs.c
+usr/src/lib/libparted/common/libparted/fs/ext2/interface.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_block_relocator.c
+usr/src/lib/libparted/common/libparted/fs/ext2/tune.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_inode_relocator.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_buffer.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_meta.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_fs.h
+usr/src/lib/libparted/common/libparted/fs/ext2/parted_io.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_mkfs.c
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_resize.c
+usr/src/lib/libparted/common/libparted/fs/ext2/tune.h
+usr/src/lib/libparted/common/libparted/fs/ext2/parted_io.h
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2.h
+usr/src/lib/libparted/common/libparted/fs/reiserfs/reiserfs.c
+usr/src/lib/libparted/common/libparted/fs/reiserfs/geom_dal.h
+usr/src/lib/libparted/common/libparted/fs/reiserfs/reiserfs.h
+usr/src/lib/libparted/common/libparted/fs/reiserfs/geom_dal.c
+usr/src/lib/libparted/common/libparted/fs/linux_swap/linux_swap.c
+usr/src/lib/libparted/common/libparted/fs/ufs/ufs.c
+usr/src/lib/libparted/common/libparted/fs/jfs/jfs.c
+usr/src/lib/libparted/common/libparted/fs/jfs/jfs_superblock.h
+usr/src/lib/libparted/common/libparted/fs/jfs/jfs_types.h
+usr/src/lib/libparted/common/libparted/fs/amiga/interface.c
+usr/src/lib/libparted/common/libparted/fs/amiga/apfs.h
+usr/src/lib/libparted/common/libparted/fs/amiga/amiga.c
+usr/src/lib/libparted/common/libparted/fs/amiga/affs.c
+usr/src/lib/libparted/common/libparted/fs/amiga/asfs.c
+usr/src/lib/libparted/common/libparted/fs/amiga/amiga.h
+usr/src/lib/libparted/common/libparted/fs/amiga/apfs.c
+usr/src/lib/libparted/common/libparted/fs/amiga/asfs.h
+usr/src/lib/libparted/common/libparted/fs/amiga/affs.h
+usr/src/lib/libparted/common/libparted/fs/fat/count.h
+usr/src/lib/libparted/common/libparted/fs/fat/clstdup.h
+usr/src/lib/libparted/common/libparted/fs/fat/fatio.c
+usr/src/lib/libparted/common/libparted/fs/fat/traverse.h
+usr/src/lib/libparted/common/libparted/fs/fat/bootsector.c
+usr/src/lib/libparted/common/libparted/fs/fat/resize.c
+usr/src/lib/libparted/common/libparted/fs/fat/fat.c
+usr/src/lib/libparted/common/libparted/fs/fat/table.c
+usr/src/lib/libparted/common/libparted/fs/fat/context.h
+usr/src/lib/libparted/common/libparted/fs/fat/calc.c
+usr/src/lib/libparted/common/libparted/fs/fat/fatio.h
+usr/src/lib/libparted/common/libparted/fs/fat/traverse.c
+usr/src/lib/libparted/common/libparted/fs/fat/bootsector.h
+usr/src/lib/libparted/common/libparted/fs/fat/count.c
+usr/src/lib/libparted/common/libparted/fs/fat/clstdup.c
+usr/src/lib/libparted/common/libparted/fs/fat/context.c
+usr/src/lib/libparted/common/libparted/fs/fat/calc.h
+usr/src/lib/libparted/common/libparted/fs/fat/fat.h
+usr/src/lib/libparted/common/libparted/fs/fat/table.h
+usr/src/lib/libparted/common/libparted/fs/solaris_x86/solaris_x86.c
+usr/src/lib/libparted/common/libparted/fs/xfs/platform_defs.h
+usr/src/lib/libparted/common/libparted/fs/xfs/xfs_types.h
+usr/src/lib/libparted/common/libparted/fs/xfs/xfs_sb.h
+usr/src/lib/libparted/common/libparted/fs/xfs/xfs.c
+usr/src/lib/libparted/common/libparted/filesys.c
+usr/src/lib/libparted/common/libparted/unit.c
+usr/src/lib/libparted/common/libparted/device.c
+usr/src/lib/libparted/common/libparted/labels/sun.c
+usr/src/lib/libparted/common/libparted/labels/dvh.c
+usr/src/lib/libparted/common/libparted/labels/loop.c
+usr/src/lib/libparted/common/libparted/labels/mac.c
+usr/src/lib/libparted/common/libparted/labels/dos.c
+usr/src/lib/libparted/common/libparted/labels/efi_crc32.c
+usr/src/lib/libparted/common/libparted/labels/pc98.c
+usr/src/lib/libparted/common/libparted/labels/aix.c
+usr/src/lib/libparted/common/libparted/labels/rdb.c
+usr/src/lib/libparted/common/libparted/labels/bsd.c
+usr/src/lib/libparted/common/libparted/labels/dvh.h
+usr/src/lib/libparted/common/libparted/labels/gpt.c
+usr/src/lib/libparted/common/libparted/timer.c
+usr/src/lib/libparted/common/libparted/exception.c
+usr/src/lib/libparted/common/libparted/arch/solaris.c
+usr/src/lib/libparted/common/libparted/cs/natmath.c
+usr/src/lib/libparted/common/libparted/cs/geom.c
+usr/src/lib/libparted/common/libparted/cs/constraint.c
+usr/src/lib/libparted/common/libparted/disk.c
+usr/src/lib/libparted/common/lib/error.c
+usr/src/lib/libparted/common/lib/full-write.h
+usr/src/lib/libparted/common/lib/regex_internal.c
+usr/src/lib/libparted/common/lib/getopt.c
+usr/src/lib/libparted/common/lib/safe-read.c
+usr/src/lib/libparted/common/lib/version-etc.c
+usr/src/lib/libparted/common/lib/localcharset.h
+usr/src/lib/libparted/common/lib/basename.c
+usr/src/lib/libparted/common/lib/regex.c
+usr/src/lib/libparted/common/lib/gettext.h
+usr/src/lib/libparted/common/lib/long-options.c
+usr/src/lib/libparted/common/lib/close-stream.h
+usr/src/lib/libparted/common/lib/quotearg.c
+usr/src/lib/libparted/common/lib/xstrndup.h
+usr/src/lib/libparted/common/lib/closeout.h
+usr/src/lib/libparted/common/lib/__fpending.h
+usr/src/lib/libparted/common/lib/dirname.h
+usr/src/lib/libparted/common/lib/stripslash.c
+usr/src/lib/libparted/common/lib/configmake.h
+usr/src/lib/libparted/common/lib/exitfail.h
+usr/src/lib/libparted/common/lib/safe-write.c
+usr/src/lib/libparted/common/lib/strcspn.c
+usr/src/lib/libparted/common/lib/version-etc.h
+usr/src/lib/libparted/common/lib/localcharset.c
+usr/src/lib/libparted/common/lib/memset.c
+usr/src/lib/libparted/common/lib/rpmatch.c
+usr/src/lib/libparted/common/lib/xalloc-die.c
+usr/src/lib/libparted/common/lib/safe-read.h
+usr/src/lib/libparted/common/lib/regex_internal.h
+usr/src/lib/libparted/common/lib/xalloc.h
+usr/src/lib/libparted/common/lib/memcpy.c
+usr/src/lib/libparted/common/lib/regcomp.c
+usr/src/lib/libparted/common/lib/error.h
+usr/src/lib/libparted/common/lib/config.h
+usr/src/lib/libparted/common/lib/regexec.c
+usr/src/lib/libparted/common/lib/memmove.c
+usr/src/lib/libparted/common/lib/full-write.c
+usr/src/lib/libparted/common/lib/safe-write.h
+usr/src/lib/libparted/common/lib/dirname.c
+usr/src/lib/libparted/common/lib/version-etc-fsf.c
+usr/src/lib/libparted/common/lib/strndup.c
+usr/src/lib/libparted/common/lib/exitfail.c
+usr/src/lib/libparted/common/lib/close-stream.c
+usr/src/lib/libparted/common/lib/quotearg.h
+usr/src/lib/libparted/common/lib/xstrndup.c
+usr/src/lib/libparted/common/lib/getopt_int.h
+usr/src/lib/libparted/common/lib/closeout.c
+usr/src/lib/libparted/common/lib/regex.h
+usr/src/lib/libparted/common/lib/long-options.h
+usr/src/lib/libparted/common/lib/xmalloc.c
+usr/src/lib/libparted/common/include/parted/filesys.h
+usr/src/lib/libparted/common/include/parted/solaris.h
+usr/src/lib/libparted/common/include/parted/disk.h
+usr/src/lib/libparted/common/include/parted/device.h
+usr/src/lib/libparted/common/include/parted/crc32.h
+usr/src/lib/libparted/common/include/parted/timer.h
+usr/src/lib/libparted/common/include/parted/geom.h
+usr/src/lib/libparted/common/include/parted/parted.h
+usr/src/lib/libparted/common/include/parted/endian.h
+usr/src/lib/libparted/common/include/parted/unit.h
+usr/src/lib/libparted/common/include/parted/constraint.h
+usr/src/lib/libparted/common/include/parted/natmath.h
+usr/src/lib/libparted/common/include/parted/exception.h
+usr/src/lib/libparted/common/include/parted/debug.h
+
diff --git a/exception_lists/hdrchk b/exception_lists/hdrchk
index f27271aea9..eb3745be48 100644
--- a/exception_lists/hdrchk
+++ b/exception_lists/hdrchk
@@ -216,3 +216,73 @@ usr/src/lib/libkmsagent/common/SOAP/stdsoap2.h
usr/src/lib/libkmsagent/common/SYSCommon.h
usr/src/lib/libkmsagent/common/debug.h
usr/src/lib/libkmsagent/common/k_setupssl.h
+usr/src/lib/libparted/common/libparted/fs/hfs/file_plus.h
+usr/src/lib/libparted/common/libparted/fs/hfs/file.h
+usr/src/lib/libparted/common/libparted/fs/hfs/advfs.h
+usr/src/lib/libparted/common/libparted/fs/hfs/advfs_plus.h
+usr/src/lib/libparted/common/libparted/fs/hfs/probe.h
+usr/src/lib/libparted/common/libparted/fs/hfs/hfs.h
+usr/src/lib/libparted/common/libparted/fs/hfs/journal.h
+usr/src/lib/libparted/common/libparted/fs/hfs/reloc.h
+usr/src/lib/libparted/common/libparted/fs/hfs/reloc_plus.h
+usr/src/lib/libparted/common/libparted/fs/hfs/cache.h
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2_fs.h
+usr/src/lib/libparted/common/libparted/fs/ext2/tune.h
+usr/src/lib/libparted/common/libparted/fs/ext2/parted_io.h
+usr/src/lib/libparted/common/libparted/fs/ext2/ext2.h
+usr/src/lib/libparted/common/libparted/fs/reiserfs/geom_dal.h
+usr/src/lib/libparted/common/libparted/fs/reiserfs/reiserfs.h
+usr/src/lib/libparted/common/libparted/fs/jfs/jfs_superblock.h
+usr/src/lib/libparted/common/libparted/fs/jfs/jfs_types.h
+usr/src/lib/libparted/common/libparted/fs/amiga/apfs.h
+usr/src/lib/libparted/common/libparted/fs/amiga/amiga.h
+usr/src/lib/libparted/common/libparted/fs/amiga/asfs.h
+usr/src/lib/libparted/common/libparted/fs/amiga/affs.h
+usr/src/lib/libparted/common/libparted/fs/fat/count.h
+usr/src/lib/libparted/common/libparted/fs/fat/clstdup.h
+usr/src/lib/libparted/common/libparted/fs/fat/traverse.h
+usr/src/lib/libparted/common/libparted/fs/fat/context.h
+usr/src/lib/libparted/common/libparted/fs/fat/fatio.h
+usr/src/lib/libparted/common/libparted/fs/fat/bootsector.h
+usr/src/lib/libparted/common/libparted/fs/fat/calc.h
+usr/src/lib/libparted/common/libparted/fs/fat/fat.h
+usr/src/lib/libparted/common/libparted/fs/fat/table.h
+usr/src/lib/libparted/common/libparted/fs/xfs/platform_defs.h
+usr/src/lib/libparted/common/libparted/fs/xfs/xfs_types.h
+usr/src/lib/libparted/common/libparted/fs/xfs/xfs_sb.h
+usr/src/lib/libparted/common/libparted/labels/dvh.h
+usr/src/lib/libparted/common/lib/full-write.h
+usr/src/lib/libparted/common/lib/localcharset.h
+usr/src/lib/libparted/common/lib/gettext.h
+usr/src/lib/libparted/common/lib/close-stream.h
+usr/src/lib/libparted/common/lib/xstrndup.h
+usr/src/lib/libparted/common/lib/closeout.h
+usr/src/lib/libparted/common/lib/__fpending.h
+usr/src/lib/libparted/common/lib/dirname.h
+usr/src/lib/libparted/common/lib/configmake.h
+usr/src/lib/libparted/common/lib/exitfail.h
+usr/src/lib/libparted/common/lib/version-etc.h
+usr/src/lib/libparted/common/lib/safe-read.h
+usr/src/lib/libparted/common/lib/regex_internal.h
+usr/src/lib/libparted/common/lib/xalloc.h
+usr/src/lib/libparted/common/lib/error.h
+usr/src/lib/libparted/common/lib/config.h
+usr/src/lib/libparted/common/lib/safe-write.h
+usr/src/lib/libparted/common/lib/quotearg.h
+usr/src/lib/libparted/common/lib/getopt_int.h
+usr/src/lib/libparted/common/lib/regex.h
+usr/src/lib/libparted/common/lib/long-options.h
+usr/src/lib/libparted/common/include/parted/filesys.h
+usr/src/lib/libparted/common/include/parted/solaris.h
+usr/src/lib/libparted/common/include/parted/disk.h
+usr/src/lib/libparted/common/include/parted/device.h
+usr/src/lib/libparted/common/include/parted/crc32.h
+usr/src/lib/libparted/common/include/parted/timer.h
+usr/src/lib/libparted/common/include/parted/geom.h
+usr/src/lib/libparted/common/include/parted/parted.h
+usr/src/lib/libparted/common/include/parted/endian.h
+usr/src/lib/libparted/common/include/parted/unit.h
+usr/src/lib/libparted/common/include/parted/constraint.h
+usr/src/lib/libparted/common/include/parted/natmath.h
+usr/src/lib/libparted/common/include/parted/exception.h
+usr/src/lib/libparted/common/include/parted/debug.h
diff --git a/usr/src/Makefile b/usr/src/Makefile
index ee119b34eb..61012b8ff7 100644
--- a/usr/src/Makefile
+++ b/usr/src/Makefile
@@ -125,7 +125,7 @@ mapfiles: bldtools
clean clobber: $(SUBDIRS) head pkg
-closedbins: FRC $(ROOTDIRS)
+closedbins: bldtools $(ROOTDIRS) FRC
@CLOSED_ROOT="$$ON_CLOSED_BINS/root_$(MACH)$${RELEASE_BUILD+-nd}"; \
if [ "$$CLOSED_IS_PRESENT" = no ]; then \
if [ ! -d "$$CLOSED_ROOT" ]; then \
@@ -139,6 +139,9 @@ closedbins: FRC $(ROOTDIRS)
(cd $$CLOSED_ROOT; \
$(TAR) cfX - $(CODEMGR_WS)/exception_lists/closed-bins .) | \
(cd $(ROOT); $(TAR) xBpf -); \
+ ( cd $(ROOT); $(CTFSTRIP) $$(cd $$CLOSED_ROOT; $(FIND) \
+ ./kernel ./usr/kernel ./platform/*/kernel -type f -a -perm -u+x | \
+ $(EGREP) -vf $(CODEMGR_WS)/exception_lists/closed-bins) ); \
fi
#
diff --git a/usr/src/Makefile.lint b/usr/src/Makefile.lint
index 6fb1be7899..193d292d21 100644
--- a/usr/src/Makefile.lint
+++ b/usr/src/Makefile.lint
@@ -490,7 +490,6 @@ sparc_SUBDIRS= \
cmd/datadm \
cmd/dcs \
cmd/drd \
- cmd/fps \
cmd/fruadm \
cmd/ldmad \
cmd/prtdscp \
diff --git a/usr/src/Makefile.master b/usr/src/Makefile.master
index 062f9bdd19..f1942610d4 100644
--- a/usr/src/Makefile.master
+++ b/usr/src/Makefile.master
@@ -98,11 +98,14 @@ STRIP_COMMENTS= $(INTERNAL_RELEASE_BUILD)
TONICBUILD= $(POUND_SIGN)
$(TONICBUILD)CLOSEDROOT= $(ROOT)-closed
-
# set __GNUC= in the environment to build 32-bit with the gcc compiler.
# The default is to use the Sun Studio compiler for all processor types.
__GNUC= $(POUND_SIGN)
+# __SUNC is the default, Sun C compiler, set to $(POUND_SIGN) if __GNUC is
+# primary to facilitate conditional make rules.
+$(__GNUC)__SUNC= $(POUND_SIGN)
+
# set __GNUC64= in the environment to build 64-bit with the gcc compiler.
# Inherit the __GNUC value by default, and if that is set to $(POUND_SIGN)
# then this means use the Sun Studio compiler.
@@ -113,6 +116,13 @@ __GNUC64= $(__GNUC)
# to the 'next' version of the Sun Studio compiler to be used.
__SSNEXT= $(POUND_SIGN)
+# set __GNUC4 in the environment to build with GCC 4.4 These two variables are
+# operative even when __GNUC is not, as they affect flags that will be used by
+# the shadow compile.
+__GNUC3=
+__GNUC4= $(POUND_SIGN)
+$(__GNUC4)__GNUC3= $(POUND_SIGN)
+
# CLOSED is the root of the tree that contains source which isn't released
# as open source
CLOSED= $(SRC)/../closed
@@ -130,6 +140,11 @@ SFWINCDIR= $(SFW_ROOT)/include
SFWLIBDIR= $(SFW_ROOT)/lib
SFWLIBDIR64= $(SFW_ROOT)/lib/$(MACH64)
+$(__GNUC3)GCC_ROOT= $(SFW_ROOT)
+$(__GNUC4)GCC_ROOT= /opt/gcc/4.4.4
+GCCLIBDIR= $(GCC_ROOT)/lib
+GCCLIBDIR64= $(GCC_ROOT)/lib/$(MACH64)
+
RPCGEN= /usr/bin/rpcgen
STABS= $(ONBLD_TOOLS)/bin/$(MACH)/stabs
ELFEXTRACT= $(ONBLD_TOOLS)/bin/$(MACH)/elfextract
@@ -169,6 +184,7 @@ JAR= $(JAVA_ROOT)/bin/jar
CTFCONVERT= $(ONBLD_TOOLS)/bin/$(MACH)/ctfconvert
CTFMERGE= $(ONBLD_TOOLS)/bin/$(MACH)/ctfmerge
CTFSTABS= $(ONBLD_TOOLS)/bin/$(MACH)/ctfstabs
+CTFSTRIP= $(ONBLD_TOOLS)/bin/$(MACH)/ctfstrip
NDRGEN= $(ONBLD_TOOLS)/bin/$(MACH)/ndrgen
GENOFFSETS= $(ONBLD_TOOLS)/bin/genoffsets
CTFCVTPTBL= $(ONBLD_TOOLS)/bin/ctfcvtptbl
@@ -375,6 +391,10 @@ CERRWARN = -errtags=yes -errwarn=%all
CERRWARN += -erroff=E_EMPTY_TRANSLATION_UNIT
CERRWARN += -erroff=E_STATEMENT_NOT_REACHED
+# Normally cw(1) would translate -v into a set of options including these
+# but as they're GCC 4.x specific, we can't do that
+$(__GNUC4)CERRWARN += -_gcc=-Wno-address
+
#
# turn warnings into errors (C++)
CCERRWARN= -xwe
@@ -404,9 +424,17 @@ sparcv9_COPTFLAG= -xO3
i386_COPTFLAG= -O
amd64_COPTFLAG= -xO3
+# This would normally be added by cw(1) but cannot be while we want to support
+# Both GCC 3.x and GCC 4.x
+$(__GNUC4)$(MACH)_COPTFLAG += -_gcc=-fno-inline-small-functions \
+ -_gcc=-fno-inline-functions-called-once
+$(__GNUC4)$(MACH64)_COPTFLAG += -_gcc=-fno-inline-small-functions \
+ -_gcc=-fno-inline-functions-called-once
+
COPTFLAG= $($(MACH)_COPTFLAG)
COPTFLAG64= $($(MACH64)_COPTFLAG)
+
# When -g is used, the compiler globalizes static objects
# (gives them a unique prefix). Disable that.
CNOGLOBAL= -W0,-noglobal
@@ -637,7 +665,7 @@ COMPILE.java= $(JAVAC) $(JAVAFLAGS) -classpath $(CLASSPATH)
# Link time macros
#
CCNEEDED = -lC
-$(__GNUC)CCNEEDED = -L$(SFWLIBDIR) -R$(SFWLIBDIR) -lstdc++ -lgcc_s
+$(__GNUC)CCNEEDED = -L$(GCCLIBDIR) -R$(GCCLIBDIR) -lstdc++ -lgcc_s
LINK.c= $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK64.c= $(CC) $(CFLAGS64) $(CPPFLAGS) $(LDFLAGS)
@@ -727,7 +755,6 @@ sparcv9_AS= /usr/ccs/bin/as -xregsym=no
sparcv9_LD= /usr/ccs/bin/ld
sparcv9_LINT= $(SPRO_ROOT)/sunstudio12.1/bin/lint
-# We compile 32-bit objects with cc by default
i386_CC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
$(__GNUC)i386_CC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
i386_CCC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
@@ -738,7 +765,6 @@ $(__GNUC)i386_AS= $(ONBLD_TOOLS)/bin/$(MACH)/aw
i386_LD= /usr/ccs/bin/ld
i386_LINT= $(SPRO_ROOT)/sunstudio12.1/bin/lint
-# We compile 64-bit objects with gcc
amd64_CC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
$(__GNUC64)amd64_CC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
amd64_CCC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
diff --git a/usr/src/Makefile.master.64 b/usr/src/Makefile.master.64
index f48eefb29a..db5a45031b 100644
--- a/usr/src/Makefile.master.64
+++ b/usr/src/Makefile.master.64
@@ -54,9 +54,10 @@ LDLIBS.cmd = $(LDLIBS64)
LDLIBS.lib = $(LDLIBS64)
#
-# Override Makefile.master's settings of SFWLIBDIR
+# Override Makefile.master's settings of SFWLIBDIR and GCCLIBDIR
#
SFWLIBDIR= $(SFWLIBDIR64)
+GCCLIBDIR= $(GCCLIBDIR64)
#
# Override Makefile.master's settings of CC, CCC, AS and LINT
@@ -80,8 +81,9 @@ BUILD.SO= $(CC) $(CFLAGS) -o $@ $(GSHARED) $(DYNFLAGS) \
MAPFILECLASS= -64
CCNEEDED = -lCrun
-$(__GNUC64)CCNEEDED = -L$(SFWLIBDIR) -R$(SFWLIBDIR) -lstdc++ \
- -lgcc_s_$(MACH64)
+$(__GNUC64)CCNEEDED = -L$(GCCLIBDIR) -R$(GCCLIBDIR) -lstdc++
+$(__GNUC64)$(__GNUC3)CCNEEDED += -lgcc_s_$(MACH64)
+$(__GNUC64)$(__GNUC4)CCNEEDED += -lgcc_s
BUILDCCC.SO= $(CCC) $(CCFLAGS) -o $@ $(GSHARED) $(DYNFLAGS) \
$(PICS) $(EXTPICS) $(LDLIBS) $(CCNEEDED)
diff --git a/usr/src/cmd/Makefile b/usr/src/cmd/Makefile
index be5dfcee1a..6c903a3f0a 100644
--- a/usr/src/cmd/Makefile
+++ b/usr/src/cmd/Makefile
@@ -491,7 +491,6 @@ sparc_SUBDIRS= \
dcs \
device_remap \
drd \
- fps \
fruadm \
ldmad \
oplhpd \
diff --git a/usr/src/cmd/Makefile.check b/usr/src/cmd/Makefile.check
index 60c3f5ffde..64b578954e 100644
--- a/usr/src/cmd/Makefile.check
+++ b/usr/src/cmd/Makefile.check
@@ -103,7 +103,6 @@ MANIFEST_SUBDIRS= \
cmd-inet/usr.sbin/routeadm \
dcs/sparc/sun4u \
dfs.cmds/sharemgr \
- fps/fpsd \
fs.d/autofs \
fs.d/nfs/svc \
fs.d/smbclnt/svc \
diff --git a/usr/src/cmd/dtrace/test/tst/Makefile.com b/usr/src/cmd/dtrace/test/tst/Makefile.com
index a23b8d65a8..e3cfd0ad0d 100644
--- a/usr/src/cmd/dtrace/test/tst/Makefile.com
+++ b/usr/src/cmd/dtrace/test/tst/Makefile.com
@@ -23,8 +23,6 @@
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# ident "%Z%%M% %I% %E% SMI"
-#
include $(SRC)/cmd/Makefile.cmd
@@ -56,6 +54,12 @@ ROOT_EXES = $(EXES:%=$(TSTDIR)/%)
$(ROOT_TSTS) := FILEMODE = 0444
$(ROOT_EXES) := FILEMODE = 0555
+# The DTrace tests rely on "normal" behaviour from the compiler which
+# agressive optimization of small, simple, one compilation-unit programs may
+# utterly subvert. We force the compiler to not optimize rather than engage
+# in an arms race with increasingly belligerent optimizers.
+COPTFLAG= -xO0
+
all: $(EXES)
clean lint:
diff --git a/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpu.h b/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpu.h
index 69702f02e7..2b08249e45 100644
--- a/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpu.h
+++ b/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpu.h
@@ -604,25 +604,6 @@ extern cmd_evdisp_t cmd_fpu(fmd_hdl_t *, fmd_event_t *, nvlist_t *,
const char *, cmd_errcl_t);
-
-/*
- * FPU (FP-Scrubber) errors
- *
- * SERD name
- * Type (if any) Fault
- * ------ --------- -------------------------------
- * FPU - fault.cpu.<cputype>.fpu
- *
- * The expected resolution of FPU faults is the disabling of the CPU
- * indicted in the resource FMRI.
- */
-extern cmd_evdisp_t cmd_fps(fmd_hdl_t *, fmd_event_t *, nvlist_t *,
- const char *, cmd_errcl_t);
-
-
-
-
-
/*
* ireg errors
*
diff --git a/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpuerr.c b/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpuerr.c
index cfc18df2fa..25ea7bdfb3 100644
--- a/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpuerr.c
+++ b/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_cpuerr.c
@@ -171,40 +171,6 @@ CMD_CPU_SIMPLEHANDLER(lfu_ce, lfu, CMD_PTR_CPU_LFU, "", "lfu-f")
CMD_CPU_SIMPLEHANDLER(lfu_pe, lfu, CMD_PTR_CPU_LFU, "", "lfu-p")
-
-/*
- * Fp-scrubber errors
- */
-cmd_evdisp_t
-cmd_fps(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl,
- const char *class, cmd_errcl_t clcode)
-{
- uint8_t level = clcode & CMD_ERRCL_LEVEL_EXTRACT;
- cmd_cpu_t *cpu;
- nvlist_t *res;
-
- clcode &= CMD_ERRCL_LEVEL_MASK;
-
- /*
- * Ignore the event if resource FMRI is not present. Fp-Scrubber
- * puts the indicted CPU in resource. If resource is not present,
- * we cannot diagnose the ereport. It will simply get logged in
- * errlog for manual analysis, if needed.
- */
- if (nvlist_lookup_nvlist(nvl, "resource", &res))
- return (CMD_EVD_UNUSED);
-
- if ((cpu = cmd_cpu_lookup(hdl, res, class, level)) == NULL ||
- cpu->cpu_faulting)
- return (CMD_EVD_UNUSED);
-
- return (cmd_cpuerr_common(hdl, ep, cpu, &cpu->cpu_fpu,
- CMD_PTR_CPU_FPU, "", "_n", "_t", "fpu", clcode));
-}
-
-
-
-
#ifdef sun4u
/*
* The following macro handles UEs or CPU errors.
diff --git a/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_main.c b/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_main.c
index 7e1b6855bc..3626650153 100644
--- a/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_main.c
+++ b/usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_main.c
@@ -237,7 +237,6 @@ static cmd_subscriber_t cmd_subscribers[] = {
{ "ereport.io.oberon.ubc.piorbeue-channel", cmd_nop },
{ "ereport.io.oberon.ubc.piorbeue-cpu", opl_opluecpu_detio },
{ "ereport.io.oberon.ubc.piorbeue-path", cmd_nop },
- { "ereport.cpu.*.fpu.fpscrub", cmd_fps },
#else /* i.e. sun4v */
{ "ereport.cpu.*.irc", cmd_irc },
{ "ereport.cpu.*.iru", cmd_iru },
diff --git a/usr/src/cmd/fm/modules/sun4u/Makefile b/usr/src/cmd/fm/modules/sun4u/Makefile
index 4f6c5d8c3c..af5ec149c0 100644
--- a/usr/src/cmd/fm/modules/sun4u/Makefile
+++ b/usr/src/cmd/fm/modules/sun4u/Makefile
@@ -24,6 +24,6 @@
#
#ident "%Z%%M% %I% %E% SMI"
-SUBDIRS = cpumem-diagnosis datapath-retire USII-io-diagnosis fps-transport
+SUBDIRS = cpumem-diagnosis datapath-retire USII-io-diagnosis
include ../../Makefile.subdirs
diff --git a/usr/src/cmd/fm/modules/sun4u/fps-transport/Makefile b/usr/src/cmd/fm/modules/sun4u/fps-transport/Makefile
deleted file mode 100644
index 0082a92a2c..0000000000
--- a/usr/src/cmd/fm/modules/sun4u/fps-transport/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# ident "%Z%%M% %I% %E% SMI"
-#
-MODULE = fps-transport
-CLASS = arch
-ARCH = sun4u
-SRCS = fps-transport.c
-
-include ../../Makefile.plugin
-
-CPPFLAGS += -I ../../../fmd/common -I .
-LDLIBS += -lsysevent
diff --git a/usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.c b/usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.c
deleted file mode 100644
index e085eb2569..0000000000
--- a/usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <fm/fmd_api.h>
-#include <fmd_module.h>
-#include <fmd_scheme.h>
-#include <fmd.h>
-#include <libnvpair.h>
-#include <libsysevent.h>
-#include <errno.h>
-#include <string.h>
-#include <fpst-defines.h>
-
-static evchan_t *h_event; /* handle for event channel */
-static fmd_xprt_t *h_xprt; /* transport handle */
-static fmd_hdl_t *h_fmd; /* fmd handle */
-
-static const fmd_hdl_ops_t fps_ops = {
- NULL, /* receive */
- NULL, /* timeout */
- NULL, /* close */
- NULL, /* stats */
- NULL /* gc */
-};
-
-static const fmd_hdl_info_t fmd_info = {
- FPS_MOD_DESC,
- FPS_MOD_VER,
- &fps_ops,
- NULL
-};
-
-static struct sysev_stats {
- fmd_stat_t bad_class;
- fmd_stat_t bad_attr;
- fmd_stat_t eagain;
-} sysev_stats = {
- { "bad_class", FMD_TYPE_UINT64,
- "events dropped due to invalid class" },
- { "bad_attr", FMD_TYPE_UINT64,
- "events dropped due to invalid nvlist" },
- { "eagain", FMD_TYPE_UINT64, "events retried due to low memory" },
-};
-
-static sysevent_subattr_t *subattr;
-
-/*
- * event_transfer(sysevent_t *ev, void *arg)
- * takes a sysevent ev, extracts the nvlist of
- * data for an ereport, and posts it to the fmd.
- */
-/* ARGSUSED */
-static int
-event_transfer(sysevent_t *ev, void *arg)
-{
- hrtime_t hrt;
- nvlist_t *retrieved_list;
- uint64_t seq = sysevent_get_seq(ev);
-
- if (strcasecmp(sysevent_get_class_name(ev), CLASS) != 0) {
- fmd_hdl_error(h_fmd, "Discarding event 0x%llx: unexpected"
- " transport class %s\n", seq,
- sysevent_get_class_name(ev));
- sysev_stats.bad_class.fmds_value.ui64++;
-
- return (0);
- }
-
- if (sysevent_get_attr_list(ev, &retrieved_list) == 0) {
- sysevent_get_time(ev, &hrt);
- fmd_xprt_post(h_fmd, h_xprt, retrieved_list, hrt);
- } else {
- if (errno == EAGAIN || errno == ENOMEM) {
- sysev_stats.eagain.fmds_value.ui64++;
- return (EAGAIN);
- }
-
- fmd_hdl_error(h_fmd, "Event: 0x%llx is missing or"
- " has an invalid payload.", seq);
- sysev_stats.bad_attr.fmds_value.ui64++;
-
- }
-
- return (0);
-}
-
-/*
- * _fmd_fini(fmd_hdl_t *handle) is the
- * module exit point. It unsubscribes
- * and unbinds to FPS channel as well
- * as closes fmd transport handle
- */
-/* ARGSUSED */
-void
-_fmd_fini(fmd_hdl_t *handle)
-{
- if (h_event != NULL) {
- (void) sysevent_evc_unsubscribe(h_event, SUBSCRIBE_ID);
- (void) sysevent_evc_unbind(h_event);
- if (subattr != NULL)
- sysevent_subattr_free(subattr);
- }
-
- if (h_fmd != NULL && h_xprt != NULL)
- fmd_xprt_close(h_fmd, h_xprt);
-}
-
-/*
- * _fmd_init(fmd_hdl_t *hdl) is the
- * entry point into the module. It
- * registers the handle hdl and
- * subscribes to the fps sysevent channel.
- */
-void
-_fmd_init(fmd_hdl_t *hdl)
-{
- int ret = 0;
-
- if (fmd_hdl_register(hdl, FMD_API_VERSION, &fmd_info) != 0) {
- return;
- }
-
- (void) fmd_stat_create(hdl, FMD_STAT_NOALLOC, sizeof (sysev_stats) /
- sizeof (fmd_stat_t), (fmd_stat_t *)&sysev_stats);
-
- h_xprt = fmd_xprt_open(hdl, FMD_XPRT_RDONLY, NULL, NULL);
- h_fmd = hdl;
-
- if (sysevent_evc_bind(CHANNEL, &h_event, BIND_FLAGS) != 0) {
- fmd_hdl_error(hdl, "Failed to bind to channel %s", CHANNEL);
- fmd_hdl_unregister(hdl);
- }
-
- if ((subattr = sysevent_subattr_alloc()) == NULL)
- fmd_hdl_abort(hdl, "failed to allocate subscription "
- "attributes: %s");
-
- sysevent_subattr_thrcreate(subattr, fmd_doorthr_create, NULL);
- sysevent_subattr_thrsetup(subattr, fmd_doorthr_setup, NULL);
-
- ret = sysevent_evc_xsubscribe(h_event, SUBSCRIBE_ID,
- SUBSCRIBE_FLAGS, event_transfer, NULL, 0, subattr);
- if (ret != 0) {
- if (ret == EEXIST) {
- fmd_hdl_unregister(hdl);
- } else {
- fmd_hdl_error(hdl,
- "Failed to subsrcibe to channel %s", CHANNEL);
- fmd_hdl_unregister(hdl);
- }
- }
-}
diff --git a/usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.conf b/usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.conf
deleted file mode 100644
index 5ebcc5e08c..0000000000
--- a/usr/src/cmd/fm/modules/sun4u/fps-transport/fps-transport.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-#ident "%Z%%M% %I% %E% SMI"
diff --git a/usr/src/cmd/fm/modules/sun4u/fps-transport/fpst-defines.h b/usr/src/cmd/fm/modules/sun4u/fps-transport/fpst-defines.h
deleted file mode 100644
index 40ab51cac3..0000000000
--- a/usr/src/cmd/fm/modules/sun4u/fps-transport/fpst-defines.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _FPST_DEFINES_H
-#define _FPST_DEFINES_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-/*
- * fpst-defines
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define BIND_FLAGS EVCH_CREAT | EVCH_HOLD_PEND
-#define CHANNEL "com.sun:sysevent-fpscrubber:channel-fps"
-#define CLASS "FPScrubber"
-#define SUBSCRIBE_FLAGS EC_ALL
-#define SUBSCRIBE_ID "FPS_FMD_MOD"
-#define FPS_MOD_DESC "Solaris FP-Scrubber"
-#define FPS_MOD_VER "1.0"
-#define FAIL_MSG_MAX 100
-
-#define USIII "ultraSPARC-III"
-#define USIIIi "ultraSPARC-IIIi"
-#define USIIIP "ultraSPARC-IIIplus"
-#define USIV "ultraSPARC-IV"
-#define USIVP "ultraSPARC-IVplus"
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _FPST_DEFINES_H */
diff --git a/usr/src/cmd/fps/Makefile b/usr/src/cmd/fps/Makefile
deleted file mode 100644
index b6430ed033..0000000000
--- a/usr/src/cmd/fps/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-include ../Makefile.cmd
-
-.KEEP_STATE:
-
-all := TARGET = all
-clean := TARGET = clean
-clobber := TARGET = clobber
-install := TARGET = install
-lint := TARGET = lint
-_msg := TARGET = _msg
-check := TARGET = check
-
-SUBDIRS = fpsd compilercheck fptest
-
-all clean clobber install lint _msg: $(SUBDIRS)
-
-check: fpsd
-
-#
-# The compilation of fptest is forced to be done with the Sun
-# Studio compiler. This is because fptest is dependent on some Sun
-# performance libraries provided as part of the Sun Studio compiler
-# installation. fptest statically links libsunperf.a, libfui.a,
-# libfai.a, libfsu.a, and libsunmath.a. The other SUBDIRS will be
-# compiled normally.
-#
-
-$(SUBDIRS): FRC
- @case $(TARGET) \
- in \
- clean|clobber|lint|_msg) \
- cd $@; pwd; VERSION='$(VERSION)' $(MAKE) $(TARGET);\
- ;; \
- *) \
- if [ $@ != fptest ]; \
- then \
- cd $@; pwd; VERSION='$(VERSION)' \
- $(MAKE) $(TARGET); \
- else \
- cd $@; pwd; VERSION='$(VERSION)' \
- $(MAKE) __GNUC=$(POUND_SIGN) $(TARGET); \
- fi \
- ;; \
- esac
-
-FRC:
diff --git a/usr/src/cmd/fps/compilercheck/Makefile b/usr/src/cmd/fps/compilercheck/Makefile
deleted file mode 100644
index 45743f6039..0000000000
--- a/usr/src/cmd/fps/compilercheck/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-
-
-include ../../Makefile.cmd
-include ../../Makefile.cmd.64
-
-PROG = compilercheck
-
-SUNPERF = $(SPRO_VROOT)/prod/lib
-
-SUNPV9B = $(SUNPERF)/v9b
-
-INCLUDES = -I$(SPRO_VROOT)/prod/include/cc
-
-CFLAGS64 += $(INCLUDES) -_gcc="-D__SUNPRO_C=1"
-
-SRCS = fps_compiler_check.c
-
-LINTFLAGS64 += $(INCLUDES) -D_sparc64 -DV9B -D__sparcv9
-
-.KEEP_STATE:
-
-########## beginning of dependency lines #################
-
-all install : $(PROG)
-
-$(PROG):fps_compiler_check.o
- $(LINK.c) -o $@ fps_compiler_check.o $(SUNPV9B)/libsunperf.a
-
-clean:
- $(RM) fps_compiler_check.o
-
-lint: lint_SRCS
-
-include ../../Makefile.targ
diff --git a/usr/src/cmd/fps/compilercheck/fps_compiler_check.c b/usr/src/cmd/fps/compilercheck/fps_compiler_check.c
deleted file mode 100644
index 269f1b2474..0000000000
--- a/usr/src/cmd/fps/compilercheck/fps_compiler_check.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * fps_compiler_check verifies if the compiler
- * and the libsuperf associated with the compiler
- * are known.
- *
- * How To Update the code with details about
- * a new compiler/libsunperf:
- * - Add a line that describes the new compiler and libsunperf version
- * in version_details table.
- * - Respect the order specified in v_d struct.
- * - cstyle -p fps_compiler_check.c
- * - make
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <strings.h>
-#include <sunperf.h>
-
-#define LIM_CI 256
-
-typedef struct
-{
- long cc_version;
- long lib_version;
- long lib_patch;
- long lib_update;
- char *lib_ver_string;
-} v_d;
-
-v_d version_details[] = {
- {0x550, 0x400000000, 0, 0,
- "Sun Performance Library 4.1 2003/03/13"}, /* 0 - SOS8 */
- {0x570, 0x600000000, 0, 0,
- "Sun Performance Library 6 12/13/04"}, /* 1 - SOS10 */
- {0x580, 0x600000000, 0, 0,
- "Sun Performance Library 6 07/27/2006 Patch_122135-02"}, /* 2-SS11 */
- {0x590, 7, 0, 0,
- "Sun Performance Library 7 Patch_124870-02"}, /* 3 - SS12 */
- {0x590, 7, 124870, 3, /* 4-SS12 QA */
- "Sun Performance Library 7 Patch_124870-03 2008/05/28" },
- {0x5100, 8, 0, 0,
- "Sun Performance Library 8 2008/10/24"}, /* 5 */
- {0x5100, 8, 0, 0,
- "Sun Performance Library 8 2009/04/28"}, /* 6 - SS12 U1 */
- {0, 0, 0, 0, NULL}
-};
-
-
-#if 0
-static void printError(
-char *Uknown, long cc_version, long lib_version,
-long lib_patch, long lib_update, char *lib_ver_string)
-{
- if ((NULL != Uknown) && (NULL != lib_ver_string))
- printf("\n %s \n Compiler = 0x%x \n lib_version = %ld 0x%lx \
- \n lib_patch = %ld 0x%lx \n lib_update = %ld 0x%lx \
- \n lib_ver_string = %s\n",
- Unknown, cc_version, lib_version, lib_version, lib_patch,
- lib_patch, lib_update, lib_update, lib_ver_string);
-}
-#endif
-
-
-int
-main()
-{
- char *lib_ver_string = NULL;
- long cc_version, lib_version, lib_patch, lib_update;
- int i, k, j, TableElem;
- int CompilerIndex[LIM_CI];
-
-
- /* Initialize */
- cc_version = lib_version = lib_patch = lib_update = 0;
- TableElem = sizeof (version_details) / sizeof (v_d);
- for (i = 0; i < LIM_CI; i++) CompilerIndex[i] = -1;
-
- /* get the info about the current compiler and libsunperf */
-#ifndef __lint
- lib_ver_string =
- sunperf_version_64(&lib_version, &lib_patch, &lib_update);
-#endif
- cc_version = __SUNPRO_C;
-
- for (i = 0; i < TableElem; i++) {
- if (version_details[i].cc_version == cc_version) break;
- }
-
-
- /* Check the compiler __SUNPRO_C version */
- if ((i - TableElem > 0) ||
- (cc_version != version_details[i].cc_version)) {
-#if 0
- printError("Unknown",
- cc_version, lib_version, lib_patch,
- lib_update, lib_ver_string);
-#endif
- return (-1);
- }
-
- /*
- * We have at least one line in the table that has info
- * about this compiler. Let's see how many lines with details
- * about this compiler do we have. Store the indexes.
- */
- for (k = 0, j = 0; (k < TableElem) && (j < LIM_CI); k++) {
- if (version_details[k].cc_version == cc_version) {
- CompilerIndex[j++] = k;
- }
- }
-
-
- /*
- * We have a compiler with an known __SUNPRO_C
- * Check the libsunperf version, patch, update and version string
- */
-
- for (j = 0; (j < LIM_CI) && (-1 != CompilerIndex[j]); j++) {
- if (strlen(version_details[CompilerIndex[j]].lib_ver_string) !=
- strlen(lib_ver_string))
- continue;
- if (
- (0 !=
- strcmp(version_details[CompilerIndex[j]].lib_ver_string,
- lib_ver_string)) ||
- (version_details[CompilerIndex[j]].lib_version !=
- lib_version) ||
- (version_details[CompilerIndex[j]].lib_patch !=
- lib_patch) ||
- (version_details[CompilerIndex[j]].lib_update !=
- lib_update)) {
- continue;
- } else {
- break;
- }
- }
-
- if (-1 == CompilerIndex[j]) {
-#if 0
- printError("Uknown Libsunperf ",
- cc_version, lib_version, lib_patch,
- lib_update, lib_ver_string);
-
- for (j = 0; (j < LIM_CI) && (-1 != CompilerIndex[j]); j++) {
- printError("Expected one of the following:",
- version_details[CompilerIndex[j]].cc_version,
- version_details[CompilerIndex[j]].lib_version,
- version_details[CompilerIndex[j]].lib_patch,
- version_details[CompilerIndex[j]].lib_update,
- version_details[CompilerIndex[j]].lib_ver_string);
- }
-#endif
- return (-1);
- }
-
- return (CompilerIndex[j]);
-}
diff --git a/usr/src/cmd/fps/fpsd/Makefile b/usr/src/cmd/fps/fpsd/Makefile
deleted file mode 100644
index 5c30d5f9a0..0000000000
--- a/usr/src/cmd/fps/fpsd/Makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-PROG = fpsd
-
-SRCS = fpsd_main.c fpsd_sched.c fpsd_util.c fpsd_esutil.c fpsd_log.c
-OBJS = $(SRCS:%.c=%.o)
-
-MANIFEST = $(PROG).xml
-
-include ../../Makefile.cmd
-
-ROOTMANIFESTDIR = $(ROOTSVCSYSTEM)
-
-ROOTLIBFPS= $(ROOTLIB)/fps
-ROOTLIBFPSDAEMON= $(PROG:%=$(ROOTLIBFPS)/%)
-
-POFILES = $(SRCS:%.c=%.po)
-
-CPPFLAGS += -I../include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
-
-CFLAGS += $(CCMT)
-
-LDLIBS += -lc -ldevinfo -lkstat -lscf -lgen
-
-LDFLAGS += $(ZIGNORE)
-
-.KEEP_STATE:
-
-##### beginning of dependency lines #####
-
-all: $(PROG)
-
-$(PROG): $(OBJS)
- $(LINK.c) -o $@ $(OBJS) $(LDLIBS)
- $(POST_PROCESS)
-
-install: all $(ROOTLIBFPS) $(ROOTLIBFPSDAEMON) $(ROOTMANIFESTDIR) \
- $(ROOTMANIFEST)
-
-check: $(CHKMANIFEST)
-
-clean:
- $(RM) $(OBJS)
-
-lint: lint_SRCS
-
-$(ROOTLIBFPS):
- $(INS.dir)
-
-$(ROOTLIBFPS)/%: %
- $(INS.file)
-
-$(POFILE): $(POFILES) FRC
- @$(RM) $@
- $(CAT) $(POFILES) > $@
-
-include ../../Makefile.targ
-
-FRC:
diff --git a/usr/src/cmd/fps/fpsd/fpsd.h b/usr/src/cmd/fps/fpsd/fpsd.h
deleted file mode 100644
index 464e51dfd6..0000000000
--- a/usr/src/cmd/fps/fpsd/fpsd.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _FPSD_H
-#define _FPSD_H
-
-/*
- * FPSD structure and global functions
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <door.h>
-#include <sys/processor.h>
-#include <sys/param.h>
-
-#define FPS_DAEMON_NAME "fpsd"
-#define FPS_FPUTST_NAME "fptest"
-
-#define FPS_DIR "/usr/lib/fps"
-#define FPS_CORE_DIR "/var/fps/core"
-
-#define FPU_TST_SRCH_DPTH 4 /* File search depth from FPS_DIR */
-#define DFLT_DBG_LVL 1 /* Default debug level */
-#define FPS_DOOR_COOKIE ((void *)0xdeadbead)
-
-#define SMF_PROP_INTVL "interval"
-#define SMF_FPS_PROP_GRP_NAME "config"
-#define SMF_PROP_EXCLD_CPUS "exclude_cpus"
-
-/*
- * RSS of fptest is about 10M and size = 15M; Keeping 185M in reserve,
- * which is chosen aribitrarily that didn't cause test fork failure,
- * nor a memory crunch in the system. So total swap space needed = 200M.
- */
-#define FPS_LOWTST_SWAP 15 /* Low stress consumes 15 MB */
-#define FPS_SWAP_RESERVE 185 /* Leave atleast 185 MB in the system */
-
-/* (in secs) Delay test on low config m/c for 5min during bootup */
-#define FPS_BOOT_TST_DELAY (3*60)
-#define MAX_RETRIES 2
-#define MAX_FAILURES 3
-#define RETRY_INTVL 2000 /* in milli-seconds */
-#define MIN_INTERVAL 3 /* in seconds */
-
-/* Maximum time fptest is expected to run which is 1s */
-
-#define MAX_TEST_RUN_TIME 1
-
-typedef struct
-{
- processorid_t cpuid;
- int frequency;
- char brand[MAXNAMELEN];
- int asc;
- int previous_iteration;
- int total_iterations; /* For this fpu */
- int disable_test;
- int num_failures; /* Failures to run fptest successfully. */
- char fptest_path[MAXPATHLEN];
-
-} fps_cpu_t;
-
-typedef struct
-{
- char m_machine[MAXNAMELEN]; /* machine name e.g. sun4u */
- uint_t m_num_fpus; /* num of fpus in the system */
- uint_t m_num_on_fpuids; /* num of online cpus */
- int m_max_cpuid; /* maximum cpuid for this system */
- fps_cpu_t *m_cpus; /* array of cpus to test */
- int m_cpuids_size; /* size of previous array */
- int m_num_cpus_to_test; /* Num cpus to run test */
- int m_reprobe; /* flag set if reprobe required: */
- /* - config changed */
- /* - fp-test failed to offline */
- int total_iter; /* total iterations to run in 24 hr */
-} mach_conf_t;
-
-typedef struct fpsd_struct
-{
- unsigned d_fg; /* "fg" foreground property */
- int d_daemon; /* running as daemon ? */
- mach_conf_t *d_conf; /* machine config information */
- processorid_t *d_ignore_cpuid; /* array of cpuids to ignore */
- int num_ignore_cpus; /* No. of cpuids to ignore */
- int d_iteration; /* iteration number */
- int d_interval; /* sleep time between iterations */
- int d_fpuid_index; /* Currently testing fpu */
- const char *d_rootdir; /* root directory path */
- pid_t d_pid; /* Process id */
- /* Timestamp last time HUP was recd */
- volatile hrtime_t d_ts_hup;
-} fpsd_t;
-
-/*
- * Exit status values used for the few places within fpsd where we exit(2) or
- * return from main(). fpsd only exits if a fatal error occurs during startup;
- * if anything else happens errors are reported and we just keep tracking.
- */
-#define FPSD_NO_EXIT 0 /* continue execution of daemon */
-#define FPSD_EXIT_ERROR 1 /* failed to initialize daemon */
-#define FPSD_EXIT_USAGE 2 /* syntax error on command-line */
-#define FPSD_EXIT_TEST_USAGE 3 /* Invalid args passed to fp-test */
-
-#define FPSD_INIT_SUCCESS 0 /* To inform parent process that */
- /* initialization was successful, so */
- /* that the parent can detach */
-
-#define NO_DAEMON 0
-#define DAEMON_EXISTS 1
-#define DAEMON_EXISTS_AND_SAME_PROC 2
-
-#define NO_CPUS_2_TEST -2
-#define ZERO_INTERVAL -1
-
-/* Global Variables */
-
-/* Defined in fpsd_main.c */
-extern int debug_level;
-extern fpsd_t fpsd;
-extern pthread_mutex_t log_mutex; /* fpsd_log.c */
-extern int is_estar_system; /* fpsd_esutil.c */
-extern int sys_pm_state; /* fpsd_esutil.c */
-
-
-/* Util Functions */
-
-extern uint64_t get_free_swap(void); /* fpsd_util.c */
-extern void fps_wait_secs(int secs); /* fpsd_util.c */
-
-extern void *test_fpu_thr(void *arg); /* in fpsd_sched.c */
-
-extern void fps_door_handler(void *cookie, char *argp, size_t asize,
- door_desc_t *dp, uint_t n_desc); /* in fpsd_util.c */
-
-extern void update_pm_state(); /* fpsd_esutil.c */
-extern int get_idle_rem_stats(int *min_idle,
- int *min_rem, int *max_rem); /* fpsd_esutil.c */
-extern void init_estar_db(); /* fpsd_esutil.c */
-extern void wait_for_pm_state_change(); /* fpsd_esutil.c */
-
-/* fpsd_log.c */
-extern void fpsd_message(int return_code, int msg_type, char *fmt, ...);
-
-extern void terminate_process(); /* fpsd_main.c */
-extern void fpsd_read_config(); /* fpsd_main.c */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FPSD_H */
diff --git a/usr/src/cmd/fps/fpsd/fpsd.xml b/usr/src/cmd/fps/fpsd/fpsd.xml
deleted file mode 100644
index 22b9625bd5..0000000000
--- a/usr/src/cmd/fps/fpsd/fpsd.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
-<!--
- Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- Use is subject to license terms.
-
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
- NOTE: This service manifest is not editable; its contents will
- be overwritten by package or patch operations, including
- operating system upgrade. Make customizations in a different
- file.
--->
-
-<service_bundle type='manifest' name='SUNWfsr:fpsd'>
-
-<service
- name='system/fpsd'
- type='service'
- version='1'>
-
- <create_default_instance enabled='true' />
-
- <single_instance />
-
- <!--
- FP Scrubber Dependencies, Part 1
-
- A dependency on syslogd as logging is done through it.
- -->
- <dependency
- name='syslogd'
- grouping='require_all'
- restart_on='none'
- type='service'>
- <service_fmri value='svc:/system/system-log:default' />
- </dependency>
-
- <!--
- FP Scrubber Dependencies, Part 2
-
- fpsd should be started after fmd is running.
- -->
- <dependency
- name='fmd'
- grouping='require_all'
- restart_on='none'
- type='service'>
- <service_fmri value='svc:/system/fmd' />
- </dependency>
-
-
- <exec_method
- type='method'
- name='start'
- exec='/usr/lib/fps/fpsd'
- timeout_seconds='600'>
- <method_context>
- <method_credential user='root' group='root' />
- </method_context>
- </exec_method>
-
- <exec_method
- type='method'
- name='stop'
- exec=':kill'
- timeout_seconds='60' />
-
- <exec_method
- type='method'
- name='refresh'
- exec=':kill -HUP'
- timeout_seconds='60' />
-
- <property_group
- name='config'
- type='application'>
- <stability value='Evolving' />
-
- <propval name='interval' type='integer' value='' />
- <propval name='exclude_cpus' type='astring' value='' />
- </property_group>
-
- <stability value='Evolving' />
-
- <template>
- <common_name>
- <loctext xml:lang='C'>
- FP Scrubber - Online Floating Point Unit Test
- </loctext>
- </common_name>
-
- <documentation>
- <manpage
- title='fpsd'
- section='1M'
- manpath='/usr/share/man' />
- </documentation>
- </template>
-</service>
-
-</service_bundle>
diff --git a/usr/src/cmd/fps/fpsd/fpsd_esutil.c b/usr/src/cmd/fps/fpsd/fpsd_esutil.c
deleted file mode 100644
index 27abda3003..0000000000
--- a/usr/src/cmd/fps/fpsd/fpsd_esutil.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <sys/stat.h>
-#include <poll.h>
-#include <signal.h>
-#include <pthread.h>
-#include <thread.h>
-#include <time.h>
-#include <sys/systeminfo.h>
-#include <sys/cred.h>
-#include <dirent.h>
-#include <libdevinfo.h>
-#include <sys/pm.h>
-#include <sys/ppmio.h>
-#include <locale.h>
-
-#include "fpsapi.h"
-#include "fpsd.h"
-#include "messages.h"
-
-
-#define DEV_PM "/devices/pseudo/pm@0:pm"
-#define DEFAULT_CPU_FULL_POWER 3
-
-int is_estar_system = 0; /* Not an E* system, by default */
-int sys_pm_state = PM_SYSTEM_PM_DISABLED; /* By default autopm disabled */
-
-
-static di_node_t fps_di_root = DI_NODE_NIL;
-static di_prom_handle_t fps_di_prom = DI_PROM_HANDLE_NIL;
-static char **cpu_dpaths = NULL; /* Used only on E* system */
-static int *proc_ids = NULL; /* Used only on E* system */
-static int num_cpus = 0; /* Used only on E* system */
-static int devpm_fd = -1; /* Used only on E* system */
-static int full_pwr = DEFAULT_CPU_FULL_POWER;
-
-/*
- * Initialize system PM state enable/disable and
- * enable system default info logging accordingly.
- * Note: Even for systems for which CPU PM is not enabled by
- * default, disk PM may be enabled explicitly using power.conf;
- * If power management is enabled, disable informational logging
- * by default.
- * Some platforms don't have /dev/pm entry. It is perfectly OK.
- * Don't complain if there is no /dev/pm entry.
- * The platforms on which CPU PM is enabled by default, would
- * ofcourse have /dev/pm entry.
- *
- * Note: open_dev_pm() should have been called initially before
- * calling this function.
- *
- */
-
-void
-update_pm_state()
-{
- int pm_stat;
-
- if (devpm_fd == -1)
- return;
-
- pm_stat = ioctl(devpm_fd, PM_GET_PM_STATE);
-
- if (pm_stat == -1)
- return;
-
- sys_pm_state = pm_stat;
-
-}
-
-/*
- * Some platforms don't support power management. (neither CPU nor disk)
- * Those platforms don't have /dev/pm entry. Don't complain in such case.
- * Some platfors support PM only for disks. (they have /dev/pm entry.
- * and logging is disabled on those platforms.)
- * Some platforms support PM for both disks and CPUs (apart from others).
- * Those platforms also have /dev/pm entry.
- * Note that even desktops which support CPU PM E* can be custom
- * configured to remove power management drivers. In that case,
- * there won't be any /dev/pm entry and it is valid config.
- *
- */
-
-static void open_dev_pm()
-{
- devpm_fd = open(DEV_PM, O_RDWR);
-
-}
-
-/*
- * Initialize Estar info database.
- *
- */
-
-void
-init_estar_db()
-{
- di_node_t fnode, node;
- di_prop_t nextp;
- char *path = NULL;
- int cpu_i;
- int is_pmprop_found = 0;
- pm_req_t pmreq;
- uchar_t *prop_data = NULL;
-
- /*
- * First open /dev/pm and keep it open for later uses.
- * Note that this needs to be open on all power management supported
- * systems. Some systems support power mgmt on only some
- * devices like disk, but not CPU. /dev/pm does not exist on
- * some platforms. Also PM drivers can be removed on custom
- * configurations.
- */
- open_dev_pm();
-
- if (devpm_fd == -1)
- return;
-
- fps_di_root = di_init("/", DINFOCPYALL);
-
- if (DI_NODE_NIL == fps_di_root) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING, DI_INIT_FAIL);
- }
-
- fps_di_prom = di_prom_init();
-
- if (DI_PROM_HANDLE_NIL == fps_di_prom) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING, DI_PROM_INIT_FAIL);
- di_fini(fps_di_root);
- }
-
- if (di_prom_prop_lookup_bytes(fps_di_prom, fps_di_root,
- "energystar-v3", &prop_data) == -1)
- goto exit_es;
-
- /*
- * As a final check, also check for "us" driver property pm-components
- * On Estar systems, the driver should define this property.
- */
-
- fnode = node = di_drv_first_node("us", fps_di_root);
-
- if (DI_NODE_NIL == node) {
- goto exit_es;
- }
-
- is_pmprop_found = 0;
- for (nextp = di_prop_next(node, DI_PROP_NIL); nextp != DI_PROP_NIL;
- nextp = di_prop_next(node, nextp)) {
- if (strcmp(di_prop_name(nextp), "pm-components") == 0) {
- is_pmprop_found = 1;
- break;
- }
- }
-
- if (!is_pmprop_found)
- goto exit_es;
-
- is_estar_system = 1; /* CPU power mgmt supported E* system */
-
- num_cpus = 0;
- while (node != DI_NODE_NIL) {
- num_cpus++;
- node = di_drv_next_node(node);
- }
-
- cpu_dpaths = (char **)calloc(num_cpus+1, sizeof (char *));
- proc_ids = (int *)calloc(num_cpus+1, sizeof (int));
- proc_ids[num_cpus] = -1; /* Terminate processor ids by -1 */
-
- cpu_i = 0;
- for (node = fnode; node != DI_NODE_NIL; node = di_drv_next_node(node)) {
- proc_ids[cpu_i] = -1;
- cpu_dpaths[cpu_i] = NULL;
-
- path = di_devfs_path(node);
- if (NULL == path)
- continue;
- cpu_dpaths[cpu_i] = strdup(path);
- di_devfs_path_free(path);
- /*
- * Keep the mapping between path and processor IDs.
- * Currently, processor IDs are not used.
- * But may be used in future.
- */
-
- /*
- * On workstation platforms (where CPU E* supported),
- * processor ID and instance numbers are same.
- * This may change in future. So watch out.
- */
-
- proc_ids[cpu_i] = di_instance(node); /* Currently unused. */
- cpu_i++;
- }
-
- proc_ids[cpu_i] = -1;
- cpu_dpaths[cpu_i] = NULL;
-
- /* Initialize what "FULL POWER" mode is. */
- full_pwr = DEFAULT_CPU_FULL_POWER;
-
- pmreq.physpath = cpu_dpaths[0];
- pmreq.component = 0;
- pmreq.value = 0;
- pmreq.data = NULL;
- pmreq.datasize = 0;
-
-
- full_pwr = ioctl(devpm_fd, PM_GET_FULL_POWER, &pmreq);
- if (full_pwr == -1)
- full_pwr = DEFAULT_CPU_FULL_POWER;
-exit_es:
-
- if (fps_di_root != DI_NODE_NIL) {
- di_fini(fps_di_root);
- fps_di_root = DI_NODE_NIL;
- }
- if (DI_PROM_HANDLE_NIL != fps_di_prom) {
- di_prom_fini(fps_di_prom);
- fps_di_prom = DI_PROM_HANDLE_NIL;
- }
-}
-
-/*
- * Return the min(idle_times), min(remaining_times), max(rem_time) for all
- * CPUs in full power mode. The "remain time" is the remaining
- * threshold time after which the CPU will make next lower level
- * power transition if left idle.
- * If the CPUs are not in full power mode or could not exactly determine
- * the power mode then return -1.
- * return 0 if CPUs are in full power mode.
- */
-
-int
-get_idle_rem_stats(int *min_idle, int *min_rem, int *max_rem)
-{
- int idle_time;
- int pmstats[2];
- int i;
- pm_req_t pmreq;
- int ret;
-
- *min_idle = -1;
- *min_rem = -1;
- *max_rem = -1;
-
- for (i = 0; i < num_cpus; i++) {
-
- pmreq.physpath = cpu_dpaths[i];
- pmreq.component = 0;
- pmreq.value = 0;
- pmreq.data = pmstats;
- pmreq.datasize = sizeof (pmstats);
- idle_time = ioctl(devpm_fd, PM_GET_TIME_IDLE, &pmreq);
- if (idle_time == -1)
- continue;
- ret = ioctl(devpm_fd, PM_GET_STATS, &pmreq);
-
- /* Now pmstats[0] = cur power level; pmstats[1]=remain time */
- if (ret == -1)
- continue;
- if (pmstats[0] != full_pwr)
- continue;
-
- if ((*min_idle == -1) || (idle_time < *min_idle))
- *min_idle = idle_time;
- if (*min_rem == -1 || pmstats[1] < *min_rem) {
- *min_rem = pmstats[1];
-
- /*
- * The remain time can be negative if there are 2 cpus
- * and 1 cpu is ready to transition
- * and the other one is not
- */
- if (*min_rem < 0)
- *min_rem = 0;
- }
- if (*max_rem == -1 || pmstats[1] > *max_rem)
- *max_rem = pmstats[1];
- }
-
- return
- ((*min_idle == -1 || *min_rem == -1 || *max_rem == -1) ? -1 : 0);
-}
-
-/*
- * Wait until CPU comes to full power state or timeout occurs.
- * If multiple threads call this function, execute the
- * PM ioctl system call only once.
- * This is better than all 3 threads polling cpu pwr state same time.
- *
- * Callers of this function should not assume that on returning from
- * this function CPU will be in full power state.
- * (They should check again).
- * This function just optimizes for performance during wait.
- *
- *
- */
-
-void
-wait_for_pm_state_change()
-{
- int res;
- static pthread_mutex_t wrlck;
- static int is_active = 0;
- static pm_req_t pmreq;
- static pm_state_change_t pmsc;
- static char path[MAXPATHLEN];
-
- int pwr = 0;
- int cur_lvl = 0; /* 0 = unknown. 1=low, 3=full power */
-
- pmreq.physpath = cpu_dpaths[0];
- pmreq.component = 0;
- pmreq.value = 0;
- pmreq.data = NULL;
- pmreq.datasize = 0;
-
-
- (void) pthread_mutex_lock(&wrlck);
-
- if (!is_active) { /* This is the first thread trying to wait */
- is_active = 1;
- (void) pthread_mutex_unlock(&wrlck);
-
- pmsc.physpath = path;
- pmsc.size = MAXPATHLEN;
- path[0] = 0; /* init not required. Just in case... */
-
- /*
- * PM starts buffering the state changes after the first call to
- * PM_GET_STATE_CHANGE/PM_GET_STATE_CHANGE_WAIT
- *
- * The PM_GET_STATE_CHANGE is a non-blocking call where as
- * _WAIT is blocking call. The PM_GET_STATE_CHANGE also
- * returns all the info * about the latest buffered state
- * change if already buffered event is available. So it is
- * important to drain out all old events,
- * if you are only interested in future events.
- *
- * After the state changes the exact information/timestamp about
- * state changes are reflected in the ioctl struct.
- * To keep things simple, after draining out all buffered info,
- * we issue get current power to get the current power level and
- * then we issue another _WAIT command to get the
- * next power change.
- *
- */
-
- do {
-
- res = ioctl(devpm_fd, PM_GET_STATE_CHANGE, &pmsc);
-
- if (res == -1 && errno != EWOULDBLOCK) {
- fpsd_message(FPSD_NO_EXIT, FPS_WARNING,
- INTERNAL_FAILURE_WARN,
- strerror(errno));
- /* 1 second sleep. Avoid busy loop */
- (void) poll(NULL, 0, 1000);
- /* Probably will succeed in next call. */
- goto psc_complete;
- }
-
- } while (errno != EWOULDBLOCK);
-
- /* drain out all buffered state changes */
-
- /* If current state is full power, then get out. */
-
- do {
- pwr = ioctl(devpm_fd, PM_GET_CURRENT_POWER, &pmreq);
- if (pwr != -1) break;
- if (errno == EAGAIN) {
- (void) poll(NULL, 0, 1000); /* 1 sec sleep */
- continue;
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_WARNING,
- INTERNAL_FAILURE_WARN1,
- strerror(errno));
- (void) poll(NULL, 0, 1000); /* 1 sec sleep */
- goto psc_complete;
- }
- /*CONSTCOND*/
- } while (1);
-
- if (pwr == full_pwr)
- goto psc_complete;
-
- while (cur_lvl != full_pwr) {
- pmsc.physpath = path;
- pmsc.size = MAXPATHLEN;
- path[0] = 0; /* init not required. Just in case... */
-
- do {
- res = ioctl(devpm_fd,
- PM_GET_STATE_CHANGE_WAIT, &pmsc);
- if (res == -1 && errno == EINTR) {
- /* 1 second sleep */
- (void) poll(NULL, 0, 1000);
- }
- } while (res == -1 && errno == EINTR);
-
- if (res == -1) {
- fpsd_message(FPSD_NO_EXIT, FPS_WARNING,
- INTERNAL_FAILURE_WARN2,
- strerror(errno));
- /*
- * If there are failures in state change ioctl,
- * just would fall back to normal polling of
- * status later. get out quiet.
- */
- /* avoid busy loop -- 1 second sleep */
- (void) poll(NULL, 0, 1000);
- goto psc_complete;
- }
-
- if (strcmp(pmsc.physpath, cpu_dpaths[0]) == 0 &&
- pmsc.new_level == full_pwr)
- cur_lvl = full_pwr;
- }
-
-psc_complete:
- (void) pthread_mutex_lock(&wrlck);
- is_active = 0;
- (void) pthread_mutex_unlock(&wrlck);
-
- } else {
- /* Release the lock first */
- (void) pthread_mutex_unlock(&wrlck);
- /*
- * Already one other thread is active issuing ioctl call.
- * Just poll here to check the local flag without any expensive
- * ioctl calls until the transition is complete.
- */
- (void) poll(NULL, 0, 1000); /* first time 1 second wait */
- for (;;) {
- (void) pthread_mutex_lock(&wrlck);
- if (!is_active) {
- (void) pthread_mutex_unlock(&wrlck);
- break;
- }
- (void) pthread_mutex_unlock(&wrlck);
- (void) poll(NULL, 0, 4000); /* 4 seconds wait */
- }
- }
-}
diff --git a/usr/src/cmd/fps/fpsd/fpsd_log.c b/usr/src/cmd/fps/fpsd/fpsd_log.c
deleted file mode 100644
index 325e8d5be7..0000000000
--- a/usr/src/cmd/fps/fpsd/fpsd_log.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Logging support for the FPS Daemon
- */
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <errno.h>
-#include <syslog.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <synch.h>
-#include <unistd.h>
-
-#include <fpsapi.h>
-
-#include "fpsd.h"
-#include "messages.h"
-
-#define FPSD_MAX_MSG_HDR_LEN 256
-#define FPSD_MAX_TIME_LEN 32
-
-pthread_mutex_t log_mutex;
-
-static char *log_prio_str[] = {
- "ERROR: ", /* LOG_ERR */
- "WARNING: ", /* LOG_WARNING */
- "INFO: ", /* LOG_INFO */
- "DEBUG: " /* LOG_DEBUG */
-};
-
-/*
- * Generate a timestamp string in the provided buffer.
- * If any errors are encountered, the function returns
- * with the buffer containing an empty string.
- */
-static void
-fpsd_timestamp(char *buf, size_t buflen)
-{
- struct tm ltime;
- struct timeval now;
-
- if ((buf == NULL) || (buflen == 0))
- return;
-
- buf[0] = '\0';
-
- if (gettimeofday(&now, NULL) != 0) {
- (void) fprintf(stderr, GET_TIME_FAILED,
- strerror(errno));
- return;
- }
-
- if (localtime_r(&now.tv_sec, &ltime) == NULL) {
- (void) fprintf(stderr, LOCAL_TIME_FAILED,
- strerror(errno));
- return;
- }
-
- if (strftime(buf, buflen, "%b %e %T ", &ltime) == 0) {
- (void) fprintf(stderr, STRFTIME_FAILED, buflen);
- /*
- * On failure, the contents of the buffer
- * are indeterminate. Restore it to a known
- * state before returning.
- */
- buf[0] = '\0';
- }
-}
-
-static void
-fpsd_log_msg(int prio, const char *fmt, va_list vap)
-{
- char msgbuf[FPSD_MAX_MSG_HDR_LEN];
- char timebuf[FPSD_MAX_TIME_LEN] = "";
-
- if ((prio > debug_level) || (prio < 0))
- return;
- if ((fpsd.d_fg) || (!fpsd.d_daemon)) {
- /* generate a timestamp for output */
- fpsd_timestamp(timebuf, sizeof (timebuf));
- (void) snprintf(msgbuf, sizeof (msgbuf), "%s %s %s ",
- timebuf, FPS_DAEMON_NAME, log_prio_str[prio]);
- }
-
- /* In debug mode, messages will be sent to the controlling terminal */
-
- if (fpsd.d_fg || !fpsd.d_daemon) {
- (void) fprintf(stderr, PRINT_BUFFER, msgbuf);
- (void) vfprintf(stderr, fmt, vap);
- return;
- }
-
- switch (prio) {
-
- case FPS_ERROR: /* Log into syslog */
- vsyslog(LOG_ERR, fmt, vap);
- break;
-
- case FPS_WARNING:
- vsyslog(LOG_WARNING, fmt, vap);
- break;
-
- case FPS_INFO:
- vsyslog(LOG_INFO, fmt, vap);
- break;
-
- case FPS_DEBUG:
- vsyslog(LOG_DEBUG, fmt, vap);
- break;
- }
-
-}
-
-void
-fpsd_message(int return_code, int msg_type, char *fmt, ...)
-{
- va_list vap;
- (void) pthread_mutex_lock(&log_mutex);
- va_start(vap, fmt);
- fpsd_log_msg(msg_type, fmt, vap);
- va_end(vap);
- (void) pthread_mutex_unlock(&log_mutex);
-
- if (return_code > 0) {
- terminate_process();
- _exit(return_code);
- }
-}
diff --git a/usr/src/cmd/fps/fpsd/fpsd_main.c b/usr/src/cmd/fps/fpsd/fpsd_main.c
deleted file mode 100644
index 9da76324f5..0000000000
--- a/usr/src/cmd/fps/fpsd/fpsd_main.c
+++ /dev/null
@@ -1,1246 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <dlfcn.h>
-#include <door.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <strings.h>
-#include <unistd.h>
-#include <synch.h>
-#include <syslog.h>
-#include <pthread.h>
-#include <thread.h>
-#include <signal.h>
-#include <limits.h>
-#include <locale.h>
-#include <sys/stat.h>
-#include <sys/systeminfo.h>
-#include <sys/wait.h>
-#include <sys/processor.h>
-#include <ctype.h>
-#include <poll.h>
-#include <sys/wait.h>
-#include <dirent.h>
-#include <kstat.h>
-#include <libscf.h>
-#include <sys/pset.h>
-#include <sys/param.h>
-#include <sys/corectl.h>
-#include <libgen.h>
-#include <priv_utils.h>
-#include <fpsapi.h>
-
-#include "fpsd.h"
-#include "messages.h"
-
-#define SMF_SNAPSHOT_RUNNING "running"
-
-/* Only messages of priority 'debug_level' and lower will be logged */
-int debug_level = DFLT_DBG_LVL;
-
-fpsd_t fpsd;
-mach_conf_t fpsd_conf;
-char fps_tst_path[MAXPATHLEN + MAXNAMELEN];
-
-void terminate_process();
-
-/* Local Static Variables */
-
-static int door_id = -1;
-static char *str_fps_fmri = NULL;
-
-/* Local static functions */
-
-static int check_if_supported_CPU(char *cpu_brand, char *arch);
-static int read_conf_props();
-static void fpsd_fini();
-static int reprobe_and_reread_config();
-static int fpsd_probe_config();
-static int fpsd_probe(mach_conf_t *m_stat);
-
-
-/* ARGSUSED */
-void
-sig_hup_handler(int sig, siginfo_t *siginfo, void *sigctx)
-{
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- SIGNAL_INFO, "HUP", SIGHUP);
- fpsd.d_conf->m_reprobe = 1;
-}
-
-void
-fpsd_read_config()
-{
- int ret;
-
- ret = reprobe_and_reread_config();
- if (NO_CPUS_2_TEST == ret) {
- while (NO_CPUS_2_TEST == ret) {
- if (!fpsd.d_conf->m_reprobe) {
- (void) sleep(600);
- }
- ret = reprobe_and_reread_config();
- }
- }
-}
-
-static int
-reprobe_and_reread_config()
-{
- int ret;
- static int first_time = 1;
-
- if (!first_time) {
- fpsd.d_conf->m_reprobe = 1;
- if (fpsd_probe(fpsd.d_conf) != 0) {
- (void) fpsd_message(FPSD_EXIT_ERROR,
- FPS_WARNING, REPROBE_FAILURE);
- }
- } else {
- first_time = 0;
- }
- ret = fpsd_probe_config();
- if (ZERO_INTERVAL == ret) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING,
- FPSD_ZERO_INTVL, fpsd.d_interval);
- }
- return (ret);
-
-}
-
-static int
-daemon_exists()
-{
- int door_fd;
- struct door_info dinfo;
-
- door_fd = open(FPS_DOOR_FILE, O_RDONLY);
- if (door_fd < 0)
- return (NO_DAEMON);
- if (door_info(door_fd, &dinfo) < 0) {
- (void) close(door_fd);
- return (NO_DAEMON);
- }
- if ((dinfo.di_attributes & DOOR_REVOKED) ||
- (dinfo.di_data != (uintptr_t)FPS_DOOR_COOKIE)) {
- (void) close(door_fd);
- return (NO_DAEMON);
- }
- if (dinfo.di_target != getpid()) {
- /* Daemon exists; different process */
- (void) close(door_fd);
- return (DAEMON_EXISTS);
- } else {
- (void) close(door_fd);
- return (DAEMON_EXISTS_AND_SAME_PROC); /* Same process */
- }
-
-}
-
-static int
-fps_setup_door(void)
-{
-
- struct stat stbuf;
- int newfd;
-
- /* Create the door */
- door_id = door_create(fps_door_handler, FPS_DOOR_COOKIE, 0);
-
- if (door_id < 0) {
- fpsd_message(FPSD_NO_EXIT, FPS_WARNING, DAEMON_DOOR_FAIL,
- strerror(errno));
- return (-1);
- }
-
- if (stat(FPS_DOOR_FILE, &stbuf) < 0) {
- if ((newfd = creat(FPS_DOOR_FILE, 0600)) < 0) {
- fpsd_message(FPSD_NO_EXIT, FPS_ERROR,
- DAEMON_DOOR_FILE_FAIL, strerror(errno));
- return (-1);
- }
- (void) close(newfd);
- }
-
- if (fattach(door_id, FPS_DOOR_FILE) < 0) {
- if ((errno != EBUSY) || (fdetach(FPS_DOOR_FILE) < 0) ||
- (fattach(door_id, FPS_DOOR_FILE) < 0)) {
- fpsd_message(FPSD_NO_EXIT, FPS_ERROR,
- DAEMON_DOOR_FATTACH_FAIL,
- strerror(errno));
- return (-1);
- }
- }
-
- return (0);
-}
-
-void
-terminate_process()
-{
- fpsd_fini();
- if (door_id >= 0) {
- (void) door_revoke(door_id);
- (void) unlink(FPS_DOOR_FILE);
- }
-}
-
-static int
-become_daemon_init()
-{
- int pfds[2];
- pid_t pid;
- int status;
- sigset_t set, oset;
-
- /*
- * Block all signals prior to the fork and leave them blocked in
- * the parent so we don't get in a situation where the parent gets
- * SIGINT and returns non-zero exit status and the child is
- * actually running. In the child, restore the signal mask once
- * we've done our setsid().
- */
- (void) sigfillset(&set);
- (void) sigdelset(&set, SIGABRT);
- (void) sigdelset(&set, SIGHUP);
- (void) sigprocmask(SIG_BLOCK, &set, &oset);
-
-
- if (pipe(pfds) == -1)
- fpsd_message(FPSD_EXIT_ERROR, FPS_ERROR, DAEMON_PIPE_FAIL,
- strerror(errno));
-
- if ((pid = fork()) == -1)
- fpsd_message(FPSD_EXIT_ERROR, FPS_ERROR, DAEMON_FORK_FAIL,
- strerror(errno));
-
- /*
- * If we're the parent process, wait for either the child to send
- * us the appropriate exit status over the pipe or for the read to
- * fail (presumably with 0 for EOF if our child terminated
- * abnormally). If the read fails, exit with either the child's
- * exit status if it exited or with FPSD_EXIT_ERROR if it died
- * from a fatal signal.
- */
- if (pid != 0) { /* Parent */
- (void) close(pfds[1]);
-
- if (read(pfds[0], &status, sizeof (status)) == sizeof (status))
- _exit(status);
-
- if (waitpid(pid, &status, 0) == pid && WIFEXITED(status))
- _exit(WEXITSTATUS(status));
-
- _exit(FPSD_EXIT_ERROR);
- }
-
- fpsd.d_pid = getpid();
- (void) sigprocmask(SIG_SETMASK, &oset, NULL); /* Restore signal mask */
- (void) setsid();
- (void) chdir("/");
- (void) umask(022);
- (void) close(pfds[0]);
- return (pfds[1]);
-}
-
-
-static void
-become_daemon_fini(int fd)
-{
- (void) close(fd);
- if ((fd = open("/dev/null", O_RDWR)) >= 0) {
- (void) fcntl(fd, F_DUP2FD, STDIN_FILENO);
- (void) fcntl(fd, F_DUP2FD, STDOUT_FILENO);
- (void) fcntl(fd, F_DUP2FD, STDERR_FILENO);
- (void) close(fd);
- }
-
-}
-
-/*
- * Calculates the number of iterations needed for each testable cpu
- * based on the frequency and using the following table. This table
- * tells how much time it takes for the matrix sizes on a processor
- * with frequencies upto 1000MHz/1500 MHz/ 2000 MHz. This data is
- * based on profiling done earlier.
- *
- * f\p\t| 100 200 300 400 500 600 700 800 900 ms
- * ======================================================================
- * 1000 1-28 29-50 51-62 63-72 73-81 82-90 91-98 99-105 106-112
- * 1500 1-36 37-64 65-80 81-93 94-106 107-115 116-126 127-134 135-144
- * 2000 1-39 40-70 71-87 88-102 103-113 114-126 127-137 138-148 149-157
- *
- * If asc is 0, these iterations will be executed in the descending of
- * of matrix size; else the iterations will be executed in the increasing
- * order of matrix sizes. This is done to average out the execution time
- * as large matrices mean more time to complete the test.
- */
-
-static void
-calculateTotalIterations(mach_conf_t *m_stat)
-{
- const int num_iterations_1K = 112;
- const int num_iterations_1500 = 144;
- const int num_iterations_2K = 157;
-
- int total_iterations = 0;
- int asc = 1;
- int i;
- int freq;
-
- if (m_stat->m_cpuids_size <= 0) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING,
- ZERO_CPUS_2_TST);
- }
- m_stat->m_num_cpus_to_test = 0;
- for (i = 0; i < m_stat->m_cpuids_size; i++) {
- if (m_stat->m_cpus[i].disable_test)
- continue;
- freq = m_stat->m_cpus[i].frequency;
- m_stat->m_cpus[i].asc = asc;
- if (freq < 1500) {
- total_iterations += num_iterations_1K;
- m_stat->m_cpus[i].total_iterations = num_iterations_1K;
- } else if (freq < 2000) {
- total_iterations += num_iterations_1500;
- m_stat->m_cpus[i].total_iterations =
- num_iterations_1500;
- } else {
- total_iterations += num_iterations_2K;
- m_stat->m_cpus[i].total_iterations = num_iterations_2K;
- }
- if (asc) {
- m_stat->m_cpus[i].previous_iteration = 0;
- asc = 0;
- } else {
- m_stat->m_cpus[i].previous_iteration =
- m_stat->m_cpus[i].total_iterations + 1;
- asc = 1;
- }
- m_stat->m_num_cpus_to_test++;
- }
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, TOT_ITERS,
- total_iterations, m_stat->m_num_cpus_to_test);
- fpsd.d_conf->total_iter = total_iterations;
-}
-
-/*
- * Calculates the time interval between the tests invocation in seconds.
- * The goal is to complete once all iterations for all cpus in a 24hr
- * period.
- */
-
-static int
-calculateTimeInterval()
-{
- int total_iterations = fpsd.d_conf->total_iter;
- int intvl;
-
- if (total_iterations <= 0) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING,
- FPSD_MIS_CALCULATIONS, total_iterations);
- }
- intvl = (24*60*60) / (total_iterations);
- fpsd.d_interval = intvl;
- return (1);
-}
-
-/*
- * Checks if a platform is supported by looking for the corresponding
- * binary under /usr/lib/fps/ARCH/CPU_BRAND/fptest; (e.g) ARCH = sun4u,
- * CPU_BRAND = UltraSPARC-III;
- */
-
-static int
-check_if_supported_CPU(char *cpu_brand, char *arch)
-{
- if ((NULL == cpu_brand) || (NULL == arch)) {
- return (0);
- }
- (void) snprintf(fps_tst_path, sizeof (fps_tst_path), "%s/%s/%s/%s",
- FPS_DIR, arch, cpu_brand, FPS_FPUTST_NAME);
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, FPTST_BIN_PTH, fps_tst_path);
- if (access(fps_tst_path, X_OK) == 0)
- return (1);
- else
- return (0);
-}
-
-/*
- * fpsd_probe(): probes system configuration and
- * sets up the fpsd_t structure.
- * Returns 0 on success, non-zero on failure.
- *
- */
-static int
-fpsd_probe(mach_conf_t *m_stat)
-{
- kstat_ctl_t *kstat_ctl;
- kstat_t *fps_kstat;
- kstat_named_t *kstat_cpu_name;
- kstat_named_t *kstat_cpu_freq;
- char *cpu_brand = NULL;
- int cpu_freq;
- int supported;
- int i;
- int cpuid_index;
-
- processorid_t *cpuid_list = NULL;
- kid_t ret;
- int total_onln = sysconf(_SC_NPROCESSORS_ONLN);
-
- /* probe the system and fill in mach_conf_t elements */
-
- (void) sysinfo(SI_MACHINE, m_stat->m_machine,
- sizeof (m_stat->m_machine) - 1);
-
- if (1 == m_stat->m_reprobe) {
- /* Reprobe request */
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, REPRBE_REQ);
- fpsd.d_iteration = 0;
- fpsd.d_interval = 0;
- fpsd.d_fpuid_index = 0;
- m_stat->m_num_on_fpuids = 0;
- m_stat->m_cpuids_size = 0;
- m_stat->total_iter = 0;
- m_stat->m_reprobe = 0;
- m_stat->m_num_cpus_to_test = 0;
-
- if (NULL != fpsd.d_ignore_cpuid) {
- free(fpsd.d_ignore_cpuid);
- }
- }
-
- /*
- * Find number of online FPUs, and initialize
- * m_stat->m_num_on_fpuids. Then collect kstat
- * cpu_info for each.
- */
-
- cpuid_list = (processorid_t *)malloc(m_stat->m_num_fpus *
- sizeof (processorid_t));
- if (NULL == cpuid_list) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, LIBRARY_CALL_FAIL,
- "malloc", strerror(errno));
- return (-1);
- }
- /* Initialize cpuid_list */
- for (i = 0; i < m_stat->m_num_fpus; i++) {
- cpuid_list[i] = -1;
- }
-
- cpuid_index = 0;
- for (i = 0; i < m_stat->m_max_cpuid; i++) {
- if (p_online(i, P_STATUS) == P_ONLINE) {
- cpuid_list[cpuid_index++] = i;
- }
- if (cpuid_index == total_onln) {
- /* Break after all onln cpuids found */
- break;
- }
- }
- m_stat->m_num_on_fpuids = (uint_t)cpuid_index;
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, NUM_ONLN_CPUS,
- m_stat->m_num_on_fpuids);
-
- /*
- * Get cpu-brand info all valid cpuids using kstat.
- * This is needed to take care
- * of mixed cpu scenario
- */
-
- kstat_ctl = kstat_open();
- if (NULL == kstat_ctl) {
- fpsd_message(FPSD_NO_EXIT, FPS_WARNING, LIBRARY_CALL_FAIL,
- "kstat_open", strerror(errno));
- free(cpuid_list);
- return (-1);
- }
-
-
- for (i = 0; i < m_stat->m_num_on_fpuids; i++) {
-
- supported = 0;
- fps_kstat = NULL;
-
- if ((cpuid_list[i] < 0) ||
- (cpuid_list[i] >= m_stat->m_max_cpuid)) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- INVALID_CPUID, cpuid_list[i]);
- free(cpuid_list);
- return (-1);
- }
- fps_kstat = kstat_lookup(kstat_ctl, "cpu_info",
- cpuid_list[i], NULL);
- if (NULL == fps_kstat) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- LIBRARY_CALL_FAIL, "kstat_lookup",
- strerror(errno));
- (void) kstat_close(kstat_ctl);
- free(cpuid_list);
- return (-1);
- }
- ret = kstat_read(kstat_ctl, fps_kstat, NULL);
- if (ret != -1) {
- kstat_cpu_name = kstat_data_lookup(fps_kstat,
- "brand");
- if (NULL != kstat_cpu_name) {
- cpu_brand = KSTAT_NAMED_STR_PTR(
- kstat_cpu_name);
-
- supported = check_if_supported_CPU(
- cpu_brand, m_stat->m_machine);
- }
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- CPU_BRAND_PROBE_FAIL, cpuid_list[i]);
- (void) kstat_close(kstat_ctl);
- free(cpuid_list);
- return (-1);
- }
- if (!supported) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- CPU_NOT_SUPPORTED, cpu_brand,
- cpuid_list[i]);
- m_stat->m_cpus[i].disable_test = 1;
- (void) strcpy(m_stat->m_cpus[i].fptest_path, "");
- } else {
- m_stat->m_cpus[i].disable_test = 0;
- m_stat->m_num_cpus_to_test++;
- (void) strlcpy(m_stat->m_cpus[i].fptest_path,
- fps_tst_path,
- sizeof (m_stat->m_cpus[i].fptest_path));
- }
-
- /* Get frequency */
-
- kstat_cpu_freq = kstat_data_lookup(fps_kstat,
- "clock_MHz");
- if (NULL != kstat_cpu_freq) {
- cpu_freq = (int)kstat_cpu_freq->value.l;
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- FREQ_PROBE_FAIL, cpuid_list[i]);
- (void) kstat_close(kstat_ctl);
- free(cpuid_list);
- return (-1);
- }
-
- m_stat->m_cpus[i].cpuid = cpuid_list[i];
- m_stat->m_cpus[i].frequency = cpu_freq;
- (void) strncpy(m_stat->m_cpus[i].brand, cpu_brand,
- sizeof (m_stat->m_cpus[i].brand));
- m_stat->m_cpus[i].num_failures = 0;
-
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, CPU_INFO,
- cpuid_list[i], m_stat->m_cpus[i].brand,
- cpu_freq);
- }
- m_stat->m_cpuids_size = (int)m_stat->m_num_on_fpuids;
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- NUM_CPUS_2_TST, m_stat->m_cpuids_size);
- free(cpuid_list);
- (void) kstat_close(kstat_ctl);
- if (m_stat->m_num_cpus_to_test <= 0) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- FPSD_NO_CPUS_TO_TEST);
- return (-1);
- }
- return (0);
-}
-
-/*
- * returns 1 if cpuid is found in the list of cpus to be
- * excluded from testing.
- */
-static int
-ignore_cpu(int cpuid)
-{
- int found = 0;
- int i;
- processorid_t *ignore_cpus = fpsd.d_ignore_cpuid;
- for (i = 0; (i < fpsd.num_ignore_cpus) && (!found); i++) {
- if (ignore_cpus[i] == cpuid) {
- found = 1;
- }
- }
- return (found);
-}
-
-/*
- * This function checks if the string has contiguous valid
- * digits. Leading and trailing blanks are O.K. Returns 0
- * if string is not a valid integer and 1 if valid.
- */
-
-static int
-valid_integer(char *cpu_str)
-{
- char *tmp_str = cpu_str;
-
- if ((NULL == cpu_str) || (strlen(cpu_str) == 0)) {
- return (0);
- }
- while (*tmp_str) {
- if (isblank(*tmp_str)) {
- tmp_str++;
- } else if (isdigit(*tmp_str)) {
- break;
- } else {
- return (0);
- }
- }
- if (!(*tmp_str)) {
- return (0);
- }
- while (*tmp_str) {
- if (isdigit(*tmp_str)) {
- tmp_str++;
- } else if (isblank(*tmp_str)) {
- break;
- } else
- return (0);
- }
- if (*tmp_str) {
- while (*tmp_str) {
- if (isblank(*tmp_str)) {
- tmp_str++;
- }
- else
- return (0);
- }
- }
- return (1);
-}
-
-/*
- * This function parses the string of cpu-ids separated by
- * "," , constructs the list and disables testing on those
- * cpus. This function assumes fpsd_probe has been called and all
- * the machine config info is available in structure fpsd.
- */
-
-static int
-parse_and_set_cpu_id_list(char *strCPUs)
-{
- char *last;
- int num_cpus = 0, invalid = 0;
- int *tmp_cpus;
- int num_cpus_to_test = 0;
- int i;
- int t_cpuid;
- char *cpu_id;
- static int first_time = 1;
-
- tmp_cpus = (int *)malloc((int)fpsd.d_conf->m_num_fpus * sizeof (int));
- if (NULL == tmp_cpus)
- return (-1);
- cpu_id = strtok_r(strCPUs, ",", &last);
-
- while ((NULL != cpu_id) && (!invalid)) {
- if (valid_integer(cpu_id)) {
- tmp_cpus[num_cpus++] =
- (int)strtol(cpu_id, (char **)NULL, 10);
- cpu_id = strtok_r(NULL, ",", &last);
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- INVAL_PROP_VALUE, cpu_id);
- invalid = 1;
- }
- if (num_cpus > fpsd.d_conf->m_num_fpus) {
- /* More than max supported cpus */
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- INVAL_PROP_VALUE, strCPUs);
- invalid = 1;
- }
- }
- if ((!invalid) && (num_cpus > 0)) {
- fpsd.d_ignore_cpuid = (processorid_t *)malloc(
- sizeof (processorid_t) * (int) num_cpus);
- if (NULL != fpsd.d_ignore_cpuid) {
- for (i = 0; i < num_cpus; i++) {
- fpsd.d_ignore_cpuid[i] = tmp_cpus[i];
- }
- fpsd.num_ignore_cpus = num_cpus;
- } else {
- fpsd.num_ignore_cpus = 0;
- }
- } else {
- fpsd.d_ignore_cpuid = NULL;
- fpsd.num_ignore_cpus = 0;
- }
- free(tmp_cpus);
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, NUM_IGN_CPUS,
- fpsd.num_ignore_cpus);
- if ((fpsd.num_ignore_cpus > 0) && (fpsd.d_conf->m_cpuids_size > 0)) {
- for (i = 0; i < fpsd.d_conf->m_cpuids_size; i++) {
- t_cpuid = fpsd.d_conf->m_cpus[i].cpuid;
- if (ignore_cpu(t_cpuid)) {
- fpsd.d_conf->m_cpus[i].disable_test = 1;
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- IGN_CPUS, t_cpuid);
- } else {
- num_cpus_to_test++;
- }
- }
- fpsd.d_conf->m_num_cpus_to_test = num_cpus_to_test;
- if (num_cpus_to_test <= 0) {
- if (1 == first_time) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- ALL_CPUS_EXCLDED);
- first_time = 0;
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- ALL_CPUS_EXCLDED);
- }
- return (NO_CPUS_2_TEST);
- }
- }
- first_time = 1;
- return (0);
-}
-
-#define CLEAN_UP_SCF_STUFF { \
- if (scf_handle_p) { \
- (void) scf_handle_unbind(scf_handle_p); \
- scf_handle_destroy(scf_handle_p); \
- } \
- if (inst) \
- scf_instance_destroy(inst); \
- if (pg) \
- scf_pg_destroy(pg); \
- if (scf_prop_p) \
- scf_property_destroy(scf_prop_p); \
- if (value) \
- scf_value_destroy(value); \
- if (scf_snapshot_p) \
- scf_snapshot_destroy(scf_snapshot_p); \
-}
-
-/* Read properties from SMF configuration repository using libscf APIs */
-
-static int
-read_conf_props()
-{
- scf_handle_t *scf_handle_p;
- scf_property_t *scf_prop_p = NULL;
- scf_instance_t *inst = NULL;
- scf_propertygroup_t *pg = NULL;
- scf_value_t *value = NULL;
- int ret_val = -1;
- int val;
- int64_t intvl;
- int name_len;
- char *strCPUs;
- scf_snapshot_t *scf_snapshot_p = NULL;
-
- scf_handle_p = scf_handle_create(SCF_VERSION);
- if ((NULL != scf_handle_p) && (NULL != str_fps_fmri)) {
- if (scf_handle_bind(scf_handle_p) != -1) {
- inst = scf_instance_create(scf_handle_p);
- pg = scf_pg_create(scf_handle_p);
- scf_prop_p = scf_property_create(scf_handle_p);
- if ((NULL == inst) || (NULL == pg) ||
- (NULL == scf_prop_p)) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- CREATE_FAIL,
- scf_strerror(scf_error()));
- CLEAN_UP_SCF_STUFF
- return (-1);
- }
- val = scf_handle_decode_fmri(scf_handle_p,
- str_fps_fmri,
- NULL, NULL, inst, pg, scf_prop_p, 0);
- if (val != 0) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- HANDLE_DECODE_FAIL,
- scf_strerror(scf_error()));
- CLEAN_UP_SCF_STUFF
- return (-1);
- }
- scf_snapshot_p = scf_snapshot_create(scf_handle_p);
- if (NULL == scf_snapshot_p) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- SNAPSHOT_CREAT_FAIL,
- scf_strerror(scf_error()));
- CLEAN_UP_SCF_STUFF
- return (-1);
- }
- val = scf_instance_get_snapshot(inst,
- SMF_SNAPSHOT_RUNNING, scf_snapshot_p);
- if (val == -1) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- INST_SNAPSHOT_GET_FAIL,
- scf_strerror(scf_error()));
- CLEAN_UP_SCF_STUFF
- return (-1);
- }
- val = scf_instance_get_pg_composed(inst, scf_snapshot_p,
- SMF_FPS_PROP_GRP_NAME, pg);
- if (val != 0) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- INSTANCE_PG_GET_FAIL,
- scf_strerror(scf_error()));
- CLEAN_UP_SCF_STUFF
- return (-1);
- }
- val = scf_pg_get_property(pg, SMF_PROP_INTVL,
- scf_prop_p);
- /* Read interval property if defined */
- if (val == 0) {
- value = scf_value_create(scf_handle_p);
- if (NULL != value) {
- val = scf_property_get_value(scf_prop_p,
- value);
- if (0 == val) {
- val =
- scf_value_get_integer(value,
- &intvl);
- if ((0 == val) && (intvl > 0)) {
- fpsd.d_interval =
- (int)intvl;
- fpsd_message(
- FPSD_NO_EXIT,
- FPS_DEBUG,
- INTVL_VAL, intvl);
- ret_val = 0;
- }
- }
- }
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- PROP_UNDEFINED, SMF_PROP_INTVL,
- scf_strerror(scf_error()));
- }
- /*
- * Read property "exclude_cpus" if defined - this is
- * the array of cpu-ids to be excluded from testing.
- */
- val = scf_pg_get_property(pg, SMF_PROP_EXCLD_CPUS,
- scf_prop_p);
- if (val == 0) {
- val = scf_property_get_value(scf_prop_p, value);
- if (0 == val) {
- name_len =
- scf_limit(
- SCF_LIMIT_MAX_NAME_LENGTH);
- strCPUs = malloc(name_len +1);
- if (NULL == strCPUs) {
- fpsd_message(FPSD_NO_EXIT,
- FPS_DEBUG,
- LIBRARY_CALL_FAIL,
- "malloc");
- CLEAN_UP_SCF_STUFF
- return (-1);
- }
- val = scf_value_get_astring(value,
- strCPUs, name_len+1);
- if ((val != -1) &&
- (strlen(strCPUs) > 0)) {
- fpsd_message(FPSD_NO_EXIT,
- FPS_DEBUG,
- EXCL_CPUS, strCPUs);
- ret_val =
- parse_and_set_cpu_id_list(
- strCPUs);
- }
- free(strCPUs);
- }
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- PROP_UNDEFINED,
- SMF_PROP_EXCLD_CPUS,
- scf_strerror(scf_error()));
- }
- }
- }
-
- /* Clean up */
-
- CLEAN_UP_SCF_STUFF
- return (ret_val);
-}
-
-static int
-fpsd_init()
-{
- mach_conf_t *m_conf_p;
-
- debug_level = DFLT_DBG_LVL;
- fpsd.d_fg = 0;
- fpsd.d_daemon = 0;
- fpsd.d_ignore_cpuid = NULL;
- fpsd.d_iteration = 0;
- fpsd.d_interval = 0;
- fpsd.d_fpuid_index = 0;
- fpsd.d_rootdir = "/";
- fpsd.d_pid = getpid();
- fpsd.d_conf = &fpsd_conf;
- fpsd.d_ts_hup = 0;
-
- m_conf_p = fpsd.d_conf;
- m_conf_p->m_machine[0] = '\0';
- m_conf_p->m_num_on_fpuids = 0;
- m_conf_p->m_cpuids_size = 0;
- m_conf_p->total_iter = 0;
- m_conf_p->m_reprobe = 0;
- m_conf_p->m_num_cpus_to_test = 0;
- m_conf_p->m_num_fpus = (uint_t)sysconf(_SC_NPROCESSORS_MAX);
-
- (void) pthread_mutex_init(&log_mutex, NULL);
-
- m_conf_p->m_max_cpuid = (int)sysconf(_SC_CPUID_MAX) + 1;
-
- /*
- * Allocate enough memory to accomodate maximum number of CPUs
- * supported by this platform.
- */
- m_conf_p->m_cpus = malloc(sizeof (fps_cpu_t) *
- m_conf_p->m_num_fpus);
- if (NULL == m_conf_p->m_cpus)
- return (1);
- else
- return (0);
-
-}
-
-static void
-fpsd_fini()
-{
- if (fpsd.d_ignore_cpuid)
- free(fpsd.d_ignore_cpuid);
- if (fpsd.d_conf->m_cpus)
- free(fpsd.d_conf->m_cpus);
-}
-
-static int
-fpsd_probe_config()
-{
- int smf_invoked = 0;
- int ret = 0;
-
- /*
- * Use smf_get_state to get the status of the service to see
- * if the status is "online" by now. If so, read the proper-
- * ties defined using SCF.
- */
-
- if (NULL != str_fps_fmri) {
- smf_invoked = 1;
-
- /* Read SMF properties if invoked thro' SMF */
- ret = read_conf_props();
- if (ret == NO_CPUS_2_TEST) {
- return (ret);
- }
- }
- calculateTotalIterations(fpsd.d_conf);
- if ((ret == -1) || (!smf_invoked) || (fpsd.d_interval <= 0)) {
- ret = calculateTimeInterval();
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- PRINT_INTVL, fpsd.d_interval);
- if ((ret != 1) || (fpsd.d_interval <= 0)) {
- return (ZERO_INTERVAL);
- }
- }
- return (0);
-}
-
-int
-main(int argc, char **argv)
-{
-
- int sig;
- sigset_t sigs;
- /* Pipe fd to write the status back to parent after becoming daemon */
- int pfd = -1;
- int status = FPSD_INIT_SUCCESS;
- char rcvsigstr[32];
- int c;
- int ret;
- struct rlimit rlim;
- char path[MAXPATHLEN];
- int probe_status = -1;
- const char *progname;
- struct sigaction act;
-
- progname = strrchr(argv[0], '/');
- if (NULL != progname)
- progname++;
- else
- progname = argv[0];
-
-#ifndef TEXT_DOMAIN /* Should be defined via Makefile */
-#define TEXT_DOMAIN "SUNW_FPS"
-#endif
-
- (void) setlocale(LC_ALL, "");
- (void) textdomain(TEXT_DOMAIN);
-
- openlog(FPS_DAEMON_NAME, LOG_PID, LOG_DAEMON);
-
- if (fpsd_init()) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_ERROR, DAEMON_INIT_FAIL);
- }
-
- /*
- * Set our per-process core file path to leave core files in
- * var/fps/core directory, named after the PID to aid in
- * debugging, and make sure that there is no restriction on core
- * file size.
- */
-
- if ((ret = access(FPS_CORE_DIR, W_OK)) != 0) {
- if ((ret = mkdirp(FPS_CORE_DIR, 0755)) != 0) {
- fpsd_message(FPSD_NO_EXIT, FPS_ERROR,
- CORE_DIR_CREATION_FAILED,
- FPS_CORE_DIR, strerror(errno));
- }
- }
-
- if (ret == 0) {
- (void) snprintf(path, sizeof (path), "%s/core.%s.%%p",
- FPS_CORE_DIR, progname);
- (void) core_set_process_path(path, strlen(path) + 1,
- fpsd.d_pid);
- rlim.rlim_cur = RLIM_INFINITY;
- rlim.rlim_max = RLIM_INFINITY;
-
- (void) setrlimit(RLIMIT_CORE, &rlim);
- }
-
-
- /* parse arguments */
- while ((c = getopt(argc, argv, "dl:")) != EOF) {
- switch (c) {
- case 'd':
- fpsd.d_fg = 1;
- break;
-
- case 'l':
- debug_level = atoi(optarg);
- if (debug_level < 0)
- debug_level = DFLT_DBG_LVL;
- break;
-
- default:
- fpsd_message(FPSD_EXIT_USAGE, FPS_ERROR, USAGE_MSG,
- progname);
- break;
- }
- }
-
-
- /*
- * Reset all of our privilege sets to the minimum set of required
- * privileges. We continue to run as root so that files we create
- * such as logs and checkpoints are secured in the /var
- * filesystem.
- */
- if (__init_daemon_priv(PU_RESETGROUPS | PU_LIMITPRIVS | PU_INHERITPRIVS,
- 0, 0, /* run as uid 0 and gid 0 */
- PRIV_FILE_DAC_EXECUTE, PRIV_FILE_DAC_READ, PRIV_FILE_DAC_SEARCH,
- PRIV_FILE_DAC_WRITE, PRIV_FILE_OWNER, PRIV_PROC_OWNER,
- PRIV_PROC_PRIOCNTL, PRIV_SYS_ADMIN, PRIV_SYS_CONFIG,
- PRIV_SYS_DEVICES, PRIV_SYS_RES_CONFIG,
- PRIV_NET_PRIVADDR, NULL) != 0) {
-
- (void) fpsd_message(FPSD_EXIT_ERROR, FPS_ERROR,
- INSUFFICIENT_PRIVS, progname);
- }
-
-
- if (!fpsd.d_fg) { /* Now become daemon */
- pfd = become_daemon_init();
- } else {
- (void) chdir(FPS_DIR);
- }
-
- if (daemon_exists()) {
- /*
- * If another instance of fpsd daemon is already running;
- * exit. Should not clean up door file
- */
- fpsd_message(FPSD_EXIT_ERROR, FPS_ERROR,
- DAEMON_ALREADY_RUNNING);
- }
-
- /*
- * Setup door prevents any more instances of fpsd from running.
- */
- if (fps_setup_door() == -1) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_ERROR, DOOR_SETUP_FAIL);
- }
-
- /*
- * Some desktop platforms satisfy E* guidelines. Here CPU power
- * management is enabled by default. The scheduling algorithms
- * change on these platforms to not to do testing on idle system
- * to save power.
- */
- init_estar_db(); /* Initialize Estar config data base */
- /* Print message on CPU E* enabled system */
- if (is_estar_system)
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, ESTAR_INFO);
-
- if ((probe_status = fpsd_probe(fpsd.d_conf)) != 0) {
- (void) fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- UNSUPPORTED_SYSTEM);
- }
-
- if (!fpsd.d_fg) { /* Complete daemonize proces */
-
- fpsd.d_daemon = 1;
- /*
- * Now that we're running, if a pipe fd was specified, write an
- * exit status to it to indicate that our parent process can
- * safely detach.
- */
- if (pfd >= 0) {
- (void) write(pfd, &status, sizeof (status));
- }
- become_daemon_fini(pfd);
-
- } else {
- /*
- * Mask all signals before creating sched thread. We will
- * unmask selective siganls from main thread. This ensures
- * that only main thread handles signals. This is done in
- * become_daemon() if we had to daemonize.
- */
-
- (void) sigfillset(&sigs);
- (void) sigprocmask(SIG_BLOCK, &sigs, NULL);
- }
-
- /*
- * Give some time for SMF to read the exit status
- * of parent and update fpsd fmri state
- */
- (void) poll(NULL, 0, 3*1000);
-
- str_fps_fmri = getenv("SMF_FMRI");
- if (NULL != str_fps_fmri) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, SMF_INVKD, str_fps_fmri);
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, CLI_INVKD);
- }
-
- if (probe_status != 0) {
- /* Exit child proces too */
-
- if (NULL != str_fps_fmri) {
- const char *smf_state;
- ret = smf_disable_instance(str_fps_fmri,
- SMF_TEMPORARY);
- if (0 == ret) {
- (void) fpsd_message(FPSD_NO_EXIT,
- FPS_DEBUG, FPSD_STATE);
- } else {
- /* Unable to disable the service. */
- smf_state = smf_get_state(str_fps_fmri);
- if (NULL == smf_state) {
- smf_state = " ";
- (void) fpsd_message(FPSD_NO_EXIT,
- FPS_ERROR, DISABLE_SVC_FAILED,
- smf_state);
- }
- (void) poll(NULL, 0, 3*1000);
- }
- }
- terminate_process();
- _exit(FPSD_EXIT_ERROR);
- }
-
- act.sa_sigaction = sig_hup_handler;
- (void) sigemptyset(&act.sa_mask);
- act.sa_flags = SA_SIGINFO;
- (void) sigaction(SIGHUP, &act, NULL);
- fpsd_read_config();
- (void) sigfillset(&sigs);
- (void) sigprocmask(SIG_BLOCK, &sigs, NULL);
-
- /*
- * On estar-systems, if interval < MIN_INTERVAL, scheduling tests will
- * reset the idle counter and prevent system from going to sleep.
- * To avoid this, setting interval to MIN_INTERVAL.
- */
-
- if ((is_estar_system) && (fpsd.d_interval < MIN_INTERVAL)) {
- fpsd.d_interval = MIN_INTERVAL;
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, MIN_INTERVAL_MSG,
- fpsd.d_interval, MIN_INTERVAL);
- }
-
- /* Run scheduling thread */
- if ((ret == 0) && thr_create(NULL, 0,
- test_fpu_thr, (void *) NULL, THR_BOUND, NULL) != 0) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING, THR_CREATION_FAIL);
- }
-
- /*
- * We unmask selective signals here. Besides terminating on
- * SIGINT & SIGTERM, we handle SIGHUP that is used to cause
- * daemon to re-read the SMF properties.
- */
- (void) sigemptyset(&sigs);
- (void) sigaddset(&sigs, SIGINT);
- (void) sigaddset(&sigs, SIGTERM);
- (void) sigaddset(&sigs, SIGHUP);
- (void) sigprocmask(SIG_UNBLOCK, &sigs, NULL);
-
- for (;;) {
- (void) sigwait(&sigs, &sig);
- (void) sig2str(sig, rcvsigstr);
-
- if (sig != -1) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- SIGNAL_INFO, rcvsigstr, sig);
- switch (sig) {
- case SIGINT:
- case SIGTERM:
- terminate_process();
- _exit(FPSD_EXIT_ERROR);
- break;
- case SIGHUP:
- fpsd.d_ts_hup = gethrtime();
- break;
- default: break;
- }
- }
- }
-#pragma error_messages(off, E_STATEMENT_NOT_REACHED)
- /* NOTREACHED */
- return (0);
-}
diff --git a/usr/src/cmd/fps/fpsd/fpsd_sched.c b/usr/src/cmd/fps/fpsd/fpsd_sched.c
deleted file mode 100644
index 40fbe954b9..0000000000
--- a/usr/src/cmd/fps/fpsd/fpsd_sched.c
+++ /dev/null
@@ -1,761 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <dlfcn.h>
-#include <door.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <strings.h>
-#include <unistd.h>
-#include <synch.h>
-#include <syslog.h>
-#include <pthread.h>
-#include <thread.h>
-#include <signal.h>
-#include <limits.h>
-#include <locale.h>
-#include <sys/stat.h>
-#include <sys/systeminfo.h>
-#include <sys/wait.h>
-#include <sys/processor.h>
-#include <sys/pset.h>
-#include <ctype.h>
-#include <poll.h>
-#include <sys/wait.h>
-#include <sys/pm.h>
-#include <sys/iso/signal_iso.h>
-#include <sys/procset.h>
-
-#include "fpsapi.h"
-#include "fpsd.h"
-#include "messages.h"
-
-/* Local Functions */
-
-static int
-check_invoke_prog(int devid, time_t *last,
-unsigned tstswap, int frequency, int group_no, int fpu_index);
-
-static int identify_fpu_to_run_test(int *freq, int *iteration, int *fpu_index);
-
-void *test_fpu_thr(void *arg);
-
-#define CPU_TST_EXEC_FAIL { \
- error = errno; \
- fpsd_message(FPSD_EXIT_ERROR,\
- FPS_WARNING, TST_EXEC_FAIL, testpath, strerror(error)); \
- }
-
-static int boot_tst_delay = FPS_BOOT_TST_DELAY;
-
-/* Increments failure for the cpu */
-static void
-record_failure(int devid, int index) {
- if ((index >= 0) &&
- (index < fpsd.d_conf->m_cpuids_size)) {
- fpsd.d_conf->m_cpus[index].num_failures++;
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- RECORD_FAILURE_MSG, devid, index);
- }
-}
-
-/* Returns 1 if testing is diabled for the cpu, else 0 */
-
-static int
-check_if_disabled(int fpu_index) {
- int is_disabled;
-
- is_disabled = fpsd.d_conf->m_cpus[fpu_index].disable_test;
- if (is_disabled) {
- return (1);
- } else {
- return (0);
- }
-}
-
-/*
- * Forks and executes "fptest" and waits for an amount of time equal to
- * the time to schedule next "fptest". Times out if the test does not
- * complete and unbinds and terminates the test.
- * Return = 1 implies fptest could be invoked successfully but a non-zero
- * status would be dealt with by setting the reprobe flag.
- * Return = -1 implies fptest could not be successfully invoked or test
- * exited with non-zero exit status that requires the scheduler to retry.
- */
-static int
-check_invoke_prog(int devid, /* cpu-id */
- time_t *last, /* Last time it was invoked */
- unsigned tstswap, /* Expected swap space required for test */
- int frequency, /* Frequency of the processor under test */
- int group_no, /* Group no. ==> matrix size to be used */
- int fpu_index)
-{
- int error;
- hrtime_t start_hrtime = 0, end_hrtime = 0, hrmsecs = 0;
- hrtime_t hrsecs = 0;
- pid_t pid = -1;
- int exit_status = 0;
- char cpuid_c[64];
- char frequency_c[10];
- char group_c[10];
- int ret = -1;
- int status = 0;
- char *testpath;
- char sig_str[32];
- int elapsed_time;
- int status_available;
- int max_timeout;
- int pb_ret;
-
- testpath = fpsd.d_conf->m_cpus[fpu_index].fptest_path;
- if (check_if_disabled(fpu_index)) {
- return (ret);
- }
-
- /* Compare all in seconds. */
-
- *last = time(NULL);
-
- (void) snprintf(cpuid_c, sizeof (cpuid_c), "%d", devid);
- (void) snprintf(frequency_c, sizeof (frequency_c), "%d", frequency);
- (void) snprintf(group_c, sizeof (group_c), "%d", group_no);
-
- /* Check if enough swap space is there; Return -1 if not. */
-
- if (get_free_swap() < (uint64_t)(tstswap+FPS_SWAP_RESERVE)) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, SWAP_WARN, testpath);
- return (ret);
- }
-
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, START_TEST_MSG,
- testpath, frequency_c, group_c, cpuid_c);
-
- start_hrtime = gethrtime();
-
- pid = fork1(); /* fork1() duplicates only the calling thread */
- if (pid == 0) {
- (void) execl(testpath, /* Path */
- FPS_FPUTST_NAME, /* Arg 0 */
- "-f",
- frequency_c, /* Frequency */
- "-p",
- group_c, /* Group no. */
- "-d",
- cpuid_c, /* CPU ID */
- (char *)NULL);
-
- CPU_TST_EXEC_FAIL /* Should never reach here */
- }
-
- if (pid == (pid_t)-1) {
- error = errno;
- if ((error == EAGAIN) || (error == ENOMEM)) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG,
- FORK_FAIL_MSG, testpath, strerror(error));
- } else {
- fpsd_message(FPSD_NO_EXIT, FPS_WARNING,
- FORK_FAIL_MSG, testpath, strerror(error));
- }
- return (-1);
- }
-
- /* Synchronously wait here till the child exits */
-
- elapsed_time = 0;
- status_available = 0;
- max_timeout = fpsd.d_interval * 1000;
- while (elapsed_time < max_timeout) {
- if (pid == waitpid((pid_t)pid, &status, WNOHANG)) {
- status_available = 1;
- break;
- } else {
- elapsed_time += 50;
- (void) poll(NULL, 0, 50); /* wait 50 milli sec. */
- }
- }
-
- if (!status_available) {
- exit_status = FPU_TIMED_OUT;
- } else {
- exit_status = WEXITSTATUS(status);
- if (exit_status == 0xFF) {
- /* As WEXITSTATUS returns 0xFF */
- exit_status = FPU_UNSUPPORT;
- }
- }
- if (exit_status == FPU_UNSUPPORT) {
- /* Reprobe */
- fpsd.d_conf->m_reprobe = 1;
- ret = 1;
- } else if (exit_status == FPU_OK) {
- /* Increment iteration */
- fpsd.d_iteration++;
- ret = 1;
- } else if ((exit_status == FPU_FOROFFLINE) ||
- (exit_status == FPU_BIND_FAIL)) {
- /* Force reprobe */
- fpsd.d_conf->m_reprobe = 1;
- ret = 1;
- } else if (exit_status == FPU_INVALID_ARG) {
- /* This should not happen; so force exit */
- fpsd_message(FPSD_EXIT_TEST_USAGE, FPS_WARNING,
- FPU_INVALID_ARG_MSG);
- } else if ((exit_status == FPU_SIG_SEGV) ||
- (exit_status == FPU_SIG_BUS)) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_SIG_RCVD,
- devid);
- record_failure(devid, fpu_index);
- ret = -1; /* Retry */
- } else if (exit_status == FPU_SIG_FPE) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_FPE_MSG,
- devid);
- record_failure(devid, fpu_index);
- ret = -1;
- } else if (exit_status == FPU_SIG_ILL) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_SIG_ILL_MSG,
- devid);
- record_failure(devid, fpu_index);
- ret = -1;
- } else if (exit_status == FPU_SYSCALL_FAIL) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_SYSCALL_FAIL_MSG,
- devid);
- record_failure(devid, fpu_index);
- fpsd.d_iteration++; /* Iteration skipped */
- ret = 1; /* Record failure and move on */
- } else if (exit_status == FPU_EREPORT_INCOM) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_EREPORT_INCOM_MSG,
- devid);
- fpsd.d_conf->m_reprobe = 1;
- ret = 1;
- } else if (exit_status == FPU_SYSCALL_TRYAGAIN) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_SYSCALL_TRYAGAIN_MSG);
- ret = -1; /* Retry as it could be some resource issue */
- } else if (exit_status == FPU_EREPORT_FAIL) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_EREPORT_FAIL_MSG,
- devid);
- ret = -1;
- } else if (exit_status == FPU_TIMED_OUT) {
- pb_ret = processor_bind(P_PID, pid, PBIND_NONE, NULL);
- if (pb_ret == -1) {
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- UNBIND_FAIL_MSG,
- strerror(errno));
- }
- (void) kill(pid, SIGINT);
- while (pid != waitpid((pid_t)pid, &status, WUNTRACED)) {
- (void) poll(NULL, 0, 10);
- (void) kill(pid, SIGINT);
- }
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, FPU_TIMED_OUT_MSG, devid);
- record_failure(devid, fpu_index);
- ret = -1;
- }
-
- /*
- * The following is the case if the test ended due to a
- * signal and did not have a handler for the signal.
- */
- if (WIFSIGNALED(status)) {
- (void) sig2str(WTERMSIG(status), sig_str);
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- TST_SIGNALED_MSG, devid,
- frequency, sig_str);
- record_failure(devid, fpu_index);
- ret = -1; /* Retry */
- }
-
- end_hrtime = gethrtime();
- hrmsecs = ((end_hrtime - start_hrtime)/
- ((hrtime_t)1000*1000));
- hrsecs = hrmsecs / 1000;
- fpsd_message(FPSD_NO_EXIT, FPS_INFO, END_TST_MSG, (int)pid,
- (int)(hrsecs/(60*60)),
- (int)((hrsecs%3600)/60),
- (int)(hrsecs%60),
- (int)(hrmsecs%1000),
- cpuid_c);
-
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, EXIT_STAT_MSG, exit_status);
-
- return (ret);
-}
-
-/*
- * The test scheduling thread.
- */
-
-void *
-test_fpu_thr(/* ARGSUSED */ void *arg)
-{
- time_t cur = 0, /* current time in secs */
- last = 0; /* Last time this level testing done in secs */
- int ret;
-
- int intvl = 0; /* interval */
- unsigned tswap = 0;
- int poll_intvl;
- long num_cpus;
- int idle = 0, remain = 0, max_remain = 0;
- time_t last_wakeup = 0, wakeup_elapse;
- int fpuid;
- int frequency;
- int group_no;
-
- int force_skip_test_if_pm_idle = 1;
- int fpu_index;
- int max_idle_time_4_tst_run;
- int j;
-
- /*
- * If enabled, do not run test on idle system, even if test intvl
- * explicitly specified.
- */
-
-/*
- * Minimum time to wait before scheduling tests
- * when the system just wakes up from sleep.
- */
-#define MINSLEEP 8
-
- num_cpus = fpsd.d_conf->m_num_on_fpuids;
-
- intvl = poll_intvl = fpsd.d_interval;
-
- tswap = FPS_LOWTST_SWAP;
-
- cur = time(NULL);
-
- /*
- * Initialize last time test done based on earlier bootup testing.
- * This decides when the first time scheduling of the test is
- * to be done.
- */
-
- /*
- * In systems with less than 3 processors, the initial testing
- * has been found to affect the system bootup time.
- * Wait for 5 min for those systems before starting any testing.
- */
-
- if (num_cpus < 3)
- fps_wait_secs(boot_tst_delay);
-
- /* Soft bind before once before starting test. */
- if (processor_bind(P_PID, P_MYID, PBIND_SOFT, NULL) != 0) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING, SYSTEM_CALL_FAIL,
- "processor_bind", strerror(errno));
- }
-
- if (pset_bind(PS_SOFT, P_PID, P_MYID, NULL) != 0) {
- fpsd_message(FPSD_EXIT_ERROR, FPS_WARNING, SYSTEM_CALL_FAIL,
- "pset_bind", strerror(errno));
- }
-
-#define MAX_IDLE_TIME_FOR_TSTRUN 10
-
- if (intvl/2 > MAX_IDLE_TIME_FOR_TSTRUN) {
- max_idle_time_4_tst_run =
- MAX_IDLE_TIME_FOR_TSTRUN;
- } else {
- max_idle_time_4_tst_run =
- (intvl/2) +
- MAX_TEST_RUN_TIME;
- }
-
- cur = time(NULL);
- last = 0; /* Force the invocation by setting last to zero. */
-
-
- for (;;) {
- time_t elapse;
-
- cur = time(NULL);
- elapse = cur - last;
-
- /*
- * Sleep for intvl secs amount of time.
- */
-
- if (elapse >= (time_t)intvl)
- poll_intvl = 0;
- else /* Don't sleep more than 1 min at a time */
- poll_intvl = (int)((time_t)intvl-elapse);
-
- /*
- * Until poll_intvl becomes zero, sleep.
- * If poll gets interrupted for any reason, then also works.
- */
-
- if (poll_intvl > 0) {
- (void) poll(NULL, 0, poll_intvl*1000);
- continue;
- }
-
-#define INVOKE_PROG { \
- fpuid = identify_fpu_to_run_test(&frequency, &group_no, &fpu_index);\
- if (intvl != fpsd.d_interval) { \
- /* \
- * Interval has changed due to change in \
- * online processors/ config properties. \
- */ \
- intvl = fpsd.d_interval; \
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, \
- INTVL_CHANGED_MSG, intvl); \
- } \
- if (fpuid == -1) {\
- /* Testing could not be done on any cpu */\
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, \
- INVALID_FPU_ID); \
- last = time(NULL); \
- continue;\
- }\
- ret = check_invoke_prog(fpuid, &last, tswap, frequency, \
- group_no, fpu_index); \
- if (ret == -1) { \
- for (j = 0; (j < MAX_RETRIES) && (ret != 1); j++) { \
- (void) poll(NULL, 0, RETRY_INTVL); \
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, \
- RESCHEDULE_MSG, fpuid);\
- ret = check_invoke_prog(fpuid, &last, tswap, \
- frequency, group_no, fpu_index); \
- } \
- if (ret == -1) { \
- /*\
- * Tried MAX_RETRIES times. Still seeing failures\
- * on this fpu. Skip this iteration and move on.\
- */\
- fpsd.d_iteration++; \
- } \
- } \
-}
-
- /*
- * If power management is disabled (or not supported) on the
- * system, just go ahead, invoke the program.
- */
- update_pm_state(); /* Update current PM state. */
- if (sys_pm_state != PM_SYSTEM_PM_ENABLED) {
- /* autopm disabled. Just go ahead invoke program. */
- INVOKE_PROG
- continue;
- }
-
- /*
- * Power management is enabled. This system may be CPU PM
- * enabled system or just disk(and other) PM enabled.
- * If CPU PM not supported, just invoke the program.
- */
- if (!is_estar_system) {
- INVOKE_PROG
- continue;
- }
-
- /* This system is CPU PM currently supported & enabled. */
-
- /*
- * By deafult, tests are not invoked on E* compliant system.
- * However if force_skip_test_if_pm_idle is set to 0, tests
- * will be invoked. This is kept for debugging purposes for now.
- * Should be removed if no use cases.
- */
-
- if (!force_skip_test_if_pm_idle) {
- INVOKE_PROG
- continue;
- }
-
- /*
- * If the system is in sleep mode, wait until it comes
- * to full power mode.
- */
-
- /* If CPUs are not in full power mode, this will return -1 */
- ret = get_idle_rem_stats(&idle, &remain, &max_remain);
-
- /*
- * Wait until CPU comes to full power mode.
- * Call wait for state change function -- the return from the
- * function does not guarantee that the system is in full power
- * mode. So get the current status later as well.
- */
- if (ret == -1) {
- while (ret == -1) {
- /* Avoid busy loop in any case */
- (void) poll(NULL, 0, 1000);
- /* Wait until CPU comes to full pwr */
- wait_for_pm_state_change();
- ret = get_idle_rem_stats(&idle, &remain,
- &max_remain);
- }
-
- /* Remember the last time that we woke up. */
- last_wakeup = time(NULL);
- }
-
- /*
- * To meet E* requirements, the system should go to
- * deep sleep mode in 30 mins on default configs.
- * The CPU power management does this by 14.25min+14.25min
- * so total 28.5mins. (in sleep mode followed by deep sleep).
- * Running the test as the system just becomes active,
- * may reset the idle counter and may delay the transition.
- * However since we have 1.5 mins cushion to meet E*
- * requirements, we are just making use of it.
- *
- * If system is idle for more than 10 seconds, wait
- * until the system idle time is less than 10 seconds.
- * Poll in 2 sec interval, so we will catch it as soon
- * as the system idle time goes low (as it just becomes busy).
- * Basically don't run test on an idle system.
- * If the system is continously busy, then this will
- * result in continously scheduling the test.
- *
- * Running test on a system which is just 10 seconds idle,
- * may reset the idle counter.
- * This will postpone the idle transition to it's lowest power
- * by worst case of 10 secs + worst case run time for fptest
- * that is approximately 1 sec = 11 sec.
- * This is below the 1.5mins cushion CPU PM now has to make
- * idle transition.
- *
- * So if d_interval/2 >= 10 follow the above logic. Else, reduce
- * max_idle_time_4_tstrun = d_interval/2 + max_time_taken_by_test
- * (which is <= 1s). We want to be conservative in scheduling
- * test rather than utilize the cushion to maximum possible
- * extent.
- * Note: The E* desktop systems have atmost 2 processors, but
- * this will work even for more processors in which case the
- * interval will be less or if the interval is configured thro'
- * SMF.
- * As long as atleast any one processor is in full power mode,
- * all processors have to be in same power level.
- */
-
- /* Invoke program if system is "busy" */
-
- if (idle <= max_idle_time_4_tst_run) {
- /*
- * If the system is just waking up from sleep, don't rush into
- * testing immediately to avoid hiccups in performance.
- *
- */
- wakeup_elapse = time(NULL) - last_wakeup;
- if (wakeup_elapse < MINSLEEP) {
- fps_wait_secs((int)(MINSLEEP-wakeup_elapse));
- }
- INVOKE_PROG
- continue;
- }
-
- /* The system is "idle". Wait until it becomes "busy" */
- while (idle > max_idle_time_4_tst_run) {
-
- /*
- * Once in max_idle_time_4_tst_run/2 secs, we are issuing
- * ioctl call to catch the system as soon as it becomes
- * "busy". Polling is not an efficient way to do this,
- * but this is the only way we got right now.
- */
- fps_wait_secs(max_idle_time_4_tst_run / 2);
- ret = get_idle_rem_stats(&idle, &remain, &max_remain);
- if (ret == -1) break; /* Incase now in sleep mode */
- }
- continue;
-
- } /* End infinite for loop */
-
-#pragma error_messages(off, E_STATEMENT_NOT_REACHED)
- /* NOTREACHED */
- return (NULL);
-}
-
-/*
- * get_num_onln_cpus(): returns the number of processors that are in
- * "on-line" state only. This number will be less than the number
- * returned by sysconf(_SC_NPROCESSORS_ONLN) if there are some
- * processors in "no-intr" state.
- */
-
-static int
-get_num_onln_cpus()
-{
- int i;
- int num_onln = 0;
- int total_onln = sysconf(_SC_NPROCESSORS_ONLN);
-
- for (i = 0; i < fpsd.d_conf->m_max_cpuid; i++) {
- if (p_online(i, P_STATUS) == P_ONLINE) {
- num_onln++;
- }
- if (num_onln == total_onln) {
- /* Break after all onln cpuids found */
- break;
- }
- }
- return (num_onln);
-}
-
-/*
- * Identifies the fpu on which test will be scheduled next.
- */
-
-static int
-identify_fpu_to_run_test(int *freq, int *iteration, int *fpu_index)
-{
- int fpuid = -1;
- int ascend;
- int tmp_iter;
- fps_cpu_t fps_cpu;
- int i;
- int num_onln;
- /* Timestamp at which SIGHUP ts was checked last */
- static hrtime_t ts_hup_chkd = 0;
- hrtime_t tmp_ts;
- int iter = 0;
-
- *iteration = *freq = 0;
- while (fpuid == -1) {
- /* Check if the number of online processors has changed */
- num_onln = get_num_onln_cpus();
- if (num_onln != fpsd.d_conf->m_num_on_fpuids) {
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, REPROBE_MSG);
- fpsd.d_conf->m_reprobe = 1;
- }
-
- tmp_ts = fpsd.d_ts_hup;
- if (fpsd.d_ts_hup > ts_hup_chkd) {
- fpsd.d_conf->m_reprobe = 1;
- }
- ts_hup_chkd = tmp_ts;
-
- if (1 == fpsd.d_conf->m_reprobe) {
- fpsd_read_config();
- }
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, IDENTIFY_FPU_MSG,
- fpsd.d_fpuid_index, fpsd.d_iteration,
- fpsd.d_conf->total_iter, fpsd.d_conf->m_cpuids_size);
- if (iter >= fpsd.d_conf->m_cpuids_size) {
- /* Possible infinite loop */
- fpsd_message(FPSD_EXIT_ERROR, FPS_INFO,
- INFINITE_LOOP_MSG);
- }
- iter++;
-
- if (fpsd.d_iteration >= fpsd.d_conf->total_iter) {
- /* One pass completed */
- fpsd.d_iteration = 0;
-
- /* Reinit iterations */
- for (i = 0; i < fpsd.d_conf->m_cpuids_size; i++) {
- if (fpsd.d_conf->m_cpus[i].disable_test)
- continue;
- ascend = fpsd.d_conf->m_cpus[i].asc;
- if (ascend) {
- fpsd.d_conf->m_cpus[i].previous_iteration = 0;
- } else {
- fpsd.d_conf->m_cpus[i].previous_iteration =
- fpsd.d_conf->m_cpus[i].total_iterations + 1;
- }
- }
- }
- if (fpsd.d_iteration == 0) { /* Beginning of one pass */
- fpsd.d_fpuid_index = 0;
- while (fpsd.d_fpuid_index <
- fpsd.d_conf->m_cpuids_size) {
- if (fpsd.d_conf->m_cpus[fpsd.d_fpuid_index].\
- disable_test) {
- fpsd.d_fpuid_index++;
- } else {
- break;
- }
- }
- if (fpsd.d_fpuid_index == fpsd.d_conf->m_cpuids_size) {
- return (-1);
- }
- } else {
- if (fpsd.d_fpuid_index ==
- (fpsd.d_conf->m_cpuids_size-1)) {
- /* One iteration done for all fpus */
- fpsd.d_fpuid_index = 0;
- } else {
- fpsd.d_fpuid_index++;
- }
- }
- fps_cpu = fpsd.d_conf->m_cpus[fpsd.d_fpuid_index];
- fpuid = fps_cpu.cpuid;
- if (fps_cpu.disable_test) {
- fpuid = -1;
- continue;
- }
- *freq = fps_cpu.frequency;
-
- /* Find the iteration no. */
- tmp_iter = fps_cpu.previous_iteration;
- ascend = fpsd.d_conf->m_cpus[fpsd.d_fpuid_index].asc;
- if (ascend) {
- if (tmp_iter == fps_cpu.total_iterations) {
- /*
- * 1 pass completed for this fpu;
- * skip this fpu and goto the next fpu
- */
- fpuid = -1;
- continue;
- } else {
- fpsd.d_conf->m_cpus[fpsd.d_fpuid_index].\
- previous_iteration++;
- }
- } else {
- /* This FPU is tested in descending order of */
- /* iteration no. ==> matrix size */
- if (tmp_iter == 1) {
- /*
- * 1 pass completed for this fpu;
- * skip this fpu and goto the next fpu
- */
- fpuid = -1;
- continue;
- } else {
- fpsd.d_conf->m_cpus[fpsd.d_fpuid_index].\
- previous_iteration--;
- }
- }
- *iteration =
- fpsd.d_conf->m_cpus[fpsd.d_fpuid_index].previous_iteration;
- *fpu_index = fpsd.d_fpuid_index;
- fpsd_message(FPSD_NO_EXIT, FPS_DEBUG, IDENTIFY_FPU_RTN_MSG,
- fpuid, *iteration, *freq,
- fpsd.d_conf->m_cpus[fpsd.d_fpuid_index].\
- previous_iteration,
- fps_cpu.total_iterations);
- }
- return (fpuid);
-}
diff --git a/usr/src/cmd/fps/fpsd/fpsd_util.c b/usr/src/cmd/fps/fpsd/fpsd_util.c
deleted file mode 100644
index 9eef667c85..0000000000
--- a/usr/src/cmd/fps/fpsd/fpsd_util.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <dlfcn.h>
-#include <door.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <strings.h>
-#include <unistd.h>
-#include <synch.h>
-#include <syslog.h>
-#include <pthread.h>
-#include <thread.h>
-#include <signal.h>
-#include <limits.h>
-#include <locale.h>
-#include <sys/stat.h>
-#include <sys/systeminfo.h>
-#include <sys/wait.h>
-#include <sys/processor.h>
-#include <ctype.h>
-#include <poll.h>
-#include <sys/wait.h>
-#include <sys/swap.h>
-
-#include <fpsapi.h>
-#include "messages.h"
-#include "fpsd.h"
-
-/* Exported Functions */
-void fps_door_handler(void *cookie, char *argp, size_t asize,
- door_desc_t *dp, uint_t n_desc);
-
-/* Used by get_free_swap() */
-static uint64_t
-ctok(int clicks)
-{
- static int factor = -1;
-
- if (factor == -1) factor = ((int)sysconf(_SC_PAGESIZE)) >> 10;
- return (clicks*factor);
-}
-
-/* return the available free swap space in unit of MB */
-uint64_t
-get_free_swap(void)
-{
- struct anoninfo ai;
- unsigned freemem;
-
- if (swapctl(SC_AINFO, &ai) != -1) {
- /* in the unit of KB */
- freemem = (int)(ctok(ai.ani_max) - ctok(ai.ani_resv));
- }
- else
- freemem = 0;
-
- return (freemem/1024);
-}
-
-/*
- * Wait for n secs. Don't use sleep due to signal behaviours.
- * Also be aware of poll getting interrupted.
- */
-
-void
-fps_wait_secs(int secs)
-{
- time_t cur = time(NULL);
-
- if (secs <= 0)
- return;
-
- do {
- if (poll(NULL, 0, secs*1000) == 0)
- break;
- secs -= (int)(time(NULL) - cur);
- cur = time(NULL);
- } while (secs > 0);
-}
-
-/*ARGSUSED*/
-void
-fps_door_handler(void *cookie, char *argp, size_t asize,
- door_desc_t *dp, uint_t n_desc)
-{
- fps_event_t *evtp = NULL;
- fps_event_reply_t reply;
-
- reply.result = -1; /* -1 failure. 0 success */
-
- if (argp == NULL)
- (void) door_return((char *)&reply, sizeof (reply), NULL, 0);
-
- /*LINTED*/
- evtp = (fps_event_t *)argp;
-
- if (cookie != FPS_DOOR_COOKIE)
- (void) door_return((char *)&reply, sizeof (reply), NULL, 0);
-
- fpsd_message(FPSD_NO_EXIT, FPS_INFO,
- DOOR_HNDLR_MSG,
- evtp->version, evtp->type, evtp->length);
-
- reply.result = 0;
- (void) door_return((char *)&reply, sizeof (reply), NULL, 0);
-
-}
diff --git a/usr/src/cmd/fps/fpsd/messages.h b/usr/src/cmd/fps/fpsd/messages.h
deleted file mode 100644
index df85511a03..0000000000
--- a/usr/src/cmd/fps/fpsd/messages.h
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _MESSAGES_H
-#define _MESSAGES_H
-
-/*
- * Messages
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <libintl.h>
-
-/* Messages used in fpsd_main.c */
-
-#define DAEMON_ALREADY_RUNNING \
- gettext("Can not start daemon when another instance"\
- " is already running.\n")
-
-#define DAEMON_INIT_FAIL \
- gettext("Could not intialize state structures for the daemon.\n")
-
-#define DAEMON_PIPE_FAIL \
- gettext("Failed to create pipe for daemonizing : %s\n")
-
-#define DAEMON_FORK_FAIL \
- gettext("Failed to fork daemon into background : %s\n")
-
-#define DAEMON_DOOR_FAIL \
- gettext("Library call door_create failed : %s\n")
-
-#define DAEMON_DOOR_FILE_FAIL \
- gettext("Could not create door file : %s\n")
-
-#define DAEMON_DOOR_FATTACH_FAIL \
- gettext("Could not fattach to door file : %s\n")
-
-#define CORE_DIR_CREATION_FAILED \
- gettext("%s directory could not be created for "\
- "storing core files : %s\n")
-
-#define LIBRARY_CALL_FAIL \
- gettext("Library call %s failed : %s\n")
-
-#define SYSTEM_CALL_FAIL \
- gettext("System call %s failed : %s\n")
-
-#define INVALID_CPUID \
- gettext("Invalid cpuid: %s\n")
-
-#define CPU_NOT_SUPPORTED \
- gettext("%s CPU brand of CPU ID %d is not supported by FP Scrubber.\n")
-
-#define CPU_BRAND_PROBE_FAIL \
- gettext("Could not read Brand for CPU ID %d.\n")
-
-#define FREQ_PROBE_FAIL \
- gettext("Could not probe frequency for CPU ID %d.\n")
-
-#define FPSD_ZERO_INTVL \
- gettext("Some error occured in calculating interval;"\
- " interval calculated = %d\n")
-
-#define FPSD_NO_CPUS_TO_TEST \
- gettext("FP Scrubber is not supported on "\
- " the processors that are online\n")
-
-#define SMF_INVOKED \
- gettext("Program started through SMF; state = %s\n")
-
-#define CL_INVOKED \
- gettext("Program started through command line; state = %s\n")
-
-#define INSUFFICIENT_PRIVS \
- gettext("Insufficient priviliges to run %s. Exiting...\n")
-
-#define UNSUPPORTED_SYSTEM \
- gettext("System configuration probe failed. Exiting ...\n")
-
-#define THR_CREATION_FAIL \
- gettext("Initialization Failure: " \
- " Could not create test scheduling thread.\n")
-
-#define ESTAR_INFO \
- gettext("Actual testing is done only when the system " \
- " is not in idle state.\n")
-
-#define PROP_UNDEFINED \
- gettext("Reading of property %s failed for the "\
- "service instance; reason : %s\n")
-
-#define USAGE_MSG gettext("\nUsage: %s [-dl[0..3]] \n")
-
-#define DOOR_SETUP_FAIL \
- gettext("Could not setup lock mechanism."\
- " This might happen if another instance of fpsd is running.\n")
-
-#define PRINT_INTVL gettext("Calculated time interval = %d .\n")
-
-#define SIGNAL_INFO gettext("Process received SIG%s (%d) signal.\n")
-
-#define FORK_FAIL_MSG gettext("Could not start CPU test program: %s\n" \
- "System call fork() failed. Reason: %s\n")
-
-#define TST_EXEC_FAIL gettext("Could not execute CPU test program: %s"\
- "\n Reason: %s\n")
-
-#define SWAP_WARN gettext("Low swap space: Test: %s was not invoked.")
-
-#define START_TEST_MSG gettext("Start Test :%s -f %s -p %s -d %s\n")
-
-#define END_TST_MSG \
- gettext("End Test (PID=%d) Time: %dH.%dM.%dS.%dMsecs %s\n")
-
-#define DI_INIT_FAIL \
- gettext("Could not get device info tree information: " \
- " di_init() failed.\n")
-
-#define DI_PROM_INIT_FAIL \
- gettext("Could not get PROM tree information: " \
- " di_prom_init() failed.\n")
-
-#define INTERNAL_FAILURE_WARN \
- gettext("Would recover from internal software failure:\n"\
- " ioctl /dev/pm PM_GET_STATE_CHANGE : %s\n")
-
-#define INTERNAL_FAILURE_WARN1 \
- gettext("Would recover from internal software failure:\n"\
- " ioctl /dev/pm PM_GET_CURRENT_POWER : %s\n")
-
-#define INTERNAL_FAILURE_WARN2 \
- gettext("Would recover from internal software failure:\n"\
- " ioctl /dev/pm PM_GET_STATE_CHANGE_WAIT : %s\n")
-
-#define FPU_INVALID_ARG_MSG \
- gettext("Invalid arguments passed to fp-test\n")
-
-#define FPU_SIG_RCVD \
- gettext("FP test on %d received signal.\n")
-
-#define FPU_SIG_ILL_MSG \
- gettext("FP test on FPU %d received SIGILL.\n")
-
-#define FPU_SYSCALL_FAIL_MSG \
- gettext("Syscall failed for FP test on FPU %d\n")
-
-#define FPU_EREPORT_INCOM_MSG \
- gettext("FP test on FPU %d could not complete ereport generation.\n")
-
-#define FPU_FPE_MSG \
- gettext("FP test encountered floating point exception on FPU %d.\n")
-
-#define FPU_SYSCALL_TRYAGAIN_MSG \
- gettext("Syscall failed probably due to temporary "\
- "unavailability of resources; Trying again!\n")
-
-#define INVAL_PROP_VALUE \
- gettext("Invalid property value defined: %s;\n"\
- "\tIgnoring field exclude_cpus.\n")
-
-#define FPU_EREPORT_FAIL_MSG \
- gettext("FP test on FPU %d could not file ereport.\n")
-
-#define FPU_TIMED_OUT_MSG \
- gettext("Test could not be scheduled on FPU %d; Daemon timed out\n")
-
-#define FPSD_MIS_CALCULATIONS \
- gettext("There was some errorin calculating total iterations "\
- "in one pass: %d\n")
-
-#define REPROBE_MSG \
- gettext("Num onln cpus changed; Reprobing...\n")
-
-#define IDENTIFY_FPU_MSG \
- gettext("In the beginning, fpuid_index = %d, " \
- "d_iteration = %d, tot_iter = %d, Total cpus = %d\n")
-
-#define IDENTIFY_FPU_RTN_MSG \
- gettext("Before returning, fpuid = %d, iter = %d, freq= %d, " \
- "prev_iter = %d, total_iter = %d\n")
-
-#define RECORD_FAILURE_MSG \
- gettext("Recording failure for fpu %d at %d\n")
-
-#define EXIT_STAT_MSG \
- gettext("FP test exit status = %d\n")
-
-#define INTVL_CHANGED_MSG \
- gettext("Interval changed in scheduler: %d\n")
-
-#define RESCHEDULE_MSG \
- gettext("Rescheduling test for %d\n")
-
-#define TOT_ITERS \
- gettext("Total iterations = %d, number of cpus to test = %d\n")
-
-#define NUM_ONLN_CPUS \
- gettext("Numberofonlncpus=%d:\n")
-
-#define CPU_INFO \
- gettext("Cpuid = %d, cpu brand = %s, frequency = %d\n")
-
-#define NUM_CPUS_2_TST \
- gettext("Cpuids_size after probe = %d\n")
-
-#define NUM_IGN_CPUS \
- gettext("Number of cpus to be excluded from testing = %d\n")
-
-#define IGN_CPUS \
- gettext("Ignoring cpu %d\n")
-
-#define CREATE_FAIL \
- gettext("Unable to create SCF instance/property group/property: %s\n")
-
-#define HANDLE_DECODE_FAIL \
- gettext("Unable to decode FMRI : %s")
-
-#define SNAPSHOT_CREAT_FAIL \
- gettext("Unable to create SCF snapshot: %s\n")
-
-#define INST_SNAPSHOT_GET_FAIL \
- gettext("Unable to set snapshot in instance: %s\n")
-
-#define INSTANCE_PG_GET_FAIL \
- gettext("Instance properties could not be obtained: %s\n")
-
-#define INTVL_VAL \
- gettext("From SMF repository, interval = %lld\n")
-
-#define EXCL_CPUS \
- gettext("From SMF repository, cpus to be excluded = %s\n")
-
-#define SMF_INVKD \
- gettext("SMF invoked; fpsd fmri = %s\n")
-
-#define CLI_INVKD \
- gettext("CLI invocation\n")
-
-#define FPTST_BIN_PTH \
- gettext("Searching for fptest binary location = %s\n")
-
-#define FPSD_STATE \
- gettext("Service disabled successfully. \n")
-
-#define DISABLE_SVC_FAILED \
- gettext("Disabling service failed; Current state = %s\n")
-
-#define REPRBE_REQ \
- gettext("Reprobe request recd.\n")
-
-#define DOOR_HNDLR_MSG \
- gettext("Server received door call: Version %d; type: %x; len:%d \n")
-
-#define UNBIND_FAIL_MSG \
- gettext("Unable to unbind after fptest timeout: %s\n")
-
-#define TST_SIGNALED_MSG \
- gettext("Fptest on cpu %d, matrix size = %d died due to signal %s\n")
-
-#define MIN_INTERVAL_MSG \
- gettext("Calculated interval = %d which is less than min interval.\n"\
- "Setting interval to %d\n")
-
-#define ALL_CPUS_EXCLDED \
- gettext("All cpus are excluded from testing through "\
- "config/exclude_cpus properties for the service. \n")
-
-#define GET_TIME_FAILED \
- gettext("gettimeofday failed: %s\n")
-
-#define LOCAL_TIME_FAILED \
- gettext("localtime_r failed: %s\n")
-
-#define STRFTIME_FAILED \
- gettext("strftime failed: buffer[%d] too small\n")
-
-#define PRINT_BUFFER \
- gettext("%s")
-
-#define ZERO_CPUS_2_TST \
- gettext("Assertion failed: While trying to calculate total"\
- " iterations, no cpus to test.\n")
-
-#define INVALID_FPU_ID \
- gettext("Assertion failed: An FPU could not be identified "\
- "to schedule test.\n")
-
-#define REPROBE_FAILURE \
- gettext("Reprobe failed. Exiting...\n")
-
-#define INFINITE_LOOP_MSG \
- gettext("Assertion failed: No testable CPU could be identified "\
- " after traversing the list of CPUs.\n")
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MESSAGES_H */
diff --git a/usr/src/cmd/fps/fptest/Makefile b/usr/src/cmd/fps/fptest/Makefile
deleted file mode 100644
index 8e764f1ed7..0000000000
--- a/usr/src/cmd/fps/fptest/Makefile
+++ /dev/null
@@ -1,182 +0,0 @@
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-
-include ../../Makefile.cmd
-include ../../Makefile.cmd.64
-
-PROG = fptest
-
-ROOTLIBFPS= $(ROOTLIB)/fps/sun4u/UltraSPARC-III
-ROOTLIBFPSIIIi= $(ROOTLIB)/fps/sun4u/UltraSPARC-IIIi
-ROOTLIBFPSIIIPLUS= $(ROOTLIB)/fps/sun4u/UltraSPARC-III+
-ROOTLIBFPSIV= $(ROOTLIB)/fps/sun4u/UltraSPARC-IV
-ROOTLIBFPSIVPLUS= $(ROOTLIB)/fps/sun4u/UltraSPARC-IV+
-
-ROOTLIBFPSTEST= $(PROG:%=$(ROOTLIBFPS)/%)
-ROOTLIBFPSTESTIIIi= $(PROG:%=$(ROOTLIBFPSIIIi)/%)
-ROOTLIBFPSTESTIIIPLUS= $(PROG:%=$(ROOTLIBFPSIIIPLUS)/%)
-ROOTLIBFPSTESTIV= $(PROG:%=$(ROOTLIBFPSIV)/%)
-ROOTLIBFPSTESTIVPLUS= $(PROG:%=$(ROOTLIBFPSIVPLUS)/%)
-
-SUNPERF = $(SPRO_VROOT)/prod/lib
-
-SUNPV9B = $(SUNPERF)/v9b
-SUNPV9 = $(SUNPERF)/v9
-VISARCH = -m64 -xarch=sparcvis2
-SHELL = /bin/ksh
-
-CHIP = -xchip=ultra3
-
-INCLUDES = -I. -I$(SPRO_VROOT)/prod/include/cc \
- -I../../fm/modules/sun4u/fps-transport
-
-CFLAGS64 += $(INCLUDES) -D_sparc64 -DV9B -g -xO3 -xildoff -_cc=-W2,-whole \
- $(CHIP) -_cc=-fsimple=0 $(VISARCH) -_gcc="-D__SUNPRO_C=1"\
- -erroff=E_ASM_DISABLES_OPTIMIZATION
-
-LDLIBS += -lc -lsysevent -lnvpair -lkstat -lm -lnsl -lpicl
-
-FBEFLAGS = -xildoff -D_sparc64 -DV9B $(VISARCH)
-
-SRCS = benchmarks.c fptest.c fps_ereport_mod.c cbbcopy.c fputest.c linpack.c \
- fpu_fsr_test.c cheetah_sdc.c util.c cheetah_sdc.s fpu_if64.s \
- fpu_test64.s fsr_test.s iflush.s
-
-LINOBJS = S.linpack.o D.linpack.o
-
-EXTRA_LIBS_CPU = -_cc=-xprefetch=auto -_cc=-xopenmp $(SUNPV9B)/libsunperf.a \
- $(SUNPV9)/libfui.a $(SUNPV9)/libfai.a $(SUNPV9)/libfsu.a \
- $(SUNPV9)/libsunmath.a $(VISARCH)
-
-SDCOBJS = cheetah_sdc.o iflush.o ch_sdc_g1.o ch_sdc_g2.o ch_sdc_g3.o \
- ch_sdc_g4.o ch_sdc_l0.o ch_sdc_l1.o ch_sdc_l2.o ch_sdc_l3.o \
- ch_sdc_l4.o ch_sdc_l5.o ch_sdc_l6.o ch_sdc_l7.o ch_sdc_o0.o \
- ch_sdc_o1.o ch_sdc_o2.o ch_sdc_o3.o ch_sdc_o4.o ch_sdc_o5.o \
- ch_sdc_o7.o
-
-FPUOBJS = $(SDCOBJS) fputest.o fpu_fsr_test.o fsr_test.o \
- cbbcopy.o fptest.o $(LINOBJS) fpu_if64.o fpu_test64.o \
- benchmarks.o fps_ereport_mod.o util.o
-
-AS_FLAGS += $(VISARCH) -P -D_ASM -D_sparc64
-
-VER:sh = \
- if [ -f ../compilercheck/compilercheck ]; \
- then \
- ../compilercheck/compilercheck; echo $?; \
- fi
-
-LINTFLAGS64 += $(INCLUDES) -D_sparc64 -DV9B -DLAPA_COMP_PERF_$(VER)
-
-.KEEP_STATE:
-
-########## beginning of dependency lines #################
-
-all: $(PROG)
-
-.c.o:
- $(COMPILE.c) -DLAPA_COMP_PERF_$(VER) $<
- $(CTFCONVERT_O)
- $(POST_PROCESS_O)
-
-$(PROG): $(FPUOBJS)
- $(LINK.c) -o $@ $(FPUOBJS) $(LDFLAGS) $(LDLIBS) $(TSTLIB.A) \
- $(EXTRA_LIBS_CPU)
- $(POST_PROCESS)
-
-include Makefile.rules
-
-benchmarks.o: benchmarks.c visfps.il
- $(COMPILE.c) -DFPU visfps.il benchmarks.c
- $(CTFCONVERT_O)
- $(POST_PROCESS_O)
-
-S.linpack.o: linpack.c
- $(COMPILE.c) -DLAPA_COMP_PERF_$(VER) linpack.c -o $@
- $(CTFCONVERT_O)
- $(POST_PROCESS_O)
-
-D.linpack.o: linpack.c
- $(COMPILE.c) -DLAPA_COMP_PERF_$(VER) linpack.c -DDP -o $@
- $(CTFCONVERT_O)
- $(POST_PROCESS_O)
-
-fpu_if64.o: fpu_if64.s
- $(COMPILE.c) $(FBEFLAGS) -Wa,-s,-P,-D_ASM fpu_if64.s
- $(CTFCONVERT_O)
- $(POST_PROCESS_O)
-
-fpu_test64.o: fpu_test64.s
- $(COMPILE.c) $(FBEFLAGS) -Wa,-s,-P,-D_ASM fpu_test64.s
- $(CTFCONVERT_O)
- $(POST_PROCESS_O)
-
-fsr_test.o: fsr_test.s
- $(COMPILE.c) $(FBEFLAGS) -Wa,-s,-P,-D_ASM fsr_test.s
- $(CTFCONVERT_O)
- $(POST_PROCESS_O)
-
-install : all $(ROOTLIBFPS) $(ROOTLIBFPSTEST) $(ROOTLIBFPSIIIi) \
- $(ROOTLIBFPSTESTIIIi) $(ROOTLIBFPSIIIPLUS) $(ROOTLIBFPSTESTIIIPLUS) \
- $(ROOTLIBFPSIV) $(ROOTLIBFPSTESTIV) $(ROOTLIBFPSIVPLUS) \
- $(ROOTLIBFPSTESTIVPLUS)
-
-clean:
- $(RM) $(LINOBJS) $(FPUOBJS)
-
-lint: lint_SRCS
-
-$(ROOTLIBFPS):
- $(INS.dir)
-
-$(ROOTLIBFPS)/%: %
- $(INS.file)
-
-$(ROOTLIBFPSIIIi):
- $(INS.dir)
-
-$(ROOTLIBFPSIIIi)/%: %
- $(RM) $@
- $(SYMLINK) ../UltraSPARC-III/fptest $@
-
-$(ROOTLIBFPSIIIPLUS):
- $(INS.dir)
-
-$(ROOTLIBFPSIIIPLUS)/%: %
- $(RM) $@
- $(SYMLINK) ../UltraSPARC-III/fptest $@
-
-$(ROOTLIBFPSIV):
- $(INS.dir)
-
-$(ROOTLIBFPSIV)/%: %
- $(RM) $@
- $(SYMLINK) ../UltraSPARC-III/fptest $@
-
-$(ROOTLIBFPSIVPLUS):
- $(INS.dir)
-
-$(ROOTLIBFPSIVPLUS)/%: %
- $(RM) $@
- $(SYMLINK) ../UltraSPARC-III/fptest $@
-
-include ../../Makefile.targ
diff --git a/usr/src/cmd/fps/fptest/Makefile.rules b/usr/src/cmd/fps/fptest/Makefile.rules
deleted file mode 100644
index 10b1636634..0000000000
--- a/usr/src/cmd/fps/fptest/Makefile.rules
+++ /dev/null
@@ -1,147 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# ident "%Z%%M% %I% %E% SMI"
-#
-
-iflush.o sparcv9/iflush.o : iflush.s
- $(AS) $(AS_FLAGS) iflush.s -o $@
-
-ch_sdc_g1.o sparcv9/ch_sdc_g1.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DGLOBALS -DG1 cheetah_sdc.s -o $@
-
-ch_sdc_g2.o sparcv9/ch_sdc_g2.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DGLOBALS -DG2 cheetah_sdc.s -o $@
-
-ch_sdc_g3.o sparcv9/ch_sdc_g3.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DGLOBALS -DG3 cheetah_sdc.s -o $@
-
-ch_sdc_g4.o sparcv9/ch_sdc_g4.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DGLOBALS -DG4 cheetah_sdc.s -o $@
-
-ch_sdc_l0.o sparcv9/ch_sdc_l0.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL0 cheetah_sdc.s -o $@
-
-ch_sdc_l1.o sparcv9/ch_sdc_l1.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL1 cheetah_sdc.s -o $@
-
-ch_sdc_l2.o sparcv9/ch_sdc_l2.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL2 cheetah_sdc.s -o $@
-
-ch_sdc_l3.o sparcv9/ch_sdc_l3.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL3 cheetah_sdc.s -o $@
-
-ch_sdc_l4.o sparcv9/ch_sdc_l4.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL4 cheetah_sdc.s -o $@
-
-ch_sdc_l5.o sparcv9/ch_sdc_l5.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL5 cheetah_sdc.s -o $@
-
-ch_sdc_l6.o sparcv9/ch_sdc_l6.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL6 cheetah_sdc.s -o $@
-
-ch_sdc_l7.o sparcv9/ch_sdc_l7.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DLOCALS -DL7 cheetah_sdc.s -o $@
-
-ch_sdc_o0.o sparcv9/ch_sdc_o0.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DOUTS -DO0 cheetah_sdc.s -o $@
-
-ch_sdc_o1.o sparcv9/ch_sdc_o1.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DOUTS -DO1 cheetah_sdc.s -o $@
-
-ch_sdc_o2.o sparcv9/ch_sdc_o2.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DOUTS -DO2 cheetah_sdc.s -o $@
-
-ch_sdc_o3.o sparcv9/ch_sdc_o3.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DOUTS -DO3 cheetah_sdc.s -o $@
-
-ch_sdc_o4.o sparcv9/ch_sdc_o4.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DOUTS -DO4 cheetah_sdc.s -o $@
-
-ch_sdc_o5.o sparcv9/ch_sdc_o5.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DOUTS -DO5 cheetah_sdc.s -o $@
-
-ch_sdc_o7.o sparcv9/ch_sdc_o7.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS) -DOUTS -DO7 cheetah_sdc.s -o $@
-
-iflush_v9b.o sparcv9/iflush_v9b.o : iflush.s
- $(AS) $(AS_FLAGS_V9B) iflush.s -o $@
-
-ch_sdc_g1_v9b.o sparcv9/ch_sdc_g1_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DGLOBALS -DG1 cheetah_sdc.s -o $@
-
-ch_sdc_g2_v9b.o sparcv9/ch_sdc_g2_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DGLOBALS -DG2 cheetah_sdc.s -o $@
-
-ch_sdc_g3_v9b.o sparcv9/ch_sdc_g3_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DGLOBALS -DG3 cheetah_sdc.s -o $@
-
-ch_sdc_g4_v9b.o sparcv9/ch_sdc_g4_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DGLOBALS -DG4 cheetah_sdc.s -o $@
-
-ch_sdc_l0_v9b.o sparcv9/ch_sdc_l0_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL0 cheetah_sdc.s -o $@
-
-ch_sdc_l1_v9b.o sparcv9/ch_sdc_l1_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL1 cheetah_sdc.s -o $@
-
-ch_sdc_l2_v9b.o sparcv9/ch_sdc_l2_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL2 cheetah_sdc.s -o $@
-
-ch_sdc_l3_v9b.o sparcv9/ch_sdc_l3_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL3 cheetah_sdc.s -o $@
-
-ch_sdc_l4_v9b.o sparcv9/ch_sdc_l4_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL4 cheetah_sdc.s -o $@
-
-ch_sdc_l5_v9b.o sparcv9/ch_sdc_l5_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL5 cheetah_sdc.s -o $@
-
-ch_sdc_l6_v9b.o sparcv9/ch_sdc_l6_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL6 cheetah_sdc.s -o $@
-
-ch_sdc_l7_v9b.o sparcv9/ch_sdc_l7_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DLOCALS -DL7 cheetah_sdc.s -o $@
-
-ch_sdc_o0_v9b.o sparcv9/ch_sdc_o0_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DOUTS -DO0 cheetah_sdc.s -o $@
-
-ch_sdc_o1_v9b.o sparcv9/ch_sdc_o1_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DOUTS -DO1 cheetah_sdc.s -o $@
-
-ch_sdc_o2_v9b.o sparcv9/ch_sdc_o2_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DOUTS -DO2 cheetah_sdc.s -o $@
-
-ch_sdc_o3_v9b.o sparcv9/ch_sdc_o3_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DOUTS -DO3 cheetah_sdc.s -o $@
-
-ch_sdc_o4_v9b.o sparcv9/ch_sdc_o4_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DOUTS -DO4 cheetah_sdc.s -o $@
-
-ch_sdc_o5_v9b.o sparcv9/ch_sdc_o5_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DOUTS -DO5 cheetah_sdc.s -o $@
-
-ch_sdc_o7_v9b.o sparcv9/ch_sdc_o7_v9b.o : cheetah_sdc.s cheetah_sdc.h
- $(AS) $(AS_FLAGS_V9B) -DOUTS -DO7 cheetah_sdc.s -o $@
diff --git a/usr/src/cmd/fps/fptest/benchmarks.c b/usr/src/cmd/fps/fptest/benchmarks.c
deleted file mode 100644
index dae5149e9e..0000000000
--- a/usr/src/cmd/fps/fptest/benchmarks.c
+++ /dev/null
@@ -1,769 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __lint
-#pragma error_messages(off, E_VALUE_TYPE)
-#endif
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <fp.h>
-#include <fps_ereport.h>
-
-#define EXPECTED 1.9999999999999998E+00
-
-static void fdivd(double *f22, double *f2, double *f12);
-static void fmuld(double *x, double *y, double *z, double *z1);
-static void fmulx(uint64_t *rs1, uint64_t *rs2, uint64_t *rd);
-int fpu_fdivd(int rloop, struct fps_test_ereport *report);
-int fpu_fmuld(int rloop, struct fps_test_ereport *report);
-int fpu_fmulx(int rloop, struct fps_test_ereport *report);
-
-#ifdef V9B
-
-/* Lint doesn't recognize .il files where these are defined */
-#ifdef __lint
-
-unsigned long fcmpgt16(double in1, double in2);
-unsigned long fcmpne16(double in1, double in2);
-unsigned long setgsr(unsigned long);
-
-#else
-
-extern float fpackfix(double num);
-extern unsigned long fcmpgt16(double in1, double in2);
-extern unsigned long fcmpne16(double in1, double in2);
-extern unsigned long setgsr(unsigned long);
-
-#endif
-
-int align_data(int loop,
- struct fps_test_ereport *report);
-int vis_test(struct fps_test_ereport *report);
-static int align_error_create(char *err, uint32_t start, uint32_t offest,
- int loop, uint32_t count);
-static int do_aligndata(uchar_t *from, uint32_t *offset, size_t sz,
- uchar_t *f0, uchar_t *f2, uint32_t bmask);
-static int visgt16(struct fps_test_ereport *report);
-static int visne16(struct fps_test_ereport *report);
-static int vispackfix(struct fps_test_ereport *report);
-
-#endif
-
-
-/*
- * fpu_fdivd(int rloop, int unit, struct fps_test_ereport *report)
- * returns whether the correct value is calculated each time
- * rloop times. If an error is found, the relevant data is stored
- * in report. The test uses internally generated random double
- * precision within a certain range to conduct the following test:
- *
- * (a * 2^1022) / ((a+e) * 2^1021)
- *
- * which is guaranteed to fill the resulting mantissa with all ones.
- *
- */
-int
-fpu_fdivd(int rloop, struct fps_test_ereport *report)
-{
-
- char err_data[MAX_INFO_SIZE];
- double expect_ans = EXPECTED;
- double f12 = 0;
- double f2;
- double f22;
- int loop = 0;
- uint64_t expect;
- uint64_t observe;
-
- srand48(1L);
-
- while (loop < rloop) {
- loop++;
-
- *(uint32_t *)& f22 = mrand48();
- *(uint32_t *)& f22 &= 0x80069fff;
- *(uint32_t *)& f22 |= 0x7fd69f00;
-
-#ifdef __lint
- (void) f22;
-#endif
-
- *((uint32_t *)& f22 + 1) = mrand48();
- *((uint32_t *)& f22 + 1) |= 0x00000001;
-
- *(uint64_t *)& f2 = *(uint64_t *)& f22 + 1;
- *(uint32_t *)& f2 &= 0x800FFFFF;
- *(uint32_t *)& f2 |= 0x7FC00000;
-#ifdef __lint
- (void) f2;
-#endif
-
- fdivd(&f22, &f2, &f12);
-
- if (f12 != expect_ans) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16e,\nObserved: %.16e",
- expect_ans, f12);
- expect = *(uint64_t *)&expect_ans;
- observe = *(uint64_t *)&f12;
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6340, &observe, &expect, 1, 1, err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * fdivd(uint64_t *rs1, uint64_t *rs2, uint64_t *rd)
- * performs the assembly level instructions for
- * fpu_fdivd.
- */
-/* ARGSUSED */
-static void
-fdivd(double *f22, double *f2, double *f12)
-{
- asm("ldd [%i0], %f22");
- asm("ldd [%i1], %f2");
- asm("fdivd %f22, %f2, %f12");
- asm("std %f12,[%i2]");
- asm("membar #Sync");
-}
-
-/*
- * fpu_fmuld(int rloop, int unit, struct fps_test_ereport *report)
- * returns whether the correct value is calculated each time
- * rloop times. If an error is found, the relevant data is stored
- * in report. The goal is to check if (x * y) == (y * x). The
- * data pattern is important, and the back-to-back fmuld's are
- * important.
- */
-int
-fpu_fmuld(int rloop, struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- double x;
- double y;
- double z;
- double z1;
- int loop;
- uint64_t expect;
- uint64_t observe;
- uint64_t *px;
- uint64_t *py;
-
- loop = 0;
- px = (uint64_t *)& x;
- py = (uint64_t *)& y;
- *px = 0x2FEBD8507111CDE5UL; /* 4865027 */
- *py = 0x2FE284A9A98EAA26UL;
-
-#ifdef __lint
- (void) x;
- (void) y;
-#endif
-
- while (loop < rloop) {
- loop++;
- z = z1 = 0.0;
-
- /*
- * Data pattern and back-to-back fmuld() are
- * important
- */
- fmuld(&x, &y, &z, &z1);
-
- if (*(uint64_t *)&z != *(uint64_t *)&z1) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16e,\nObserved: %.16e",
- *(uint64_t *)&z, *(uint64_t *)&z1);
- expect = *(uint64_t *)&z;
- observe = *(uint64_t *)&z1;
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6341, &observe, &expect, 1, 1, err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * fmuld(double *x,double *y, double *z, double *z1)
- * performs the assembly level instructions for
- * fpu_fmuld.
- */
-/* ARGSUSED */
-static void
-fmuld(double *x, double *y, double *z, double *z1)
-{
- asm("ldd[%i0], %f0");
- asm("ldd[%i1], %f4");
- asm("fmuld%f0, %f4, %f2");
- asm("fmuld%f4, %f0, %f6");
- asm("std%f2, [%i2]");
- asm("std%f6, [%i3]");
- asm("membar #Sync");
-}
-
-
-/*
- * fpu_fmulx(int rloop, int unit, struct fps_test_ereport *report)
- * returns whether the correct value is calculated each time
- * rloop times. If an error is found, the relevant data is stored
- * in report. The goal is to check if (x * y) == (y * x) with
- * 64-bit intgers.
- */
-int
-fpu_fmulx(int rloop, struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int loop;
- int loop_lim;
- uint32_t *rs1;
- uint32_t *rs2;
- uint64_t expect;
- uint64_t observe;
- uint64_t v1;
- uint64_t v2;
- uint64_t vd1;
- uint64_t vd2;
- uint64_t *rd1;
- uint64_t *rd2;
-
- v1 = v2 = vd1 = vd2 = 0;
- loop = 0;
- loop_lim = rloop;
-
- if (loop_lim < 10)
- loop_lim = 10;
-
- if (loop_lim > 100000)
- loop_lim = 100000;
-
- rs1 = (uint32_t *)& v1;
- rs2 = (uint32_t *)& v2;
- rd1 = &vd1;
- rd2 = &vd2;
-
-#ifdef __lint
- (void) v1;
- (void) v2;
-#endif
-
- srand(0l);
- while (loop < loop_lim) {
- loop++;
-
-#ifndef __lint
-
- *rs1 = mrand48();
- *(rs1 + 1) = mrand48();
- *rs2 = mrand48();
- *(rs2 + 1) = mrand48();
-#endif
-
- /* LINTED */
- fmulx((uint64_t *)rs1, (uint64_t *)rs2, rd1);
-
- /* LINTED */
- fmulx((uint64_t *)rs2, (uint64_t *)rs1, rd2);
-
- if (*rd1 != *rd2) {
- expect = (uint64_t)*rd1;
- observe = (uint64_t)*rd2;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %lld\nObserved: %lld", *rd1, *rd2);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6356, &observe, &expect, 1, 1, err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * fmulx(uint64_t *rs1, uint64_t *rs2, uint64_t *rd)
- * performs the assembly level instructions for
- * fpu_fmulx.
- */
-/* ARGSUSED */
-static void
-fmulx(uint64_t *rs1, uint64_t *rs2, uint64_t *rd)
-{
- asm("ldx [%i0], %l0");
- asm("ldx [%i1], %l1");
- asm("mulx %l0, %l1, %l2");
- asm("stx %l2, [%i2]");
- asm("membar #Sync");
-
-}
-
-
-
-#ifdef V9B
-
-#pragma align 64 (f0)
-#pragma align 8 (f2)
-
-#define MEMSIZE 2048*3
-
-static uchar_t f0[64];
-static uchar_t f2[8];
-
-static uint32_t bmask[] = {0x01234567, 0x12345678,
- 0x23456789, 0x3456789a,
- 0x456789ab, 0x56789abc,
- 0x6789abcd, 0x789abcde,
- 0x89abcdef, 0x9abcdef0,
- 0xabcdef01, 0xbcdef012,
- 0xcdef0123, 0xdef01234,
- 0xef012345, 0xf0123456,
- 0x55555555, 0xaaaaaaaa,
- 0x00000000, 0xffffffff};
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-setgsr(unsigned long arg1)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-float
-fpackfix(double arg1)
-{
- return (0.0);
-}
-
-/*ARGSUSED*/
-unsigned long
-fcmpne16(double arg1, double arg2)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-unsigned long
-fcmpgt16(double arg1, double arg2)
-{
- return (0);
-}
-
-#endif /* LINT */
-
-/*
- * align_data(int loop, struct fps_test_ereport *report)
- * returns whether a miscompare was found after running alignment tests
- * loop amount of times. If an error is found, relevant data is stored
- * in report. This test exercises the alignaddr and aligndata
- * instructions with different byte alignments to ensure proper
- * operation. These two instructions are used extensively by the kernel
- * to move data size greater than 512 bytes. User level memcpy and
- * memmove library also use these instructions for data size
- * greater than 256 bytes.
- */
-int
-align_data(int loop, struct fps_test_ereport *report)
-{
- char err[MAX_INFO_SIZE];
- int test_ret;
- int nr_malloc;
- size_t memsize;
- struct timeval timeout;
- uchar_t c;
- uchar_t *pf0;
- uchar_t *pf2;
- uchar_t *src;
- uint32_t cnt;
- uint32_t i;
- uint32_t offset;
- uint32_t start;
- uint64_t expect[2];
- uint64_t observe[2];
-
- timeout.tv_sec = 0;
- timeout.tv_usec = 10000;
- nr_malloc = 0;
- err[0] = '\0';
-
- /* Make sure memsize is 64 bytes aligned with minimum of 64 bytes */
- memsize = MEMSIZE;
- memsize = memsize / 64 * 64;
-
- if (memsize < 64)
- memsize = 64;
-
- src = (uchar_t *)memalign(64, memsize + 64);
-
- while (src == NULL && nr_malloc < 10) {
- (void) select(1, NULL, NULL, NULL, &timeout);
- nr_malloc++;
- src = (uchar_t *)memalign(64, memsize + 64);
- }
-
- if (src == NULL)
- _exit(FPU_SYSCALL_FAIL);
-
- /* Initialize source array with sequential data */
- c = 0;
-
- for (i = 0; i < memsize + 64; i++)
- *(src + i) = c++;
-
- for (cnt = 0; cnt < loop; cnt++) {
- for (start = 1; start < 64; start += 1) {
- offset = 0;
-
- test_ret = do_aligndata(src + start, &offset,
- memsize, f0, f2, bmask[cnt % 20]);
-
- /*
- * Miscompare on the two aligndata
- * instructions. Calculate offset to source
- * array and get miscompare data
- */
-
- if (test_ret != 0) {
- pf0 = f0 + offset % 64;
- pf2 = f2;
-
- for (i = 0; i < 8; i++) {
- if (*(pf0 + i) != *(pf2 + i))
- break;
- }
-
- (void) align_error_create(err, start,
- offset + start + i, loop, cnt);
- expect[0] =
- (uint64_t)(*(uint8_t *)
- (src + offset + start + i));
- expect[1] = (uint64_t)0;
- observe[0] = (uint64_t)(*(uint8_t *)(pf0 + i));
- observe[1] = (uint64_t)(*(uint8_t *)(pf2 + i));
- setup_fps_test_struct(
- IS_EREPORT_INFO,
- report, 6344, observe,
- expect, 1, 2, err);
-
- free(src);
-
- return (-1);
- }
-
- /*
- * No miscompare on the aligndata
- * instructions. Check to see whether the
- * last 64 bytes matches the input
- */
- if (test_ret == 0) {
- pf2 = src + offset + start;
-
- for (i = 0; i < 64; i++) {
- if (f0[i] != *(pf2 + i)) {
-
- (void) align_error_create(err,
- start,
- offset + start + i,
- loop, cnt);
- expect[0] =
- (uint64_t)(*(uint8_t *)
- (pf2 + i));
- expect[1] = (uint64_t)0;
- observe[0] = (uint64_t)f0[i];
- observe[1] = (uint64_t)0;
- setup_fps_test_struct(
- IS_EREPORT_INFO,
- report, 6343, observe,
- expect, 1, 1, err);
-
- free(src);
- return (-1);
- }
- }
- }
- }
- }
-
- free(src);
-
- return (0);
-}
-
-/*
- * align_error_create(char *err, int start, int offset, int loop, int count)
- * returns if a successful snprintf was performed when creating an align_data
- * error message for align_data.
- */
-static int
-align_error_create(char *err, uint32_t start,
- uint32_t offset, int loop, uint32_t count)
-{
- if (err == NULL)
- return (-1);
-
- return snprintf(err, sizeof (err),
- "Start = %2.2d offset = %2.2d loop = %d cnt = %d",
- start, offset, loop, count);
-}
-
-/*
- * do_aligndata(uchar_t *from, uint32_t *offset, size_t sz,
- * uchar_t *f0, uchar_t *f2, uint32_t bmask) performs
- * the assembly lvl routines for align_data.
- */
-/*ARGSUSED*/
-static int
-do_aligndata(uchar_t *from, uint32_t *offset, size_t sz,
- uchar_t *f0, uchar_t *f2, uint32_t bmask)
-{
- int ret = 1;
-
- asm("bmask %i5,%g0,%g0");
- /* produce GSR.offset and align %l0 to 8 bytes boundary */
- asm("alignaddr %i0, %g0, %l0");
- /* %i0 then used as error register, assume error */
- asm("mov 1,%i0");
- /* %l1 used as offset counter */
- asm("mov -8,%l1");
- asm("ldd [%l0], %f0");
-
- asm("next_read:");
-
- asm("ldd [%l0+8], %f2");
- asm("ldd [%l0+0x10], %f4");
- asm("faligndata %f0, %f2, %f32");
- asm("faligndata %f0, %f2, %f48");
- asm("fcmpd %fcc0,%f32,%f48");
- asm("fblg,pn %fcc0,error");
- /* %l1 contains offset value */
- asm("add %l1,8,%l1");
- /* 0 - 7 */
-
- asm("ldd [%l0+0x18], %f6");
- asm("faligndata %f2, %f4, %f34");
- asm("faligndata %f2, %f4, %f48");
- asm("fcmpd %fcc0,%f34,%f48");
- asm("fblg,pn %fcc0,error");
- /* %l1 contains offset value */
- asm("add %l1,8,%l1");
- /* 9 - 15 */
-
- asm("ldd [%l0+0x20], %f8");
- asm("faligndata %f4, %f6, %f36");
- asm("faligndata %f4, %f6, %f48");
- asm("fcmpd %fcc0,%f36,%f48");
- asm("fblg,pn %fcc0,error");
- /* %l1 contains offset value */
- asm("add %l1,8,%l1");
- /* 16 - 23 */
-
- asm("ldd [%l0+0x28], %f10");
- asm("faligndata %f6, %f8, %f38");
- asm("faligndata %f6, %f8, %f48");
- asm("fcmpd %fcc0,%f38,%f48");
- asm("fblg,pn %fcc0,error");
- /* contains offset value */
- asm("add %l1,8,%l1");
- /* 24 - 31 */
-
- asm("ldd [%l0+0x28], %f10");
- asm("faligndata %f8, %f10, %f40");
- asm("faligndata %f8, %f10, %f48");
- asm("fcmpd %fcc0,%f40,%f48");
- asm("fblg,pn %fcc0,error");
- /* %l1 contains offset value */
- asm("add %l1,8,%l1");
- /* 32 - 39 */
-
- asm("ldd [%l0+0x30], %f12");
- asm("faligndata %f10, %f12, %f42");
- asm("faligndata %f10, %f12, %f48");
- asm("fcmpd %fcc0,%f42,%f48");
- asm("fblg,pn %fcc0,error");
- /* %l1 contains offset value */
- asm("add %l1,8,%l1");
- /* 40 - 47 */
-
- asm("ldd [%l0+0x38], %f14");
- asm("faligndata %f12, %f14, %f44");
- asm("faligndata %f12, %f14, %f48");
- asm("fcmpd %fcc0,%f44,%f48");
- asm("fblg,pn %fcc0,error");
- /* %l1 contains offset value */
- asm("add %l1,8,%l1");
- /* 48 - 55 */
-
- asm("ldd [%l0+0x40], %f0");
- asm("faligndata %f14, %f0, %f46");
- asm("faligndata %f14, %f0, %f48");
- asm("fcmpd %fcc0,%f46,%f48");
- asm("fblg,pn %fcc0,error");
- /* %l1 contains offset value */
- asm("add %l1,8,%l1");
- /* 56 - 63 */
-
- asm("subcc %i2,64,%i2");
- asm("bg next_read");
- asm("add %l0,64,%l0");
-
- /* no miscompare error */
- asm("mov 0,%i0");
- ret = 0;
- /* no error, move back to last 64 bytes boundary */
- asm("sub %l1,56,%l1");
-
- asm("error:");
- asm("stda %f32,[%i3]0xf0");
- asm("std %f48,[%i4]");
- /* store offset value */
- asm("st %l1,[%i1]");
- asm("membar #Sync");
-
- return (ret);
-}
-
-/*
- * vis_test(struct fps_test_ereport *report)
- * checks if various RISC operations are performed
- * succesfully. If an error is found, relevant data
- * is stored in report.
- */
-int
-vis_test(struct fps_test_ereport *report)
-{
- int v1;
- int v2;
- int v3;
-
- v1 = visgt16(report);
- v2 = visne16(report);
- v3 = vispackfix(report);
-
- if ((0 != v1) || (0 != v2) || (0 != v3))
- return (-1);
-
- return (0);
-}
-
-/*
- * visgt16(struct fps_test_ereport *report)
- * does a greater-than compare instruction and returns if
- * successful or not. If an error, relevant data is
- * stored in report.
- */
-static int
-visgt16(struct fps_test_ereport *report)
-{
- uint64_t expected;
- uint64_t observed;
- unsigned long a = 0x0000000000000001;
- unsigned long b = 0x8000000008000008;
- unsigned long c = fcmpgt16(*((double *)&a), *((double *)&b));
-
- if (c == 0x8)
- return (0);
- else {
- expected = (uint64_t)0x8;
- observed = (*(uint64_t *)&c);
- setup_fps_test_struct(NO_EREPORT_INFO, report,
- 6364, &observed, &expected, 1, 1);
-
- return (-1);
- }
-}
-
-/*
- * visne16(struct fps_test_ereport *report)
- * does a not-equal compare instruction and returns if
- * successful or not. If an error, relevant data is
- * stored in report.
- */
-static int
-visne16(struct fps_test_ereport *report)
-{
- uint64_t expected;
- uint64_t observed;
- unsigned long a = 0x0000000000000001;
- unsigned long b = 0x0001000000001001;
- unsigned long c = fcmpne16(*((double *)&a), *((double *)&b));
-
- if (c == 0x9)
- return (0);
- else {
- expected = (uint64_t)0x9;
- observed = (*(uint64_t *)&c);
- setup_fps_test_struct(NO_EREPORT_INFO, report,
- 6365, &observed, &expected, 1, 1);
-
- return (-1);
- }
-}
-
-/*
- * vispackfix(struct fps_test_ereport *report)
- * does four 16-bit pack conversions to a lower precsion
- * format and returns if successful or not. If an error,
- * relevant data is stored in report.
- */
-static int
-vispackfix(struct fps_test_ereport *report)
-{
- float b;
- uint64_t expected;
- uint64_t observed;
- unsigned int c;
- unsigned long a = 0x8008000008008008;
- unsigned long gsr = 0;
-
- (void) setgsr(gsr);
-
- b = fpackfix(*((double *)&a));
- c = *((unsigned int *)&b);
-
- if (c == 0x80080800)
- return (0);
- else {
- expected = (uint64_t)0x80080800;
- observed = (uint64_t)c;
- setup_fps_test_struct(NO_EREPORT_INFO, report,
- 6366, &observed, &expected, 1, 1);
-
- return (-1);
- }
-}
-
-#endif
diff --git a/usr/src/cmd/fps/fptest/cbbcopy.c b/usr/src/cmd/fps/fptest/cbbcopy.c
deleted file mode 100644
index e2ceb839f3..0000000000
--- a/usr/src/cmd/fps/fptest/cbbcopy.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <fp.h>
-#include <fps_ereport.h>
-
-#pragma align 64(datain1, datain2, dataout)
-
-int cbbcopy(struct fps_test_ereport *report);
-static void asi_bcopy_f0(uint32_t *out, uint32_t *in);
-static void asi_bcopy_f16(uint32_t *out, uint32_t *in);
-static void ax_bcopy(uint32_t *out, uint32_t *in);
-
-static uint32_t dataout[64];
-
-static uint32_t datain1[64] = {
-0x55555500, 0x55555501, 0xaaaaaa02, 0xaaaaaa03,
-0x55555504, 0x55555505, 0xaaaaaa06, 0xaaaaaa07,
-0x55555508, 0x55555509, 0xaaaaaa0a, 0xaaaaaa0b,
-0x5555550c, 0x5555550d, 0xaaaaaa0e, 0xaaaaaa0f,
-0x55555510, 0x55555511, 0xaaaaaa12, 0xaaaaaa13,
-0x55555514, 0x55555515, 0xaaaaaa16, 0xaaaaaa17,
-0x55555518, 0x55555519, 0xaaaaaa1a, 0xaaaaaa1b,
-0x5555551c, 0x5555551d, 0xaaaaaa1e, 0xaaaaaa1f,
-0x55555520, 0x55555521, 0xaaaaaa22, 0xaaaaaa23,
-0x55555524, 0x55555525, 0xaaaaaa26, 0xaaaaaa27,
-0x55555528, 0x55555529, 0xaaaaaa2a, 0xaaaaaa2b,
-0x5555552c, 0x5555552d, 0xaaaaaa2e, 0xaaaaaa2f,
-0x55555530, 0x55555531, 0xaaaaaa32, 0xaaaaaa33,
-0x55555534, 0x55555535, 0xaaaaaa36, 0xaaaaaa37,
-0x55555538, 0x55555539, 0xaaaaaa3a, 0xaaaaaa3b,
-0x5555553c, 0x5555553d, 0xaaaaaa3e, 0xaaaaaa3f
-};
-
-static uint32_t datain2[64] = {
-0xaaaaaaff, 0xaaaaaafe, 0x555555fd, 0x555555fc,
-0xaaaaaafb, 0xaaaaaafa, 0x555555f9, 0x555555f8,
-0xaaaaaaf7, 0xaaaaaaf6, 0x555555f5, 0x555555f4,
-0xaaaaaaf3, 0xaaaaaaf2, 0x555555f1, 0x555555f0,
-0xaaaaaaef, 0xaaaaaaee, 0x555555ed, 0x555555ec,
-0xaaaaaaeb, 0xaaaaaaea, 0x555555e9, 0x555555e8,
-0xaaaaaae7, 0xaaaaaae6, 0x555555e5, 0x555555e4,
-0xaaaaaae3, 0xaaaaaae2, 0x555555e1, 0x555555e0,
-0xaaaaaadf, 0xaaaaaade, 0x555555dd, 0x555555dc,
-0xaaaaaadb, 0xaaaaaada, 0x555555d9, 0x555555d8,
-0xaaaaaad7, 0xaaaaaad6, 0x555555d5, 0x555555d4,
-0xaaaaaad3, 0xaaaaaad2, 0x555555d1, 0x555555d0,
-0xaaaaaacf, 0xaaaaaace, 0x555555cd, 0x555555cc,
-0xaaaaaacb, 0xaaaaaaca, 0x555555c9, 0x555555c8,
-0xaaaaaac7, 0xaaaaaac6, 0x555555c5, 0x555555c4,
-0xaaaaaac3, 0xaaaaaac2, 0x555555c1, 0x555555c0
-};
-
-/*
- * cbbcopy(int unit, struct fps_test_ereport *report)
- * exercises block load and store path thru floating point
- * registers. Returns whether load/store was successful.
- * If an error, all relevant data is stored in report.
- * Purpose: FRF integraty check thru both block ld/st and P$
- * ax/ms pipe for health check online check utility. The utility is intented
- * to detect simple stuck at fault not timing related faults.
- */
-int
-cbbcopy(struct fps_test_ereport *report)
-{
- int i;
- uint64_t expect;
- uint64_t observe;
-
- ax_bcopy(dataout, datain1);
- asi_bcopy_f0(dataout, dataout);
-
- for (i = 0; i < 64; i++) {
- if (dataout[i] != datain1[i]) {
- expect = (uint64_t)datain1[i];
- observe = (uint64_t)dataout[i];
- setup_fps_test_struct(NO_EREPORT_INFO, report,
- 6337, &observe, &expect, 1, 1);
-
- return (FPU_FOROFFLINE);
- }
- }
-
- ax_bcopy(dataout, datain2);
- asi_bcopy_f16(dataout, dataout);
-
- for (i = 0; i < 64; i++) {
- if (dataout[i] != datain2[i]) {
- expect = (uint64_t)datain2[i];
- observe = (uint64_t)dataout[i];
- setup_fps_test_struct(NO_EREPORT_INFO, report,
- 6338, &observe, &expect, 1, 1);
-
- return (FPU_FOROFFLINE);
- }
- }
-
- return (FPU_OK);
-}
-
-/*
- * asi_bcopy_f0(uint32_t *out, uint32_t *in)
- * does the assembly load/store of in to out
- */
-/* ARGSUSED */
-static void
-asi_bcopy_f0(uint32_t *out, uint32_t *in)
-{
- asm("ldda [%i1]0xf8,%f0");
- asm("membar #Sync");
- asm("stda %f0,[%i0]0xf0");
- asm("membar #Sync");
-}
-
-/*
- * asi_bcopy_f16(uint32_t *out, uint32_t *in)
- * does the assembly load/store of in to out
- */
-/* ARGSUSED */
-static void
-asi_bcopy_f16(uint32_t *out, uint32_t *in)
-{
- asm("ldda [%i1]0xf0,%f16");
- asm("membar #Sync");
- asm("stda %f16,[%i0]0xf8");
- asm("membar #Sync");
-}
-
-/*
- * ax_bcopy(uint32_t *out, uint32_t *in)
- * does the assembly load/store of in to out
- */
-/* ARGSUSED */
-static void
-ax_bcopy(uint32_t *out, uint32_t *in)
-{
- asm("prefetch [%i1],21");
- asm("prefetch [%i1+0x40],21");
- asm("ldd [%i1],%f16");
- asm("ldd [%i1+8],%f18");
- asm("ldd [%i1+0x10],%f20");
- asm("ldd [%i1+0x18],%f22");
- asm("ldd [%i1+0x20],%f24");
- asm("ldd [%i1+0x28],%f26");
- asm("ldd [%i1+0x30],%f28");
- asm("ldd [%i1+0x38],%f30");
- asm("ldd [%i1+0x40],%f32");
-
- asm("prefetch [%i1+0x80],21");
- asm("ldd [%i1+0x48],%f34");
- asm("ldd [%i1+0x50],%f36");
- asm("ldd [%i1+0x58],%f38");
- asm("ldd [%i1+0x60],%f40");
- asm("ldd [%i1+0x68],%f42");
- asm("ldd [%i1+0x70],%f44");
- asm("ldd [%i1+0x78],%f46");
-
- asm("prefetch [%i1+0xc0],21");
- asm("ldd [%i1+0x80],%f0");
- asm("ldd [%i1+0x88],%f2");
- asm("ldd [%i1+0x90],%f4");
- asm("ldd [%i1+0x98],%f6");
- asm("ldd [%i1+0xa0],%f8");
- asm("ldd [%i1+0xa8],%f10");
- asm("ldd [%i1+0xb0],%f12");
- asm("ldd [%i1+0xb8],%f14");
-
- asm("ldd [%i1+0xc0],%f48");
- asm("ldd [%i1+0xc8],%f50");
- asm("ldd [%i1+0xd0],%f52");
- asm("ldd [%i1+0xd8],%f54");
- asm("ldd [%i1+0xe0],%f56");
- asm("ldd [%i1+0xe8],%f58");
- asm("ldd [%i1+0xf0],%f60");
- asm("ldd [%i1+0xf8],%f62");
-
- asm("membar #Sync");
- asm("stda %f16,[%i0]0xf8");
- asm("add %i0,0x40,%i0");
- asm("stda %f32,[%i0]0xf0");
- asm("add %i0,0x40,%i0");
- asm("stda %f0,[%i0]0xf0");
- asm("add %i0,0x40,%i0");
- asm("stda %f48,[%i0]0xf0");
- asm("membar #Sync");
-}
diff --git a/usr/src/cmd/fps/fptest/cheetah_sdc.c b/usr/src/cmd/fps/fptest/cheetah_sdc.c
deleted file mode 100644
index 695f5d6be0..0000000000
--- a/usr/src/cmd/fps/fptest/cheetah_sdc.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fps_ereport.h>
-
-extern void iflush(void);
-extern int g1(unsigned long, unsigned long *, unsigned long *);
-extern int g2(unsigned long, unsigned long *, unsigned long *);
-extern int g3(unsigned long, unsigned long *, unsigned long *);
-extern int g4(unsigned long, unsigned long *, unsigned long *);
-extern int l0(unsigned long, unsigned long *, unsigned long *);
-extern int l1(unsigned long, unsigned long *, unsigned long *);
-extern int l2(unsigned long, unsigned long *, unsigned long *);
-extern int l3(unsigned long, unsigned long *, unsigned long *);
-extern int l4(unsigned long, unsigned long *, unsigned long *);
-extern int l5(unsigned long, unsigned long *, unsigned long *);
-extern int l6(unsigned long, unsigned long *, unsigned long *);
-extern int l7(unsigned long, unsigned long *, unsigned long *);
-extern int o0(unsigned long, unsigned long *, unsigned long *);
-extern int o1(unsigned long, unsigned long *, unsigned long *);
-extern int o2(unsigned long, unsigned long *, unsigned long *);
-extern int o3(unsigned long, unsigned long *, unsigned long *);
-extern int o4(unsigned long, unsigned long *, unsigned long *);
-extern int o5(unsigned long, unsigned long *, unsigned long *);
-extern int o7(unsigned long, unsigned long *, unsigned long *);
-
-typedef struct {
- char *reg;
- int (*test_func) (unsigned long, unsigned long *,\
- unsigned long *);
-}reg_info;
-
-/* Registers to be tested and the functions to be used for it. */
-static
-reg_info reg_func[] =
-{
- {"g1", g1},
- {"g2", g2},
- {"g3", g3},
- {"g4", g4},
- {"l0", l0},
- {"l1", l1},
- {"l2", l2},
- {"l3", l3},
- {"l4", l4},
- {"l5", l5},
- {"l6", l6},
- {"l7", l7},
- {"o0", o0},
- {"o1", o1},
- {"o2", o2},
- {"o3", o3},
- {"o4", o4},
- {"o5", o5},
- /* %o6 is not tested as it is the %sp */
- {"o7", o7}
-};
-
-#define N_REGS (sizeof (reg_func)/sizeof (*reg_func))
-
-/*
- * cheetah_sdc_test(int limit, int unit, struct fps_test_ereport *report)
- * tests for silent data corruption first unearthed in a 750 Mhz Cheetah
- * (Toshiba). Returns if successful or not. If an error, relevant data
- * is stored in report. The test calls an assembly routine with
- * different target registers but essentially the same code sequence
- */
-int
-cheetah_sdc_test(int limit, struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int iter;
- int regs;
- int rval;
- uint64_t expect;
- uint64_t observe;
- unsigned long tmp1 = 0;
- unsigned long tmp2 = 0;
-
- unsigned long pattern = 0xDEADDEADDEADDEAD;
-
- for (regs = 0; regs < N_REGS; regs++) {
- for (iter = 0; iter < limit; iter++) {
- iflush();
- rval = reg_func[regs].test_func(pattern, &tmp1, &tmp2);
-
- if (rval != 0) {
- (void) snprintf(err_data, sizeof (err_data),
- "Test:%d, reg:%s", iter,
- reg_func[regs].reg);
- expect = (uint64_t)0;
- observe = (uint64_t)rval;
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6357, &observe,
- &expect, 1, 1, err_data);
-
- return (-1);
- }
- }
- }
-
- return (0);
-}
diff --git a/usr/src/cmd/fps/fptest/cheetah_sdc.h b/usr/src/cmd/fps/fptest/cheetah_sdc.h
deleted file mode 100644
index 473228b8fc..0000000000
--- a/usr/src/cmd/fps/fptest/cheetah_sdc.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _CHEETAH_SDC_H
-#define _CHEETAH_SDC_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-/*
- * TARGET_REG: The register that is being tested
- * TEMP_REG: The register that is used for the random
- * instructions. This must be a odd register.
- * The fault does not occur if even registers
- * are used.
- * CHECK_REG1: The register to which the contents of the
- * TARGET_REG will be moved.
- * CHECK_REG2: Same as CHECK_REG1.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Global Registers */
-
-#ifdef GLOBALS
-#define TEMP_REG l1
-#define CHECK_REG1 o0
-#define CHECK_REG2 o1
-#endif
-
-#ifdef G1
-#define TARGET_REG g1
-#endif
-
-#ifdef G2
-#define TARGET_REG g2
-.register %g2, #scratch
-#endif
-
-#ifdef G3
-#define TARGET_REG g3
-.register %g3, #scratch
-#endif
-
-#ifdef G4
-#define TARGET_REG g4
-#endif
-
-
-/* Local Registers */
-
-#ifdef LOCALS
-#define TEMP_REG o3
-#define CHECK_REG1 o0
-#define CHECK_REG2 o1
-#endif
-
-#ifdef L0
-#define TARGET_REG l0
-#endif
-
-#ifdef L1
-#define TARGET_REG l1
-#endif
-
-#ifdef L2
-#define TARGET_REG l2
-#endif
-
-#ifdef L3
-#define TARGET_REG l3
-#endif
-
-#ifdef L4
-#define TARGET_REG l4
-#endif
-
-#ifdef L5
-#define TARGET_REG l5
-#endif
-
-#ifdef L6
-#define TARGET_REG l6
-#endif
-
-#ifdef L7
-#define TARGET_REG l7
-#endif
-
-
-/* Out Registers */
-
-#ifdef OUTS
-#define TEMP_REG l3
-#define CHECK_REG1 l0
-#define CHECK_REG2 l1
-#endif
-
-#ifdef O0
-#define TARGET_REG o0
-#endif
-
-#ifdef O1
-#define TARGET_REG o1
-#endif
-
-#ifdef O2
-#define TARGET_REG o2
-#endif
-
-#ifdef O3
-#define TARGET_REG o3
-#endif
-
-#ifdef O4
-#define TARGET_REG o4
-#endif
-
-#ifdef O5
-#define TARGET_REG o5
-#endif
-
-/* %o6 not tested as it is the %sp */
-
-#ifdef O7
-#define TARGET_REG o7
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _CHEETAH_SDC_H */
diff --git a/usr/src/cmd/fps/fptest/cheetah_sdc.s b/usr/src/cmd/fps/fptest/cheetah_sdc.s
deleted file mode 100644
index 1fc52bf77c..0000000000
--- a/usr/src/cmd/fps/fptest/cheetah_sdc.s
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <sys/asm_linkage.h>
-#include "cheetah_sdc.h"
-
-/*
- * TARGET_REG and TEMP_REG are macros defined in cheetah_sdc.h
- * They are set based on some compile time values
- * for eg.
- * as -xarch=v8 -P -D_ASM -DLOCALS -DL0 cheetah_sdc.s -o ch_sdc_l0.o
- * ch_sdc_l0.o will contain code to test %l0 register
- * The functions are named after the register it is testing (l1(), l2() etc)
- *
- * Algorithm
- * Use TARGET_REGISTER
- * Do some random stuff on TEMP_REGISTER
- * Do some operations on TARGET_REGISTER
- * Test
- *
- * TARGET_REG(unsigned long, unsigned long*, unsigned long*)
- * Registers :
- * i0 = contains the pattern
- * i1 = location for the observed value
- * i2 = location for the expected value
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-int
-g1(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-g2(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-g3(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-g4(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l0(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l1(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l2(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l3(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l4(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l5(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l6(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-l7(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-o0(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-o1(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-o2(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-o3(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-o4(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-o5(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-/*ARGSUSED*/
-int
-o7(unsigned long arg1, unsigned long *arg2, unsigned long *arg3)
-{
- return (0);
-}
-
-#else /* LINT */
-
- .align 64
-ENTRY(TARGET_REG)
-
- save %sp, -SA(MINFRAME), %sp
-
- setn 0x12345678, %g1, %TARGET_REG ! initialize the TARGET_REG
- ! with a known value
-
-#ifdef _sparc64
- stx %i0, [%i1] ! store the pattern to the first location
-#else
- st %i0, [%i1]
-#endif
-
- nop
- nop
- nop
- nop
-
- nop
- nop
- nop
- nop
-#ifdef _sparc64
- stx %g0, [%i2]
- stx %g0, [%i2]
-#else
- st %g0, [%i2]
- st %g0, [%i2]
-#endif
-
-
-!!
- clr %TEMP_REG
- clr %TEMP_REG
-
-#ifdef _sparc64
- st %g0, [%i2]
-#else
- st %g0, [%i2]
-#endif
- inc %g0
- inc %g0
- or %TEMP_REG, %g0, %TEMP_REG
- or %TEMP_REG, %g0, %TEMP_REG
-
-
-!!
-#ifdef _sparc64
- ldx [%i1], %TARGET_REG
-#else
- ld [%i1], %TARGET_REG
-#endif
- mov %TARGET_REG, %CHECK_REG1 ! CHECK_REG1 should contain the
- ! most recent value of TARGET_REG.
-
- mov %TARGET_REG, %CHECK_REG2 ! CHECK_REG2 should have the same
- ! value as CHECK_REG1
-! ==
- cmp %CHECK_REG1, %CHECK_REG2 ! comparison should pass in non-faulty
- ! hardware
-
- be Done
- mov 0, %i0
-
-#ifdef _sparc64
- stx %CHECK_REG1, [%i1]
- stx %CHECK_REG2, [%i2]
-#else
- st %CHECK_REG1, [%i1]
- st %CHECK_REG2, [%i2]
-#endif
-
- mov 1, %i0
-
-Done :
-
- ret
- restore
-SET_SIZE(TARGET_REG)
-
-#endif /* LINT */
diff --git a/usr/src/cmd/fps/fptest/externs.h b/usr/src/cmd/fps/fptest/externs.h
deleted file mode 100644
index 282e1afc2d..0000000000
--- a/usr/src/cmd/fps/fptest/externs.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _EXTERNS_H
-#define _EXTERNS_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/types.h>
-#include <fps_ereport.h>
-
-/* Register handling routines */
-extern uint32_t register_test(int, uint32_t);
-extern uint64_t get_gsr(void);
-extern uint64_t move_regs_dp(uint64_t);
-extern uint64_t register_test_dp(int, uint64_t);
-extern unsigned long get_fsr(void);
-extern unsigned long move_regs(unsigned long);
-extern void init_regs(uint32_t);
-extern void init_regs_dp(uint64_t);
-extern void set_fsr(unsigned long);
-extern void set_gsr(uint64_t);
-
-/* FP arithmetic routines */
-extern uint64_t absolute_value_dp(uint64_t);
-extern uint64_t add_dp(uint64_t, uint64_t);
-extern uint64_t div_dp(uint64_t, uint64_t);
-extern uint64_t fcmps_fcc(unsigned int, unsigned int,
- unsigned int);
-extern uint64_t fcmpd_fcc(uint64_t, uint64_t, unsigned int);
-extern uint64_t mult_dp(uint64_t, uint64_t);
-extern uint64_t negate_value_dp(uint64_t);
-extern uint64_t sqrt_sp(unsigned long);
-extern uint64_t sqrt_dp(uint64_t);
-extern uint64_t sub_dp(uint64_t, uint64_t);
-extern uint64_t wadd_sp(unsigned long, unsigned long);
-extern uint64_t wadd_dp(unsigned long, unsigned long,
- unsigned long, unsigned long);
-extern uint64_t wdiv_sp(unsigned long, unsigned long);
-extern uint64_t wdiv_dp(unsigned long, unsigned long,
- unsigned long, unsigned long);
-extern uint64_t wmult_sp(unsigned long, unsigned long);
-extern uint64_t wmult_dp(unsigned long, unsigned long,
- unsigned long, unsigned long);
-extern uint64_t wsqrt_sp(unsigned long);
-extern uint64_t wsqrt_dp(uint64_t);
-extern unsigned long absolute_value_sp(unsigned long);
-extern unsigned long add_sp(unsigned long, unsigned long);
-extern unsigned long div_sp(unsigned long, unsigned long);
-extern unsigned long mult_sp(unsigned long, unsigned long);
-extern unsigned long negate_value_sp(unsigned long);
-extern unsigned long sub_sp(unsigned long, unsigned long);
-
-/* Compare routines */
-extern unsigned long cmp_d_ex(unsigned long, unsigned long);
-extern unsigned long cmp_s_ex(unsigned long, unsigned long);
-
-/* Conversion routines */
-extern int fsr_test(struct fps_test_ereport *report);
-extern int restore_signals();
-extern int winitfp(void);
-extern uint64_t convert_sp_dp(unsigned long);
-extern uint64_t float_long_d(uint64_t);
-extern uint64_t float_long_s(unsigned long);
-extern uint64_t long_float_d(uint64_t);
-extern uint64_t timing_add_dp(void);
-extern uint64_t timing_mult_dp(void);
-extern unsigned long branches(unsigned long, unsigned long, unsigned long);
-extern unsigned long chain_dp(int);
-extern unsigned long chain_sp(int);
-extern unsigned long convert_dp_sp(uint64_t);
-extern unsigned long datap_add(unsigned long);
-extern unsigned long datap_add_dp(unsigned long, unsigned long);
-extern unsigned long datap_mult(unsigned long);
-extern unsigned long datap_mult_dp(unsigned long, unsigned long);
-extern unsigned long float_int_d(uint64_t);
-extern unsigned long float_int_s(unsigned long);
-extern unsigned long int_float_d(int);
-extern unsigned long int_float_s(int);
-extern unsigned long long_float_s(uint64_t);
-extern unsigned long timing_add_sp(void);
-extern unsigned long timing_mult_sp(void);
-extern void read_fpreg(unsigned int *, int);
-extern void read_fpreg_dp(unsigned long *, int);
-extern void write_fpreg(unsigned int *, int);
-
-/* verbose messaging */
-extern void fps_msg(int msg_enable, const char *fmt, ...);
-
-/* benchmarks */
-extern int align_data(int loop,
- struct fps_test_ereport *report);
-extern int fpu_fdivd(int rloop,
- struct fps_test_ereport *report);
-extern int fpu_fmuld(int rloop,
- struct fps_test_ereport *report);
-extern int fpu_fmulx(int rloop,
- struct fps_test_ereport *report);
-extern int vis_test(struct fps_test_ereport *report);
-
-/* cbbcopy */
-extern int cbbcopy(struct fps_test_ereport *report);
-
-/* cheetah sdc */
-extern int cheetah_sdc_test(int limit,
- struct fps_test_ereport *report);
-
-/* fpu sys diag */
-extern int fpu_sysdiag(struct fps_test_ereport *report);
-
-/* linpack */
-extern int dlinpack_test(int, int, struct fps_test_ereport *report,
- int fps_verbose_msg);
-extern int slinpack_test(int, int, struct fps_test_ereport *report,
- int fps_verbose_msg);
-
-
-/* Global traps */
-extern uint_t trap_flag;
-extern uint64_t fsr_at_trap;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _EXTERNS_H */
diff --git a/usr/src/cmd/fps/fptest/fp.h b/usr/src/cmd/fps/fptest/fp.h
deleted file mode 100644
index de145adaaa..0000000000
--- a/usr/src/cmd/fps/fptest/fp.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _FP_H
-#define _FP_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <stdio.h>
-#include <strings.h>
-#include <stdlib.h>
-#include <libintl.h>
-#include <sys/fsr.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Co-Processor Types */
-
-#define FABS 30 /* FABS */
-#define INVALID -1 /* Invalid device code */
-#define MC68881 20 /* Motorola family 68881 */
-#define MEIKO 100 /* Meiko LSIL L64804 */
-#define NONE 111 /* No FPU installed */
-#define SUNRAY_FPC 40 /* Sunray - uses the TI8847 */
-#define TI8847 10 /* TI family 8847 */
-#define WEITEK 0 /* Weitek family */
-#define WTL3170 11 /* Weitek WTL3170/2 */
-
-#define CPU_TYPE_SHIFT 24 /* bits to shift to get the cpu type */
-#define CPU_TYPE_MASK 0xff /* 1 byte indicates cpu type */
-
-/* True and False */
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-/* Return Codes */
-
-#define FPU_UNSUPPORT -1
-#define FPU_OK 0
-#define FPU_FOROFFLINE 1
-#define FPU_BIND_FAIL 2
-#define FPU_INVALID_ARG 3
-#define FPU_SIG_SEGV 4
-#define FPU_SIG_BUS 5
-#define FPU_SIG_FPE 6
-#define FPU_SIG_ILL 7
-#define FPU_SYSCALL_TRYAGAIN 8
-#define FPU_SYSCALL_FAIL 9
-#define FPU_EREPORT_INCOM 10
-#define FPU_EREPORT_FAIL 11
-
-/* Math constants */
-
-#define DPMARGIN 0.000000000000001
-#define MARGIN 0.0000000010
-#define pi 3.141592654
-#define SPMARGIN 0.0000001
-
-#define denorm_sp 0x00000001
-#define denorm_lsw 0x00000001
-#define denorm_msw 0x00000000
-
-#define half_sp 0x3f000000
-#define half_lsw 0x00000000
-#define half_msw 0x3fe00000
-
-#define maxn_lsw 0xffffffff
-#define maxn_msw 0x7fefffff
-#define maxn_sp 0x7f7fffff
-
-#define nan_dp 0x7ff7ffffffffffff
-#define nan_sp 0x7fbfffff
-#define nan_lsw 0xffffffff
-#define nan_msw 0x7ff7ffff
-
-#define one_sp 0x3f800000
-#define one_lsw 0x00000000
-#define one_msw 0x3ff00000
-
-#define two_sp 0x40000000
-#define two_lsw 0x00000000
-#define two_msw 0x40000000
-
-#define zero_sp 0x00000000
-#define zero_lsw 0x00000000
-#define zero_msw 0x00000000
-
-/* -1 */
-
-#define m_one_sp 0xbf800000
-#define m_one_lsw 0x00000000
-#define m_one_msw 0xbff00000
-
-#define pi_dp 0x400921fb54442d18UL
-#define pi_lsw 0x54442d18
-#define pi_msw 0x400921fb
-#define pi_sp 0x40490fdb
-
-#define pi_4_sp 0x3f490fdb
-#define pi_4_lsw 0x54442d18
-#define pi_4_msw 0x3fe921fb
-
-/* +infinity */
-
-#define p_inf_lsw 0x00000000
-#define p_inf_msw 0x7ff00000
-#define p_inf_sp 0x7f800000
-
-/* -infinity */
-
-#define n_inf_lsw 0x00000000
-#define n_inf_msw 0xfff00000
-#define n_inf_sp 0xff800000
-
-
-/* pow(2, -126). Smallest SP normalized number */
-#define minn_sp 0x00800000
-
-/* pow(2, -1022). Smallest DP normalized number */
-#define minn_lsw 0x00000000
-#define minn_msw 0x00100000
-
-#define min1_lsw 0x00010001
-#define min1_msw 0x00100001
-#define min1_sp 0x00800001
-
-#define maxd_lsw 0xffffffff
-#define maxd_msw 0x000fffff
-#define maxd_sp 0x007fffff
-
-#define maxm_lsw 0x55554000
-#define maxm_msw 0x7fd55555
-#define maxm_sp 0x7eaaaa00
-
-#define nn_lsw 0x00000000
-#define nn_msw 0x7ff00080
-#define nn_sp 0x7f800400
-#define nocare 0
-
-/* FP operations */
-
-#define op_add_sp 1
-#define op_add_dp 2
-#define op_div_sp 3
-#define op_div_dp 4
-#define op_div_dp_c2sp 5 /* After DP division, convert to SP */
-#define op_fxtos 6
-#define op_sub_sp 7
-#define op_sub_dp 8
-#define op_mul_sp 9
-#define op_mul_dp 10
-#define op_fstod 11
-#define op_fdtos 12
-#define op_fsqrts 13
-#define op_fsqrtd 14
-
-struct testws {
-
- unsigned long a_msw;
- unsigned long a_lsw;
- unsigned long b_msw;
- unsigned long b_lsw;
- unsigned long instr;
- unsigned long fsr_tem0_ieee754_exc;
- unsigned long fsr_tem1_ieee754_exc;
- unsigned long ecode;
-};
-
-/* The values of cexc and aexc when FSR.TEM = 0 */
-#define FSR_TEM0_NX (FSR_CEXC_NX | FSR_AEXC_NX)
-#define FSR_TEM0_DZ (FSR_CEXC_DZ | FSR_AEXC_DZ)
-#define FSR_TEM0_UF (FSR_CEXC_UF | FSR_AEXC_UF)
-#define FSR_TEM0_OF (FSR_CEXC_OF | FSR_AEXC_OF)
-#define FSR_TEM0_NV (FSR_CEXC_NV | FSR_AEXC_NV)
-
-/* When FSR.TEM=1, the FSR.aexc field will be untouched */
-#define FSR_TEM1_NX FSR_CEXC_NX
-#define FSR_TEM1_DZ FSR_CEXC_DZ
-#define FSR_TEM1_UF FSR_CEXC_UF
-#define FSR_TEM1_OF FSR_CEXC_OF
-#define FSR_TEM1_NV FSR_CEXC_NV
-
-/*
- * To enable/disable TEM bits in FSR use the following flags Steps: 1.
- * unsigned long val; 2. val=get_fsr(); 3-1. val = val | FSR_ENABLE_TEM_NV
- * (for enabling) 3-2. val = val & FSR_DISABLE_TEM_NV (for disabling) 4.
- * set_fsr(val);
- */
-
-#define FSR_ENABLE_TEM_NX 0x800000
-#define FSR_ENABLE_TEM_DZ 0x1000000
-#define FSR_ENABLE_TEM_UF 0x2000000
-#define FSR_ENABLE_TEM_OF 0x4000000
-#define FSR_ENABLE_TEM_NV 0x8000000
-#define FSR_ENABLE_TEM 0xF800000
-
-#define FSR_DISABLE_TEM_NX 0xFFFFFFFFFF7FFFFF
-#define FSR_DISABLE_TEM_DZ 0xFFFFFFFFFEFFFFFF
-#define FSR_DISABLE_TEM_UF 0xFFFFFFFFFDFFFFFF
-#define FSR_DISABLE_TEM_OF 0xFFFFFFFFFBFFFFFF
-#define FSR_DISABLE_TEM_NV 0xFFFFFFFFF7FFFFFF
-#define FSR_DISABLE_TEM 0xFFFFFFFFF07FFFFF
-
-
-/*
- * There is no TEM1 equivalent for these. That is because if
- * trap is enabled, the NX bit will not be set. See Section
- * 5.1.7.9 "FSR_current_exception (cexc)" in the SPARC V9
- * Architecture Manual
- */
-
-#define FSR_TEM0_UF_NX (FSR_TEM0_UF | FSR_TEM0_NX)
-#define FSR_TEM0_OF_NX (FSR_TEM0_OF | FSR_TEM0_NX)
-
-#define GSR_IM_ZERO 0xFFFFFFFFF7FFFFFF /* GSR.IM = 0 */
-
-/* Values for 'ecode' of 'struct testws' */
-
-#define E_NX 0
-#define E_DZ 1
-#define E_UF 2
-#define E_OF 3
-#define E_NV 4
-#define E_UF_NX 5
-#define E_OF_NX 6
-
-#define SIGN_FLAG_SP 0x80000000
-#define SIGN_FLAG_DP 0x8000000000000000
-
-#define ZERO_SP 0x00000000
-#define ZERO_DP 0x0000000000000000
-#define PLUS_ZERO_SP 0x00000000
-#define MINUS_ZERO_SP 0x80000000
-#define PLUS_ZERO_DP 0x0000000000000000
-#define MINUS_ZERO_DP 0x8000000000000000
-#define PLUS_INF_SP 0x7F800000
-#define MINUS_INF_SP 0xFF800000
-#define PLUS_INF_DP 0x7FF0000000000000
-#define MINUS_INF_DP 0xFFF0000000000000
-
-#define ALLZEROES_DP 0x0000000000000000UL
-#define ALLZEROES_SP 0x00000000U
-#define ALLONES_DP 0xFFFFFFFFFFFFFFFFUL
-#define ALLONES_SP 0xFFFFFFFFU
-
-#define TRAP_SOLICITED 1
-#define TRAP_UNSOLICITED 2
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FP_H */
diff --git a/usr/src/cmd/fps/fptest/fps_defines.h b/usr/src/cmd/fps/fptest/fps_defines.h
deleted file mode 100644
index 0160bb59ff..0000000000
--- a/usr/src/cmd/fps/fptest/fps_defines.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _FPS_DEFINES_H
-#define _FPS_DEFINES_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* defines for fps_ereport_mod.c sysevent channel */
-#define SUBCLASS "FPU_Miscompare"
-#define VENDOR "SUNW"
-#define PUBLISHER "FPScrubber"
-#define BIND_FLAGS EVCH_CREAT | EVCH_HOLD_PEND
-
-/* defines for fps_ereport_mod.c nvlist names */
-#define NAME_FPS_VERSION "fps-version"
-#define NAME_FPS_CPU "cpu"
-#define NAME_FPS_TEST_ID "test-id"
-#define NAME_FPS_EXPECTED_VALUE "expected-value"
-#define NAME_FPS_OBSERVED_VALUE "observed-value"
-#define NAME_FPS_RESOURCE "resource"
-#define NAME_FPS_DETECTOR "detector"
-#define NAME_FPS_ENA "ena"
-#define NAME_FPS_CLASS "class"
-#define NAME_FPS_STRING_DATA "info"
-#define FPS_VERSION 0x1
-
-
-/* defines for CPU names */
-#define USIII_KSTAT "UltraSPARC-III"
-#define USIIIi_KSTAT "UltraSPARC-IIIi"
-#define USIIIP_KSTAT "UltraSPARC-III+"
-#define USIV_KSTAT "UltraSPARC-IV"
-#define USIVP_KSTAT "UltraSPARC-IV+"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FPS_DEFINES_H */
diff --git a/usr/src/cmd/fps/fptest/fps_ereport.h b/usr/src/cmd/fps/fptest/fps_ereport.h
deleted file mode 100644
index 08aa78d810..0000000000
--- a/usr/src/cmd/fps/fptest/fps_ereport.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _FPS_EREPORT_H
-#define _FPS_EREPORT_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define IS_EREPORT_INFO 0x1 /* Ereport has Info field */
-#define MAX_ARRAY_SIZE 20
-#define MAX_CPU_BRAND 40
-#define MAX_INFO_SIZE 400
-#define NO_EREPORT_INFO 0x2 /* Ereport does not have Info field */
-
-struct fps_test_ereport
-{
- int expected_size; /* Size of expected array */
- int is_valid_cpu; /* Is a supported CPU */
- int mask; /* Determines which fields are used */
- int observed_size; /* Size of observed array */
- uint32_t cpu_id;
- uint32_t test_id;
- char info[MAX_INFO_SIZE];
- uint64_t observed[MAX_ARRAY_SIZE];
- uint64_t expected[MAX_ARRAY_SIZE];
-};
-
-/* fps ereport module functions used by other objects */
-
-int fps_generate_ereport_struct(struct fps_test_ereport *report);
-void setup_fps_test_struct(int mask, struct fps_test_ereport *rep, ...);
-void free_fps_test_struct(struct fps_test_ereport *free_me);
-void initialize_fps_test_struct(struct fps_test_ereport *init_me);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FPS_EREPORT_H */
diff --git a/usr/src/cmd/fps/fptest/fps_ereport_mod.c b/usr/src/cmd/fps/fptest/fps_ereport_mod.c
deleted file mode 100644
index 9602ce719e..0000000000
--- a/usr/src/cmd/fps/fptest/fps_ereport_mod.c
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <kstat.h>
-#include <libnvpair.h>
-#include <libsysevent.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/fm/protocol.h>
-#include <sys/fm/util.h>
-#include <sys/types.h>
-#include <sys/processor.h>
-#include <unistd.h>
-#include <fp.h>
-#include <fps_defines.h>
-#include <fps_ereport.h>
-#include <fpst-defines.h>
-
-#define CLASS_HEAD "ereport.cpu"
-#define CLASS_TAIL "fpu.fpscrub"
-
-/* nvlist */
-static nvlist_t *fps_nvlist_create();
-
-/* ereport piece generators */
-static int fps_fmri_cpu_set(nvlist_t *fmri_cpu, uint32_t cpu_id);
-static int fps_fmri_svc_set(nvlist_t *fmri_svc, const char *svc_fmri);
-static int fps_post_ereport(nvlist_t *ereport);
-static uint64_t fps_ena_generate(uint64_t timestamp, uint32_t cpuid,
- uchar_t format);
-
-/* cpu check and name convert */
-static char *fps_get_cpu_brand(uint32_t cpu_id);
-static char *fps_convert_cpu_brand(char *brand);
-
-/* ereport struct functions */
-int fps_generate_ereport_struct(struct fps_test_ereport *report);
-void setup_fps_test_struct(int mask, struct fps_test_ereport *rep, ...);
-void initialize_fps_test_struct(struct fps_test_ereport *init_me);
-
-/*
- * fps_nvlist_create() allocates the memory for an
- * nvlist.
- */
-static nvlist_t *
-fps_nvlist_create()
-{
- int nr_malloc;
- nvlist_t *nvl;
- struct timeval timeout;
-
- timeout.tv_sec = 0;
- timeout.tv_usec = 10000;
- nr_malloc = 0;
-
- nvl = NULL;
- (void) nvlist_alloc(&nvl, NV_UNIQUE_NAME, 0);
-
- while (nvl == NULL && nr_malloc < 10) {
- (void) select(1, NULL, NULL, NULL, &timeout);
- (void) nvlist_alloc(&nvl, NV_UNIQUE_NAME, 0);
- nr_malloc++;
- }
-
- return (nvl);
-}
-
-/*
- * fps_ena_generate(uint64_t timestamp, processorid_t cpuid,
- * uchar_t format)creates the ENA for the ereport.
- */
-static uint64_t
-fps_ena_generate(uint64_t timestamp, uint32_t cpuid, uchar_t format)
-{
- uint64_t ena = 0;
-
- switch (format) {
- case FM_ENA_FMT1:
- if (timestamp) {
- ena = (uint64_t)((format & ENA_FORMAT_MASK) |
- ((cpuid << ENA_FMT1_CPUID_SHFT) &
- ENA_FMT1_CPUID_MASK) |
- ((timestamp << ENA_FMT1_TIME_SHFT) &
- ENA_FMT1_TIME_MASK));
- } else {
- ena = (uint64_t)((format & ENA_FORMAT_MASK) |
- ((cpuid << ENA_FMT1_CPUID_SHFT) &
- ENA_FMT1_CPUID_MASK) |
- ((gethrtime() << ENA_FMT1_TIME_SHFT) &
- ENA_FMT1_TIME_MASK));
- }
- break;
- case FM_ENA_FMT2:
- ena = (uint64_t)((format & ENA_FORMAT_MASK) |
- ((timestamp << ENA_FMT2_TIME_SHFT) & ENA_FMT2_TIME_MASK));
- break;
- default:
- break;
- }
-
- return (ena);
-}
-
-/*
- * fps_fmri_svc_set(nvlist_t *fmri_svc, const char *svc_fmri)
- * adds the detector data to fmri_svc.
- */
-static int
-fps_fmri_svc_set(nvlist_t *fmri_svc, const char *svc_fmri)
-{
- if (fmri_svc == NULL)
- return (1);
-
- if (svc_fmri == NULL)
- return (1);
-
- if (nvlist_add_uint8(fmri_svc, FM_VERSION, FM_SVC_SCHEME_VERSION) != 0)
- return (1);
-
- if (nvlist_add_string(fmri_svc, FM_FMRI_SCHEME,
- FM_FMRI_SCHEME_SVC) != 0)
- return (1);
-
- if (nvlist_add_string(fmri_svc, FM_FMRI_SVC_NAME,
- svc_fmri) != 0)
- return (1);
-
- return (0);
-}
-
-/*
- * fps_fmri_cpu_set(nvlist_t *fmri_cpu, uint32_t cpu_id)
- * adds the resource data to fmri_cpu.
- */
-static int
-fps_fmri_cpu_set(nvlist_t *fmri_cpu, uint32_t cpu_id)
-{
- if (fmri_cpu == NULL)
- return (1);
-
- if (nvlist_add_uint8(fmri_cpu, FM_VERSION,
- FM_CPU_SCHEME_VERSION) != 0)
- return (1);
-
- if (nvlist_add_string(fmri_cpu, FM_FMRI_SCHEME,
- FM_FMRI_SCHEME_CPU) != 0)
- return (1);
-
- if (nvlist_add_uint32(fmri_cpu, FM_FMRI_CPU_ID, cpu_id) != 0)
- return (1);
- return (0);
-}
-
-/*
- * fps_post_ereport(nvlist_t *ereport) posts an
- * ereport to the sysevent error channel. The error
- * channel is assumed to be established by fps-transport.so.
- */
-static int
-fps_post_ereport(nvlist_t *ereport)
-{
- evchan_t *scp;
-
- if (sysevent_evc_bind(CHANNEL, &scp, BIND_FLAGS) != 0) {
- return (1);
- }
-
- if (sysevent_evc_publish(scp, CLASS, SUBCLASS, VENDOR,
- PUBLISHER, ereport, EVCH_NOSLEEP) != 0) {
- return (1);
- }
-
- (void) sleep(1);
-
- (void) fflush(NULL);
- (void) sysevent_evc_unbind(scp);
-
- return (0);
-}
-/*
- * fps_convert_cpu_brand(char *brand) changes
- * the kstat data to match the ereport class
- * names.
- */
-static char *
-fps_convert_cpu_brand(char *brand)
-{
- if (brand == NULL)
- return (NULL);
-
- if (strcasecmp(brand, USIII_KSTAT) == 0)
- return (USIII);
- else if (strcasecmp(brand, USIIIi_KSTAT) == 0)
- return (USIIIi);
- else if (strcasecmp(brand, USIIIP_KSTAT) == 0)
- return (USIIIP);
- else if (strcasecmp(brand, USIV_KSTAT) == 0)
- return (USIV);
- else if (strcasecmp(brand, USIVP_KSTAT) == 0)
- return (USIVP);
- else
- return (NULL);
-}
-
-/*
- * get_cpu_brand(uint32_t cpu_id)gets the
- * brand of the CPU and returns the CPU
- * name to use in the ereport class name.
- */
-static char *
-fps_get_cpu_brand(uint32_t cpu_id)
-{
- char *brand;
- kstat_ctl_t *kc;
- kstat_t *ksp;
- kstat_named_t *knp;
-
- kc = kstat_open();
- if (kc == NULL) {
- return (NULL);
- }
-
- if ((ksp = kstat_lookup(kc, "cpu_info", (int)cpu_id, NULL)) == NULL) {
- (void) kstat_close(kc);
- return (NULL);
- }
-
- if ((kstat_read(kc, ksp, NULL)) == -1) {
- (void) kstat_close(kc);
- return (NULL);
- }
-
- if ((knp = kstat_data_lookup(ksp, "brand")) == NULL) {
- (void) kstat_close(kc);
- return (NULL);
- }
-
- brand = fps_convert_cpu_brand(KSTAT_NAMED_STR_PTR(knp));
- (void) kstat_close(kc);
-
- if (brand == NULL)
- return (NULL);
-
- return (brand);
-}
-
-/*
- * fps_generate_ereport_struct(struct fps_test_ereport *report)
- * takes report and constructs an nvlist that will be used
- * for the ereport.
- */
-int
-fps_generate_ereport_struct(struct fps_test_ereport *report)
-{
- char class_name[FM_MAX_CLASS];
- char *cpu_brand;
- char *string_data;
- int expect_size;
- int is_valid_cpu;
- int mask;
- int observe_size;
- int ret;
- nvlist_t *detector;
- nvlist_t *ereport;
- nvlist_t *resource;
- uint32_t cpu_id;
- uint32_t test;
- uint8_t fps_ver;
- uint64_t ena;
- uint64_t ereport_time;
- uint64_t *expect;
- uint64_t *observe;
-
- if (report == NULL)
- return (FPU_EREPORT_FAIL);
-
- ret = FPU_FOROFFLINE;
- cpu_id = report->cpu_id;
- test = report->test_id;
- mask = report->mask;
- is_valid_cpu = report->is_valid_cpu;
- expect_size = report->expected_size;
- expect = report->expected;
- observe_size = report->observed_size;
- observe = report->observed;
- string_data = report->info;
-
- /* allocate nvlists */
- if ((ereport = fps_nvlist_create()) == NULL)
- _exit(FPU_EREPORT_FAIL);
-
- if ((detector = fps_nvlist_create()) == NULL) {
- _exit(FPU_EREPORT_FAIL);
- }
-
- /* setup class */
- if ((cpu_brand = fps_get_cpu_brand(cpu_id)) == NULL)
- _exit(FPU_EREPORT_FAIL);
-
- if ((snprintf(class_name, FM_MAX_CLASS, "%s.%s.%s",
- CLASS_HEAD, cpu_brand, CLASS_TAIL)) < 0)
- _exit(FPU_EREPORT_FAIL);
-
- /* setup ena */
- ereport_time = gethrtime();
- ena = fps_ena_generate(ereport_time, cpu_id, FM_ENA_FMT1);
-
- /* setup detector */
- if (fps_fmri_svc_set(detector, getenv("SMF_FMRI")) != 0) {
- _exit(FPU_EREPORT_FAIL);
- }
-
- /* setup fps-version */
- fps_ver = FPS_VERSION;
-
- /* setup resource */
- if (is_valid_cpu) {
- resource = fps_nvlist_create();
-
- if (fps_fmri_cpu_set(resource, cpu_id)) {
- _exit(FPU_EREPORT_FAIL);
- }
- } else {
- resource = NULL;
- }
-
- /* put it together */
- if (nvlist_add_string(ereport, NAME_FPS_CLASS, class_name) != 0)
- _exit(FPU_EREPORT_FAIL);
-
- if (ena != 0) {
- if (nvlist_add_uint64(ereport, NAME_FPS_ENA, ena) != 0)
- _exit(FPU_EREPORT_FAIL);
- } else
- _exit(FPU_EREPORT_FAIL);
-
- if (nvlist_add_nvlist(ereport, NAME_FPS_DETECTOR,
- (nvlist_t *)detector) != 0)
- _exit(FPU_EREPORT_FAIL);
-
- if (nvlist_add_uint8(ereport, NAME_FPS_VERSION, fps_ver) != 0)
- _exit(FPU_EREPORT_FAIL);
-
- if (nvlist_add_uint32(ereport, NAME_FPS_TEST_ID, test) != 0)
- ret = FPU_EREPORT_INCOM;
-
- if (nvlist_add_uint64_array(ereport, NAME_FPS_EXPECTED_VALUE,
- expect, expect_size) != 0)
- ret = FPU_EREPORT_INCOM;
-
- if (nvlist_add_uint64_array(ereport, NAME_FPS_OBSERVED_VALUE,
- observe, observe_size) != 0)
- ret = FPU_EREPORT_INCOM;
-
- if (mask & IS_EREPORT_INFO) {
- if (nvlist_add_string(ereport, NAME_FPS_STRING_DATA,
- string_data) != 0)
- ret = FPU_EREPORT_INCOM;
- }
-
- if (is_valid_cpu) {
- if (nvlist_add_nvlist(ereport, NAME_FPS_RESOURCE,
- (nvlist_t *)resource) != 0)
- _exit(FPU_EREPORT_FAIL);
- }
-
- /* publish */
- if (fps_post_ereport(ereport)) {
- ret = FPU_EREPORT_FAIL;
- }
-
- /* free nvlists */
- nvlist_free(ereport);
-
- if (resource != NULL)
- nvlist_free(resource);
-
- if (detector != NULL)
- nvlist_free(detector);
-
- return (ret);
-}
-
-/*
- * initialize_fps_test_struct(struct fps_test_ereport *init_me)
- * creates the initial values for the init_me.
- */
-void
-initialize_fps_test_struct(struct fps_test_ereport *init_me)
-{
- if (init_me == NULL)
- return;
-
- init_me->cpu_id = 0;
- init_me->test_id = 0;
- init_me->observed_size = 0;
- init_me->expected_size = 0;
- init_me->is_valid_cpu = 1;
- init_me->info[0] = '\0';
- init_me->mask = NO_EREPORT_INFO;
-}
-
-/*
- * setup_fps_test_struct(int mask, struct fps_test_ereport *rep,
- * ...) takes a variable amount of input and stores it in rep
- * based on mask provided.
- */
-void
-setup_fps_test_struct(int mask, struct fps_test_ereport *rep, ...)
-{
- char *data;
- int i;
- uint64_t *exp_arg;
- uint64_t *obs_arg;
- va_list argptr;
-
- if (rep == NULL)
- return;
-
- /* begin parsing args */
- va_start(argptr, rep);
-
- /* test id */
- rep->test_id = va_arg(argptr, int);
-
- /* observed */
- obs_arg = va_arg(argptr, uint64_t *);
-
- /* expected */
- exp_arg = va_arg(argptr, uint64_t *);
-
- /* observed size */
- rep->observed_size = va_arg(argptr, int);
-
- /* expected size */
- rep->expected_size = va_arg(argptr, int);
-
- /* copy arrays of observed and expected */
- if (rep->observed_size < 1 || rep->expected_size < 1)
- return;
-
- if (obs_arg == NULL || exp_arg == NULL)
- return;
-
- for (i = 0; i < rep->observed_size; i++)
- rep->observed[i] = obs_arg[i];
-
- for (i = 0; i < rep->expected_size; i++)
- rep->expected[i] = exp_arg[i];
-
- rep->mask = mask;
-
- /* copy string data if there */
- if (mask & IS_EREPORT_INFO) {
- data = va_arg(argptr, char *);
-
- if (data == NULL) {
- va_end(argptr);
-
- return;
- }
-
- (void) strlcpy(rep->info, data, MAX_INFO_SIZE-1);
- }
-
- va_end(argptr);
-}
diff --git a/usr/src/cmd/fps/fptest/fptest.c b/usr/src/cmd/fps/fptest/fptest.c
deleted file mode 100644
index 5b124d2d71..0000000000
--- a/usr/src/cmd/fps/fptest/fptest.c
+++ /dev/null
@@ -1,2596 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __lint
-#pragma error_messages(off, E_VALUE_TYPE)
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/file.h>
-#include <sys/fcntl.h>
-#include <math.h>
-#include <sys/dditypes.h>
-#include <sys/ddidmareq.h>
-#include <sys/ddi_impldefs.h>
-#include <sys/processor.h>
-#include <sys/pset.h>
-#include <time.h>
-#include <kstat.h>
-#include <fp.h>
-#include <fptest.h>
-#include <fpstestmsg.h>
-#include <externs.h>
-#include <fps_ereport.h>
-#include <fps_defines.h>
-
-#define GetBoxStringLen SYS_NMLN
-#define NANO_IN_MILI 1000000
-#define MILI_IN_SEC 1000
-#define str_v9 "sparcv9"
-#define str_v9b "sparcv9+vis2"
-#define testname "fptest"
-
-static int fps_exec_time = 0;
-static int fps_verbose_msg = 0;
-static int fpu_cpu = -1;
-static int test_group = 1;
-static int stress_level = 1;
-static int limit_group = 1;
-static int proc_fr;
-static int lowstresslapagroup_len;
-static int lowstresslapagroup1000_len;
-static int lowstresslapagroup1500_len;
-static int lowstresslapagroup2000_len;
-static int medstresslapagroup_len;
-static int highstresslapagroup_len;
-static struct LapaGroup *lowstresslapagroup;
-
-static void exe_time(hrtime_t timeStart);
-static void process_fpu_args(int argc, char *argv[]);
-static int check_proc(int cpu_id);
-static int do_lapack(int unit, struct fps_test_ereport *report);
-static int dpmath(struct fps_test_ereport *report);
-static int is_cpu_on(int unit);
-static int spmath(struct fps_test_ereport *report);
-static int start_testing(int unit,
- struct fps_test_ereport *report);
-
-/*
- * main(int argc, char *argv[])
- * is the main entry into the test.
- */
-int
-main(int argc, char *argv[])
-{
- int test_ret;
- int procb;
- int proc_setb;
- int ret = FPU_OK;
- hrtime_t test_start;
- psetid_t opset = PS_NONE;
- processorid_t proc_used = PBIND_NONE;
- static struct fps_test_ereport ereport_data;
-
- /* these are % ( modulo ) values */
- lowstresslapagroup1000_len =
- (sizeof (LowStressLapaGroup_1000) / sizeof (struct LapaGroup)) - 1;
- lowstresslapagroup1500_len =
- (sizeof (LowStressLapaGroup_1500) / sizeof (struct LapaGroup)) - 1;
- lowstresslapagroup2000_len =
- (sizeof (LowStressLapaGroup_2000) / sizeof (struct LapaGroup)) - 1;
- medstresslapagroup_len =
- (sizeof (MedStressLapaGroup) / sizeof (struct LapaGroup)) - 1;
- highstresslapagroup_len =
- (sizeof (HighStressLapaGroup) / sizeof (struct LapaGroup)) - 1;
-
- /* default frequency values */
- proc_fr = 1000;
- lowstresslapagroup_len = lowstresslapagroup1000_len;
- lowstresslapagroup = LowStressLapaGroup_1000;
-
- initialize_fps_test_struct(&ereport_data);
-
- process_fpu_args(argc, argv);
-
- fps_msg(fps_verbose_msg, gettext(FPSM_04), lowstresslapagroup_len,
- medstresslapagroup_len, highstresslapagroup_len);
-
-#ifdef V9B
- fps_msg(fps_verbose_msg, gettext(FPSM_03), testname, "V9B");
-#else
- fps_msg(fps_verbose_msg, gettext(FPSM_03), testname, "V9");
-#endif
-
- if (fpu_cpu < 0)
- return (FPU_INVALID_ARG);
-
- test_start = gethrtime();
-
- procb = processor_bind(P_PID, P_MYID, fpu_cpu, NULL);
-
- if (procb) {
- if ((pset_assign(PS_QUERY,
- (processorid_t)fpu_cpu, &opset) == 0) &&
- (opset != PS_NONE)) {
- proc_setb = pset_bind(opset, P_PID, P_MYID, NULL);
- }
-
- if (proc_setb) {
- return (FPU_BIND_FAIL);
- }
-
- procb = processor_bind(P_PID, P_MYID, fpu_cpu, NULL);
-
- if (procb) {
- (void) pset_bind(PS_NONE, P_PID, P_MYID, NULL);
- return (FPU_BIND_FAIL);
- }
- }
-
- /* start testing */
- ereport_data.cpu_id = fpu_cpu;
- test_ret = start_testing(fpu_cpu, &ereport_data);
-
- /*
- * Testing is now done and a return code is selected.
- * FPU_OK: No problems found on FPU tested.
- *
- * FPU_BIND_FAIL: CPU currently bound to is not the
- * one started on. Attempt to file ereport if CPU
- * is supported, but don't include resource so
- * CPU isn't offlined.
- *
- * FPU_UNSUPPORT: Test wasn't run on a supported CPU.
- * Error was found, but no ereport will be filed since
- * CPU is unsupported and test values may not be valid.
- *
- * FPU_FOROFFLINE: Error found on FPU and ereport
- * payload successfully sent.
- *
- * FPU_EREPORT_INCOM: Error found on FPU, ereport payload
- * sent, but some nonessential information failed to add
- * to that payload. CPU will still be offlined.
- *
- * FPU_EREPORT_FAIL: Error found on FPU, but ereport payload
- * failed to transfer either due to lack of mandatory data
- * or unable to send on FPScrubber systevent channel.
- */
-
- if (test_ret == FPU_FOROFFLINE) {
- /*
- * check bind and
- * check if on supported plaform
- */
- (void) processor_bind(P_PID, P_MYID, PBIND_QUERY, &proc_used);
-
- if (proc_used != (processorid_t)fpu_cpu ||
- proc_used == PBIND_NONE) {
- ret = FPU_BIND_FAIL;
- ereport_data.is_valid_cpu = 0;
- }
-
- if (check_proc(fpu_cpu) != 0) {
- ret = FPU_UNSUPPORT;
- ereport_data.is_valid_cpu = 0;
- }
-
- if (ret != FPU_UNSUPPORT) {
- test_ret = fps_generate_ereport_struct(&ereport_data);
- if (ret != FPU_BIND_FAIL) {
- ret = test_ret;
- }
- }
- }
-
- if (fps_exec_time)
- exe_time(test_start);
-
- return (ret);
-}
-
-/*
- * exe_time(hrtime_t timeStart, int unit)
- * returns Execution time: H.M.S.Msec
- */
-static void
-exe_time(hrtime_t time_start)
-{
- hrtime_t mili_now;
- hrtime_t mili_start;
- long hour;
- long minute;
- long second;
- long mili;
- long dif_mili;
- long mili_to_sec;
-
- mili_start = time_start / NANO_IN_MILI;
- mili_now = gethrtime() / NANO_IN_MILI;
-
- dif_mili = (long)(mili_now - mili_start);
- mili_to_sec = dif_mili / MILI_IN_SEC;
- hour = mili_to_sec / 3600;
- minute = (mili_to_sec - (hour * 3600)) / 60;
- second = (mili_to_sec - ((hour * 3600) + (minute * 60)));
- mili =
- (dif_mili - ((second * 1000) + (((hour * 3600) +
- (minute * 60)) * 1000)));
-
- (void) printf("Execution time: %ldH.%ldM.%ldS.%ldMsec\n", hour, minute,
- second, mili);
- (void) fflush(NULL);
-}
-
-/*
- * start_testing(int unit, int argc, char *argv[],
- * struct fps_test_ereport *report) performs each sub-test
- * sequentially and stores any failed test information in
- * report.
- */
-static int
-start_testing(int unit, struct fps_test_ereport *report)
-{
- int lim;
- int sdclimit;
-
- if (report == NULL)
- return (-1);
-
- /*
- * The non-lapack logic will be executed when -p 0 OR -p ALL
- */
- if ((0 == test_group) || (12345 == test_group)) {
- fps_msg(fps_verbose_msg, gettext(FPSM_01), unit, limit_group);
-
- /* turn on signal handlers */
- (void) winitfp();
-
- if (fpu_sysdiag(report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- /* turn off signal handlers */
- (void) restore_signals();
-
- if (spmath(report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- if (dpmath(report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- if (cbbcopy(report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- sdclimit = 100;
-
- if (limit_group == 2)
- sdclimit = 1000;
- if (limit_group == 3)
- sdclimit = 10000;
-
- if (cheetah_sdc_test(sdclimit, report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- lim = 100;
-
- if (limit_group == 2)
- lim = 1000;
- if (limit_group == 3)
- lim = 100000;
-
- if (fpu_fdivd(lim, report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- if (fpu_fmuld(lim, report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- if (fpu_fmulx(lim, report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
-#ifdef V9B
-
- lim = 10;
-
- if (limit_group == 2)
- lim = 100;
- if (limit_group == 3)
- lim = 1000;
-
- if (align_data(lim, report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
- if (vis_test(report) != 0) {
- return (FPU_FOROFFLINE);
- }
-
-#endif
-
- if (test_group == 0)
- return (FPU_OK);
-
- } /* end the non lapack area */
-
- if (do_lapack(unit, report) != 0)
- return (FPU_FOROFFLINE);
-
- return (FPU_OK);
-}
-
-/*
- * do_lapack(struct fps_test_ereport *report) calls the lapack
- * tests and stores any error info into report.
- */
-static int
-do_lapack(int unit, struct fps_test_ereport *report)
-{
- int lapa_group_index;
- int lapa_loop_stress;
- int lapa_stress;
- int lapa_loop;
- int high_lim;
- int low_lim;
-
- fps_msg(fps_verbose_msg, gettext(FPSM_05), limit_group);
-
- switch (limit_group) {
- case 1:
- lapa_group_index = test_group % lowstresslapagroup_len;
-
- if (lapa_group_index <= 0)
- lapa_group_index = 1;
-
- low_lim = lowstresslapagroup[lapa_group_index].limLow;
- high_lim = lowstresslapagroup[lapa_group_index].limHigh;
-
- if (test_group == 12345) {
- low_lim = 1;
- high_lim =
- lowstresslapagroup[lowstresslapagroup_len - 1]
- .limHigh;
- }
-
- break;
- case 2:
- lapa_group_index = test_group % medstresslapagroup_len;
-
- if (lapa_group_index <= 0)
- lapa_group_index = 1;
-
- low_lim = MedStressLapaGroup[lapa_group_index].limLow;
- high_lim = MedStressLapaGroup[lapa_group_index].limHigh;
-
- if (test_group == 12345) {
- low_lim = 1;
- high_lim =
- MedStressLapaGroup[medstresslapagroup_len - 1]
- .limHigh;
- }
- break;
- case 3:
- lapa_group_index = test_group % highstresslapagroup_len;
-
- if (lapa_group_index <= 0)
- lapa_group_index = 1;
-
- low_lim = HighStressLapaGroup[lapa_group_index].limLow;
- high_lim = HighStressLapaGroup[lapa_group_index].limHigh;
-
- if (test_group == 12345) {
- low_lim = 1;
- high_lim =
- HighStressLapaGroup[highstresslapagroup_len - 1]
- .limHigh;
- }
-
- /* hidden arg -s X */
- if (stress_level > 4000) {
- low_lim = 1;
- high_lim = stress_level;
- }
- break;
- default:
- low_lim = 100;
- high_lim = 200;
- break;
- }
-
- if (low_lim < 1)
- low_lim = 101;
-
- if (high_lim > 10000)
- high_lim = 201;
-
- for (lapa_stress = low_lim; lapa_stress <= high_lim;
- lapa_stress = lapa_stress + 1) {
- if (lapa_stress > 999) {
- for (lapa_loop = lapa_stress; lapa_loop <= high_lim;
- lapa_loop = lapa_loop + 1000) {
- lapa_loop_stress = lapa_loop;
-
- if (lapa_loop_stress == 4000)
- lapa_loop_stress = 4016;
- if (lapa_loop_stress == 7000)
- lapa_loop_stress = 7016;
- if (lapa_loop_stress == 8000)
- lapa_loop_stress = 8034;
-
- if (slinpack_test(lapa_loop_stress, unit,
- report, fps_verbose_msg))
- return (-4);
-#ifndef __lint
- if (dlinpack_test(lapa_loop_stress, unit,
- report, fps_verbose_msg))
- return (-4);
-#endif
- }
- break;
- }
-
- if (slinpack_test(lapa_stress, unit, report, fps_verbose_msg))
- return (-4);
-#ifndef __lint
- if (dlinpack_test(lapa_stress, unit, report, fps_verbose_msg))
- return (-4);
-#endif
- }
-
- return (0);
-}
-
-
-/*
- * spmath(int unit, struct fps_test_ereport *report)
- * peforms basic tests of the arithmetic operations:
- * +, -, *, and /. If any errors, they are stored in
- * report.
- */
-static int
-spmath(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- float a;
- float ans;
- float b;
- float expect_ans;
- uint64_t expected;
- uint64_t observed;
-
- a = 1.2345;
- b = 0.9876;
-
-#ifndef __lint
- ans = a + b;
-#endif
- ans = a + b;
- expect_ans = 2.2221000;
- if (ans != expect_ans) {
- if (ans < (2.2221000 - SPMARGIN) ||
- ans > (2.2221000 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6112, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = (a - b);
- expect_ans = 0.2469000;
- if (ans != expect_ans) {
- if (ans < (0.2469000 - SPMARGIN) ||
- ans > (0.2469000 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6113, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a * b;
- expect_ans = 1.2191923;
- if (ans != expect_ans) {
- if (ans < (1.2191923 - SPMARGIN) ||
- ans > (1.2191923 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6114, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a / b;
- expect_ans = 1.2500000;
- if (ans != expect_ans) {
- if (ans < (1.2500000 - SPMARGIN) ||
- ans > (1.2500000 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6115, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a + (a - b);
- expect_ans = 1.4814000;
- if (ans != expect_ans) {
- if (ans < (1.4814000 - SPMARGIN) ||
- ans > (1.4814000 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6116, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a - (a + b);
- expect_ans = -(0.9876000);
- if (ans != expect_ans) {
- if (ans < (-(0.9876000) - SPMARGIN) ||
- ans > (-(0.9876000) + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6117, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a + (a * b);
- expect_ans = 2.4536924;
- if (ans != expect_ans) {
- if (ans < (2.4536924 - SPMARGIN) ||
- ans > (2.4536924 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6118, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a - (a * b);
- expect_ans = 0.0153078;
- if (ans != expect_ans) {
- if (ans < (0.0153078 - SPMARGIN) ||
- ans > (0.0153078 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6119, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a + (a / b);
- expect_ans = 2.4844999;
- if (ans != expect_ans) {
- if (ans < (2.4844999 - SPMARGIN) ||
- ans > (2.4844999 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6120, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a - (a / b);
- expect_ans = expect_ans;
- if (ans != -(0.0155000)) {
- if (ans < (-(0.0155000) - SPMARGIN) ||
- ans > (-(0.0155000) + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6121, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a * (a + b);
- expect_ans = 2.7431827;
- if (ans != expect_ans) {
- if (ans < (2.7431827 - SPMARGIN) ||
- ans > (2.7431827 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6122, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a * (a - b);
- expect_ans = 0.3047981;
- if (ans != expect_ans) {
- if (ans < (0.3047981 - SPMARGIN) ||
- ans > (0.3047981 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6123, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a / (a + b);
- expect_ans = 0.5555556;
- if (ans != expect_ans) {
- if (ans < (0.5555556 - SPMARGIN) ||
- ans > (0.5555556 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6124, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a / (a - b);
- expect_ans = 4.9999995;
- if (ans != expect_ans) {
- if (ans < (4.9999995 - SPMARGIN) ||
- ans > (4.9999995 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6125, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a * (a / b);
- expect_ans = 1.5431250;
- if (ans != expect_ans) {
- if (ans < (1.5431250 - SPMARGIN) ||
- ans > (1.5431250 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6126, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- ans = a / (a * b);
- expect_ans = 1.0125557;
- if (ans != expect_ans) {
- if (ans < (1.0125557 - SPMARGIN) ||
- ans > (1.0125557 + SPMARGIN)) {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.8f\nObserved: %.8f",
- expect_ans, ans);
- expected = (uint64_t)(*(uint32_t *)&expect_ans);
- observed = (uint64_t)(*(uint32_t *)&ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6127, &observed, &expected, 1,
- 1, err_data);
-
- return (-2);
- }
- }
-
- return (0);
-}
-
-/*
- * dpmath(int unit, struct fps_test_ereport *report)
- * peforms basic tests of the arithmetic operations:
- * +, -, *, and /. It also performs tests of cos,
- * sine, tan, log, sqrt, and exp. If any errors,
- * they are stored in report.
- */
-static int
-dpmath(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- double a;
- double ans;
- double b;
- double expect_ans;
- double expect_ans2;
- double result;
- double x;
- uint64_t expected;
- uint64_t observed;
-
- a = 1.2345;
- b = 0.9876;
-
- ans = (a + b);
- expect_ans = 2.222100000000000;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6128, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = (a - b);
- expect_ans = 0.246899999999999;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6129, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a * b;
- expect_ans = 1.219192199999999;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6130, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a / b;
- expect_ans = 1.249999999999999;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6131, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a + (a - b);
- expect_ans = 1.481399999999999;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6132, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a - (a + b);
- expect_ans = -(0.987600000000000);
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6133, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a + (a * b);
- expect_ans = 2.453692200000000;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6134, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a - (a * b);
- expect_ans = 0.015307800000000;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6135, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a + (a / b);
- expect_ans = 2.484500000000000;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6136, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a - (a / b);
- expect_ans = -(0.015499999999999);
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6137, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a * (a + b);
- expect_ans = 2.743182449999999;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6138, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a * (a - b);
- expect_ans = 0.304798049999999;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6139, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
-
- ans = a / (a + b);
- expect_ans = 0.555555555555555;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6140, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a / (a - b);
- expect_ans = 5.000000000000002;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6141, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a * (a / b);
- expect_ans = 1.543124999999999;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6142, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- ans = a / (a * b);
- expect_ans = 1.012555690562980;
- if (ans != expect_ans) {
- if (ans < (expect_ans - DPMARGIN) ||
- ans > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&ans;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, ans);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6143, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- /* Start Double Precision test of trg functions */
-
- /* sin of values in the range of -2pi to +2pi */
- result = sin(-(pi * 2));
- expect_ans = -(0.000000000820413);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6144, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin((pi * (-3)) / 2);
- expect_ans = 1.0000000000000000;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6145, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
-#ifndef i86pc
- else if (result > (-(0.000000000000000) + DPMARGIN)) {
- expected = (uint64_t)-(0.000000000000000);
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- -0.000000000000000, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6146, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
-#endif
- }
-
- result = sin(-(pi));
- expect_ans = 0.000000000410206;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6147, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin(-(pi / 2));
- expect_ans = -(1.0000000000000000);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6148, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin(0.0);
- expect_ans = 0.0000000000000000;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6149, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin(pi / 2);
- expect_ans = 1.0000000000000000;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6150, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin(pi);
- expect_ans = -(0.000000000410206);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6151, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin((pi * 3) / 2);
- expect_ans = -(1.0000000000000000);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6152, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin(pi * 2);
- expect_ans = 0.000000000820143;
- expect_ans2 = 0.00000000820143;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans2 + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6153, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- /* cos of values in the range of -2pi to +2pi */
- result = cos(pi * (-2));
- expect_ans = 1.0000000000000000;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6154, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos((pi * (-3)) / 2);
- expect_ans = 0.000000000615310;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6155, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos(-pi);
- expect_ans = -(1.0000000000000000);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6156, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos(-(pi / 2));
- expect_ans = -(0.000000000205103);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6157, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos(0.0);
- expect_ans = 1.0000000000000000;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6158, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos(pi / 2);
- expect_ans = (-0.000000000205103);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6159, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos(pi);
- expect_ans = (-1.0000000000000000);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6160, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos((pi * 3) / 2);
- expect_ans = 0.000000000615310;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6161, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos(pi * 2);
- expect_ans = 1.0000000000000000;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6162, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- /* sin and cos of: pi/4, 3pi/4, 5pi/4 and 7pi/4 */
- result = sin(pi / 4);
- expect_ans = 0.707106781259062;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6163, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin((pi * 3) / 4);
- expect_ans = 0.707106780969002;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6164, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin((pi * 5) / 4);
- expect_ans = -(0.707106781549122);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6165, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = sin((pi * 7) / 4);
- expect_ans = -(0.707106780678942);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6166, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos(pi / 4);
- expect_ans = 0.707106781114032;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6167, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos((pi * 3) / 4);
- expect_ans = -(0.707106781404092);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6168, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos((pi * 5) / 4);
- expect_ans = -(0.707106780823972);
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6169, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- result = cos((pi * 7) / 4);
- expect_ans = 0.707106781694152;
- if (result != expect_ans) {
- if (result < (expect_ans - DPMARGIN) ||
- result > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&result;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6170, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- /* exponential */
- x = exp(0.0);
- expect_ans = 1.0000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6171, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(1.0);
- expect_ans = 2.718281828459045;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6172, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(2.0);
- expect_ans = 7.389056098930650;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6173, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(5.0);
- expect_ans = 148.413159102576600;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6174, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(10.0);
- expect_ans = 22026.465794806718000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6175, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(-1.0);
- expect_ans = 0.367879441171442;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6176, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(-2.0);
- expect_ans = 0.135335283236612;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6177, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(-5.0);
- expect_ans = 0.006737946999085;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6178, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(-10.0);
- expect_ans = 0.000045399929762;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6179, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(log(1.0));
- expect_ans = 1.0000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6180, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = exp(log(10.0));
- expect_ans = 10.000000000000002;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6181, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- /* logarithms */
- x = log(1.0);
- expect_ans = 0.0000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6182, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = log(2.0);
- expect_ans = 0.693147180559945;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6183, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = log(10.0);
- expect_ans = 2.302585092994045;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6184, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = log(100.0);
- expect_ans = 4.605170185988091;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6185, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = log(exp(0.0));
- expect_ans = 0.0000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6186, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = log(exp(1.0));
- expect_ans = 1.0000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6187, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = log(exp(10.0));
- expect_ans = 10.0000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6188, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- /*
- * These functions are supported by the 68881
- * but not the FPA
- */
-
- x = tan(-(2 * pi));
- expect_ans = -(0.000000000820414);
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6189, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(-(7 * pi) / 4);
- expect_ans = 0.999999998564275;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6190, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(-(5 * pi) / 4);
- expect_ans = -(1.000000001025517);
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),\
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6191, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(-(pi));
- expect_ans = -(0.000000000410207);
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6192, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(-(3 * pi) / 4);
- expect_ans = 0.999999999384690;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6193, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(-(pi) / 4);
- expect_ans = -(1.000000000205103);
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6194, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(0.0);
- expect_ans = 0.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6195, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(pi / 4);
- expect_ans = 1.000000000205103;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6196, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan((3 * pi) / 4);
- expect_ans = -(0.999999999384690);
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6197, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan(pi);
- expect_ans = 0.000000000410207;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6198, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan((5 * pi) / 4);
- expect_ans = 1.000000001025517;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6199, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan((7 * pi) / 4);
- expect_ans = -(0.999999998564275);
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6200, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = tan((2 * pi));
- expect_ans = 0.000000000820414;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6201, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(0.0);
- expect_ans = 0.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6202, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(1.0);
- expect_ans = 1.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6203, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(4.0);
- expect_ans = 2.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6204, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(9.0);
- expect_ans = 3.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6205, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(16.0);
- expect_ans = 4.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6206, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(25.0);
- expect_ans = 5.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6207, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(36.0);
- expect_ans = 6.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6208, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(49.0);
- expect_ans = 7.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6209, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(64.0);
- expect_ans = 8.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6210, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(81.0);
- expect_ans = 9.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6211, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- x = sqrt(100.0);
- expect_ans = 10.000000000000000;
- if (x != expect_ans) {
- if (x < (expect_ans - DPMARGIN) ||
- x > (expect_ans + DPMARGIN)) {
- expected = *(uint64_t *)&expect_ans;
- observed = *(uint64_t *)&x;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16f\nObserved: %.16f",
- expect_ans, x);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6212, &observed, &expected, 1, 1,
- err_data);
-
- return (-3);
- }
- }
-
- return (0);
-}
-
-/*
- * process_fpu_args(int argc, char *argv[])
- * processes the args passed into main()
- * and sets the appropriate global vars.
- */
-static void
-process_fpu_args(int argc, char *argv[])
-{
- char l_buf[32];
- char *px;
- int opt;
-
- while ((opt = getopt(argc, argv, "s:d:p:f:vnhe")) != EOF) {
- switch (opt) {
- case 'P': /* -p N or -p all or no -p */
- case 'p':
-
- (void) memset(l_buf, 0, sizeof (l_buf));
- test_group = -1;
- if (NULL != optarg) {
- (void) strncpy(l_buf, optarg, 3); /* -p all */
- if (!strncasecmp(l_buf, "all", 3)) {
- test_group = 12345;
- break;
- }
- test_group = atoi(optarg);
- if ((0 == test_group) && strcmp(optarg, "0"))
- test_group = -1;
- }
-
- if (test_group < 0) {
- _exit(FPU_INVALID_ARG);
- }
- break;
- case 'f': /* 1000,1500,2000 freq */
- case 'F':
- (void) memset(l_buf, 0, sizeof (l_buf));
- if (NULL != optarg) {
- /* -f 1000 */
- (void) strncpy(l_buf, optarg, 5);
-
- proc_fr = atoi(optarg);
-
- switch (proc_fr) {
- case 1000 :
- lowstresslapagroup_len =
- lowstresslapagroup1000_len;
- lowstresslapagroup =
- LowStressLapaGroup_1000;
- break;
- case 1500 :
- lowstresslapagroup_len =
- lowstresslapagroup1500_len;
- lowstresslapagroup =
- LowStressLapaGroup_1500;
- break;
- case 2000 :
- lowstresslapagroup_len =
- lowstresslapagroup2000_len;
- lowstresslapagroup =
- LowStressLapaGroup_2000;
- break;
- default :
- if (proc_fr < 1500) {
- lowstresslapagroup_len =
- lowstresslapagroup1000_len;
- lowstresslapagroup =
- LowStressLapaGroup_1000;
- break;
- } else if (proc_fr < 2000) {
- lowstresslapagroup_len =
- lowstresslapagroup1500_len;
- lowstresslapagroup =
- LowStressLapaGroup_1500;
- break;
- } else {
- lowstresslapagroup_len =
- lowstresslapagroup2000_len;
- lowstresslapagroup =
- LowStressLapaGroup_2000;
- break;
- }
- }
- }
- break;
- case 'd':
- if (optarg == NULL)
- _exit(FPU_INVALID_ARG);
-
- fpu_cpu = atoi(optarg);
-
- if (fpu_cpu == 0 && strcmp(optarg, "0"))
- _exit(FPU_INVALID_ARG);
-
- if (is_cpu_on(fpu_cpu))
- _exit(FPU_BIND_FAIL);
- break;
- case 'E':
- case 'e':
- fps_exec_time = 1;
- break;
- case 'V':
- case 'v':
- fps_verbose_msg = 1;
- break;
- case 'S':
- case 's':
- (void) memset(l_buf, 0, sizeof (l_buf));
- stress_level = 1;
-
- if (NULL != optarg) {
- (void) strncpy(l_buf, optarg, 2);
-
- if (('X' != l_buf[0]) && (0 != l_buf[1]))
- l_buf[0] = 'E';
-
- switch (l_buf[0]) {
- case 'l':
- case 'L':
- case '1':
- stress_level = 1;
- limit_group = 1;
- break;
- case 'm':
- case 'M':
- case '2':
- stress_level = 1000;
- limit_group = 2;
- break;
- case 'h':
- case 'H':
- case '3':
- stress_level = 4000;
- limit_group = 3;
- break;
- case 'X':
- px = optarg + 1;
- stress_level = 10000;
- limit_group = 3;
-
- if (NULL != px) {
- stress_level = atoi(px);
- if ((0 == stress_level) ||
- (stress_level > 10000) ||
- (stress_level < 1000) ||
- (0 != stress_level % 1000))
- stress_level = 10000;
- }
- break;
- default:
- stress_level = 1;
- limit_group = 1;
- break;
- }
- }
- break;
- default:
- _exit(FPU_INVALID_ARG);
- break;
- }
- }
-}
-
-/*
- * is_cpu_on(int unit) checks to see if processor
- * unit is online.
- */
-static int
-is_cpu_on(int unit)
-{
- int proc_stat;
-
- proc_stat = p_online(unit, P_STATUS);
-
- if (P_ONLINE == proc_stat)
- return (0);
-
- return (1);
-}
-
-/*
- * check_proc(int cpu_id) checks to see that we're on an
- * fpscrubber supported processor specified by cpu_id.
- */
-static int
-check_proc(int cpu_id)
-{
- char brand[40];
- kstat_ctl_t *kc;
- kstat_t *ksp;
- kstat_named_t *knp;
-
-
- /* grab kstat info */
- if ((kc = kstat_open()) == NULL)
- return (1);
-
- if ((ksp = kstat_lookup(kc, "cpu_info", (int)cpu_id, NULL)) == NULL) {
- (void) kstat_close(kc);
-
- return (1);
- }
-
- if ((kstat_read(kc, ksp, NULL)) == -1) {
- (void) kstat_close(kc);
-
- return (1);
- }
-
- if ((knp = kstat_data_lookup(ksp, "brand")) == NULL) {
- (void) kstat_close(kc);
-
- return (1);
- }
-
- if (snprintf(brand, MAX_CPU_BRAND, "%s",
- KSTAT_NAMED_STR_PTR(knp)) < 0) {
- (void) kstat_close(kc);
-
- return (1);
- }
-
- /* check against supported CPUs */
-
- if (strcmp(brand, USIII_KSTAT) != 0 &&
- strcmp(brand, USIIIi_KSTAT) != 0 &&
- strcmp(brand, USIIIP_KSTAT) != 0 &&
- strcmp(brand, USIV_KSTAT) != 0 &&
- strcmp(brand, USIVP_KSTAT) != 0) {
- (void) kstat_close(kc);
-
- return (2);
- }
-
- (void) kstat_close(kc);
-
- return (0);
-}
diff --git a/usr/src/cmd/fps/fptest/fptest.h b/usr/src/cmd/fps/fptest/fptest.h
deleted file mode 100644
index 02f2844fb0..0000000000
--- a/usr/src/cmd/fps/fptest/fptest.h
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _FPTEST_H
-#define _FPTEST_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct LapaGroup {
- int groupType; /* 1, 2, 3 low/med/high */
- int limLow; /* starting Lapack size */
- int limHigh; /* end Lapack size */
- int timeLIM; /* expected time interval (ms) */
-};
-
-/*
- *
- * f\p\t| 100 200 300 400 500 600 700 800 900
- * ======================================================================
- * 1000 1-28 29-49 50-62 63-72 73-81 82-90 91-98 99-105 106-112
- * 1500 1-36 37-64 65-80 81-93 94-106 107-115 116-126 127-134 135-144
- * 2000 1-39 40-70 71-87 88-102 103-114 115-126 127-137 138-148 149-157
- */
-
-
-/*
- * 1000 = this groups will be used for procs
- * considered to be equivalent with USIII+ 900MHz
- */
-static struct LapaGroup LowStressLapaGroup_1000[] = {
-{0, 0, 0, 0},
-{1, 1, 41, 100}, /* Single+Double G1 L1 rt=102 */
-{1, 42, 67, 100}, /* Single+Double G1 L2 rt=101 */
-{1, 68, 82, 100}, /* Single+Double G1 L3 rt=105 */
-{1, 83, 93, 100}, /* Single+Double G1 L4 rt=106 */
-{1, 94, 102, 100}, /* Single+Double G1 L5 rt=108 */
-{1, 103, 110, 100}, /* Single+Double G1 L6 rt=114 */
-{1, 111, 117, 100}, /* Single+Double G1 L7 rt=115 */
-{1, 118, 123, 100}, /* Single+Double G1 L8 rt=112 */
-{1, 124, 128, 100}, /* Single+Double G1 L9 rt=101 */
-{1, 129, 133, 100}, /* Single+Double G1 L10 rt=110 */
-{1, 134, 138, 100}, /* Single+Double G1 L11 rt=119 */
-{1, 139, 142, 100}, /* Single+Double G1 L12 rt=102 */
-{1, 143, 146, 100}, /* Single+Double G1 L13 rt=108 */
-{1, 147, 150, 100}, /* Single+Double G1 L14 rt=115 */
-{1, 151, 154, 100}, /* Single+Double G1 L15 rt=121 */
-{1, 155, 158, 100}, /* Single+Double G1 L16 rt=128 */
-{1, 159, 161, 100}, /* Single+Double G1 L17 rt=101 */
-{1, 162, 164, 100}, /* Single+Double G1 L18 rt=105 */
-{1, 165, 167, 100}, /* Single+Double G1 L19 rt=109 */
-{1, 168, 170, 100}, /* Single+Double G1 L20 rt=113 */
-{1, 171, 173, 100}, /* Single+Double G1 L21 rt=118 */
-{1, 174, 176, 100}, /* Single+Double G1 L22 rt=122 */
-{1, 177, 179, 100}, /* Single+Double G1 L23 rt=127 */
-{1, 180, 182, 100}, /* Single+Double G1 L24 rt=131 */
-{1, 183, 185, 100}, /* Single+Double G1 L25 rt=137 */
-{1, 186, 188, 100}, /* Single+Double G1 L26 rt=141 */
-{1, 189, 191, 100}, /* Single+Double G1 L27 rt=146 */
-{1, 192, 194, 100}, /* Single+Double G1 L28 rt=151 */
-{1, 195, 198, 200}, /* Single+Double G1 L29 rt=210 */
-{1, 199, 202, 200}, /* Single+Double G1 L30 rt=220 */
-{1, 203, 206, 200}, /* Single+Double G1 L31 rt=230 */
-{1, 207, 210, 200}, /* Single+Double G1 L32 rt=239 */
-{1, 211, 214, 200}, /* Single+Double G1 L33 rt=249 */
-{1, 215, 218, 200}, /* Single+Double G1 L34 rt=259 */
-{1, 219, 221, 200}, /* Single+Double G1 L35 rt=201 */
-{1, 222, 224, 200}, /* Single+Double G1 L36 rt=207 */
-{1, 225, 227, 200}, /* Single+Double G1 L37 rt=214 */
-{1, 228, 230, 200}, /* Single+Double G1 L38 rt=219 */
-{1, 231, 233, 200}, /* Single+Double G1 L39 rt=226 */
-{1, 234, 236, 200}, /* Single+Double G1 L40 rt=232 */
-{1, 237, 239, 200}, /* Single+Double G1 L41 rt=240 */
-{1, 240, 242, 200}, /* Single+Double G1 L42 rt=244 */
-{1, 243, 245, 200}, /* Single+Double G1 L43 rt=252 */
-{1, 246, 248, 200}, /* Single+Double G1 L44 rt=262 */
-{1, 249, 251, 200}, /* Single+Double G1 L45 rt=269 */
-{1, 252, 254, 200}, /* Single+Double G1 L46 rt=273 */
-{1, 255, 257, 200}, /* Single+Double G1 L47 rt=280 */
-{1, 258, 260, 200}, /* Single+Double G1 L48 rt=287 */
-{1, 261, 263, 200}, /* Single+Double G1 L49 rt=296 */
-{1, 264, 266, 300}, /* Single+Double G1 L50 rt=303 */
-{1, 267, 269, 300}, /* Single+Double G1 L51 rt=311 */
-{1, 270, 272, 300}, /* Single+Double G1 L52 rt=318 */
-{1, 273, 275, 300}, /* Single+Double G1 L53 rt=327 */
-{1, 276, 278, 300}, /* Single+Double G1 L54 rt=333 */
-{1, 279, 281, 300}, /* Single+Double G1 L55 rt=342 */
-{1, 282, 284, 300}, /* Single+Double G1 L56 rt=350 */
-{1, 285, 287, 300}, /* Single+Double G1 L57 rt=361 */
-{1, 288, 290, 300}, /* Single+Double G1 L58 rt=365 */
-{1, 291, 293, 300}, /* Single+Double G1 L59 rt=375 */
-{1, 294, 296, 300}, /* Single+Double G1 L60 rt=383 */
-{1, 297, 299, 300}, /* Single+Double G1 L61 rt=393 */
-{1, 300, 302, 300}, /* Single+Double G1 L62 rt=400 */
-{1, 303, 305, 400}, /* Single+Double G1 L63 rt=409 */
-{1, 306, 308, 400}, /* Single+Double G1 L64 rt=418 */
-{1, 309, 311, 400}, /* Single+Double G1 L65 rt=430 */
-{1, 312, 314, 400}, /* Single+Double G1 L66 rt=438 */
-{1, 315, 317, 400}, /* Single+Double G1 L67 rt=447 */
-{1, 318, 320, 400}, /* Single+Double G1 L68 rt=455 */
-{1, 321, 323, 400}, /* Single+Double G1 L69 rt=468 */
-{1, 324, 326, 400}, /* Single+Double G1 L70 rt=475 */
-{1, 327, 329, 400}, /* Single+Double G1 L71 rt=485 */
-{1, 330, 332, 400}, /* Single+Double G1 L72 rt=496 */
-{1, 333, 335, 500}, /* Single+Double G1 L73 rt=513 */
-{1, 336, 338, 500}, /* Single+Double G1 L74 rt=516 */
-{1, 339, 341, 500}, /* Single+Double G1 L75 rt=526 */
-{1, 342, 344, 500}, /* Single+Double G1 L76 rt=537 */
-{1, 345, 347, 500}, /* Single+Double G1 L77 rt=550 */
-{1, 348, 350, 500}, /* Single+Double G1 L78 rt=557 */
-{1, 351, 353, 500}, /* Single+Double G1 L79 rt=568 */
-{1, 354, 356, 500}, /* Single+Double G1 L80 rt=578 */
-{1, 357, 359, 500}, /* Single+Double G1 L81 rt=594 */
-{1, 360, 362, 600}, /* Single+Double G1 L82 rt=601 */
-{1, 363, 365, 600}, /* Single+Double G1 L83 rt=613 */
-{1, 366, 368, 600}, /* Single+Double G1 L84 rt=624 */
-{1, 369, 371, 600}, /* Single+Double G1 L85 rt=638 */
-{1, 372, 374, 600}, /* Single+Double G1 L86 rt=647 */
-{1, 375, 377, 600}, /* Single+Double G1 L87 rt=664 */
-{1, 378, 380, 600}, /* Single+Double G1 L88 rt=672 */
-{1, 381, 383, 600}, /* Single+Double G1 L89 rt=688 */
-{1, 384, 386, 600}, /* Single+Double G1 L90 rt=696 */
-{1, 387, 389, 700}, /* Single+Double G1 L91 rt=708 */
-{1, 390, 392, 700}, /* Single+Double G1 L92 rt=720 */
-{1, 393, 395, 700}, /* Single+Double G1 L93 rt=737 */
-{1, 396, 398, 700}, /* Single+Double G1 L94 rt=746 */
-{1, 399, 401, 700}, /* Single+Double G1 L95 rt=760 */
-{1, 402, 404, 700}, /* Single+Double G1 L96 rt=774 */
-{1, 405, 407, 700}, /* Single+Double G1 L97 rt=789 */
-{1, 408, 410, 700}, /* Single+Double G1 L98 rt=797 */
-{1, 411, 413, 800}, /* Single+Double G1 L99 rt=810 */
-{1, 414, 416, 800}, /* Single+Double G1 L100 rt=824 */
-{1, 417, 419, 800}, /* Single+Double G1 L101 rt=843 */
-{1, 420, 422, 800}, /* Single+Double G1 L102 rt=850 */
-{1, 423, 425, 800}, /* Single+Double G1 L103 rt=865 */
-{1, 426, 428, 800}, /* Single+Double G1 L104 rt=877 */
-{1, 429, 431, 800}, /* Single+Double G1 L105 rt=900 */
-{1, 432, 434, 900}, /* Single+Double G1 L106 rt=906 */
-{1, 435, 437, 900}, /* Single+Double G1 L107 rt=921 */
-{1, 438, 440, 900}, /* Single+Double G1 L108 rt=938 */
-{1, 441, 443, 900}, /* Single+Double G1 L109 rt=957 */
-{1, 444, 446, 900}, /* Single+Double G1 L110 rt=966 */
-{1, 447, 449, 900}, /* Single+Double G1 L111 rt=983 */
-{1, 450, 452, 900}, /* Single+Double G1 L112 rt=995 */
-
-/* Always is the last one */
-{0, 0, 0, 0}
-}; /* LowStressLapaGroup_1000 */
-
-/*
- * 1500 = this groups will be used for procs
- * considered to be equivalent with panther 1500MHz
- */
-static struct LapaGroup LowStressLapaGroup_1500[] = {
-{0, 0, 0, 0},
-{1, 1, 61, 100}, /* Single+Double G1 L1 rt=103 */
-{1, 62, 88, 100}, /* Single+Double G1 L2 rt=105 */
-{1, 89, 104, 100}, /* Single+Double G1 L3 rt=102 */
-{1, 105, 117, 100}, /* Single+Double G1 L4 rt=110 */
-{1, 118, 127, 100}, /* Single+Double G1 L5 rt=104 */
-{1, 128, 136, 100}, /* Single+Double G1 L6 rt=109 */
-{1, 137, 144, 100}, /* Single+Double G1 L7 rt=110 */
-{1, 145, 151, 100}, /* Single+Double G1 L8 rt=108 */
-{1, 152, 157, 100}, /* Single+Double G1 L9 rt=101 */
-{1, 158, 163, 100}, /* Single+Double G1 L10 rt=110 */
-{1, 164, 169, 100}, /* Single+Double G1 L11 rt=118 */
-{1, 170, 174, 100}, /* Single+Double G1 L12 rt=106 */
-{1, 175, 179, 100}, /* Single+Double G1 L13 rt=112 */
-{1, 180, 184, 100}, /* Single+Double G1 L14 rt=119 */
-{1, 185, 189, 100}, /* Single+Double G1 L15 rt=127 */
-{1, 190, 193, 100}, /* Single+Double G1 L16 rt=106 */
-{1, 194, 197, 100}, /* Single+Double G1 L17 rt=112 */
-{1, 198, 201, 100}, /* Single+Double G1 L18 rt=117 */
-{1, 202, 205, 100}, /* Single+Double G1 L19 rt=122 */
-{1, 206, 209, 100}, /* Single+Double G1 L20 rt=127 */
-{1, 210, 213, 100}, /* Single+Double G1 L21 rt=132 */
-{1, 214, 216, 100}, /* Single+Double G1 L22 rt=102 */
-{1, 217, 219, 100}, /* Single+Double G1 L23 rt=106 */
-{1, 220, 222, 100}, /* Single+Double G1 L24 rt=109 */
-{1, 223, 225, 100}, /* Single+Double G1 L25 rt=112 */
-{1, 226, 228, 100}, /* Single+Double G1 L26 rt=115 */
-{1, 229, 231, 100}, /* Single+Double G1 L27 rt=119 */
-{1, 232, 234, 100}, /* Single+Double G1 L28 rt=122 */
-{1, 235, 237, 100}, /* Single+Double G1 L29 rt=125 */
-{1, 238, 240, 100}, /* Single+Double G1 L30 rt=129 */
-{1, 241, 243, 100}, /* Single+Double G1 L31 rt=133 */
-{1, 244, 246, 100}, /* Single+Double G1 L32 rt=136 */
-{1, 247, 249, 100}, /* Single+Double G1 L33 rt=142 */
-{1, 250, 252, 100}, /* Single+Double G1 L34 rt=144 */
-{1, 253, 255, 100}, /* Single+Double G1 L35 rt=148 */
-{1, 256, 258, 100}, /* Single+Double G1 L36 rt=151 */
-{1, 259, 262, 200}, /* Single+Double G1 L37 rt=208 */
-{1, 263, 266, 200}, /* Single+Double G1 L38 rt=215 */
-{1, 267, 270, 200}, /* Single+Double G1 L39 rt=223 */
-{1, 271, 274, 200}, /* Single+Double G1 L40 rt=230 */
-{1, 275, 278, 200}, /* Single+Double G1 L41 rt=237 */
-{1, 279, 282, 200}, /* Single+Double G1 L42 rt=245 */
-{1, 283, 286, 200}, /* Single+Double G1 L43 rt=253 */
-{1, 287, 290, 200}, /* Single+Double G1 L44 rt=260 */
-{1, 291, 293, 200}, /* Single+Double G1 L45 rt=201 */
-{1, 294, 296, 200}, /* Single+Double G1 L46 rt=205 */
-{1, 297, 299, 200}, /* Single+Double G1 L47 rt=210 */
-{1, 300, 302, 200}, /* Single+Double G1 L48 rt=214 */
-{1, 303, 305, 200}, /* Single+Double G1 L49 rt=219 */
-{1, 306, 308, 200}, /* Single+Double G1 L50 rt=223 */
-{1, 309, 311, 200}, /* Single+Double G1 L51 rt=230 */
-{1, 312, 314, 200}, /* Single+Double G1 L52 rt=234 */
-{1, 315, 317, 200}, /* Single+Double G1 L53 rt=239 */
-{1, 318, 320, 200}, /* Single+Double G1 L54 rt=243 */
-{1, 321, 323, 200}, /* Single+Double G1 L55 rt=250 */
-{1, 324, 326, 200}, /* Single+Double G1 L56 rt=254 */
-{1, 327, 329, 200}, /* Single+Double G1 L57 rt=259 */
-{1, 330, 332, 200}, /* Single+Double G1 L58 rt=264 */
-{1, 333, 335, 200}, /* Single+Double G1 L59 rt=274 */
-{1, 336, 338, 200}, /* Single+Double G1 L60 rt=275 */
-{1, 339, 341, 200}, /* Single+Double G1 L61 rt=281 */
-{1, 342, 344, 200}, /* Single+Double G1 L62 rt=286 */
-{1, 345, 347, 200}, /* Single+Double G1 L63 rt=294 */
-{1, 348, 350, 200}, /* Single+Double G1 L64 rt=298 */
-{1, 351, 353, 300}, /* Single+Double G1 L65 rt=303 */
-{1, 354, 356, 300}, /* Single+Double G1 L66 rt=309 */
-{1, 357, 359, 300}, /* Single+Double G1 L67 rt=317 */
-{1, 360, 362, 300}, /* Single+Double G1 L68 rt=320 */
-{1, 363, 365, 300}, /* Single+Double G1 L69 rt=327 */
-{1, 366, 368, 300}, /* Single+Double G1 L70 rt=333 */
-{1, 369, 371, 300}, /* Single+Double G1 L71 rt=342 */
-{1, 372, 374, 300}, /* Single+Double G1 L72 rt=346 */
-{1, 375, 377, 300}, /* Single+Double G1 L73 rt=355 */
-{1, 378, 380, 300}, /* Single+Double G1 L74 rt=359 */
-{1, 381, 383, 300}, /* Single+Double G1 L75 rt=367 */
-{1, 384, 386, 300}, /* Single+Double G1 L76 rt=371 */
-{1, 387, 389, 300}, /* Single+Double G1 L77 rt=378 */
-{1, 390, 392, 300}, /* Single+Double G1 L78 rt=384 */
-{1, 393, 395, 300}, /* Single+Double G1 L79 rt=394 */
-{1, 396, 398, 300}, /* Single+Double G1 L80 rt=398 */
-{1, 399, 401, 400}, /* Single+Double G1 L81 rt=405 */
-{1, 402, 404, 400}, /* Single+Double G1 L82 rt=413 */
-{1, 405, 407, 400}, /* Single+Double G1 L83 rt=421 */
-{1, 408, 410, 400}, /* Single+Double G1 L84 rt=425 */
-{1, 411, 413, 400}, /* Single+Double G1 L85 rt=433 */
-{1, 414, 416, 400}, /* Single+Double G1 L86 rt=440 */
-{1, 417, 419, 400}, /* Single+Double G1 L87 rt=450 */
-{1, 420, 422, 400}, /* Single+Double G1 L88 rt=454 */
-{1, 423, 425, 400}, /* Single+Double G1 L89 rt=461 */
-{1, 426, 428, 400}, /* Single+Double G1 L90 rt=470 */
-{1, 429, 431, 400}, /* Single+Double G1 L91 rt=481 */
-{1, 432, 434, 400}, /* Single+Double G1 L92 rt=484 */
-{1, 435, 437, 400}, /* Single+Double G1 L93 rt=492 */
-{1, 438, 440, 500}, /* Single+Double G1 L94 rt=501 */
-{1, 441, 443, 500}, /* Single+Double G1 L95 rt=512 */
-{1, 444, 446, 500}, /* Single+Double G1 L96 rt=515 */
-{1, 447, 449, 500}, /* Single+Double G1 L97 rt=524 */
-{1, 450, 452, 500}, /* Single+Double G1 L98 rt=531 */
-{1, 453, 455, 500}, /* Single+Double G1 L99 rt=544 */
-{1, 456, 458, 500}, /* Single+Double G1 L100 rt=548 */
-{1, 459, 461, 500}, /* Single+Double G1 L101 rt=557 */
-{1, 462, 464, 500}, /* Single+Double G1 L102 rt=564 */
-{1, 465, 467, 500}, /* Single+Double G1 L103 rt=578 */
-{1, 468, 470, 500}, /* Single+Double G1 L104 rt=582 */
-{1, 471, 473, 500}, /* Single+Double G1 L105 rt=590 */
-{1, 474, 476, 500}, /* Single+Double G1 L106 rt=599 */
-{1, 477, 479, 600}, /* Single+Double G1 L107 rt=611 */
-{1, 480, 482, 600}, /* Single+Double G1 L108 rt=616 */
-{1, 483, 485, 600}, /* Single+Double G1 L109 rt=626 */
-{1, 486, 488, 600}, /* Single+Double G1 L110 rt=634 */
-{1, 489, 491, 600}, /* Single+Double G1 L111 rt=648 */
-{1, 492, 494, 600}, /* Single+Double G1 L112 rt=652 */
-{1, 495, 497, 600}, /* Single+Double G1 L113 rt=662 */
-{1, 498, 500, 600}, /* Single+Double G1 L114 rt=673 */
-{1, 501, 503, 600}, /* Single+Double G1 L115 rt=697 */
-{1, 504, 506, 700}, /* Single+Double G1 L116 rt=718 */
-{1, 507, 509, 700}, /* Single+Double G1 L117 rt=707 */
-{1, 510, 512, 700}, /* Single+Double G1 L118 rt=714 */
-{1, 513, 515, 700}, /* Single+Double G1 L119 rt=730 */
-{1, 516, 518, 700}, /* Single+Double G1 L120 rt=735 */
-{1, 519, 521, 700}, /* Single+Double G1 L121 rt=745 */
-{1, 522, 524, 700}, /* Single+Double G1 L122 rt=756 */
-{1, 525, 527, 700}, /* Single+Double G1 L123 rt=772 */
-{1, 528, 530, 700}, /* Single+Double G1 L124 rt=776 */
-{1, 531, 533, 700}, /* Single+Double G1 L125 rt=789 */
-{1, 534, 536, 700}, /* Single+Double G1 L126 rt=798 */
-{1, 537, 539, 800}, /* Single+Double G1 L127 rt=814 */
-{1, 540, 542, 800}, /* Single+Double G1 L128 rt=820 */
-{1, 543, 545, 800}, /* Single+Double G1 L129 rt=830 */
-{1, 546, 548, 800}, /* Single+Double G1 L130 rt=841 */
-{1, 549, 551, 800}, /* Single+Double G1 L131 rt=856 */
-{1, 552, 554, 800}, /* Single+Double G1 L132 rt=861 */
-{1, 555, 557, 800}, /* Single+Double G1 L133 rt=873 */
-{1, 558, 560, 800}, /* Single+Double G1 L134 rt=883 */
-{1, 561, 563, 900}, /* Single+Double G1 L135 rt=902 */
-{1, 564, 566, 900}, /* Single+Double G1 L136 rt=907 */
-{1, 567, 569, 900}, /* Single+Double G1 L137 rt=922 */
-{1, 570, 572, 900}, /* Single+Double G1 L138 rt=929 */
-{1, 573, 575, 900}, /* Single+Double G1 L139 rt=947 */
-{1, 576, 578, 900}, /* Single+Double G1 L140 rt=954 */
-{1, 579, 581, 900}, /* Single+Double G1 L141 rt=965 */
-{1, 582, 584, 900}, /* Single+Double G1 L142 rt=975 */
-{1, 585, 587, 900}, /* Single+Double G1 L143 rt=994 */
-{1, 588, 590, 900}, /* Single+Double G1 L144 rt=999 */
-
-/* Always is the last one */
-{0, 0, 0, 0}
-}; /* LowStressLapaGroup_1500 */
-
-/*
- * 2000 = this groups will be used for procs
- * considered to be equivalent with panther 1950MHz
- */
-static struct LapaGroup LowStressLapaGroup_2000[] = {
-{0, 0, 0, 0},
-{1, 1, 82, 100}, /* Single+Double G1 L1 rt=104 */
-{1, 83, 104, 100}, /* Single+Double G1 L2 rt=104 */
-{1, 105, 119, 100}, /* Single+Double G1 L3 rt=103 */
-{1, 120, 131, 100}, /* Single+Double G1 L4 rt=104 */
-{1, 132, 141, 100}, /* Single+Double G1 L5 rt=103 */
-{1, 142, 150, 100}, /* Single+Double G1 L6 rt=107 */
-{1, 151, 158, 100}, /* Single+Double G1 L7 rt=107 */
-{1, 159, 165, 100}, /* Single+Double G1 L8 rt=104 */
-{1, 166, 172, 100}, /* Single+Double G1 L9 rt=113 */
-{1, 173, 178, 100}, /* Single+Double G1 L10 rt=105 */
-{1, 179, 184, 100}, /* Single+Double G1 L11 rt=113 */
-{1, 185, 189, 100}, /* Single+Double G1 L12 rt=101 */
-{1, 190, 194, 100}, /* Single+Double G1 L13 rt=106 */
-{1, 195, 199, 100}, /* Single+Double G1 L14 rt=113 */
-{1, 200, 204, 100}, /* Single+Double G1 L15 rt=119 */
-{1, 205, 209, 100}, /* Single+Double G1 L16 rt=126 */
-{1, 210, 213, 100}, /* Single+Double G1 L17 rt=105 */
-{1, 214, 217, 100}, /* Single+Double G1 L18 rt=109 */
-{1, 218, 221, 100}, /* Single+Double G1 L19 rt=114 */
-{1, 222, 225, 100}, /* Single+Double G1 L20 rt=118 */
-{1, 226, 229, 100}, /* Single+Double G1 L21 rt=123 */
-{1, 230, 233, 100}, /* Single+Double G1 L22 rt=128 */
-{1, 234, 237, 100}, /* Single+Double G1 L23 rt=133 */
-{1, 238, 240, 100}, /* Single+Double G1 L24 rt=102 */
-{1, 241, 243, 100}, /* Single+Double G1 L25 rt=106 */
-{1, 244, 246, 100}, /* Single+Double G1 L26 rt=108 */
-{1, 247, 249, 100}, /* Single+Double G1 L27 rt=113 */
-{1, 250, 252, 100}, /* Single+Double G1 L28 rt=114 */
-{1, 253, 255, 100}, /* Single+Double G1 L29 rt=118 */
-{1, 256, 258, 100}, /* Single+Double G1 L30 rt=120 */
-{1, 259, 261, 100}, /* Single+Double G1 L31 rt=123 */
-{1, 262, 264, 100}, /* Single+Double G1 L32 rt=126 */
-{1, 265, 267, 100}, /* Single+Double G1 L33 rt=131 */
-{1, 268, 270, 100}, /* Single+Double G1 L34 rt=133 */
-{1, 271, 273, 100}, /* Single+Double G1 L35 rt=136 */
-{1, 274, 276, 100}, /* Single+Double G1 L36 rt=139 */
-{1, 277, 279, 100}, /* Single+Double G1 L37 rt=144 */
-{1, 280, 282, 100}, /* Single+Double G1 L38 rt=146 */
-{1, 283, 285, 100}, /* Single+Double G1 L39 rt=150 */
-{1, 286, 289, 200}, /* Single+Double G1 L40 rt=205 */
-{1, 290, 293, 200}, /* Single+Double G1 L41 rt=212 */
-{1, 294, 297, 200}, /* Single+Double G1 L42 rt=218 */
-{1, 298, 301, 200}, /* Single+Double G1 L43 rt=225 */
-{1, 302, 305, 200}, /* Single+Double G1 L44 rt=231 */
-{1, 306, 309, 200}, /* Single+Double G1 L45 rt=238 */
-{1, 310, 313, 200}, /* Single+Double G1 L46 rt=246 */
-{1, 314, 317, 200}, /* Single+Double G1 L47 rt=253 */
-{1, 318, 321, 200}, /* Single+Double G1 L48 rt=259 */
-{1, 322, 325, 200}, /* Single+Double G1 L49 rt=267 */
-{1, 326, 328, 200}, /* Single+Double G1 L50 rt=204 */
-{1, 329, 331, 200}, /* Single+Double G1 L51 rt=210 */
-{1, 332, 334, 200}, /* Single+Double G1 L52 rt=215 */
-{1, 335, 337, 200}, /* Single+Double G1 L53 rt=218 */
-{1, 338, 340, 200}, /* Single+Double G1 L54 rt=222 */
-{1, 341, 343, 200}, /* Single+Double G1 L55 rt=228 */
-{1, 344, 346, 200}, /* Single+Double G1 L56 rt=230 */
-{1, 347, 349, 200}, /* Single+Double G1 L57 rt=235 */
-{1, 350, 352, 200}, /* Single+Double G1 L58 rt=239 */
-{1, 353, 355, 200}, /* Single+Double G1 L59 rt=246 */
-{1, 356, 358, 200}, /* Single+Double G1 L60 rt=249 */
-{1, 359, 361, 200}, /* Single+Double G1 L61 rt=253 */
-{1, 362, 364, 200}, /* Single+Double G1 L62 rt=258 */
-{1, 365, 367, 200}, /* Single+Double G1 L63 rt=265 */
-{1, 368, 370, 200}, /* Single+Double G1 L64 rt=268 */
-{1, 371, 373, 200}, /* Single+Double G1 L65 rt=273 */
-{1, 374, 376, 200}, /* Single+Double G1 L66 rt=280 */
-{1, 377, 379, 200}, /* Single+Double G1 L67 rt=286 */
-{1, 380, 382, 200}, /* Single+Double G1 L68 rt=288 */
-{1, 383, 385, 200}, /* Single+Double G1 L69 rt=293 */
-{1, 386, 388, 200}, /* Single+Double G1 L70 rt=299 */
-{1, 389, 391, 300}, /* Single+Double G1 L71 rt=306 */
-{1, 392, 394, 300}, /* Single+Double G1 L72 rt=309 */
-{1, 395, 397, 300}, /* Single+Double G1 L73 rt=314 */
-{1, 398, 400, 300}, /* Single+Double G1 L74 rt=320 */
-{1, 401, 403, 300}, /* Single+Double G1 L75 rt=329 */
-{1, 404, 406, 300}, /* Single+Double G1 L76 rt=331 */
-{1, 407, 409, 300}, /* Single+Double G1 L77 rt=336 */
-{1, 410, 412, 300}, /* Single+Double G1 L78 rt=342 */
-{1, 413, 415, 300}, /* Single+Double G1 L79 rt=350 */
-{1, 416, 418, 300}, /* Single+Double G1 L80 rt=353 */
-{1, 419, 421, 300}, /* Single+Double G1 L81 rt=359 */
-{1, 422, 424, 300}, /* Single+Double G1 L82 rt=364 */
-{1, 425, 427, 300}, /* Single+Double G1 L83 rt=373 */
-{1, 428, 430, 300}, /* Single+Double G1 L84 rt=376 */
-{1, 431, 433, 300}, /* Single+Double G1 L85 rt=383 */
-{1, 434, 436, 300}, /* Single+Double G1 L86 rt=389 */
-{1, 437, 439, 300}, /* Single+Double G1 L87 rt=399 */
-{1, 440, 442, 400}, /* Single+Double G1 L88 rt=402 */
-{1, 443, 445, 400}, /* Single+Double G1 L89 rt=408 */
-{1, 446, 448, 400}, /* Single+Double G1 L90 rt=414 */
-{1, 449, 451, 400}, /* Single+Double G1 L91 rt=423 */
-{1, 452, 454, 400}, /* Single+Double G1 L92 rt=427 */
-{1, 455, 457, 400}, /* Single+Double G1 L93 rt=433 */
-{1, 458, 460, 400}, /* Single+Double G1 L94 rt=440 */
-{1, 461, 463, 400}, /* Single+Double G1 L95 rt=450 */
-{1, 464, 466, 400}, /* Single+Double G1 L96 rt=453 */
-{1, 467, 469, 400}, /* Single+Double G1 L97 rt=460 */
-{1, 470, 472, 400}, /* Single+Double G1 L98 rt=467 */
-{1, 473, 475, 400}, /* Single+Double G1 L99 rt=477 */
-{1, 476, 478, 400}, /* Single+Double G1 L100 rt=481 */
-{1, 479, 481, 400}, /* Single+Double G1 L101 rt=487 */
-{1, 482, 484, 400}, /* Single+Double G1 L102 rt=495 */
-{1, 485, 487, 500}, /* Single+Double G1 L103 rt=506 */
-{1, 488, 490, 500}, /* Single+Double G1 L104 rt=508 */
-{1, 491, 493, 500}, /* Single+Double G1 L105 rt=517 */
-{1, 494, 496, 500}, /* Single+Double G1 L106 rt=523 */
-{1, 497, 499, 500}, /* Single+Double G1 L107 rt=536 */
-{1, 500, 502, 500}, /* Single+Double G1 L108 rt=545 */
-{1, 503, 505, 500}, /* Single+Double G1 L109 rt=570 */
-{1, 506, 508, 500}, /* Single+Double G1 L110 rt=561 */
-{1, 509, 511, 500}, /* Single+Double G1 L111 rt=570 */
-{1, 512, 514, 500}, /* Single+Double G1 L112 rt=574 */
-{1, 515, 517, 500}, /* Single+Double G1 L113 rt=582 */
-{1, 518, 520, 500}, /* Single+Double G1 L114 rt=590 */
-{1, 521, 523, 600}, /* Single+Double G1 L115 rt=603 */
-{1, 524, 526, 600}, /* Single+Double G1 L116 rt=608 */
-{1, 527, 529, 600}, /* Single+Double G1 L117 rt=615 */
-{1, 530, 532, 600}, /* Single+Double G1 L118 rt=625 */
-{1, 533, 535, 600}, /* Single+Double G1 L119 rt=638 */
-{1, 536, 538, 600}, /* Single+Double G1 L120 rt=642 */
-{1, 539, 541, 600}, /* Single+Double G1 L121 rt=651 */
-{1, 542, 544, 600}, /* Single+Double G1 L122 rt=659 */
-{1, 545, 547, 600}, /* Single+Double G1 L123 rt=672 */
-{1, 548, 550, 600}, /* Single+Double G1 L124 rt=675 */
-{1, 551, 553, 600}, /* Single+Double G1 L125 rt=684 */
-{1, 554, 556, 600}, /* Single+Double G1 L126 rt=693 */
-{1, 557, 559, 700}, /* Single+Double G1 L127 rt=707 */
-{1, 560, 562, 700}, /* Single+Double G1 L128 rt=712 */
-{1, 563, 565, 700}, /* Single+Double G1 L129 rt=721 */
-{1, 566, 568, 700}, /* Single+Double G1 L130 rt=732 */
-{1, 569, 571, 700}, /* Single+Double G1 L131 rt=745 */
-{1, 572, 574, 700}, /* Single+Double G1 L132 rt=748 */
-{1, 575, 577, 700}, /* Single+Double G1 L133 rt=758 */
-{1, 578, 580, 700}, /* Single+Double G1 L134 rt=768 */
-{1, 581, 583, 700}, /* Single+Double G1 L135 rt=782 */
-{1, 584, 586, 700}, /* Single+Double G1 L136 rt=785 */
-{1, 587, 589, 700}, /* Single+Double G1 L137 rt=795 */
-{1, 590, 592, 800}, /* Single+Double G1 L138 rt=803 */
-{1, 593, 595, 800}, /* Single+Double G1 L139 rt=819 */
-{1, 596, 598, 800}, /* Single+Double G1 L140 rt=821 */
-{1, 599, 601, 800}, /* Single+Double G1 L141 rt=831 */
-{1, 602, 604, 800}, /* Single+Double G1 L142 rt=840 */
-{1, 605, 607, 800}, /* Single+Double G1 L143 rt=858 */
-{1, 608, 610, 800}, /* Single+Double G1 L144 rt=860 */
-{1, 611, 613, 800}, /* Single+Double G1 L145 rt=871 */
-{1, 614, 616, 800}, /* Single+Double G1 L146 rt=880 */
-{1, 617, 619, 800}, /* Single+Double G1 L147 rt=896 */
-{1, 620, 622, 800}, /* Single+Double G1 L148 rt=900 */
-{1, 623, 625, 900}, /* Single+Double G1 L149 rt=911 */
-{1, 626, 628, 900}, /* Single+Double G1 L150 rt=923 */
-{1, 629, 631, 900}, /* Single+Double G1 L151 rt=948 */
-{1, 632, 634, 900}, /* Single+Double G1 L152 rt=955 */
-{1, 635, 637, 900}, /* Single+Double G1 L153 rt=960 */
-{1, 638, 640, 900}, /* Single+Double G1 L154 rt=968 */
-{1, 641, 643, 900}, /* Single+Double G1 L155 rt=985 */
-{1, 644, 646, 900}, /* Single+Double G1 L156 rt=989 */
-{1, 647, 649, 900}, /* Single+Double G1 L157 rt=999 */
-
-/* Always is the last one */
-{0, 0, 0, 0}
-}; /* LowStressLapaGroup_2000 */
-
-static struct LapaGroup MedStressLapaGroup[] = {
-{0, 0, 0, 0},
-{2, 1, 153, 1000}, /* G2 L1 */
-{2, 154, 192, 1000}, /* G2 L2 */
-{2, 193, 219, 1000}, /* G2 L3 */
-{2, 220, 240, 1000}, /* G2 L4 */
-{2, 241, 258, 1000}, /* G2 L5 */
-{2, 259, 274, 1000}, /* G2 L6 */
-{2, 275, 288, 1000}, /* G2 L7 */
-{2, 289, 301, 1000}, /* G2 L8 */
-{2, 302, 313, 1000}, /* G2 L9 */
-{2, 314, 324, 1000}, /* G2 L10 */
-{2, 325, 334, 1000}, /* G2 L11 */
-{2, 335, 343, 1000}, /* G2 L12 */
-{2, 344, 352, 1000}, /* G2 L13 */
-{2, 353, 361, 1000}, /* G2 L14 */
-{2, 362, 369, 1000}, /* G2 L15 */
-{2, 370, 377, 1000}, /* G2 L16 */
-{2, 378, 384, 1000}, /* G2 L17 */
-{2, 385, 391, 1000}, /* G2 L18 */
-{2, 392, 398, 1000}, /* G2 L19 */
-{2, 399, 405, 1000}, /* G2 L20 */
-{2, 406, 411, 1000}, /* G2 L21 */
-{2, 412, 417, 1000}, /* G2 L22 */
-{2, 418, 423, 1000}, /* G2 L23 */
-{2, 424, 429, 1000}, /* G2 L24 */
-{2, 430, 435, 1000}, /* G2 L25 */
-{2, 436, 441, 1000}, /* G2 L26 */
-{2, 442, 446, 1000}, /* G2 L27 */
-{2, 447, 451, 1000}, /* G2 L28 */
-{2, 452, 456, 1000}, /* G2 L29 */
-{2, 457, 461, 1000}, /* G2 L30 */
-{2, 462, 466, 1000}, /* G2 L31 */
-{2, 467, 471, 1000}, /* G2 L32 */
-{2, 472, 476, 1000}, /* G2 L33 */
-{2, 477, 481, 1000}, /* G2 L34 */
-{2, 482, 486, 1000}, /* G2 L35 */
-{2, 487, 490, 1000}, /* G2 L36 */
-{2, 491, 494, 1000}, /* G2 L37 */
-{2, 495, 498, 1000}, /* G2 L38 */
-{2, 499, 502, 1000}, /* G2 L39 */
-{2, 503, 506, 1000}, /* G2 L40 */
-{2, 507, 510, 1000}, /* G2 L41 */
-{2, 511, 514, 1000}, /* G2 L42 */
-{2, 515, 518, 1000}, /* G2 L43 */
-{2, 519, 522, 1000}, /* G2 L44 */
-{2, 523, 526, 1000}, /* G2 L45 */
-{2, 527, 530, 1000}, /* G2 L46 */
-{2, 531, 534, 1000}, /* G2 L47 */
-{2, 535, 538, 1000}, /* G2 L48 */
-{2, 539, 542, 1000}, /* G2 L49 */
-{2, 543, 546, 1000}, /* G2 L50 */
-{2, 547, 549, 1000}, /* G2 L51 */
-{2, 550, 552, 1000}, /* G2 L52 */
-{2, 553, 555, 1000}, /* G2 L53 */
-{2, 556, 558, 1000}, /* G2 L54 */
-{2, 559, 561, 1000}, /* G2 L55 */
-{2, 562, 564, 1000}, /* G2 L56 */
-{2, 565, 567, 1000}, /* G2 L57 */
-{2, 568, 570, 1000}, /* G2 L58 */
-{2, 571, 573, 1000}, /* G2 L59 */
-{2, 574, 576, 1000}, /* G2 L60 */
-{2, 577, 579, 1000}, /* G2 L61 */
-{2, 580, 582, 1000}, /* G2 L62 */
-{2, 583, 585, 1000}, /* G2 L63 */
-{2, 586, 588, 1000}, /* G2 L64 */
-{2, 589, 591, 1000}, /* G2 L65 */
-{2, 592, 594, 1000}, /* G2 L66 */
-{2, 595, 597, 1000}, /* G2 L67 */
-{2, 598, 600, 1000}, /* G2 L68 */
-
-/* Always is the last one */
-{0, 0, 0, 0}
-
-}; /* MedStressLapaGroup */
-
-static struct LapaGroup HighStressLapaGroup[] = {
-{0, 0, 0, 0},
-{3, 600, 790, 90000}, /* G3 L2 */
-{3, 791, 891, 90000}, /* G3 L3 */
-{3, 892, 970, 90000}, /* G3 L4 */
-{3, 971, 4016, 90000}, /* G3 L5 */
-
-/* Always is the last one */
-{0, 0, 0, 0}
-
-}; /* HighStressLapaGroup */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FPTEST_H */
diff --git a/usr/src/cmd/fps/fptest/fpu_fsr_test.c b/usr/src/cmd/fps/fptest/fpu_fsr_test.c
deleted file mode 100644
index 389647b3ad..0000000000
--- a/usr/src/cmd/fps/fptest/fpu_fsr_test.c
+++ /dev/null
@@ -1,708 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <fp.h>
-#include <externs.h>
-#include <fps_ereport.h>
-
-/* Traps enabled or disabled */
-#define T_ENABLED 1
-#define T_DISABLED 0
-
-static int test_ieee754_exc_fields(int trapStatus,
- struct fps_test_ereport *report);
-static int test_fccn(struct fps_test_ereport *report);
-static int test_rounding(struct fps_test_ereport *report);
-
-/*
- * Test data for testing the IEEE 754 exceptions.
- * The first 5 entries are for the 5 FP exception fields of the FSR
- */
-static struct testws test_ws[] = {
-
- /*
- * a_msw, a_lsw, b_msw, b_lsw, instr, fsr_tem0..., fsr_tem1...,
- * ecode
- */
-
- {one_sp, nocare, maxm_sp, nocare, op_add_sp,
- FSR_TEM0_NX, FSR_TEM1_NX, E_NX}, /* inexact */
- {one_sp, nocare, zero_sp, nocare, op_div_sp,
- FSR_TEM0_DZ, FSR_TEM1_DZ, E_DZ}, /* div/zero */
- {min1_sp, nocare, min1_sp, nocare, op_mul_sp,
- FSR_TEM0_UF, FSR_TEM1_UF, E_UF}, /* unfl,inex */
- {maxm_sp, nocare, maxm_sp, nocare, op_mul_sp,
- FSR_TEM0_OF, FSR_TEM1_OF, E_OF}, /* overflow */
- {zero_sp, nocare, zero_sp, nocare, op_div_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV}, /* not a valid */
-
- {maxn_sp, nocare, maxn_sp, nocare, op_add_sp,
- FSR_TEM0_OF_NX, FSR_CEXC_OF, E_OF}, /* 5-ovfl,inex */
- {maxn_sp, nocare, maxn_sp, nocare, op_mul_sp,
- FSR_TEM0_OF_NX, FSR_CEXC_OF, E_OF}, /* 5-ovfl,inex */
- {maxn_msw, maxn_lsw, maxn_msw, maxn_lsw, op_mul_dp,
- FSR_TEM0_OF_NX, FSR_CEXC_OF, E_OF},
- {one_msw, one_lsw, zero_msw, zero_lsw, op_div_dp,
- FSR_TEM1_DZ, FSR_TEM1_DZ, E_DZ},
- {one_sp, nocare, nn_sp, nocare, op_add_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- {one_msw, one_lsw, nn_msw, nn_lsw, op_add_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {one_sp, nocare, nn_sp, nocare, op_mul_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {one_msw, one_lsw, nn_msw, nn_lsw, op_mul_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {maxd_sp, nocare, two_sp, nocare, op_div_sp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF}, /* 8-a-denorm */
- {maxd_msw, maxd_lsw, two_msw, two_lsw, op_div_dp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF},
-
- {min1_sp, nocare, pi_4_sp, nocare, op_mul_sp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF}, /* 7-unfl,inex */
- {maxd_sp, nocare, half_sp, nocare, op_mul_sp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF}, /* 8 -a-denorm */
- {maxd_msw, maxd_lsw, half_msw, half_lsw, op_mul_dp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF},
- {half_sp, nocare, maxd_sp, nocare, op_mul_sp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF}, /* 9 -b-denorm */
- {half_msw, half_lsw, maxd_msw, maxd_lsw, op_mul_dp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF},
-
- {min1_msw, min1_lsw, pi_4_msw, pi_4_lsw, op_mul_dp,
- FSR_TEM0_UF_NX, FSR_CEXC_UF, E_UF},
- {nan_sp, nocare, zero_sp, nocare, op_add_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV}, /* 12-a-nan */
- {nan_msw, nan_lsw, zero_msw, zero_lsw, op_add_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {zero_sp, nocare, nan_sp, nocare, op_add_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV}, /* 13 -b-nan */
- {zero_sp, nocare, nan_msw, nan_lsw, op_add_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- {nan_sp, nocare, nan_sp, nocare, op_add_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV}, /* 14 -ab-nan */
- {nan_msw, nan_lsw, nan_msw, nan_lsw, op_add_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {nan_sp, nocare, zero_sp, nocare, op_mul_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV}, /* 11-a-nan */
- {nan_msw, nan_lsw, zero_msw, zero_lsw, op_mul_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {zero_sp, nocare, nan_sp, nocare, op_mul_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV}, /* 13-b-nan */
-
- {zero_sp, nocare, nan_msw, nan_lsw, op_mul_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {nan_sp, nocare, nan_sp, nocare, op_mul_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV}, /* 14-ab-nan */
- {nan_msw, nan_lsw, nan_msw, nan_lsw, op_mul_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- /* More IEEE 754 exceptions */
-
- /* (+inf) + (-inf) */
- {p_inf_sp, nocare, n_inf_sp, nocare, op_add_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {p_inf_msw, p_inf_lsw, n_inf_msw, n_inf_lsw, op_add_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- /* (0) * (+inf) */
- {zero_sp, nocare, p_inf_sp, nocare, op_mul_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {zero_msw, zero_lsw, p_inf_msw, p_inf_lsw, op_mul_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- /* (0) * (-inf) */
- {zero_sp, nocare, n_inf_sp, nocare, op_mul_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {zero_msw, zero_lsw, n_inf_msw, n_inf_lsw, op_mul_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- /* (+inf) / (+inf) */
- {p_inf_sp, nocare, p_inf_sp, nocare, op_div_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {p_inf_msw, p_inf_lsw, p_inf_msw, p_inf_lsw, op_div_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- /* (+inf) / (-inf) */
- {p_inf_sp, nocare, n_inf_sp, nocare, op_div_sp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {p_inf_msw, p_inf_lsw, n_inf_msw, n_inf_lsw, op_div_dp,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
- /* sqrt(-1) */
- {m_one_sp, nocare, nocare, nocare, op_fsqrts,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
- {m_one_msw, m_one_lsw, nocare, nocare, op_fsqrtd,
- FSR_TEM0_NV, FSR_TEM1_NV, E_NV},
-
-
-{00, 00, 000, 000, 0000, 0x0, 0x0, 0x0}};
-
-/* Data used in test_fccn() */
-
-/* No. of fccn fields in the FSR */
-#define N_FCCN 4
-
-#define FSR_FCC0_MASK ((uint64_t)FSR_FCC)
-#define FSR_FCC1_MASK ((uint64_t)FSR_FCC1 << 32)
-#define FSR_FCC2_MASK ((uint64_t)FSR_FCC2 << 32)
-#define FSR_FCC3_MASK ((uint64_t)FSR_FCC3 << 32)
-
-/*
- * No. of bits to shift a fcc field to the right so that its value occupies
- * the least significant bits
- */
-#define FSR_FCC0_SRL_N 10
-#define FSR_FCC1_SRL_N 32
-#define FSR_FCC2_SRL_N 34
-#define FSR_FCC3_SRL_N 36
-
-static uint64_t fccMasks[] =
-{
- FSR_FCC0_MASK,
- FSR_FCC1_MASK,
- FSR_FCC2_MASK,
- FSR_FCC3_MASK
-};
-
-static unsigned int fccShifts[] =
-{
- FSR_FCC0_SRL_N,
- FSR_FCC1_SRL_N,
- FSR_FCC2_SRL_N,
- FSR_FCC3_SRL_N
-};
-
-
-/*
- * Data structure for the fccn test data. We are using only single-precision
- * comparisions
- */
-typedef struct {
- char *testId;
- unsigned int val1; /* Operand 1 */
- unsigned int val2; /* Operand 2 */
-
- /* The value of the fcc field after the FP operation */
- unsigned int fccVal;
-}FccData;
-
-static FccData fccData[] =
-{
- {"test-0", 0xc0980000, 0xc0980000, 0}, /* -ve = -ve */
- {"test-1", 0x40980000, 0x40980000, 0}, /* +ve = +ve */
-
- {"test-2", 0xc0980000, 0x40980000, 1}, /* -ve < +ve */
- {"test-3", 0xc0980000, 0xc094cccd, 1}, /* -ve < -ve */
- {"test-4", 0x40980000, 0x40983958, 1}, /* +ve < +ve */
-
- {"test-5", 0x40980000, 0xc0980000, 2}, /* +ve > -ve */
- {"test-6", 0x40983958, 0x40980000, 2}, /* +ve > +ve */
- {"test-7", 0xc094cccd, 0xc0980000, 2}, /* -ve > -ve */
-
- {"test-8", 0xc094cccd, nan_sp, 3}, /* +ve ? NaN */
- {"test-9", nan_sp, 0xc094cccd, 3}, /* -ve ? NaN */
- {"test-10", nan_sp, nan_sp, 3}, /* NaN ? NaN */
-
-};
-
-#define N_FCCDATA (sizeof (fccData) / sizeof (FccData))
-
-/* Data used in test_rounding() */
-#define FOUR_SP 0x40800000U
-#define THREE_SP 0x40400000U
-#define FOUR_DP_MSW 0x40100000U
-#define FOUR_DP_LSW 0x00000000U
-#define THREE_DP_MSW 0x40080000U
-#define THREE_DP_LSW 0x00000000U
-#define FSR_RD_MASK_Z 0xFFFFFFFF3FFFFFFFUL
-
-/* No. of IEEE 754 rounding modes */
-#define N_RD_MODES 4
-
-/* Data structure for the rounding test data */
-typedef struct {
- char *test_id;
- unsigned int operand1_msw;
- unsigned int operand1_lsw;
- unsigned int operand2_msw;
- unsigned int operand2_lsw;
- unsigned int operation;
- uint64_t result_r2n; /* Round to Nearest */
- uint64_t result_r2z; /* Round to Zero */
- uint64_t result_r2pinf; /* Round to +infinity */
- uint64_t result_r2ninf; /* Round to -infinity */
-
-} RoundingData;
-
-
-/* Strings for rounding modes */
-static char *rndModes[] =
-{
- "Round to Nearest",
- "Round to Zero",
- "Round to +infinity",
- "Round to -infinity",
-};
-
-/* Rounding test data */
-static RoundingData r_data[] =
-{
- /* 4/3 SP */
- {"Test-0",
- FOUR_SP,
- nocare,
- THREE_SP,
- nocare,
- op_div_sp,
- 0x3faaaaab,
- 0x3faaaaaa,
- 0x3faaaaab,
- 0x3faaaaaa},
-
- /* 4/3 DP */
- {"Test-1",
- FOUR_DP_MSW,
- FOUR_DP_LSW,
- THREE_DP_MSW,
- THREE_DP_LSW,
- op_div_dp,
- 0x3ff5555555555555,
- 0x3ff5555555555555,
- 0x3ff5555555555556,
- 0x3ff5555555555555},
-
- {"Test-2",
- 0xc0600018,
- nocare,
- 0xc1700009,
- nocare,
- op_add_sp,
- 0xc1940008,
- 0xc1940007,
- 0xc1940007,
- 0xc1940008},
-
- {"Test-3",
- 0x880c0000,
- 0x00000018,
- 0x882e0000,
- 0x00000009,
- op_add_dp,
- 0x8832800000000008,
- 0x8832800000000007,
- 0x8832800000000007,
- 0x8832800000000008},
-
- /* 4/3 (DP) and convert to SP */
- {"Test-4",
- FOUR_DP_MSW,
- FOUR_DP_LSW,
- THREE_DP_MSW,
- THREE_DP_LSW,
- op_div_dp_c2sp,
- 0x3faaaaab,
- 0x3faaaaaa,
- 0x3faaaaab,
- 0x3faaaaaa},
-
- /*
- * Convert a 64-bit *signed* integer to a single- precison FP number.
- * The 64-bit signed number used here, 0x0x882e000000000009, is
- * -0x77d1fffffffffff7 i.e -8633963435622662135.
- */
- {"Test-5",
- 0x882e0000,
- 0x00000009,
- nocare,
- nocare,
- op_fxtos,
- 0xdeefa400,
- 0xdeefa3ff,
- 0xdeefa3ff,
- 0xdeefa400}
-
-};
-
-#define R_DATA_N (sizeof (r_data)/sizeof (RoundingData))
-
-/*
- * fsr_test(struct fps_test_ereport *report) is the high level
- * caller of the functions that test the different fields of
- * the FSR. If an error is found, relevant data is stored in
- * report.
- */
-int
-fsr_test(struct fps_test_ereport *report)
-{
- if (test_ieee754_exc_fields(T_DISABLED, report) != FPU_OK)
- return (FPU_FOROFFLINE);
-
- if (test_ieee754_exc_fields(T_ENABLED, report) != FPU_OK)
- return (FPU_FOROFFLINE);
-
- if (test_fccn(report) != FPU_OK)
- return (FPU_FOROFFLINE);
-
- if (test_rounding(report) != FPU_OK)
- return (FPU_FOROFFLINE);
-
- return (FPU_OK);
-}
-
-/*
- * test_ieee754_exc_fields(int trapStatus,
- * struct fps_test_ereport *report)tests the FSR.cexc,
- * and FSR.aexc fields. It can operate in two modes: traps
- * enabled and traps disabled.
- *
- * In the T_DISABLED (FSR.TEM=0) mode, it checks if the
- * FSR.cexc and FSR.aexc fields have been set correctly.
- *
- * In the T_ENABLED mode, it check if the
- * appropriate trap has been raised and the FSR.cexc field has the correct
- * value.
- *
- * If an error is found, relevant data is stored in report.
- */
-static int
-test_ieee754_exc_fields(int trapStatus, struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- int rval;
- uint64_t expected;
- uint64_t observed;
- uint64_t prev_fsr;
- uint64_t result_fsr;
- uint64_t t_fsr;
- unsigned long alsw;
- unsigned long amsw;
- unsigned long blsw;
- unsigned long bmsw;
- unsigned long exc_bits;
- unsigned long operation;
-
- rval = FPU_OK;
- prev_fsr = get_fsr();
-
- for (i = 0; test_ws[i].instr != 0; i++) {
- if (trapStatus == T_DISABLED) {
- set_fsr(prev_fsr & 0xFFFFFFFFF07FFC00);
- } else {
- t_fsr = prev_fsr & 0xFFFFFFFFF07FFC1F;
- t_fsr |= 0x000000000F800000;
- set_fsr(t_fsr);
- }
-
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- amsw = test_ws[i].a_msw;
- alsw = test_ws[i].a_lsw;
- bmsw = test_ws[i].b_msw;
- blsw = test_ws[i].b_lsw;
- operation = test_ws[i].instr;
-
- if (trapStatus == T_DISABLED)
- exc_bits = test_ws[i].fsr_tem0_ieee754_exc;
- else
- exc_bits = test_ws[i].fsr_tem1_ieee754_exc;
-
- result_fsr = 0;
- fsr_at_trap = 0;
-
- switch (operation) {
- case op_add_sp:
- result_fsr = wadd_sp(amsw, bmsw);
- break;
- case op_add_dp:
- result_fsr = wadd_dp(amsw, alsw, bmsw, blsw);
- break;
- case op_div_sp:
- result_fsr = wdiv_sp(amsw, bmsw);
- break;
- case op_div_dp:
- result_fsr = wdiv_dp(amsw, alsw, bmsw, blsw);
- break;
- case op_mul_sp:
- result_fsr = wmult_sp(amsw, bmsw);
- break;
- case op_mul_dp:
- result_fsr = wmult_dp(amsw, alsw, bmsw, blsw);
- break;
- case op_fsqrts:
- result_fsr = wsqrt_sp(amsw);
- break;
- case op_fsqrtd:
- result_fsr = wsqrt_dp(((uint64_t)amsw << 32)
- | alsw);
- break;
- default:
- break;
- }
-
- if (trapStatus == T_ENABLED) {
- if (!trap_flag) {
- result_fsr = fsr_at_trap;
- } else {
- rval = FPU_FOROFFLINE;
- observed = 1;
- expected = 0;
- (void) snprintf(err_data, sizeof (err_data),
- "test: %d", i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6305, &observed, &expected,
- 1, 1, err_data);
- }
- }
- if ((result_fsr & exc_bits) != exc_bits) {
- rval = FPU_FOROFFLINE;
- observed = (uint64_t)(result_fsr & exc_bits);
- expected = (uint64_t)exc_bits;
- (void) snprintf(err_data, sizeof (err_data),
- "test: %d, trapStatus: %d", i, trapStatus);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6308, &observed, &expected, 1, 1, err_data);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (rval);
-}
-
-/*
- * test_fccn(struct fps_test_ereport *report)
- * test the fcc0, fcc1, fcc2, and fcc3 fields of the FSR. Single-
- * precision comparision operations are done using the test data given
- * in fccData[], and the resultant value in the fccN field is compared
- * against the value in fccData. Each test data is used with all the
- * four fcc fields.
- *
- * If an error is found, relevant data is stored in report.
- */
-static int
-test_fccn(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int fcc;
- int i;
- int rval;
- uint64_t expected;
- uint64_t fcc_mask;
- uint64_t observed;
- uint64_t prev_fsr;
- uint64_t result_fsr;
- unsigned int shiftBits;
-
-#ifdef __lint
- uint64_t des_fcc;
- uint64_t res_fcc;
-#else
- unsigned int des_fcc;
- unsigned int res_fcc;
-#endif
-
- prev_fsr = get_fsr();
- rval = FPU_OK;
- set_fsr(prev_fsr & 0xFFFFFFFFF07FFC00);
-
- for (fcc = 0; fcc < N_FCCN; fcc++) {
- fcc_mask = fccMasks[fcc];
- shiftBits = fccShifts[fcc];
-
- for (i = 0; i < N_FCCDATA; i++) {
- des_fcc = fccData[i].fccVal;
-
- result_fsr = fcmps_fcc(fccData[i].val1,
- fccData[i].val2, fcc);
-
- res_fcc = ((result_fsr & fcc_mask)
- >> shiftBits);
-
- if (res_fcc != des_fcc) {
- rval = FPU_FOROFFLINE;
- expected = (uint64_t)des_fcc;
- observed = (uint64_t)res_fcc;
- (void) snprintf(err_data, sizeof (err_data),
- "FSR.fcc: %d, FCC ID: %s"
- "\nExpected: %lld"
- "\nObserved: %lld",
- fcc, fccData[i].testId, des_fcc,
- res_fcc);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6310, &observed, &expected,
- 1, 1, err_data);
- continue;
- }
- }
- }
-
- set_fsr(prev_fsr);
-
- return (rval);
-}
-
-/*
- * test_rounding(struct fps_test_ereport *report)
- * tests the 4 IEEE 754 rounding modes.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-test_rounding(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- int rval;
- uint64_t des_res;
- uint64_t expected;
- uint64_t fsr_rd_masked;
- uint64_t gsr_im_z;
- uint64_t observed;
- uint64_t oprnd;
- uint64_t oprnd1;
- uint64_t oprnd2;
- uint64_t prev_fsr;
- uint64_t prev_gsr;
- uint64_t rd;
- uint64_t result;
- uint64_t rmode;
-
- rval = FPU_OK;
- prev_fsr = get_fsr();
- fsr_rd_masked = prev_fsr & FSR_RD_MASK_Z;
- prev_gsr = get_gsr();
- gsr_im_z = prev_gsr & GSR_IM_ZERO;
-
- for (i = 0; i < R_DATA_N; i++) {
- for (rd = 0; rd < N_RD_MODES; rd++) {
- rmode = rd << 30;
-
- if (rd == 0)
- des_res = r_data[i].result_r2n;
- else if (rd == 1)
- des_res = r_data[i].result_r2z;
- else if (rd == 2)
- des_res = r_data[i].result_r2pinf;
- else if (rd == 3)
- des_res = r_data[i].result_r2ninf;
-
- switch (r_data[i].operation) {
- case op_add_sp:
- set_gsr(gsr_im_z);
- set_fsr(fsr_rd_masked | rmode);
- result = add_sp(r_data[i].operand1_msw,
- r_data[i].operand2_msw);
-
- break;
- case op_add_dp:
- oprnd1 =
- ((uint64_t)r_data[i].operand1_msw
- << 32) | r_data[i].operand1_lsw;
-
- oprnd2 =
- ((uint64_t)r_data[i].operand2_msw
- << 32) | r_data[i].operand2_lsw;
-
- set_gsr(gsr_im_z);
- set_fsr(fsr_rd_masked | rmode);
- result = add_dp(oprnd1, oprnd2);
-
- break;
- case op_div_sp:
- set_gsr(gsr_im_z);
- set_fsr(fsr_rd_masked | rmode);
- result = div_sp(r_data[i].operand1_msw,
- r_data[i].operand2_msw);
-
- break;
- case op_div_dp:
- oprnd1 =
- ((uint64_t)r_data[i].operand1_msw
- << 32) | r_data[i].operand1_lsw;
-
- oprnd2 =
- ((uint64_t)r_data[i].operand2_msw
- << 32) | r_data[i].operand2_lsw;
-
- set_gsr(gsr_im_z);
- set_fsr(fsr_rd_masked | rmode);
- result = div_dp(oprnd1, oprnd2);
-
- break;
- case op_div_dp_c2sp:
- oprnd1 =
- ((uint64_t)r_data[i].operand1_msw
- << 32) | r_data[i].operand1_lsw;
-
- oprnd2 =
- ((uint64_t)r_data[i].operand2_msw
- << 32) | r_data[i].operand2_lsw;
-
- set_gsr(gsr_im_z);
- set_fsr(fsr_rd_masked | rmode);
- result = div_dp(oprnd1, oprnd2);
- result = convert_dp_sp(result);
-
- break;
- case op_fxtos:
- oprnd =
- ((uint64_t)r_data[i].operand1_msw
- << 32) | r_data[i].operand1_lsw;
- set_gsr(gsr_im_z);
- set_fsr(fsr_rd_masked | rmode);
- result = long_float_s(oprnd);
-
- break;
- default:
- break;
- }
-
- if (result != des_res) {
- expected = (uint64_t)des_res;
- observed = (uint64_t)result;
- (void) snprintf(err_data, sizeof (err_data),
- "FSR.RD: %d, %s, TestID: %s"
- "\nExpected: %lld\nObserved: %lld",
- rd, rndModes[rd], r_data[i].test_id,
- des_res, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6309, &observed, &expected,
- 1, 1, err_data);
- rval = FPU_FOROFFLINE;
- }
- }
- }
-
- set_gsr(prev_gsr);
- set_fsr(prev_fsr);
-
- return (rval);
-}
diff --git a/usr/src/cmd/fps/fptest/fpu_if64.s b/usr/src/cmd/fps/fptest/fpu_if64.s
deleted file mode 100644
index 0e5bac9065..0000000000
--- a/usr/src/cmd/fps/fptest/fpu_if64.s
+++ /dev/null
@@ -1,1381 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include<sys/asm_linkage.h>
-
-/*
- * -----------------------------------------------------------------------
- * File: fpu-if64.s
- * -----------------------------------------------------------------------
- */
-
-/*
- * --------------------------------------------------------------------------
- * Name: Get the Floating point Status Register
- * Function: return a copy of the FSR to caller
- * Calling: none
- * Returns: i0 = fsr contents
- * Convention: fsr_value = get_fsr() **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-unsigned long
-get_fsr()
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lgfsr:
- .skip 8
-
-ENTRY_NP(get_fsr)
- save %sp, -SA(MINFRAME), %sp ! save the registers & stack frame
- setn .Lgfsr,%l6,%l0 ! .. set the address of the result holder
- stx %fsr, [%l0] ! .. set the contents of the FSR register
- ldx [%l0], %i0 ! .. return the fsr to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(get_fsr)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Set Floating point Status Register
- * Function: Set the FSR
- * Calling: i0 = value to write to fsr
- * Returns: none
- * Convention: set_fsr(get_fsr() ** || <userVal>) **
- * Please note that the user is expected to OR the new value
- * with the current FSR content and pass the result to
- * set_fsr().
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-void
-set_fsr(unsigned long arg1)
-{
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lsfsr:
- .skip 8
-
-ENTRY_NP(set_fsr)
- save %sp, -SA(MINFRAME), %sp ! save the registers & stack frame
- setn .Lsfsr,%l6,%l0 ! .. set the address of the result holder
- stx %i0, [%l0] ! .. save the value in memory
- ldx [%l0], %fsr ! .. get the contents of the FSR register
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(set_fsr)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Get the Graphics Status Register
- * Function: return a copy of the GSR to caller
- * Calling: none
- * Returns: i0 = gsr contents
- * Convention: gsr_value = get_gsr() **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-uint64_t
-get_gsr()
-{
- return (0);
-}
-
-#else
-
-ENTRY_NP(get_gsr)
- save %sp, -SA(MINFRAME), %sp ! save the registers & stack frame
- rd %gsr, %i0
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(get_gsr)
-
-#endif
-
-/*
- * -------------------------------------------------------------------------
- * Name: Set Graphics Status Register
- * Function: Set the GSR
- * Calling: i0 = value to write to gsr
- * Returns: none
- * Convention: set_gsr(get_gsr() || <userVal>)
- * Please note that the user is expected to OR the new value
- * with the current GSR content and pass the result to
- * set_gsr().
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-void
-set_gsr(uint64_t arg1)
-{
-}
-
-#else
-
-ENTRY_NP(set_gsr)
- save %sp, -SA(MINFRAME), %sp ! save the registers & stack frame
- wr %i0, %g0, %gsr
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(set_gsr)
-
-#endif
-
-/*
- * -----------------------------------------------------------------------
- * Data Conversion Functions *
- * -----------------------------------------------------------------------
- */
-
-/*
- * --------------------------------------------------------------------------
- * Name: Integer to Float (Single)
- * Function: Convert an integer value to a single precision floating point
- * value
- * Calling: in0 = value to convert
- * Returns: in0 = converted value
- * Convention: Real = int_float_s(Int) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-int_float_s(int arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Lfls:
- .word 0
-.Lfls1:
- .word 0
-
-ENTRY_NP(int_float_s)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lfls1,%l6,%o5 ! .. set the address of the result holder
- setn .Lfls,%l6,%o4 ! .. set address of temp. mem reg
- st %i0, [%o4] ! .. put the passed value into memory
- ld [%o4], %f0 ! .. get the value from memory into FPU register
- fitos %f0, %f2 ! .. get the integer into float into fpu r1
- st %f2, [%o5] ! .. store into the location
- ld [%o5], %i0 ! .. put the value for return
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(int_float_s)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Integer to Float (double)
- * Function: Convert an integer value to a double precision floating point
- * value
- * Calling: in0 = value to convert
- * Returns: in0 = converted value
- * Convention: Real = int_float_d(Int) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-int_float_d(int arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Lfld:
- .word 0
-
- .align 8
-
-.Lfld1:
- .skip 8
-
-ENTRY_NP(int_float_d)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lfld1,%l6,%o5 ! .. get the address of temp2
- setn .Lfld,%l6,%o4 ! .. get the address of temp
- st %i0, [%o4] ! .. get the user value
- ld [%o4], %f0 ! .. into the float register
- fitod %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%o5] ! .. save the result
- ldx [%o5], %i0 ! .. and return it to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(int_float_d)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: float to integer (single)
- * Function: Convert a real value to an integer
- * Calling: in0 = Value
- * Returns: in0 = Value
- * Convention: Int = float_int_s(real) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-float_int_s(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Lflnts:
- .word 0
-.Lflnts1:
- .word 0
-
-ENTRY_NP(float_int_s)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lflnts1,%l6,%o5 ! .. get the address of temp2
- setn .Lflnts,%l6,%o4 ! .... and temp
- st %i0, [%o4] ! .. get the users value
- ld [%o4], %f0 ! .. into the float register
- fstoi %f0, %f2 ! .... have the fpu perform the operation
- st %f2, [%o5] ! .. save the result
- ld [%o5], %i0 ! .. and return it to the user
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(float_int_s)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Float to Integer conversion (double)
- * Function: Convert a real value to an integer
- * Calling: in0 = value
- * Returns: in0 = value
- * Convention: Int = float_int_d(real) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-float_int_d(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lflntd:
- .skip 8
-.Lflntd1:
- .skip 4
-
-ENTRY_NP(float_int_d)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lflntd1,%l6,%o5 ! .. get the address of temp2
- setn .Lflntd,%l6,%o4 ! .. and temp
- stx %i0, [%o4] ! .. get the callers value
- ldd [%o4], %f0 ! .. into the float register
- fdtoi %f0, %f2 ! .... have the fpu perform the operation
- st %f2, [%o5] ! .. save the result
- ld [%o5], %i0 ! .... and return it to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(float_int_d)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Convert Single to double precision
- * Function: <as the name says>
- * Calling: in0 = value
- * Returns: in0 = result
- * Convention: result = convert_sp_dp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-convert_sp_dp(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lspdp:
- .skip 8
-.Lspdp1:
- .skip 4
-
-ENTRY_NP(convert_sp_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lspdp1,%l6,%l0 ! .. get the address of temp2
- setn .Lspdp,%l6,%l1 ! .. get the address of temp
- st %i0, [%l0] ! .. get the callers value
- ld [%l0], %f0 ! .. into the float register
- fstod %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%l1] ! .. save the result
- ldx [%l1], %i0 ! .... and return it to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(convert_sp_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Convert Double to Single precision
- * Function: ..
- * Calling: in0 = double precision value
- * Returns: in0 = result
- * Convention: result = convert_dp_sp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-convert_dp_sp(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Ldpsp:
- .skip 4
-
- .align 8
-
-.Ldpsp1:
- .skip 8
-
-ENTRY_NP(convert_dp_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Ldpsp1,%l6,%l0 ! .. get the address of temp2
- setn .Ldpsp,%l6,%l1 ! .. and temp
- stx %i0, [%l0] ! .. get the users value
- ldd [%l0], %f0 ! .. move it to a float register
- fdtos %f0, %f2 ! .... have the fpu perform the operation
- st %f2, [%l1] ! .. save the result
- ld [%l1], %i0 ! .... and return it to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(convert_dp_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Negate a value (Single-precision)
- * Function: Compliments the Sign bit
- * Calling: in0 = number to cross her
- * Returns: in0 = result
- * Convention: result = negate_value_sp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-negate_value_sp(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lneg:
- .skip 8
-.Lneg1:
- .skip 8
-
-ENTRY_NP(negate_value_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lneg1,%l6,%l0 ! .. get the address of .Lneg
- setn .Lneg,%l6,%l1 ! .. and of .Lneg1
- st %i0, [%l0] ! .. get the callers value
- ld [%l0], %f0 ! .. into the float register
- fnegs %f0, %f2 ! .... have the fpu perform the operation
- st %f2, [%l1] ! .. save the result
- ld [%l1], %i0 ! .... and return it to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(negate_value_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Negate a value (Double-precision)
- * Function: Compliments the Sign bit
- * Calling: in0 = number to cross her
- * Returns: in0 = result
- * Convention: result = negate_value_dp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-negate_value_dp(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lneg2:
- .skip 8
-.Lneg3:
- .skip 8
-
-ENTRY_NP(negate_value_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lneg3,%l6,%l0 ! .. get the address of .Lneg
- setn .Lneg1,%l6,%l1 ! .. and of .Lneg1
- stx %i0, [%l0] ! .. get the callers value
- ldd [%l0], %f0 ! .. into the float register
- fnegd %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%l1] ! .. save the result
- ldx [%l1], %i0 ! .... and return it to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(negate_value_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Absolute Value (Single-precision)
- * Function: Convert a SP value to its absolute value (clears sign bit)
- * Calling: in0 = value
- * Returns: in0 = result
- * Convention: result = absolute_value_sp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-absolute_value_sp(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Labs:
- .skip 8
-.Labs1:
- .skip 8
-
-ENTRY_NP(absolute_value_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Labs1,%l6,%l0 ! .. get the address of temp2
- setn .Labs,%l6,%l1 ! .. and temp
- st %i0, [%l0] ! .. get the users value
- ld [%l0], %f0 ! .. into a float register
- fabss %f0, %f2 ! .... have the fpu perform the operation
- st %f2, [%l1] ! .. save the result
- ld [%l1], %i0 ! .... and return it to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(absolute_value_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Absolute Value (Double-precision)
- * Function: Convert a DP value to its absolute value (clears sign bit)
- * Calling: in0 = value
- * Returns: in0 = result
- * Convention: result = absolute_value_dp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-absolute_value_dp(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Labs2:
- .skip 8
-.Labs3:
- .skip 8
-
-ENTRY_NP(absolute_value_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Labs3,%l6,%l0 ! .. get the address of temp2
- setn .Labs2,%l6,%l1 ! .. and temp
- stx %i0, [%l0] ! .. get the users value
- ldd [%l0], %f0 ! .. into a float register
- fabsd %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%l1] ! .. save the result
- ldx [%l1], %i0 ! .... and return it to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(absolute_value_dp)
-
-#endif
-
-/*
- * -----------------------------------------------------------------------
- * Arithmetic Functions *
- * -----------------------------------------------------------------------
- */
-
-/*
- * --------------------------------------------------------------------------
- * Name: Single-precision square-root
- * Function: Calculate the square-root of a Single precision value
- * Calling: in0 = value
- * Returns: in0 = result
- * Convention: result = sqrt_sp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-sqrt_sp(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Lsqsp:
- .skip 4
-.Lsqsp1:
- .skip 4
-
-ENTRY_NP(sqrt_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lsqsp1,%l6,%l0 ! .. get the address of temp2
- setn .Lsqsp,%l6,%l1 ! .. and temp
- st %i0, [%l0] ! .. get the callers value
- ld [%l0], %f0 ! .. into the float register
- fsqrts %f0, %f2 ! .... have the fpu perform the operation
- st %f2, [%l1] ! .. save the result
- ld [%l1], %i0 ! .... and return it to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(sqrt_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Double-precision square-root
- * Function: Calculate the square-root of a double precision value
- * Calling: in0 = value
- * Returns: in0 = result
- * Convention: result = sqrt_dp(value) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-sqrt_dp(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lsqdp:
- .skip 8
-.Lsqdp1:
- .skip 8
-
-ENTRY_NP(sqrt_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lsqdp1,%l6,%l0 ! .. get the address of temp2
- setn .Lsqdp,%l6,%l1 ! .. and temp
- stx %i0, [%l0] ! .. get the callers value
- ldd [%l0], %f0 ! .. into a float register
- fsqrtd %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%l1] ! .. save the result
- ldx [%l1], %i0 ! .... and return it to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(sqrt_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Add single precision
- * Function: Add two values
- * Calling: in0 = value1, in1 = value2
- * Returns: in0 = result
- * Convention: result = add_sp(value1,value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-add_sp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Laddsp:
- .skip 4
-.Laddsp1:
- .skip 4
-.Laddsp2:
- .skip 4
-
-ENTRY_NP(add_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Laddsp2,%l6,%l0 ! .. get the address of temp2
- setn .Laddsp1,%l6,%l1 ! .. and temp1
- setn .Laddsp,%l6,%l2 ! .. and temp
- st %i0, [%l0] ! .. get the users value1
- st %i1, [%l1] ! .. and value2
- ld [%l0], %f0 ! .. into the float registers
- ld [%l1], %f2 ! ......
- fadds %f0, %f2, %f4 ! .... have the fpu perform the operation
- st %f4, [%l2] ! .. save the result
- ld [%l2], %i0 ! .... and return it to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(add_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Add double precision
- * Function: Add two 64 bit values
- * Calling: in0 = value1, in1 = value2
- * Returns: in0.1 = result
- * Convention: result = add_dp(value1,value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-add_dp(uint64_t arg1, uint64_t arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Ladddp:
- .skip 8
-.Ladddp1:
- .skip 8
-.Ladddp2:
- .skip 8
-
-ENTRY_NP(add_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Ladddp2,%l6,%l0 ! .. get the address of temp2
- setn .Ladddp1,%l6,%l1 ! .. and temp1
- setn .Ladddp,%l6,%l2 ! .. and temp
- stx %i0, [%l0] ! .. get the user value1
- stx %i1, [%l1] ! .. get the user value2
- ldd [%l0], %f0 ! .. set them in float registers
- ldd [%l1], %f2 ! .... both values
- faddd %f0, %f2, %f4 ! .... have the fpu perform the operation
- std %f4, [%l2] ! .. save the result
- ldx [%l2], %i0 ! .... and return it to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(add_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Subtract Single Precision
- * Function: Subtract two single precision values from each other
- * Calling: in0 = Value1, in1 = value2
- * Returns: in0 = result
- * Convention: result = sub_sp(value1, value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-sub_sp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Lsbsp:
- .skip 4
-.Lsbsp1:
- .skip 4
-.Lsbsp2:
- .skip 4
-
-ENTRY_NP(sub_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lsbsp2,%l6,%l0 ! set the address of the result holder
- setn .Lsbsp1,%l6,%l1 ! .. get the address of temp1 (holder)
- setn .Lsbsp,%l6,%l2 ! .. get the address of temp
- st %i0, [%l0] ! .. save the value in memory
- st %i1, [%l1] ! .. save the value in memory
- ld [%l0], %f0 ! .. load the fpu register
- ld [%l1], %f2 ! .. load the fpu register
- fsubs %f0, %f2, %f4 ! .... have the fpu perform the operation
- st %f4, [%l2] ! .. save the result
- ld [%l2], %i0 ! .. return the result to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(sub_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Subtract Double Precision
- * Function: Subtract two double precision values
- * Calling: in0 = Value1, in1 = Value2
- * Returns: in0 = Result
- * Convention: Result = sub_dp(Value1,Value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-sub_dp(uint64_t arg1, uint64_t arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lsbdp:
- .skip 8
-.Lsbdp1:
- .skip 8
-.Lsbdp2:
- .skip 8
-
-ENTRY_NP(sub_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lsbdp2,%l6,%l0 ! set the address of the result holder
- setn .Lsbdp1,%l6,%l1 ! .. get the address of temp1 (holder)
- setn .Lsbdp,%l6,%l2 ! .. get the address of temp
- stx %i0, [%l0] ! .. save the value in memory
- stx %i1, [%l1] ! .. save the value in memory
- ldd [%l0], %f0 ! .. load the fpu register
- ldd [%l1], %f2 ! .. load the fpu register
- fsubd %f0, %f2, %f4 ! .... have the fpu perform the operation
- std %f4, [%l2] ! .. save the result
- ldx [%l2], %i0 ! .. return the result to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(sub_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Multiply Single Precision
- * Function: Multiply two single precision values
- * Calling: in0 = Value1, in1 = value2
- * Returns: in0 = Result
- * Convention: Result = mult_sp(Value1,Value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned
-long mult_sp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Lmlsp:
- .skip 4
-.Lmlsp1:
- .skip 4
-.Lmlsp2:
- .skip 4
-
-ENTRY_NP(mult_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lmlsp2,%l6,%l0 ! .. get the address of temp2
- setn .Lmlsp1,%l6,%l1 ! .. and temp1
- setn .Lmlsp,%l6,%l2 ! .. and temp
- st %i0, [%l0] ! .. Get the callers value1 into temp2
- st %i1, [%l1] ! .. Get the callers value2 into temp1
- ld [%l0], %f0 ! .. then load Value1
- ld [%l1], %f2 ! .. and Value2
- fmuls %f0, %f2, %f4 ! .... have the fpu perform the operation
- st %f4, [%l2] ! .. save the result
- ld [%l2], %i0 ! .... and return it to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(mult_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Multiply Double Precision
- * Function: Multiply two values and return the result
- * Calling: i0 = value1, i1 = value2
- * Returns: i0 = result
- * Convention: result = mul_dp(value1, value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-mult_dp(uint64_t arg1, uint64_t arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lmldp:
- .skip 8
-.Lmldp1:
- .skip 8
-.Lmldp2:
- .skip 8
-
-ENTRY_NP(mult_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lmldp2,%l6,%l0 ! set the address of the result holder
- setn .Lmldp1,%l6,%l1 ! .. get the address of temp1 (holder)
- setn .Lmldp,%l6,%l2 ! .. get the address of temp
- stx %i0, [%l0] ! .. save the value in memory
- stx %i1, [%l1] ! .. save the value in memory
- ldd [%l0], %f0 ! .. load the fpu register
- ldd [%l1], %f2 ! .. load the fpu register
- fmuld %f0, %f2, %f4 ! .... have the fpu perform the operation
- std %f4, [%l2] ! .. save the result
- ldx [%l2], %i0 ! .. return the result to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(mult_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Divide Single Precision
- * Function: Divide two value and return the result
- * Calling: i0 = value1, i1 = value2
- * Returns: i0 = result
- * Convention: result = div_sp(value1, value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-div_sp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Ldvsp:
- .word 0
-.Ldvsp1:
- .word 0
-.Ldvsp2:
- .word 0
-
-ENTRY_NP(div_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Ldvsp2,%l6,%l0 ! .. get the address of temp2
- setn .Ldvsp1,%l6,%l1 ! .. get the address of temp1 (holder)
- setn .Ldvsp,%l6,%l2 ! .. get the address of temp
- st %i0, [%l0] ! .. save the value in memory
- st %i1, [%l1] ! .. save the value in memory
- ld [%l0], %f0 ! .. load the fpu register
- ld [%l1], %f2 ! .. load the fpu register
-
- fdivs %f0, %f2, %f4 ! .... have the fpu perform the operation
- st %f4, [%l2] ! .. save the result
- ld [%l2], %i0 ! .. return the result to the caller
-
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(div_sp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Divide Double Precision
- * Function: Divide two value and return the result
- * Calling: i0 = value1, i1 = value2
- * Returns: i0 = result
- * Convention: result = div_dp(value1, value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-div_dp(uint64_t arg1, uint64_t arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Ldvdp:
- .skip 8
-.Ldvdp1:
- .skip 8
-.Ldvdp2:
- .skip 8
-
-ENTRY_NP(div_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Ldvdp2,%l6,%l0 ! .. get the address of temp2
- setn .Ldvdp1,%l6,%l1 ! .. get the address of temp1 (holder)
- setn .Ldvdp,%l6,%l2 ! .. get the address of temp
- stx %i0, [%l0] ! .. save the value in memory
- stx %i1, [%l1] ! .. save the value in memory
- ldd [%l0], %f0 ! .. load the fpu register
- ldd [%l1], %f2 ! .. load the fpu register
- fdivd %f0, %f2, %f4 ! .... have the fpu perform the operation
- std %f4, [%l2] ! .. save the result
- ldx [%l2], %i0 ! .. return the result to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(div_dp)
-
-#endif
-
-/*
- * -----------------------------------------------------------------------
- * Data Comparison Functions
- * -----------------------------------------------------------------------
- */
-
-/*
- * --------------------------------------------------------------------------
- * Name: Compare Single and Exception if Unordered
- * Function: Compare two values and return the FSR flags
- * Warning:
- * Calling: i0 = value1, i2 = value2
- * Returns: i0 = flags
- * Convention: flagsresult = cmp_s_ex(value1, value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-cmp_s_ex(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lcpsx:
- .skip 8
-.Lcpsx1:
- .skip 4
-.Lcpsx2:
- .skip 4
-
-ENTRY_NP(cmp_s_ex)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lcpsx2,%l6,%l0 ! .. get the address of temp2
- setn .Lcpsx1,%l6,%l1 ! .. get the address of temp
- setn .Lcpsx,%l6,%l2 ! .. get the address of temp
- st %i0, [%l0] ! .. save the value in memory
- st %i1, [%l1] ! .. save the value in memory
- ld [%l0], %f0 ! .. load the fpu register
- ld [%l1], %f2 ! .. load the fpu register
- fcmpes %f0, %f2 ! .... have the fpu perform the operation
- nop ! .. delay
- stx %fsr, [%l2] ! .. get the contents of the FSR register
- ldx [%l2], %i0 ! .. return the result to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(cmp_s_ex)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Compare Double and Exception if Unordered
- * Function: Compare two values and return the FSR flags
- * Warning:
- * Calling: i0 = value1, i2 = value2
- * Returns: i0 = flags
- * Convention: flagsresult = cmp_d_ex(value1, value2);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-cmp_d_ex(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lcpdx:
- .skip 8
-.Lcpdx1:
- .skip 8
-.Lcpdx2:
- .skip 8
-
-ENTRY_NP(cmp_d_ex)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lcpdx2,%l6,%l0 ! .. get the address of temp2
- setn .Lcpdx1,%l6,%l1 ! .. get the address of temp1 (holder)
- setn .Lcpdx,%l6,%l2 ! .. get the address of temp
- stx %i0, [%l0] ! .. save the value in memory
- stx %i1, [%l1] ! .. save the value in memory
- ldd [%l0], %f0 ! .. load the fpu register
- ldd [%l1], %f2 ! .. load the fpu register
- fcmped %f0, %f2 ! .... have the FPU do it
- nop ! .. delay
- stx %fsr, [%l2] ! .. get the contents of the FSR register
- ldx [%l2], %i0 ! .. return the result to the caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(cmp_d_ex)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Float to long conversion (single)
- * Function: Convert a real single-precision value to a long
- * Calling: in0 = value
- * Returns: in0 = value
- * Convention: long = float_long_s(real) **
- * --------------------------------------------------------------------------
- */
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-float_long_s(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.data
-.align 4
-
-.Lfllngs:
- .skip 4
-
-.align 8
-
-.Lfllngs1:
- .skip 8
-
-ENTRY_NP(float_long_s)
- save %sp, -SA(MINFRAME), %sp
- setn .Lfllngs1,%l6,%o5 ! .. get the address of temp2
- setn .Lfllngs,%l6,%o4 ! .. and temp
-
- st %i0, [%o4] ! .. get the callers value
- ld [%o4], %f0 ! .. into the float register
- fstox %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%o5] ! .. save the result
- ldx [%o5], %i0 ! .... and return it to caller
-
- ret
- restore
-SET_SIZE(float_long_s)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Float to long conversion (double)
- * Function: Convert a real value to a long
- * Calling: in0 = value
- * Returns: in0 = value
- * Convention: long = float_long_d(real) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-float_long_d(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
- .data
- .align 8
-
-.Lfllngd:
- .skip 8
-.Lfllngd1:
- .skip 8
-
-ENTRY_NP(float_long_d)
- save %sp, -SA(MINFRAME), %sp
- setn .Lfllngd1,%l6,%o5 ! .. get the address of temp2
- setn .Lfllngd,%l6,%o4 ! .. and temp
-
- stx %i0, [%o4] ! .. get the callers value
- ldd [%o4], %f0 ! .. into the float register
- fdtox %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%o5] ! .. save the result
- ldx [%o5], %i0 ! .... and return it to caller
-
- ret
- restore
-SET_SIZE(float_long_d)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Long to Float (Single)
- * Function: Convert an integer value to a single precision floating point
- * value
- * Calling: in0 = value to convert
- * Returns: in0 = converted value
- * Convention: Real = long_float_s(Int) **
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-long_float_s(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
- .data
- .align 8
-
-.Llngfls:
- .skip 8
-.Llngfls1:
- .skip 4
-
-ENTRY_NP(long_float_s)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Llngfls1,%l6,%o5 ! .. set the address of the result holder
- setn .Llngfls,%l6,%o4 ! .. set address of temp. mem reg
- stx %i0, [%o4] ! .. put the passed value into memory
- ldd [%o4], %f0 ! .. get the value from memory into FPU register
- fxtos %f0, %f2 ! .. get the integer into float into fpu r1
- st %f2, [%o5] ! .. store into the location
- ld [%o5], %i0 ! .. put the value for return
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(long_float_s)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Long to Float (double)
- * Function: Convert an integer value to a double precision floating point
- * value
- * Calling: in0 = value to convert
- * Returns: in0 = converted value
- * Convention: Real = long_float_d(Int) **
- * ---------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-long_float_d(uint64_t arg1)
-{
- return (0);
-}
-
-#else
- .data
- .align 8
-.Llngfld:
- .skip 8
-.Llngfld1:
- .skip 8
-
-ENTRY_NP(long_float_d)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Llngfld1,%l6,%o5 ! .. get the address of temp2
- setn .Llngfld,%l6,%o4 ! .. get the address of temp
- stx %i0, [%o4] ! .. get the user value
- ldd [%o4], %f0 ! .. into the float register
- fxtod %f0, %f2 ! .... have the fpu perform the operation
- std %f2, [%o5] ! .. save the result
- ldx [%o5], %i0 ! .. and return it to caller
- ret ! Delayed return (get user ret addr)
- restore ! .. restore the frame window
-SET_SIZE(long_float_d)
-
-#endif
diff --git a/usr/src/cmd/fps/fptest/fpu_test64.s b/usr/src/cmd/fps/fptest/fpu_test64.s
deleted file mode 100644
index 496d37d017..0000000000
--- a/usr/src/cmd/fps/fptest/fpu_test64.s
+++ /dev/null
@@ -1,2052 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-/*
- * Usage of %ncc
- *
- * When the branch instructions were modified from Bicc to BPcc format,
- * the pseudo-op %ncc was used. This will be converted by the assembler
- * to %icc or %xcc depending on whether the compilation is being done
- * for 32-bit or 64-bit platforms.
- */
-
-
-#include<sys/asm_linkage.h>
-
-/*
- * ------------------------------------------------------------------------
- * Name: datap_add()
- * Function: This routine test the data path of the adder for single
- * precision.
- * Calling: i0 = value
- * Returns:
- * Convention:
- * --------------------------------------------------------------------------
- *
- * f0 = value
- * f1 = 0
- * add = f2 = value
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-datap_add(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-
-.Ldadd:
- .skip 4
-.Ldadd1:
- .skip 4
-
-ENTRY_NP(datap_add)
- save %sp, -SA(MINFRAME), %sp ! save the stack frame
- setn .Ldadd,%l6,%l0 ! get a memory address
- setn .Ldadd1,%l6,%l1 ! .. one for the result
- mov %g0,%l3 ! .. get a zero
- st %l3, [%l1] ! .... and store it in memory
- st %i0, [%l0] ! .... store the value passed
- ld [%l0], %f0 ! .... put the passed value into f0
- ld [%l1], %f1 ! .... put value 0 into reg f1
- fadds %f0, %f1, %f2 ! ...... add zero and value into f2
- fcmps %fcc0, %f0, %f2 ! .... check the value passed and added value
- fbe,a %fcc0, datap_ok ! .. if they are equal
- nop ! .... delay
-
- st %f2, [%l1] ! return the result on error
-
-datap_ok:
- ld [%l1], %i0 ! then return a zero
- ret ! .... delay
- restore
-SET_SIZE(datap_add)
-
-#endif
-
-/*
- * ------------------------------------------------------------------------
- * Name:
- * Function:
- * Calling:
- * Returns:
- * Convention:
- * --------------------------------------------------------------------------
- *
- * This routine test the data path of multiplier for single precision
- * f0 = value
- * f1 = 1
- * mult = f2 = f0 * f1
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-datap_mult(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-
-.Ldtmlt:
- .skip 4
-.Ldtmlt1:
- .skip 4
-
-ENTRY_NP(datap_mult)
- save %sp, -SA(MINFRAME), %sp
- setn .Ldtmlt,%l6,%l0
- setn .Ldtmlt1,%l6,%l1
- setn 0x3F800000,%l6,%l3 ! put value 1 into memory
- st %l3, [%l1]
- st %i0, [%l0] ! store the value passed into memory location
- ld [%l0], %f0 ! put the passed value into f0
- ld [%l1], %f1 ! put value 1 into reg f1
- fmuls %f0, %f1, %f2 ! multiply value with 1 , it has to be same
- fcmps %fcc0, %f0, %f2
-
- fbne,a %fcc0, datap_mult_done
- st %f2, [%l1] ! executed only when the conditional
- ! branch is taken as annul bit is set.
- ! This branch will be taken under
- ! an error condition (%f0 != %f2).
- ! Then we need to return the result.
-
- mov %g0,%l3
- st %l3, [%l1]
-
-datap_mult_done :
- ld [%l1], %i0
- ret
- restore
-SET_SIZE(datap_mult)
-
-#endif
-
-/*
- * ------------------------------------------------------------------------
- * Name:
- * Function:
- * Calling:
- * Returns:
- * Convention:
- * --------------------------------------------------------------------------
- *
- * This routine tests the data path of the weitek multiplier for
- * double precision. Single-precision load and store are being
- * used as the input double-precision value is taken as two SP
- * arguments
- *
- * f0 = msw value
- * f1 = lsw value
- *
- * f2 = 0
- * f3 = 0
- * add = f4 = f0 + f2
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-datap_add_dp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Ldtadddp:
- .skip 8
-.Ldtadddp1:
- .skip 8
-.Ldtadddp2:
- .skip 8
-.Lamsw:
- .skip 8
-.Lalsw:
- .skip 8
-
-ENTRY_NP(datap_add_dp)
- save %sp, -SA(MINFRAME), %sp
- setn .Ldtadddp,%l6,%l0
- setn .Ldtadddp1,%l6,%l1
- setn .Ldtadddp2,%l6,%l2
- setn .Lamsw,%l6,%l4
- setn .Lalsw,%l6,%l5
- mov %g0,%l3 ! put value 0 into memory
- st %l3, [%l1]
- st %i0, [%l0] ! msw of value
- st %i1, [%l2] ! lsw of value
- ld [%l0], %f0 ! put the msw into f0
- ld [%l2], %f1 ! put the lsw into f1
- ld [%l1], %f2 ! put 0 into f2
- ld [%l1], %f3 ! put 0 into f3
- faddd %f0, %f2, %f4 ! add value + 0 into f4
- fcmpd %fcc0, %f0, %f4 ! now compare the result
-
- fbe,a %fcc0, datap_add_dp_ok ! good
- nop
-
- mov 0x1,%l3
- st %l3, [%l1]
-
-datap_add_dp_ok :
- ld [%l1], %i0
- ret
- restore
-
-SET_SIZE(datap_add_dp)
-
-#endif
-
-/*
- * ------------------------------------------------------------------------
- * Name:
- * Function:
- * Calling:
- * Returns:
- * Convention:
- *
- * This routine tests the data path of the weitek multiplier for
- * double precision. Single-precision load and store are being
- * used as the input double-precision value is taken as two SP
- * arguments.
- *
- * f0 = msw value
- * f1 = lsw value
- * f2 = 0
- * f3 = 0
- * mult = f4 = f0 * f2
- * ------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-datap_mult_dp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Ldtmdp:
- .skip 8
-.Ldtmdp1:
- .skip 8
-.Ldtmdp2:
- .skip 8
-.Lmmsw:
- .skip 8
-.Lmlsw:
- .skip 8
-
-ENTRY_NP(datap_mult_dp)
- save %sp, -SA(MINFRAME), %sp
- setn .Ldtmdp,%l6,%l0
- setn .Ldtmdp1,%l6,%l1
- setn .Ldtmdp2,%l6,%l2
- setn .Lmmsw,%l6,%l4
- setn .Lmlsw,%l6,%l5
- setn 0x3FF00000,%l6,%l3 ! put msw value of DP 1 into memory
- st %l3, [%l1]
- st %i0, [%l0] ! msw of value
- st %i1, [%l2] ! lsw of value
- ld [%l0], %f0 ! put the msw into f0
- ld [%l2], %f1 ! put the lsw into f1
- ld [%l1], %f2 ! put msw of DP 1 into f2
- mov %g0,%l3
- st %l3, [%l1]
- ld [%l1], %f3 ! put 0 into f3, i.e f2|f3 = 0x3ff0000000000000 (dp 1)
- fmuld %f0, %f2, %f4 ! mult value * 1 into f4
- fcmpd %fcc0, %f0, %f4 ! now compare the result
-
- fbe,a %fcc0, datap_mult_dp_ok ! good
- nop
-
- mov 0x1,%l3
- st %l3, [%l1]
-
-datap_mult_dp_ok :
- ld [%l1], %i0
- ret
- restore
-
-SET_SIZE(datap_mult_dp)
-
-#endif
-
-/*
- * -------------------------------------------------------------------------
- * for add routine all the f registers from 0 - 19 will be filled with numbers
- * and the result should be 10.
- * -------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-unsigned long
-timing_add_sp()
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-
-.Ltmasp:
- .skip 4
-.Ltmasp1:
- .skip 4
-.Ltmasp2:
- .skip 4
-
-ENTRY_NP(timing_add_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stacck
- setn .Ltmasp,%l6,%l0
- setn .Ltmasp1,%l6,%l1
- setn .Ltmasp2,%l6,%l2
- mov %g0,%l3
- setn 0x3f800000,%l6,%l4 ! put value 1
- setn 0x41200000,%l6,%l5 ! put value 10 into local 5
- st %l5, [%l0]
- st %l4, [%l1]
- st %l3, [%l2]
- ld [%l0], %f31 ! register 31 has 10
- ld [%l1], %f30 ! register 30 has 1
-
- ld [%l2], %f0 ! reg 0 has 0
- fmovs %f31, %f1 ! reg1 has 10
- fsubs %f31, %f30, %f18 ! reg 18 has 9
- fmovs %f18, %f3 ! reg 3 has 9
- fmovs %f30, %f2 ! reg 2 has 1
- fmovs %f30, %f19 ! reg 19 has 1
- fsubs %f18, %f19, %f16 ! reg 16 has 8
- fmovs %f16, %f5 ! reg 5 has 8
- fsubs %f31, %f16, %f17 ! reg 17 has 2
- fmovs %f17, %f4 ! reg 4 has 2
- fsubs %f16, %f30, %f14 ! reg 14 has 7
- fmovs %f14, %f7 ! reg 7 has 7
- fsubs %f31, %f14, %f15 ! reg 15 has 3
- fmovs %f15, %f6 ! reg 6 has 3
- fsubs %f14, %f30, %f12 ! reg 12 has 6
- fmovs %f12, %f9 ! reg 9 has 6
- fsubs %f31, %f12, %f13 ! reg 13 has 4
- fmovs %f13, %f8 ! reg 8 has 4
- fsubs %f12, %f30, %f10 ! reg 10 has 5
- fmovs %f10, %f11 ! reg 11 has 5
-
- fadds %f0, %f1, %f20 ! reg 0 + reg 1 = reg 20 = 10
- fadds %f2, %f3, %f21 ! reg 2 + reg 3 = reg 21 = 10
- fadds %f4, %f5, %f22 ! reg 4 + reg 5 = reg 22 = 10
- fadds %f6, %f7, %f23 ! reg 6 + reg 7 = reg 23 = 10
- fadds %f8, %f9, %f24 ! reg 8 + reg 9 = reg 24 = 10
- fadds %f10, %f11, %f25 ! reg 10 + reg 11 = reg 25 = 10
- fadds %f12, %f13, %f26 ! reg 12 + reg 13 = reg 26 = 10
- fadds %f14, %f15, %f27 ! reg 14 + reg 15 = reg 27 = 10
- fadds %f16, %f17, %f28 ! reg 16 + reg 17 = reg 28 = 10
- fadds %f18, %f19, %f29 ! reg 18 + reg 19 = reg 29 = 10
-
- ! Now additions are done check it out
- fcmps %fcc0, %f31, %f20
- fbne,a,pn %fcc0, done_t_add_sp ! If not equal, go to the end.
- st %f20, [%l2] ! Executed only when the conditional
- ! branch is taken as annul bit is set.
- ! This branch will be taken under
- ! an error condition.
-
- ! No errors. Move on to the next register
-
- fcmps %fcc0, %f31, %f21
- fbne,a,pn %fcc0, done_t_add_sp
- st %f21, [%l2]
-
-
- fcmps %fcc0, %f31, %f22
- fbne,a,pn %fcc0, done_t_add_sp
- st %f22, [%l2]
-
-
- fcmps %fcc0, %f31, %f23
- fbne,a,pn %fcc0, done_t_add_sp
- st %f23, [%l2]
-
-
- fcmps %fcc0, %f31, %f24
- fbne,a,pn %fcc0, done_t_add_sp
- st %f24, [%l2]
-
-
- fcmps %fcc0, %f31, %f25
- fbne,a,pn %fcc0, done_t_add_sp
- st %f25, [%l2]
-
-
- fcmps %fcc0, %f31, %f26
- fbne,a,pn %fcc0, done_t_add_sp
- st %f26, [%l2]
-
-
- fcmps %fcc0, %f31, %f27
- fbne,a,pn %fcc0, done_t_add_sp
- st %f27, [%l2]
-
-
- fcmps %fcc0, %f31, %f28
- fbne,a,pn %fcc0, done_t_add_sp
- st %f28, [%l2]
-
-
- ! Though this is the last set of compare instructions
- ! we cannot fall through as the store needs to be done
- ! only when the registers are not equal. That is why
- ! we need the unconditional branch with the annul bit set.
- fcmps %fcc0, %f31, %f29
- fbne,a,pn %fcc0, done_t_add_sp
- st %f29, [%l2]
-
-done_t_add_sp:
- ld [%l2], %i0
- ret
- restore
-SET_SIZE(timing_add_sp)
-
-#endif
-
-/*
- * ----------------------------------------------------------------------
- * for mult routine all the f registers from 0 - 19 will be filled
- * with numbers and the result should be the number.
- * ----------------------------------------------------------------------
- */
-
-
-#ifdef __lint
-
-unsigned long
-timing_mult_sp()
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-
-.Ltmmsp:
- .skip 4
-.Ltmmsp1:
- .skip 4
-.Ltmmsp2:
- .skip 4
-
-ENTRY_NP(timing_mult_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stacck
- setn .Ltmmsp,%l6, %l0
- setn .Ltmmsp1,%l6, %l1
- setn .Ltmmsp2,%l6, %l2
- mov %g0, %l3
- setn 0x3f800000,%l6, %l4 ! put value 1
- setn 0x41200000,%l6, %l5 ! put value 10 into local 5
- st %l5, [%l0]
- st %l4, [%l1]
- st %l3, [%l2]
- ld [%l0], %f31 ! register 31 has 10
- ld [%l1], %f1 ! register 1 has 1
- fmovs %f1, %f3
- fmovs %f1, %f5
- fmovs %f1, %f7
- fmovs %f1, %f9
- fmovs %f1, %f11 ! register 1, 3, 5, 7, 9, 11, 13, 15, 17, 19
- fmovs %f1, %f13 ! has a value of 1
- fmovs %f1, %f15
- fmovs %f1, %f17
- fmovs %f1, %f19 !
- fmovs %f1, %f0
- fmovs %f31, %f18 ! reg 18 has 10
- fsubs %f31, %f0, %f16 ! reg 16 has 9
- fsubs %f16, %f0, %f14 ! reg 14 has 8
- fsubs %f14, %f0, %f12 ! reg 12 has 7
- fsubs %f12, %f0, %f10 ! reg 10 has 6
- fsubs %f10, %f0, %f8 ! reg 8 has 5
- fsubs %f8, %f0, %f6 ! reg 6 has 4
- fsubs %f6, %f0, %f4 ! reg 4 has 3
- fsubs %f4, %f0, %f2 ! reg 2 has 2
-
- fmuls %f0, %f1, %f20 ! reg 0 * reg 1 = reg 20 = 1
- fmuls %f2, %f3, %f21 ! reg 2 * reg 3 = reg 21 = 2
- fmuls %f4, %f5, %f22 ! reg 4 * reg 5 = reg 22 = 3
- fmuls %f6, %f7, %f23 ! reg 6 * reg 7 = reg 23 = 4
- fmuls %f8, %f9, %f24 ! reg 8 * reg 9 = reg 24 = 5
- fmuls %f10, %f11, %f25 ! reg 10 * reg 11 = reg 25 = 6
- fmuls %f12, %f13, %f26 ! reg 12 * reg 13 = reg 26 = 7
- fmuls %f14, %f15, %f27 ! reg 14 * reg 15 = reg 27 = 8
- fmuls %f16, %f17, %f28 ! reg 16 * reg 17 = reg 28 = 9
- fmuls %f18, %f19, %f29 ! reg 18 * reg 19 = reg 29 = 10
-
- fcmps %fcc0, %f0, %f20
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f20, [%l2] ! Executed only when the conditional
- ! branch is taken as annul bit is set.
- ! This branch will be taken under
- ! an error condition.
-
- ! No errors. Move on to the next register
-
- fcmps %fcc0, %f2, %f21
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f21, [%l2]
-
-
- fcmps %fcc0, %f4, %f22
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f22, [%l2]
-
-
- fcmps %fcc0, %f6, %f23
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f23, [%l2]
-
-
- fcmps %fcc0, %f8, %f24
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f24, [%l2]
-
-
- fcmps %fcc0, %f10, %f25
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f25, [%l2]
-
-
- fcmps %fcc0, %f12, %f26
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f26, [%l2]
-
-
- fcmps %fcc0, %f14, %f27
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f27, [%l2]
-
-
- fcmps %fcc0, %f16, %f28
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f28, [%l2]
-
-
- ! Though this is the last set of compare instructions
- ! we cannot fall through as the store needs to be done
- ! only when the registers are not equal. That is why
- ! we need the unconditional branch with the annul bit set.
- fcmps %fcc0, %f18, %f29
- fbne,a,pn %fcc0, done_t_mult_sp
- st %f29, [%l2]
-
-
-done_t_mult_sp:
- ld [%l2], %i0
- ret
- restore
-SET_SIZE(timing_mult_sp)
-
-#endif
-
-/*
- * ----------------------------------------------------------------
- * same thing for double precision
- * ----------------------------------------------------------------
- */
-
-#ifdef __lint
-
-uint64_t
-timing_add_dp()
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Ltmadp:
- .skip 8
-.Ltmadp1:
- .skip 8
-.Ltmadp2:
- .skip 8
-
-ENTRY_NP(timing_add_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stacck
- setn .Ltmadp,%l6, %l0
- setn .Ltmadp1,%l6, %l1
- setn .Ltmadp2,%l6, %l2
- mov %g0, %l3
- setn 0x3ff0000000000000,%l6, %l4 ! put value 1
- setn 0x4024000000000000,%l6, %l5 ! put value 10 into local 5
- stx %l5, [%l0]
- stx %l4, [%l1]
- stx %l3, [%l2]
- ldd [%l0], %f30 ! register 30 has 10
- fmovd %f30, %f2 ! reg 2 has 10
- ldd [%l2], %f0 ! reg 0 has 0
- ldd [%l1], %f4 ! reg 4 has 1
- fsubd %f30, %f4, %f6 ! reg 6 has 9
- fsubd %f6, %f4, %f10 ! reg 10 has 8
- fsubd %f30, %f10, %f8 ! reg 8 has 2
- fsubd %f10, %f4, %f14 ! reg 14 has 7
- fsubd %f30, %f14, %f12 ! reg 12 has 3
- fsubd %f14, %f4, %f18 ! reg 18 has 6
- fsubd %f30, %f18, %f16 ! reg 16 has 4
-!
- faddd %f0, %f2, %f20 ! reg 20 has 10
- faddd %f4, %f6, %f22 ! reg 22 has 10
- faddd %f8, %f10, %f24 ! reg 24 has 10
- faddd %f12, %f14, %f26 ! reg 26 has 10
- faddd %f16, %f18, %f28 ! reg 28 has 10
-!
- fcmpd %fcc0, %f30, %f20
- fbne,a,pn %fcc0, done_t_add_dp
- std %f20, [%l2]
-
- fcmpd %fcc0, %f30, %f22
- fbne,a,pn %fcc0, done_t_add_dp
- std %f22, [%l2]
-
- fcmpd %fcc0, %f30, %f24
- fbne,a,pn %fcc0, done_t_add_dp
- std %f24, [%l2]
-
- fcmpd %fcc0, %f30, %f26
- fbne,a,pn %fcc0, done_t_add_dp
- std %f26, [%l2]
-
- ! Though this is the last set of compare instructions
- ! we cannot fall through as the store needs to be done
- ! only when the registers are not equal. That is why
- ! we need the unconditional branch with the annul bit set.
- fcmpd %fcc0, %f30, %f28
- fbne,a %fcc0, done_t_add_dp
- std %f28, [%l2]
-
-done_t_add_dp:
- ldx [%l2], %i0
-
- ret
- restore
-SET_SIZE(timing_add_dp)
-
-#endif
-
-/*
- * -------------------------------------------------------------------
- * Now for mult
- * -------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-uint64_t
-timing_mult_dp()
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Ltmmdp:
- .skip 8
-.Ltmmdp1:
- .skip 8
-.Ltmmdp2:
- .skip 8
-
-ENTRY_NP(timing_mult_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stacck
- setn .Ltmmdp,%l6, %l0
- setn .Ltmmdp1,%l6, %l1
- setn .Ltmmdp2,%l6, %l2
- mov %g0, %l3
- setn 0x3ff0000000000000,%l6, %l4 ! put value 1
- setn 0x4034000000000000,%l6, %l5 ! put value 20 into local 5
- stx %l5, [%l0]
- stx %l4, [%l1]
- stx %l3, [%l2]
- ldd [%l0], %f30 ! register 30 has 20
- ldd [%l1], %f2 ! register 2 has 1
- fmovd %f30, %f0 ! register 0 has 20
- faddd %f2, %f2, %f10 ! register 10 has 2
- fmovd %f10, %f16 ! register 16 has 2
- faddd %f10, %f16, %f4 ! register 4 has 4
- faddd %f4, %f2, %f6 ! register 6 has 5
- fmovd %f6, %f12 ! reg. 12 has 5
- fmovd %f4, %f14 ! reg 14 has 4
- faddd %f12, %f6, %f18 ! reg 18 has 10
- fmovd %f18, %f8 ! reg 8 has 10
-!
-! now everything is set
-!
- fmuld %f0, %f2, %f20 ! reg 20 has 20
- fmuld %f4, %f6, %f22 ! reg 22 has 20
- fmuld %f8, %f10, %f24 ! reg 24 has 20
- fmuld %f12, %f14, %f26 ! reg 26 has 20
- fmuld %f16, %f18, %f28 ! reg 28 has 20
-!
- fcmpd %fcc0, %f30, %f20
- fbne,a,pn %fcc0, done_t_mult_dp
- std %f20, [%l2]
-
- fcmpd %fcc0, %f30, %f22
- fbne,a,pn %fcc0, done_t_mult_dp
- std %f22, [%l2]
-
- fcmpd %fcc0, %f30, %f24
- fbne,a,pn %fcc0, done_t_mult_dp
- std %f24, [%l2]
-
- fcmpd %fcc0, %f30, %f26
- fbne,a,pn %fcc0, done_t_mult_dp
- std %f26, [%l2]
-
- ! Though this is the last set of compare instructions
- ! we cannot fall through as the store needs to be done
- ! only when the registers are not equal. That is why
- ! we need the unconditional branch with the annul bit set.
- fcmpd %fcc0, %f30, %f28
- fbne,a %fcc0, done_t_mult_dp
- std %f28, [%l2]
-
-done_t_mult_dp:
- ldx [%l2], %i0
-
- ret
- restore
-SET_SIZE(timing_mult_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * The following routines are for testing the IEEE754 exception fields
- * of the FSR (cexc, aexc)
- * The input is : i0 = amsw
- * i1 = bmsw or alsw (for double precision)
- * i2 = bmsw (for dp)
- * i3 = blsw (for dp)
- *
- * The output is i0 = value of FSR register
- * -------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-wadd_sp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lwadds:
- .word 0
-.Lwadds1:
- .word 0
-.Lwadds2:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wadd_sp)
- save %sp, -SA(MINFRAME), %sp
- setn .Lwadds,%l6, %l0
- setn .Lwadds1,%l6, %l1
- setn .Lwadds2,%l6, %l2
-
- st %i0, [%l0] ! get the first value
- st %i1, [%l1] ! get the second value
- ld [%l0], %f0 ! f0 has the first value
- ld [%l1], %f2 ! f2 has the second value
-
- fadds %f0, %f2, %f3 ! now do the instruction
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-SET_SIZE(wadd_sp)
-
-#endif
-
-/*
- * -------------------------------------------------------------
- * same thing for add double precision
- * -------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-wadd_dp(unsigned long arg1, unsigned long arg2,
- unsigned long arg3, unsigned long arg4)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Ladddp:
- .word 0
-.Ladddp1:
- .word 0
-.Ladddp2:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wadd_dp)
- save %sp, -SA(MINFRAME), %sp
- setn .Ladddp,%l6, %l0
- setn .Ladddp1,%l6, %l1
- setn .Ladddp2,%l6, %l2
-
- st %i0, [%l0] ! get the first value
- st %i1, [%l1] ! get the lsw of first value
- ld [%l0], %f0
- ld [%l1], %f1
- st %i2, [%l0] ! get the second value
- st %i3, [%l1] ! get the lsw of second value
- ld [%l0], %f2
- ld [%l1], %f3
-
- faddd %f0, %f2, %f4 ! now do the instruction
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-
-SET_SIZE(wadd_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------
- * for divide single precision
- * --------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t wdiv_sp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Ldvsp:
- .word 0
-.Ldvsp1:
- .word 0
-.Ldvsp2:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wdiv_sp)
- save %sp, -SA(MINFRAME), %sp
- setn .Ldvsp,%l6, %l0
- setn .Ldvsp1,%l6, %l1
- setn .Ldvsp2,%l6, %l2
-
- st %i0, [%l0] ! get the first value
- st %i1, [%l1] ! get the second value
- ld [%l0], %f0 ! f0 has the first value
- ld [%l1], %f2 ! f2 has the second value
-
- fdivs %f0, %f2, %f3 ! now do the instruction
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-
-SET_SIZE(wdiv_sp)
-
-#endif
-
-/*
- * ----------------------------------------------------------------
- * for divide double precision
- * ----------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-wdiv_dp(unsigned long arg1, unsigned long arg2,
- unsigned long arg3, unsigned long arg4)
-{
- return (0);
-}
-
-#else
-
- .section ".data"
- .align 8
-
-.Ldvdp:
- .word 0
-.Ldvdp1:
- .word 0
-.Ldvdp2:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wdiv_dp)
- save %sp, -SA(MINFRAME), %sp
- setn .Ldvdp,%l6, %l0
- setn .Ldvdp1,%l6, %l1
- setn .Ldvdp2,%l6, %l2
-
- st %i0, [%l0] ! get the first value
- st %i1, [%l1] ! get the lsw of first value
- ld [%l0], %f0
- ld [%l1], %f1
- st %i2, [%l0] ! get the second value
- st %i3, [%l1] ! get the lsw of second value
- ld [%l0], %f2
- ld [%l1], %f3
-
- fdivd %f0, %f2, %f4 ! now do the instruction
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-
-SET_SIZE(wdiv_dp)
-
-#endif
-
-/*
- * ------------------------------------------------------------------------
- * for multiply single precision
- * ------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-wmult_sp(unsigned long arg1, unsigned long arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lmltsp:
- .word 0
-.Lmltsp1:
- .word 0
-.Lmltsp2:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wmult_sp)
- save %sp, -SA(MINFRAME), %sp
- setn .Lmltsp,%l6, %l0
- setn .Lmltsp1,%l6, %l1
- setn .Lmltsp2,%l6, %l2
-
- st %i0, [%l0] ! get the first value
- st %i1, [%l1] ! get the second value
- ld [%l0], %f0 ! f0 has the first value
- ld [%l1], %f2 ! f2 has the second value
-
- fmuls %f0, %f2, %f3 ! now do the instruction
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-
-SET_SIZE(wmult_sp)
-
-#endif
-
-/*
- * ---------------------------------------------------------------------
- * for multiply double precision
- * ---------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-wmult_dp(unsigned long arg1, unsigned long arg2,
- unsigned long arg3, unsigned long arg4)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lmltdp:
- .word 0
-.Lmltdp1:
- .word 0
-.Lmltdp2:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wmult_dp)
- save %sp, -SA(MINFRAME), %sp
- setn .Lmltdp,%l6, %l0
- setn .Lmltdp1,%l6, %l1
- setn .Lmltdp2,%l6, %l2
-
- st %i0, [%l0] ! get the first value
- st %i1, [%l1] ! get the lsw of first value
- ld [%l0], %f0
- ld [%l1], %f1
- st %i2, [%l0] ! get the second value
- st %i3, [%l1] ! get the lsw of second value
- ld [%l0], %f2
- ld [%l1], %f3
-
- fmuld %f0, %f2, %f4 ! now do the instruction
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-
-SET_SIZE(wmult_dp)
-
-#endif
-
-/*
- * -----------------------------------------------------------------
- * for square-root single precision
- * -----------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-wsqrt_sp(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-.Lsqsp_opr:
- .word 0
-
- .align 8
-.Lsqsp_fsr:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wsqrt_sp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lsqsp_opr,%l6,%l0 ! .. get the address of temp2
- setn .Lsqsp_fsr,%l6,%l2 ! .. and temp
-
- st %i0, [%l0] ! .. get the callers value
- ld [%l0], %f0 ! .. into the float register
-
- fsqrts %f0, %f2 ! .... have the fpu perform the operation
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-
-SET_SIZE(wsqrt_sp)
-
-#endif
-
-/*
- * ---------------------------------------------------------------------
- * for square-root double precision
- * ---------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-wsqrt_dp(uint64_t arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-.Lsqdp_opr:
- .xword 0
-.Lsqdp_fsr:
- .xword 0 ! For the FSR contents
-
-ENTRY_NP(wsqrt_dp)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lsqdp_opr,%l6,%l0 ! .. get the address of temp2
- setn .Lsqdp_fsr,%l6,%l2 ! .. and temp
-
- stx %i0, [%l0] ! .. get the callers value
- ldd [%l0], %f0 ! .. into a float register
-
- fsqrtd %f0, %f2 ! .... have the fpu perform the operation
- stx %fsr, [%l2] ! get the fsr value
-
- ldx [%l2], %i0
- ret
- restore
-
-SET_SIZE(wsqrt_dp)
-
-#endif
-
-/*
- * ---------------------------------------------------------------------
- * Chaining test.
- * ---------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-chain_sp(int arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lchsp:
- .word 0
-.Lchsp1:
- .word 0
-
-ENTRY_NP(chain_sp)
- save %sp, -SA(MINFRAME), %sp
- setn .Lchsp,%l6, %l0
- setn .Lchsp1,%l6, %l1
- st %i0, [%l0] ! store the value
- ld [%l0], %f0
- fitos %f0, %f2 ! convert integer into single
- fmovs %f2, %f0 ! f0 has the same value x
- fadds %f0, %f2, %f4 ! f4 will have 2x
- fsubs %f4, %f0, %f6 ! f6 will have x
- fmuls %f6, %f4, %f8 ! f8 will have (2x * x)
- fdivs %f8, %f4, %f10 ! f10 will have (2x * x) / 2x = x
- fstoi %f10, %f12
-
- st %f12, [%l1]
- ld [%l1], %i0
-
- ret
- restore
-SET_SIZE(chain_sp)
-
-#endif
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-chain_dp(int arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lchdp:
- .word 0
-.Lchdp1:
- .word 0
-
-ENTRY_NP(chain_dp)
- save %sp, -SA(MINFRAME), %sp
- setn .Lchdp,%l6, %l0
- setn .Lchdp1,%l6, %l1
- st %i0, [%l0] ! store the value
- ld [%l0], %f0
- fitod %f0, %f2 ! convert integer into double
- fmovs %f2, %f0 ! f0 has the same value x
- faddd %f0, %f2, %f4 ! f4 will have 2x
- fsubd %f4, %f0, %f6 ! f6 will have x
- fmuld %f6, %f4, %f8 ! f8 will have (2x * x)
- fdivd %f8, %f4, %f10 ! f10 will have (2x * x) / 2x = x
- fdtoi %f10, %f12
-
- st %f12, [%l1]
- ld [%l1], %i0
-
- ret
- restore
-SET_SIZE(chain_dp)
-
-#endif
-
-/*
- * --------------------------------------------------------------------------
- * Name: Initialize all SP Registers
- * Function: Loads the callers value into all SP floating point registers.
- * Calling: in0 = Value
- * Returns: All float register = Value
- * Convention: init_regs(val);
- * Method: Copys the user value into each fp reg in sequence.
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-void
-init_regs(uint32_t arg1)
-{
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lclrg:
- .skip 8
-
-ENTRY_NP(init_regs)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lclrg,%l6,%l0 ! load the address of temp2 in local0
- st %i0, [%l0] ! load the value in temp2 via local0
- ld [%l0], %f0 ! .. load the value
- ld [%l0], %f1 ! .. load the value
- ld [%l0], %f2 ! .. load the value
- ld [%l0], %f3 ! .. load the value
- ld [%l0], %f4 ! .. load the value
- ld [%l0], %f5 ! .. load the value
- ld [%l0], %f6 ! .. load the value
- ld [%l0], %f7 ! .. load the value
- ld [%l0], %f8 ! .. load the value
- ld [%l0], %f9 ! .. load the value
- ld [%l0], %f10 ! .. load the value
- ld [%l0], %f11 ! .. load the value
- ld [%l0], %f12 ! .. load the value
- ld [%l0], %f13 ! .. load the value
- ld [%l0], %f14 ! .. load the value
- ld [%l0], %f15 ! .. load the value
- ld [%l0], %f16 ! .. load the value
- ld [%l0], %f17 ! .. load the value
- ld [%l0], %f18 ! .. load the value
- ld [%l0], %f19 ! .. load the value
- ld [%l0], %f20 ! .. load the value
- ld [%l0], %f21 ! .. load the value
- ld [%l0], %f22 ! .. load the value
- ld [%l0], %f23 ! .. load the value
- ld [%l0], %f24 ! .. load the value
- ld [%l0], %f25 ! .. load the value
- ld [%l0], %f26 ! .. load the value
- ld [%l0], %f27 ! .. load the value
- ld [%l0], %f28 ! .. load the value
- ld [%l0], %f29 ! .. load the value
- ld [%l0], %f30 ! .. load the value
- ld [%l0], %f31 ! .. load the value
- ret
- restore
-SET_SIZE(init_regs)
-
-#endif
-
-/*
- * Name: Initialize all double precision Registers
- * Function: Loads the callers value into all floating point registers.
- * Calling: in0 = Value
- * Returns: All float register = Value
- * Convention: init_regs_dp(val);
- * Method: Copys the user value into each fp reg in sequence.
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-void
-init_regs_dp(uint64_t arg1)
-{
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lclrg_dp:
- .skip 16
-
-ENTRY_NP(init_regs_dp)
- save %sp, -SA(MINFRAME), %sp
- ! save the registers, stack
- setx .Lclrg_dp,%l6,%l0 ! load the address of temp2 in local0
- stx %i0, [%l0] ! load the value in temp2 via local0
- ldd [%l0], %f0 ! .. load the value
- ldd [%l0], %f2 ! .. load the value
- ldd [%l0], %f4 ! .. load the value
- ldd [%l0], %f6 ! .. load the value
- ldd [%l0], %f8 ! .. load the value
- ldd [%l0], %f10 ! .. load the value
- ldd [%l0], %f12 ! .. load the value
- ldd [%l0], %f14 ! .. load the value
- ldd [%l0], %f16 ! .. load the value
- ldd [%l0], %f18 ! .. load the value
- ldd [%l0], %f20 ! .. load the value
- ldd [%l0], %f22 ! .. load the value
- ldd [%l0], %f24 ! .. load the value
- ldd [%l0], %f26 ! .. load the value
- ldd [%l0], %f28 ! .. load the value
- ldd [%l0], %f30 ! .. load the value
- ldd [%l0], %f32 ! .. load the value
- ldd [%l0], %f34 ! .. load the value
- ldd [%l0], %f36 ! .. load the value
- ldd [%l0], %f38 ! .. load the value
- ldd [%l0], %f40 ! .. load the value
- ldd [%l0], %f42 ! .. load the value
- ldd [%l0], %f44 ! .. load the value
- ldd [%l0], %f46 ! .. load the value
- ldd [%l0], %f48 ! .. load the value
- ldd [%l0], %f50 ! .. load the value
- ldd [%l0], %f52 ! .. load the value
- ldd [%l0], %f54 ! .. load the value
- ldd [%l0], %f56 ! .. load the value
- ldd [%l0], %f58 ! .. load the value
- ldd [%l0], %f60 ! .. load the value
- ldd [%l0], %f62 ! .. load the value
- ret
- restore
-SET_SIZE(init_regs_dp)
-
-#endif
-
-/*
- * Name:
- * Function:
- * Calling:
- * Returns:
- * Convention:
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint32_t
-register_test(int arg1, uint32_t arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-
-.Lrgtst1:
- .skip 4
-.Lrgtst2:
- .skip 4
-
-ENTRY_NP(register_test)
- save %sp, -SA(MINFRAME), %sp
-
- setn .Lrgtst1,%l6,%l1
- setn .Lrgtst2,%l6,%l2
-
-
- setn regTable, %l6, %o0
- mulx %i0, 12, %o1 ! Table entries are 12 bytes each.
-
- ! Jump to the appropriate set of instructions
- jmp %o0+%o1
- st %i1, [%l1] ! save the pattern to be written
-
-
-! If the number of instructions in this macro are changed,
-! please ensure that the second operand for the mulx above
-! is also updated. We can calculate this during run-time but
-! that will mean extra instructions and time.
-#define TEST_REG(reg_num) \
- ld [%l1], %f/**/reg_num; \
- ba %ncc, reg_done; \
- st %f/**/reg_num, [%l2]
-
-regTable :
-
- TEST_REG(0)
- TEST_REG(1)
- TEST_REG(2)
- TEST_REG(3)
- TEST_REG(4)
- TEST_REG(5)
- TEST_REG(6)
- TEST_REG(7)
- TEST_REG(8)
- TEST_REG(9)
- TEST_REG(10)
- TEST_REG(11)
- TEST_REG(12)
- TEST_REG(13)
- TEST_REG(14)
- TEST_REG(15)
- TEST_REG(16)
- TEST_REG(17)
- TEST_REG(18)
- TEST_REG(19)
- TEST_REG(20)
- TEST_REG(21)
- TEST_REG(22)
- TEST_REG(23)
- TEST_REG(24)
- TEST_REG(25)
- TEST_REG(26)
- TEST_REG(27)
- TEST_REG(28)
- TEST_REG(29)
- TEST_REG(30)
-
- ! No need for a branch here as this the last entry in
- ! the table and the label is will be reached by falling
- ! through.
- ld [%l1], %f31
- st %f31, [%l2]
-
-reg_done:
- ld [%l2], %i0
-
- ret
- restore
-SET_SIZE(register_test)
-
-#endif
-
-/*
- * Name:
- * Function:
- * Calling:
- * Returns:
- * Convention:
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-register_test_dp(int arg1, uint64_t arg2)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lrgtst1_dp:
- .skip 8
-.Lrgtst2_dp:
- .skip 8
-
-ENTRY_NP(register_test_dp)
- save %sp, -SA(MINFRAME), %sp
-
- setx .Lrgtst1_dp,%l6,%l1
- setx .Lrgtst2_dp,%l6,%l2
-
- setn regTable_dp, %l6, %o0
- mulx %i0, 6, %o1 ! Registers are 64-bit and hence the
- ! register numbers given will be even.
- ! Each table entry is 12 bytes.
- ! Multiplying the even register number
- ! by 6 will give the correct offset.
-
-
- ! Jump to the appropriate set of instructions
- jmp %o0+%o1
- stx %i1, [%l1] !save the pattern to be written
-
-! If the number of instructions in this macro are changed,
-! please ensure that the second operand for the mulx above
-! is also updated. We can calculate this during run-time but
-! that will mean extra instructions and time.
-#define TEST_REG_DP(reg_num) \
- ldd [%l1], %f/**/reg_num; \
- ba %ncc, reg_done_dp; \
- std %f/**/reg_num, [%l2]
-
-regTable_dp :
-
- TEST_REG_DP(0)
- TEST_REG_DP(2)
- TEST_REG_DP(4)
- TEST_REG_DP(6)
- TEST_REG_DP(8)
- TEST_REG_DP(10)
- TEST_REG_DP(12)
- TEST_REG_DP(14)
- TEST_REG_DP(16)
- TEST_REG_DP(18)
- TEST_REG_DP(20)
- TEST_REG_DP(22)
- TEST_REG_DP(24)
- TEST_REG_DP(26)
- TEST_REG_DP(28)
- TEST_REG_DP(30)
- TEST_REG_DP(32)
- TEST_REG_DP(34)
- TEST_REG_DP(36)
- TEST_REG_DP(38)
- TEST_REG_DP(40)
- TEST_REG_DP(42)
- TEST_REG_DP(44)
- TEST_REG_DP(46)
- TEST_REG_DP(48)
- TEST_REG_DP(50)
- TEST_REG_DP(52)
- TEST_REG_DP(54)
- TEST_REG_DP(56)
- TEST_REG_DP(58)
- TEST_REG_DP(60)
-
- ! No need for a branch here as this the last entry in
- ! the table and the label is will be reached by falling
- ! through.
- ldd [%l1], %f62
- std %f62, [%l2]
-
-reg_done_dp:
- ldx [%l2], %i0
-
- ret
- restore
-SET_SIZE(register_test_dp)
-
-#endif
-
-/*
- * ------------------------------------------------------------------------
- * Name: Move Registers
- * Function: Move a value thru the float registers
- * Calling: in0 = value
- * Returns: in0 = result
- * Convention: if (result != move_regs(value))
- * error(result-value);
- * --------------------------------------------------------------------------
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-move_regs(unsigned long arg1)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 4
-
-.Lmvrg:
- .skip 4
-.Lmvrg1:
- .skip 4
-
-ENTRY_NP(move_regs)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stack
- setn .Lmvrg1,%l6,%l0 ! get the address to temp2
- setn .Lmvrg,%l6,%l1 ! .. and temp
- st %i0, [%l0] ! get the callers value
- ld [%l0], %f0 ! .. into a float register
- fmovs %f0, %f1 ! copy from 1 register to the next
- fmovs %f1, %f2 ! .. to the next
- fmovs %f2, %f3 ! .. to the next
- fmovs %f3, %f4 ! .. to the next
- fmovs %f4, %f5 ! .. to the next
- fmovs %f5, %f6 ! .. to the next
- fmovs %f6, %f7 ! .. to the next
- fmovs %f7, %f8 ! .. to the next
- fmovs %f8, %f9 ! .. to the next
- fmovs %f9, %f10 ! .. to the next
- fmovs %f10, %f11 ! .. to the next
- fmovs %f11, %f12 ! .. to the next
- fmovs %f12, %f13 ! .. to the next
- fmovs %f13, %f14 ! .. to the next
- fmovs %f14, %f15 ! .. to the next
- fmovs %f15, %f16 ! .. to the next
- fmovs %f16, %f17 ! .. to the next
- fmovs %f17, %f18 ! .. to the next
- fmovs %f18, %f19 ! .. to the next
- fmovs %f19, %f20 ! .. to the next
- fmovs %f20, %f21 ! .. to the next
- fmovs %f21, %f22 ! .. to the next
- fmovs %f22, %f23 ! .. to the next
- fmovs %f23, %f24 ! .. to the next
- fmovs %f24, %f25 ! .. to the next
- fmovs %f25, %f26 ! .. to the next
- fmovs %f26, %f27 ! .. to the next
- fmovs %f27, %f28 ! .. to the next
- fmovs %f28, %f29 ! .. to the next
- fmovs %f29, %f30 ! .. to the next
- fmovs %f30, %f31 ! .. to the next
- st %f31, [%l1] ! .... save the result
- ld [%l1], %i0 ! .. and return it to the caller
- ret
- restore
-SET_SIZE(move_regs)
-
-#endif
-
-/*
- * ------------------------------------------------------------------------
- * Name:
- * Function:
- * Calling:
- * Returns:
- * Convention:
- * --------------------------------------------------------------------------
- *
- * The following routine checks the branching is done accordingly
- * to the ficc bits.
- * input %i0 = 0 = branch unordered
- * 1 = branch greater
- * 2 = branch unordered or greater
- * 3 = branch less
- * 4 = branch unordered or less
- * 5 = branch less or greater
- * 6 = branch not equal
- * 7 = branch equal
- * 8 = branch unordered or equal
- * . 9 = branch greater or equal
- * 10 = branch branch unordered or greater or equal
- * 11 = branch less or equal
- * 12 = branch unordered or or less or equal
- * 13 = branch ordered
- * 14 = branch always
- * 15 = branch never
- *
- * ouput : %i0 = 0 = good
- * = 1 = error
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-branches(unsigned long arg1, unsigned long arg2, unsigned long arg3)
-{
- return (0);
-}
-
-#else
-
-.section ".data"
-.align 8
-
-.Lbr:
- .skip 8
-.Lbr1:
- .skip 8
-
-ENTRY_NP(branches)
- save %sp, -SA(MINFRAME), %sp ! save the registers, stacck
- setn .Lbr1,%l6,%l1
- setn .Lbr,%l6,%l2
- st %i1, [%l1]
- st %i2, [%l2]
- ld [%l1], %f0
- ld [%l2], %f2
-
- setn brn_0, %l6, %o0
- mulx %i0, 12, %o1
-
-
- jmp %o0+%o1
- fcmps %fcc0, %f0, %f2 ! compare the values to get ficc
-!
-! branch unordered
-brn_0:
- fbu,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch greater
-brn_1:
- fbg,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch unordered or greater
-brn_2:
- fbug,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch less
-brn_3:
- fbl,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch unorderd or less
-brn_4:
- fbul,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch less or greater
-brn_5:
- fblg,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch not equal
-brn_6:
- fbne,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch equal
-brn_7:
- fbe,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch unordered or equal
-brn_8:
- fbue,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch greater or equal
-brn_9:
- fbge,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch unordered or greater or equal
-brn_10:
- fbuge,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch less or equal
-brn_11:
- fble,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch unordered or less or equal
-brn_12:
- fbule,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch ordered
-brn_13:
- fbo,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch always
-brn_14:
- fba,a %fcc0, br_good
- nop
- ba,a %ncc, br_error
-
-! branch never
-brn_15:
- fbn,a %fcc0, br_error
- nop
-
-br_good:
- mov %g0, %i0 ! Branch worked as expected
-
- ret
- restore
-
-br_error:
- mov 0xff, %i0 ! set the flag that it is error
-
- ret
- restore
-SET_SIZE(branches)
-
-#endif
-
-/*
- * void read_fpreg(pf, n)
- * FPU_REGS_TYPE *pf; Old freg value.
- * unsigned n; Want to read register n.
- *
- * {
- * *pf = %f[n];
- * }
- */
-
-
-#ifdef __lint
-
-/*ARGSUSED*/
-void
-read_fpreg(unsigned int *arg1, int arg2)
-{
-}
-
-#else
-
-ENTRY_NP(read_fpreg)
- save %sp, -SA(MINFRAME), %sp
- mulx %i1, 12, %i1 ! Table entries are 12 bytes each.
- setn stable, %l1, %g1 ! g1 gets base of table.
- jmp %g1 + %i1 ! Jump into table
- nop ! Can't follow CTI by CTI.
-
-#define STOREFP(n) st %f/**/n, [%i0]; ret; restore
-
-stable:
- STOREFP(0)
- STOREFP(1)
- STOREFP(2)
- STOREFP(3)
- STOREFP(4)
- STOREFP(5)
- STOREFP(6)
- STOREFP(7)
- STOREFP(8)
- STOREFP(9)
- STOREFP(10)
- STOREFP(11)
- STOREFP(12)
- STOREFP(13)
- STOREFP(14)
- STOREFP(15)
- STOREFP(16)
- STOREFP(17)
- STOREFP(18)
- STOREFP(19)
- STOREFP(20)
- STOREFP(21)
- STOREFP(22)
- STOREFP(23)
- STOREFP(24)
- STOREFP(25)
- STOREFP(26)
- STOREFP(27)
- STOREFP(28)
- STOREFP(29)
- STOREFP(30)
- STOREFP(31)
-SET_SIZE(read_fpreg)
-
-#endif
-
-#ifdef __lint
-
-/*ARGSUSED*/
-void
-read_fpreg_dp(unsigned long *arg1, int arg2)
-{
- return;
-}
-
-#else
-
-ENTRY_NP(read_fpreg_dp)
- save %sp, -SA(MINFRAME), %sp
- mulx %i1, 6, %i1 ! Table entries are 12 bytes each.
- ! But o1 will have even numbered
- ! index
- setn stable_dp, %l0, %g1 ! g1 gets base of table.
- jmp %g1 + %i1 ! Jump into table
- nop ! Can't follow CTI by CTI.
-
-#define STOREFP_DP(n) std %f/**/n, [%i0]; ret; restore
-
-stable_dp:
- STOREFP_DP(0)
- STOREFP_DP(2)
- STOREFP_DP(4)
- STOREFP_DP(6)
- STOREFP_DP(8)
- STOREFP_DP(10)
- STOREFP_DP(12)
- STOREFP_DP(14)
- STOREFP_DP(16)
- STOREFP_DP(18)
- STOREFP_DP(20)
- STOREFP_DP(22)
- STOREFP_DP(24)
- STOREFP_DP(26)
- STOREFP_DP(28)
- STOREFP_DP(30)
- STOREFP_DP(32)
- STOREFP_DP(34)
- STOREFP_DP(36)
- STOREFP_DP(38)
- STOREFP_DP(40)
- STOREFP_DP(42)
- STOREFP_DP(44)
- STOREFP_DP(46)
- STOREFP_DP(48)
- STOREFP_DP(50)
- STOREFP_DP(52)
- STOREFP_DP(54)
- STOREFP_DP(56)
- STOREFP_DP(58)
- STOREFP_DP(60)
- STOREFP_DP(62)
-
-SET_SIZE(read_fpreg_dp)
-
-#endif
-
-/*
- * void
- * write_fpreg(pf, n)
- * FPU_REGS_TYPE *pf; New freg value.
- * unsigned n; Want to read register n.
- *
- * {
- * %f[n] = *pf;
- * }
- */
-
-#ifdef __lint
-
-#else
-
-ENTRY_NP(write_fpreg)
- sll %o1, 3, %o1 ! Table entries are 8 bytes each.
- setn ltable, %l0, %g1 ! g1 gets base of table.
- jmp %g1 + %o1 ! Jump into table
- nop ! Can't follow CTI by CTI.
-
-
-#define LOADFP(n) jmp %o7+8 ; ld [%o0],%f/**/n
-
-ltable:
- LOADFP(0)
- LOADFP(1)
- LOADFP(2)
- LOADFP(3)
- LOADFP(4)
- LOADFP(5)
- LOADFP(6)
- LOADFP(7)
- LOADFP(8)
- LOADFP(9)
- LOADFP(10)
- LOADFP(11)
- LOADFP(12)
- LOADFP(13)
- LOADFP(14)
- LOADFP(15)
- LOADFP(16)
- LOADFP(17)
- LOADFP(18)
- LOADFP(19)
- LOADFP(20)
- LOADFP(21)
- LOADFP(22)
- LOADFP(23)
- LOADFP(24)
- LOADFP(25)
- LOADFP(26)
- LOADFP(27)
- LOADFP(28)
- LOADFP(29)
- LOADFP(30)
- LOADFP(31)
-SET_SIZE(write_fpreg)
-
-#endif
diff --git a/usr/src/cmd/fps/fptest/fputest.c b/usr/src/cmd/fps/fptest/fputest.c
deleted file mode 100644
index 8cd66644f0..0000000000
--- a/usr/src/cmd/fps/fptest/fputest.c
+++ /dev/null
@@ -1,4385 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <sys/types.h>
-#include <sys/file.h>
-#include <signal.h>
-#include <ucontext.h>
-#include <stdio.h>
-#include <floatingpoint.h>
-#include <locale.h>
-#include <unistd.h>
-#include <fp.h>
-#include <externs.h>
-#include <fps_ereport.h>
-
-#define FPU_ID_MASK 0xCFF02FFF
-
-extern int FPU_cpu;
-static int check_conv();
-uint_t trap_flag = 0x0;
-unsigned long fsr_at_trap;
-
-extern unsigned long long_float_d(unsigned long);
-extern unsigned long float_long_d(unsigned long);
-int fpu_sysdiag(struct fps_test_ereport *report);
-int restore_signals();
-static int addition_test_dp(struct fps_test_ereport *report);
-static int addition_test_sp(struct fps_test_ereport *report);
-static int branching(struct fps_test_ereport *report);
-static int chain_dp_test(struct fps_test_ereport *report);
-static int chain_sp_test(struct fps_test_ereport *report);
-static int check_conv(struct fps_test_ereport *report);
-static int compare_dp(struct fps_test_ereport *report);
-static int compare_dp_except(struct fps_test_ereport *report);
-static int compare_sp(struct fps_test_ereport *report);
-static int compare_sp_except(struct fps_test_ereport *report);
-static int data_path_dp(struct fps_test_ereport *report);
-static int data_path_sp(struct fps_test_ereport *report);
-static int division_test_dp(struct fps_test_ereport *report);
-static int division_test_sp(struct fps_test_ereport *report);
-static int double_sing(struct fps_test_ereport *report);
-static int fabs_ins_dp(struct fps_test_ereport *report);
-static int fabs_ins_sp(struct fps_test_ereport *report);
-static int float_to_integer_dp(struct fps_test_ereport *report);
-static int float_to_integer_sp(struct fps_test_ereport *report);
-static int float_to_long_dp(struct fps_test_ereport *report);
-static int float_to_long_sp(struct fps_test_ereport *report);
-static int get_negative_value_pn_dp(struct fps_test_ereport *report);
-static int get_negative_value_pn_sp(struct fps_test_ereport *report);
-static int get_negative_value_np_dp(struct fps_test_ereport *report);
-static int get_negative_value_np_sp(struct fps_test_ereport *report);
-static int fmovs_ins(struct fps_test_ereport *report);
-static int integer_to_float_dp(struct fps_test_ereport *report);
-static int integer_to_float_sp(struct fps_test_ereport *report);
-static int long_to_float_dp(struct fps_test_ereport *report);
-static int long_to_float_sp(struct fps_test_ereport *report);
-static int multiplication_test_dp(struct fps_test_ereport *report);
-static int multiplication_test_sp(struct fps_test_ereport *report);
-static int no_branching(struct fps_test_ereport *report);
-static int registers_four(struct fps_test_ereport *report);
-static int registers_four_dp(struct fps_test_ereport *report);
-static int registers_one(struct fps_test_ereport *report);
-static int registers_one_dp(struct fps_test_ereport *report);
-static int registers_two(struct fps_test_ereport *report);
-static int registers_two_dp(struct fps_test_ereport *report);
-static int single_doub(struct fps_test_ereport *report);
-static int squareroot_test_dp(struct fps_test_ereport *report);
-static int squareroot_test_sp(struct fps_test_ereport *report);
-static int subtraction_test_dp(struct fps_test_ereport *report);
-static int subtraction_test_sp(struct fps_test_ereport *report);
-static int timing_test(struct fps_test_ereport *report);
-static void fail_trap(struct fps_test_ereport *report, int flag_num);
-
-/* SIGFPE */
-static void sigfpe_handler(int, siginfo_t *, ucontext_t *);
-static struct sigaction oldfpe, newfpe;
-
-/* SIGSEGV */
-static void sigsegv_handler(int, siginfo_t *, ucontext_t *);
-static struct sigaction oldsegv, newsegv;
-
-/* SIGILL */
-static void sigill_handler(int, siginfo_t *, ucontext_t *);
-static struct sigaction oldill, newill;
-
-/* SIGBUS */
-static void sigbus_handler(int, siginfo_t *, ucontext_t *);
-static struct sigaction oldbus, newbus;
-
-static unsigned int pat[] = {
- 0x00000000,
- 0x55555555,
- 0xAAAAAAAA,
- 0xCCCCCCCC,
- 0x33333333,
- 0xFFFFFFFF,
- 0xA5A5A5A5,
- 0x3C3C3C3C,
- 0xF0F0F0F0,
- 0xEEEEEEEE,
- 0xDDDDDDDD,
- 0xBBBBBBBB,
- 0x77777777,
- 0x11111111,
- 0x22222222,
- 0x44444444,
- 0x88888888,
- 0x66666666,
- 0x99999999,
- 0x00FF00FF,
- 0xFF00FF00,
- 0xFFFF0000,
- 0x0000FFFF,
-
-};
-
-#define PAT_NUM (sizeof (pat)/sizeof (*pat))
-
-/*
- * Double precision patterns
- */
-static uint64_t pat_dp[] = {
- 0x0000000000000000UL,
- 0x5555555555555555UL,
- 0xAAAAAAAAAAAAAAAAUL,
- 0xCCCCCCCCCCCCCCCCUL,
- 0x3333333333333333UL,
- 0xFFFFFFFFFFFFFFFFUL,
- 0xA5A5A5A5A5A5A5A5UL,
- 0x3C3C3C3C3C3C3C3CUL,
- 0xF0F0F0F0F0F0F0F0UL,
- 0xEEEEEEEEEEEEEEEEUL,
- 0xDDDDDDDDDDDDDDDDUL,
- 0xBBBBBBBBBBBBBBBBUL,
- 0x7777777777777777UL,
- 0x1111111111111111UL,
- 0x2222222222222222UL,
- 0x4444444444444444UL,
- 0x8888888888888888UL,
- 0x6666666666666666UL,
- 0x9999999999999999UL,
- 0x00000000FFFFFFFFUL,
- 0xFFFFFFFF00000000UL,
- 0x0000FFFF0000FFFFUL,
- 0xFFFF0000FFFF0000UL
-};
-
-#define PAT_DP_NUM (sizeof (pat_dp)/sizeof (*pat_dp))
-
-struct value {
- unsigned long floatsingle;
- uint64_t floatdouble;
- uint64_t floatquad_u;
- uint64_t floatquad_l;
-};
-
-#define N_VALS (sizeof (val)/sizeof (*val))
-
-static struct value val[] = {
- 0, 0, 0, 0,
- 0x3F800000, 0x3FF0000000000000, 0x3FFF000000000000, 0,
- 0x40000000, 0x4000000000000000, 0x4000000000000000, 0,
- 0x40400000, 0x4008000000000000, 0x4000800000000000, 0,
- 0x40800000, 0x4010000000000000, 0x4001000000000000, 0,
- 0x40A00000, 0x4014000000000000, 0x4001400000000000, 0,
- 0x40C00000, 0x4018000000000000, 0x4001800000000000, 0,
- 0x40E00000, 0x401C000000000000, 0x4001C00000000000, 0,
- 0x41000000, 0x4020000000000000, 0x4002000000000000, 0,
- 0x41100000, 0x4022000000000000, 0x4002200000000000, 0,
- 0x41200000, 0x4024000000000000, 0x4002400000000000, 0,
- 0x41300000, 0x4026000000000000, 0x4002600000000000, 0,
- 0x41400000, 0x4028000000000000, 0x4002800000000000, 0,
- 0x41500000, 0x402A000000000000, 0x4002A00000000000, 0,
- 0x41600000, 0x402C000000000000, 0x4002C00000000000, 0,
- 0x41700000, 0x402E000000000000, 0x4002E00000000000, 0,
- 0x41800000, 0x4030000000000000, 0x4003000000000000, 0,
- 0x41880000, 0x4031000000000000, 0x4003100000000000, 0,
- 0x41900000, 0x4032000000000000, 0x4003200000000000, 0,
- 0x41980000, 0x4033000000000000, 0x4003300000000000, 0,
- 0x41a00000, 0x4034000000000000, 0x4003400000000000, 0,
- 0x41a80000, 0x4035000000000000, 0x4003500000000000, 0,
- 0x41b00000, 0x4036000000000000, 0x4003600000000000, 0,
- 0x41b80000, 0x4037000000000000, 0x4003700000000000, 0,
- 0x41c00000, 0x4038000000000000, 0x4003800000000000, 0,
- 0x41c80000, 0x4039000000000000, 0x4003900000000000, 0,
- 0x41d00000, 0x403a000000000000, 0x4003a00000000000, 0,
- 0x41d80000, 0x403b000000000000, 0x4003b00000000000, 0,
- 0x41e00000, 0x403c000000000000, 0x4003c00000000000, 0,
- 0x41e80000, 0x403d000000000000, 0x4003d00000000000, 0,
- 0x41f00000, 0x403e000000000000, 0x4003e00000000000, 0,
- 0x41f80000, 0x403f000000000000, 0x4003f00000000000, 0,
- 0x42000000, 0x4040000000000000, 0x4004000000000000, 0,
- 0x42040000, 0x4040800000000000, 0x4004080000000000, 0,
- 0x42080000, 0x4041000000000000, 0x4004100000000000, 0,
- 0x420c0000, 0x4041800000000000, 0x4004180000000000, 0,
- 0x42100000, 0x4042000000000000, 0x4004200000000000, 0,
- 0x42140000, 0x4042800000000000, 0x4004280000000000, 0,
- 0x42180000, 0x4043000000000000, 0x4004300000000000, 0,
- 0x421c0000, 0x4043800000000000, 0x4004380000000000, 0,
- 0x42200000, 0x4044000000000000, 0x4004400000000000, 0,
- 0x42240000, 0x4044800000000000, 0x4004480000000000, 0,
- 0x42280000, 0x4045000000000000, 0x4004500000000000, 0,
- 0x422c0000, 0x4045800000000000, 0x4004580000000000, 0,
- 0x42300000, 0x4046000000000000, 0x4004600000000000, 0,
- 0x42340000, 0x4046800000000000, 0x4004680000000000, 0,
- 0x42380000, 0x4047000000000000, 0x4004700000000000, 0,
- 0x423c0000, 0x4047800000000000, 0x4004780000000000, 0,
- 0x42400000, 0x4048000000000000, 0x4004800000000000, 0,
- 0x42440000, 0x4048800000000000, 0x4004880000000000, 0,
- 0x42480000, 0x4049000000000000, 0x4004900000000000, 0,
- 0x424c0000, 0x4049800000000000, 0x4004980000000000, 0,
- 0x42500000, 0x404a000000000000, 0x4004a00000000000, 0,
- 0x42540000, 0x404a800000000000, 0x4004a80000000000, 0,
- 0x42580000, 0x404b000000000000, 0x4004b00000000000, 0,
- 0x425c0000, 0x404b800000000000, 0x4004b80000000000, 0,
- 0x42600000, 0x404c000000000000, 0x4004c00000000000, 0,
- 0x42640000, 0x404c800000000000, 0x4004c80000000000, 0,
- 0x42680000, 0x404d000000000000, 0x4004d00000000000, 0,
- 0x426c0000, 0x404d800000000000, 0x4004d80000000000, 0,
- 0x42700000, 0x404e000000000000, 0x4004e00000000000, 0,
- 0x42740000, 0x404e800000000000, 0x4004e80000000000, 0,
- 0x42780000, 0x404f000000000000, 0x4004f00000000000, 0,
- 0x427c0000, 0x404f800000000000, 0x4004f80000000000, 0,
- 0x42800000, 0x4050000000000000, 0x4005000000000000, 0,
- 0x42820000, 0x4050400000000000, 0x4005040000000000, 0,
- 0x42840000, 0x4050800000000000, 0x4005080000000000, 0,
- 0x42860000, 0x4050c00000000000, 0x40050c0000000000, 0,
- 0x42880000, 0x4051000000000000, 0x4005100000000000, 0,
- 0x428a0000, 0x4051400000000000, 0x4005140000000000, 0,
- 0x428c0000, 0x4051800000000000, 0x4005180000000000, 0,
- 0x428e0000, 0x4051c00000000000, 0x40051c0000000000, 0,
- 0x42900000, 0x4052000000000000, 0x4005200000000000, 0,
- 0x42920000, 0x4052400000000000, 0x4005240000000000, 0,
- 0x42940000, 0x4052800000000000, 0x4005280000000000, 0,
- 0x42960000, 0x4052c00000000000, 0x40052c0000000000, 0,
- 0x42980000, 0x4053000000000000, 0x4005300000000000, 0,
- 0x429a0000, 0x4053400000000000, 0x4005340000000000, 0,
- 0x429c0000, 0x4053800000000000, 0x4005380000000000, 0,
- 0x429e0000, 0x4053c00000000000, 0x40053c0000000000, 0,
- 0x42a00000, 0x4054000000000000, 0x4005400000000000, 0,
- 0x42a20000, 0x4054400000000000, 0x4005440000000000, 0,
- 0x42a40000, 0x4054800000000000, 0x4005480000000000, 0,
- 0x42a60000, 0x4054c00000000000, 0x40054c0000000000, 0,
- 0x42a80000, 0x4055000000000000, 0x4005500000000000, 0,
- 0x42aa0000, 0x4055400000000000, 0x4005540000000000, 0,
- 0x42ac0000, 0x4055800000000000, 0x4005580000000000, 0,
- 0x42ae0000, 0x4055c00000000000, 0x40055c0000000000, 0,
- 0x42b00000, 0x4056000000000000, 0x4005600000000000, 0,
- 0x42b20000, 0x4056400000000000, 0x4005640000000000, 0,
- 0x42b40000, 0x4056800000000000, 0x4005680000000000, 0,
- 0x42b60000, 0x4056c00000000000, 0x40056c0000000000, 0,
- 0x42b80000, 0x4057000000000000, 0x4005700000000000, 0,
- 0x42ba0000, 0x4057400000000000, 0x4005740000000000, 0,
- 0x42bc0000, 0x4057800000000000, 0x4005780000000000, 0,
- 0x42be0000, 0x4057c00000000000, 0x40057c0000000000, 0,
- 0x42c00000, 0x4058000000000000, 0x4005800000000000, 0,
- 0x42c20000, 0x4058400000000000, 0x4005840000000000, 0,
- 0x42c40000, 0x4058800000000000, 0x4005880000000000, 0,
- 0x42c60000, 0x4058c00000000000, 0x40058c0000000000, 0,
- 0x42c80000, 0x4059000000000000, 0x4005900000000000, 0,
- 0x42ca0000, 0x4059400000000000, 0x4005940000000000, 0,
- 0x42cc0000, 0x4059800000000000, 0x4005980000000000, 0,
- 0x42ce0000, 0x4059c00000000000, 0x40059c0000000000, 0,
- 0x42d00000, 0x405a000000000000, 0x4005a00000000000, 0,
- 0x42d20000, 0x405a400000000000, 0x4005a40000000000, 0,
- 0x42d40000, 0x405a800000000000, 0x4005a80000000000, 0,
- 0x42d60000, 0x405ac00000000000, 0x4005ac0000000000, 0,
- 0x42d80000, 0x405b000000000000, 0x4005b00000000000, 0,
- 0x42da0000, 0x405b400000000000, 0x4005b40000000000, 0,
- 0x42dc0000, 0x405b800000000000, 0x4005b80000000000, 0,
- 0x42de0000, 0x405bc00000000000, 0x4005bc0000000000, 0,
- 0x42e00000, 0x405c000000000000, 0x4005c00000000000, 0,
- 0x42e20000, 0x405c400000000000, 0x4005c40000000000, 0,
- 0x42e40000, 0x405c800000000000, 0x4005c80000000000, 0,
- 0x42e60000, 0x405cc00000000000, 0x4005cc0000000000, 0,
- 0x42e80000, 0x405d000000000000, 0x4005d00000000000, 0,
- 0x42ea0000, 0x405d400000000000, 0x4005d40000000000, 0,
- 0x42ec0000, 0x405d800000000000, 0x4005d80000000000, 0,
- 0x42ee0000, 0x405dc00000000000, 0x4005dc0000000000, 0,
- 0x42f00000, 0x405e000000000000, 0x4005e00000000000, 0,
- 0x42f20000, 0x405e400000000000, 0x4005e40000000000, 0,
- 0x42f40000, 0x405e800000000000, 0x4005e80000000000, 0,
- 0x42f60000, 0x405ec00000000000, 0x4005ec0000000000, 0,
- 0x42f80000, 0x405f000000000000, 0x4005f00000000000, 0,
- 0x42fa0000, 0x405f400000000000, 0x4005f40000000000, 0,
- 0x42fc0000, 0x405f800000000000, 0x4005f80000000000, 0,
- 0x42fe0000, 0x405fc00000000000, 0x4005fc0000000000, 0,
- 0x43000000, 0x4060000000000000, 0x4006000000000000, 0,
- 0x43010000, 0x4060200000000000, 0x4006020000000000, 0,
- 0x43020000, 0x4060400000000000, 0x4006040000000000, 0,
- 0x43030000, 0x4060600000000000, 0x4006060000000000, 0,
- 0x43040000, 0x4060800000000000, 0x4006080000000000, 0,
- 0x43050000, 0x4060a00000000000, 0x40060a0000000000, 0,
- 0x43060000, 0x4060c00000000000, 0x40060c0000000000, 0,
- 0x43070000, 0x4060e00000000000, 0x40060e0000000000, 0,
- 0x43080000, 0x4061000000000000, 0x4006100000000000, 0,
- 0x43090000, 0x4061200000000000, 0x4006120000000000, 0,
- 0x430a0000, 0x4061400000000000, 0x4006140000000000, 0,
- 0x430b0000, 0x4061600000000000, 0x4006160000000000, 0,
- 0x430c0000, 0x4061800000000000, 0x4006180000000000, 0,
- 0x430d0000, 0x4061a00000000000, 0x40061a0000000000, 0,
- 0x430e0000, 0x4061c00000000000, 0x40061c0000000000, 0,
- 0x430f0000, 0x4061e00000000000, 0x40061e0000000000, 0,
- 0x43100000, 0x4062000000000000, 0x4006200000000000, 0,
- 0x43110000, 0x4062200000000000, 0x4006220000000000, 0,
- 0x43120000, 0x4062400000000000, 0x4006240000000000, 0,
- 0x43130000, 0x4062600000000000, 0x4006260000000000, 0,
- 0x43140000, 0x4062800000000000, 0x4006280000000000, 0,
- 0x43150000, 0x4062a00000000000, 0x40062a0000000000, 0,
- 0x43160000, 0x4062c00000000000, 0x40062c0000000000, 0,
- 0x43170000, 0x4062e00000000000, 0x40062e0000000000, 0,
- 0x43180000, 0x4063000000000000, 0x4006300000000000, 0,
- 0x43190000, 0x4063200000000000, 0x4006320000000000, 0,
- 0x431a0000, 0x4063400000000000, 0x4006340000000000, 0,
- 0x431b0000, 0x4063600000000000, 0x4006360000000000, 0,
- 0x431c0000, 0x4063800000000000, 0x4006380000000000, 0,
- 0x431d0000, 0x4063a00000000000, 0x40063a0000000000, 0,
- 0x431e0000, 0x4063c00000000000, 0x40063c0000000000, 0,
- 0x431f0000, 0x4063e00000000000, 0x40063e0000000000, 0,
- 0x43200000, 0x4064000000000000, 0x4006400000000000, 0,
- 0x43210000, 0x4064200000000000, 0x4006420000000000, 0,
- 0x43220000, 0x4064400000000000, 0x4006440000000000, 0,
- 0x43230000, 0x4064600000000000, 0x4006460000000000, 0,
- 0x43240000, 0x4064800000000000, 0x4006480000000000, 0,
- 0x43250000, 0x4064a00000000000, 0x40064a0000000000, 0,
- 0x43260000, 0x4064c00000000000, 0x40064c0000000000, 0,
- 0x43270000, 0x4064e00000000000, 0x40064e0000000000, 0,
- 0x43280000, 0x4065000000000000, 0x4006500000000000, 0,
- 0x43290000, 0x4065200000000000, 0x4006520000000000, 0,
- 0x432a0000, 0x4065400000000000, 0x4006540000000000, 0,
- 0x432b0000, 0x4065600000000000, 0x4006560000000000, 0,
- 0x432c0000, 0x4065800000000000, 0x4006580000000000, 0,
- 0x432d0000, 0x4065a00000000000, 0x40065a0000000000, 0,
- 0x432e0000, 0x4065c00000000000, 0x40065c0000000000, 0,
- 0x432f0000, 0x4065e00000000000, 0x40065e0000000000, 0,
- 0x43300000, 0x4066000000000000, 0x4006600000000000, 0,
- 0x43310000, 0x4066200000000000, 0x4006620000000000, 0,
- 0x43320000, 0x4066400000000000, 0x4006640000000000, 0,
- 0x43330000, 0x4066600000000000, 0x4006660000000000, 0,
- 0x43340000, 0x4066800000000000, 0x4006680000000000, 0,
- 0x43350000, 0x4066a00000000000, 0x40066a0000000000, 0,
- 0x43360000, 0x4066c00000000000, 0x40066c0000000000, 0,
- 0x43370000, 0x4066e00000000000, 0x40066e0000000000, 0,
- 0x43380000, 0x4067000000000000, 0x4006700000000000, 0,
- 0x43390000, 0x4067200000000000, 0x4006720000000000, 0,
- 0x433a0000, 0x4067400000000000, 0x4006740000000000, 0,
- 0x433b0000, 0x4067600000000000, 0x4006760000000000, 0,
- 0x433c0000, 0x4067800000000000, 0x4006780000000000, 0,
- 0x433d0000, 0x4067a00000000000, 0x40067a0000000000, 0,
- 0x433e0000, 0x4067c00000000000, 0x40067c0000000000, 0,
- 0x433f0000, 0x4067e00000000000, 0x40067e0000000000, 0,
- 0x43400000, 0x4068000000000000, 0x4006800000000000, 0,
- 0x43410000, 0x4068200000000000, 0x4006820000000000, 0,
- 0x43420000, 0x4068400000000000, 0x4006840000000000, 0,
- 0x43430000, 0x4068600000000000, 0x4006860000000000, 0,
- 0x43440000, 0x4068800000000000, 0x4006880000000000, 0,
- 0x43450000, 0x4068a00000000000, 0x40068a0000000000, 0,
- 0x43460000, 0x4068c00000000000, 0x40068c0000000000, 0,
- 0x43470000, 0x4068e00000000000, 0x40068e0000000000, 0,
- 0x43480000, 0x4069000000000000, 0x4006900000000000, 0,
- 0x43490000, 0x4069200000000000, 0x4006920000000000, 0,
- 0x434a0000, 0x4069400000000000, 0x4006940000000000, 0,
- 0x434b0000, 0x4069600000000000, 0x4006960000000000, 0,
- 0x434c0000, 0x4069800000000000, 0x4006980000000000, 0,
- 0x434d0000, 0x4069a00000000000, 0x40069a0000000000, 0,
- 0x434e0000, 0x4069c00000000000, 0x40069c0000000000, 0,
- 0x434f0000, 0x4069e00000000000, 0x40069e0000000000, 0,
- 0x43500000, 0x406a000000000000, 0x4006a00000000000, 0,
- 0x43510000, 0x406a200000000000, 0x4006a20000000000, 0,
- 0x43520000, 0x406a400000000000, 0x4006a40000000000, 0,
- 0x43530000, 0x406a600000000000, 0x4006a60000000000, 0,
- 0x43540000, 0x406a800000000000, 0x4006a80000000000, 0,
- 0x43550000, 0x406aa00000000000, 0x4006aa0000000000, 0,
- 0x43560000, 0x406ac00000000000, 0x4006ac0000000000, 0,
- 0x43570000, 0x406ae00000000000, 0x4006ae0000000000, 0,
- 0x43580000, 0x406b000000000000, 0x4006b00000000000, 0,
- 0x43590000, 0x406b200000000000, 0x4006b20000000000, 0,
- 0x435a0000, 0x406b400000000000, 0x4006b40000000000, 0,
- 0x435b0000, 0x406b600000000000, 0x4006b60000000000, 0,
- 0x435c0000, 0x406b800000000000, 0x4006b80000000000, 0,
- 0x435d0000, 0x406ba00000000000, 0x4006ba0000000000, 0,
- 0x435e0000, 0x406bc00000000000, 0x4006bc0000000000, 0,
- 0x435f0000, 0x406be00000000000, 0x4006be0000000000, 0,
- 0x43600000, 0x406c000000000000, 0x4006c00000000000, 0,
- 0x43610000, 0x406c200000000000, 0x4006c20000000000, 0,
- 0x43620000, 0x406c400000000000, 0x4006c40000000000, 0,
- 0x43630000, 0x406c600000000000, 0x4006c60000000000, 0,
- 0x43640000, 0x406c800000000000, 0x4006c80000000000, 0,
- 0x43650000, 0x406ca00000000000, 0x4006ca0000000000, 0,
- 0x43660000, 0x406cc00000000000, 0x4006cc0000000000, 0,
- 0x43670000, 0x406ce00000000000, 0x4006ce0000000000, 0,
- 0x43680000, 0x406d000000000000, 0x4006d00000000000, 0,
- 0x43690000, 0x406d200000000000, 0x4006d20000000000, 0,
- 0x436a0000, 0x406d400000000000, 0x4006d40000000000, 0,
- 0x436b0000, 0x406d600000000000, 0x4006d60000000000, 0,
- 0x436c0000, 0x406d800000000000, 0x4006d80000000000, 0,
- 0x436d0000, 0x406da00000000000, 0x4006da0000000000, 0,
- 0x436e0000, 0x406dc00000000000, 0x4006dc0000000000, 0,
- 0x436f0000, 0x406de00000000000, 0x4006de0000000000, 0,
- 0x43700000, 0x406e000000000000, 0x4006e00000000000, 0,
- 0x43710000, 0x406e200000000000, 0x4006e20000000000, 0,
- 0x43720000, 0x406e400000000000, 0x4006e40000000000, 0,
- 0x43730000, 0x406e600000000000, 0x4006e60000000000, 0,
- 0x43740000, 0x406e800000000000, 0x4006e80000000000, 0,
- 0x43750000, 0x406ea00000000000, 0x4006ea0000000000, 0,
- 0x43760000, 0x406ec00000000000, 0x4006ec0000000000, 0,
- 0x43770000, 0x406ee00000000000, 0x4006ee0000000000, 0,
- 0x43780000, 0x406f000000000000, 0x4006f00000000000, 0,
- 0x43790000, 0x406f200000000000, 0x4006f20000000000, 0,
- 0x437a0000, 0x406f400000000000, 0x4006f40000000000, 0,
- 0x437b0000, 0x406f600000000000, 0x4006f60000000000, 0,
- 0x437c0000, 0x406f800000000000, 0x4006f80000000000, 0,
- 0x437d0000, 0x406fa00000000000, 0x4006fa0000000000, 0,
- 0x437e0000, 0x406fc00000000000, 0x4006fc0000000000, 0,
- 0x437f0000, 0x406fe00000000000, 0x4006fe0000000000, 0,
-};
-
-/* -ve of the values in val[] above */
-static unsigned long neg_val_sp[N_VALS];
-static uint64_t neg_val_dp[N_VALS];
-
-/*
- * data_path_sp(struct fps_test_ereport *report)checks the data path
- * between registers and memory, between memory and an floating
- * registers, and between floating registers and the weitek chips.
- * All the bits are covered including the sign bit. If an error is
- * found, all relevant data is stored in report.
- */
-#ifndef i86pc
-static int
-data_path_sp(struct fps_test_ereport *report)
-{
- int i;
- int j;
- int k;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long result;
- unsigned long value;
-
- prev_fsr = get_fsr();
- init_regs(0);
-
- for (i = 0; i < 2; i++) {
- for (j = 1; j < 255; j++) {
- for (k = 0; k < 23; k++) {
- value = (i << 31) | (j << 23) | (1 << k);
-
- if (result = datap_add(value)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(
- NO_EREPORT_INFO,
- report, 6217, &observed,
- &expected, 1, 1);
-
- return (-1);
- }
- if (result = datap_mult(value)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(
- NO_EREPORT_INFO,
- report, 6218, &observed,
- &expected, 1, 1);
-
- return (-1);
- }
- }
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * data_path_dp(struct fps_test_ereport *report) performs the
- * same function as data_path_sp except it's double precision
- * instead of single. If an error is found, all relevant data
- * is stored in report.
- */
-static int
-data_path_dp(struct fps_test_ereport *report)
-{
- int i;
- int j;
- int k;
- int l;
- uint64_t observed[2];
- uint64_t expected[2];
- unsigned long prev_fsr;
- unsigned long result_lsw = 0;
- unsigned long result_msw = 0;
- unsigned long value_lsw;
- unsigned long value_msw;
-
- prev_fsr = get_fsr();
- init_regs(0);
-
- for (i = 0; i < 2; i++) {
- for (j = 1; j < 2047; j++) {
- for (k = 0; k < 52; k++) {
- value_lsw = (1 << k);
-
- if (k > 32)
- l = k - 32;
- else
- l = 32;
-
- value_msw = (i << 31) | (j << 20) | (1 << l);
-
- if (datap_add_dp(value_msw, value_lsw)) {
- observed[0] = (uint64_t)result_msw;
- observed[1] = (uint64_t)result_lsw;
- expected[0] = (uint64_t)value_msw;
- expected[1] = (uint64_t)value_lsw;
- setup_fps_test_struct(
- NO_EREPORT_INFO, report,
- 6219, observed, expected,
- 2, 2);
-
- return (-1);
- }
-
- if (datap_mult_dp(value_msw, value_lsw)) {
- observed[0] = (uint64_t)result_msw;
- observed[1] = (uint64_t)result_lsw;
- expected[0] = (uint64_t)value_msw;
- expected[1] = (uint64_t)value_lsw;
- setup_fps_test_struct(
- NO_EREPORT_INFO, report,
- 6220, observed, expected,
- 2, 2);
-
- return (-1);
- }
- }
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * timing_test(struct fps_test_ereport *report) does 10 add
- * operations continuously and 10 multiply operations
- * continusously. If an error is found, relevant data is
- * stored in report.
- */
-static int
-timing_test(struct fps_test_ereport *report)
-{
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long result;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- for (i = 0; i < 1000; i++) {
- init_regs(0);
- if (result = timing_add_sp()) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6221, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- init_regs(0);
-
- if (result = timing_mult_sp()) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6222, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- init_regs(0);
-
- if (result = timing_add_dp()) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6223, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- init_regs(0);
-
- if (result = timing_mult_dp()) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6224, &observed, &expected, 1, 1);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * chain_sp_test(struct fps_test_ereport *report)
- * performs a series of single precision chaining
- * tests. If an error is found, relevant data is
- * stored in report.
- */
-static int
-chain_sp_test(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t result;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
- init_regs(0);
- set_fsr(0);
-
- for (i = 1; i < 60; i++) {
- if ((result = chain_sp(i)) != (unsigned long) i) {
- observed = (uint64_t)result;
- expected = (uint64_t)i;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %d\nObserved: %d", i, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6225, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * chain_dp_test(struct fps_test_ereport *report)
- * performs a series of double precision chaining
- * tests. If an error is found, relevant data is
- * stored in report.
- */
-static int
-chain_dp_test(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t result;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
- init_regs(0);
- set_fsr(0);
-
- for (i = 1; i < 60; i++) {
- if ((result = chain_dp(i)) != (unsigned long) i) {
- observed = (uint64_t)result;
- expected = (uint64_t)i;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %d\nObserved: %d", i, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6226, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * integer_to_float_sp(struct fps_test_ereport *report)
- * does continuous integer to float, single precision
- * conversions. If an error is found, relevant data is stored
- * in report.
- */
-static int
-integer_to_float_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long result;
-
- prev_fsr = get_fsr();
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = int_float_s(i);
- if (result != val[i].floatsingle) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, val[i].floatsingle,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6227, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * integer_to_float_dp(struct fps_test_ereport *report)
- * does continuous integer to float, double precision
- * conversions. If an error is found, relevant data is stored
- * in report.
- */
-static int
-integer_to_float_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long result;
-
- prev_fsr = get_fsr();
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = int_float_d(i);
- if (result != val[i].floatdouble) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %lld"
- "\nObserved: %lld", i, val[i].floatdouble,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6228, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * long_to_float_sp(struct fps_test_ereport *report)
- * performs continuous, single precision, unsigned
- * long to float conversions. If an error is found,
- * relevant data is stored in report.
- */
-static int
-long_to_float_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- uint64_t expected;
- uint64_t observed;
- unsigned long i;
- unsigned long prev_fsr;
- unsigned long result;
-
- prev_fsr = get_fsr();
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = long_float_s(i);
- if (result != val[i].floatsingle) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, val[i].floatdouble,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6353, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * long_to_float_dp(struct fps_test_ereport *report)
- * performs continuous, double precision, unsigned
- * long to float conversions. If an error is found,
- * relevant data is stored in report.
- */
-static int
-long_to_float_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- uint64_t expected;
- uint64_t observed;
- unsigned long i;
- unsigned long prev_fsr;
- unsigned long res1;
-
- prev_fsr = get_fsr();
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- res1 = long_float_d(i);
- if (res1 != val[i].floatdouble) {
- observed = (uint64_t)res1;
- expected = (uint64_t)val[i].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %lld"
- "\nObserved: %lld", i, val[i].floatdouble,
- res1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6354, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * float_to_integer_sp(struct fps_test_ereport *report)
- * performs continuous, single precision float to
- * integer conversions. If an error is found, relevant
- * data is stored in report.
- */
-static int
-float_to_integer_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- uint64_t i;
- unsigned long prev_fsr;
- unsigned long result;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = float_int_s(val[i].floatsingle);
- if (result != i) {
- observed = (uint64_t)result;
- expected = (uint64_t)i;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, i,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6229, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- /*
- * Value greater than highest representable value in int has to raise
- * an invalid exception.
- *
- * Highest possible value in int (assume uint) is 2^32; Use 2^33 for a
- * value greater.
- */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
-
- /* Set trap flag to solicited */
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_s(0x50000000);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi max value exception not raised, "
- "fp val=%lx, fsr=%lx",
- 0x50000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5307, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi max value exception not raised, "
- "fp val=%lx, fsr=%lx",
- 0x50000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5308, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- /* NaNs should raise an exception when converted */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_s(nan_sp);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi NaN exception not raised, "
- "fp val=%lx, fsr=%lx",
- nan_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5309, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi NaN exception not raised, "
- "fp val=%lx, fsr=%lx",
- nan_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5310, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- /* + infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_s(PLUS_INF_SP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi +infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- PLUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5311, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi +infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- PLUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5312, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- /* - infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_s(MINUS_INF_SP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi -infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- MINUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5313, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi -infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- MINUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5314, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- /* Check for inexact exception raised because of fractions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NX);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_s(pi_sp);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi inexact exception not raised, "
- "fp val=%lx, fsr=%lx",
- pi_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5315, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NX) != FSR_CEXC_NX) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NX;
- expected = (uint64_t)FSR_CEXC_NX;
- (void) snprintf(err_data, sizeof (err_data),
- "fstoi inexact exception not raised, "
- "fp val=%lx, fsr=%lx",
- pi_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5316, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * float_to_integer_dp(struct fps_test_ereport *report)
- * performs continuous, double precision float to
- * integer conversions. If an error is found, relevant
- * data is stored in report.
- */
-static int
-float_to_integer_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- uint64_t i;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long res1;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 0; i < N_VALS; i++) {
- res1 = float_int_d(val[i].floatdouble);
-
- if (res1 != i) {
- observed = (uint64_t)res1;
- expected = (uint64_t)i;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, i,
- res1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6230, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- /*
- * Value greater than highest representable value in int has to raise
- * an invalid exception.
- *
- * Highest possible value in int (assume uint) is 2^32; Use 2^33 for a
- * value greater.
- */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_d(0x4200000000000000);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi max value exception not raised, "
- "fp val=%llx, fsr=%lx",
- 0x4200000000000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5317, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi max value exception not raised, "
- "fp val=%llx, fsr=%lx",
- 0x4200000000000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5318, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* NaNs should raise an exception when converted */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_d(nan_dp);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi NaN exception not raised, "
- "fp val=%llx, fsr=%lx",
- nan_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5319, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi NaN exception not raised, "
- "fp val=%llx, fsr=%lx",
- nan_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5320, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* + infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_d(PLUS_INF_DP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi +infinity exception not raised, "
- "fp val=%llx, fsr=%lx",
- PLUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5321, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi +infinity exception not raised, "
- "fp val=%llx, fsr=%lx",
- PLUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5322, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* - infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_d(MINUS_INF_DP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi -infinity exception not raised, "
- "fp val=%llx, fsr=%lx",
- MINUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5323, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi -infinity exception not raised, "
- "fp val=%llx, fsr=%lx",
- MINUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5324, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* Check for inexact exception raised because of fractions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NX);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_d(pi_dp);
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi inexact exception not raised, "
- "fp val=%llx, fsr=%lx",
- pi_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5325, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NX) != FSR_CEXC_NX) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NX;
- expected = (uint64_t)FSR_CEXC_NX;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtoi inexact exception not raised, "
- "fp val=%llx, fsr=%lx",
- pi_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5326, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * float_to_long_sp(struct fps_test_ereport *report)
- * does continuous, single precision, float to long
- * conversions. If an error is found, relevant data
- * is stored in report.
- */
-static int
-float_to_long_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- uint64_t i;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long result;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = float_long_s(val[i].floatsingle);
-
- if (result != i) {
- observed = (uint64_t)result;
- expected = (uint64_t)i;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, i,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6352, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- /*
- * Value greater than highest representable value in int has to raise
- * an invalid exception.
- *
- * Highest possible value in int (assume uint) is 2^64; Use 2^65 for a
- * value greater.
- */
-
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_s(0x60000000);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox max value exception not raised, "
- "fp val=%lx, fsr=%lx",
- 0x60000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5327, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox max value exception not raised, "
- "fp val=%lx, fsr=%lx",
- 0x50000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5328, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* NaNs should raise an exception when converted */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_s(nan_sp);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox NaN exception not raised, "
- "fp val=%lx, fsr=%lx",
- nan_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5329, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox NaN exception not raised, "
- "fp val=%lx, fsr=%lx",
- nan_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5330, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- /* + infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_s(PLUS_INF_SP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox +infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- PLUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5331, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox +infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- PLUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5332, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* - infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_s(MINUS_INF_SP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox -infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- MINUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5333, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox -infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- MINUS_INF_SP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5334, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* Check for inexact exception raised because of fractions */
-
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NX);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_int_s(pi_sp);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox inexact exception not raised, "
- "fp val=%lx, fsr=%lx",
- pi_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5335, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NX) != FSR_CEXC_NX) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NX;
- expected = (uint64_t)FSR_CEXC_NX;
- (void) snprintf(err_data, sizeof (err_data),
- "fstox inexact exception not raised, "
- "fp val=%lx, fsr=%lx",
- pi_sp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5336, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * float_to_long_dp(struct fps_test_ereport *report)
- * does continuous, double precision, float to long
- * conversions. If an error is found, relevant data
- * is stored in report.
- */
-static int
-float_to_long_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- uint64_t i;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long res1;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- res1 = float_long_d(val[i].floatdouble);
-
- if (res1 != i) {
- observed = (uint64_t)res1;
- expected = (uint64_t)i;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, i,
- res1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6351, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- /*
- * Value greater than highest representable value in long has to
- * raise an invalid exception.
- *
- * Highest possible value in long (assume ulong) is 2^64; Use 2^65 for a
- * value greater.
- */
-
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_d(0x4400000000000000);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox max value exception not raised, "
- "fp val=%lx, fsr=%lx",
- 0x4400000000000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5337, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox max value exception not raised, "
- "fp val=%lx, fsr=%lx",
- 0x4200000000000000, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5338, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* NaNs should raise an exception when converted */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_d(nan_dp);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox NaN exception not raised, "
- "fp val=%lx, fsr=%lx",
- nan_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5339, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox NaN exception not raised, "
- "fp val=%lx, fsr=%lx",
- nan_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5340, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* + infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_d(PLUS_INF_DP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox +infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- PLUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5341, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox +infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- PLUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5342, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* - infinity exceptions */
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NV);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_d(MINUS_INF_DP);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox -infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- MINUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5343, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox -infinity exception not raised, "
- "fp val=%lx, fsr=%lx",
- MINUS_INF_DP, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5344, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- /* Check for inexact exception raised because of fractions */
-
- set_fsr(prev_fsr | FSR_ENABLE_TEM_NX);
- trap_flag = trap_flag | TRAP_SOLICITED;
-
- (void) float_long_d(pi_dp);
-
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox inexact exception not raised, "
- "fp val=%lx, fsr=%lx",
- pi_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5345, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- if ((fsr_at_trap & FSR_CEXC_NX) != FSR_CEXC_NX) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NX;
- expected = (uint64_t)FSR_CEXC_NX;
- (void) snprintf(err_data, sizeof (err_data),
- "fdtox inexact exception not raised, "
- "fp val=%lx, fsr=%lx",
- pi_dp, fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5346, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * single_doub(struct fps_test_ereport *report)
- * does continues single to double conversion.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-single_doub(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long result;
-
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = convert_sp_dp(val[i].floatsingle);
-
- if (result != val[i].floatdouble) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %lld"
- "\nObserved: %lld", i,
- val[i].floatdouble, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6231, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
-
- return (0);
-}
-
-/*
- * double_sing(struct fps_test_ereport *report)
- * does continues double to single conversion.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-double_sing(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long result;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = convert_dp_sp(val[i].floatdouble);
-
- if (result != val[i].floatsingle) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i,
- val[i].floatsingle, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6232, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * fmovs_ins(struct fps_test_ereport *report)
- * moves a value through the floating point
- * registers. If an error is found, relevant
- * data is stored
- * in report.
- */
-static int
-fmovs_ins(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- uint64_t observed;
- uint64_t expected;
- unsigned long result;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- if ((result = move_regs(0x3F800000)) != 0x3F800000) {
- observed = (uint64_t)result;
- expected = (uint64_t)0x3F800000;
- (void) snprintf(err_data, sizeof (err_data),
- "Wrote to f0, read from f31");
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6233, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * get_negative_value_pn_sp(struct fps_test_ereport *report)
- * converts single precision postive to negative values.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-get_negative_value_pn_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t observed;
- uint64_t expected;
- unsigned long prev_fsr;
- unsigned long result;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = negate_value_sp(val[i].floatsingle);
- if (result != neg_val_sp[i]) {
- observed = (uint64_t)result;
- expected = (uint64_t)neg_val_sp[i];
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, neg_val_sp[i],
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6234, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * get_negative_value_pn_dp(struct fps_test_ereport *report)
- * converts double precision postive to negative values.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-get_negative_value_pn_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- uint64_t result;
-
- init_regs_dp(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = negate_value_dp(val[i].floatdouble);
- if (result != neg_val_dp[i]) {
- observed = (uint64_t)result;
- expected = (uint64_t)neg_val_dp[i];
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %lld"
- "\nObserved: %lld", i, neg_val_dp[i],
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6362, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * get_negative_value_np_sp(struct fps_test_ereport *report)
- * converts single precision negative to positive values.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-get_negative_value_np_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t observed;
- uint64_t expected;
- unsigned long result;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = negate_value_sp(neg_val_sp[i]);
-
- if (result != val[i].floatsingle) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, val[i].floatsingle,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6235, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * get_negative_value_np_dp(struct fps_test_ereport *report)
- * converts double precision negative to positive values.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-get_negative_value_np_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- uint64_t result;
-
- init_regs_dp(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = negate_value_dp(neg_val_dp[i]);
-
- if (result != val[i].floatdouble) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %lld"
- "\nObserved: %lld", i, val[i].floatdouble,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6363, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * fabs_ins_sp(struct fps_test_ereport *report)
- * does single precision absolute value testing.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-fabs_ins_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long result;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 0; i < N_VALS; i++) {
- result = absolute_value_sp(neg_val_sp[i]);
- if (result != val[i].floatsingle) {
- observed = *(uint64_t *)&result;
- expected = *(uint64_t *)&(val[i].floatsingle);
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %d"
- "\nObserved: %d", i, val[i].floatsingle,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6236, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * fabs_ins_dp(struct fps_test_ereport *report)
- * does double precision absolute value testing.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-fabs_ins_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- uint64_t result;
-
- init_regs_dp(0);
-
- for (i = 0; i < N_VALS; i++) {
- result = absolute_value_dp(neg_val_dp[i]);
-
- if (result != val[i].floatdouble) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d]\nExpected: %lld"
- "\nObserved: %lld", i, val[i].floatdouble,
- result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6361, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * addition_test_sp(struct fps_test_ereport *report)
- * tests single precision addition using floating
- * point registers (f4=f0+f2).
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-addition_test_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 0; i < (N_VALS - 1); i++) {
- result = add_sp(val[i].floatsingle, val[1].floatsingle);
-
- if (result != (val[i + 1].floatsingle)) {
-
- observed = (uint64_t)result;
- expected = (uint64_t)val[i + 1].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0+f2"
- "\nExpected: %d\nObserved: %d",
- i, val[i + 1].floatsingle, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6237, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * addition_test_dp(struct fps_test_ereport *report)
- * tests double precision addition using floating
- * point registers (f4=f0+f2).
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-addition_test_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 0; i < (N_VALS - 1); i++) {
- result = add_dp(val[i].floatdouble, val[1].floatdouble);
-
- if (result != (val[i + 1].floatdouble)) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i + 1].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0+f2"
- "\nExpected: %lld\nObserved: %lld",
- i, val[i + 1].floatdouble, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6238, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * subtraction_test_sp(struct fps_test_ereport *report)
- * tests single precision subtaction using floating
- * point registers (f4=f0-f2).
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-subtraction_test_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 1; i < N_VALS; i++) {
- result = sub_sp(val[i].floatsingle, val[i - 1].floatsingle);
-
- if (result != val[1].floatsingle) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[1].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0-f2"
- "\nExpected: %d\nObserved: %d",
- i, val[1].floatsingle, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6239, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * subtraction_test_dp(struct fps_test_ereport *report)
- * tests double precision subtaction using floating
- * point registers (f4=f0-f2).
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-subtraction_test_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 1; i < N_VALS; i++) {
- result = sub_dp(val[i].floatdouble, val[i - 1].floatdouble);
-
- if (result != val[1].floatdouble) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[1].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0-f2"
- "\nExpected: %lld\nObserved: %lld",
- i, val[1].floatdouble, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6240, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * squareroot_test_sp(struct fps_test_ereport *report)
- * tests single precision squareroot.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-squareroot_test_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t observed;
- uint64_t expected;
- unsigned long result, workvalue;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 1; i < N_VALS; i++) {
- workvalue = val[i].floatsingle;
- result = sqrt_sp(mult_sp(workvalue, workvalue));
- if (result != workvalue) {
- observed = (uint64_t)result;
- expected = (uint64_t)workvalue;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %d\nObserved: %d", workvalue,
- result);
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6241, &observed, &expected, 1, 1);
-
- return (-1);
- }
- }
-
- /* fsqrt(x), where x>0, should be positive */
- result = sqrt_sp(half_sp);
-
- if (result & SIGN_FLAG_SP) {
- observed = (uint64_t)result & SIGN_FLAG_SP;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 8241, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- /* fsqrt(-0)=-0. */
- result = sqrt_sp(MINUS_ZERO_SP);
-
- if (!(result & MINUS_ZERO_SP)) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 8242, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * squareroot_test_dp(struct fps_test_ereport *report)
- * tests double precision squareroot.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-squareroot_test_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t observed;
- uint64_t expected;
- unsigned long half_dp;
- unsigned long result;
- unsigned long workvalue;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
-
- for (i = 1; i < N_VALS; i++) {
- workvalue = val[i].floatdouble;
- result = sqrt_dp(mult_dp(workvalue, workvalue));
-
- if (result != workvalue) {
- observed = (uint64_t)result;
- expected = (uint64_t)workvalue;
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %lld\nObserved: %lld", workvalue,
- result);
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6242, &observed, &expected, 1, 1);
-
- return (-1);
- }
- }
-
- /* fsqrt(x), where x>0, should be positive */
- workvalue = half_msw;
- half_dp = workvalue << 32;
- half_dp = half_dp | half_lsw;
- result = sqrt_dp(half_dp);
-
- if (result & SIGN_FLAG_DP) {
- observed = (uint64_t)result & SIGN_FLAG_DP;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 8243, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- /* fsqrt(-0)=-0 */
- result = sqrt_dp(MINUS_ZERO_DP);
-
- if (!(result & MINUS_ZERO_DP)) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 8244, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * division_test_sp(struct fps_test_ereport *report)
- * tests single precision division through registers.
- * (reg f4=f0/f2). If an error is found, relevant data
- * is stored in report.
- */
-static int
-division_test_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 1; i < N_VALS; i++) {
- result = div_sp(val[i].floatsingle, val[1].floatsingle);
-
- if (result != val[i].floatsingle) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0/f2"
- "\nExpected: %d\nObserved: %d",
- i, val[i].floatsingle, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6243, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * division_test_dp(struct fps_test_ereport *report)
- * tests double precision division through registers.
- * (reg f4=f0/f2). If an error is found, relevant data
- * is stored in report.
- */
-static int
-division_test_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 1; i < N_VALS; i++) {
- result = div_dp(val[i].floatdouble, val[1].floatdouble);
-
- if (result != val[i].floatdouble) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0/f2"
- "\nExpected: %lld\nObserved: %lld",
- i, val[i].floatdouble, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6244, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * multiplication_test_sp(struct fps_test_ereport *report)
- * tests single precision multiplication through registers.
- * (reg f4=f0*f2). If an error is found, relevant data
- * is stored in report.
- */
-static int
-multiplication_test_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 0; i < N_VALS; i++) {
- result = mult_sp(val[i].floatsingle, val[1].floatsingle);
-
- if (result != val[i].floatsingle) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatsingle;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0*f2"
- "\nExpected: %d\nObserved: %d",
- i, val[i].floatsingle, result);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6245, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * multiplication_test_dp(struct fps_test_ereport *report)
- * tests double precision multiplication through registers.
- * (reg f4=f0*f2). If an error is found, relevant data
- * is stored in report.
- */
-static int
-multiplication_test_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t observed;
- uint64_t expected;
- unsigned long result;
- unsigned long prev_fsr;
-
- prev_fsr = get_fsr();
-
- init_regs(0);
- for (i = 0; i < N_VALS; i++) {
- result = mult_dp(val[i].floatdouble, val[1].floatdouble);
-
- if (result != val[i].floatdouble) {
- observed = (uint64_t)result;
- expected = (uint64_t)val[i].floatdouble;
- (void) snprintf(err_data, sizeof (err_data),
- "Val Entry[%d], reg f4=f0*f2"
- "\nExpected: %lld\nObserved: %lld",
- i, val[i].floatdouble, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6246, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * compare_sp(struct fps_test_ereport *report)
- * performs single precision comparison tests.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-compare_sp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long prev_fsr;
- unsigned long result = 0;
-
- prev_fsr = get_fsr();
- set_fsr(prev_fsr & FSR_DISABLE_TEM);
- init_regs(0);
-
- for (i = 0; i < (N_VALS - 1); i++) {
-#ifndef __lint
- result = fcmps_fcc(val[i].floatsingle, val[i].floatsingle, 0);
-#endif
-
- if ((result & 0xc00) != 0) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6247, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
-#ifndef __lint
- result = fcmps_fcc(val[i].floatsingle,
- val[i + 1].floatsingle, 0);
-#endif
- if ((result & 0xc00) != 0x400) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0x400;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6248, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
-#ifndef __lint
- result = fcmps_fcc(val[i + 1].floatsingle,
- val[i].floatsingle, 0);
-#endif
-
- if ((result & 0xc00) != 0x800) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0x800;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6249, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr & FSR_DISABLE_TEM);
-#ifndef __lint
- result = fcmps_fcc(val[i].floatsingle, 0x7f800400, 0);
-#endif
-
- if ((result & 0xc00) != 0xc00) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0xc00;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= NaN", i);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6250, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
- }
-
- /* Compare +/-zero and check if the comparision is okay */
-
- result = fcmps_fcc(MINUS_ZERO_SP, PLUS_ZERO_SP, 0);
-
- if (result & 0xc00) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", +0, -0);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 8251, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * compare_dp(struct fps_test_ereport *report)
- * performs double precision comparison tests.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-compare_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_fsr;
- uint64_t observed;
- uint64_t expected;
-
- prev_fsr = get_fsr();
- set_fsr(prev_fsr & FSR_DISABLE_TEM);
-
- init_regs(0);
-
- for (i = 0; i < (N_VALS - 1); i++) {
- result = fcmpd_fcc(val[i].floatdouble, val[i].floatdouble, 0);
- if ((result & 0xc00) != 0) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6251, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- result = fcmpd_fcc(val[i].floatdouble,
- val[i + 1].floatdouble, 0);
-
- if ((result & 0xc00) != 0x400) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0x400;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6252, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- result = fcmpd_fcc(val[i + 1].floatdouble,
- val[i].floatdouble, 0);
-
- if ((result & 0xc00) != 0x800) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0x800;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6253, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr & FSR_DISABLE_TEM);
- result = fcmpd_fcc(val[i].floatdouble, 0x7ff0008000000000, 0);
-
- if ((result & 0xc00) != 0xc00) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0xc00;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2=NaN", i);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6254, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
- }
- /* Compare +/-zero and check if the comparision is okay */
-
- result = fcmpd_fcc(MINUS_ZERO_DP, PLUS_ZERO_DP, 0);
-
- if (result & 0xc00) {
- observed = (uint64_t)result & 0xc00;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "f0= %d, f2= %d", +0, -0);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 8252, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- set_fsr(prev_fsr);
- return (0);
-}
-
-/*
- * branching(struct fps_test_ereport *report)
- * performs branch testing. If an error is found,
- * relevant data is stored in report.
- */
-static int
-branching(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_status;
- uint64_t observed;
- uint64_t expected;
-
- prev_status = get_fsr();
- init_regs(0);
- result = get_fsr();
- result = result & 0xC0400000; /* set all exception bits to zero */
- set_fsr(result);
-
- for (i = 0; i < 64; i++) {
- if (result = branches(0, val[i].floatsingle, 0x7f800400)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6255, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- if (result = branches(1, val[i + 1].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6256, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(2, val[i].floatsingle, 0x7f800400)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6257, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- if (result = branches(2, val[i + 1].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6258, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(3, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d and f2= %d ", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6259, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(4, val[i].floatsingle, 0x7f800400)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6260, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- if (result = branches(4, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6261, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(5, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6262, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(5, val[i + 1].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6263, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(6, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6264, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(7, val[i].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6265, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(8, val[i].floatsingle, 0x7f800400)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6266, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- if (result = branches(8, val[i].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6267, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- if (result = branches(9, val[i].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6268, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- if (result = branches(9, val[i + 1].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6269, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(10, val[i].floatsingle, 0x7f800400)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6270, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- if (result = branches(10, val[i].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6271, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(10, val[i + 1].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6272, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(11, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6273, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(11, val[i].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6274, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(12, val[i].floatsingle, 0x7f800400)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6275, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- if (result = branches(12, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6276, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(12, val[i].floatsingle,
- val[i].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6277, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(13, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6278, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(14, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6279, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (result = branches(15, val[i].floatsingle,
- val[i + 1].floatsingle)) {
- observed = (uint64_t)result;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d ", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6280, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_status);
- return (0);
-
-}
-
-/*
- * branching(struct fps_test_ereport *report)
- * performs negative branch testing. If an error is found,
- * relevant data is stored in report.
- */
-static int
-no_branching(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t observed;
- uint64_t expected;
- unsigned long result;
- unsigned long prev_status;
-
- prev_status = get_fsr();
- init_regs(0);
- result = get_fsr();
- result = result & 0xC0400000; /* set all exception bits to zero */
- set_fsr(result);
-
- for (i = 0; i < 64; i++) {
- if (!(branches(0, val[i].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6281, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- if (!(branches(1, val[i].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6282, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(2, val[i].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6283, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(3, val[i].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6284, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(4, val[i].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6285, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(5, val[i].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6286, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(6, val[i].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6287, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(7, val[i + 1].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6288, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(8, val[i + 1].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6289, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(9, val[i].floatsingle,
- val[i + 1].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6290, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(10, val[i].floatsingle,
- val[i + 1].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i, i+1);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6291, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(11, val[i + 1].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6292, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(branches(12, val[i + 1].floatsingle,
- val[i].floatsingle))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- (void) snprintf(err_data, sizeof (err_data),
- "reg f0= %d, f2= %d", i+1, i);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6293, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
-
- if (!(result = branches(13, val[i].floatsingle, 0x7f800400))) {
- observed = (uint64_t)0;
- expected = (uint64_t)1;
- setup_fps_test_struct(NO_EREPORT_INFO,
- report, 6294, &observed, &expected, 1, 1);
-
- return (-1);
- }
-
- }
-
- set_fsr(prev_status);
-
- return (0);
-}
-
-/*
- * compare_sp_except(struct fps_test_ereport *report)
- * does single precision exception testing.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-compare_sp_except(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_status;
- uint64_t observed;
- uint64_t expected;
-
- prev_status = get_fsr();
- init_regs(0);
- result = get_fsr();
- result = result | FSR_ENABLE_TEM_NV;
-
- set_fsr(result);
-
- for (i = 0; i < N_VALS; i++) {
-
- trap_flag = trap_flag | TRAP_SOLICITED;
- result = cmp_s_ex(val[i].floatsingle, 0x7fbfffff);
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fcmpxs exception did not occur, fsr=%lo",
- fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6295, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fcmpxs exception did not occur, fsr=%lo",
- fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6296, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_status);
- return (0);
-}
-
-/*
- * compare_dp_except(struct fps_test_ereport *report)
- * does double precision exception testing.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-compare_dp_except(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned long result;
- unsigned long prev_status;
- uint64_t observed;
- uint64_t expected;
-
- prev_status = get_fsr();
- init_regs(0);
- result = get_fsr();
- result = result | FSR_ENABLE_TEM_NV;
- set_fsr(result);
-
- for (i = 0; i < 199; i++) {
-
- trap_flag = trap_flag | TRAP_SOLICITED;
- result = cmp_d_ex(val[i].floatdouble, 0x7ff0008000000000);
- if (trap_flag) {
- observed = (uint64_t)trap_flag;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "fcmpxd exception did not occur, fsr=%lo",
- fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6297, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- if ((fsr_at_trap & FSR_CEXC_NV) != FSR_CEXC_NV) {
- observed = (uint64_t)fsr_at_trap & FSR_CEXC_NV;
- expected = (uint64_t)FSR_CEXC_NV;
- (void) snprintf(err_data, sizeof (err_data),
- "fcmpxd exception did not occur, fsr=%lo",
- fsr_at_trap);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6298, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- set_fsr(prev_status);
- return (0);
-}
-
-/*
- * Patterns used in the registers functions that are.
- * loaded into all registers.
- */
-
-#define ALLZEROES_DP 0x0000000000000000UL
-#define ALLZEROES_SP 0x00000000U
-#define ALLONES_DP 0xFFFFFFFFFFFFFFFFUL
-#define ALLONES_SP 0xFFFFFFFFU
-
-/*
- * registers_four(struct fps_test_ereport *report)
- * loads each nibble with 0xf on all the available FP
- * registers in single precision.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-registers_four(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- unsigned int result = 0;
- uint64_t observed;
- uint64_t expected;
-
-#define ARB_VAL 4
-
- for (i = 0; i < ARB_VAL; i++) {
- init_regs(ALLZEROES_SP);
- init_regs(ALLONES_SP);
- }
-
- init_regs(ALLZEROES_SP);
- for (i = 0; i < 32; i++) {
- read_fpreg(&result, i);
- if (result != ALLZEROES_SP) {
- observed = (uint64_t)result;
- expected = (uint64_t)ALLZEROES_SP;
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %d\nObserved: %d",
- i, ALLZEROES_SP, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6345, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- init_regs(ALLONES_SP);
-
- for (i = 0; i < 32; i++) {
- read_fpreg(&result, i);
- if (result != ALLONES_SP) {
- observed = (uint64_t)result;
- expected = (uint64_t)ALLONES_SP;
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %d\nObserved: %d",
- i, ALLONES_SP, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 8345, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * registers_four_dp(struct fps_test_ereport *report)
- * loads each nibble with 0xf on all the available FP
- * registers in double precision.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-registers_four_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- uint64_t expected;
- uint64_t observed;
- unsigned long result;
-
-#define ARB_VAL 4
-
- for (i = 0; i < ARB_VAL; i++) {
- init_regs_dp(ALLZEROES_DP);
- init_regs_dp(ALLONES_DP);
- }
-
- init_regs_dp(16);
- read_fpreg_dp(&result, 2);
- init_regs_dp(ALLZEROES_DP);
- for (i = 0; i < 64; i = i + 2) {
- result = ALLONES_DP;
- read_fpreg_dp(&result, i);
- if (result != ALLZEROES_DP) {
- observed = (uint64_t)result;
- expected = (uint64_t)ALLZEROES_DP;
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %lld\nObserved: %lld",
- i, ALLZEROES_DP, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6346, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- init_regs_dp(ALLONES_DP);
-
- for (i = 30; i < 64; i = i + 2) {
- read_fpreg_dp(&result, i);
- if (result != ALLONES_DP) {
- observed = (uint64_t)result;
- expected = (uint64_t)ALLONES_DP;
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %lld\nObserved: %lld",
- i, ALLONES_DP, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 8346, &observed, &expected, 1, 1,
- err_data);
-
- return (-1);
- }
- }
-
- return (0);
-}
-
-/*
- * registers_two(struct fps_test_ereport *report)
- * tests single precision rotating ones through the
- * floating point registers. If an error is found,
- * relevant data is stored in report.
- */
-static int
-registers_two(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- int j;
- uint64_t expected;
- uint64_t observed;
- unsigned int result;
- unsigned int value;
-
- for (j = 0; j < 32; j++) {
- for (i = 0; i < 32; i++) {
- value = (1 << i);
- if ((result = register_test(j, value)) != value) {
- observed = (uint64_t)result;
- expected = (uint64_t)value;
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %d\nObserved: %d",
- j, value, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6301, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
- }
-
- return (0);
-}
-
-/*
- * registers_two_dp(struct fps_test_ereport *report)
- * tests double precision rotating ones through the
- * floating point registers. If an error is found,
- * relevant data is stored in report.
- */
-static int
-registers_two_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- int j;
- uint64_t observed;
- uint64_t expected;
- unsigned long result;
- unsigned long value;
-
- for (j = 0; j < 32; j = j + 2) {
- for (i = 0; i < 64; i++) {
- value = (1 << i);
- result = register_test_dp(j, value);
-
- if (result != value) {
- observed = (*(uint64_t *)&result);
- expected = (*(uint64_t *)&value);
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %lld\nObserved: %lld",
- j, value, result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5301, &observed, &expected, 1,
- 1, err_data);
- return (-1);
- }
- }
- }
-
- return (0);
-}
-
-/*
- * registers_one(struct fps_test_ereport *report)
- * passes a single precision pattern through the
- * floating point registers. If an error is found,
- * relevant data is stored in report.
- */
-static int
-registers_one(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- int j;
- unsigned int result;
-
- uint64_t observed;
- uint64_t expected;
-
- for (i = 0; i < 32; i++) {
- for (j = 0; j < PAT_NUM; j++) {
- result = register_test(i, pat[j]);
- if (result != pat[j]) {
- observed = (uint64_t)result;
- expected = (uint64_t)pat[j];
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %d\nObserved: %d",
- i, pat[j], result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 6302, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
- }
-
- return (0);
-}
-
-/*
- * registers_one_dp(struct fps_test_ereport *report)
- * passes a double precision pattern through the
- * floating point registers. If an error is found,
- * relevant data is stored in report.
- */
-static int
-registers_one_dp(struct fps_test_ereport *report)
-{
- char err_data[MAX_INFO_SIZE];
- int i;
- int j;
- unsigned long result;
-
- uint64_t observed;
- uint64_t expected;
-
- for (i = 0; i < 64; i = i + 2) {
- for (j = 0; j < PAT_DP_NUM; j++) {
- result = register_test_dp(i, pat_dp[j]);
- if (result != pat_dp[j]) {
- observed = (uint64_t)result;
- expected = (uint64_t)pat[j];
- (void) snprintf(err_data, sizeof (err_data),
- "Reg: %d\nExpected: %lld"
- "\nObserved: %lld",
- i, pat[j], result);
- setup_fps_test_struct(IS_EREPORT_INFO,
- report, 5302, &observed, &expected, 1,
- 1, err_data);
-
- return (-1);
- }
- }
- }
-
- return (0);
-}
-
-/*
- * sigsegv_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
- * sets up the sigsegv signal handler. If reached during
- * non-negative testing, application exits.
- */
-/* ARGSUSED */
-static void
-sigsegv_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
-{
- ucp->uc_mcontext.fpregs.fpu_qcnt = 0;
-
- fsr_at_trap = ucp->uc_mcontext.fpregs.fpu_fsr;
- if (trap_flag == (trap_flag | TRAP_SOLICITED)) {
- trap_flag = trap_flag & (~TRAP_SOLICITED);
- return;
- }
- trap_flag = trap_flag | TRAP_UNSOLICITED;
-
- _exit(FPU_SIG_SEGV);
-}
-
-/*
- * sigbus_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
- * sets up the sigbus signal handler. If reached during
- * non-negative testing, application exits.
- */
-/* ARGSUSED */
-static void
-sigbus_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
-{
- ucp->uc_mcontext.fpregs.fpu_qcnt = 0;
-
- fsr_at_trap = ucp->uc_mcontext.fpregs.fpu_fsr;
- if (trap_flag == (trap_flag | TRAP_SOLICITED)) {
- trap_flag = trap_flag & (~TRAP_SOLICITED);
- return;
- }
- trap_flag = trap_flag | TRAP_UNSOLICITED;
-
- _exit(FPU_SIG_BUS);
-
-}
-
-/*
- * sigfpe_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
- * sets up the sigfpe signal handler. If reached during
- * non-negative testing, application exits.
- */
-/* ARGSUSED */
-static void
-sigfpe_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
-{
- ucp->uc_mcontext.fpregs.fpu_qcnt = 0;
-
- fsr_at_trap = ucp->uc_mcontext.fpregs.fpu_fsr;
- if (trap_flag == (trap_flag | TRAP_SOLICITED)) {
- trap_flag = trap_flag & (~TRAP_SOLICITED);
- return;
- }
- trap_flag = trap_flag | TRAP_UNSOLICITED;
-
- _exit(FPU_SIG_FPE);
-}
-
-/*
- * sigill_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
- * sets up the sigill signal handler. If reached during
- * non-negative testing, application exits.
- */
-/* ARGSUSED */
-static void
-sigill_handler(int sig, siginfo_t *sip, ucontext_t *ucp)
-{
- ucp->uc_mcontext.fpregs.fpu_qcnt = 0;
-
- fsr_at_trap = ucp->uc_mcontext.fpregs.fpu_fsr;
- if (trap_flag == (trap_flag | TRAP_SOLICITED)) {
- trap_flag = trap_flag & (~TRAP_SOLICITED);
- return;
- }
- trap_flag = trap_flag | TRAP_UNSOLICITED;
-
- _exit(FPU_SIG_ILL);
-}
-
-/*
- * winitfp() sets the signal handlers used
- * for negative testing. If sigaction fails,
- * the program exits.
- */
-int
-winitfp()
-{
- (void) sigemptyset(&newfpe.sa_mask);
- newfpe.sa_flags = SA_SIGINFO;
- newfpe.sa_handler = sigfpe_handler;
- if (sigaction(SIGFPE, &newfpe, &oldfpe)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- (void) sigemptyset(&newill.sa_mask);
- newill.sa_flags = SA_SIGINFO;
- newill.sa_handler = sigill_handler;
- if (sigaction(SIGILL, &newill, &oldill)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- (void) sigemptyset(&newbus.sa_mask);
- newbus.sa_flags = SA_SIGINFO;
- newbus.sa_handler = sigbus_handler;
- if (sigaction(SIGBUS, &newbus, &oldbus)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- (void) sigemptyset(&newsegv.sa_mask);
- newsegv.sa_flags = SA_SIGINFO;
- newsegv.sa_handler = sigsegv_handler;
- if (sigaction(SIGSEGV, &newsegv, &oldsegv)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- return (0);
-}
-#endif
-
-/*
- * restore_signals() turns off the signal
- * handlers used by restoring the original
- * values. If sigaction fails, the program
- * exits.
- */
-int
-restore_signals()
-{
- if (sigaction(SIGSEGV, &oldsegv, &newsegv)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- if (sigaction(SIGBUS, &oldbus, &newbus)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- if (sigaction(SIGILL, &oldill, &newill)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- if (sigaction(SIGFPE, &oldfpe, &newfpe)) {
- _exit(FPU_SYSCALL_FAIL);
- }
-
- return (0);
-
-}
-
-/*
- * fpu_sysdiag(struct fps_test_ereport *report)
- * is the main caller of all fpu subtests. It
- * does the following tests: normal registers, fsr,
- * moving instructions, conversion instructions,
- * absolute values, compare, branching, arithmatic,
- * chain, datapath, and timing.
- * If an error is found, relevant data is stored
- * in report.
- */
-int
-fpu_sysdiag(struct fps_test_ereport *report)
-{
-
- int i;
-
-#ifndef i86pc
-
- /*
- * Initialize neg_val_sp[] and neg_val_dp[] with the -ve versions of
- * the values in val[]
- */
- for (i = 0; i < N_VALS; i++) {
- neg_val_sp[i] = val[i].floatsingle |
- ((uint32_t)1) << 31;
-
- neg_val_dp[i] = val[i].floatdouble |
- ((uint64_t)1) << 63;
- }
-
- /* Register Testing */
- if (registers_four(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7001);
- return (-1);
- }
-
- if (registers_four_dp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7002);
- }
-
- if (registers_two(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7003);
- }
-
- if (registers_two_dp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7004);
- return (-1);
- }
-
- if (registers_one(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7005);
- return (-1);
- }
-
- if (registers_one_dp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7006);
- return (-1);
- }
-
- /* FSR testing */
- if (fsr_test(report)) {
- return (-1);
-
- }
-
- if (trap_flag) {
- fail_trap(report, 7007);
- return (-1);
- }
-
- if (fmovs_ins(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7008);
- return (-1);
- }
-
- /* Conversion routines */
- if (integer_to_float_sp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7009);
- return (-1);
- }
-
- if (integer_to_float_dp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7010);
- return (-1);
- }
-
- if (long_to_float_sp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7011);
- return (-1);
- }
-
- if (long_to_float_dp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7012);
- return (-1);
- }
-
- if (float_to_integer_sp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7013);
- return (-1);
- }
-
- if (float_to_integer_dp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7014);
- return (-1);
- }
-
- if (float_to_long_dp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7015);
- return (-1);
- }
-
- if (float_to_long_sp(report)) {
- return (-1);
- }
-
- if (trap_flag) {
- fail_trap(report, 7016);
- return (-1);
- }
-
- if (single_doub(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7017);
- return (-1);
- }
- if (double_sing(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7018);
- return (-1);
- }
- /* Absolute, -ve instructions */
- if (fabs_ins_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7019);
- return (-1);
- }
- if (fabs_ins_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7020);
- return (-1);
- }
- if (get_negative_value_pn_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7021);
- return (-1);
- }
- if (get_negative_value_pn_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7022);
- return (-1);
- }
- if (get_negative_value_np_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7023);
- return (-1);
- }
- if (get_negative_value_np_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7024);
- return (-1);
- }
- /* Compare and branch instructions */
- if (compare_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7025);
- return (-1);
- }
- if (compare_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7026);
- return (-1);
- }
- if (compare_sp_except(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7027);
- return (-1);
- }
- if (compare_dp_except(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7028);
- return (-1);
- }
- if (branching(report)) {
- return (-1);
-
- }
- if (trap_flag) {
- fail_trap(report, 7029);
- return (-1);
- }
- if (no_branching(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7030);
- return (-1);
- }
- /* Arithmetic instructions */
- if (addition_test_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7031);
- return (-1);
- }
- if (addition_test_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7032);
- return (-1);
- }
- if (subtraction_test_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7033);
- return (-1);
- }
- if (subtraction_test_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7034);
- return (-1);
- }
- if (multiplication_test_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7035);
- return (-1);
- }
- if (multiplication_test_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7036);
- return (-1);
- }
- if (squareroot_test_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7037);
- return (-1);
- }
- if (squareroot_test_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7038);
- return (-1);
- }
- if (division_test_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7039);
- return (-1);
- }
- if (division_test_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7040);
- return (-1);
- }
- /* chain, datapath, timing tests */
- if (chain_sp_test(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7041);
- return (-1);
- }
- if (chain_dp_test(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7042);
- return (-1);
- }
- if (data_path_sp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7043);
- return (-1);
- }
- if (data_path_dp(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7044);
- return (-1);
- }
- if (timing_test(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7045);
- return (-1);
- }
- if (check_conv(report)) {
- return (-1);
- }
- if (trap_flag) {
- fail_trap(report, 7046);
- return (-1);
- }
-#endif /* i86pc */
-
-return (0);
-}
-
-#define LLL 64
-#define REP_RXd "1104199269.000000"
-#define REP_RXc "1104199269,000000"
-#define REP_GCONd "4.5"
-#define REP_GCONc "4,5"
-
-/*
- * check_conv(struct fps_test_ereport *report)
- * does a series of conversion testing.
- * If an error is found, relevant data is stored
- * in report.
- */
-static int
-check_conv(struct fps_test_ereport *report)
-{
- char dec_point;
- char err_data[MAX_INFO_SIZE];
- double gcon;
- char l_buf[LLL];
- char *pREP_RX;
- char *pREP_GCON;
- double rx;
- long double qgcon;
- struct lconv *lconv2;
- uint64_t observed;
- uint64_t expected;
-
- (void) memset(l_buf, 0, LLL);
-
- lconv2 = localeconv();
- if (NULL == lconv2)
- return (0);
- if (NULL == lconv2->decimal_point)
- return (0);
-
- /* expect "." or ",". if not than return */
- if (1 == strlen(lconv2->decimal_point))
- dec_point = lconv2->decimal_point[0];
- else
- return (0);
-
- if (',' == dec_point) {
- pREP_RX = REP_RXc;
- pREP_GCON = REP_GCONc;
- } else if ('.' == dec_point) {
- pREP_RX = REP_RXd;
- pREP_GCON = REP_GCONd;
- } else
- return (0);
-
- rx = 1104199269;
-
- (void) snprintf(l_buf, LLL - 1, "%f", rx);
- if (strncmp(l_buf, pREP_RX, strlen(pREP_RX)) != 0) {
- observed = (uint64_t)1;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "\nObserved: %s\nExpected: %s", l_buf, pREP_RX);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6326, &observed, &expected, 1, 1, err_data);
-
- return (-1);
- }
-
- gcon = 4.5;
- (void) memset(l_buf, 0, LLL);
- (void) gconvert(gcon, 15, 0, l_buf);
- if (strncmp(l_buf, pREP_GCON, strlen(pREP_GCON)) != 0) {
- observed = (uint64_t)1;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "\nObserved: %s\nExpected: %s", l_buf, pREP_GCON);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6327, &observed, &expected, 1, 1, err_data);
-
- return (-2);
- }
-
- qgcon = 4.5;
- (void) memset(l_buf, 0, LLL);
- (void) qgconvert(&qgcon, 15, 0, l_buf);
- if (strncmp(l_buf, pREP_GCON, strlen(pREP_GCON)) != 0) {
- observed = (uint64_t)1;
- expected = (uint64_t)0;
- (void) snprintf(err_data, sizeof (err_data),
- "\nObserved: %s\nExpected: %s", l_buf, pREP_GCON);
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6328, &observed, &expected, 1, 1, err_data);
-
- return (-3);
- }
-
- return (0);
-}
-
-/*
- * fail_trap(struct fps_test_ereport *report, int flag_num)
- * creates the ereport data if a trap flag is set after a
- * successful test when it shouldn't be.
- */
-static void
-fail_trap(struct fps_test_ereport *report, int flag_num)
-{
- uint64_t observed = 1;
- uint64_t expected = 0;
-
- setup_fps_test_struct(NO_EREPORT_INFO, report,
- flag_num, &observed, &expected, 1, 1);
-}
diff --git a/usr/src/cmd/fps/fptest/fsr_test.s b/usr/src/cmd/fps/fptest/fsr_test.s
deleted file mode 100644
index 6267726091..0000000000
--- a/usr/src/cmd/fps/fptest/fsr_test.s
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-/*
- * Assembly routines used in the FSR testing.
- */
-
-
-/*
- * DCTI couple for instruction picking
- * ===================================
- *
- * The routines fcmps_fcc() and fcmpd_fcc() use a DCTI couple
- * for choosing a specific instruction from a set of instructions.
- * DCTI : Delayed Control Transfer Instruction. A DCTI couple
- * contains a control transfer instruction in the delay slot of
- * another control transfer instruction and the entire setup
- * looks something like this :
- *
- * jmp <tgt1>
- * ba <tgt2>
- *
- * . . .
- *
- * table : ! Table of instructions. tgt1 will be pointing
- * ! to one of the instructions in it.
- *
- * . . .
- *
- * tgt2 :
- * . . .
- *
- * This functionality is explained below using the value of PC and
- * nPC. We start with the jmp instruction.
- *
- * step1 : PC='jmp' nPC='ba'
- * step2 : PC='ba' nPC='tgt1' ! jmp changes the nPC
- * step3 : PC='tgt1' nPC='tgt2' ! ba changes the nPC
- * step4 : PC='tgt2' nPC=...
- *
- */
-
-
-# include <sys/asm_linkage.h>
-
-
-
-/*
- * uint64_t res_fsr = fcmps_fcc(unsigned int val1, unsigned int val2,
- * unsigned int fcc);
- *
- * Single-precision FP comparision.
- *
- * Operand 'fcc' indicates which fcc field of FSR to use.
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-fcmps_fcc(unsigned int arg1, unsigned int arg2, unsigned int arg3)
-{
- return (0);
-}
-
-#else
-
-.data
-
-fcmps_opr1 : .word 0
-.type fcmps_opr1,#object
-
-fcmps_opr2 : .word 0
-.type fcmps_opr2,#object
-
-fcmps_result : .word 0,0
-.type fcmps_result,#object
-
-ENTRY_NP(fcmps_fcc)
- save %sp, -SA(MINFRAME), %sp
-
- setn fcmps_opr1, %l0, %l1 ! Get addr of operand 1 holder
- setn fcmps_opr2, %l0, %l2 ! Get addr of operand 2 holder
- setn fcmps_result, %l0, %l3 ! Get addr of result holder
- setn fccn1, %l0, %o0 ! Get addr of label fccn1
-
- st %i0, [%l1] ! Store operand 1 in memory
- st %i1, [%l2] ! Store operand 2 in memory
- ld [%l1], %f2 ! Load operand 1 into FP reg
- ld [%l2], %f4 ! Load operand 2 into FP reg
-
- sll %i2, 2, %o1 ! Calculate the offset
-
-
- ! DCTI couple
- jmp %o0 + %o1 ! Jump to fccn1+offset
- ba %ncc, fini ! After executing the target
- ! instruction of 'jmp', go to the
- ! end of the routine.
-
-
-fccn1 :
-
- fcmps %fcc0, %f2, %f4
-
- fcmps %fcc1, %f2, %f4
-
- fcmps %fcc2, %f2, %f4
-
- fcmps %fcc3, %f2, %f4
-
-
-fini :
- stx %fsr, [%l3]
- ldx [%l3], %i0
-
- ret
- restore
-SET_SIZE(fcmps_fcc)
-
-#endif
-
-/*
- * uint64_t res_fsr = fcmpd_fcc(uint64_t val1, uint64_t val2,
- * unsigned int fcc);
- *
- * Double-precision FP comparision.
- *
- * Operand 'fcc' indicates which fcc field of FSR to use.
- *
- * In SPARC V8, uint64_t parameters are split and stored in
- * consecutive registers. For example, the first uint64_t
- * parameter of the function will be stored in %i0 and %i1.
- * This is not done in SPARC V9 as the registers are 64-bit.
- */
-
-#ifdef __lint
-
-/*ARGSUSED*/
-uint64_t
-fcmpd_fcc(uint64_t arg1, uint64_t arg2, unsigned int arg3)
-{
- return (0);
-}
-
-#else
-
-.data
-.align 8
-
-fcmpd_opr1 : .word 0,0
-.type fcmpd_opr1,#object
-
-fcmpd_opr2 : .word 0,0
-.type fcmpd_opr2,#object
-
-fcmpd_result : .word 0,0
-.type fcmpd_result,#object
-
-ENTRY_NP(fcmpd_fcc)
- save %sp, -SA(MINFRAME), %sp
-
- setn fcmpd_opr1, %l0, %l1 ! Get addr of operand 1 holder
- setn fcmpd_opr2, %l0, %l2 ! Get addr of operand 2 holder
- setn fcmpd_result, %l0, %l3 ! Get addr of result holder
- setn fccn2, %l0, %o0 ! Get addr of label fccn2
-
- stx %i0, [%l1] ! Store operand 1 in memory
- stx %i1, [%l2] ! Store operand 2 in memory
-
- ldd [%l1], %f2 ! Load operand 1 into FP reg
- ldd [%l2], %f4 ! Load operand 2 into FP reg
-
- sll %i2, 2, %o1 ! Calculate the offset
-
- ! DCTI couple
- jmp %o0 + %o1 ! Jump to fccn2+offset
- ba %ncc, egress ! After executing the target
- ! instruction of 'jmp', go to the
- ! end of the routine.
-
-
-fccn2 :
-
- fcmpd %fcc0, %f2, %f4
-
- fcmpd %fcc1, %f2, %f4
-
- fcmpd %fcc2, %f2, %f4
-
- fcmpd %fcc3, %f2, %f4
-
-
-egress :
-
- stx %fsr, [%l3]
- ldx [%l3], %i0
-
-
- ret
- restore
-SET_SIZE(fcmpd_fcc)
-
-#endif
diff --git a/usr/src/cmd/fps/fptest/linpack.c b/usr/src/cmd/fps/fptest/linpack.c
deleted file mode 100644
index 593ab4005f..0000000000
--- a/usr/src/cmd/fps/fptest/linpack.c
+++ /dev/null
@@ -1,521 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include <unistd.h>
-#include <externs.h>
-#include <fp.h>
-#include <fps_ereport.h>
-#include <fpstestmsg.h>
-#include <linpack.h>
-#include <sunperf.h>
-
-double fabs(double x);
-
-extern void ___pl_dss_set_chip_cache_(int *cache_size);
-static double dran(int iseed[4]);
-static int LINSUB(REAL * residn, REAL * resid,
- REAL * eps, REAL * x11, REAL * xn1, int fps_verbose_msg);
-static int MATGEN(REAL a[], int lda, int n, REAL b[], REAL * norma);
-static REAL EPSLON(REAL x);
-static void MXPY(int n1, REAL y[], int n2, int ldm, REAL x[], REAL m[]);
-
-extern int errno;
-static int MAT_SIZE;
-#ifndef __lint
-static int LAPACK_ECACHE_SIZE = 8 * 1024 * 1024;
-#endif
-
-/*
- * LINPACK(int Stress, int unit, struct fps_test_ereport *report,
- * int fps_verbose_msg)
- * performs the single and double precision lapack test. If an
- * error is found, relevant data is collected and stored in report.
- */
-int
-LINPACK(int Stress, int unit, struct fps_test_ereport *report,
- int fps_verbose_msg)
-{
- char err_data[MAX_INFO_SIZE];
- char l_buf[64];
- int c_index;
- int ret;
- REAL eps;
- REAL resid;
- REAL residn;
- REAL x11;
- REAL xn1;
- REAL EPS;
- REAL RESID;
- REAL RESIDN;
- REAL X11;
- REAL XN1;
- uint64_t expected[5];
- uint64_t observed[5];
-
-#ifdef FPS_LAPA_UNK
-#ifndef DP
- if (Stress > 1000)
- return (0);
-#endif /* DP */
-#endif /* FPS_LAPA_UNK */
-
- if (Stress > 10000)
- return (0);
-
- /*
- * make sure is no dependency on the E$ size Without this call the
- * computed results will depend on the size of the E$ (
- * sos10/libsunperf ) IIIi computed results != IV+/IV/III+/III ...
- */
-#ifndef __lint
- ___pl_dss_set_chip_cache_(&LAPACK_ECACHE_SIZE);
-#endif
-
- c_index = Stress;
-
- if (2000 == c_index)
- c_index = 1001;
- if (3000 == c_index)
- c_index = 1002;
- if (4016 == c_index)
- c_index = 1003;
- if (5000 == c_index)
- c_index = 1004;
- if (6000 == c_index)
- c_index = 1005;
- if (7016 == c_index)
- c_index = 1006;
- if (8034 == c_index)
- c_index = 1007;
- if (9000 == c_index)
- c_index = 1008;
- if (10000 == c_index)
- c_index = 1009;
-
- (void) snprintf(l_buf, 63, "%s(%d,cpu=%d)", PREC, Stress, unit);
- fps_msg(fps_verbose_msg, gettext(FPSM_02), l_buf, unit);
-
- MAT_SIZE = Stress;
- ret = LINSUB(&residn, &resid, &eps, &x11, &xn1, fps_verbose_msg);
-
- if (2 == ret) {
- if (errno == EAGAIN || errno == ENOMEM)
- _exit(FPU_SYSCALL_TRYAGAIN);
- else
- _exit(FPU_SYSCALL_FAIL);
- }
-
-#ifdef FPS_LAPA_UNK
- RESIDN = RESID = X11 = XN1 = 0.0000000000000000e+00;
-
-#ifdef DP
- EPS = 2.2204460492503131e-16;
-#else /* DP */
- EPS = 1.1920928955078125e-07;
-#endif /* DP */
-
-#else /* FPS_LAPA_UNK */
-
- RESIDN = LinpValsA[c_index].residn;
- RESID = LinpValsA[c_index].resid;
- EPS = LinpValsA[c_index].eps;
- X11 = LinpValsA[c_index].x11;
- XN1 = LinpValsA[c_index].xn1;
-
-#endif /* FPS_LAPA_UNK */
-
- if ((residn == RESIDN) && (resid == RESID) && (eps == EPS) &&
- (x11 == X11) && (xn1 == XN1)) {
-
- return (0);
- } else {
- (void) snprintf(err_data, sizeof (err_data),
- "\nExpected: %.16e, %.16e, %.16e, %.16e, %.16e"
- "\nObserved: %.16e, %.16e, %.16e, %.16e, %.16e",
- RESIDN, RESID, EPS, X11, XN1, residn, resid, eps, x11, xn1);
-
-
-#ifdef DP
- observed[0] = *(uint64_t *)&residn;
- observed[1] = *(uint64_t *)&resid;
- observed[2] = *(uint64_t *)&eps;
- observed[3] = *(uint64_t *)&x11;
- observed[4] = *(uint64_t *)&xn1;
- expected[0] = *(uint64_t *)&RESIDN;
- expected[1] = *(uint64_t *)&RESID;
- expected[2] = *(uint64_t *)&EPS;
- expected[3] = *(uint64_t *)&X11;
- expected[4] = *(uint64_t *)&XN1;
-
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6317, &observed, &expected, 5, 5, err_data);
-#else
- observed[0] = (uint64_t)(*(uint32_t *)&residn);
- observed[1] = (uint64_t)(*(uint32_t *)&resid);
- observed[2] = (uint64_t)(*(uint32_t *)&eps);
- observed[3] = (uint64_t)(*(uint32_t *)&x11);
- observed[4] = (uint64_t)(*(uint32_t *)&xn1);
- expected[0] = (uint64_t)(*(uint32_t *)&RESIDN);
- expected[1] = (uint64_t)(*(uint32_t *)&RESID);
- expected[2] = (uint64_t)(*(uint32_t *)&EPS);
- expected[3] = (uint64_t)(*(uint32_t *)&X11);
- expected[4] = (uint64_t)(*(uint32_t *)&XN1);
-
- setup_fps_test_struct(IS_EREPORT_INFO, report,
- 6316, &observed, &expected, 5, 5, err_data);
-#endif
-
- return (-1);
- }
-}
-
-/*
- * LINSUB(REAL *residn, REAL *resid, REAL *eps,
- * REAL *x11, REAL *xn1, int fps_verbose_msg)begins
- * the lapack calculation calls.
- */
-static int
-LINSUB(REAL *residn, REAL *resid,
- REAL *eps, REAL *x11, REAL *xn1,
- int fps_verbose_msg)
-{
- int i;
- int lda;
- int n;
- int nr_malloc;
- REAL *a;
- REAL abs;
- REAL *b;
- REAL norma;
- REAL normx;
- REAL *x;
- struct timeval timeout;
- long *ipvt;
-#ifndef __lint
- long info;
-#endif
-
- timeout.tv_sec = 0;
- timeout.tv_usec = 10000; /* microseconds, 10ms */
- nr_malloc = 0;
-
-mallocAgain:
-
- a = (REAL *) malloc((MAT_SIZE + 8) * (MAT_SIZE + 1) *
- (size_t)sizeof (REAL));
- b = (REAL *) malloc(MAT_SIZE * (size_t)sizeof (REAL));
- x = (REAL *) malloc(MAT_SIZE * (size_t)sizeof (REAL));
-
- ipvt = (long *)malloc(MAT_SIZE * (size_t)sizeof (long));
-
- if ((NULL == a) || (NULL == b) ||
- (NULL == x) || (NULL == ipvt)) {
- if (NULL != a)
- free(a);
- if (NULL != b)
- free(b);
- if (NULL != x)
- free(x);
- if (NULL != ipvt)
- free(ipvt);
-
- /* sleep 10 ms. wait for 100 ms */
- if (nr_malloc++ < 11) {
- (void) select(1, NULL, NULL, NULL, &timeout);
- goto mallocAgain;
- }
- fps_msg(fps_verbose_msg,
- "Malloc failed in lapack, matrix size %d",
- MAT_SIZE);
-
- return (2);
- }
- lda = MAT_SIZE + 8;
- n = MAT_SIZE;
-
- (void) MATGEN(a, lda, n, b, &norma);
-#ifndef __lint
- GEFA(n, n, a, lda, ipvt, &info);
- GESL('N', n, 1, a, lda, ipvt, b, n, &info);
-#endif
- free(ipvt);
-
- for (i = 0; i < n; i++) {
- x[i] = b[i];
- }
-
- (void) MATGEN((REAL *) a, lda, n, b, &norma);
-
- for (i = 0; i < n; i++) {
- b[i] = -b[i];
- }
-
- MXPY(n, b, n, lda, x, (REAL *) a);
- free(a);
-
- *resid = 0.0;
- normx = 0.0;
-
- for (i = 0; i < n; i++) {
- abs = (REAL)fabs((double)b[i]);
- *resid = (*resid > abs) ? *resid : abs;
- abs = (REAL)fabs((double)x[i]);
- normx = (normx > abs) ? normx : abs;
- }
-
- free(b);
-
- *eps = EPSLON((REAL) LP_ONE);
-
- *residn = *resid / (n * norma * normx * (*eps));
-
- *x11 = x[0] - 1;
- *xn1 = x[n - 1] - 1;
-
- free(x);
-
- return (0);
-}
-
-/*
- * dran(int iseed[4]) returns a random real number from a
- * uniform (0,1) distribution.
- */
-static double
-dran(int iseed[4])
-{
- double r;
- double value;
- int ipw2;
- int it1;
- int it2;
- int it3;
- int it4;
- int m1;
- int m2;
- int m3;
- int m4;
-
- /* Set constants */
- m1 = 494;
- m2 = 322;
- m3 = 2508;
- m4 = 2549;
- ipw2 = 4096;
- r = 1.0 / ipw2;
-
- /* multiply the seed by the multiplier modulo 2**48 */
- it4 = iseed[3] * m4;
- it3 = it4 / ipw2;
- it4 = it4 - ipw2 * it3;
- it3 = it3 + iseed[2] * m4 + iseed[3] * m3;
- it2 = it3 / ipw2;
- it3 = it3 - ipw2 * it2;
- it2 = it2 + iseed[1] * m4 + iseed[2] * m3 + iseed[3] * m2;
- it1 = it2 / ipw2;
- it2 = it2 - ipw2 * it1;
- it1 = it1 + iseed[0] * m4 + iseed[1] * m3 + iseed[2] * m2 +
- iseed[3] * m1;
- it1 = it1 % ipw2;
-
- /* return updated seed */
- iseed[0] = it1;
- iseed[1] = it2;
- iseed[2] = it3;
- iseed[3] = it4;
-
- /* convert 48-bit integer to a real number in the interval (0,1) */
- value = r * ((double)it1 + r * ((double)it2 + r * ((double)it3 +
- r * ((double)it4))));
-
- return (value);
-}
-
-/*
- * MATGEN(REAL a[], int lda, int n, REAL b[], REAL *norma)
- * generates matrix a and b.
- */
-
-#define ALPHA 1.68750
-static int
-MATGEN(REAL a[], int lda, int n, REAL b[], REAL *norma)
-{
- int i;
- int init[4];
- int j;
- REAL value;
-
- init[0] = 1;
- init[1] = 2;
- init[2] = 3;
- init[3] = 1325;
- *norma = LP_ZERO;
- for (j = 0; j < n; j++) {
- for (i = 0; i < n; i++) {
-#ifdef FPS_LAPA_UNK
- a[lda*j+i] =
- (i < j) ? (double)(i+1) : (double)(j+ALPHA);
- if (fabs(a[lda*j+i]) > *norma)
- *norma = fabs(a[lda*j+i]);
- } /* i */
-#else
- value = (REAL) dran(init) - 0.5;
- a[lda * j + i] = value;
- value = fabs(value);
- if (value > *norma) {
- *norma = value;
- }
- } /* i */
-#endif /* FPS_LAPA_UNK */
- } /* j */
-
-
- for (i = 0; i < n; i++) {
- b[i] = LP_ZERO;
- }
- for (j = 0; j < n; j++) {
- for (i = 0; i < n; i++) {
- b[i] = b[i] + a[lda * j + i];
- }
- }
-
- return (0);
-}
-
-/*
- * EPSLON(REAL x) estimates unit roundoff in
- * quantities of size x.
- */
-static REAL
-EPSLON(REAL x)
-{
- REAL a;
- REAL abs;
- REAL b;
- REAL c;
- REAL eps;
-
- a = 4.0e0 / 3.0e0;
- eps = LP_ZERO;
-
- while (eps == LP_ZERO) {
- b = a - LP_ONE;
- c = b + b + b;
- eps = (REAL)fabs((double)(c - LP_ONE));
- }
-
- abs = (REAL)fabs((double)x);
-
- return (eps * abs);
-}
-
-/*
- * MXPY(int n1, REAL y[], int n2, int ldm, REAL x[], REAL m[])
- * multiplies matrix m times vector x and add the result to
- * vector y.
- */
-static void
-MXPY(int n1, REAL y[], int n2, int ldm, REAL x[], REAL m[])
-{
- int i;
- int j;
- int jmin;
-
- /* cleanup odd vector */
- j = n2 % 2;
- if (j >= 1) {
- j = j - 1;
- for (i = 0; i < n1; i++)
- y[i] = (y[i]) + x[j] * m[ldm * j + i];
- }
-
- /* cleanup odd group of two vectors */
- j = n2 % 4;
- if (j >= 2) {
- j = j - 1;
- for (i = 0; i < n1; i++)
- y[i] = ((y[i])
- + x[j - 1] * m[ldm * (j - 1) + i])
- + x[j] * m[ldm * j + i];
- }
-
- /* cleanup odd group of four vectors */
- j = n2 % 8;
- if (j >= 4) {
- j = j - 1;
- for (i = 0; i < n1; i++)
- y[i] = ((((y[i])
- + x[j - 3] * m[ldm * (j - 3) + i])
- + x[j - 2] * m[ldm * (j - 2) + i])
- + x[j - 1] * m[ldm * (j - 1) + i])
- + x[j] * m[ldm * j + i];
- }
-
- /* cleanup odd group of eight vectors */
- j = n2 % 16;
- if (j >= 8) {
- j = j - 1;
- for (i = 0; i < n1; i++)
- y[i] = ((((((((y[i])
- + x[j - 7] * m[ldm * (j - 7) + i])
- + x[j - 6] * m[ldm * (j - 6) + i])
- + x[j - 5] * m[ldm * (j - 5) + i])
- + x[j - 4] * m[ldm * (j - 4) + i])
- + x[j - 3] * m[ldm * (j - 3) + i])
- + x[j - 2] * m[ldm * (j - 2) + i])
- + x[j - 1] * m[ldm * (j - 1) + i])
- + x[j] * m[ldm * j + i];
- }
-
- /* main loop - groups of sixteen vectors */
- jmin = (n2 % 16) + 16;
- for (j = jmin - 1; j < n2; j = j + 16) {
- for (i = 0; i < n1; i++)
- y[i] = ((((((((((((((((y[i])
- + x[j - 15] * m[ldm * (j - 15) + i])
- + x[j - 14] * m[ldm * (j - 14) + i])
- + x[j - 13] * m[ldm * (j - 13) + i])
- + x[j - 12] * m[ldm * (j - 12) + i])
- + x[j - 11] * m[ldm * (j - 11) + i])
- + x[j - 10] * m[ldm * (j - 10) + i])
- + x[j - 9] * m[ldm * (j - 9) + i])
- + x[j - 8] * m[ldm * (j - 8) + i])
- + x[j - 7] * m[ldm * (j - 7) + i])
- + x[j - 6] * m[ldm * (j - 6) + i])
- + x[j - 5] * m[ldm * (j - 5) + i])
- + x[j - 4] * m[ldm * (j - 4) + i])
- + x[j - 3] * m[ldm * (j - 3) + i])
- + x[j - 2] * m[ldm * (j - 2) + i])
- + x[j - 1] * m[ldm * (j - 1) + i])
- + x[j] * m[ldm * j + i];
- }
-}
diff --git a/usr/src/cmd/fps/fptest/linpack.h b/usr/src/cmd/fps/fptest/linpack.h
deleted file mode 100644
index 32ec023bcf..0000000000
--- a/usr/src/cmd/fps/fptest/linpack.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _LINPACK_H
-#define _LINPACK_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef DP
-#define PREC "double"
-#define LINPACK dlinpack_test
-#define LINSUB dlinsub
-#define MATGEN dmatgen
-#define GEFA dgetrf_64
-#define GESL dgetrs_64
-#define AXPY daxpy
-#define SCAL dscal
-#define EPSLON depslon
-#define MXPY dmxpy
-#define REAL double
-#define LP_ZERO 0.0e0
-#define LP_ONE 1.0e0
-#define MAT_SIZE d_mat_size
-#define LinpValsA d_linpvalsa
-#define LAPACK_ECACHE_SIZE d_lapack_ecache_size
-
-#else
-
-#define PREC "single"
-#define LINPACK slinpack_test
-#define LINSUB slinsub
-#define MATGEN smatgen
-#define GEFA sgetrf_64
-#define GESL sgetrs_64
-#define AXPY saxpy
-#define SCAL sscal
-#define EPSLON sepslon
-#define MXPY smxpy
-#define REAL float
-#define LP_ZERO 0.0
-#define LP_ONE 1.0
-#define MAT_SIZE s_mat_size
-#define LinpValsA s_linpvalsa
-#define LAPACK_ECACHE_SIZE s_lapack_ecache_size
-
-#endif
-
-struct LinpVals {
- REAL residn;
- REAL resid;
- REAL eps;
- REAL x11;
- REAL xn1;
-};
-
-#undef FPS_LAPA_LIB8
-#undef FPS_LAPA_LIB10
-#undef FPS_LAPA_LIB11
-#undef FPS_LAPA_LIB12
-#undef FPS_LAPA_LIB13
-#undef FPS_LAPA_UNK
-
-/* SS12 U1 */
-#if (LAPA_COMP_PERF_6 == 1)
-#define FPS_LAPA_LIB13
-
-#elif (LAPA_COMP_PERF_5 == 1)
-#define FPS_LAPA_LIB13
-
-/* QA SS12 */
-#elif (LAPA_COMP_PERF_4 == 1)
-#define FPS_LAPA_LIB13
-
-/* SS12 */
-#elif (LAPA_COMP_PERF_3 == 1)
-#define FPS_LAPA_LIB12
-
-/* SS11 */
-#elif (LAPA_COMP_PERF_2 == 1)
-#define FPS_LAPA_LIB11
-
-/* SOS8 */
-#elif (LAPA_COMP_PERF_0 == 1)
-#define FPS_LAPA_LIB8
-
-#else
-
-#define FPS_LAPA_UNK
-#endif
-
-#ifdef __sparc
-
-/* V9B V9 or V8 arch */
-#ifdef V9B
-#ifdef FPS_LAPA_LIB8
-#include <singdoub64v9b_sos8.h>
-#endif
-
-#ifdef FPS_LAPA_LIB10
-#include <singdoub64v9b_sos10.h>
-#endif
-
-#ifdef FPS_LAPA_LIB11
-#include <singdoub64v9b_sos11.h>
-#endif
-
-#ifdef FPS_LAPA_LIB12
-#include <singdoub64v9b_ss12.h>
-#endif
-
-#ifdef FPS_LAPA_LIB13
-#include <singdoub64v9b_ss12u1.h>
-#endif
-
-#else
-
-#ifdef FPS_LAPA_LIB8
-#include <singdoub64_sos8.h>
-#endif
-
-#ifdef FPS_LAPA_LIB10
-#include <singdoub64_sos10.h>
-#endif
-
-/* This is NOT a typo. singdoub64_sos10.h works with SOS11 */
-#ifdef FPS_LAPA_LIB11
-#include <singdoub64_sos10.h>
-#endif
-
-#ifdef FPS_LAPA_LIB12
-#include <singdoub64_ss12.h>
-#endif
-
-#ifdef FPS_LAPA_LIB13
-#include <singdoub64_ss12u1.h>
-#endif
-
-#endif /* V9B */
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LINPACK_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64_sos10.h b/usr/src/cmd/fps/fptest/singdoub64_sos10.h
deleted file mode 100644
index efe3f79b03..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64_sos10.h
+++ /dev/null
@@ -1,6139 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SINGDOUB64_SOS10_H
-#define _SINGDOUB64_SOS10_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64 bits V9 LAPAK */
-
-#ifdef DP
-static struct LinpVals LinpValsA[] = {
-
-/* DOUBLE */
-/* Lapack v9a Double for SOS10 libs */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{8.4318439831303504e-01, 3.0808688933348094e-15,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 1.1102230246251565e-15}, /* L33 */
-{9.7321442476194397e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 2.2204460492503131e-16}, /* L34 */
-{1.4583044708110673e+00, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -4.4408920985006262e-16}, /* L35 */
-{8.0446023793208044e-01, 3.2127078775090467e-15,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- 1.9984014443252818e-14}, /* L36 */
-{5.3420930866356575e-01, 2.1926904736346842e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -5.5511151231257827e-16}, /* L37 */
-{4.6747763286447808e-01, 1.9706458687096529e-15,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.5543122344752192e-15}, /* L38 */
-{9.8796645269880079e-01, 4.2743586448068527e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 1.3322676295501878e-15}, /* L39 */
-{6.1611576753753372e-01, 2.7339241981394480e-15,
- 2.2204460492503131e-16, -9.5390362275793450e-13,
- 2.3319124409226788e-12}, /* L40 */
-{6.2244703022421788e-01, 2.8310687127941492e-15,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 2.1982415887578100e-14}, /* L41 */
-{8.7271897456624437e-01, 4.0661918276896358e-15,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -9.8809849191638932e-15}, /* L42 */
-{6.8659341819991870e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- -2.9976021664879227e-15}, /* L43 */
-{7.2500932497707793e-01, 3.5388358909926865e-15,
- 2.2204460492503131e-16, -1.1657341758564144e-14,
- 4.2188474935755949e-15}, /* L44 */
-{8.8403751416813714e-01, 4.4131365228849972e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -1.2101430968414206e-14}, /* L45 */
-{6.3093735629719305e-01, 3.2196467714129540e-15,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- -3.3306690738754696e-15}, /* L46 */
-{9.2094634655374696e-01, 4.8017145815038020e-15,
- 2.2204460492503131e-16, -1.9872992140790302e-14,
- 1.3322676295501878e-15}, /* L47 */
-{7.9229777213175645e-01, 4.2188474935755949e-15,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- 1.2212453270876722e-14}, /* L48 */
-{6.0205010610116116e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 1.3322676295501878e-15}, /* L49 */
-{1.3500208311387045e+00, 7.4940054162198066e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- -1.9984014443252818e-15}, /* L50 */
-{1.1666846688849217e+00, 6.6058269965196814e-15,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- 9.3702823278363212e-14}, /* L51 */
-{1.0480930953997019e+00, 6.0507154842071031e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- 9.9920072216264089e-15}, /* L52 */
-{8.8208908253996454e-01, 5.1902926401226068e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -2.4424906541753444e-15}, /* L53 */
-{8.2408678992692186e-01, 4.9404924595819466e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.8833827526759706e-15}, /* L54 */
-{8.6364968995405822e-01, 5.2735593669694936e-15,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- -6.6613381477509392e-16}, /* L55 */
-{7.5001157285481435e-01, 4.6629367034256575e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- 8.8817841970012523e-16}, /* L56 */
-{1.2017729296036601e+00, 7.6050277186823223e-15,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 5.5511151231257827e-15}, /* L57 */
-{1.0194122814946389e+00, 6.5641936330962380e-15,
- 2.2204460492503131e-16, 2.6534330288541241e-13,
- 1.6364687382974807e-13}, /* L58 */
-{9.9577807695415899e-01, 6.5225602696727947e-15,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- 3.7747582837255322e-15}, /* L59 */
-{8.5001311590214701e-01, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.5543122344752192e-15}, /* L60 */
-{9.2624380035615839e-01, 6.2727600891321345e-15,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -9.2481577951275540e-14}, /* L61 */
-{1.5242170674146556e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 3.9968028886505635e-15}, /* L62 */
-{8.9981547166579190e-01, 6.2935767708438561e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 4.4408920985006262e-16}, /* L63 */
-{7.6563681395596928e-01, 5.4400928206632670e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 1.6875389974302379e-14}, /* L64 */
-{9.1155252700817435e-01, 6.5780714209040525e-15,
- 2.2204460492503131e-16, -5.8841820305133297e-15,
- -1.3322676295501878e-15}, /* L65 */
-{8.6364968995405356e-01, 6.3282712403633923e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -1.3322676295501878e-15}, /* L66 */
-{1.0447922407927950e+00, 7.7715611723760958e-15,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- 4.8849813083506888e-15}, /* L67 */
-{7.8677684603399289e-01, 5.9396931817445875e-15,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- -2.9976021664879227e-15}, /* L68 */
-{1.2246565778977070e+00, 9.3813845580825728e-15,
- 2.2204460492503131e-16, 1.5032419753424620e-13,
- 3.1863400806741993e-13}, /* L69 */
-{1.6214535908385190e+00, 1.2601031329495527e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.2212453270876722e-15}, /* L70 */
-{9.7184598172736347e-01, 7.6605388699135801e-15,
- 2.2204460492503131e-16, -1.9206858326015208e-14,
- -1.0325074129013956e-14}, /* L71 */
-{8.4723529526194563e-01, 6.7723604502134549e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 4.2188474935755949e-15}, /* L72 */
-{1.3493358890629930e+00, 1.0935696792557792e-14,
- 2.2204460492503131e-16, -1.8318679906315083e-14,
- 5.1070259132757201e-15}, /* L73 */
-{1.1790722474159370e+00, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -7.1054273576010019e-15}, /* L74 */
-{1.0000154304731115e+00, 8.3266726846886741e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -5.3290705182007514e-15}, /* L75 */
-{9.9672590603067746e-01, 8.4099394115355608e-15,
- 2.2204460492503131e-16, -5.6510351953420468e-14,
- -4.3631764867768652e-14}, /* L76 */
-{1.8831459405013156e+00, 1.6098233857064770e-14,
- 2.2204460492503131e-16, -1.2212453270876722e-15,
- -1.9984014443252818e-15}, /* L77 */
-{1.1538639582381141e+00, 9.9920072216264089e-15,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 4.2410519540680980e-14}, /* L78 */
-{9.2090028565720605e-01, 8.0768725041480138e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.4392935428259079e-15}, /* L79 */
-{1.0812666841987244e+00, 9.6034291630076041e-15,
- 2.2204460492503131e-16, 1.5609735726229701e-13,
- 4.5519144009631418e-14}, /* L80 */
-{9.4445901766904117e-01, 8.4932061383824475e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.1768364061026659e-14}, /* L81 */
-{1.1158708766864638e+00, 1.0158540675320182e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -1.7763568394002505e-15}, /* L82 */
-{1.3976119269262395e+00, 1.2878587085651816e-14,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -9.8809849191638932e-15}, /* L83 */
-{1.1964470328874373e+00, 1.1157741397482823e-14,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -7.4384942649885488e-15}, /* L84 */
-{1.5279647533258061e+00, 1.4419021532319221e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 1.3322676295501878e-15}, /* L85 */
-{1.0581558624773642e+00, 1.0103029524088925e-14,
- 2.2204460492503131e-16, -2.5535129566378600e-15,
- 2.2204460492503131e-15}, /* L86 */
-{1.3391011224150913e+00, 1.2934098236883074e-14,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- -1.2878587085651816e-14}, /* L87 */
-{1.1306992651372059e+00, 1.1046719095020308e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -1.8873791418627661e-15}, /* L88 */
-{1.2584463844155744e+00, 1.2434497875801753e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 8.8817841970012523e-16}, /* L89 */
-{1.4757172151078655e+00, 1.4745149545802860e-14,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 2.1094237467877974e-14}, /* L90 */
-{9.5880600339315103e-01, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 1.2434497875801753e-14,
- 2.6645352591003757e-14}, /* L91 */
-{1.0407769289978044e+00, 1.0630385460785874e-14,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- -2.7755575615628914e-15}, /* L92 */
-{1.3226010532063741e+00, 1.3655743202889425e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- 1.9984014443252818e-15}, /* L93 */
-{9.5480196686123875e-01, 9.9642516460107800e-15,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.5543122344752192e-15}, /* L94 */
-{1.3822581706736938e+00, 1.4578616092109087e-14,
- 2.2204460492503131e-16, 8.4376949871511897e-15,
- -5.1070259132757201e-15}, /* L95 */
-{1.9166962417400433e+00, 2.0428103653102880e-14,
- 2.2204460492503131e-16, -3.7747582837255322e-15,
- -3.1086244689504383e-15}, /* L96 */
-{1.2371324913069346e+00, 1.3322676295501878e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 6.6613381477509392e-15}, /* L97 */
-{8.9797303960849595e-01, 9.7699626167013776e-15,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -1.1102230246251565e-15}, /* L98 */
-{1.4040620690480938e+00, 1.5432100042289676e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 1.3322676295501878e-15}, /* L99 */
-{1.2800197510055726e+00, 1.4210854715202004e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 5.7731597280508140e-15}, /* L100 */
-{1.5198254314615605e+00, 1.7041923427996153e-14,
- 2.2204460492503131e-16, -1.7097434579227411e-14,
- 2.8865798640254070e-15}, /* L101 */
-{1.0593760277936337e+00, 1.1996480198117609e-14,
- 2.2204460492503131e-16, -6.1062266354383610e-15,
- -1.5543122344752192e-15}, /* L102 */
-{9.8059765512410590e-01, 1.1213252548714081e-14,
- 2.2204460492503131e-16, -1.2989609388114332e-14,
- 3.3306690738754696e-15}, /* L103 */
-{1.1184066803548092e+00, 1.2913281555171352e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-15,
- 1.1546319456101628e-14}, /* L104 */
-{1.4190695156236912e+00, 1.6542323066914832e-14,
- 2.2204460492503131e-16, -3.1641356201816961e-14,
- -6.1062266354383610e-15}, /* L105 */
-{9.9529837655541686e-01, 1.1712852909795402e-14,
- 2.2204460492503131e-16, 4.6851411639181606e-14,
- -1.0380585280245214e-13}, /* L106 */
-{1.7804013037862301e+00, 2.1149748619109232e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 7.3274719625260332e-15}, /* L107 */
-{1.2916865976944309e+00, 1.5487611193520934e-14,
- 2.2204460492503131e-16, 7.7715611723760958e-15,
- 1.4654943925052066e-14}, /* L108 */
-{1.0527685380438851e+00, 1.2739809207573671e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -5.3290705182007514e-15}, /* L109 */
-{1.0727438254166126e+00, 1.3100631690576847e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -2.2204460492503131e-15}, /* L110 */
-{1.6441695140661536e+00, 2.0261570199409107e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -5.6621374255882984e-15}, /* L111 */
-{1.4509152451060254e+00, 1.8041124150158794e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -2.2426505097428162e-14}, /* L112 */
-{1.1725844649352746e+00, 1.4710455076283324e-14,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 8.6597395920762210e-15}, /* L113 */
-{1.0033049549154456e+00, 1.2698175844150228e-14,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 3.9968028886505635e-15}, /* L114 */
-{1.5000231457096496e+00, 1.9151347174783950e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -1.4432899320127035e-15}, /* L115 */
-{8.9279394843423010e-01, 1.1497747198774277e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- -1.1990408665951691e-14}, /* L116 */
-{1.5042967159233618e+00, 1.9539925233402755e-14,
- 2.2204460492503131e-16, -2.7056135110115065e-13,
- -2.5757174171303632e-13}, /* L117 */
-{1.3474784190248486e+00, 1.7652546091539989e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -1.9443335830260366e-12}, /* L118 */
-{9.4119099338644763e-01, 1.2434497875801753e-14,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- -2.1094237467877974e-15}, /* L119 */
-{1.7194275728381851e+00, 2.2907023500273738e-14,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- -7.5495165674510645e-15}, /* L120 */
-{1.1518772778689883e+00, 1.5473733405713119e-14,
- 2.2204460492503131e-16, 5.4178883601707639e-14,
- -3.8413716652030416e-14}, /* L121 */
-{1.3360861898943925e+00, 1.8096635301390052e-14,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- -3.4416913763379853e-15}, /* L122 */
-{1.1829450823886922e+00, 1.6153745008296028e-14,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- -1.9317880628477724e-14}, /* L123 */
-{1.5010312257805758e+00, 2.0664026045835726e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 5.4845017416482733e-14}, /* L124 */
-{1.1720180845143169e+00, 1.6264767310758543e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-14,
- 3.3750779948604759e-14}, /* L125 */
-{1.6666923841217633e+00, 2.3314683517128287e-14,
- 2.2204460492503131e-16, 4.3520742565306136e-14,
- -6.3282712403633923e-15}, /* L126 */
-{1.4389985820389368e+00, 2.0289325775024736e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -4.0301095793893182e-14}, /* L127 */
-{1.2754103048807188e+00, 1.8124390877005681e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 6.6613381477509392e-16}, /* L128 */
-{9.5737911366996731e-01, 1.3711254354120683e-14,
- 2.2204460492503131e-16, 2.7533531010703882e-14,
- 3.2418512319054571e-14}, /* L129 */
-{1.3230973387797593e+00, 1.9095836023552692e-14,
- 2.2204460492503131e-16, -2.3869795029440866e-14,
- -2.3425705819590803e-14}, /* L130 */
-{1.5687264958944152e+00, 2.2815083156046967e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-14,
- -1.0436096431476471e-14}, /* L131 */
-{1.5094929888012547e+00, 2.2121193765656244e-14,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- -5.5511151231257827e-16}, /* L132 */
-{1.1391153211779199e+00, 1.6819878823071122e-14,
- 2.2204460492503131e-16, -1.3100631690576847e-14,
- 5.3068660577082483e-14}, /* L133 */
-{1.7117801445131744e+00, 2.5465740627339528e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -8.6597395920762210e-15}, /* L134 */
-{1.5685427215013152e+00, 2.3508972546437690e-14,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- -6.5503158452884236e-15}, /* L135 */
-{1.7610565852814140e+00, 2.6589841439772499e-14,
- 2.2204460492503131e-16, -7.6272321791748254e-14,
- -3.0642155479654321e-14}, /* L136 */
-{1.0091396588533188e+00, 1.5348833315442789e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 3.1086244689504383e-15}, /* L137 */
-{2.5145315534359565e+00, 3.8524738954492932e-14,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -1.3433698597964394e-14}, /* L138 */
-{1.4100937005232246e+00, 2.1760371282653068e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- -5.9952043329758453e-15}, /* L139 */
-{1.2660909646518197e+00, 1.9678703111480900e-14,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -2.3725466036239595e-13}, /* L140 */
-{1.5053423767228098e+00, 2.3564483697668948e-14,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- 2.4424906541753444e-15}, /* L141 */
-{1.1338203120152812e+00, 1.7874590696465020e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 1.0658141036401503e-14}, /* L142 */
-{1.4650575712174143e+00, 2.3259172365897030e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -8.6153306710912148e-14}, /* L143 */
-{1.3066607870829714e+00, 2.0889540097712711e-14,
- 2.2204460492503131e-16, -1.4543921622589551e-14,
- -4.2188474935755949e-15}, /* L144 */
-{1.7758894713573601e+00, 2.8588242884097781e-14,
- 2.2204460492503131e-16, 1.8207657603852567e-14,
- 3.2418512319054571e-14}, /* L145 */
-{1.7397528721926590e+00, 2.8199664825478976e-14,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- 1.6875389974302379e-14}, /* L146 */
-{1.8741785788796950e+00, 3.0586644328423063e-14,
- 2.2204460492503131e-16, -1.0502709812953981e-13,
- -6.7723604502134549e-15}, /* L147 */
-{1.3116756448688298e+00, 2.1552204465535851e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -5.1070259132757201e-15}, /* L148 */
-{1.7483491250887737e+00, 2.8921309791485328e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- 3.9079850466805510e-14}, /* L149 */
-{2.1446164252687314e+00, 3.5714486923410504e-14,
- 2.2204460492503131e-16, -4.7739590058881731e-14,
- -3.2640556923979602e-14}, /* L150 */
-{1.8311540829523274e+00, 3.0697666630885578e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- 3.0864200084579352e-14}, /* L151 */
-{1.5806164945471264e+00, 2.6673108166619386e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 8.8817841970012523e-16}, /* L152 */
-{1.8791139624897018e+00, 3.1918911957973251e-14,
- 2.2204460492503131e-16, -6.8611782921834674e-14,
- -9.4368957093138306e-14}, /* L153 */
-{1.9756798358534147e+00, 3.3778535524220388e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- 1.8651746813702630e-14}, /* L154 */
-{1.7645433563508734e+00, 3.0364599723498031e-14,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- -2.6312285683616210e-14}, /* L155 */
-{1.8654133991516275e+00, 3.2307490016592055e-14,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- -5.5511151231257827e-15}, /* L156 */
-{1.6067126900435591e+00, 2.8005375796169574e-14,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- 2.6201263381153694e-14}, /* L157 */
-{1.6570667081691322e+00, 2.9067026563467380e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 2.3758772726978350e-14}, /* L158 */
-{1.7806878537902620e+00, 3.1433189384699745e-14,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- -5.4067861299245124e-14}, /* L159 */
-{1.5562740136737514e+00, 2.7644553313166398e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 9.1038288019262836e-15}, /* L160 */
-{1.6025091991431788e+00, 2.8643754035329039e-14,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 2.4424906541753444e-15}, /* L161 */
-{2.0617602085061701e+00, 3.7081449022480228e-14,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- 1.0880185641326534e-14}, /* L162 */
-{1.4577007902116978e+00, 2.6379072537441317e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 1.9317880628477724e-14}, /* L163 */
-{1.8529249325305224e+00, 3.3736902160796944e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -1.0769163338864018e-14}, /* L164 */
-{1.6606316845431750e+00, 3.0420110874729289e-14,
- 2.2204460492503131e-16, -2.5202062658991053e-14,
- -5.5511151231257827e-15}, /* L165 */
-{1.7921963287087741e+00, 3.3029134982598407e-14,
- 2.2204460492503131e-16, 1.0280665208028950e-13,
- 2.9620750296999176e-13}, /* L166 */
-{1.7485299742402434e+00, 3.2418512319054571e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- -3.2196467714129540e-14}, /* L167 */
-{2.2321773001623937e+00, 4.1633363423443370e-14,
- 2.2204460492503131e-16, 1.3367085216486885e-13,
- -8.4710016778899444e-14}, /* L168 */
-{1.4793127669720494e+00, 2.7755575615628914e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 4.4408920985006262e-15}, /* L169 */
-{2.0088545265091819e+00, 3.7914116290949096e-14,
- 2.2204460492503131e-16, 5.5511151231257827e-15,
- 1.3544720900426910e-14}, /* L170 */
-{2.1688931156532889e+00, 4.1175396425785493e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-15,
- -1.2989609388114332e-14}, /* L171 */
-{1.0436207544762772e+00, 1.9928503292021560e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -4.3298697960381105e-15}, /* L172 */
-{1.7428014583100506e+00, 3.3473224192448470e-14,
- 2.2204460492503131e-16, -1.8096635301390052e-14,
- -6.5503158452884236e-15}, /* L173 */
-{1.6293354858554954e+00, 3.1474822748123188e-14,
- 2.2204460492503131e-16, 2.0539125955565396e-13,
- -2.2015722578316854e-13}, /* L174 */
-{1.8428855790146630e+00, 3.5804692544161298e-14,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- -2.3869795029440866e-14}, /* L175 */
-{1.6988898506325165e+00, 3.3195668436292181e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-14,
- 4.7073456244106637e-14}, /* L176 */
-{2.2867584490619168e+00, 4.4936276921703211e-14,
- 2.2204460492503131e-16, 4.2854608750531042e-14,
- 2.7977620220553945e-14}, /* L177 */
-{2.5281288972624893e+00, 4.9960036108132044e-14,
- 2.2204460492503131e-16, -5.6177285046032921e-14,
- -8.1157303100098943e-14}, /* L178 */
-{2.1299211333399728e+00, 4.2327252813834093e-14,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- 4.0634162701280729e-14}, /* L179 */
-{1.1736292204852639e+00, 2.3453461395206432e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -1.6053824936079764e-13}, /* L180 */
-{1.8508572884445129e+00, 3.7192471324942744e-14,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- -4.1855408028368402e-14}, /* L181 */
-{2.5522371838169264e+00, 5.1569859493838521e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-14,
- 1.9984014443252818e-15}, /* L182 */
-{1.9576804806937962e+00, 3.9773739857196233e-14,
- 2.2204460492503131e-16, -6.1839422471621219e-14,
- 5.6843418860808015e-14}, /* L183 */
-{2.5000385761827033e+00, 5.1070259132757201e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.8429702208777599e-14}, /* L184 */
-{2.3378739117797882e+00, 4.8017145815038020e-14,
- 2.2204460492503131e-16, -4.1289194285809572e-13,
- 2.1782575743145571e-13}, /* L185 */
-{1.6613159570758225e+00, 3.4305891460917337e-14,
- 2.2204460492503131e-16, 1.3833378886829450e-13,
- 7.6383344094210770e-14}, /* L186 */
-{1.9616779964251454e+00, 4.0726103045507500e-14,
- 2.2204460492503131e-16, -1.7208456881689926e-14,
- -1.5765166949677223e-14}, /* L187 */
-{1.7260904637671115e+00, 3.6026737149086330e-14,
- 2.2204460492503131e-16, 1.6564527527407336e-13,
- 2.0938806244430452e-13}, /* L188 */
-{1.4338845590380698e+00, 3.0087043967341742e-14,
- 2.2204460492503131e-16, -3.4972025275692431e-14,
- -1.3766765505351941e-14}, /* L189 */
-{1.6348936478457738e+00, 3.4486302702418925e-14,
- 2.2204460492503131e-16, -3.3861802251067274e-14,
- 2.8199664825478976e-14}, /* L190 */
-{2.3364234861184388e+00, 4.9543702473897611e-14,
- 2.2204460492503131e-16, -6.1062266354383610e-15,
- -1.3766765505351941e-14}, /* L191 */
-{1.4349179744548259e+00, 3.0586644328423063e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -5.1070259132757201e-15}, /* L192 */
-{1.7254152245985483e+00, 3.6970426720017713e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- -3.1974423109204508e-14}, /* L193 */
-{1.8505440182464656e+00, 3.9857006584043120e-14,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 2.3758772726978350e-14}, /* L194 */
-{1.8551568306339923e+00, 4.0162317915815038e-14,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 6.9499961341534799e-14}, /* L195 */
-{1.8922884459041780e+00, 4.1176263787523482e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 4.8405723873656825e-14}, /* L196 */
-{1.9289637745162949e+00, 4.2188474935755949e-14,
- 2.2204460492503131e-16, -9.4146912488213275e-14,
- 3.7969627442180354e-14}, /* L197 */
-{1.6666923841217840e+00, 3.6637359812630166e-14,
- 2.2204460492503131e-16, 3.6637359812630166e-14,
- -1.3877787807814457e-14}, /* L198 */
-{2.0779215100532515e+00, 4.5907722068250223e-14,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- -9.4368957093138306e-15}, /* L199 */
-{2.8323874544038095e+00, 6.2890664898063164e-14,
- 2.2204460492503131e-16, 1.6875389974302379e-14,
- 2.0872192862952943e-14}, /* L200 */
-{1.8408244242538161e+00, 4.1078251911130792e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 2.5313084961453569e-14}, /* L201 */
-{1.3459366097022418e+00, 3.0184188481996443e-14,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- 3.3306690738754696e-14}, /* L202 */
-{2.1921520520222271e+00, 4.9404924595819466e-14,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- 1.1546319456101628e-14}, /* L203 */
-{1.8284595861100834e+00, 4.1411318818518339e-14,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 9.9920072216264089e-15}, /* L204 */
-{1.6709099288644340e+00, 3.8028608040363565e-14,
- 2.2204460492503131e-16, 4.0207837059824669e-12,
- -5.7542859366321863e-13}, /* L205 */
-{1.1699209647766511e+00, 2.6756374893466273e-14,
- 2.2204460492503131e-16, -8.2933659939499194e-14,
- 1.3877787807814457e-13}, /* L206 */
-{2.0633810232366212e+00, 4.7419099896695016e-14,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 4.1078251911130792e-14}, /* L207 */
-{2.9327375605219776e+00, 6.7723604502134549e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- -7.6605388699135801e-15}, /* L208 */
-{1.8644127396185128e+00, 4.3260534043909615e-14,
- 2.2204460492503131e-16, 2.2426505097428162e-14,
- 1.5987211554602254e-14}, /* L209 */
-{2.6321834723518638e+00, 6.1367577686155528e-14,
- 2.2204460492503131e-16, 5.0848214527832170e-14,
- 1.2412293415309250e-13}, /* L210 */
-{1.9526367647151546e+00, 4.5741188614556449e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 4.4408920985006262e-15}, /* L211 */
-{2.4599436178854401e+00, 5.7898130734201914e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -4.1078251911130792e-15}, /* L212 */
-{2.7934703339503999e+00, 6.6058269965196814e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 1.1546319456101628e-14}, /* L213 */
-{1.7780648191354682e+00, 4.2243986086987206e-14,
- 2.2204460492503131e-16, -1.6542323066914832e-14,
- -6.2616578588858829e-14}, /* L214 */
-{2.1953827124803573e+00, 5.2402526762307389e-14,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 6.6613381477509392e-15}, /* L215 */
-{1.8773437826704427e+00, 4.5019543648550098e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 5.3512749786932545e-14}, /* L216 */
-{1.7903502061674965e+00, 4.3132164506687332e-14,
- 2.2204460492503131e-16, 5.2535753525262407e-13,
- -1.8685053504441385e-13}, /* L217 */
-{1.7454397765825900e+00, 4.2243986086987206e-14,
- 2.2204460492503131e-16, -1.0436096431476471e-14,
- -3.6637359812630166e-15}, /* L218 */
-{2.0856486204043323e+00, 5.0709436649754025e-14,
- 2.2204460492503131e-16, 3.0420110874729289e-14,
- 7.3274719625260332e-15}, /* L219 */
-{2.4454922799750403e+00, 5.9729998724833422e-14,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- 3.3306690738754696e-15}, /* L220 */
-{3.3948487634046742e+00, 8.3294482422502369e-14,
- 2.2204460492503131e-16, -3.4861002973229915e-14,
- -6.1062266354383610e-15}, /* L221 */
-{2.4977862891769762e+00, 6.1561866715464930e-14,
- 2.2204460492503131e-16, -2.8643754035329039e-14,
- 2.7311486405778851e-14}, /* L222 */
-{1.4551794044327637e+00, 3.6026737149086330e-14,
- 2.2204460492503131e-16, -3.5638159090467525e-14,
- 8.6597395920762210e-15}, /* L223 */
-{2.6339692141866542e+00, 6.5503158452884236e-14,
- 2.2204460492503131e-16, -5.6299409578741688e-13,
- -1.0330625244137082e-12}, /* L224 */
-{2.2989243618315744e+00, 5.7426285948736222e-14,
- 2.2204460492503131e-16, 2.3336887977620790e-13,
- -4.6074255521943996e-14}, /* L225 */
-{2.1217141544771656e+00, 5.3235194030776256e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- -5.5511151231257827e-16}, /* L226 */
-{2.9890329056207809e+00, 7.5328632220816871e-14,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- -1.0269562977782698e-13}, /* L227 */
-{4.3926116386781411e+00, 1.1118883591620943e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 1.5099033134902129e-14}, /* L228 */
-{1.8995926299188719e+00, 4.8294701571194310e-14,
- 2.2204460492503131e-16, -3.5084157801179572e-12,
- 1.0977885267493548e-12}, /* L229 */
-{2.1826423743356673e+00, 5.5733195836182858e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-14,
- 7.7049477908985864e-14}, /* L230 */
-{1.4653905766887152e+00, 3.7581049383561549e-14,
- 2.2204460492503131e-16, 1.4876988529977098e-14,
- -1.0325074129013956e-14}, /* L231 */
-{3.2349637093533472e+00, 8.3322237998117998e-14,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- 2.7755575615628914e-14}, /* L232 */
-{3.0601330554818875e+00, 7.9158901655773661e-14,
- 2.2204460492503131e-16, -4.2521541843143495e-14,
- 2.9309887850104133e-14}, /* L233 */
-{2.0427665631029104e+00, 5.3068660577082483e-14,
- 2.2204460492503131e-16, 1.2057022047429200e-13,
- 2.0206059048177849e-14}, /* L234 */
-{2.1213093280460096e+00, 5.5344617777564054e-14,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- -1.4765966227514582e-14}, /* L235 */
-{2.1292701432741032e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -2.3425705819590803e-14}, /* L236 */
-{2.1920169456993888e+00, 5.7676086129276882e-14,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- 2.3314683517128287e-14}, /* L237 */
-{2.9383331542969349e+00, 7.7639283890817978e-14,
- 2.2204460492503131e-16, 3.6637359812630166e-14,
- -2.0428103653102880e-14}, /* L238 */
-{2.2448045123378528e+00, 5.9563465271139648e-14,
- 2.2204460492503131e-16, -8.0713213890248880e-14,
- -9.3258734068513149e-14}, /* L239 */
-{2.6667078145948717e+00, 7.1054273576010019e-14,
- 2.2204460492503131e-16, -2.5091040356528538e-14,
- -1.2101430968414206e-14}, /* L240 */
-{2.4129003021567734e+00, 6.4559468881952853e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-14,
- -8.8151708155237429e-14}, /* L241 */
-{2.4318557059229371e+00, 6.5336624999190462e-14,
- 2.2204460492503131e-16, 7.7049477908985864e-14,
- 4.9960036108132044e-14}, /* L242 */
-{1.9393303358444993e+00, 5.2319260035460502e-14,
- 2.2204460492503131e-16, -3.8202774277351637e-13,
- -1.1812772982011666e-13}, /* L243 */
-{2.0896838836574534e+00, 5.6607496468075169e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.7541523789077473e-14}, /* L244 */
-{2.0796239258202580e+00, 5.6565863104651726e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 6.8167693711984612e-14}, /* L245 */
-{2.4949571969628308e+00, 6.8139938136368983e-14,
- 2.2204460492503131e-16, -1.3433698597964394e-14,
- 1.6875389974302379e-14}, /* L246 */
-{2.2029692150040847e+00, 6.0410010327416330e-14,
- 2.2204460492503131e-16, 1.7741363933510002e-13,
- 1.5121237595394632e-13}, /* L247 */
-{2.1814852737334989e+00, 6.0063065632220969e-14,
- 2.2204460492503131e-16, -9.3258734068513149e-14,
- -1.6431300764452317e-14}, /* L248 */
-{1.6666923841182062e+00, 4.6074255521943996e-14,
- 2.2204460492503131e-16, -1.3866685577568205e-13,
- -1.8995915951336428e-13}, /* L249 */
-{2.6237904857036902e+00, 7.2823691521506362e-14,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -2.2648549702353193e-14}, /* L250 */
-{2.0543145670806084e+00, 5.7245874707234634e-14,
- 2.2204460492503131e-16, -6.4726002335646626e-14,
- -1.3344880755994382e-13}, /* L251 */
-{2.0397140129490610e+00, 5.7065463465733046e-14,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.3433698597964394e-14}, /* L252 */
-{2.3636728356632153e+00, 6.6391336872584361e-14,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- 9.5701224722688494e-14}, /* L253 */
-{2.0748351648003949e+00, 5.8508753397745750e-14,
- 2.2204460492503131e-16, -8.3266726846886741e-15,
- -3.4083846855992306e-14}, /* L254 */
-{2.2765057152529731e+00, 6.4448446579490337e-14,
- 2.2204460492503131e-16, 2.9087843245179101e-14,
- -1.0680345496894006e-13}, /* L255 */
-{2.5801179368259426e+00, 7.3330230776491589e-14,
- 2.2204460492503131e-16, -4.7739590058881731e-14,
- 5.0626169922907138e-14}, /* L256 */
-{1.9260997590764319e+00, 5.4956039718945249e-14,
- 2.2204460492503131e-16, -3.7969627442180354e-14,
- -4.7295500849031669e-13}, /* L257 */
-{2.3488734529714574e+00, 6.7279515292284486e-14,
- 2.2204460492503131e-16, -1.5210055437364645e-14,
- -5.2624571367232420e-14}, /* L258 */
-{2.7567992948175259e+00, 7.9269923958236177e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 1.4654943925052066e-14}, /* L259 */
-{2.9615841594774968e+00, 8.5487172896137054e-14,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- 6.2172489379008766e-15}, /* L260 */
-{2.4895020151335312e+00, 7.2136741025019546e-14,
- 2.2204460492503131e-16, -4.0412118096355698e-14,
- 1.3100631690576847e-14}, /* L261 */
-{2.2691189825034535e+00, 6.6002758813965556e-14,
- 2.2204460492503131e-16, -3.3073543903583413e-13,
- 1.5143442055887135e-13}, /* L262 */
-{2.2452817935145397e+00, 6.5558669604115494e-14,
- 2.2204460492503131e-16, 5.2180482157382357e-14,
- -4.1966430330830917e-14}, /* L263 */
-{2.2905182977808596e+00, 6.7133798520302435e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- -6.3282712403633923e-14}, /* L264 */
-{1.6726673190830605e+00, 4.9210635566510064e-14,
- 2.2204460492503131e-16, -2.2171153801764376e-13,
- -1.4288570326925765e-13}, /* L265 */
-{2.8139531943947489e+00, 8.3100193393192967e-14,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- 6.6835426082434424e-14}, /* L266 */
-{3.1619972337107036e+00, 9.3729494651806355e-14,
- 2.2204460492503131e-16, 2.4225066397320916e-13,
- 6.6391336872584361e-14}, /* L267 */
-{1.7780125097773152e+00, 5.2902127123388709e-14,
- 2.2204460492503131e-16, -1.6719958750854857e-13,
- 6.4170890823334048e-14}, /* L268 */
-{1.8527237552483771e+00, 5.5330739989756239e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 1.7319479184152442e-14}, /* L269 */
-{2.3706384313595015e+00, 7.1061212469913926e-14,
- 2.2204460492503131e-16, 7.4829031859735551e-14,
- 2.7089441800853820e-14}, /* L270 */
-{1.8302865443340426e+00, 5.5067062021407764e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-13,
- 1.1168843627729075e-13}, /* L271 */
-{2.5055533671591936e+00, 7.5661699128204418e-14,
- 2.2204460492503131e-16, -4.7850612361344247e-14,
- -5.4622972811557702e-14}, /* L272 */
-{2.9440701529688758e+00, 8.9230706157295003e-14,
- 2.2204460492503131e-16, 9.5479180117763462e-15,
- -1.4988010832439613e-14}, /* L273 */
-{2.3061487231025359e+00, 7.0152217368502079e-14,
- 2.2204460492503131e-16, -8.1046280797636427e-15,
- -6.4392935428259079e-15}, /* L274 */
-{2.1432148884910309e+00, 6.5433769513845164e-14,
- 2.2204460492503131e-16, -1.7652546091539989e-14,
- -1.6875389974302379e-14}, /* L275 */
-{2.4710526216759376e+00, 7.5717210279435676e-14,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- -1.4432899320127035e-14}, /* L276 */
-{2.1173611912338393e+00, 6.5114580394265431e-14,
- 2.2204460492503131e-16, -5.1580961724084773e-13,
- 4.9737991503207013e-13}, /* L277 */
-{3.3948365557848281e+00, 1.0477729794899915e-13,
- 2.2204460492503131e-16, 9.1926466438962962e-14,
- -3.0175861809311755e-13}, /* L278 */
-{2.5515626687022972e+00, 7.9034001565503331e-14,
- 2.2204460492503131e-16, -4.0079051188968151e-14,
- -2.1094237467877974e-15}, /* L279 */
-{2.6000401192288352e+00, 8.0824236192711396e-14,
- 2.2204460492503131e-16, -5.7953641885433171e-14,
- 2.2426505097428162e-14}, /* L280 */
-{2.0044793281633693e+00, 6.2533311862011942e-14,
- 2.2204460492503131e-16, 1.9539925233402755e-14,
- 1.4876988529977098e-14}, /* L281 */
-{2.1915231774196844e+00, 6.8611782921834674e-14,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- 1.6209256159527285e-14}, /* L282 */
-{2.5118817359524939e+00, 7.8920377177826850e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- 2.7866597918091429e-13}, /* L283 */
-{2.8415931422244336e+00, 8.9594998087250133e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- -1.0880185641326534e-14}, /* L284 */
-{2.1772265775735762e+00, 6.8889338677990963e-14,
- 2.2204460492503131e-16, 4.0856207306205761e-14,
- 4.1744385725905886e-14}, /* L285 */
-{2.0747697764228277e+00, 6.5877858723695226e-14,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 2.5535129566378600e-14}, /* L286 */
-{2.4651948329603628e+00, 7.8548278992229825e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -2.2204460492503131e-15}, /* L287 */
-{2.6523846769162907e+00, 8.4807161293554145e-14,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -1.7608137170554983e-13}, /* L288 */
-{2.5796245792999266e+00, 8.2767126485805420e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- -4.7739590058881731e-15}, /* L289 */
-{2.2965871610174102e+00, 7.3940853440035426e-14,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 4.4186876380081230e-14}, /* L290 */
-{3.0172286871317504e+00, 9.7477581562088744e-14,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- -2.8088642523016460e-14}, /* L291 */
-{2.3493513195358955e+00, 7.6161299489285739e-14,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- -8.3710816056736803e-14}, /* L292 */
-{2.4855332329075392e+00, 8.0851991768327025e-14,
- 2.2204460492503131e-16, -2.5646151868841116e-14,
- 6.6169292267659330e-14}, /* L293 */
-{2.1854078710168054e+00, 7.1331829332166308e-14,
- 2.2204460492503131e-16, -3.9301895071730542e-14,
- 4.0856207306205761e-14}, /* L294 */
-{2.4847841035078075e+00, 8.1379347705023974e-14,
- 2.2204460492503131e-16, 2.3314683517128287e-13,
- 8.4376949871511897e-13}, /* L295 */
-{2.5253768049952692e+00, 8.2989171090730451e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 5.9063864910058328e-14}, /* L296 */
-{2.4326974697532657e+00, 8.0213613529167560e-14,
- 2.2204460492503131e-16, 5.5289106626332796e-14,
- 1.0214051826551440e-14}, /* L297 */
-{2.8901452667593879e+00, 9.5617957995841607e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- -4.1178171983347056e-13}, /* L298 */
-{2.0744467249187619e+00, 6.8861583102375334e-14,
- 2.2204460492503131e-16, -1.3589129821411916e-13,
- 1.6120438317557273e-13}, /* L299 */
-{2.3400361073059397e+00, 7.7937656328685989e-14,
- 2.2204460492503131e-16, 2.4669155607170978e-13,
- -3.1974423109204508e-13}, /* L300 */
-{2.5830963361881962e+00, 8.6319840164605921e-14,
- 2.2204460492503131e-16, 2.0317081350640365e-13,
- 5.0182080713057076e-14}, /* L301 */
-{2.9884567086148417e+00, 1.0019762797242038e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-14,
- 7.6605388699135801e-14}, /* L302 */
-{2.8234759101307887e+00, 9.4979579756682142e-14,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- 7.3274719625260332e-15}, /* L303 */
-{2.5691185894716448e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- -3.7414515929867775e-14}, /* L304 */
-{2.7147959883004673e+00, 9.1926466438962962e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- 1.3988810110276972e-14}, /* L305 */
-{3.1699835540943191e+00, 1.0769163338864018e-13,
- 2.2204460492503131e-16, 1.5920598173124745e-12,
- 2.7056135110115065e-12}, /* L306 */
-{2.4234901637513886e+00, 8.2600593032111647e-14,
- 2.2204460492503131e-16, -1.3877787807814457e-13,
- -1.0513812043200232e-13}, /* L307 */
-{3.2955053958770213e+00, 1.1268763699945339e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- 6.6613381477509392e-14}, /* L308 */
-{1.9482501266817653e+00, 6.6835426082434424e-14,
- 2.2204460492503131e-16, -5.3623772089395061e-14,
- 9.5479180117763462e-15}, /* L309 */
-{3.2468242928097442e+00, 1.1174394742852201e-13,
- 2.2204460492503131e-16, -6.7390537594747002e-14,
- 4.0190073491430667e-14}, /* L310 */
-{2.3824724534280599e+00, 8.2260587230820192e-14,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- 2.6423307986078726e-14}, /* L311 */
-{3.2378304092011843e+00, 1.1215334216885253e-13,
- 2.2204460492503131e-16, 1.7652546091539989e-13,
- -4.4408920985006262e-15}, /* L312 */
-{2.9233677919579981e+00, 1.0158540675320182e-13,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- -2.6423307986078726e-14}, /* L313 */
-{2.7468576712818651e+00, 9.5756735873919752e-14,
- 2.2204460492503131e-16, -2.4447111002245947e-13,
- -2.6489921367556235e-13}, /* L314 */
-{2.5778175541075461e+00, 9.0150109599562711e-14,
- 2.2204460492503131e-16, 6.5059069243034173e-14,
- 1.4033219031261979e-13}, /* L315 */
-{3.0429662574816128e+00, 1.0675488271161271e-13,
- 2.2204460492503131e-16, 8.2822637637036678e-14,
- -2.6090241078691179e-14}, /* L316 */
-{3.4361728947717736e+00, 1.2093104295729518e-13,
- 2.2204460492503131e-16, -7.8270723236073536e-14,
- -6.7723604502134549e-15}, /* L317 */
-{3.2107413663930586e+00, 1.1335377081422848e-13,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- -6.1062266354383610e-15}, /* L318 */
-{2.1842029817618878e+00, 7.7354789240757782e-14,
- 2.2204460492503131e-16, -5.7176485768195562e-14,
- 3.5971225997855072e-14}, /* L319 */
-{2.8328562116367904e+00, 1.0064171718227044e-13,
- 2.2204460492503131e-16, -4.7184478546569153e-14,
- -4.2965631052993558e-14}, /* L320 */
-{2.1725413109845868e+00, 7.7424178179796854e-14,
- 2.2204460492503131e-16, 1.7963408538435033e-13,
- -5.5622173533720343e-14}, /* L321 */
-{2.6491091993585498e+00, 9.4702024000525853e-14,
- 2.2204460492503131e-16, -4.2077452633293433e-14,
- -6.4392935428259079e-14}, /* L322 */
-{2.3932257825233298e+00, 8.5820239803524601e-14,
- 2.2204460492503131e-16, -1.4599432773820809e-13,
- -1.6320278461989801e-14}, /* L323 */
-{2.7114615915716738e+00, 9.7533092713320002e-14,
- 2.2204460492503131e-16, -3.1452618287630685e-13,
- -8.4598994476436928e-14}, /* L324 */
-{2.5661934431215494e+00, 9.2592600253738055e-14,
- 2.2204460492503131e-16, -3.0642155479654321e-14,
- -2.9087843245179101e-14}, /* L325 */
-{3.0966735492714101e+00, 1.1207701433590955e-13,
- 2.2204460492503131e-16, -4.6074255521943996e-14,
- 2.8643754035329039e-14}, /* L326 */
-{2.8165572216074319e+00, 1.0225154056797692e-13,
- 2.2204460492503131e-16, 7.7271522513910895e-14,
- -2.0983215165415459e-14}, /* L327 */
-{2.3811343024345368e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.2818192607919627e-13,
- 1.2407852523210749e-12}, /* L328 */
-{3.1261880554436932e+00, 1.1418643808269735e-13,
- 2.2204460492503131e-16, 1.1901590823981678e-13,
- -8.5598195198599569e-14}, /* L329 */
-{2.9803490177876037e+00, 1.0919043447188415e-13,
- 2.2204460492503131e-16, 1.9451107391432743e-13,
- 2.6645352591003757e-14}, /* L330 */
-{2.9033680624911926e+00, 1.0669243266647754e-13,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- 5.7731597280508140e-15}, /* L331 */
-{2.5734583837660527e+00, 9.4854679666411812e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- -3.2640556923979602e-14}, /* L332 */
-{2.3003357950160876e+00, 8.5043083686286991e-14,
- 2.2204460492503131e-16, -5.9974247790250956e-13,
- -1.5408785358772548e-12}, /* L333 */
-{3.2178640236534202e+00, 1.1932121957158870e-13,
- 2.2204460492503131e-16, 2.7067237340361316e-13,
- 6.9499961341534799e-14}, /* L334 */
-{2.3860442799091652e+00, 8.8741514137069544e-14,
- 2.2204460492503131e-16, 1.1035616864774056e-13,
- 8.5043083686286991e-14}, /* L335 */
-{2.7664117340012329e+00, 1.0319523013890830e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -4.6518344731794059e-14}, /* L336 */
-{2.9926277793230089e+00, 1.1196599203344704e-13,
- 2.2204460492503131e-16, -7.2053474298172659e-14,
- 6.6835426082434424e-14}, /* L337 */
-{3.3603976357485146e+00, 1.2609878419223008e-13,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- 1.0658141036401503e-14}, /* L338 */
-{2.7441426377492357e+00, 1.0327849686575519e-13,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -5.9396931817445875e-14}, /* L339 */
-{3.1441661622755182e+00, 1.1868284133242923e-13,
- 2.2204460492503131e-16, -3.9046543776066756e-13,
- -5.3890225615305098e-13}, /* L340 */
-{3.2434518067538924e+00, 1.2279066652354231e-13,
- 2.2204460492503131e-16, 9.1260332624187868e-14,
- 1.0880185641326534e-13}, /* L341 */
-{2.6067653692004762e+00, 9.8976382645332706e-14,
- 2.2204460492503131e-16, 1.2434497875801753e-13,
- -4.9960036108132044e-15}, /* L342 */
-{2.4417286385449386e+00, 9.2981178312356860e-14,
- 2.2204460492503131e-16, -2.0705659409259169e-13,
- -7.6050277186823223e-14}, /* L343 */
-{3.1846421630322994e+00, 1.2162493234768590e-13,
- 2.2204460492503131e-16, -1.1912693054227930e-13,
- 5.1514348342607263e-14}, /* L344 */
-{2.8875445554904857e+00, 1.1059902993437731e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- -8.1046280797636427e-14}, /* L345 */
-{2.2717113536159981e+00, 8.7263529735537304e-14,
- 2.2204460492503131e-16, -2.0894397323445446e-13,
- -1.2523315717771766e-13}, /* L346 */
-{3.1725993862302042e+00, 1.2222167722342192e-13,
- 2.2204460492503131e-16, -3.8302694349567901e-14,
- -9.1038288019262836e-14}, /* L347 */
-{2.3351653424946766e+00, 9.0219498538601783e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 5.4622972811557702e-14}, /* L348 */
-{2.9599310592510539e+00, 1.1468603844377867e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- -1.1102230246251565e-15}, /* L349 */
-{2.8354008937587829e+00, 1.1017575740623897e-13,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -1.2501111257279263e-13}, /* L350 */
-{2.4786707251041862e+00, 9.6589403142388619e-14,
- 2.2204460492503131e-16, -2.9753977059954195e-14,
- 1.0658141036401503e-14}, /* L351 */
-{3.5341454417838407e+00, 1.3811174426336947e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- 2.7533531010703882e-14}, /* L352 */
-{3.3357455223285819e+00, 1.3072876114961218e-13,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -4.3631764867768652e-14}, /* L353 */
-{2.7232058615138919e+00, 1.0702549957386509e-13,
- 2.2204460492503131e-16, -7.6494366396673286e-14,
- -1.4421797089880783e-13}, /* L354 */
-{3.6444224314755376e+00, 1.4363510381087963e-13,
- 2.2204460492503131e-16, -3.8635761256955448e-14,
- -7.7204909132433386e-13}, /* L355 */
-{3.6638556914563796e+00, 1.4480777688063995e-13,
- 2.2204460492503131e-16, -1.2334577803585489e-13,
- -8.7485574340462335e-14}, /* L356 */
-{3.5112586613385370e+00, 1.3916645613676337e-13,
- 2.2204460492503131e-16, 1.0746958878371515e-13,
- -2.7533531010703882e-14}, /* L357 */
-{3.6145809134976128e+00, 1.4366285938649526e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -1.4543921622589551e-14}, /* L358 */
-{3.2897443548431258e+00, 1.3111733920823099e-13,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- -3.8413716652030416e-14}, /* L359 */
-{3.4507476902917014e+00, 1.3791745523406007e-13,
- 2.2204460492503131e-16, -9.6811447747313650e-14,
- 1.1768364061026659e-14}, /* L360 */
-{3.1524032129592596e+00, 1.2634338020234281e-13,
- 2.2204460492503131e-16, 1.8207657603852567e-14,
- -3.2085445411667024e-14}, /* L361 */
-{2.9627528982938327e+00, 1.1907141939104804e-13,
- 2.2204460492503131e-16, -2.2426505097428162e-14,
- 7.7715611723760958e-15}, /* L362 */
-{2.6646416670108106e+00, 1.0738632205686827e-13,
- 2.2204460492503131e-16, -4.3187675657918589e-14,
- 3.9301895071730542e-14}, /* L363 */
-{2.6976721202175087e+00, 1.0901696212428647e-13,
- 2.2204460492503131e-16, -3.0575542098176811e-13,
- 2.9642954757491680e-13}, /* L364 */
-{3.6199188698965954e+00, 1.4668821712859881e-13,
- 2.2204460492503131e-16, 5.2624571367232420e-14,
- 1.1679546219056647e-13}, /* L365 */
-{2.8531861018340021e+00, 1.1593503934648197e-13,
- 2.2204460492503131e-16, -1.1513012765362873e-13,
- -1.5731860258938468e-13}, /* L366 */
-{2.6281059473874890e+00, 1.0708101072509635e-13,
- 2.2204460492503131e-16, 6.3060667798708891e-14,
- 2.5313084961453569e-14}, /* L367 */
-{2.1032933238739719e+00, 8.5931262105987116e-14,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -7.3163697322797816e-14}, /* L368 */
-{3.9580556536744296e+00, 1.6214807274650411e-13,
- 2.2204460492503131e-16, 4.1078251911130792e-14,
- 4.8849813083506888e-15}, /* L369 */
-{2.8377127054925744e+00, 1.1656647869173753e-13,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- -1.1546319456101628e-14}, /* L370 */
-{3.0916919103834193e+00, 1.2734258092450546e-13,
- 2.2204460492503131e-16, 1.7275070263167436e-13,
- -1.6819878823071122e-13}, /* L371 */
-{2.8863012567365454e+00, 1.1920325837522228e-13,
- 2.2204460492503131e-16, -9.1038288019262836e-15,
- -2.1871393585115584e-14}, /* L372 */
-{3.9926889539717272e+00, 1.6533996394230144e-13,
- 2.2204460492503131e-16, -1.0269562977782698e-13,
- -2.2548629630136929e-13}, /* L373 */
-{3.5923849767677987e+00, 1.4916193280534173e-13,
- 2.2204460492503131e-16, 4.3181014319770838e-12,
- 4.3847148134545932e-12}, /* L374 */
-{2.8227102217479283e+00, 1.1751710715657282e-13,
- 2.2204460492503131e-16, -1.5165646516379638e-13,
- 3.1330493754921918e-13}, /* L375 */
-{3.0652068713280611e+00, 1.2795320358804929e-13,
- 2.2204460492503131e-16, 8.0491169285323849e-13,
- -1.0191847366058937e-13}, /* L376 */
-{3.6167666828897320e+00, 1.5137890940764009e-13,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- -5.0404125317982107e-14}, /* L377 */
-{2.5383989564505653e+00, 1.0652589921278377e-13,
- 2.2204460492503131e-16, -1.0846878950587779e-13,
- 4.5519144009631418e-14}, /* L378 */
-{3.6953076790956785e+00, 1.5548673459875317e-13,
- 2.2204460492503131e-16, 1.5054624213917123e-13,
- 6.3060667798708891e-14}, /* L379 */
-{3.4263686591469731e+00, 1.4455103780619538e-13,
- 2.2204460492503131e-16, -2.7644553313166398e-14,
- -2.4980018054066022e-14}, /* L380 */
-{2.7677592426084190e+00, 1.1707301794672276e-13,
- 2.2204460492503131e-16, -7.4162898044960457e-14,
- -3.3528735343679728e-14}, /* L381 */
-{3.2421886233238322e+00, 1.3750112159982564e-13,
- 2.2204460492503131e-16, 2.9087843245179101e-14,
- 2.2204460492503131e-14}, /* L382 */
-{3.2389453786807274e+00, 1.3772316620475067e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -3.7081449022480228e-14}, /* L383 */
-{3.1471762115440272e+00, 1.3417045252595017e-13,
- 2.2204460492503131e-16, -2.9176661087149114e-13,
- 1.4410694859634532e-13}, /* L384 */
-{3.2248794644351042e+00, 1.3784112740111709e-13,
- 2.2204460492503131e-16, -9.2148511043887993e-15,
- -1.8873791418627661e-15}, /* L385 */
-{3.5881294122341232e+00, 1.5376588891058418e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- -2.2759572004815709e-14}, /* L386 */
-{4.0880697869603182e+00, 1.7564422138960367e-13,
- 2.2204460492503131e-16, -1.7874590696465020e-14,
- -1.2656542480726785e-14}, /* L387 */
-{2.3428138735867621e+00, 1.0091927293842673e-13,
- 2.2204460492503131e-16, -6.0729199446996063e-14,
- 5.3290705182007514e-14}, /* L388 */
-{3.1192563712749029e+00, 1.3471168625045493e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 1.9095836023552692e-14}, /* L389 */
-{3.2231187023510404e+00, 1.3955503419538218e-13,
- 2.2204460492503131e-16, -2.3203661214665772e-14,
- 3.3750779948604759e-14}, /* L390 */
-{2.8913418264838899e+00, 1.2551071293387395e-13,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- 8.8817841970012523e-15}, /* L391 */
-{3.4356013734763642e+00, 1.4951798479878597e-13,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- 2.1516122217235534e-13}, /* L392 */
-{2.8079244380824604e+00, 1.2251311076738602e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-15,
- -1.1768364061026659e-14}, /* L393 */
-{2.6040946689567552e+00, 1.1390888232654106e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-13,
- -2.7056135110115065e-13}, /* L394 */
-{3.2696626357560667e+00, 1.4338530363033897e-13,
- 2.2204460492503131e-16, 2.5313084961453569e-13,
- -9.2259533346350509e-14}, /* L395 */
-{2.5404369704987446e+00, 1.1168843627729075e-13,
- 2.2204460492503131e-16, -3.9890313274781874e-13,
- 2.1183055309847987e-13}, /* L396 */
-{3.3382044801270125e+00, 1.4713230633844887e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -4.9404924595819466e-14}, /* L397 */
-{3.3367266689881960e+00, 1.4743761767022079e-13,
- 2.2204460492503131e-16, -1.2156942119645464e-13,
- 9.1482377229112899e-14}, /* L398 */
-{2.9060527069382203e+00, 1.2873035970528690e-13,
- 2.2204460492503131e-16, -1.9650947535865271e-14,
- -3.3750779948604759e-14}, /* L399 */
-{3.1037902324932563e+00, 1.3783418850721318e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 1.0658141036401503e-14}, /* L400 */
-{2.2918002807414077e+00, 1.0202949596305189e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- -2.2426505097428162e-14}, /* L401 */
-{2.7114001959377214e+00, 1.2101084023719011e-13,
- 2.2204460492503131e-16, 1.0458300891968975e-13,
- 7.5939254884360707e-14}, /* L402 */
-{3.1642671549181589e+00, 1.4157425232141918e-13,
- 2.2204460492503131e-16, -3.0420110874729289e-14,
- -1.1002310174035301e-13}, /* L403 */
-{2.7840612091019641e+00, 1.2487233469471448e-13,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.3833378886829450e-13}, /* L404 */
-{2.4778014121699443e+00, 1.1141088052113446e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- -5.0959236830294685e-14}, /* L405 */
-{3.4242937462090168e+00, 1.5434875599851239e-13,
- 2.2204460492503131e-16, -4.5075054799781356e-14,
- 3.1530333899354446e-14}, /* L406 */
-{3.6161278583588374e+00, 1.6339707364920741e-13,
- 2.2204460492503131e-16, -1.3278267374516872e-13,
- -2.6312285683616210e-14}, /* L407 */
-{3.5331219358110206e+00, 1.6003864899971632e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -3.5527136788005009e-14}, /* L408 */
-{3.8447799495362971e+00, 1.7458257062230587e-13,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- 6.1728400169158704e-14}, /* L409 */
-{3.2597871908858598e+00, 1.4838130724115217e-13,
- 2.2204460492503131e-16, -1.2301271112846734e-13,
- 9.4591001698063337e-14}, /* L410 */
-{4.3856866015218285e+00, 2.0011770018868447e-13,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- 3.9523939676655573e-14}, /* L411 */
-{3.2342541507519655e+00, 1.4793721803130211e-13,
- 2.2204460492503131e-16, -8.3155704544424225e-14,
- 8.6153306710912148e-14}, /* L412 */
-{3.9806675093611261e+00, 1.8252066524837574e-13,
- 2.2204460492503131e-16, 4.9071857688431919e-14,
- -1.8984813721090177e-14}, /* L413 */
-{4.2234702370620925e+00, 1.9412249585570862e-13,
- 2.2204460492503131e-16, -1.2656542480726785e-13,
- 1.5543122344752192e-15}, /* L414 */
-{2.9927996310147980e+00, 1.3788969965844444e-13,
- 2.2204460492503131e-16, -2.1871393585115584e-14,
- 5.9507954119908391e-14}, /* L415 */
-{2.7470213946415964e+00, 1.2687073613903976e-13,
- 2.2204460492503131e-16, -6.2394533983933798e-14,
- -2.5424107263916085e-14}, /* L416 */
-{2.7605928785454235e+00, 1.2780401736911529e-13,
- 2.2204460492503131e-16, 1.6231460620019789e-13,
- -6.5170091545496689e-13}, /* L417 */
-{3.4342432836792303e+00, 1.5937251518494122e-13,
- 2.2204460492503131e-16, 4.6740389336719090e-13,
- 3.1974423109204508e-14}, /* L418 */
-{3.6515861431314938e+00, 1.6986412276764895e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -9.1038288019262836e-14}, /* L419 */
-{4.1205750181967931e+00, 1.9213797219919115e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- 4.0190073491430667e-14}, /* L420 */
-{3.2720027062803396e+00, 1.5293322164211531e-13,
- 2.2204460492503131e-16, 2.1027624086400465e-13,
- 1.7985612998927536e-14}, /* L421 */
-{3.0509769688990485e+00, 1.4294121442048890e-13,
- 2.2204460492503131e-16, -7.3163697322797816e-14,
- -3.7747582837255322e-15}, /* L422 */
-{2.8658665794324758e+00, 1.3458678616018460e-13,
- 2.2204460492503131e-16, -3.2640556923979602e-14,
- -7.5495165674510645e-15}, /* L423 */
-{3.1321053471373599e+00, 1.4743761767022079e-13,
- 2.2204460492503131e-16, -2.0161650127192843e-13,
- -1.0125233984581428e-13}, /* L424 */
-{3.3532994485245857e+00, 1.5822217667993410e-13,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- -6.3282712403633923e-14}, /* L425 */
-{2.9343002891529362e+00, 1.3877787807814457e-13,
- 2.2204460492503131e-16, 2.0583534876550402e-13,
- 3.1441516057384433e-13}, /* L426 */
-{4.0036608468101891e+00, 1.8979783023009844e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -1.3322676295501878e-15}, /* L427 */
-{3.7219981189256077e+00, 1.7685852782278744e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -1.6397994073713562e-13}, /* L428 */
-{3.5347073752991163e+00, 1.6835144389659717e-13,
- 2.2204460492503131e-16, -6.8922645368729718e-13,
- -1.2156942119645464e-13}, /* L429 */
-{4.0817976549650865e+00, 1.9486148805647474e-13,
- 2.2204460492503131e-16, -2.7755575615628914e-15,
- 2.4424906541753444e-15}, /* L430 */
-{3.0754353673778034e+00, 1.4716006191406450e-13,
- 2.2204460492503131e-16, 8.2600593032111647e-14,
- 1.4077627952246985e-13}, /* L431 */
-{3.4016528168757301e+00, 1.6314727346866675e-13,
- 2.2204460492503131e-16, 4.0190073491430667e-14,
- -1.1435297153639112e-14}, /* L432 */
-{3.4850216943699266e+00, 1.6753265441593612e-13,
- 2.2204460492503131e-16, -1.7752466163756253e-13,
- 7.2608585810485238e-14}, /* L433 */
-{2.8156950601400310e+00, 1.3566925360919413e-13,
- 2.2204460492503131e-16, -6.5281113847959205e-14,
- -1.4876988529977098e-14}, /* L434 */
-{3.3195718934650320e+00, 1.6031620475587260e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 2.5979218776228663e-14}, /* L435 */
-{3.7787057677774731e+00, 1.8290924330699454e-13,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- -1.6431300764452317e-14}, /* L436 */
-{2.6693618460217481e+00, 1.2950751582252451e-13,
- 2.2204460492503131e-16, 3.5305092183079978e-14,
- -6.3615779311021470e-14}, /* L437 */
-{2.6920918884367149e+00, 1.3090917239111377e-13,
- 2.2204460492503131e-16, 2.8266278206956486e-13,
- 3.7525538232330291e-14}, /* L438 */
-{2.7449008973700058e+00, 1.3378187446733136e-13,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- -1.9428902930940239e-14}, /* L439 */
-{3.5079880062308026e+00, 1.7136292385089291e-13,
- 2.2204460492503131e-16, 3.4261482539932331e-13,
- -6.2172489379008766e-15}, /* L440 */
-{3.7472012753821651e+00, 1.8346435481930712e-13,
- 2.2204460492503131e-16, -2.3980817331903381e-14,
- 1.3256062914024369e-13}, /* L441 */
-{3.3811125673252298e+00, 1.6591589213632574e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- 9.5479180117763462e-15}, /* L442 */
-{3.2844557078589083e+00, 1.6153745008296028e-13,
- 2.2204460492503131e-16, -1.9761969838327786e-14,
- 5.4622972811557702e-14}, /* L443 */
-{2.9069815569300879e+00, 1.4329509800958817e-13,
- 2.2204460492503131e-16, -3.6082248300317588e-14,
- 1.3788969965844444e-13}, /* L444 */
-{4.7225169556169897e+00, 2.3331336862497665e-13,
- 2.2204460492503131e-16, 8.5487172896137054e-14,
- -6.2838623193783860e-14}, /* L445 */
-{3.7023895751587452e+00, 1.8332557694122897e-13,
- 2.2204460492503131e-16, -7.0721206668622472e-14,
- -5.9729998724833422e-14}, /* L446 */
-{4.4832642399132503e+00, 2.2248869413488137e-13,
- 2.2204460492503131e-16, 5.9352522896460869e-13,
- -5.6610272025636732e-13}, /* L447 */
-{3.0669935400880073e+00, 1.5254464358349651e-13,
- 2.2204460492503131e-16, -2.0095036745715333e-14,
- 2.5535129566378600e-14}, /* L448 */
-{3.6812711938101201e+00, 1.8350598818273056e-13,
- 2.2204460492503131e-16, 1.4499512701604544e-13,
- 8.5043083686286991e-14}, /* L449 */
-{3.3222539113851779e+00, 1.6597834218146090e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- 2.2870594307278225e-14}, /* L450 */
-{3.1308502625803554e+00, 1.5676349107707210e-13,
- 2.2204460492503131e-16, -1.2756462552943049e-13,
- 5.2402526762307389e-14}, /* L451 */
-{3.2686982137223382e+00, 1.6402851299446297e-13,
- 2.2204460492503131e-16, -6.3171690101171407e-14,
- 7.3496764230185363e-14}, /* L452 */
-{3.4260812446364239e+00, 1.7230661342182430e-13,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- -5.7731597280508140e-15}, /* L453 */
-{3.0629422113247657e+00, 1.5438345046803192e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- 7.0832228971084987e-14}, /* L454 */
-{4.1923476808188722e+00, 2.1177504194724861e-13,
- 2.2204460492503131e-16, 5.9285909514983359e-14,
- -7.2053474298172659e-14}, /* L455 */
-{2.9528790430907952e+00, 1.4949153026577733e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- -5.9396931817445875e-14}, /* L456 */
-{4.0208260986315665e+00, 2.0400348077487251e-13,
- 2.2204460492503131e-16, -2.1538326677728037e-14,
- 4.2188474935755949e-14}, /* L457 */
-{2.9983910454268035e+00, 1.5246137685664962e-13,
- 2.2204460492503131e-16, -6.6613381477509392e-15,
- 5.7065463465733046e-14}, /* L458 */
-{4.1209543402083426e+00, 2.0999868510784836e-13,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -5.6288307348495437e-14}, /* L459 */
-{4.4978689896627992e+00, 2.2970514379494489e-13,
- 2.2204460492503131e-16, -3.0420110874729289e-13,
- 5.8086868648388190e-13}, /* L460 */
-{2.6377691949424693e+00, 1.3500311979441904e-13,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- -5.6621374255882984e-15}, /* L461 */
-{4.1098876868157053e+00, 2.1080359680070160e-13,
- 2.2204460492503131e-16, -7.5273121069585613e-14,
- -1.6842083283563625e-13}, /* L462 */
-{3.5587542473853002e+00, 1.8293005998870626e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- 9.1038288019262836e-15}, /* L463 */
-{2.6984362992440358e+00, 1.3900686157697351e-13,
- 2.2204460492503131e-16, -9.1393559387142886e-13,
- -8.1934459217336553e-13}, /* L464 */
-{3.7180462170973718e+00, 1.9194368316988175e-13,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- 9.5479180117763462e-15}, /* L465 */
-{3.6073305456916316e+00, 1.8662849043948881e-13,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -5.0959236830294685e-14}, /* L466 */
-{4.2398691355818441e+00, 2.1982415887578100e-13,
- 2.2204460492503131e-16, 2.1738166822160565e-13,
- -1.8807178037150152e-13}, /* L467 */
-{4.0983296900140092e+00, 2.1294077612310502e-13,
- 2.2204460492503131e-16, -1.8496315590255108e-13,
- 1.6742163211347361e-13}, /* L468 */
-{4.6173148309524361e+00, 2.4041879598257765e-13,
- 2.2204460492503131e-16, 1.8496315590255108e-13,
- 7.8381745538536052e-14}, /* L469 */
-{3.8223768850940956e+00, 1.9945156637390937e-13,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- 2.1538326677728037e-14}, /* L470 */
-{2.9931283374943698e+00, 1.5651369089653144e-13,
- 2.2204460492503131e-16, 5.3468340865947539e-13,
- -2.2715163083830703e-13}, /* L471 */
-{3.3652333703068122e+00, 1.7634504967389830e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- -9.9920072216264089e-16}, /* L472 */
-{3.9281558617627979e+00, 2.0627943797535409e-13,
- 2.2204460492503131e-16, -1.5920598173124745e-13,
- 1.9251267247000214e-13}, /* L473 */
-{4.0902288878736259e+00, 2.1524448889920222e-13,
- 2.2204460492503131e-16, -4.5630166312093934e-14,
- -4.8072656966269278e-14}, /* L474 */
-{3.1484510839815445e+00, 1.6603385333269216e-13,
- 2.2204460492503131e-16, -8.3488771451811772e-14,
- 2.7977620220553945e-14}, /* L475 */
-{3.2379510530979623e+00, 1.7111312367035225e-13,
- 2.2204460492503131e-16, 7.8581585682968580e-13,
- -1.4657164371101317e-12}, /* L476 */
-{3.7033896223016911e+00, 1.9612089730003390e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-14,
- 4.6407322429331543e-14}, /* L477 */
-{2.9404046159472892e+00, 1.5604184611106575e-13,
- 2.2204460492503131e-16, -2.1593837828959295e-13,
- 1.0391687510491465e-13}, /* L478 */
-{4.3502502629243827e+00, 2.3134272275626699e-13,
- 2.2204460492503131e-16, -1.3589129821411916e-13,
- 1.0147438445073931e-13}, /* L479 */
-{3.2906563877714197e+00, 1.7535972673954348e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-14,
- 4.2188474935755949e-14}, /* L480 */
-{3.6060635022919021e+00, 1.9256818362123340e-13,
- 2.2204460492503131e-16, -6.4892535789340400e-13,
- 8.2822637637036678e-13}, /* L481 */
-{3.5954699798673833e+00, 1.9240165016753963e-13,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- -1.8374191057546341e-13}, /* L482 */
-{4.0621505478743352e+00, 2.1782575743145571e-13,
- 2.2204460492503131e-16, -5.3734794391857577e-14,
- -5.6621374255882984e-14}, /* L483 */
-{4.2218894438472043e+00, 2.2686019729434292e-13,
- 2.2204460492503131e-16, -9.9698027611339057e-14,
- -6.6280314570121845e-14}, /* L484 */
-{3.5518380027505194e+00, 1.9124979377949103e-13,
- 2.2204460492503131e-16, -5.2957638274619967e-14,
- 6.4392935428259079e-14}, /* L485 */
-{5.5710407934319894e+00, 3.0059288391726113e-13,
- 2.2204460492503131e-16, -2.6312285683616210e-14,
- 7.5495165674510645e-15}, /* L486 */
-{3.3485945687482519e+00, 1.8104961974074740e-13,
- 2.2204460492503131e-16, 4.1966430330830917e-14,
- 2.0428103653102880e-14}, /* L487 */
-{3.5481895819436158e+00, 1.9223511671384585e-13,
- 2.2204460492503131e-16, 2.0228263508670352e-13,
- -2.6578739209526248e-13}, /* L488 */
-{3.6318086704658814e+00, 1.9716867027952389e-13,
- 2.2204460492503131e-16, -6.7723604502134549e-14,
- 5.6177285046032921e-14}, /* L489 */
-{3.9439151698700874e+00, 2.1455059950881150e-13,
- 2.2204460492503131e-16, -4.9737991503207013e-14,
- 1.8429702208777599e-14}, /* L490 */
-{3.2423934528758043e+00, 1.7674750552032492e-13,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 5.7731597280508140e-15}, /* L491 */
-{3.5584689016346811e+00, 1.9437229603624928e-13,
- 2.2204460492503131e-16, 5.7531757136075612e-13,
- -2.8688162956314045e-13}, /* L492 */
-{4.0091660302878411e+00, 2.1943558081716219e-13,
- 2.2204460492503131e-16, -9.3480778673438181e-14,
- 1.1146639167236572e-13}, /* L493 */
-{4.4038881601236666e+00, 2.4152901900720281e-13,
- 2.2204460492503131e-16, -1.6187051699034782e-13,
- 1.6564527527407336e-13}, /* L494 */
-{3.7475104929274150e+00, 2.0594637106796654e-13,
- 2.2204460492503131e-16, 3.6637359812630166e-14,
- -4.5519144009631418e-15}, /* L495 */
-{3.7994314019880351e+00, 2.0922152899061075e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 3.5305092183079978e-14}, /* L496 */
-{5.2745724440579584e+00, 2.9103802701158088e-13,
- 2.2204460492503131e-16, -9.7033492352238682e-14,
- -4.5519144009631418e-15}, /* L497 */
-{3.8815631285252312e+00, 2.1460611066004276e-13,
- 2.2204460492503131e-16, -4.3298697960381105e-14,
- -1.6875389974302379e-14}, /* L498 */
-{2.8667608113945451e+00, 1.5881740367262864e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 2.3980817331903381e-14}, /* L499 */
-{3.6490348061458717e+00, 2.0256019084285981e-13,
- 2.2204460492503131e-16, -1.2634338020234281e-13,
- 9.2814644858663087e-14}, /* L500 */
-{3.9581215866889532e+00, 2.2015722578316854e-13,
- 2.2204460492503131e-16, 2.7111646261346323e-13,
- -2.8588242884097781e-13}, /* L501 */
-{3.4910691559654201e+00, 1.9456658506555868e-13,
- 2.2204460492503131e-16, 1.0436096431476471e-13,
- 5.7154281307703059e-13}, /* L502 */
-{3.7845788425529832e+00, 2.1134483052520636e-13,
- 2.2204460492503131e-16, -1.4570566975180554e-12,
- -1.6442402994698568e-13}, /* L503 */
-{3.1032042029420688e+00, 1.7363888105137448e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 1.9984014443252818e-14}, /* L504 */
-{3.5480536449231250e+00, 1.9892421043721242e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -5.4400928206632670e-15}, /* L505 */
-{4.5573557230861050e+00, 2.5601742947856110e-13,
- 2.2204460492503131e-16, 4.1389114358025836e-13,
- -2.7977620220553945e-14}, /* L506 */
-{4.1371203295775203e+00, 2.3286927941512658e-13,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- 6.7501559897209518e-14}, /* L507 */
-{4.3248444019275958e+00, 2.4391599851014689e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- -4.7928327973068008e-13}, /* L508 */
-{4.3831459341647898e+00, 2.4769075679387242e-13,
- 2.2204460492503131e-16, -3.0975222387041867e-14,
- 2.1049828546892968e-13}, /* L509 */
-{3.5363082407130602e+00, 2.0022872249114698e-13,
- 2.2204460492503131e-16, -1.5110135365148381e-13,
- 0.0000000000000000e+00}, /* L510 */
-{3.5440651160528507e+00, 2.0106138975961585e-13,
- 2.2204460492503131e-16, -9.5257135512838431e-14,
- 3.7081449022480228e-14}, /* L511 */
-{3.4482750787088032e+00, 1.9600987499757139e-13,
- 2.2204460492503131e-16, -1.0569323194431490e-13,
- 3.0486724256206799e-13}, /* L512 */
-{4.1048149820437674e+00, 2.3378521341044234e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -5.0737192225369654e-14}, /* L513 */
-{4.1089886097355457e+00, 2.3447910280083306e-13,
- 2.2204460492503131e-16, -1.2445600106048005e-13,
- -7.2164496600635175e-14}, /* L514 */
-{3.5738204964842240e+00, 2.0433654768226006e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- -3.9301895071730542e-14}, /* L515 */
-{4.7948616270350248e+00, 2.7468305408007154e-13,
- 2.2204460492503131e-16, -5.1958437552457326e-14,
- -2.2204460492503131e-16}, /* L516 */
-{3.4917850061108600e+00, 2.0042301152045638e-13,
- 2.2204460492503131e-16, 1.4210854715202004e-14,
- -1.0591527654923993e-13}, /* L517 */
-{3.5415113789739983e+00, 2.0367041386748497e-13,
- 2.2204460492503131e-16, 7.1054273576010019e-14,
- -2.2426505097428162e-14}, /* L518 */
-{5.5915309797948725e+00, 3.2218672174622043e-13,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.4876988529977098e-14}, /* L519 */
-{4.2031316313108409e+00, 2.4265311981963578e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 1.0014211682118912e-13}, /* L520 */
-{3.5383932984609978e+00, 2.0466961458964761e-13,
- 2.2204460492503131e-16, 8.2978068860484200e-13,
- -3.2096547641913276e-13}, /* L521 */
-{4.4238575542643650e+00, 2.5637825196156427e-13,
- 2.2204460492503131e-16, -3.6970426720017713e-14,
- 4.2854608750531042e-14}, /* L522 */
-{3.6540449619535385e+00, 2.1217055889977132e-13,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- -4.6296300126869028e-14}, /* L523 */
-{4.2576403050934264e+00, 2.4769075679387242e-13,
- 2.2204460492503131e-16, 2.5801583092288638e-13,
- -1.1635137298071641e-13}, /* L524 */
-{4.5695310189025147e+00, 2.6634250360757505e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- -4.2699177527083521e-13}, /* L525 */
-{3.4539027876491226e+00, 2.0169976799877531e-13,
- 2.2204460492503131e-16, -5.4511950509095186e-14,
- -1.0880185641326534e-14}, /* L526 */
-{2.8842550248924392e+00, 1.6875389974302379e-13,
- 2.2204460492503131e-16, -1.3045120539345589e-13,
- -4.4186876380081230e-14}, /* L527 */
-{2.6875042400933435e+00, 1.5754064719430971e-13,
- 2.2204460492503131e-16, -1.3000711618360583e-13,
- -1.3233858453531866e-13}, /* L528 */
-{2.8705149258070182e+00, 1.6858736628933002e-13,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- 2.6445512446571229e-13}, /* L529 */
-{6.1905758046478176e+00, 3.6426417437951386e-13,
- 2.2204460492503131e-16, 3.6259883984257613e-13,
- 5.8775206923655787e-13}, /* L530 */
-{4.5357887003770578e+00, 2.6739721548096895e-13,
- 2.2204460492503131e-16, 3.5278446830488974e-12,
- 2.5850432905372145e-12}, /* L531 */
-{4.4924882908376471e+00, 2.6534330288541241e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-14,
- -2.1316282072803006e-14}, /* L532 */
-{3.8780548988759556e+00, 2.2948309919001986e-13,
- 2.2204460492503131e-16, -6.5515370906155113e-12,
- -1.9999557565597570e-12}, /* L533 */
-{4.1001937348218798e+00, 2.4308333124167802e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-14,
- 1.5809575870662229e-13}, /* L534 */
-{3.8168284517442164e+00, 2.2670754162845697e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- 1.3744561044859438e-13}, /* L535 */
-{3.3936620706212892e+00, 2.0194956817931597e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -2.0095036745715333e-14}, /* L536 */
-{5.8512662148179100e+00, 3.4884595212503200e-13,
- 2.2204460492503131e-16, 2.3758772726978350e-13,
- -3.0409008644483038e-13}, /* L537 */
-{3.9429662580208169e+00, 2.3551299799251524e-13,
- 2.2204460492503131e-16, -1.5099033134902129e-14,
- -1.1202150318467829e-13}, /* L538 */
-{4.6011204317618626e+00, 2.7533531010703882e-13,
- 2.2204460492503131e-16, 2.4202861936828413e-14,
- -3.6304292905242619e-14}, /* L539 */
-{2.8611156251133827e+00, 1.7152945730458669e-13,
- 2.2204460492503131e-16, 7.2164496600635175e-14,
- 2.8643754035329039e-14}, /* L540 */
-{3.4253750900061335e+00, 2.0573820425084932e-13,
- 2.2204460492503131e-16, -2.2981616609740740e-14,
- 1.6431300764452317e-14}, /* L541 */
-{3.9704859690604652e+00, 2.3891999489933369e-13,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- 4.0190073491430667e-14}, /* L542 */
-{3.9539657225365192e+00, 2.3836488338702111e-13,
- 2.2204460492503131e-16, -8.4987572535055733e-13,
- 8.2667206413589156e-13}, /* L543 */
-{4.6378749642641965e+00, 2.8010926911292700e-13,
- 2.2204460492503131e-16, 5.8997251528580819e-13,
- -3.4339198151656092e-13}, /* L544 */
-{3.3651429238880635e+00, 2.0361490271625371e-13,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- -3.6404212977458883e-13}, /* L545 */
-{4.3910325687893002e+00, 2.6617597015388128e-13,
- 2.2204460492503131e-16, 4.0412118096355698e-14,
- 2.8865798640254070e-14}, /* L546 */
-{4.3226759241209765e+00, 2.6251223417261826e-13,
- 2.2204460492503131e-16, -9.7033492352238682e-14,
- -4.2077452633293433e-14}, /* L547 */
-{3.7408818144226443e+00, 2.2759572004815709e-13,
- 2.2204460492503131e-16, -1.2267964422107980e-13,
- 3.4283687000424834e-13}, /* L548 */
-{5.8852551868468721e+00, 3.5871305925638808e-13,
- 2.2204460492503131e-16, 1.3766765505351941e-13,
- -1.8540724511240114e-13}, /* L549 */
-{3.4245508574836867e+00, 2.0911050668814823e-13,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 3.1752378504279477e-14}, /* L550 */
-{4.5471941069898625e+00, 2.7816637881983297e-13,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -1.1879386363489175e-13}, /* L551 */
-{4.2056225772699012e+00, 2.5773827516673009e-13,
- 2.2204460492503131e-16, -4.9849013805669529e-14,
- 5.9952043329758453e-14}, /* L552 */
-{3.2875277907270548e+00, 2.0183854587685346e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-15,
- -4.3409720262843621e-13}, /* L553 */
-{4.1417032852955611e+00, 2.5474067300024217e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- 2.6645352591003757e-14}, /* L554 */
-{3.6833391445634125e+00, 2.2695734180899763e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- 1.3899992268306960e-13}, /* L555 */
-{4.3682622875204240e+00, 2.6964541710583489e-13,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- -6.9722005946459831e-14}, /* L556 */
-{4.5152674469234402e+00, 2.7922109069322687e-13,
- 2.2204460492503131e-16, 3.2507330161024584e-13,
- -4.4464432136237519e-13}, /* L557 */
-{5.4617021653525271e+00, 3.3835434454232427e-13,
- 2.2204460492503131e-16, 3.7525538232330291e-14,
- -5.4845017416482733e-14}, /* L558 */
-{4.7701327494863746e+00, 2.9604096951629799e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-14,
- 5.9952043329758453e-15}, /* L559 */
-{3.5267912785288869e+00, 2.1926904736346842e-13,
- 2.2204460492503131e-16, -2.1027624086400465e-13,
- -2.7866597918091429e-14}, /* L560 */
-{4.1343648115858072e+00, 2.5750235277399725e-13,
- 2.2204460492503131e-16, 9.0594198809412774e-14,
- -1.5987211554602254e-13}, /* L561 */
-{4.2958252828921033e+00, 2.6803559372012842e-13,
- 2.2204460492503131e-16, -1.1401990462900358e-13,
- 2.1138646388862981e-13}, /* L562 */
-{3.4689219915929117e+00, 2.1682655670929307e-13,
- 2.2204460492503131e-16, -1.3089529460330596e-13,
- 1.0480505352461478e-13}, /* L563 */
-{4.5077365001846319e+00, 2.8225859149966226e-13,
- 2.2204460492503131e-16, -1.2645440250480533e-13,
- -1.5198953207118393e-13}, /* L564 */
-{3.4761116789720798e+00, 2.1804780203638074e-13,
- 2.2204460492503131e-16, -1.6986412276764895e-13,
- -3.7958525211934102e-13}, /* L565 */
-{4.8957674413758507e+00, 3.0764280012363088e-13,
- 2.2204460492503131e-16, -1.3622436512150671e-13,
- -5.1769699638271049e-13}, /* L566 */
-{4.0467435979766533e+00, 2.5474067300024217e-13,
- 2.2204460492503131e-16, 2.0983215165415459e-13,
- -1.8474111129762605e-13}, /* L567 */
-{3.3292306046620355e+00, 2.0994317395661710e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 1.7719159473017498e-13}, /* L568 */
-{4.8400779349895799e+00, 3.0575542098176811e-13,
- 2.2204460492503131e-16, -4.2466030691912238e-13,
- 1.9007018181582680e-13}, /* L569 */
-{4.2587786489285850e+00, 2.6950663922775675e-13,
- 2.2204460492503131e-16, -1.5953904863863499e-13,
- -2.4868995751603507e-14}, /* L570 */
-{4.2548228249490370e+00, 2.6972868383268178e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-14,
- -3.4416913763379853e-15}, /* L571 */
-{4.3138179947530322e+00, 2.7394753132625738e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- 5.2846615972157451e-14}, /* L572 */
-{3.1963401214141882e+00, 2.0333734696009742e-13,
- 2.2204460492503131e-16, 1.1977085989656189e-12,
- 2.1693757901175559e-13}, /* L573 */
-{4.7064534184307902e+00, 2.9992675010248604e-13,
- 2.2204460492503131e-16, 1.3433698597964394e-13,
- -2.9731772599461692e-13}, /* L574 */
-{3.5582664834680315e+00, 2.2715163083830703e-13,
- 2.2204460492503131e-16, -3.4416913763379853e-14,
- 4.6185277824406512e-14}, /* L575 */
-{4.9314313914632564e+00, 3.1535885014477572e-13,
- 2.2204460492503131e-16, -2.9420910152566648e-14,
- -6.5503158452884236e-15}, /* L576 */
-{3.6863143081202274e+00, 2.3614443733777080e-13,
- 2.2204460492503131e-16, -4.9638071430990749e-13,
- -6.8189898172477115e-13}, /* L577 */
-{5.8918778077122651e+00, 3.7808645103609706e-13,
- 2.2204460492503131e-16, 2.7691182680200654e-12,
- 1.5742962489184720e-12}, /* L578 */
-{4.6865358913905313e+00, 3.0125901773203623e-13,
- 2.2204460492503131e-16, -9.6034291630076041e-14,
- 3.1308289294429414e-14}, /* L579 */
-{3.4931089593791089e+00, 2.2493118478905672e-13,
- 2.2204460492503131e-16, 1.2168044349891716e-13,
- -1.8984813721090177e-14}, /* L580 */
-{3.4965093890993519e+00, 2.2553833800564860e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.5723867480564877e-13}, /* L581 */
-{4.1709687798798241e+00, 2.6950663922775675e-13,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- 5.8841820305133297e-14}, /* L582 */
-{4.3404871224539709e+00, 2.8094193638139586e-13,
- 2.2204460492503131e-16, -6.8578476231095920e-13,
- -5.3224091800530005e-13}, /* L583 */
-{4.4422159126112470e+00, 2.8801960816338124e-13,
- 2.2204460492503131e-16, 7.9625195326116227e-13,
- 1.3131717935266352e-12}, /* L584 */
-{4.4299215190316472e+00, 2.8771429683160932e-13,
- 2.2204460492503131e-16, -6.6169292267659330e-14,
- 3.5837999234900053e-13}, /* L585 */
-{4.5232579896181191e+00, 2.9427849046470556e-13,
- 2.2204460492503131e-16, 1.1235457009206584e-13,
- -9.3924867883288243e-14}, /* L586 */
-{4.6192577137269257e+00, 3.0103697312711120e-13,
- 2.2204460492503131e-16, 3.4727776210274897e-13,
- -1.4810375148499588e-13}, /* L587 */
-{4.8469464225722128e+00, 3.1641356201816961e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- 2.4202861936828413e-14}, /* L588 */
-{4.2921332572966966e+00, 2.8067131951914348e-13,
- 2.2204460492503131e-16, 3.9102054927298013e-13,
- -5.7398530373120593e-14}, /* L589 */
-{3.2113398123167580e+00, 2.1035256869694763e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 4.3964831775156199e-14}, /* L590 */
-{4.8781802851724940e+00, 3.2007729799943263e-13,
- 2.2204460492503131e-16, 5.4622972811557702e-14,
- 4.7295500849031669e-14}, /* L591 */
-{5.3674071168447686e+00, 3.5277336607464349e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 5.5733195836182858e-14}, /* L592 */
-{4.3692627956081189e+00, 2.8765531623342611e-13,
- 2.2204460492503131e-16, -7.1054273576010019e-14,
- 3.6193270602780103e-14}, /* L593 */
-{3.8089285682960532e+00, 2.5118795932144167e-13,
- 2.2204460492503131e-16, 1.0857981180834031e-13,
- -4.2188474935755949e-15}, /* L594 */
-{5.1588316685347717e+00, 3.4078295740869180e-13,
- 2.2204460492503131e-16, -3.9146463848283020e-13,
- -3.6382008516966380e-13}, /* L595 */
-{5.3028607153457576e+00, 3.5088598693278072e-13,
- 2.2204460492503131e-16, 3.6237679523765109e-13,
- -6.1373128801278654e-13}, /* L596 */
-{5.3714490105762254e+00, 3.5602076842167207e-13,
- 2.2204460492503131e-16, 1.0740297540223764e-12,
- 4.6274095666376525e-13}, /* L597 */
-{5.2031854666274162e+00, 3.4544589411211746e-13,
- 2.2204460492503131e-16, -1.1812772982011666e-13,
- 1.1635137298071641e-13}, /* L598 */
-{4.2015926055086226e+00, 2.7941537972253627e-13,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- 4.2188474935755949e-15}, /* L599 */
-{4.7225074506925866e+00, 3.1458169402753811e-13,
- 2.2204460492503131e-16, 3.7112535267169733e-12,
- 4.2388315080188477e-13}, /* L600 */
-{4.4700569692449239e+00, 2.9826141556554830e-13,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- 1.3988810110276972e-13}, /* L601 */
-{4.2234285902430830e+00, 2.8227420401094605e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -2.6711965972481266e-13}, /* L602 */
-{3.8620500399823783e+00, 2.5855012575348724e-13,
- 2.2204460492503131e-16, 2.9303226511956382e-12,
- -6.7367222911229874e-12}, /* L603 */
-{3.9147412756285060e+00, 2.6251223417261826e-13,
- 2.2204460492503131e-16, 2.5721647034515627e-12,
- -1.8585133432225120e-13}, /* L604 */
-{5.1659172412121013e+00, 3.4698632855878486e-13,
- 2.2204460492503131e-16, 7.4829031859735551e-14,
- -1.8562928971732617e-13}, /* L605 */
-{3.9443131536491096e+00, 2.6537105846102804e-13,
- 2.2204460492503131e-16, -1.3832268663804825e-12,
- 1.0667022820598504e-12}, /* L606 */
-{3.7924277296305902e+00, 2.5557334026871104e-13,
- 2.2204460492503131e-16, -3.7414515929867775e-14,
- -1.3478107518949400e-13}, /* L607 */
-{4.1801052791859110e+00, 2.8216318170848353e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-14,
- -1.9706458687096529e-13}, /* L608 */
-{4.1727282582189300e+00, 2.8212848723896400e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- 2.3980817331903381e-14}, /* L609 */
-{4.8295158162834291e+00, 3.2707170305457112e-13,
- 2.2204460492503131e-16, 2.5535129566378600e-14,
- 5.0404125317982107e-14}, /* L610 */
-{4.9048768055619369e+00, 3.3271996269235160e-13,
- 2.2204460492503131e-16, -1.3211653993039363e-14,
- -2.9864999362416711e-14}, /* L611 */
-{3.3041310299420852e+00, 2.2450097336701447e-13,
- 2.2204460492503131e-16, -3.5094149808401198e-13,
- -4.4964032497318840e-14}, /* L612 */
-{7.4885925652104461e+00, 5.0964787945417811e-13,
- 2.2204460492503131e-16, -3.5915714846623814e-13,
- -4.4475534366483771e-13}, /* L613 */
-{7.2035944270469310e+00, 4.9105164379170674e-13,
- 2.2204460492503131e-16, -3.3084646133829665e-14,
- -6.6058269965196814e-14}, /* L614 */
-{5.8260254519245347e+00, 3.9779290972319359e-13,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -7.4718009557273035e-14}, /* L615 */
-{4.6903483090863878e+00, 3.2077118738982335e-13,
- 2.2204460492503131e-16, -1.9961809982760315e-13,
- -1.4588330543574557e-13}, /* L616 */
-{4.4898774240667665e+00, 3.0755953339678399e-13,
- 2.2204460492503131e-16, 4.1566750041965861e-13,
- 1.0214051826551440e-13}, /* L617 */
-{4.9787699909637064e+00, 3.4160174688935285e-13,
- 2.2204460492503131e-16, -1.6431300764452317e-14,
- -2.7200464103316335e-14}, /* L618 */
-{5.2439501150833578e+00, 3.6037839379332581e-13,
- 2.2204460492503131e-16, 9.9253938401488995e-14,
- 6.2283511681471282e-13}, /* L619 */
-{4.2258131187057746e+00, 2.9087843245179101e-13,
- 2.2204460492503131e-16, 3.5638159090467525e-13,
- 5.8286708792820718e-13}, /* L620 */
-{5.1240016429460367e+00, 3.5327296643572481e-13,
- 2.2204460492503131e-16, 4.3298697960381105e-13,
- 3.6837199957062694e-13}, /* L621 */
-{3.9485592830016762e+00, 2.7267077484793845e-13,
- 2.2204460492503131e-16, 9.6098240476294450e-11,
- -8.3841489306735184e-11}, /* L622 */
-{4.3876473718545217e+00, 3.0347946378128654e-13,
- 2.2204460492503131e-16, 7.6227912870763248e-13,
- -3.2596148002994596e-13}, /* L623 */
-{5.1935178092343115e+00, 3.5979552670539761e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- -1.6853185513809876e-13}, /* L624 */
-{3.9853062876460603e+00, 2.7653573875241477e-13,
- 2.2204460492503131e-16, 1.3122836151069350e-13,
- -1.2212453270876722e-14}, /* L625 */
-{5.2052797779027502e+00, 3.6176617257410726e-13,
- 2.2204460492503131e-16, -4.7295500849031669e-14,
- -1.4432899320127035e-15}, /* L626 */
-{5.5980949565519929e+00, 3.8968828164342995e-13,
- 2.2204460492503131e-16, 9.1482377229112899e-14,
- 1.7030821197749901e-13}, /* L627 */
-{3.8051413537108512e+00, 2.6530166952198897e-13,
- 2.2204460492503131e-16, -2.6756374893466273e-14,
- 6.6791017161449417e-13}, /* L628 */
-{4.8489742639282376e+00, 3.3861802251067274e-13,
- 2.2204460492503131e-16, -1.3467005288703149e-13,
- 4.5741188614556449e-14}, /* L629 */
-{5.1325477801489239e+00, 3.5899061501254437e-13,
- 2.2204460492503131e-16, 2.4540369736314460e-12,
- 1.7916779171400776e-12}, /* L630 */
-{5.5871720478792941e+00, 3.9140912733159894e-13,
- 2.2204460492503131e-16, -6.0385030309362264e-13,
- -3.7858605139717838e-14}, /* L631 */
-{5.2257796055009651e+00, 3.6667197056416967e-13,
- 2.2204460492503131e-16, -9.1382457156896635e-13,
- 7.5939254884360707e-14}, /* L632 */
-{3.7746899995890235e+00, 2.6527391394637334e-13,
- 2.2204460492503131e-16, -4.5852210917018965e-14,
- 5.5511151231257827e-14}, /* L633 */
-{4.5946444729663307e+00, 3.2340796707330810e-13,
- 2.2204460492503131e-16, 3.6792791036077688e-13,
- 4.0456527017340704e-13}, /* L634 */
-{5.5968592239046968e+00, 3.9457326295178063e-13,
- 2.2204460492503131e-16, 7.8603790143461083e-14,
- 2.0472512574087887e-13}, /* L635 */
-{4.5522870563855422e+00, 3.2143732120459845e-13,
- 2.2204460492503131e-16, -3.0486724256206799e-13,
- 1.7519319328584970e-13}, /* L636 */
-{5.7362727864181418e+00, 4.0567549319803220e-13,
- 2.2204460492503131e-16, -4.9626969200744497e-14,
- 4.9471537977296975e-13}, /* L637 */
-{4.7821392062565806e+00, 3.3872904481313526e-13,
- 2.2204460492503131e-16, -1.3822276656583199e-13,
- -1.6220358389773537e-13}, /* L638 */
-{4.9984429408416693e+00, 3.5460523406527500e-13,
- 2.2204460492503131e-16, 1.6802115254677119e-12,
- -5.8375526634790731e-13}, /* L639 */
-{5.5650478425127439e+00, 3.9541980800805732e-13,
- 2.2204460492503131e-16, -4.4264591991804991e-13,
- -3.1874503036988244e-13}, /* L640 */
-{4.7527376076324490e+00, 3.3822944445205394e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- 5.9952043329758453e-15}, /* L641 */
-{5.4478279097141842e+00, 3.8830050286264850e-13,
- 2.2204460492503131e-16, 5.0293103015519591e-13,
- 7.6871842225045839e-13}, /* L642 */
-{3.6998503162827618e+00, 2.6412205755832474e-13,
- 2.2204460492503131e-16, 3.0642155479654321e-14,
- -2.3014923300479495e-13}, /* L643 */
-{4.8757840900745046e+00, 3.4861002973229915e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -5.9396931817445875e-14}, /* L644 */
-{4.5852785520555139e+00, 3.2834845953289005e-13,
- 2.2204460492503131e-16, -7.2497563508022722e-14,
- 3.8635761256955448e-14}, /* L645 */
-{4.1625452669682401e+00, 2.9853897132170459e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- -1.5099033134902129e-14}, /* L646 */
-{4.7218003398789312e+00, 3.3917313402298532e-13,
- 2.2204460492503131e-16, -9.1593399531575415e-14,
- 8.3488771451811772e-14}, /* L647 */
-{5.4020146956345565e+00, 3.8863356977003605e-13,
- 2.2204460492503131e-16, -8.4932061383824475e-14,
- 1.0103029524088925e-13}, /* L648 */
-{4.4668791583667025e+00, 3.2185365483883288e-13,
- 2.2204460492503131e-16, 1.0591527654923993e-13,
- -1.8207657603852567e-14}, /* L649 */
-{5.8053937745955411e+00, 4.1894265834230282e-13,
- 2.2204460492503131e-16, -1.9162449405030202e-13,
- 1.4876988529977098e-14}, /* L650 */
-{4.8479339158985644e+00, 3.5038638657169940e-13,
- 2.2204460492503131e-16, -1.4555023852835802e-13,
- 3.8213876507597888e-13}, /* L651 */
-{3.5874289727938069e+00, 2.5968116545982411e-13,
- 2.2204460492503131e-16, -6.1251004268569886e-13,
- -9.8809849191638932e-14}, /* L652 */
-{5.0911259496093955e+00, 3.6909364453663329e-13,
- 2.2204460492503131e-16, -1.8618440122963875e-13,
- -1.2034817586936697e-13}, /* L653 */
-{4.0734009220451721e+00, 2.9576341376014170e-13,
- 2.2204460492503131e-16, -3.7636560534792807e-14,
- -1.4777068457760834e-13}, /* L654 */
-{4.2603120650350972e+00, 3.0980773502164993e-13,
- 2.2204460492503131e-16, -1.1257661469699087e-13,
- -2.8199664825478976e-14}, /* L655 */
-{4.7033229692459528e+00, 3.4254543646028424e-13,
- 2.2204460492503131e-16, 4.7961634663806763e-14,
- 1.7141843500212417e-13}, /* L656 */
-{3.7293628092609543e+00, 2.7202545771487507e-13,
- 2.2204460492503131e-16, 2.0872192862952943e-14,
- 6.9944050551384862e-14}, /* L657 */
-{4.8294149142344462e+00, 3.5280112165025912e-13,
- 2.2204460492503131e-16, -1.1468603844377867e-13,
- -1.3322676295501878e-15}, /* L658 */
-{4.3861981189216932e+00, 3.2090996526790150e-13,
- 2.2204460492503131e-16, -3.8968828164342995e-14,
- -1.5543122344752192e-15}, /* L659 */
-{5.0192314037204078e+00, 3.6778219358879483e-13,
- 2.2204460492503131e-16, 6.4859229098601645e-13,
- -2.9609648066752925e-13}, /* L660 */
-{4.4485698022013818e+00, 3.2646108039102728e-13,
- 2.2204460492503131e-16, -4.9071857688431919e-14,
- -4.2743586448068527e-14}, /* L661 */
-{4.6216085000014431e+00, 3.3967273438406664e-13,
- 2.2204460492503131e-16, 2.6800783814451279e-13,
- 1.7363888105137448e-13}, /* L662 */
-{5.0028359473086788e+00, 3.6824709948035661e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-14,
- -2.6312285683616210e-14}, /* L663 */
-{4.2213922022854637e+00, 3.1119551380243138e-13,
- 2.2204460492503131e-16, -2.7755575615628914e-13,
- -2.6789681584205027e-13}, /* L664 */
-{4.9649514422614756e+00, 3.6656094826170715e-13,
- 2.2204460492503131e-16, 3.4416913763379853e-14,
- 6.6169292267659330e-14}, /* L665 */
-{4.3292110344270620e+00, 3.2010505357504826e-13,
- 2.2204460492503131e-16, -5.7620574978045624e-14,
- 7.0765615589607478e-13}, /* L666 */
-{4.5877133849938971e+00, 3.3972824553529790e-13,
- 2.2204460492503131e-16, 1.3722356584366935e-13,
- 1.3700152123874432e-13}, /* L667 */
-{5.2133315784024230e+00, 3.8663516832571077e-13,
- 2.2204460492503131e-16, -1.0602629885170245e-13,
- 4.7739590058881731e-14}, /* L668 */
-{4.8157774035650780e+00, 3.5768610295860981e-13,
- 2.2204460492503131e-16, -2.2792878695554464e-13,
- 2.7111646261346323e-13}, /* L669 */
-{3.9753794063123511e+00, 2.9570790260891044e-13,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- 9.3036689463588118e-14}, /* L670 */
-{5.3442707265855951e+00, 3.9812597663058114e-13,
- 2.2204460492503131e-16, -8.0180306838428805e-13,
- 9.8008268167859569e-12}, /* L671 */
-{4.7715849091128026e+00, 3.5599301284605644e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-13,
- -2.8210767055725228e-13}, /* L672 */
-{4.5549848981661780e+00, 3.4033886819884174e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- -5.5844218138645374e-14}, /* L673 */
-{6.0756772414221967e+00, 4.5463632858400160e-13,
- 2.2204460492503131e-16, 4.3876013933186186e-13,
- -2.7644553313166398e-14}, /* L674 */
-{5.2733416531206414e+00, 3.9518388561532447e-13,
- 2.2204460492503131e-16, -6.9833028248922346e-14,
- 1.4432899320127035e-13}, /* L675 */
-{4.7108062488399876e+00, 3.5355052219188110e-13,
- 2.2204460492503131e-16, -1.6875389974302379e-13,
- 1.0524914273446484e-13}, /* L676 */
-{4.3005976270333601e+00, 3.2324143361961433e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-14,
- -1.0424994201230220e-13}, /* L677 */
-{5.5586370884823166e+00, 4.1841530240560587e-13,
- 2.2204460492503131e-16, -3.4328095921409840e-13,
- 6.6835426082434424e-14}, /* L678 */
-{4.5552354636858139e+00, 3.4339198151656092e-13,
- 2.2204460492503131e-16, 5.5866422599137877e-13,
- 1.4879208976026348e-12}, /* L679 */
-{4.6167352249966322e+00, 3.4854064079326008e-13,
- 2.2204460492503131e-16, -1.4002132786572474e-12,
- -7.6849637764553336e-13}, /* L680 */
-{4.3113137036014502e+00, 3.2596148002994596e-13,
- 2.2204460492503131e-16, 7.1476158325367578e-13,
- -8.2156503822261584e-15}, /* L681 */
-{4.6876906802601486e+00, 3.5493830097266255e-13,
- 2.2204460492503131e-16, 9.4591001698063337e-14,
- 1.8474111129762605e-13}, /* L682 */
-{4.0951748358033093e+00, 3.1052937998765628e-13,
- 2.2204460492503131e-16, -1.9884094371036554e-13,
- 3.3306690738754696e-15}, /* L683 */
-{4.0570239446551604e+00, 3.0808688933348094e-13,
- 2.2204460492503131e-16, -6.1506355564233672e-14,
- -1.5221157667610896e-13}, /* L684 */
-{4.3802988816305657e+00, 3.3312241853877822e-13,
- 2.2204460492503131e-16, 2.7289281945286348e-13,
- -1.1979306435705439e-13}, /* L685 */
-{4.7631270483342645e+00, 3.6276537329626990e-13,
- 2.2204460492503131e-16, 6.5303318308451708e-13,
- -1.2208012378778221e-12}, /* L686 */
-{4.3275177445666362e+00, 3.3006930522105904e-13,
- 2.2204460492503131e-16, -1.1037837310823306e-12,
- 1.0458300891968975e-13}, /* L687 */
-{4.8343099527041407e+00, 3.6926017799032707e-13,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- -4.4386716524513758e-13}, /* L688 */
-{4.2746801839584663e+00, 3.2698843632772423e-13,
- 2.2204460492503131e-16, 4.0234482412415673e-13,
- -4.4741987892393809e-14}, /* L689 */
-{4.9855151120428962e+00, 3.8191672047105385e-13,
- 2.2204460492503131e-16, 2.2564172752481682e-12,
- 8.5154105988749507e-13}, /* L690 */
-{4.8552898599357679e+00, 3.7247982476174002e-13,
- 2.2204460492503131e-16, 1.5210055437364645e-13,
- 1.0813572259849025e-13}, /* L691 */
-{6.4544899520722341e+00, 4.9588111394882617e-13,
- 2.2204460492503131e-16, -3.3673064336880998e-13,
- 4.5363712786183896e-13}, /* L692 */
-{4.3052015975420010e+00, 3.3123503939691545e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-14,
- 3.7747582837255322e-15}, /* L693 */
-{4.8883362426205093e+00, 3.7664316110408436e-13,
- 2.2204460492503131e-16, -3.4205971388701073e-13,
- -1.3433698597964394e-13}, /* L694 */
-{4.1410137275420977e+00, 3.1952218648712005e-13,
- 2.2204460492503131e-16, 3.9879211044535623e-13,
- -7.5128792076384343e-13}, /* L695 */
-{5.1544621552201750e+00, 3.9829251008427491e-13,
- 2.2204460492503131e-16, 1.9850787680297799e-13,
- 1.0214051826551440e-14}, /* L696 */
-{5.0868085993807508e+00, 3.9362957338084925e-13,
- 2.2204460492503131e-16, 1.2034817586936697e-13,
- 2.3026025530725747e-13}, /* L697 */
-{4.0505078231738683e+00, 3.1388780463714738e-13,
- 2.2204460492503131e-16, -3.7891911830456593e-13,
- -8.1412654395762729e-13}, /* L698 */
-{5.5822691791439984e+00, 4.3320902420873608e-13,
- 2.2204460492503131e-16, 5.0848214527832170e-14,
- 6.8611782921834674e-14}, /* L699 */
-{4.7735789598809486e+00, 3.7098102367849606e-13,
- 2.2204460492503131e-16, -7.5384143372048129e-14,
- 6.4837024638109142e-14}, /* L700 */
-{4.8766125440770445e+00, 3.7952974096810976e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-13,
- 1.1546319456101628e-13}, /* L701 */
-{4.8956629945778314e+00, 3.8155589798805067e-13,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- 1.5898393712632242e-13}, /* L702 */
-{4.5574396227350977e+00, 3.5570157930209234e-13,
- 2.2204460492503131e-16, -9.2592600253738055e-14,
- -3.3884006711559778e-13}, /* L703 */
-{3.8313270674372735e+00, 2.9945490531702035e-13,
- 2.2204460492503131e-16, -3.3473224192448470e-13,
- 4.1144865292608301e-13}, /* L704 */
-{4.9936248997541961e+00, 3.9085401581928636e-13,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 1.1524114995609125e-13}, /* L705 */
-{5.2000790257307736e+00, 4.0759062791551059e-13,
- 2.2204460492503131e-16, -5.8730798002670781e-14,
- 6.7501559897209518e-14}, /* L706 */
-{4.5208699331723494e+00, 3.5485503424581566e-13,
- 2.2204460492503131e-16, -4.0301095793893182e-14,
- -3.6004532688593827e-13}, /* L707 */
-{5.2118726295850646e+00, 4.0967229608668276e-13,
- 2.2204460492503131e-16, 2.9398705692074145e-13,
- 9.8809849191638932e-14}, /* L708 */
-{5.1026173593219104e+00, 4.0165093473376601e-13,
- 2.2204460492503131e-16, -1.3100631690576847e-14,
- 3.0864200084579352e-14}, /* L709 */
-{5.5052903758769300e+00, 4.3395842475035806e-13,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 5.0848214527832170e-14}, /* L710 */
-{4.6455769496069941e+00, 3.6670666503368921e-13,
- 2.2204460492503131e-16, 1.0369483049998962e-13,
- -9.4713126230772104e-13}, /* L711 */
-{4.5674229363923331e+00, 3.6104452760810091e-13,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 3.1086244689504383e-15}, /* L712 */
-{5.6483258819505098e+00, 4.4711456759216617e-13,
- 2.2204460492503131e-16, 8.6153306710912148e-14,
- -3.2385205628315816e-13}, /* L713 */
-{6.1043513675384222e+00, 4.8389070528287448e-13,
- 2.2204460492503131e-16, 3.6570746431152656e-13,
- -1.3148371280635729e-12}, /* L714 */
-{7.1937176432799417e+00, 5.7104321271594927e-13,
- 2.2204460492503131e-16, -1.5554224574998443e-13,
- -9.3147711766050634e-14}, /* L715 */
-{5.4015448349052813e+00, 4.2937875477377929e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -1.3244960683778118e-13}, /* L716 */
-{5.7921988176118182e+00, 4.6107562212682751e-13,
- 2.2204460492503131e-16, 1.9539925233402755e-14,
- -1.4210854715202004e-14}, /* L717 */
-{4.8650407536028704e+00, 3.8781131084242304e-13,
- 2.2204460492503131e-16, -3.1030733538273125e-13,
- 1.1457501614131615e-13}, /* L718 */
-{4.8727476043194313e+00, 3.8896663667742359e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- -3.8968828164342995e-14}, /* L719 */
-{4.7618130683010955e+00, 3.8063996399273492e-13,
- 2.2204460492503131e-16, -1.5765166949677223e-14,
- 1.8030021919912542e-13}, /* L720 */
-{5.0866931848039627e+00, 4.0717429428127616e-13,
- 2.2204460492503131e-16, 3.2485125700532080e-13,
- 3.6570746431152656e-13}, /* L721 */
-{4.9407972688145305e+00, 3.9604430845940897e-13,
- 2.2204460492503131e-16, -1.5532020114505940e-13,
- 4.4186876380081230e-14}, /* L722 */
-{5.0565432474535674e+00, 4.0588366001514942e-13,
- 2.2204460492503131e-16, -3.6082248300317588e-14,
- 4.0634162701280729e-14}, /* L723 */
-{5.3266658624814962e+00, 4.2815750944669162e-13,
- 2.2204460492503131e-16, 1.2390088954816747e-13,
- 3.9079850466805510e-14}, /* L724 */
-{4.5738003195614167e+00, 3.6814995496570191e-13,
- 2.2204460492503131e-16, -1.0236256287043943e-13,
- 2.8776980798284058e-13}, /* L725 */
-{4.9128865389655330e+00, 3.9598879730817771e-13,
- 2.2204460492503131e-16, -3.9879211044535623e-13,
- -2.0305979120394113e-13}, /* L726 */
-{5.1033436774298595e+00, 4.1190661992374089e-13,
- 2.2204460492503131e-16, 1.4299672557172016e-13,
- -6.8811623066267202e-13}, /* L727 */
-{5.4828383206431903e+00, 4.4314552027913123e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- -6.8722805224297190e-14}, /* L728 */
-{5.8038500346897228e+00, 4.6973536171890373e-13,
- 2.2204460492503131e-16, -2.0150547896946591e-13,
- 1.7452705947107461e-13}, /* L729 */
-{4.9575420681228604e+00, 4.0178971261184415e-13,
- 2.2204460492503131e-16, -1.9750867608081535e-13,
- -3.8213876507597888e-13}, /* L730 */
-{5.9695716617334540e+00, 4.8447357237080269e-13,
- 2.2204460492503131e-16, -4.5363712786183896e-13,
- 4.6451731350316550e-13}, /* L731 */
-{5.0747230422844911e+00, 4.1241359285959511e-13,
- 2.2204460492503131e-16, 1.2723155862204294e-13,
- 7.4384942649885488e-14}, /* L732 */
-{5.9684609853781447e+00, 4.8570869548569817e-13,
- 2.2204460492503131e-16, -4.8960835385969403e-14,
- -8.4043882964124350e-14}, /* L733 */
-{4.3092711039445959e+00, 3.5116354268893701e-13,
- 2.2204460492503131e-16, -9.3591800975900696e-14,
- 4.2632564145606011e-14}, /* L734 */
-{6.0358938765945922e+00, 4.9253656708714288e-13,
- 2.2204460492503131e-16, 7.5139894306630595e-13,
- 7.8181905394103524e-13}, /* L735 */
-{5.0954564086903238e+00, 4.1636138981004933e-13,
- 2.2204460492503131e-16, 7.3430150848707854e-13,
- -3.8147263126120379e-13}, /* L736 */
-{4.9919515664756977e+00, 4.0845798965349900e-13,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- 3.0642155479654321e-14}, /* L737 */
-{6.5406607257515805e+00, 5.3590465398656306e-13,
- 2.2204460492503131e-16, 7.5051076464660582e-14,
- -4.1633363423443370e-14}, /* L738 */
-{5.5033916326710406e+00, 4.5152770411505116e-13,
- 2.2204460492503131e-16, -1.1557421686347880e-13,
- -3.4083846855992306e-14}, /* L739 */
-{6.1905503074137398e+00, 5.0859316758078421e-13,
- 2.2204460492503131e-16, -1.1246559239452836e-13,
- -2.0738966099997924e-13}, /* L740 */
-{5.7039563675935323e+00, 4.6924963914563023e-13,
- 2.2204460492503131e-16, -1.4277468096679513e-13,
- -2.0095036745715333e-14}, /* L741 */
-{4.3800608188078574e+00, 3.6082248300317588e-13,
- 2.2204460492503131e-16, -7.2941652717872785e-14,
- 3.2196467714129540e-14}, /* L742 */
-{4.3748386652758455e+00, 3.6087799415440713e-13,
- 2.2204460492503131e-16, -1.8101076193488552e-12,
- 4.8288040233046559e-12}, /* L743 */
-{5.1660027740936192e+00, 4.2671421951467892e-13,
- 2.2204460492503131e-16, -5.1292303737682232e-14,
- 2.4558133304708463e-13}, /* L744 */
-{7.4610855969101957e+00, 6.1711746823789326e-13,
- 2.2204460492503131e-16, -5.5622173533720343e-14,
- -6.0063065632220969e-14}, /* L745 */
-{4.8774792099789703e+00, 4.0396505585071907e-13,
- 2.2204460492503131e-16, -9.9920072216264089e-15,
- -5.0293103015519591e-14}, /* L746 */
-{5.3896504042271323e+00, 4.4698272860799193e-13,
- 2.2204460492503131e-16, -7.8603790143461083e-14,
- 7.7049477908985864e-14}, /* L747 */
-{6.4737735827010674e+00, 5.3761162188692424e-13,
- 2.2204460492503131e-16, 2.0827783941967937e-13,
- 1.7896795156957523e-13}, /* L748 */
-{5.4252422043030260e+00, 4.5113912605643236e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- 8.8817841970012523e-16}, /* L749 */
-{4.3320068346256848e+00, 3.6071146070071336e-13,
- 2.2204460492503131e-16, -6.7945649107059580e-14,
- -6.7634786660164536e-13}, /* L750 */
-{4.2729761156679009e+00, 3.5627056860221273e-13,
- 2.2204460492503131e-16, -7.0832228971084987e-14,
- 5.1603166184577276e-13}, /* L751 */
-{5.9521370503034259e+00, 4.9693582582222007e-13,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -1.7297274723659939e-13}, /* L752 */
-{5.0438326588840132e+00, 4.2166270475263445e-13,
- 2.2204460492503131e-16, -1.9595436384634013e-13,
- 5.7731597280508140e-14}, /* L753 */
-{5.4834304019005033e+00, 4.5902170953127097e-13,
- 2.2204460492503131e-16, -3.9324099532223045e-13,
- -2.6434410216324977e-13}, /* L754 */
-{5.5410683448316123e+00, 4.6446180235193424e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- 4.6629367034256575e-14}, /* L755 */
-{4.9604079583435956e+00, 4.1634057312833761e-13,
- 2.2204460492503131e-16, -2.2037927038809357e-13,
- -1.3766765505351941e-14}, /* L756 */
-{5.5350153376444426e+00, 4.6518344731794059e-13,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- 2.1072033007385471e-13}, /* L757 */
-{7.7361599626463295e+00, 6.5103478164019180e-13,
- 2.2204460492503131e-16, 9.5035090907913400e-14,
- -3.0975222387041867e-14}, /* L758 */
-{4.9809861193995859e+00, 4.1972675335344434e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-13,
- 6.6413541333076864e-13}, /* L759 */
-{6.0394832127454210e+00, 5.0959236830294685e-13,
- 2.2204460492503131e-16, 1.4410694859634532e-13,
- 7.9936057773011271e-15}, /* L760 */
-{5.8784586831517247e+00, 4.9665827006606378e-13,
- 2.2204460492503131e-16, 1.2145839889399213e-13,
- -1.9073631563060189e-13}, /* L761 */
-{5.3579480858171262e+00, 4.5327630537883579e-13,
- 2.2204460492503131e-16, -2.4025226252888388e-13,
- 6.8833827526759706e-15}, /* L762 */
-{6.1789088310694256e+00, 5.2341464495953005e-13,
- 2.2204460492503131e-16, 2.1249668691325496e-13,
- -9.6034291630076041e-14}, /* L763 */
-{6.7755342500098648e+00, 5.7470694869721228e-13,
- 2.2204460492503131e-16, 1.8252066524837574e-13,
- -3.1241675912951905e-13}, /* L764 */
-{7.5385739851333673e+00, 6.4026561830132778e-13,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- -5.0104365101333315e-13}, /* L765 */
-{6.8635878522292213e+00, 5.8369975519667605e-13,
- 2.2204460492503131e-16, -9.5257135512838431e-14,
- -5.4400928206632670e-15}, /* L766 */
-{5.3306798574418472e+00, 4.5392856140580307e-13,
- 2.2204460492503131e-16, 7.0410344221727428e-13,
- 3.4283687000424834e-13}, /* L767 */
-{5.7496835504787178e+00, 4.9024673209885350e-13,
- 2.2204460492503131e-16, -9.6256336235001072e-14,
- 4.0811798385220754e-13}, /* L768 */
-{6.6365514328224542e+00, 5.6660232061744864e-13,
- 2.2204460492503131e-16, 1.3233858453531866e-13,
- -3.5049740887416192e-13}, /* L769 */
-{8.5857278314758538e+00, 7.3396844157969099e-13,
- 2.2204460492503131e-16, 5.5955240441107890e-14,
- 3.0442315335221792e-13}, /* L770 */
-{5.4433774626896296e+00, 4.6594255146900632e-13,
- 2.2204460492503131e-16, -4.2521541843143495e-14,
- 5.5955240441107890e-14}, /* L771 */
-{5.4776640825639777e+00, 4.6948556153836307e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- 4.2410519540680980e-14}, /* L772 */
-{4.5304081825798868e+00, 3.8880010322372982e-13,
- 2.2204460492503131e-16, -7.3763217756095401e-13,
- 5.3845816694320092e-13}, /* L773 */
-{5.1075661977714422e+00, 4.3889891720994001e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-13,
- 2.5379698342931079e-13}, /* L774 */
-{5.4400085827402638e+00, 4.6807002718196600e-13,
- 2.2204460492503131e-16, -3.6637359812630166e-15,
- -5.8064664187895687e-14}, /* L775 */
-{5.5992356380756574e+00, 4.8239190419963052e-13,
- 2.2204460492503131e-16, 3.1130653610489389e-13,
- 3.5282887722587475e-13}, /* L776 */
-{6.3795547883589956e+00, 5.5032714496583424e-13,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- 7.1498362785860081e-14}, /* L777 */
-{5.4897258848298751e+00, 4.7417625381740436e-13,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -5.8730798002670781e-14}, /* L778 */
-{4.1148973778542022e+00, 3.5588199054359393e-13,
- 2.2204460492503131e-16, 6.9277916736609768e-14,
- 6.2172489379008766e-14}, /* L779 */
-{4.2705195581422490e+00, 3.6981528950263964e-13,
- 2.2204460492503131e-16, -7.5051076464660582e-14,
- 6.8833827526759706e-14}, /* L780 */
-{5.2599314740406049e+00, 4.5607961851601431e-13,
- 2.2204460492503131e-16, 5.2446935683292395e-13,
- 8.6375351315837179e-13}, /* L781 */
-{5.7065307423647775e+00, 4.9543702473897611e-13,
- 2.2204460492503131e-16, -7.3385741927722847e-14,
- -1.2323475573339238e-14}, /* L782 */
-{4.8221659732255118e+00, 4.1919245852284348e-13,
- 2.2204460492503131e-16, 1.9140244944537699e-13,
- -1.3877787807814457e-14}, /* L783 */
-{4.7464998355253565e+00, 4.1314174303863638e-13,
- 2.2204460492503131e-16, 6.2394533983933798e-14,
- 7.1720407390785113e-14}, /* L784 */
-{4.7828100936415021e+00, 4.1683323459551502e-13,
- 2.2204460492503131e-16, 1.6586731987899839e-13,
- 2.4646951146678475e-14}, /* L785 */
-{6.6991199840079538e+00, 5.8458793361637618e-13,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- -6.1839422471621219e-14}, /* L786 */
-{5.3062345470314831e+00, 4.6362913508346537e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- 2.7311486405778851e-14}, /* L787 */
-{5.5780544858105578e+00, 4.8799853047398756e-13,
- 2.2204460492503131e-16, -3.7614356074300304e-13,
- 5.6021853822585399e-13}, /* L788 */
-{5.9676900236117909e+00, 5.2274851114475496e-13,
- 2.2204460492503131e-16, -4.2110759324032188e-13,
- 9.1038288019262836e-15}, /* L789 */
-{4.6582351974312255e+00, 4.0856207306205761e-13,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- -9.4924068605450884e-14}, /* L790 */
-{5.5373033000855054e+00, 4.8627768478581856e-13,
- 2.2204460492503131e-16, 1.7652546091539989e-13,
- 8.8817841970012523e-14}, /* L791 */
-{7.4968552621604037e+00, 6.5919492087118670e-13,
- 2.2204460492503131e-16, 1.0678125050844756e-12,
- -4.5585757391108928e-13}, /* L792 */
-{5.6967302992404267e+00, 5.0154325137441447e-13,
- 2.2204460492503131e-16, 2.4091839634365897e-13,
- 1.5498713423767185e-13}, /* L793 */
-{6.2109669779282077e+00, 5.4750648459389595e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- 2.8421709430404007e-14}, /* L794 */
-{5.3226499070016047e+00, 4.6979087287013499e-13,
- 2.2204460492503131e-16, 1.6255885526561542e-12,
- -1.4764856004489957e-12}, /* L795 */
-{5.6677225098294119e+00, 5.0087711755963937e-13,
- 2.2204460492503131e-16, -1.2045919817182948e-13,
- 3.2107649872159527e-13}, /* L796 */
-{5.7892186694507384e+00, 5.1225690356204723e-13,
- 2.2204460492503131e-16, -6.6058269965196814e-14,
- 5.0626169922907138e-14}, /* L797 */
-{7.6691850320567960e+00, 6.7945649107059580e-13,
- 2.2204460492503131e-16, 1.8030021919912542e-13,
- 1.9539925233402755e-14}, /* L798 */
-{7.1433154001960091e+00, 6.3365979130480810e-13,
- 2.2204460492503131e-16, -1.9598767053707888e-12,
- -1.2623235789988030e-13}, /* L799 */
-{5.1640706473886384e+00, 4.5866088704826780e-13,
- 2.2204460492503131e-16, 4.2010839251815923e-13,
- -2.7089441800853820e-14}, /* L800 */
-{6.6036308929931362e+00, 5.8725246887547655e-13,
- 2.2204460492503131e-16, -4.2643666375852263e-13,
- 2.4336088699783431e-13}, /* L801 */
-{7.5804358998547112e+00, 6.7496008782086392e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 5.9952043329758453e-15}, /* L802 */
-{4.7198081936715024e+00, 4.2077452633293433e-13,
- 2.2204460492503131e-16, 2.4802382370125997e-13,
- 2.7511326550211379e-13}, /* L803 */
-{5.0876945940554847e+00, 4.5413672822292028e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- -2.9420910152566648e-14}, /* L804 */
-{6.5347929186795071e+00, 5.8403282210406360e-13,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- 3.9968028886505635e-14}, /* L805 */
-{5.0911990994173859e+00, 4.5558001815493299e-13,
- 2.2204460492503131e-16, -4.8405723873656825e-14,
- -1.8762769116165146e-14}, /* L806 */
-{5.6629581290364461e+00, 5.0737192225369654e-13,
- 2.2204460492503131e-16, -1.8929302569858919e-13,
- 2.8643754035329039e-14}, /* L807 */
-{5.3459242758868228e+00, 4.7956083548683637e-13,
- 2.2204460492503131e-16, -7.3052675020335300e-14,
- 4.8849813083506888e-15}, /* L808 */
-{5.4314826113159098e+00, 4.8783893591419769e-13,
- 2.2204460492503131e-16, -1.0624834345662748e-13,
- 2.0428103653102880e-14}, /* L809 */
-{5.0845759232053371e+00, 4.5724535269187072e-13,
- 2.2204460492503131e-16, -1.3167245072054357e-13,
- 2.8443913890896511e-13}, /* L810 */
-{5.5209704860601061e+00, 4.9710235927591384e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- 6.3504757008558954e-14}, /* L811 */
-{4.9039486236889385e+00, 4.4209080840573733e-13,
- 2.2204460492503131e-16, 5.7953641885433171e-14,
- -2.8221869285971479e-13}, /* L812 */
-{4.8708563932716684e+00, 4.3964831775156199e-13,
- 2.2204460492503131e-16, 9.1260332624187868e-14,
- -9.4368957093138306e-15}, /* L813 */
-{4.6237787937401098e+00, 4.1786019089329329e-13,
- 2.2204460492503131e-16, -1.9140244944537699e-13,
- 1.0991207943789050e-13}, /* L814 */
-{5.3951005364262832e+00, 4.8816506392768133e-13,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- -1.9118040484045196e-13}, /* L815 */
-{4.9963314121564366e+00, 4.5263792713967632e-13,
- 2.2204460492503131e-16, 2.8066438062523957e-13,
- -9.9809049913801573e-14}, /* L816 */
-{6.1037428000522338e+00, 5.5364046680494994e-13,
- 2.2204460492503131e-16, 7.9491968563161208e-14,
- -1.5321077739827160e-14}, /* L817 */
-{6.6418197697963191e+00, 6.0318416927884755e-13,
- 2.2204460492503131e-16, 2.4824586830618500e-13,
- -1.0713652187632761e-13}, /* L818 */
-{7.2194863597089514e+00, 6.5644711888523943e-13,
- 2.2204460492503131e-16, -2.2382096176443156e-13,
- 1.2612133559741778e-13}, /* L819 */
-{7.7658659107967294e+00, 7.0699002208129968e-13,
- 2.2204460492503131e-16, -1.6586731987899839e-13,
- -2.8610447344590284e-13}, /* L820 */
-{6.6961128787558089e+00, 6.1034510778767981e-13,
- 2.2204460492503131e-16, -5.3512749786932545e-14,
- 9.1038288019262836e-15}, /* L821 */
-{6.6356552379753886e+00, 6.0557114878179163e-13,
- 2.2204460492503131e-16, 2.9998226125371730e-13,
- 2.8865798640254070e-14}, /* L822 */
-{6.5861282524600933e+00, 6.0178251271025829e-13,
- 2.2204460492503131e-16, 3.1197266991966899e-13,
- 1.9517720772910252e-13}, /* L823 */
-{6.2803497143765901e+00, 5.7454041524351851e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- -8.9372953482325102e-14}, /* L824 */
-{5.0730383067968647e+00, 4.6465609138124364e-13,
- 2.2204460492503131e-16, 8.0602191587786365e-14,
- 1.2856382625159313e-13}, /* L825 */
-{4.8898382232068363e+00, 4.4841907964610073e-13,
- 2.2204460492503131e-16, 9.2370555648813024e-14,
- 2.1604940059205546e-13}, /* L826 */
-{5.1203224677261661e+00, 4.7012393977752254e-13,
- 2.2204460492503131e-16, -2.1393997684526767e-13,
- -2.6323387913862462e-13}, /* L827 */
-{6.7110613127196102e+00, 6.1692317920858386e-13,
- 2.2204460492503131e-16, 3.9479530755670567e-13,
- 2.1938006966593093e-13}, /* L828 */
-{5.2569443613802704e+00, 4.8383519413164322e-13,
- 2.2204460492503131e-16, -5.8480997822130121e-12,
- 7.7209350024531886e-12}, /* L829 */
-{5.7969970977697276e+00, 5.3418380829839407e-13,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 1.9539925233402755e-14}, /* L830 */
-{6.3213096121546402e+00, 5.8320015483559473e-13,
- 2.2204460492503131e-16, 6.9055872131684737e-13,
- 5.3290705182007514e-13}, /* L831 */
-{5.6953590457039507e+00, 5.2608264966558238e-13,
- 2.2204460492503131e-16, 1.4166445794216997e-13,
- 8.8817841970012523e-14}, /* L832 */
-{7.3115361453007424e+00, 6.7618133314795159e-13,
- 2.2204460492503131e-16, -6.1195493117338629e-13,
- -1.3034018309099338e-13}, /* L833 */
-{5.3639173355726895e+00, 4.9665827006606378e-13,
- 2.2204460492503131e-16, -1.0387246618392965e-12,
- 1.9806378759312793e-12}, /* L834 */
-{6.3281536965481733e+00, 5.8664184621193272e-13,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- -1.1735057370287905e-13}, /* L835 */
-{6.5557818742044169e+00, 6.0847160643362486e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- -4.9737991503207013e-14}, /* L836 */
-{6.2223253785349000e+00, 5.7821282484216141e-13,
- 2.2204460492503131e-16, -1.0147438445073931e-13,
- -5.4289905904170155e-14}, /* L837 */
-{5.3955932382024336e+00, 5.0198734058426453e-13,
- 2.2204460492503131e-16, 2.8199664825478976e-14,
- -5.2291504459844873e-14}, /* L838 */
-{6.2410706332249504e+00, 5.8134053126934759e-13,
- 2.2204460492503131e-16, -2.4091839634365897e-13,
- 3.3439917501709715e-13}, /* L839 */
-{4.9940554981994092e+00, 4.6573855883025317e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -5.6066262743570405e-14}, /* L840 */
-{7.2832308724923776e+00, 6.8003241926462010e-13,
- 2.2204460492503131e-16, -6.2616578588858829e-14,
- 1.1368683772161603e-13}, /* L841 */
-{6.2470407348519332e+00, 5.8397731095283234e-13,
- 2.2204460492503131e-16, -2.8366198279172750e-13,
- 1.9029222642075183e-13}, /* L842 */
-{4.9377302102079037e+00, 4.6213033400022141e-13,
- 2.2204460492503131e-16, 1.2965184481572578e-12,
- -1.7328360968349443e-12}, /* L843 */
-{5.6466321314715486e+00, 5.2910453796073398e-13,
- 2.2204460492503131e-16, -8.4021678503631847e-13,
- 9.3547392054915690e-13}, /* L844 */
-{4.9278184255408117e+00, 4.6229686745391518e-13,
- 2.2204460492503131e-16, -6.8611782921834674e-14,
- 2.7156055182331329e-13}, /* L845 */
-{5.8472314474391904e+00, 5.4919957470644931e-13,
- 2.2204460492503131e-16, 1.7186252421197423e-13,
- 1.1080025785759062e-13}, /* L846 */
-{6.7382042554693564e+00, 6.3363203572919247e-13,
- 2.2204460492503131e-16, -4.4186876380081230e-14,
- -7.3274719625260332e-15}, /* L847 */
-{5.3661641266103519e+00, 5.0520698735567748e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-13,
- -2.2359891715950653e-13}, /* L848 */
-{5.3504206911014967e+00, 5.0431880893597736e-13,
- 2.2204460492503131e-16, -1.8729462425426391e-13,
- -1.5543122344752192e-14}, /* L849 */
-{6.7247164919857809e+00, 6.3460348087573948e-13,
- 2.2204460492503131e-16, 1.4654943925052066e-14,
- 2.6645352591003757e-14}, /* L850 */
-{6.1275067296903645e+00, 5.7892579619078788e-13,
- 2.2204460492503131e-16, -1.7141843500212417e-13,
- -2.3647750424515834e-14}, /* L851 */
-{5.9629825592457770e+00, 5.6404360349038285e-13,
- 2.2204460492503131e-16, -1.0946799022804043e-13,
- -1.4777068457760834e-13}, /* L852 */
-{5.4759758141494634e+00, 5.1858517480241062e-13,
- 2.2204460492503131e-16, -1.4582779428451431e-12,
- 7.5162098767123098e-13}, /* L853 */
-{5.1162258704946959e+00, 4.8508419503434652e-13,
- 2.2204460492503131e-16, -1.1279865930191590e-13,
- 8.1490370007486490e-14}, /* L854 */
-{5.6830499017941962e+00, 5.3945736766536356e-13,
- 2.2204460492503131e-16, 9.7499786022581247e-13,
- 5.9148241859929840e-12}, /* L855 */
-{5.9497757421420419e+00, 5.6543658644159223e-13,
- 2.2204460492503131e-16, 1.2900791546144319e-13,
- 1.5099033134902129e-14}, /* L856 */
-{6.8051449255569167e+00, 6.4748206796139129e-13,
- 2.2204460492503131e-16, -1.4155343563970746e-13,
- 2.2426505097428162e-14}, /* L857 */
-{6.7080525413564347e+00, 6.3898886182300885e-13,
- 2.2204460492503131e-16, -8.3844042819691822e-13,
- -1.8945955915228296e-12}, /* L858 */
-{5.1856892059366180e+00, 4.9454884631927598e-13,
- 2.2204460492503131e-16, 8.3666407135751797e-13,
- -9.1637808452560421e-13}, /* L859 */
-{6.9174527740754632e+00, 6.6047167734950563e-13,
- 2.2204460492503131e-16, -3.7346792325365641e-12,
- -7.3641093223386633e-13}, /* L860 */
-{6.0882790596388672e+00, 5.8197890950850706e-13,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- 7.7049477908985864e-14}, /* L861 */
-{7.4405569826360267e+00, 7.1206929241895978e-13,
- 2.2204460492503131e-16, 2.6356694604601216e-13,
- -1.9451107391432743e-13}, /* L862 */
-{5.8586419199303119e+00, 5.6132876125047915e-13,
- 2.2204460492503131e-16, 3.2862601528904634e-14,
- 1.0391687510491465e-13}, /* L863 */
-{6.5356729271103298e+00, 6.2692212532411418e-13,
- 2.2204460492503131e-16, -1.9484414082171497e-13,
- -3.0264679651281767e-13}, /* L864 */
-{4.7575219568404368e+00, 4.5688453020886755e-13,
- 2.2204460492503131e-16, -9.4146912488213275e-14,
- 3.3884006711559778e-13}, /* L865 */
-{6.7898490495739283e+00, 6.5281113847959205e-13,
- 2.2204460492503131e-16, -5.0182080713057076e-14,
- 2.6467716907063732e-13}, /* L866 */
-{5.8102744494874425e+00, 5.5927484865492261e-13,
- 2.2204460492503131e-16, 2.7000623958883807e-13,
- 4.1833203567875898e-13}, /* L867 */
-{6.7753563116450861e+00, 6.5292216078205456e-13,
- 2.2204460492503131e-16, -2.4824586830618500e-13,
- -1.2900791546144319e-13}, /* L868 */
-{5.3250947075350199e+00, 5.1375570464529119e-13,
- 2.2204460492503131e-16, 2.7045032879868813e-13,
- 1.6653345369377348e-13}, /* L869 */
-{6.1821936616938471e+00, 5.9713345379464045e-13,
- 2.2204460492503131e-16, 8.6841644986179745e-13,
- -1.1071144001562061e-12}, /* L870 */
-{6.7049474326266596e+00, 6.4837024638109142e-13,
- 2.2204460492503131e-16, -5.2735593669694936e-13,
- -5.4056759068998872e-13}, /* L871 */
-{5.4753526751941850e+00, 5.3007598310728099e-13,
- 2.2204460492503131e-16, -3.5804692544161298e-13,
- -1.1535217225855376e-13}, /* L872 */
-{5.7437089473407870e+00, 5.5669358012266912e-13,
- 2.2204460492503131e-16, -2.8144153674247718e-13,
- -2.2948309919001986e-13}, /* L873 */
-{5.9141969738906139e+00, 5.7387428142874342e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 8.9039886574937555e-14}, /* L874 */
-{7.5451547611574830e+00, 7.3296924085752835e-13,
- 2.2204460492503131e-16, 8.3422158070334262e-13,
- 7.7737816184253461e-13}, /* L875 */
-{6.1301466578670061e+00, 5.9618976422370906e-13,
- 2.2204460492503131e-16, 7.1409544943890069e-13,
- 1.9251267247000214e-12}, /* L876 */
-{5.6431103855014122e+00, 5.4944937488698997e-13,
- 2.2204460492503131e-16, -9.8698826889176416e-14,
- 1.2034817586936697e-13}, /* L877 */
-{6.7750676366788252e+00, 6.6041616619827437e-13,
- 2.2204460492503131e-16, 6.1950444774083735e-14,
- 1.2234657731369225e-13}, /* L878 */
-{6.4306131035264347e+00, 6.2755356466936973e-13,
- 2.2204460492503131e-16, -1.5987211554602254e-13,
- 1.2856382625159313e-13}, /* L879 */
-{6.5198966501069764e+00, 6.3699046037868357e-13,
- 2.2204460492503131e-16, -9.1993079820440471e-13,
- -2.1993518117824351e-13}, /* L880 */
-{5.2331240338369378e+00, 5.1185444771562061e-13,
- 2.2204460492503131e-16, 4.7783998979866737e-13,
- 2.6290081223123707e-13}, /* L881 */
-{4.9132730578092314e+00, 4.8111514772131159e-13,
- 2.2204460492503131e-16, -2.4769075679387242e-13,
- -8.5598195198599569e-13}, /* L882 */
-{6.2267935160117025e+00, 6.1042837451452669e-13,
- 2.2204460492503131e-16, -3.7236880245927750e-13,
- -2.0861090632706691e-13}, /* L883 */
-{5.7030632964053680e+00, 5.5971893786477267e-13,
- 2.2204460492503131e-16, 8.8595797365087492e-14,
- 9.7699626167013776e-15}, /* L884 */
-{6.2553771007912893e+00, 6.1461946643248666e-13,
- 2.2204460492503131e-16, 1.7075230118734908e-13,
- -5.7842619582970656e-14}, /* L885 */
-{8.8439755784763641e+00, 8.6994300652065704e-13,
- 2.2204460492503131e-16, 1.2478906796786760e-13,
- -3.0353497493251780e-13}, /* L886 */
-{7.1245884671206365e+00, 7.0160544041186768e-13,
- 2.2204460492503131e-16, -1.8007817459420039e-13,
- -1.2922996006636822e-13}, /* L887 */
-{5.8378470482479052e+00, 5.7553961596568115e-13,
- 2.2204460492503131e-16, -1.6220358389773537e-13,
- 2.6578739209526248e-13}, /* L888 */
-{6.1178386735300014e+00, 6.0382254751800701e-13,
- 2.2204460492503131e-16, 8.7485574340462335e-14,
- -3.0309088572266774e-14}, /* L889 */
-{5.8519053000084416e+00, 5.7822496790649325e-13,
- 2.2204460492503131e-16, -6.8611782921834674e-14,
- 5.3956838996782608e-14}, /* L890 */
-{6.7502912335606506e+00, 6.6774363816080040e-13,
- 2.2204460492503131e-16, 6.0329519158131006e-13,
- -2.0239365738916604e-12}, /* L891 */
-{5.7140995420799570e+00, 5.6587720620449034e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- 9.3480778673438181e-14}, /* L892 */
-{5.9893711516011372e+00, 5.9380278472076498e-13,
- 2.2204460492503131e-16, -1.4765966227514582e-14,
- -5.3845816694320092e-14}, /* L893 */
-{5.8385159228755636e+00, 5.7949478549090827e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- 2.1271873151817999e-13}, /* L894 */
-{8.5271084253364968e+00, 8.4729445681830384e-13,
- 2.2204460492503131e-16, 8.8773433049027517e-13,
- -2.8477220581635265e-13}, /* L895 */
-{6.9894083486650374e+00, 6.9527716917150428e-13,
- 2.2204460492503131e-16, -3.1763480734525729e-13,
- -1.7030821197749901e-13}, /* L896 */
-{9.3500704930292251e+00, 9.3114405075311879e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- -2.1371793224034263e-13}, /* L897 */
-{6.1798538479946226e+00, 6.1611826751573062e-13,
- 2.2204460492503131e-16, -8.9039886574937555e-14,
- 7.1054273576010019e-15}, /* L898 */
-{5.6117997325200326e+00, 5.6010751592339147e-13,
- 2.2204460492503131e-16, 4.2077452633293433e-13,
- 2.2049029269055609e-13}, /* L899 */
-{6.6433438145839370e+00, 6.6380234642338110e-13,
- 2.2204460492503131e-16, -4.0523140398818214e-14,
- 7.4384942649885488e-14}, /* L900 */
-{7.0088900812706756e+00, 7.0110584005078636e-13,
- 2.2204460492503131e-16, -5.4056759068998872e-13,
- -7.2919448257380282e-13}, /* L901 */
-{5.0903627982801236e+00, 5.0975890175664063e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-13,
- -1.2956302697375577e-13}, /* L902 */
-{6.4447776098295364e+00, 6.4610816696841766e-13,
- 2.2204460492503131e-16, -1.4521717162097048e-13,
- 8.0824236192711396e-14}, /* L903 */
-{6.6161608808319823e+00, 6.6402439102830613e-13,
- 2.2204460492503131e-16, 7.0898842352562497e-13,
- 2.3647750424515834e-13}, /* L904 */
-{5.6944841223413833e+00, 5.7215343574057442e-13,
- 2.2204460492503131e-16, 8.3799633898706816e-13,
- 1.1968204205459188e-13}, /* L905 */
-{9.7650540377401498e+00, 9.8222818767368381e-13,
- 2.2204460492503131e-16, -7.1276318180935050e-14,
- 1.0325074129013956e-13}, /* L906 */
-{6.7331969515653665e+00, 6.7801320113858310e-13,
- 2.2204460492503131e-16, -1.3589129821411916e-13,
- -3.1052937998765628e-13}, /* L907 */
-{5.9894092292604926e+00, 6.0378091415458357e-13,
- 2.2204460492503131e-16, 1.6608936448392342e-13,
- -5.2413628992553640e-13}, /* L908 */
-{6.5528156189467097e+00, 6.6130434461797449e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-14,
- 9.7921670771938807e-14}, /* L909 */
-{6.2357241238599421e+00, 6.2999605532354508e-13,
- 2.2204460492503131e-16, 3.0642155479654321e-14,
- 3.4638958368304884e-14}, /* L910 */
-{6.5669697460201908e+00, 6.6419092448199990e-13,
- 2.2204460492503131e-16, 1.5196732761069143e-12,
- 1.1004530620084552e-12}, /* L911 */
-{5.4082330733706163e+00, 5.4759538917203976e-13,
- 2.2204460492503131e-16, 6.2074789752841752e-12,
- 2.5446311724408588e-13}, /* L912 */
-{4.6128221736286452e+00, 4.6757042682088468e-13,
- 2.2204460492503131e-16, 2.1760371282653068e-14,
- -2.5002222514558525e-13}, /* L913 */
-{5.6105121340193014e+00, 5.6932236702778027e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- -3.1752378504279477e-14}, /* L914 */
-{6.6942728566780474e+00, 6.8003935815852401e-13,
- 2.2204460492503131e-16, 3.2152058793144533e-13,
- -3.8080649744642869e-14}, /* L915 */
-{8.3286157600311341e+00, 8.4698914548653192e-13,
- 2.2204460492503131e-16, -1.0836886943366153e-12,
- 5.4738436006118718e-12}, /* L916 */
-{6.7617336778490484e+00, 6.8839378641882831e-13,
- 2.2204460492503131e-16, 3.6060043839825084e-13,
- 8.7485574340462335e-14}, /* L917 */
-{6.0441271826375580e+00, 6.1600724521326811e-13,
- 2.2204460492503131e-16, 9.8188124297848844e-12,
- 2.5867308295346447e-11}, /* L918 */
-{5.4613796719434857e+00, 5.5722093605936607e-13,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- -3.0397906414236786e-13}, /* L919 */
-{4.3652242783491957e+00, 4.4586556668946287e-13,
- 2.2204460492503131e-16, -3.4305891460917337e-14,
- -6.0951244051921094e-14}, /* L920 */
-{6.7187945307876822e+00, 6.8700600763804687e-13,
- 2.2204460492503131e-16, 3.4705571749782393e-13,
- -5.4622972811557702e-13}, /* L921 */
-{8.2422852381841381e+00, 8.4370010977607990e-13,
- 2.2204460492503131e-16, -3.8302694349567901e-14,
- 3.5527136788005009e-14}, /* L922 */
-{6.6432932547235053e+00, 6.8076100312453036e-13,
- 2.2204460492503131e-16, -7.1775918542016370e-13,
- -1.0339507028334083e-12}, /* L923 */
-{5.7401335151183037e+00, 5.8884841447337521e-13,
- 2.2204460492503131e-16, 5.9752203185325925e-13,
- 4.7628567756419216e-13}, /* L924 */
-{6.2794693666110666e+00, 6.4487304385352218e-13,
- 2.2204460492503131e-16, 1.3640200080544673e-12,
- -5.2835513741911200e-13}, /* L925 */
-{7.6458003997554949e+00, 7.8603790143461083e-13,
- 2.2204460492503131e-16, -3.8280489889075398e-13,
- -6.5303318308451708e-13}, /* L926 */
-{6.0938607470103419e+00, 6.2716498661075093e-13,
- 2.2204460492503131e-16, -4.5186077102243871e-14,
- 3.3817393330082268e-13}, /* L927 */
-{8.3223124297326248e+00, 8.5743565025886426e-13,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- -2.0916601783937949e-13}, /* L928 */
-{6.4370392192632906e+00, 6.6391336872584361e-13,
- 2.2204460492503131e-16, 1.0083045509645672e-12,
- -1.9417800700693988e-13}, /* L929 */
-{7.2709792133792748e+00, 7.5073280925153085e-13,
- 2.2204460492503131e-16, -1.7508217098338719e-13,
- -7.0721206668622472e-14}, /* L930 */
-{6.4599323186266346e+00, 6.6770894369128087e-13,
- 2.2204460492503131e-16, -7.5051076464660582e-14,
- 5.5511151231257827e-15}, /* L931 */
-{5.0944286380281163e+00, 5.2713389209202433e-13,
- 2.2204460492503131e-16, 7.9602990865623724e-13,
- -1.0729306332279975e-11}, /* L932 */
-{7.2216083925071812e+00, 7.4804051841681485e-13,
- 2.2204460492503131e-16, 4.2099657093785936e-13,
- 1.5343282200319663e-13}, /* L933 */
-{5.3115715492652988e+00, 5.5078164251654016e-13,
- 2.2204460492503131e-16, 5.4467541588110180e-13,
- 6.5059069243034173e-14}, /* L934 */
-{6.4747428355628669e+00, 6.7211514132026196e-13,
- 2.2204460492503131e-16, -4.1189274213593308e-14,
- -1.0591527654923993e-13}, /* L935 */
-{6.4204161123026866e+00, 6.6718852664848782e-13,
- 2.2204460492503131e-16, -1.6613377340490842e-12,
- 6.1659566341631944e-12}, /* L936 */
-{5.9944064691504879e+00, 6.2358451735633480e-13,
- 2.2204460492503131e-16, -2.8221869285971479e-13,
- 5.0848214527832170e-14}, /* L937 */
-{6.1164808653590681e+00, 6.3696270480306794e-13,
- 2.2204460492503131e-16, 5.8109073108880693e-13,
- -6.2838623193783860e-14}, /* L938 */
-{6.3354732542981624e+00, 6.6047167734950563e-13,
- 2.2204460492503131e-16, 4.7140069625584147e-13,
- 1.2918555114538322e-12}, /* L939 */
-{7.2005432752390668e+00, 7.5145445421753720e-13,
- 2.2204460492503131e-16, 1.1635137298071641e-13,
- -1.0236256287043943e-13}, /* L940 */
-{5.5069162334616477e+00, 5.7531757136075612e-13,
- 2.2204460492503131e-16, -6.1817218011128716e-13,
- -9.5701224722688494e-14}, /* L941 */
-{6.2818570446777509e+00, 6.5697447482193638e-13,
- 2.2204460492503131e-16, 9.4657615079540847e-13,
- 3.0642155479654321e-13}, /* L942 */
-{5.9835725368057524e+00, 6.2644334164474458e-13,
- 2.2204460492503131e-16, -3.9357406222961799e-13,
- -7.7982065249670995e-13}, /* L943 */
-{8.0042499164981002e+00, 8.3888451740676828e-13,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- 1.1080025785759062e-13}, /* L944 */
-{6.1545070645064044e+00, 6.4570571112199104e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-14,
- 1.2034817586936697e-13}, /* L945 */
-{6.4010319643114846e+00, 6.7228167477395573e-13,
- 2.2204460492503131e-16, -1.4566126083082054e-13,
- 8.5487172896137054e-14}, /* L946 */
-{7.1655241685096627e+00, 7.5336958893501560e-13,
- 2.2204460492503131e-16, 7.6605388699135801e-13,
- 1.0220713164699191e-12}, /* L947 */
-{5.5200433228603947e+00, 5.8097970878634442e-13,
- 2.2204460492503131e-16, 1.6053824936079764e-13,
- 2.1138646388862981e-13}, /* L948 */
-{8.0953651959568411e+00, 8.5292883866827651e-13,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- -1.3478107518949400e-13}, /* L949 */
-{7.2826330680719469e+00, 7.6810779958691455e-13,
- 2.2204460492503131e-16, -4.9168447091574308e-12,
- 7.8055339969296256e-12}, /* L950 */
-{5.1088338522552679e+00, 5.3940185651413231e-13,
- 2.2204460492503131e-16, 2.7222668563808838e-13,
- -9.7699626167013776e-14}, /* L951 */
-{9.0120816747706520e+00, 9.5251584397715305e-13,
- 2.2204460492503131e-16, 2.0716761639505421e-13,
- 3.2818192607919627e-13}, /* L952 */
-{6.1905180549511689e+00, 6.5498301227151501e-13,
- 2.2204460492503131e-16, 8.5687013040569582e-13,
- -7.4829031859735551e-14}, /* L953 */
-{5.6058711672324462e+00, 5.9374727356953372e-13,
- 2.2204460492503131e-16, 3.4661162828797387e-13,
- -2.4880097981849758e-12}, /* L954 */
-{5.8301059042159009e+00, 6.1814442453567153e-13,
- 2.2204460492503131e-16, 6.0396132539608516e-14,
- 2.4469315462738450e-13}, /* L955 */
-{5.8969677330262291e+00, 6.2588823013243200e-13,
- 2.2204460492503131e-16, 1.5756285165480222e-12,
- -6.2350125062948791e-13}, /* L956 */
-{6.8563885493703385e+00, 7.2847977650170037e-13,
- 2.2204460492503131e-16, -8.9261931179862586e-14,
- -1.0391687510491465e-13}, /* L957 */
-{5.7122923998043014e+00, 6.0755567243830910e-13,
- 2.2204460492503131e-16, 6.9944050551384862e-14,
- 6.8411942777402146e-13}, /* L958 */
-{6.2028167011228348e+00, 6.6041616619827437e-13,
- 2.2204460492503131e-16, 2.2692958623338200e-13,
- 7.9003470432326139e-13}, /* L959 */
-{6.1161470839986061e+00, 6.5186744890866066e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- -6.3837823915946501e-14}, /* L960 */
-{7.7968278170206844e+00, 8.3186235677601417e-13,
- 2.2204460492503131e-16, -1.3433698597964394e-14,
- -1.7041923427996153e-13}, /* L961 */
-{5.6195437686599261e+00, 6.0018656711235963e-13,
- 2.2204460492503131e-16, 9.1482377229112899e-14,
- 2.1316282072803006e-13}, /* L962 */
-{6.3291809411607565e+00, 6.7668093350903291e-13,
- 2.2204460492503131e-16, 3.2862601528904634e-14,
- 3.2418512319054571e-14}, /* L963 */
-{5.2842334456957394e+00, 5.6554760874405474e-13,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -1.0547118733938987e-13}, /* L964 */
-{8.1519446721365316e+00, 8.7337082010918721e-13,
- 2.2204460492503131e-16, -6.2616578588858829e-14,
- -5.6066262743570405e-14}, /* L965 */
-{6.2582828532091996e+00, 6.7118532953713839e-13,
- 2.2204460492503131e-16, 5.6932236702778027e-13,
- -1.0214051826551440e-13}, /* L966 */
-{7.0687708353260126e+00, 7.5889294848252575e-13,
- 2.2204460492503131e-16, -1.0480505352461478e-13,
- -1.2101430968414206e-14}, /* L967 */
-{6.4925116581854301e+00, 6.9774741540129526e-13,
- 2.2204460492503131e-16, -4.2765790908561030e-13,
- 1.6875389974302379e-13}, /* L968 */
-{5.5410228048822114e+00, 5.9610649749686218e-13,
- 2.2204460492503131e-16, -4.1278092055563320e-13,
- -3.7025937871248971e-13}, /* L969 */
-{6.9000014109449799e+00, 7.4307227038161727e-13,
- 2.2204460492503131e-16, 4.0456527017340704e-13,
- 1.5365486660812167e-13}, /* L970 */
-{6.8573649449619927e+00, 7.3924200094666048e-13,
- 2.2204460492503131e-16, -1.6842083283563625e-13,
- -6.3482552548066451e-13}, /* L971 */
-{5.8868324794816296e+00, 6.3526961469051457e-13,
- 2.2204460492503131e-16, 7.2875039336395275e-13,
- -1.0487166690609229e-12}, /* L972 */
-{5.5885160451319864e+00, 6.0369764742773668e-13,
- 2.2204460492503131e-16, 3.1996627569697011e-13,
- -2.9309887850104133e-14}, /* L973 */
-{7.5056483520454407e+00, 8.1162854215222069e-13,
- 2.2204460492503131e-16, -3.0953017926549364e-13,
- -1.5487611193520934e-13}, /* L974 */
-{6.6592321309455800e+00, 7.2084005431349851e-13,
- 2.2204460492503131e-16, -2.8976820942716586e-13,
- -1.8096635301390052e-14}, /* L975 */
-{5.5701855652531194e+00, 6.0357274733746635e-13,
- 2.2204460492503131e-16, -1.5420997812043424e-13,
- 5.4400928206632670e-14}, /* L976 */
-{7.2865930969591286e+00, 7.9036777123064894e-13,
- 2.2204460492503131e-16, 1.6053824936079764e-13,
- -4.3631764867768652e-13}, /* L977 */
-{6.3811362741741950e+00, 6.9286243409294457e-13,
- 2.2204460492503131e-16, -2.5413005033669833e-13,
- -1.7097434579227411e-13}, /* L978 */
-{8.0694602813457692e+00, 8.7707618945387367e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -2.0561330416057899e-13}, /* L979 */
-{5.6237256397473212e+00, 6.1187166444653940e-13,
- 2.2204460492503131e-16, -1.4513945600924671e-12,
- 1.7341683644644945e-12}, /* L980 */
-{6.4607556534304029e+00, 7.0365935300742422e-13,
- 2.2204460492503131e-16, -5.6332716269480443e-13,
- 4.9804604884684522e-13}, /* L981 */
-{5.7515286710105498e+00, 6.2705396430828841e-13,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 4.2854608750531042e-14}, /* L982 */
-{7.7421175546661996e+00, 8.4493523289097539e-13,
- 2.2204460492503131e-16, -1.0169642905566434e-13,
- 2.5623947408348613e-13}, /* L983 */
-{6.6580298167526362e+00, 7.2736261458317131e-13,
- 2.2204460492503131e-16, -2.4358293160275934e-13,
- -3.3195668436292181e-14}, /* L984 */
-{9.1772861405810104e+00, 1.0035999808977181e-12,
- 2.2204460492503131e-16, 1.7763568394002505e-14,
- -2.7222668563808838e-13}, /* L985 */
-{6.5304272988670933e+00, 7.1487260555613830e-13,
- 2.2204460492503131e-16, -2.6767477123712524e-13,
- -1.4777068457760834e-13}, /* L986 */
-{7.6805993415936165e+00, 8.4163231939271554e-13,
- 2.2204460492503131e-16, 1.2012613126444194e-13,
- -3.4994229736184934e-13}, /* L987 */
-{6.5222685401886586e+00, 7.1542771706845087e-13,
- 2.2204460492503131e-16, 1.2811973704174306e-13,
- 3.2640556923979602e-14}, /* L988 */
-{7.2579640726195844e+00, 7.9693196486374518e-13,
- 2.2204460492503131e-16, -6.4959149170817909e-13,
- 7.6139095028793236e-13}, /* L989 */
-{7.0237388099764342e+00, 7.7199358017310260e-13,
- 2.2204460492503131e-16, -3.7414515929867775e-13,
- -1.6749934772519737e-12}, /* L990 */
-{7.2305766551283739e+00, 7.9553030829515592e-13,
- 2.2204460492503131e-16, -3.2407410088808319e-13,
- 5.7642779438538128e-13}, /* L991 */
-{6.6491949080503927e+00, 7.3230310704275325e-13,
- 2.2204460492503131e-16, 3.1996627569697011e-13,
- 1.2234657731369225e-13}, /* L992 */
-{6.0241704161443739e+00, 6.6413541333076864e-13,
- 2.2204460492503131e-16, 5.3379523023977526e-13,
- 8.3044682241961709e-14}, /* L993 */
-{8.1403437168978598e+00, 8.9833696037544541e-13,
- 2.2204460492503131e-16, 1.6231460620019789e-13,
- -1.6442402994698568e-13}, /* L994 */
-{7.4854286663308276e+00, 8.2689410874081659e-13,
- 2.2204460492503131e-16, 8.1068485258128931e-13,
- 6.3060667798708891e-13}, /* L995 */
-{5.9713867632325286e+00, 6.6030514389581185e-13,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- 1.8718360195180139e-13}, /* L996 */
-{6.8445350004103265e+00, 7.5761619200420682e-13,
- 2.2204460492503131e-16, -1.7241763572428681e-13,
- 7.7715611723760958e-15}, /* L997 */
-{5.5385782868636122e+00, 6.1367577686155528e-13,
- 2.2204460492503131e-16, 8.4598994476436928e-14,
- 1.6675549829869851e-13}, /* L998 */
-{7.3064329254872371e+00, 8.1036566346170957e-13,
- 2.2204460492503131e-16, 4.6185277824406512e-14,
- -7.0277117458772409e-14}, /* L999 */
-{7.2375014799653465e+00, 8.0352391407245705e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- -1.8474111129762605e-13}, /* L1000 */
-{1.0704751534462535e+01, 2.3769319845712289e-12,
- 2.2204460492503131e-16, -5.1324500205396362e-12,
- 2.5088819910479288e-12}, /* L1001 */
-{1.9969666668716467e+01, 6.6512351182268503e-12,
- 2.2204460492503131e-16, -7.0245698147175517e-11,
- 9.7082342165322189e-12}, /* L1002 */
-{2.5142056782565259e+01, 1.1209977390791437e-11,
- 2.2204460492503131e-16, 5.4001247917767614e-13,
- -5.6191717945353048e-12}, /* L1003 */
-{2.8323200010548174e+01, 1.5722534385531617e-11,
- 2.2204460492503131e-16, -3.7680969455777813e-12,
- -3.6082248300317588e-12}, /* L1004 */
-{3.2321791678561532e+01, 2.1530638383282508e-11,
- 2.2204460492503131e-16, 1.4333201292515696e-11,
- 6.5796257331385277e-12}, /* L1005 */
-{3.7391747446514401e+01, 2.9125646339167588e-11,
- 2.2204460492503131e-16, -2.7823965353945823e-11,
- -1.8096635301390052e-11}, /* L1006 */
-{4.6237801855588486e+01, 4.1241954296111771e-11,
- 2.2204460492503131e-16, 1.3728573833304836e-11,
- -5.0609516577537761e-12}, /* L1007 */
-{4.6061583130257695e+01, 4.6024767330621330e-11,
- 2.2204460492503131e-16, -8.7482243671388460e-11,
- 9.2451313271624258e-10}, /* L1008 */
-{6.2174100014595624e+01, 6.9027117355346945e-11,
- 2.2204460492503131e-16, -4.0004777268620728e-11,
- 1.7784218542260533e-11}, /* L1009 */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1011 */
-}; /* Double */
-
-#else
-
-static struct LinpVals LinpValsA[] = {
-/* SINGLE */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L3 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L4 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L5 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L6 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L7 */
-{2.2189640998840332e-01, 1.0430812835693359e-07,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.5762786865234375e-07}, /* L8 */
-{3.6630606651306152e-01, 1.9371509552001953e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -3.5762786865234375e-07}, /* L9 */
-{4.0575447678565979e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L10 */
-{2.8817784786224365e-01, 1.8626451492309570e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.1920928955078125e-07}, /* L11 */
-{3.1171223521232605e-01, 2.1979212760925293e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -2.3841857910156250e-07}, /* L12 */
-{3.1945201754570007e-01, 2.4586915969848633e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -7.1525573730468750e-07}, /* L13 */
-{5.7529002428054810e-01, 4.7683715820312500e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -4.7683715820312500e-07}, /* L14 */
-{4.1109275817871094e-01, 3.6507844924926758e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 2.3841857910156250e-07}, /* L15 */
-{5.6630027294158936e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- -2.3841857910156250e-07}, /* L16 */
-{2.6649358868598938e-01, 2.6822090148925781e-07,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -4.1723251342773438e-07}, /* L17 */
-{5.5057054758071899e-01, 5.8673322200775146e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 2.3841857910156250e-07}, /* L18 */
-{5.6961244344711304e-01, 6.4074993133544922e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -1.0728836059570312e-06}, /* L19 */
-{5.9146845340728760e-01, 7.0035457611083984e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -8.9406967163085938e-07}, /* L20 */
-{7.7999979257583618e-01, 9.7369775176048279e-07,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -1.4305114746093750e-06}, /* L21 */
-{5.8111280202865601e-01, 7.5995922088623047e-07,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -3.5762786865234375e-07}, /* L22 */
-{3.8146379590034485e-01, 5.2154064178466797e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -2.9802322387695312e-07}, /* L23 */
-{7.7291780710220337e-01, 1.1026859283447266e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -2.3841857910156250e-07}, /* L24 */
-{4.8129647970199585e-01, 7.1525573730468750e-07,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 5.9604644775390625e-07}, /* L25 */
-{8.0987650156021118e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -2.0861625671386719e-06,
- -8.9406967163085938e-07}, /* L26 */
-{9.3771111965179443e-01, 1.5050172805786133e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 7.1525573730468750e-07}, /* L27 */
-{7.3412078619003296e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -3.2186508178710938e-06}, /* L28 */
-{7.7795881032943726e-01, 1.3411045074462891e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 1.4305114746093750e-06}, /* L29 */
-{8.8154238462448120e-01, 1.5720725059509277e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -1.1920928955078125e-07}, /* L30 */
-{7.1159505844116211e-01, 1.3113021850585938e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- -2.3841857910156250e-06}, /* L31 */
-{6.5801620483398438e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 9.8943710327148438e-06}, /* L32 */
-{8.8116312026977539e-01, 1.7285346984863281e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.0132789611816406e-06}, /* L33 */
-{1.0469392538070679e+00, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.7285346984863281e-06}, /* L34 */
-{6.3979321718215942e-01, 1.3336539268493652e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.4305114746093750e-06}, /* L35 */
-{9.8686885833740234e-01, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- -2.1398067474365234e-05}, /* L36 */
-{5.1392030715942383e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -1.0728836059570312e-06}, /* L37 */
-{5.0039225816726685e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 1.1920928955078125e-07}, /* L38 */
-{8.0833417177200317e-01, 1.8775463104248047e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -4.7683715820312500e-07}, /* L39 */
-{6.4095199108123779e-01, 1.5273690223693848e-06,
- 1.1920928955078125e-07, -9.3042850494384766e-05,
- 2.2375583648681641e-04}, /* L40 */
-{1.0251988172531128e+00, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -2.5629997253417969e-06}, /* L41 */
-{7.3866742849349976e-01, 1.8477439880371094e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 1.0728836059570312e-06}, /* L42 */
-{1.1637136936187744e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -9.5367431640625000e-07}, /* L43 */
-{6.5105575323104858e-01, 1.7061829566955566e-06,
- 1.1920928955078125e-07, -1.5676021575927734e-05,
- 1.1682510375976562e-05}, /* L44 */
-{8.4511369466781616e-01, 2.2649765014648438e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -6.1392784118652344e-06}, /* L45 */
-{1.0660614967346191e+00, 2.9206275939941406e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.7881393432617188e-06}, /* L46 */
-{1.0486901998519897e+00, 2.9355287551879883e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -6.5565109252929688e-07}, /* L47 */
-{8.1313973665237427e-01, 2.3245811462402344e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 7.1525573730468750e-07}, /* L48 */
-{1.0204066038131714e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -3.5762786865234375e-07}, /* L49 */
-{8.1000715494155884e-01, 2.4139881134033203e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -3.0398368835449219e-06}, /* L50 */
-{9.7052782773971558e-01, 2.9504299163818359e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- -2.6702880859375000e-05}, /* L51 */
-{6.6346895694732666e-01, 2.0563602447509766e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -1.1324882507324219e-06}, /* L52 */
-{8.2547765970230103e-01, 2.6077032089233398e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 7.1525573730468750e-07}, /* L53 */
-{1.0555671453475952e+00, 3.3974647521972656e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -7.1525573730468750e-07}, /* L54 */
-{6.0000658035278320e-01, 1.9669532775878906e-06,
- 1.1920928955078125e-07, -1.0132789611816406e-06,
- -5.9604644775390625e-08}, /* L55 */
-{6.0714846849441528e-01, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- -1.4305114746093750e-06}, /* L56 */
-{6.2719875574111938e-01, 2.1308660507202148e-06,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -8.3446502685546875e-07}, /* L57 */
-{7.5642675161361694e-01, 2.6151537895202637e-06,
- 1.1920928955078125e-07, -3.0875205993652344e-05,
- -1.6927719116210938e-05}, /* L58 */
-{7.1186864376068115e-01, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -4.4107437133789062e-06,
- -4.2319297790527344e-06}, /* L59 */
-{5.5729919672012329e-01, 1.9930303096771240e-06,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 1.0728836059570312e-06}, /* L60 */
-{9.2214035987854004e-01, 3.3527612686157227e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.3841857910156250e-06}, /* L61 */
-{1.1209777593612671e+00, 4.1425228118896484e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-07,
- -3.3378601074218750e-06}, /* L62 */
-{8.2143312692642212e-01, 3.0845403671264648e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.4305114746093750e-06}, /* L63 */
-{9.1016262769699097e-01, 3.4719705581665039e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -7.2121620178222656e-06}, /* L64 */
-{8.4808546304702759e-01, 3.2857060432434082e-06,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -1.7285346984863281e-06}, /* L65 */
-{7.8788590431213379e-01, 3.0994415283203125e-06,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- 2.0265579223632812e-06}, /* L66 */
-{8.2463252544403076e-01, 3.2931566238403320e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -1.9073486328125000e-06}, /* L67 */
-{8.6029779911041260e-01, 3.4868717193603516e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 1.9073486328125000e-06}, /* L68 */
-{8.8033676147460938e-01, 3.6209821701049805e-06,
- 1.1920928955078125e-07, -5.0604343414306641e-05,
- -1.2701749801635742e-04}, /* L69 */
-{1.2535502910614014e+00, 5.2303075790405273e-06,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 1.1920928955078125e-06}, /* L70 */
-{9.0141552686691284e-01, 3.8146972656250000e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 3.3378601074218750e-06}, /* L71 */
-{7.7777242660522461e-01, 3.3378601074218750e-06,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -1.4185905456542969e-05}, /* L72 */
-{1.0034232139587402e+00, 4.3660402297973633e-06,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- 2.9802322387695312e-06}, /* L73 */
-{8.9863836765289307e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -6.9737434387207031e-06}, /* L74 */
-{1.0266774892807007e+00, 4.5895576477050781e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -7.7486038208007812e-07}, /* L75 */
-{6.6445106267929077e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -2.8014183044433594e-05,
- -2.6226043701171875e-05}, /* L76 */
-{1.2500019073486328e+00, 5.7369470596313477e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -2.9802322387695312e-07}, /* L77 */
-{1.0576709508895874e+00, 4.9173831939697266e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 1.9669532775878906e-05}, /* L78 */
-{8.0380576848983765e-01, 3.7848949432373047e-06,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 1.3113021850585938e-06}, /* L79 */
-{6.3124734163284302e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- -4.0531158447265625e-06}, /* L80 */
-{1.2044825553894043e+00, 5.8151781558990479e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -4.4107437133789062e-06}, /* L81 */
-{8.1098091602325439e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- -5.0067901611328125e-06}, /* L82 */
-{1.2168718576431274e+00, 6.0200691223144531e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.4901161193847656e-06}, /* L83 */
-{5.6548178195953369e-01, 2.8312206268310547e-06,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -1.6689300537109375e-06}, /* L84 */
-{1.3882204294204712e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- 1.5497207641601562e-06}, /* L85 */
-{1.7107630968093872e+00, 8.7693333625793457e-06,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- 3.0994415283203125e-06}, /* L86 */
-{8.1896400451660156e-01, 4.2468309402465820e-06,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 5.4836273193359375e-06}, /* L87 */
-{7.6276636123657227e-01, 4.0009617805480957e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 2.9802322387695312e-06}, /* L88 */
-{8.0899810791015625e-01, 4.2915344238281250e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.1920928955078125e-07}, /* L89 */
-{8.7223005294799805e-01, 4.6789646148681641e-06,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -1.1920928955078125e-06}, /* L90 */
-{8.2417380809783936e-01, 4.4703483581542969e-06,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 1.2516975402832031e-05}, /* L91 */
-{7.5204324722290039e-01, 4.1238963603973389e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -5.0663948059082031e-06}, /* L92 */
-{1.4193508625030518e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, 9.6559524536132812e-06,
- 0.0000000000000000e+00}, /* L93 */
-{9.6275132894515991e-01, 5.3942203521728516e-06,
- 1.1920928955078125e-07, -6.2584877014160156e-06,
- -3.3974647521972656e-06}, /* L94 */
-{9.3683904409408569e-01, 5.3048133850097656e-06,
- 1.1920928955078125e-07, -5.9008598327636719e-06,
- 5.3644180297851562e-06}, /* L95 */
-{1.0781044960021973e+00, 6.1690807342529297e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- 1.6689300537109375e-06}, /* L96 */
-{1.0644396543502808e+00, 6.1541795730590820e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 3.4570693969726562e-06}, /* L97 */
-{9.8469865322113037e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -5.4240226745605469e-06}, /* L98 */
-{1.1337554454803467e+00, 6.6906213760375977e-06,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- 9.0599060058593750e-06}, /* L99 */
-{9.7000402212142944e-01, 5.7816505432128906e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 1.0728836059570312e-06}, /* L100 */
-{9.5541024208068848e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, -3.1709671020507812e-05,
- -8.5830688476562500e-06}, /* L101 */
-{8.3822196722030640e-01, 5.0961971282958984e-06,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- 1.7881393432617188e-06}, /* L102 */
-{1.9174509048461914e+00, 1.1771917343139648e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- -2.3245811462402344e-06}, /* L103 */
-{1.0769299268722534e+00, 6.6757202148437500e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- 2.8610229492187500e-06}, /* L104 */
-{1.1833299398422241e+00, 7.4058771133422852e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- -1.7285346984863281e-06}, /* L105 */
-{8.6897367238998413e-01, 5.4910778999328613e-06,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- -4.7624111175537109e-05}, /* L106 */
-{1.0105159282684326e+00, 6.4447522163391113e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.4901161193847656e-06}, /* L107 */
-{1.2222226858139038e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, -9.9539756774902344e-06,
- -1.0073184967041016e-05}, /* L108 */
-{9.9771076440811157e-01, 6.4820051193237305e-06,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- 3.8146972656250000e-06}, /* L109 */
-{8.5909843444824219e-01, 5.6326389312744141e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -1.6689300537109375e-06}, /* L110 */
-{1.0945979356765747e+00, 7.2419643402099609e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 4.7683715820312500e-06}, /* L111 */
-{9.4642227888107300e-01, 6.3180923461914062e-06,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 7.2717666625976562e-06}, /* L112 */
-{9.4248169660568237e-01, 6.3478946685791016e-06,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -7.8678131103515625e-06}, /* L113 */
-{1.0350898504257202e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -6.0200691223144531e-06}, /* L114 */
-{1.2651975154876709e+00, 8.6724758148193359e-06,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 1.0013580322265625e-05}, /* L115 */
-{9.2753994464874268e-01, 6.4130872488021851e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- -4.7683715820312500e-06}, /* L116 */
-{1.3073544502258301e+00, 9.1195106506347656e-06,
- 1.1920928955078125e-07, 7.1644783020019531e-05,
- 6.3896179199218750e-05}, /* L117 */
-{9.6987730264663696e-01, 6.8247318267822266e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.2165985107421875e-04}, /* L118 */
-{9.7899848222732544e-01, 6.9439411163330078e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -5.4836273193359375e-06}, /* L119 */
-{8.6979395151138306e-01, 6.2212347984313965e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.5497207641601562e-06}, /* L120 */
-{9.7924292087554932e-01, 7.0631504058837891e-06,
- 1.1920928955078125e-07, -4.1127204895019531e-05,
- 1.7762184143066406e-05}, /* L121 */
-{9.7541624307632446e-01, 7.0929527282714844e-06,
- 1.1920928955078125e-07, -7.6293945312500000e-06,
- -1.0728836059570312e-06}, /* L122 */
-{1.6664739847183228e+00, 1.2218952178955078e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- -1.3291835784912109e-05}, /* L123 */
-{8.2053667306900024e-01, 6.0647726058959961e-06,
- 1.1920928955078125e-07, -1.8298625946044922e-05,
- -2.4974346160888672e-05}, /* L124 */
-{1.2599431276321411e+00, 9.3877315521240234e-06,
- 1.1920928955078125e-07, 1.0609626770019531e-05,
- 3.5762786865234375e-07}, /* L125 */
-{1.3730195760726929e+00, 1.0311603546142578e-05,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -1.9669532775878906e-06}, /* L126 */
-{1.4950799942016602e+00, 1.1317431926727295e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.9802322387695312e-06}, /* L127 */
-{8.7696063518524170e-01, 6.6906213760375977e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- 0.0000000000000000e+00}, /* L128 */
-{9.4961285591125488e-01, 7.3015689849853516e-06,
- 1.1920928955078125e-07, -7.5101852416992188e-06,
- -7.7486038208007812e-06}, /* L129 */
-{1.0076545476913452e+00, 7.8082084655761719e-06,
- 1.1920928955078125e-07, 4.4107437133789062e-06,
- -8.1658363342285156e-06}, /* L130 */
-{1.2137182950973511e+00, 9.4771385192871094e-06,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- -2.9623508453369141e-05}, /* L131 */
-{1.3598455190658569e+00, 1.0699033737182617e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- -1.2516975402832031e-06}, /* L132 */
-{1.1579024791717529e+00, 9.1791152954101562e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -3.8146972656250000e-06}, /* L133 */
-{1.3115695714950562e+00, 1.0475516319274902e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -2.5629997253417969e-06}, /* L134 */
-{1.0259270668029785e+00, 8.2552433013916016e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-06,
- -4.3511390686035156e-06}, /* L135 */
-{1.4080590009689331e+00, 1.1414289474487305e-05,
- 1.1920928955078125e-07, -1.1265277862548828e-05,
- -3.6358833312988281e-06}, /* L136 */
-{1.6496450901031494e+00, 1.3470649719238281e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -1.6689300537109375e-06}, /* L137 */
-{1.6231811046600342e+00, 1.3351440429687500e-05,
- 1.1920928955078125e-07, -1.4066696166992188e-05,
- -1.5854835510253906e-05}, /* L138 */
-{1.5899404287338257e+00, 1.3172626495361328e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- -1.1920928955078125e-07}, /* L139 */
-{1.2106659412384033e+00, 1.0102987289428711e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- 1.4305114746093750e-05}, /* L140 */
-{1.2322425842285156e+00, 1.0356307029724121e-05,
- 1.1920928955078125e-07, 1.4543533325195312e-05,
- 1.5258789062500000e-05}, /* L141 */
-{9.4058716297149658e-01, 7.9609453678131104e-06,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 2.3841857910156250e-07}, /* L142 */
-{1.0523852109909058e+00, 8.9704990386962891e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 3.5166740417480469e-05}, /* L143 */
-{1.0451387166976929e+00, 8.9704990386962891e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 6.1988830566406250e-06}, /* L144 */
-{1.3551633358001709e+00, 1.1712312698364258e-05,
- 1.1920928955078125e-07, -1.1205673217773438e-05,
- -3.4570693969726562e-06}, /* L145 */
-{1.4623255729675293e+00, 1.2725591659545898e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- 5.3644180297851562e-06}, /* L146 */
-{1.0782223939895630e+00, 9.4473361968994141e-06,
- 1.1920928955078125e-07, -2.0980834960937500e-05,
- -4.7087669372558594e-06}, /* L147 */
-{1.3513203859329224e+00, 1.1920928955078125e-05,
- 1.1920928955078125e-07, 1.6570091247558594e-05,
- -3.9935111999511719e-06}, /* L148 */
-{1.1107107400894165e+00, 9.8645687103271484e-06,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- -3.8146972656250000e-06}, /* L149 */
-{1.1465020179748535e+00, 1.0251998901367188e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- 3.1232833862304688e-05}, /* L150 */
-{1.0740799903869629e+00, 9.6671283245086670e-06,
- 1.1920928955078125e-07, -2.1100044250488281e-05,
- -1.3530254364013672e-05}, /* L151 */
-{7.9934722185134888e-01, 7.2419643402099609e-06,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- 6.4373016357421875e-06}, /* L152 */
-{1.1633380651473999e+00, 1.0609626770019531e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-05,
- -2.7537345886230469e-05}, /* L153 */
-{8.3928984403610229e-01, 7.7039003372192383e-06,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- -2.3245811462402344e-06}, /* L154 */
-{1.3031933307647705e+00, 1.2040138244628906e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- 3.0398368835449219e-05}, /* L155 */
-{1.1048823595046997e+00, 1.0274350643157959e-05,
- 1.1920928955078125e-07, -6.4849853515625000e-05,
- 4.2915344238281250e-06}, /* L156 */
-{8.5346072912216187e-01, 7.9870223999023438e-06,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- -6.3419342041015625e-05}, /* L157 */
-{1.2245478630065918e+00, 1.1533498764038086e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- -2.3126602172851562e-05}, /* L158 */
-{1.0674954652786255e+00, 1.0117888450622559e-05,
- 1.1920928955078125e-07, 5.9127807617187500e-05,
- -3.0517578125000000e-05}, /* L159 */
-{9.1249036788940430e-01, 8.7022781372070312e-06,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -1.0728836059570312e-05}, /* L160 */
-{1.3328945636749268e+00, 1.2791249901056290e-05,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- 7.7486038208007812e-06}, /* L161 */
-{8.3950537443161011e-01, 8.1062316894531250e-06,
- 1.1920928955078125e-07, 6.1988830566406250e-06,
- 5.1259994506835938e-06}, /* L162 */
-{1.3895767927169800e+00, 1.3500452041625977e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -2.8610229492187500e-06}, /* L163 */
-{1.0594571828842163e+00, 1.0356307029724121e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- -1.7881393432617188e-07}, /* L164 */
-{1.4068090915679932e+00, 1.3835728168487549e-05,
- 1.1920928955078125e-07, 1.3351440429687500e-05,
- 2.0265579223632812e-06}, /* L165 */
-{1.7166895866394043e+00, 1.6987323760986328e-05,
- 1.1920928955078125e-07, -4.0054321289062500e-05,
- -8.2433223724365234e-05}, /* L166 */
-{2.3772552013397217e+00, 2.3663043975830078e-05,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- 1.1920928955078125e-06}, /* L167 */
-{9.3749171495437622e-01, 9.3877315521240234e-06,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -1.7881393432617188e-07}, /* L168 */
-{9.8224931955337524e-01, 9.8943710327148438e-06,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -8.3446502685546875e-07}, /* L169 */
-{1.3132193088531494e+00, 1.3306736946105957e-05,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -2.2053718566894531e-06}, /* L170 */
-{1.7382994890213013e+00, 1.7717480659484863e-05,
- 1.1920928955078125e-07, -1.1503696441650391e-05,
- 9.1791152954101562e-06}, /* L171 */
-{1.0057780742645264e+00, 1.0311603546142578e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 3.2186508178710938e-06}, /* L172 */
-{1.5086681842803955e+00, 1.5556812286376953e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- -6.6757202148437500e-06}, /* L173 */
-{1.6506453752517700e+00, 1.7121434211730957e-05,
- 1.1920928955078125e-07, -3.3974647521972656e-05,
- 3.4809112548828125e-05}, /* L174 */
-{1.3599753379821777e+00, 1.4185905456542969e-05,
- 1.1920928955078125e-07, -2.1100044250488281e-05,
- 1.7166137695312500e-05}, /* L175 */
-{8.5198110342025757e-01, 8.9406967163085938e-06,
- 1.1920928955078125e-07, 8.6188316345214844e-05,
- -3.9279460906982422e-05}, /* L176 */
-{1.0423605442047119e+00, 1.0997056961059570e-05,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- 1.2159347534179688e-05}, /* L177 */
-{9.3814527988433838e-01, 9.9539756774902344e-06,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- 2.9206275939941406e-05}, /* L178 */
-{1.2877079248428345e+00, 1.3738870620727539e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -3.5762786865234375e-06}, /* L179 */
-{1.1284198760986328e+00, 1.2107193470001221e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- 2.2411346435546875e-05}, /* L180 */
-{1.4323217868804932e+00, 1.5452504158020020e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 4.0531158447265625e-06}, /* L181 */
-{1.0047575235366821e+00, 1.0900199413299561e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -2.8610229492187500e-06}, /* L182 */
-{1.3852163553237915e+00, 1.5109777450561523e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -1.1920928955078125e-07}, /* L183 */
-{1.0991307497024536e+00, 1.2055039405822754e-05,
- 1.1920928955078125e-07, -7.6293945312500000e-06,
- 1.0728836059570312e-05}, /* L184 */
-{1.5347256660461426e+00, 1.6927719116210938e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-04,
- 5.6982040405273438e-05}, /* L185 */
-{1.1070562601089478e+00, 1.2278556823730469e-05,
- 1.1920928955078125e-07, 1.5044212341308594e-04,
- 1.2040138244628906e-04}, /* L186 */
-{9.9126607179641724e-01, 1.1049211025238037e-05,
- 1.1920928955078125e-07, -3.5703182220458984e-05,
- -3.6358833312988281e-06}, /* L187 */
-{1.4041755199432373e+00, 1.5735626220703125e-05,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 2.1934509277343750e-05}, /* L188 */
-{1.2632194757461548e+00, 1.4230608940124512e-05,
- 1.1920928955078125e-07, -6.6161155700683594e-06,
- 4.7683715820312500e-07}, /* L189 */
-{1.3006491661071777e+00, 1.4729797840118408e-05,
- 1.1920928955078125e-07, -4.5895576477050781e-06,
- 9.4175338745117188e-06}, /* L190 */
-{1.1518263816833496e+00, 1.3113021850585938e-05,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- 4.1723251342773438e-06}, /* L191 */
-{9.7395467758178711e-01, 1.1146068572998047e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 1.4305114746093750e-06}, /* L192 */
-{1.3367887735366821e+00, 1.5377998352050781e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -5.6028366088867188e-06}, /* L193 */
-{1.2313115596771240e+00, 1.4238059520721436e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 3.6954879760742188e-06}, /* L194 */
-{1.1076924800872803e+00, 1.2874603271484375e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -5.3644180297851562e-07}, /* L195 */
-{9.1708576679229736e-01, 1.0713934898376465e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- 1.7881393432617188e-06}, /* L196 */
-{1.3311398029327393e+00, 1.5631318092346191e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -9.3579292297363281e-06}, /* L197 */
-{1.0883123874664307e+00, 1.2844800949096680e-05,
- 1.1920928955078125e-07, 5.3048133850097656e-05,
- -1.7285346984863281e-05}, /* L198 */
-{1.2763050794601440e+00, 1.5139579772949219e-05,
- 1.1920928955078125e-07, -7.9452991485595703e-05,
- 1.8715858459472656e-05}, /* L199 */
-{1.8636472225189209e+00, 2.2217631340026855e-05,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- 2.3841857910156250e-07}, /* L200 */
-{1.8072097301483154e+00, 2.1651387214660645e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- 1.0728836059570312e-06}, /* L201 */
-{1.4121232032775879e+00, 1.7002224922180176e-05,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- 7.1525573730468750e-07}, /* L202 */
-{1.4260981082916260e+00, 1.7255544662475586e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -2.8014183044433594e-06}, /* L203 */
-{1.0318481922149658e+00, 1.2546777725219727e-05,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- -3.0994415283203125e-06}, /* L204 */
-{8.3560913801193237e-01, 1.0222196578979492e-05,
- 1.1920928955078125e-07, 7.9846382141113281e-04,
- -1.1980533599853516e-04}, /* L205 */
-{1.1310299634933472e+00, 1.3887882232666016e-05,
- 1.1920928955078125e-07, -1.4245510101318359e-05,
- -1.0967254638671875e-05}, /* L206 */
-{1.2493760585784912e+00, 1.5415251255035400e-05,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- -1.4901161193847656e-06}, /* L207 */
-{7.7160632610321045e-01, 9.5665454864501953e-06,
- 1.1920928955078125e-07, 1.3351440429687500e-05,
- -9.5367431640625000e-06}, /* L208 */
-{1.3127908706665039e+00, 1.6354024410247803e-05,
- 1.1920928955078125e-07, -9.8943710327148438e-06,
- 2.1576881408691406e-05}, /* L209 */
-{1.1642893552780151e+00, 1.4573335647583008e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -4.4703483581542969e-06}, /* L210 */
-{1.5382074117660522e+00, 1.9345432519912720e-05,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 1.1920928955078125e-07}, /* L211 */
-{8.5731607675552368e-01, 1.0833144187927246e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- 5.9604644775390625e-06}, /* L212 */
-{1.1396486759185791e+00, 1.4469027519226074e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.5762786865234375e-06}, /* L213 */
-{9.2991012334823608e-01, 1.1861324310302734e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -2.1457672119140625e-06}, /* L214 */
-{1.2880182266235352e+00, 1.6510486602783203e-05,
- 1.1920928955078125e-07, -4.0590763092041016e-05,
- -4.1007995605468750e-05}, /* L215 */
-{1.1110311746597290e+00, 1.4305114746093750e-05,
- 1.1920928955078125e-07, -4.7743320465087891e-05,
- 6.7949295043945312e-06}, /* L216 */
-{1.1073273420333862e+00, 1.4334917068481445e-05,
- 1.1920928955078125e-07, -4.8273801803588867e-04,
- 1.5127658843994141e-04}, /* L217 */
-{1.1329685449600220e+00, 1.4722347259521484e-05,
- 1.1920928955078125e-07, -1.5437602996826172e-05,
- -9.7751617431640625e-06}, /* L218 */
-{1.8424295186996460e+00, 2.4050474166870117e-05,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- -1.7881393432617188e-07}, /* L219 */
-{9.4768619537353516e-01, 1.2427568435668945e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- -3.1173229217529297e-05}, /* L220 */
-{1.6651252508163452e+00, 2.1934509277343750e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 1.8477439880371094e-05}, /* L221 */
-{1.2049322128295898e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, 7.6293945312500000e-06,
- -2.4318695068359375e-05}, /* L222 */
-{1.7462925910949707e+00, 2.3212283849716187e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -1.8954277038574219e-05}, /* L223 */
-{1.3508483171463013e+00, 1.8045306205749512e-05,
- 1.1920928955078125e-07, 1.2171268463134766e-04,
- 1.6820430755615234e-04}, /* L224 */
-{1.7554947137832642e+00, 2.3543834686279297e-05,
- 1.1920928955078125e-07, -4.5537948608398438e-05,
- 1.5258789062500000e-05}, /* L225 */
-{9.1924560070037842e-01, 1.2382864952087402e-05,
- 1.1920928955078125e-07, 5.8412551879882812e-06,
- 1.0371208190917969e-05}, /* L226 */
-{1.9515095949172974e+00, 2.6404857635498047e-05,
- 1.1920928955078125e-07, -1.5676021575927734e-05,
- 1.1324882507324219e-05}, /* L227 */
-{1.5808727741241455e+00, 2.1487474441528320e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 5.0067901611328125e-06}, /* L228 */
-{1.1574410200119019e+00, 1.5854835510253906e-05,
- 1.1920928955078125e-07, -1.2453198432922363e-03,
- 3.7360191345214844e-04}, /* L229 */
-{1.1128441095352173e+00, 1.5258789062500000e-05,
- 1.1920928955078125e-07, -2.3961067199707031e-05,
- -1.1086463928222656e-05}, /* L230 */
-{1.1622455120086670e+00, 1.6003847122192383e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 1.0609626770019531e-05}, /* L231 */
-{1.4094698429107666e+00, 1.9490718841552734e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.0728836059570312e-06}, /* L232 */
-{1.4140902757644653e+00, 1.9639730453491211e-05,
- 1.1920928955078125e-07, -1.8000602722167969e-05,
- -7.9870223999023438e-06}, /* L233 */
-{1.2282335758209229e+00, 1.7130747437477112e-05,
- 1.1920928955078125e-07, -6.1392784118652344e-06,
- -1.7404556274414062e-05}, /* L234 */
-{1.2425397634506226e+00, 1.7404556274414062e-05,
- 1.1920928955078125e-07, -1.5020370483398438e-05,
- -3.5762786865234375e-06}, /* L235 */
-{1.1927958726882935e+00, 1.6778707504272461e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -2.3841857910156250e-06}, /* L236 */
-{1.2699459791183472e+00, 1.7940998077392578e-05,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- 2.1576881408691406e-05}, /* L237 */
-{1.3881181478500366e+00, 1.9691884517669678e-05,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -4.1723251342773438e-06}, /* L238 */
-{1.4853274822235107e+00, 2.1159648895263672e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -3.0100345611572266e-05}, /* L239 */
-{1.0768114328384399e+00, 1.5407800674438477e-05,
- 1.1920928955078125e-07, 1.8835067749023438e-05,
- 4.6610832214355469e-05}, /* L240 */
-{1.4497377872467041e+00, 2.0831823348999023e-05,
- 1.1920928955078125e-07, 3.9219856262207031e-05,
- -3.5464763641357422e-05}, /* L241 */
-{1.1290923357009888e+00, 1.6286969184875488e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- -1.5258789062500000e-05}, /* L242 */
-{1.5070230960845947e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, -5.6022405624389648e-04,
- -1.9335746765136719e-04}, /* L243 */
-{1.0819364786148071e+00, 1.5735626220703125e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -1.6748905181884766e-05}, /* L244 */
-{1.2305822372436523e+00, 1.7970800399780273e-05,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- -4.1723251342773438e-06}, /* L245 */
-{1.2052567005157471e+00, 1.7672777175903320e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -6.3180923461914062e-06}, /* L246 */
-{1.1770448684692383e+00, 1.7330050468444824e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-05,
- -4.4524669647216797e-05}, /* L247 */
-{8.1249350309371948e-01, 1.2010335922241211e-05,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- 1.2278556823730469e-05}, /* L248 */
-{1.4313074350357056e+00, 2.1263957023620605e-05,
- 1.1920928955078125e-07, 6.8068504333496094e-05,
- 8.4996223449707031e-05}, /* L249 */
-{1.3758753538131714e+00, 2.0503997802734375e-05,
- 1.1920928955078125e-07, -4.4941902160644531e-05,
- -1.3113021850585938e-05}, /* L250 */
-{1.3961406946182251e+00, 2.0891427993774414e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- 4.4107437133789062e-05}, /* L251 */
-{1.0922185182571411e+00, 1.6406178474426270e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 2.4914741516113281e-05}, /* L252 */
-{2.0036911964416504e+00, 3.0219554901123047e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-05,
- -6.3478946685791016e-05}, /* L253 */
-{1.2283130884170532e+00, 1.8596649169921875e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 2.2053718566894531e-05}, /* L254 */
-{1.5646891593933105e+00, 2.3782253265380859e-05,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -2.0861625671386719e-06}, /* L255 */
-{8.2609242200851440e-01, 1.2606382369995117e-05,
- 1.1920928955078125e-07, -7.3909759521484375e-06,
- 8.4638595581054688e-06}, /* L256 */
-{1.3677217960357666e+00, 2.0977109670639038e-05,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- -1.8006563186645508e-04}, /* L257 */
-{1.3099935054779053e+00, 2.0146369934082031e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -1.9133090972900391e-05}, /* L258 */
-{1.9681277275085449e+00, 3.0383467674255371e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -1.2099742889404297e-05}, /* L259 */
-{1.3383669853210449e+00, 2.0742416381835938e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-05,
- -5.7220458984375000e-06}, /* L260 */
-{1.9674154520034790e+00, 3.0606985092163086e-05,
- 1.1920928955078125e-07, -1.2755393981933594e-05,
- 5.4836273193359375e-06}, /* L261 */
-{1.3085529804229736e+00, 2.0436942577362061e-05,
- 1.1920928955078125e-07, -6.6220760345458984e-05,
- 2.1219253540039062e-05}, /* L262 */
-{1.2642450332641602e+00, 1.9818544387817383e-05,
- 1.1920928955078125e-07, -2.2709369659423828e-05,
- 1.2278556823730469e-05}, /* L263 */
-{9.9049341678619385e-01, 1.5586614608764648e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-05,
- 2.0980834960937500e-05}, /* L264 */
-{1.4299786090850830e+00, 2.2590160369873047e-05,
- 1.1920928955078125e-07, 6.9737434387207031e-05,
- 2.8371810913085938e-05}, /* L265 */
-{1.3213690519332886e+00, 2.0951032638549805e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- 2.8610229492187500e-05}, /* L266 */
-{1.3797768354415894e+00, 2.1964311599731445e-05,
- 1.1920928955078125e-07, 1.4901161193847656e-04,
- 2.6345252990722656e-05}, /* L267 */
-{1.1585434675216675e+00, 1.8507242202758789e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- 3.5762786865234375e-07}, /* L268 */
-{1.2386015653610229e+00, 1.9863247871398926e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- 2.2888183593750000e-05}, /* L269 */
-{8.6106866598129272e-01, 1.3858079910278320e-05,
- 1.1920928955078125e-07, 1.8954277038574219e-05,
- 7.3909759521484375e-06}, /* L270 */
-{1.3770818710327148e+00, 2.2247433662414551e-05,
- 1.1920928955078125e-07, -5.5015087127685547e-05,
- -5.1140785217285156e-05}, /* L271 */
-{8.8970291614532471e-01, 1.4424324035644531e-05,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- -4.5299530029296875e-06}, /* L272 */
-{1.2884864807128906e+00, 2.0966865122318268e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- -1.1861324310302734e-05}, /* L273 */
-{1.4032483100891113e+00, 2.2917985916137695e-05,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -6.6161155700683594e-06}, /* L274 */
-{1.3581495285034180e+00, 2.2262334823608398e-05,
- 1.1920928955078125e-07, -6.9737434387207031e-06,
- -1.6689300537109375e-06}, /* L275 */
-{1.0380054712295532e+00, 1.7076730728149414e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- 1.0728836059570312e-06}, /* L276 */
-{1.4381147623062134e+00, 2.3752450942993164e-05,
- 1.1920928955078125e-07, -1.4740228652954102e-04,
- 1.3327598571777344e-04}, /* L277 */
-{9.2417162656784058e-01, 1.5318393707275391e-05,
- 1.1920928955078125e-07, 4.0769577026367188e-05,
- -1.2224912643432617e-04}, /* L278 */
-{1.9663872718811035e+00, 3.2700598239898682e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 5.9604644775390625e-07}, /* L279 */
-{8.7850165367126465e-01, 1.4662742614746094e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- 1.6927719116210938e-05}, /* L280 */
-{1.3597855567932129e+00, 2.2776424884796143e-05,
- 1.1920928955078125e-07, -2.3365020751953125e-05,
- 2.1457672119140625e-05}, /* L281 */
-{1.2535316944122314e+00, 2.1070241928100586e-05,
- 1.1920928955078125e-07, -1.0073184967041016e-05,
- -6.2584877014160156e-06}, /* L282 */
-{1.6940252780914307e+00, 2.8580427169799805e-05,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- -2.7716159820556641e-05}, /* L283 */
-{1.7207762002944946e+00, 2.9131770133972168e-05,
- 1.1920928955078125e-07, -2.5689601898193359e-05,
- -2.3603439331054688e-05}, /* L284 */
-{1.5690516233444214e+00, 2.6658177375793457e-05,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- 2.4318695068359375e-05}, /* L285 */
-{9.3176907300949097e-01, 1.5884637832641602e-05,
- 1.1920928955078125e-07, 3.1352043151855469e-05,
- 1.2636184692382812e-05}, /* L286 */
-{1.7524996995925903e+00, 2.9981136322021484e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 9.5367431640625000e-07}, /* L287 */
-{1.4092265367507935e+00, 2.4192035198211670e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 5.7220458984375000e-06}, /* L288 */
-{1.4592931270599365e+00, 2.5138258934020996e-05,
- 1.1920928955078125e-07, -5.4240226745605469e-06,
- 8.8214874267578125e-06}, /* L289 */
-{1.1326684951782227e+00, 1.9580125808715820e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- 9.6559524536132812e-06}, /* L290 */
-{1.7203397750854492e+00, 2.9839575290679932e-05,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- -1.0132789611816406e-06}, /* L291 */
-{1.2411547899246216e+00, 2.1606683731079102e-05,
- 1.1920928955078125e-07, 5.3405761718750000e-05,
- -1.3780593872070312e-04}, /* L292 */
-{1.3279527425765991e+00, 2.3193657398223877e-05,
- 1.1920928955078125e-07, -3.6418437957763672e-05,
- 7.1525573730468750e-06}, /* L293 */
-{1.2626969814300537e+00, 2.2128224372863770e-05,
- 1.1920928955078125e-07, -3.0577182769775391e-05,
- 3.5166740417480469e-05}, /* L294 */
-{1.4912158250808716e+00, 2.6226043701171875e-05,
- 1.1920928955078125e-07, -1.6570091247558594e-05,
- 5.2928924560546875e-05}, /* L295 */
-{1.5792609453201294e+00, 2.7865171432495117e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- -3.7431716918945312e-05}, /* L296 */
-{1.3803179264068604e+00, 2.4437904357910156e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-05,
- -2.6226043701171875e-05}, /* L297 */
-{1.2949305772781372e+00, 2.3007392883300781e-05,
- 1.1920928955078125e-07, -2.9683113098144531e-05,
- -1.3625621795654297e-04}, /* L298 */
-{1.7122772932052612e+00, 3.0517578125000000e-05,
- 1.1920928955078125e-07, -3.2067298889160156e-05,
- 3.8862228393554688e-05}, /* L299 */
-{1.3943964242935181e+00, 2.4944543838500977e-05,
- 1.1920928955078125e-07, -2.0599365234375000e-04,
- 2.5844573974609375e-04}, /* L300 */
-{1.4839481115341187e+00, 2.6626512408256531e-05,
- 1.1920928955078125e-07, -9.1969966888427734e-05,
- -2.3603439331054688e-05}, /* L301 */
-{1.1966172456741333e+00, 2.1542422473430634e-05,
- 1.1920928955078125e-07, -1.7285346984863281e-05,
- 2.3007392883300781e-05}, /* L302 */
-{1.4801714420318604e+00, 2.6732683181762695e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 1.9073486328125000e-06}, /* L303 */
-{8.8730728626251221e-01, 1.6078352928161621e-05,
- 1.1920928955078125e-07, -1.2516975402832031e-05,
- 1.8715858459472656e-05}, /* L304 */
-{1.4934006929397583e+00, 2.7149915695190430e-05,
- 1.1920928955078125e-07, -2.0503997802734375e-05,
- -5.9604644775390625e-06}, /* L305 */
-{1.5817629098892212e+00, 2.8878450393676758e-05,
- 1.1920928955078125e-07, 2.4461746215820312e-04,
- 4.1162967681884766e-04}, /* L306 */
-{1.4428733587265015e+00, 2.6404857635498047e-05,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- -2.1338462829589844e-05}, /* L307 */
-{1.2507926225662231e+00, 2.2962689399719238e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -7.2121620178222656e-06}, /* L308 */
-{1.3024975061416626e+00, 2.3990869522094727e-05,
- 1.1920928955078125e-07, -2.7298927307128906e-05,
- 3.6120414733886719e-05}, /* L309 */
-{9.8947024345397949e-01, 1.8283724784851074e-05,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- -5.1856040954589844e-06}, /* L310 */
-{1.3021492958068848e+00, 2.4139881134033203e-05,
- 1.1920928955078125e-07, -2.4259090423583984e-05,
- -2.0980834960937500e-05}, /* L311 */
-{1.0070807933807373e+00, 1.8730759620666504e-05,
- 1.1920928955078125e-07, 7.2002410888671875e-05,
- -1.0371208190917969e-05}, /* L312 */
-{1.3713759183883667e+00, 2.5587069103494287e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-05,
- 4.8041343688964844e-05}, /* L313 */
-{1.6591700315475464e+00, 3.1054019927978516e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- 3.4689903259277344e-05}, /* L314 */
-{1.8895976543426514e+00, 3.5479664802551270e-05,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- -1.4245510101318359e-05}, /* L315 */
-{1.6360173225402832e+00, 3.0815601348876953e-05,
- 1.1920928955078125e-07, -1.0251998901367188e-05,
- 3.5762786865234375e-06}, /* L316 */
-{1.7347766160964966e+00, 3.2782554626464844e-05,
- 1.1920928955078125e-07, 2.8848648071289062e-05,
- -1.3887882232666016e-05}, /* L317 */
-{1.3631970882415771e+00, 2.5838613510131836e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -1.0251998901367188e-05}, /* L318 */
-{1.5250338315963745e+00, 2.8997659683227539e-05,
- 1.1920928955078125e-07, -6.9737434387207031e-06,
- 2.1338462829589844e-05}, /* L319 */
-{1.2937122583389282e+00, 2.4676322937011719e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -2.6226043701171875e-06}, /* L320 */
-{1.2668468952178955e+00, 2.4244189262390137e-05,
- 1.1920928955078125e-07, -2.0450353622436523e-04,
- 6.2704086303710938e-05}, /* L321 */
-{1.3446707725524902e+00, 2.5808811187744141e-05,
- 1.1920928955078125e-07, 1.2755393981933594e-05,
- 3.2544136047363281e-05}, /* L322 */
-{1.5656805038452148e+00, 3.0147377401590347e-05,
- 1.1920928955078125e-07, -3.1173229217529297e-05,
- 2.0265579223632812e-06}, /* L323 */
-{9.7515469789505005e-01, 1.8835067749023438e-05,
- 1.1920928955078125e-07, 3.6478042602539062e-05,
- 5.7220458984375000e-06}, /* L324 */
-{1.4139997959136963e+00, 2.7395784854888916e-05,
- 1.1920928955078125e-07, -2.7537345886230469e-05,
- -1.9729137420654297e-05}, /* L325 */
-{1.2921580076217651e+00, 2.5108456611633301e-05,
- 1.1920928955078125e-07, -2.7418136596679688e-06,
- -1.0550022125244141e-05}, /* L326 */
-{1.5915480852127075e+00, 3.1031668186187744e-05,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- 9.5367431640625000e-07}, /* L327 */
-{1.0167046785354614e+00, 1.9878149032592773e-05,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 7.7843666076660156e-05}, /* L328 */
-{1.3880305290222168e+00, 2.7220696210861206e-05,
- 1.1920928955078125e-07, -1.4781951904296875e-05,
- 1.0728836059570312e-05}, /* L329 */
-{1.2407928705215454e+00, 2.4408102035522461e-05,
- 1.1920928955078125e-07, -1.0573863983154297e-04,
- -9.4175338745117188e-06}, /* L330 */
-{1.5777361392974854e+00, 3.1128525733947754e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 9.2983245849609375e-06}, /* L331 */
-{1.0602152347564697e+00, 2.0980834960937500e-05,
- 1.1920928955078125e-07, 3.1828880310058594e-05,
- 6.4373016357421875e-06}, /* L332 */
-{1.3769810199737549e+00, 2.7358531951904297e-05,
- 1.1920928955078125e-07, -2.3442506790161133e-04,
- -5.3519010543823242e-04}, /* L333 */
-{1.3866982460021973e+00, 2.7626752853393555e-05,
- 1.1920928955078125e-07, -1.9919872283935547e-04,
- -4.0769577026367188e-05}, /* L334 */
-{2.2314548492431641e+00, 4.4584274291992188e-05,
- 1.1920928955078125e-07, 1.8298625946044922e-04,
- 8.4161758422851562e-05}, /* L335 */
-{1.0252518653869629e+00, 2.0533800125122070e-05,
- 1.1920928955078125e-07, -1.4483928680419922e-05,
- 1.2397766113281250e-05}, /* L336 */
-{1.2571254968643188e+00, 2.5272369384765625e-05,
- 1.1920928955078125e-07, 1.5103816986083984e-04,
- -2.7364492416381836e-04}, /* L337 */
-{2.4185619354248047e+00, 4.8726797103881836e-05,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 1.7881393432617188e-06}, /* L338 */
-{1.6487299203872681e+00, 3.3318996429443359e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-05,
- -4.8995018005371094e-05}, /* L339 */
-{1.5366488695144653e+00, 3.1143426895141602e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 2.3603439331054688e-05}, /* L340 */
-{1.2910223007202148e+00, 2.6240944862365723e-05,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- 3.4570693969726562e-06}, /* L341 */
-{1.3638499975204468e+00, 2.7805566787719727e-05,
- 1.1920928955078125e-07, -5.0842761993408203e-05,
- -1.2874603271484375e-05}, /* L342 */
-{1.7593357563018799e+00, 3.5971403121948242e-05,
- 1.1920928955078125e-07, 6.4969062805175781e-05,
- 2.3126602172851562e-05}, /* L343 */
-{1.0851702690124512e+00, 2.2251158952713013e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -9.1791152954101562e-06}, /* L344 */
-{1.6893405914306641e+00, 3.4739205148071051e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -1.6510486602783203e-05}, /* L345 */
-{1.5395991802215576e+00, 3.1754374504089355e-05,
- 1.1920928955078125e-07, -2.0086765289306641e-05,
- 5.8889389038085938e-05}, /* L346 */
-{1.8025369644165039e+00, 3.7282705307006836e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-06,
- -2.5033950805664062e-06}, /* L347 */
-{1.0213063955307007e+00, 2.1189451217651367e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -8.2552433013916016e-05}, /* L348 */
-{1.4274803400039673e+00, 2.9698014259338379e-05,
- 1.1920928955078125e-07, 7.8678131103515625e-06,
- 5.0425529479980469e-05}, /* L349 */
-{1.4874764680862427e+00, 3.1031668186187744e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -1.1324882507324219e-06}, /* L350 */
-{1.2323276996612549e+00, 2.5782734155654907e-05,
- 1.1920928955078125e-07, -1.0669231414794922e-05,
- 1.3113021850585938e-06}, /* L351 */
-{1.1558399200439453e+00, 2.4251639842987061e-05,
- 1.1920928955078125e-07, -3.7133693695068359e-05,
- -3.0994415283203125e-05}, /* L352 */
-{1.5928018093109131e+00, 3.3516436815261841e-05,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- 3.6716461181640625e-05}, /* L353 */
-{1.5775300264358521e+00, 3.3289194107055664e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- -1.1241436004638672e-04}, /* L354 */
-{1.7656648159027100e+00, 3.7372112274169922e-05,
- 1.1920928955078125e-07, 2.5749206542968750e-05,
- 2.9087066650390625e-04}, /* L355 */
-{1.5403403043746948e+00, 3.2693147659301758e-05,
- 1.1920928955078125e-07, 9.2506408691406250e-05,
- 5.0902366638183594e-05}, /* L356 */
-{2.0307791233062744e+00, 4.3213367462158203e-05,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- 1.7762184143066406e-05}, /* L357 */
-{1.1064735651016235e+00, 2.3610889911651611e-05,
- 1.1920928955078125e-07, -1.2636184692382812e-05,
- 3.9339065551757812e-06}, /* L358 */
-{1.9712550640106201e+00, 4.2185187339782715e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-05,
- -1.9788742065429688e-05}, /* L359 */
-{1.6364184617996216e+00, 3.5114586353302002e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- 3.2186508178710938e-06}, /* L360 */
-{1.5186941623687744e+00, 3.2678246498107910e-05,
- 1.1920928955078125e-07, 1.3947486877441406e-05,
- 7.0333480834960938e-06}, /* L361 */
-{1.8631494045257568e+00, 4.0203332901000977e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 8.3446502685546875e-07}, /* L362 */
-{1.4024899005889893e+00, 3.0346214771270752e-05,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- 5.3644180297851562e-06}, /* L363 */
-{1.2168850898742676e+00, 2.6404857635498047e-05,
- 1.1920928955078125e-07, 7.9035758972167969e-05,
- -4.6670436859130859e-05}, /* L364 */
-{1.4287465810775757e+00, 3.1083822250366211e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -9.2983245849609375e-06}, /* L365 */
-{1.5832413434982300e+00, 3.4540891647338867e-05,
- 1.1920928955078125e-07, -3.4630298614501953e-05,
- -2.1457672119140625e-05}, /* L366 */
-{1.2572484016418457e+00, 2.7507543563842773e-05,
- 1.1920928955078125e-07, -1.3768672943115234e-05,
- 3.4570693969726562e-05}, /* L367 */
-{1.2728769779205322e+00, 2.7924776077270508e-05,
- 1.1920928955078125e-07, 2.2888183593750000e-05,
- -1.8894672393798828e-05}, /* L368 */
-{1.5958453416824341e+00, 3.5099685192108154e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-05,
- 8.4638595581054688e-06}, /* L369 */
-{1.2963402271270752e+00, 2.8589740395545959e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- 1.0967254638671875e-05}, /* L370 */
-{1.4958263635635376e+00, 3.3080577850341797e-05,
- 1.1920928955078125e-07, 2.2888183593750000e-05,
- -3.4034252166748047e-05}, /* L371 */
-{1.1101927757263184e+00, 2.4616718292236328e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -6.0796737670898438e-06}, /* L372 */
-{1.6968700885772705e+00, 3.7729740142822266e-05,
- 1.1920928955078125e-07, 1.8596649169921875e-05,
- 5.5432319641113281e-05}, /* L373 */
-{1.5401507616043091e+00, 3.4406781196594238e-05,
- 1.1920928955078125e-07, 1.1200904846191406e-03,
- 1.0662078857421875e-03}, /* L374 */
-{1.5490877628326416e+00, 3.4630298614501953e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 6.1273574829101562e-05}, /* L375 */
-{1.3835726976394653e+00, 3.1009316444396973e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 1.2516975402832031e-05}, /* L376 */
-{1.5278452634811401e+00, 3.4332275390625000e-05,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- 4.0531158447265625e-06}, /* L377 */
-{1.2354429960250854e+00, 2.7842819690704346e-05,
- 1.1920928955078125e-07, 6.7710876464843750e-05,
- -2.1159648895263672e-05}, /* L378 */
-{1.8586021661758423e+00, 4.1991472244262695e-05,
- 1.1920928955078125e-07, 5.5670738220214844e-05,
- 2.8610229492187500e-05}, /* L379 */
-{1.4308124780654907e+00, 3.2408162951469421e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -1.7166137695312500e-05}, /* L380 */
-{1.8135217428207397e+00, 4.1186809539794922e-05,
- 1.1920928955078125e-07, -2.9385089874267578e-05,
- 1.8358230590820312e-05}, /* L381 */
-{1.1185842752456665e+00, 2.5469809770584106e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 1.3232231140136719e-05}, /* L382 */
-{1.5520923137664795e+00, 3.5434961318969727e-05,
- 1.1920928955078125e-07, -1.9252300262451172e-05,
- -2.3722648620605469e-05}, /* L383 */
-{1.3195593357086182e+00, 3.0219554901123047e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-04,
- -1.1658668518066406e-04}, /* L384 */
-{1.5323998928070068e+00, 3.5166740417480469e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- -2.8014183044433594e-06}, /* L385 */
-{1.2937575578689575e+00, 2.9772520065307617e-05,
- 1.1920928955078125e-07, 5.3405761718750000e-05,
- 8.9406967163085938e-05}, /* L386 */
-{1.5891233682632446e+00, 3.6656856536865234e-05,
- 1.1920928955078125e-07, -1.7762184143066406e-05,
- 1.4185905456542969e-05}, /* L387 */
-{1.4428008794784546e+00, 3.3371150493621826e-05,
- 1.1920928955078125e-07, -3.3020973205566406e-05,
- 5.8174133300781250e-05}, /* L388 */
-{1.5745214223861694e+00, 3.6507844924926758e-05,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- 1.0013580322265625e-05}, /* L389 */
-{1.4140938520431519e+00, 3.2871961593627930e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -2.1457672119140625e-06}, /* L390 */
-{1.7289836406707764e+00, 4.0296465158462524e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -3.1590461730957031e-05}, /* L391 */
-{1.2878098487854004e+00, 3.0100345611572266e-05,
- 1.1920928955078125e-07, -3.3020973205566406e-05,
- 1.6224384307861328e-04}, /* L392 */
-{1.2515516281127930e+00, 2.9318034648895264e-05,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- 2.6226043701171875e-06}, /* L393 */
-{1.3856973648071289e+00, 3.2544136047363281e-05,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- -3.3140182495117188e-05}, /* L394 */
-{1.7262631654739380e+00, 4.0650367736816406e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-05,
- -3.5464763641357422e-05}, /* L395 */
-{1.8571650981903076e+00, 4.3839216232299805e-05,
- 1.1920928955078125e-07, 5.1617622375488281e-05,
- 3.9815902709960938e-05}, /* L396 */
-{2.0099670886993408e+00, 4.7564506530761719e-05,
- 1.1920928955078125e-07, -8.9406967163085938e-06,
- -9.1195106506347656e-06}, /* L397 */
-{1.3874368667602539e+00, 3.2916665077209473e-05,
- 1.1920928955078125e-07, -2.2351741790771484e-05,
- 3.2663345336914062e-05}, /* L398 */
-{2.4343891143798828e+00, 5.7995319366455078e-05,
- 1.1920928955078125e-07, 5.6266784667968750e-05,
- 1.6331672668457031e-04}, /* L399 */
-{1.5224618911743164e+00, 3.6299228668212891e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- 2.5033950805664062e-06}, /* L400 */
-{1.4082775115966797e+00, 3.3661723136901855e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 1.4066696166992188e-05}, /* L401 */
-{1.2126153707504272e+00, 2.9057264328002930e-05,
- 1.1920928955078125e-07, 2.1815299987792969e-05,
- 3.4332275390625000e-05}, /* L402 */
-{2.5636248588562012e+00, 6.1586499214172363e-05,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- -3.7133693695068359e-05}, /* L403 */
-{1.5283277034759521e+00, 3.6805868148803711e-05,
- 1.1920928955078125e-07, -4.0054321289062500e-05,
- 3.3497810363769531e-05}, /* L404 */
-{1.6487146615982056e+00, 3.9801001548767090e-05,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- 9.2983245849609375e-06}, /* L405 */
-{1.5061186552047729e+00, 3.6448240280151367e-05,
- 1.1920928955078125e-07, -1.1026859283447266e-05,
- -4.5299530029296875e-06}, /* L406 */
-{1.7836228609085083e+00, 4.3271276808809489e-05,
- 1.1920928955078125e-07, -3.8325786590576172e-05,
- -2.0325183868408203e-05}, /* L407 */
-{1.5133095979690552e+00, 3.6835670471191406e-05,
- 1.1920928955078125e-07, 4.3869018554687500e-05,
- 1.2993812561035156e-04}, /* L408 */
-{1.3993221521377563e+00, 3.4123659133911133e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-05,
- 9.1314315795898438e-05}, /* L409 */
-{2.0421807765960693e+00, 4.9918889999389648e-05,
- 1.1920928955078125e-07, -5.6684017181396484e-05,
- -4.8995018005371094e-05}, /* L410 */
-{2.0139575004577637e+00, 4.9339607357978821e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 1.8358230590820312e-05}, /* L411 */
-{1.2693790197372437e+00, 3.1173229217529297e-05,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- 1.1563301086425781e-05}, /* L412 */
-{1.6149556636810303e+00, 3.9756298065185547e-05,
- 1.1920928955078125e-07, 3.6716461181640625e-05,
- 6.6757202148437500e-06}, /* L413 */
-{2.1042048931121826e+00, 5.1930546760559082e-05,
- 1.1920928955078125e-07, 5.6266784667968750e-05,
- 1.1205673217773438e-05}, /* L414 */
-{2.3600187301635742e+00, 5.8382749557495117e-05,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -2.3245811462402344e-06}, /* L415 */
-{1.1724325418472290e+00, 2.9072165489196777e-05,
- 1.1920928955078125e-07, 1.8477439880371094e-05,
- 1.0371208190917969e-05}, /* L416 */
-{2.0010447502136230e+00, 4.9740076065063477e-05,
- 1.1920928955078125e-07, 6.1511993408203125e-05,
- 5.8412551879882812e-05}, /* L417 */
-{1.4965070486068726e+00, 3.7312507629394531e-05,
- 1.1920928955078125e-07, -2.0438432693481445e-04,
- -7.8082084655761719e-06}, /* L418 */
-{1.8993338346481323e+00, 4.7437846660614014e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.1146068572998047e-05}, /* L419 */
-{1.3320710659027100e+00, 3.3348798751831055e-05,
- 1.1920928955078125e-07, -3.8444995880126953e-05,
- -1.8596649169921875e-05}, /* L420 */
-{1.5037709474563599e+00, 3.7744641304016113e-05,
- 1.1920928955078125e-07, -1.4638900756835938e-04,
- -4.1842460632324219e-05}, /* L421 */
-{1.2178124189376831e+00, 3.0636787414550781e-05,
- 1.1920928955078125e-07, -4.7385692596435547e-05,
- 3.4809112548828125e-05}, /* L422 */
-{2.2716977596282959e+00, 5.7280063629150391e-05,
- 1.1920928955078125e-07, -3.5643577575683594e-05,
- -8.0466270446777344e-06}, /* L423 */
-{1.2428482770919800e+00, 3.1411647796630859e-05,
- 1.1920928955078125e-07, -4.5359134674072266e-05,
- -4.0531158447265625e-06}, /* L424 */
-{1.5208196640014648e+00, 3.8526952266693115e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- 1.1801719665527344e-05}, /* L425 */
-{1.5707828998565674e+00, 3.9894133806228638e-05,
- 1.1920928955078125e-07, 9.6559524536132812e-05,
- 1.2028217315673828e-04}, /* L426 */
-{2.5501470565795898e+00, 6.4909458160400391e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 2.1576881408691406e-05}, /* L427 */
-{1.5723862648010254e+00, 4.0113925933837891e-05,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- 1.5377998352050781e-05}, /* L428 */
-{1.3853552341461182e+00, 3.5446137189865112e-05,
- 1.1920928955078125e-07, -1.3124942779541016e-04,
- 1.3113021850585938e-05}, /* L429 */
-{1.6110064983367920e+00, 4.1291117668151855e-05,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- 8.3446502685546875e-07}, /* L430 */
-{1.6875528097152710e+00, 4.3392181396484375e-05,
- 1.1920928955078125e-07, -2.8336048126220703e-04,
- -2.4873018264770508e-04}, /* L431 */
-{1.2580647468566895e+00, 3.2395124435424805e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 3.2186508178710938e-06}, /* L432 */
-{1.3020370006561279e+00, 3.3609569072723389e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 2.5153160095214844e-05}, /* L433 */
-{1.5356587171554565e+00, 3.9726495742797852e-05,
- 1.1920928955078125e-07, -3.2186508178710938e-06,
- 3.7431716918945312e-05}, /* L434 */
-{1.4221168756484985e+00, 3.6875717341899872e-05,
- 1.1920928955078125e-07, 2.8729438781738281e-05,
- 2.4676322937011719e-05}, /* L435 */
-{1.5804789066314697e+00, 4.1082501411437988e-05,
- 1.1920928955078125e-07, -1.6260147094726562e-04,
- -1.3589859008789062e-05}, /* L436 */
-{2.1990342140197754e+00, 5.7280063629150391e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -1.3113021850585938e-05}, /* L437 */
-{1.4281648397445679e+00, 3.7290155887603760e-05,
- 1.1920928955078125e-07, -1.1807680130004883e-04,
- -1.6748905181884766e-05}, /* L438 */
-{1.7788007259368896e+00, 4.6551227569580078e-05,
- 1.1920928955078125e-07, 4.7206878662109375e-05,
- -4.3511390686035156e-06}, /* L439 */
-{1.4165672063827515e+00, 3.7156045436859131e-05,
- 1.1920928955078125e-07, 6.9975852966308594e-05,
- 1.5497207641601562e-06}, /* L440 */
-{1.5724385976791382e+00, 4.1335821151733398e-05,
- 1.1920928955078125e-07, 3.6120414733886719e-05,
- 4.0292739868164062e-05}, /* L441 */
-{1.5191972255706787e+00, 4.0024518966674805e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- -3.5166740417480469e-06}, /* L442 */
-{2.3227202892303467e+00, 6.1333179473876953e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 1.8596649169921875e-05}, /* L443 */
-{1.1730588674545288e+00, 3.1054019927978516e-05,
- 1.1920928955078125e-07, -1.8000602722167969e-05,
- 1.8119812011718750e-05}, /* L444 */
-{1.8870326280593872e+00, 5.0053000450134277e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 5.8412551879882812e-06}, /* L445 */
-{1.3317126035690308e+00, 3.5405158996582031e-05,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- 2.7894973754882812e-05}, /* L446 */
-{1.9164794683456421e+00, 5.1066279411315918e-05,
- 1.1920928955078125e-07, 3.2305717468261719e-05,
- 1.0371208190917969e-05}, /* L447 */
-{1.2008755207061768e+00, 3.2067298889160156e-05,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- -2.9802322387695312e-07}, /* L448 */
-{1.8592894077301025e+00, 4.9762427806854248e-05,
- 1.1920928955078125e-07, 5.2928924560546875e-05,
- 3.0875205993652344e-05}, /* L449 */
-{1.4543038606643677e+00, 3.9011240005493164e-05,
- 1.1920928955078125e-07, -2.7179718017578125e-05,
- -1.4603137969970703e-05}, /* L450 */
-{1.3710653781890869e+00, 3.6863610148429871e-05,
- 1.1920928955078125e-07, 4.6014785766601562e-05,
- -4.5657157897949219e-05}, /* L451 */
-{1.3317747116088867e+00, 3.5881996154785156e-05,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- -9.6559524536132812e-06}, /* L452 */
-{1.8977129459381104e+00, 5.1245093345642090e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- 1.9907951354980469e-05}, /* L453 */
-{1.4655789136886597e+00, 3.9666891098022461e-05,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 8.1777572631835938e-05}, /* L454 */
-{2.4006447792053223e+00, 6.5118074417114258e-05,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 1.7762184143066406e-05}, /* L455 */
-{1.3473154306411743e+00, 3.6627054214477539e-05,
- 1.1920928955078125e-07, -2.8789043426513672e-05,
- -4.3869018554687500e-05}, /* L456 */
-{1.3899849653244019e+00, 3.7863850593566895e-05,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- 7.5101852416992188e-06}, /* L457 */
-{1.6185790300369263e+00, 4.4196844100952148e-05,
- 1.1920928955078125e-07, 4.6610832214355469e-05,
- 5.6624412536621094e-05}, /* L458 */
-{2.2405581474304199e+00, 6.1303377151489258e-05,
- 1.1920928955078125e-07, -5.1379203796386719e-05,
- -5.2452087402343750e-05}, /* L459 */
-{1.3464591503143311e+00, 3.6926008760929108e-05,
- 1.1920928955078125e-07, -1.0323524475097656e-04,
- 1.1920928955078125e-07}, /* L460 */
-{1.4822196960449219e+00, 4.0739774703979492e-05,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- 1.1920928955078125e-07}, /* L461 */
-{1.5725692510604858e+00, 4.3317675590515137e-05,
- 1.1920928955078125e-07, -1.8656253814697266e-05,
- -5.8352947235107422e-05}, /* L462 */
-{2.0267581939697266e+00, 5.5938959121704102e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 7.1525573730468750e-07}, /* L463 */
-{1.2160104513168335e+00, 3.3646821975708008e-05,
- 1.1920928955078125e-07, -8.4102153778076172e-05,
- -1.3709068298339844e-04}, /* L464 */
-{1.9386088848114014e+00, 5.3733587265014648e-05,
- 1.1920928955078125e-07, -1.3411045074462891e-05,
- 3.3378601074218750e-06}, /* L465 */
-{1.3389012813568115e+00, 3.7193298339843750e-05,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- -2.2888183593750000e-05}, /* L466 */
-{2.3745849132537842e+00, 6.6101551055908203e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- 6.5565109252929688e-06}, /* L467 */
-{1.2000545263290405e+00, 3.3490359783172607e-05,
- 1.1920928955078125e-07, -9.9718570709228516e-05,
- 1.0073184967041016e-04}, /* L468 */
-{1.6820694208145142e+00, 4.7028064727783203e-05,
- 1.1920928955078125e-07, -9.2327594757080078e-05,
- -3.9219856262207031e-05}, /* L469 */
-{1.5945889949798584e+00, 4.4673681259155273e-05,
- 1.1920928955078125e-07, 3.3497810363769531e-05,
- -2.0325183868408203e-05}, /* L470 */
-{1.7134709358215332e+00, 4.8352405428886414e-05,
- 1.1920928955078125e-07, -1.5119314193725586e-03,
- 5.5122375488281250e-04}, /* L471 */
-{2.0623269081115723e+00, 5.8025121688842773e-05,
- 1.1920928955078125e-07, 4.5418739318847656e-05,
- 9.6559524536132812e-06}, /* L472 */
-{1.8613817691802979e+00, 5.2481889724731445e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 2.9444694519042969e-05}, /* L473 */
-{1.7524915933609009e+00, 4.9531459808349609e-05,
- 1.1920928955078125e-07, 1.2743473052978516e-04,
- 1.3673305511474609e-04}, /* L474 */
-{2.0158240795135498e+00, 5.7101249694824219e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- 4.1842460632324219e-05}, /* L475 */
-{1.6091333627700806e+00, 4.5686960220336914e-05,
- 1.1920928955078125e-07, -2.0366907119750977e-04,
- 3.3271312713623047e-04}, /* L476 */
-{1.8048858642578125e+00, 5.1319599151611328e-05,
- 1.1920928955078125e-07, -1.2397766113281250e-05,
- 1.6570091247558594e-05}, /* L477 */
-{1.2343252897262573e+00, 3.5174190998077393e-05,
- 1.1920928955078125e-07, 6.9499015808105469e-05,
- -3.5643577575683594e-05}, /* L478 */
-{2.2608819007873535e+00, 6.4551830291748047e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 6.3180923461914062e-06}, /* L479 */
-{1.3447395563125610e+00, 3.8474798202514648e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-05,
- -1.8000602722167969e-05}, /* L480 */
-{2.2403395175933838e+00, 6.4246356487274170e-05,
- 1.1920928955078125e-07, -9.9480152130126953e-05,
- 1.2648105621337891e-04}, /* L481 */
-{1.7789937257766724e+00, 5.1110982894897461e-05,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- 1.1444091796875000e-05}, /* L482 */
-{2.1473312377929688e+00, 6.1839818954467773e-05,
- 1.1920928955078125e-07, -8.9943408966064453e-05,
- 1.5497207641601562e-05}, /* L483 */
-{1.7458072900772095e+00, 5.0365924835205078e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -2.0265579223632812e-06}, /* L484 */
-{1.6828794479370117e+00, 4.8667192459106445e-05,
- 1.1920928955078125e-07, -2.3603439331054688e-05,
- 5.2452087402343750e-06}, /* L485 */
-{1.9567462205886841e+00, 5.6684017181396484e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- 1.4424324035644531e-05}, /* L486 */
-{2.1825170516967773e+00, 6.3359737396240234e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-05,
- 3.5762786865234375e-06}, /* L487 */
-{1.3133434057235718e+00, 3.8206577301025391e-05,
- 1.1920928955078125e-07, 1.2087821960449219e-04,
- -1.1408329010009766e-04}, /* L488 */
-{1.5121370553970337e+00, 4.4077634811401367e-05,
- 1.1920928955078125e-07, -4.6849250793457031e-05,
- -2.9623508453369141e-05}, /* L489 */
-{1.5141438245773315e+00, 4.4226646423339844e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-05,
- -4.0411949157714844e-05}, /* L490 */
-{2.4876575469970703e+00, 7.2807073593139648e-05,
- 1.1920928955078125e-07, -2.8729438781738281e-05,
- 9.2983245849609375e-06}, /* L491 */
-{1.6005485057830811e+00, 4.6968460083007812e-05,
- 1.1920928955078125e-07, 3.6978721618652344e-04,
- -1.8286705017089844e-04}, /* L492 */
-{1.9228715896606445e+00, 5.6505203247070312e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -1.1920928955078125e-05}, /* L493 */
-{1.7139291763305664e+00, 5.0477683544158936e-05,
- 1.1920928955078125e-07, -5.5372714996337891e-05,
- 6.9618225097656250e-05}, /* L494 */
-{1.4171048402786255e+00, 4.1812658309936523e-05,
- 1.1920928955078125e-07, 2.6583671569824219e-05,
- -5.4240226745605469e-06}, /* L495 */
-{1.2761662006378174e+00, 3.7729740142822266e-05,
- 1.1920928955078125e-07, -1.2040138244628906e-05,
- 1.5497207641601562e-06}, /* L496 */
-{2.6397845745086670e+00, 7.8201293945312500e-05,
- 1.1920928955078125e-07, -9.8943710327148438e-06,
- 5.8412551879882812e-06}, /* L497 */
-{1.4158325195312500e+00, 4.2032450437545776e-05,
- 1.1920928955078125e-07, -6.5982341766357422e-05,
- -6.2406063079833984e-05}, /* L498 */
-{2.0969846248626709e+00, 6.2376260757446289e-05,
- 1.1920928955078125e-07, -2.7775764465332031e-05,
- -1.2755393981933594e-05}, /* L499 */
-{1.8039427995681763e+00, 5.3763389587402344e-05,
- 1.1920928955078125e-07, -1.1742115020751953e-05,
- 7.8678131103515625e-06}, /* L500 */
-{1.5367920398712158e+00, 4.5899301767349243e-05,
- 1.1920928955078125e-07, 1.1515617370605469e-04,
- -9.1016292572021484e-05}, /* L501 */
-{1.3033996820449829e+00, 3.9011240005493164e-05,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -5.1259994506835938e-05}, /* L502 */
-{2.3156929016113281e+00, 6.9588422775268555e-05,
- 1.1920928955078125e-07, 1.3076066970825195e-03,
- 1.2779235839843750e-04}, /* L503 */
-{1.3907319307327271e+00, 4.1782855987548828e-05,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- -1.8179416656494141e-05}, /* L504 */
-{1.8578191995620728e+00, 5.5924057960510254e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- 6.9141387939453125e-06}, /* L505 */
-{1.5202399492263794e+00, 4.5858323574066162e-05,
- 1.1920928955078125e-07, 1.6522407531738281e-04,
- -7.3313713073730469e-06}, /* L506 */
-{2.2042512893676758e+00, 6.6637992858886719e-05,
- 1.1920928955078125e-07, -2.8306245803833008e-04,
- -1.4406442642211914e-04}, /* L507 */
-{1.3676111698150635e+00, 4.1425228118896484e-05,
- 1.1920928955078125e-07, -1.8709897994995117e-04,
- 2.8467178344726562e-04}, /* L508 */
-{2.2085328102111816e+00, 6.7025423049926758e-05,
- 1.1920928955078125e-07, -6.9677829742431641e-05,
- 6.3657760620117188e-05}, /* L509 */
-{1.1625357866287231e+00, 3.5345554351806641e-05,
- 1.1920928955078125e-07, 5.3524971008300781e-05,
- -2.9802322387695312e-06}, /* L510 */
-{3.0369558334350586e+00, 9.2506408691406250e-05,
- 1.1920928955078125e-07, -2.5928020477294922e-05,
- -2.1874904632568359e-05}, /* L511 */
-{1.4666870832443237e+00, 4.4763088226318359e-05,
- 1.1920928955078125e-07, 1.9431114196777344e-05,
- -5.5670738220214844e-05}, /* L512 */
-{1.8086416721343994e+00, 5.5313110351562500e-05,
- 1.1920928955078125e-07, 6.2108039855957031e-05,
- -1.3709068298339844e-06}, /* L513 */
-{1.5173912048339844e+00, 4.6491622924804688e-05,
- 1.1920928955078125e-07, -2.8848648071289062e-05,
- -2.9802322387695312e-06}, /* L514 */
-{2.0600731372833252e+00, 6.3240528106689453e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 3.3378601074218750e-06}, /* L515 */
-{1.5270886421203613e+00, 4.6968460083007812e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-06,
- 9.5367431640625000e-06}, /* L516 */
-{1.7814702987670898e+00, 5.4925680160522461e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -8.5711479187011719e-05}, /* L517 */
-{1.7870476245880127e+00, 5.5178999900817871e-05,
- 1.1920928955078125e-07, 5.6862831115722656e-05,
- 1.3709068298339844e-05}, /* L518 */
-{1.9362196922302246e+00, 5.9932470321655273e-05,
- 1.1920928955078125e-07, -9.5367431640625000e-06,
- 6.0439109802246094e-05}, /* L519 */
-{1.3744274377822876e+00, 4.2602419853210449e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -1.1622905731201172e-05}, /* L520 */
-{1.7755588293075562e+00, 5.5193901062011719e-05,
- 1.1920928955078125e-07, -1.8465518951416016e-04,
- 5.6862831115722656e-05}, /* L521 */
-{1.5423601865768433e+00, 4.7996640205383301e-05,
- 1.1920928955078125e-07, 3.4213066101074219e-05,
- 4.0769577026367188e-05}, /* L522 */
-{2.1106407642364502e+00, 6.5803527832031250e-05,
- 1.1920928955078125e-07, -8.4936618804931641e-05,
- -1.1348724365234375e-04}, /* L523 */
-{1.3484805822372437e+00, 4.2130239307880402e-05,
- 1.1920928955078125e-07, 1.2183189392089844e-04,
- -5.7101249694824219e-05}, /* L524 */
-{2.1515107154846191e+00, 6.7338347434997559e-05,
- 1.1920928955078125e-07, -4.6372413635253906e-05,
- -5.5134296417236328e-05}, /* L525 */
-{1.5235549211502075e+00, 4.7773122787475586e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -1.8417835235595703e-05}, /* L526 */
-{2.2948238849639893e+00, 7.2164926677942276e-05,
- 1.1920928955078125e-07, -2.2608041763305664e-04,
- -1.3178586959838867e-04}, /* L527 */
-{1.3865612745285034e+00, 4.3647363781929016e-05,
- 1.1920928955078125e-07, -8.6069107055664062e-05,
- -9.5784664154052734e-05}, /* L528 */
-{1.6351052522659302e+00, 5.1558017730712891e-05,
- 1.1920928955078125e-07, -1.3589859008789062e-05,
- -5.8412551879882812e-06}, /* L529 */
-{1.3783016204833984e+00, 4.3586827814579010e-05,
- 1.1920928955078125e-07, 4.7290325164794922e-04,
- 7.7950954437255859e-04}, /* L530 */
-{2.0898234844207764e+00, 6.6176056861877441e-05,
- 1.1920928955078125e-07, -2.7835369110107422e-04,
- -1.9860267639160156e-04}, /* L531 */
-{1.5142804384231567e+00, 4.8041343688964844e-05,
- 1.1920928955078125e-07, -6.1571598052978516e-05,
- 4.9352645874023438e-05}, /* L532 */
-{1.8591887950897217e+00, 5.9098005294799805e-05,
- 1.1920928955078125e-07, 2.9027462005615234e-04,
- 7.2598457336425781e-05}, /* L533 */
-{1.4400160312652588e+00, 4.5835971832275391e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 6.0796737670898438e-06}, /* L534 */
-{2.1574282646179199e+00, 6.8813562393188477e-05,
- 1.1920928955078125e-07, -7.9691410064697266e-05,
- -2.3126602172851562e-05}, /* L535 */
-{1.4426114559173584e+00, 4.6091037802398205e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.3245811462402344e-05}, /* L536 */
-{2.2162671089172363e+00, 7.1138143539428711e-05,
- 1.1920928955078125e-07, -5.6475400924682617e-04,
- 6.7853927612304688e-04}, /* L537 */
-{1.6541727781295776e+00, 5.3048133850097656e-05,
- 1.1920928955078125e-07, -1.4662742614746094e-05,
- -3.2603740692138672e-05}, /* L538 */
-{1.9854556322097778e+00, 6.3791871070861816e-05,
- 1.1920928955078125e-07, 5.0783157348632812e-05,
- 2.3841857910156250e-06}, /* L539 */
-{1.3101025819778442e+00, 4.2170286178588867e-05,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- 1.9669532775878906e-05}, /* L540 */
-{2.2993505001068115e+00, 7.4148178100585938e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-05,
- -1.8239021301269531e-05}, /* L541 */
-{1.6724472045898438e+00, 5.4031610488891602e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -3.6358833312988281e-06}, /* L542 */
-{2.4509053230285645e+00, 8.0496072769165039e-05,
- 1.1920928955078125e-07, -4.5971274375915527e-03,
- 4.1446685791015625e-03}, /* L543 */
-{2.0514364242553711e+00, 6.6667795181274414e-05,
- 1.1920928955078125e-07, -1.2717247009277344e-03,
- 5.8019161224365234e-04}, /* L544 */
-{1.6620854139328003e+00, 5.4001808166503906e-05,
- 1.1920928955078125e-07, -4.8875808715820312e-06,
- -1.0490417480468750e-04}, /* L545 */
-{1.2018510103225708e+00, 3.9115548133850098e-05,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- 8.2254409790039062e-06}, /* L546 */
-{2.3513827323913574e+00, 7.6681375503540039e-05,
- 1.1920928955078125e-07, -9.0181827545166016e-05,
- -3.4332275390625000e-05}, /* L547 */
-{1.5007878541946411e+00, 4.9024820327758789e-05,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- 2.2172927856445312e-05}, /* L548 */
-{1.7560857534408569e+00, 5.7473778724670410e-05,
- 1.1920928955078125e-07, -3.1888484954833984e-05,
- 5.2809715270996094e-05}, /* L549 */
-{1.7071760892868042e+00, 5.5968761444091797e-05,
- 1.1920928955078125e-07, -1.1801719665527344e-05,
- -3.2544136047363281e-05}, /* L550 */
-{2.6837894916534424e+00, 8.8147819042205811e-05,
- 1.1920928955078125e-07, 3.8743019104003906e-05,
- -3.6954879760742188e-05}, /* L551 */
-{1.2716388702392578e+00, 4.1842460632324219e-05,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- -5.3644180297851562e-06}, /* L552 */
-{1.7954537868499756e+00, 5.9187412261962891e-05,
- 1.1920928955078125e-07, -3.3617019653320312e-05,
- -2.1815299987792969e-05}, /* L553 */
-{1.5061886310577393e+00, 4.9740076065063477e-05,
- 1.1920928955078125e-07, -2.0146369934082031e-05,
- -6.1988830566406250e-06}, /* L554 */
-{1.5370391607284546e+00, 5.0857663154602051e-05,
- 1.1920928955078125e-07, -7.5161457061767578e-05,
- -1.5389919281005859e-04}, /* L555 */
-{1.6079173088073730e+00, 5.3301453590393066e-05,
- 1.1920928955078125e-07, 1.7285346984863281e-05,
- -1.8894672393798828e-05}, /* L556 */
-{2.4315073490142822e+00, 8.0764293670654297e-05,
- 1.1920928955078125e-07, 1.3399124145507812e-04,
- -9.2327594757080078e-05}, /* L557 */
-{1.7891756296157837e+00, 5.9515237808227539e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- 2.9563903808593750e-05}, /* L558 */
-{1.9819972515106201e+00, 6.6041946411132812e-05,
- 1.1920928955078125e-07, 3.5405158996582031e-05,
- 1.5139579772949219e-05}, /* L559 */
-{1.4444957971572876e+00, 4.8220157623291016e-05,
- 1.1920928955078125e-07, -5.2094459533691406e-05,
- 1.5497207641601562e-05}, /* L560 */
-{1.8420516252517700e+00, 6.1601400375366211e-05,
- 1.1920928955078125e-07, -3.3617019653320312e-05,
- 2.7775764465332031e-05}, /* L561 */
-{1.4381561279296875e+00, 4.8181042075157166e-05,
- 1.1920928955078125e-07, -5.4299831390380859e-05,
- 8.2969665527343750e-05}, /* L562 */
-{2.0806069374084473e+00, 6.9826841354370117e-05,
- 1.1920928955078125e-07, 2.8133392333984375e-05,
- -2.8014183044433594e-05}, /* L563 */
-{1.9604377746582031e+00, 6.5915286540985107e-05,
- 1.1920928955078125e-07, 1.8954277038574219e-05,
- 7.1883201599121094e-05}, /* L564 */
-{2.2695727348327637e+00, 7.6442956924438477e-05,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- -1.5556812286376953e-05}, /* L565 */
-{1.7466779947280884e+00, 5.9038400650024414e-05,
- 1.1920928955078125e-07, -3.5881996154785156e-05,
- -2.9498338699340820e-04}, /* L566 */
-{1.7442005872726440e+00, 5.8975070714950562e-05,
- 1.1920928955078125e-07, -1.1110305786132812e-04,
- 4.5418739318847656e-05}, /* L567 */
-{1.7894632816314697e+00, 6.0588121414184570e-05,
- 1.1920928955078125e-07, -5.2094459533691406e-05,
- -2.8073787689208984e-05}, /* L568 */
-{2.1548042297363281e+00, 7.3090195655822754e-05,
- 1.1920928955078125e-07, 6.3657760620117188e-05,
- -1.2814998626708984e-05}, /* L569 */
-{1.7060735225677490e+00, 5.7965517044067383e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- 2.3841857910156250e-07}, /* L570 */
-{2.1618013381958008e+00, 7.3581933975219727e-05,
- 1.1920928955078125e-07, -3.8802623748779297e-05,
- -3.8504600524902344e-05}, /* L571 */
-{1.3312404155731201e+00, 4.5388936996459961e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- 1.2516975402832031e-05}, /* L572 */
-{2.2142436504364014e+00, 7.5668096542358398e-05,
- 1.1920928955078125e-07, 2.5498867034912109e-04,
- 1.8239021301269531e-05}, /* L573 */
-{1.8709044456481934e+00, 6.4045190811157227e-05,
- 1.1920928955078125e-07, 3.9458274841308594e-05,
- -1.3017654418945312e-04}, /* L574 */
-{1.8356981277465820e+00, 6.2920153141021729e-05,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 1.7046928405761719e-05}, /* L575 */
-{1.6269609928131104e+00, 5.6013464927673340e-05,
- 1.1920928955078125e-07, 1.1110305786132812e-04,
- 1.0514259338378906e-04}, /* L576 */
-{1.7858775854110718e+00, 6.1422586441040039e-05,
- 1.1920928955078125e-07, -2.2768974304199219e-05,
- -5.3048133850097656e-06}, /* L577 */
-{1.8405936956405640e+00, 6.3523650169372559e-05,
- 1.1920928955078125e-07, 5.2165985107421875e-04,
- 2.5284290313720703e-04}, /* L578 */
-{2.3079874515533447e+00, 7.9661607742309570e-05,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- 7.6651573181152344e-05}, /* L579 */
-{1.8419151306152344e+00, 6.3687562942504883e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 1.1789798736572266e-04}, /* L580 */
-{2.2477552890777588e+00, 7.7858567237854004e-05,
- 1.1920928955078125e-07, -6.1869621276855469e-05,
- 6.2465667724609375e-05}, /* L581 */
-{1.7050098180770874e+00, 5.9157609939575195e-05,
- 1.1920928955078125e-07, -3.8802623748779297e-05,
- 4.6849250793457031e-05}, /* L582 */
-{2.3039925098419189e+00, 8.0108642578125000e-05,
- 1.1920928955078125e-07, 2.9957294464111328e-04,
- 2.0730495452880859e-04}, /* L583 */
-{1.5177390575408936e+00, 5.2852556109428406e-05,
- 1.1920928955078125e-07, 7.9274177551269531e-05,
- 1.9466876983642578e-04}, /* L584 */
-{1.6950563192367554e+00, 5.9112906455993652e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- -1.0621547698974609e-04}, /* L585 */
-{1.9710515737533569e+00, 6.8850815296173096e-05,
- 1.1920928955078125e-07, 3.1709671020507812e-05,
- 5.0067901611328125e-06}, /* L586 */
-{2.3959603309631348e+00, 8.3833932876586914e-05,
- 1.1920928955078125e-07, 9.7751617431640625e-06,
- -1.7046928405761719e-05}, /* L587 */
-{1.3788818120956421e+00, 4.8329588025808334e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 2.2292137145996094e-05}, /* L588 */
-{2.3634390830993652e+00, 8.2980841398239136e-05,
- 1.1920928955078125e-07, -4.7445297241210938e-05,
- -6.0200691223144531e-06}, /* L589 */
-{1.3804498910903931e+00, 4.8547983169555664e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -2.6941299438476562e-05}, /* L590 */
-{2.5963325500488281e+00, 9.1463327407836914e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- -3.2544136047363281e-05}, /* L591 */
-{1.5370742082595825e+00, 5.4240226745605469e-05,
- 1.1920928955078125e-07, -1.6868114471435547e-05,
- 9.5367431640625000e-06}, /* L592 */
-{2.1293606758117676e+00, 7.5280666351318359e-05,
- 1.1920928955078125e-07, 6.9737434387207031e-05,
- -5.4955482482910156e-05}, /* L593 */
-{1.9443531036376953e+00, 6.8843364715576172e-05,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- 1.6689300537109375e-06}, /* L594 */
-{2.3206169605255127e+00, 8.2358717918395996e-05,
- 1.1920928955078125e-07, 2.7835369110107422e-04,
- 3.1340122222900391e-04}, /* L595 */
-{1.3938962221145630e+00, 4.9531459808349609e-05,
- 1.1920928955078125e-07, -6.2108039855957031e-05,
- 1.2397766113281250e-04}, /* L596 */
-{1.6709876060485840e+00, 5.9466809034347534e-05,
- 1.1920928955078125e-07, 4.1007995605468750e-05,
- -8.0466270446777344e-06}, /* L597 */
-{1.9480447769165039e+00, 6.9439411163330078e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- -9.3579292297363281e-06}, /* L598 */
-{1.9883574247360229e+00, 7.1018934249877930e-05,
- 1.1920928955078125e-07, -1.4007091522216797e-05,
- -9.3460083007812500e-05}, /* L599 */
-{1.7259039878845215e+00, 6.1810016632080078e-05,
- 1.1920928955078125e-07, 5.7673454284667969e-04,
- 7.3790550231933594e-05}, /* L600 */
-{1.9108937978744507e+00, 6.8455934524536133e-05,
- 1.1920928955078125e-07, -8.4042549133300781e-06,
- 3.5762786865234375e-06}, /* L601 */
-{1.7439814805984497e+00, 6.2584877014160156e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- 7.8201293945312500e-05}, /* L602 */
-{1.8049827814102173e+00, 6.5490603446960449e-05,
- 1.1920928955078125e-07, 8.2743167877197266e-04,
- -1.8633008003234863e-03}, /* L603 */
-{1.6707587242126465e+00, 6.0416758060455322e-05,
- 1.1920928955078125e-07, -1.7046332359313965e-03,
- 1.0573863983154297e-04}, /* L604 */
-{1.9903466701507568e+00, 7.1793794631958008e-05,
- 1.1920928955078125e-07, -4.9412250518798828e-05,
- 5.4717063903808594e-05}, /* L605 */
-{1.4825662374496460e+00, 5.3614377975463867e-05,
- 1.1920928955078125e-07, -4.2742490768432617e-04,
- 3.2675266265869141e-04}, /* L606 */
-{1.9874185323715210e+00, 7.1942806243896484e-05,
- 1.1920928955078125e-07, -2.6226043701171875e-06,
- 5.8054924011230469e-05}, /* L607 */
-{1.4613593816757202e+00, 5.2988529205322266e-05,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- -4.4524669647216797e-05}, /* L608 */
-{1.7871354818344116e+00, 6.4879655838012695e-05,
- 1.1920928955078125e-07, -6.4074993133544922e-05,
- 3.4213066101074219e-05}, /* L609 */
-{1.7850975990295410e+00, 6.4909458160400391e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -4.2498111724853516e-05}, /* L610 */
-{2.3908145427703857e+00, 8.7082386016845703e-05,
- 1.1920928955078125e-07, -6.0200691223144531e-06,
- -1.8656253814697266e-05}, /* L611 */
-{1.4707460403442383e+00, 5.3673982620239258e-05,
- 1.1920928955078125e-07, 1.2731552124023438e-04,
- 5.1259994506835938e-06}, /* L612 */
-{2.7067213058471680e+00, 9.8958611488342285e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-04,
- 3.5023689270019531e-04}, /* L613 */
-{2.8527531623840332e+00, 1.0442733764648438e-04,
- 1.1920928955078125e-07, -5.6445598602294922e-05,
- -1.9311904907226562e-05}, /* L614 */
-{2.6320235729217529e+00, 9.6499919891357422e-05,
- 1.1920928955078125e-07, -7.6770782470703125e-05,
- 3.8862228393554688e-05}, /* L615 */
-{1.3943324089050293e+00, 5.1200389862060547e-05,
- 1.1920928955078125e-07, -3.4213066101074219e-05,
- 3.4570693969726562e-06}, /* L616 */
-{2.2607085704803467e+00, 8.3148479461669922e-05,
- 1.1920928955078125e-07, -4.7445297241210938e-05,
- -1.5020370483398438e-05}, /* L617 */
-{1.6288568973541260e+00, 6.0006976127624512e-05,
- 1.1920928955078125e-07, -8.6426734924316406e-06,
- -3.0517578125000000e-05}, /* L618 */
-{2.7762379646301270e+00, 1.0246038436889648e-04,
- 1.1920928955078125e-07, -2.5272369384765625e-05,
- -9.7274780273437500e-05}, /* L619 */
-{1.6316465139389038e+00, 6.0319900512695312e-05,
- 1.1920928955078125e-07, -1.4895200729370117e-04,
- -2.4461746215820312e-04}, /* L620 */
-{2.7586290836334229e+00, 1.0213255882263184e-04,
- 1.1920928955078125e-07, -1.0043382644653320e-04,
- -5.8412551879882812e-05}, /* L621 */
-{1.7431601285934448e+00, 6.4939260482788086e-05,
- 1.1920928955078125e-07, -1.3297796249389648e-03,
- 1.1305809020996094e-03}, /* L622 */
-{1.8369126319885254e+00, 6.8247318267822266e-05,
- 1.1920928955078125e-07, 2.7406215667724609e-04,
- -1.1372566223144531e-04}, /* L623 */
-{1.3774664402008057e+00, 5.1237642765045166e-05,
- 1.1920928955078125e-07, -7.9870223999023438e-06,
- -3.0219554901123047e-05}, /* L624 */
-{2.7983446121215820e+00, 1.0426342487335205e-04,
- 1.1920928955078125e-07, 3.4928321838378906e-05,
- 3.7670135498046875e-05}, /* L625 */
-{1.6402071714401245e+00, 6.1202794313430786e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -2.4437904357910156e-06}, /* L626 */
-{2.4713215827941895e+00, 9.2566013336181641e-05,
- 1.1920928955078125e-07, -1.1307001113891602e-04,
- 2.2768974304199219e-05}, /* L627 */
-{1.7462713718414307e+00, 6.5386295318603516e-05,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- -1.3911724090576172e-04}, /* L628 */
-{2.3559808731079102e+00, 8.8393688201904297e-05,
- 1.1920928955078125e-07, 4.2200088500976562e-05,
- -1.7285346984863281e-06}, /* L629 */
-{1.8167563676834106e+00, 6.8262219429016113e-05,
- 1.1920928955078125e-07, -1.4060735702514648e-04,
- -1.0925531387329102e-04}, /* L630 */
-{2.3393247127532959e+00, 8.8008120656013489e-05,
- 1.1920928955078125e-07, -1.3071298599243164e-04,
- -4.5359134674072266e-05}, /* L631 */
-{1.8033494949340820e+00, 6.7938119173049927e-05,
- 1.1920928955078125e-07, 2.1100044250488281e-05,
- 8.3446502685546875e-06}, /* L632 */
-{1.8867778778076172e+00, 7.1197748184204102e-05,
- 1.1920928955078125e-07, 3.7431716918945312e-05,
- 2.8491020202636719e-05}, /* L633 */
-{1.8551397323608398e+00, 7.0136040449142456e-05,
- 1.1920928955078125e-07, 7.5221061706542969e-05,
- 6.6518783569335938e-05}, /* L634 */
-{3.8595054149627686e+00, 1.4609098434448242e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 1.1682510375976562e-05}, /* L635 */
-{1.8008207082748413e+00, 6.8292021751403809e-05,
- 1.1920928955078125e-07, -9.7751617431640625e-05,
- 6.6399574279785156e-05}, /* L636 */
-{1.9303689002990723e+00, 7.3313713073730469e-05,
- 1.1920928955078125e-07, -1.7285346984863281e-05,
- -1.3196468353271484e-04}, /* L637 */
-{1.8370143175125122e+00, 6.9871544837951660e-05,
- 1.1920928955078125e-07, -8.1181526184082031e-05,
- -2.2351741790771484e-05}, /* L638 */
-{2.3124203681945801e+00, 8.8127329945564270e-05,
- 1.1920928955078125e-07, 4.2510032653808594e-04,
- -1.7571449279785156e-04}, /* L639 */
-{1.4748090505599976e+00, 5.6266784667968750e-05,
- 1.1920928955078125e-07, 5.8531761169433594e-05,
- -1.0669231414794922e-05}, /* L640 */
-{1.9966857433319092e+00, 7.6293945312500000e-05,
- 1.1920928955078125e-07, 3.6239624023437500e-05,
- 3.9339065551757812e-06}, /* L641 */
-{1.9933245182037354e+00, 7.6282769441604614e-05,
- 1.1920928955078125e-07, 2.9087066650390625e-05,
- 3.4809112548828125e-05}, /* L642 */
-{2.4898464679718018e+00, 9.5456838607788086e-05,
- 1.1920928955078125e-07, 6.0915946960449219e-05,
- 3.0398368835449219e-05}, /* L643 */
-{1.6159691810607910e+00, 6.2033534049987793e-05,
- 1.1920928955078125e-07, -2.1815299987792969e-05,
- 1.0490417480468750e-05}, /* L644 */
-{2.0833256244659424e+00, 8.0108642578125000e-05,
- 1.1920928955078125e-07, 8.6665153503417969e-05,
- 3.4689903259277344e-05}, /* L645 */
-{2.3369553089141846e+00, 9.0003013610839844e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -4.9114227294921875e-05}, /* L646 */
-{2.3951621055603027e+00, 9.2379748821258545e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -7.2717666625976562e-06}, /* L647 */
-{1.2481511831283569e+00, 4.8220157623291016e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- 3.6478042602539062e-05}, /* L648 */
-{2.2499496936798096e+00, 8.7052583694458008e-05,
- 1.1920928955078125e-07, -1.4799833297729492e-04,
- -1.0013580322265625e-04}, /* L649 */
-{1.8559933900833130e+00, 7.1913003921508789e-05,
- 1.1920928955078125e-07, -3.2484531402587891e-05,
- -6.1869621276855469e-05}, /* L650 */
-{2.1904718875885010e+00, 8.5011124610900879e-05,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 4.3034553527832031e-05}, /* L651 */
-{1.6025838851928711e+00, 6.2286853790283203e-05,
- 1.1920928955078125e-07, -3.0755996704101562e-05,
- 3.4451484680175781e-05}, /* L652 */
-{2.5568289756774902e+00, 9.9532306194305420e-05,
- 1.1920928955078125e-07, -7.7545642852783203e-05,
- -1.5079975128173828e-05}, /* L653 */
-{1.9730626344680786e+00, 7.6919794082641602e-05,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- -4.3213367462158203e-05}, /* L654 */
-{1.9240230321884155e+00, 7.5131654739379883e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- 5.4121017456054688e-05}, /* L655 */
-{1.7810435295104980e+00, 6.9648027420043945e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 5.1617622375488281e-05}, /* L656 */
-{2.1155066490173340e+00, 8.2850456237792969e-05,
- 1.1920928955078125e-07, 2.8014183044433594e-05,
- 3.2305717468261719e-05}, /* L657 */
-{1.9378193616867065e+00, 7.6010823249816895e-05,
- 1.1920928955078125e-07, -1.9133090972900391e-05,
- -1.1444091796875000e-05}, /* L658 */
-{2.7807533740997314e+00, 1.0924041271209717e-04,
- 1.1920928955078125e-07, -4.7922134399414062e-05,
- -4.7087669372558594e-06}, /* L659 */
-{1.5256022214889526e+00, 6.0021877288818359e-05,
- 1.1920928955078125e-07, -6.3180923461914062e-05,
- 4.1961669921875000e-05}, /* L660 */
-{2.1896607875823975e+00, 8.6277723312377930e-05,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- 1.2278556823730469e-05}, /* L661 */
-{2.0162217617034912e+00, 7.9572200775146484e-05,
- 1.1920928955078125e-07, -9.3996524810791016e-05,
- -3.5881996154785156e-05}, /* L662 */
-{2.1008908748626709e+00, 8.3051621913909912e-05,
- 1.1920928955078125e-07, -1.6987323760986328e-04,
- -1.6236305236816406e-04}, /* L663 */
-{1.7407966852188110e+00, 6.8902969360351562e-05,
- 1.1920928955078125e-07, -1.4722347259521484e-05,
- -1.1265277862548828e-05}, /* L664 */
-{2.4315497875213623e+00, 9.6388161182403564e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- 9.2983245849609375e-06}, /* L665 */
-{1.7519711256027222e+00, 6.9595873355865479e-05,
- 1.1920928955078125e-07, -8.2373619079589844e-05,
- -3.6007165908813477e-04}, /* L666 */
-{2.4825921058654785e+00, 9.8705291748046875e-05,
- 1.1920928955078125e-07, 3.3020973205566406e-05,
- 1.7642974853515625e-05}, /* L667 */
-{1.5303808450698853e+00, 6.0975551605224609e-05,
- 1.1920928955078125e-07, -1.1175870895385742e-04,
- 2.0432472229003906e-04}, /* L668 */
-{2.3125510215759277e+00, 9.2267990112304688e-05,
- 1.1920928955078125e-07, 6.6995620727539062e-05,
- -2.3835897445678711e-04}, /* L669 */
-{2.0886664390563965e+00, 8.3431601524353027e-05,
- 1.1920928955078125e-07, -1.1372566223144531e-04,
- -1.3327598571777344e-04}, /* L670 */
-{2.3472390174865723e+00, 9.5456838607788086e-05,
- 1.1920928955078125e-07, 3.6084651947021484e-04,
- -3.2727122306823730e-03}, /* L671 */
-{2.0952439308166504e+00, 8.3936378359794617e-05,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 6.5207481384277344e-05}, /* L672 */
-{2.1770398616790771e+00, 8.7350606918334961e-05,
- 1.1920928955078125e-07, -1.7464160919189453e-05,
- -1.8179416656494141e-05}, /* L673 */
-{2.8498134613037109e+00, 1.1450052261352539e-04,
- 1.1920928955078125e-07, 6.3538551330566406e-05,
- 7.8678131103515625e-06}, /* L674 */
-{3.1004405021667480e+00, 1.2475252151489258e-04,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 2.6226043701171875e-05}, /* L675 */
-{1.6099783182144165e+00, 6.4879655838012695e-05,
- 1.1920928955078125e-07, -4.3690204620361328e-05,
- 5.9604644775390625e-06}, /* L676 */
-{2.2635099887847900e+00, 9.1344118118286133e-05,
- 1.1920928955078125e-07, -9.8347663879394531e-06,
- 2.8848648071289062e-05}, /* L677 */
-{1.6539982557296753e+00, 6.6876411437988281e-05,
- 1.1920928955078125e-07, -1.9544363021850586e-04,
- 5.0544738769531250e-05}, /* L678 */
-{2.2127783298492432e+00, 8.9660286903381348e-05,
- 1.1920928955078125e-07, 1.7976760864257812e-04,
- 3.5607814788818359e-04}, /* L679 */
-{1.4657518863677979e+00, 5.9753656387329102e-05,
- 1.1920928955078125e-07, 7.4589252471923828e-04,
- 4.5680999755859375e-04}, /* L680 */
-{1.9130889177322388e+00, 7.7694654464721680e-05,
- 1.1920928955078125e-07, -3.0750036239624023e-04,
- 4.3272972106933594e-05}, /* L681 */
-{1.7308281660079956e+00, 7.0363283157348633e-05,
- 1.1920928955078125e-07, 1.2159347534179688e-05,
- -4.1723251342773438e-07}, /* L682 */
-{1.9175970554351807e+00, 7.8082084655761719e-05,
- 1.1920928955078125e-07, -7.1883201599121094e-05,
- 1.1563301086425781e-05}, /* L683 */
-{1.8842948675155640e+00, 7.6860189437866211e-05,
- 1.1920928955078125e-07, -2.4259090423583984e-05,
- -1.7738342285156250e-04}, /* L684 */
-{2.1867656707763672e+00, 8.9317560195922852e-05,
- 1.1920928955078125e-07, -1.9562244415283203e-04,
- 5.3644180297851562e-06}, /* L685 */
-{1.6977097988128662e+00, 6.9431960582733154e-05,
- 1.1920928955078125e-07, -3.6060810089111328e-05,
- 5.2928924560546875e-05}, /* L686 */
-{2.2725753784179688e+00, 9.3064270913600922e-05,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 1.2278556823730469e-05}, /* L687 */
-{1.5364320278167725e+00, 6.3009560108184814e-05,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- 2.5749206542968750e-05}, /* L688 */
-{2.2320876121520996e+00, 9.1671943664550781e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 3.4570693969726562e-06}, /* L689 */
-{1.7632261514663696e+00, 7.2702765464782715e-05,
- 1.1920928955078125e-07, 1.6623735427856445e-03,
- 5.2082538604736328e-04}, /* L690 */
-{2.7537889480590820e+00, 1.1351704597473145e-04,
- 1.1920928955078125e-07, -6.7859888076782227e-04,
- -1.8936395645141602e-04}, /* L691 */
-{1.4956169128417969e+00, 6.1705708503723145e-05,
- 1.1920928955078125e-07, -4.3809413909912109e-05,
- 6.6280364990234375e-05}, /* L692 */
-{2.3378875255584717e+00, 9.6600502729415894e-05,
- 1.1920928955078125e-07, 2.7060508728027344e-05,
- 2.0503997802734375e-05}, /* L693 */
-{2.0343847274780273e+00, 8.4303319454193115e-05,
- 1.1920928955078125e-07, 9.5462799072265625e-04,
- 6.1273574829101562e-04}, /* L694 */
-{4.0792236328125000e+00, 1.6900897026062012e-04,
- 1.1920928955078125e-07, -4.3094158172607422e-05,
- 3.7908554077148438e-05}, /* L695 */
-{1.6330323219299316e+00, 6.7755579948425293e-05,
- 1.1920928955078125e-07, -1.4907121658325195e-04,
- 2.9444694519042969e-05}, /* L696 */
-{2.2211678028106689e+00, 9.2282891273498535e-05,
- 1.1920928955078125e-07, -1.7046928405761719e-05,
- -2.9623508453369141e-05}, /* L697 */
-{2.0481698513031006e+00, 8.5264444351196289e-05,
- 1.1920928955078125e-07, 1.4901161193847656e-04,
- 3.2460689544677734e-04}, /* L698 */
-{2.3944144248962402e+00, 9.9815428256988525e-05,
- 1.1920928955078125e-07, 6.1750411987304688e-05,
- 1.9562244415283203e-04}, /* L699 */
-{1.5096147060394287e+00, 6.3002109527587891e-05,
- 1.1920928955078125e-07, 3.9219856262207031e-05,
- -1.4251470565795898e-04}, /* L700 */
-{2.0628271102905273e+00, 8.6218118667602539e-05,
- 1.1920928955078125e-07, 1.1909008026123047e-04,
- 6.8783760070800781e-05}, /* L701 */
-{2.0175743103027344e+00, 8.4429979324340820e-05,
- 1.1920928955078125e-07, -2.0980834960937500e-05,
- -1.1134147644042969e-04}, /* L702 */
-{2.4131655693054199e+00, 1.0114908218383789e-04,
- 1.1920928955078125e-07, 5.2213668823242188e-05,
- -1.1980533599853516e-04}, /* L703 */
-{1.6637742519378662e+00, 6.9826841354370117e-05,
- 1.1920928955078125e-07, -8.8989734649658203e-05,
- 6.7353248596191406e-05}, /* L704 */
-{3.0543828010559082e+00, 1.2835860252380371e-04,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -3.0398368835449219e-06}, /* L705 */
-{1.9450997114181519e+00, 8.1866979598999023e-05,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- 1.7642974853515625e-05}, /* L706 */
-{2.0995397567749023e+00, 8.8490545749664307e-05,
- 1.1920928955078125e-07, -3.5464763641357422e-05,
- -7.7962875366210938e-05}, /* L707 */
-{1.9977114200592041e+00, 8.4310770034790039e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-05,
- -1.6689300537109375e-06}, /* L708 */
-{2.2227294445037842e+00, 9.3936920166015625e-05,
- 1.1920928955078125e-07, 1.9788742065429688e-05,
- 2.5629997253417969e-05}, /* L709 */
-{1.6377185583114624e+00, 6.9320201873779297e-05,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- -2.6285648345947266e-05}, /* L710 */
-{2.8244628906250000e+00, 1.1973083019256592e-04,
- 1.1920928955078125e-07, 1.2242794036865234e-04,
- 1.2135505676269531e-04}, /* L711 */
-{1.5363007783889771e+00, 6.5207481384277344e-05,
- 1.1920928955078125e-07, -2.5570392608642578e-05,
- 3.2186508178710938e-05}, /* L712 */
-{2.1377487182617188e+00, 9.0867280960083008e-05,
- 1.1920928955078125e-07, -3.6716461181640625e-05,
- 8.9049339294433594e-05}, /* L713 */
-{1.4150725603103638e+00, 6.0232356190681458e-05,
- 1.1920928955078125e-07, 8.7022781372070312e-06,
- -4.0531158447265625e-06}, /* L714 */
-{2.7865464687347412e+00, 1.1879205703735352e-04,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- -3.9815902709960938e-05}, /* L715 */
-{1.5094395875930786e+00, 6.4432621002197266e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- 3.6120414733886719e-05}, /* L716 */
-{2.6295328140258789e+00, 1.1238455772399902e-04,
- 1.1920928955078125e-07, -3.4749507904052734e-05,
- 1.4066696166992188e-05}, /* L717 */
-{1.9356678724288940e+00, 8.2880258560180664e-05,
- 1.1920928955078125e-07, 2.8038024902343750e-04,
- -1.6182661056518555e-04}, /* L718 */
-{2.7358920574188232e+00, 1.1725723743438721e-04,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- 3.4570693969726562e-06}, /* L719 */
-{1.2291909456253052e+00, 5.2757561206817627e-05,
- 1.1920928955078125e-07, -5.1856040954589844e-05,
- 8.5234642028808594e-05}, /* L720 */
-{2.1324388980865479e+00, 9.1791152954101562e-05,
- 1.1920928955078125e-07, 3.7360191345214844e-04,
- 3.5965442657470703e-04}, /* L721 */
-{1.6886377334594727e+00, 7.2687864303588867e-05,
- 1.1920928955078125e-07, -8.2671642303466797e-05,
- 7.3909759521484375e-06}, /* L722 */
-{2.1595494747161865e+00, 9.3072652816772461e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 4.0531158447265625e-06}, /* L723 */
-{1.6890690326690674e+00, 7.2896480560302734e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- -2.9265880584716797e-05}, /* L724 */
-{1.9988046884536743e+00, 8.6411833763122559e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- 1.0371208190917969e-04}, /* L725 */
-{1.9294948577880859e+00, 8.3498656749725342e-05,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- -6.6161155700683594e-06}, /* L726 */
-{2.4519760608673096e+00, 1.0631605982780457e-04,
- 1.1920928955078125e-07, -8.5234642028808594e-06,
- 1.4114379882812500e-04}, /* L727 */
-{1.6100900173187256e+00, 6.9871544837951660e-05,
- 1.1920928955078125e-07, -2.0503997802734375e-05,
- -7.2121620178222656e-06}, /* L728 */
-{2.1362409591674805e+00, 9.2834234237670898e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -4.1127204895019531e-06}, /* L729 */
-{1.8197078704833984e+00, 7.9184770584106445e-05,
- 1.1920928955078125e-07, 4.2438507080078125e-05,
- -2.2888183593750000e-05}, /* L730 */
-{2.1996967792510986e+00, 9.5859169960021973e-05,
- 1.1920928955078125e-07, 9.8705291748046875e-05,
- -6.0141086578369141e-05}, /* L731 */
-{1.5839133262634277e+00, 6.9171190261840820e-05,
- 1.1920928955078125e-07, 1.7404556274414062e-04,
- 4.4345855712890625e-05}, /* L732 */
-{2.0744819641113281e+00, 9.0658664703369141e-05,
- 1.1920928955078125e-07, 1.9669532775878906e-05,
- -1.0663270950317383e-04}, /* L733 */
-{1.8907376527786255e+00, 8.2731246948242188e-05,
- 1.1920928955078125e-07, -1.0371208190917969e-05,
- -4.7802925109863281e-05}, /* L734 */
-{3.3951334953308105e+00, 1.4898180961608887e-04,
- 1.1920928955078125e-07, -2.6124715805053711e-04,
- -2.7483701705932617e-04}, /* L735 */
-{1.7810654640197754e+00, 7.8141689300537109e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.7046928405761719e-05}, /* L736 */
-{3.0839347839355469e+00, 1.3572350144386292e-04,
- 1.1920928955078125e-07, -4.8828125000000000e-04,
- 8.5234642028808594e-05}, /* L737 */
-{1.9401886463165283e+00, 8.5353851318359375e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- 2.4914741516113281e-05}, /* L738 */
-{2.7673704624176025e+00, 1.2192130088806152e-04,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- 1.8477439880371094e-05}, /* L739 */
-{1.9015370607376099e+00, 8.3878636360168457e-05,
- 1.1920928955078125e-07, -1.2695789337158203e-05,
- 1.5377998352050781e-05}, /* L740 */
-{2.4398326873779297e+00, 1.0776519775390625e-04,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- 4.1723251342773438e-06}, /* L741 */
-{1.6845250129699707e+00, 7.4520707130432129e-05,
- 1.1920928955078125e-07, -1.7058849334716797e-04,
- 2.0265579223632812e-06}, /* L742 */
-{2.5516557693481445e+00, 1.1345744132995605e-04,
- 1.1920928955078125e-07, -4.4018030166625977e-04,
- 1.4274120330810547e-03}, /* L743 */
-{1.7672315835952759e+00, 7.8395009040832520e-05,
- 1.1920928955078125e-07, -3.5047531127929688e-05,
- -1.0406970977783203e-04}, /* L744 */
-{2.6138420104980469e+00, 1.1608004570007324e-04,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- -7.4505805969238281e-06}, /* L745 */
-{2.3424012660980225e+00, 1.0417401790618896e-04,
- 1.1920928955078125e-07, 2.9921531677246094e-05,
- 1.0752677917480469e-04}, /* L746 */
-{2.3975749015808105e+00, 1.0676309466362000e-04,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 6.2465667724609375e-05}, /* L747 */
-{2.1133503913879395e+00, 9.4242393970489502e-05,
- 1.1920928955078125e-07, 4.8518180847167969e-05,
- -1.6748905181884766e-05}, /* L748 */
-{2.5798931121826172e+00, 1.1518597602844238e-04,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- 1.1920928955078125e-06}, /* L749 */
-{2.2594521045684814e+00, 1.0105967521667480e-04,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 1.3637542724609375e-04}, /* L750 */
-{1.9470717906951904e+00, 8.7261199951171875e-05,
- 1.1920928955078125e-07, -8.6784362792968750e-05,
- 4.6741962432861328e-04}, /* L751 */
-{1.7472351789474487e+00, 7.8320503234863281e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -1.0848045349121094e-05}, /* L752 */
-{2.0101485252380371e+00, 9.0241432189941406e-05,
- 1.1920928955078125e-07, -5.8710575103759766e-05,
- 1.0490417480468750e-05}, /* L753 */
-{1.7829821109771729e+00, 8.0138444900512695e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -2.2709369659423828e-05}, /* L754 */
-{2.6903393268585205e+00, 1.2108683586120605e-04,
- 1.1920928955078125e-07, 4.7683715820312500e-05,
- 4.1961669921875000e-05}, /* L755 */
-{1.7843345403671265e+00, 8.0425292253494263e-05,
- 1.1920928955078125e-07, 5.6147575378417969e-05,
- -1.1181831359863281e-04}, /* L756 */
-{2.3274538516998291e+00, 1.0505318641662598e-04,
- 1.1920928955078125e-07, -1.0669231414794922e-05,
- -1.1920928955078125e-06}, /* L757 */
-{1.9771937131881714e+00, 8.9362263679504395e-05,
- 1.1920928955078125e-07, -2.6702880859375000e-05,
- -4.5537948608398438e-05}, /* L758 */
-{2.7890956401824951e+00, 1.2621283531188965e-04,
- 1.1920928955078125e-07, 2.5033950805664062e-05,
- 7.6889991760253906e-05}, /* L759 */
-{1.7480808496475220e+00, 7.9199671745300293e-05,
- 1.1920928955078125e-07, 8.0823898315429688e-05,
- -5.9604644775390625e-07}, /* L760 */
-{2.9911832809448242e+00, 1.3568997383117676e-04,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- -2.0861625671386719e-06}, /* L761 */
-{1.8303513526916504e+00, 8.3148479461669922e-05,
- 1.1920928955078125e-07, -1.0305643081665039e-04,
- 9.2983245849609375e-06}, /* L762 */
-{2.6949319839477539e+00, 1.2257695198059082e-04,
- 1.1920928955078125e-07, 4.0531158447265625e-05,
- 2.6464462280273438e-05}, /* L763 */
-{1.6895449161529541e+00, 7.6958909630775452e-05,
- 1.1920928955078125e-07, -3.2305717468261719e-05,
- 1.4042854309082031e-04}, /* L764 */
-{3.4056987762451172e+00, 1.5550851821899414e-04,
- 1.1920928955078125e-07, -1.1223554611206055e-04,
- 1.6427040100097656e-04}, /* L765 */
-{2.4495143890380859e+00, 1.1184392496943474e-04,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -5.3048133850097656e-06}, /* L766 */
-{2.5848941802978516e+00, 1.1818483471870422e-04,
- 1.1920928955078125e-07, -3.6001205444335938e-05,
- -1.4483928680419922e-05}, /* L767 */
-{2.0176439285278320e+00, 9.2372298240661621e-05,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- 2.2530555725097656e-05}, /* L768 */
-{2.3942925930023193e+00, 1.0976195335388184e-04,
- 1.1920928955078125e-07, 9.9539756774902344e-05,
- -1.2958049774169922e-04}, /* L769 */
-{1.7058583498001099e+00, 7.8305602073669434e-05,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- -1.8060207366943359e-05}, /* L770 */
-{2.5134217739105225e+00, 1.1551380157470703e-04,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- 1.7881393432617188e-05}, /* L771 */
-{1.5478503704071045e+00, 7.1227550506591797e-05,
- 1.1920928955078125e-07, -1.1622905731201172e-05,
- 4.7683715820312500e-07}, /* L772 */
-{2.1693139076232910e+00, 1.0010600090026855e-04,
- 1.1920928955078125e-07, 5.9592723846435547e-04,
- -6.5481662750244141e-04}, /* L773 */
-{1.9820035696029663e+00, 9.1463327407836914e-05,
- 1.1920928955078125e-07, 1.0907649993896484e-04,
- -4.4703483581542969e-05}, /* L774 */
-{2.2255063056945801e+00, 1.0281801223754883e-04,
- 1.1920928955078125e-07, -1.8835067749023438e-05,
- -2.8014183044433594e-05}, /* L775 */
-{1.3822891712188721e+00, 6.3940882682800293e-05,
- 1.1920928955078125e-07, -3.0100345611572266e-05,
- 1.2874603271484375e-05}, /* L776 */
-{1.9860447645187378e+00, 9.1984868049621582e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- 2.9802322387695312e-06}, /* L777 */
-{2.3593161106109619e+00, 1.0944157838821411e-04,
- 1.1920928955078125e-07, 7.0571899414062500e-05,
- -4.1723251342773438e-05}, /* L778 */
-{2.2433893680572510e+00, 1.0418612509965897e-04,
- 1.1920928955078125e-07, -4.2557716369628906e-05,
- 8.1896781921386719e-05}, /* L779 */
-{1.6359589099884033e+00, 7.6066702604293823e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- -8.2850456237792969e-06}, /* L780 */
-{2.5707738399505615e+00, 1.1986494064331055e-04,
- 1.1920928955078125e-07, 4.8553943634033203e-04,
- 1.0221004486083984e-03}, /* L781 */
-{1.9820196628570557e+00, 9.2387199401855469e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 1.1920928955078125e-05}, /* L782 */
-{2.3401684761047363e+00, 1.0922551155090332e-04,
- 1.1920928955078125e-07, 3.7670135498046875e-05,
- -1.1980533599853516e-05}, /* L783 */
-{1.6318550109863281e+00, 7.6264142990112305e-05,
- 1.1920928955078125e-07, -7.6889991760253906e-06,
- 3.9458274841308594e-05}, /* L784 */
-{2.5357995033264160e+00, 1.1867284774780273e-04,
- 1.1920928955078125e-07, -3.7789344787597656e-05,
- 5.4240226745605469e-05}, /* L785 */
-{2.0611824989318848e+00, 9.6581876277923584e-05,
- 1.1920928955078125e-07, -1.0073184967041016e-05,
- -1.3709068298339844e-05}, /* L786 */
-{3.2123448848724365e+00, 1.5071034431457520e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 2.0980834960937500e-05}, /* L787 */
-{1.9692890644073486e+00, 9.2530390247702599e-05,
- 1.1920928955078125e-07, 1.1432170867919922e-04,
- -1.2034177780151367e-04}, /* L788 */
-{2.9887278079986572e+00, 1.4062225818634033e-04,
- 1.1920928955078125e-07, 6.3061714172363281e-05,
- -3.1352043151855469e-05}, /* L789 */
-{2.4770762920379639e+00, 1.1666119098663330e-04,
- 1.1920928955078125e-07, -2.6822090148925781e-05,
- 1.1920928955078125e-05}, /* L790 */
-{2.8015818595886230e+00, 1.3212859630584717e-04,
- 1.1920928955078125e-07, -1.9615888595581055e-04,
- 5.0067901611328125e-06}, /* L791 */
-{2.3255858421325684e+00, 1.0991096496582031e-04,
- 1.1920928955078125e-07, -3.3104419708251953e-04,
- 1.7869472503662109e-04}, /* L792 */
-{3.0697801113128662e+00, 1.4510750770568848e-04,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- -1.6093254089355469e-06}, /* L793 */
-{1.7849937677383423e+00, 8.4493309259414673e-05,
- 1.1920928955078125e-07, -6.6161155700683594e-05,
- 7.7247619628906250e-05}, /* L794 */
-{3.0444879531860352e+00, 1.4427304267883301e-04,
- 1.1920928955078125e-07, 2.4199485778808594e-05,
- -2.3186206817626953e-05}, /* L795 */
-{2.1075167655944824e+00, 1.0012090206146240e-04,
- 1.1920928955078125e-07, -8.1539154052734375e-05,
- 1.5676021575927734e-04}, /* L796 */
-{2.4916818141937256e+00, 1.1837482452392578e-04,
- 1.1920928955078125e-07, -1.9371509552001953e-05,
- 8.5830688476562500e-06}, /* L797 */
-{1.8148037195205688e+00, 8.6337327957153320e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -2.2351741790771484e-05}, /* L798 */
-{3.1933069229125977e+00, 1.5220046043395996e-04,
- 1.1920928955078125e-07, 4.8398971557617188e-04,
- 7.1763992309570312e-05}, /* L799 */
-{1.3372606039047241e+00, 6.3776969909667969e-05,
- 1.1920928955078125e-07, 1.8048286437988281e-04,
- -1.8656253814697266e-05}, /* L800 */
-{3.9916543960571289e+00, 1.9066035747528076e-04,
- 1.1920928955078125e-07, 1.7833709716796875e-04,
- -4.6670436859130859e-05}, /* L801 */
-{2.3603007793426514e+00, 1.1285394430160522e-04,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- -6.6757202148437500e-06}, /* L802 */
-{1.9885331392288208e+00, 9.5233321189880371e-05,
- 1.1920928955078125e-07, 1.3685226440429688e-04,
- 1.5461444854736328e-04}, /* L803 */
-{2.3989238739013672e+00, 1.1497735977172852e-04,
- 1.1920928955078125e-07, 5.0425529479980469e-05,
- -1.7702579498291016e-05}, /* L804 */
-{2.5111932754516602e+00, 1.2050569057464600e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- -1.7642974853515625e-05}, /* L805 */
-{2.0580182075500488e+00, 9.8880380392074585e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- -1.1324882507324219e-06}, /* L806 */
-{2.4943301677703857e+00, 1.1998787522315979e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- -2.1040439605712891e-05}, /* L807 */
-{2.2248876094818115e+00, 1.0716915130615234e-04,
- 1.1920928955078125e-07, -6.6161155700683594e-06,
- 1.5497207641601562e-06}, /* L808 */
-{2.2147881984710693e+00, 1.0681152343750000e-04,
- 1.1920928955078125e-07, -6.8604946136474609e-05,
- -3.0279159545898438e-05}, /* L809 */
-{1.9510658979415894e+00, 9.4205141067504883e-05,
- 1.1920928955078125e-07, 1.8715858459472656e-05,
- 1.1920928955078125e-06}, /* L810 */
-{3.2196254730224609e+00, 1.5583634376525879e-04,
- 1.1920928955078125e-07, 1.1861324310302734e-04,
- 1.6140937805175781e-04}, /* L811 */
-{2.0020999908447266e+00, 9.6917152404785156e-05,
- 1.1920928955078125e-07, -1.8119812011718750e-05,
- 3.6835670471191406e-05}, /* L812 */
-{2.4032549858093262e+00, 1.1646747589111328e-04,
- 1.1920928955078125e-07, -2.7120113372802734e-05,
- 2.4318695068359375e-05}, /* L813 */
-{2.0020823478698730e+00, 9.7155570983886719e-05,
- 1.1920928955078125e-07, -1.0901689529418945e-04,
- 7.8439712524414062e-05}, /* L814 */
-{2.8102552890777588e+00, 1.3652443885803223e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -4.6849250793457031e-05}, /* L815 */
-{2.0216007232666016e+00, 9.8347663879394531e-05,
- 1.1920928955078125e-07, 1.2063980102539062e-04,
- -5.3346157073974609e-05}, /* L816 */
-{2.7372169494628906e+00, 1.3330578804016113e-04,
- 1.1920928955078125e-07, -1.2695789337158203e-05,
- -2.6881694793701172e-05}, /* L817 */
-{1.4973278045654297e+00, 7.3015689849853516e-05,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- -2.1576881408691406e-05}, /* L818 */
-{2.4941871166229248e+00, 1.2177228927612305e-04,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- -7.4505805969238281e-06}, /* L819 */
-{2.3575308322906494e+00, 1.1527538299560547e-04,
- 1.1920928955078125e-07, 1.8358230590820312e-04,
- 2.0265579223632812e-05}, /* L820 */
-{2.6131494045257568e+00, 1.2790039181709290e-04,
- 1.1920928955078125e-07, 4.4584274291992188e-05,
- 6.7830085754394531e-05}, /* L821 */
-{2.5609104633331299e+00, 1.2549757957458496e-04,
- 1.1920928955078125e-07, 4.0650367736816406e-05,
- 5.6982040405273438e-05}, /* L822 */
-{3.2666723728179932e+00, 1.6033649444580078e-04,
- 1.1920928955078125e-07, -1.5830993652343750e-04,
- 2.5391578674316406e-05}, /* L823 */
-{2.2046937942504883e+00, 1.0830163955688477e-04,
- 1.1920928955078125e-07, -1.7470121383666992e-04,
- 1.3470649719238281e-05}, /* L824 */
-{3.1878309249877930e+00, 1.5679001808166504e-04,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- -5.6505203247070312e-05}, /* L825 */
-{2.3852458000183105e+00, 1.1745095252990723e-04,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- -7.7605247497558594e-05}, /* L826 */
-{3.1176156997680664e+00, 1.5375018119812012e-04,
- 1.1920928955078125e-07, -6.4969062805175781e-05,
- -1.6421079635620117e-04}, /* L827 */
-{2.1073515415191650e+00, 1.0401010513305664e-04,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- -6.6757202148437500e-06}, /* L828 */
-{2.8730473518371582e+00, 1.4205276966094971e-04,
- 1.1920928955078125e-07, 2.6381015777587891e-04,
- -3.4999847412109375e-04}, /* L829 */
-{2.2111196517944336e+00, 1.0943412780761719e-04,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- 1.2278556823730469e-05}, /* L830 */
-{2.9998681545257568e+00, 1.4904141426086426e-04,
- 1.1920928955078125e-07, -1.3235807418823242e-03,
- -9.4187259674072266e-04}, /* L831 */
-{2.0869169235229492e+00, 1.0350346565246582e-04,
- 1.1920928955078125e-07, -4.3570995330810547e-05,
- -1.9252300262451172e-05}, /* L832 */
-{1.9538766145706177e+00, 9.7021460533142090e-05,
- 1.1920928955078125e-07, 2.1100044250488281e-05,
- -1.0609626770019531e-05}, /* L833 */
-{2.1232428550720215e+00, 1.0567903518676758e-04,
- 1.1920928955078125e-07, -3.1679868698120117e-04,
- 6.5362453460693359e-04}, /* L834 */
-{2.3709411621093750e+00, 1.1804327368736267e-04,
- 1.1920928955078125e-07, -1.4990568161010742e-04,
- 8.3684921264648438e-05}, /* L835 */
-{2.5168671607971191e+00, 1.2543424963951111e-04,
- 1.1920928955078125e-07, 4.3034553527832031e-05,
- 1.1920928955078125e-06}, /* L836 */
-{2.8622407913208008e+00, 1.4281272888183594e-04,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- 4.5418739318847656e-05}, /* L837 */
-{1.7104443311691284e+00, 8.5443258285522461e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- -1.6987323760986328e-05}, /* L838 */
-{2.1985189914703369e+00, 1.1000037193298340e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- -1.2743473052978516e-04}, /* L839 */
-{2.2302033901214600e+00, 1.1166930198669434e-04,
- 1.1920928955078125e-07, 1.2755393981933594e-05,
- -8.8810920715332031e-06}, /* L840 */
-{2.6268432140350342e+00, 1.3169646263122559e-04,
- 1.1920928955078125e-07, -1.2087821960449219e-04,
- 9.8943710327148438e-06}, /* L841 */
-{2.0826435089111328e+00, 1.0456144809722900e-04,
- 1.1920928955078125e-07, -5.0127506256103516e-05,
- 1.1324882507324219e-05}, /* L842 */
-{2.4911823272705078e+00, 1.2518465518951416e-04,
- 1.1920928955078125e-07, 5.3882598876953125e-05,
- -5.2571296691894531e-05}, /* L843 */
-{1.8046506643295288e+00, 9.0792775154113770e-05,
- 1.1920928955078125e-07, 1.3232231140136719e-05,
- -5.3644180297851562e-06}, /* L844 */
-{2.7232024669647217e+00, 1.3718008995056152e-04,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- -1.2654066085815430e-04}, /* L845 */
-{2.2288806438446045e+00, 1.1241436004638672e-04,
- 1.1920928955078125e-07, 4.1127204895019531e-05,
- 1.8835067749023438e-05}, /* L846 */
-{2.6447989940643311e+00, 1.3354048132896423e-04,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -4.9412250518798828e-05}, /* L847 */
-{1.8789657354354858e+00, 9.5009803771972656e-05,
- 1.1920928955078125e-07, -2.0027160644531250e-04,
- -1.0466575622558594e-04}, /* L848 */
-{2.6996030807495117e+00, 1.3662874698638916e-04,
- 1.1920928955078125e-07, 1.9311904907226562e-05,
- 2.0265579223632812e-05}, /* L849 */
-{2.1260654926300049e+00, 1.0773539543151855e-04,
- 1.1920928955078125e-07, -5.7280063629150391e-05,
- -5.9604644775390625e-07}, /* L850 */
-{2.4013600349426270e+00, 1.2189149856567383e-04,
- 1.1920928955078125e-07, -3.1739473342895508e-04,
- 2.5868415832519531e-04}, /* L851 */
-{1.9587481021881104e+00, 9.9480152130126953e-05,
- 1.1920928955078125e-07, 3.6239624023437500e-05,
- 1.1563301086425781e-05}, /* L852 */
-{2.2011115550994873e+00, 1.1195242404937744e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-04,
- -1.3035535812377930e-04}, /* L853 */
-{2.3468084335327148e+00, 1.1947751045227051e-04,
- 1.1920928955078125e-07, -3.4928321838378906e-05,
- 3.0159950256347656e-05}, /* L854 */
-{2.9700644016265869e+00, 1.5153177082538605e-04,
- 1.1920928955078125e-07, -1.2534856796264648e-04,
- -5.7035684585571289e-04}, /* L855 */
-{1.8360855579376221e+00, 9.3698501586914062e-05,
- 1.1920928955078125e-07, -2.9981136322021484e-05,
- 2.9325485229492188e-05}, /* L856 */
-{2.5488147735595703e+00, 1.3020634651184082e-04,
- 1.1920928955078125e-07, -1.3589859008789062e-05,
- -2.0146369934082031e-05}, /* L857 */
-{2.2070882320404053e+00, 1.1315941810607910e-04,
- 1.1920928955078125e-07, 4.5084953308105469e-04,
- 1.2216567993164062e-03}, /* L858 */
-{2.4221556186676025e+00, 1.2406706809997559e-04,
- 1.1920928955078125e-07, -1.4007091522216797e-05,
- 5.5074691772460938e-05}, /* L859 */
-{1.8320161104202271e+00, 9.4383955001831055e-05,
- 1.1920928955078125e-07, -1.2040734291076660e-03,
- -2.1922588348388672e-04}, /* L860 */
-{2.7691118717193604e+00, 1.4213146641850471e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 1.8715858459472656e-05}, /* L861 */
-{2.2566037178039551e+00, 1.1595338582992554e-04,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -4.0590763092041016e-05}, /* L862 */
-{2.6304476261138916e+00, 1.3533234596252441e-04,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- 1.3828277587890625e-05}, /* L863 */
-{2.0245358943939209e+00, 1.0433793067932129e-04,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- -1.3595819473266602e-04}, /* L864 */
-{2.2564120292663574e+00, 1.1638551950454712e-04,
- 1.1920928955078125e-07, -1.8537044525146484e-05,
- 1.0073184967041016e-04}, /* L865 */
-{1.8740816116333008e+00, 9.6783041954040527e-05,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- 1.1324882507324219e-05}, /* L866 */
-{2.2743136882781982e+00, 1.1756364256143570e-04,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- -6.7353248596191406e-06}, /* L867 */
-{1.9123337268829346e+00, 9.8958611488342285e-05,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- -8.3744525909423828e-05}, /* L868 */
-{2.9191207885742188e+00, 1.5121698379516602e-04,
- 1.1920928955078125e-07, 3.0755996704101562e-05,
- 1.8835067749023438e-05}, /* L869 */
-{2.0496978759765625e+00, 1.0636448860168457e-04,
- 1.1920928955078125e-07, 7.5221061706542969e-05,
- -5.1558017730712891e-05}, /* L870 */
-{2.6957235336303711e+00, 1.4001131057739258e-04,
- 1.1920928955078125e-07, -1.2385845184326172e-04,
- -1.7082691192626953e-04}, /* L871 */
-{2.0378582477569580e+00, 1.0597705841064453e-04,
- 1.1920928955078125e-07, 1.7940998077392578e-04,
- 4.1365623474121094e-05}, /* L872 */
-{2.4334719181060791e+00, 1.2664496898651123e-04,
- 1.1920928955078125e-07, 7.4028968811035156e-05,
- 2.1338462829589844e-05}, /* L873 */
-{2.2756605148315430e+00, 1.1856853961944580e-04,
- 1.1920928955078125e-07, -1.1533498764038086e-04,
- 1.5616416931152344e-05}, /* L874 */
-{2.9054949283599854e+00, 1.5157461166381836e-04,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 2.1815299987792969e-05}, /* L875 */
-{1.8703428506851196e+00, 9.7706913948059082e-05,
- 1.1920928955078125e-07, 1.3864040374755859e-04,
- 3.9410591125488281e-04}, /* L876 */
-{2.2470314502716064e+00, 1.1750590056180954e-04,
- 1.1920928955078125e-07, 4.9471855163574219e-05,
- -2.3669004440307617e-04}, /* L877 */
-{2.3051726818084717e+00, 1.2065423652529716e-04,
- 1.1920928955078125e-07, 4.6730041503906250e-05,
- 9.1791152954101562e-06}, /* L878 */
-{2.8867015838623047e+00, 1.5127658843994141e-04,
- 1.1920928955078125e-07, 6.5326690673828125e-05,
- -6.5684318542480469e-05}, /* L879 */
-{2.1440656185150146e+00, 1.1274218559265137e-04,
- 1.1920928955078125e-07, -9.1916322708129883e-04,
- -3.3360719680786133e-04}, /* L880 */
-{2.0265550613403320e+00, 1.0642595589160919e-04,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- 1.0609626770019531e-05}, /* L881 */
-{1.9325404167175293e+00, 1.0172650218009949e-04,
- 1.1920928955078125e-07, -5.5015087127685547e-05,
- -2.4503469467163086e-04}, /* L882 */
-{3.0068483352661133e+00, 1.5828013420104980e-04,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- 6.4492225646972656e-05}, /* L883 */
-{2.1061928272247314e+00, 1.1101365089416504e-04,
- 1.1920928955078125e-07, -8.8214874267578125e-06,
- 1.7011165618896484e-04}, /* L884 */
-{2.7865297794342041e+00, 1.4701485633850098e-04,
- 1.1920928955078125e-07, -1.0132789611816406e-04,
- 4.2796134948730469e-05}, /* L885 */
-{2.9934539794921875e+00, 1.5810132026672363e-04,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- 3.5285949707031250e-05}, /* L886 */
-{2.7180266380310059e+00, 1.4373660087585449e-04,
- 1.1920928955078125e-07, -1.3995170593261719e-04,
- 1.5616416931152344e-05}, /* L887 */
-{2.1118438243865967e+00, 1.1178851127624512e-04,
- 1.1920928955078125e-07, 5.1021575927734375e-05,
- -2.4497509002685547e-05}, /* L888 */
-{3.2120304107666016e+00, 1.7023086547851562e-04,
- 1.1920928955078125e-07, -7.2002410888671875e-05,
- -3.6358833312988281e-05}, /* L889 */
-{1.8519880771636963e+00, 9.8258256912231445e-05,
- 1.1920928955078125e-07, -3.3378601074218750e-05,
- 4.7326087951660156e-05}, /* L890 */
-{2.8766572475433350e+00, 1.5285611152648926e-04,
- 1.1920928955078125e-07, -7.3254108428955078e-05,
- 2.1255016326904297e-04}, /* L891 */
-{2.0451710224151611e+00, 1.0874867439270020e-04,
- 1.1920928955078125e-07, -1.7702579498291016e-05,
- -2.4437904357910156e-05}, /* L892 */
-{2.8675615787506104e+00, 1.5264749526977539e-04,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- -3.0219554901123047e-05}, /* L893 */
-{2.2470982074737549e+00, 1.1977553367614746e-04,
- 1.1920928955078125e-07, -2.3961067199707031e-05,
- 1.9752979278564453e-04}, /* L894 */
-{2.6221292018890381e+00, 1.3992190361022949e-04,
- 1.1920928955078125e-07, -2.7650594711303711e-04,
- 1.1265277862548828e-04}, /* L895 */
-{2.3749089241027832e+00, 1.2686848640441895e-04,
- 1.1920928955078125e-07, -1.0508298873901367e-04,
- -6.8902969360351562e-05}, /* L896 */
-{3.1176774501800537e+00, 1.6671419143676758e-04,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- 2.1338462829589844e-05}, /* L897 */
-{2.6272430419921875e+00, 1.4066696166992188e-04,
- 1.1920928955078125e-07, 4.9233436584472656e-05,
- -1.9067525863647461e-04}, /* L898 */
-{3.1436431407928467e+00, 1.6850978136062622e-04,
- 1.1920928955078125e-07, -1.1175870895385742e-04,
- -3.6895275115966797e-05}, /* L899 */
-{1.9287583827972412e+00, 1.0347366333007812e-04,
- 1.1920928955078125e-07, -7.9870223999023438e-06,
- -2.3424625396728516e-05}, /* L900 */
-{3.0455234050750732e+00, 1.6370415687561035e-04,
- 1.1920928955078125e-07, -2.6738643646240234e-04,
- -2.5290250778198242e-04}, /* L901 */
-{2.1686995029449463e+00, 1.1670589447021484e-04,
- 1.1920928955078125e-07, -1.9842386245727539e-04,
- 1.9323825836181641e-04}, /* L902 */
-{2.9345002174377441e+00, 1.5796720981597900e-04,
- 1.1920928955078125e-07, -4.1246414184570312e-05,
- 1.6093254089355469e-05}, /* L903 */
-{2.2619423866271973e+00, 1.2189149856567383e-04,
- 1.1920928955078125e-07, -4.9173831939697266e-05,
- 3.9577484130859375e-05}, /* L904 */
-{2.3931033611297607e+00, 1.2911856174468994e-04,
- 1.1920928955078125e-07, -9.9062919616699219e-05,
- -2.4378299713134766e-05}, /* L905 */
-{2.0411784648895264e+00, 1.1023879051208496e-04,
- 1.1920928955078125e-07, 4.2200088500976562e-05,
- -7.2181224822998047e-05}, /* L906 */
-{2.8904285430908203e+00, 1.5628337860107422e-04,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -4.7624111175537109e-05}, /* L907 */
-{2.3208177089691162e+00, 1.2566894292831421e-04,
- 1.1920928955078125e-07, 8.9764595031738281e-05,
- -1.7368793487548828e-04}, /* L908 */
-{3.0294218063354492e+00, 1.6416609287261963e-04,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- 2.9444694519042969e-05}, /* L909 */
-{2.4056649208068848e+00, 1.3052299618721008e-04,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- -7.4028968811035156e-05}, /* L910 */
-{3.1367018222808838e+00, 1.7069093883037567e-04,
- 1.1920928955078125e-07, -7.4976682662963867e-04,
- -5.4562091827392578e-04}, /* L911 */
-{2.0139818191528320e+00, 1.0967254638671875e-04,
- 1.1920928955078125e-07, -7.4493885040283203e-04,
- -1.1324882507324219e-06}, /* L912 */
-{2.7138020992279053e+00, 1.4771521091461182e-04,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- -8.5949897766113281e-05}, /* L913 */
-{2.4418888092041016e+00, 1.3304874300956726e-04,
- 1.1920928955078125e-07, -3.4809112548828125e-05,
- 1.0371208190917969e-05}, /* L914 */
-{3.7893831729888916e+00, 2.0683975890278816e-04,
- 1.1920928955078125e-07, -1.9758939743041992e-04,
- 3.9696693420410156e-05}, /* L915 */
-{2.1768138408660889e+00, 1.1940300464630127e-04,
- 1.1920928955078125e-07, 2.0170211791992188e-04,
- -1.1728405952453613e-03}, /* L916 */
-{2.5981438159942627e+00, 1.4203786849975586e-04,
- 1.1920928955078125e-07, -1.3536214828491211e-04,
- 3.6120414733886719e-05}, /* L917 */
-{1.5906850099563599e+00, 8.9824199676513672e-05,
- 1.1920928955078125e-07, 6.6899061203002930e-03,
- 1.7439961433410645e-02}, /* L918 */
-{2.8634240627288818e+00, 1.5705823898315430e-04,
- 1.1920928955078125e-07, -4.9471855163574219e-05,
- 3.7384033203125000e-04}, /* L919 */
-{1.8755247592926025e+00, 1.0286271572113037e-04,
- 1.1920928955078125e-07, -4.5895576477050781e-05,
- 5.9604644775390625e-07}, /* L920 */
-{2.9060773849487305e+00, 1.5956163406372070e-04,
- 1.1920928955078125e-07, 2.9325485229492188e-05,
- -5.5253505706787109e-05}, /* L921 */
-{2.3531439304351807e+00, 1.2935698032379150e-04,
- 1.1920928955078125e-07, 1.4758110046386719e-04,
- 2.6476383209228516e-04}, /* L922 */
-{2.4112260341644287e+00, 1.3287365436553955e-04,
- 1.1920928955078125e-07, 5.1450729370117188e-04,
- 7.7247619628906250e-04}, /* L923 */
-{1.8180913925170898e+00, 1.0018795728683472e-04,
- 1.1920928955078125e-07, -2.6643276214599609e-04,
- -2.7590990066528320e-04}, /* L924 */
-{2.5250859260559082e+00, 1.3926625251770020e-04,
- 1.1920928955078125e-07, -1.2862682342529297e-04,
- 8.1896781921386719e-05}, /* L925 */
-{2.1036570072174072e+00, 1.1613965034484863e-04,
- 1.1920928955078125e-07, 7.3552131652832031e-05,
- 1.1575222015380859e-04}, /* L926 */
-{2.5690181255340576e+00, 1.4200806617736816e-04,
- 1.1920928955078125e-07, -1.1259317398071289e-04,
- -1.7285346984863281e-05}, /* L927 */
-{1.9076004028320312e+00, 1.0555982589721680e-04,
- 1.1920928955078125e-07, -1.0347366333007812e-04,
- 7.9751014709472656e-05}, /* L928 */
-{2.5927274227142334e+00, 1.4358758926391602e-04,
- 1.1920928955078125e-07, 1.2052059173583984e-04,
- -6.9320201873779297e-05}, /* L929 */
-{1.9400264024734497e+00, 1.0756775736808777e-04,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- -9.1195106506347656e-06}, /* L930 */
-{2.8743915557861328e+00, 1.5953183174133301e-04,
- 1.1920928955078125e-07, -7.9274177551269531e-06,
- -2.1934509277343750e-05}, /* L931 */
-{1.6010373830795288e+00, 8.9734792709350586e-05,
- 1.1920928955078125e-07, 8.6069107055664062e-05,
- -1.3743042945861816e-03}, /* L932 */
-{2.8563439846038818e+00, 1.5888735651969910e-04,
- 1.1920928955078125e-07, 1.0371208190917969e-05,
- -3.8146972656250000e-05}, /* L933 */
-{2.5117201805114746e+00, 1.3986229896545410e-04,
- 1.1920928955078125e-07, -1.0812282562255859e-04,
- -8.9645385742187500e-05}, /* L934 */
-{3.2137331962585449e+00, 1.7912685871124268e-04,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- 1.8358230590820312e-05}, /* L935 */
-{1.7901318073272705e+00, 9.9927186965942383e-05,
- 1.1920928955078125e-07, 1.9693374633789062e-04,
- 9.0122222900390625e-05}, /* L936 */
-{3.0969212055206299e+00, 1.7303228378295898e-04,
- 1.1920928955078125e-07, -1.5974044799804688e-05,
- -1.1980533599853516e-05}, /* L937 */
-{2.1154079437255859e+00, 1.1834502220153809e-04,
- 1.1920928955078125e-07, -2.9629468917846680e-04,
- 3.1113624572753906e-05}, /* L938 */
-{2.4293720722198486e+00, 1.3598799705505371e-04,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 2.9683113098144531e-05}, /* L939 */
-{2.1028127670288086e+00, 1.1783838272094727e-04,
- 1.1920928955078125e-07, -3.3736228942871094e-05,
- -3.4511089324951172e-05}, /* L940 */
-{3.0269474983215332e+00, 1.6981363296508789e-04,
- 1.1920928955078125e-07, -1.2743473052978516e-04,
- -3.7193298339843750e-05}, /* L941 */
-{2.6139435768127441e+00, 1.4680624008178711e-04,
- 1.1920928955078125e-07, 1.3327598571777344e-04,
- 2.0265579223632812e-06}, /* L942 */
-{3.0420391559600830e+00, 1.7100572586059570e-04,
- 1.1920928955078125e-07, -3.8087368011474609e-05,
- -1.3887882232666016e-05}, /* L943 */
-{2.3715958595275879e+00, 1.3344874605536461e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 7.7486038208007812e-06}, /* L944 */
-{2.5981159210205078e+00, 1.4635920524597168e-04,
- 1.1920928955078125e-07, -2.0027160644531250e-05,
- -4.3988227844238281e-05}, /* L945 */
-{2.2762637138366699e+00, 1.2835860252380371e-04,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- 1.0728836059570312e-06}, /* L946 */
-{2.9172880649566650e+00, 1.6474723815917969e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-04,
- 1.7917156219482422e-04}, /* L947 */
-{2.0317428112030029e+00, 1.1488795280456543e-04,
- 1.1920928955078125e-07, -1.9961595535278320e-04,
- -4.6908855438232422e-05}, /* L948 */
-{2.9287662506103516e+00, 1.6570091247558594e-04,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- 5.9604644775390625e-06}, /* L949 */
-{3.2352237701416016e+00, 1.8382072448730469e-04,
- 1.1920928955078125e-07, 2.0821094512939453e-03,
- -3.2719373703002930e-03}, /* L950 */
-{3.1679108142852783e+00, 1.7958879470825195e-04,
- 1.1920928955078125e-07, 2.0861625671386719e-05,
- -4.3213367462158203e-05}, /* L951 */
-{2.4247751235961914e+00, 1.3761967420578003e-04,
- 1.1920928955078125e-07, 4.8995018005371094e-05,
- 6.1035156250000000e-05}, /* L952 */
-{3.0834505558013916e+00, 1.7532706260681152e-04,
- 1.1920928955078125e-07, 3.3164024353027344e-04,
- -1.9454956054687500e-04}, /* L953 */
-{2.1048402786254883e+00, 1.1985376477241516e-04,
- 1.1920928955078125e-07, -8.0585479736328125e-05,
- 4.6777725219726562e-04}, /* L954 */
-{3.7013475894927979e+00, 2.1074712276458740e-04,
- 1.1920928955078125e-07, 7.7366828918457031e-05,
- 2.5916099548339844e-04}, /* L955 */
-{2.0852260589599609e+00, 1.1888146400451660e-04,
- 1.1920928955078125e-07, -3.0291080474853516e-04,
- 5.4359436035156250e-05}, /* L956 */
-{2.8978807926177979e+00, 1.6531348228454590e-04,
- 1.1920928955078125e-07, 3.4093856811523438e-05,
- 2.5629997253417969e-05}, /* L957 */
-{1.9949476718902588e+00, 1.1394917964935303e-04,
- 1.1920928955078125e-07, -1.5318393707275391e-05,
- 9.8943710327148438e-05}, /* L958 */
-{3.2161796092987061e+00, 1.8391013145446777e-04,
- 1.1920928955078125e-07, -4.4822692871093750e-05,
- -1.6051530838012695e-04}, /* L959 */
-{2.9882233142852783e+00, 1.7106533050537109e-04,
- 1.1920928955078125e-07, -1.0311603546142578e-05,
- 2.1564960479736328e-04}, /* L960 */
-{2.4838552474975586e+00, 1.4229118824005127e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -5.5968761444091797e-05}, /* L961 */
-{1.9066441059112549e+00, 1.0934472084045410e-04,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- 8.4042549133300781e-05}, /* L962 */
-{2.7954709529876709e+00, 1.6048550605773926e-04,
- 1.1920928955078125e-07, 3.1948089599609375e-05,
- -4.2319297790527344e-06}, /* L963 */
-{1.7093679904937744e+00, 9.8228454589843750e-05,
- 1.1920928955078125e-07, 3.1828880310058594e-05,
- 1.8715858459472656e-05}, /* L964 */
-{2.1437177658081055e+00, 1.2333691120147705e-04,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- -4.7862529754638672e-05}, /* L965 */
-{1.9796226024627686e+00, 1.1408329010009766e-04,
- 1.1920928955078125e-07, 1.1217594146728516e-04,
- -3.9339065551757812e-06}, /* L966 */
-{2.7062194347381592e+00, 1.5607476234436035e-04,
- 1.1920928955078125e-07, 1.7094612121582031e-04,
- 1.5413761138916016e-04}, /* L967 */
-{2.6117556095123291e+00, 1.5071034431457520e-04,
- 1.1920928955078125e-07, -1.7583370208740234e-05,
- -2.7179718017578125e-05}, /* L968 */
-{2.7224521636962891e+00, 1.5726685523986816e-04,
- 1.1920928955078125e-07, -2.0921230316162109e-05,
- -2.6106834411621094e-05}, /* L969 */
-{2.6305205821990967e+00, 1.5209615230560303e-04,
- 1.1920928955078125e-07, -3.2186508178710938e-06,
- 2.0265579223632812e-06}, /* L970 */
-{4.6135201454162598e+00, 2.6725232601165771e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- -3.4981966018676758e-04}, /* L971 */
-{1.9401804208755493e+00, 1.1244416236877441e-04,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -6.9737434387207031e-06}, /* L972 */
-{2.5621917247772217e+00, 1.4871917665004730e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 6.1869621276855469e-05}, /* L973 */
-{2.1824200153350830e+00, 1.2674182653427124e-04,
- 1.1920928955078125e-07, -1.3554096221923828e-04,
- -1.5604496002197266e-04}, /* L974 */
-{2.7141184806823730e+00, 1.5775114297866821e-04,
- 1.1920928955078125e-07, -2.3543834686279297e-05,
- -5.9604644775390625e-07}, /* L975 */
-{1.9133452177047729e+00, 1.1132284998893738e-04,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -5.2392482757568359e-05}, /* L976 */
-{3.6826095581054688e+00, 2.1448731422424316e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 5.0783157348632812e-05}, /* L977 */
-{1.9503678083419800e+00, 1.1372566223144531e-04,
- 1.1920928955078125e-07, -6.8068504333496094e-05,
- 1.3828277587890625e-05}, /* L978 */
-{3.3790235519409180e+00, 1.9723176956176758e-04,
- 1.1920928955078125e-07, -1.9848346710205078e-05,
- -1.8912553787231445e-04}, /* L979 */
-{1.6786025762557983e+00, 9.8109245300292969e-05,
- 1.1920928955078125e-07, -2.0903348922729492e-04,
- 2.5415420532226562e-04}, /* L980 */
-{3.2069649696350098e+00, 1.8772482872009277e-04,
- 1.1920928955078125e-07, -9.8109245300292969e-05,
- 2.5808811187744141e-04}, /* L981 */
-{2.2108442783355713e+00, 1.2943148612976074e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- 2.9325485229492188e-05}, /* L982 */
-{3.4959599971771240e+00, 2.0486116409301758e-04,
- 1.1920928955078125e-07, -1.5556812286376953e-05,
- -9.5367431640625000e-07}, /* L983 */
-{2.1561477184295654e+00, 1.2648105621337891e-04,
- 1.1920928955078125e-07, 3.3736228942871094e-05,
- -2.1100044250488281e-05}, /* L984 */
-{3.0553536415100098e+00, 1.7976760864257812e-04,
- 1.1920928955078125e-07, 1.2249946594238281e-03,
- -2.9432773590087891e-04}, /* L985 */
-{2.5368721485137939e+00, 1.4910846948623657e-04,
- 1.1920928955078125e-07, -3.7312507629394531e-05,
- -3.0755996704101562e-05}, /* L986 */
-{3.6978828907012939e+00, 2.1764636039733887e-04,
- 1.1920928955078125e-07, -1.6689300537109375e-05,
- 3.3378601074218750e-06}, /* L987 */
-{2.4157083034515381e+00, 1.4230608940124512e-04,
- 1.1920928955078125e-07, 4.8518180847167969e-05,
- 8.3684921264648438e-05}, /* L988 */
-{3.2523264884948730e+00, 1.9174069166183472e-04,
- 1.1920928955078125e-07, 3.8027763366699219e-05,
- -3.4153461456298828e-05}, /* L989 */
-{2.1624081134796143e+00, 1.2762844562530518e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- 2.7656555175781250e-05}, /* L990 */
-{3.3603737354278564e+00, 1.9861757755279541e-04,
- 1.1920928955078125e-07, -1.4817714691162109e-04,
- 1.4078617095947266e-04}, /* L991 */
-{2.4080018997192383e+00, 1.4241039752960205e-04,
- 1.1920928955078125e-07, 2.5749206542968750e-05,
- 2.8371810913085938e-05}, /* L992 */
-{2.8719756603240967e+00, 1.7014145851135254e-04,
- 1.1920928955078125e-07, -5.1099061965942383e-04,
- 1.6462802886962891e-04}, /* L993 */
-{2.2886621952056885e+00, 1.3565644621849060e-04,
- 1.1920928955078125e-07, -1.1599063873291016e-04,
- -2.9325485229492188e-05}, /* L994 */
-{3.4535613059997559e+00, 2.0485371351242065e-04,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -4.7206878662109375e-05}, /* L995 */
-{2.1405074596405029e+00, 1.2710690498352051e-04,
- 1.1920928955078125e-07, -9.2864036560058594e-05,
- 5.5789947509765625e-05}, /* L996 */
-{2.2308869361877441e+00, 1.3259053230285645e-04,
- 1.1920928955078125e-07, 3.8623809814453125e-05,
- 6.0796737670898438e-06}, /* L997 */
-{2.4623289108276367e+00, 1.4650821685791016e-04,
- 1.1920928955078125e-07, 1.7523765563964844e-05,
- -5.6087970733642578e-05}, /* L998 */
-{2.7557215690612793e+00, 1.6438961029052734e-04,
- 1.1920928955078125e-07, 8.6903572082519531e-05,
- 3.7312507629394531e-05}, /* L999 */
-{2.7290947437286377e+00, 1.6268249601125717e-04,
- 1.1920928955078125e-07, -2.3424625396728516e-05,
- 1.5258789062500000e-05}, /* L1000 */
-{3.3480596542358398e+00, 3.9978325366973877e-04,
- 1.1920928955078125e-07, 5.7530403137207031e-04,
- -2.1338462829589844e-04}, /* L1001 */
-{4.2831449508666992e+00, 7.6914019882678986e-04,
- 1.1920928955078125e-07, 1.1730194091796875e-03,
- -3.8689374923706055e-04}, /* L1002 */
-{7.8901090621948242e+00, 1.8908008933067322e-03,
- 1.1920928955078125e-07, -1.2475252151489258e-04,
- -4.3213367462158203e-05}, /* L1003 */
-{8.8292112350463867e+00, 2.6347935199737549e-03,
- 1.1920928955078125e-07, 2.7668476104736328e-04,
- 9.8347663879394531e-05}, /* L1004 */
-{9.3150682449340820e+00, 3.3390820026397705e-03,
- 1.1920928955078125e-07, 4.4429302215576172e-04,
- 3.5595893859863281e-04}, /* L1005 */
-{1.1505256652832031e+01, 4.8386007547378540e-03,
- 1.1920928955078125e-07, 2.6655197143554688e-04,
- 8.5997581481933594e-04}, /* L1006 */
-{1.1165212631225586e+01, 5.3914487361907959e-03,
- 1.1920928955078125e-07, 2.7000904083251953e-04,
- -2.9709339141845703e-03}, /* L1007 */
-{1.3286559104919434e+01, 7.1436464786529541e-03,
- 1.1920928955078125e-07, -1.4352798461914062e-04,
- 7.5900554656982422e-04}, /* L1008 */
-{1.5058175086975098e+01, 8.9877285063266754e-03,
- 1.1920928955078125e-07, -7.2884559631347656e-04,
- 1.7344951629638672e-04}, /* L1009 */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1011 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1012 */
-}; /* SINGLE */
-
-#endif /* DP */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SINGDOUB64_SOS10_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64_sos8.h b/usr/src/cmd/fps/fptest/singdoub64_sos8.h
deleted file mode 100644
index a00c382632..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64_sos8.h
+++ /dev/null
@@ -1,6137 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SINGDOUB64_SOS8_H
-#define _SINGDOUB64_SOS8_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64 bits V9 LAPAK */
-
-#ifdef DP
-static struct LinpVals LinpValsA[] = {
-
-/* DOUBLE */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{8.4318439831303504e-01, 3.0808688933348094e-15,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 1.1102230246251565e-15}, /* L33 */
-{9.7321442476194397e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 2.2204460492503131e-16}, /* L34 */
-{1.4583044708110673e+00, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -4.4408920985006262e-16}, /* L35 */
-{8.0446023793208044e-01, 3.2127078775090467e-15,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- 1.9984014443252818e-14}, /* L36 */
-{5.3420930866356575e-01, 2.1926904736346842e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -5.5511151231257827e-16}, /* L37 */
-{4.6747763286447808e-01, 1.9706458687096529e-15,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.5543122344752192e-15}, /* L38 */
-{9.8796645269880079e-01, 4.2743586448068527e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 1.3322676295501878e-15}, /* L39 */
-{6.1611576753753372e-01, 2.7339241981394480e-15,
- 2.2204460492503131e-16, -9.5390362275793450e-13,
- 2.3319124409226788e-12}, /* L40 */
-{6.2244703022421788e-01, 2.8310687127941492e-15,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 2.1982415887578100e-14}, /* L41 */
-{8.7271897456624437e-01, 4.0661918276896358e-15,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -9.8809849191638932e-15}, /* L42 */
-{6.8659341819991870e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- -2.9976021664879227e-15}, /* L43 */
-{7.2500932497707793e-01, 3.5388358909926865e-15,
- 2.2204460492503131e-16, -1.1657341758564144e-14,
- 4.2188474935755949e-15}, /* L44 */
-{8.8403751416813714e-01, 4.4131365228849972e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -1.2101430968414206e-14}, /* L45 */
-{6.3093735629719305e-01, 3.2196467714129540e-15,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- -3.3306690738754696e-15}, /* L46 */
-{9.2094634655374696e-01, 4.8017145815038020e-15,
- 2.2204460492503131e-16, -1.9872992140790302e-14,
- 1.3322676295501878e-15}, /* L47 */
-{7.9229777213175645e-01, 4.2188474935755949e-15,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- 1.2212453270876722e-14}, /* L48 */
-{6.0205010610116116e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 1.3322676295501878e-15}, /* L49 */
-{1.3500208311387045e+00, 7.4940054162198066e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- -1.9984014443252818e-15}, /* L50 */
-{1.1666846688849217e+00, 6.6058269965196814e-15,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- 9.3702823278363212e-14}, /* L51 */
-{1.0480930953997019e+00, 6.0507154842071031e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- 9.9920072216264089e-15}, /* L52 */
-{8.8208908253996454e-01, 5.1902926401226068e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -2.4424906541753444e-15}, /* L53 */
-{8.2408678992692186e-01, 4.9404924595819466e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.8833827526759706e-15}, /* L54 */
-{8.6364968995405822e-01, 5.2735593669694936e-15,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- -6.6613381477509392e-16}, /* L55 */
-{7.5001157285481435e-01, 4.6629367034256575e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- 8.8817841970012523e-16}, /* L56 */
-{1.2017729296036601e+00, 7.6050277186823223e-15,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 5.5511151231257827e-15}, /* L57 */
-{1.0194122814946389e+00, 6.5641936330962380e-15,
- 2.2204460492503131e-16, 2.6534330288541241e-13,
- 1.6364687382974807e-13}, /* L58 */
-{9.9577807695415899e-01, 6.5225602696727947e-15,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- 3.7747582837255322e-15}, /* L59 */
-{8.5001311590214701e-01, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.5543122344752192e-15}, /* L60 */
-{9.2624380035615839e-01, 6.2727600891321345e-15,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -9.2481577951275540e-14}, /* L61 */
-{1.5242170674146556e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 3.9968028886505635e-15}, /* L62 */
-{8.9981547166579190e-01, 6.2935767708438561e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 4.4408920985006262e-16}, /* L63 */
-{7.6563681395596928e-01, 5.4400928206632670e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 1.6875389974302379e-14}, /* L64 */
-{9.1155252700817435e-01, 6.5780714209040525e-15,
- 2.2204460492503131e-16, -5.8841820305133297e-15,
- -1.3322676295501878e-15}, /* L65 */
-{8.6364968995405356e-01, 6.3282712403633923e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -1.3322676295501878e-15}, /* L66 */
-{1.0447922407927950e+00, 7.7715611723760958e-15,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- 4.8849813083506888e-15}, /* L67 */
-{7.8677684603399289e-01, 5.9396931817445875e-15,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- -2.9976021664879227e-15}, /* L68 */
-{1.2246565778977070e+00, 9.3813845580825728e-15,
- 2.2204460492503131e-16, 1.5032419753424620e-13,
- 3.1863400806741993e-13}, /* L69 */
-{1.6214535908385190e+00, 1.2601031329495527e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.2212453270876722e-15}, /* L70 */
-{9.7184598172736347e-01, 7.6605388699135801e-15,
- 2.2204460492503131e-16, -1.9206858326015208e-14,
- -1.0325074129013956e-14}, /* L71 */
-{8.4723529526194563e-01, 6.7723604502134549e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 4.2188474935755949e-15}, /* L72 */
-{1.3493358890629930e+00, 1.0935696792557792e-14,
- 2.2204460492503131e-16, -1.8318679906315083e-14,
- 5.1070259132757201e-15}, /* L73 */
-{1.1790722474159370e+00, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -7.1054273576010019e-15}, /* L74 */
-{1.0000154304731115e+00, 8.3266726846886741e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -5.3290705182007514e-15}, /* L75 */
-{9.9672590603067746e-01, 8.4099394115355608e-15,
- 2.2204460492503131e-16, -5.6510351953420468e-14,
- -4.3631764867768652e-14}, /* L76 */
-{1.8831459405013156e+00, 1.6098233857064770e-14,
- 2.2204460492503131e-16, -1.2212453270876722e-15,
- -1.9984014443252818e-15}, /* L77 */
-{1.1538639582381141e+00, 9.9920072216264089e-15,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 4.2410519540680980e-14}, /* L78 */
-{9.2090028565720605e-01, 8.0768725041480138e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.4392935428259079e-15}, /* L79 */
-{1.0812666841987244e+00, 9.6034291630076041e-15,
- 2.2204460492503131e-16, 1.5609735726229701e-13,
- 4.5519144009631418e-14}, /* L80 */
-{9.4445901766904117e-01, 8.4932061383824475e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.1768364061026659e-14}, /* L81 */
-{1.1158708766864638e+00, 1.0158540675320182e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -1.7763568394002505e-15}, /* L82 */
-{1.3976119269262395e+00, 1.2878587085651816e-14,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -9.8809849191638932e-15}, /* L83 */
-{1.1964470328874373e+00, 1.1157741397482823e-14,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -7.4384942649885488e-15}, /* L84 */
-{1.5279647533258061e+00, 1.4419021532319221e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 1.3322676295501878e-15}, /* L85 */
-{1.0581558624773642e+00, 1.0103029524088925e-14,
- 2.2204460492503131e-16, -2.5535129566378600e-15,
- 2.2204460492503131e-15}, /* L86 */
-{1.3391011224150913e+00, 1.2934098236883074e-14,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- -1.2878587085651816e-14}, /* L87 */
-{1.1306992651372059e+00, 1.1046719095020308e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -1.8873791418627661e-15}, /* L88 */
-{1.2584463844155744e+00, 1.2434497875801753e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 8.8817841970012523e-16}, /* L89 */
-{1.4757172151078655e+00, 1.4745149545802860e-14,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 2.1094237467877974e-14}, /* L90 */
-{9.5880600339315103e-01, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 1.2434497875801753e-14,
- 2.6645352591003757e-14}, /* L91 */
-{1.0407769289978044e+00, 1.0630385460785874e-14,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- -2.7755575615628914e-15}, /* L92 */
-{1.3226010532063741e+00, 1.3655743202889425e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- 1.9984014443252818e-15}, /* L93 */
-{9.5480196686123875e-01, 9.9642516460107800e-15,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.5543122344752192e-15}, /* L94 */
-{1.3822581706736938e+00, 1.4578616092109087e-14,
- 2.2204460492503131e-16, 8.4376949871511897e-15,
- -5.1070259132757201e-15}, /* L95 */
-{1.9166962417400433e+00, 2.0428103653102880e-14,
- 2.2204460492503131e-16, -3.7747582837255322e-15,
- -3.1086244689504383e-15}, /* L96 */
-{1.2371324913069346e+00, 1.3322676295501878e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 6.6613381477509392e-15}, /* L97 */
-{8.9797303960849595e-01, 9.7699626167013776e-15,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -1.1102230246251565e-15}, /* L98 */
-{1.4040620690480938e+00, 1.5432100042289676e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 1.3322676295501878e-15}, /* L99 */
-{1.2800197510055726e+00, 1.4210854715202004e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 5.7731597280508140e-15}, /* L100 */
-{1.5198254314615605e+00, 1.7041923427996153e-14,
- 2.2204460492503131e-16, -1.7097434579227411e-14,
- 2.8865798640254070e-15}, /* L101 */
-{1.0593760277936337e+00, 1.1996480198117609e-14,
- 2.2204460492503131e-16, -6.1062266354383610e-15,
- -1.5543122344752192e-15}, /* L102 */
-{9.8059765512410590e-01, 1.1213252548714081e-14,
- 2.2204460492503131e-16, -1.2989609388114332e-14,
- 3.3306690738754696e-15}, /* L103 */
-{1.1184066803548092e+00, 1.2913281555171352e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-15,
- 1.1546319456101628e-14}, /* L104 */
-{1.4190695156236912e+00, 1.6542323066914832e-14,
- 2.2204460492503131e-16, -3.1641356201816961e-14,
- -6.1062266354383610e-15}, /* L105 */
-{9.9529837655541686e-01, 1.1712852909795402e-14,
- 2.2204460492503131e-16, 4.6851411639181606e-14,
- -1.0380585280245214e-13}, /* L106 */
-{1.7804013037862301e+00, 2.1149748619109232e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 7.3274719625260332e-15}, /* L107 */
-{1.2916865976944309e+00, 1.5487611193520934e-14,
- 2.2204460492503131e-16, 7.7715611723760958e-15,
- 1.4654943925052066e-14}, /* L108 */
-{1.0527685380438851e+00, 1.2739809207573671e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -5.3290705182007514e-15}, /* L109 */
-{1.0727438254166126e+00, 1.3100631690576847e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -2.2204460492503131e-15}, /* L110 */
-{1.6441695140661536e+00, 2.0261570199409107e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -5.6621374255882984e-15}, /* L111 */
-{1.4509152451060254e+00, 1.8041124150158794e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -2.2426505097428162e-14}, /* L112 */
-{1.1725844649352746e+00, 1.4710455076283324e-14,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 8.6597395920762210e-15}, /* L113 */
-{1.0033049549154456e+00, 1.2698175844150228e-14,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 3.9968028886505635e-15}, /* L114 */
-{1.5000231457096496e+00, 1.9151347174783950e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -1.4432899320127035e-15}, /* L115 */
-{8.9279394843423010e-01, 1.1497747198774277e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- -1.1990408665951691e-14}, /* L116 */
-{1.5042967159233618e+00, 1.9539925233402755e-14,
- 2.2204460492503131e-16, -2.7056135110115065e-13,
- -2.5757174171303632e-13}, /* L117 */
-{1.3474784190248486e+00, 1.7652546091539989e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -1.9443335830260366e-12}, /* L118 */
-{9.4119099338644763e-01, 1.2434497875801753e-14,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- -2.1094237467877974e-15}, /* L119 */
-{1.7194275728381851e+00, 2.2907023500273738e-14,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- -7.5495165674510645e-15}, /* L120 */
-{1.1518772778689883e+00, 1.5473733405713119e-14,
- 2.2204460492503131e-16, 5.4178883601707639e-14,
- -3.8413716652030416e-14}, /* L121 */
-{1.3360861898943925e+00, 1.8096635301390052e-14,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- -3.4416913763379853e-15}, /* L122 */
-{1.1829450823886922e+00, 1.6153745008296028e-14,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- -1.9317880628477724e-14}, /* L123 */
-{1.5010312257805758e+00, 2.0664026045835726e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 5.4845017416482733e-14}, /* L124 */
-{1.1720180845143169e+00, 1.6264767310758543e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-14,
- 3.3750779948604759e-14}, /* L125 */
-{1.6666923841217633e+00, 2.3314683517128287e-14,
- 2.2204460492503131e-16, 4.3520742565306136e-14,
- -6.3282712403633923e-15}, /* L126 */
-{1.4389985820389368e+00, 2.0289325775024736e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -4.0301095793893182e-14}, /* L127 */
-{1.2754103048807188e+00, 1.8124390877005681e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 6.6613381477509392e-16}, /* L128 */
-{9.5737911366996731e-01, 1.3711254354120683e-14,
- 2.2204460492503131e-16, 2.7533531010703882e-14,
- 3.2418512319054571e-14}, /* L129 */
-{1.3230973387797593e+00, 1.9095836023552692e-14,
- 2.2204460492503131e-16, -2.3869795029440866e-14,
- -2.3425705819590803e-14}, /* L130 */
-{1.5687264958944152e+00, 2.2815083156046967e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-14,
- -1.0436096431476471e-14}, /* L131 */
-{1.5094929888012547e+00, 2.2121193765656244e-14,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- -5.5511151231257827e-16}, /* L132 */
-{1.1391153211779199e+00, 1.6819878823071122e-14,
- 2.2204460492503131e-16, -1.3100631690576847e-14,
- 5.3068660577082483e-14}, /* L133 */
-{1.7117801445131744e+00, 2.5465740627339528e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -8.6597395920762210e-15}, /* L134 */
-{1.5685427215013152e+00, 2.3508972546437690e-14,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- -6.5503158452884236e-15}, /* L135 */
-{1.7610565852814140e+00, 2.6589841439772499e-14,
- 2.2204460492503131e-16, -7.6272321791748254e-14,
- -3.0642155479654321e-14}, /* L136 */
-{1.0091396588533188e+00, 1.5348833315442789e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 3.1086244689504383e-15}, /* L137 */
-{2.5145315534359565e+00, 3.8524738954492932e-14,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -1.3433698597964394e-14}, /* L138 */
-{1.4100937005232246e+00, 2.1760371282653068e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- -5.9952043329758453e-15}, /* L139 */
-{1.2660909646518197e+00, 1.9678703111480900e-14,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -2.3725466036239595e-13}, /* L140 */
-{1.5053423767228098e+00, 2.3564483697668948e-14,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- 2.4424906541753444e-15}, /* L141 */
-{1.1338203120152812e+00, 1.7874590696465020e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 1.0658141036401503e-14}, /* L142 */
-{1.4650575712174143e+00, 2.3259172365897030e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -8.6153306710912148e-14}, /* L143 */
-{1.3066607870829714e+00, 2.0889540097712711e-14,
- 2.2204460492503131e-16, -1.4543921622589551e-14,
- -4.2188474935755949e-15}, /* L144 */
-{1.7758894713573601e+00, 2.8588242884097781e-14,
- 2.2204460492503131e-16, 1.8207657603852567e-14,
- 3.2418512319054571e-14}, /* L145 */
-{1.7397528721926590e+00, 2.8199664825478976e-14,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- 1.6875389974302379e-14}, /* L146 */
-{1.8741785788796950e+00, 3.0586644328423063e-14,
- 2.2204460492503131e-16, -1.0502709812953981e-13,
- -6.7723604502134549e-15}, /* L147 */
-{1.3116756448688298e+00, 2.1552204465535851e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -5.1070259132757201e-15}, /* L148 */
-{1.7483491250887737e+00, 2.8921309791485328e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- 3.9079850466805510e-14}, /* L149 */
-{2.1446164252687314e+00, 3.5714486923410504e-14,
- 2.2204460492503131e-16, -4.7739590058881731e-14,
- -3.2640556923979602e-14}, /* L150 */
-{1.8311540829523274e+00, 3.0697666630885578e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- 3.0864200084579352e-14}, /* L151 */
-{1.5806164945471264e+00, 2.6673108166619386e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 8.8817841970012523e-16}, /* L152 */
-{1.8791139624897018e+00, 3.1918911957973251e-14,
- 2.2204460492503131e-16, -6.8611782921834674e-14,
- -9.4368957093138306e-14}, /* L153 */
-{1.9756798358534147e+00, 3.3778535524220388e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- 1.8651746813702630e-14}, /* L154 */
-{1.7645433563508734e+00, 3.0364599723498031e-14,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- -2.6312285683616210e-14}, /* L155 */
-{1.8654133991516275e+00, 3.2307490016592055e-14,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- -5.5511151231257827e-15}, /* L156 */
-{1.6067126900435591e+00, 2.8005375796169574e-14,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- 2.6201263381153694e-14}, /* L157 */
-{1.6570667081691322e+00, 2.9067026563467380e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 2.3758772726978350e-14}, /* L158 */
-{1.7806878537902620e+00, 3.1433189384699745e-14,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- -5.4067861299245124e-14}, /* L159 */
-{1.5562740136737514e+00, 2.7644553313166398e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 9.1038288019262836e-15}, /* L160 */
-{1.6025091991431788e+00, 2.8643754035329039e-14,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 2.4424906541753444e-15}, /* L161 */
-{2.0617602085061701e+00, 3.7081449022480228e-14,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- 1.0880185641326534e-14}, /* L162 */
-{1.4577007902116978e+00, 2.6379072537441317e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 1.9317880628477724e-14}, /* L163 */
-{1.8529249325305224e+00, 3.3736902160796944e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -1.0769163338864018e-14}, /* L164 */
-{1.6606316845431750e+00, 3.0420110874729289e-14,
- 2.2204460492503131e-16, -2.5202062658991053e-14,
- -5.5511151231257827e-15}, /* L165 */
-{1.7921963287087741e+00, 3.3029134982598407e-14,
- 2.2204460492503131e-16, 1.0280665208028950e-13,
- 2.9620750296999176e-13}, /* L166 */
-{1.7485299742402434e+00, 3.2418512319054571e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- -3.2196467714129540e-14}, /* L167 */
-{2.2321773001623937e+00, 4.1633363423443370e-14,
- 2.2204460492503131e-16, 1.3367085216486885e-13,
- -8.4710016778899444e-14}, /* L168 */
-{1.4793127669720494e+00, 2.7755575615628914e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 4.4408920985006262e-15}, /* L169 */
-{2.0088545265091819e+00, 3.7914116290949096e-14,
- 2.2204460492503131e-16, 5.5511151231257827e-15,
- 1.3544720900426910e-14}, /* L170 */
-{2.1688931156532889e+00, 4.1175396425785493e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-15,
- -1.2989609388114332e-14}, /* L171 */
-{1.0436207544762772e+00, 1.9928503292021560e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -4.3298697960381105e-15}, /* L172 */
-{1.7428014583100506e+00, 3.3473224192448470e-14,
- 2.2204460492503131e-16, -1.8096635301390052e-14,
- -6.5503158452884236e-15}, /* L173 */
-{1.6293354858554954e+00, 3.1474822748123188e-14,
- 2.2204460492503131e-16, 2.0539125955565396e-13,
- -2.2015722578316854e-13}, /* L174 */
-{1.8428855790146630e+00, 3.5804692544161298e-14,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- -2.3869795029440866e-14}, /* L175 */
-{1.6988898506325165e+00, 3.3195668436292181e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-14,
- 4.7073456244106637e-14}, /* L176 */
-{2.2867584490619168e+00, 4.4936276921703211e-14,
- 2.2204460492503131e-16, 4.2854608750531042e-14,
- 2.7977620220553945e-14}, /* L177 */
-{2.5281288972624893e+00, 4.9960036108132044e-14,
- 2.2204460492503131e-16, -5.6177285046032921e-14,
- -8.1157303100098943e-14}, /* L178 */
-{2.1299211333399728e+00, 4.2327252813834093e-14,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- 4.0634162701280729e-14}, /* L179 */
-{1.1736292204852639e+00, 2.3453461395206432e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -1.6053824936079764e-13}, /* L180 */
-{1.8508572884445129e+00, 3.7192471324942744e-14,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- -4.1855408028368402e-14}, /* L181 */
-{2.5522371838169264e+00, 5.1569859493838521e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-14,
- 1.9984014443252818e-15}, /* L182 */
-{1.9576804806937962e+00, 3.9773739857196233e-14,
- 2.2204460492503131e-16, -6.1839422471621219e-14,
- 5.6843418860808015e-14}, /* L183 */
-{2.5000385761827033e+00, 5.1070259132757201e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.8429702208777599e-14}, /* L184 */
-{2.3378739117797882e+00, 4.8017145815038020e-14,
- 2.2204460492503131e-16, -4.1289194285809572e-13,
- 2.1782575743145571e-13}, /* L185 */
-{1.6613159570758225e+00, 3.4305891460917337e-14,
- 2.2204460492503131e-16, 1.3833378886829450e-13,
- 7.6383344094210770e-14}, /* L186 */
-{1.9616779964251454e+00, 4.0726103045507500e-14,
- 2.2204460492503131e-16, -1.7208456881689926e-14,
- -1.5765166949677223e-14}, /* L187 */
-{1.7260904637671115e+00, 3.6026737149086330e-14,
- 2.2204460492503131e-16, 1.6564527527407336e-13,
- 2.0938806244430452e-13}, /* L188 */
-{1.4338845590380698e+00, 3.0087043967341742e-14,
- 2.2204460492503131e-16, -3.4972025275692431e-14,
- -1.3766765505351941e-14}, /* L189 */
-{1.6348936478457738e+00, 3.4486302702418925e-14,
- 2.2204460492503131e-16, -3.3861802251067274e-14,
- 2.8199664825478976e-14}, /* L190 */
-{2.3364234861184388e+00, 4.9543702473897611e-14,
- 2.2204460492503131e-16, -6.1062266354383610e-15,
- -1.3766765505351941e-14}, /* L191 */
-{1.4349179744548259e+00, 3.0586644328423063e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -5.1070259132757201e-15}, /* L192 */
-{1.7254152245985483e+00, 3.6970426720017713e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- -3.1974423109204508e-14}, /* L193 */
-{1.8505440182464656e+00, 3.9857006584043120e-14,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 2.3758772726978350e-14}, /* L194 */
-{1.8551568306339923e+00, 4.0162317915815038e-14,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 6.9499961341534799e-14}, /* L195 */
-{1.8922884459041780e+00, 4.1176263787523482e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 4.8405723873656825e-14}, /* L196 */
-{1.9289637745162949e+00, 4.2188474935755949e-14,
- 2.2204460492503131e-16, -9.4146912488213275e-14,
- 3.7969627442180354e-14}, /* L197 */
-{1.6666923841217840e+00, 3.6637359812630166e-14,
- 2.2204460492503131e-16, 3.6637359812630166e-14,
- -1.3877787807814457e-14}, /* L198 */
-{2.0779215100532515e+00, 4.5907722068250223e-14,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- -9.4368957093138306e-15}, /* L199 */
-{2.8323874544038095e+00, 6.2890664898063164e-14,
- 2.2204460492503131e-16, 1.6875389974302379e-14,
- 2.0872192862952943e-14}, /* L200 */
-{1.8408244242538161e+00, 4.1078251911130792e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 2.5313084961453569e-14}, /* L201 */
-{1.3459366097022418e+00, 3.0184188481996443e-14,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- 3.3306690738754696e-14}, /* L202 */
-{2.1921520520222271e+00, 4.9404924595819466e-14,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- 1.1546319456101628e-14}, /* L203 */
-{1.8284595861100834e+00, 4.1411318818518339e-14,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 9.9920072216264089e-15}, /* L204 */
-{1.6709099288644340e+00, 3.8028608040363565e-14,
- 2.2204460492503131e-16, 4.0207837059824669e-12,
- -5.7542859366321863e-13}, /* L205 */
-{1.1699209647766511e+00, 2.6756374893466273e-14,
- 2.2204460492503131e-16, -8.2933659939499194e-14,
- 1.3877787807814457e-13}, /* L206 */
-{2.0633810232366212e+00, 4.7419099896695016e-14,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 4.1078251911130792e-14}, /* L207 */
-{2.9327375605219776e+00, 6.7723604502134549e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- -7.6605388699135801e-15}, /* L208 */
-{1.8644127396185128e+00, 4.3260534043909615e-14,
- 2.2204460492503131e-16, 2.2426505097428162e-14,
- 1.5987211554602254e-14}, /* L209 */
-{2.6321834723518638e+00, 6.1367577686155528e-14,
- 2.2204460492503131e-16, 5.0848214527832170e-14,
- 1.2412293415309250e-13}, /* L210 */
-{1.9526367647151546e+00, 4.5741188614556449e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 4.4408920985006262e-15}, /* L211 */
-{2.4599436178854401e+00, 5.7898130734201914e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -4.1078251911130792e-15}, /* L212 */
-{2.7934703339503999e+00, 6.6058269965196814e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 1.1546319456101628e-14}, /* L213 */
-{1.7780648191354682e+00, 4.2243986086987206e-14,
- 2.2204460492503131e-16, -1.6542323066914832e-14,
- -6.2616578588858829e-14}, /* L214 */
-{2.1953827124803573e+00, 5.2402526762307389e-14,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 6.6613381477509392e-15}, /* L215 */
-{1.8773437826704427e+00, 4.5019543648550098e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 5.3512749786932545e-14}, /* L216 */
-{1.7903502061674965e+00, 4.3132164506687332e-14,
- 2.2204460492503131e-16, 5.2535753525262407e-13,
- -1.8685053504441385e-13}, /* L217 */
-{1.7454397765825900e+00, 4.2243986086987206e-14,
- 2.2204460492503131e-16, -1.0436096431476471e-14,
- -3.6637359812630166e-15}, /* L218 */
-{2.0856486204043323e+00, 5.0709436649754025e-14,
- 2.2204460492503131e-16, 3.0420110874729289e-14,
- 7.3274719625260332e-15}, /* L219 */
-{2.4454922799750403e+00, 5.9729998724833422e-14,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- 3.3306690738754696e-15}, /* L220 */
-{3.3948487634046742e+00, 8.3294482422502369e-14,
- 2.2204460492503131e-16, -3.4861002973229915e-14,
- -6.1062266354383610e-15}, /* L221 */
-{2.4977862891769762e+00, 6.1561866715464930e-14,
- 2.2204460492503131e-16, -2.8643754035329039e-14,
- 2.7311486405778851e-14}, /* L222 */
-{1.4551794044327637e+00, 3.6026737149086330e-14,
- 2.2204460492503131e-16, -3.5638159090467525e-14,
- 8.6597395920762210e-15}, /* L223 */
-{2.6339692141866542e+00, 6.5503158452884236e-14,
- 2.2204460492503131e-16, -5.6299409578741688e-13,
- -1.0330625244137082e-12}, /* L224 */
-{2.2989243618315744e+00, 5.7426285948736222e-14,
- 2.2204460492503131e-16, 2.3336887977620790e-13,
- -4.6074255521943996e-14}, /* L225 */
-{2.1217141544771656e+00, 5.3235194030776256e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- -5.5511151231257827e-16}, /* L226 */
-{2.9890329056207809e+00, 7.5328632220816871e-14,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- -1.0269562977782698e-13}, /* L227 */
-{4.3926116386781411e+00, 1.1118883591620943e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 1.5099033134902129e-14}, /* L228 */
-{1.8995926299188719e+00, 4.8294701571194310e-14,
- 2.2204460492503131e-16, -3.5084157801179572e-12,
- 1.0977885267493548e-12}, /* L229 */
-{2.1826423743356673e+00, 5.5733195836182858e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-14,
- 7.7049477908985864e-14}, /* L230 */
-{1.4653905766887152e+00, 3.7581049383561549e-14,
- 2.2204460492503131e-16, 1.4876988529977098e-14,
- -1.0325074129013956e-14}, /* L231 */
-{3.2349637093533472e+00, 8.3322237998117998e-14,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- 2.7755575615628914e-14}, /* L232 */
-{3.0601330554818875e+00, 7.9158901655773661e-14,
- 2.2204460492503131e-16, -4.2521541843143495e-14,
- 2.9309887850104133e-14}, /* L233 */
-{2.0427665631029104e+00, 5.3068660577082483e-14,
- 2.2204460492503131e-16, 1.2057022047429200e-13,
- 2.0206059048177849e-14}, /* L234 */
-{2.1213093280460096e+00, 5.5344617777564054e-14,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- -1.4765966227514582e-14}, /* L235 */
-{2.1292701432741032e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -2.3425705819590803e-14}, /* L236 */
-{2.1920169456993888e+00, 5.7676086129276882e-14,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- 2.3314683517128287e-14}, /* L237 */
-{2.9383331542969349e+00, 7.7639283890817978e-14,
- 2.2204460492503131e-16, 3.6637359812630166e-14,
- -2.0428103653102880e-14}, /* L238 */
-{2.2448045123378528e+00, 5.9563465271139648e-14,
- 2.2204460492503131e-16, -8.0713213890248880e-14,
- -9.3258734068513149e-14}, /* L239 */
-{2.6667078145948717e+00, 7.1054273576010019e-14,
- 2.2204460492503131e-16, -2.5091040356528538e-14,
- -1.2101430968414206e-14}, /* L240 */
-{2.4129003021567734e+00, 6.4559468881952853e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-14,
- -8.8151708155237429e-14}, /* L241 */
-{2.4318557059229371e+00, 6.5336624999190462e-14,
- 2.2204460492503131e-16, 7.7049477908985864e-14,
- 4.9960036108132044e-14}, /* L242 */
-{1.9393303358444993e+00, 5.2319260035460502e-14,
- 2.2204460492503131e-16, -3.8202774277351637e-13,
- -1.1812772982011666e-13}, /* L243 */
-{2.0896838836574534e+00, 5.6607496468075169e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.7541523789077473e-14}, /* L244 */
-{2.0796239258202580e+00, 5.6565863104651726e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 6.8167693711984612e-14}, /* L245 */
-{2.4949571969628308e+00, 6.8139938136368983e-14,
- 2.2204460492503131e-16, -1.3433698597964394e-14,
- 1.6875389974302379e-14}, /* L246 */
-{2.2029692150040847e+00, 6.0410010327416330e-14,
- 2.2204460492503131e-16, 1.7741363933510002e-13,
- 1.5121237595394632e-13}, /* L247 */
-{2.1814852737334989e+00, 6.0063065632220969e-14,
- 2.2204460492503131e-16, -9.3258734068513149e-14,
- -1.6431300764452317e-14}, /* L248 */
-{1.6666923841182062e+00, 4.6074255521943996e-14,
- 2.2204460492503131e-16, -1.3866685577568205e-13,
- -1.8995915951336428e-13}, /* L249 */
-{2.6237904857036902e+00, 7.2823691521506362e-14,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -2.2648549702353193e-14}, /* L250 */
-{2.0543145670806084e+00, 5.7245874707234634e-14,
- 2.2204460492503131e-16, -6.4726002335646626e-14,
- -1.3344880755994382e-13}, /* L251 */
-{2.0397140129490610e+00, 5.7065463465733046e-14,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.3433698597964394e-14}, /* L252 */
-{2.3636728356632153e+00, 6.6391336872584361e-14,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- 9.5701224722688494e-14}, /* L253 */
-{2.0748351648003949e+00, 5.8508753397745750e-14,
- 2.2204460492503131e-16, -8.3266726846886741e-15,
- -3.4083846855992306e-14}, /* L254 */
-{2.2765057152529731e+00, 6.4448446579490337e-14,
- 2.2204460492503131e-16, 2.9087843245179101e-14,
- -1.0680345496894006e-13}, /* L255 */
-{2.5801179368259426e+00, 7.3330230776491589e-14,
- 2.2204460492503131e-16, -4.7739590058881731e-14,
- 5.0626169922907138e-14}, /* L256 */
-{1.9260997590764319e+00, 5.4956039718945249e-14,
- 2.2204460492503131e-16, -3.7969627442180354e-14,
- -4.7295500849031669e-13}, /* L257 */
-{2.3488734529714574e+00, 6.7279515292284486e-14,
- 2.2204460492503131e-16, -1.5210055437364645e-14,
- -5.2624571367232420e-14}, /* L258 */
-{2.7567992948175259e+00, 7.9269923958236177e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 1.4654943925052066e-14}, /* L259 */
-{2.9615841594774968e+00, 8.5487172896137054e-14,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- 6.2172489379008766e-15}, /* L260 */
-{2.4895020151335312e+00, 7.2136741025019546e-14,
- 2.2204460492503131e-16, -4.0412118096355698e-14,
- 1.3100631690576847e-14}, /* L261 */
-{2.2691189825034535e+00, 6.6002758813965556e-14,
- 2.2204460492503131e-16, -3.3073543903583413e-13,
- 1.5143442055887135e-13}, /* L262 */
-{2.2452817935145397e+00, 6.5558669604115494e-14,
- 2.2204460492503131e-16, 5.2180482157382357e-14,
- -4.1966430330830917e-14}, /* L263 */
-{2.2905182977808596e+00, 6.7133798520302435e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- -6.3282712403633923e-14}, /* L264 */
-{1.6726673190830605e+00, 4.9210635566510064e-14,
- 2.2204460492503131e-16, -2.2171153801764376e-13,
- -1.4288570326925765e-13}, /* L265 */
-{2.8139531943947489e+00, 8.3100193393192967e-14,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- 6.6835426082434424e-14}, /* L266 */
-{3.1619972337107036e+00, 9.3729494651806355e-14,
- 2.2204460492503131e-16, 2.4225066397320916e-13,
- 6.6391336872584361e-14}, /* L267 */
-{1.7780125097773152e+00, 5.2902127123388709e-14,
- 2.2204460492503131e-16, -1.6719958750854857e-13,
- 6.4170890823334048e-14}, /* L268 */
-{1.8527237552483771e+00, 5.5330739989756239e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 1.7319479184152442e-14}, /* L269 */
-{2.3706384313595015e+00, 7.1061212469913926e-14,
- 2.2204460492503131e-16, 7.4829031859735551e-14,
- 2.7089441800853820e-14}, /* L270 */
-{1.8302865443340426e+00, 5.5067062021407764e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-13,
- 1.1168843627729075e-13}, /* L271 */
-{2.5055533671591936e+00, 7.5661699128204418e-14,
- 2.2204460492503131e-16, -4.7850612361344247e-14,
- -5.4622972811557702e-14}, /* L272 */
-{2.9440701529688758e+00, 8.9230706157295003e-14,
- 2.2204460492503131e-16, 9.5479180117763462e-15,
- -1.4988010832439613e-14}, /* L273 */
-{2.3061487231025359e+00, 7.0152217368502079e-14,
- 2.2204460492503131e-16, -8.1046280797636427e-15,
- -6.4392935428259079e-15}, /* L274 */
-{2.1432148884910309e+00, 6.5433769513845164e-14,
- 2.2204460492503131e-16, -1.7652546091539989e-14,
- -1.6875389974302379e-14}, /* L275 */
-{2.4710526216759376e+00, 7.5717210279435676e-14,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- -1.4432899320127035e-14}, /* L276 */
-{2.1173611912338393e+00, 6.5114580394265431e-14,
- 2.2204460492503131e-16, -5.1580961724084773e-13,
- 4.9737991503207013e-13}, /* L277 */
-{3.3948365557848281e+00, 1.0477729794899915e-13,
- 2.2204460492503131e-16, 9.1926466438962962e-14,
- -3.0175861809311755e-13}, /* L278 */
-{2.5515626687022972e+00, 7.9034001565503331e-14,
- 2.2204460492503131e-16, -4.0079051188968151e-14,
- -2.1094237467877974e-15}, /* L279 */
-{2.6000401192288352e+00, 8.0824236192711396e-14,
- 2.2204460492503131e-16, -5.7953641885433171e-14,
- 2.2426505097428162e-14}, /* L280 */
-{2.0044793281633693e+00, 6.2533311862011942e-14,
- 2.2204460492503131e-16, 1.9539925233402755e-14,
- 1.4876988529977098e-14}, /* L281 */
-{2.1915231774196844e+00, 6.8611782921834674e-14,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- 1.6209256159527285e-14}, /* L282 */
-{2.5118817359524939e+00, 7.8920377177826850e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- 2.7866597918091429e-13}, /* L283 */
-{2.8415931422244336e+00, 8.9594998087250133e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- -1.0880185641326534e-14}, /* L284 */
-{2.1772265775735762e+00, 6.8889338677990963e-14,
- 2.2204460492503131e-16, 4.0856207306205761e-14,
- 4.1744385725905886e-14}, /* L285 */
-{2.0747697764228277e+00, 6.5877858723695226e-14,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 2.5535129566378600e-14}, /* L286 */
-{2.4651948329603628e+00, 7.8548278992229825e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -2.2204460492503131e-15}, /* L287 */
-{2.6523846769162907e+00, 8.4807161293554145e-14,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -1.7608137170554983e-13}, /* L288 */
-{2.5796245792999266e+00, 8.2767126485805420e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- -4.7739590058881731e-15}, /* L289 */
-{2.2965871610174102e+00, 7.3940853440035426e-14,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 4.4186876380081230e-14}, /* L290 */
-{3.0172286871317504e+00, 9.7477581562088744e-14,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- -2.8088642523016460e-14}, /* L291 */
-{2.3493513195358955e+00, 7.6161299489285739e-14,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- -8.3710816056736803e-14}, /* L292 */
-{2.4855332329075392e+00, 8.0851991768327025e-14,
- 2.2204460492503131e-16, -2.5646151868841116e-14,
- 6.6169292267659330e-14}, /* L293 */
-{2.1854078710168054e+00, 7.1331829332166308e-14,
- 2.2204460492503131e-16, -3.9301895071730542e-14,
- 4.0856207306205761e-14}, /* L294 */
-{2.4847841035078075e+00, 8.1379347705023974e-14,
- 2.2204460492503131e-16, 2.3314683517128287e-13,
- 8.4376949871511897e-13}, /* L295 */
-{2.5253768049952692e+00, 8.2989171090730451e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 5.9063864910058328e-14}, /* L296 */
-{2.4326974697532657e+00, 8.0213613529167560e-14,
- 2.2204460492503131e-16, 5.5289106626332796e-14,
- 1.0214051826551440e-14}, /* L297 */
-{2.8901452667593879e+00, 9.5617957995841607e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- -4.1178171983347056e-13}, /* L298 */
-{2.0744467249187619e+00, 6.8861583102375334e-14,
- 2.2204460492503131e-16, -1.3589129821411916e-13,
- 1.6120438317557273e-13}, /* L299 */
-{2.3400361073059397e+00, 7.7937656328685989e-14,
- 2.2204460492503131e-16, 2.4669155607170978e-13,
- -3.1974423109204508e-13}, /* L300 */
-{2.5830963361881962e+00, 8.6319840164605921e-14,
- 2.2204460492503131e-16, 2.0317081350640365e-13,
- 5.0182080713057076e-14}, /* L301 */
-{2.9884567086148417e+00, 1.0019762797242038e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-14,
- 7.6605388699135801e-14}, /* L302 */
-{2.8234759101307887e+00, 9.4979579756682142e-14,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- 7.3274719625260332e-15}, /* L303 */
-{2.5691185894716448e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- -3.7414515929867775e-14}, /* L304 */
-{2.7147959883004673e+00, 9.1926466438962962e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- 1.3988810110276972e-14}, /* L305 */
-{3.1699835540943191e+00, 1.0769163338864018e-13,
- 2.2204460492503131e-16, 1.5920598173124745e-12,
- 2.7056135110115065e-12}, /* L306 */
-{2.4234901637513886e+00, 8.2600593032111647e-14,
- 2.2204460492503131e-16, -1.3877787807814457e-13,
- -1.0513812043200232e-13}, /* L307 */
-{3.2955053958770213e+00, 1.1268763699945339e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- 6.6613381477509392e-14}, /* L308 */
-{1.9482501266817653e+00, 6.6835426082434424e-14,
- 2.2204460492503131e-16, -5.3623772089395061e-14,
- 9.5479180117763462e-15}, /* L309 */
-{3.2468242928097442e+00, 1.1174394742852201e-13,
- 2.2204460492503131e-16, -6.7390537594747002e-14,
- 4.0190073491430667e-14}, /* L310 */
-{2.3824724534280599e+00, 8.2260587230820192e-14,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- 2.6423307986078726e-14}, /* L311 */
-{3.2378304092011843e+00, 1.1215334216885253e-13,
- 2.2204460492503131e-16, 1.7652546091539989e-13,
- -4.4408920985006262e-15}, /* L312 */
-{2.9233677919579981e+00, 1.0158540675320182e-13,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- -2.6423307986078726e-14}, /* L313 */
-{2.7468576712818651e+00, 9.5756735873919752e-14,
- 2.2204460492503131e-16, -2.4447111002245947e-13,
- -2.6489921367556235e-13}, /* L314 */
-{2.5778175541075461e+00, 9.0150109599562711e-14,
- 2.2204460492503131e-16, 6.5059069243034173e-14,
- 1.4033219031261979e-13}, /* L315 */
-{3.0429662574816128e+00, 1.0675488271161271e-13,
- 2.2204460492503131e-16, 8.2822637637036678e-14,
- -2.6090241078691179e-14}, /* L316 */
-{3.4361728947717736e+00, 1.2093104295729518e-13,
- 2.2204460492503131e-16, -7.8270723236073536e-14,
- -6.7723604502134549e-15}, /* L317 */
-{3.2107413663930586e+00, 1.1335377081422848e-13,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- -6.1062266354383610e-15}, /* L318 */
-{2.1842029817618878e+00, 7.7354789240757782e-14,
- 2.2204460492503131e-16, -5.7176485768195562e-14,
- 3.5971225997855072e-14}, /* L319 */
-{2.8328562116367904e+00, 1.0064171718227044e-13,
- 2.2204460492503131e-16, -4.7184478546569153e-14,
- -4.2965631052993558e-14}, /* L320 */
-{2.1725413109845868e+00, 7.7424178179796854e-14,
- 2.2204460492503131e-16, 1.7963408538435033e-13,
- -5.5622173533720343e-14}, /* L321 */
-{2.6491091993585498e+00, 9.4702024000525853e-14,
- 2.2204460492503131e-16, -4.2077452633293433e-14,
- -6.4392935428259079e-14}, /* L322 */
-{2.3932257825233298e+00, 8.5820239803524601e-14,
- 2.2204460492503131e-16, -1.4599432773820809e-13,
- -1.6320278461989801e-14}, /* L323 */
-{2.7114615915716738e+00, 9.7533092713320002e-14,
- 2.2204460492503131e-16, -3.1452618287630685e-13,
- -8.4598994476436928e-14}, /* L324 */
-{2.5661934431215494e+00, 9.2592600253738055e-14,
- 2.2204460492503131e-16, -3.0642155479654321e-14,
- -2.9087843245179101e-14}, /* L325 */
-{3.0966735492714101e+00, 1.1207701433590955e-13,
- 2.2204460492503131e-16, -4.6074255521943996e-14,
- 2.8643754035329039e-14}, /* L326 */
-{2.8165572216074319e+00, 1.0225154056797692e-13,
- 2.2204460492503131e-16, 7.7271522513910895e-14,
- -2.0983215165415459e-14}, /* L327 */
-{2.3811343024345368e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.2818192607919627e-13,
- 1.2407852523210749e-12}, /* L328 */
-{3.1261880554436932e+00, 1.1418643808269735e-13,
- 2.2204460492503131e-16, 1.1901590823981678e-13,
- -8.5598195198599569e-14}, /* L329 */
-{2.9803490177876037e+00, 1.0919043447188415e-13,
- 2.2204460492503131e-16, 1.9451107391432743e-13,
- 2.6645352591003757e-14}, /* L330 */
-{2.9033680624911926e+00, 1.0669243266647754e-13,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- 5.7731597280508140e-15}, /* L331 */
-{2.5734583837660527e+00, 9.4854679666411812e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- -3.2640556923979602e-14}, /* L332 */
-{2.3003357950160876e+00, 8.5043083686286991e-14,
- 2.2204460492503131e-16, -5.9974247790250956e-13,
- -1.5408785358772548e-12}, /* L333 */
-{3.2178640236534202e+00, 1.1932121957158870e-13,
- 2.2204460492503131e-16, 2.7067237340361316e-13,
- 6.9499961341534799e-14}, /* L334 */
-{2.3860442799091652e+00, 8.8741514137069544e-14,
- 2.2204460492503131e-16, 1.1035616864774056e-13,
- 8.5043083686286991e-14}, /* L335 */
-{2.7664117340012329e+00, 1.0319523013890830e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -4.6518344731794059e-14}, /* L336 */
-{2.9926277793230089e+00, 1.1196599203344704e-13,
- 2.2204460492503131e-16, -7.2053474298172659e-14,
- 6.6835426082434424e-14}, /* L337 */
-{3.3603976357485146e+00, 1.2609878419223008e-13,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- 1.0658141036401503e-14}, /* L338 */
-{2.7441426377492357e+00, 1.0327849686575519e-13,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -5.9396931817445875e-14}, /* L339 */
-{3.1441661622755182e+00, 1.1868284133242923e-13,
- 2.2204460492503131e-16, -3.9046543776066756e-13,
- -5.3890225615305098e-13}, /* L340 */
-{3.2434518067538924e+00, 1.2279066652354231e-13,
- 2.2204460492503131e-16, 9.1260332624187868e-14,
- 1.0880185641326534e-13}, /* L341 */
-{2.6067653692004762e+00, 9.8976382645332706e-14,
- 2.2204460492503131e-16, 1.2434497875801753e-13,
- -4.9960036108132044e-15}, /* L342 */
-{2.4417286385449386e+00, 9.2981178312356860e-14,
- 2.2204460492503131e-16, -2.0705659409259169e-13,
- -7.6050277186823223e-14}, /* L343 */
-{3.1846421630322994e+00, 1.2162493234768590e-13,
- 2.2204460492503131e-16, -1.1912693054227930e-13,
- 5.1514348342607263e-14}, /* L344 */
-{2.8875445554904857e+00, 1.1059902993437731e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- -8.1046280797636427e-14}, /* L345 */
-{2.2717113536159981e+00, 8.7263529735537304e-14,
- 2.2204460492503131e-16, -2.0894397323445446e-13,
- -1.2523315717771766e-13}, /* L346 */
-{3.1725993862302042e+00, 1.2222167722342192e-13,
- 2.2204460492503131e-16, -3.8302694349567901e-14,
- -9.1038288019262836e-14}, /* L347 */
-{2.3351653424946766e+00, 9.0219498538601783e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 5.4622972811557702e-14}, /* L348 */
-{2.9599310592510539e+00, 1.1468603844377867e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- -1.1102230246251565e-15}, /* L349 */
-{2.8354008937587829e+00, 1.1017575740623897e-13,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -1.2501111257279263e-13}, /* L350 */
-{2.4786707251041862e+00, 9.6589403142388619e-14,
- 2.2204460492503131e-16, -2.9753977059954195e-14,
- 1.0658141036401503e-14}, /* L351 */
-{3.5341454417838407e+00, 1.3811174426336947e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- 2.7533531010703882e-14}, /* L352 */
-{3.3357455223285819e+00, 1.3072876114961218e-13,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -4.3631764867768652e-14}, /* L353 */
-{2.7232058615138919e+00, 1.0702549957386509e-13,
- 2.2204460492503131e-16, -7.6494366396673286e-14,
- -1.4421797089880783e-13}, /* L354 */
-{3.6444224314755376e+00, 1.4363510381087963e-13,
- 2.2204460492503131e-16, -3.8635761256955448e-14,
- -7.7204909132433386e-13}, /* L355 */
-{3.6638556914563796e+00, 1.4480777688063995e-13,
- 2.2204460492503131e-16, -1.2334577803585489e-13,
- -8.7485574340462335e-14}, /* L356 */
-{3.5112586613385370e+00, 1.3916645613676337e-13,
- 2.2204460492503131e-16, 1.0746958878371515e-13,
- -2.7533531010703882e-14}, /* L357 */
-{3.6145809134976128e+00, 1.4366285938649526e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -1.4543921622589551e-14}, /* L358 */
-{3.2897443548431258e+00, 1.3111733920823099e-13,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- -3.8413716652030416e-14}, /* L359 */
-{3.4507476902917014e+00, 1.3791745523406007e-13,
- 2.2204460492503131e-16, -9.6811447747313650e-14,
- 1.1768364061026659e-14}, /* L360 */
-{3.1524032129592596e+00, 1.2634338020234281e-13,
- 2.2204460492503131e-16, 1.8207657603852567e-14,
- -3.2085445411667024e-14}, /* L361 */
-{2.9627528982938327e+00, 1.1907141939104804e-13,
- 2.2204460492503131e-16, -2.2426505097428162e-14,
- 7.7715611723760958e-15}, /* L362 */
-{2.6646416670108106e+00, 1.0738632205686827e-13,
- 2.2204460492503131e-16, -4.3187675657918589e-14,
- 3.9301895071730542e-14}, /* L363 */
-{2.6976721202175087e+00, 1.0901696212428647e-13,
- 2.2204460492503131e-16, -3.0575542098176811e-13,
- 2.9642954757491680e-13}, /* L364 */
-{3.6199188698965954e+00, 1.4668821712859881e-13,
- 2.2204460492503131e-16, 5.2624571367232420e-14,
- 1.1679546219056647e-13}, /* L365 */
-{2.8531861018340021e+00, 1.1593503934648197e-13,
- 2.2204460492503131e-16, -1.1513012765362873e-13,
- -1.5731860258938468e-13}, /* L366 */
-{2.6281059473874890e+00, 1.0708101072509635e-13,
- 2.2204460492503131e-16, 6.3060667798708891e-14,
- 2.5313084961453569e-14}, /* L367 */
-{2.1032933238739719e+00, 8.5931262105987116e-14,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -7.3163697322797816e-14}, /* L368 */
-{3.9580556536744296e+00, 1.6214807274650411e-13,
- 2.2204460492503131e-16, 4.1078251911130792e-14,
- 4.8849813083506888e-15}, /* L369 */
-{2.8377127054925744e+00, 1.1656647869173753e-13,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- -1.1546319456101628e-14}, /* L370 */
-{3.0916919103834193e+00, 1.2734258092450546e-13,
- 2.2204460492503131e-16, 1.7275070263167436e-13,
- -1.6819878823071122e-13}, /* L371 */
-{2.8863012567365454e+00, 1.1920325837522228e-13,
- 2.2204460492503131e-16, -9.1038288019262836e-15,
- -2.1871393585115584e-14}, /* L372 */
-{3.9926889539717272e+00, 1.6533996394230144e-13,
- 2.2204460492503131e-16, -1.0269562977782698e-13,
- -2.2548629630136929e-13}, /* L373 */
-{3.5923849767677987e+00, 1.4916193280534173e-13,
- 2.2204460492503131e-16, 4.3181014319770838e-12,
- 4.3847148134545932e-12}, /* L374 */
-{2.8227102217479283e+00, 1.1751710715657282e-13,
- 2.2204460492503131e-16, -1.5165646516379638e-13,
- 3.1330493754921918e-13}, /* L375 */
-{3.0652068713280611e+00, 1.2795320358804929e-13,
- 2.2204460492503131e-16, 8.0491169285323849e-13,
- -1.0191847366058937e-13}, /* L376 */
-{3.6167666828897320e+00, 1.5137890940764009e-13,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- -5.0404125317982107e-14}, /* L377 */
-{2.5383989564505653e+00, 1.0652589921278377e-13,
- 2.2204460492503131e-16, -1.0846878950587779e-13,
- 4.5519144009631418e-14}, /* L378 */
-{3.6953076790956785e+00, 1.5548673459875317e-13,
- 2.2204460492503131e-16, 1.5054624213917123e-13,
- 6.3060667798708891e-14}, /* L379 */
-{3.4263686591469731e+00, 1.4455103780619538e-13,
- 2.2204460492503131e-16, -2.7644553313166398e-14,
- -2.4980018054066022e-14}, /* L380 */
-{2.7677592426084190e+00, 1.1707301794672276e-13,
- 2.2204460492503131e-16, -7.4162898044960457e-14,
- -3.3528735343679728e-14}, /* L381 */
-{3.2421886233238322e+00, 1.3750112159982564e-13,
- 2.2204460492503131e-16, 2.9087843245179101e-14,
- 2.2204460492503131e-14}, /* L382 */
-{3.2389453786807274e+00, 1.3772316620475067e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -3.7081449022480228e-14}, /* L383 */
-{3.1471762115440272e+00, 1.3417045252595017e-13,
- 2.2204460492503131e-16, -2.9176661087149114e-13,
- 1.4410694859634532e-13}, /* L384 */
-{3.2248794644351042e+00, 1.3784112740111709e-13,
- 2.2204460492503131e-16, -9.2148511043887993e-15,
- -1.8873791418627661e-15}, /* L385 */
-{3.5881294122341232e+00, 1.5376588891058418e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- -2.2759572004815709e-14}, /* L386 */
-{4.0880697869603182e+00, 1.7564422138960367e-13,
- 2.2204460492503131e-16, -1.7874590696465020e-14,
- -1.2656542480726785e-14}, /* L387 */
-{2.3428138735867621e+00, 1.0091927293842673e-13,
- 2.2204460492503131e-16, -6.0729199446996063e-14,
- 5.3290705182007514e-14}, /* L388 */
-{3.1192563712749029e+00, 1.3471168625045493e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 1.9095836023552692e-14}, /* L389 */
-{3.2231187023510404e+00, 1.3955503419538218e-13,
- 2.2204460492503131e-16, -2.3203661214665772e-14,
- 3.3750779948604759e-14}, /* L390 */
-{2.8913418264838899e+00, 1.2551071293387395e-13,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- 8.8817841970012523e-15}, /* L391 */
-{3.4356013734763642e+00, 1.4951798479878597e-13,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- 2.1516122217235534e-13}, /* L392 */
-{2.8079244380824604e+00, 1.2251311076738602e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-15,
- -1.1768364061026659e-14}, /* L393 */
-{2.6040946689567552e+00, 1.1390888232654106e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-13,
- -2.7056135110115065e-13}, /* L394 */
-{3.2696626357560667e+00, 1.4338530363033897e-13,
- 2.2204460492503131e-16, 2.5313084961453569e-13,
- -9.2259533346350509e-14}, /* L395 */
-{2.5404369704987446e+00, 1.1168843627729075e-13,
- 2.2204460492503131e-16, -3.9890313274781874e-13,
- 2.1183055309847987e-13}, /* L396 */
-{3.3382044801270125e+00, 1.4713230633844887e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -4.9404924595819466e-14}, /* L397 */
-{3.3367266689881960e+00, 1.4743761767022079e-13,
- 2.2204460492503131e-16, -1.2156942119645464e-13,
- 9.1482377229112899e-14}, /* L398 */
-{2.9060527069382203e+00, 1.2873035970528690e-13,
- 2.2204460492503131e-16, -1.9650947535865271e-14,
- -3.3750779948604759e-14}, /* L399 */
-{3.1037902324932563e+00, 1.3783418850721318e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 1.0658141036401503e-14}, /* L400 */
-{2.2918002807414077e+00, 1.0202949596305189e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- -2.2426505097428162e-14}, /* L401 */
-{2.7114001959377214e+00, 1.2101084023719011e-13,
- 2.2204460492503131e-16, 1.0458300891968975e-13,
- 7.5939254884360707e-14}, /* L402 */
-{3.1642671549181589e+00, 1.4157425232141918e-13,
- 2.2204460492503131e-16, -3.0420110874729289e-14,
- -1.1002310174035301e-13}, /* L403 */
-{2.7840612091019641e+00, 1.2487233469471448e-13,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.3833378886829450e-13}, /* L404 */
-{2.4778014121699443e+00, 1.1141088052113446e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- -5.0959236830294685e-14}, /* L405 */
-{3.4242937462090168e+00, 1.5434875599851239e-13,
- 2.2204460492503131e-16, -4.5075054799781356e-14,
- 3.1530333899354446e-14}, /* L406 */
-{3.6161278583588374e+00, 1.6339707364920741e-13,
- 2.2204460492503131e-16, -1.3278267374516872e-13,
- -2.6312285683616210e-14}, /* L407 */
-{3.5331219358110206e+00, 1.6003864899971632e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -3.5527136788005009e-14}, /* L408 */
-{3.8447799495362971e+00, 1.7458257062230587e-13,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- 6.1728400169158704e-14}, /* L409 */
-{3.2597871908858598e+00, 1.4838130724115217e-13,
- 2.2204460492503131e-16, -1.2301271112846734e-13,
- 9.4591001698063337e-14}, /* L410 */
-{4.3856866015218285e+00, 2.0011770018868447e-13,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- 3.9523939676655573e-14}, /* L411 */
-{3.2342541507519655e+00, 1.4793721803130211e-13,
- 2.2204460492503131e-16, -8.3155704544424225e-14,
- 8.6153306710912148e-14}, /* L412 */
-{3.9806675093611261e+00, 1.8252066524837574e-13,
- 2.2204460492503131e-16, 4.9071857688431919e-14,
- -1.8984813721090177e-14}, /* L413 */
-{4.2234702370620925e+00, 1.9412249585570862e-13,
- 2.2204460492503131e-16, -1.2656542480726785e-13,
- 1.5543122344752192e-15}, /* L414 */
-{2.9927996310147980e+00, 1.3788969965844444e-13,
- 2.2204460492503131e-16, -2.1871393585115584e-14,
- 5.9507954119908391e-14}, /* L415 */
-{2.7470213946415964e+00, 1.2687073613903976e-13,
- 2.2204460492503131e-16, -6.2394533983933798e-14,
- -2.5424107263916085e-14}, /* L416 */
-{2.7605928785454235e+00, 1.2780401736911529e-13,
- 2.2204460492503131e-16, 1.6231460620019789e-13,
- -6.5170091545496689e-13}, /* L417 */
-{3.4342432836792303e+00, 1.5937251518494122e-13,
- 2.2204460492503131e-16, 4.6740389336719090e-13,
- 3.1974423109204508e-14}, /* L418 */
-{3.6515861431314938e+00, 1.6986412276764895e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -9.1038288019262836e-14}, /* L419 */
-{4.1205750181967931e+00, 1.9213797219919115e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- 4.0190073491430667e-14}, /* L420 */
-{3.2720027062803396e+00, 1.5293322164211531e-13,
- 2.2204460492503131e-16, 2.1027624086400465e-13,
- 1.7985612998927536e-14}, /* L421 */
-{3.0509769688990485e+00, 1.4294121442048890e-13,
- 2.2204460492503131e-16, -7.3163697322797816e-14,
- -3.7747582837255322e-15}, /* L422 */
-{2.8658665794324758e+00, 1.3458678616018460e-13,
- 2.2204460492503131e-16, -3.2640556923979602e-14,
- -7.5495165674510645e-15}, /* L423 */
-{3.1321053471373599e+00, 1.4743761767022079e-13,
- 2.2204460492503131e-16, -2.0161650127192843e-13,
- -1.0125233984581428e-13}, /* L424 */
-{3.3532994485245857e+00, 1.5822217667993410e-13,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- -6.3282712403633923e-14}, /* L425 */
-{2.9343002891529362e+00, 1.3877787807814457e-13,
- 2.2204460492503131e-16, 2.0583534876550402e-13,
- 3.1441516057384433e-13}, /* L426 */
-{4.0036608468101891e+00, 1.8979783023009844e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -1.3322676295501878e-15}, /* L427 */
-{3.7219981189256077e+00, 1.7685852782278744e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -1.6397994073713562e-13}, /* L428 */
-{3.5347073752991163e+00, 1.6835144389659717e-13,
- 2.2204460492503131e-16, -6.8922645368729718e-13,
- -1.2156942119645464e-13}, /* L429 */
-{4.0817976549650865e+00, 1.9486148805647474e-13,
- 2.2204460492503131e-16, -2.7755575615628914e-15,
- 2.4424906541753444e-15}, /* L430 */
-{3.0754353673778034e+00, 1.4716006191406450e-13,
- 2.2204460492503131e-16, 8.2600593032111647e-14,
- 1.4077627952246985e-13}, /* L431 */
-{3.4016528168757301e+00, 1.6314727346866675e-13,
- 2.2204460492503131e-16, 4.0190073491430667e-14,
- -1.1435297153639112e-14}, /* L432 */
-{3.4850216943699266e+00, 1.6753265441593612e-13,
- 2.2204460492503131e-16, -1.7752466163756253e-13,
- 7.2608585810485238e-14}, /* L433 */
-{2.8156950601400310e+00, 1.3566925360919413e-13,
- 2.2204460492503131e-16, -6.5281113847959205e-14,
- -1.4876988529977098e-14}, /* L434 */
-{3.3195718934650320e+00, 1.6031620475587260e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 2.5979218776228663e-14}, /* L435 */
-{3.7787057677774731e+00, 1.8290924330699454e-13,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- -1.6431300764452317e-14}, /* L436 */
-{2.6693618460217481e+00, 1.2950751582252451e-13,
- 2.2204460492503131e-16, 3.5305092183079978e-14,
- -6.3615779311021470e-14}, /* L437 */
-{2.6920918884367149e+00, 1.3090917239111377e-13,
- 2.2204460492503131e-16, 2.8266278206956486e-13,
- 3.7525538232330291e-14}, /* L438 */
-{2.7449008973700058e+00, 1.3378187446733136e-13,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- -1.9428902930940239e-14}, /* L439 */
-{3.5079880062308026e+00, 1.7136292385089291e-13,
- 2.2204460492503131e-16, 3.4261482539932331e-13,
- -6.2172489379008766e-15}, /* L440 */
-{3.7472012753821651e+00, 1.8346435481930712e-13,
- 2.2204460492503131e-16, -2.3980817331903381e-14,
- 1.3256062914024369e-13}, /* L441 */
-{3.3811125673252298e+00, 1.6591589213632574e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- 9.5479180117763462e-15}, /* L442 */
-{3.2844557078589083e+00, 1.6153745008296028e-13,
- 2.2204460492503131e-16, -1.9761969838327786e-14,
- 5.4622972811557702e-14}, /* L443 */
-{2.9069815569300879e+00, 1.4329509800958817e-13,
- 2.2204460492503131e-16, -3.6082248300317588e-14,
- 1.3788969965844444e-13}, /* L444 */
-{4.7225169556169897e+00, 2.3331336862497665e-13,
- 2.2204460492503131e-16, 8.5487172896137054e-14,
- -6.2838623193783860e-14}, /* L445 */
-{3.7023895751587452e+00, 1.8332557694122897e-13,
- 2.2204460492503131e-16, -7.0721206668622472e-14,
- -5.9729998724833422e-14}, /* L446 */
-{4.4832642399132503e+00, 2.2248869413488137e-13,
- 2.2204460492503131e-16, 5.9352522896460869e-13,
- -5.6610272025636732e-13}, /* L447 */
-{3.0669935400880073e+00, 1.5254464358349651e-13,
- 2.2204460492503131e-16, -2.0095036745715333e-14,
- 2.5535129566378600e-14}, /* L448 */
-{3.6812711938101201e+00, 1.8350598818273056e-13,
- 2.2204460492503131e-16, 1.4499512701604544e-13,
- 8.5043083686286991e-14}, /* L449 */
-{3.3222539113851779e+00, 1.6597834218146090e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- 2.2870594307278225e-14}, /* L450 */
-{3.1308502625803554e+00, 1.5676349107707210e-13,
- 2.2204460492503131e-16, -1.2756462552943049e-13,
- 5.2402526762307389e-14}, /* L451 */
-{3.2686982137223382e+00, 1.6402851299446297e-13,
- 2.2204460492503131e-16, -6.3171690101171407e-14,
- 7.3496764230185363e-14}, /* L452 */
-{3.4260812446364239e+00, 1.7230661342182430e-13,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- -5.7731597280508140e-15}, /* L453 */
-{3.0629422113247657e+00, 1.5438345046803192e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- 7.0832228971084987e-14}, /* L454 */
-{4.1923476808188722e+00, 2.1177504194724861e-13,
- 2.2204460492503131e-16, 5.9285909514983359e-14,
- -7.2053474298172659e-14}, /* L455 */
-{2.9528790430907952e+00, 1.4949153026577733e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- -5.9396931817445875e-14}, /* L456 */
-{4.0208260986315665e+00, 2.0400348077487251e-13,
- 2.2204460492503131e-16, -2.1538326677728037e-14,
- 4.2188474935755949e-14}, /* L457 */
-{2.9983910454268035e+00, 1.5246137685664962e-13,
- 2.2204460492503131e-16, -6.6613381477509392e-15,
- 5.7065463465733046e-14}, /* L458 */
-{4.1209543402083426e+00, 2.0999868510784836e-13,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -5.6288307348495437e-14}, /* L459 */
-{4.4978689896627992e+00, 2.2970514379494489e-13,
- 2.2204460492503131e-16, -3.0420110874729289e-13,
- 5.8086868648388190e-13}, /* L460 */
-{2.6377691949424693e+00, 1.3500311979441904e-13,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- -5.6621374255882984e-15}, /* L461 */
-{4.1098876868157053e+00, 2.1080359680070160e-13,
- 2.2204460492503131e-16, -7.5273121069585613e-14,
- -1.6842083283563625e-13}, /* L462 */
-{3.5587542473853002e+00, 1.8293005998870626e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- 9.1038288019262836e-15}, /* L463 */
-{2.6984362992440358e+00, 1.3900686157697351e-13,
- 2.2204460492503131e-16, -9.1393559387142886e-13,
- -8.1934459217336553e-13}, /* L464 */
-{3.7180462170973718e+00, 1.9194368316988175e-13,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- 9.5479180117763462e-15}, /* L465 */
-{3.6073305456916316e+00, 1.8662849043948881e-13,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -5.0959236830294685e-14}, /* L466 */
-{4.2398691355818441e+00, 2.1982415887578100e-13,
- 2.2204460492503131e-16, 2.1738166822160565e-13,
- -1.8807178037150152e-13}, /* L467 */
-{4.0983296900140092e+00, 2.1294077612310502e-13,
- 2.2204460492503131e-16, -1.8496315590255108e-13,
- 1.6742163211347361e-13}, /* L468 */
-{4.6173148309524361e+00, 2.4041879598257765e-13,
- 2.2204460492503131e-16, 1.8496315590255108e-13,
- 7.8381745538536052e-14}, /* L469 */
-{3.8223768850940956e+00, 1.9945156637390937e-13,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- 2.1538326677728037e-14}, /* L470 */
-{2.9931283374943698e+00, 1.5651369089653144e-13,
- 2.2204460492503131e-16, 5.3468340865947539e-13,
- -2.2715163083830703e-13}, /* L471 */
-{3.3652333703068122e+00, 1.7634504967389830e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- -9.9920072216264089e-16}, /* L472 */
-{3.9281558617627979e+00, 2.0627943797535409e-13,
- 2.2204460492503131e-16, -1.5920598173124745e-13,
- 1.9251267247000214e-13}, /* L473 */
-{4.0902288878736259e+00, 2.1524448889920222e-13,
- 2.2204460492503131e-16, -4.5630166312093934e-14,
- -4.8072656966269278e-14}, /* L474 */
-{3.1484510839815445e+00, 1.6603385333269216e-13,
- 2.2204460492503131e-16, -8.3488771451811772e-14,
- 2.7977620220553945e-14}, /* L475 */
-{3.2379510530979623e+00, 1.7111312367035225e-13,
- 2.2204460492503131e-16, 7.8581585682968580e-13,
- -1.4657164371101317e-12}, /* L476 */
-{3.7033896223016911e+00, 1.9612089730003390e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-14,
- 4.6407322429331543e-14}, /* L477 */
-{2.9404046159472892e+00, 1.5604184611106575e-13,
- 2.2204460492503131e-16, -2.1593837828959295e-13,
- 1.0391687510491465e-13}, /* L478 */
-{4.3502502629243827e+00, 2.3134272275626699e-13,
- 2.2204460492503131e-16, -1.3589129821411916e-13,
- 1.0147438445073931e-13}, /* L479 */
-{3.2906563877714197e+00, 1.7535972673954348e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-14,
- 4.2188474935755949e-14}, /* L480 */
-{3.6060635022919021e+00, 1.9256818362123340e-13,
- 2.2204460492503131e-16, -6.4892535789340400e-13,
- 8.2822637637036678e-13}, /* L481 */
-{3.5954699798673833e+00, 1.9240165016753963e-13,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- -1.8374191057546341e-13}, /* L482 */
-{4.0621505478743352e+00, 2.1782575743145571e-13,
- 2.2204460492503131e-16, -5.3734794391857577e-14,
- -5.6621374255882984e-14}, /* L483 */
-{4.2218894438472043e+00, 2.2686019729434292e-13,
- 2.2204460492503131e-16, -9.9698027611339057e-14,
- -6.6280314570121845e-14}, /* L484 */
-{3.5518380027505194e+00, 1.9124979377949103e-13,
- 2.2204460492503131e-16, -5.2957638274619967e-14,
- 6.4392935428259079e-14}, /* L485 */
-{5.5710407934319894e+00, 3.0059288391726113e-13,
- 2.2204460492503131e-16, -2.6312285683616210e-14,
- 7.5495165674510645e-15}, /* L486 */
-{3.3485945687482519e+00, 1.8104961974074740e-13,
- 2.2204460492503131e-16, 4.1966430330830917e-14,
- 2.0428103653102880e-14}, /* L487 */
-{3.5481895819436158e+00, 1.9223511671384585e-13,
- 2.2204460492503131e-16, 2.0228263508670352e-13,
- -2.6578739209526248e-13}, /* L488 */
-{3.6318086704658814e+00, 1.9716867027952389e-13,
- 2.2204460492503131e-16, -6.7723604502134549e-14,
- 5.6177285046032921e-14}, /* L489 */
-{3.9439151698700874e+00, 2.1455059950881150e-13,
- 2.2204460492503131e-16, -4.9737991503207013e-14,
- 1.8429702208777599e-14}, /* L490 */
-{3.2423934528758043e+00, 1.7674750552032492e-13,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 5.7731597280508140e-15}, /* L491 */
-{3.5584689016346811e+00, 1.9437229603624928e-13,
- 2.2204460492503131e-16, 5.7531757136075612e-13,
- -2.8688162956314045e-13}, /* L492 */
-{4.0091660302878411e+00, 2.1943558081716219e-13,
- 2.2204460492503131e-16, -9.3480778673438181e-14,
- 1.1146639167236572e-13}, /* L493 */
-{4.4038881601236666e+00, 2.4152901900720281e-13,
- 2.2204460492503131e-16, -1.6187051699034782e-13,
- 1.6564527527407336e-13}, /* L494 */
-{3.7475104929274150e+00, 2.0594637106796654e-13,
- 2.2204460492503131e-16, 3.6637359812630166e-14,
- -4.5519144009631418e-15}, /* L495 */
-{3.7994314019880351e+00, 2.0922152899061075e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 3.5305092183079978e-14}, /* L496 */
-{5.2745724440579584e+00, 2.9103802701158088e-13,
- 2.2204460492503131e-16, -9.7033492352238682e-14,
- -4.5519144009631418e-15}, /* L497 */
-{3.8815631285252312e+00, 2.1460611066004276e-13,
- 2.2204460492503131e-16, -4.3298697960381105e-14,
- -1.6875389974302379e-14}, /* L498 */
-{2.8667608113945451e+00, 1.5881740367262864e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 2.3980817331903381e-14}, /* L499 */
-{3.6490348061458717e+00, 2.0256019084285981e-13,
- 2.2204460492503131e-16, -1.2634338020234281e-13,
- 9.2814644858663087e-14}, /* L500 */
-{3.9581215866889532e+00, 2.2015722578316854e-13,
- 2.2204460492503131e-16, 2.7111646261346323e-13,
- -2.8588242884097781e-13}, /* L501 */
-{3.4910691559654201e+00, 1.9456658506555868e-13,
- 2.2204460492503131e-16, 1.0436096431476471e-13,
- 5.7154281307703059e-13}, /* L502 */
-{3.7845788425529832e+00, 2.1134483052520636e-13,
- 2.2204460492503131e-16, -1.4570566975180554e-12,
- -1.6442402994698568e-13}, /* L503 */
-{3.1032042029420688e+00, 1.7363888105137448e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 1.9984014443252818e-14}, /* L504 */
-{3.5480536449231250e+00, 1.9892421043721242e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -5.4400928206632670e-15}, /* L505 */
-{4.5573557230861050e+00, 2.5601742947856110e-13,
- 2.2204460492503131e-16, 4.1389114358025836e-13,
- -2.7977620220553945e-14}, /* L506 */
-{4.1371203295775203e+00, 2.3286927941512658e-13,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- 6.7501559897209518e-14}, /* L507 */
-{4.3248444019275958e+00, 2.4391599851014689e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- -4.7928327973068008e-13}, /* L508 */
-{4.3831459341647898e+00, 2.4769075679387242e-13,
- 2.2204460492503131e-16, -3.0975222387041867e-14,
- 2.1049828546892968e-13}, /* L509 */
-{3.5363082407130602e+00, 2.0022872249114698e-13,
- 2.2204460492503131e-16, -1.5110135365148381e-13,
- 0.0000000000000000e+00}, /* L510 */
-{3.5440651160528507e+00, 2.0106138975961585e-13,
- 2.2204460492503131e-16, -9.5257135512838431e-14,
- 3.7081449022480228e-14}, /* L511 */
-{3.4482750787088032e+00, 1.9600987499757139e-13,
- 2.2204460492503131e-16, -1.0569323194431490e-13,
- 3.0486724256206799e-13}, /* L512 */
-{4.1048149820437674e+00, 2.3378521341044234e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -5.0737192225369654e-14}, /* L513 */
-{4.1089886097355457e+00, 2.3447910280083306e-13,
- 2.2204460492503131e-16, -1.2445600106048005e-13,
- -7.2164496600635175e-14}, /* L514 */
-{3.5738204964842240e+00, 2.0433654768226006e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- -3.9301895071730542e-14}, /* L515 */
-{4.7948616270350248e+00, 2.7468305408007154e-13,
- 2.2204460492503131e-16, -5.1958437552457326e-14,
- -2.2204460492503131e-16}, /* L516 */
-{3.4917850061108600e+00, 2.0042301152045638e-13,
- 2.2204460492503131e-16, 1.4210854715202004e-14,
- -1.0591527654923993e-13}, /* L517 */
-{3.5415113789739983e+00, 2.0367041386748497e-13,
- 2.2204460492503131e-16, 7.1054273576010019e-14,
- -2.2426505097428162e-14}, /* L518 */
-{5.5915309797948725e+00, 3.2218672174622043e-13,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.4876988529977098e-14}, /* L519 */
-{4.2031316313108409e+00, 2.4265311981963578e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 1.0014211682118912e-13}, /* L520 */
-{3.5383932984609978e+00, 2.0466961458964761e-13,
- 2.2204460492503131e-16, 8.2978068860484200e-13,
- -3.2096547641913276e-13}, /* L521 */
-{4.4238575542643650e+00, 2.5637825196156427e-13,
- 2.2204460492503131e-16, -3.6970426720017713e-14,
- 4.2854608750531042e-14}, /* L522 */
-{3.6540449619535385e+00, 2.1217055889977132e-13,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- -4.6296300126869028e-14}, /* L523 */
-{4.2576403050934264e+00, 2.4769075679387242e-13,
- 2.2204460492503131e-16, 2.5801583092288638e-13,
- -1.1635137298071641e-13}, /* L524 */
-{4.5695310189025147e+00, 2.6634250360757505e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- -4.2699177527083521e-13}, /* L525 */
-{3.4539027876491226e+00, 2.0169976799877531e-13,
- 2.2204460492503131e-16, -5.4511950509095186e-14,
- -1.0880185641326534e-14}, /* L526 */
-{2.8842550248924392e+00, 1.6875389974302379e-13,
- 2.2204460492503131e-16, -1.3045120539345589e-13,
- -4.4186876380081230e-14}, /* L527 */
-{2.6875042400933435e+00, 1.5754064719430971e-13,
- 2.2204460492503131e-16, -1.3000711618360583e-13,
- -1.3233858453531866e-13}, /* L528 */
-{2.8705149258070182e+00, 1.6858736628933002e-13,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- 2.6445512446571229e-13}, /* L529 */
-{6.1905758046478176e+00, 3.6426417437951386e-13,
- 2.2204460492503131e-16, 3.6259883984257613e-13,
- 5.8775206923655787e-13}, /* L530 */
-{4.5357887003770578e+00, 2.6739721548096895e-13,
- 2.2204460492503131e-16, 3.5278446830488974e-12,
- 2.5850432905372145e-12}, /* L531 */
-{4.4924882908376471e+00, 2.6534330288541241e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-14,
- -2.1316282072803006e-14}, /* L532 */
-{3.8780548988759556e+00, 2.2948309919001986e-13,
- 2.2204460492503131e-16, -6.5515370906155113e-12,
- -1.9999557565597570e-12}, /* L533 */
-{4.1001937348218798e+00, 2.4308333124167802e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-14,
- 1.5809575870662229e-13}, /* L534 */
-{3.8168284517442164e+00, 2.2670754162845697e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- 1.3744561044859438e-13}, /* L535 */
-{3.3936620706212892e+00, 2.0194956817931597e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -2.0095036745715333e-14}, /* L536 */
-{5.8512662148179100e+00, 3.4884595212503200e-13,
- 2.2204460492503131e-16, 2.3758772726978350e-13,
- -3.0409008644483038e-13}, /* L537 */
-{3.9429662580208169e+00, 2.3551299799251524e-13,
- 2.2204460492503131e-16, -1.5099033134902129e-14,
- -1.1202150318467829e-13}, /* L538 */
-{4.6011204317618626e+00, 2.7533531010703882e-13,
- 2.2204460492503131e-16, 2.4202861936828413e-14,
- -3.6304292905242619e-14}, /* L539 */
-{2.8611156251133827e+00, 1.7152945730458669e-13,
- 2.2204460492503131e-16, 7.2164496600635175e-14,
- 2.8643754035329039e-14}, /* L540 */
-{3.4253750900061335e+00, 2.0573820425084932e-13,
- 2.2204460492503131e-16, -2.2981616609740740e-14,
- 1.6431300764452317e-14}, /* L541 */
-{3.9704859690604652e+00, 2.3891999489933369e-13,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- 4.0190073491430667e-14}, /* L542 */
-{3.9539657225365192e+00, 2.3836488338702111e-13,
- 2.2204460492503131e-16, -8.4987572535055733e-13,
- 8.2667206413589156e-13}, /* L543 */
-{4.6378749642641965e+00, 2.8010926911292700e-13,
- 2.2204460492503131e-16, 5.8997251528580819e-13,
- -3.4339198151656092e-13}, /* L544 */
-{3.3651429238880635e+00, 2.0361490271625371e-13,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- -3.6404212977458883e-13}, /* L545 */
-{4.3910325687893002e+00, 2.6617597015388128e-13,
- 2.2204460492503131e-16, 4.0412118096355698e-14,
- 2.8865798640254070e-14}, /* L546 */
-{4.3226759241209765e+00, 2.6251223417261826e-13,
- 2.2204460492503131e-16, -9.7033492352238682e-14,
- -4.2077452633293433e-14}, /* L547 */
-{3.7408818144226443e+00, 2.2759572004815709e-13,
- 2.2204460492503131e-16, -1.2267964422107980e-13,
- 3.4283687000424834e-13}, /* L548 */
-{5.8852551868468721e+00, 3.5871305925638808e-13,
- 2.2204460492503131e-16, 1.3766765505351941e-13,
- -1.8540724511240114e-13}, /* L549 */
-{3.4245508574836867e+00, 2.0911050668814823e-13,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 3.1752378504279477e-14}, /* L550 */
-{4.5471941069898625e+00, 2.7816637881983297e-13,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -1.1879386363489175e-13}, /* L551 */
-{4.2056225772699012e+00, 2.5773827516673009e-13,
- 2.2204460492503131e-16, -4.9849013805669529e-14,
- 5.9952043329758453e-14}, /* L552 */
-{3.2875277907270548e+00, 2.0183854587685346e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-15,
- -4.3409720262843621e-13}, /* L553 */
-{4.1417032852955611e+00, 2.5474067300024217e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- 2.6645352591003757e-14}, /* L554 */
-{3.6833391445634125e+00, 2.2695734180899763e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- 1.3899992268306960e-13}, /* L555 */
-{4.3682622875204240e+00, 2.6964541710583489e-13,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- -6.9722005946459831e-14}, /* L556 */
-{4.5152674469234402e+00, 2.7922109069322687e-13,
- 2.2204460492503131e-16, 3.2507330161024584e-13,
- -4.4464432136237519e-13}, /* L557 */
-{5.4617021653525271e+00, 3.3835434454232427e-13,
- 2.2204460492503131e-16, 3.7525538232330291e-14,
- -5.4845017416482733e-14}, /* L558 */
-{4.7701327494863746e+00, 2.9604096951629799e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-14,
- 5.9952043329758453e-15}, /* L559 */
-{3.5267912785288869e+00, 2.1926904736346842e-13,
- 2.2204460492503131e-16, -2.1027624086400465e-13,
- -2.7866597918091429e-14}, /* L560 */
-{4.1343648115858072e+00, 2.5750235277399725e-13,
- 2.2204460492503131e-16, 9.0594198809412774e-14,
- -1.5987211554602254e-13}, /* L561 */
-{4.2958252828921033e+00, 2.6803559372012842e-13,
- 2.2204460492503131e-16, -1.1401990462900358e-13,
- 2.1138646388862981e-13}, /* L562 */
-{3.4689219915929117e+00, 2.1682655670929307e-13,
- 2.2204460492503131e-16, -1.3089529460330596e-13,
- 1.0480505352461478e-13}, /* L563 */
-{4.5077365001846319e+00, 2.8225859149966226e-13,
- 2.2204460492503131e-16, -1.2645440250480533e-13,
- -1.5198953207118393e-13}, /* L564 */
-{3.4761116789720798e+00, 2.1804780203638074e-13,
- 2.2204460492503131e-16, -1.6986412276764895e-13,
- -3.7958525211934102e-13}, /* L565 */
-{4.8957674413758507e+00, 3.0764280012363088e-13,
- 2.2204460492503131e-16, -1.3622436512150671e-13,
- -5.1769699638271049e-13}, /* L566 */
-{4.0467435979766533e+00, 2.5474067300024217e-13,
- 2.2204460492503131e-16, 2.0983215165415459e-13,
- -1.8474111129762605e-13}, /* L567 */
-{3.3292306046620355e+00, 2.0994317395661710e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 1.7719159473017498e-13}, /* L568 */
-{4.8400779349895799e+00, 3.0575542098176811e-13,
- 2.2204460492503131e-16, -4.2466030691912238e-13,
- 1.9007018181582680e-13}, /* L569 */
-{4.2587786489285850e+00, 2.6950663922775675e-13,
- 2.2204460492503131e-16, -1.5953904863863499e-13,
- -2.4868995751603507e-14}, /* L570 */
-{4.2548228249490370e+00, 2.6972868383268178e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-14,
- -3.4416913763379853e-15}, /* L571 */
-{4.3138179947530322e+00, 2.7394753132625738e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- 5.2846615972157451e-14}, /* L572 */
-{3.1963401214141882e+00, 2.0333734696009742e-13,
- 2.2204460492503131e-16, 1.1977085989656189e-12,
- 2.1693757901175559e-13}, /* L573 */
-{4.7064534184307902e+00, 2.9992675010248604e-13,
- 2.2204460492503131e-16, 1.3433698597964394e-13,
- -2.9731772599461692e-13}, /* L574 */
-{3.5582664834680315e+00, 2.2715163083830703e-13,
- 2.2204460492503131e-16, -3.4416913763379853e-14,
- 4.6185277824406512e-14}, /* L575 */
-{4.9314313914632564e+00, 3.1535885014477572e-13,
- 2.2204460492503131e-16, -2.9420910152566648e-14,
- -6.5503158452884236e-15}, /* L576 */
-{3.6863143081202274e+00, 2.3614443733777080e-13,
- 2.2204460492503131e-16, -4.9638071430990749e-13,
- -6.8189898172477115e-13}, /* L577 */
-{5.8918778077122651e+00, 3.7808645103609706e-13,
- 2.2204460492503131e-16, 2.7691182680200654e-12,
- 1.5742962489184720e-12}, /* L578 */
-{4.6865358913905313e+00, 3.0125901773203623e-13,
- 2.2204460492503131e-16, -9.6034291630076041e-14,
- 3.1308289294429414e-14}, /* L579 */
-{3.4931089593791089e+00, 2.2493118478905672e-13,
- 2.2204460492503131e-16, 1.2168044349891716e-13,
- -1.8984813721090177e-14}, /* L580 */
-{3.4965093890993519e+00, 2.2553833800564860e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.5723867480564877e-13}, /* L581 */
-{4.1709687798798241e+00, 2.6950663922775675e-13,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- 5.8841820305133297e-14}, /* L582 */
-{4.3404871224539709e+00, 2.8094193638139586e-13,
- 2.2204460492503131e-16, -6.8578476231095920e-13,
- -5.3224091800530005e-13}, /* L583 */
-{4.4422159126112470e+00, 2.8801960816338124e-13,
- 2.2204460492503131e-16, 7.9625195326116227e-13,
- 1.3131717935266352e-12}, /* L584 */
-{4.4299215190316472e+00, 2.8771429683160932e-13,
- 2.2204460492503131e-16, -6.6169292267659330e-14,
- 3.5837999234900053e-13}, /* L585 */
-{4.5232579896181191e+00, 2.9427849046470556e-13,
- 2.2204460492503131e-16, 1.1235457009206584e-13,
- -9.3924867883288243e-14}, /* L586 */
-{4.6192577137269257e+00, 3.0103697312711120e-13,
- 2.2204460492503131e-16, 3.4727776210274897e-13,
- -1.4810375148499588e-13}, /* L587 */
-{4.8469464225722128e+00, 3.1641356201816961e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- 2.4202861936828413e-14}, /* L588 */
-{4.2921332572966966e+00, 2.8067131951914348e-13,
- 2.2204460492503131e-16, 3.9102054927298013e-13,
- -5.7398530373120593e-14}, /* L589 */
-{3.2113398123167580e+00, 2.1035256869694763e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 4.3964831775156199e-14}, /* L590 */
-{4.8781802851724940e+00, 3.2007729799943263e-13,
- 2.2204460492503131e-16, 5.4622972811557702e-14,
- 4.7295500849031669e-14}, /* L591 */
-{5.3674071168447686e+00, 3.5277336607464349e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 5.5733195836182858e-14}, /* L592 */
-{4.3692627956081189e+00, 2.8765531623342611e-13,
- 2.2204460492503131e-16, -7.1054273576010019e-14,
- 3.6193270602780103e-14}, /* L593 */
-{3.8089285682960532e+00, 2.5118795932144167e-13,
- 2.2204460492503131e-16, 1.0857981180834031e-13,
- -4.2188474935755949e-15}, /* L594 */
-{5.1588316685347717e+00, 3.4078295740869180e-13,
- 2.2204460492503131e-16, -3.9146463848283020e-13,
- -3.6382008516966380e-13}, /* L595 */
-{5.3028607153457576e+00, 3.5088598693278072e-13,
- 2.2204460492503131e-16, 3.6237679523765109e-13,
- -6.1373128801278654e-13}, /* L596 */
-{5.3714490105762254e+00, 3.5602076842167207e-13,
- 2.2204460492503131e-16, 1.0740297540223764e-12,
- 4.6274095666376525e-13}, /* L597 */
-{5.2031854666274162e+00, 3.4544589411211746e-13,
- 2.2204460492503131e-16, -1.1812772982011666e-13,
- 1.1635137298071641e-13}, /* L598 */
-{4.2015926055086226e+00, 2.7941537972253627e-13,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- 4.2188474935755949e-15}, /* L599 */
-{4.7225074506925866e+00, 3.1458169402753811e-13,
- 2.2204460492503131e-16, 3.7112535267169733e-12,
- 4.2388315080188477e-13}, /* L600 */
-{4.4700569692449239e+00, 2.9826141556554830e-13,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- 1.3988810110276972e-13}, /* L601 */
-{4.2234285902430830e+00, 2.8227420401094605e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -2.6711965972481266e-13}, /* L602 */
-{3.8620500399823783e+00, 2.5855012575348724e-13,
- 2.2204460492503131e-16, 2.9303226511956382e-12,
- -6.7367222911229874e-12}, /* L603 */
-{3.9147412756285060e+00, 2.6251223417261826e-13,
- 2.2204460492503131e-16, 2.5721647034515627e-12,
- -1.8585133432225120e-13}, /* L604 */
-{5.1659172412121013e+00, 3.4698632855878486e-13,
- 2.2204460492503131e-16, 7.4829031859735551e-14,
- -1.8562928971732617e-13}, /* L605 */
-{3.9443131536491096e+00, 2.6537105846102804e-13,
- 2.2204460492503131e-16, -1.3832268663804825e-12,
- 1.0667022820598504e-12}, /* L606 */
-{3.7924277296305902e+00, 2.5557334026871104e-13,
- 2.2204460492503131e-16, -3.7414515929867775e-14,
- -1.3478107518949400e-13}, /* L607 */
-{4.1801052791859110e+00, 2.8216318170848353e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-14,
- -1.9706458687096529e-13}, /* L608 */
-{4.1727282582189300e+00, 2.8212848723896400e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- 2.3980817331903381e-14}, /* L609 */
-{4.8295158162834291e+00, 3.2707170305457112e-13,
- 2.2204460492503131e-16, 2.5535129566378600e-14,
- 5.0404125317982107e-14}, /* L610 */
-{4.9048768055619369e+00, 3.3271996269235160e-13,
- 2.2204460492503131e-16, -1.3211653993039363e-14,
- -2.9864999362416711e-14}, /* L611 */
-{3.3041310299420852e+00, 2.2450097336701447e-13,
- 2.2204460492503131e-16, -3.5094149808401198e-13,
- -4.4964032497318840e-14}, /* L612 */
-{7.4885925652104461e+00, 5.0964787945417811e-13,
- 2.2204460492503131e-16, -3.5915714846623814e-13,
- -4.4475534366483771e-13}, /* L613 */
-{7.2035944270469310e+00, 4.9105164379170674e-13,
- 2.2204460492503131e-16, -3.3084646133829665e-14,
- -6.6058269965196814e-14}, /* L614 */
-{5.8260254519245347e+00, 3.9779290972319359e-13,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -7.4718009557273035e-14}, /* L615 */
-{4.6903483090863878e+00, 3.2077118738982335e-13,
- 2.2204460492503131e-16, -1.9961809982760315e-13,
- -1.4588330543574557e-13}, /* L616 */
-{4.4898774240667665e+00, 3.0755953339678399e-13,
- 2.2204460492503131e-16, 4.1566750041965861e-13,
- 1.0214051826551440e-13}, /* L617 */
-{4.9787699909637064e+00, 3.4160174688935285e-13,
- 2.2204460492503131e-16, -1.6431300764452317e-14,
- -2.7200464103316335e-14}, /* L618 */
-{5.2439501150833578e+00, 3.6037839379332581e-13,
- 2.2204460492503131e-16, 9.9253938401488995e-14,
- 6.2283511681471282e-13}, /* L619 */
-{4.2258131187057746e+00, 2.9087843245179101e-13,
- 2.2204460492503131e-16, 3.5638159090467525e-13,
- 5.8286708792820718e-13}, /* L620 */
-{5.1240016429460367e+00, 3.5327296643572481e-13,
- 2.2204460492503131e-16, 4.3298697960381105e-13,
- 3.6837199957062694e-13}, /* L621 */
-{3.9485592830016762e+00, 2.7267077484793845e-13,
- 2.2204460492503131e-16, 9.6098240476294450e-11,
- -8.3841489306735184e-11}, /* L622 */
-{4.3876473718545217e+00, 3.0347946378128654e-13,
- 2.2204460492503131e-16, 7.6227912870763248e-13,
- -3.2596148002994596e-13}, /* L623 */
-{5.1935178092343115e+00, 3.5979552670539761e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- -1.6853185513809876e-13}, /* L624 */
-{3.9853062876460603e+00, 2.7653573875241477e-13,
- 2.2204460492503131e-16, 1.3122836151069350e-13,
- -1.2212453270876722e-14}, /* L625 */
-{5.2052797779027502e+00, 3.6176617257410726e-13,
- 2.2204460492503131e-16, -4.7295500849031669e-14,
- -1.4432899320127035e-15}, /* L626 */
-{5.5980949565519929e+00, 3.8968828164342995e-13,
- 2.2204460492503131e-16, 9.1482377229112899e-14,
- 1.7030821197749901e-13}, /* L627 */
-{3.8051413537108512e+00, 2.6530166952198897e-13,
- 2.2204460492503131e-16, -2.6756374893466273e-14,
- 6.6791017161449417e-13}, /* L628 */
-{4.8489742639282376e+00, 3.3861802251067274e-13,
- 2.2204460492503131e-16, -1.3467005288703149e-13,
- 4.5741188614556449e-14}, /* L629 */
-{5.1325477801489239e+00, 3.5899061501254437e-13,
- 2.2204460492503131e-16, 2.4540369736314460e-12,
- 1.7916779171400776e-12}, /* L630 */
-{5.5871720478792941e+00, 3.9140912733159894e-13,
- 2.2204460492503131e-16, -6.0385030309362264e-13,
- -3.7858605139717838e-14}, /* L631 */
-{5.2257796055009651e+00, 3.6667197056416967e-13,
- 2.2204460492503131e-16, -9.1382457156896635e-13,
- 7.5939254884360707e-14}, /* L632 */
-{3.7746899995890235e+00, 2.6527391394637334e-13,
- 2.2204460492503131e-16, -4.5852210917018965e-14,
- 5.5511151231257827e-14}, /* L633 */
-{4.5946444729663307e+00, 3.2340796707330810e-13,
- 2.2204460492503131e-16, 3.6792791036077688e-13,
- 4.0456527017340704e-13}, /* L634 */
-{5.5968592239046968e+00, 3.9457326295178063e-13,
- 2.2204460492503131e-16, 7.8603790143461083e-14,
- 2.0472512574087887e-13}, /* L635 */
-{4.5522870563855422e+00, 3.2143732120459845e-13,
- 2.2204460492503131e-16, -3.0486724256206799e-13,
- 1.7519319328584970e-13}, /* L636 */
-{5.7362727864181418e+00, 4.0567549319803220e-13,
- 2.2204460492503131e-16, -4.9626969200744497e-14,
- 4.9471537977296975e-13}, /* L637 */
-{4.7821392062565806e+00, 3.3872904481313526e-13,
- 2.2204460492503131e-16, -1.3822276656583199e-13,
- -1.6220358389773537e-13}, /* L638 */
-{4.9984429408416693e+00, 3.5460523406527500e-13,
- 2.2204460492503131e-16, 1.6802115254677119e-12,
- -5.8375526634790731e-13}, /* L639 */
-{5.5650478425127439e+00, 3.9541980800805732e-13,
- 2.2204460492503131e-16, -4.4264591991804991e-13,
- -3.1874503036988244e-13}, /* L640 */
-{4.7527376076324490e+00, 3.3822944445205394e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- 5.9952043329758453e-15}, /* L641 */
-{5.4478279097141842e+00, 3.8830050286264850e-13,
- 2.2204460492503131e-16, 5.0293103015519591e-13,
- 7.6871842225045839e-13}, /* L642 */
-{3.6998503162827618e+00, 2.6412205755832474e-13,
- 2.2204460492503131e-16, 3.0642155479654321e-14,
- -2.3014923300479495e-13}, /* L643 */
-{4.8757840900745046e+00, 3.4861002973229915e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -5.9396931817445875e-14}, /* L644 */
-{4.5852785520555139e+00, 3.2834845953289005e-13,
- 2.2204460492503131e-16, -7.2497563508022722e-14,
- 3.8635761256955448e-14}, /* L645 */
-{4.1625452669682401e+00, 2.9853897132170459e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- -1.5099033134902129e-14}, /* L646 */
-{4.7218003398789312e+00, 3.3917313402298532e-13,
- 2.2204460492503131e-16, -9.1593399531575415e-14,
- 8.3488771451811772e-14}, /* L647 */
-{5.4020146956345565e+00, 3.8863356977003605e-13,
- 2.2204460492503131e-16, -8.4932061383824475e-14,
- 1.0103029524088925e-13}, /* L648 */
-{4.4668791583667025e+00, 3.2185365483883288e-13,
- 2.2204460492503131e-16, 1.0591527654923993e-13,
- -1.8207657603852567e-14}, /* L649 */
-{5.8053937745955411e+00, 4.1894265834230282e-13,
- 2.2204460492503131e-16, -1.9162449405030202e-13,
- 1.4876988529977098e-14}, /* L650 */
-{4.8479339158985644e+00, 3.5038638657169940e-13,
- 2.2204460492503131e-16, -1.4555023852835802e-13,
- 3.8213876507597888e-13}, /* L651 */
-{3.5874289727938069e+00, 2.5968116545982411e-13,
- 2.2204460492503131e-16, -6.1251004268569886e-13,
- -9.8809849191638932e-14}, /* L652 */
-{5.0911259496093955e+00, 3.6909364453663329e-13,
- 2.2204460492503131e-16, -1.8618440122963875e-13,
- -1.2034817586936697e-13}, /* L653 */
-{4.0734009220451721e+00, 2.9576341376014170e-13,
- 2.2204460492503131e-16, -3.7636560534792807e-14,
- -1.4777068457760834e-13}, /* L654 */
-{4.2603120650350972e+00, 3.0980773502164993e-13,
- 2.2204460492503131e-16, -1.1257661469699087e-13,
- -2.8199664825478976e-14}, /* L655 */
-{4.7033229692459528e+00, 3.4254543646028424e-13,
- 2.2204460492503131e-16, 4.7961634663806763e-14,
- 1.7141843500212417e-13}, /* L656 */
-{3.7293628092609543e+00, 2.7202545771487507e-13,
- 2.2204460492503131e-16, 2.0872192862952943e-14,
- 6.9944050551384862e-14}, /* L657 */
-{4.8294149142344462e+00, 3.5280112165025912e-13,
- 2.2204460492503131e-16, -1.1468603844377867e-13,
- -1.3322676295501878e-15}, /* L658 */
-{4.3861981189216932e+00, 3.2090996526790150e-13,
- 2.2204460492503131e-16, -3.8968828164342995e-14,
- -1.5543122344752192e-15}, /* L659 */
-{5.0192314037204078e+00, 3.6778219358879483e-13,
- 2.2204460492503131e-16, 6.4859229098601645e-13,
- -2.9609648066752925e-13}, /* L660 */
-{4.4485698022013818e+00, 3.2646108039102728e-13,
- 2.2204460492503131e-16, -4.9071857688431919e-14,
- -4.2743586448068527e-14}, /* L661 */
-{4.6216085000014431e+00, 3.3967273438406664e-13,
- 2.2204460492503131e-16, 2.6800783814451279e-13,
- 1.7363888105137448e-13}, /* L662 */
-{5.0028359473086788e+00, 3.6824709948035661e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-14,
- -2.6312285683616210e-14}, /* L663 */
-{4.2213922022854637e+00, 3.1119551380243138e-13,
- 2.2204460492503131e-16, -2.7755575615628914e-13,
- -2.6789681584205027e-13}, /* L664 */
-{4.9649514422614756e+00, 3.6656094826170715e-13,
- 2.2204460492503131e-16, 3.4416913763379853e-14,
- 6.6169292267659330e-14}, /* L665 */
-{4.3292110344270620e+00, 3.2010505357504826e-13,
- 2.2204460492503131e-16, -5.7620574978045624e-14,
- 7.0765615589607478e-13}, /* L666 */
-{4.5877133849938971e+00, 3.3972824553529790e-13,
- 2.2204460492503131e-16, 1.3722356584366935e-13,
- 1.3700152123874432e-13}, /* L667 */
-{5.2133315784024230e+00, 3.8663516832571077e-13,
- 2.2204460492503131e-16, -1.0602629885170245e-13,
- 4.7739590058881731e-14}, /* L668 */
-{4.8157774035650780e+00, 3.5768610295860981e-13,
- 2.2204460492503131e-16, -2.2792878695554464e-13,
- 2.7111646261346323e-13}, /* L669 */
-{3.9753794063123511e+00, 2.9570790260891044e-13,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- 9.3036689463588118e-14}, /* L670 */
-{5.3442707265855951e+00, 3.9812597663058114e-13,
- 2.2204460492503131e-16, -8.0180306838428805e-13,
- 9.8008268167859569e-12}, /* L671 */
-{4.7715849091128026e+00, 3.5599301284605644e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-13,
- -2.8210767055725228e-13}, /* L672 */
-{4.5549848981661780e+00, 3.4033886819884174e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- -5.5844218138645374e-14}, /* L673 */
-{6.0756772414221967e+00, 4.5463632858400160e-13,
- 2.2204460492503131e-16, 4.3876013933186186e-13,
- -2.7644553313166398e-14}, /* L674 */
-{5.2733416531206414e+00, 3.9518388561532447e-13,
- 2.2204460492503131e-16, -6.9833028248922346e-14,
- 1.4432899320127035e-13}, /* L675 */
-{4.7108062488399876e+00, 3.5355052219188110e-13,
- 2.2204460492503131e-16, -1.6875389974302379e-13,
- 1.0524914273446484e-13}, /* L676 */
-{4.3005976270333601e+00, 3.2324143361961433e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-14,
- -1.0424994201230220e-13}, /* L677 */
-{5.5586370884823166e+00, 4.1841530240560587e-13,
- 2.2204460492503131e-16, -3.4328095921409840e-13,
- 6.6835426082434424e-14}, /* L678 */
-{4.5552354636858139e+00, 3.4339198151656092e-13,
- 2.2204460492503131e-16, 5.5866422599137877e-13,
- 1.4879208976026348e-12}, /* L679 */
-{4.6167352249966322e+00, 3.4854064079326008e-13,
- 2.2204460492503131e-16, -1.4002132786572474e-12,
- -7.6849637764553336e-13}, /* L680 */
-{4.3113137036014502e+00, 3.2596148002994596e-13,
- 2.2204460492503131e-16, 7.1476158325367578e-13,
- -8.2156503822261584e-15}, /* L681 */
-{4.6876906802601486e+00, 3.5493830097266255e-13,
- 2.2204460492503131e-16, 9.4591001698063337e-14,
- 1.8474111129762605e-13}, /* L682 */
-{4.0951748358033093e+00, 3.1052937998765628e-13,
- 2.2204460492503131e-16, -1.9884094371036554e-13,
- 3.3306690738754696e-15}, /* L683 */
-{4.0570239446551604e+00, 3.0808688933348094e-13,
- 2.2204460492503131e-16, -6.1506355564233672e-14,
- -1.5221157667610896e-13}, /* L684 */
-{4.3802988816305657e+00, 3.3312241853877822e-13,
- 2.2204460492503131e-16, 2.7289281945286348e-13,
- -1.1979306435705439e-13}, /* L685 */
-{4.7631270483342645e+00, 3.6276537329626990e-13,
- 2.2204460492503131e-16, 6.5303318308451708e-13,
- -1.2208012378778221e-12}, /* L686 */
-{4.3275177445666362e+00, 3.3006930522105904e-13,
- 2.2204460492503131e-16, -1.1037837310823306e-12,
- 1.0458300891968975e-13}, /* L687 */
-{4.8343099527041407e+00, 3.6926017799032707e-13,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- -4.4386716524513758e-13}, /* L688 */
-{4.2746801839584663e+00, 3.2698843632772423e-13,
- 2.2204460492503131e-16, 4.0234482412415673e-13,
- -4.4741987892393809e-14}, /* L689 */
-{4.9855151120428962e+00, 3.8191672047105385e-13,
- 2.2204460492503131e-16, 2.2564172752481682e-12,
- 8.5154105988749507e-13}, /* L690 */
-{4.8552898599357679e+00, 3.7247982476174002e-13,
- 2.2204460492503131e-16, 1.5210055437364645e-13,
- 1.0813572259849025e-13}, /* L691 */
-{6.4544899520722341e+00, 4.9588111394882617e-13,
- 2.2204460492503131e-16, -3.3673064336880998e-13,
- 4.5363712786183896e-13}, /* L692 */
-{4.3052015975420010e+00, 3.3123503939691545e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-14,
- 3.7747582837255322e-15}, /* L693 */
-{4.8883362426205093e+00, 3.7664316110408436e-13,
- 2.2204460492503131e-16, -3.4205971388701073e-13,
- -1.3433698597964394e-13}, /* L694 */
-{4.1410137275420977e+00, 3.1952218648712005e-13,
- 2.2204460492503131e-16, 3.9879211044535623e-13,
- -7.5128792076384343e-13}, /* L695 */
-{5.1544621552201750e+00, 3.9829251008427491e-13,
- 2.2204460492503131e-16, 1.9850787680297799e-13,
- 1.0214051826551440e-14}, /* L696 */
-{5.0868085993807508e+00, 3.9362957338084925e-13,
- 2.2204460492503131e-16, 1.2034817586936697e-13,
- 2.3026025530725747e-13}, /* L697 */
-{4.0505078231738683e+00, 3.1388780463714738e-13,
- 2.2204460492503131e-16, -3.7891911830456593e-13,
- -8.1412654395762729e-13}, /* L698 */
-{5.5822691791439984e+00, 4.3320902420873608e-13,
- 2.2204460492503131e-16, 5.0848214527832170e-14,
- 6.8611782921834674e-14}, /* L699 */
-{4.7735789598809486e+00, 3.7098102367849606e-13,
- 2.2204460492503131e-16, -7.5384143372048129e-14,
- 6.4837024638109142e-14}, /* L700 */
-{4.8766125440770445e+00, 3.7952974096810976e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-13,
- 1.1546319456101628e-13}, /* L701 */
-{4.8956629945778314e+00, 3.8155589798805067e-13,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- 1.5898393712632242e-13}, /* L702 */
-{4.5574396227350977e+00, 3.5570157930209234e-13,
- 2.2204460492503131e-16, -9.2592600253738055e-14,
- -3.3884006711559778e-13}, /* L703 */
-{3.8313270674372735e+00, 2.9945490531702035e-13,
- 2.2204460492503131e-16, -3.3473224192448470e-13,
- 4.1144865292608301e-13}, /* L704 */
-{4.9936248997541961e+00, 3.9085401581928636e-13,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 1.1524114995609125e-13}, /* L705 */
-{5.2000790257307736e+00, 4.0759062791551059e-13,
- 2.2204460492503131e-16, -5.8730798002670781e-14,
- 6.7501559897209518e-14}, /* L706 */
-{4.5208699331723494e+00, 3.5485503424581566e-13,
- 2.2204460492503131e-16, -4.0301095793893182e-14,
- -3.6004532688593827e-13}, /* L707 */
-{5.2118726295850646e+00, 4.0967229608668276e-13,
- 2.2204460492503131e-16, 2.9398705692074145e-13,
- 9.8809849191638932e-14}, /* L708 */
-{5.1026173593219104e+00, 4.0165093473376601e-13,
- 2.2204460492503131e-16, -1.3100631690576847e-14,
- 3.0864200084579352e-14}, /* L709 */
-{5.5052903758769300e+00, 4.3395842475035806e-13,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 5.0848214527832170e-14}, /* L710 */
-{4.6455769496069941e+00, 3.6670666503368921e-13,
- 2.2204460492503131e-16, 1.0369483049998962e-13,
- -9.4713126230772104e-13}, /* L711 */
-{4.5674229363923331e+00, 3.6104452760810091e-13,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 3.1086244689504383e-15}, /* L712 */
-{5.6483258819505098e+00, 4.4711456759216617e-13,
- 2.2204460492503131e-16, 8.6153306710912148e-14,
- -3.2385205628315816e-13}, /* L713 */
-{6.1043513675384222e+00, 4.8389070528287448e-13,
- 2.2204460492503131e-16, 3.6570746431152656e-13,
- -1.3148371280635729e-12}, /* L714 */
-{7.1937176432799417e+00, 5.7104321271594927e-13,
- 2.2204460492503131e-16, -1.5554224574998443e-13,
- -9.3147711766050634e-14}, /* L715 */
-{5.4015448349052813e+00, 4.2937875477377929e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -1.3244960683778118e-13}, /* L716 */
-{5.7921988176118182e+00, 4.6107562212682751e-13,
- 2.2204460492503131e-16, 1.9539925233402755e-14,
- -1.4210854715202004e-14}, /* L717 */
-{4.8650407536028704e+00, 3.8781131084242304e-13,
- 2.2204460492503131e-16, -3.1030733538273125e-13,
- 1.1457501614131615e-13}, /* L718 */
-{4.8727476043194313e+00, 3.8896663667742359e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- -3.8968828164342995e-14}, /* L719 */
-{4.7618130683010955e+00, 3.8063996399273492e-13,
- 2.2204460492503131e-16, -1.5765166949677223e-14,
- 1.8030021919912542e-13}, /* L720 */
-{5.0866931848039627e+00, 4.0717429428127616e-13,
- 2.2204460492503131e-16, 3.2485125700532080e-13,
- 3.6570746431152656e-13}, /* L721 */
-{4.9407972688145305e+00, 3.9604430845940897e-13,
- 2.2204460492503131e-16, -1.5532020114505940e-13,
- 4.4186876380081230e-14}, /* L722 */
-{5.0565432474535674e+00, 4.0588366001514942e-13,
- 2.2204460492503131e-16, -3.6082248300317588e-14,
- 4.0634162701280729e-14}, /* L723 */
-{5.3266658624814962e+00, 4.2815750944669162e-13,
- 2.2204460492503131e-16, 1.2390088954816747e-13,
- 3.9079850466805510e-14}, /* L724 */
-{4.5738003195614167e+00, 3.6814995496570191e-13,
- 2.2204460492503131e-16, -1.0236256287043943e-13,
- 2.8776980798284058e-13}, /* L725 */
-{4.9128865389655330e+00, 3.9598879730817771e-13,
- 2.2204460492503131e-16, -3.9879211044535623e-13,
- -2.0305979120394113e-13}, /* L726 */
-{5.1033436774298595e+00, 4.1190661992374089e-13,
- 2.2204460492503131e-16, 1.4299672557172016e-13,
- -6.8811623066267202e-13}, /* L727 */
-{5.4828383206431903e+00, 4.4314552027913123e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- -6.8722805224297190e-14}, /* L728 */
-{5.8038500346897228e+00, 4.6973536171890373e-13,
- 2.2204460492503131e-16, -2.0150547896946591e-13,
- 1.7452705947107461e-13}, /* L729 */
-{4.9575420681228604e+00, 4.0178971261184415e-13,
- 2.2204460492503131e-16, -1.9750867608081535e-13,
- -3.8213876507597888e-13}, /* L730 */
-{5.9695716617334540e+00, 4.8447357237080269e-13,
- 2.2204460492503131e-16, -4.5363712786183896e-13,
- 4.6451731350316550e-13}, /* L731 */
-{5.0747230422844911e+00, 4.1241359285959511e-13,
- 2.2204460492503131e-16, 1.2723155862204294e-13,
- 7.4384942649885488e-14}, /* L732 */
-{5.9684609853781447e+00, 4.8570869548569817e-13,
- 2.2204460492503131e-16, -4.8960835385969403e-14,
- -8.4043882964124350e-14}, /* L733 */
-{4.3092711039445959e+00, 3.5116354268893701e-13,
- 2.2204460492503131e-16, -9.3591800975900696e-14,
- 4.2632564145606011e-14}, /* L734 */
-{6.0358938765945922e+00, 4.9253656708714288e-13,
- 2.2204460492503131e-16, 7.5139894306630595e-13,
- 7.8181905394103524e-13}, /* L735 */
-{5.0954564086903238e+00, 4.1636138981004933e-13,
- 2.2204460492503131e-16, 7.3430150848707854e-13,
- -3.8147263126120379e-13}, /* L736 */
-{4.9919515664756977e+00, 4.0845798965349900e-13,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- 3.0642155479654321e-14}, /* L737 */
-{6.5406607257515805e+00, 5.3590465398656306e-13,
- 2.2204460492503131e-16, 7.5051076464660582e-14,
- -4.1633363423443370e-14}, /* L738 */
-{5.5033916326710406e+00, 4.5152770411505116e-13,
- 2.2204460492503131e-16, -1.1557421686347880e-13,
- -3.4083846855992306e-14}, /* L739 */
-{6.1905503074137398e+00, 5.0859316758078421e-13,
- 2.2204460492503131e-16, -1.1246559239452836e-13,
- -2.0738966099997924e-13}, /* L740 */
-{5.7039563675935323e+00, 4.6924963914563023e-13,
- 2.2204460492503131e-16, -1.4277468096679513e-13,
- -2.0095036745715333e-14}, /* L741 */
-{4.3800608188078574e+00, 3.6082248300317588e-13,
- 2.2204460492503131e-16, -7.2941652717872785e-14,
- 3.2196467714129540e-14}, /* L742 */
-{4.3748386652758455e+00, 3.6087799415440713e-13,
- 2.2204460492503131e-16, -1.8101076193488552e-12,
- 4.8288040233046559e-12}, /* L743 */
-{5.1660027740936192e+00, 4.2671421951467892e-13,
- 2.2204460492503131e-16, -5.1292303737682232e-14,
- 2.4558133304708463e-13}, /* L744 */
-{7.4610855969101957e+00, 6.1711746823789326e-13,
- 2.2204460492503131e-16, -5.5622173533720343e-14,
- -6.0063065632220969e-14}, /* L745 */
-{4.8774792099789703e+00, 4.0396505585071907e-13,
- 2.2204460492503131e-16, -9.9920072216264089e-15,
- -5.0293103015519591e-14}, /* L746 */
-{5.3896504042271323e+00, 4.4698272860799193e-13,
- 2.2204460492503131e-16, -7.8603790143461083e-14,
- 7.7049477908985864e-14}, /* L747 */
-{6.4737735827010674e+00, 5.3761162188692424e-13,
- 2.2204460492503131e-16, 2.0827783941967937e-13,
- 1.7896795156957523e-13}, /* L748 */
-{5.4252422043030260e+00, 4.5113912605643236e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- 8.8817841970012523e-16}, /* L749 */
-{4.3320068346256848e+00, 3.6071146070071336e-13,
- 2.2204460492503131e-16, -6.7945649107059580e-14,
- -6.7634786660164536e-13}, /* L750 */
-{4.2729761156679009e+00, 3.5627056860221273e-13,
- 2.2204460492503131e-16, -7.0832228971084987e-14,
- 5.1603166184577276e-13}, /* L751 */
-{5.9521370503034259e+00, 4.9693582582222007e-13,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -1.7297274723659939e-13}, /* L752 */
-{5.0438326588840132e+00, 4.2166270475263445e-13,
- 2.2204460492503131e-16, -1.9595436384634013e-13,
- 5.7731597280508140e-14}, /* L753 */
-{5.4834304019005033e+00, 4.5902170953127097e-13,
- 2.2204460492503131e-16, -3.9324099532223045e-13,
- -2.6434410216324977e-13}, /* L754 */
-{5.5410683448316123e+00, 4.6446180235193424e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- 4.6629367034256575e-14}, /* L755 */
-{4.9604079583435956e+00, 4.1634057312833761e-13,
- 2.2204460492503131e-16, -2.2037927038809357e-13,
- -1.3766765505351941e-14}, /* L756 */
-{5.5350153376444426e+00, 4.6518344731794059e-13,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- 2.1072033007385471e-13}, /* L757 */
-{7.7361599626463295e+00, 6.5103478164019180e-13,
- 2.2204460492503131e-16, 9.5035090907913400e-14,
- -3.0975222387041867e-14}, /* L758 */
-{4.9809861193995859e+00, 4.1972675335344434e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-13,
- 6.6413541333076864e-13}, /* L759 */
-{6.0394832127454210e+00, 5.0959236830294685e-13,
- 2.2204460492503131e-16, 1.4410694859634532e-13,
- 7.9936057773011271e-15}, /* L760 */
-{5.8784586831517247e+00, 4.9665827006606378e-13,
- 2.2204460492503131e-16, 1.2145839889399213e-13,
- -1.9073631563060189e-13}, /* L761 */
-{5.3579480858171262e+00, 4.5327630537883579e-13,
- 2.2204460492503131e-16, -2.4025226252888388e-13,
- 6.8833827526759706e-15}, /* L762 */
-{6.1789088310694256e+00, 5.2341464495953005e-13,
- 2.2204460492503131e-16, 2.1249668691325496e-13,
- -9.6034291630076041e-14}, /* L763 */
-{6.7755342500098648e+00, 5.7470694869721228e-13,
- 2.2204460492503131e-16, 1.8252066524837574e-13,
- -3.1241675912951905e-13}, /* L764 */
-{7.5385739851333673e+00, 6.4026561830132778e-13,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- -5.0104365101333315e-13}, /* L765 */
-{6.8635878522292213e+00, 5.8369975519667605e-13,
- 2.2204460492503131e-16, -9.5257135512838431e-14,
- -5.4400928206632670e-15}, /* L766 */
-{5.3306798574418472e+00, 4.5392856140580307e-13,
- 2.2204460492503131e-16, 7.0410344221727428e-13,
- 3.4283687000424834e-13}, /* L767 */
-{5.7496835504787178e+00, 4.9024673209885350e-13,
- 2.2204460492503131e-16, -9.6256336235001072e-14,
- 4.0811798385220754e-13}, /* L768 */
-{6.6365514328224542e+00, 5.6660232061744864e-13,
- 2.2204460492503131e-16, 1.3233858453531866e-13,
- -3.5049740887416192e-13}, /* L769 */
-{8.5857278314758538e+00, 7.3396844157969099e-13,
- 2.2204460492503131e-16, 5.5955240441107890e-14,
- 3.0442315335221792e-13}, /* L770 */
-{5.4433774626896296e+00, 4.6594255146900632e-13,
- 2.2204460492503131e-16, -4.2521541843143495e-14,
- 5.5955240441107890e-14}, /* L771 */
-{5.4776640825639777e+00, 4.6948556153836307e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- 4.2410519540680980e-14}, /* L772 */
-{4.5304081825798868e+00, 3.8880010322372982e-13,
- 2.2204460492503131e-16, -7.3763217756095401e-13,
- 5.3845816694320092e-13}, /* L773 */
-{5.1075661977714422e+00, 4.3889891720994001e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-13,
- 2.5379698342931079e-13}, /* L774 */
-{5.4400085827402638e+00, 4.6807002718196600e-13,
- 2.2204460492503131e-16, -3.6637359812630166e-15,
- -5.8064664187895687e-14}, /* L775 */
-{5.5992356380756574e+00, 4.8239190419963052e-13,
- 2.2204460492503131e-16, 3.1130653610489389e-13,
- 3.5282887722587475e-13}, /* L776 */
-{6.3795547883589956e+00, 5.5032714496583424e-13,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- 7.1498362785860081e-14}, /* L777 */
-{5.4897258848298751e+00, 4.7417625381740436e-13,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -5.8730798002670781e-14}, /* L778 */
-{4.1148973778542022e+00, 3.5588199054359393e-13,
- 2.2204460492503131e-16, 6.9277916736609768e-14,
- 6.2172489379008766e-14}, /* L779 */
-{4.2705195581422490e+00, 3.6981528950263964e-13,
- 2.2204460492503131e-16, -7.5051076464660582e-14,
- 6.8833827526759706e-14}, /* L780 */
-{5.2599314740406049e+00, 4.5607961851601431e-13,
- 2.2204460492503131e-16, 5.2446935683292395e-13,
- 8.6375351315837179e-13}, /* L781 */
-{5.7065307423647775e+00, 4.9543702473897611e-13,
- 2.2204460492503131e-16, -7.3385741927722847e-14,
- -1.2323475573339238e-14}, /* L782 */
-{4.8221659732255118e+00, 4.1919245852284348e-13,
- 2.2204460492503131e-16, 1.9140244944537699e-13,
- -1.3877787807814457e-14}, /* L783 */
-{4.7464998355253565e+00, 4.1314174303863638e-13,
- 2.2204460492503131e-16, 6.2394533983933798e-14,
- 7.1720407390785113e-14}, /* L784 */
-{4.7828100936415021e+00, 4.1683323459551502e-13,
- 2.2204460492503131e-16, 1.6586731987899839e-13,
- 2.4646951146678475e-14}, /* L785 */
-{6.6991199840079538e+00, 5.8458793361637618e-13,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- -6.1839422471621219e-14}, /* L786 */
-{5.3062345470314831e+00, 4.6362913508346537e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- 2.7311486405778851e-14}, /* L787 */
-{5.5780544858105578e+00, 4.8799853047398756e-13,
- 2.2204460492503131e-16, -3.7614356074300304e-13,
- 5.6021853822585399e-13}, /* L788 */
-{5.9676900236117909e+00, 5.2274851114475496e-13,
- 2.2204460492503131e-16, -4.2110759324032188e-13,
- 9.1038288019262836e-15}, /* L789 */
-{4.6582351974312255e+00, 4.0856207306205761e-13,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- -9.4924068605450884e-14}, /* L790 */
-{5.5373033000855054e+00, 4.8627768478581856e-13,
- 2.2204460492503131e-16, 1.7652546091539989e-13,
- 8.8817841970012523e-14}, /* L791 */
-{7.4968552621604037e+00, 6.5919492087118670e-13,
- 2.2204460492503131e-16, 1.0678125050844756e-12,
- -4.5585757391108928e-13}, /* L792 */
-{5.6967302992404267e+00, 5.0154325137441447e-13,
- 2.2204460492503131e-16, 2.4091839634365897e-13,
- 1.5498713423767185e-13}, /* L793 */
-{6.2109669779282077e+00, 5.4750648459389595e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- 2.8421709430404007e-14}, /* L794 */
-{5.3226499070016047e+00, 4.6979087287013499e-13,
- 2.2204460492503131e-16, 1.6255885526561542e-12,
- -1.4764856004489957e-12}, /* L795 */
-{5.6677225098294119e+00, 5.0087711755963937e-13,
- 2.2204460492503131e-16, -1.2045919817182948e-13,
- 3.2107649872159527e-13}, /* L796 */
-{5.7892186694507384e+00, 5.1225690356204723e-13,
- 2.2204460492503131e-16, -6.6058269965196814e-14,
- 5.0626169922907138e-14}, /* L797 */
-{7.6691850320567960e+00, 6.7945649107059580e-13,
- 2.2204460492503131e-16, 1.8030021919912542e-13,
- 1.9539925233402755e-14}, /* L798 */
-{7.1433154001960091e+00, 6.3365979130480810e-13,
- 2.2204460492503131e-16, -1.9598767053707888e-12,
- -1.2623235789988030e-13}, /* L799 */
-{5.1640706473886384e+00, 4.5866088704826780e-13,
- 2.2204460492503131e-16, 4.2010839251815923e-13,
- -2.7089441800853820e-14}, /* L800 */
-{6.6036308929931362e+00, 5.8725246887547655e-13,
- 2.2204460492503131e-16, -4.2643666375852263e-13,
- 2.4336088699783431e-13}, /* L801 */
-{7.5804358998547112e+00, 6.7496008782086392e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 5.9952043329758453e-15}, /* L802 */
-{4.7198081936715024e+00, 4.2077452633293433e-13,
- 2.2204460492503131e-16, 2.4802382370125997e-13,
- 2.7511326550211379e-13}, /* L803 */
-{5.0876945940554847e+00, 4.5413672822292028e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- -2.9420910152566648e-14}, /* L804 */
-{6.5347929186795071e+00, 5.8403282210406360e-13,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- 3.9968028886505635e-14}, /* L805 */
-{5.0911990994173859e+00, 4.5558001815493299e-13,
- 2.2204460492503131e-16, -4.8405723873656825e-14,
- -1.8762769116165146e-14}, /* L806 */
-{5.6629581290364461e+00, 5.0737192225369654e-13,
- 2.2204460492503131e-16, -1.8929302569858919e-13,
- 2.8643754035329039e-14}, /* L807 */
-{5.3459242758868228e+00, 4.7956083548683637e-13,
- 2.2204460492503131e-16, -7.3052675020335300e-14,
- 4.8849813083506888e-15}, /* L808 */
-{5.4314826113159098e+00, 4.8783893591419769e-13,
- 2.2204460492503131e-16, -1.0624834345662748e-13,
- 2.0428103653102880e-14}, /* L809 */
-{5.0845759232053371e+00, 4.5724535269187072e-13,
- 2.2204460492503131e-16, -1.3167245072054357e-13,
- 2.8443913890896511e-13}, /* L810 */
-{5.5209704860601061e+00, 4.9710235927591384e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- 6.3504757008558954e-14}, /* L811 */
-{4.9039486236889385e+00, 4.4209080840573733e-13,
- 2.2204460492503131e-16, 5.7953641885433171e-14,
- -2.8221869285971479e-13}, /* L812 */
-{4.8708563932716684e+00, 4.3964831775156199e-13,
- 2.2204460492503131e-16, 9.1260332624187868e-14,
- -9.4368957093138306e-15}, /* L813 */
-{4.6237787937401098e+00, 4.1786019089329329e-13,
- 2.2204460492503131e-16, -1.9140244944537699e-13,
- 1.0991207943789050e-13}, /* L814 */
-{5.3951005364262832e+00, 4.8816506392768133e-13,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- -1.9118040484045196e-13}, /* L815 */
-{4.9963314121564366e+00, 4.5263792713967632e-13,
- 2.2204460492503131e-16, 2.8066438062523957e-13,
- -9.9809049913801573e-14}, /* L816 */
-{6.1037428000522338e+00, 5.5364046680494994e-13,
- 2.2204460492503131e-16, 7.9491968563161208e-14,
- -1.5321077739827160e-14}, /* L817 */
-{6.6418197697963191e+00, 6.0318416927884755e-13,
- 2.2204460492503131e-16, 2.4824586830618500e-13,
- -1.0713652187632761e-13}, /* L818 */
-{7.2194863597089514e+00, 6.5644711888523943e-13,
- 2.2204460492503131e-16, -2.2382096176443156e-13,
- 1.2612133559741778e-13}, /* L819 */
-{7.7658659107967294e+00, 7.0699002208129968e-13,
- 2.2204460492503131e-16, -1.6586731987899839e-13,
- -2.8610447344590284e-13}, /* L820 */
-{6.6961128787558089e+00, 6.1034510778767981e-13,
- 2.2204460492503131e-16, -5.3512749786932545e-14,
- 9.1038288019262836e-15}, /* L821 */
-{6.6356552379753886e+00, 6.0557114878179163e-13,
- 2.2204460492503131e-16, 2.9998226125371730e-13,
- 2.8865798640254070e-14}, /* L822 */
-{6.5861282524600933e+00, 6.0178251271025829e-13,
- 2.2204460492503131e-16, 3.1197266991966899e-13,
- 1.9517720772910252e-13}, /* L823 */
-{6.2803497143765901e+00, 5.7454041524351851e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- -8.9372953482325102e-14}, /* L824 */
-{5.0730383067968647e+00, 4.6465609138124364e-13,
- 2.2204460492503131e-16, 8.0602191587786365e-14,
- 1.2856382625159313e-13}, /* L825 */
-{4.8898382232068363e+00, 4.4841907964610073e-13,
- 2.2204460492503131e-16, 9.2370555648813024e-14,
- 2.1604940059205546e-13}, /* L826 */
-{5.1203224677261661e+00, 4.7012393977752254e-13,
- 2.2204460492503131e-16, -2.1393997684526767e-13,
- -2.6323387913862462e-13}, /* L827 */
-{6.7110613127196102e+00, 6.1692317920858386e-13,
- 2.2204460492503131e-16, 3.9479530755670567e-13,
- 2.1938006966593093e-13}, /* L828 */
-{5.2569443613802704e+00, 4.8383519413164322e-13,
- 2.2204460492503131e-16, -5.8480997822130121e-12,
- 7.7209350024531886e-12}, /* L829 */
-{5.7969970977697276e+00, 5.3418380829839407e-13,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 1.9539925233402755e-14}, /* L830 */
-{6.3213096121546402e+00, 5.8320015483559473e-13,
- 2.2204460492503131e-16, 6.9055872131684737e-13,
- 5.3290705182007514e-13}, /* L831 */
-{5.6953590457039507e+00, 5.2608264966558238e-13,
- 2.2204460492503131e-16, 1.4166445794216997e-13,
- 8.8817841970012523e-14}, /* L832 */
-{7.3115361453007424e+00, 6.7618133314795159e-13,
- 2.2204460492503131e-16, -6.1195493117338629e-13,
- -1.3034018309099338e-13}, /* L833 */
-{5.3639173355726895e+00, 4.9665827006606378e-13,
- 2.2204460492503131e-16, -1.0387246618392965e-12,
- 1.9806378759312793e-12}, /* L834 */
-{6.3281536965481733e+00, 5.8664184621193272e-13,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- -1.1735057370287905e-13}, /* L835 */
-{6.5557818742044169e+00, 6.0847160643362486e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- -4.9737991503207013e-14}, /* L836 */
-{6.2223253785349000e+00, 5.7821282484216141e-13,
- 2.2204460492503131e-16, -1.0147438445073931e-13,
- -5.4289905904170155e-14}, /* L837 */
-{5.3955932382024336e+00, 5.0198734058426453e-13,
- 2.2204460492503131e-16, 2.8199664825478976e-14,
- -5.2291504459844873e-14}, /* L838 */
-{6.2410706332249504e+00, 5.8134053126934759e-13,
- 2.2204460492503131e-16, -2.4091839634365897e-13,
- 3.3439917501709715e-13}, /* L839 */
-{4.9940554981994092e+00, 4.6573855883025317e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -5.6066262743570405e-14}, /* L840 */
-{7.2832308724923776e+00, 6.8003241926462010e-13,
- 2.2204460492503131e-16, -6.2616578588858829e-14,
- 1.1368683772161603e-13}, /* L841 */
-{6.2470407348519332e+00, 5.8397731095283234e-13,
- 2.2204460492503131e-16, -2.8366198279172750e-13,
- 1.9029222642075183e-13}, /* L842 */
-{4.9377302102079037e+00, 4.6213033400022141e-13,
- 2.2204460492503131e-16, 1.2965184481572578e-12,
- -1.7328360968349443e-12}, /* L843 */
-{5.6466321314715486e+00, 5.2910453796073398e-13,
- 2.2204460492503131e-16, -8.4021678503631847e-13,
- 9.3547392054915690e-13}, /* L844 */
-{4.9278184255408117e+00, 4.6229686745391518e-13,
- 2.2204460492503131e-16, -6.8611782921834674e-14,
- 2.7156055182331329e-13}, /* L845 */
-{5.8472314474391904e+00, 5.4919957470644931e-13,
- 2.2204460492503131e-16, 1.7186252421197423e-13,
- 1.1080025785759062e-13}, /* L846 */
-{6.7382042554693564e+00, 6.3363203572919247e-13,
- 2.2204460492503131e-16, -4.4186876380081230e-14,
- -7.3274719625260332e-15}, /* L847 */
-{5.3661641266103519e+00, 5.0520698735567748e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-13,
- -2.2359891715950653e-13}, /* L848 */
-{5.3504206911014967e+00, 5.0431880893597736e-13,
- 2.2204460492503131e-16, -1.8729462425426391e-13,
- -1.5543122344752192e-14}, /* L849 */
-{6.7247164919857809e+00, 6.3460348087573948e-13,
- 2.2204460492503131e-16, 1.4654943925052066e-14,
- 2.6645352591003757e-14}, /* L850 */
-{6.1275067296903645e+00, 5.7892579619078788e-13,
- 2.2204460492503131e-16, -1.7141843500212417e-13,
- -2.3647750424515834e-14}, /* L851 */
-{5.9629825592457770e+00, 5.6404360349038285e-13,
- 2.2204460492503131e-16, -1.0946799022804043e-13,
- -1.4777068457760834e-13}, /* L852 */
-{5.4759758141494634e+00, 5.1858517480241062e-13,
- 2.2204460492503131e-16, -1.4582779428451431e-12,
- 7.5162098767123098e-13}, /* L853 */
-{5.1162258704946959e+00, 4.8508419503434652e-13,
- 2.2204460492503131e-16, -1.1279865930191590e-13,
- 8.1490370007486490e-14}, /* L854 */
-{5.6830499017941962e+00, 5.3945736766536356e-13,
- 2.2204460492503131e-16, 9.7499786022581247e-13,
- 5.9148241859929840e-12}, /* L855 */
-{5.9497757421420419e+00, 5.6543658644159223e-13,
- 2.2204460492503131e-16, 1.2900791546144319e-13,
- 1.5099033134902129e-14}, /* L856 */
-{6.8051449255569167e+00, 6.4748206796139129e-13,
- 2.2204460492503131e-16, -1.4155343563970746e-13,
- 2.2426505097428162e-14}, /* L857 */
-{6.7080525413564347e+00, 6.3898886182300885e-13,
- 2.2204460492503131e-16, -8.3844042819691822e-13,
- -1.8945955915228296e-12}, /* L858 */
-{5.1856892059366180e+00, 4.9454884631927598e-13,
- 2.2204460492503131e-16, 8.3666407135751797e-13,
- -9.1637808452560421e-13}, /* L859 */
-{6.9174527740754632e+00, 6.6047167734950563e-13,
- 2.2204460492503131e-16, -3.7346792325365641e-12,
- -7.3641093223386633e-13}, /* L860 */
-{6.0882790596388672e+00, 5.8197890950850706e-13,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- 7.7049477908985864e-14}, /* L861 */
-{7.4405569826360267e+00, 7.1206929241895978e-13,
- 2.2204460492503131e-16, 2.6356694604601216e-13,
- -1.9451107391432743e-13}, /* L862 */
-{5.8586419199303119e+00, 5.6132876125047915e-13,
- 2.2204460492503131e-16, 3.2862601528904634e-14,
- 1.0391687510491465e-13}, /* L863 */
-{6.5356729271103298e+00, 6.2692212532411418e-13,
- 2.2204460492503131e-16, -1.9484414082171497e-13,
- -3.0264679651281767e-13}, /* L864 */
-{4.7575219568404368e+00, 4.5688453020886755e-13,
- 2.2204460492503131e-16, -9.4146912488213275e-14,
- 3.3884006711559778e-13}, /* L865 */
-{6.7898490495739283e+00, 6.5281113847959205e-13,
- 2.2204460492503131e-16, -5.0182080713057076e-14,
- 2.6467716907063732e-13}, /* L866 */
-{5.8102744494874425e+00, 5.5927484865492261e-13,
- 2.2204460492503131e-16, 2.7000623958883807e-13,
- 4.1833203567875898e-13}, /* L867 */
-{6.7753563116450861e+00, 6.5292216078205456e-13,
- 2.2204460492503131e-16, -2.4824586830618500e-13,
- -1.2900791546144319e-13}, /* L868 */
-{5.3250947075350199e+00, 5.1375570464529119e-13,
- 2.2204460492503131e-16, 2.7045032879868813e-13,
- 1.6653345369377348e-13}, /* L869 */
-{6.1821936616938471e+00, 5.9713345379464045e-13,
- 2.2204460492503131e-16, 8.6841644986179745e-13,
- -1.1071144001562061e-12}, /* L870 */
-{6.7049474326266596e+00, 6.4837024638109142e-13,
- 2.2204460492503131e-16, -5.2735593669694936e-13,
- -5.4056759068998872e-13}, /* L871 */
-{5.4753526751941850e+00, 5.3007598310728099e-13,
- 2.2204460492503131e-16, -3.5804692544161298e-13,
- -1.1535217225855376e-13}, /* L872 */
-{5.7437089473407870e+00, 5.5669358012266912e-13,
- 2.2204460492503131e-16, -2.8144153674247718e-13,
- -2.2948309919001986e-13}, /* L873 */
-{5.9141969738906139e+00, 5.7387428142874342e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 8.9039886574937555e-14}, /* L874 */
-{7.5451547611574830e+00, 7.3296924085752835e-13,
- 2.2204460492503131e-16, 8.3422158070334262e-13,
- 7.7737816184253461e-13}, /* L875 */
-{6.1301466578670061e+00, 5.9618976422370906e-13,
- 2.2204460492503131e-16, 7.1409544943890069e-13,
- 1.9251267247000214e-12}, /* L876 */
-{5.6431103855014122e+00, 5.4944937488698997e-13,
- 2.2204460492503131e-16, -9.8698826889176416e-14,
- 1.2034817586936697e-13}, /* L877 */
-{6.7750676366788252e+00, 6.6041616619827437e-13,
- 2.2204460492503131e-16, 6.1950444774083735e-14,
- 1.2234657731369225e-13}, /* L878 */
-{6.4306131035264347e+00, 6.2755356466936973e-13,
- 2.2204460492503131e-16, -1.5987211554602254e-13,
- 1.2856382625159313e-13}, /* L879 */
-{6.5198966501069764e+00, 6.3699046037868357e-13,
- 2.2204460492503131e-16, -9.1993079820440471e-13,
- -2.1993518117824351e-13}, /* L880 */
-{5.2331240338369378e+00, 5.1185444771562061e-13,
- 2.2204460492503131e-16, 4.7783998979866737e-13,
- 2.6290081223123707e-13}, /* L881 */
-{4.9132730578092314e+00, 4.8111514772131159e-13,
- 2.2204460492503131e-16, -2.4769075679387242e-13,
- -8.5598195198599569e-13}, /* L882 */
-{6.2267935160117025e+00, 6.1042837451452669e-13,
- 2.2204460492503131e-16, -3.7236880245927750e-13,
- -2.0861090632706691e-13}, /* L883 */
-{5.7030632964053680e+00, 5.5971893786477267e-13,
- 2.2204460492503131e-16, 8.8595797365087492e-14,
- 9.7699626167013776e-15}, /* L884 */
-{6.2553771007912893e+00, 6.1461946643248666e-13,
- 2.2204460492503131e-16, 1.7075230118734908e-13,
- -5.7842619582970656e-14}, /* L885 */
-{8.8439755784763641e+00, 8.6994300652065704e-13,
- 2.2204460492503131e-16, 1.2478906796786760e-13,
- -3.0353497493251780e-13}, /* L886 */
-{7.1245884671206365e+00, 7.0160544041186768e-13,
- 2.2204460492503131e-16, -1.8007817459420039e-13,
- -1.2922996006636822e-13}, /* L887 */
-{5.8378470482479052e+00, 5.7553961596568115e-13,
- 2.2204460492503131e-16, -1.6220358389773537e-13,
- 2.6578739209526248e-13}, /* L888 */
-{6.1178386735300014e+00, 6.0382254751800701e-13,
- 2.2204460492503131e-16, 8.7485574340462335e-14,
- -3.0309088572266774e-14}, /* L889 */
-{5.8519053000084416e+00, 5.7822496790649325e-13,
- 2.2204460492503131e-16, -6.8611782921834674e-14,
- 5.3956838996782608e-14}, /* L890 */
-{6.7502912335606506e+00, 6.6774363816080040e-13,
- 2.2204460492503131e-16, 6.0329519158131006e-13,
- -2.0239365738916604e-12}, /* L891 */
-{5.7140995420799570e+00, 5.6587720620449034e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- 9.3480778673438181e-14}, /* L892 */
-{5.9893711516011372e+00, 5.9380278472076498e-13,
- 2.2204460492503131e-16, -1.4765966227514582e-14,
- -5.3845816694320092e-14}, /* L893 */
-{5.8385159228755636e+00, 5.7949478549090827e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- 2.1271873151817999e-13}, /* L894 */
-{8.5271084253364968e+00, 8.4729445681830384e-13,
- 2.2204460492503131e-16, 8.8773433049027517e-13,
- -2.8477220581635265e-13}, /* L895 */
-{6.9894083486650374e+00, 6.9527716917150428e-13,
- 2.2204460492503131e-16, -3.1763480734525729e-13,
- -1.7030821197749901e-13}, /* L896 */
-{9.3500704930292251e+00, 9.3114405075311879e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- -2.1371793224034263e-13}, /* L897 */
-{6.1798538479946226e+00, 6.1611826751573062e-13,
- 2.2204460492503131e-16, -8.9039886574937555e-14,
- 7.1054273576010019e-15}, /* L898 */
-{5.6117997325200326e+00, 5.6010751592339147e-13,
- 2.2204460492503131e-16, 4.2077452633293433e-13,
- 2.2049029269055609e-13}, /* L899 */
-{6.6433438145839370e+00, 6.6380234642338110e-13,
- 2.2204460492503131e-16, -4.0523140398818214e-14,
- 7.4384942649885488e-14}, /* L900 */
-{7.0088900812706756e+00, 7.0110584005078636e-13,
- 2.2204460492503131e-16, -5.4056759068998872e-13,
- -7.2919448257380282e-13}, /* L901 */
-{5.0903627982801236e+00, 5.0975890175664063e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-13,
- -1.2956302697375577e-13}, /* L902 */
-{6.4447776098295364e+00, 6.4610816696841766e-13,
- 2.2204460492503131e-16, -1.4521717162097048e-13,
- 8.0824236192711396e-14}, /* L903 */
-{6.6161608808319823e+00, 6.6402439102830613e-13,
- 2.2204460492503131e-16, 7.0898842352562497e-13,
- 2.3647750424515834e-13}, /* L904 */
-{5.6944841223413833e+00, 5.7215343574057442e-13,
- 2.2204460492503131e-16, 8.3799633898706816e-13,
- 1.1968204205459188e-13}, /* L905 */
-{9.7650540377401498e+00, 9.8222818767368381e-13,
- 2.2204460492503131e-16, -7.1276318180935050e-14,
- 1.0325074129013956e-13}, /* L906 */
-{6.7331969515653665e+00, 6.7801320113858310e-13,
- 2.2204460492503131e-16, -1.3589129821411916e-13,
- -3.1052937998765628e-13}, /* L907 */
-{5.9894092292604926e+00, 6.0378091415458357e-13,
- 2.2204460492503131e-16, 1.6608936448392342e-13,
- -5.2413628992553640e-13}, /* L908 */
-{6.5528156189467097e+00, 6.6130434461797449e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-14,
- 9.7921670771938807e-14}, /* L909 */
-{6.2357241238599421e+00, 6.2999605532354508e-13,
- 2.2204460492503131e-16, 3.0642155479654321e-14,
- 3.4638958368304884e-14}, /* L910 */
-{6.5669697460201908e+00, 6.6419092448199990e-13,
- 2.2204460492503131e-16, 1.5196732761069143e-12,
- 1.1004530620084552e-12}, /* L911 */
-{5.4082330733706163e+00, 5.4759538917203976e-13,
- 2.2204460492503131e-16, 6.2074789752841752e-12,
- 2.5446311724408588e-13}, /* L912 */
-{4.6128221736286452e+00, 4.6757042682088468e-13,
- 2.2204460492503131e-16, 2.1760371282653068e-14,
- -2.5002222514558525e-13}, /* L913 */
-{5.6105121340193014e+00, 5.6932236702778027e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- -3.1752378504279477e-14}, /* L914 */
-{6.6942728566780474e+00, 6.8003935815852401e-13,
- 2.2204460492503131e-16, 3.2152058793144533e-13,
- -3.8080649744642869e-14}, /* L915 */
-{8.3286157600311341e+00, 8.4698914548653192e-13,
- 2.2204460492503131e-16, -1.0836886943366153e-12,
- 5.4738436006118718e-12}, /* L916 */
-{6.7617336778490484e+00, 6.8839378641882831e-13,
- 2.2204460492503131e-16, 3.6060043839825084e-13,
- 8.7485574340462335e-14}, /* L917 */
-{6.0441271826375580e+00, 6.1600724521326811e-13,
- 2.2204460492503131e-16, 9.8188124297848844e-12,
- 2.5867308295346447e-11}, /* L918 */
-{5.4613796719434857e+00, 5.5722093605936607e-13,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- -3.0397906414236786e-13}, /* L919 */
-{4.3652242783491957e+00, 4.4586556668946287e-13,
- 2.2204460492503131e-16, -3.4305891460917337e-14,
- -6.0951244051921094e-14}, /* L920 */
-{6.7187945307876822e+00, 6.8700600763804687e-13,
- 2.2204460492503131e-16, 3.4705571749782393e-13,
- -5.4622972811557702e-13}, /* L921 */
-{8.2422852381841381e+00, 8.4370010977607990e-13,
- 2.2204460492503131e-16, -3.8302694349567901e-14,
- 3.5527136788005009e-14}, /* L922 */
-{6.6432932547235053e+00, 6.8076100312453036e-13,
- 2.2204460492503131e-16, -7.1775918542016370e-13,
- -1.0339507028334083e-12}, /* L923 */
-{5.7401335151183037e+00, 5.8884841447337521e-13,
- 2.2204460492503131e-16, 5.9752203185325925e-13,
- 4.7628567756419216e-13}, /* L924 */
-{6.2794693666110666e+00, 6.4487304385352218e-13,
- 2.2204460492503131e-16, 1.3640200080544673e-12,
- -5.2835513741911200e-13}, /* L925 */
-{7.6458003997554949e+00, 7.8603790143461083e-13,
- 2.2204460492503131e-16, -3.8280489889075398e-13,
- -6.5303318308451708e-13}, /* L926 */
-{6.0938607470103419e+00, 6.2716498661075093e-13,
- 2.2204460492503131e-16, -4.5186077102243871e-14,
- 3.3817393330082268e-13}, /* L927 */
-{8.3223124297326248e+00, 8.5743565025886426e-13,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- -2.0916601783937949e-13}, /* L928 */
-{6.4370392192632906e+00, 6.6391336872584361e-13,
- 2.2204460492503131e-16, 1.0083045509645672e-12,
- -1.9417800700693988e-13}, /* L929 */
-{7.2709792133792748e+00, 7.5073280925153085e-13,
- 2.2204460492503131e-16, -1.7508217098338719e-13,
- -7.0721206668622472e-14}, /* L930 */
-{6.4599323186266346e+00, 6.6770894369128087e-13,
- 2.2204460492503131e-16, -7.5051076464660582e-14,
- 5.5511151231257827e-15}, /* L931 */
-{5.0944286380281163e+00, 5.2713389209202433e-13,
- 2.2204460492503131e-16, 7.9602990865623724e-13,
- -1.0729306332279975e-11}, /* L932 */
-{7.2216083925071812e+00, 7.4804051841681485e-13,
- 2.2204460492503131e-16, 4.2099657093785936e-13,
- 1.5343282200319663e-13}, /* L933 */
-{5.3115715492652988e+00, 5.5078164251654016e-13,
- 2.2204460492503131e-16, 5.4467541588110180e-13,
- 6.5059069243034173e-14}, /* L934 */
-{6.4747428355628669e+00, 6.7211514132026196e-13,
- 2.2204460492503131e-16, -4.1189274213593308e-14,
- -1.0591527654923993e-13}, /* L935 */
-{6.4204161123026866e+00, 6.6718852664848782e-13,
- 2.2204460492503131e-16, -1.6613377340490842e-12,
- 6.1659566341631944e-12}, /* L936 */
-{5.9944064691504879e+00, 6.2358451735633480e-13,
- 2.2204460492503131e-16, -2.8221869285971479e-13,
- 5.0848214527832170e-14}, /* L937 */
-{6.1164808653590681e+00, 6.3696270480306794e-13,
- 2.2204460492503131e-16, 5.8109073108880693e-13,
- -6.2838623193783860e-14}, /* L938 */
-{6.3354732542981624e+00, 6.6047167734950563e-13,
- 2.2204460492503131e-16, 4.7140069625584147e-13,
- 1.2918555114538322e-12}, /* L939 */
-{7.2005432752390668e+00, 7.5145445421753720e-13,
- 2.2204460492503131e-16, 1.1635137298071641e-13,
- -1.0236256287043943e-13}, /* L940 */
-{5.5069162334616477e+00, 5.7531757136075612e-13,
- 2.2204460492503131e-16, -6.1817218011128716e-13,
- -9.5701224722688494e-14}, /* L941 */
-{6.2818570446777509e+00, 6.5697447482193638e-13,
- 2.2204460492503131e-16, 9.4657615079540847e-13,
- 3.0642155479654321e-13}, /* L942 */
-{5.9835725368057524e+00, 6.2644334164474458e-13,
- 2.2204460492503131e-16, -3.9357406222961799e-13,
- -7.7982065249670995e-13}, /* L943 */
-{8.0042499164981002e+00, 8.3888451740676828e-13,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- 1.1080025785759062e-13}, /* L944 */
-{6.1545070645064044e+00, 6.4570571112199104e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-14,
- 1.2034817586936697e-13}, /* L945 */
-{6.4010319643114846e+00, 6.7228167477395573e-13,
- 2.2204460492503131e-16, -1.4566126083082054e-13,
- 8.5487172896137054e-14}, /* L946 */
-{7.1655241685096627e+00, 7.5336958893501560e-13,
- 2.2204460492503131e-16, 7.6605388699135801e-13,
- 1.0220713164699191e-12}, /* L947 */
-{5.5200433228603947e+00, 5.8097970878634442e-13,
- 2.2204460492503131e-16, 1.6053824936079764e-13,
- 2.1138646388862981e-13}, /* L948 */
-{8.0953651959568411e+00, 8.5292883866827651e-13,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- -1.3478107518949400e-13}, /* L949 */
-{7.2826330680719469e+00, 7.6810779958691455e-13,
- 2.2204460492503131e-16, -4.9168447091574308e-12,
- 7.8055339969296256e-12}, /* L950 */
-{5.1088338522552679e+00, 5.3940185651413231e-13,
- 2.2204460492503131e-16, 2.7222668563808838e-13,
- -9.7699626167013776e-14}, /* L951 */
-{9.0120816747706520e+00, 9.5251584397715305e-13,
- 2.2204460492503131e-16, 2.0716761639505421e-13,
- 3.2818192607919627e-13}, /* L952 */
-{6.1905180549511689e+00, 6.5498301227151501e-13,
- 2.2204460492503131e-16, 8.5687013040569582e-13,
- -7.4829031859735551e-14}, /* L953 */
-{5.6058711672324462e+00, 5.9374727356953372e-13,
- 2.2204460492503131e-16, 3.4661162828797387e-13,
- -2.4880097981849758e-12}, /* L954 */
-{5.8301059042159009e+00, 6.1814442453567153e-13,
- 2.2204460492503131e-16, 6.0396132539608516e-14,
- 2.4469315462738450e-13}, /* L955 */
-{5.8969677330262291e+00, 6.2588823013243200e-13,
- 2.2204460492503131e-16, 1.5756285165480222e-12,
- -6.2350125062948791e-13}, /* L956 */
-{6.8563885493703385e+00, 7.2847977650170037e-13,
- 2.2204460492503131e-16, -8.9261931179862586e-14,
- -1.0391687510491465e-13}, /* L957 */
-{5.7122923998043014e+00, 6.0755567243830910e-13,
- 2.2204460492503131e-16, 6.9944050551384862e-14,
- 6.8411942777402146e-13}, /* L958 */
-{6.2028167011228348e+00, 6.6041616619827437e-13,
- 2.2204460492503131e-16, 2.2692958623338200e-13,
- 7.9003470432326139e-13}, /* L959 */
-{6.1161470839986061e+00, 6.5186744890866066e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- -6.3837823915946501e-14}, /* L960 */
-{7.7968278170206844e+00, 8.3186235677601417e-13,
- 2.2204460492503131e-16, -1.3433698597964394e-14,
- -1.7041923427996153e-13}, /* L961 */
-{5.6195437686599261e+00, 6.0018656711235963e-13,
- 2.2204460492503131e-16, 9.1482377229112899e-14,
- 2.1316282072803006e-13}, /* L962 */
-{6.3291809411607565e+00, 6.7668093350903291e-13,
- 2.2204460492503131e-16, 3.2862601528904634e-14,
- 3.2418512319054571e-14}, /* L963 */
-{5.2842334456957394e+00, 5.6554760874405474e-13,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -1.0547118733938987e-13}, /* L964 */
-{8.1519446721365316e+00, 8.7337082010918721e-13,
- 2.2204460492503131e-16, -6.2616578588858829e-14,
- -5.6066262743570405e-14}, /* L965 */
-{6.2582828532091996e+00, 6.7118532953713839e-13,
- 2.2204460492503131e-16, 5.6932236702778027e-13,
- -1.0214051826551440e-13}, /* L966 */
-{7.0687708353260126e+00, 7.5889294848252575e-13,
- 2.2204460492503131e-16, -1.0480505352461478e-13,
- -1.2101430968414206e-14}, /* L967 */
-{6.4925116581854301e+00, 6.9774741540129526e-13,
- 2.2204460492503131e-16, -4.2765790908561030e-13,
- 1.6875389974302379e-13}, /* L968 */
-{5.5410228048822114e+00, 5.9610649749686218e-13,
- 2.2204460492503131e-16, -4.1278092055563320e-13,
- -3.7025937871248971e-13}, /* L969 */
-{6.9000014109449799e+00, 7.4307227038161727e-13,
- 2.2204460492503131e-16, 4.0456527017340704e-13,
- 1.5365486660812167e-13}, /* L970 */
-{6.8573649449619927e+00, 7.3924200094666048e-13,
- 2.2204460492503131e-16, -1.6842083283563625e-13,
- -6.3482552548066451e-13}, /* L971 */
-{5.8868324794816296e+00, 6.3526961469051457e-13,
- 2.2204460492503131e-16, 7.2875039336395275e-13,
- -1.0487166690609229e-12}, /* L972 */
-{5.5885160451319864e+00, 6.0369764742773668e-13,
- 2.2204460492503131e-16, 3.1996627569697011e-13,
- -2.9309887850104133e-14}, /* L973 */
-{7.5056483520454407e+00, 8.1162854215222069e-13,
- 2.2204460492503131e-16, -3.0953017926549364e-13,
- -1.5487611193520934e-13}, /* L974 */
-{6.6592321309455800e+00, 7.2084005431349851e-13,
- 2.2204460492503131e-16, -2.8976820942716586e-13,
- -1.8096635301390052e-14}, /* L975 */
-{5.5701855652531194e+00, 6.0357274733746635e-13,
- 2.2204460492503131e-16, -1.5420997812043424e-13,
- 5.4400928206632670e-14}, /* L976 */
-{7.2865930969591286e+00, 7.9036777123064894e-13,
- 2.2204460492503131e-16, 1.6053824936079764e-13,
- -4.3631764867768652e-13}, /* L977 */
-{6.3811362741741950e+00, 6.9286243409294457e-13,
- 2.2204460492503131e-16, -2.5413005033669833e-13,
- -1.7097434579227411e-13}, /* L978 */
-{8.0694602813457692e+00, 8.7707618945387367e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -2.0561330416057899e-13}, /* L979 */
-{5.6237256397473212e+00, 6.1187166444653940e-13,
- 2.2204460492503131e-16, -1.4513945600924671e-12,
- 1.7341683644644945e-12}, /* L980 */
-{6.4607556534304029e+00, 7.0365935300742422e-13,
- 2.2204460492503131e-16, -5.6332716269480443e-13,
- 4.9804604884684522e-13}, /* L981 */
-{5.7515286710105498e+00, 6.2705396430828841e-13,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 4.2854608750531042e-14}, /* L982 */
-{7.7421175546661996e+00, 8.4493523289097539e-13,
- 2.2204460492503131e-16, -1.0169642905566434e-13,
- 2.5623947408348613e-13}, /* L983 */
-{6.6580298167526362e+00, 7.2736261458317131e-13,
- 2.2204460492503131e-16, -2.4358293160275934e-13,
- -3.3195668436292181e-14}, /* L984 */
-{9.1772861405810104e+00, 1.0035999808977181e-12,
- 2.2204460492503131e-16, 1.7763568394002505e-14,
- -2.7222668563808838e-13}, /* L985 */
-{6.5304272988670933e+00, 7.1487260555613830e-13,
- 2.2204460492503131e-16, -2.6767477123712524e-13,
- -1.4777068457760834e-13}, /* L986 */
-{7.6805993415936165e+00, 8.4163231939271554e-13,
- 2.2204460492503131e-16, 1.2012613126444194e-13,
- -3.4994229736184934e-13}, /* L987 */
-{6.5222685401886586e+00, 7.1542771706845087e-13,
- 2.2204460492503131e-16, 1.2811973704174306e-13,
- 3.2640556923979602e-14}, /* L988 */
-{7.2579640726195844e+00, 7.9693196486374518e-13,
- 2.2204460492503131e-16, -6.4959149170817909e-13,
- 7.6139095028793236e-13}, /* L989 */
-{7.0237388099764342e+00, 7.7199358017310260e-13,
- 2.2204460492503131e-16, -3.7414515929867775e-13,
- -1.6749934772519737e-12}, /* L990 */
-{7.2305766551283739e+00, 7.9553030829515592e-13,
- 2.2204460492503131e-16, -3.2407410088808319e-13,
- 5.7642779438538128e-13}, /* L991 */
-{6.6491949080503927e+00, 7.3230310704275325e-13,
- 2.2204460492503131e-16, 3.1996627569697011e-13,
- 1.2234657731369225e-13}, /* L992 */
-{6.0241704161443739e+00, 6.6413541333076864e-13,
- 2.2204460492503131e-16, 5.3379523023977526e-13,
- 8.3044682241961709e-14}, /* L993 */
-{8.1403437168978598e+00, 8.9833696037544541e-13,
- 2.2204460492503131e-16, 1.6231460620019789e-13,
- -1.6442402994698568e-13}, /* L994 */
-{7.4854286663308276e+00, 8.2689410874081659e-13,
- 2.2204460492503131e-16, 8.1068485258128931e-13,
- 6.3060667798708891e-13}, /* L995 */
-{5.9713867632325286e+00, 6.6030514389581185e-13,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- 1.8718360195180139e-13}, /* L996 */
-{6.8445350004103265e+00, 7.5761619200420682e-13,
- 2.2204460492503131e-16, -1.7241763572428681e-13,
- 7.7715611723760958e-15}, /* L997 */
-{5.5385782868636122e+00, 6.1367577686155528e-13,
- 2.2204460492503131e-16, 8.4598994476436928e-14,
- 1.6675549829869851e-13}, /* L998 */
-{7.3064329254872371e+00, 8.1036566346170957e-13,
- 2.2204460492503131e-16, 4.6185277824406512e-14,
- -7.0277117458772409e-14}, /* L999 */
-{7.2375014799653465e+00, 8.0352391407245705e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- -1.8474111129762605e-13}, /* L1000 */
-{1.0704751534462535e+01, 2.3769319845712289e-12,
- 2.2204460492503131e-16, -5.1324500205396362e-12,
- 2.5088819910479288e-12}, /* L1001 */
-{1.9969666668716467e+01, 6.6512351182268503e-12,
- 2.2204460492503131e-16, -7.0245698147175517e-11,
- 9.7082342165322189e-12}, /* L1002 */
-{2.5142056782565259e+01, 1.1209977390791437e-11,
- 2.2204460492503131e-16, 5.4001247917767614e-13,
- -5.6191717945353048e-12}, /* L1003 */
-{2.8323200010548174e+01, 1.5722534385531617e-11,
- 2.2204460492503131e-16, -3.7680969455777813e-12,
- -3.6082248300317588e-12}, /* L1004 */
-{3.2321791678561532e+01, 2.1530638383282508e-11,
- 2.2204460492503131e-16, 1.4333201292515696e-11,
- 6.5796257331385277e-12}, /* L1005 */
-{3.7391747446514401e+01, 2.9125646339167588e-11,
- 2.2204460492503131e-16, -2.7823965353945823e-11,
- -1.8096635301390052e-11}, /* L1006 */
-{4.6237801855588486e+01, 4.1241954296111771e-11,
- 2.2204460492503131e-16, 1.3728573833304836e-11,
- -5.0609516577537761e-12}, /* L1007 */
-{4.6061583130257695e+01, 4.6024767330621330e-11,
- 2.2204460492503131e-16, -8.7482243671388460e-11,
- 9.2451313271624258e-10}, /* L1008 */
-{6.2174100014595624e+01, 6.9027117355346945e-11,
- 2.2204460492503131e-16, -4.0004777268620728e-11,
- 1.7784218542260533e-11}, /* L1009 */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1011 */
-}; /* Double */
-
-#else
-
-
-static struct LinpVals LinpValsA[] = {
-/* SINGLE */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L3 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L4 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L5 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L6 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L7 */
-{2.2189640998840332e-01, 1.0430812835693359e-07,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.5762786865234375e-07}, /* L8 */
-{3.6630606651306152e-01, 1.9371509552001953e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -3.5762786865234375e-07}, /* L9 */
-{4.0575447678565979e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L10 */
-{2.8817784786224365e-01, 1.8626451492309570e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.1920928955078125e-07}, /* L11 */
-{3.1171223521232605e-01, 2.1979212760925293e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -2.3841857910156250e-07}, /* L12 */
-{3.1945201754570007e-01, 2.4586915969848633e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -7.1525573730468750e-07}, /* L13 */
-{5.7529002428054810e-01, 4.7683715820312500e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -4.7683715820312500e-07}, /* L14 */
-{4.1109275817871094e-01, 3.6507844924926758e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 2.3841857910156250e-07}, /* L15 */
-{5.6630027294158936e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- -2.3841857910156250e-07}, /* L16 */
-{2.6649358868598938e-01, 2.6822090148925781e-07,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -4.1723251342773438e-07}, /* L17 */
-{5.5057054758071899e-01, 5.8673322200775146e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 2.3841857910156250e-07}, /* L18 */
-{5.6961244344711304e-01, 6.4074993133544922e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -1.0728836059570312e-06}, /* L19 */
-{5.9146845340728760e-01, 7.0035457611083984e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -8.9406967163085938e-07}, /* L20 */
-{7.7999979257583618e-01, 9.7369775176048279e-07,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -1.4305114746093750e-06}, /* L21 */
-{5.8111280202865601e-01, 7.5995922088623047e-07,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -3.5762786865234375e-07}, /* L22 */
-{3.8146379590034485e-01, 5.2154064178466797e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -2.9802322387695312e-07}, /* L23 */
-{7.7291780710220337e-01, 1.1026859283447266e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -2.3841857910156250e-07}, /* L24 */
-{4.8129647970199585e-01, 7.1525573730468750e-07,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 5.9604644775390625e-07}, /* L25 */
-{8.0987650156021118e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -2.0861625671386719e-06,
- -8.9406967163085938e-07}, /* L26 */
-{9.3771111965179443e-01, 1.5050172805786133e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 7.1525573730468750e-07}, /* L27 */
-{7.3412078619003296e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -3.2186508178710938e-06}, /* L28 */
-{7.7795881032943726e-01, 1.3411045074462891e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 1.4305114746093750e-06}, /* L29 */
-{8.8154238462448120e-01, 1.5720725059509277e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -1.1920928955078125e-07}, /* L30 */
-{7.1159505844116211e-01, 1.3113021850585938e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- -2.3841857910156250e-06}, /* L31 */
-{6.5801620483398438e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 9.8943710327148438e-06}, /* L32 */
-{8.8116312026977539e-01, 1.7285346984863281e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.0132789611816406e-06}, /* L33 */
-{1.0469392538070679e+00, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.7285346984863281e-06}, /* L34 */
-{6.3979321718215942e-01, 1.3336539268493652e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.4305114746093750e-06}, /* L35 */
-{9.8686885833740234e-01, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- -2.1398067474365234e-05}, /* L36 */
-{5.1392030715942383e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -1.0728836059570312e-06}, /* L37 */
-{5.0039225816726685e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 1.1920928955078125e-07}, /* L38 */
-{8.0833417177200317e-01, 1.8775463104248047e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -4.7683715820312500e-07}, /* L39 */
-{6.4095199108123779e-01, 1.5273690223693848e-06,
- 1.1920928955078125e-07, -9.3042850494384766e-05,
- 2.2375583648681641e-04}, /* L40 */
-{1.0251988172531128e+00, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -2.5629997253417969e-06}, /* L41 */
-{7.3866742849349976e-01, 1.8477439880371094e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 1.0728836059570312e-06}, /* L42 */
-{1.1637136936187744e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -9.5367431640625000e-07}, /* L43 */
-{6.5105575323104858e-01, 1.7061829566955566e-06,
- 1.1920928955078125e-07, -1.5676021575927734e-05,
- 1.1682510375976562e-05}, /* L44 */
-{8.4511369466781616e-01, 2.2649765014648438e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -6.1392784118652344e-06}, /* L45 */
-{1.0660614967346191e+00, 2.9206275939941406e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.7881393432617188e-06}, /* L46 */
-{1.0486901998519897e+00, 2.9355287551879883e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -6.5565109252929688e-07}, /* L47 */
-{8.1313973665237427e-01, 2.3245811462402344e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 7.1525573730468750e-07}, /* L48 */
-{1.0204066038131714e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -3.5762786865234375e-07}, /* L49 */
-{8.1000715494155884e-01, 2.4139881134033203e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -3.0398368835449219e-06}, /* L50 */
-{9.7052782773971558e-01, 2.9504299163818359e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- -2.6702880859375000e-05}, /* L51 */
-{6.6346895694732666e-01, 2.0563602447509766e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -1.1324882507324219e-06}, /* L52 */
-{8.2547765970230103e-01, 2.6077032089233398e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 7.1525573730468750e-07}, /* L53 */
-{1.0555671453475952e+00, 3.3974647521972656e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -7.1525573730468750e-07}, /* L54 */
-{6.0000658035278320e-01, 1.9669532775878906e-06,
- 1.1920928955078125e-07, -1.0132789611816406e-06,
- -5.9604644775390625e-08}, /* L55 */
-{6.0714846849441528e-01, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- -1.4305114746093750e-06}, /* L56 */
-{6.2719875574111938e-01, 2.1308660507202148e-06,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -8.3446502685546875e-07}, /* L57 */
-{7.5642675161361694e-01, 2.6151537895202637e-06,
- 1.1920928955078125e-07, -3.0875205993652344e-05,
- -1.6927719116210938e-05}, /* L58 */
-{7.1186864376068115e-01, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -4.4107437133789062e-06,
- -4.2319297790527344e-06}, /* L59 */
-{5.5729919672012329e-01, 1.9930303096771240e-06,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 1.0728836059570312e-06}, /* L60 */
-{9.2214035987854004e-01, 3.3527612686157227e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.3841857910156250e-06}, /* L61 */
-{1.1209777593612671e+00, 4.1425228118896484e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-07,
- -3.3378601074218750e-06}, /* L62 */
-{8.2143312692642212e-01, 3.0845403671264648e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.4305114746093750e-06}, /* L63 */
-{9.1016262769699097e-01, 3.4719705581665039e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -7.2121620178222656e-06}, /* L64 */
-{8.4808546304702759e-01, 3.2857060432434082e-06,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -1.7285346984863281e-06}, /* L65 */
-{7.8788590431213379e-01, 3.0994415283203125e-06,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- 2.0265579223632812e-06}, /* L66 */
-{8.2463252544403076e-01, 3.2931566238403320e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -1.9073486328125000e-06}, /* L67 */
-{8.6029779911041260e-01, 3.4868717193603516e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 1.9073486328125000e-06}, /* L68 */
-{8.8033676147460938e-01, 3.6209821701049805e-06,
- 1.1920928955078125e-07, -5.0604343414306641e-05,
- -1.2701749801635742e-04}, /* L69 */
-{1.2535502910614014e+00, 5.2303075790405273e-06,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 1.1920928955078125e-06}, /* L70 */
-{9.0141552686691284e-01, 3.8146972656250000e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 3.3378601074218750e-06}, /* L71 */
-{7.7777242660522461e-01, 3.3378601074218750e-06,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -1.4185905456542969e-05}, /* L72 */
-{1.0034232139587402e+00, 4.3660402297973633e-06,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- 2.9802322387695312e-06}, /* L73 */
-{8.9863836765289307e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -6.9737434387207031e-06}, /* L74 */
-{1.0266774892807007e+00, 4.5895576477050781e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -7.7486038208007812e-07}, /* L75 */
-{6.6445106267929077e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -2.8014183044433594e-05,
- -2.6226043701171875e-05}, /* L76 */
-{1.2500019073486328e+00, 5.7369470596313477e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -2.9802322387695312e-07}, /* L77 */
-{1.0576709508895874e+00, 4.9173831939697266e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 1.9669532775878906e-05}, /* L78 */
-{8.0380576848983765e-01, 3.7848949432373047e-06,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 1.3113021850585938e-06}, /* L79 */
-{6.3124734163284302e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- -4.0531158447265625e-06}, /* L80 */
-{1.2044825553894043e+00, 5.8151781558990479e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -4.4107437133789062e-06}, /* L81 */
-{8.1098091602325439e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- -5.0067901611328125e-06}, /* L82 */
-{1.2168718576431274e+00, 6.0200691223144531e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.4901161193847656e-06}, /* L83 */
-{5.6548178195953369e-01, 2.8312206268310547e-06,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -1.6689300537109375e-06}, /* L84 */
-{1.3882204294204712e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- 1.5497207641601562e-06}, /* L85 */
-{1.7107630968093872e+00, 8.7693333625793457e-06,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- 3.0994415283203125e-06}, /* L86 */
-{8.1896400451660156e-01, 4.2468309402465820e-06,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 5.4836273193359375e-06}, /* L87 */
-{7.6276636123657227e-01, 4.0009617805480957e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 2.9802322387695312e-06}, /* L88 */
-{8.0899810791015625e-01, 4.2915344238281250e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.1920928955078125e-07}, /* L89 */
-{8.7223005294799805e-01, 4.6789646148681641e-06,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -1.1920928955078125e-06}, /* L90 */
-{8.2417380809783936e-01, 4.4703483581542969e-06,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 1.2516975402832031e-05}, /* L91 */
-{7.5204324722290039e-01, 4.1238963603973389e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -5.0663948059082031e-06}, /* L92 */
-{1.4193508625030518e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, 9.6559524536132812e-06,
- 0.0000000000000000e+00}, /* L93 */
-{9.6275132894515991e-01, 5.3942203521728516e-06,
- 1.1920928955078125e-07, -6.2584877014160156e-06,
- -3.3974647521972656e-06}, /* L94 */
-{9.3683904409408569e-01, 5.3048133850097656e-06,
- 1.1920928955078125e-07, -5.9008598327636719e-06,
- 5.3644180297851562e-06}, /* L95 */
-{1.0781044960021973e+00, 6.1690807342529297e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- 1.6689300537109375e-06}, /* L96 */
-{1.0644396543502808e+00, 6.1541795730590820e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 3.4570693969726562e-06}, /* L97 */
-{9.8469865322113037e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -5.4240226745605469e-06}, /* L98 */
-{1.1337554454803467e+00, 6.6906213760375977e-06,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- 9.0599060058593750e-06}, /* L99 */
-{9.7000402212142944e-01, 5.7816505432128906e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 1.0728836059570312e-06}, /* L100 */
-{9.5541024208068848e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, -3.1709671020507812e-05,
- -8.5830688476562500e-06}, /* L101 */
-{8.3822196722030640e-01, 5.0961971282958984e-06,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- 1.7881393432617188e-06}, /* L102 */
-{1.9174509048461914e+00, 1.1771917343139648e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- -2.3245811462402344e-06}, /* L103 */
-{1.0769299268722534e+00, 6.6757202148437500e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- 2.8610229492187500e-06}, /* L104 */
-{1.1833299398422241e+00, 7.4058771133422852e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- -1.7285346984863281e-06}, /* L105 */
-{8.6897367238998413e-01, 5.4910778999328613e-06,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- -4.7624111175537109e-05}, /* L106 */
-{1.0105159282684326e+00, 6.4447522163391113e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.4901161193847656e-06}, /* L107 */
-{1.2222226858139038e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, -9.9539756774902344e-06,
- -1.0073184967041016e-05}, /* L108 */
-{9.9771076440811157e-01, 6.4820051193237305e-06,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- 3.8146972656250000e-06}, /* L109 */
-{8.5909843444824219e-01, 5.6326389312744141e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -1.6689300537109375e-06}, /* L110 */
-{1.0945979356765747e+00, 7.2419643402099609e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 4.7683715820312500e-06}, /* L111 */
-{9.4642227888107300e-01, 6.3180923461914062e-06,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 7.2717666625976562e-06}, /* L112 */
-{9.4248169660568237e-01, 6.3478946685791016e-06,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -7.8678131103515625e-06}, /* L113 */
-{1.0350898504257202e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -6.0200691223144531e-06}, /* L114 */
-{1.2651975154876709e+00, 8.6724758148193359e-06,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 1.0013580322265625e-05}, /* L115 */
-{9.2753994464874268e-01, 6.4130872488021851e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- -4.7683715820312500e-06}, /* L116 */
-{1.3073544502258301e+00, 9.1195106506347656e-06,
- 1.1920928955078125e-07, 7.1644783020019531e-05,
- 6.3896179199218750e-05}, /* L117 */
-{9.6987730264663696e-01, 6.8247318267822266e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.2165985107421875e-04}, /* L118 */
-{9.7899848222732544e-01, 6.9439411163330078e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -5.4836273193359375e-06}, /* L119 */
-{8.6979395151138306e-01, 6.2212347984313965e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.5497207641601562e-06}, /* L120 */
-{9.7924292087554932e-01, 7.0631504058837891e-06,
- 1.1920928955078125e-07, -4.1127204895019531e-05,
- 1.7762184143066406e-05}, /* L121 */
-{9.7541624307632446e-01, 7.0929527282714844e-06,
- 1.1920928955078125e-07, -7.6293945312500000e-06,
- -1.0728836059570312e-06}, /* L122 */
-{1.6664739847183228e+00, 1.2218952178955078e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- -1.3291835784912109e-05}, /* L123 */
-{8.2053667306900024e-01, 6.0647726058959961e-06,
- 1.1920928955078125e-07, -1.8298625946044922e-05,
- -2.4974346160888672e-05}, /* L124 */
-{1.2599431276321411e+00, 9.3877315521240234e-06,
- 1.1920928955078125e-07, 1.0609626770019531e-05,
- 3.5762786865234375e-07}, /* L125 */
-{1.3730195760726929e+00, 1.0311603546142578e-05,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -1.9669532775878906e-06}, /* L126 */
-{1.4950799942016602e+00, 1.1317431926727295e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.9802322387695312e-06}, /* L127 */
-{8.7696063518524170e-01, 6.6906213760375977e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- 0.0000000000000000e+00}, /* L128 */
-{9.4961285591125488e-01, 7.3015689849853516e-06,
- 1.1920928955078125e-07, -7.5101852416992188e-06,
- -7.7486038208007812e-06}, /* L129 */
-{1.0076545476913452e+00, 7.8082084655761719e-06,
- 1.1920928955078125e-07, 4.4107437133789062e-06,
- -8.1658363342285156e-06}, /* L130 */
-{1.2137182950973511e+00, 9.4771385192871094e-06,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- -2.9623508453369141e-05}, /* L131 */
-{1.3598455190658569e+00, 1.0699033737182617e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- -1.2516975402832031e-06}, /* L132 */
-{1.1579024791717529e+00, 9.1791152954101562e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -3.8146972656250000e-06}, /* L133 */
-{1.3115695714950562e+00, 1.0475516319274902e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -2.5629997253417969e-06}, /* L134 */
-{1.0259270668029785e+00, 8.2552433013916016e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-06,
- -4.3511390686035156e-06}, /* L135 */
-{1.4080590009689331e+00, 1.1414289474487305e-05,
- 1.1920928955078125e-07, -1.1265277862548828e-05,
- -3.6358833312988281e-06}, /* L136 */
-{1.6496450901031494e+00, 1.3470649719238281e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -1.6689300537109375e-06}, /* L137 */
-{1.6231811046600342e+00, 1.3351440429687500e-05,
- 1.1920928955078125e-07, -1.4066696166992188e-05,
- -1.5854835510253906e-05}, /* L138 */
-{1.5899404287338257e+00, 1.3172626495361328e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- -1.1920928955078125e-07}, /* L139 */
-{1.2106659412384033e+00, 1.0102987289428711e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- 1.4305114746093750e-05}, /* L140 */
-{1.2322425842285156e+00, 1.0356307029724121e-05,
- 1.1920928955078125e-07, 1.4543533325195312e-05,
- 1.5258789062500000e-05}, /* L141 */
-{9.4058716297149658e-01, 7.9609453678131104e-06,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 2.3841857910156250e-07}, /* L142 */
-{1.0523852109909058e+00, 8.9704990386962891e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 3.5166740417480469e-05}, /* L143 */
-{1.0451387166976929e+00, 8.9704990386962891e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 6.1988830566406250e-06}, /* L144 */
-{1.3551633358001709e+00, 1.1712312698364258e-05,
- 1.1920928955078125e-07, -1.1205673217773438e-05,
- -3.4570693969726562e-06}, /* L145 */
-{1.4623255729675293e+00, 1.2725591659545898e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- 5.3644180297851562e-06}, /* L146 */
-{1.0782223939895630e+00, 9.4473361968994141e-06,
- 1.1920928955078125e-07, -2.0980834960937500e-05,
- -4.7087669372558594e-06}, /* L147 */
-{1.3513203859329224e+00, 1.1920928955078125e-05,
- 1.1920928955078125e-07, 1.6570091247558594e-05,
- -3.9935111999511719e-06}, /* L148 */
-{1.1107107400894165e+00, 9.8645687103271484e-06,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- -3.8146972656250000e-06}, /* L149 */
-{1.1465020179748535e+00, 1.0251998901367188e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- 3.1232833862304688e-05}, /* L150 */
-{1.0740799903869629e+00, 9.6671283245086670e-06,
- 1.1920928955078125e-07, -2.1100044250488281e-05,
- -1.3530254364013672e-05}, /* L151 */
-{7.9934722185134888e-01, 7.2419643402099609e-06,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- 6.4373016357421875e-06}, /* L152 */
-{1.1633380651473999e+00, 1.0609626770019531e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-05,
- -2.7537345886230469e-05}, /* L153 */
-{8.3928984403610229e-01, 7.7039003372192383e-06,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- -2.3245811462402344e-06}, /* L154 */
-{1.3031933307647705e+00, 1.2040138244628906e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- 3.0398368835449219e-05}, /* L155 */
-{1.1048823595046997e+00, 1.0274350643157959e-05,
- 1.1920928955078125e-07, -6.4849853515625000e-05,
- 4.2915344238281250e-06}, /* L156 */
-{8.5346072912216187e-01, 7.9870223999023438e-06,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- -6.3419342041015625e-05}, /* L157 */
-{1.2245478630065918e+00, 1.1533498764038086e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- -2.3126602172851562e-05}, /* L158 */
-{1.0674954652786255e+00, 1.0117888450622559e-05,
- 1.1920928955078125e-07, 5.9127807617187500e-05,
- -3.0517578125000000e-05}, /* L159 */
-{9.1249036788940430e-01, 8.7022781372070312e-06,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -1.0728836059570312e-05}, /* L160 */
-{1.3328945636749268e+00, 1.2791249901056290e-05,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- 7.7486038208007812e-06}, /* L161 */
-{8.3950537443161011e-01, 8.1062316894531250e-06,
- 1.1920928955078125e-07, 6.1988830566406250e-06,
- 5.1259994506835938e-06}, /* L162 */
-{1.3895767927169800e+00, 1.3500452041625977e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -2.8610229492187500e-06}, /* L163 */
-{1.0594571828842163e+00, 1.0356307029724121e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- -1.7881393432617188e-07}, /* L164 */
-{1.4068090915679932e+00, 1.3835728168487549e-05,
- 1.1920928955078125e-07, 1.3351440429687500e-05,
- 2.0265579223632812e-06}, /* L165 */
-{1.7166895866394043e+00, 1.6987323760986328e-05,
- 1.1920928955078125e-07, -4.0054321289062500e-05,
- -8.2433223724365234e-05}, /* L166 */
-{2.3772552013397217e+00, 2.3663043975830078e-05,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- 1.1920928955078125e-06}, /* L167 */
-{9.3749171495437622e-01, 9.3877315521240234e-06,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -1.7881393432617188e-07}, /* L168 */
-{9.8224931955337524e-01, 9.8943710327148438e-06,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -8.3446502685546875e-07}, /* L169 */
-{1.3132193088531494e+00, 1.3306736946105957e-05,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -2.2053718566894531e-06}, /* L170 */
-{1.7382994890213013e+00, 1.7717480659484863e-05,
- 1.1920928955078125e-07, -1.1503696441650391e-05,
- 9.1791152954101562e-06}, /* L171 */
-{1.0057780742645264e+00, 1.0311603546142578e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 3.2186508178710938e-06}, /* L172 */
-{1.5086681842803955e+00, 1.5556812286376953e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- -6.6757202148437500e-06}, /* L173 */
-{1.6506453752517700e+00, 1.7121434211730957e-05,
- 1.1920928955078125e-07, -3.3974647521972656e-05,
- 3.4809112548828125e-05}, /* L174 */
-{1.3599753379821777e+00, 1.4185905456542969e-05,
- 1.1920928955078125e-07, -2.1100044250488281e-05,
- 1.7166137695312500e-05}, /* L175 */
-{8.5198110342025757e-01, 8.9406967163085938e-06,
- 1.1920928955078125e-07, 8.6188316345214844e-05,
- -3.9279460906982422e-05}, /* L176 */
-{1.0423605442047119e+00, 1.0997056961059570e-05,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- 1.2159347534179688e-05}, /* L177 */
-{9.3814527988433838e-01, 9.9539756774902344e-06,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- 2.9206275939941406e-05}, /* L178 */
-{1.2877079248428345e+00, 1.3738870620727539e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -3.5762786865234375e-06}, /* L179 */
-{1.1284198760986328e+00, 1.2107193470001221e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- 2.2411346435546875e-05}, /* L180 */
-{1.4323217868804932e+00, 1.5452504158020020e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 4.0531158447265625e-06}, /* L181 */
-{1.0047575235366821e+00, 1.0900199413299561e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -2.8610229492187500e-06}, /* L182 */
-{1.3852163553237915e+00, 1.5109777450561523e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -1.1920928955078125e-07}, /* L183 */
-{1.0991307497024536e+00, 1.2055039405822754e-05,
- 1.1920928955078125e-07, -7.6293945312500000e-06,
- 1.0728836059570312e-05}, /* L184 */
-{1.5347256660461426e+00, 1.6927719116210938e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-04,
- 5.6982040405273438e-05}, /* L185 */
-{1.1070562601089478e+00, 1.2278556823730469e-05,
- 1.1920928955078125e-07, 1.5044212341308594e-04,
- 1.2040138244628906e-04}, /* L186 */
-{9.9126607179641724e-01, 1.1049211025238037e-05,
- 1.1920928955078125e-07, -3.5703182220458984e-05,
- -3.6358833312988281e-06}, /* L187 */
-{1.4041755199432373e+00, 1.5735626220703125e-05,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 2.1934509277343750e-05}, /* L188 */
-{1.2632194757461548e+00, 1.4230608940124512e-05,
- 1.1920928955078125e-07, -6.6161155700683594e-06,
- 4.7683715820312500e-07}, /* L189 */
-{1.3006491661071777e+00, 1.4729797840118408e-05,
- 1.1920928955078125e-07, -4.5895576477050781e-06,
- 9.4175338745117188e-06}, /* L190 */
-{1.1518263816833496e+00, 1.3113021850585938e-05,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- 4.1723251342773438e-06}, /* L191 */
-{9.7395467758178711e-01, 1.1146068572998047e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 1.4305114746093750e-06}, /* L192 */
-{1.3367887735366821e+00, 1.5377998352050781e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -5.6028366088867188e-06}, /* L193 */
-{1.2313115596771240e+00, 1.4238059520721436e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 3.6954879760742188e-06}, /* L194 */
-{1.1076924800872803e+00, 1.2874603271484375e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -5.3644180297851562e-07}, /* L195 */
-{9.1708576679229736e-01, 1.0713934898376465e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- 1.7881393432617188e-06}, /* L196 */
-{1.3311398029327393e+00, 1.5631318092346191e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -9.3579292297363281e-06}, /* L197 */
-{1.0883123874664307e+00, 1.2844800949096680e-05,
- 1.1920928955078125e-07, 5.3048133850097656e-05,
- -1.7285346984863281e-05}, /* L198 */
-{1.2763050794601440e+00, 1.5139579772949219e-05,
- 1.1920928955078125e-07, -7.9452991485595703e-05,
- 1.8715858459472656e-05}, /* L199 */
-{1.8636472225189209e+00, 2.2217631340026855e-05,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- 2.3841857910156250e-07}, /* L200 */
-{1.8072097301483154e+00, 2.1651387214660645e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- 1.0728836059570312e-06}, /* L201 */
-{1.4121232032775879e+00, 1.7002224922180176e-05,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- 7.1525573730468750e-07}, /* L202 */
-{1.4260981082916260e+00, 1.7255544662475586e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -2.8014183044433594e-06}, /* L203 */
-{1.0318481922149658e+00, 1.2546777725219727e-05,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- -3.0994415283203125e-06}, /* L204 */
-{8.3560913801193237e-01, 1.0222196578979492e-05,
- 1.1920928955078125e-07, 7.9846382141113281e-04,
- -1.1980533599853516e-04}, /* L205 */
-{1.1310299634933472e+00, 1.3887882232666016e-05,
- 1.1920928955078125e-07, -1.4245510101318359e-05,
- -1.0967254638671875e-05}, /* L206 */
-{1.2493760585784912e+00, 1.5415251255035400e-05,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- -1.4901161193847656e-06}, /* L207 */
-{7.7160632610321045e-01, 9.5665454864501953e-06,
- 1.1920928955078125e-07, 1.3351440429687500e-05,
- -9.5367431640625000e-06}, /* L208 */
-{1.3127908706665039e+00, 1.6354024410247803e-05,
- 1.1920928955078125e-07, -9.8943710327148438e-06,
- 2.1576881408691406e-05}, /* L209 */
-{1.1642893552780151e+00, 1.4573335647583008e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -4.4703483581542969e-06}, /* L210 */
-{1.5382074117660522e+00, 1.9345432519912720e-05,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 1.1920928955078125e-07}, /* L211 */
-{8.5731607675552368e-01, 1.0833144187927246e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- 5.9604644775390625e-06}, /* L212 */
-{1.1396486759185791e+00, 1.4469027519226074e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.5762786865234375e-06}, /* L213 */
-{9.2991012334823608e-01, 1.1861324310302734e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -2.1457672119140625e-06}, /* L214 */
-{1.2880182266235352e+00, 1.6510486602783203e-05,
- 1.1920928955078125e-07, -4.0590763092041016e-05,
- -4.1007995605468750e-05}, /* L215 */
-{1.1110311746597290e+00, 1.4305114746093750e-05,
- 1.1920928955078125e-07, -4.7743320465087891e-05,
- 6.7949295043945312e-06}, /* L216 */
-{1.1073273420333862e+00, 1.4334917068481445e-05,
- 1.1920928955078125e-07, -4.8273801803588867e-04,
- 1.5127658843994141e-04}, /* L217 */
-{1.1329685449600220e+00, 1.4722347259521484e-05,
- 1.1920928955078125e-07, -1.5437602996826172e-05,
- -9.7751617431640625e-06}, /* L218 */
-{1.8424295186996460e+00, 2.4050474166870117e-05,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- -1.7881393432617188e-07}, /* L219 */
-{9.4768619537353516e-01, 1.2427568435668945e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- -3.1173229217529297e-05}, /* L220 */
-{1.6651252508163452e+00, 2.1934509277343750e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 1.8477439880371094e-05}, /* L221 */
-{1.2049322128295898e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, 7.6293945312500000e-06,
- -2.4318695068359375e-05}, /* L222 */
-{1.7462925910949707e+00, 2.3212283849716187e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -1.8954277038574219e-05}, /* L223 */
-{1.3508483171463013e+00, 1.8045306205749512e-05,
- 1.1920928955078125e-07, 1.2171268463134766e-04,
- 1.6820430755615234e-04}, /* L224 */
-{1.7554947137832642e+00, 2.3543834686279297e-05,
- 1.1920928955078125e-07, -4.5537948608398438e-05,
- 1.5258789062500000e-05}, /* L225 */
-{9.1924560070037842e-01, 1.2382864952087402e-05,
- 1.1920928955078125e-07, 5.8412551879882812e-06,
- 1.0371208190917969e-05}, /* L226 */
-{1.9515095949172974e+00, 2.6404857635498047e-05,
- 1.1920928955078125e-07, -1.5676021575927734e-05,
- 1.1324882507324219e-05}, /* L227 */
-{1.5808727741241455e+00, 2.1487474441528320e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 5.0067901611328125e-06}, /* L228 */
-{1.1574410200119019e+00, 1.5854835510253906e-05,
- 1.1920928955078125e-07, -1.2453198432922363e-03,
- 3.7360191345214844e-04}, /* L229 */
-{1.1128441095352173e+00, 1.5258789062500000e-05,
- 1.1920928955078125e-07, -2.3961067199707031e-05,
- -1.1086463928222656e-05}, /* L230 */
-{1.1622455120086670e+00, 1.6003847122192383e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 1.0609626770019531e-05}, /* L231 */
-{1.4094698429107666e+00, 1.9490718841552734e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.0728836059570312e-06}, /* L232 */
-{1.4140902757644653e+00, 1.9639730453491211e-05,
- 1.1920928955078125e-07, -1.8000602722167969e-05,
- -7.9870223999023438e-06}, /* L233 */
-{1.2282335758209229e+00, 1.7130747437477112e-05,
- 1.1920928955078125e-07, -6.1392784118652344e-06,
- -1.7404556274414062e-05}, /* L234 */
-{1.2425397634506226e+00, 1.7404556274414062e-05,
- 1.1920928955078125e-07, -1.5020370483398438e-05,
- -3.5762786865234375e-06}, /* L235 */
-{1.1927958726882935e+00, 1.6778707504272461e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -2.3841857910156250e-06}, /* L236 */
-{1.2699459791183472e+00, 1.7940998077392578e-05,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- 2.1576881408691406e-05}, /* L237 */
-{1.3881181478500366e+00, 1.9691884517669678e-05,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -4.1723251342773438e-06}, /* L238 */
-{1.4853274822235107e+00, 2.1159648895263672e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -3.0100345611572266e-05}, /* L239 */
-{1.0768114328384399e+00, 1.5407800674438477e-05,
- 1.1920928955078125e-07, 1.8835067749023438e-05,
- 4.6610832214355469e-05}, /* L240 */
-{1.4497377872467041e+00, 2.0831823348999023e-05,
- 1.1920928955078125e-07, 3.9219856262207031e-05,
- -3.5464763641357422e-05}, /* L241 */
-{1.1290923357009888e+00, 1.6286969184875488e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- -1.5258789062500000e-05}, /* L242 */
-{1.5070230960845947e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, -5.6022405624389648e-04,
- -1.9335746765136719e-04}, /* L243 */
-{1.0819364786148071e+00, 1.5735626220703125e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -1.6748905181884766e-05}, /* L244 */
-{1.2305822372436523e+00, 1.7970800399780273e-05,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- -4.1723251342773438e-06}, /* L245 */
-{1.2052567005157471e+00, 1.7672777175903320e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -6.3180923461914062e-06}, /* L246 */
-{1.1770448684692383e+00, 1.7330050468444824e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-05,
- -4.4524669647216797e-05}, /* L247 */
-{8.1249350309371948e-01, 1.2010335922241211e-05,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- 1.2278556823730469e-05}, /* L248 */
-{1.4313074350357056e+00, 2.1263957023620605e-05,
- 1.1920928955078125e-07, 6.8068504333496094e-05,
- 8.4996223449707031e-05}, /* L249 */
-{1.3758753538131714e+00, 2.0503997802734375e-05,
- 1.1920928955078125e-07, -4.4941902160644531e-05,
- -1.3113021850585938e-05}, /* L250 */
-{1.3961406946182251e+00, 2.0891427993774414e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- 4.4107437133789062e-05}, /* L251 */
-{1.0922185182571411e+00, 1.6406178474426270e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 2.4914741516113281e-05}, /* L252 */
-{2.0036911964416504e+00, 3.0219554901123047e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-05,
- -6.3478946685791016e-05}, /* L253 */
-{1.2283130884170532e+00, 1.8596649169921875e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 2.2053718566894531e-05}, /* L254 */
-{1.5646891593933105e+00, 2.3782253265380859e-05,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -2.0861625671386719e-06}, /* L255 */
-{8.2609242200851440e-01, 1.2606382369995117e-05,
- 1.1920928955078125e-07, -7.3909759521484375e-06,
- 8.4638595581054688e-06}, /* L256 */
-{1.3677217960357666e+00, 2.0977109670639038e-05,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- -1.8006563186645508e-04}, /* L257 */
-{1.3099935054779053e+00, 2.0146369934082031e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -1.9133090972900391e-05}, /* L258 */
-{1.9681277275085449e+00, 3.0383467674255371e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -1.2099742889404297e-05}, /* L259 */
-{1.3383669853210449e+00, 2.0742416381835938e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-05,
- -5.7220458984375000e-06}, /* L260 */
-{1.9674154520034790e+00, 3.0606985092163086e-05,
- 1.1920928955078125e-07, -1.2755393981933594e-05,
- 5.4836273193359375e-06}, /* L261 */
-{1.3085529804229736e+00, 2.0436942577362061e-05,
- 1.1920928955078125e-07, -6.6220760345458984e-05,
- 2.1219253540039062e-05}, /* L262 */
-{1.2642450332641602e+00, 1.9818544387817383e-05,
- 1.1920928955078125e-07, -2.2709369659423828e-05,
- 1.2278556823730469e-05}, /* L263 */
-{9.9049341678619385e-01, 1.5586614608764648e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-05,
- 2.0980834960937500e-05}, /* L264 */
-{1.4299786090850830e+00, 2.2590160369873047e-05,
- 1.1920928955078125e-07, 6.9737434387207031e-05,
- 2.8371810913085938e-05}, /* L265 */
-{1.3213690519332886e+00, 2.0951032638549805e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- 2.8610229492187500e-05}, /* L266 */
-{1.3797768354415894e+00, 2.1964311599731445e-05,
- 1.1920928955078125e-07, 1.4901161193847656e-04,
- 2.6345252990722656e-05}, /* L267 */
-{1.1585434675216675e+00, 1.8507242202758789e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- 3.5762786865234375e-07}, /* L268 */
-{1.2386015653610229e+00, 1.9863247871398926e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- 2.2888183593750000e-05}, /* L269 */
-{8.6106866598129272e-01, 1.3858079910278320e-05,
- 1.1920928955078125e-07, 1.8954277038574219e-05,
- 7.3909759521484375e-06}, /* L270 */
-{1.3770818710327148e+00, 2.2247433662414551e-05,
- 1.1920928955078125e-07, -5.5015087127685547e-05,
- -5.1140785217285156e-05}, /* L271 */
-{8.8970291614532471e-01, 1.4424324035644531e-05,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- -4.5299530029296875e-06}, /* L272 */
-{1.2884864807128906e+00, 2.0966865122318268e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- -1.1861324310302734e-05}, /* L273 */
-{1.4032483100891113e+00, 2.2917985916137695e-05,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -6.6161155700683594e-06}, /* L274 */
-{1.3581495285034180e+00, 2.2262334823608398e-05,
- 1.1920928955078125e-07, -6.9737434387207031e-06,
- -1.6689300537109375e-06}, /* L275 */
-{1.0380054712295532e+00, 1.7076730728149414e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- 1.0728836059570312e-06}, /* L276 */
-{1.4381147623062134e+00, 2.3752450942993164e-05,
- 1.1920928955078125e-07, -1.4740228652954102e-04,
- 1.3327598571777344e-04}, /* L277 */
-{9.2417162656784058e-01, 1.5318393707275391e-05,
- 1.1920928955078125e-07, 4.0769577026367188e-05,
- -1.2224912643432617e-04}, /* L278 */
-{1.9663872718811035e+00, 3.2700598239898682e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 5.9604644775390625e-07}, /* L279 */
-{8.7850165367126465e-01, 1.4662742614746094e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- 1.6927719116210938e-05}, /* L280 */
-{1.3597855567932129e+00, 2.2776424884796143e-05,
- 1.1920928955078125e-07, -2.3365020751953125e-05,
- 2.1457672119140625e-05}, /* L281 */
-{1.2535316944122314e+00, 2.1070241928100586e-05,
- 1.1920928955078125e-07, -1.0073184967041016e-05,
- -6.2584877014160156e-06}, /* L282 */
-{1.6940252780914307e+00, 2.8580427169799805e-05,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- -2.7716159820556641e-05}, /* L283 */
-{1.7207762002944946e+00, 2.9131770133972168e-05,
- 1.1920928955078125e-07, -2.5689601898193359e-05,
- -2.3603439331054688e-05}, /* L284 */
-{1.5690516233444214e+00, 2.6658177375793457e-05,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- 2.4318695068359375e-05}, /* L285 */
-{9.3176907300949097e-01, 1.5884637832641602e-05,
- 1.1920928955078125e-07, 3.1352043151855469e-05,
- 1.2636184692382812e-05}, /* L286 */
-{1.7524996995925903e+00, 2.9981136322021484e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 9.5367431640625000e-07}, /* L287 */
-{1.4092265367507935e+00, 2.4192035198211670e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 5.7220458984375000e-06}, /* L288 */
-{1.4592931270599365e+00, 2.5138258934020996e-05,
- 1.1920928955078125e-07, -5.4240226745605469e-06,
- 8.8214874267578125e-06}, /* L289 */
-{1.1326684951782227e+00, 1.9580125808715820e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- 9.6559524536132812e-06}, /* L290 */
-{1.7203397750854492e+00, 2.9839575290679932e-05,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- -1.0132789611816406e-06}, /* L291 */
-{1.2411547899246216e+00, 2.1606683731079102e-05,
- 1.1920928955078125e-07, 5.3405761718750000e-05,
- -1.3780593872070312e-04}, /* L292 */
-{1.3279527425765991e+00, 2.3193657398223877e-05,
- 1.1920928955078125e-07, -3.6418437957763672e-05,
- 7.1525573730468750e-06}, /* L293 */
-{1.2626969814300537e+00, 2.2128224372863770e-05,
- 1.1920928955078125e-07, -3.0577182769775391e-05,
- 3.5166740417480469e-05}, /* L294 */
-{1.4912158250808716e+00, 2.6226043701171875e-05,
- 1.1920928955078125e-07, -1.6570091247558594e-05,
- 5.2928924560546875e-05}, /* L295 */
-{1.5792609453201294e+00, 2.7865171432495117e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- -3.7431716918945312e-05}, /* L296 */
-{1.3803179264068604e+00, 2.4437904357910156e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-05,
- -2.6226043701171875e-05}, /* L297 */
-{1.2949305772781372e+00, 2.3007392883300781e-05,
- 1.1920928955078125e-07, -2.9683113098144531e-05,
- -1.3625621795654297e-04}, /* L298 */
-{1.7122772932052612e+00, 3.0517578125000000e-05,
- 1.1920928955078125e-07, -3.2067298889160156e-05,
- 3.8862228393554688e-05}, /* L299 */
-{1.3943964242935181e+00, 2.4944543838500977e-05,
- 1.1920928955078125e-07, -2.0599365234375000e-04,
- 2.5844573974609375e-04}, /* L300 */
-{1.4839481115341187e+00, 2.6626512408256531e-05,
- 1.1920928955078125e-07, -9.1969966888427734e-05,
- -2.3603439331054688e-05}, /* L301 */
-{1.1966172456741333e+00, 2.1542422473430634e-05,
- 1.1920928955078125e-07, -1.7285346984863281e-05,
- 2.3007392883300781e-05}, /* L302 */
-{1.4801714420318604e+00, 2.6732683181762695e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 1.9073486328125000e-06}, /* L303 */
-{8.8730728626251221e-01, 1.6078352928161621e-05,
- 1.1920928955078125e-07, -1.2516975402832031e-05,
- 1.8715858459472656e-05}, /* L304 */
-{1.4934006929397583e+00, 2.7149915695190430e-05,
- 1.1920928955078125e-07, -2.0503997802734375e-05,
- -5.9604644775390625e-06}, /* L305 */
-{1.5817629098892212e+00, 2.8878450393676758e-05,
- 1.1920928955078125e-07, 2.4461746215820312e-04,
- 4.1162967681884766e-04}, /* L306 */
-{1.4428733587265015e+00, 2.6404857635498047e-05,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- -2.1338462829589844e-05}, /* L307 */
-{1.2507926225662231e+00, 2.2962689399719238e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -7.2121620178222656e-06}, /* L308 */
-{1.3024975061416626e+00, 2.3990869522094727e-05,
- 1.1920928955078125e-07, -2.7298927307128906e-05,
- 3.6120414733886719e-05}, /* L309 */
-{9.8947024345397949e-01, 1.8283724784851074e-05,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- -5.1856040954589844e-06}, /* L310 */
-{1.3021492958068848e+00, 2.4139881134033203e-05,
- 1.1920928955078125e-07, -2.4259090423583984e-05,
- -2.0980834960937500e-05}, /* L311 */
-{1.0070807933807373e+00, 1.8730759620666504e-05,
- 1.1920928955078125e-07, 7.2002410888671875e-05,
- -1.0371208190917969e-05}, /* L312 */
-{1.3713759183883667e+00, 2.5587069103494287e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-05,
- 4.8041343688964844e-05}, /* L313 */
-{1.6591700315475464e+00, 3.1054019927978516e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- 3.4689903259277344e-05}, /* L314 */
-{1.8895976543426514e+00, 3.5479664802551270e-05,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- -1.4245510101318359e-05}, /* L315 */
-{1.6360173225402832e+00, 3.0815601348876953e-05,
- 1.1920928955078125e-07, -1.0251998901367188e-05,
- 3.5762786865234375e-06}, /* L316 */
-{1.7347766160964966e+00, 3.2782554626464844e-05,
- 1.1920928955078125e-07, 2.8848648071289062e-05,
- -1.3887882232666016e-05}, /* L317 */
-{1.3631970882415771e+00, 2.5838613510131836e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -1.0251998901367188e-05}, /* L318 */
-{1.5250338315963745e+00, 2.8997659683227539e-05,
- 1.1920928955078125e-07, -6.9737434387207031e-06,
- 2.1338462829589844e-05}, /* L319 */
-{1.2937122583389282e+00, 2.4676322937011719e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -2.6226043701171875e-06}, /* L320 */
-{1.2668468952178955e+00, 2.4244189262390137e-05,
- 1.1920928955078125e-07, -2.0450353622436523e-04,
- 6.2704086303710938e-05}, /* L321 */
-{1.3446707725524902e+00, 2.5808811187744141e-05,
- 1.1920928955078125e-07, 1.2755393981933594e-05,
- 3.2544136047363281e-05}, /* L322 */
-{1.5656805038452148e+00, 3.0147377401590347e-05,
- 1.1920928955078125e-07, -3.1173229217529297e-05,
- 2.0265579223632812e-06}, /* L323 */
-{9.7515469789505005e-01, 1.8835067749023438e-05,
- 1.1920928955078125e-07, 3.6478042602539062e-05,
- 5.7220458984375000e-06}, /* L324 */
-{1.4139997959136963e+00, 2.7395784854888916e-05,
- 1.1920928955078125e-07, -2.7537345886230469e-05,
- -1.9729137420654297e-05}, /* L325 */
-{1.2921580076217651e+00, 2.5108456611633301e-05,
- 1.1920928955078125e-07, -2.7418136596679688e-06,
- -1.0550022125244141e-05}, /* L326 */
-{1.5915480852127075e+00, 3.1031668186187744e-05,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- 9.5367431640625000e-07}, /* L327 */
-{1.0167046785354614e+00, 1.9878149032592773e-05,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 7.7843666076660156e-05}, /* L328 */
-{1.3880305290222168e+00, 2.7220696210861206e-05,
- 1.1920928955078125e-07, -1.4781951904296875e-05,
- 1.0728836059570312e-05}, /* L329 */
-{1.2407928705215454e+00, 2.4408102035522461e-05,
- 1.1920928955078125e-07, -1.0573863983154297e-04,
- -9.4175338745117188e-06}, /* L330 */
-{1.5777361392974854e+00, 3.1128525733947754e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 9.2983245849609375e-06}, /* L331 */
-{1.0602152347564697e+00, 2.0980834960937500e-05,
- 1.1920928955078125e-07, 3.1828880310058594e-05,
- 6.4373016357421875e-06}, /* L332 */
-{1.3769810199737549e+00, 2.7358531951904297e-05,
- 1.1920928955078125e-07, -2.3442506790161133e-04,
- -5.3519010543823242e-04}, /* L333 */
-{1.3866982460021973e+00, 2.7626752853393555e-05,
- 1.1920928955078125e-07, -1.9919872283935547e-04,
- -4.0769577026367188e-05}, /* L334 */
-{2.2314548492431641e+00, 4.4584274291992188e-05,
- 1.1920928955078125e-07, 1.8298625946044922e-04,
- 8.4161758422851562e-05}, /* L335 */
-{1.0252518653869629e+00, 2.0533800125122070e-05,
- 1.1920928955078125e-07, -1.4483928680419922e-05,
- 1.2397766113281250e-05}, /* L336 */
-{1.2571254968643188e+00, 2.5272369384765625e-05,
- 1.1920928955078125e-07, 1.5103816986083984e-04,
- -2.7364492416381836e-04}, /* L337 */
-{2.4185619354248047e+00, 4.8726797103881836e-05,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 1.7881393432617188e-06}, /* L338 */
-{1.6487299203872681e+00, 3.3318996429443359e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-05,
- -4.8995018005371094e-05}, /* L339 */
-{1.5366488695144653e+00, 3.1143426895141602e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 2.3603439331054688e-05}, /* L340 */
-{1.2910223007202148e+00, 2.6240944862365723e-05,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- 3.4570693969726562e-06}, /* L341 */
-{1.3638499975204468e+00, 2.7805566787719727e-05,
- 1.1920928955078125e-07, -5.0842761993408203e-05,
- -1.2874603271484375e-05}, /* L342 */
-{1.7593357563018799e+00, 3.5971403121948242e-05,
- 1.1920928955078125e-07, 6.4969062805175781e-05,
- 2.3126602172851562e-05}, /* L343 */
-{1.0851702690124512e+00, 2.2251158952713013e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -9.1791152954101562e-06}, /* L344 */
-{1.6893405914306641e+00, 3.4739205148071051e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -1.6510486602783203e-05}, /* L345 */
-{1.5395991802215576e+00, 3.1754374504089355e-05,
- 1.1920928955078125e-07, -2.0086765289306641e-05,
- 5.8889389038085938e-05}, /* L346 */
-{1.8025369644165039e+00, 3.7282705307006836e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-06,
- -2.5033950805664062e-06}, /* L347 */
-{1.0213063955307007e+00, 2.1189451217651367e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -8.2552433013916016e-05}, /* L348 */
-{1.4274803400039673e+00, 2.9698014259338379e-05,
- 1.1920928955078125e-07, 7.8678131103515625e-06,
- 5.0425529479980469e-05}, /* L349 */
-{1.4874764680862427e+00, 3.1031668186187744e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -1.1324882507324219e-06}, /* L350 */
-{1.2323276996612549e+00, 2.5782734155654907e-05,
- 1.1920928955078125e-07, -1.0669231414794922e-05,
- 1.3113021850585938e-06}, /* L351 */
-{1.1558399200439453e+00, 2.4251639842987061e-05,
- 1.1920928955078125e-07, -3.7133693695068359e-05,
- -3.0994415283203125e-05}, /* L352 */
-{1.5928018093109131e+00, 3.3516436815261841e-05,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- 3.6716461181640625e-05}, /* L353 */
-{1.5775300264358521e+00, 3.3289194107055664e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- -1.1241436004638672e-04}, /* L354 */
-{1.7656648159027100e+00, 3.7372112274169922e-05,
- 1.1920928955078125e-07, 2.5749206542968750e-05,
- 2.9087066650390625e-04}, /* L355 */
-{1.5403403043746948e+00, 3.2693147659301758e-05,
- 1.1920928955078125e-07, 9.2506408691406250e-05,
- 5.0902366638183594e-05}, /* L356 */
-{2.0307791233062744e+00, 4.3213367462158203e-05,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- 1.7762184143066406e-05}, /* L357 */
-{1.1064735651016235e+00, 2.3610889911651611e-05,
- 1.1920928955078125e-07, -1.2636184692382812e-05,
- 3.9339065551757812e-06}, /* L358 */
-{1.9712550640106201e+00, 4.2185187339782715e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-05,
- -1.9788742065429688e-05}, /* L359 */
-{1.6364184617996216e+00, 3.5114586353302002e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- 3.2186508178710938e-06}, /* L360 */
-{1.5186941623687744e+00, 3.2678246498107910e-05,
- 1.1920928955078125e-07, 1.3947486877441406e-05,
- 7.0333480834960938e-06}, /* L361 */
-{1.8631494045257568e+00, 4.0203332901000977e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 8.3446502685546875e-07}, /* L362 */
-{1.4024899005889893e+00, 3.0346214771270752e-05,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- 5.3644180297851562e-06}, /* L363 */
-{1.2168850898742676e+00, 2.6404857635498047e-05,
- 1.1920928955078125e-07, 7.9035758972167969e-05,
- -4.6670436859130859e-05}, /* L364 */
-{1.4287465810775757e+00, 3.1083822250366211e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -9.2983245849609375e-06}, /* L365 */
-{1.5832413434982300e+00, 3.4540891647338867e-05,
- 1.1920928955078125e-07, -3.4630298614501953e-05,
- -2.1457672119140625e-05}, /* L366 */
-{1.2572484016418457e+00, 2.7507543563842773e-05,
- 1.1920928955078125e-07, -1.3768672943115234e-05,
- 3.4570693969726562e-05}, /* L367 */
-{1.2728769779205322e+00, 2.7924776077270508e-05,
- 1.1920928955078125e-07, 2.2888183593750000e-05,
- -1.8894672393798828e-05}, /* L368 */
-{1.5958453416824341e+00, 3.5099685192108154e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-05,
- 8.4638595581054688e-06}, /* L369 */
-{1.2963402271270752e+00, 2.8589740395545959e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- 1.0967254638671875e-05}, /* L370 */
-{1.4958263635635376e+00, 3.3080577850341797e-05,
- 1.1920928955078125e-07, 2.2888183593750000e-05,
- -3.4034252166748047e-05}, /* L371 */
-{1.1101927757263184e+00, 2.4616718292236328e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -6.0796737670898438e-06}, /* L372 */
-{1.6968700885772705e+00, 3.7729740142822266e-05,
- 1.1920928955078125e-07, 1.8596649169921875e-05,
- 5.5432319641113281e-05}, /* L373 */
-{1.5401507616043091e+00, 3.4406781196594238e-05,
- 1.1920928955078125e-07, 1.1200904846191406e-03,
- 1.0662078857421875e-03}, /* L374 */
-{1.5490877628326416e+00, 3.4630298614501953e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 6.1273574829101562e-05}, /* L375 */
-{1.3835726976394653e+00, 3.1009316444396973e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 1.2516975402832031e-05}, /* L376 */
-{1.5278452634811401e+00, 3.4332275390625000e-05,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- 4.0531158447265625e-06}, /* L377 */
-{1.2354429960250854e+00, 2.7842819690704346e-05,
- 1.1920928955078125e-07, 6.7710876464843750e-05,
- -2.1159648895263672e-05}, /* L378 */
-{1.8586021661758423e+00, 4.1991472244262695e-05,
- 1.1920928955078125e-07, 5.5670738220214844e-05,
- 2.8610229492187500e-05}, /* L379 */
-{1.4308124780654907e+00, 3.2408162951469421e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -1.7166137695312500e-05}, /* L380 */
-{1.8135217428207397e+00, 4.1186809539794922e-05,
- 1.1920928955078125e-07, -2.9385089874267578e-05,
- 1.8358230590820312e-05}, /* L381 */
-{1.1185842752456665e+00, 2.5469809770584106e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 1.3232231140136719e-05}, /* L382 */
-{1.5520923137664795e+00, 3.5434961318969727e-05,
- 1.1920928955078125e-07, -1.9252300262451172e-05,
- -2.3722648620605469e-05}, /* L383 */
-{1.3195593357086182e+00, 3.0219554901123047e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-04,
- -1.1658668518066406e-04}, /* L384 */
-{1.5323998928070068e+00, 3.5166740417480469e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- -2.8014183044433594e-06}, /* L385 */
-{1.2937575578689575e+00, 2.9772520065307617e-05,
- 1.1920928955078125e-07, 5.3405761718750000e-05,
- 8.9406967163085938e-05}, /* L386 */
-{1.5891233682632446e+00, 3.6656856536865234e-05,
- 1.1920928955078125e-07, -1.7762184143066406e-05,
- 1.4185905456542969e-05}, /* L387 */
-{1.4428008794784546e+00, 3.3371150493621826e-05,
- 1.1920928955078125e-07, -3.3020973205566406e-05,
- 5.8174133300781250e-05}, /* L388 */
-{1.5745214223861694e+00, 3.6507844924926758e-05,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- 1.0013580322265625e-05}, /* L389 */
-{1.4140938520431519e+00, 3.2871961593627930e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -2.1457672119140625e-06}, /* L390 */
-{1.7289836406707764e+00, 4.0296465158462524e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -3.1590461730957031e-05}, /* L391 */
-{1.2878098487854004e+00, 3.0100345611572266e-05,
- 1.1920928955078125e-07, -3.3020973205566406e-05,
- 1.6224384307861328e-04}, /* L392 */
-{1.2515516281127930e+00, 2.9318034648895264e-05,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- 2.6226043701171875e-06}, /* L393 */
-{1.3856973648071289e+00, 3.2544136047363281e-05,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- -3.3140182495117188e-05}, /* L394 */
-{1.7262631654739380e+00, 4.0650367736816406e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-05,
- -3.5464763641357422e-05}, /* L395 */
-{1.8571650981903076e+00, 4.3839216232299805e-05,
- 1.1920928955078125e-07, 5.1617622375488281e-05,
- 3.9815902709960938e-05}, /* L396 */
-{2.0099670886993408e+00, 4.7564506530761719e-05,
- 1.1920928955078125e-07, -8.9406967163085938e-06,
- -9.1195106506347656e-06}, /* L397 */
-{1.3874368667602539e+00, 3.2916665077209473e-05,
- 1.1920928955078125e-07, -2.2351741790771484e-05,
- 3.2663345336914062e-05}, /* L398 */
-{2.4343891143798828e+00, 5.7995319366455078e-05,
- 1.1920928955078125e-07, 5.6266784667968750e-05,
- 1.6331672668457031e-04}, /* L399 */
-{1.5224618911743164e+00, 3.6299228668212891e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- 2.5033950805664062e-06}, /* L400 */
-{1.4082775115966797e+00, 3.3661723136901855e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 1.4066696166992188e-05}, /* L401 */
-{1.2126153707504272e+00, 2.9057264328002930e-05,
- 1.1920928955078125e-07, 2.1815299987792969e-05,
- 3.4332275390625000e-05}, /* L402 */
-{2.5636248588562012e+00, 6.1586499214172363e-05,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- -3.7133693695068359e-05}, /* L403 */
-{1.5283277034759521e+00, 3.6805868148803711e-05,
- 1.1920928955078125e-07, -4.0054321289062500e-05,
- 3.3497810363769531e-05}, /* L404 */
-{1.6487146615982056e+00, 3.9801001548767090e-05,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- 9.2983245849609375e-06}, /* L405 */
-{1.5061186552047729e+00, 3.6448240280151367e-05,
- 1.1920928955078125e-07, -1.1026859283447266e-05,
- -4.5299530029296875e-06}, /* L406 */
-{1.7836228609085083e+00, 4.3271276808809489e-05,
- 1.1920928955078125e-07, -3.8325786590576172e-05,
- -2.0325183868408203e-05}, /* L407 */
-{1.5133095979690552e+00, 3.6835670471191406e-05,
- 1.1920928955078125e-07, 4.3869018554687500e-05,
- 1.2993812561035156e-04}, /* L408 */
-{1.3993221521377563e+00, 3.4123659133911133e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-05,
- 9.1314315795898438e-05}, /* L409 */
-{2.0421807765960693e+00, 4.9918889999389648e-05,
- 1.1920928955078125e-07, -5.6684017181396484e-05,
- -4.8995018005371094e-05}, /* L410 */
-{2.0139575004577637e+00, 4.9339607357978821e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 1.8358230590820312e-05}, /* L411 */
-{1.2693790197372437e+00, 3.1173229217529297e-05,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- 1.1563301086425781e-05}, /* L412 */
-{1.6149556636810303e+00, 3.9756298065185547e-05,
- 1.1920928955078125e-07, 3.6716461181640625e-05,
- 6.6757202148437500e-06}, /* L413 */
-{2.1042048931121826e+00, 5.1930546760559082e-05,
- 1.1920928955078125e-07, 5.6266784667968750e-05,
- 1.1205673217773438e-05}, /* L414 */
-{2.3600187301635742e+00, 5.8382749557495117e-05,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -2.3245811462402344e-06}, /* L415 */
-{1.1724325418472290e+00, 2.9072165489196777e-05,
- 1.1920928955078125e-07, 1.8477439880371094e-05,
- 1.0371208190917969e-05}, /* L416 */
-{2.0010447502136230e+00, 4.9740076065063477e-05,
- 1.1920928955078125e-07, 6.1511993408203125e-05,
- 5.8412551879882812e-05}, /* L417 */
-{1.4965070486068726e+00, 3.7312507629394531e-05,
- 1.1920928955078125e-07, -2.0438432693481445e-04,
- -7.8082084655761719e-06}, /* L418 */
-{1.8993338346481323e+00, 4.7437846660614014e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.1146068572998047e-05}, /* L419 */
-{1.3320710659027100e+00, 3.3348798751831055e-05,
- 1.1920928955078125e-07, -3.8444995880126953e-05,
- -1.8596649169921875e-05}, /* L420 */
-{1.5037709474563599e+00, 3.7744641304016113e-05,
- 1.1920928955078125e-07, -1.4638900756835938e-04,
- -4.1842460632324219e-05}, /* L421 */
-{1.2178124189376831e+00, 3.0636787414550781e-05,
- 1.1920928955078125e-07, -4.7385692596435547e-05,
- 3.4809112548828125e-05}, /* L422 */
-{2.2716977596282959e+00, 5.7280063629150391e-05,
- 1.1920928955078125e-07, -3.5643577575683594e-05,
- -8.0466270446777344e-06}, /* L423 */
-{1.2428482770919800e+00, 3.1411647796630859e-05,
- 1.1920928955078125e-07, -4.5359134674072266e-05,
- -4.0531158447265625e-06}, /* L424 */
-{1.5208196640014648e+00, 3.8526952266693115e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- 1.1801719665527344e-05}, /* L425 */
-{1.5707828998565674e+00, 3.9894133806228638e-05,
- 1.1920928955078125e-07, 9.6559524536132812e-05,
- 1.2028217315673828e-04}, /* L426 */
-{2.5501470565795898e+00, 6.4909458160400391e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 2.1576881408691406e-05}, /* L427 */
-{1.5723862648010254e+00, 4.0113925933837891e-05,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- 1.5377998352050781e-05}, /* L428 */
-{1.3853552341461182e+00, 3.5446137189865112e-05,
- 1.1920928955078125e-07, -1.3124942779541016e-04,
- 1.3113021850585938e-05}, /* L429 */
-{1.6110064983367920e+00, 4.1291117668151855e-05,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- 8.3446502685546875e-07}, /* L430 */
-{1.6875528097152710e+00, 4.3392181396484375e-05,
- 1.1920928955078125e-07, -2.8336048126220703e-04,
- -2.4873018264770508e-04}, /* L431 */
-{1.2580647468566895e+00, 3.2395124435424805e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 3.2186508178710938e-06}, /* L432 */
-{1.3020370006561279e+00, 3.3609569072723389e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 2.5153160095214844e-05}, /* L433 */
-{1.5356587171554565e+00, 3.9726495742797852e-05,
- 1.1920928955078125e-07, -3.2186508178710938e-06,
- 3.7431716918945312e-05}, /* L434 */
-{1.4221168756484985e+00, 3.6875717341899872e-05,
- 1.1920928955078125e-07, 2.8729438781738281e-05,
- 2.4676322937011719e-05}, /* L435 */
-{1.5804789066314697e+00, 4.1082501411437988e-05,
- 1.1920928955078125e-07, -1.6260147094726562e-04,
- -1.3589859008789062e-05}, /* L436 */
-{2.1990342140197754e+00, 5.7280063629150391e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -1.3113021850585938e-05}, /* L437 */
-{1.4281648397445679e+00, 3.7290155887603760e-05,
- 1.1920928955078125e-07, -1.1807680130004883e-04,
- -1.6748905181884766e-05}, /* L438 */
-{1.7788007259368896e+00, 4.6551227569580078e-05,
- 1.1920928955078125e-07, 4.7206878662109375e-05,
- -4.3511390686035156e-06}, /* L439 */
-{1.4165672063827515e+00, 3.7156045436859131e-05,
- 1.1920928955078125e-07, 6.9975852966308594e-05,
- 1.5497207641601562e-06}, /* L440 */
-{1.5724385976791382e+00, 4.1335821151733398e-05,
- 1.1920928955078125e-07, 3.6120414733886719e-05,
- 4.0292739868164062e-05}, /* L441 */
-{1.5191972255706787e+00, 4.0024518966674805e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- -3.5166740417480469e-06}, /* L442 */
-{2.3227202892303467e+00, 6.1333179473876953e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 1.8596649169921875e-05}, /* L443 */
-{1.1730588674545288e+00, 3.1054019927978516e-05,
- 1.1920928955078125e-07, -1.8000602722167969e-05,
- 1.8119812011718750e-05}, /* L444 */
-{1.8870326280593872e+00, 5.0053000450134277e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 5.8412551879882812e-06}, /* L445 */
-{1.3317126035690308e+00, 3.5405158996582031e-05,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- 2.7894973754882812e-05}, /* L446 */
-{1.9164794683456421e+00, 5.1066279411315918e-05,
- 1.1920928955078125e-07, 3.2305717468261719e-05,
- 1.0371208190917969e-05}, /* L447 */
-{1.2008755207061768e+00, 3.2067298889160156e-05,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- -2.9802322387695312e-07}, /* L448 */
-{1.8592894077301025e+00, 4.9762427806854248e-05,
- 1.1920928955078125e-07, 5.2928924560546875e-05,
- 3.0875205993652344e-05}, /* L449 */
-{1.4543038606643677e+00, 3.9011240005493164e-05,
- 1.1920928955078125e-07, -2.7179718017578125e-05,
- -1.4603137969970703e-05}, /* L450 */
-{1.3710653781890869e+00, 3.6863610148429871e-05,
- 1.1920928955078125e-07, 4.6014785766601562e-05,
- -4.5657157897949219e-05}, /* L451 */
-{1.3317747116088867e+00, 3.5881996154785156e-05,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- -9.6559524536132812e-06}, /* L452 */
-{1.8977129459381104e+00, 5.1245093345642090e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- 1.9907951354980469e-05}, /* L453 */
-{1.4655789136886597e+00, 3.9666891098022461e-05,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 8.1777572631835938e-05}, /* L454 */
-{2.4006447792053223e+00, 6.5118074417114258e-05,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 1.7762184143066406e-05}, /* L455 */
-{1.3473154306411743e+00, 3.6627054214477539e-05,
- 1.1920928955078125e-07, -2.8789043426513672e-05,
- -4.3869018554687500e-05}, /* L456 */
-{1.3899849653244019e+00, 3.7863850593566895e-05,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- 7.5101852416992188e-06}, /* L457 */
-{1.6185790300369263e+00, 4.4196844100952148e-05,
- 1.1920928955078125e-07, 4.6610832214355469e-05,
- 5.6624412536621094e-05}, /* L458 */
-{2.2405581474304199e+00, 6.1303377151489258e-05,
- 1.1920928955078125e-07, -5.1379203796386719e-05,
- -5.2452087402343750e-05}, /* L459 */
-{1.3464591503143311e+00, 3.6926008760929108e-05,
- 1.1920928955078125e-07, -1.0323524475097656e-04,
- 1.1920928955078125e-07}, /* L460 */
-{1.4822196960449219e+00, 4.0739774703979492e-05,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- 1.1920928955078125e-07}, /* L461 */
-{1.5725692510604858e+00, 4.3317675590515137e-05,
- 1.1920928955078125e-07, -1.8656253814697266e-05,
- -5.8352947235107422e-05}, /* L462 */
-{2.0267581939697266e+00, 5.5938959121704102e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 7.1525573730468750e-07}, /* L463 */
-{1.2160104513168335e+00, 3.3646821975708008e-05,
- 1.1920928955078125e-07, -8.4102153778076172e-05,
- -1.3709068298339844e-04}, /* L464 */
-{1.9386088848114014e+00, 5.3733587265014648e-05,
- 1.1920928955078125e-07, -1.3411045074462891e-05,
- 3.3378601074218750e-06}, /* L465 */
-{1.3389012813568115e+00, 3.7193298339843750e-05,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- -2.2888183593750000e-05}, /* L466 */
-{2.3745849132537842e+00, 6.6101551055908203e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- 6.5565109252929688e-06}, /* L467 */
-{1.2000545263290405e+00, 3.3490359783172607e-05,
- 1.1920928955078125e-07, -9.9718570709228516e-05,
- 1.0073184967041016e-04}, /* L468 */
-{1.6820694208145142e+00, 4.7028064727783203e-05,
- 1.1920928955078125e-07, -9.2327594757080078e-05,
- -3.9219856262207031e-05}, /* L469 */
-{1.5945889949798584e+00, 4.4673681259155273e-05,
- 1.1920928955078125e-07, 3.3497810363769531e-05,
- -2.0325183868408203e-05}, /* L470 */
-{1.7134709358215332e+00, 4.8352405428886414e-05,
- 1.1920928955078125e-07, -1.5119314193725586e-03,
- 5.5122375488281250e-04}, /* L471 */
-{2.0623269081115723e+00, 5.8025121688842773e-05,
- 1.1920928955078125e-07, 4.5418739318847656e-05,
- 9.6559524536132812e-06}, /* L472 */
-{1.8613817691802979e+00, 5.2481889724731445e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 2.9444694519042969e-05}, /* L473 */
-{1.7524915933609009e+00, 4.9531459808349609e-05,
- 1.1920928955078125e-07, 1.2743473052978516e-04,
- 1.3673305511474609e-04}, /* L474 */
-{2.0158240795135498e+00, 5.7101249694824219e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- 4.1842460632324219e-05}, /* L475 */
-{1.6091333627700806e+00, 4.5686960220336914e-05,
- 1.1920928955078125e-07, -2.0366907119750977e-04,
- 3.3271312713623047e-04}, /* L476 */
-{1.8048858642578125e+00, 5.1319599151611328e-05,
- 1.1920928955078125e-07, -1.2397766113281250e-05,
- 1.6570091247558594e-05}, /* L477 */
-{1.2343252897262573e+00, 3.5174190998077393e-05,
- 1.1920928955078125e-07, 6.9499015808105469e-05,
- -3.5643577575683594e-05}, /* L478 */
-{2.2608819007873535e+00, 6.4551830291748047e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 6.3180923461914062e-06}, /* L479 */
-{1.3447395563125610e+00, 3.8474798202514648e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-05,
- -1.8000602722167969e-05}, /* L480 */
-{2.2403395175933838e+00, 6.4246356487274170e-05,
- 1.1920928955078125e-07, -9.9480152130126953e-05,
- 1.2648105621337891e-04}, /* L481 */
-{1.7789937257766724e+00, 5.1110982894897461e-05,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- 1.1444091796875000e-05}, /* L482 */
-{2.1473312377929688e+00, 6.1839818954467773e-05,
- 1.1920928955078125e-07, -8.9943408966064453e-05,
- 1.5497207641601562e-05}, /* L483 */
-{1.7458072900772095e+00, 5.0365924835205078e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -2.0265579223632812e-06}, /* L484 */
-{1.6828794479370117e+00, 4.8667192459106445e-05,
- 1.1920928955078125e-07, -2.3603439331054688e-05,
- 5.2452087402343750e-06}, /* L485 */
-{1.9567462205886841e+00, 5.6684017181396484e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- 1.4424324035644531e-05}, /* L486 */
-{2.1825170516967773e+00, 6.3359737396240234e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-05,
- 3.5762786865234375e-06}, /* L487 */
-{1.3133434057235718e+00, 3.8206577301025391e-05,
- 1.1920928955078125e-07, 1.2087821960449219e-04,
- -1.1408329010009766e-04}, /* L488 */
-{1.5121370553970337e+00, 4.4077634811401367e-05,
- 1.1920928955078125e-07, -4.6849250793457031e-05,
- -2.9623508453369141e-05}, /* L489 */
-{1.5141438245773315e+00, 4.4226646423339844e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-05,
- -4.0411949157714844e-05}, /* L490 */
-{2.4876575469970703e+00, 7.2807073593139648e-05,
- 1.1920928955078125e-07, -2.8729438781738281e-05,
- 9.2983245849609375e-06}, /* L491 */
-{1.6005485057830811e+00, 4.6968460083007812e-05,
- 1.1920928955078125e-07, 3.6978721618652344e-04,
- -1.8286705017089844e-04}, /* L492 */
-{1.9228715896606445e+00, 5.6505203247070312e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -1.1920928955078125e-05}, /* L493 */
-{1.7139291763305664e+00, 5.0477683544158936e-05,
- 1.1920928955078125e-07, -5.5372714996337891e-05,
- 6.9618225097656250e-05}, /* L494 */
-{1.4171048402786255e+00, 4.1812658309936523e-05,
- 1.1920928955078125e-07, 2.6583671569824219e-05,
- -5.4240226745605469e-06}, /* L495 */
-{1.2761662006378174e+00, 3.7729740142822266e-05,
- 1.1920928955078125e-07, -1.2040138244628906e-05,
- 1.5497207641601562e-06}, /* L496 */
-{2.6397845745086670e+00, 7.8201293945312500e-05,
- 1.1920928955078125e-07, -9.8943710327148438e-06,
- 5.8412551879882812e-06}, /* L497 */
-{1.4158325195312500e+00, 4.2032450437545776e-05,
- 1.1920928955078125e-07, -6.5982341766357422e-05,
- -6.2406063079833984e-05}, /* L498 */
-{2.0969846248626709e+00, 6.2376260757446289e-05,
- 1.1920928955078125e-07, -2.7775764465332031e-05,
- -1.2755393981933594e-05}, /* L499 */
-{1.8039427995681763e+00, 5.3763389587402344e-05,
- 1.1920928955078125e-07, -1.1742115020751953e-05,
- 7.8678131103515625e-06}, /* L500 */
-{1.5367920398712158e+00, 4.5899301767349243e-05,
- 1.1920928955078125e-07, 1.1515617370605469e-04,
- -9.1016292572021484e-05}, /* L501 */
-{1.3033996820449829e+00, 3.9011240005493164e-05,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -5.1259994506835938e-05}, /* L502 */
-{2.3156929016113281e+00, 6.9588422775268555e-05,
- 1.1920928955078125e-07, 1.3076066970825195e-03,
- 1.2779235839843750e-04}, /* L503 */
-{1.3907319307327271e+00, 4.1782855987548828e-05,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- -1.8179416656494141e-05}, /* L504 */
-{1.8578191995620728e+00, 5.5924057960510254e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- 6.9141387939453125e-06}, /* L505 */
-{1.5202399492263794e+00, 4.5858323574066162e-05,
- 1.1920928955078125e-07, 1.6522407531738281e-04,
- -7.3313713073730469e-06}, /* L506 */
-{2.2042512893676758e+00, 6.6637992858886719e-05,
- 1.1920928955078125e-07, -2.8306245803833008e-04,
- -1.4406442642211914e-04}, /* L507 */
-{1.3676111698150635e+00, 4.1425228118896484e-05,
- 1.1920928955078125e-07, -1.8709897994995117e-04,
- 2.8467178344726562e-04}, /* L508 */
-{2.2085328102111816e+00, 6.7025423049926758e-05,
- 1.1920928955078125e-07, -6.9677829742431641e-05,
- 6.3657760620117188e-05}, /* L509 */
-{1.1625357866287231e+00, 3.5345554351806641e-05,
- 1.1920928955078125e-07, 5.3524971008300781e-05,
- -2.9802322387695312e-06}, /* L510 */
-{3.0369558334350586e+00, 9.2506408691406250e-05,
- 1.1920928955078125e-07, -2.5928020477294922e-05,
- -2.1874904632568359e-05}, /* L511 */
-{1.4666870832443237e+00, 4.4763088226318359e-05,
- 1.1920928955078125e-07, 1.9431114196777344e-05,
- -5.5670738220214844e-05}, /* L512 */
-{1.8086416721343994e+00, 5.5313110351562500e-05,
- 1.1920928955078125e-07, 6.2108039855957031e-05,
- -1.3709068298339844e-06}, /* L513 */
-{1.5173912048339844e+00, 4.6491622924804688e-05,
- 1.1920928955078125e-07, -2.8848648071289062e-05,
- -2.9802322387695312e-06}, /* L514 */
-{2.0600731372833252e+00, 6.3240528106689453e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 3.3378601074218750e-06}, /* L515 */
-{1.5270886421203613e+00, 4.6968460083007812e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-06,
- 9.5367431640625000e-06}, /* L516 */
-{1.7814702987670898e+00, 5.4925680160522461e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -8.5711479187011719e-05}, /* L517 */
-{1.7870476245880127e+00, 5.5178999900817871e-05,
- 1.1920928955078125e-07, 5.6862831115722656e-05,
- 1.3709068298339844e-05}, /* L518 */
-{1.9362196922302246e+00, 5.9932470321655273e-05,
- 1.1920928955078125e-07, -9.5367431640625000e-06,
- 6.0439109802246094e-05}, /* L519 */
-{1.3744274377822876e+00, 4.2602419853210449e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -1.1622905731201172e-05}, /* L520 */
-{1.7755588293075562e+00, 5.5193901062011719e-05,
- 1.1920928955078125e-07, -1.8465518951416016e-04,
- 5.6862831115722656e-05}, /* L521 */
-{1.5423601865768433e+00, 4.7996640205383301e-05,
- 1.1920928955078125e-07, 3.4213066101074219e-05,
- 4.0769577026367188e-05}, /* L522 */
-{2.1106407642364502e+00, 6.5803527832031250e-05,
- 1.1920928955078125e-07, -8.4936618804931641e-05,
- -1.1348724365234375e-04}, /* L523 */
-{1.3484805822372437e+00, 4.2130239307880402e-05,
- 1.1920928955078125e-07, 1.2183189392089844e-04,
- -5.7101249694824219e-05}, /* L524 */
-{2.1515107154846191e+00, 6.7338347434997559e-05,
- 1.1920928955078125e-07, -4.6372413635253906e-05,
- -5.5134296417236328e-05}, /* L525 */
-{1.5235549211502075e+00, 4.7773122787475586e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -1.8417835235595703e-05}, /* L526 */
-{2.2948238849639893e+00, 7.2164926677942276e-05,
- 1.1920928955078125e-07, -2.2608041763305664e-04,
- -1.3178586959838867e-04}, /* L527 */
-{1.3865612745285034e+00, 4.3647363781929016e-05,
- 1.1920928955078125e-07, -8.6069107055664062e-05,
- -9.5784664154052734e-05}, /* L528 */
-{1.6351052522659302e+00, 5.1558017730712891e-05,
- 1.1920928955078125e-07, -1.3589859008789062e-05,
- -5.8412551879882812e-06}, /* L529 */
-{1.3783016204833984e+00, 4.3586827814579010e-05,
- 1.1920928955078125e-07, 4.7290325164794922e-04,
- 7.7950954437255859e-04}, /* L530 */
-{2.0898234844207764e+00, 6.6176056861877441e-05,
- 1.1920928955078125e-07, -2.7835369110107422e-04,
- -1.9860267639160156e-04}, /* L531 */
-{1.5142804384231567e+00, 4.8041343688964844e-05,
- 1.1920928955078125e-07, -6.1571598052978516e-05,
- 4.9352645874023438e-05}, /* L532 */
-{1.8591887950897217e+00, 5.9098005294799805e-05,
- 1.1920928955078125e-07, 2.9027462005615234e-04,
- 7.2598457336425781e-05}, /* L533 */
-{1.4400160312652588e+00, 4.5835971832275391e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 6.0796737670898438e-06}, /* L534 */
-{2.1574282646179199e+00, 6.8813562393188477e-05,
- 1.1920928955078125e-07, -7.9691410064697266e-05,
- -2.3126602172851562e-05}, /* L535 */
-{1.4426114559173584e+00, 4.6091037802398205e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.3245811462402344e-05}, /* L536 */
-{2.2162671089172363e+00, 7.1138143539428711e-05,
- 1.1920928955078125e-07, -5.6475400924682617e-04,
- 6.7853927612304688e-04}, /* L537 */
-{1.6541727781295776e+00, 5.3048133850097656e-05,
- 1.1920928955078125e-07, -1.4662742614746094e-05,
- -3.2603740692138672e-05}, /* L538 */
-{1.9854556322097778e+00, 6.3791871070861816e-05,
- 1.1920928955078125e-07, 5.0783157348632812e-05,
- 2.3841857910156250e-06}, /* L539 */
-{1.3101025819778442e+00, 4.2170286178588867e-05,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- 1.9669532775878906e-05}, /* L540 */
-{2.2993505001068115e+00, 7.4148178100585938e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-05,
- -1.8239021301269531e-05}, /* L541 */
-{1.6724472045898438e+00, 5.4031610488891602e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -3.6358833312988281e-06}, /* L542 */
-{2.4509053230285645e+00, 8.0496072769165039e-05,
- 1.1920928955078125e-07, -4.5971274375915527e-03,
- 4.1446685791015625e-03}, /* L543 */
-{2.0514364242553711e+00, 6.6667795181274414e-05,
- 1.1920928955078125e-07, -1.2717247009277344e-03,
- 5.8019161224365234e-04}, /* L544 */
-{1.6620854139328003e+00, 5.4001808166503906e-05,
- 1.1920928955078125e-07, -4.8875808715820312e-06,
- -1.0490417480468750e-04}, /* L545 */
-{1.2018510103225708e+00, 3.9115548133850098e-05,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- 8.2254409790039062e-06}, /* L546 */
-{2.3513827323913574e+00, 7.6681375503540039e-05,
- 1.1920928955078125e-07, -9.0181827545166016e-05,
- -3.4332275390625000e-05}, /* L547 */
-{1.5007878541946411e+00, 4.9024820327758789e-05,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- 2.2172927856445312e-05}, /* L548 */
-{1.7560857534408569e+00, 5.7473778724670410e-05,
- 1.1920928955078125e-07, -3.1888484954833984e-05,
- 5.2809715270996094e-05}, /* L549 */
-{1.7071760892868042e+00, 5.5968761444091797e-05,
- 1.1920928955078125e-07, -1.1801719665527344e-05,
- -3.2544136047363281e-05}, /* L550 */
-{2.6837894916534424e+00, 8.8147819042205811e-05,
- 1.1920928955078125e-07, 3.8743019104003906e-05,
- -3.6954879760742188e-05}, /* L551 */
-{1.2716388702392578e+00, 4.1842460632324219e-05,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- -5.3644180297851562e-06}, /* L552 */
-{1.7954537868499756e+00, 5.9187412261962891e-05,
- 1.1920928955078125e-07, -3.3617019653320312e-05,
- -2.1815299987792969e-05}, /* L553 */
-{1.5061886310577393e+00, 4.9740076065063477e-05,
- 1.1920928955078125e-07, -2.0146369934082031e-05,
- -6.1988830566406250e-06}, /* L554 */
-{1.5370391607284546e+00, 5.0857663154602051e-05,
- 1.1920928955078125e-07, -7.5161457061767578e-05,
- -1.5389919281005859e-04}, /* L555 */
-{1.6079173088073730e+00, 5.3301453590393066e-05,
- 1.1920928955078125e-07, 1.7285346984863281e-05,
- -1.8894672393798828e-05}, /* L556 */
-{2.4315073490142822e+00, 8.0764293670654297e-05,
- 1.1920928955078125e-07, 1.3399124145507812e-04,
- -9.2327594757080078e-05}, /* L557 */
-{1.7891756296157837e+00, 5.9515237808227539e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- 2.9563903808593750e-05}, /* L558 */
-{1.9819972515106201e+00, 6.6041946411132812e-05,
- 1.1920928955078125e-07, 3.5405158996582031e-05,
- 1.5139579772949219e-05}, /* L559 */
-{1.4444957971572876e+00, 4.8220157623291016e-05,
- 1.1920928955078125e-07, -5.2094459533691406e-05,
- 1.5497207641601562e-05}, /* L560 */
-{1.8420516252517700e+00, 6.1601400375366211e-05,
- 1.1920928955078125e-07, -3.3617019653320312e-05,
- 2.7775764465332031e-05}, /* L561 */
-{1.4381561279296875e+00, 4.8181042075157166e-05,
- 1.1920928955078125e-07, -5.4299831390380859e-05,
- 8.2969665527343750e-05}, /* L562 */
-{2.0806069374084473e+00, 6.9826841354370117e-05,
- 1.1920928955078125e-07, 2.8133392333984375e-05,
- -2.8014183044433594e-05}, /* L563 */
-{1.9604377746582031e+00, 6.5915286540985107e-05,
- 1.1920928955078125e-07, 1.8954277038574219e-05,
- 7.1883201599121094e-05}, /* L564 */
-{2.2695727348327637e+00, 7.6442956924438477e-05,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- -1.5556812286376953e-05}, /* L565 */
-{1.7466779947280884e+00, 5.9038400650024414e-05,
- 1.1920928955078125e-07, -3.5881996154785156e-05,
- -2.9498338699340820e-04}, /* L566 */
-{1.7442005872726440e+00, 5.8975070714950562e-05,
- 1.1920928955078125e-07, -1.1110305786132812e-04,
- 4.5418739318847656e-05}, /* L567 */
-{1.7894632816314697e+00, 6.0588121414184570e-05,
- 1.1920928955078125e-07, -5.2094459533691406e-05,
- -2.8073787689208984e-05}, /* L568 */
-{2.1548042297363281e+00, 7.3090195655822754e-05,
- 1.1920928955078125e-07, 6.3657760620117188e-05,
- -1.2814998626708984e-05}, /* L569 */
-{1.7060735225677490e+00, 5.7965517044067383e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- 2.3841857910156250e-07}, /* L570 */
-{2.1618013381958008e+00, 7.3581933975219727e-05,
- 1.1920928955078125e-07, -3.8802623748779297e-05,
- -3.8504600524902344e-05}, /* L571 */
-{1.3312404155731201e+00, 4.5388936996459961e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- 1.2516975402832031e-05}, /* L572 */
-{2.2142436504364014e+00, 7.5668096542358398e-05,
- 1.1920928955078125e-07, 2.5498867034912109e-04,
- 1.8239021301269531e-05}, /* L573 */
-{1.8709044456481934e+00, 6.4045190811157227e-05,
- 1.1920928955078125e-07, 3.9458274841308594e-05,
- -1.3017654418945312e-04}, /* L574 */
-{1.8356981277465820e+00, 6.2920153141021729e-05,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 1.7046928405761719e-05}, /* L575 */
-{1.6269609928131104e+00, 5.6013464927673340e-05,
- 1.1920928955078125e-07, 1.1110305786132812e-04,
- 1.0514259338378906e-04}, /* L576 */
-{1.7858775854110718e+00, 6.1422586441040039e-05,
- 1.1920928955078125e-07, -2.2768974304199219e-05,
- -5.3048133850097656e-06}, /* L577 */
-{1.8405936956405640e+00, 6.3523650169372559e-05,
- 1.1920928955078125e-07, 5.2165985107421875e-04,
- 2.5284290313720703e-04}, /* L578 */
-{2.3079874515533447e+00, 7.9661607742309570e-05,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- 7.6651573181152344e-05}, /* L579 */
-{1.8419151306152344e+00, 6.3687562942504883e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 1.1789798736572266e-04}, /* L580 */
-{2.2477552890777588e+00, 7.7858567237854004e-05,
- 1.1920928955078125e-07, -6.1869621276855469e-05,
- 6.2465667724609375e-05}, /* L581 */
-{1.7050098180770874e+00, 5.9157609939575195e-05,
- 1.1920928955078125e-07, -3.8802623748779297e-05,
- 4.6849250793457031e-05}, /* L582 */
-{2.3039925098419189e+00, 8.0108642578125000e-05,
- 1.1920928955078125e-07, 2.9957294464111328e-04,
- 2.0730495452880859e-04}, /* L583 */
-{1.5177390575408936e+00, 5.2852556109428406e-05,
- 1.1920928955078125e-07, 7.9274177551269531e-05,
- 1.9466876983642578e-04}, /* L584 */
-{1.6950563192367554e+00, 5.9112906455993652e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- -1.0621547698974609e-04}, /* L585 */
-{1.9710515737533569e+00, 6.8850815296173096e-05,
- 1.1920928955078125e-07, 3.1709671020507812e-05,
- 5.0067901611328125e-06}, /* L586 */
-{2.3959603309631348e+00, 8.3833932876586914e-05,
- 1.1920928955078125e-07, 9.7751617431640625e-06,
- -1.7046928405761719e-05}, /* L587 */
-{1.3788818120956421e+00, 4.8329588025808334e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 2.2292137145996094e-05}, /* L588 */
-{2.3634390830993652e+00, 8.2980841398239136e-05,
- 1.1920928955078125e-07, -4.7445297241210938e-05,
- -6.0200691223144531e-06}, /* L589 */
-{1.3804498910903931e+00, 4.8547983169555664e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -2.6941299438476562e-05}, /* L590 */
-{2.5963325500488281e+00, 9.1463327407836914e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- -3.2544136047363281e-05}, /* L591 */
-{1.5370742082595825e+00, 5.4240226745605469e-05,
- 1.1920928955078125e-07, -1.6868114471435547e-05,
- 9.5367431640625000e-06}, /* L592 */
-{2.1293606758117676e+00, 7.5280666351318359e-05,
- 1.1920928955078125e-07, 6.9737434387207031e-05,
- -5.4955482482910156e-05}, /* L593 */
-{1.9443531036376953e+00, 6.8843364715576172e-05,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- 1.6689300537109375e-06}, /* L594 */
-{2.3206169605255127e+00, 8.2358717918395996e-05,
- 1.1920928955078125e-07, 2.7835369110107422e-04,
- 3.1340122222900391e-04}, /* L595 */
-{1.3938962221145630e+00, 4.9531459808349609e-05,
- 1.1920928955078125e-07, -6.2108039855957031e-05,
- 1.2397766113281250e-04}, /* L596 */
-{1.6709876060485840e+00, 5.9466809034347534e-05,
- 1.1920928955078125e-07, 4.1007995605468750e-05,
- -8.0466270446777344e-06}, /* L597 */
-{1.9480447769165039e+00, 6.9439411163330078e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- -9.3579292297363281e-06}, /* L598 */
-{1.9883574247360229e+00, 7.1018934249877930e-05,
- 1.1920928955078125e-07, -1.4007091522216797e-05,
- -9.3460083007812500e-05}, /* L599 */
-{1.7259039878845215e+00, 6.1810016632080078e-05,
- 1.1920928955078125e-07, 5.7673454284667969e-04,
- 7.3790550231933594e-05}, /* L600 */
-{1.9108937978744507e+00, 6.8455934524536133e-05,
- 1.1920928955078125e-07, -8.4042549133300781e-06,
- 3.5762786865234375e-06}, /* L601 */
-{1.7439814805984497e+00, 6.2584877014160156e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- 7.8201293945312500e-05}, /* L602 */
-{1.8049827814102173e+00, 6.5490603446960449e-05,
- 1.1920928955078125e-07, 8.2743167877197266e-04,
- -1.8633008003234863e-03}, /* L603 */
-{1.6707587242126465e+00, 6.0416758060455322e-05,
- 1.1920928955078125e-07, -1.7046332359313965e-03,
- 1.0573863983154297e-04}, /* L604 */
-{1.9903466701507568e+00, 7.1793794631958008e-05,
- 1.1920928955078125e-07, -4.9412250518798828e-05,
- 5.4717063903808594e-05}, /* L605 */
-{1.4825662374496460e+00, 5.3614377975463867e-05,
- 1.1920928955078125e-07, -4.2742490768432617e-04,
- 3.2675266265869141e-04}, /* L606 */
-{1.9874185323715210e+00, 7.1942806243896484e-05,
- 1.1920928955078125e-07, -2.6226043701171875e-06,
- 5.8054924011230469e-05}, /* L607 */
-{1.4613593816757202e+00, 5.2988529205322266e-05,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- -4.4524669647216797e-05}, /* L608 */
-{1.7871354818344116e+00, 6.4879655838012695e-05,
- 1.1920928955078125e-07, -6.4074993133544922e-05,
- 3.4213066101074219e-05}, /* L609 */
-{1.7850975990295410e+00, 6.4909458160400391e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -4.2498111724853516e-05}, /* L610 */
-{2.3908145427703857e+00, 8.7082386016845703e-05,
- 1.1920928955078125e-07, -6.0200691223144531e-06,
- -1.8656253814697266e-05}, /* L611 */
-{1.4707460403442383e+00, 5.3673982620239258e-05,
- 1.1920928955078125e-07, 1.2731552124023438e-04,
- 5.1259994506835938e-06}, /* L612 */
-{2.7067213058471680e+00, 9.8958611488342285e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-04,
- 3.5023689270019531e-04}, /* L613 */
-{2.8527531623840332e+00, 1.0442733764648438e-04,
- 1.1920928955078125e-07, -5.6445598602294922e-05,
- -1.9311904907226562e-05}, /* L614 */
-{2.6320235729217529e+00, 9.6499919891357422e-05,
- 1.1920928955078125e-07, -7.6770782470703125e-05,
- 3.8862228393554688e-05}, /* L615 */
-{1.3943324089050293e+00, 5.1200389862060547e-05,
- 1.1920928955078125e-07, -3.4213066101074219e-05,
- 3.4570693969726562e-06}, /* L616 */
-{2.2607085704803467e+00, 8.3148479461669922e-05,
- 1.1920928955078125e-07, -4.7445297241210938e-05,
- -1.5020370483398438e-05}, /* L617 */
-{1.6288568973541260e+00, 6.0006976127624512e-05,
- 1.1920928955078125e-07, -8.6426734924316406e-06,
- -3.0517578125000000e-05}, /* L618 */
-{2.7762379646301270e+00, 1.0246038436889648e-04,
- 1.1920928955078125e-07, -2.5272369384765625e-05,
- -9.7274780273437500e-05}, /* L619 */
-{1.6316465139389038e+00, 6.0319900512695312e-05,
- 1.1920928955078125e-07, -1.4895200729370117e-04,
- -2.4461746215820312e-04}, /* L620 */
-{2.7586290836334229e+00, 1.0213255882263184e-04,
- 1.1920928955078125e-07, -1.0043382644653320e-04,
- -5.8412551879882812e-05}, /* L621 */
-{1.7431601285934448e+00, 6.4939260482788086e-05,
- 1.1920928955078125e-07, -1.3297796249389648e-03,
- 1.1305809020996094e-03}, /* L622 */
-{1.8369126319885254e+00, 6.8247318267822266e-05,
- 1.1920928955078125e-07, 2.7406215667724609e-04,
- -1.1372566223144531e-04}, /* L623 */
-{1.3774664402008057e+00, 5.1237642765045166e-05,
- 1.1920928955078125e-07, -7.9870223999023438e-06,
- -3.0219554901123047e-05}, /* L624 */
-{2.7983446121215820e+00, 1.0426342487335205e-04,
- 1.1920928955078125e-07, 3.4928321838378906e-05,
- 3.7670135498046875e-05}, /* L625 */
-{1.6402071714401245e+00, 6.1202794313430786e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -2.4437904357910156e-06}, /* L626 */
-{2.4713215827941895e+00, 9.2566013336181641e-05,
- 1.1920928955078125e-07, -1.1307001113891602e-04,
- 2.2768974304199219e-05}, /* L627 */
-{1.7462713718414307e+00, 6.5386295318603516e-05,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- -1.3911724090576172e-04}, /* L628 */
-{2.3559808731079102e+00, 8.8393688201904297e-05,
- 1.1920928955078125e-07, 4.2200088500976562e-05,
- -1.7285346984863281e-06}, /* L629 */
-{1.8167563676834106e+00, 6.8262219429016113e-05,
- 1.1920928955078125e-07, -1.4060735702514648e-04,
- -1.0925531387329102e-04}, /* L630 */
-{2.3393247127532959e+00, 8.8008120656013489e-05,
- 1.1920928955078125e-07, -1.3071298599243164e-04,
- -4.5359134674072266e-05}, /* L631 */
-{1.8033494949340820e+00, 6.7938119173049927e-05,
- 1.1920928955078125e-07, 2.1100044250488281e-05,
- 8.3446502685546875e-06}, /* L632 */
-{1.8867778778076172e+00, 7.1197748184204102e-05,
- 1.1920928955078125e-07, 3.7431716918945312e-05,
- 2.8491020202636719e-05}, /* L633 */
-{1.8551397323608398e+00, 7.0136040449142456e-05,
- 1.1920928955078125e-07, 7.5221061706542969e-05,
- 6.6518783569335938e-05}, /* L634 */
-{3.8595054149627686e+00, 1.4609098434448242e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 1.1682510375976562e-05}, /* L635 */
-{1.8008207082748413e+00, 6.8292021751403809e-05,
- 1.1920928955078125e-07, -9.7751617431640625e-05,
- 6.6399574279785156e-05}, /* L636 */
-{1.9303689002990723e+00, 7.3313713073730469e-05,
- 1.1920928955078125e-07, -1.7285346984863281e-05,
- -1.3196468353271484e-04}, /* L637 */
-{1.8370143175125122e+00, 6.9871544837951660e-05,
- 1.1920928955078125e-07, -8.1181526184082031e-05,
- -2.2351741790771484e-05}, /* L638 */
-{2.3124203681945801e+00, 8.8127329945564270e-05,
- 1.1920928955078125e-07, 4.2510032653808594e-04,
- -1.7571449279785156e-04}, /* L639 */
-{1.4748090505599976e+00, 5.6266784667968750e-05,
- 1.1920928955078125e-07, 5.8531761169433594e-05,
- -1.0669231414794922e-05}, /* L640 */
-{1.9966857433319092e+00, 7.6293945312500000e-05,
- 1.1920928955078125e-07, 3.6239624023437500e-05,
- 3.9339065551757812e-06}, /* L641 */
-{1.9933245182037354e+00, 7.6282769441604614e-05,
- 1.1920928955078125e-07, 2.9087066650390625e-05,
- 3.4809112548828125e-05}, /* L642 */
-{2.4898464679718018e+00, 9.5456838607788086e-05,
- 1.1920928955078125e-07, 6.0915946960449219e-05,
- 3.0398368835449219e-05}, /* L643 */
-{1.6159691810607910e+00, 6.2033534049987793e-05,
- 1.1920928955078125e-07, -2.1815299987792969e-05,
- 1.0490417480468750e-05}, /* L644 */
-{2.0833256244659424e+00, 8.0108642578125000e-05,
- 1.1920928955078125e-07, 8.6665153503417969e-05,
- 3.4689903259277344e-05}, /* L645 */
-{2.3369553089141846e+00, 9.0003013610839844e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -4.9114227294921875e-05}, /* L646 */
-{2.3951621055603027e+00, 9.2379748821258545e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -7.2717666625976562e-06}, /* L647 */
-{1.2481511831283569e+00, 4.8220157623291016e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- 3.6478042602539062e-05}, /* L648 */
-{2.2499496936798096e+00, 8.7052583694458008e-05,
- 1.1920928955078125e-07, -1.4799833297729492e-04,
- -1.0013580322265625e-04}, /* L649 */
-{1.8559933900833130e+00, 7.1913003921508789e-05,
- 1.1920928955078125e-07, -3.2484531402587891e-05,
- -6.1869621276855469e-05}, /* L650 */
-{2.1904718875885010e+00, 8.5011124610900879e-05,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 4.3034553527832031e-05}, /* L651 */
-{1.6025838851928711e+00, 6.2286853790283203e-05,
- 1.1920928955078125e-07, -3.0755996704101562e-05,
- 3.4451484680175781e-05}, /* L652 */
-{2.5568289756774902e+00, 9.9532306194305420e-05,
- 1.1920928955078125e-07, -7.7545642852783203e-05,
- -1.5079975128173828e-05}, /* L653 */
-{1.9730626344680786e+00, 7.6919794082641602e-05,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- -4.3213367462158203e-05}, /* L654 */
-{1.9240230321884155e+00, 7.5131654739379883e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- 5.4121017456054688e-05}, /* L655 */
-{1.7810435295104980e+00, 6.9648027420043945e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 5.1617622375488281e-05}, /* L656 */
-{2.1155066490173340e+00, 8.2850456237792969e-05,
- 1.1920928955078125e-07, 2.8014183044433594e-05,
- 3.2305717468261719e-05}, /* L657 */
-{1.9378193616867065e+00, 7.6010823249816895e-05,
- 1.1920928955078125e-07, -1.9133090972900391e-05,
- -1.1444091796875000e-05}, /* L658 */
-{2.7807533740997314e+00, 1.0924041271209717e-04,
- 1.1920928955078125e-07, -4.7922134399414062e-05,
- -4.7087669372558594e-06}, /* L659 */
-{1.5256022214889526e+00, 6.0021877288818359e-05,
- 1.1920928955078125e-07, -6.3180923461914062e-05,
- 4.1961669921875000e-05}, /* L660 */
-{2.1896607875823975e+00, 8.6277723312377930e-05,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- 1.2278556823730469e-05}, /* L661 */
-{2.0162217617034912e+00, 7.9572200775146484e-05,
- 1.1920928955078125e-07, -9.3996524810791016e-05,
- -3.5881996154785156e-05}, /* L662 */
-{2.1008908748626709e+00, 8.3051621913909912e-05,
- 1.1920928955078125e-07, -1.6987323760986328e-04,
- -1.6236305236816406e-04}, /* L663 */
-{1.7407966852188110e+00, 6.8902969360351562e-05,
- 1.1920928955078125e-07, -1.4722347259521484e-05,
- -1.1265277862548828e-05}, /* L664 */
-{2.4315497875213623e+00, 9.6388161182403564e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- 9.2983245849609375e-06}, /* L665 */
-{1.7519711256027222e+00, 6.9595873355865479e-05,
- 1.1920928955078125e-07, -8.2373619079589844e-05,
- -3.6007165908813477e-04}, /* L666 */
-{2.4825921058654785e+00, 9.8705291748046875e-05,
- 1.1920928955078125e-07, 3.3020973205566406e-05,
- 1.7642974853515625e-05}, /* L667 */
-{1.5303808450698853e+00, 6.0975551605224609e-05,
- 1.1920928955078125e-07, -1.1175870895385742e-04,
- 2.0432472229003906e-04}, /* L668 */
-{2.3125510215759277e+00, 9.2267990112304688e-05,
- 1.1920928955078125e-07, 6.6995620727539062e-05,
- -2.3835897445678711e-04}, /* L669 */
-{2.0886664390563965e+00, 8.3431601524353027e-05,
- 1.1920928955078125e-07, -1.1372566223144531e-04,
- -1.3327598571777344e-04}, /* L670 */
-{2.3472390174865723e+00, 9.5456838607788086e-05,
- 1.1920928955078125e-07, 3.6084651947021484e-04,
- -3.2727122306823730e-03}, /* L671 */
-{2.0952439308166504e+00, 8.3936378359794617e-05,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 6.5207481384277344e-05}, /* L672 */
-{2.1770398616790771e+00, 8.7350606918334961e-05,
- 1.1920928955078125e-07, -1.7464160919189453e-05,
- -1.8179416656494141e-05}, /* L673 */
-{2.8498134613037109e+00, 1.1450052261352539e-04,
- 1.1920928955078125e-07, 6.3538551330566406e-05,
- 7.8678131103515625e-06}, /* L674 */
-{3.1004405021667480e+00, 1.2475252151489258e-04,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 2.6226043701171875e-05}, /* L675 */
-{1.6099783182144165e+00, 6.4879655838012695e-05,
- 1.1920928955078125e-07, -4.3690204620361328e-05,
- 5.9604644775390625e-06}, /* L676 */
-{2.2635099887847900e+00, 9.1344118118286133e-05,
- 1.1920928955078125e-07, -9.8347663879394531e-06,
- 2.8848648071289062e-05}, /* L677 */
-{1.6539982557296753e+00, 6.6876411437988281e-05,
- 1.1920928955078125e-07, -1.9544363021850586e-04,
- 5.0544738769531250e-05}, /* L678 */
-{2.2127783298492432e+00, 8.9660286903381348e-05,
- 1.1920928955078125e-07, 1.7976760864257812e-04,
- 3.5607814788818359e-04}, /* L679 */
-{1.4657518863677979e+00, 5.9753656387329102e-05,
- 1.1920928955078125e-07, 7.4589252471923828e-04,
- 4.5680999755859375e-04}, /* L680 */
-{1.9130889177322388e+00, 7.7694654464721680e-05,
- 1.1920928955078125e-07, -3.0750036239624023e-04,
- 4.3272972106933594e-05}, /* L681 */
-{1.7308281660079956e+00, 7.0363283157348633e-05,
- 1.1920928955078125e-07, 1.2159347534179688e-05,
- -4.1723251342773438e-07}, /* L682 */
-{1.9175970554351807e+00, 7.8082084655761719e-05,
- 1.1920928955078125e-07, -7.1883201599121094e-05,
- 1.1563301086425781e-05}, /* L683 */
-{1.8842948675155640e+00, 7.6860189437866211e-05,
- 1.1920928955078125e-07, -2.4259090423583984e-05,
- -1.7738342285156250e-04}, /* L684 */
-{2.1867656707763672e+00, 8.9317560195922852e-05,
- 1.1920928955078125e-07, -1.9562244415283203e-04,
- 5.3644180297851562e-06}, /* L685 */
-{1.6977097988128662e+00, 6.9431960582733154e-05,
- 1.1920928955078125e-07, -3.6060810089111328e-05,
- 5.2928924560546875e-05}, /* L686 */
-{2.2725753784179688e+00, 9.3064270913600922e-05,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 1.2278556823730469e-05}, /* L687 */
-{1.5364320278167725e+00, 6.3009560108184814e-05,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- 2.5749206542968750e-05}, /* L688 */
-{2.2320876121520996e+00, 9.1671943664550781e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 3.4570693969726562e-06}, /* L689 */
-{1.7632261514663696e+00, 7.2702765464782715e-05,
- 1.1920928955078125e-07, 1.6623735427856445e-03,
- 5.2082538604736328e-04}, /* L690 */
-{2.7537889480590820e+00, 1.1351704597473145e-04,
- 1.1920928955078125e-07, -6.7859888076782227e-04,
- -1.8936395645141602e-04}, /* L691 */
-{1.4956169128417969e+00, 6.1705708503723145e-05,
- 1.1920928955078125e-07, -4.3809413909912109e-05,
- 6.6280364990234375e-05}, /* L692 */
-{2.3378875255584717e+00, 9.6600502729415894e-05,
- 1.1920928955078125e-07, 2.7060508728027344e-05,
- 2.0503997802734375e-05}, /* L693 */
-{2.0343847274780273e+00, 8.4303319454193115e-05,
- 1.1920928955078125e-07, 9.5462799072265625e-04,
- 6.1273574829101562e-04}, /* L694 */
-{4.0792236328125000e+00, 1.6900897026062012e-04,
- 1.1920928955078125e-07, -4.3094158172607422e-05,
- 3.7908554077148438e-05}, /* L695 */
-{1.6330323219299316e+00, 6.7755579948425293e-05,
- 1.1920928955078125e-07, -1.4907121658325195e-04,
- 2.9444694519042969e-05}, /* L696 */
-{2.2211678028106689e+00, 9.2282891273498535e-05,
- 1.1920928955078125e-07, -1.7046928405761719e-05,
- -2.9623508453369141e-05}, /* L697 */
-{2.0481698513031006e+00, 8.5264444351196289e-05,
- 1.1920928955078125e-07, 1.4901161193847656e-04,
- 3.2460689544677734e-04}, /* L698 */
-{2.3944144248962402e+00, 9.9815428256988525e-05,
- 1.1920928955078125e-07, 6.1750411987304688e-05,
- 1.9562244415283203e-04}, /* L699 */
-{1.5096147060394287e+00, 6.3002109527587891e-05,
- 1.1920928955078125e-07, 3.9219856262207031e-05,
- -1.4251470565795898e-04}, /* L700 */
-{2.0628271102905273e+00, 8.6218118667602539e-05,
- 1.1920928955078125e-07, 1.1909008026123047e-04,
- 6.8783760070800781e-05}, /* L701 */
-{2.0175743103027344e+00, 8.4429979324340820e-05,
- 1.1920928955078125e-07, -2.0980834960937500e-05,
- -1.1134147644042969e-04}, /* L702 */
-{2.4131655693054199e+00, 1.0114908218383789e-04,
- 1.1920928955078125e-07, 5.2213668823242188e-05,
- -1.1980533599853516e-04}, /* L703 */
-{1.6637742519378662e+00, 6.9826841354370117e-05,
- 1.1920928955078125e-07, -8.8989734649658203e-05,
- 6.7353248596191406e-05}, /* L704 */
-{3.0543828010559082e+00, 1.2835860252380371e-04,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -3.0398368835449219e-06}, /* L705 */
-{1.9450997114181519e+00, 8.1866979598999023e-05,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- 1.7642974853515625e-05}, /* L706 */
-{2.0995397567749023e+00, 8.8490545749664307e-05,
- 1.1920928955078125e-07, -3.5464763641357422e-05,
- -7.7962875366210938e-05}, /* L707 */
-{1.9977114200592041e+00, 8.4310770034790039e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-05,
- -1.6689300537109375e-06}, /* L708 */
-{2.2227294445037842e+00, 9.3936920166015625e-05,
- 1.1920928955078125e-07, 1.9788742065429688e-05,
- 2.5629997253417969e-05}, /* L709 */
-{1.6377185583114624e+00, 6.9320201873779297e-05,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- -2.6285648345947266e-05}, /* L710 */
-{2.8244628906250000e+00, 1.1973083019256592e-04,
- 1.1920928955078125e-07, 1.2242794036865234e-04,
- 1.2135505676269531e-04}, /* L711 */
-{1.5363007783889771e+00, 6.5207481384277344e-05,
- 1.1920928955078125e-07, -2.5570392608642578e-05,
- 3.2186508178710938e-05}, /* L712 */
-{2.1377487182617188e+00, 9.0867280960083008e-05,
- 1.1920928955078125e-07, -3.6716461181640625e-05,
- 8.9049339294433594e-05}, /* L713 */
-{1.4150725603103638e+00, 6.0232356190681458e-05,
- 1.1920928955078125e-07, 8.7022781372070312e-06,
- -4.0531158447265625e-06}, /* L714 */
-{2.7865464687347412e+00, 1.1879205703735352e-04,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- -3.9815902709960938e-05}, /* L715 */
-{1.5094395875930786e+00, 6.4432621002197266e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- 3.6120414733886719e-05}, /* L716 */
-{2.6295328140258789e+00, 1.1238455772399902e-04,
- 1.1920928955078125e-07, -3.4749507904052734e-05,
- 1.4066696166992188e-05}, /* L717 */
-{1.9356678724288940e+00, 8.2880258560180664e-05,
- 1.1920928955078125e-07, 2.8038024902343750e-04,
- -1.6182661056518555e-04}, /* L718 */
-{2.7358920574188232e+00, 1.1725723743438721e-04,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- 3.4570693969726562e-06}, /* L719 */
-{1.2291909456253052e+00, 5.2757561206817627e-05,
- 1.1920928955078125e-07, -5.1856040954589844e-05,
- 8.5234642028808594e-05}, /* L720 */
-{2.1324388980865479e+00, 9.1791152954101562e-05,
- 1.1920928955078125e-07, 3.7360191345214844e-04,
- 3.5965442657470703e-04}, /* L721 */
-{1.6886377334594727e+00, 7.2687864303588867e-05,
- 1.1920928955078125e-07, -8.2671642303466797e-05,
- 7.3909759521484375e-06}, /* L722 */
-{2.1595494747161865e+00, 9.3072652816772461e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 4.0531158447265625e-06}, /* L723 */
-{1.6890690326690674e+00, 7.2896480560302734e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- -2.9265880584716797e-05}, /* L724 */
-{1.9988046884536743e+00, 8.6411833763122559e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- 1.0371208190917969e-04}, /* L725 */
-{1.9294948577880859e+00, 8.3498656749725342e-05,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- -6.6161155700683594e-06}, /* L726 */
-{2.4519760608673096e+00, 1.0631605982780457e-04,
- 1.1920928955078125e-07, -8.5234642028808594e-06,
- 1.4114379882812500e-04}, /* L727 */
-{1.6100900173187256e+00, 6.9871544837951660e-05,
- 1.1920928955078125e-07, -2.0503997802734375e-05,
- -7.2121620178222656e-06}, /* L728 */
-{2.1362409591674805e+00, 9.2834234237670898e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -4.1127204895019531e-06}, /* L729 */
-{1.8197078704833984e+00, 7.9184770584106445e-05,
- 1.1920928955078125e-07, 4.2438507080078125e-05,
- -2.2888183593750000e-05}, /* L730 */
-{2.1996967792510986e+00, 9.5859169960021973e-05,
- 1.1920928955078125e-07, 9.8705291748046875e-05,
- -6.0141086578369141e-05}, /* L731 */
-{1.5839133262634277e+00, 6.9171190261840820e-05,
- 1.1920928955078125e-07, 1.7404556274414062e-04,
- 4.4345855712890625e-05}, /* L732 */
-{2.0744819641113281e+00, 9.0658664703369141e-05,
- 1.1920928955078125e-07, 1.9669532775878906e-05,
- -1.0663270950317383e-04}, /* L733 */
-{1.8907376527786255e+00, 8.2731246948242188e-05,
- 1.1920928955078125e-07, -1.0371208190917969e-05,
- -4.7802925109863281e-05}, /* L734 */
-{3.3951334953308105e+00, 1.4898180961608887e-04,
- 1.1920928955078125e-07, -2.6124715805053711e-04,
- -2.7483701705932617e-04}, /* L735 */
-{1.7810654640197754e+00, 7.8141689300537109e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.7046928405761719e-05}, /* L736 */
-{3.0839347839355469e+00, 1.3572350144386292e-04,
- 1.1920928955078125e-07, -4.8828125000000000e-04,
- 8.5234642028808594e-05}, /* L737 */
-{1.9401886463165283e+00, 8.5353851318359375e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- 2.4914741516113281e-05}, /* L738 */
-{2.7673704624176025e+00, 1.2192130088806152e-04,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- 1.8477439880371094e-05}, /* L739 */
-{1.9015370607376099e+00, 8.3878636360168457e-05,
- 1.1920928955078125e-07, -1.2695789337158203e-05,
- 1.5377998352050781e-05}, /* L740 */
-{2.4398326873779297e+00, 1.0776519775390625e-04,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- 4.1723251342773438e-06}, /* L741 */
-{1.6845250129699707e+00, 7.4520707130432129e-05,
- 1.1920928955078125e-07, -1.7058849334716797e-04,
- 2.0265579223632812e-06}, /* L742 */
-{2.5516557693481445e+00, 1.1345744132995605e-04,
- 1.1920928955078125e-07, -4.4018030166625977e-04,
- 1.4274120330810547e-03}, /* L743 */
-{1.7672315835952759e+00, 7.8395009040832520e-05,
- 1.1920928955078125e-07, -3.5047531127929688e-05,
- -1.0406970977783203e-04}, /* L744 */
-{2.6138420104980469e+00, 1.1608004570007324e-04,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- -7.4505805969238281e-06}, /* L745 */
-{2.3424012660980225e+00, 1.0417401790618896e-04,
- 1.1920928955078125e-07, 2.9921531677246094e-05,
- 1.0752677917480469e-04}, /* L746 */
-{2.3975749015808105e+00, 1.0676309466362000e-04,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 6.2465667724609375e-05}, /* L747 */
-{2.1133503913879395e+00, 9.4242393970489502e-05,
- 1.1920928955078125e-07, 4.8518180847167969e-05,
- -1.6748905181884766e-05}, /* L748 */
-{2.5798931121826172e+00, 1.1518597602844238e-04,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- 1.1920928955078125e-06}, /* L749 */
-{2.2594521045684814e+00, 1.0105967521667480e-04,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 1.3637542724609375e-04}, /* L750 */
-{1.9470717906951904e+00, 8.7261199951171875e-05,
- 1.1920928955078125e-07, -8.6784362792968750e-05,
- 4.6741962432861328e-04}, /* L751 */
-{1.7472351789474487e+00, 7.8320503234863281e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -1.0848045349121094e-05}, /* L752 */
-{2.0101485252380371e+00, 9.0241432189941406e-05,
- 1.1920928955078125e-07, -5.8710575103759766e-05,
- 1.0490417480468750e-05}, /* L753 */
-{1.7829821109771729e+00, 8.0138444900512695e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -2.2709369659423828e-05}, /* L754 */
-{2.6903393268585205e+00, 1.2108683586120605e-04,
- 1.1920928955078125e-07, 4.7683715820312500e-05,
- 4.1961669921875000e-05}, /* L755 */
-{1.7843345403671265e+00, 8.0425292253494263e-05,
- 1.1920928955078125e-07, 5.6147575378417969e-05,
- -1.1181831359863281e-04}, /* L756 */
-{2.3274538516998291e+00, 1.0505318641662598e-04,
- 1.1920928955078125e-07, -1.0669231414794922e-05,
- -1.1920928955078125e-06}, /* L757 */
-{1.9771937131881714e+00, 8.9362263679504395e-05,
- 1.1920928955078125e-07, -2.6702880859375000e-05,
- -4.5537948608398438e-05}, /* L758 */
-{2.7890956401824951e+00, 1.2621283531188965e-04,
- 1.1920928955078125e-07, 2.5033950805664062e-05,
- 7.6889991760253906e-05}, /* L759 */
-{1.7480808496475220e+00, 7.9199671745300293e-05,
- 1.1920928955078125e-07, 8.0823898315429688e-05,
- -5.9604644775390625e-07}, /* L760 */
-{2.9911832809448242e+00, 1.3568997383117676e-04,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- -2.0861625671386719e-06}, /* L761 */
-{1.8303513526916504e+00, 8.3148479461669922e-05,
- 1.1920928955078125e-07, -1.0305643081665039e-04,
- 9.2983245849609375e-06}, /* L762 */
-{2.6949319839477539e+00, 1.2257695198059082e-04,
- 1.1920928955078125e-07, 4.0531158447265625e-05,
- 2.6464462280273438e-05}, /* L763 */
-{1.6895449161529541e+00, 7.6958909630775452e-05,
- 1.1920928955078125e-07, -3.2305717468261719e-05,
- 1.4042854309082031e-04}, /* L764 */
-{3.4056987762451172e+00, 1.5550851821899414e-04,
- 1.1920928955078125e-07, -1.1223554611206055e-04,
- 1.6427040100097656e-04}, /* L765 */
-{2.4495143890380859e+00, 1.1184392496943474e-04,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -5.3048133850097656e-06}, /* L766 */
-{2.5848941802978516e+00, 1.1818483471870422e-04,
- 1.1920928955078125e-07, -3.6001205444335938e-05,
- -1.4483928680419922e-05}, /* L767 */
-{2.0176439285278320e+00, 9.2372298240661621e-05,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- 2.2530555725097656e-05}, /* L768 */
-{2.3942925930023193e+00, 1.0976195335388184e-04,
- 1.1920928955078125e-07, 9.9539756774902344e-05,
- -1.2958049774169922e-04}, /* L769 */
-{1.7058583498001099e+00, 7.8305602073669434e-05,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- -1.8060207366943359e-05}, /* L770 */
-{2.5134217739105225e+00, 1.1551380157470703e-04,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- 1.7881393432617188e-05}, /* L771 */
-{1.5478503704071045e+00, 7.1227550506591797e-05,
- 1.1920928955078125e-07, -1.1622905731201172e-05,
- 4.7683715820312500e-07}, /* L772 */
-{2.1693139076232910e+00, 1.0010600090026855e-04,
- 1.1920928955078125e-07, 5.9592723846435547e-04,
- -6.5481662750244141e-04}, /* L773 */
-{1.9820035696029663e+00, 9.1463327407836914e-05,
- 1.1920928955078125e-07, 1.0907649993896484e-04,
- -4.4703483581542969e-05}, /* L774 */
-{2.2255063056945801e+00, 1.0281801223754883e-04,
- 1.1920928955078125e-07, -1.8835067749023438e-05,
- -2.8014183044433594e-05}, /* L775 */
-{1.3822891712188721e+00, 6.3940882682800293e-05,
- 1.1920928955078125e-07, -3.0100345611572266e-05,
- 1.2874603271484375e-05}, /* L776 */
-{1.9860447645187378e+00, 9.1984868049621582e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- 2.9802322387695312e-06}, /* L777 */
-{2.3593161106109619e+00, 1.0944157838821411e-04,
- 1.1920928955078125e-07, 7.0571899414062500e-05,
- -4.1723251342773438e-05}, /* L778 */
-{2.2433893680572510e+00, 1.0418612509965897e-04,
- 1.1920928955078125e-07, -4.2557716369628906e-05,
- 8.1896781921386719e-05}, /* L779 */
-{1.6359589099884033e+00, 7.6066702604293823e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- -8.2850456237792969e-06}, /* L780 */
-{2.5707738399505615e+00, 1.1986494064331055e-04,
- 1.1920928955078125e-07, 4.8553943634033203e-04,
- 1.0221004486083984e-03}, /* L781 */
-{1.9820196628570557e+00, 9.2387199401855469e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 1.1920928955078125e-05}, /* L782 */
-{2.3401684761047363e+00, 1.0922551155090332e-04,
- 1.1920928955078125e-07, 3.7670135498046875e-05,
- -1.1980533599853516e-05}, /* L783 */
-{1.6318550109863281e+00, 7.6264142990112305e-05,
- 1.1920928955078125e-07, -7.6889991760253906e-06,
- 3.9458274841308594e-05}, /* L784 */
-{2.5357995033264160e+00, 1.1867284774780273e-04,
- 1.1920928955078125e-07, -3.7789344787597656e-05,
- 5.4240226745605469e-05}, /* L785 */
-{2.0611824989318848e+00, 9.6581876277923584e-05,
- 1.1920928955078125e-07, -1.0073184967041016e-05,
- -1.3709068298339844e-05}, /* L786 */
-{3.2123448848724365e+00, 1.5071034431457520e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 2.0980834960937500e-05}, /* L787 */
-{1.9692890644073486e+00, 9.2530390247702599e-05,
- 1.1920928955078125e-07, 1.1432170867919922e-04,
- -1.2034177780151367e-04}, /* L788 */
-{2.9887278079986572e+00, 1.4062225818634033e-04,
- 1.1920928955078125e-07, 6.3061714172363281e-05,
- -3.1352043151855469e-05}, /* L789 */
-{2.4770762920379639e+00, 1.1666119098663330e-04,
- 1.1920928955078125e-07, -2.6822090148925781e-05,
- 1.1920928955078125e-05}, /* L790 */
-{2.8015818595886230e+00, 1.3212859630584717e-04,
- 1.1920928955078125e-07, -1.9615888595581055e-04,
- 5.0067901611328125e-06}, /* L791 */
-{2.3255858421325684e+00, 1.0991096496582031e-04,
- 1.1920928955078125e-07, -3.3104419708251953e-04,
- 1.7869472503662109e-04}, /* L792 */
-{3.0697801113128662e+00, 1.4510750770568848e-04,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- -1.6093254089355469e-06}, /* L793 */
-{1.7849937677383423e+00, 8.4493309259414673e-05,
- 1.1920928955078125e-07, -6.6161155700683594e-05,
- 7.7247619628906250e-05}, /* L794 */
-{3.0444879531860352e+00, 1.4427304267883301e-04,
- 1.1920928955078125e-07, 2.4199485778808594e-05,
- -2.3186206817626953e-05}, /* L795 */
-{2.1075167655944824e+00, 1.0012090206146240e-04,
- 1.1920928955078125e-07, -8.1539154052734375e-05,
- 1.5676021575927734e-04}, /* L796 */
-{2.4916818141937256e+00, 1.1837482452392578e-04,
- 1.1920928955078125e-07, -1.9371509552001953e-05,
- 8.5830688476562500e-06}, /* L797 */
-{1.8148037195205688e+00, 8.6337327957153320e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -2.2351741790771484e-05}, /* L798 */
-{3.1933069229125977e+00, 1.5220046043395996e-04,
- 1.1920928955078125e-07, 4.8398971557617188e-04,
- 7.1763992309570312e-05}, /* L799 */
-{1.3372606039047241e+00, 6.3776969909667969e-05,
- 1.1920928955078125e-07, 1.8048286437988281e-04,
- -1.8656253814697266e-05}, /* L800 */
-{3.9916543960571289e+00, 1.9066035747528076e-04,
- 1.1920928955078125e-07, 1.7833709716796875e-04,
- -4.6670436859130859e-05}, /* L801 */
-{2.3603007793426514e+00, 1.1285394430160522e-04,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- -6.6757202148437500e-06}, /* L802 */
-{1.9885331392288208e+00, 9.5233321189880371e-05,
- 1.1920928955078125e-07, 1.3685226440429688e-04,
- 1.5461444854736328e-04}, /* L803 */
-{2.3989238739013672e+00, 1.1497735977172852e-04,
- 1.1920928955078125e-07, 5.0425529479980469e-05,
- -1.7702579498291016e-05}, /* L804 */
-{2.5111932754516602e+00, 1.2050569057464600e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- -1.7642974853515625e-05}, /* L805 */
-{2.0580182075500488e+00, 9.8880380392074585e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- -1.1324882507324219e-06}, /* L806 */
-{2.4943301677703857e+00, 1.1998787522315979e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- -2.1040439605712891e-05}, /* L807 */
-{2.2248876094818115e+00, 1.0716915130615234e-04,
- 1.1920928955078125e-07, -6.6161155700683594e-06,
- 1.5497207641601562e-06}, /* L808 */
-{2.2147881984710693e+00, 1.0681152343750000e-04,
- 1.1920928955078125e-07, -6.8604946136474609e-05,
- -3.0279159545898438e-05}, /* L809 */
-{1.9510658979415894e+00, 9.4205141067504883e-05,
- 1.1920928955078125e-07, 1.8715858459472656e-05,
- 1.1920928955078125e-06}, /* L810 */
-{3.2196254730224609e+00, 1.5583634376525879e-04,
- 1.1920928955078125e-07, 1.1861324310302734e-04,
- 1.6140937805175781e-04}, /* L811 */
-{2.0020999908447266e+00, 9.6917152404785156e-05,
- 1.1920928955078125e-07, -1.8119812011718750e-05,
- 3.6835670471191406e-05}, /* L812 */
-{2.4032549858093262e+00, 1.1646747589111328e-04,
- 1.1920928955078125e-07, -2.7120113372802734e-05,
- 2.4318695068359375e-05}, /* L813 */
-{2.0020823478698730e+00, 9.7155570983886719e-05,
- 1.1920928955078125e-07, -1.0901689529418945e-04,
- 7.8439712524414062e-05}, /* L814 */
-{2.8102552890777588e+00, 1.3652443885803223e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -4.6849250793457031e-05}, /* L815 */
-{2.0216007232666016e+00, 9.8347663879394531e-05,
- 1.1920928955078125e-07, 1.2063980102539062e-04,
- -5.3346157073974609e-05}, /* L816 */
-{2.7372169494628906e+00, 1.3330578804016113e-04,
- 1.1920928955078125e-07, -1.2695789337158203e-05,
- -2.6881694793701172e-05}, /* L817 */
-{1.4973278045654297e+00, 7.3015689849853516e-05,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- -2.1576881408691406e-05}, /* L818 */
-{2.4941871166229248e+00, 1.2177228927612305e-04,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- -7.4505805969238281e-06}, /* L819 */
-{2.3575308322906494e+00, 1.1527538299560547e-04,
- 1.1920928955078125e-07, 1.8358230590820312e-04,
- 2.0265579223632812e-05}, /* L820 */
-{2.6131494045257568e+00, 1.2790039181709290e-04,
- 1.1920928955078125e-07, 4.4584274291992188e-05,
- 6.7830085754394531e-05}, /* L821 */
-{2.5609104633331299e+00, 1.2549757957458496e-04,
- 1.1920928955078125e-07, 4.0650367736816406e-05,
- 5.6982040405273438e-05}, /* L822 */
-{3.2666723728179932e+00, 1.6033649444580078e-04,
- 1.1920928955078125e-07, -1.5830993652343750e-04,
- 2.5391578674316406e-05}, /* L823 */
-{2.2046937942504883e+00, 1.0830163955688477e-04,
- 1.1920928955078125e-07, -1.7470121383666992e-04,
- 1.3470649719238281e-05}, /* L824 */
-{3.1878309249877930e+00, 1.5679001808166504e-04,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- -5.6505203247070312e-05}, /* L825 */
-{2.3852458000183105e+00, 1.1745095252990723e-04,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- -7.7605247497558594e-05}, /* L826 */
-{3.1176156997680664e+00, 1.5375018119812012e-04,
- 1.1920928955078125e-07, -6.4969062805175781e-05,
- -1.6421079635620117e-04}, /* L827 */
-{2.1073515415191650e+00, 1.0401010513305664e-04,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- -6.6757202148437500e-06}, /* L828 */
-{2.8730473518371582e+00, 1.4205276966094971e-04,
- 1.1920928955078125e-07, 2.6381015777587891e-04,
- -3.4999847412109375e-04}, /* L829 */
-{2.2111196517944336e+00, 1.0943412780761719e-04,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- 1.2278556823730469e-05}, /* L830 */
-{2.9998681545257568e+00, 1.4904141426086426e-04,
- 1.1920928955078125e-07, -1.3235807418823242e-03,
- -9.4187259674072266e-04}, /* L831 */
-{2.0869169235229492e+00, 1.0350346565246582e-04,
- 1.1920928955078125e-07, -4.3570995330810547e-05,
- -1.9252300262451172e-05}, /* L832 */
-{1.9538766145706177e+00, 9.7021460533142090e-05,
- 1.1920928955078125e-07, 2.1100044250488281e-05,
- -1.0609626770019531e-05}, /* L833 */
-{2.1232428550720215e+00, 1.0567903518676758e-04,
- 1.1920928955078125e-07, -3.1679868698120117e-04,
- 6.5362453460693359e-04}, /* L834 */
-{2.3709411621093750e+00, 1.1804327368736267e-04,
- 1.1920928955078125e-07, -1.4990568161010742e-04,
- 8.3684921264648438e-05}, /* L835 */
-{2.5168671607971191e+00, 1.2543424963951111e-04,
- 1.1920928955078125e-07, 4.3034553527832031e-05,
- 1.1920928955078125e-06}, /* L836 */
-{2.8622407913208008e+00, 1.4281272888183594e-04,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- 4.5418739318847656e-05}, /* L837 */
-{1.7104443311691284e+00, 8.5443258285522461e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- -1.6987323760986328e-05}, /* L838 */
-{2.1985189914703369e+00, 1.1000037193298340e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- -1.2743473052978516e-04}, /* L839 */
-{2.2302033901214600e+00, 1.1166930198669434e-04,
- 1.1920928955078125e-07, 1.2755393981933594e-05,
- -8.8810920715332031e-06}, /* L840 */
-{2.6268432140350342e+00, 1.3169646263122559e-04,
- 1.1920928955078125e-07, -1.2087821960449219e-04,
- 9.8943710327148438e-06}, /* L841 */
-{2.0826435089111328e+00, 1.0456144809722900e-04,
- 1.1920928955078125e-07, -5.0127506256103516e-05,
- 1.1324882507324219e-05}, /* L842 */
-{2.4911823272705078e+00, 1.2518465518951416e-04,
- 1.1920928955078125e-07, 5.3882598876953125e-05,
- -5.2571296691894531e-05}, /* L843 */
-{1.8046506643295288e+00, 9.0792775154113770e-05,
- 1.1920928955078125e-07, 1.3232231140136719e-05,
- -5.3644180297851562e-06}, /* L844 */
-{2.7232024669647217e+00, 1.3718008995056152e-04,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- -1.2654066085815430e-04}, /* L845 */
-{2.2288806438446045e+00, 1.1241436004638672e-04,
- 1.1920928955078125e-07, 4.1127204895019531e-05,
- 1.8835067749023438e-05}, /* L846 */
-{2.6447989940643311e+00, 1.3354048132896423e-04,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -4.9412250518798828e-05}, /* L847 */
-{1.8789657354354858e+00, 9.5009803771972656e-05,
- 1.1920928955078125e-07, -2.0027160644531250e-04,
- -1.0466575622558594e-04}, /* L848 */
-{2.6996030807495117e+00, 1.3662874698638916e-04,
- 1.1920928955078125e-07, 1.9311904907226562e-05,
- 2.0265579223632812e-05}, /* L849 */
-{2.1260654926300049e+00, 1.0773539543151855e-04,
- 1.1920928955078125e-07, -5.7280063629150391e-05,
- -5.9604644775390625e-07}, /* L850 */
-{2.4013600349426270e+00, 1.2189149856567383e-04,
- 1.1920928955078125e-07, -3.1739473342895508e-04,
- 2.5868415832519531e-04}, /* L851 */
-{1.9587481021881104e+00, 9.9480152130126953e-05,
- 1.1920928955078125e-07, 3.6239624023437500e-05,
- 1.1563301086425781e-05}, /* L852 */
-{2.2011115550994873e+00, 1.1195242404937744e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-04,
- -1.3035535812377930e-04}, /* L853 */
-{2.3468084335327148e+00, 1.1947751045227051e-04,
- 1.1920928955078125e-07, -3.4928321838378906e-05,
- 3.0159950256347656e-05}, /* L854 */
-{2.9700644016265869e+00, 1.5153177082538605e-04,
- 1.1920928955078125e-07, -1.2534856796264648e-04,
- -5.7035684585571289e-04}, /* L855 */
-{1.8360855579376221e+00, 9.3698501586914062e-05,
- 1.1920928955078125e-07, -2.9981136322021484e-05,
- 2.9325485229492188e-05}, /* L856 */
-{2.5488147735595703e+00, 1.3020634651184082e-04,
- 1.1920928955078125e-07, -1.3589859008789062e-05,
- -2.0146369934082031e-05}, /* L857 */
-{2.2070882320404053e+00, 1.1315941810607910e-04,
- 1.1920928955078125e-07, 4.5084953308105469e-04,
- 1.2216567993164062e-03}, /* L858 */
-{2.4221556186676025e+00, 1.2406706809997559e-04,
- 1.1920928955078125e-07, -1.4007091522216797e-05,
- 5.5074691772460938e-05}, /* L859 */
-{1.8320161104202271e+00, 9.4383955001831055e-05,
- 1.1920928955078125e-07, -1.2040734291076660e-03,
- -2.1922588348388672e-04}, /* L860 */
-{2.7691118717193604e+00, 1.4213146641850471e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 1.8715858459472656e-05}, /* L861 */
-{2.2566037178039551e+00, 1.1595338582992554e-04,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -4.0590763092041016e-05}, /* L862 */
-{2.6304476261138916e+00, 1.3533234596252441e-04,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- 1.3828277587890625e-05}, /* L863 */
-{2.0245358943939209e+00, 1.0433793067932129e-04,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- -1.3595819473266602e-04}, /* L864 */
-{2.2564120292663574e+00, 1.1638551950454712e-04,
- 1.1920928955078125e-07, -1.8537044525146484e-05,
- 1.0073184967041016e-04}, /* L865 */
-{1.8740816116333008e+00, 9.6783041954040527e-05,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- 1.1324882507324219e-05}, /* L866 */
-{2.2743136882781982e+00, 1.1756364256143570e-04,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- -6.7353248596191406e-06}, /* L867 */
-{1.9123337268829346e+00, 9.8958611488342285e-05,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- -8.3744525909423828e-05}, /* L868 */
-{2.9191207885742188e+00, 1.5121698379516602e-04,
- 1.1920928955078125e-07, 3.0755996704101562e-05,
- 1.8835067749023438e-05}, /* L869 */
-{2.0496978759765625e+00, 1.0636448860168457e-04,
- 1.1920928955078125e-07, 7.5221061706542969e-05,
- -5.1558017730712891e-05}, /* L870 */
-{2.6957235336303711e+00, 1.4001131057739258e-04,
- 1.1920928955078125e-07, -1.2385845184326172e-04,
- -1.7082691192626953e-04}, /* L871 */
-{2.0378582477569580e+00, 1.0597705841064453e-04,
- 1.1920928955078125e-07, 1.7940998077392578e-04,
- 4.1365623474121094e-05}, /* L872 */
-{2.4334719181060791e+00, 1.2664496898651123e-04,
- 1.1920928955078125e-07, 7.4028968811035156e-05,
- 2.1338462829589844e-05}, /* L873 */
-{2.2756605148315430e+00, 1.1856853961944580e-04,
- 1.1920928955078125e-07, -1.1533498764038086e-04,
- 1.5616416931152344e-05}, /* L874 */
-{2.9054949283599854e+00, 1.5157461166381836e-04,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 2.1815299987792969e-05}, /* L875 */
-{1.8703428506851196e+00, 9.7706913948059082e-05,
- 1.1920928955078125e-07, 1.3864040374755859e-04,
- 3.9410591125488281e-04}, /* L876 */
-{2.2470314502716064e+00, 1.1750590056180954e-04,
- 1.1920928955078125e-07, 4.9471855163574219e-05,
- -2.3669004440307617e-04}, /* L877 */
-{2.3051726818084717e+00, 1.2065423652529716e-04,
- 1.1920928955078125e-07, 4.6730041503906250e-05,
- 9.1791152954101562e-06}, /* L878 */
-{2.8867015838623047e+00, 1.5127658843994141e-04,
- 1.1920928955078125e-07, 6.5326690673828125e-05,
- -6.5684318542480469e-05}, /* L879 */
-{2.1440656185150146e+00, 1.1274218559265137e-04,
- 1.1920928955078125e-07, -9.1916322708129883e-04,
- -3.3360719680786133e-04}, /* L880 */
-{2.0265550613403320e+00, 1.0642595589160919e-04,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- 1.0609626770019531e-05}, /* L881 */
-{1.9325404167175293e+00, 1.0172650218009949e-04,
- 1.1920928955078125e-07, -5.5015087127685547e-05,
- -2.4503469467163086e-04}, /* L882 */
-{3.0068483352661133e+00, 1.5828013420104980e-04,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- 6.4492225646972656e-05}, /* L883 */
-{2.1061928272247314e+00, 1.1101365089416504e-04,
- 1.1920928955078125e-07, -8.8214874267578125e-06,
- 1.7011165618896484e-04}, /* L884 */
-{2.7865297794342041e+00, 1.4701485633850098e-04,
- 1.1920928955078125e-07, -1.0132789611816406e-04,
- 4.2796134948730469e-05}, /* L885 */
-{2.9934539794921875e+00, 1.5810132026672363e-04,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- 3.5285949707031250e-05}, /* L886 */
-{2.7180266380310059e+00, 1.4373660087585449e-04,
- 1.1920928955078125e-07, -1.3995170593261719e-04,
- 1.5616416931152344e-05}, /* L887 */
-{2.1118438243865967e+00, 1.1178851127624512e-04,
- 1.1920928955078125e-07, 5.1021575927734375e-05,
- -2.4497509002685547e-05}, /* L888 */
-{3.2120304107666016e+00, 1.7023086547851562e-04,
- 1.1920928955078125e-07, -7.2002410888671875e-05,
- -3.6358833312988281e-05}, /* L889 */
-{1.8519880771636963e+00, 9.8258256912231445e-05,
- 1.1920928955078125e-07, -3.3378601074218750e-05,
- 4.7326087951660156e-05}, /* L890 */
-{2.8766572475433350e+00, 1.5285611152648926e-04,
- 1.1920928955078125e-07, -7.3254108428955078e-05,
- 2.1255016326904297e-04}, /* L891 */
-{2.0451710224151611e+00, 1.0874867439270020e-04,
- 1.1920928955078125e-07, -1.7702579498291016e-05,
- -2.4437904357910156e-05}, /* L892 */
-{2.8675615787506104e+00, 1.5264749526977539e-04,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- -3.0219554901123047e-05}, /* L893 */
-{2.2470982074737549e+00, 1.1977553367614746e-04,
- 1.1920928955078125e-07, -2.3961067199707031e-05,
- 1.9752979278564453e-04}, /* L894 */
-{2.6221292018890381e+00, 1.3992190361022949e-04,
- 1.1920928955078125e-07, -2.7650594711303711e-04,
- 1.1265277862548828e-04}, /* L895 */
-{2.3749089241027832e+00, 1.2686848640441895e-04,
- 1.1920928955078125e-07, -1.0508298873901367e-04,
- -6.8902969360351562e-05}, /* L896 */
-{3.1176774501800537e+00, 1.6671419143676758e-04,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- 2.1338462829589844e-05}, /* L897 */
-{2.6272430419921875e+00, 1.4066696166992188e-04,
- 1.1920928955078125e-07, 4.9233436584472656e-05,
- -1.9067525863647461e-04}, /* L898 */
-{3.1436431407928467e+00, 1.6850978136062622e-04,
- 1.1920928955078125e-07, -1.1175870895385742e-04,
- -3.6895275115966797e-05}, /* L899 */
-{1.9287583827972412e+00, 1.0347366333007812e-04,
- 1.1920928955078125e-07, -7.9870223999023438e-06,
- -2.3424625396728516e-05}, /* L900 */
-{3.0455234050750732e+00, 1.6370415687561035e-04,
- 1.1920928955078125e-07, -2.6738643646240234e-04,
- -2.5290250778198242e-04}, /* L901 */
-{2.1686995029449463e+00, 1.1670589447021484e-04,
- 1.1920928955078125e-07, -1.9842386245727539e-04,
- 1.9323825836181641e-04}, /* L902 */
-{2.9345002174377441e+00, 1.5796720981597900e-04,
- 1.1920928955078125e-07, -4.1246414184570312e-05,
- 1.6093254089355469e-05}, /* L903 */
-{2.2619423866271973e+00, 1.2189149856567383e-04,
- 1.1920928955078125e-07, -4.9173831939697266e-05,
- 3.9577484130859375e-05}, /* L904 */
-{2.3931033611297607e+00, 1.2911856174468994e-04,
- 1.1920928955078125e-07, -9.9062919616699219e-05,
- -2.4378299713134766e-05}, /* L905 */
-{2.0411784648895264e+00, 1.1023879051208496e-04,
- 1.1920928955078125e-07, 4.2200088500976562e-05,
- -7.2181224822998047e-05}, /* L906 */
-{2.8904285430908203e+00, 1.5628337860107422e-04,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -4.7624111175537109e-05}, /* L907 */
-{2.3208177089691162e+00, 1.2566894292831421e-04,
- 1.1920928955078125e-07, 8.9764595031738281e-05,
- -1.7368793487548828e-04}, /* L908 */
-{3.0294218063354492e+00, 1.6416609287261963e-04,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- 2.9444694519042969e-05}, /* L909 */
-{2.4056649208068848e+00, 1.3052299618721008e-04,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- -7.4028968811035156e-05}, /* L910 */
-{3.1367018222808838e+00, 1.7069093883037567e-04,
- 1.1920928955078125e-07, -7.4976682662963867e-04,
- -5.4562091827392578e-04}, /* L911 */
-{2.0139818191528320e+00, 1.0967254638671875e-04,
- 1.1920928955078125e-07, -7.4493885040283203e-04,
- -1.1324882507324219e-06}, /* L912 */
-{2.7138020992279053e+00, 1.4771521091461182e-04,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- -8.5949897766113281e-05}, /* L913 */
-{2.4418888092041016e+00, 1.3304874300956726e-04,
- 1.1920928955078125e-07, -3.4809112548828125e-05,
- 1.0371208190917969e-05}, /* L914 */
-{3.7893831729888916e+00, 2.0683975890278816e-04,
- 1.1920928955078125e-07, -1.9758939743041992e-04,
- 3.9696693420410156e-05}, /* L915 */
-{2.1768138408660889e+00, 1.1940300464630127e-04,
- 1.1920928955078125e-07, 2.0170211791992188e-04,
- -1.1728405952453613e-03}, /* L916 */
-{2.5981438159942627e+00, 1.4203786849975586e-04,
- 1.1920928955078125e-07, -1.3536214828491211e-04,
- 3.6120414733886719e-05}, /* L917 */
-{1.5906850099563599e+00, 8.9824199676513672e-05,
- 1.1920928955078125e-07, 6.6899061203002930e-03,
- 1.7439961433410645e-02}, /* L918 */
-{2.8634240627288818e+00, 1.5705823898315430e-04,
- 1.1920928955078125e-07, -4.9471855163574219e-05,
- 3.7384033203125000e-04}, /* L919 */
-{1.8755247592926025e+00, 1.0286271572113037e-04,
- 1.1920928955078125e-07, -4.5895576477050781e-05,
- 5.9604644775390625e-07}, /* L920 */
-{2.9060773849487305e+00, 1.5956163406372070e-04,
- 1.1920928955078125e-07, 2.9325485229492188e-05,
- -5.5253505706787109e-05}, /* L921 */
-{2.3531439304351807e+00, 1.2935698032379150e-04,
- 1.1920928955078125e-07, 1.4758110046386719e-04,
- 2.6476383209228516e-04}, /* L922 */
-{2.4112260341644287e+00, 1.3287365436553955e-04,
- 1.1920928955078125e-07, 5.1450729370117188e-04,
- 7.7247619628906250e-04}, /* L923 */
-{1.8180913925170898e+00, 1.0018795728683472e-04,
- 1.1920928955078125e-07, -2.6643276214599609e-04,
- -2.7590990066528320e-04}, /* L924 */
-{2.5250859260559082e+00, 1.3926625251770020e-04,
- 1.1920928955078125e-07, -1.2862682342529297e-04,
- 8.1896781921386719e-05}, /* L925 */
-{2.1036570072174072e+00, 1.1613965034484863e-04,
- 1.1920928955078125e-07, 7.3552131652832031e-05,
- 1.1575222015380859e-04}, /* L926 */
-{2.5690181255340576e+00, 1.4200806617736816e-04,
- 1.1920928955078125e-07, -1.1259317398071289e-04,
- -1.7285346984863281e-05}, /* L927 */
-{1.9076004028320312e+00, 1.0555982589721680e-04,
- 1.1920928955078125e-07, -1.0347366333007812e-04,
- 7.9751014709472656e-05}, /* L928 */
-{2.5927274227142334e+00, 1.4358758926391602e-04,
- 1.1920928955078125e-07, 1.2052059173583984e-04,
- -6.9320201873779297e-05}, /* L929 */
-{1.9400264024734497e+00, 1.0756775736808777e-04,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- -9.1195106506347656e-06}, /* L930 */
-{2.8743915557861328e+00, 1.5953183174133301e-04,
- 1.1920928955078125e-07, -7.9274177551269531e-06,
- -2.1934509277343750e-05}, /* L931 */
-{1.6010373830795288e+00, 8.9734792709350586e-05,
- 1.1920928955078125e-07, 8.6069107055664062e-05,
- -1.3743042945861816e-03}, /* L932 */
-{2.8563439846038818e+00, 1.5888735651969910e-04,
- 1.1920928955078125e-07, 1.0371208190917969e-05,
- -3.8146972656250000e-05}, /* L933 */
-{2.5117201805114746e+00, 1.3986229896545410e-04,
- 1.1920928955078125e-07, -1.0812282562255859e-04,
- -8.9645385742187500e-05}, /* L934 */
-{3.2137331962585449e+00, 1.7912685871124268e-04,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- 1.8358230590820312e-05}, /* L935 */
-{1.7901318073272705e+00, 9.9927186965942383e-05,
- 1.1920928955078125e-07, 1.9693374633789062e-04,
- 9.0122222900390625e-05}, /* L936 */
-{3.0969212055206299e+00, 1.7303228378295898e-04,
- 1.1920928955078125e-07, -1.5974044799804688e-05,
- -1.1980533599853516e-05}, /* L937 */
-{2.1154079437255859e+00, 1.1834502220153809e-04,
- 1.1920928955078125e-07, -2.9629468917846680e-04,
- 3.1113624572753906e-05}, /* L938 */
-{2.4293720722198486e+00, 1.3598799705505371e-04,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 2.9683113098144531e-05}, /* L939 */
-{2.1028127670288086e+00, 1.1783838272094727e-04,
- 1.1920928955078125e-07, -3.3736228942871094e-05,
- -3.4511089324951172e-05}, /* L940 */
-{3.0269474983215332e+00, 1.6981363296508789e-04,
- 1.1920928955078125e-07, -1.2743473052978516e-04,
- -3.7193298339843750e-05}, /* L941 */
-{2.6139435768127441e+00, 1.4680624008178711e-04,
- 1.1920928955078125e-07, 1.3327598571777344e-04,
- 2.0265579223632812e-06}, /* L942 */
-{3.0420391559600830e+00, 1.7100572586059570e-04,
- 1.1920928955078125e-07, -3.8087368011474609e-05,
- -1.3887882232666016e-05}, /* L943 */
-{2.3715958595275879e+00, 1.3344874605536461e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 7.7486038208007812e-06}, /* L944 */
-{2.5981159210205078e+00, 1.4635920524597168e-04,
- 1.1920928955078125e-07, -2.0027160644531250e-05,
- -4.3988227844238281e-05}, /* L945 */
-{2.2762637138366699e+00, 1.2835860252380371e-04,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- 1.0728836059570312e-06}, /* L946 */
-{2.9172880649566650e+00, 1.6474723815917969e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-04,
- 1.7917156219482422e-04}, /* L947 */
-{2.0317428112030029e+00, 1.1488795280456543e-04,
- 1.1920928955078125e-07, -1.9961595535278320e-04,
- -4.6908855438232422e-05}, /* L948 */
-{2.9287662506103516e+00, 1.6570091247558594e-04,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- 5.9604644775390625e-06}, /* L949 */
-{3.2352237701416016e+00, 1.8382072448730469e-04,
- 1.1920928955078125e-07, 2.0821094512939453e-03,
- -3.2719373703002930e-03}, /* L950 */
-{3.1679108142852783e+00, 1.7958879470825195e-04,
- 1.1920928955078125e-07, 2.0861625671386719e-05,
- -4.3213367462158203e-05}, /* L951 */
-{2.4247751235961914e+00, 1.3761967420578003e-04,
- 1.1920928955078125e-07, 4.8995018005371094e-05,
- 6.1035156250000000e-05}, /* L952 */
-{3.0834505558013916e+00, 1.7532706260681152e-04,
- 1.1920928955078125e-07, 3.3164024353027344e-04,
- -1.9454956054687500e-04}, /* L953 */
-{2.1048402786254883e+00, 1.1985376477241516e-04,
- 1.1920928955078125e-07, -8.0585479736328125e-05,
- 4.6777725219726562e-04}, /* L954 */
-{3.7013475894927979e+00, 2.1074712276458740e-04,
- 1.1920928955078125e-07, 7.7366828918457031e-05,
- 2.5916099548339844e-04}, /* L955 */
-{2.0852260589599609e+00, 1.1888146400451660e-04,
- 1.1920928955078125e-07, -3.0291080474853516e-04,
- 5.4359436035156250e-05}, /* L956 */
-{2.8978807926177979e+00, 1.6531348228454590e-04,
- 1.1920928955078125e-07, 3.4093856811523438e-05,
- 2.5629997253417969e-05}, /* L957 */
-{1.9949476718902588e+00, 1.1394917964935303e-04,
- 1.1920928955078125e-07, -1.5318393707275391e-05,
- 9.8943710327148438e-05}, /* L958 */
-{3.2161796092987061e+00, 1.8391013145446777e-04,
- 1.1920928955078125e-07, -4.4822692871093750e-05,
- -1.6051530838012695e-04}, /* L959 */
-{2.9882233142852783e+00, 1.7106533050537109e-04,
- 1.1920928955078125e-07, -1.0311603546142578e-05,
- 2.1564960479736328e-04}, /* L960 */
-{2.4838552474975586e+00, 1.4229118824005127e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -5.5968761444091797e-05}, /* L961 */
-{1.9066441059112549e+00, 1.0934472084045410e-04,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- 8.4042549133300781e-05}, /* L962 */
-{2.7954709529876709e+00, 1.6048550605773926e-04,
- 1.1920928955078125e-07, 3.1948089599609375e-05,
- -4.2319297790527344e-06}, /* L963 */
-{1.7093679904937744e+00, 9.8228454589843750e-05,
- 1.1920928955078125e-07, 3.1828880310058594e-05,
- 1.8715858459472656e-05}, /* L964 */
-{2.1437177658081055e+00, 1.2333691120147705e-04,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- -4.7862529754638672e-05}, /* L965 */
-{1.9796226024627686e+00, 1.1408329010009766e-04,
- 1.1920928955078125e-07, 1.1217594146728516e-04,
- -3.9339065551757812e-06}, /* L966 */
-{2.7062194347381592e+00, 1.5607476234436035e-04,
- 1.1920928955078125e-07, 1.7094612121582031e-04,
- 1.5413761138916016e-04}, /* L967 */
-{2.6117556095123291e+00, 1.5071034431457520e-04,
- 1.1920928955078125e-07, -1.7583370208740234e-05,
- -2.7179718017578125e-05}, /* L968 */
-{2.7224521636962891e+00, 1.5726685523986816e-04,
- 1.1920928955078125e-07, -2.0921230316162109e-05,
- -2.6106834411621094e-05}, /* L969 */
-{2.6305205821990967e+00, 1.5209615230560303e-04,
- 1.1920928955078125e-07, -3.2186508178710938e-06,
- 2.0265579223632812e-06}, /* L970 */
-{4.6135201454162598e+00, 2.6725232601165771e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- -3.4981966018676758e-04}, /* L971 */
-{1.9401804208755493e+00, 1.1244416236877441e-04,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -6.9737434387207031e-06}, /* L972 */
-{2.5621917247772217e+00, 1.4871917665004730e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 6.1869621276855469e-05}, /* L973 */
-{2.1824200153350830e+00, 1.2674182653427124e-04,
- 1.1920928955078125e-07, -1.3554096221923828e-04,
- -1.5604496002197266e-04}, /* L974 */
-{2.7141184806823730e+00, 1.5775114297866821e-04,
- 1.1920928955078125e-07, -2.3543834686279297e-05,
- -5.9604644775390625e-07}, /* L975 */
-{1.9133452177047729e+00, 1.1132284998893738e-04,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -5.2392482757568359e-05}, /* L976 */
-{3.6826095581054688e+00, 2.1448731422424316e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 5.0783157348632812e-05}, /* L977 */
-{1.9503678083419800e+00, 1.1372566223144531e-04,
- 1.1920928955078125e-07, -6.8068504333496094e-05,
- 1.3828277587890625e-05}, /* L978 */
-{3.3790235519409180e+00, 1.9723176956176758e-04,
- 1.1920928955078125e-07, -1.9848346710205078e-05,
- -1.8912553787231445e-04}, /* L979 */
-{1.6786025762557983e+00, 9.8109245300292969e-05,
- 1.1920928955078125e-07, -2.0903348922729492e-04,
- 2.5415420532226562e-04}, /* L980 */
-{3.2069649696350098e+00, 1.8772482872009277e-04,
- 1.1920928955078125e-07, -9.8109245300292969e-05,
- 2.5808811187744141e-04}, /* L981 */
-{2.2108442783355713e+00, 1.2943148612976074e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- 2.9325485229492188e-05}, /* L982 */
-{3.4959599971771240e+00, 2.0486116409301758e-04,
- 1.1920928955078125e-07, -1.5556812286376953e-05,
- -9.5367431640625000e-07}, /* L983 */
-{2.1561477184295654e+00, 1.2648105621337891e-04,
- 1.1920928955078125e-07, 3.3736228942871094e-05,
- -2.1100044250488281e-05}, /* L984 */
-{3.0553536415100098e+00, 1.7976760864257812e-04,
- 1.1920928955078125e-07, 1.2249946594238281e-03,
- -2.9432773590087891e-04}, /* L985 */
-{2.5368721485137939e+00, 1.4910846948623657e-04,
- 1.1920928955078125e-07, -3.7312507629394531e-05,
- -3.0755996704101562e-05}, /* L986 */
-{3.6978828907012939e+00, 2.1764636039733887e-04,
- 1.1920928955078125e-07, -1.6689300537109375e-05,
- 3.3378601074218750e-06}, /* L987 */
-{2.4157083034515381e+00, 1.4230608940124512e-04,
- 1.1920928955078125e-07, 4.8518180847167969e-05,
- 8.3684921264648438e-05}, /* L988 */
-{3.2523264884948730e+00, 1.9174069166183472e-04,
- 1.1920928955078125e-07, 3.8027763366699219e-05,
- -3.4153461456298828e-05}, /* L989 */
-{2.1624081134796143e+00, 1.2762844562530518e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- 2.7656555175781250e-05}, /* L990 */
-{3.3603737354278564e+00, 1.9861757755279541e-04,
- 1.1920928955078125e-07, -1.4817714691162109e-04,
- 1.4078617095947266e-04}, /* L991 */
-{2.4080018997192383e+00, 1.4241039752960205e-04,
- 1.1920928955078125e-07, 2.5749206542968750e-05,
- 2.8371810913085938e-05}, /* L992 */
-{2.8719756603240967e+00, 1.7014145851135254e-04,
- 1.1920928955078125e-07, -5.1099061965942383e-04,
- 1.6462802886962891e-04}, /* L993 */
-{2.2886621952056885e+00, 1.3565644621849060e-04,
- 1.1920928955078125e-07, -1.1599063873291016e-04,
- -2.9325485229492188e-05}, /* L994 */
-{3.4535613059997559e+00, 2.0485371351242065e-04,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -4.7206878662109375e-05}, /* L995 */
-{2.1405074596405029e+00, 1.2710690498352051e-04,
- 1.1920928955078125e-07, -9.2864036560058594e-05,
- 5.5789947509765625e-05}, /* L996 */
-{2.2308869361877441e+00, 1.3259053230285645e-04,
- 1.1920928955078125e-07, 3.8623809814453125e-05,
- 6.0796737670898438e-06}, /* L997 */
-{2.4623289108276367e+00, 1.4650821685791016e-04,
- 1.1920928955078125e-07, 1.7523765563964844e-05,
- -5.6087970733642578e-05}, /* L998 */
-{2.7557215690612793e+00, 1.6438961029052734e-04,
- 1.1920928955078125e-07, 8.6903572082519531e-05,
- 3.7312507629394531e-05}, /* L999 */
-{2.7290947437286377e+00, 1.6268249601125717e-04,
- 1.1920928955078125e-07, -2.3424625396728516e-05,
- 1.5258789062500000e-05}, /* L1000 */
-{3.3480596542358398e+00, 3.9978325366973877e-04,
- 1.1920928955078125e-07, 5.7530403137207031e-04,
- -2.1338462829589844e-04}, /* L1001 */
-{4.2831449508666992e+00, 7.6914019882678986e-04,
- 1.1920928955078125e-07, 1.1730194091796875e-03,
- -3.8689374923706055e-04}, /* L1002 */
-{7.8901090621948242e+00, 1.8908008933067322e-03,
- 1.1920928955078125e-07, -1.2475252151489258e-04,
- -4.3213367462158203e-05}, /* L1003 */
-{8.8292112350463867e+00, 2.6347935199737549e-03,
- 1.1920928955078125e-07, 2.7668476104736328e-04,
- 9.8347663879394531e-05}, /* L1004 */
-{9.3150682449340820e+00, 3.3390820026397705e-03,
- 1.1920928955078125e-07, 4.4429302215576172e-04,
- 3.5595893859863281e-04}, /* L1005 */
-{1.1505256652832031e+01, 4.8386007547378540e-03,
- 1.1920928955078125e-07, 2.6655197143554688e-04,
- 8.5997581481933594e-04}, /* L1006 */
-{1.1165212631225586e+01, 5.3914487361907959e-03,
- 1.1920928955078125e-07, 2.7000904083251953e-04,
- -2.9709339141845703e-03}, /* L1007 */
-{1.3286559104919434e+01, 7.1436464786529541e-03,
- 1.1920928955078125e-07, -1.4352798461914062e-04,
- 7.5900554656982422e-04}, /* L1008 */
-{1.5058175086975098e+01, 8.9877285063266754e-03,
- 1.1920928955078125e-07, -7.2884559631347656e-04,
- 1.7344951629638672e-04}, /* L1009 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1011 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1012 */
-}; /* SINGLE */
-
-#endif /* DP */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SINGDOUB64_SOS8_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64_ss12.h b/usr/src/cmd/fps/fptest/singdoub64_ss12.h
deleted file mode 100644
index 7555eee76a..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64_ss12.h
+++ /dev/null
@@ -1,6125 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SINGDOUB64_SS12_H
-#define _SINGDOUB64_SS12_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64-bit golden values for V9A/SS12 Lapack */
-
-
-static struct LinpVals LinpValsA[] = {
-
-#ifdef DP /* { */
-
-/* Start of DP golden values */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L0 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{8.4318439831303504e-01, 3.0808688933348094e-15,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 1.1102230246251565e-15}, /* L33 */
-{9.7321442476194397e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 2.2204460492503131e-16}, /* L34 */
-{1.4583044708110673e+00, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -4.4408920985006262e-16}, /* L35 */
-{8.0446023793208044e-01, 3.2127078775090467e-15,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- 1.9984014443252818e-14}, /* L36 */
-{5.3420930866356575e-01, 2.1926904736346842e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -5.5511151231257827e-16}, /* L37 */
-{4.6747763286447808e-01, 1.9706458687096529e-15,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.5543122344752192e-15}, /* L38 */
-{9.8796645269880079e-01, 4.2743586448068527e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 1.3322676295501878e-15}, /* L39 */
-{6.1611576753753372e-01, 2.7339241981394480e-15,
- 2.2204460492503131e-16, -9.5390362275793450e-13,
- 2.3319124409226788e-12}, /* L40 */
-{6.2244703022421788e-01, 2.8310687127941492e-15,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 2.1982415887578100e-14}, /* L41 */
-{8.7271897456624437e-01, 4.0661918276896358e-15,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -9.8809849191638932e-15}, /* L42 */
-{6.8659341819991870e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- -2.9976021664879227e-15}, /* L43 */
-{7.2500932497707793e-01, 3.5388358909926865e-15,
- 2.2204460492503131e-16, -1.1657341758564144e-14,
- 4.2188474935755949e-15}, /* L44 */
-{8.8403751416813714e-01, 4.4131365228849972e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -1.2101430968414206e-14}, /* L45 */
-{6.3093735629719305e-01, 3.2196467714129540e-15,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- -3.3306690738754696e-15}, /* L46 */
-{9.2094634655374696e-01, 4.8017145815038020e-15,
- 2.2204460492503131e-16, -1.9872992140790302e-14,
- 1.3322676295501878e-15}, /* L47 */
-{7.9229777213175645e-01, 4.2188474935755949e-15,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- 1.2212453270876722e-14}, /* L48 */
-{6.0205010610116116e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 1.3322676295501878e-15}, /* L49 */
-{1.3500208311387045e+00, 7.4940054162198066e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- -1.9984014443252818e-15}, /* L50 */
-{1.1666846688849217e+00, 6.6058269965196814e-15,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- 9.3702823278363212e-14}, /* L51 */
-{1.0480930953997019e+00, 6.0507154842071031e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- 9.9920072216264089e-15}, /* L52 */
-{8.8208908253996454e-01, 5.1902926401226068e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -2.4424906541753444e-15}, /* L53 */
-{8.2408678992692186e-01, 4.9404924595819466e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.8833827526759706e-15}, /* L54 */
-{8.6364968995405822e-01, 5.2735593669694936e-15,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- -6.6613381477509392e-16}, /* L55 */
-{7.5001157285481435e-01, 4.6629367034256575e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- 8.8817841970012523e-16}, /* L56 */
-{1.2017729296036601e+00, 7.6050277186823223e-15,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 5.5511151231257827e-15}, /* L57 */
-{1.0194122814946389e+00, 6.5641936330962380e-15,
- 2.2204460492503131e-16, 2.6534330288541241e-13,
- 1.6364687382974807e-13}, /* L58 */
-{9.9577807695415899e-01, 6.5225602696727947e-15,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- 3.7747582837255322e-15}, /* L59 */
-{8.5001311590214701e-01, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.5543122344752192e-15}, /* L60 */
-{9.2624380035615839e-01, 6.2727600891321345e-15,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -9.2481577951275540e-14}, /* L61 */
-{1.5242170674146556e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 3.9968028886505635e-15}, /* L62 */
-{8.9981547166579190e-01, 6.2935767708438561e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 4.4408920985006262e-16}, /* L63 */
-{7.6563681395596928e-01, 5.4400928206632670e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 1.6875389974302379e-14}, /* L64 */
-{9.1155252700817435e-01, 6.5780714209040525e-15,
- 2.2204460492503131e-16, -5.8841820305133297e-15,
- -1.3322676295501878e-15}, /* L65 */
-{8.6364968995405356e-01, 6.3282712403633923e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -1.3322676295501878e-15}, /* L66 */
-{1.0447922407927950e+00, 7.7715611723760958e-15,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- 4.8849813083506888e-15}, /* L67 */
-{7.8677684603399289e-01, 5.9396931817445875e-15,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- -2.9976021664879227e-15}, /* L68 */
-{1.2246565778977070e+00, 9.3813845580825728e-15,
- 2.2204460492503131e-16, 1.5032419753424620e-13,
- 3.1863400806741993e-13}, /* L69 */
-{1.6214535908385190e+00, 1.2601031329495527e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.2212453270876722e-15}, /* L70 */
-{9.7184598172736347e-01, 7.6605388699135801e-15,
- 2.2204460492503131e-16, -1.9206858326015208e-14,
- -1.0325074129013956e-14}, /* L71 */
-{8.4723529526194563e-01, 6.7723604502134549e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 4.2188474935755949e-15}, /* L72 */
-{1.3493358890629930e+00, 1.0935696792557792e-14,
- 2.2204460492503131e-16, -1.8318679906315083e-14,
- 5.1070259132757201e-15}, /* L73 */
-{1.1790722474159370e+00, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -7.1054273576010019e-15}, /* L74 */
-{1.0000154304731115e+00, 8.3266726846886741e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -5.3290705182007514e-15}, /* L75 */
-{9.9672590603067746e-01, 8.4099394115355608e-15,
- 2.2204460492503131e-16, -5.6510351953420468e-14,
- -4.3631764867768652e-14}, /* L76 */
-{1.8831459405013156e+00, 1.6098233857064770e-14,
- 2.2204460492503131e-16, -1.2212453270876722e-15,
- -1.9984014443252818e-15}, /* L77 */
-{1.1538639582381141e+00, 9.9920072216264089e-15,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 4.2410519540680980e-14}, /* L78 */
-{9.2090028565720605e-01, 8.0768725041480138e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.4392935428259079e-15}, /* L79 */
-{1.0812666841987244e+00, 9.6034291630076041e-15,
- 2.2204460492503131e-16, 1.5609735726229701e-13,
- 4.5519144009631418e-14}, /* L80 */
-{9.4445901766904117e-01, 8.4932061383824475e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.1768364061026659e-14}, /* L81 */
-{1.1158708766864638e+00, 1.0158540675320182e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -1.7763568394002505e-15}, /* L82 */
-{1.3976119269262395e+00, 1.2878587085651816e-14,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -9.8809849191638932e-15}, /* L83 */
-{1.1964470328874373e+00, 1.1157741397482823e-14,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -7.4384942649885488e-15}, /* L84 */
-{1.5279647533258061e+00, 1.4419021532319221e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 1.3322676295501878e-15}, /* L85 */
-{1.0581558624773642e+00, 1.0103029524088925e-14,
- 2.2204460492503131e-16, -2.5535129566378600e-15,
- 2.2204460492503131e-15}, /* L86 */
-{1.3391011224150913e+00, 1.2934098236883074e-14,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- -1.2878587085651816e-14}, /* L87 */
-{1.1306992651372059e+00, 1.1046719095020308e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -1.8873791418627661e-15}, /* L88 */
-{1.2584463844155744e+00, 1.2434497875801753e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 8.8817841970012523e-16}, /* L89 */
-{1.4757172151078655e+00, 1.4745149545802860e-14,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 2.1094237467877974e-14}, /* L90 */
-{9.5880600339315103e-01, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 1.2434497875801753e-14,
- 2.6645352591003757e-14}, /* L91 */
-{1.0407769289978044e+00, 1.0630385460785874e-14,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- -2.7755575615628914e-15}, /* L92 */
-{1.3226010532063741e+00, 1.3655743202889425e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- 1.9984014443252818e-15}, /* L93 */
-{9.5480196686123875e-01, 9.9642516460107800e-15,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.5543122344752192e-15}, /* L94 */
-{1.3822581706736938e+00, 1.4578616092109087e-14,
- 2.2204460492503131e-16, 8.4376949871511897e-15,
- -5.1070259132757201e-15}, /* L95 */
-{1.9166962417400433e+00, 2.0428103653102880e-14,
- 2.2204460492503131e-16, -3.7747582837255322e-15,
- -3.1086244689504383e-15}, /* L96 */
-{1.2371324913069346e+00, 1.3322676295501878e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 6.6613381477509392e-15}, /* L97 */
-{8.9797303960849595e-01, 9.7699626167013776e-15,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -1.1102230246251565e-15}, /* L98 */
-{1.4040620690480938e+00, 1.5432100042289676e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 1.3322676295501878e-15}, /* L99 */
-{1.2800197510055726e+00, 1.4210854715202004e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 5.7731597280508140e-15}, /* L100 */
-{1.5198254314615605e+00, 1.7041923427996153e-14,
- 2.2204460492503131e-16, -1.7097434579227411e-14,
- 2.8865798640254070e-15}, /* L101 */
-{1.0593760277936337e+00, 1.1996480198117609e-14,
- 2.2204460492503131e-16, -6.1062266354383610e-15,
- -1.5543122344752192e-15}, /* L102 */
-{9.8059765512410590e-01, 1.1213252548714081e-14,
- 2.2204460492503131e-16, -1.2989609388114332e-14,
- 3.3306690738754696e-15}, /* L103 */
-{1.1184066803548092e+00, 1.2913281555171352e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-15,
- 1.1546319456101628e-14}, /* L104 */
-{1.4190695156236912e+00, 1.6542323066914832e-14,
- 2.2204460492503131e-16, -3.1641356201816961e-14,
- -6.1062266354383610e-15}, /* L105 */
-{9.9529837655541686e-01, 1.1712852909795402e-14,
- 2.2204460492503131e-16, 4.6851411639181606e-14,
- -1.0380585280245214e-13}, /* L106 */
-{1.7804013037862301e+00, 2.1149748619109232e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 7.3274719625260332e-15}, /* L107 */
-{1.2916865976944309e+00, 1.5487611193520934e-14,
- 2.2204460492503131e-16, 7.7715611723760958e-15,
- 1.4654943925052066e-14}, /* L108 */
-{1.0527685380438851e+00, 1.2739809207573671e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -5.3290705182007514e-15}, /* L109 */
-{1.0727438254166126e+00, 1.3100631690576847e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -2.2204460492503131e-15}, /* L110 */
-{1.6441695140661536e+00, 2.0261570199409107e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -5.6621374255882984e-15}, /* L111 */
-{1.4509152451060254e+00, 1.8041124150158794e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -2.2426505097428162e-14}, /* L112 */
-{1.1725844649352746e+00, 1.4710455076283324e-14,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 8.6597395920762210e-15}, /* L113 */
-{1.0033049549154456e+00, 1.2698175844150228e-14,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 3.9968028886505635e-15}, /* L114 */
-{1.5000231457096496e+00, 1.9151347174783950e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -1.4432899320127035e-15}, /* L115 */
-{8.9279394843423010e-01, 1.1497747198774277e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- -1.1990408665951691e-14}, /* L116 */
-{1.5042967159233618e+00, 1.9539925233402755e-14,
- 2.2204460492503131e-16, -2.7056135110115065e-13,
- -2.5757174171303632e-13}, /* L117 */
-{1.3474784190248486e+00, 1.7652546091539989e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -1.9443335830260366e-12}, /* L118 */
-{9.4119099338644763e-01, 1.2434497875801753e-14,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- -2.1094237467877974e-15}, /* L119 */
-{1.7194275728381851e+00, 2.2907023500273738e-14,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- -7.5495165674510645e-15}, /* L120 */
-{1.1518772778689883e+00, 1.5473733405713119e-14,
- 2.2204460492503131e-16, 5.4178883601707639e-14,
- -3.8413716652030416e-14}, /* L121 */
-{1.3360861898943925e+00, 1.8096635301390052e-14,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- -3.4416913763379853e-15}, /* L122 */
-{1.1829450823886922e+00, 1.6153745008296028e-14,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- -1.9317880628477724e-14}, /* L123 */
-{1.5010312257805758e+00, 2.0664026045835726e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 5.4845017416482733e-14}, /* L124 */
-{1.1720180845143169e+00, 1.6264767310758543e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-14,
- 3.3750779948604759e-14}, /* L125 */
-{1.6666923841217633e+00, 2.3314683517128287e-14,
- 2.2204460492503131e-16, 4.3520742565306136e-14,
- -6.3282712403633923e-15}, /* L126 */
-{1.4389985820389368e+00, 2.0289325775024736e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -4.0301095793893182e-14}, /* L127 */
-{1.2754103048807188e+00, 1.8124390877005681e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 6.6613381477509392e-16}, /* L128 */
-{1.4728909441076405e+00, 2.1094237467877974e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- 3.0864200084579352e-14}, /* L129 */
-{1.8423361199869592e+00, 2.6589841439772499e-14,
- 2.2204460492503131e-16, -2.1649348980190553e-14,
- -1.7652546091539989e-14}, /* L130 */
-{1.7175837546289456e+00, 2.4980018054066022e-14,
- 2.2204460492503131e-16, -6.5059069243034173e-14,
- -1.1546319456101628e-14}, /* L131 */
-{1.5094929888012547e+00, 2.2121193765656244e-14,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- -5.5511151231257827e-16}, /* L132 */
-{1.4812258631818391e+00, 2.1871393585115584e-14,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- 5.4400928206632670e-14}, /* L133 */
-{2.1977951065248100e+00, 3.2696068075210860e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -8.4376949871511897e-15}, /* L134 */
-{1.1889072340069056e+00, 1.7819079545233762e-14,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- -4.1078251911130792e-15}, /* L135 */
-{1.7610565852814140e+00, 2.6589841439772499e-14,
- 2.2204460492503131e-16, -7.6272321791748254e-14,
- -3.0642155479654321e-14}, /* L136 */
-{1.7591512317081397e+00, 2.6756374893466273e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- 2.6645352591003757e-15}, /* L137 */
-{2.3614494811986848e+00, 3.6179392814972289e-14,
- 2.2204460492503131e-16, -3.4749980670767400e-14,
- -1.0991207943789050e-14}, /* L138 */
-{1.6259243689706477e+00, 2.5091040356528538e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -9.3258734068513149e-15}, /* L139 */
-{1.2660909646518197e+00, 1.9678703111480900e-14,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -2.3725466036239595e-13}, /* L140 */
-{1.5895635344310999e+00, 2.4882873539411321e-14,
- 2.2204460492503131e-16, -1.3211653993039363e-14,
- 5.1070259132757201e-15}, /* L141 */
-{1.1056508632695603e+00, 1.7430501486614958e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 7.7715611723760958e-15}, /* L142 */
-{1.5489749499983407e+00, 2.4591439995447217e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -8.8151708155237429e-14}, /* L143 */
-{1.3066607870829714e+00, 2.0889540097712711e-14,
- 2.2204460492503131e-16, -1.4543921622589551e-14,
- -4.2188474935755949e-15}, /* L144 */
-{1.1310519351557555e+00, 1.8207657603852567e-14,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 3.0198066269804258e-14}, /* L145 */
-{1.5753667740327297e+00, 2.5535129566378600e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 2.0206059048177849e-14}, /* L146 */
-{1.4864174935942889e+00, 2.4258373088059670e-14,
- 2.2204460492503131e-16, -6.9610983643997315e-14,
- -4.4408920985006262e-15}, /* L147 */
-{1.3116756448688298e+00, 2.1552204465535851e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -5.1070259132757201e-15}, /* L148 */
-{1.7114358038296786e+00, 2.8310687127941492e-14,
- 2.2204460492503131e-16, 3.0642155479654321e-14,
- 4.5297099404706387e-14}, /* L149 */
-{2.0364897568488090e+00, 3.3913843955346579e-14,
- 2.2204460492503131e-16, -4.6185277824406512e-14,
- -2.0539125955565396e-14}, /* L150 */
-{1.2980332739915474e+00, 2.1760371282653068e-14,
- 2.2204460492503131e-16, 4.1078251911130792e-14,
- 2.3536728122053319e-14}, /* L151 */
-{1.5806164945471264e+00, 2.6673108166619386e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 8.8817841970012523e-16}, /* L152 */
-{1.5425074613829926e+00, 2.6201263381153694e-14,
- 2.2204460492503131e-16, -4.6962433941644122e-14,
- -6.8056671409522096e-14}, /* L153 */
-{1.6688569196855765e+00, 2.8532731732866523e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- 1.0436096431476471e-14}, /* L154 */
-{1.8822871086485009e+00, 3.2390756743438942e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -2.5424107263916085e-14}, /* L155 */
-{1.8654133991516275e+00, 3.2307490016592055e-14,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- -5.5511151231257827e-15}, /* L156 */
-{1.5637183960582457e+00, 2.7255975254547593e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 3.2862601528904634e-14}, /* L157 */
-{1.7595208207058148e+00, 3.0864200084579352e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 1.7097434579227411e-14}, /* L158 */
-{1.6069430345020865e+00, 2.8366198279172750e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-14,
- -5.9285909514983359e-14}, /* L159 */
-{1.5562740136737514e+00, 2.7644553313166398e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 9.1038288019262836e-15}, /* L160 */
-{1.7942823445832710e+00, 3.2071567623859210e-14,
- 2.2204460492503131e-16, 2.5091040356528538e-14,
- -3.3306690738754696e-15}, /* L161 */
-{1.7515702370168520e+00, 3.1502578323738817e-14,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 8.4376949871511897e-15}, /* L162 */
-{1.7753341422891886e+00, 3.2127078775090467e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- 1.5099033134902129e-14}, /* L163 */
-{1.8529249325305224e+00, 3.3736902160796944e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -1.0769163338864018e-14}, /* L164 */
-{1.1894122923051262e+00, 2.1788126858268697e-14,
- 2.2204460492503131e-16, -1.4210854715202004e-14,
- -3.3306690738754696e-15}, /* L165 */
-{1.7620753820078119e+00, 3.2474023470285829e-14,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 2.8954616482224083e-13}, /* L166 */
-{2.1242842752113966e+00, 3.9385161798577428e-14,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- -3.2196467714129540e-14}, /* L167 */
-{2.2321773001623937e+00, 4.1633363423443370e-14,
- 2.2204460492503131e-16, 1.3367085216486885e-13,
- -8.4710016778899444e-14}, /* L168 */
-{1.4674782648362414e+00, 2.7533531010703882e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 1.3100631690576847e-14}, /* L169 */
-{1.3264910563040142e+00, 2.5035529205297280e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 1.7541523789077473e-14}, /* L170 */
-{2.4971145544562403e+00, 4.7406523151494184e-14,
- 2.2204460492503131e-16, -1.0991207943789050e-14,
- -8.3266726846886741e-15}, /* L171 */
-{1.0436207544762772e+00, 1.9928503292021560e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -4.3298697960381105e-15}, /* L172 */
-{1.6792166621527975e+00, 3.2251978865360797e-14,
- 2.2204460492503131e-16, -7.1054273576010019e-15,
- 5.3290705182007514e-15}, /* L173 */
-{1.6322090934143754e+00, 3.1530333899354446e-14,
- 2.2204460492503131e-16, 2.0317081350640365e-13,
- -2.2049029269055609e-13}, /* L174 */
-{2.5086101370152787e+00, 4.8738790781044372e-14,
- 2.2204460492503131e-16, -8.5487172896137054e-15,
- -2.8088642523016460e-14}, /* L175 */
-{1.6988898506325165e+00, 3.3195668436292181e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-14,
- 4.7073456244106637e-14}, /* L176 */
-{1.7683888685765838e+00, 3.4749980670767400e-14,
- 2.2204460492503131e-16, 6.1284310959308641e-14,
- 2.8421709430404007e-14}, /* L177 */
-{1.5955302373829998e+00, 3.1530333899354446e-14,
- 2.2204460492503131e-16, -1.1901590823981678e-13,
- -1.3200551762793111e-13}, /* L178 */
-{1.7758653908470168e+00, 3.5291214395272164e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 5.8397731095283234e-14}, /* L179 */
-{1.1736292204852639e+00, 2.3453461395206432e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -1.6053824936079764e-13}, /* L180 */
-{2.2514159553467405e+00, 4.5241588253475129e-14,
- 2.2204460492503131e-16, -3.6859404417555197e-14,
- -3.8302694349567901e-14}, /* L181 */
-{1.9890416803911044e+00, 4.0190073491430667e-14,
- 2.2204460492503131e-16, -3.1530333899354446e-14,
- 1.2212453270876722e-14}, /* L182 */
-{1.8494137827908461e+00, 3.7574110489657642e-14,
- 2.2204460492503131e-16, -4.8183679268731794e-14,
- 4.4630965589931293e-14}, /* L183 */
-{2.5000385761827033e+00, 5.1070259132757201e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.8429702208777599e-14}, /* L184 */
-{2.2189531578855655e+00, 4.5574655160862676e-14,
- 2.2204460492503131e-16, -4.9027448767446913e-13,
- 2.4358293160275934e-13}, /* L185 */
-{2.3306811242462593e+00, 4.8128168117500536e-14,
- 2.2204460492503131e-16, 2.9753977059954195e-13,
- 1.7630341631047486e-13}, /* L186 */
-{2.3422821312684450e+00, 4.8627768478581856e-14,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- -7.6605388699135801e-15}, /* L187 */
-{1.7260904637671115e+00, 3.6026737149086330e-14,
- 2.2204460492503131e-16, 1.6564527527407336e-13,
- 2.0938806244430452e-13}, /* L188 */
-{1.8733754674700820e+00, 3.9308833965634449e-14,
- 2.2204460492503131e-16, -3.0420110874729289e-14,
- -2.8865798640254070e-15}, /* L189 */
-{1.5184444825867374e+00, 3.2029934260435766e-14,
- 2.2204460492503131e-16, -3.0309088572266774e-14,
- 2.0650148258027912e-14}, /* L190 */
-{1.8900815204229877e+00, 4.0079051188968151e-14,
- 2.2204460492503131e-16, -7.1054273576010019e-15,
- -1.3100631690576847e-14}, /* L191 */
-{1.4349179744548259e+00, 3.0586644328423063e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -5.1070259132757201e-15}, /* L192 */
-{2.2979629192475857e+00, 4.9238391142125693e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- -3.6082248300317588e-14}, /* L193 */
-{1.5876533638438366e+00, 3.4194869158454821e-14,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- 2.2204460492503131e-14}, /* L194 */
-{1.7923353484632876e+00, 3.8802294710649221e-14,
- 2.2204460492503131e-16, 9.7699626167013776e-15,
- 4.7961634663806763e-14}, /* L195 */
-{1.8922884459041780e+00, 4.1176263787523482e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 4.8405723873656825e-14}, /* L196 */
-{2.3109493640753707e+00, 5.0542903196060252e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- -1.7541523789077473e-14}, /* L197 */
-{2.2374082611088202e+00, 4.9182879990894435e-14,
- 2.2204460492503131e-16, -6.1284310959308641e-14,
- 1.9761969838327786e-14}, /* L198 */
-{1.9786737474811122e+00, 4.3715031594615539e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-13,
- -2.2315482794965646e-14}, /* L199 */
-{2.8323874544038095e+00, 6.2890664898063164e-14,
- 2.2204460492503131e-16, 1.6875389974302379e-14,
- 2.0872192862952943e-14}, /* L200 */
-{2.4428237629964049e+00, 5.4511950509095186e-14,
- 2.2204460492503131e-16, 2.2648549702353193e-14,
- 1.1324274851176597e-14}, /* L201 */
-{1.4604185742056859e+00, 3.2751579226442118e-14,
- 2.2204460492503131e-16, -7.4829031859735551e-14,
- 3.4194869158454821e-14}, /* L202 */
-{2.0000308609461306e+00, 4.5075054799781356e-14,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- 1.4654943925052066e-14}, /* L203 */
-{1.8284595861100834e+00, 4.1411318818518339e-14,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 9.9920072216264089e-15}, /* L204 */
-{2.1146667761305893e+00, 4.8128168117500536e-14,
- 2.2204460492503131e-16, 5.1856297034191812e-12,
- -7.4718009557273035e-13}, /* L205 */
-{1.6650742361758482e+00, 3.8080649744642869e-14,
- 2.2204460492503131e-16, -7.4051875742497941e-14,
- 1.6853185513809876e-13}, /* L206 */
-{1.9770836469618631e+00, 4.5435877282784531e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 3.4194869158454821e-14}, /* L207 */
-{2.9327375605219776e+00, 6.7723604502134549e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- -7.6605388699135801e-15}, /* L208 */
-{1.7512231940341563e+00, 4.0634162701280729e-14,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 6.5503158452884236e-14}, /* L209 */
-{2.1286042734352204e+00, 4.9626969200744497e-14,
- 2.2204460492503131e-16, 2.6867397195928788e-14,
- 1.1679546219056647e-13}, /* L210 */
-{2.0885985782776806e+00, 4.8926140916449867e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 5.7731597280508140e-15}, /* L211 */
-{2.4599436178854401e+00, 5.7898130734201914e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -4.1078251911130792e-15}, /* L212 */
-{2.1353029012769920e+00, 5.0494330938732901e-14,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 1.3544720900426910e-14}, /* L213 */
-{1.7967566963405959e+00, 4.2688075296837269e-14,
- 2.2204460492503131e-16, -2.2093438190040615e-14,
- -5.1736392947532295e-14}, /* L214 */
-{2.7514959446009066e+00, 6.5676630800481917e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -5.2180482157382357e-15}, /* L215 */
-{1.8773437826704427e+00, 4.5019543648550098e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 5.3512749786932545e-14}, /* L216 */
-{1.5345858910015440e+00, 3.6970426720017713e-14,
- 2.2204460492503131e-16, -3.7159164634203989e-13,
- 9.9698027611339057e-14}, /* L217 */
-{1.7683759103089505e+00, 4.2799097599299785e-14,
- 2.2204460492503131e-16, -2.2648549702353193e-14,
- -2.0095036745715333e-14}, /* L218 */
-{2.2546009990687268e+00, 5.4817261840867104e-14,
- 2.2204460492503131e-16, 4.0856207306205761e-14,
- 1.6875389974302379e-14}, /* L219 */
-{2.4454922799750403e+00, 5.9729998724833422e-14,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- 3.3306690738754696e-15}, /* L220 */
-{1.5588475827962787e+00, 3.8247183198336643e-14,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- -1.5099033134902129e-14}, /* L221 */
-{1.9651204123596644e+00, 4.8433479449272454e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 3.4861002973229915e-14}, /* L222 */
-{2.5762729363532069e+00, 6.3782312764715243e-14,
- 2.2204460492503131e-16, -4.3409720262843621e-14,
- 1.1102230246251565e-14}, /* L223 */
-{2.6339692141866542e+00, 6.5503158452884236e-14,
- 2.2204460492503131e-16, -5.6299409578741688e-13,
- -1.0330625244137082e-12}, /* L224 */
-{2.3311470812579520e+00, 5.8231197641589461e-14,
- 2.2204460492503131e-16, 2.2093438190040615e-13,
- -3.2973623831367149e-14}, /* L225 */
-{1.3761274286598091e+00, 3.4527936065842368e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- 1.8429702208777599e-14}, /* L226 */
-{2.2401226713460232e+00, 5.6454840802189210e-14,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- -4.9404924595819466e-14}, /* L227 */
-{4.3926116386781411e+00, 1.1118883591620943e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 1.5099033134902129e-14}, /* L228 */
-{2.3013455539520424e+00, 5.8508753397745750e-14,
- 2.2204460492503131e-16, -2.8419488984354757e-12,
- 9.1238128163695364e-13}, /* L229 */
-{1.7543748965038315e+00, 4.4797499043625066e-14,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- 3.3972824553529790e-14}, /* L230 */
-{1.9348242270864668e+00, 4.9620030306840590e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- -1.5543122344752192e-15}, /* L231 */
-{3.2349637093533472e+00, 8.3322237998117998e-14,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- 2.7755575615628914e-14}, /* L232 */
-{2.3412378425880735e+00, 6.0562665993302289e-14,
- 2.2204460492503131e-16, -5.0404125317982107e-14,
- 3.0198066269804258e-14}, /* L233 */
-{2.1773840248973513e+00, 5.6565863104651726e-14,
- 2.2204460492503131e-16, 1.0125233984581428e-13,
- -9.7699626167013776e-15}, /* L234 */
-{1.8787523938461115e+00, 4.9016346537200661e-14,
- 2.2204460492503131e-16, -3.6637359812630166e-14,
- -2.1538326677728037e-14}, /* L235 */
-{2.1292701432741032e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -2.3425705819590803e-14}, /* L236 */
-{2.5422333200845082e+00, 6.6890937233665682e-14,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- 9.5479180117763462e-15}, /* L237 */
-{1.7195643484079930e+00, 4.5435877282784531e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 1.6653345369377348e-14}, /* L238 */
-{2.6799576703675378e+00, 7.1109784727241276e-14,
- 2.2204460492503131e-16, -2.0827783941967937e-13,
- -2.3203661214665772e-14}, /* L239 */
-{2.6667078145948717e+00, 7.1054273576010019e-14,
- 2.2204460492503131e-16, -2.5091040356528538e-14,
- -1.2101430968414206e-14}, /* L240 */
-{2.8563718753176426e+00, 7.6424977457634213e-14,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- -7.8381745538536052e-14}, /* L241 */
-{2.0961067235843580e+00, 5.6316062924111066e-14,
- 2.2204460492503131e-16, 7.0388139761234925e-14,
- 5.6399329650957952e-14}, /* L242 */
-{1.7572287605426158e+00, 4.7406523151494184e-14,
- 2.2204460492503131e-16, 3.1152858070981893e-13,
- 1.0946799022804043e-13}, /* L243 */
-{2.0896838836574534e+00, 5.6607496468075169e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.7541523789077473e-14}, /* L244 */
-{2.0265618825707352e+00, 5.5122573172639022e-14,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- 5.4400928206632670e-14}, /* L245 */
-{1.9146636900521390e+00, 5.2291504459844873e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- 7.1054273576010019e-15}, /* L246 */
-{2.9433652548737679e+00, 8.0713213890248880e-14,
- 2.2204460492503131e-16, 1.0835776720341528e-13,
- 6.5725203057809267e-14}, /* L247 */
-{2.1814852737334989e+00, 6.0063065632220969e-14,
- 2.2204460492503131e-16, -9.3258734068513149e-14,
- -1.6431300764452317e-14}, /* L248 */
-{2.6255425207666603e+00, 7.2580830234869609e-14,
- 2.2204460492503131e-16, -7.2830630415410269e-14,
- -1.2911893776390571e-13}, /* L249 */
-{2.7360422177743606e+00, 7.5939254884360707e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -1.8429702208777599e-14}, /* L250 */
-{1.8685547286517161e+00, 5.2069459854919842e-14,
- 2.2204460492503131e-16, -3.3528735343679728e-14,
- -8.8040685852774914e-14}, /* L251 */
-{2.0397140129490610e+00, 5.7065463465733046e-14,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.3433698597964394e-14}, /* L252 */
-{1.9461762750161948e+00, 5.4664606174981145e-14,
- 2.2204460492503131e-16, 3.5749181392930041e-14,
- 9.3480778673438181e-14}, /* L253 */
-{2.2825155347116022e+00, 6.4365179852643450e-14,
- 2.2204460492503131e-16, 2.9531932455029164e-14,
- 4.7517545453956700e-14}, /* L254 */
-{2.7804350596286973e+00, 7.8714812445923599e-14,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -9.3369756370975665e-14}, /* L255 */
-{2.5801179368259426e+00, 7.3330230776491589e-14,
- 2.2204460492503131e-16, -4.7739590058881731e-14,
- 5.0626169922907138e-14}, /* L256 */
-{1.7938019978472670e+00, 5.1181281435219717e-14,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- -4.4841907964610073e-13}, /* L257 */
-{1.9244482993405780e+00, 5.5122573172639022e-14,
- 2.2204460492503131e-16, -3.0087043967341742e-14,
- 3.5527136788005009e-14}, /* L258 */
-{2.0157164311633022e+00, 5.7960580779337079e-14,
- 2.2204460492503131e-16, -1.7208456881689926e-14,
- 3.3750779948604759e-14}, /* L259 */
-{2.9615841594774968e+00, 8.5487172896137054e-14,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- 6.2172489379008766e-15}, /* L260 */
-{1.8314458841606844e+00, 5.3068660577082483e-14,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- 7.3940853440035426e-14}, /* L261 */
-{2.1221701501634431e+00, 6.1728400169158704e-14,
- 2.2204460492503131e-16, -2.2526425169644426e-13,
- 1.8673951274195133e-13}, /* L262 */
-{2.0798800017822452e+00, 6.0729199446996063e-14,
- 2.2204460492503131e-16, 6.9722005946459831e-14,
- -6.6169292267659330e-14}, /* L263 */
-{2.2905182977808596e+00, 6.7133798520302435e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- -6.3282712403633923e-14}, /* L264 */
-{2.1453161215985608e+00, 6.3116178949940149e-14,
- 2.2204460492503131e-16, -3.0464519795714295e-13,
- -2.1627144519698049e-13}, /* L265 */
-{2.1673266754424811e+00, 6.4004357369640275e-14,
- 2.2204460492503131e-16, -2.5757174171303632e-14,
- -4.0634162701280729e-14}, /* L266 */
-{3.0609086537597978e+00, 9.0732976687490918e-14,
- 2.2204460492503131e-16, -1.3944401189291966e-13,
- -7.1276318180935050e-14}, /* L267 */
-{1.7780125097773152e+00, 5.2902127123388709e-14,
- 2.2204460492503131e-16, -1.6719958750854857e-13,
- 6.4170890823334048e-14}, /* L268 */
-{2.7316871319862757e+00, 8.1580575628237284e-14,
- 2.2204460492503131e-16, -3.8857805861880479e-15,
- 4.9515946898281982e-14}, /* L269 */
-{1.9296594047276290e+00, 5.7842619582970656e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 1.7319479184152442e-14}, /* L270 */
-{2.1930688949186039e+00, 6.5981942132253835e-14,
- 2.2204460492503131e-16, 1.0125233984581428e-13,
- 6.2394533983933798e-14}, /* L271 */
-{2.5055533671591936e+00, 7.5661699128204418e-14,
- 2.2204460492503131e-16, -4.7850612361344247e-14,
- -5.4622972811557702e-14}, /* L272 */
-{2.2724709621967931e+00, 6.8875460890183149e-14,
- 2.2204460492503131e-16, 1.6431300764452317e-14,
- -1.2545520178264269e-14}, /* L273 */
-{2.3212036999299999e+00, 7.0610184366159956e-14,
- 2.2204460492503131e-16, -6.6613381477509392e-15,
- -8.9928064994637680e-15}, /* L274 */
-{2.9454999952114438e+00, 8.9928064994637680e-14,
- 2.2204460492503131e-16, -2.2981616609740740e-14,
- -3.3306690738754696e-16}, /* L275 */
-{2.4710526216759376e+00, 7.5717210279435676e-14,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- -1.4432899320127035e-14}, /* L276 */
-{1.9842363934045806e+00, 6.1020632990960166e-14,
- 2.2204460492503131e-16, -5.5710991375690355e-13,
- 5.3890225615305098e-13}, /* L277 */
-{2.6205440327309701e+00, 8.0879747343942654e-14,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- -1.6964207816272392e-13}, /* L278 */
-{2.4158078858022733e+00, 7.4829031859735551e-14,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- 1.3100631690576847e-14}, /* L279 */
-{2.6000401192288352e+00, 8.0824236192711396e-14,
- 2.2204460492503131e-16, -5.7953641885433171e-14,
- 2.2426505097428162e-14}, /* L280 */
-{2.6850948124265153e+00, 8.3766327207968061e-14,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- 1.2434497875801753e-14}, /* L281 */
-{3.0532386015507078e+00, 9.5590202420225978e-14,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- 1.2434497875801753e-14}, /* L282 */
-{2.7809616387984333e+00, 8.7374552037999820e-14,
- 2.2204460492503131e-16, 5.6621374255882984e-14,
- 4.3920422854171193e-13}, /* L283 */
-{2.8415931422244336e+00, 8.9594998087250133e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- -1.0880185641326534e-14}, /* L284 */
-{1.9627495839325932e+00, 6.2103100439969694e-14,
- 2.2204460492503131e-16, 5.2846615972157451e-14,
- 5.7287508070658077e-14}, /* L285 */
-{1.9458342204834207e+00, 6.1783911320389961e-14,
- 2.2204460492503131e-16, -2.8088642523016460e-14,
- 5.5511151231257827e-15}, /* L286 */
-{2.8158099991321901e+00, 8.9719898177520463e-14,
- 2.2204460492503131e-16, 2.5091040356528538e-14,
- 9.5479180117763462e-15}, /* L287 */
-{2.6523846769162907e+00, 8.4807161293554145e-14,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -1.7608137170554983e-13}, /* L288 */
-{1.9169845968237798e+00, 6.1506355564233672e-14,
- 2.2204460492503131e-16, 7.1942451995710144e-14,
- 2.1538326677728037e-14}, /* L289 */
-{2.6259025872590103e+00, 8.4543483325205671e-14,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- 1.3322676295501878e-14}, /* L290 */
-{2.4605190660434584e+00, 7.9491968563161208e-14,
- 2.2204460492503131e-16, -9.0816243414337805e-14,
- -1.0602629885170245e-13}, /* L291 */
-{2.3493513195358955e+00, 7.6161299489285739e-14,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- -8.3710816056736803e-14}, /* L292 */
-{3.4693368091324741e+00, 1.1285417045314716e-13,
- 2.2204460492503131e-16, -1.0991207943789050e-14,
- 4.1966430330830917e-14}, /* L293 */
-{2.5255491738981735e+00, 8.2434059578417873e-14,
- 2.2204460492503131e-16, -1.1468603844377867e-13,
- 2.5757174171303632e-13}, /* L294 */
-{3.3985693898665876e+00, 1.1130679711257585e-13,
- 2.2204460492503131e-16, 1.9517720772910252e-13,
- 8.5997875487464626e-13}, /* L295 */
-{2.5253768049952692e+00, 8.2989171090730451e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 5.9063864910058328e-14}, /* L296 */
-{2.3350528654304981e+00, 7.6993966757754606e-14,
- 2.2204460492503131e-16, 9.1482377229112899e-14,
- 6.0618177144533547e-14}, /* L297 */
-{2.3095993960500225e+00, 7.6411099669826399e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-14,
- -1.2023715356690445e-13}, /* L298 */
-{2.0669215251912787e+00, 6.8611782921834674e-14,
- 2.2204460492503131e-16, -1.0458300891968975e-13,
- 1.2900791546144319e-13}, /* L299 */
-{2.3400361073059397e+00, 7.7937656328685989e-14,
- 2.2204460492503131e-16, 2.4669155607170978e-13,
- -3.1974423109204508e-13}, /* L300 */
-{2.6943937345963627e+00, 9.0039087297100195e-14,
- 2.2204460492503131e-16, 1.2501111257279263e-13,
- 6.1284310959308641e-14}, /* L301 */
-{3.0679281335515061e+00, 1.0286216323152075e-13,
- 2.2204460492503131e-16, -1.7430501486614958e-13,
- 1.6942003355779889e-13}, /* L302 */
-{2.4290803855714351e+00, 8.1712414612411521e-14,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- 4.7073456244106637e-14}, /* L303 */
-{2.5691185894716448e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- -3.7414515929867775e-14}, /* L304 */
-{2.8229943791384753e+00, 9.5590202420225978e-14,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- 1.4210854715202004e-14}, /* L305 */
-{3.2320760154770487e+00, 1.0980105713542798e-13,
- 2.2204460492503131e-16, 4.7339909770016675e-13,
- 8.0424555903846340e-13}, /* L306 */
-{1.9723431373000739e+00, 6.7224004141053229e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-14,
- -5.5511151231257827e-15}, /* L307 */
-{3.2955053958770213e+00, 1.1268763699945339e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- 6.6613381477509392e-14}, /* L308 */
-{2.7346700283157066e+00, 9.3813845580825728e-14,
- 2.2204460492503131e-16, -4.1078251911130792e-14,
- -4.6962433941644122e-14}, /* L309 */
-{2.7766557476760005e+00, 9.5562446844610349e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- 8.6819440525687241e-14}, /* L310 */
-{2.7862166254175262e+00, 9.6200825083769814e-14,
- 2.2204460492503131e-16, -6.4059868520871532e-14,
- -5.1070259132757201e-15}, /* L311 */
-{3.2378304092011843e+00, 1.1215334216885253e-13,
- 2.2204460492503131e-16, 1.7652546091539989e-13,
- -4.4408920985006262e-15}, /* L312 */
-{2.1677650785174678e+00, 7.5328632220816871e-14,
- 2.2204460492503131e-16, -7.1942451995710144e-14,
- -3.4416913763379853e-14}, /* L313 */
-{3.1465453672185322e+00, 1.0969003483296547e-13,
- 2.2204460492503131e-16, -2.8588242884097781e-13,
- -3.3117952824568420e-13}, /* L314 */
-{2.3857510984137869e+00, 8.3433260300580514e-14,
- 2.2204460492503131e-16, -7.2497563508022722e-14,
- -4.9960036108132044e-14}, /* L315 */
-{3.0429662574816128e+00, 1.0675488271161271e-13,
- 2.2204460492503131e-16, 8.2822637637036678e-14,
- -2.6090241078691179e-14}, /* L316 */
-{2.6498831596128105e+00, 9.3258734068513149e-14,
- 2.2204460492503131e-16, -8.5820239803524601e-14,
- 1.2656542480726785e-14}, /* L317 */
-{2.1368254245485918e+00, 7.5439654523279387e-14,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- -2.4424906541753444e-14}, /* L318 */
-{2.3954131373359160e+00, 8.4834916869169774e-14,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- 9.3258734068513149e-14}, /* L319 */
-{2.8328562116367904e+00, 1.0064171718227044e-13,
- 2.2204460492503131e-16, -4.7184478546569153e-14,
- -4.2965631052993558e-14}, /* L320 */
-{2.2691160098776333e+00, 8.0865869556134840e-14,
- 2.2204460492503131e-16, -1.9406698470447736e-13,
- 8.8817841970012523e-14}, /* L321 */
-{2.6071830865900192e+00, 9.3203222917281892e-14,
- 2.2204460492503131e-16, -3.5305092183079978e-14,
- -1.1546319456101628e-13}, /* L322 */
-{2.9597979923575788e+00, 1.0613732115416497e-13,
- 2.2204460492503131e-16, -1.6275869541004795e-13,
- 2.2204460492503131e-14}, /* L323 */
-{2.7114615915716738e+00, 9.7533092713320002e-14,
- 2.2204460492503131e-16, -3.1452618287630685e-13,
- -8.4598994476436928e-14}, /* L324 */
-{3.0262005411386559e+00, 1.0919043447188415e-13,
- 2.2204460492503131e-16, 4.2188474935755949e-15,
- -1.3433698597964394e-14}, /* L325 */
-{2.6403781649677458e+00, 9.5562446844610349e-14,
- 2.2204460492503131e-16, -6.1173288656846125e-14,
- 8.1046280797636427e-14}, /* L326 */
-{2.5000385761814878e+00, 9.0760732263106547e-14,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -2.4868995751603507e-14}, /* L327 */
-{2.3811343024345368e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.2818192607919627e-13,
- 1.2407852523210749e-12}, /* L328 */
-{2.9719303560569861e+00, 1.0855205623272468e-13,
- 2.2204460492503131e-16, -2.3836488338702111e-13,
- 2.5157653738006047e-13}, /* L329 */
-{3.1045933591502362e+00, 1.1374234887284729e-13,
- 2.2204460492503131e-16, -1.0114131754335176e-13,
- -4.0745185003743245e-14}, /* L330 */
-{2.5831214291674045e+00, 9.4924068605450884e-14,
- 2.2204460492503131e-16, -2.8532731732866523e-14,
- -5.5622173533720343e-14}, /* L331 */
-{2.5734583837660527e+00, 9.4854679666411812e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- -3.2640556923979602e-14}, /* L332 */
-{2.0706025204486238e+00, 7.6549877547904543e-14,
- 2.2204460492503131e-16, -5.9374727356953372e-13,
- -1.5376588891058418e-12}, /* L333 */
-{2.6946523575597614e+00, 9.9920072216264089e-14,
- 2.2204460492503131e-16, 3.3772984409097262e-13,
- 6.6835426082434424e-14}, /* L334 */
-{3.4447243282785323e+00, 1.2811583391392212e-13,
- 2.2204460492503131e-16, 6.9722005946459831e-14,
- 1.5321077739827160e-14}, /* L335 */
-{2.7664117340012329e+00, 1.0319523013890830e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -4.6518344731794059e-14}, /* L336 */
-{2.7926988783496549e+00, 1.0448586440503504e-13,
- 2.2204460492503131e-16, -5.2513549064769904e-14,
- 3.8857805861880479e-14}, /* L337 */
-{3.5059712577234485e+00, 1.3156142841808105e-13,
- 2.2204460492503131e-16, -7.7937656328685989e-14,
- -6.1062266354383610e-15}, /* L338 */
-{2.7865474218586845e+00, 1.0487444246365385e-13,
- 2.2204460492503131e-16, -7.7715611723760958e-15,
- -1.2800871473928055e-13}, /* L339 */
-{3.1441661622755182e+00, 1.1868284133242923e-13,
- 2.2204460492503131e-16, -3.9046543776066756e-13,
- -5.3890225615305098e-13}, /* L340 */
-{2.8988717097436001e+00, 1.0974554598419672e-13,
- 2.2204460492503131e-16, 5.2180482157382357e-14,
- 6.7723604502134549e-14}, /* L341 */
-{2.0939650589106340e+00, 7.9505846350969023e-14,
- 2.2204460492503131e-16, 1.0302869668521453e-13,
- 6.8833827526759706e-15}, /* L342 */
-{2.9599582092910155e+00, 1.1271539257506902e-13,
- 2.2204460492503131e-16, -4.7839510131097995e-13,
- -1.8662849043948881e-13}, /* L343 */
-{3.1846421630322994e+00, 1.2162493234768590e-13,
- 2.2204460492503131e-16, -1.1912693054227930e-13,
- 5.1514348342607263e-14}, /* L344 */
-{3.5884611679003666e+00, 1.3744561044859438e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 2.3980817331903381e-14}, /* L345 */
-{2.4761942776235482e+00, 9.5118357634760287e-14,
- 2.2204460492503131e-16, -3.3972824553529790e-14,
- -1.9539925233402755e-14}, /* L346 */
-{3.6427075046615269e+00, 1.4033219031261979e-13,
- 2.2204460492503131e-16, -5.9063864910058328e-14,
- -3.1752378504279477e-14}, /* L347 */
-{2.3351653424946766e+00, 9.0219498538601783e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 5.4622972811557702e-14}, /* L348 */
-{3.1060651192915576e+00, 1.2034817586936697e-13,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 3.5527136788005009e-15}, /* L349 */
-{3.8836313539154999e+00, 1.5090706462217440e-13,
- 2.2204460492503131e-16, 6.0618177144533547e-14,
- -2.5202062658991053e-14}, /* L350 */
-{2.8120092019283662e+00, 1.0957901253050295e-13,
- 2.2204460492503131e-16, -4.9849013805669529e-14,
- 8.8817841970012523e-15}, /* L351 */
-{3.5341454417838407e+00, 1.3811174426336947e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- 2.7533531010703882e-14}, /* L352 */
-{2.4033656963940748e+00, 9.4188545851636718e-14,
- 2.2204460492503131e-16, -2.8899105330992825e-13,
- -2.7433610938487618e-13}, /* L353 */
-{3.2274509302690846e+00, 1.2684298056342413e-13,
- 2.2204460492503131e-16, -7.4273920347422973e-14,
- -2.2337687255458150e-13}, /* L354 */
-{2.8521566855039198e+00, 1.1241008124329710e-13,
- 2.2204460492503131e-16, 4.0190073491430667e-14,
- 1.1679546219056647e-13}, /* L355 */
-{3.6638556914563796e+00, 1.4480777688063995e-13,
- 2.2204460492503131e-16, -1.2334577803585489e-13,
- -8.7485574340462335e-14}, /* L356 */
-{3.3431888410911332e+00, 1.3250511798901243e-13,
- 2.2204460492503131e-16, 7.6383344094210770e-14,
- 2.2870594307278225e-14}, /* L357 */
-{2.4120483916577506e+00, 9.5867758176382267e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -3.1086244689504383e-15}, /* L358 */
-{2.8524117014049244e+00, 1.1368683772161603e-13,
- 2.2204460492503131e-16, 3.3306690738754696e-14,
- -8.8817841970012523e-16}, /* L359 */
-{3.4507476902917014e+00, 1.3791745523406007e-13,
- 2.2204460492503131e-16, -9.6811447747313650e-14,
- 1.1768364061026659e-14}, /* L360 */
-{2.6371598055687859e+00, 1.0569323194431490e-13,
- 2.2204460492503131e-16, -1.5432100042289676e-14,
- -4.0523140398818214e-14}, /* L361 */
-{3.4070363420895400e+00, 1.3692692812927731e-13,
- 2.2204460492503131e-16, -2.8532731732866523e-14,
- -1.3433698597964394e-14}, /* L362 */
-{2.7769023523877987e+00, 1.1191048088221578e-13,
- 2.2204460492503131e-16, -5.5400128928795311e-14,
- 5.1514348342607263e-14}, /* L363 */
-{2.6976721202175087e+00, 1.0901696212428647e-13,
- 2.2204460492503131e-16, -3.0575542098176811e-13,
- 2.9642954757491680e-13}, /* L364 */
-{3.4781358602324226e+00, 1.4094281297616362e-13,
- 2.2204460492503131e-16, -5.8508753397745750e-14,
- 2.2737367544323206e-13}, /* L365 */
-{2.8207402459961144e+00, 1.1461664950473960e-13,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- 5.3290705182007514e-15}, /* L366 */
-{2.0916535281111921e+00, 8.5223494927788579e-14,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- 3.5083047578154947e-14}, /* L367 */
-{2.1032933238739719e+00, 8.5931262105987116e-14,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -7.3163697322797816e-14}, /* L368 */
-{2.7344595375261558e+00, 1.1202150318467829e-13,
- 2.2204460492503131e-16, -3.4083846855992306e-14,
- -7.5606187976973160e-14}, /* L369 */
-{2.6074726663480474e+00, 1.0710876630071198e-13,
- 2.2204460492503131e-16, -2.0872192862952943e-14,
- 0.0000000000000000e+00}, /* L370 */
-{2.8100164050353245e+00, 1.1574075031717257e-13,
- 2.2204460492503131e-16, 4.6851411639181606e-14,
- -1.3655743202889425e-14}, /* L371 */
-{2.8863012567365454e+00, 1.1920325837522228e-13,
- 2.2204460492503131e-16, -9.1038288019262836e-15,
- -2.1871393585115584e-14}, /* L372 */
-{2.7936087896842063e+00, 1.1568523916594131e-13,
- 2.2204460492503131e-16, -1.5065726444163374e-13,
- -2.9021229863701592e-13}, /* L373 */
-{2.8516482796471734e+00, 1.1840528557627295e-13,
- 2.2204460492503131e-16, 5.2204907063924111e-12,
- 5.4363180623795415e-12}, /* L374 */
-{3.6147224426809568e+00, 1.5049073098793997e-13,
- 2.2204460492503131e-16, 5.5067062021407764e-14,
- -2.3103741142449508e-13}, /* L375 */
-{3.0652068713280611e+00, 1.2795320358804929e-13,
- 2.2204460492503131e-16, 8.0491169285323849e-13,
- -1.0191847366058937e-13}, /* L376 */
-{2.7805468832700586e+00, 1.1637912855633203e-13,
- 2.2204460492503131e-16, -9.2259533346350509e-14,
- -6.9277916736609768e-14}, /* L377 */
-{3.1270323778277214e+00, 1.3122836151069350e-13,
- 2.2204460492503131e-16, 5.4400928206632670e-14,
- -1.8429702208777599e-14}, /* L378 */
-{2.4789300710531541e+00, 1.0430545316353346e-13,
- 2.2204460492503131e-16, 1.6919798895287386e-13,
- 7.3496764230185363e-14}, /* L379 */
-{3.4263686591469731e+00, 1.4455103780619538e-13,
- 2.2204460492503131e-16, -2.7644553313166398e-14,
- -2.4980018054066022e-14}, /* L380 */
-{2.5559777595471700e+00, 1.0811490591677853e-13,
- 2.2204460492503131e-16, -1.4765966227514582e-14,
- -4.0190073491430667e-14}, /* L381 */
-{3.0929720294367438e+00, 1.3117285035946225e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 4.9293902293356950e-14}, /* L382 */
-{3.0594391354041188e+00, 1.3009038291045272e-13,
- 2.2204460492503131e-16, -8.7374552037999820e-14,
- -2.6867397195928788e-14}, /* L383 */
-{3.1471762115440272e+00, 1.3417045252595017e-13,
- 2.2204460492503131e-16, -2.9176661087149114e-13,
- 1.4410694859634532e-13}, /* L384 */
-{3.3714722737166531e+00, 1.4410694859634532e-13,
- 2.2204460492503131e-16, -2.0650148258027912e-14,
- -9.6700425444851135e-14}, /* L385 */
-{2.2720501765522236e+00, 9.7366559259626229e-14,
- 2.2204460492503131e-16, 3.5527136788005009e-13,
- 5.7553961596568115e-13}, /* L386 */
-{2.7041694193839056e+00, 1.1618483952702263e-13,
- 2.2204460492503131e-16, -6.1395333261771157e-14,
- -2.7311486405778851e-14}, /* L387 */
-{2.3428138735867621e+00, 1.0091927293842673e-13,
- 2.2204460492503131e-16, -6.0729199446996063e-14,
- 5.3290705182007514e-14}, /* L388 */
-{2.8155891959524748e+00, 1.2159717677207027e-13,
- 2.2204460492503131e-16, -2.7089441800853820e-14,
- -6.1062266354383610e-15}, /* L389 */
-{5.2707413982511087e+00, 2.2821328160560483e-13,
- 2.2204460492503131e-16, -3.9523939676655573e-14,
- 3.0642155479654321e-14}, /* L390 */
-{3.1110537537560141e+00, 1.3504822260479443e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-14,
- 9.0816243414337805e-14}, /* L391 */
-{3.4356013734763642e+00, 1.4951798479878597e-13,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- 2.1516122217235534e-13}, /* L392 */
-{3.1857919315618197e+00, 1.3899992268306960e-13,
- 2.2204460492503131e-16, -3.2418512319054571e-14,
- -3.1419311596891930e-14}, /* L393 */
-{2.9023218849441110e+00, 1.2695400286588665e-13,
- 2.2204460492503131e-16, 1.4099832412739488e-13,
- -8.4710016778899444e-14}, /* L394 */
-{3.4620701931082229e+00, 1.5182299861749016e-13,
- 2.2204460492503131e-16, -1.6986412276764895e-14,
- -8.5487172896137054e-15}, /* L395 */
-{2.5404369704987446e+00, 1.1168843627729075e-13,
- 2.2204460492503131e-16, -3.9890313274781874e-13,
- 2.1183055309847987e-13}, /* L396 */
-{2.9446225521739193e+00, 1.2978507157868080e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- -6.9055872131684737e-14}, /* L397 */
-{2.7324474793107654e+00, 1.2073675392798577e-13,
- 2.2204460492503131e-16, -1.1468603844377867e-13,
- 7.9491968563161208e-14}, /* L398 */
-{3.1082796390534502e+00, 1.3768847173523113e-13,
- 2.2204460492503131e-16, 7.7271522513910895e-14,
- 1.7208456881689926e-13}, /* L399 */
-{3.1037902324932563e+00, 1.3783418850721318e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 1.0658141036401503e-14}, /* L400 */
-{3.0424334521268257e+00, 1.3544720900426910e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-14,
- 1.2878587085651816e-14}, /* L401 */
-{3.1878522674110688e+00, 1.4227508060571381e-13,
- 2.2204460492503131e-16, 2.5535129566378600e-14,
- 8.8817841970012523e-15}, /* L402 */
-{3.7556189493457066e+00, 1.6803225477701744e-13,
- 2.2204460492503131e-16, -3.9523939676655573e-14,
- -1.1635137298071641e-13}, /* L403 */
-{2.7840612091019641e+00, 1.2487233469471448e-13,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.3833378886829450e-13}, /* L404 */
-{2.5827406847331718e+00, 1.1612932837579137e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- -8.4376949871511897e-15}, /* L405 */
-{3.1822963640366568e+00, 1.4344081478157023e-13,
- 2.2204460492503131e-16, -9.0150109599562711e-14,
- 2.2870594307278225e-14}, /* L406 */
-{2.9373744553543091e+00, 1.3272716259393746e-13,
- 2.2204460492503131e-16, 1.1834977442504169e-13,
- 5.2402526762307389e-14}, /* L407 */
-{3.5331219358110206e+00, 1.6003864899971632e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -3.5527136788005009e-14}, /* L408 */
-{2.8019827168002664e+00, 1.2723155862204294e-13,
- 2.2204460492503131e-16, 1.9539925233402755e-14,
- 7.1054273576010019e-14}, /* L409 */
-{3.1399689748354178e+00, 1.4292733663268109e-13,
- 2.2204460492503131e-16, -1.3478107518949400e-13,
- 1.1324274851176597e-13}, /* L410 */
-{4.0280189563495084e+00, 1.8379742172669467e-13,
- 2.2204460492503131e-16, 3.7969627442180354e-14,
- -2.9309887850104133e-14}, /* L411 */
-{3.2342541507519655e+00, 1.4793721803130211e-13,
- 2.2204460492503131e-16, -8.3155704544424225e-14,
- 8.6153306710912148e-14}, /* L412 */
-{2.9691566504589075e+00, 1.3614109839465982e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- 1.7541523789077473e-14}, /* L413 */
-{3.1461652752491771e+00, 1.4460654895742664e-13,
- 2.2204460492503131e-16, -1.9217960556261460e-13,
- -1.1024514634527804e-13}, /* L414 */
-{3.1144875387178690e+00, 1.4349632593280148e-13,
- 2.2204460492503131e-16, -3.8635761256955448e-14,
- 9.6589403142388619e-14}, /* L415 */
-{2.7470213946415964e+00, 1.2687073613903976e-13,
- 2.2204460492503131e-16, -6.2394533983933798e-14,
- -2.5424107263916085e-14}, /* L416 */
-{2.9346802704870956e+00, 1.3586354263850353e-13,
- 2.2204460492503131e-16, -1.2390088954816747e-13,
- -1.3511414209688155e-13}, /* L417 */
-{3.1985951029465016e+00, 1.4843681839238343e-13,
- 2.2204460492503131e-16, 3.9346303992715548e-13,
- 4.2632564145606011e-14}, /* L418 */
-{4.7685419045607631e+00, 2.2182256032010628e-13,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- -1.5210055437364645e-14}, /* L419 */
-{4.1205750181967931e+00, 1.9213797219919115e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- 4.0190073491430667e-14}, /* L420 */
-{2.9436147758682765e+00, 1.3758438832667252e-13,
- 2.2204460492503131e-16, -4.5741188614556449e-14,
- -1.8096635301390052e-14}, /* L421 */
-{4.1813195041718201e+00, 1.9589885269510887e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-13,
- -9.4924068605450884e-14}, /* L422 */
-{3.1111407865801382e+00, 1.4610535004067060e-13,
- 2.2204460492503131e-16, -1.9206858326015208e-13,
- 3.9079850466805510e-14}, /* L423 */
-{3.1321053471373599e+00, 1.4743761767022079e-13,
- 2.2204460492503131e-16, -2.0161650127192843e-13,
- -1.0125233984581428e-13}, /* L424 */
-{3.3941500219990770e+00, 1.6014967130217883e-13,
- 2.2204460492503131e-16, -3.6637359812630166e-15,
- -2.2204460492503131e-15}, /* L425 */
-{2.9882914144749360e+00, 1.4133139103478243e-13,
- 2.2204460492503131e-16, -1.7208456881689926e-14,
- -1.5765166949677223e-14}, /* L426 */
-{2.9859769593525933e+00, 1.4155343563970746e-13,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -8.3932860661661834e-14}, /* L427 */
-{3.7219981189256077e+00, 1.7685852782278744e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -1.6397994073713562e-13}, /* L428 */
-{3.4335991847722838e+00, 1.6353585152728556e-13,
- 2.2204460492503131e-16, -9.7188923575686204e-13,
- -1.4088730182493236e-13}, /* L429 */
-{3.1325880195781148e+00, 1.4954704141700859e-13,
- 2.2204460492503131e-16, -2.2648549702353193e-14,
- 7.9047879353311146e-14}, /* L430 */
-{4.7506253599854524e+00, 2.2731816429200080e-13,
- 2.2204460492503131e-16, 2.7375879341207110e-12,
- 2.7580160377738139e-12}, /* L431 */
-{3.4016528168757301e+00, 1.6314727346866675e-13,
- 2.2204460492503131e-16, 4.0190073491430667e-14,
- -1.1435297153639112e-14}, /* L432 */
-{3.5646991287298322e+00, 1.7136292385089291e-13,
- 2.2204460492503131e-16, 3.5571545708990016e-13,
- -2.4280577548552174e-13}, /* L433 */
-{3.4965771307382760e+00, 1.6847634398686751e-13,
- 2.2204460492503131e-16, -3.6859404417555197e-14,
- -1.6875389974302379e-14}, /* L434 */
-{3.2655483896583037e+00, 1.5770718064800349e-13,
- 2.2204460492503131e-16, 1.0502709812953981e-13,
- -5.8286708792820718e-14}, /* L435 */
-{3.7787057677774731e+00, 1.8290924330699454e-13,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- -1.6431300764452317e-14}, /* L436 */
-{3.3089560474476141e+00, 1.6053824936079764e-13,
- 2.2204460492503131e-16, 4.5741188614556449e-14,
- 1.1990408665951691e-14}, /* L437 */
-{4.9405437004839232e+00, 2.4024532363497997e-13,
- 2.2204460492503131e-16, 3.2440716779547074e-13,
- 1.1857181902996672e-13}, /* L438 */
-{4.6424133019418701e+00, 2.2626345241860690e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 2.6645352591003757e-14}, /* L439 */
-{3.5079880062308026e+00, 1.7136292385089291e-13,
- 2.2204460492503131e-16, 3.4261482539932331e-13,
- -6.2172489379008766e-15}, /* L440 */
-{3.3866536186288458e+00, 1.6581180872776713e-13,
- 2.2204460492503131e-16, -5.6177285046032921e-14,
- 1.0813572259849025e-13}, /* L441 */
-{3.5011646174138167e+00, 1.7180701306074297e-13,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- 1.7541523789077473e-14}, /* L442 */
-{4.1208068004785252e+00, 2.0267121314532233e-13,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -5.1847415249994810e-14}, /* L443 */
-{2.9069815569300879e+00, 1.4329509800958817e-13,
- 2.2204460492503131e-16, -3.6082248300317588e-14,
- 1.3788969965844444e-13}, /* L444 */
-{3.2306487929196930e+00, 1.5960843757767407e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- -5.8952842607595812e-14}, /* L445 */
-{3.9905089152995954e+00, 1.9759194280766224e-13,
- 2.2204460492503131e-16, -1.3988810110276972e-14,
- -8.4821039081361960e-14}, /* L446 */
-{2.9905206949624068e+00, 1.4840906281676780e-13,
- 2.2204460492503131e-16, 3.4150460237469815e-13,
- -3.7725378376762819e-13}, /* L447 */
-{3.0669935400880073e+00, 1.5254464358349651e-13,
- 2.2204460492503131e-16, -2.0095036745715333e-14,
- 2.5535129566378600e-14}, /* L448 */
-{3.5106125504006176e+00, 1.7499890425654030e-13,
- 2.2204460492503131e-16, 7.7715611723760958e-14,
- 1.2145839889399213e-13}, /* L449 */
-{3.1144741517098504e+00, 1.5559775690121569e-13,
- 2.2204460492503131e-16, 4.2410519540680980e-14,
- 7.6605388699135801e-14}, /* L450 */
-{3.1352848946810261e+00, 1.5698553568199713e-13,
- 2.2204460492503131e-16, -6.7945649107059580e-14,
- 8.8817841970012523e-16}, /* L451 */
-{3.2686982137223382e+00, 1.6402851299446297e-13,
- 2.2204460492503131e-16, -6.3171690101171407e-14,
- 7.3496764230185363e-14}, /* L452 */
-{3.3984871624467381e+00, 1.7091883464104285e-13,
- 2.2204460492503131e-16, 3.7525538232330291e-14,
- -1.3655743202889425e-14}, /* L453 */
-{2.9780019738138681e+00, 1.5010215292932116e-13,
- 2.2204460492503131e-16, 1.6875389974302379e-14,
- -4.1633363423443370e-14}, /* L454 */
-{2.8725548722572074e+00, 1.4510614931850796e-13,
- 2.2204460492503131e-16, 1.8651746813702630e-14,
- -8.2711615334574162e-14}, /* L455 */
-{2.9528790430907952e+00, 1.4949153026577733e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- -5.9396931817445875e-14}, /* L456 */
-{3.6641487358686016e+00, 1.8590684547348246e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-14,
- 4.1522341120980855e-14}, /* L457 */
-{3.5275991500191326e+00, 1.7937040741600185e-13,
- 2.2204460492503131e-16, -1.3178347302300608e-13,
- -1.4221956945448255e-13}, /* L458 */
-{3.7015603616257113e+00, 1.8862689188381410e-13,
- 2.2204460492503131e-16, -2.5646151868841116e-14,
- 5.8397731095283234e-14}, /* L459 */
-{4.4978689896627992e+00, 2.2970514379494489e-13,
- 2.2204460492503131e-16, -3.0420110874729289e-13,
- 5.8086868648388190e-13}, /* L460 */
-{3.0857127301056124e+00, 1.5792922525292852e-13,
- 2.2204460492503131e-16, 4.2188474935755949e-14,
- 2.7311486405778851e-14}, /* L461 */
-{3.1731904404857927e+00, 1.6275869541004795e-13,
- 2.2204460492503131e-16, -8.1823436914874037e-14,
- -2.4646951146678475e-13}, /* L462 */
-{4.1874049521625407e+00, 2.1524448889920222e-13,
- 2.2204460492503131e-16, 8.4821039081361960e-14,
- 8.6597395920762210e-15}, /* L463 */
-{2.6984362992440358e+00, 1.3900686157697351e-13,
- 2.2204460492503131e-16, -9.1393559387142886e-13,
- -8.1934459217336553e-13}, /* L464 */
-{3.2739559596580055e+00, 1.6901757771137227e-13,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 1.4654943925052066e-14}, /* L465 */
-{3.2487903768459687e+00, 1.6807909231086882e-13,
- 2.2204460492503131e-16, 8.6597395920762210e-15,
- 2.4202861936828413e-14}, /* L466 */
-{4.3734357200933989e+00, 2.2674917499188041e-13,
- 2.2204460492503131e-16, 8.4821039081361960e-14,
- -5.7065463465733046e-14}, /* L467 */
-{4.0983296900140092e+00, 2.1294077612310502e-13,
- 2.2204460492503131e-16, -1.8496315590255108e-13,
- 1.6742163211347361e-13}, /* L468 */
-{3.8699729476698028e+00, 2.0150547896946591e-13,
- 2.2204460492503131e-16, 1.1080025785759062e-13,
- 3.0864200084579352e-14}, /* L469 */
-{2.8485644049395891e+00, 1.4863804631559674e-13,
- 2.2204460492503131e-16, -4.9182879990894435e-14,
- 1.4765966227514582e-13}, /* L470 */
-{5.1231911178213458e+00, 2.6789681584205027e-13,
- 2.2204460492503131e-16, 1.7112977701572163e-12,
- -7.4551476103579262e-13}, /* L471 */
-{3.3652333703068122e+00, 1.7634504967389830e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- -9.9920072216264089e-16}, /* L472 */
-{3.8515166529392406e+00, 2.0225487951108789e-13,
- 2.2204460492503131e-16, -4.6906922790412864e-13,
- 2.8044233602031454e-13}, /* L473 */
-{3.6044647607645821e+00, 1.8968160375720799e-13,
- 2.2204460492503131e-16, 6.4614980033184111e-14,
- 2.7755575615628914e-14}, /* L474 */
-{3.4518750308105548e+00, 1.8203494267510223e-13,
- 2.2204460492503131e-16, -1.1601830607332886e-13,
- -1.0846878950587779e-13}, /* L475 */
-{3.2379510530979623e+00, 1.7111312367035225e-13,
- 2.2204460492503131e-16, 7.8581585682968580e-13,
- -1.4657164371101317e-12}, /* L476 */
-{3.2719127603488558e+00, 1.7327111967446740e-13,
- 2.2204460492503131e-16, 1.8651746813702630e-14,
- 5.1070259132757201e-14}, /* L477 */
-{3.2267567196899516e+00, 1.7123802376062258e-13,
- 2.2204460492503131e-16, -1.9539925233402755e-14,
- -1.6209256159527285e-14}, /* L478 */
-{3.3956482556193550e+00, 1.8057777495528171e-13,
- 2.2204460492503131e-16, -6.3948846218409017e-14,
- -5.4733995114020217e-14}, /* L479 */
-{3.2906563877714197e+00, 1.7535972673954348e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-14,
- 4.2188474935755949e-14}, /* L480 */
-{3.8815339053249240e+00, 2.0727863869751673e-13,
- 2.2204460492503131e-16, 1.7741363933510002e-13,
- -2.0228263508670352e-13}, /* L481 */
-{4.0934000405518303e+00, 2.1904700275854339e-13,
- 2.2204460492503131e-16, -1.8862689188381410e-13,
- -2.3303581286882036e-13}, /* L482 */
-{3.3124021956069130e+00, 1.7762180615221723e-13,
- 2.2204460492503131e-16, -3.2862601528904634e-14,
- -1.1879386363489175e-14}, /* L483 */
-{4.2218894438472043e+00, 2.2686019729434292e-13,
- 2.2204460492503131e-16, -9.9698027611339057e-14,
- -6.6280314570121845e-14}, /* L484 */
-{3.7526131137104168e+00, 2.0206059048177849e-13,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- 5.2180482157382357e-14}, /* L485 */
-{5.4336938043416456e+00, 2.9318214522788821e-13,
- 2.2204460492503131e-16, -1.9650947535865271e-14,
- 4.6629367034256575e-15}, /* L486 */
-{3.7556826406506372e+00, 2.0305979120394113e-13,
- 2.2204460492503131e-16, 4.1744385725905886e-14,
- 2.5979218776228663e-14}, /* L487 */
-{3.5481895819436158e+00, 1.9223511671384585e-13,
- 2.2204460492503131e-16, 2.0228263508670352e-13,
- -2.6578739209526248e-13}, /* L488 */
-{4.5680394820489401e+00, 2.4799606812564434e-13,
- 2.2204460492503131e-16, 1.9118040484045196e-13,
- 2.8688162956314045e-13}, /* L489 */
-{3.0081919588019024e+00, 1.6364687382974807e-13,
- 2.2204460492503131e-16, 3.2684965844964609e-13,
- 3.7725378376762819e-13}, /* L490 */
-{3.1665271487801463e+00, 1.7261192475359621e-13,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- -4.3187675657918589e-14}, /* L491 */
-{3.5584689016346811e+00, 1.9437229603624928e-13,
- 2.2204460492503131e-16, 5.7531757136075612e-13,
- -2.8688162956314045e-13}, /* L492 */
-{2.8009109709215947e+00, 1.5330358510423636e-13,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- 4.6851411639181606e-14}, /* L493 */
-{3.9150171002892113e+00, 2.1471713296250527e-13,
- 2.2204460492503131e-16, -2.0194956817931597e-13,
- 1.4566126083082054e-13}, /* L494 */
-{3.2209271873081864e+00, 1.7700771404172144e-13,
- 2.2204460492503131e-16, 9.0594198809412774e-14,
- -6.5725203057809267e-14}, /* L495 */
-{3.7994314019880351e+00, 2.0922152899061075e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 3.5305092183079978e-14}, /* L496 */
-{4.1479268887490894e+00, 2.2887247652647602e-13,
- 2.2204460492503131e-16, -7.0832228971084987e-14,
- 1.3322676295501878e-15}, /* L497 */
-{4.9528584875869806e+00, 2.7383650902379486e-13,
- 2.2204460492503131e-16, -1.1468603844377867e-13,
- 1.7097434579227411e-14}, /* L498 */
-{4.0170723847892811e+00, 2.2254420528611263e-13,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- 1.6431300764452317e-14}, /* L499 */
-{3.6490348061458717e+00, 2.0256019084285981e-13,
- 2.2204460492503131e-16, -1.2634338020234281e-13,
- 9.2814644858663087e-14}, /* L500 */
-{3.3273770474102928e+00, 1.8507417820501360e-13,
- 2.2204460492503131e-16, -1.8129941992128806e-13,
- 1.0369483049998962e-13}, /* L501 */
-{3.5747352926596978e+00, 1.9922952176898434e-13,
- 2.2204460492503131e-16, 5.6399329650957952e-14,
- 3.8924419243357988e-13}, /* L502 */
-{4.7893100961193813e+00, 2.6745272663220021e-13,
- 2.2204460492503131e-16, -7.4329431498654230e-13,
- -2.6645352591003757e-14}, /* L503 */
-{3.1032042029420688e+00, 1.7363888105137448e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 1.9984014443252818e-14}, /* L504 */
-{4.1059797587543878e+00, 2.3020474415602621e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 7.2164496600635175e-14}, /* L505 */
-{3.6270108806561168e+00, 2.0375368059433185e-13,
- 2.2204460492503131e-16, -4.6307402357115279e-13,
- -2.5202062658991053e-14}, /* L506 */
-{4.1911149274393784e+00, 2.3590851494503795e-13,
- 2.2204460492503131e-16, 6.2727600891321345e-13,
- 2.9332092310596636e-13}, /* L507 */
-{4.3248444019275958e+00, 2.4391599851014689e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- -4.7928327973068008e-13}, /* L508 */
-{4.2662489448867884e+00, 2.4108492979735274e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-14,
- -1.7730261703263750e-13}, /* L509 */
-{3.9372924576381125e+00, 2.2293278334473143e-13,
- 2.2204460492503131e-16, 2.5313084961453569e-13,
- 1.9095836023552692e-14}, /* L510 */
-{3.5445543575103229e+00, 2.0108914533523148e-13,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- 3.0864200084579352e-14}, /* L511 */
-{3.4482750787088032e+00, 1.9600987499757139e-13,
- 2.2204460492503131e-16, -1.0569323194431490e-13,
- 3.0486724256206799e-13}, /* L512 */
-{4.0295218662033907e+00, 2.2949697697782767e-13,
- 2.2204460492503131e-16, 1.0236256287043943e-13,
- -6.6280314570121845e-14}, /* L513 */
-{5.3633780065780829e+00, 3.0606073231354003e-13,
- 2.2204460492503131e-16, 8.6597395920762210e-15,
- -6.5281113847959205e-14}, /* L514 */
-{4.3903331391219869e+00, 2.5102142586774789e-13,
- 2.2204460492503131e-16, 2.5091040356528538e-14,
- -2.2204460492503131e-14}, /* L515 */
-{4.7948616270350248e+00, 2.7468305408007154e-13,
- 2.2204460492503131e-16, -5.1958437552457326e-14,
- -2.2204460492503131e-16}, /* L516 */
-{4.7214774684487626e+00, 2.7100544031100071e-13,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 6.7057470687359455e-14}, /* L517 */
-{3.6164391033646619e+00, 2.0797946698181136e-13,
- 2.2204460492503131e-16, 2.1960211427085596e-13,
- 1.1546319456101628e-14}, /* L518 */
-{3.7957670676072151e+00, 2.1871393585115584e-13,
- 2.2204460492503131e-16, 3.5971225997855072e-14,
- 1.3544720900426910e-14}, /* L519 */
-{4.2031316313108409e+00, 2.4265311981963578e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 1.0014211682118912e-13}, /* L520 */
-{4.6353240118240606e+00, 2.6811886044697530e-13,
- 2.2204460492503131e-16, -6.3116178949940149e-13,
- 2.4247270857813419e-13}, /* L521 */
-{3.1321888497193999e+00, 1.8152146452621309e-13,
- 2.2204460492503131e-16, -3.2096547641913276e-13,
- -2.6745272663220021e-13}, /* L522 */
-{3.7103309016163597e+00, 2.1543877792851163e-13,
- 2.2204460492503131e-16, 2.1183055309847987e-13,
- 3.1952218648712005e-13}, /* L523 */
-{4.2576403050934264e+00, 2.4769075679387242e-13,
- 2.2204460492503131e-16, 2.5801583092288638e-13,
- -1.1635137298071641e-13}, /* L524 */
-{4.0990540861510167e+00, 2.3891999489933369e-13,
- 2.2204460492503131e-16, -2.9420910152566648e-13,
- -2.6245672302138701e-13}, /* L525 */
-{3.0855561989014482e+00, 1.8018919689666291e-13,
- 2.2204460492503131e-16, -6.5947247662734299e-14,
- -1.7430501486614958e-14}, /* L526 */
-{3.4114143006087718e+00, 1.9959728314589142e-13,
- 2.2204460492503131e-16, -6.3515859238805206e-13,
- -3.7814196218732832e-13}, /* L527 */
-{2.6875042400933435e+00, 1.5754064719430971e-13,
- 2.2204460492503131e-16, -1.3000711618360583e-13,
- -1.3233858453531866e-13}, /* L528 */
-{3.8490136340529224e+00, 2.2605528560148969e-13,
- 2.2204460492503131e-16, 1.7763568394002505e-14,
- 1.6764367671839864e-13}, /* L529 */
-{4.0792517188821025e+00, 2.4003021792395884e-13,
- 2.2204460492503131e-16, 1.6742163211347361e-13,
- 3.6037839379332581e-13}, /* L530 */
-{4.9030209181907445e+00, 2.8904656446115951e-13,
- 2.2204460492503131e-16, 2.0934365352331952e-12,
- 1.5420997812043424e-12}, /* L531 */
-{4.4924882908376471e+00, 2.6534330288541241e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-14,
- -2.1316282072803006e-14}, /* L532 */
-{3.9348092098497522e+00, 2.3284152383951096e-13,
- 2.2204460492503131e-16, -4.3076653355456074e-13,
- -1.0158540675320182e-13}, /* L533 */
-{5.1854014394723213e+00, 3.0742075551870585e-13,
- 2.2204460492503131e-16, 4.4630965589931293e-14,
- -9.7255536957163713e-14}, /* L534 */
-{5.1682324530193897e+00, 3.0697666630885578e-13,
- 2.2204460492503131e-16, 3.0420110874729289e-13,
- 5.8175686490358203e-14}, /* L535 */
-{3.3936620706212892e+00, 2.0194956817931597e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -2.0095036745715333e-14}, /* L536 */
-{4.5987037172271430e+00, 2.7416957593118241e-13,
- 2.2204460492503131e-16, -4.0101255649460654e-13,
- 5.1780801868517301e-13}, /* L537 */
-{3.3894105519583237e+00, 2.0244916854039730e-13,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -6.8167693711984612e-14}, /* L538 */
-{3.8534383616006620e+00, 2.3059332221464501e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-14,
- -4.0079051188968151e-14}, /* L539 */
-{2.8611156251133827e+00, 1.7152945730458669e-13,
- 2.2204460492503131e-16, 7.2164496600635175e-14,
- 2.8643754035329039e-14}, /* L540 */
-{3.6001674175331910e+00, 2.1623675072746096e-13,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 8.8817841970012523e-16}, /* L541 */
-{4.2396284601093761e+00, 2.5511537327105316e-13,
- 2.2204460492503131e-16, -1.9984014443252818e-14,
- -2.0317081350640365e-14}, /* L542 */
-{4.5414436291452542e+00, 2.7378099787256360e-13,
- 2.2204460492503131e-16, 7.9403150721191196e-13,
- -8.6741724913963481e-13}, /* L543 */
-{4.6378749642641965e+00, 2.8010926911292700e-13,
- 2.2204460492503131e-16, 5.8997251528580819e-13,
- -3.4339198151656092e-13}, /* L544 */
-{3.4000053642130124e+00, 2.0572432646304151e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- 4.7961634663806763e-14}, /* L545 */
-{4.5547519204972300e+00, 2.7610032315994459e-13,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- 4.1078251911130792e-14}, /* L546 */
-{3.9186533488457549e+00, 2.3797630532840230e-13,
- 2.2204460492503131e-16, 4.3076653355456074e-13,
- 1.1013412404281553e-13}, /* L547 */
-{3.7408818144226443e+00, 2.2759572004815709e-13,
- 2.2204460492503131e-16, -1.2267964422107980e-13,
- 3.4283687000424834e-13}, /* L548 */
-{4.2714092891225537e+00, 2.6034729927459921e-13,
- 2.2204460492503131e-16, 1.5587531265737198e-13,
- -1.9650947535865271e-13}, /* L549 */
-{3.7254604231398849e+00, 2.2748469774569458e-13,
- 2.2204460492503131e-16, 8.6819440525687241e-14,
- 1.2234657731369225e-13}, /* L550 */
-{3.7477373102907725e+00, 2.2926105458509483e-13,
- 2.2204460492503131e-16, -7.5606187976973160e-14,
- 4.9737991503207013e-14}, /* L551 */
-{4.2056225772699012e+00, 2.5773827516673009e-13,
- 2.2204460492503131e-16, -4.9849013805669529e-14,
- 5.9952043329758453e-14}, /* L552 */
-{4.2109017610969071e+00, 2.5852930907177551e-13,
- 2.2204460492503131e-16, -4.4897419115841330e-13,
- -5.0937032369802182e-13}, /* L553 */
-{4.5859729392923407e+00, 2.8206603719382883e-13,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -5.9618976422370906e-14}, /* L554 */
-{4.9828907444255996e+00, 3.0703217746008704e-13,
- 2.2204460492503131e-16, -6.5170091545496689e-14,
- -6.2616578588858829e-14}, /* L555 */
-{4.3682622875204240e+00, 2.6964541710583489e-13,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- -6.9722005946459831e-14}, /* L556 */
-{3.8451586697605085e+00, 2.3778201629909290e-13,
- 2.2204460492503131e-16, 3.0930813466056861e-13,
- -4.5152770411505116e-13}, /* L557 */
-{4.6998282034770931e+00, 2.9115598820794730e-13,
- 2.2204460492503131e-16, 2.6489921367556235e-13,
- -2.7267077484793845e-13}, /* L558 */
-{4.3085935597741667e+00, 2.6739721548096895e-13,
- 2.2204460492503131e-16, 5.0404125317982107e-14,
- -3.6748382115092681e-14}, /* L559 */
-{3.5267912785288869e+00, 2.1926904736346842e-13,
- 2.2204460492503131e-16, -2.1027624086400465e-13,
- -2.7866597918091429e-14}, /* L560 */
-{4.6479574222408822e+00, 2.8949065367100957e-13,
- 2.2204460492503131e-16, 9.3702823278363212e-14,
- -1.5687451337953462e-13}, /* L561 */
-{3.6961802087141127e+00, 2.3062107779026064e-13,
- 2.2204460492503131e-16, -9.8365759981788869e-14,
- 1.6808776592824870e-13}, /* L562 */
-{4.1749621818932114e+00, 2.6095792193814304e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-14,
- -8.8817841970012523e-15}, /* L563 */
-{4.5077365001846319e+00, 2.8225859149966226e-13,
- 2.2204460492503131e-16, -1.2645440250480533e-13,
- -1.5198953207118393e-13}, /* L564 */
-{5.9814253661344789e+00, 3.7519987117207165e-13,
- 2.2204460492503131e-16, -1.9162449405030202e-13,
- -3.4550140526334872e-13}, /* L565 */
-{3.6025896060697105e+00, 2.2638141361497333e-13,
- 2.2204460492503131e-16, -1.5420997812043424e-13,
- -6.6624483707755644e-13}, /* L566 */
-{4.1922464730435296e+00, 2.6390001295339971e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 3.5083047578154947e-14}, /* L567 */
-{3.3292306046620355e+00, 2.0994317395661710e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 1.7719159473017498e-13}, /* L568 */
-{4.7407807660296557e+00, 2.9948266089263598e-13,
- 2.2204460492503131e-16, -1.6431300764452317e-13,
- 7.7271522513910895e-14}, /* L569 */
-{3.9631641474479795e+00, 2.5079938126282286e-13,
- 2.2204460492503131e-16, -2.0428103653102880e-13,
- -3.2196467714129540e-15}, /* L570 */
-{4.2070994571847882e+00, 2.6670332609057823e-13,
- 2.2204460492503131e-16, -1.8329782136561334e-13,
- -1.7019718967503650e-13}, /* L571 */
-{4.3138179947530322e+00, 2.7394753132625738e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- 5.2846615972157451e-14}, /* L572 */
-{3.3616981484431459e+00, 2.1385671011842078e-13,
- 2.2204460492503131e-16, 1.2305712004945235e-12,
- 2.5091040356528538e-13}, /* L573 */
-{3.6642043873055727e+00, 2.3350765765428605e-13,
- 2.2204460492503131e-16, -6.6058269965196814e-14,
- -4.4653170050423796e-13}, /* L574 */
-{3.0108743154955673e+00, 1.9220736113823023e-13,
- 2.2204460492503131e-16, 8.1712414612411521e-14,
- 2.5979218776228663e-14}, /* L575 */
-{4.9314313914632564e+00, 3.1535885014477572e-13,
- 2.2204460492503131e-16, -2.9420910152566648e-14,
- -6.5503158452884236e-15}, /* L576 */
-{3.5476659091354010e+00, 2.2726265314076954e-13,
- 2.2204460492503131e-16, -1.3267165144270621e-13,
- -2.2271073873980640e-13}, /* L577 */
-{4.5527753489953691e+00, 2.9215518893010994e-13,
- 2.2204460492503131e-16, 2.6265656316581953e-12,
- 1.4621637234313312e-12}, /* L578 */
-{4.9948265332223292e+00, 3.2107649872159527e-13,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -1.1179945857975326e-13}, /* L579 */
-{3.4931089593791089e+00, 2.2493118478905672e-13,
- 2.2204460492503131e-16, 1.2168044349891716e-13,
- -1.8984813721090177e-14}, /* L580 */
-{4.5356676550899948e+00, 2.9256805311739242e-13,
- 2.2204460492503131e-16, 2.2870594307278225e-13,
- -3.7303493627405260e-13}, /* L581 */
-{4.7491483862364792e+00, 3.0686564400639327e-13,
- 2.2204460492503131e-16, -4.9626969200744497e-14,
- -4.4408920985006262e-16}, /* L582 */
-{3.8937936647021116e+00, 2.5202930020729042e-13,
- 2.2204460492503131e-16, -6.2561067437627571e-13,
- -4.5219383792982626e-13}, /* L583 */
-{4.4422159126112470e+00, 2.8801960816338124e-13,
- 2.2204460492503131e-16, 7.9625195326116227e-13,
- 1.3131717935266352e-12}, /* L584 */
-{4.2555622695859086e+00, 2.7639002198043272e-13,
- 2.2204460492503131e-16, -6.6058269965196814e-14,
- 9.7699626167013776e-14}, /* L585 */
-{4.1894264049095300e+00, 2.7255975254547593e-13,
- 2.2204460492503131e-16, 1.5898393712632242e-13,
- -2.1316282072803006e-14}, /* L586 */
-{4.4531586441777051e+00, 2.9021229863701592e-13,
- 2.2204460492503131e-16, -7.8381745538536052e-14,
- 7.0388139761234925e-14}, /* L587 */
-{4.8469464225722128e+00, 3.1641356201816961e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- 2.4202861936828413e-14}, /* L588 */
-{3.6426203480057162e+00, 2.3819834993332734e-13,
- 2.2204460492503131e-16, 3.4439118223872356e-13,
- -4.0967229608668276e-14}, /* L589 */
-{5.8610261961358470e+00, 3.8391512191537913e-13,
- 2.2204460492503131e-16, -7.8381745538536052e-14,
- 1.3544720900426910e-14}, /* L590 */
-{4.7216656558360253e+00, 3.0980773502164993e-13,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- -2.2981616609740740e-14}, /* L591 */
-{5.3674071168447686e+00, 3.5277336607464349e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 5.5733195836182858e-14}, /* L592 */
-{5.6664296819543987e+00, 3.7305575295576432e-13,
- 2.2204460492503131e-16, -1.0447198661722723e-13,
- 6.7723604502134549e-14}, /* L593 */
-{3.7803089945237085e+00, 2.4930058017957890e-13,
- 2.2204460492503131e-16, -7.1720407390785113e-14,
- -8.7707618945387367e-15}, /* L594 */
-{3.8424430370379552e+00, 2.5382473900492641e-13,
- 2.2204460492503131e-16, 2.2692958623338200e-13,
- 2.8577140653851529e-13}, /* L595 */
-{5.3028607153457576e+00, 3.5088598693278072e-13,
- 2.2204460492503131e-16, 3.6237679523765109e-13,
- -6.1373128801278654e-13}, /* L596 */
-{4.7529388220176276e+00, 3.1502578323738817e-13,
- 2.2204460492503131e-16, 1.1639578190170141e-12,
- 5.2757798130187439e-13}, /* L597 */
-{5.9414809458223976e+00, 3.9446224064931812e-13,
- 2.2204460492503131e-16, -6.3837823915946501e-14,
- 1.9229062786507711e-13}, /* L598 */
-{4.2437462613310597e+00, 2.8221869285971479e-13,
- 2.2204460492503131e-16, -4.3409720262843621e-14,
- 2.2137847111025621e-13}, /* L599 */
-{4.7225074506925866e+00, 3.1458169402753811e-13,
- 2.2204460492503131e-16, 3.7112535267169733e-12,
- 4.2388315080188477e-13}, /* L600 */
-{5.1414390601010656e+00, 3.4305891460917337e-13,
- 2.2204460492503131e-16, -1.2534417948018017e-13,
- 3.1752378504279477e-14}, /* L601 */
-{5.5282479246115317e+00, 3.6948222259525210e-13,
- 2.2204460492503131e-16, 5.8619775700208265e-14,
- -4.8061554736023027e-13}, /* L602 */
-{3.8026593989637387e+00, 2.5457413954654839e-13,
- 2.2204460492503131e-16, 4.2454928461665986e-12,
- -9.5611296657693856e-12}, /* L603 */
-{3.9147412756285060e+00, 2.6251223417261826e-13,
- 2.2204460492503131e-16, 2.5721647034515627e-12,
- -1.8585133432225120e-13}, /* L604 */
-{4.6305858181053470e+00, 3.1102898034873760e-13,
- 2.2204460492503131e-16, -8.1046280797636427e-15,
- -7.0610184366159956e-14}, /* L605 */
-{4.0532242165449244e+00, 2.7269853042355408e-13,
- 2.2204460492503131e-16, -3.3212321781661558e-12,
- 2.5228708011582057e-12}, /* L606 */
-{4.0401628816070625e+00, 2.7226831900151183e-13,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 9.9920072216264089e-15}, /* L607 */
-{4.1801052791859110e+00, 2.8216318170848353e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-14,
- -1.9706458687096529e-13}, /* L608 */
-{4.7077249971980910e+00, 3.1830094116003238e-13,
- 2.2204460492503131e-16, 2.5757174171303632e-14,
- 8.7485574340462335e-14}, /* L609 */
-{3.7877108939317075e+00, 2.5651702983964242e-13,
- 2.2204460492503131e-16, 6.5725203057809267e-14,
- 4.7295500849031669e-14}, /* L610 */
-{4.1546710393060637e+00, 2.8183011480109599e-13,
- 2.2204460492503131e-16, -9.9920072216264089e-15,
- -1.0680345496894006e-13}, /* L611 */
-{3.3041310299420852e+00, 2.2450097336701447e-13,
- 2.2204460492503131e-16, -3.5094149808401198e-13,
- -4.4964032497318840e-14}, /* L612 */
-{4.7732538603103807e+00, 3.2485125700532080e-13,
- 2.2204460492503131e-16, -1.7827961329430764e-12,
- -1.6014967130217883e-12}, /* L613 */
-{6.4568505778986003e+00, 4.4014791811264331e-13,
- 2.2204460492503131e-16, -1.3167245072054357e-13,
- 8.9706020389712648e-14}, /* L614 */
-{4.9455362578909794e+00, 3.3767433293974136e-13,
- 2.2204460492503131e-16, 2.8976820942716586e-13,
- -1.4355183708403274e-13}, /* L615 */
-{4.6903483090863878e+00, 3.2077118738982335e-13,
- 2.2204460492503131e-16, -1.9961809982760315e-13,
- -1.4588330543574557e-13}, /* L616 */
-{3.6788955935217831e+00, 2.5200674880210272e-13,
- 2.2204460492503131e-16, 3.7925218521195347e-13,
- 9.2592600253738055e-14}, /* L617 */
-{4.7815609419599179e+00, 3.2807090377673376e-13,
- 2.2204460492503131e-16, 9.7699626167013776e-15,
- -2.5135449277513544e-13}, /* L618 */
-{4.1219774241109510e+00, 2.8327340473310869e-13,
- 2.2204460492503131e-16, -2.4313884239290928e-13,
- -2.4680257837417230e-13}, /* L619 */
-{4.2258131187057746e+00, 2.9087843245179101e-13,
- 2.2204460492503131e-16, 3.5638159090467525e-13,
- 5.8286708792820718e-13}, /* L620 */
-{4.9766584153114550e+00, 3.4311442576040463e-13,
- 2.2204460492503131e-16, 4.6540549192286562e-13,
- 4.2654768606098514e-13}, /* L621 */
-{4.6993643258338178e+00, 3.2451819009793326e-13,
- 2.2204460492503131e-16, 9.5334407035352342e-11,
- -8.3143381068850886e-11}, /* L622 */
-{4.9153368079141577e+00, 3.3997804571583856e-13,
- 2.2204460492503131e-16, 1.7077450564784158e-12,
- -8.9972473915622686e-13}, /* L623 */
-{5.1935178092343115e+00, 3.5979552670539761e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- -1.6853185513809876e-13}, /* L624 */
-{3.8295310418782900e+00, 2.6572667677360329e-13,
- 2.2204460492503131e-16, -2.8199664825478976e-14,
- -6.1173288656846125e-14}, /* L625 */
-{4.1034409788201964e+00, 2.8518853945058709e-13,
- 2.2204460492503131e-16, -2.4868995751603507e-14,
- 9.5479180117763462e-15}, /* L626 */
-{5.6379674277378848e+00, 3.9246383920499284e-13,
- 2.2204460492503131e-16, 2.5224267119483557e-13,
- -3.1641356201816961e-14}, /* L627 */
-{3.8051413537108512e+00, 2.6530166952198897e-13,
- 2.2204460492503131e-16, -2.6756374893466273e-14,
- 6.6791017161449417e-13}, /* L628 */
-{5.3020751377705739e+00, 3.7025937871248971e-13,
- 2.2204460492503131e-16, -1.5709655798445965e-13,
- 5.0848214527832170e-14}, /* L629 */
-{4.5643921218871437e+00, 3.1925156962486767e-13,
- 2.2204460492503131e-16, 1.2820855488371308e-12,
- 9.0438767585965252e-13}, /* L630 */
-{5.2892317996922458e+00, 3.7053693446864600e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-14,
- -6.7945649107059580e-14}, /* L631 */
-{5.2257796055009651e+00, 3.6667197056416967e-13,
- 2.2204460492503131e-16, -9.1382457156896635e-13,
- 7.5939254884360707e-14}, /* L632 */
-{4.5884748538039162e+00, 3.2246427750237672e-13,
- 2.2204460492503131e-16, -4.0745185003743245e-14,
- 3.5527136788005009e-15}, /* L633 */
-{4.3848649621901075e+00, 3.0864200084579352e-13,
- 2.2204460492503131e-16, 2.2692958623338200e-13,
- 2.1627144519698049e-13}, /* L634 */
-{4.7543382096139064e+00, 3.3517633113433476e-13,
- 2.2204460492503131e-16, 4.9293902293356950e-14,
- -2.2859492077031973e-13}, /* L635 */
-{4.5522870563855422e+00, 3.2143732120459845e-13,
- 2.2204460492503131e-16, -3.0486724256206799e-13,
- 1.7519319328584970e-13}, /* L636 */
-{6.2276393387310875e+00, 4.4042547386879960e-13,
- 2.2204460492503131e-16, 2.5757174171303632e-14,
- 4.2721381987576024e-13}, /* L637 */
-{3.9870752559488638e+00, 2.8241298188902419e-13,
- 2.2204460492503131e-16, 2.9842794901924208e-13,
- 2.4846791291111003e-13}, /* L638 */
-{5.3294293785436286e+00, 3.7808645103609706e-13,
- 2.2204460492503131e-16, 4.7117865165091644e-13,
- -2.1238566461079245e-13}, /* L639 */
-{5.5650478425127439e+00, 3.9541980800805732e-13,
- 2.2204460492503131e-16, -4.4264591991804991e-13,
- -3.1874503036988244e-13}, /* L640 */
-{5.2702891262050811e+00, 3.7506109329399351e-13,
- 2.2204460492503131e-16, -2.5535129566378600e-14,
- -1.8207657603852567e-14}, /* L641 */
-{6.3638145573669265e+00, 4.5358855560451161e-13,
- 2.2204460492503131e-16, 1.2034817586936697e-13,
- -1.7374990335383700e-13}, /* L642 */
-{5.2084063510864560e+00, 3.7181369094696493e-13,
- 2.2204460492503131e-16, -9.1038288019262836e-14,
- -5.1958437552457326e-14}, /* L643 */
-{4.8757840900745046e+00, 3.4861002973229915e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -5.9396931817445875e-14}, /* L644 */
-{4.8945813656211525e+00, 3.5049740887416192e-13,
- 2.2204460492503131e-16, 7.1276318180935050e-14,
- -1.2423395645555502e-13}, /* L645 */
-{4.4133196564247070e+00, 3.1652458432063213e-13,
- 2.2204460492503131e-16, 7.1720407390785113e-14,
- -6.1950444774083735e-14}, /* L646 */
-{4.0626030092875505e+00, 2.9182212202272240e-13,
- 2.2204460492503131e-16, 1.8429702208777599e-13,
- -1.9162449405030202e-13}, /* L647 */
-{5.4020146956345565e+00, 3.8863356977003605e-13,
- 2.2204460492503131e-16, -8.4932061383824475e-14,
- 1.0103029524088925e-13}, /* L648 */
-{5.5054015980784934e+00, 3.9668268669856843e-13,
- 2.2204460492503131e-16, 7.3852035598065413e-13,
- 3.9190872769268026e-13}, /* L649 */
-{5.0880849505849701e+00, 3.6717850981915490e-13,
- 2.2204460492503131e-16, -1.2756462552943049e-13,
- -4.2632564145606011e-14}, /* L650 */
-{4.3256596664057803e+00, 3.1263880373444408e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- 2.0206059048177849e-13}, /* L651 */
-{3.5874289727938069e+00, 2.5968116545982411e-13,
- 2.2204460492503131e-16, -6.1251004268569886e-13,
- -9.8809849191638932e-14}, /* L652 */
-{4.6225187784319832e+00, 3.3512081998310350e-13,
- 2.2204460492503131e-16, 6.5281113847959205e-14,
- -4.5297099404706387e-14}, /* L653 */
-{4.0850599618472829e+00, 2.9660995881641838e-13,
- 2.2204460492503131e-16, -3.2973623831367149e-14,
- -4.9626969200744497e-14}, /* L654 */
-{4.2358845455806096e+00, 3.0803137818224968e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- -5.4400928206632670e-15}, /* L655 */
-{4.7033229692459528e+00, 3.4254543646028424e-13,
- 2.2204460492503131e-16, 4.7961634663806763e-14,
- 1.7141843500212417e-13}, /* L656 */
-{4.9421691367170686e+00, 3.6048941609578833e-13,
- 2.2204460492503131e-16, 2.2426505097428162e-14,
- 7.5939254884360707e-14}, /* L657 */
-{5.8110843961520589e+00, 4.2451459014714032e-13,
- 2.2204460492503131e-16, -1.2478906796786760e-13,
- 6.8833827526759706e-15}, /* L658 */
-{4.7881572128829744e+00, 3.5031873235613631e-13,
- 2.2204460492503131e-16, -8.7485574340462335e-14,
- -3.7081449022480228e-14}, /* L659 */
-{5.0192314037204078e+00, 3.6778219358879483e-13,
- 2.2204460492503131e-16, 6.4859229098601645e-13,
- -2.9609648066752925e-13}, /* L660 */
-{5.3494316622270413e+00, 3.9257139206050340e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-14,
- -6.8944849829222221e-14}, /* L661 */
-{4.1148101173356100e+00, 3.0242475190789264e-13,
- 2.2204460492503131e-16, -7.3641093223386633e-13,
- -2.4902302442342261e-13}, /* L662 */
-{6.2224834220815088e+00, 4.5802250880910833e-13,
- 2.2204460492503131e-16, 1.7741363933510002e-13,
- 9.9475983006414026e-14}, /* L663 */
-{4.2213922022854637e+00, 3.1119551380243138e-13,
- 2.2204460492503131e-16, -2.7755575615628914e-13,
- -2.6789681584205027e-13}, /* L664 */
-{5.0146695658141676e+00, 3.7023162313687408e-13,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- -7.6050277186823223e-14}, /* L665 */
-{4.5165236422650565e+00, 3.3395508580724709e-13,
- 2.2204460492503131e-16, -3.4416913763379853e-15,
- 4.6140868903421506e-13}, /* L666 */
-{4.0292417392711082e+00, 2.9837243786801082e-13,
- 2.2204460492503131e-16, 3.2995828291859652e-13,
- 1.6675549829869851e-13}, /* L667 */
-{5.2133315784024230e+00, 3.8663516832571077e-13,
- 2.2204460492503131e-16, -1.0602629885170245e-13,
- 4.7739590058881731e-14}, /* L668 */
-{5.1341635561109529e+00, 3.8133385338312564e-13,
- 2.2204460492503131e-16, -6.4503957730721595e-14,
- 7.7715611723760958e-14}, /* L669 */
-{4.8231419378625251e+00, 3.5876857040761934e-13,
- 2.2204460492503131e-16, 6.1506355564233672e-14,
- -9.8920871494101448e-14}, /* L670 */
-{5.1944940373073525e+00, 3.8696823523309831e-13,
- 2.2204460492503131e-16, -4.1400216588272087e-13,
- 5.7784887985690148e-12}, /* L671 */
-{4.7715849091128026e+00, 3.5599301284605644e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-13,
- -2.8210767055725228e-13}, /* L672 */
-{4.3774214679534467e+00, 3.2707170305457112e-13,
- 2.2204460492503131e-16, -5.6510351953420468e-14,
- 2.3092638912203256e-14}, /* L673 */
-{5.5467446561795288e+00, 4.1505687775611477e-13,
- 2.2204460492503131e-16, -3.9301895071730542e-14,
- 6.7501559897209518e-14}, /* L674 */
-{5.0581561284373775e+00, 3.7905789618264407e-13,
- 2.2204460492503131e-16, 6.0396132539608516e-14,
- 7.7715611723760958e-15}, /* L675 */
-{4.7108062488399876e+00, 3.5355052219188110e-13,
- 2.2204460492503131e-16, -1.6875389974302379e-13,
- 1.0524914273446484e-13}, /* L676 */
-{5.5169954102592733e+00, 4.1466829969749597e-13,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -1.0469403122215226e-13}, /* L677 */
-{4.3677474883579750e+00, 3.2877346678450436e-13,
- 2.2204460492503131e-16, -9.6345154076971085e-13,
- 5.8930638147103309e-13}, /* L678 */
-{4.3678272151421620e+00, 3.2926439352820580e-13,
- 2.2204460492503131e-16, 5.7887028503955662e-13,
- 1.3018475186754586e-12}, /* L679 */
-{4.6167352249966322e+00, 3.4854064079326008e-13,
- 2.2204460492503131e-16, -1.4002132786572474e-12,
- -7.6849637764553336e-13}, /* L680 */
-{4.9959582309097179e+00, 3.7772476119135590e-13,
- 2.2204460492503131e-16, 2.6223467841646197e-13,
- 8.9706020389712648e-14}, /* L681 */
-{5.1759612453303490e+00, 3.9190872769268026e-13,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- 8.3044682241961709e-14}, /* L682 */
-{4.3077941317234414e+00, 3.2665189997338473e-13,
- 2.2204460492503131e-16, -4.6962433941644122e-14,
- -4.2188474935755949e-15}, /* L683 */
-{4.0570239446551604e+00, 3.0808688933348094e-13,
- 2.2204460492503131e-16, -6.1506355564233672e-14,
- -1.5221157667610896e-13}, /* L684 */
-{4.6985475589146226e+00, 3.5732528047560663e-13,
- 2.2204460492503131e-16, 4.1189274213593308e-13,
- -2.0561330416057899e-13}, /* L685 */
-{3.9599187840351564e+00, 3.0159208463942377e-13,
- 2.2204460492503131e-16, -5.4845017416482733e-14,
- 9.7477581562088744e-14}, /* L686 */
-{4.6157278062813782e+00, 3.5205172110863714e-13,
- 2.2204460492503131e-16, -1.1268763699945339e-13,
- -4.0523140398818214e-14}, /* L687 */
-{4.8343099527041407e+00, 3.6926017799032707e-13,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- -4.4386716524513758e-13}, /* L688 */
-{6.0232315638530389e+00, 4.6074255521943996e-13,
- 2.2204460492503131e-16, 1.0214051826551440e-13,
- -4.7295500849031669e-14}, /* L689 */
-{5.4351535026003761e+00, 4.1636138981004933e-13,
- 2.2204460492503131e-16, 2.0654589150126412e-12,
- 7.4251715886930469e-13}, /* L690 */
-{5.7158194375655240e+00, 4.3849646136351339e-13,
- 2.2204460492503131e-16, 6.2594374128366326e-13,
- 5.9952043329758453e-14}, /* L691 */
-{6.4544899520722341e+00, 4.9588111394882617e-13,
- 2.2204460492503131e-16, -3.3673064336880998e-13,
- 4.5363712786183896e-13}, /* L692 */
-{4.9278577025656229e+00, 3.7914116290949096e-13,
- 2.2204460492503131e-16, -8.3266726846886741e-14,
- 1.9761969838327786e-14}, /* L693 */
-{6.3519552663816929e+00, 4.8941406483038463e-13,
- 2.2204460492503131e-16, 8.7465590326019083e-12,
- 5.5693227807296353e-12}, /* L694 */
-{5.0841806832130079e+00, 3.9229730575129906e-13,
- 2.2204460492503131e-16, 2.0738966099997924e-13,
- -4.2410519540680980e-13}, /* L695 */
-{5.1544621552201750e+00, 3.9829251008427491e-13,
- 2.2204460492503131e-16, 1.9850787680297799e-13,
- 1.0214051826551440e-14}, /* L696 */
-{5.2324329324346737e+00, 4.0489833708079459e-13,
- 2.2204460492503131e-16, -1.2656542480726785e-14,
- 7.4829031859735551e-14}, /* L697 */
-{5.1830310999366036e+00, 4.0165093473376601e-13,
- 2.2204460492503131e-16, -2.2115642650533118e-13,
- -5.7898130734201914e-13}, /* L698 */
-{4.9399219568407764e+00, 3.8336001040306655e-13,
- 2.2204460492503131e-16, -8.0158102377936302e-14,
- -3.2085445411667024e-14}, /* L699 */
-{4.7735789598809486e+00, 3.7098102367849606e-13,
- 2.2204460492503131e-16, -7.5384143372048129e-14,
- 6.4837024638109142e-14}, /* L700 */
-{4.9397367520882138e+00, 3.8444247785207608e-13,
- 2.2204460492503131e-16, -9.3702823278363212e-14,
- 4.5519144009631418e-14}, /* L701 */
-{4.8098366483426922e+00, 3.7486680426468411e-13,
- 2.2204460492503131e-16, 4.3742787170231168e-14,
- 1.6853185513809876e-13}, /* L702 */
-{4.8968782805974929e+00, 3.8219427622721014e-13,
- 2.2204460492503131e-16, 1.6608936448392342e-13,
- -8.6475271388053443e-13}, /* L703 */
-{3.8313270674372735e+00, 2.9945490531702035e-13,
- 2.2204460492503131e-16, -3.3473224192448470e-13,
- 4.1144865292608301e-13}, /* L704 */
-{4.2883046380294312e+00, 3.3564817591980045e-13,
- 2.2204460492503131e-16, 2.8199664825478976e-14,
- 1.1124434706744069e-13}, /* L705 */
-{5.0134640004284989e+00, 3.9296343956607416e-13,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 1.2212453270876722e-14}, /* L706 */
-{5.9489132045927313e+00, 4.6694592636953303e-13,
- 2.2204460492503131e-16, 3.9501735216163070e-13,
- 5.1403326040144748e-13}, /* L707 */
-{5.2118726295850646e+00, 4.0967229608668276e-13,
- 2.2204460492503131e-16, 2.9398705692074145e-13,
- 9.8809849191638932e-14}, /* L708 */
-{5.5599523544873568e+00, 4.3764991630723671e-13,
- 2.2204460492503131e-16, -5.4733995114020217e-14,
- -4.5519144009631418e-15}, /* L709 */
-{4.8014160259314247e+00, 3.7847502909471586e-13,
- 2.2204460492503131e-16, 2.0028423364237824e-13,
- 2.6045832157706172e-13}, /* L710 */
-{5.2435033500683117e+00, 4.1390502136806617e-13,
- 2.2204460492503131e-16, -1.3533618670180658e-13,
- -1.1723955140041653e-13}, /* L711 */
-{4.5674229363923331e+00, 3.6104452760810091e-13,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 3.1086244689504383e-15}, /* L712 */
-{4.8288996241991464e+00, 3.8224978737844140e-13,
- 2.2204460492503131e-16, 4.9515946898281982e-14,
- -2.9942714974140472e-13}, /* L713 */
-{5.8702823708008474e+00, 4.6533610298382655e-13,
- 2.2204460492503131e-16, 2.7355895326763857e-13,
- -1.0741407763248390e-12}, /* L714 */
-{4.7476910568967554e+00, 3.7687561404986525e-13,
- 2.2204460492503131e-16, 9.8587804586713901e-14,
- -2.7311486405778851e-14}, /* L715 */
-{5.4015448349052813e+00, 4.2937875477377929e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -1.3244960683778118e-13}, /* L716 */
-{4.9463118484617477e+00, 3.9374059568331177e-13,
- 2.2204460492503131e-16, 1.9095836023552692e-14,
- -1.2212453270876722e-14}, /* L717 */
-{4.6970826195298452e+00, 3.7442271505483404e-13,
- 2.2204460492503131e-16, -6.1706195708666201e-13,
- 3.4972025275692431e-13}, /* L718 */
-{4.8588393765343305e+00, 3.8785641365279844e-13,
- 2.2204460492503131e-16, -1.7585932710062480e-13,
- 4.7073456244106637e-14}, /* L719 */
-{4.7618130683010955e+00, 3.8063996399273492e-13,
- 2.2204460492503131e-16, -1.5765166949677223e-14,
- 1.8030021919912542e-13}, /* L720 */
-{5.1213673033048188e+00, 4.0994985184283905e-13,
- 2.2204460492503131e-16, 6.5014660322049167e-13,
- 5.9818816566803434e-13}, /* L721 */
-{5.0121270212414260e+00, 4.0176195703622852e-13,
- 2.2204460492503131e-16, -6.7279515292284486e-14,
- 2.6645352591003757e-14}, /* L722 */
-{4.4652560075209058e+00, 3.5842162571242397e-13,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- -1.3178347302300608e-13}, /* L723 */
-{5.3266658624814962e+00, 4.2815750944669162e-13,
- 2.2204460492503131e-16, 1.2390088954816747e-13,
- 3.9079850466805510e-14}, /* L724 */
-{5.2069047666948487e+00, 4.1910919179599659e-13,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- 8.4376949871511897e-14}, /* L725 */
-{6.0721084092094193e+00, 4.8942447317124049e-13,
- 2.2204460492503131e-16, 7.7937656328685989e-14,
- -4.2188474935755949e-14}, /* L726 */
-{6.1079876283618040e+00, 4.9299453408480076e-13,
- 2.2204460492503131e-16, -2.8643754035329039e-14,
- 1.5543122344752192e-14}, /* L727 */
-{5.4828383206431903e+00, 4.4314552027913123e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- -6.8722805224297190e-14}, /* L728 */
-{5.5171554808615264e+00, 4.4653170050423796e-13,
- 2.2204460492503131e-16, -1.2800871473928055e-13,
- 5.3290705182007514e-15}, /* L729 */
-{4.5318564650100708e+00, 3.6728953212161741e-13,
- 2.2204460492503131e-16, -5.6510351953420468e-14,
- 1.3766765505351941e-14}, /* L730 */
-{4.2243568699950700e+00, 3.4283687000424834e-13,
- 2.2204460492503131e-16, -2.4402702081260941e-13,
- 2.3114843372695759e-13}, /* L731 */
-{5.0747230422844911e+00, 4.1241359285959511e-13,
- 2.2204460492503131e-16, 1.2723155862204294e-13,
- 7.4384942649885488e-14}, /* L732 */
-{5.3386850940954931e+00, 4.3445802511143938e-13,
- 2.2204460492503131e-16, 6.3504757008558954e-14,
- -6.8389738316909643e-14}, /* L733 */
-{4.9795718890026182e+00, 4.0578651550049472e-13,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 3.9834802123550617e-13}, /* L734 */
-{5.0486474210580292e+00, 4.1197600886277996e-13,
- 2.2204460492503131e-16, 4.6318504587361531e-13,
- 5.6044058283077902e-13}, /* L735 */
-{5.0954564086903238e+00, 4.1636138981004933e-13,
- 2.2204460492503131e-16, 7.3430150848707854e-13,
- -3.8147263126120379e-13}, /* L736 */
-{5.8493986451558717e+00, 4.7861714591590498e-13,
- 2.2204460492503131e-16, -1.6551204851111834e-12,
- 1.9984014443252818e-13}, /* L737 */
-{4.6924193273823711e+00, 3.8447023342769171e-13,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- 2.5779378631796135e-13}, /* L738 */
-{4.3095467180101430e+00, 3.5357827776749673e-13,
- 2.2204460492503131e-16, -1.1179945857975326e-13,
- -9.6589403142388619e-15}, /* L739 */
-{6.1905503074137398e+00, 5.0859316758078421e-13,
- 2.2204460492503131e-16, -1.1246559239452836e-13,
- -2.0738966099997924e-13}, /* L740 */
-{5.5512908095930245e+00, 4.5669024117955814e-13,
- 2.2204460492503131e-16, -7.8381745538536052e-14,
- 5.6399329650957952e-14}, /* L741 */
-{4.4632819743648717e+00, 3.6767811018023622e-13,
- 2.2204460492503131e-16, -1.7208456881689926e-13,
- 1.5099033134902129e-14}, /* L742 */
-{5.3353886329874900e+00, 4.4011322364312377e-13,
- 2.2204460492503131e-16, 6.9277916736609768e-13,
- -2.8745894553594553e-12}, /* L743 */
-{5.1660027740936192e+00, 4.2671421951467892e-13,
- 2.2204460492503131e-16, -5.1292303737682232e-14,
- 2.4558133304708463e-13}, /* L744 */
-{5.3493372987469883e+00, 4.4245163088874051e-13,
- 2.2204460492503131e-16, -7.1165295878472534e-14,
- -2.2171153801764376e-13}, /* L745 */
-{5.0768344172633766e+00, 4.2047615389506632e-13,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- 3.5749181392930041e-14}, /* L746 */
-{5.0833413533573530e+00, 4.2157943802578757e-13,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- 1.6098233857064770e-13}, /* L747 */
-{6.4737735827010674e+00, 5.3761162188692424e-13,
- 2.2204460492503131e-16, 2.0827783941967937e-13,
- 1.7896795156957523e-13}, /* L748 */
-{5.7977394542109755e+00, 4.8211434844347423e-13,
- 2.2204460492503131e-16, -8.6597395920762210e-15,
- 4.4408920985006262e-16}, /* L749 */
-{5.9083426549549891e+00, 4.9196757778702249e-13,
- 2.2204460492503131e-16, 1.0857981180834031e-13,
- 6.1239902038323635e-13}, /* L750 */
-{5.4524054065550729e+00, 4.5460857300838597e-13,
- 2.2204460492503131e-16, 1.2545520178264269e-13,
- -4.7828407900851744e-13}, /* L751 */
-{5.9521370503034259e+00, 4.9693582582222007e-13,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -1.7297274723659939e-13}, /* L752 */
-{4.4077094773133005e+00, 3.6848302187308946e-13,
- 2.2204460492503131e-16, -2.5379698342931079e-13,
- 6.7057470687359455e-14}, /* L753 */
-{4.8919175323276605e+00, 4.0950576263298899e-13,
- 2.2204460492503131e-16, -4.2943426592501055e-13,
- -2.5501822875639846e-13}, /* L754 */
-{5.7076248990002449e+00, 4.7842285688659558e-13,
- 2.2204460492503131e-16, -2.7311486405778851e-14,
- 4.3298697960381105e-14}, /* L755 */
-{4.9604079583435956e+00, 4.1634057312833761e-13,
- 2.2204460492503131e-16, -2.2037927038809357e-13,
- -1.3766765505351941e-14}, /* L756 */
-{4.8877223745374927e+00, 4.1078251911130792e-13,
- 2.2204460492503131e-16, 6.7723604502134549e-14,
- -7.1609385088322597e-14}, /* L757 */
-{5.7645209680763907e+00, 4.8511195060996215e-13,
- 2.2204460492503131e-16, 3.5749181392930041e-14,
- 5.9063864910058328e-14}, /* L758 */
-{4.8623265119067423e+00, 4.0972780723791402e-13,
- 2.2204460492503131e-16, -6.0285110237146000e-14,
- -1.3866685577568205e-13}, /* L759 */
-{6.0394832127454210e+00, 5.0959236830294685e-13,
- 2.2204460492503131e-16, 1.4410694859634532e-13,
- 7.9936057773011271e-15}, /* L760 */
-{4.8304938234636792e+00, 4.0811798385220754e-13,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- -1.9484414082171497e-13}, /* L761 */
-{4.7983999589190889e+00, 4.0593917116638067e-13,
- 2.2204460492503131e-16, 3.7392311469375272e-13,
- -3.6637359812630166e-15}, /* L762 */
-{5.9030237300169430e+00, 5.0004445029117051e-13,
- 2.2204460492503131e-16, -2.5757174171303632e-14,
- -6.9610983643997315e-14}, /* L763 */
-{6.7755342500098648e+00, 5.7470694869721228e-13,
- 2.2204460492503131e-16, 1.8252066524837574e-13,
- -3.1241675912951905e-13}, /* L764 */
-{5.5673290449827393e+00, 4.7284398618785417e-13,
- 2.2204460492503131e-16, -5.5411231159041563e-13,
- 1.8514079158649110e-12}, /* L765 */
-{5.9685554349095993e+00, 5.0758355851776571e-13,
- 2.2204460492503131e-16, -6.5059069243034173e-14,
- 8.8817841970012523e-15}, /* L766 */
-{5.8387478037452416e+00, 4.9719256489666463e-13,
- 2.2204460492503131e-16, 5.7420734833613096e-13,
- 2.6556534749033744e-13}, /* L767 */
-{5.7496835504787178e+00, 4.9024673209885350e-13,
- 2.2204460492503131e-16, -9.6256336235001072e-14,
- 4.0811798385220754e-13}, /* L768 */
-{5.8266001387022452e+00, 4.9745190605632317e-13,
- 2.2204460492503131e-16, 8.4376949871511897e-14,
- -1.7563728249569976e-13}, /* L769 */
-{6.2052045951827610e+00, 5.3046456116589980e-13,
- 2.2204460492503131e-16, -8.2711615334574162e-14,
- -4.4075854077618715e-13}, /* L770 */
-{5.3923561080757043e+00, 4.6157522248790883e-13,
- 2.2204460492503131e-16, -1.1668443988810395e-13,
- -2.2759572004815709e-14}, /* L771 */
-{5.4776640825639777e+00, 4.6948556153836307e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- 4.2410519540680980e-14}, /* L772 */
-{6.3467111775282090e+00, 5.4467541588110180e-13,
- 2.2204460492503131e-16, -1.0056400157054668e-12,
- 8.9883656073652674e-13}, /* L773 */
-{5.2017200930915255e+00, 4.4698966750189584e-13,
- 2.2204460492503131e-16, -9.2148511043887993e-14,
- -5.3290705182007514e-14}, /* L774 */
-{5.8645253815355041e+00, 5.0459636469213365e-13,
- 2.2204460492503131e-16, -1.4743761767022079e-13,
- -3.2196467714129540e-14}, /* L775 */
-{5.5992356380756574e+00, 4.8239190419963052e-13,
- 2.2204460492503131e-16, 3.1130653610489389e-13,
- 3.5282887722587475e-13}, /* L776 */
-{6.1065089907819461e+00, 5.2677306960902115e-13,
- 2.2204460492503131e-16, -3.7192471324942744e-14,
- -1.0402789740737717e-13}, /* L777 */
-{5.6587492877443317e+00, 4.8877568659122517e-13,
- 2.2204460492503131e-16, -1.7075230118734908e-13,
- 3.3306690738754696e-15}, /* L778 */
-{6.0950031976423800e+00, 5.2713389209202433e-13,
- 2.2204460492503131e-16, 9.4591001698063337e-14,
- -9.7921670771938807e-14}, /* L779 */
-{4.2705195581422490e+00, 3.6981528950263964e-13,
- 2.2204460492503131e-16, -7.5051076464660582e-14,
- 6.8833827526759706e-14}, /* L780 */
-{6.2842608750193412e+00, 5.4489746048602683e-13,
- 2.2204460492503131e-16, -5.6521454183666719e-13,
- -1.3282708266615373e-12}, /* L781 */
-{4.8481534290174508e+00, 4.2091330421101247e-13,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- -4.6518344731794059e-14}, /* L782 */
-{4.5756976724947460e+00, 3.9776688887105394e-13,
- 2.2204460492503131e-16, -6.6391336872584361e-14,
- -1.4654943925052066e-14}, /* L783 */
-{4.7464998355253565e+00, 4.1314174303863638e-13,
- 2.2204460492503131e-16, 6.2394533983933798e-14,
- 7.1720407390785113e-14}, /* L784 */
-{5.8566971382328585e+00, 5.1042503557141572e-13,
- 2.2204460492503131e-16, 5.1358917119159742e-13,
- 2.2870594307278225e-14}, /* L785 */
-{5.5356321432753823e+00, 4.8305803801440561e-13,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- 1.7985612998927536e-14}, /* L786 */
-{5.5203390779653203e+00, 4.8233639304839926e-13,
- 2.2204460492503131e-16, 5.6843418860808015e-14,
- -4.3742787170231168e-14}, /* L787 */
-{5.5780544858105578e+00, 4.8799853047398756e-13,
- 2.2204460492503131e-16, -3.7614356074300304e-13,
- 5.6021853822585399e-13}, /* L788 */
-{7.0095167623594357e+00, 6.1400884376894282e-13,
- 2.2204460492503131e-16, -3.9224179460006781e-13,
- 3.1086244689504383e-14}, /* L789 */
-{6.2753263563234212e+00, 5.5039306445792135e-13,
- 2.2204460492503131e-16, -3.1197266991966899e-14,
- 2.0206059048177849e-14}, /* L790 */
-{6.5107561633421813e+00, 5.7176485768195562e-13,
- 2.2204460492503131e-16, 1.8562928971732617e-13,
- 6.0618177144533547e-14}, /* L791 */
-{7.4968552621604037e+00, 6.5919492087118670e-13,
- 2.2204460492503131e-16, 1.0678125050844756e-12,
- -4.5585757391108928e-13}, /* L792 */
-{6.4965424060061920e+00, 5.7195914671126502e-13,
- 2.2204460492503131e-16, -1.1124434706744069e-13,
- 6.5947247662734299e-14}, /* L793 */
-{5.7830695773901368e+00, 5.0978665733225625e-13,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- 1.6719958750854857e-13}, /* L794 */
-{6.2003242476933940e+00, 5.4725668441335529e-13,
- 2.2204460492503131e-16, 1.1335377081422848e-12,
- -9.2892360470386848e-13}, /* L795 */
-{5.6677225098294119e+00, 5.0087711755963937e-13,
- 2.2204460492503131e-16, -1.2045919817182948e-13,
- 3.2107649872159527e-13}, /* L796 */
-{6.6041509463901598e+00, 5.8436588901145115e-13,
- 2.2204460492503131e-16, 1.6431300764452317e-14,
- 6.2172489379008766e-15}, /* L797 */
-{6.1729420699215547e+00, 5.4689586193035211e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -8.2267526124724100e-14}, /* L798 */
-{6.2140273258094378e+00, 5.5122573172639022e-13,
- 2.2204460492503131e-16, 6.1239902038323635e-13,
- -1.5598633495983449e-13}, /* L799 */
-{5.1640706473886384e+00, 4.5866088704826780e-13,
- 2.2204460492503131e-16, 4.2010839251815923e-13,
- -2.7089441800853820e-14}, /* L800 */
-{5.3662693902416185e+00, 4.7721548934731572e-13,
- 2.2204460492503131e-16, -3.4328095921409840e-13,
- 2.0095036745715333e-13}, /* L801 */
-{5.6764428709713037e+00, 5.0542903196060252e-13,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- 9.9698027611339057e-14}, /* L802 */
-{5.4651393820397143e+00, 4.8722137435674995e-13,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- -1.0536016503692736e-13}, /* L803 */
-{5.0876945940554847e+00, 4.5413672822292028e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- -2.9420910152566648e-14}, /* L804 */
-{6.2478359442095970e+00, 5.5838667023522248e-13,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 4.0190073491430667e-14}, /* L805 */
-{5.9686818734065330e+00, 5.3410054157154718e-13,
- 2.2204460492503131e-16, -1.1868284133242923e-13,
- -5.9396931817445875e-14}, /* L806 */
-{6.2786629999092876e+00, 5.6253591194932451e-13,
- 2.2204460492503131e-16, 2.3270274596143281e-13,
- 1.2967404927621828e-13}, /* L807 */
-{5.3459242758868228e+00, 4.7956083548683637e-13,
- 2.2204460492503131e-16, -7.3052675020335300e-14,
- 4.8849813083506888e-15}, /* L808 */
-{8.6094078970912360e+00, 7.7327033665142153e-13,
- 2.2204460492503131e-16, -1.4810375148499588e-13,
- -7.7493567118835927e-14}, /* L809 */
-{4.2793277391799380e+00, 3.8483105591069489e-13,
- 2.2204460492503131e-16, -7.4051875742497941e-14,
- 8.9483975784787617e-14}, /* L810 */
-{5.0394654107250147e+00, 4.5374815016430148e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- 1.8651746813702630e-14}, /* L811 */
-{4.9039486236889385e+00, 4.4209080840573733e-13,
- 2.2204460492503131e-16, 5.7953641885433171e-14,
- -2.8221869285971479e-13}, /* L812 */
-{5.7191049640321117e+00, 5.1621207308727435e-13,
- 2.2204460492503131e-16, 1.0902390101819037e-13,
- -9.2703622556200571e-14}, /* L813 */
-{4.7143809022858729e+00, 4.2604808569990382e-13,
- 2.2204460492503131e-16, -8.0158102377936302e-14,
- -4.4408920985006262e-15}, /* L814 */
-{4.5938722784586270e+00, 4.1566750041965861e-13,
- 2.2204460492503131e-16, 1.6431300764452317e-14,
- 1.1324274851176597e-14}, /* L815 */
-{4.9963314121564366e+00, 4.5263792713967632e-13,
- 2.2204460492503131e-16, 2.8066438062523957e-13,
- -9.9809049913801573e-14}, /* L816 */
-{7.0710025880389846e+00, 6.4137584132595293e-13,
- 2.2204460492503131e-16, -5.9952043329758453e-15,
- 9.8143715376863838e-14}, /* L817 */
-{5.3398617254701852e+00, 4.8494541715626838e-13,
- 2.2204460492503131e-16, 1.2145839889399213e-13,
- -1.7752466163756253e-13}, /* L818 */
-{5.2106309314706731e+00, 4.7378767575878555e-13,
- 2.2204460492503131e-16, -1.1379786002407855e-13,
- 1.1346479311669100e-13}, /* L819 */
-{7.7658659107967294e+00, 7.0699002208129968e-13,
- 2.2204460492503131e-16, -1.6586731987899839e-13,
- -2.8610447344590284e-13}, /* L820 */
-{5.9707767770184210e+00, 5.4423132667125174e-13,
- 2.2204460492503131e-16, -1.9662049766111522e-13,
- -3.9523939676655573e-14}, /* L821 */
-{5.2487917360427163e+00, 4.7900572397452379e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 4.0234482412415673e-13}, /* L822 */
-{5.4125237277037135e+00, 4.9454884631927598e-13,
- 2.2204460492503131e-16, 8.1179507560591446e-13,
- 5.6887827781793021e-13}, /* L823 */
-{6.2803497143765901e+00, 5.7454041524351851e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- -8.9372953482325102e-14}, /* L824 */
-{6.7254651562663037e+00, 6.1600724521326811e-13,
- 2.2204460492503131e-16, 7.7715611723760958e-14,
- 5.2402526762307389e-14}, /* L825 */
-{4.8114482690209952e+00, 4.4123038556165284e-13,
- 2.2204460492503131e-16, -4.5297099404706387e-14,
- 2.7200464103316335e-13}, /* L826 */
-{5.5169373619097337e+00, 5.0653925498522767e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-14,
- 1.7696955012524995e-13}, /* L827 */
-{6.7110613127196102e+00, 6.1692317920858386e-13,
- 2.2204460492503131e-16, 3.9479530755670567e-13,
- 2.1938006966593093e-13}, /* L828 */
-{4.9318533781096772e+00, 4.5391468361799525e-13,
- 2.2204460492503131e-16, 1.3382628338831637e-12,
- -1.7723600365115999e-12}, /* L829 */
-{7.0957943276075541e+00, 6.5386585035298594e-13,
- 2.2204460492503131e-16, 2.3936408410918375e-13,
- -2.1760371282653068e-14}, /* L830 */
-{6.1868328656989169e+00, 5.7079341253540861e-13,
- 2.2204460492503131e-16, 3.1330493754921918e-13,
- 1.6764367671839864e-13}, /* L831 */
-{5.6953590457039507e+00, 5.2608264966558238e-13,
- 2.2204460492503131e-16, 1.4166445794216997e-13,
- 8.8817841970012523e-14}, /* L832 */
-{6.1380649061527537e+00, 5.6765703249084254e-13,
- 2.2204460492503131e-16, -5.7776006201493146e-13,
- -1.3389289676979388e-13}, /* L833 */
-{5.4451524757264069e+00, 5.0418003105789921e-13,
- 2.2204460492503131e-16, 1.1428635815491361e-12,
- -2.0310420012492614e-12}, /* L834 */
-{5.1000080463185959e+00, 4.7278847503662291e-13,
- 2.2204460492503131e-16, 2.9753977059954195e-14,
- -1.7730261703263750e-13}, /* L835 */
-{6.5557818742044169e+00, 6.0847160643362486e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- -4.9737991503207013e-14}, /* L836 */
-{4.8470805265992407e+00, 4.5041748109042601e-13,
- 2.2204460492503131e-16, -3.5305092183079978e-13,
- -1.0147438445073931e-13}, /* L837 */
-{4.7416542589833197e+00, 4.4114711883480595e-13,
- 2.2204460492503131e-16, 4.3076653355456074e-14,
- -8.2156503822261584e-15}, /* L838 */
-{5.6830393594974247e+00, 5.2936127703517855e-13,
- 2.2204460492503131e-16, 9.0372154204487742e-14,
- 4.4853010194856324e-14}, /* L839 */
-{4.9940554981994092e+00, 4.6573855883025317e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -5.6066262743570405e-14}, /* L840 */
-{6.3252180649539564e+00, 5.9058313794935202e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- 5.1736392947532295e-14}, /* L841 */
-{7.6437175227231364e+00, 7.1453953864875075e-13,
- 2.2204460492503131e-16, -1.7263968032921184e-13,
- 1.4832579608992091e-13}, /* L842 */
-{5.9208278466507434e+00, 5.5414006716603126e-13,
- 2.2204460492503131e-16, -1.5056844659966373e-12,
- 2.1820323325982827e-12}, /* L843 */
-{5.6466321314715486e+00, 5.2910453796073398e-13,
- 2.2204460492503131e-16, -8.4021678503631847e-13,
- 9.3547392054915690e-13}, /* L844 */
-{5.9603644332938392e+00, 5.5916382635246009e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- 2.7333690866271354e-13}, /* L845 */
-{4.8883055846546570e+00, 4.5913273183373349e-13,
- 2.2204460492503131e-16, 5.2180482157382357e-14,
- -5.2069459854919842e-14}, /* L846 */
-{4.8733843121492511e+00, 4.5827230898964899e-13,
- 2.2204460492503131e-16, 1.6719958750854857e-13,
- 2.2426505097428162e-14}, /* L847 */
-{5.3661641266103519e+00, 5.0520698735567748e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-13,
- -2.2359891715950653e-13}, /* L848 */
-{5.9634958633023061e+00, 5.6210591736771676e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- -4.4408920985006262e-16}, /* L849 */
-{6.7764812795381681e+00, 6.3948846218409017e-13,
- 2.2204460492503131e-16, -4.7739590058881731e-14,
- 1.7763568394002505e-15}, /* L850 */
-{6.2679299829287256e+00, 5.9219296133505850e-13,
- 2.2204460492503131e-16, -2.9796165534889951e-12,
- 1.8427481762728348e-12}, /* L851 */
-{5.9629825592457770e+00, 5.6404360349038285e-13,
- 2.2204460492503131e-16, -1.0946799022804043e-13,
- -1.4777068457760834e-13}, /* L852 */
-{4.2268530931108366e+00, 4.0029091152860019e-13,
- 2.2204460492503131e-16, -1.2930767567809198e-12,
- 6.4948046940571658e-13}, /* L853 */
-{5.7582058060667052e+00, 5.4595217235942073e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 9.7033492352238682e-14}, /* L854 */
-{7.0141923528353711e+00, 6.6581462565551419e-13,
- 2.2204460492503131e-16, 3.8280489889075398e-13,
- 4.4420023215252513e-12}, /* L855 */
-{5.9497757421420419e+00, 5.6543658644159223e-13,
- 2.2204460492503131e-16, 1.2900791546144319e-13,
- 1.5099033134902129e-14}, /* L856 */
-{7.1053204283170386e+00, 6.7604255526987345e-13,
- 2.2204460492503131e-16, -1.0758061108617767e-13,
- 6.4392935428259079e-15}, /* L857 */
-{5.0920826258418206e+00, 4.8505643945873089e-13,
- 2.2204460492503131e-16, 1.9320101074526974e-12,
- 4.5958792327382980e-12}, /* L858 */
-{4.2008215286996027e+00, 4.0062397843598774e-13,
- 2.2204460492503131e-16, 7.7760020644745964e-13,
- -1.1314282843954970e-12}, /* L859 */
-{6.9174527740754632e+00, 6.6047167734950563e-13,
- 2.2204460492503131e-16, -3.7346792325365641e-12,
- -7.3641093223386633e-13}, /* L860 */
-{5.7305549180195285e+00, 5.4778404035005224e-13,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- 7.3940853440035426e-14}, /* L861 */
-{7.9808710601531505e+00, 7.6377792979087644e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- -9.1149310321725352e-14}, /* L862 */
-{5.7507332908169095e+00, 5.5098980933365738e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- 1.6497914145929826e-13}, /* L863 */
-{6.5356729271103298e+00, 6.2692212532411418e-13,
- 2.2204460492503131e-16, -1.9484414082171497e-13,
- -3.0264679651281767e-13}, /* L864 */
-{6.4185072363470708e+00, 6.1639582327188691e-13,
- 2.2204460492503131e-16, -1.2267964422107980e-13,
- 3.4972025275692431e-13}, /* L865 */
-{5.4076297787670571e+00, 5.1991744243196081e-13,
- 2.2204460492503131e-16, -1.5953904863863499e-13,
- 2.7200464103316335e-13}, /* L866 */
-{6.1355344782250452e+00, 5.9058313794935202e-13,
- 2.2204460492503131e-16, 5.8841820305133297e-14,
- 2.7311486405778851e-13}, /* L867 */
-{6.7753563116450861e+00, 6.5292216078205456e-13,
- 2.2204460492503131e-16, -2.4824586830618500e-13,
- -1.2900791546144319e-13}, /* L868 */
-{5.0374072571016804e+00, 4.8600012902966228e-13,
- 2.2204460492503131e-16, -6.0618177144533547e-14,
- -2.1871393585115584e-14}, /* L869 */
-{5.5025948883733582e+00, 5.3149151746367806e-13,
- 2.2204460492503131e-16, 3.3217872896784684e-13,
- -1.8784973576657649e-13}, /* L870 */
-{5.0183776075375430e+00, 4.8527848406365592e-13,
- 2.2204460492503131e-16, -2.4702462297909733e-13,
- -5.1658677335808534e-13}, /* L871 */
-{5.4753526751941850e+00, 5.3007598310728099e-13,
- 2.2204460492503131e-16, -3.5804692544161298e-13,
- -1.1535217225855376e-13}, /* L872 */
-{6.0968022879236550e+00, 5.9091620485673957e-13,
- 2.2204460492503131e-16, -3.6848302187308946e-13,
- -1.7064127888488656e-13}, /* L873 */
-{5.0520674672500006e+00, 4.9021897652323787e-13,
- 2.2204460492503131e-16, 1.4566126083082054e-13,
- 5.1070259132757201e-14}, /* L874 */
-{6.6548676422855584e+00, 6.4648286723922865e-13,
- 2.2204460492503131e-16, -1.8096635301390052e-14,
- -4.0745185003743245e-14}, /* L875 */
-{6.1301466578670061e+00, 5.9618976422370906e-13,
- 2.2204460492503131e-16, 7.1409544943890069e-13,
- 1.9251267247000214e-12}, /* L876 */
-{5.4925970351436639e+00, 5.3479443096193791e-13,
- 2.2204460492503131e-16, -3.2085445411667024e-13,
- 1.4632739464559563e-12}, /* L877 */
-{6.4874817615396578e+00, 6.3238303482648917e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 1.9229062786507711e-13}, /* L878 */
-{6.3219667432584989e+00, 6.1695093478419949e-13,
- 2.2204460492503131e-16, 1.6942003355779889e-13,
- 4.4431125445498765e-13}, /* L879 */
-{6.5198966501069764e+00, 6.3699046037868357e-13,
- 2.2204460492503131e-16, -9.1993079820440471e-13,
- -2.1993518117824351e-13}, /* L880 */
-{7.3104542125073992e+00, 7.1503913900983207e-13,
- 2.2204460492503131e-16, 3.1263880373444408e-13,
- 1.7053025658242404e-13}, /* L881 */
-{6.2443409174818978e+00, 6.1145533081230496e-13,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- 5.2913229353634961e-13}, /* L882 */
-{5.9634154107848127e+00, 5.8460875029808790e-13,
- 2.2204460492503131e-16, -6.1617377866696188e-14,
- 2.3336887977620790e-13}, /* L883 */
-{5.7030632964053680e+00, 5.5971893786477267e-13,
- 2.2204460492503131e-16, 8.8595797365087492e-14,
- 9.7699626167013776e-15}, /* L884 */
-{6.9318612189290265e+00, 6.8108713113801400e-13,
- 2.2204460492503131e-16, -3.5171865420124959e-13,
- 2.1760371282653068e-13}, /* L885 */
-{6.3665803041881350e+00, 6.2625252206238713e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- -2.3414603589344551e-13}, /* L886 */
-{5.6065477406402371e+00, 5.5211391014609035e-13,
- 2.2204460492503131e-16, 4.9737991503207013e-14,
- -2.1638246749944301e-13}, /* L887 */
-{5.8378470482479052e+00, 5.7553961596568115e-13,
- 2.2204460492503131e-16, -1.6220358389773537e-13,
- 2.6578739209526248e-13}, /* L888 */
-{7.6957376759261065e+00, 7.5955908229730085e-13,
- 2.2204460492503131e-16, 1.6897594434794883e-13,
- 1.7874590696465020e-13}, /* L889 */
-{6.7526089682461441e+00, 6.6722322111800736e-13,
- 2.2204460492503131e-16, -2.4424906541753444e-14,
- 6.9277916736609768e-14}, /* L890 */
-{6.5410018321168515e+00, 6.4704058083675520e-13,
- 2.2204460492503131e-16, 2.3114843372695759e-13,
- -9.5412566736285953e-13}, /* L891 */
-{5.7140995420799570e+00, 5.6587720620449034e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- 9.3480778673438181e-14}, /* L892 */
-{5.8169184719059235e+00, 5.7670535014153756e-13,
- 2.2204460492503131e-16, -2.7866597918091429e-14,
- 1.3322676295501878e-15}, /* L893 */
-{6.2186899007512162e+00, 6.1722849054035578e-13,
- 2.2204460492503131e-16, -1.4588330543574557e-13,
- 7.8737016906416102e-13}, /* L894 */
-{7.3469389656127406e+00, 7.3002714984227168e-13,
- 2.2204460492503131e-16, -8.7230223044798549e-13,
- 3.9235281690253032e-13}, /* L895 */
-{6.9894083486650374e+00, 6.9527716917150428e-13,
- 2.2204460492503131e-16, -3.1763480734525729e-13,
- -1.7030821197749901e-13}, /* L896 */
-{5.4559729334525704e+00, 5.4334314825155161e-13,
- 2.2204460492503131e-16, -9.6367358537463588e-14,
- -3.6115554991056342e-13}, /* L897 */
-{6.2516802419381792e+00, 6.2327920602456288e-13,
- 2.2204460492503131e-16, -1.0635936575909000e-13,
- 1.4166445794216997e-13}, /* L898 */
-{6.5289313240726177e+00, 6.5164540430373563e-13,
- 2.2204460492503131e-16, 9.9475983006414026e-13,
- 6.1373128801278654e-13}, /* L899 */
-{6.6433438145839370e+00, 6.6380234642338110e-13,
- 2.2204460492503131e-16, -4.0523140398818214e-14,
- 7.4384942649885488e-14}, /* L900 */
-{7.6905642977033422e+00, 7.6929435044448269e-13,
- 2.2204460492503131e-16, -6.5336624999190462e-13,
- -7.7338135895388405e-13}, /* L901 */
-{6.5299437834815359e+00, 6.5392136150421720e-13,
- 2.2204460492503131e-16, 2.7666757773658901e-13,
- -1.8129941992128806e-13}, /* L902 */
-{5.6498566436073245e+00, 5.6641497048204315e-13,
- 2.2204460492503131e-16, 2.2870594307278225e-13,
- -8.2711615334574162e-14}, /* L903 */
-{6.6161608808319823e+00, 6.6402439102830613e-13,
- 2.2204460492503131e-16, 7.0898842352562497e-13,
- 2.3647750424515834e-13}, /* L904 */
-{6.5620269274986978e+00, 6.5931982096145703e-13,
- 2.2204460492503131e-16, 3.0713209753230331e-12,
- 4.4098058538111218e-13}, /* L905 */
-{5.3918407363253227e+00, 5.4234394752938897e-13,
- 2.2204460492503131e-16, -5.6288307348495437e-14,
- 5.0626169922907138e-14}, /* L906 */
-{6.4586650961645065e+00, 6.5036864782541670e-13,
- 2.2204460492503131e-16, 1.3877787807814457e-13,
- 1.2745360322696797e-13}, /* L907 */
-{5.9894092292604926e+00, 6.0378091415458357e-13,
- 2.2204460492503131e-16, 1.6608936448392342e-13,
- -5.2413628992553640e-13}, /* L908 */
-{6.0110105837217995e+00, 6.0662586065518553e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 0.0000000000000000e+00}, /* L909 */
-{7.4802315818335163e+00, 7.5572881286234406e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- -5.5844218138645374e-14}, /* L910 */
-{5.7409530750861135e+00, 5.8064664187895687e-13,
- 2.2204460492503131e-16, 1.0773604230962519e-12,
- 6.7301719752776989e-13}, /* L911 */
-{5.4082330733706163e+00, 5.4759538917203976e-13,
- 2.2204460492503131e-16, 6.2074789752841752e-12,
- 2.5446311724408588e-13}, /* L912 */
-{6.0695605069769449e+00, 6.1523008909603050e-13,
- 2.2204460492503131e-16, 7.8159700933611020e-14,
- 8.8173912615729932e-13}, /* L913 */
-{5.3424591946982369e+00, 5.4212190292446394e-13,
- 2.2204460492503131e-16, 5.7509552675583109e-14,
- 1.4432899320127035e-14}, /* L914 */
-{6.4967998675248886e+00, 6.5997901588232821e-13,
- 2.2204460492503131e-16, 4.6007642140466487e-13,
- -1.1679546219056647e-13}, /* L915 */
-{8.3286157600311341e+00, 8.4698914548653192e-13,
- 2.2204460492503131e-16, -1.0836886943366153e-12,
- 5.4738436006118718e-12}, /* L916 */
-{5.7050253585466058e+00, 5.8081317533265064e-13,
- 2.2204460492503131e-16, 5.9063864910058328e-14,
- -5.2957638274619967e-14}, /* L917 */
-{6.2497375289061452e+00, 6.3696270480306794e-13,
- 2.2204460492503131e-16, 6.4828142853912141e-12,
- 1.7120971307349464e-11}, /* L918 */
-{6.8438628106442314e+00, 6.9827477133799221e-13,
- 2.2204460492503131e-16, -4.1255887595070817e-13,
- -1.2259082637910979e-12}, /* L919 */
-{4.3652242783491957e+00, 4.4586556668946287e-13,
- 2.2204460492503131e-16, -3.4305891460917337e-14,
- -6.0951244051921094e-14}, /* L920 */
-{5.4169466570949103e+00, 5.5389026698549060e-13,
- 2.2204460492503131e-16, 1.2545520178264269e-13,
- -3.2462921240039577e-13}, /* L921 */
-{7.2790244993458266e+00, 7.4509842740155818e-13,
- 2.2204460492503131e-16, -5.8553162318730756e-13,
- -9.1049390249509088e-13}, /* L922 */
-{7.4723844869470630e+00, 7.6572082008397047e-13,
- 2.2204460492503131e-16, -6.0473848151332277e-13,
- -9.7155616884947449e-13}, /* L923 */
-{5.7401335151183037e+00, 5.8884841447337521e-13,
- 2.2204460492503131e-16, 5.9752203185325925e-13,
- 4.7628567756419216e-13}, /* L924 */
-{6.8702811095482161e+00, 7.0554673214928698e-13,
- 2.2204460492503131e-16, 1.3373746554634636e-12,
- -5.6343818499726694e-13}, /* L925 */
-{7.1352704366279394e+00, 7.3355210794545656e-13,
- 2.2204460492503131e-16, -1.5898393712632242e-13,
- -5.3135273958559992e-13}, /* L926 */
-{6.8615264673284395e+00, 7.0617123260063863e-13,
- 2.2204460492503131e-16, 3.8724579098925460e-13,
- -1.9695356456850277e-13}, /* L927 */
-{8.3223124297326248e+00, 8.5743565025886426e-13,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- -2.0916601783937949e-13}, /* L928 */
-{6.1076522625589762e+00, 6.2994054417231382e-13,
- 2.2204460492503131e-16, -1.0922374116262290e-12,
- 3.9745984281580604e-13}, /* L929 */
-{5.7371058256590963e+00, 5.9235949478875227e-13,
- 2.2204460492503131e-16, 1.9051427102567686e-13,
- -9.2148511043887993e-15}, /* L930 */
-{5.7754018347697622e+00, 5.9695477727661483e-13,
- 2.2204460492503131e-16, 1.3011813848606835e-13,
- 6.4170890823334048e-14}, /* L931 */
-{5.0944286380281163e+00, 5.2713389209202433e-13,
- 2.2204460492503131e-16, 7.9602990865623724e-13,
- -1.0729306332279975e-11}, /* L932 */
-{6.8419186187562095e+00, 7.0871086776946868e-13,
- 2.2204460492503131e-16, 3.6703973194107675e-13,
- -2.0605739337042905e-13}, /* L933 */
-{5.2251153100776309e+00, 5.4181659159269202e-13,
- 2.2204460492503131e-16, 5.7420734833613096e-13,
- 2.2071233729548112e-13}, /* L934 */
-{7.2866425122241756e+00, 7.5639494667711915e-13,
- 2.2204460492503131e-16, -1.1513012765362873e-13,
- -1.4210854715202004e-13}, /* L935 */
-{6.4204161123026866e+00, 6.6718852664848782e-13,
- 2.2204460492503131e-16, -1.6613377340490842e-12,
- 6.1659566341631944e-12}, /* L936 */
-{6.6739699746026320e+00, 6.9427796844934164e-13,
- 2.2204460492503131e-16, -1.3078427230084344e-13,
- 4.5075054799781356e-14}, /* L937 */
-{1.2145808075096838e+01, 1.2648493363798252e-12,
- 2.2204460492503131e-16, 3.6592950891645160e-13,
- -5.6510351953420468e-14}, /* L938 */
-{5.7412896757451124e+00, 5.9852817146932580e-13,
- 2.2204460492503131e-16, 2.3891999489933369e-13,
- 8.8551388444102486e-13}, /* L939 */
-{7.2005432752390668e+00, 7.5145445421753720e-13,
- 2.2204460492503131e-16, 1.1635137298071641e-13,
- -1.0236256287043943e-13}, /* L940 */
-{5.7771079456143672e+00, 6.0354499176185072e-13,
- 2.2204460492503131e-16, -6.0063065632220969e-14,
- -9.2148511043887993e-15}, /* L941 */
-{6.3935875818928034e+00, 6.6865957215611616e-13,
- 2.2204460492503131e-16, 6.7101879608344461e-13,
- 1.4632739464559563e-13}, /* L942 */
-{7.9660783157471782e+00, 8.3399953609841759e-13,
- 2.2204460492503131e-16, -1.2623235789988030e-13,
- -1.3000711618360583e-13}, /* L943 */
-{8.0042499164981002e+00, 8.3888451740676828e-13,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- 1.1080025785759062e-13}, /* L944 */
-{5.5423367865117710e+00, 5.8147930914742574e-13,
- 2.2204460492503131e-16, -9.3258734068513149e-15,
- 8.9706020389712648e-14}, /* L945 */
-{4.9785950983894214e+00, 5.2288728902283310e-13,
- 2.2204460492503131e-16, -9.9031893796563963e-14,
- 3.1530333899354446e-14}, /* L946 */
-{5.9493148385068846e+00, 6.2549965207381319e-13,
- 2.2204460492503131e-16, 2.9665159217984183e-13,
- 6.9411143499564787e-13}, /* L947 */
-{5.5200433228603947e+00, 5.8097970878634442e-13,
- 2.2204460492503131e-16, 1.6053824936079764e-13,
- 2.1138646388862981e-13}, /* L948 */
-{9.1543748961749980e+00, 9.6450625264310474e-13,
- 2.2204460492503131e-16, -1.2656542480726785e-14,
- -1.4288570326925765e-13}, /* L949 */
-{7.9917779498801425e+00, 8.4290213697713057e-13,
- 2.2204460492503131e-16, -7.1322947547969306e-12,
- 1.0939693595446442e-11}, /* L950 */
-{5.7429033825442684e+00, 6.0634830489902924e-13,
- 2.2204460492503131e-16, -4.7295500849031669e-14,
- -2.9531932455029164e-14}, /* L951 */
-{9.0120816747706520e+00, 9.5251584397715305e-13,
- 2.2204460492503131e-16, 2.0716761639505421e-13,
- 3.2818192607919627e-13}, /* L952 */
-{5.5419738509783443e+00, 5.8636429045577643e-13,
- 2.2204460492503131e-16, 1.1430856261540612e-12,
- 1.9073631563060189e-13}, /* L953 */
-{6.6457036650126691e+00, 7.0388139761234925e-13,
- 2.2204460492503131e-16, -4.4741987892393809e-14,
- 9.6989083431253675e-13}, /* L954 */
-{6.7844254710858785e+00, 7.1932737544244674e-13,
- 2.2204460492503131e-16, 8.2378548427186615e-14,
- 7.4895645241213060e-13}, /* L955 */
-{5.8969677330262291e+00, 6.2588823013243200e-13,
- 2.2204460492503131e-16, 1.5756285165480222e-12,
- -6.2350125062948791e-13}, /* L956 */
-{6.2560096387215491e+00, 6.6469052484308122e-13,
- 2.2204460492503131e-16, -1.8529622280993863e-13,
- -1.6375789613221059e-13}, /* L957 */
-{6.3230701864951318e+00, 6.7251759716668857e-13,
- 2.2204460492503131e-16, -5.6066262743570405e-14,
- 6.9122485513162246e-13}, /* L958 */
-{7.8183019115466514e+00, 8.3241746828832675e-13,
- 2.2204460492503131e-16, 1.6298074001497298e-13,
- 8.6197715631897154e-13}, /* L959 */
-{6.1161470839986061e+00, 6.5186744890866066e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- -6.3837823915946501e-14}, /* L960 */
-{7.2702278133979918e+00, 7.7567813283607734e-13,
- 2.2204460492503131e-16, 2.4646951146678475e-14,
- -1.3233858453531866e-13}, /* L961 */
-{7.6190244270021266e+00, 8.1373796589900849e-13,
- 2.2204460492503131e-16, -2.5546231796624852e-13,
- -1.8451906669270102e-13}, /* L962 */
-{6.2887473918772070e+00, 6.7235800260689871e-13,
- 2.2204460492503131e-16, -1.9761969838327786e-14,
- 4.3898218393678690e-13}, /* L963 */
-{5.2842334456957394e+00, 5.6554760874405474e-13,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -1.0547118733938987e-13}, /* L964 */
-{5.4717627769255186e+00, 5.8622551257769828e-13,
- 2.2204460492503131e-16, -9.8365759981788869e-14,
- 2.7600144392181392e-13}, /* L965 */
-{5.9075330726337585e+00, 6.3356828464145032e-13,
- 2.2204460492503131e-16, -4.6063153291697745e-13,
- -3.7414515929867775e-14}, /* L966 */
-{5.1013454071626922e+00, 5.4767301804758972e-13,
- 2.2204460492503131e-16, 1.6964207816272392e-13,
- 2.2404300636935659e-13}, /* L967 */
-{6.4925116581854301e+00, 6.9774741540129526e-13,
- 2.2204460492503131e-16, -4.2765790908561030e-13,
- 1.6875389974302379e-13}, /* L968 */
-{7.4649138071625760e+00, 8.0307982486260698e-13,
- 2.2204460492503131e-16, -4.5652370772586437e-13,
- -4.0734082773496993e-13}, /* L969 */
-{5.5734547479374452e+00, 6.0021432268797525e-13,
- 2.2204460492503131e-16, 2.1760371282653068e-14,
- 2.5512925105886097e-13}, /* L970 */
-{6.3352227166676425e+00, 6.8295369359816505e-13,
- 2.2204460492503131e-16, 3.5282887722587475e-13,
- -9.1426866077881641e-13}, /* L971 */
-{5.8868324794816296e+00, 6.3526961469051457e-13,
- 2.2204460492503131e-16, 7.2875039336395275e-13,
- -1.0487166690609229e-12}, /* L972 */
-{8.2368978816519807e+00, 8.8978824308583171e-13,
- 2.2204460492503131e-16, -2.4846791291111003e-13,
- -1.8229862064345070e-13}, /* L973 */
-{6.6881430513937419e+00, 7.2322703381644260e-13,
- 2.2204460492503131e-16, -7.8315132157058542e-13,
- -8.0135897917443799e-13}, /* L974 */
-{6.1676935688946646e+00, 6.6763261585833789e-13,
- 2.2204460492503131e-16, -5.6099569434309160e-13,
- -1.8873791418627661e-15}, /* L975 */
-{5.5701855652531194e+00, 6.0357274733746635e-13,
- 2.2204460492503131e-16, -1.5420997812043424e-13,
- 5.4400928206632670e-14}, /* L976 */
-{7.8779442926050924e+00, 8.5451090647836736e-13,
- 2.2204460492503131e-16, 6.3504757008558954e-14,
- 2.4646951146678475e-14}, /* L977 */
-{5.5820563561720062e+00, 6.0609850471848858e-13,
- 2.2204460492503131e-16, -1.6908696665041134e-13,
- -1.6475709685437323e-13}, /* L978 */
-{5.5985711141799230e+00, 6.0851323979704830e-13,
- 2.2204460492503131e-16, 1.8962609260597674e-13,
- 9.3325347449990659e-13}, /* L979 */
-{5.6237256397473212e+00, 6.1187166444653940e-13,
- 2.2204460492503131e-16, -1.4513945600924671e-12,
- 1.7341683644644945e-12}, /* L980 */
-{6.8784417735103931e+00, 7.4915074144144000e-13,
- 2.2204460492503131e-16, -1.5032419753424620e-13,
- 4.3742787170231168e-14}, /* L981 */
-{5.4032597606835173e+00, 5.8908433686610806e-13,
- 2.2204460492503131e-16, 2.6467716907063732e-13,
- 1.0744738432322265e-12}, /* L982 */
-{9.4165838177238648e+00, 1.0276779427442762e-12,
- 2.2204460492503131e-16, -1.4566126083082054e-13,
- 1.1857181902996672e-13}, /* L983 */
-{6.6580298167526362e+00, 7.2736261458317131e-13,
- 2.2204460492503131e-16, -2.4358293160275934e-13,
- -3.3195668436292181e-14}, /* L984 */
-{7.8031741843907518e+00, 8.5333129451470313e-13,
- 2.2204460492503131e-16, -4.9372728128105337e-12,
- 1.1686207557204398e-12}, /* L985 */
-{4.6729218480402608e+00, 5.1153525859604088e-13,
- 2.2204460492503131e-16, -3.6404212977458883e-13,
- -9.8698826889176416e-14}, /* L986 */
-{5.8839930978234314e+00, 6.4476202155105966e-13,
- 2.2204460492503131e-16, -9.3147711766050634e-14,
- 1.6409096303959814e-13}, /* L987 */
-{6.5222685401886586e+00, 7.1542771706845087e-13,
- 2.2204460492503131e-16, 1.2811973704174306e-13,
- 3.2640556923979602e-14}, /* L988 */
-{7.8667862395848669e+00, 8.6378126873398742e-13,
- 2.2204460492503131e-16, -4.2255088317233458e-13,
- 5.0737192225369654e-13}, /* L989 */
-{7.8873753502293731e+00, 8.6691764877855348e-13,
- 2.2204460492503131e-16, 2.2892798767770728e-13,
- 3.3972824553529790e-13}, /* L990 */
-{5.7462171185053030e+00, 6.3221650137279539e-13,
- 2.2204460492503131e-16, -2.5346391652192324e-13,
- 5.8308913253313222e-13}, /* L991 */
-{6.6491949080503927e+00, 7.3230310704275325e-13,
- 2.2204460492503131e-16, 3.1996627569697011e-13,
- 1.2234657731369225e-13}, /* L992 */
-{7.7170207119571588e+00, 8.5076390377025746e-13,
- 2.2204460492503131e-16, 3.8480330033507926e-13,
- 1.1279865930191590e-13}, /* L993 */
-{8.8531205225593030e+00, 9.7699626167013776e-13,
- 2.2204460492503131e-16, -1.5994983115774630e-12,
- 4.8849813083506888e-14}, /* L994 */
-{7.1907049879862042e+00, 7.9433681854368388e-13,
- 2.2204460492503131e-16, -2.2981616609740740e-14,
- 7.4162898044960457e-14}, /* L995 */
-{5.9713867632325286e+00, 6.6030514389581185e-13,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- 1.8718360195180139e-13}, /* L996 */
-{6.4869622091298975e+00, 7.1803674117631999e-13,
- 2.2204460492503131e-16, -1.0980105713542798e-13,
- 1.8007817459420039e-13}, /* L997 */
-{6.1465443430530451e+00, 6.8103855888068665e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-14,
- -1.4377388168895777e-13}, /* L998 */
-{6.9334348512168074e+00, 7.6899597800661468e-13,
- 2.2204460492503131e-16, 5.1292303737682232e-14,
- -3.9412917374193057e-14}, /* L999 */
-{7.2375014799653465e+00, 8.0352391407245705e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- -1.8474111129762605e-13}, /* L1000 */
-{1.0704751534462535e+01, 2.3769319845712289e-12,
- 2.2204460492503131e-16, -5.1324500205396362e-12,
- 2.5088819910479288e-12}, /* L1001 */
-{1.9969666668716467e+01, 6.6512351182268503e-12,
- 2.2204460492503131e-16, -7.0245698147175517e-11,
- 9.7082342165322189e-12}, /* L1002 */
-{2.5142056782565259e+01, 1.1209977390791437e-11,
- 2.2204460492503131e-16, 5.4001247917767614e-13,
- -5.6191717945353048e-12}, /* L1003 */
-{2.8323200010548174e+01, 1.5722534385531617e-11,
- 2.2204460492503131e-16, -3.7680969455777813e-12,
- -3.6082248300317588e-12}, /* L1004 */
-{3.2321791678561532e+01, 2.1530638383282508e-11,
- 2.2204460492503131e-16, 1.4333201292515696e-11,
- 6.5796257331385277e-12}, /* L1005 */
-{3.7391747446514401e+01, 2.9125646339167588e-11,
- 2.2204460492503131e-16, -2.7823965353945823e-11,
- -1.8096635301390052e-11}, /* L1006 */
-{3.7803989307095556e+01, 3.3719388392583483e-11,
- 2.2204460492503131e-16, 1.4442225193533886e-11,
- 1.2765566381744975e-11}, /* L1007 */
-{4.6061583130257695e+01, 4.6024767330621330e-11,
- 2.2204460492503131e-16, -8.7482243671388460e-11,
- 9.2451313271624258e-10}, /* L1008 */
-{6.2174100014595624e+01, 6.9027117355346945e-11,
- 2.2204460492503131e-16, -4.0004777268620728e-11,
- 1.7784218542260533e-11}, /* L1009 */
-#else /* } { */
-
-
-/* Start of SP golden values */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L0 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L3 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L4 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L5 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L6 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L7 */
-{4.7549185156822205e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.9604644775390625e-07}, /* L8 */
-{4.2266038060188293e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 8.3446502685546875e-07}, /* L9 */
-{4.0575435757637024e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 3.5762786865234375e-07}, /* L10 */
-{3.2275927066802979e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L11 */
-{2.9586255550384521e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L12 */
-{7.8410917520523071e-01, 6.0349702835083008e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -7.1525573730468750e-07}, /* L13 */
-{3.5955643653869629e-01, 2.9802322387695312e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -3.5762786865234375e-07}, /* L14 */
-{4.0270313620567322e-01, 3.5762786865234375e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 3.5762786865234375e-07}, /* L15 */
-{2.9888099431991577e-01, 2.8312206268310547e-07,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.1920928955078125e-07}, /* L16 */
-{5.8850812911987305e-01, 5.9232115745544434e-07,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- 3.5762786865234375e-07}, /* L17 */
-{5.0337857007980347e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -4.7683715820312500e-07}, /* L18 */
-{4.5867058634757996e-01, 5.1595270633697510e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.2516975402832031e-06}, /* L19 */
-{4.7820881009101868e-01, 5.6624412536621094e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.0728836059570312e-06}, /* L20 */
-{9.7883027791976929e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 2.3841857910156250e-07}, /* L21 */
-{4.2159116268157959e-01, 5.5134296417236328e-07,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -8.9406967163085938e-07}, /* L22 */
-{5.0135254859924316e-01, 6.8545341491699219e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -1.7881393432617188e-07}, /* L23 */
-{1.0027021169662476e+00, 1.4305114746093750e-06,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- -2.3841857910156250e-07}, /* L24 */
-{7.2194659709930420e-01, 1.0728836059570312e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- 4.7683715820312500e-07}, /* L25 */
-{3.9529633522033691e-01, 6.1094760894775391e-07,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 1.1920928955078125e-07}, /* L26 */
-{5.9419322013854980e-01, 9.5367431640625000e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 0.0000000000000000e+00}, /* L27 */
-{5.9087789058685303e-01, 9.8347663879394531e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -2.9802322387695312e-06}, /* L28 */
-{6.3101136684417725e-01, 1.0877847671508789e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.1920928955078125e-06}, /* L29 */
-{1.1363973617553711e+00, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 2.3841857910156250e-07}, /* L30 */
-{5.0943696498870850e-01, 9.3877315521240234e-07,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -3.1590461730957031e-06}, /* L31 */
-{9.7332048416137695e-01, 1.8514692783355713e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 7.2717666625976562e-06}, /* L32 */
-{8.8116312026977539e-01, 1.7285346984863281e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.0132789611816406e-06}, /* L33 */
-{1.0469392538070679e+00, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.7285346984863281e-06}, /* L34 */
-{6.3979321718215942e-01, 1.3336539268493652e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.4305114746093750e-06}, /* L35 */
-{9.8686885833740234e-01, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- -2.1398067474365234e-05}, /* L36 */
-{5.1392030715942383e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -1.0728836059570312e-06}, /* L37 */
-{5.0039225816726685e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 1.1920928955078125e-07}, /* L38 */
-{8.0833417177200317e-01, 1.8775463104248047e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -4.7683715820312500e-07}, /* L39 */
-{6.4095199108123779e-01, 1.5273690223693848e-06,
- 1.1920928955078125e-07, -9.3042850494384766e-05,
- 2.2375583648681641e-04}, /* L40 */
-{1.0251988172531128e+00, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -2.5629997253417969e-06}, /* L41 */
-{7.3866742849349976e-01, 1.8477439880371094e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 1.0728836059570312e-06}, /* L42 */
-{1.1637136936187744e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -9.5367431640625000e-07}, /* L43 */
-{6.5105575323104858e-01, 1.7061829566955566e-06,
- 1.1920928955078125e-07, -1.5676021575927734e-05,
- 1.1682510375976562e-05}, /* L44 */
-{8.4511369466781616e-01, 2.2649765014648438e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -6.1392784118652344e-06}, /* L45 */
-{1.0660614967346191e+00, 2.9206275939941406e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.7881393432617188e-06}, /* L46 */
-{1.0486901998519897e+00, 2.9355287551879883e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -6.5565109252929688e-07}, /* L47 */
-{8.1313973665237427e-01, 2.3245811462402344e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 7.1525573730468750e-07}, /* L48 */
-{1.0204066038131714e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -3.5762786865234375e-07}, /* L49 */
-{8.1000715494155884e-01, 2.4139881134033203e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -3.0398368835449219e-06}, /* L50 */
-{9.7052782773971558e-01, 2.9504299163818359e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- -2.6702880859375000e-05}, /* L51 */
-{6.6346895694732666e-01, 2.0563602447509766e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -1.1324882507324219e-06}, /* L52 */
-{8.2547765970230103e-01, 2.6077032089233398e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 7.1525573730468750e-07}, /* L53 */
-{1.0555671453475952e+00, 3.3974647521972656e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -7.1525573730468750e-07}, /* L54 */
-{6.0000658035278320e-01, 1.9669532775878906e-06,
- 1.1920928955078125e-07, -1.0132789611816406e-06,
- -5.9604644775390625e-08}, /* L55 */
-{6.0714846849441528e-01, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- -1.4305114746093750e-06}, /* L56 */
-{6.2719875574111938e-01, 2.1308660507202148e-06,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -8.3446502685546875e-07}, /* L57 */
-{7.5642675161361694e-01, 2.6151537895202637e-06,
- 1.1920928955078125e-07, -3.0875205993652344e-05,
- -1.6927719116210938e-05}, /* L58 */
-{7.1186864376068115e-01, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -4.4107437133789062e-06,
- -4.2319297790527344e-06}, /* L59 */
-{5.5729919672012329e-01, 1.9930303096771240e-06,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 1.0728836059570312e-06}, /* L60 */
-{9.2214035987854004e-01, 3.3527612686157227e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.3841857910156250e-06}, /* L61 */
-{1.1209777593612671e+00, 4.1425228118896484e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-07,
- -3.3378601074218750e-06}, /* L62 */
-{8.2143312692642212e-01, 3.0845403671264648e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.4305114746093750e-06}, /* L63 */
-{9.1016262769699097e-01, 3.4719705581665039e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -7.2121620178222656e-06}, /* L64 */
-{8.4808546304702759e-01, 3.2857060432434082e-06,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -1.7285346984863281e-06}, /* L65 */
-{7.8788590431213379e-01, 3.0994415283203125e-06,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- 2.0265579223632812e-06}, /* L66 */
-{8.2463252544403076e-01, 3.2931566238403320e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -1.9073486328125000e-06}, /* L67 */
-{8.6029779911041260e-01, 3.4868717193603516e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 1.9073486328125000e-06}, /* L68 */
-{8.8033676147460938e-01, 3.6209821701049805e-06,
- 1.1920928955078125e-07, -5.0604343414306641e-05,
- -1.2701749801635742e-04}, /* L69 */
-{1.2535502910614014e+00, 5.2303075790405273e-06,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 1.1920928955078125e-06}, /* L70 */
-{9.0141552686691284e-01, 3.8146972656250000e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 3.3378601074218750e-06}, /* L71 */
-{7.7777242660522461e-01, 3.3378601074218750e-06,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -1.4185905456542969e-05}, /* L72 */
-{1.0034232139587402e+00, 4.3660402297973633e-06,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- 2.9802322387695312e-06}, /* L73 */
-{8.9863836765289307e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -6.9737434387207031e-06}, /* L74 */
-{1.0266774892807007e+00, 4.5895576477050781e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -7.7486038208007812e-07}, /* L75 */
-{6.6445106267929077e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -2.8014183044433594e-05,
- -2.6226043701171875e-05}, /* L76 */
-{1.2500019073486328e+00, 5.7369470596313477e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -2.9802322387695312e-07}, /* L77 */
-{1.0576709508895874e+00, 4.9173831939697266e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 1.9669532775878906e-05}, /* L78 */
-{8.0380576848983765e-01, 3.7848949432373047e-06,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 1.3113021850585938e-06}, /* L79 */
-{6.3124734163284302e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- -4.0531158447265625e-06}, /* L80 */
-{1.2044825553894043e+00, 5.8151781558990479e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -4.4107437133789062e-06}, /* L81 */
-{8.1098091602325439e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- -5.0067901611328125e-06}, /* L82 */
-{1.2168718576431274e+00, 6.0200691223144531e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.4901161193847656e-06}, /* L83 */
-{5.6548178195953369e-01, 2.8312206268310547e-06,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -1.6689300537109375e-06}, /* L84 */
-{1.3882204294204712e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- 1.5497207641601562e-06}, /* L85 */
-{1.7107630968093872e+00, 8.7693333625793457e-06,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- 3.0994415283203125e-06}, /* L86 */
-{8.1896400451660156e-01, 4.2468309402465820e-06,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 5.4836273193359375e-06}, /* L87 */
-{7.6276636123657227e-01, 4.0009617805480957e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 2.9802322387695312e-06}, /* L88 */
-{8.0899810791015625e-01, 4.2915344238281250e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.1920928955078125e-07}, /* L89 */
-{8.7223005294799805e-01, 4.6789646148681641e-06,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -1.1920928955078125e-06}, /* L90 */
-{8.2417380809783936e-01, 4.4703483581542969e-06,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 1.2516975402832031e-05}, /* L91 */
-{7.5204324722290039e-01, 4.1238963603973389e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -5.0663948059082031e-06}, /* L92 */
-{1.4193508625030518e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, 9.6559524536132812e-06,
- 0.0000000000000000e+00}, /* L93 */
-{9.6275132894515991e-01, 5.3942203521728516e-06,
- 1.1920928955078125e-07, -6.2584877014160156e-06,
- -3.3974647521972656e-06}, /* L94 */
-{9.3683904409408569e-01, 5.3048133850097656e-06,
- 1.1920928955078125e-07, -5.9008598327636719e-06,
- 5.3644180297851562e-06}, /* L95 */
-{1.0781044960021973e+00, 6.1690807342529297e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- 1.6689300537109375e-06}, /* L96 */
-{1.0644396543502808e+00, 6.1541795730590820e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 3.4570693969726562e-06}, /* L97 */
-{9.8469865322113037e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -5.4240226745605469e-06}, /* L98 */
-{1.1337554454803467e+00, 6.6906213760375977e-06,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- 9.0599060058593750e-06}, /* L99 */
-{9.7000402212142944e-01, 5.7816505432128906e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 1.0728836059570312e-06}, /* L100 */
-{9.5541024208068848e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, -3.1709671020507812e-05,
- -8.5830688476562500e-06}, /* L101 */
-{8.3822196722030640e-01, 5.0961971282958984e-06,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- 1.7881393432617188e-06}, /* L102 */
-{1.9174509048461914e+00, 1.1771917343139648e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- -2.3245811462402344e-06}, /* L103 */
-{1.0769299268722534e+00, 6.6757202148437500e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- 2.8610229492187500e-06}, /* L104 */
-{1.1833299398422241e+00, 7.4058771133422852e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- -1.7285346984863281e-06}, /* L105 */
-{8.6897367238998413e-01, 5.4910778999328613e-06,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- -4.7624111175537109e-05}, /* L106 */
-{1.0105159282684326e+00, 6.4447522163391113e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.4901161193847656e-06}, /* L107 */
-{1.2222226858139038e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, -9.9539756774902344e-06,
- -1.0073184967041016e-05}, /* L108 */
-{9.9771076440811157e-01, 6.4820051193237305e-06,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- 3.8146972656250000e-06}, /* L109 */
-{8.5909843444824219e-01, 5.6326389312744141e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -1.6689300537109375e-06}, /* L110 */
-{1.0945979356765747e+00, 7.2419643402099609e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 4.7683715820312500e-06}, /* L111 */
-{9.4642227888107300e-01, 6.3180923461914062e-06,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 7.2717666625976562e-06}, /* L112 */
-{9.4248169660568237e-01, 6.3478946685791016e-06,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -7.8678131103515625e-06}, /* L113 */
-{1.0350898504257202e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -6.0200691223144531e-06}, /* L114 */
-{1.2651975154876709e+00, 8.6724758148193359e-06,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 1.0013580322265625e-05}, /* L115 */
-{9.2753994464874268e-01, 6.4130872488021851e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- -4.7683715820312500e-06}, /* L116 */
-{1.3073544502258301e+00, 9.1195106506347656e-06,
- 1.1920928955078125e-07, 7.1644783020019531e-05,
- 6.3896179199218750e-05}, /* L117 */
-{9.6987730264663696e-01, 6.8247318267822266e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.2165985107421875e-04}, /* L118 */
-{9.7899848222732544e-01, 6.9439411163330078e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -5.4836273193359375e-06}, /* L119 */
-{8.6979395151138306e-01, 6.2212347984313965e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.5497207641601562e-06}, /* L120 */
-{9.7924292087554932e-01, 7.0631504058837891e-06,
- 1.1920928955078125e-07, -4.1127204895019531e-05,
- 1.7762184143066406e-05}, /* L121 */
-{9.7541624307632446e-01, 7.0929527282714844e-06,
- 1.1920928955078125e-07, -7.6293945312500000e-06,
- -1.0728836059570312e-06}, /* L122 */
-{1.6664739847183228e+00, 1.2218952178955078e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- -1.3291835784912109e-05}, /* L123 */
-{8.2053667306900024e-01, 6.0647726058959961e-06,
- 1.1920928955078125e-07, -1.8298625946044922e-05,
- -2.4974346160888672e-05}, /* L124 */
-{1.2599431276321411e+00, 9.3877315521240234e-06,
- 1.1920928955078125e-07, 1.0609626770019531e-05,
- 3.5762786865234375e-07}, /* L125 */
-{1.3730195760726929e+00, 1.0311603546142578e-05,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -1.9669532775878906e-06}, /* L126 */
-{1.4950799942016602e+00, 1.1317431926727295e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.9802322387695312e-06}, /* L127 */
-{8.7696063518524170e-01, 6.6906213760375977e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- 0.0000000000000000e+00}, /* L128 */
-{9.5106983184814453e-01, 7.3127448558807373e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -6.6161155700683594e-06}, /* L129 */
-{9.4996523857116699e-01, 7.3611736297607422e-06,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- -3.5166740417480469e-06}, /* L130 */
-{1.2995917797088623e+00, 1.0147690773010254e-05,
- 1.1920928955078125e-07, 1.2397766113281250e-05,
- -2.5868415832519531e-05}, /* L131 */
-{7.4620795249938965e-01, 5.8710575103759766e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -2.0861625671386719e-06}, /* L132 */
-{1.1202967166900635e+00, 8.8810920715332031e-06,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- -8.5234642028808594e-06}, /* L133 */
-{1.3694064617156982e+00, 1.0937452316284180e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- -6.6161155700683594e-06}, /* L134 */
-{1.0537055730819702e+00, 8.4787607192993164e-06,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- -4.7087669372558594e-06}, /* L135 */
-{1.2646913528442383e+00, 1.0251998901367188e-05,
- 1.1920928955078125e-07, -1.2874603271484375e-05,
- -3.1590461730957031e-06}, /* L136 */
-{1.2353997230529785e+00, 1.0088086128234863e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 0.0000000000000000e+00}, /* L137 */
-{1.0905735492706299e+00, 8.9704990386962891e-06,
- 1.1920928955078125e-07, -1.7642974853515625e-05,
- -1.9550323486328125e-05}, /* L138 */
-{1.2841809988021851e+00, 1.0639429092407227e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- -3.3378601074218750e-06}, /* L139 */
-{1.1500061750411987e+00, 9.5963478088378906e-06,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -4.1723251342773438e-07}, /* L140 */
-{1.3510324954986572e+00, 1.1354684829711914e-05,
- 1.1920928955078125e-07, 1.2159347534179688e-05,
- 1.5377998352050781e-05}, /* L141 */
-{9.4499003887176514e-01, 7.9981982707977295e-06,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- -1.0132789611816406e-06}, /* L142 */
-{1.3810083866119385e+00, 1.1771917343139648e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- 4.3511390686035156e-05}, /* L143 */
-{1.1562519073486328e+00, 9.9241733551025391e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 9.2983245849609375e-06}, /* L144 */
-{1.0793009996414185e+00, 9.3281269073486328e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -1.5497207641601562e-06}, /* L145 */
-{1.6061439514160156e+00, 1.3977289199829102e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- 2.2649765014648438e-06}, /* L146 */
-{1.0843659639358521e+00, 9.5013529062271118e-06,
- 1.1920928955078125e-07, -4.5716762542724609e-05,
- -7.1525573730468750e-06}, /* L147 */
-{1.2195807695388794e+00, 1.0758638381958008e-05,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- -5.5432319641113281e-06}, /* L148 */
-{1.0805189609527588e+00, 9.5963478088378906e-06,
- 1.1920928955078125e-07, -5.7816505432128906e-06,
- -5.5432319641113281e-06}, /* L149 */
-{1.2214741706848145e+00, 1.0922551155090332e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- 3.4809112548828125e-05}, /* L150 */
-{9.9667584896087646e-01, 8.9704990386962891e-06,
- 1.1920928955078125e-07, -2.3365020751953125e-05,
- -1.6868114471435547e-05}, /* L151 */
-{1.1175954341888428e+00, 1.0125339031219482e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -2.3841857910156250e-06}, /* L152 */
-{1.5759546756744385e+00, 1.4372169971466064e-05,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- -1.6748905181884766e-05}, /* L153 */
-{1.2970726490020752e+00, 1.1906027793884277e-05,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 1.3113021850585938e-06}, /* L154 */
-{1.3951190710067749e+00, 1.2889504432678223e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 3.2186508178710938e-05}, /* L155 */
-{1.2964704036712646e+00, 1.2055039405822754e-05,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -1.1920928955078125e-06}, /* L156 */
-{1.0063484907150269e+00, 9.4175338745117188e-06,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- -2.3782253265380859e-05}, /* L157 */
-{9.6187907457351685e-01, 9.0599060058593750e-06,
- 1.1920928955078125e-07, -7.9274177551269531e-06,
- -2.8252601623535156e-05}, /* L158 */
-{1.5304667949676514e+00, 1.4506280422210693e-05,
- 1.1920928955078125e-07, 6.9260597229003906e-05,
- -3.3318996429443359e-05}, /* L159 */
-{1.2531182765960693e+00, 1.1950731277465820e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -8.0466270446777344e-06}, /* L160 */
-{1.0869301557540894e+00, 1.0430812835693359e-05,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- 1.6331672668457031e-05}, /* L161 */
-{9.2123973369598389e-01, 8.8959932327270508e-06,
- 1.1920928955078125e-07, 2.6345252990722656e-05,
- 1.5497207641601562e-06}, /* L162 */
-{1.2883348464965820e+00, 1.2516975402832031e-05,
- 1.1920928955078125e-07, -1.9252300262451172e-05,
- -8.9406967163085938e-07}, /* L163 */
-{7.4848139286041260e-01, 7.3164701461791992e-06,
- 1.1920928955078125e-07, -2.7418136596679688e-06,
- 2.3841857910156250e-07}, /* L164 */
-{1.0303035974502563e+00, 1.0132789611816406e-05,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- 2.0265579223632812e-06}, /* L165 */
-{1.1414912939071655e+00, 1.1295080184936523e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 8.0943107604980469e-05}, /* L166 */
-{1.5194602012634277e+00, 1.5124678611755371e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- -7.7486038208007812e-06}, /* L167 */
-{1.0238080024719238e+00, 1.0251998901367188e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.1590461730957031e-06}, /* L168 */
-{1.1346142292022705e+00, 1.1429190635681152e-05,
- 1.1920928955078125e-07, -7.5101852416992188e-06,
- 1.6331672668457031e-05}, /* L169 */
-{1.1793857812881470e+00, 1.1950731277465820e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -1.3232231140136719e-05}, /* L170 */
-{1.6403435468673706e+00, 1.6719102859497070e-05,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -3.3974647521972656e-06}, /* L171 */
-{1.7790050506591797e+00, 1.8239021301269531e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- -7.7486038208007812e-07}, /* L172 */
-{1.4508632421493530e+00, 1.4960765838623047e-05,
- 1.1920928955078125e-07, -7.3909759521484375e-06,
- -4.1723251342773438e-06}, /* L173 */
-{1.5513389110565186e+00, 1.6093254089355469e-05,
- 1.1920928955078125e-07, -6.1690807342529297e-05,
- 6.1869621276855469e-05}, /* L174 */
-{1.2285547256469727e+00, 1.2814998626708984e-05,
- 1.1920928955078125e-07, -1.9431114196777344e-05,
- 2.0623207092285156e-05}, /* L175 */
-{1.1248027086257935e+00, 1.1801719665527344e-05,
- 1.1920928955078125e-07, 4.4107437133789062e-05,
- -1.8775463104248047e-05}, /* L176 */
-{1.0338598489761353e+00, 1.0907649993896484e-05,
- 1.1920928955078125e-07, -2.4080276489257812e-05,
- 2.3841857910156250e-07}, /* L177 */
-{8.8742196559906006e-01, 9.4175338745117188e-06,
- 1.1920928955078125e-07, -4.1007995605468750e-05,
- -4.6312808990478516e-05}, /* L178 */
-{1.2569568157196045e+00, 1.3411045074462891e-05,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- 1.7642974853515625e-05}, /* L179 */
-{1.0193126201629639e+00, 1.0937452316284180e-05,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- 5.1140785217285156e-05}, /* L180 */
-{1.2982742786407471e+00, 1.4007091522216797e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -8.1062316894531250e-06}, /* L181 */
-{1.0288227796554565e+00, 1.1160969734191895e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- 1.4305114746093750e-06}, /* L182 */
-{1.3306066989898682e+00, 1.4513731002807617e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- 9.5367431640625000e-07}, /* L183 */
-{1.0203016996383667e+00, 1.1190772056579590e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- 2.0265579223632812e-05}, /* L184 */
-{1.1182178258895874e+00, 1.2330710887908936e-05,
- 1.1920928955078125e-07, -7.9274177551269531e-06,
- -3.2186508178710938e-06}, /* L185 */
-{1.2682054042816162e+00, 1.4066696166992188e-05,
- 1.1920928955078125e-07, 1.9752979278564453e-04,
- 1.2481212615966797e-04}, /* L186 */
-{1.1684124469757080e+00, 1.3023614883422852e-05,
- 1.1920928955078125e-07, -3.2961368560791016e-05,
- -7.0333480834960938e-06}, /* L187 */
-{1.3009834289550781e+00, 1.4580786228179932e-05,
- 1.1920928955078125e-07, -3.2722949981689453e-05,
- -5.5491924285888672e-05}, /* L188 */
-{1.6348913908004761e+00, 1.8417835235595703e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-06,
- 2.9802322387695312e-06}, /* L189 */
-{1.6420391798019409e+00, 1.8596649169921875e-05,
- 1.1920928955078125e-07, -2.4318695068359375e-05,
- 2.7537345886230469e-05}, /* L190 */
-{9.4108945131301880e-01, 1.0713934898376465e-05,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- 1.3232231140136719e-05}, /* L191 */
-{9.9413573741912842e-01, 1.1377036571502686e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- 1.9073486328125000e-06}, /* L192 */
-{1.2357484102249146e+00, 1.4215707778930664e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -2.3841857910156250e-07}, /* L193 */
-{1.6301261186599731e+00, 1.8849968910217285e-05,
- 1.1920928955078125e-07, 1.4662742614746094e-05,
- 2.6226043701171875e-06}, /* L194 */
-{1.0974243879318237e+00, 1.2755393981933594e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 2.3961067199707031e-05}, /* L195 */
-{1.0510134696960449e+00, 1.2278556823730469e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- 2.3841857910156250e-06}, /* L196 */
-{1.4908643960952759e+00, 1.7508864402770996e-05,
- 1.1920928955078125e-07, 7.8082084655761719e-05,
- -3.7074089050292969e-05}, /* L197 */
-{1.0176256895065308e+00, 1.2010335922241211e-05,
- 1.1920928955078125e-07, 4.4465065002441406e-05,
- -1.7285346984863281e-05}, /* L198 */
-{1.5929344892501831e+00, 1.8894672393798828e-05,
- 1.1920928955078125e-07, -3.8385391235351562e-05,
- 7.7486038208007812e-06}, /* L199 */
-{1.7058891057968140e+00, 2.0340085029602051e-05,
- 1.1920928955078125e-07, 6.0558319091796875e-05,
- 2.7537345886230469e-05}, /* L200 */
-{1.1977496147155762e+00, 1.4349818229675293e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- -7.9274177551269531e-06}, /* L201 */
-{1.0519545078277588e+00, 1.2665987014770508e-05,
- 1.1920928955078125e-07, -9.4175338745117188e-06,
- -2.5033950805664062e-05}, /* L202 */
-{1.8053981065750122e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, 5.8412551879882812e-06,
- 4.7683715820312500e-07}, /* L203 */
-{1.2401795387268066e+00, 1.5079975128173828e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- -6.3180923461914062e-06}, /* L204 */
-{1.1975620985031128e+00, 1.4707446098327637e-05,
- 1.1920928955078125e-07, 3.4335851669311523e-03,
- -5.1164627075195312e-04}, /* L205 */
-{1.5048525333404541e+00, 1.8477439880371094e-05,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -7.8082084655761719e-06}, /* L206 */
-{1.1292189359664917e+00, 1.3932585716247559e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 1.0848045349121094e-05}, /* L207 */
-{1.1700141429901123e+00, 1.4506280422210693e-05,
- 1.1920928955078125e-07, 1.8239021301269531e-05,
- -1.8358230590820312e-05}, /* L208 */
-{1.1943764686584473e+00, 1.4878809452056885e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -9.2387199401855469e-06}, /* L209 */
-{1.7291518449783325e+00, 2.1643936634063721e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- -1.9729137420654297e-05}, /* L210 */
-{1.6042573451995850e+00, 2.0176172256469727e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- 1.6689300537109375e-06}, /* L211 */
-{1.4740267992019653e+00, 1.8626451492309570e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -3.9339065551757812e-06}, /* L212 */
-{1.4295392036437988e+00, 1.8149614334106445e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 5.7220458984375000e-06}, /* L213 */
-{1.4392251968383789e+00, 1.8358230590820312e-05,
- 1.1920928955078125e-07, -1.6987323760986328e-05,
- -2.1576881408691406e-05}, /* L214 */
-{2.1736485958099365e+00, 2.7865171432495117e-05,
- 1.1920928955078125e-07, -5.3107738494873047e-05,
- -4.2319297790527344e-05}, /* L215 */
-{1.1919932365417480e+00, 1.5348196029663086e-05,
- 1.1920928955078125e-07, -7.0035457611083984e-05,
- 8.1062316894531250e-06}, /* L216 */
-{1.6522569656372070e+00, 2.1398067474365234e-05,
- 1.1920928955078125e-07, -7.0112943649291992e-04,
- 2.2172927856445312e-04}, /* L217 */
-{1.6680214405059814e+00, 2.1681189537048340e-05,
- 1.1920928955078125e-07, -8.1539154052734375e-05,
- -7.9333782196044922e-05}, /* L218 */
-{2.1757786273956299e+00, 2.8401613235473633e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 1.0490417480468750e-05}, /* L219 */
-{1.3124855756759644e+00, 1.7210841178894043e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -1.4483928680419922e-05}, /* L220 */
-{1.5203121900558472e+00, 2.0027160644531250e-05,
- 1.1920928955078125e-07, -1.9431114196777344e-05,
- 3.5762786865234375e-07}, /* L221 */
-{1.4143544435501099e+00, 1.8715858459472656e-05,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- -9.0003013610839844e-06}, /* L222 */
-{1.4371609687805176e+00, 1.9103288650512695e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- -3.1292438507080078e-05}, /* L223 */
-{1.6026908159255981e+00, 2.1427869796752930e-05,
- 1.1920928955078125e-07, -3.3575296401977539e-04,
- -6.3514709472656250e-04}, /* L224 */
-{1.6288132667541504e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, -4.0888786315917969e-05,
- 9.1791152954101562e-06}, /* L225 */
-{1.0187907218933105e+00, 1.3723969459533691e-05,
- 1.1920928955078125e-07, 1.3470649719238281e-05,
- 2.3841857910156250e-06}, /* L226 */
-{1.2462819814682007e+00, 1.6862526535987854e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- 1.1920928955078125e-06}, /* L227 */
-{1.4384590387344360e+00, 1.9550323486328125e-05,
- 1.1920928955078125e-07, -3.6537647247314453e-05,
- -3.3259391784667969e-05}, /* L228 */
-{1.3267810344696045e+00, 1.8194317817687988e-05,
- 1.1920928955078125e-07, -1.6243457794189453e-03,
- 5.1963329315185547e-04}, /* L229 */
-{1.2517757415771484e+00, 1.7166137695312500e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-05,
- -4.6491622924804688e-05}, /* L230 */
-{1.6038647890090942e+00, 2.2083520889282227e-05,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- 2.6226043701171875e-06}, /* L231 */
-{1.1713200807571411e+00, 1.6197562217712402e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- -5.6028366088867188e-06}, /* L232 */
-{1.8583130836486816e+00, 2.5808811187744141e-05,
- 1.1920928955078125e-07, -1.2278556823730469e-05,
- -1.6689300537109375e-05}, /* L233 */
-{1.2964105606079102e+00, 1.8082559108734131e-05,
- 1.1920928955078125e-07, -4.8756599426269531e-05,
- -3.9100646972656250e-05}, /* L234 */
-{1.4914346933364868e+00, 2.0891427993774414e-05,
- 1.1920928955078125e-07, -2.7477741241455078e-05,
- -1.9073486328125000e-06}, /* L235 */
-{1.2626861333847046e+00, 1.7762184143066406e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-07,
- 1.1920928955078125e-07}, /* L236 */
-{1.3563674688339233e+00, 1.9162893295288086e-05,
- 1.1920928955078125e-07, 2.0980834960937500e-05,
- 2.7418136596679688e-05}, /* L237 */
-{1.5367653369903564e+00, 2.1800398826599121e-05,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- -1.1324882507324219e-06}, /* L238 */
-{1.2470778226852417e+00, 1.7765909433364868e-05,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- 2.9921531677246094e-05}, /* L239 */
-{1.0934772491455078e+00, 1.5646219253540039e-05,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- 3.8146972656250000e-05}, /* L240 */
-{1.9852321147918701e+00, 2.8520822525024414e-05,
- 1.1920928955078125e-07, -2.0563602447509766e-05,
- 1.2874603271484375e-05}, /* L241 */
-{1.2313609123229980e+00, 1.7762184143066406e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -8.5234642028808594e-06}, /* L242 */
-{1.2252029180526733e+00, 1.7762184143066406e-05,
- 1.1920928955078125e-07, -6.1577558517456055e-04,
- -2.3275613784790039e-04}, /* L243 */
-{1.0384093523025513e+00, 1.5102326869964600e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -7.1525573730468750e-07}, /* L244 */
-{1.4937413930892944e+00, 2.1815299987792969e-05,
- 1.1920928955078125e-07, 4.0650367736816406e-05,
- -1.2755393981933594e-05}, /* L245 */
-{1.2570779323577881e+00, 1.8432736396789551e-05,
- 1.1920928955078125e-07, 2.6345252990722656e-05,
- -5.1259994506835938e-06}, /* L246 */
-{1.8190509080886841e+00, 2.6784837245941162e-05,
- 1.1920928955078125e-07, -9.2089176177978516e-05,
- -7.8439712524414062e-05}, /* L247 */
-{1.0523401498794556e+00, 1.5556812286376953e-05,
- 1.1920928955078125e-07, 4.8518180847167969e-05,
- 7.2598457336425781e-05}, /* L248 */
-{1.8098148107528687e+00, 2.6866793632507324e-05,
- 1.1920928955078125e-07, -2.8133392333984375e-05,
- -1.0192394256591797e-05}, /* L249 */
-{1.5516481399536133e+00, 2.3126602172851562e-05,
- 1.1920928955078125e-07, -1.1730194091796875e-04,
- -5.0246715545654297e-05}, /* L250 */
-{1.7170596122741699e+00, 2.5689601898193359e-05,
- 1.1920928955078125e-07, 8.1062316894531250e-06,
- 1.6212463378906250e-05}, /* L251 */
-{1.6130100488662720e+00, 2.4229288101196289e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-05,
- 1.2755393981933594e-05}, /* L252 */
-{1.5766159296035767e+00, 2.3778527975082397e-05,
- 1.1920928955078125e-07, -2.6404857635498047e-05,
- -6.1452388763427734e-05}, /* L253 */
-{1.3089818954467773e+00, 1.9818544387817383e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- 3.5405158996582031e-05}, /* L254 */
-{2.3881494998931885e+00, 3.6299228668212891e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -2.7954578399658203e-05}, /* L255 */
-{1.3607747554779053e+00, 2.0766630768775940e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-06,
- 1.5258789062500000e-05}, /* L256 */
-{1.0377191305160522e+00, 1.5914440155029297e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -1.6212463378906250e-04}, /* L257 */
-{1.4650620222091675e+00, 2.2530555725097656e-05,
- 1.1920928955078125e-07, 1.3589859008789062e-05,
- -1.9133090972900391e-05}, /* L258 */
-{1.1872253417968750e+00, 1.8328428268432617e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -1.9490718841552734e-05}, /* L259 */
-{8.4802746772766113e-01, 1.3142824172973633e-05,
- 1.1920928955078125e-07, 1.6212463378906250e-05,
- -1.4305114746093750e-06}, /* L260 */
-{1.5229669809341431e+00, 2.3692846298217773e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 4.1723251342773438e-06}, /* L261 */
-{1.6334742307662964e+00, 2.5510787963867188e-05,
- 1.1920928955078125e-07, 5.8174133300781250e-05,
- 4.4107437133789062e-06}, /* L262 */
-{1.4466638565063477e+00, 2.2679567337036133e-05,
- 1.1920928955078125e-07, -6.2823295593261719e-05,
- 6.6280364990234375e-05}, /* L263 */
-{1.2745931148529053e+00, 2.0056962966918945e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 1.9073486328125000e-05}, /* L264 */
-{1.0961362123489380e+00, 1.7315149307250977e-05,
- 1.1920928955078125e-07, -3.5881996154785156e-05,
- -3.2484531402587891e-05}, /* L265 */
-{1.1973472833633423e+00, 1.8984079360961914e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- 1.1205673217773438e-05}, /* L266 */
-{1.3094604015350342e+00, 2.0842649973928928e-05,
- 1.1920928955078125e-07, -3.2782554626464844e-05,
- -2.9444694519042969e-05}, /* L267 */
-{8.5768884420394897e-01, 1.3701617717742920e-05,
- 1.1920928955078125e-07, -5.1617622375488281e-05,
- 2.4318695068359375e-05}, /* L268 */
-{1.1077049970626831e+00, 1.7762184143066406e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 1.1205673217773438e-05}, /* L269 */
-{9.1811978816986084e-01, 1.4780089259147644e-05,
- 1.1920928955078125e-07, 1.1253356933593750e-04,
- 4.3272972106933594e-05}, /* L270 */
-{1.4978722333908081e+00, 2.4199485778808594e-05,
- 1.1920928955078125e-07, -6.8962574005126953e-05,
- -5.4895877838134766e-05}, /* L271 */
-{9.2462468147277832e-01, 1.4990568161010742e-05,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- -2.2053718566894531e-06}, /* L272 */
-{1.1950411796569824e+00, 1.9446015357971191e-05,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 1.4305114746093750e-06}, /* L273 */
-{1.0889482498168945e+00, 1.7784535884857178e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 3.5762786865234375e-07}, /* L274 */
-{1.1054261922836304e+00, 1.8119812011718750e-05,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- 2.2649765014648438e-06}, /* L275 */
-{1.5407308340072632e+00, 2.5346875190734863e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -7.9274177551269531e-06}, /* L276 */
-{1.5179319381713867e+00, 2.5063753128051758e-05,
- 1.1920928955078125e-07, -1.5676021575927734e-05,
- 1.3470649719238281e-05}, /* L277 */
-{1.5787384510040283e+00, 2.6159919798374176e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -6.1988830566406250e-06}, /* L278 */
-{1.3440673351287842e+00, 2.2351741790771484e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -5.6028366088867188e-06}, /* L279 */
-{1.0749133825302124e+00, 1.7940998077392578e-05,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- 1.9073486328125000e-06}, /* L280 */
-{1.4367295503616333e+00, 2.4065375328063965e-05,
- 1.1920928955078125e-07, 3.6358833312988281e-05,
- -1.4066696166992188e-05}, /* L281 */
-{1.0292458534240723e+00, 1.7300248146057129e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- 1.0371208190917969e-05}, /* L282 */
-{1.6615095138549805e+00, 2.8029084205627441e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- -9.1195106506347656e-06}, /* L283 */
-{1.3608455657958984e+00, 2.3037195205688477e-05,
- 1.1920928955078125e-07, -1.3947486877441406e-05,
- -6.5565109252929688e-06}, /* L284 */
-{1.5477976799011230e+00, 2.6293098926544189e-05,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- -8.3446502685546875e-07}, /* L285 */
-{1.4318006038665771e+00, 2.4408102035522461e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- -2.5033950805664062e-06}, /* L286 */
-{1.3153171539306641e+00, 2.2500753402709961e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 4.7683715820312500e-07}, /* L287 */
-{1.0099321603775024e+00, 1.7344951629638672e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-05,
- -8.7022781372070312e-05}, /* L288 */
-{1.0847744941711426e+00, 1.8686056137084961e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- 4.5299530029296875e-06}, /* L289 */
-{9.5685625076293945e-01, 1.6540288925170898e-05,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- -1.8477439880371094e-05}, /* L290 */
-{2.1030154228210449e+00, 3.6478042602539062e-05,
- 1.1920928955078125e-07, 2.0980834960937500e-05,
- 1.7046928405761719e-05}, /* L291 */
-{1.1778017282485962e+00, 2.0503997802734375e-05,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -1.5264749526977539e-04}, /* L292 */
-{1.4986901283264160e+00, 2.6173889636993408e-05,
- 1.1920928955078125e-07, -1.4841556549072266e-05,
- 2.9802322387695312e-06}, /* L293 */
-{1.5219157934188843e+00, 2.6673078536987305e-05,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- -1.0520219802856445e-04}, /* L294 */
-{1.6414111852645874e+00, 2.8908252716064453e-05,
- 1.1920928955078125e-07, 1.4889240264892578e-04,
- 5.1343441009521484e-04}, /* L295 */
-{1.2212220430374146e+00, 2.1547079086303711e-05,
- 1.1920928955078125e-07, -1.7344951629638672e-05,
- 5.7935714721679688e-05}, /* L296 */
-{1.0117542743682861e+00, 1.7911195755004883e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -5.9008598327636719e-06}, /* L297 */
-{1.4981784820556641e+00, 2.6613473892211914e-05,
- 1.1920928955078125e-07, -1.2099742889404297e-05,
- -6.0677528381347656e-05}, /* L298 */
-{1.1771926879882812e+00, 2.0980834960937500e-05,
- 1.1920928955078125e-07, 3.6120414733886719e-05,
- -2.9444694519042969e-05}, /* L299 */
-{1.3216271400451660e+00, 2.3633241653442383e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-05,
- 2.3245811462402344e-05}, /* L300 */
-{1.3039731979370117e+00, 2.3394823074340820e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 2.7418136596679688e-06}, /* L301 */
-{1.4548612833023071e+00, 2.6196241378784180e-05,
- 1.1920928955078125e-07, 4.3988227844238281e-05,
- -6.5326690673828125e-05}, /* L302 */
-{1.6806248426437378e+00, 3.0353665351867676e-05,
- 1.1920928955078125e-07, 1.8954277038574219e-05,
- -1.0073184967041016e-05}, /* L303 */
-{1.0229992866516113e+00, 1.8537044525146484e-05,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- 9.7751617431640625e-06}, /* L304 */
-{1.3204678297042847e+00, 2.4005770683288574e-05,
- 1.1920928955078125e-07, -1.9311904907226562e-05,
- -1.4901161193847656e-06}, /* L305 */
-{1.0975986719131470e+00, 2.0042061805725098e-05,
- 1.1920928955078125e-07, 2.8443336486816406e-04,
- 4.7993659973144531e-04}, /* L306 */
-{1.3951439857482910e+00, 2.5533139705657959e-05,
- 1.1920928955078125e-07, -2.3424625396728516e-05,
- 1.8835067749023438e-05}, /* L307 */
-{1.6752896308898926e+00, 3.0755996704101562e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- -1.7583370208740234e-05}, /* L308 */
-{1.3081562519073486e+00, 2.4095177650451660e-05,
- 1.1920928955078125e-07, -2.8908252716064453e-05,
- 3.4570693969726562e-05}, /* L309 */
-{9.1597378253936768e-01, 1.6927719116210938e-05,
- 1.1920928955078125e-07, -7.1227550506591797e-05,
- -4.4345855712890625e-05}, /* L310 */
-{1.2459009885787964e+00, 2.3096799850463867e-05,
- 1.1920928955078125e-07, 2.4795532226562500e-05,
- 7.2717666625976562e-06}, /* L311 */
-{1.3829603195190430e+00, 2.5719404220581055e-05,
- 1.1920928955078125e-07, 9.2983245849609375e-06,
- -2.3841857910156250e-07}, /* L312 */
-{1.1420305967330933e+00, 2.1308660507202148e-05,
- 1.1920928955078125e-07, -1.0436773300170898e-04,
- -3.5941600799560547e-05}, /* L313 */
-{1.0840096473693848e+00, 2.0295381546020508e-05,
- 1.1920928955078125e-07, -1.5139579772949219e-04,
- -1.0305643081665039e-04}, /* L314 */
-{1.7044900655746460e+00, 3.2007694244384766e-05,
- 1.1920928955078125e-07, 5.0425529479980469e-05,
- 7.3313713073730469e-05}, /* L315 */
-{1.7000733613967896e+00, 3.2022595405578613e-05,
- 1.1920928955078125e-07, -3.6895275115966797e-05,
- 1.7523765563964844e-05}, /* L316 */
-{1.7034292221069336e+00, 3.2186508178710938e-05,
- 1.1920928955078125e-07, -2.0027160644531250e-05,
- -3.2186508178710938e-06}, /* L317 */
-{1.3089668750762939e+00, 2.4810433387756348e-05,
- 1.1920928955078125e-07, -1.4901161193847656e-06,
- 1.3113021850585938e-06}, /* L318 */
-{1.2805606126785278e+00, 2.4348497390747070e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- -1.7285346984863281e-06}, /* L319 */
-{9.6873760223388672e-01, 1.8477439880371094e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- 5.4836273193359375e-06}, /* L320 */
-{9.8751413822174072e-01, 1.8894672393798828e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- -5.9604644775390625e-07}, /* L321 */
-{1.1660006046295166e+00, 2.2381544113159180e-05,
- 1.1920928955078125e-07, -5.3107738494873047e-05,
- -4.3451786041259766e-05}, /* L322 */
-{1.8482679128646851e+00, 3.5583972930908203e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- 2.1457672119140625e-05}, /* L323 */
-{1.2221440076828003e+00, 2.3603439331054688e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 1.2040138244628906e-05}, /* L324 */
-{1.4494453668594360e+00, 2.8081238269805908e-05,
- 1.1920928955078125e-07, -2.4676322937011719e-05,
- -1.9192695617675781e-05}, /* L325 */
-{8.9722484350204468e-01, 1.7434358596801758e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -1.0669231414794922e-05}, /* L326 */
-{1.6314949989318848e+00, 3.1799077987670898e-05,
- 1.1920928955078125e-07, 1.1324882507324219e-05,
- 2.2649765014648438e-06}, /* L327 */
-{1.5377434492111206e+00, 3.0070543289184570e-05,
- 1.1920928955078125e-07, -8.9704990386962891e-05,
- -3.0171871185302734e-04}, /* L328 */
-{1.7914935350418091e+00, 3.5136938095092773e-05,
- 1.1920928955078125e-07, -1.8537044525146484e-05,
- 1.6927719116210938e-05}, /* L329 */
-{1.6029061079025269e+00, 3.1530857086181641e-05,
- 1.1920928955078125e-07, -5.2988529205322266e-05,
- -3.4034252166748047e-05}, /* L330 */
-{1.3054974079132080e+00, 2.5756657123565674e-05,
- 1.1920928955078125e-07, -3.2186508178710938e-06,
- 9.5367431640625000e-07}, /* L331 */
-{1.2891563177108765e+00, 2.5510787963867188e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 3.8146972656250000e-06}, /* L332 */
-{1.9777437448501587e+00, 3.9257109165191650e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-05,
- 3.5405158996582031e-05}, /* L333 */
-{1.0754090547561646e+00, 2.1412968635559082e-05,
- 1.1920928955078125e-07, -7.0691108703613281e-05,
- -1.1682510375976562e-05}, /* L334 */
-{1.6380463838577271e+00, 3.2722949981689453e-05,
- 1.1920928955078125e-07, 1.6009807586669922e-04,
- 6.4611434936523438e-05}, /* L335 */
-{1.0237989425659180e+00, 2.0503997802734375e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -2.5629997253417969e-06}, /* L336 */
-{1.3438527584075928e+00, 2.7000904083251953e-05,
- 1.1920928955078125e-07, 5.6266784667968750e-05,
- -9.5903873443603516e-05}, /* L337 */
-{1.1893464326858521e+00, 2.3961067199707031e-05,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- -1.7881393432617188e-06}, /* L338 */
-{1.6865068674087524e+00, 3.4078955650329590e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- 1.7762184143066406e-05}, /* L339 */
-{1.4202225208282471e+00, 2.8789043426513672e-05,
- 1.1920928955078125e-07, 4.4941902160644531e-05,
- 8.6188316345214844e-05}, /* L340 */
-{1.1685823202133179e+00, 2.3752450942993164e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 3.6954879760742188e-06}, /* L341 */
-{1.1899894475936890e+00, 2.4259090423583984e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-05,
- -1.7881393432617188e-07}, /* L342 */
-{1.4269918203353882e+00, 2.9174610972404480e-05,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.6450881958007812e-05}, /* L343 */
-{1.2600743770599365e+00, 2.5838613510131836e-05,
- 1.1920928955078125e-07, -4.8279762268066406e-05,
- 1.4662742614746094e-05}, /* L344 */
-{1.6849216222763062e+00, 3.4648925065994263e-05,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- 7.6293945312500000e-06}, /* L345 */
-{1.2492109537124634e+00, 2.5764107704162598e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 3.9339065551757812e-05}, /* L346 */
-{1.3007651567459106e+00, 2.6911497116088867e-05,
- 1.1920928955078125e-07, -3.7968158721923828e-05,
- 2.9802322387695312e-05}, /* L347 */
-{1.2252357006072998e+00, 2.5421380996704102e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- -9.1791152954101562e-05}, /* L348 */
-{1.4884828329086304e+00, 3.0964612960815430e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- 2.2888183593750000e-05}, /* L349 */
-{1.5442473888397217e+00, 3.2216310501098633e-05,
- 1.1920928955078125e-07, -8.8214874267578125e-06,
- 2.1815299987792969e-05}, /* L350 */
-{1.1410002708435059e+00, 2.3871660232543945e-05,
- 1.1920928955078125e-07, 6.1988830566406250e-06,
- 1.1920928955078125e-06}, /* L351 */
-{9.5584797859191895e-01, 2.0056962966918945e-05,
- 1.1920928955078125e-07, -1.0251998901367188e-05,
- 4.6610832214355469e-05}, /* L352 */
-{1.3552874326705933e+00, 2.8520822525024414e-05,
- 1.1920928955078125e-07, 7.5459480285644531e-05,
- 9.7632408142089844e-05}, /* L353 */
-{1.2881040573120117e+00, 2.7179718017578125e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -1.7225742340087891e-05}, /* L354 */
-{1.3254534006118774e+00, 2.8058886528015137e-05,
- 1.1920928955078125e-07, 6.2465667724609375e-05,
- 4.4846534729003906e-04}, /* L355 */
-{1.0923426151275635e+00, 2.3186206817626953e-05,
- 1.1920928955078125e-07, -1.2391805648803711e-04,
- -3.4809112548828125e-05}, /* L356 */
-{1.5097956657409668e+00, 3.2126903533935547e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 2.0861625671386719e-05}, /* L357 */
-{1.3979942798614502e+00, 2.9832124710083008e-05,
- 1.1920928955078125e-07, -1.1742115020751953e-05,
- -1.2516975402832031e-06}, /* L358 */
-{1.3272609710693359e+00, 2.8401613235473633e-05,
- 1.1920928955078125e-07, -1.8000602722167969e-05,
- -1.2636184692382812e-05}, /* L359 */
-{1.2999900579452515e+00, 2.7894973754882812e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -4.8279762268066406e-06}, /* L360 */
-{1.3176841735839844e+00, 2.8353184461593628e-05,
- 1.1920928955078125e-07, -5.7220458984375000e-06,
- 9.6559524536132812e-06}, /* L361 */
-{1.3704626560211182e+00, 2.9571354389190674e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- -1.2397766113281250e-05}, /* L362 */
-{1.4283615350723267e+00, 3.0905008316040039e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- 8.4638595581054688e-06}, /* L363 */
-{1.2640043497085571e+00, 2.7425587177276611e-05,
- 1.1920928955078125e-07, -1.7821788787841797e-05,
- 2.1576881408691406e-05}, /* L364 */
-{1.6780076026916504e+00, 3.6507844924926758e-05,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- 1.3589859008789062e-05}, /* L365 */
-{1.2062554359436035e+00, 2.6315450668334961e-05,
- 1.1920928955078125e-07, -7.8082084655761719e-06,
- -8.7022781372070312e-06}, /* L366 */
-{1.9282305240631104e+00, 4.2181462049484253e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 3.6001205444335938e-05}, /* L367 */
-{1.2560775279998779e+00, 2.7552247047424316e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- 1.0848045349121094e-05}, /* L368 */
-{1.9742250442504883e+00, 4.3421983718872070e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 1.5735626220703125e-05}, /* L369 */
-{1.4162014722824097e+00, 3.1232833862304688e-05,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -1.1324882507324219e-06}, /* L370 */
-{1.5022866725921631e+00, 3.3222138881683350e-05,
- 1.1920928955078125e-07, -2.6583671569824219e-05,
- 2.5629997253417969e-05}, /* L371 */
-{1.1968847513198853e+00, 2.6538968086242676e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-05,
- -1.9490718841552734e-05}, /* L372 */
-{1.5100426673889160e+00, 3.3576041460037231e-05,
- 1.1920928955078125e-07, -2.6404857635498047e-05,
- -3.8921833038330078e-05}, /* L373 */
-{1.2461898326873779e+00, 2.7835369110107422e-05,
- 1.1920928955078125e-07, 1.0279417037963867e-03,
- 9.9289417266845703e-04}, /* L374 */
-{1.7959520816802979e+00, 4.0143728256225586e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 3.0875205993652344e-05}, /* L375 */
-{1.2488454580307007e+00, 2.7989735826849937e-05,
- 1.1920928955078125e-07, 6.6399574279785156e-05,
- 1.0132789611816406e-05}, /* L376 */
-{1.7625216245651245e+00, 3.9607286453247070e-05,
- 1.1920928955078125e-07, -3.0398368835449219e-06,
- -3.1590461730957031e-06}, /* L377 */
-{1.6728717088699341e+00, 3.7699937820434570e-05,
- 1.1920928955078125e-07, 6.4492225646972656e-05,
- -1.3709068298339844e-05}, /* L378 */
-{1.2689545154571533e+00, 2.8669834136962891e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-05,
- 4.1127204895019531e-05}, /* L379 */
-{1.1420682668685913e+00, 2.5868415832519531e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- 7.7486038208007812e-06}, /* L380 */
-{1.4067704677581787e+00, 3.1948089599609375e-05,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- -9.4771385192871094e-06}, /* L381 */
-{1.6318453550338745e+00, 3.7163496017456055e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -5.3465366363525391e-05}, /* L382 */
-{1.5560289621353149e+00, 3.5524368286132812e-05,
- 1.1920928955078125e-07, 1.9669532775878906e-05,
- -6.6757202148437500e-06}, /* L383 */
-{1.5168067216873169e+00, 3.4719705581665039e-05,
- 1.1920928955078125e-07, -4.8160552978515625e-05,
- 9.1791152954101562e-06}, /* L384 */
-{1.6538457870483398e+00, 3.7953257560729980e-05,
- 1.1920928955078125e-07, -6.3180923461914062e-06,
- 1.2040138244628906e-05}, /* L385 */
-{1.3364614248275757e+00, 3.0755996704101562e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-05,
- 1.0728836059570312e-04}, /* L386 */
-{1.4924982786178589e+00, 3.4429132938385010e-05,
- 1.1920928955078125e-07, -3.3378601074218750e-05,
- -5.6028366088867188e-06}, /* L387 */
-{1.1835141181945801e+00, 2.7373433113098145e-05,
- 1.1920928955078125e-07, -2.3663043975830078e-05,
- 4.7445297241210938e-05}, /* L388 */
-{1.4318392276763916e+00, 3.3199787139892578e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- -1.1503696441650391e-05}, /* L389 */
-{1.4627364873886108e+00, 3.4004449844360352e-05,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- -1.5676021575927734e-05}, /* L390 */
-{2.0462808609008789e+00, 4.7691166400909424e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- 4.5299530029296875e-06}, /* L391 */
-{1.2629046440124512e+00, 2.9511749744415283e-05,
- 1.1920928955078125e-07, -3.3020973205566406e-05,
- 7.3909759521484375e-05}, /* L392 */
-{1.7976472377777100e+00, 4.2110681533813477e-05,
- 1.1920928955078125e-07, -9.4175338745117188e-06,
- -8.3446502685546875e-07}, /* L393 */
-{1.5386162996292114e+00, 3.6135315895080566e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -4.2557716369628906e-05}, /* L394 */
-{2.2664372920989990e+00, 5.3405761718750000e-05,
- 1.1920928955078125e-07, -1.4364719390869141e-04,
- 9.9301338195800781e-05}, /* L395 */
-{1.2558653354644775e+00, 2.9653310775756836e-05,
- 1.1920928955078125e-07, -1.0561943054199219e-04,
- 9.0837478637695312e-05}, /* L396 */
-{1.5204144716262817e+00, 3.5978853702545166e-05,
- 1.1920928955078125e-07, -2.0861625671386719e-06,
- -2.8610229492187500e-05}, /* L397 */
-{1.1984574794769287e+00, 2.8431415557861328e-05,
- 1.1920928955078125e-07, -8.2850456237792969e-06,
- 4.1723251342773438e-06}, /* L398 */
-{2.2954206466674805e+00, 5.4597854614257812e-05,
- 1.1920928955078125e-07, 1.6093254089355469e-05,
- 1.9073486328125000e-05}, /* L399 */
-{1.2571635246276855e+00, 2.9973685741424561e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -7.5697898864746094e-06}, /* L400 */
-{1.3275840282440186e+00, 3.1732022762298584e-05,
- 1.1920928955078125e-07, 2.8848648071289062e-05,
- -1.9133090972900391e-05}, /* L401 */
-{1.1007200479507446e+00, 2.6375055313110352e-05,
- 1.1920928955078125e-07, -1.5795230865478516e-05,
- -1.4662742614746094e-05}, /* L402 */
-{1.9524987936019897e+00, 4.6901404857635498e-05,
- 1.1920928955078125e-07, -1.8477439880371094e-06,
- 3.3378601074218750e-06}, /* L403 */
-{2.2134304046630859e+00, 5.3301453590393066e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- 6.7949295043945312e-06}, /* L404 */
-{1.8413017988204956e+00, 4.4450163841247559e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -2.1457672119140625e-05}, /* L405 */
-{1.7917413711547852e+00, 4.3361207644920796e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-06,
- -1.9788742065429688e-05}, /* L406 */
-{1.6129521131515503e+00, 3.9130449295043945e-05,
- 1.1920928955078125e-07, -2.6524066925048828e-05,
- -1.5437602996826172e-05}, /* L407 */
-{1.2504223585128784e+00, 3.0413269996643066e-05,
- 1.1920928955078125e-07, 1.2636184692382812e-05,
- -8.0466270446777344e-06}, /* L408 */
-{1.6595177650451660e+00, 4.0471553802490234e-05,
- 1.1920928955078125e-07, 1.1837482452392578e-04,
- 9.8586082458496094e-05}, /* L409 */
-{1.7162094116210938e+00, 4.1961669921875000e-05,
- 1.1920928955078125e-07, -9.0301036834716797e-05,
- 5.9604644775390625e-06}, /* L410 */
-{1.8794951438903809e+00, 4.6044588088989258e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 1.3947486877441406e-05}, /* L411 */
-{1.3858747482299805e+00, 3.4034252166748047e-05,
- 1.1920928955078125e-07, -7.7486038208007812e-06,
- 2.6106834411621094e-05}, /* L412 */
-{1.4287726879119873e+00, 3.5174190998077393e-05,
- 1.1920928955078125e-07, -3.4511089324951172e-05,
- 3.4093856811523438e-05}, /* L413 */
-{1.5603183507919312e+00, 3.8504600524902344e-05,
- 1.1920928955078125e-07, -1.8298625946044922e-05,
- -1.1920928955078125e-06}, /* L414 */
-{1.2563947439193726e+00, 3.1083822250366211e-05,
- 1.1920928955078125e-07, -8.8214874267578125e-06,
- 1.9192695617675781e-05}, /* L415 */
-{1.3610508441925049e+00, 3.3751130104064941e-05,
- 1.1920928955078125e-07, 5.1021575927734375e-05,
- -6.9141387939453125e-06}, /* L416 */
-{1.4827507734298706e+00, 3.6858022212982178e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- -6.6936016082763672e-05}, /* L417 */
-{1.5067100524902344e+00, 3.7580728530883789e-05,
- 1.1920928955078125e-07, -2.8544664382934570e-04,
- -3.0338764190673828e-05}, /* L418 */
-{1.7887336015701294e+00, 4.4673681259155273e-05,
- 1.1920928955078125e-07, -9.5367431640625000e-06,
- 3.1232833862304688e-05}, /* L419 */
-{1.0475878715515137e+00, 2.6226043701171875e-05,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- 2.5033950805664062e-06}, /* L420 */
-{1.3490215539932251e+00, 3.3855438232421875e-05,
- 1.1920928955078125e-07, -6.7770481109619141e-05,
- -1.8417835235595703e-05}, /* L421 */
-{1.3222026824951172e+00, 3.3259391784667969e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- -1.9133090972900391e-05}, /* L422 */
-{1.7717125415802002e+00, 4.4673681259155273e-05,
- 1.1920928955078125e-07, -4.5180320739746094e-05,
- 6.9141387939453125e-06}, /* L423 */
-{1.3890916109085083e+00, 3.5107135772705078e-05,
- 1.1920928955078125e-07, 3.2544136047363281e-05,
- 1.4901161193847656e-05}, /* L424 */
-{1.6599396467208862e+00, 4.2051076889038086e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-05,
- 2.2888183593750000e-05}, /* L425 */
-{1.4423512220382690e+00, 3.6627054214477539e-05,
- 1.1920928955078125e-07, -5.0902366638183594e-05,
- -6.2346458435058594e-05}, /* L426 */
-{1.8418909311294556e+00, 4.6879053115844727e-05,
- 1.1920928955078125e-07, -9.5963478088378906e-06,
- -3.5762786865234375e-07}, /* L427 */
-{1.5969265699386597e+00, 4.0739774703979492e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 4.0531158447265625e-06}, /* L428 */
-{1.5325897932052612e+00, 3.9249658584594727e-05,
- 1.1920928955078125e-07, -2.7889013290405273e-04,
- -5.0425529479980469e-05}, /* L429 */
-{1.4892181158065796e+00, 3.8169324398040771e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-06,
- -9.9539756774902344e-06}, /* L430 */
-{1.6298453807830811e+00, 4.1872262954711914e-05,
- 1.1920928955078125e-07, -1.1205673217773438e-05,
- 1.0609626770019531e-05}, /* L431 */
-{1.2001925706863403e+00, 3.0905008316040039e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 2.0265579223632812e-06}, /* L432 */
-{1.6309007406234741e+00, 4.2110681533813477e-05,
- 1.1920928955078125e-07, -8.5413455963134766e-05,
- 5.2213668823242188e-05}, /* L433 */
-{1.5586800575256348e+00, 4.0322542190551758e-05,
- 1.1920928955078125e-07, -1.0192394256591797e-05,
- -3.7848949432373047e-05}, /* L434 */
-{1.7262604236602783e+00, 4.4763088226318359e-05,
- 1.1920928955078125e-07, 3.6120414733886719e-05,
- 2.1100044250488281e-05}, /* L435 */
-{1.1300497055053711e+00, 2.9370188713073730e-05,
- 1.1920928955078125e-07, -3.9458274841308594e-05,
- -4.2319297790527344e-06}, /* L436 */
-{1.6024870872497559e+00, 4.1753053665161133e-05,
- 1.1920928955078125e-07, 6.6399574279785156e-05,
- -7.4267387390136719e-05}, /* L437 */
-{1.1399281024932861e+00, 2.9761344194412231e-05,
- 1.1920928955078125e-07, 5.5313110351562500e-05,
- 1.7046928405761719e-05}, /* L438 */
-{1.8358709812164307e+00, 4.8041343688964844e-05,
- 1.1920928955078125e-07, -1.0907649993896484e-05,
- 2.1457672119140625e-05}, /* L439 */
-{1.0305653810501099e+00, 2.7030706405639648e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-05,
- -6.5565109252929688e-07}, /* L440 */
-{1.7417738437652588e+00, 4.5790802687406540e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- 5.5551528930664062e-05}, /* L441 */
-{1.0972405672073364e+00, 2.8908252716064453e-05,
- 1.1920928955078125e-07, -1.5139579772949219e-05,
- 5.9604644775390625e-07}, /* L442 */
-{1.4807647466659546e+00, 3.9100646972656250e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- -1.4841556549072266e-05}, /* L443 */
-{1.4193629026412964e+00, 3.7565827369689941e-05,
- 1.1920928955078125e-07, -1.0311603546142578e-05,
- -1.2874603271484375e-05}, /* L444 */
-{1.4696013927459717e+00, 3.8981437683105469e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -4.6491622924804688e-06}, /* L445 */
-{1.1602810621261597e+00, 3.0845403671264648e-05,
- 1.1920928955078125e-07, -4.8279762268066406e-06,
- -1.5139579772949219e-05}, /* L446 */
-{1.7470524311065674e+00, 4.6551227569580078e-05,
- 1.1920928955078125e-07, 6.4373016357421875e-05,
- -2.1517276763916016e-05}, /* L447 */
-{1.2574751377105713e+00, 3.3579766750335693e-05,
- 1.1920928955078125e-07, -1.2695789337158203e-05,
- -1.0132789611816406e-06}, /* L448 */
-{1.6156847476959229e+00, 4.3243169784545898e-05,
- 1.1920928955078125e-07, 4.9352645874023438e-05,
- 3.6716461181640625e-05}, /* L449 */
-{1.4549411535263062e+00, 3.9026141166687012e-05,
- 1.1920928955078125e-07, -1.9013881683349609e-05,
- -6.4373016357421875e-06}, /* L450 */
-{1.8678801059722900e+00, 5.0216913223266602e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -3.2782554626464844e-05}, /* L451 */
-{1.4219750165939331e+00, 3.8310885429382324e-05,
- 1.1920928955078125e-07, -1.2218952178955078e-05,
- 1.6093254089355469e-05}, /* L452 */
-{1.5992830991744995e+00, 4.3183565139770508e-05,
- 1.1920928955078125e-07, -8.2850456237792969e-06,
- -3.9935111999511719e-06}, /* L453 */
-{1.6199494600296021e+00, 4.3839216232299805e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-06,
- -1.2874603271484375e-05}, /* L454 */
-{1.5745905637741089e+00, 4.2706727981567383e-05,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- 1.8000602722167969e-05}, /* L455 */
-{1.1753010749816895e+00, 3.1948089599609375e-05,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- -1.5377998352050781e-05}, /* L456 */
-{1.7690252065658569e+00, 4.8190355300903320e-05,
- 1.1920928955078125e-07, -1.4483928680419922e-05,
- 5.3644180297851562e-05}, /* L457 */
-{1.5956801176071167e+00, 4.3570995330810547e-05,
- 1.1920928955078125e-07, 3.9815902709960938e-05,
- 3.9339065551757812e-05}, /* L458 */
-{1.8886152505874634e+00, 5.1677227020263672e-05,
- 1.1920928955078125e-07, -7.2300434112548828e-05,
- -5.1081180572509766e-05}, /* L459 */
-{1.3969876766204834e+00, 3.8318336009979248e-05,
- 1.1920928955078125e-07, -1.8531084060668945e-04,
- 4.0888786315917969e-05}, /* L460 */
-{1.3370511531829834e+00, 3.6744400858879089e-05,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- 1.6212463378906250e-05}, /* L461 */
-{1.4320607185363770e+00, 3.9443373680114746e-05,
- 1.1920928955078125e-07, 3.8862228393554688e-05,
- 6.6637992858886719e-05}, /* L462 */
-{2.2921895980834961e+00, 6.3270330429077148e-05,
- 1.1920928955078125e-07, -7.0929527282714844e-06,
- 8.3446502685546875e-07}, /* L463 */
-{1.1130424737930298e+00, 3.0785799026489258e-05,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- 1.5497207641601562e-05}, /* L464 */
-{1.4278841018676758e+00, 3.9577484130859375e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -2.6226043701171875e-06}, /* L465 */
-{1.7343291044235229e+00, 4.8175454139709473e-05,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- 3.4093856811523438e-05}, /* L466 */
-{2.4806241989135742e+00, 6.9051980972290039e-05,
- 1.1920928955078125e-07, -2.1874904632568359e-05,
- 2.0265579223632812e-06}, /* L467 */
-{1.6438926458358765e+00, 4.5888125896453857e-05,
- 1.1920928955078125e-07, -1.3399124145507812e-04,
- 2.3162364959716797e-04}, /* L468 */
-{1.5724657773971558e+00, 4.3958425521850586e-05,
- 1.1920928955078125e-07, -4.4107437133789062e-06,
- 1.1920928955078125e-06}, /* L469 */
-{1.3914444446563721e+00, 3.8981437683105469e-05,
- 1.1920928955078125e-07, -2.7477741241455078e-05,
- -5.9008598327636719e-06}, /* L470 */
-{2.3901672363281250e+00, 6.7353248596191406e-05,
- 1.1920928955078125e-07, -1.0963082313537598e-03,
- 3.8480758666992188e-04}, /* L471 */
-{1.3177707195281982e+00, 3.7074089050292969e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -6.5565109252929688e-07}, /* L472 */
-{1.8872016668319702e+00, 5.3226947784423828e-05,
- 1.1920928955078125e-07, 1.2218952178955078e-04,
- -8.6605548858642578e-05}, /* L473 */
-{1.6083530187606812e+00, 4.5448541641235352e-05,
- 1.1920928955078125e-07, -4.8160552978515625e-05,
- -5.7876110076904297e-05}, /* L474 */
-{2.2076330184936523e+00, 6.2549486756324768e-05,
- 1.1920928955078125e-07, 3.2305717468261719e-05,
- -8.5949897766113281e-05}, /* L475 */
-{1.8506500720977783e+00, 5.2511692047119141e-05,
- 1.1920928955078125e-07, -1.7583370208740234e-05,
- 4.9829483032226562e-05}, /* L476 */
-{1.5563946962356567e+00, 4.4254586100578308e-05,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 2.2292137145996094e-05}, /* L477 */
-{1.4549467563629150e+00, 4.1455030441284180e-05,
- 1.1920928955078125e-07, -1.4364719390869141e-05,
- 9.6559524536132812e-06}, /* L478 */
-{1.6001528501510620e+00, 4.5686960220336914e-05,
- 1.1920928955078125e-07, -1.2993812561035156e-05,
- 7.9870223999023438e-06}, /* L479 */
-{1.2010136842727661e+00, 3.4362077713012695e-05,
- 1.1920928955078125e-07, -9.2983245849609375e-06,
- 2.8133392333984375e-05}, /* L480 */
-{2.1443805694580078e+00, 6.1499886214733124e-05,
- 1.1920928955078125e-07, 2.1731853485107422e-04,
- -2.4747848510742188e-04}, /* L481 */
-{1.4334194660186768e+00, 4.1186809539794922e-05,
- 1.1920928955078125e-07, -2.3424625396728516e-05,
- -3.8385391235351562e-05}, /* L482 */
-{2.8533124923706055e+00, 8.2150101661682129e-05,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- -1.9669532775878906e-05}, /* L483 */
-{1.6138882637023926e+00, 4.6559609472751617e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 5.7220458984375000e-06}, /* L484 */
-{1.7997946739196777e+00, 5.2034854888916016e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 2.8610229492187500e-06}, /* L485 */
-{1.7252374887466431e+00, 4.9978494644165039e-05,
- 1.1920928955078125e-07, -1.5437602996826172e-05,
- -8.3446502685546875e-07}, /* L486 */
-{1.7646968364715576e+00, 5.1230192184448242e-05,
- 1.1920928955078125e-07, -1.3649463653564453e-05,
- 5.0067901611328125e-06}, /* L487 */
-{1.2334110736846924e+00, 3.5881996154785156e-05,
- 1.1920928955078125e-07, 1.3983249664306641e-04,
- -1.0550022125244141e-04}, /* L488 */
-{1.6880025863647461e+00, 4.9203634262084961e-05,
- 1.1920928955078125e-07, -4.3094158172607422e-05,
- -4.7862529754638672e-05}, /* L489 */
-{1.4370882511138916e+00, 4.1976571083068848e-05,
- 1.1920928955078125e-07, 4.5657157897949219e-05,
- 4.4226646423339844e-05}, /* L490 */
-{1.9714584350585938e+00, 5.7697296142578125e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- 1.3113021850585938e-06}, /* L491 */
-{1.2537192106246948e+00, 3.6790966987609863e-05,
- 1.1920928955078125e-07, -4.5514106750488281e-04,
- 1.9037723541259766e-04}, /* L492 */
-{1.8851481676101685e+00, 5.5402517318725586e-05,
- 1.1920928955078125e-07, 2.5749206542968750e-05,
- -4.3511390686035156e-06}, /* L493 */
-{1.2934750318527222e+00, 3.8087368011474609e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -1.2993812561035156e-05}, /* L494 */
-{1.4321814775466919e+00, 4.2259693145751953e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- -3.3974647521972656e-06}, /* L495 */
-{1.6027979850769043e+00, 4.7385692596435547e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -8.7618827819824219e-06}, /* L496 */
-{3.0003693103790283e+00, 8.8885426521301270e-05,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- 2.3841857910156250e-06}, /* L497 */
-{1.5569820404052734e+00, 4.6223402023315430e-05,
- 1.1920928955078125e-07, -2.3782253265380859e-05,
- -7.6353549957275391e-05}, /* L498 */
-{1.8373512029647827e+00, 5.4657459259033203e-05,
- 1.1920928955078125e-07, -1.0550022125244141e-05,
- 9.4175338745117188e-06}, /* L499 */
-{1.4299178123474121e+00, 4.2617321014404297e-05,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- -4.6491622924804688e-06}, /* L500 */
-{1.9237428903579712e+00, 5.7458877563476562e-05,
- 1.1920928955078125e-07, -1.2332201004028320e-04,
- 8.7618827819824219e-05}, /* L501 */
-{1.8328363895416260e+00, 5.4866075515747070e-05,
- 1.1920928955078125e-07, -3.3974647521972656e-06,
- 1.0097026824951172e-04}, /* L502 */
-{1.6703130006790161e+00, 5.0157308578491211e-05,
- 1.1920928955078125e-07, 9.1195106506347656e-04,
- 9.8586082458496094e-05}, /* L503 */
-{1.5158171653747559e+00, 4.5537948608398438e-05,
- 1.1920928955078125e-07, -1.5616416931152344e-05,
- -9.5963478088378906e-06}, /* L504 */
-{1.6176810264587402e+00, 4.8696994781494141e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 5.4597854614257812e-05}, /* L505 */
-{1.8684779405593872e+00, 5.6356191635131836e-05,
- 1.1920928955078125e-07, 2.7656555175781250e-05,
- -3.4570693969726562e-06}, /* L506 */
-{1.5661144256591797e+00, 4.7355890274047852e-05,
- 1.1920928955078125e-07, 3.8778781890869141e-04,
- 1.7845630645751953e-04}, /* L507 */
-{1.3048337697982788e+00, 3.9517879486083984e-05,
- 1.1920928955078125e-07, -1.2242794036865234e-04,
- 1.6045570373535156e-04}, /* L508 */
-{1.8189114332199097e+00, 5.5193901062011719e-05,
- 1.1920928955078125e-07, -7.2300434112548828e-05,
- 1.2993812561035156e-05}, /* L509 */
-{1.5116339921951294e+00, 4.5955181121826172e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-05,
- -1.3053417205810547e-05}, /* L510 */
-{1.8814285993576050e+00, 5.7306140661239624e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 2.0265579223632812e-06}, /* L511 */
-{1.1708426475524902e+00, 3.5732984542846680e-05,
- 1.1920928955078125e-07, -2.4139881134033203e-05,
- -4.3511390686035156e-06}, /* L512 */
-{2.1120026111602783e+00, 6.4596533775329590e-05,
- 1.1920928955078125e-07, -8.6009502410888672e-05,
- 1.8239021301269531e-05}, /* L513 */
-{1.4439603090286255e+00, 4.4241547584533691e-05,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- 2.5033950805664062e-06}, /* L514 */
-{1.5979857444763184e+00, 4.9054622650146484e-05,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- -1.5735626220703125e-05}, /* L515 */
-{1.2933988571166992e+00, 3.9786100387573242e-05,
- 1.1920928955078125e-07, -1.3291835784912109e-05,
- 4.7206878662109375e-05}, /* L516 */
-{1.7539733648300171e+00, 5.4076313972473145e-05,
- 1.1920928955078125e-07, -3.2663345336914062e-05,
- -1.1920928955078125e-06}, /* L517 */
-{1.6794239282608032e+00, 5.1856040954589844e-05,
- 1.1920928955078125e-07, 5.4597854614257812e-05,
- -4.0531158447265625e-06}, /* L518 */
-{2.3837478160858154e+00, 7.3775649070739746e-05,
- 1.1920928955078125e-07, -4.6193599700927734e-05,
- 7.4863433837890625e-05}, /* L519 */
-{1.7228910923004150e+00, 5.3405761718750000e-05,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- -1.6391277313232422e-05}, /* L520 */
-{1.7798842191696167e+00, 5.5283308029174805e-05,
- 1.1920928955078125e-07, 3.2067298889160156e-05,
- 4.7683715820312500e-06}, /* L521 */
-{1.5915207862854004e+00, 4.9531459808349609e-05,
- 1.1920928955078125e-07, -5.1856040954589844e-05,
- -7.9512596130371094e-05}, /* L522 */
-{1.5825732946395874e+00, 4.9337744712829590e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-05,
- -2.8729438781738281e-05}, /* L523 */
-{1.7380429506301880e+00, 5.4299831390380859e-05,
- 1.1920928955078125e-07, 1.1587142944335938e-04,
- -3.6716461181640625e-05}, /* L524 */
-{1.9938094615936279e+00, 6.2409788370132446e-05,
- 1.1920928955078125e-07, 6.9856643676757812e-05,
- 9.8228454589843750e-05}, /* L525 */
-{1.4180817604064941e+00, 4.4465065002441406e-05,
- 1.1920928955078125e-07, -1.3649463653564453e-05,
- -1.7881393432617188e-05}, /* L526 */
-{2.1375603675842285e+00, 6.7159533500671387e-05,
- 1.1920928955078125e-07, 3.6358833312988281e-05,
- 3.9577484130859375e-05}, /* L527 */
-{1.1469631195068359e+00, 3.6105513572692871e-05,
- 1.1920928955078125e-07, -6.1571598052978516e-05,
- -9.8764896392822266e-05}, /* L528 */
-{1.9883217811584473e+00, 6.2696635723114014e-05,
- 1.1920928955078125e-07, 2.0980834960937500e-05,
- -3.1352043151855469e-05}, /* L529 */
-{1.3770192861557007e+00, 4.3541193008422852e-05,
- 1.1920928955078125e-07, 3.8874149322509766e-04,
- 6.5863132476806641e-04}, /* L530 */
-{2.2058985233306885e+00, 6.9886445999145508e-05,
- 1.1920928955078125e-07, 5.4121017456054688e-04,
- 4.1151046752929688e-04}, /* L531 */
-{1.5841102600097656e+00, 5.0246715545654297e-05,
- 1.1920928955078125e-07, -4.6610832214355469e-05,
- 2.3126602172851562e-05}, /* L532 */
-{2.0857522487640381e+00, 6.6280364990234375e-05,
- 1.1920928955078125e-07, -1.8715858459472656e-04,
- -6.5505504608154297e-05}, /* L533 */
-{1.6262593269348145e+00, 5.1766633987426758e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -1.8477439880371094e-06}, /* L534 */
-{2.2844505310058594e+00, 7.2896480560302734e-05,
- 1.1920928955078125e-07, -2.1517276763916016e-04,
- -4.7028064727783203e-05}, /* L535 */
-{1.3622577190399170e+00, 4.3522566556930542e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.5497207641601562e-06}, /* L536 */
-{2.4697813987731934e+00, 7.9214572906494141e-05,
- 1.1920928955078125e-07, -4.0233135223388672e-04,
- 4.6169757843017578e-04}, /* L537 */
-{1.7712352275848389e+00, 5.6803226470947266e-05,
- 1.1920928955078125e-07, -2.3365020751953125e-05,
- 1.8239021301269531e-05}, /* L538 */
-{2.0681781768798828e+00, 6.6451728343963623e-05,
- 1.1920928955078125e-07, -4.3928623199462891e-05,
- 2.8014183044433594e-05}, /* L539 */
-{1.2740193605422974e+00, 4.1007995605468750e-05,
- 1.1920928955078125e-07, -1.0609626770019531e-05,
- 5.3644180297851562e-06}, /* L540 */
-{1.8242794275283813e+00, 5.8829784393310547e-05,
- 1.1920928955078125e-07, 8.7022781372070312e-06,
- 2.5391578674316406e-05}, /* L541 */
-{1.8801038265228271e+00, 6.0742720961570740e-05,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- -2.3841857910156250e-07}, /* L542 */
-{2.4890363216400146e+00, 8.0674886703491211e-05,
- 1.1920928955078125e-07, -4.7230720520019531e-04,
- 4.3690204620361328e-04}, /* L543 */
-{1.1174294948577881e+00, 3.6299228668212891e-05,
- 1.1920928955078125e-07, -1.0230541229248047e-03,
- 4.7206878662109375e-04}, /* L544 */
-{1.5127042531967163e+00, 4.9144029617309570e-05,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- 6.7353248596191406e-05}, /* L545 */
-{1.6661460399627686e+00, 5.4225325584411621e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -1.8477439880371094e-06}, /* L546 */
-{2.5797529220581055e+00, 8.4117054939270020e-05,
- 1.1920928955078125e-07, -2.6524066925048828e-05,
- -6.4969062805175781e-06}, /* L547 */
-{1.3775646686553955e+00, 4.5001506805419922e-05,
- 1.1920928955078125e-07, -9.6559524536132812e-06,
- 1.4662742614746094e-05}, /* L548 */
-{1.7886276245117188e+00, 5.8531761169433594e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- 3.0994415283203125e-06}, /* L549 */
-{1.4162484407424927e+00, 4.6432018280029297e-05,
- 1.1920928955078125e-07, -4.0888786315917969e-05,
- -3.1590461730957031e-06}, /* L550 */
-{1.8445827960968018e+00, 6.0588121414184570e-05,
- 1.1920928955078125e-07, 4.1961669921875000e-05,
- -8.1956386566162109e-05}, /* L551 */
-{1.3449997901916504e+00, 4.4263899326324463e-05,
- 1.1920928955078125e-07, -5.9127807617187500e-05,
- 1.3303756713867188e-04}, /* L552 */
-{2.3620522022247314e+00, 7.7892094850540161e-05,
- 1.1920928955078125e-07, 1.3196468353271484e-04,
- 7.8916549682617188e-05}, /* L553 */
-{2.5797550678253174e+00, 8.5189938545227051e-05,
- 1.1920928955078125e-07, -1.9371509552001953e-05,
- -2.2232532501220703e-05}, /* L554 */
-{1.7089160680770874e+00, 5.6564807891845703e-05,
- 1.1920928955078125e-07, -2.0903348922729492e-04,
- -3.6537647247314453e-04}, /* L555 */
-{1.8557699918746948e+00, 6.1511993408203125e-05,
- 1.1920928955078125e-07, -5.6624412536621094e-06,
- 8.7022781372070312e-06}, /* L556 */
-{1.9441162347793579e+00, 6.4555555582046509e-05,
- 1.1920928955078125e-07, -7.8499317169189453e-05,
- -5.3644180297851562e-07}, /* L557 */
-{1.5616192817687988e+00, 5.1952898502349854e-05,
- 1.1920928955078125e-07, 6.0558319091796875e-05,
- -4.9710273742675781e-05}, /* L558 */
-{1.9501540660858154e+00, 6.4983963966369629e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 8.2254409790039062e-06}, /* L559 */
-{1.3543711900711060e+00, 4.5210123062133789e-05,
- 1.1920928955078125e-07, 6.6041946411132812e-05,
- 5.4240226745605469e-05}, /* L560 */
-{1.4063452482223511e+00, 4.7028064727783203e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 1.6689300537109375e-06}, /* L561 */
-{1.8284765481948853e+00, 6.1258673667907715e-05,
- 1.1920928955078125e-07, -2.7716159820556641e-05,
- 8.4400177001953125e-05}, /* L562 */
-{1.9891018867492676e+00, 6.6757202148437500e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- 2.0503997802734375e-05}, /* L563 */
-{1.2601511478424072e+00, 4.2386353015899658e-05,
- 1.1920928955078125e-07, 6.8187713623046875e-05,
- 2.0551681518554688e-04}, /* L564 */
-{2.6328744888305664e+00, 8.8691711425781250e-05,
- 1.1920928955078125e-07, -1.8954277038574219e-05,
- 1.1801719665527344e-05}, /* L565 */
-{1.2064138650894165e+00, 4.0724873542785645e-05,
- 1.1920928955078125e-07, -4.4703483581542969e-05,
- -1.0871887207031250e-04}, /* L566 */
-{1.9801102876663208e+00, 6.6939741373062134e-05,
- 1.1920928955078125e-07, -1.5854835510253906e-05,
- -9.4771385192871094e-06}, /* L567 */
-{1.6323660612106323e+00, 5.5268406867980957e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- 1.9311904907226562e-05}, /* L568 */
-{2.1949086189270020e+00, 7.4453651905059814e-05,
- 1.1920928955078125e-07, -3.3736228942871094e-05,
- 3.7312507629394531e-05}, /* L569 */
-{1.5454908609390259e+00, 5.2511692047119141e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-05,
- -4.9471855163574219e-06}, /* L570 */
-{1.8847308158874512e+00, 6.4156949520111084e-05,
- 1.1920928955078125e-07, 2.3365020751953125e-05,
- 3.7670135498046875e-05}, /* L571 */
-{1.4583042860031128e+00, 4.9725174903869629e-05,
- 1.1920928955078125e-07, 1.1324882507324219e-05,
- -1.6212463378906250e-05}, /* L572 */
-{1.6519047021865845e+00, 5.6430697441101074e-05,
- 1.1920928955078125e-07, -3.3736228942871094e-05,
- 2.3841857910156250e-06}, /* L573 */
-{2.0911381244659424e+00, 7.1555376052856445e-05,
- 1.1920928955078125e-07, 5.8531761169433594e-05,
- -3.8683414459228516e-05}, /* L574 */
-{1.9214581251144409e+00, 6.5855681896209717e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- 1.1682510375976562e-05}, /* L575 */
-{1.5375909805297852e+00, 5.2809715270996094e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- -1.8298625946044922e-05}, /* L576 */
-{2.2455751895904541e+00, 7.7247619628906250e-05,
- 1.1920928955078125e-07, -7.0989131927490234e-05,
- -7.2538852691650391e-05}, /* L577 */
-{1.9759218692779541e+00, 6.8128108978271484e-05,
- 1.1920928955078125e-07, 2.5439262390136719e-04,
- 1.5568733215332031e-04}, /* L578 */
-{1.8755239248275757e+00, 6.4730644226074219e-05,
- 1.1920928955078125e-07, -2.7358531951904297e-05,
- 1.9192695617675781e-05}, /* L579 */
-{1.4489516019821167e+00, 5.0097703933715820e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- -9.2148780822753906e-05}, /* L580 */
-{1.9765557050704956e+00, 6.8455934524536133e-05,
- 1.1920928955078125e-07, 4.8518180847167969e-05,
- 2.4676322937011719e-05}, /* L581 */
-{1.7823493480682373e+00, 6.1838421970605850e-05,
- 1.1920928955078125e-07, 7.0452690124511719e-05,
- -3.9577484130859375e-05}, /* L582 */
-{1.9847927093505859e+00, 6.8992376327514648e-05,
- 1.1920928955078125e-07, -1.4102458953857422e-04,
- -1.1551380157470703e-04}, /* L583 */
-{1.6148413419723511e+00, 5.6236982345581055e-05,
- 1.1920928955078125e-07, 1.1193752288818359e-04,
- 1.9228458404541016e-04}, /* L584 */
-{1.6655808687210083e+00, 5.8084726333618164e-05,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 6.9737434387207031e-05}, /* L585 */
-{1.5255374908447266e+00, 5.3286552429199219e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- 1.1920928955078125e-06}, /* L586 */
-{2.1680901050567627e+00, 7.5906515121459961e-05,
- 1.1920928955078125e-07, 1.7738342285156250e-04,
- -1.2791156768798828e-04}, /* L587 */
-{1.6040347814559937e+00, 5.6222081184387207e-05,
- 1.1920928955078125e-07, -8.2850456237792969e-06,
- 2.8014183044433594e-05}, /* L588 */
-{1.8398293256759644e+00, 6.4596533775329590e-05,
- 1.1920928955078125e-07, 4.6253204345703125e-05,
- -1.0728836059570312e-05}, /* L589 */
-{1.7839291095733643e+00, 6.2739476561546326e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-05,
- -2.4378299713134766e-05}, /* L590 */
-{2.0794355869293213e+00, 7.3254108428955078e-05,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- -6.3180923461914062e-06}, /* L591 */
-{1.3141304254531860e+00, 4.6372413635253906e-05,
- 1.1920928955078125e-07, -2.0563602447509766e-05,
- -3.0398368835449219e-06}, /* L592 */
-{2.3994657993316650e+00, 8.4817409515380859e-05,
- 1.1920928955078125e-07, -8.2254409790039062e-06,
- -8.2850456237792969e-06}, /* L593 */
-{1.4220618009567261e+00, 5.0351023674011230e-05,
- 1.1920928955078125e-07, 2.4318695068359375e-05,
- 3.5762786865234375e-06}, /* L594 */
-{2.5241303443908691e+00, 8.9526176452636719e-05,
- 1.1920928955078125e-07, -2.0861625671386719e-05,
- -2.7000904083251953e-05}, /* L595 */
-{1.3361352682113647e+00, 4.7475099563598633e-05,
- 1.1920928955078125e-07, -4.3749809265136719e-05,
- 8.8810920715332031e-05}, /* L596 */
-{2.0933060646057129e+00, 7.4543058872222900e-05,
- 1.1920928955078125e-07, -2.2786855697631836e-04,
- -1.5568733215332031e-04}, /* L597 */
-{1.5026714801788330e+00, 5.3562223911285400e-05,
- 1.1920928955078125e-07, -2.0623207092285156e-05,
- 1.1801719665527344e-05}, /* L598 */
-{2.3488039970397949e+00, 8.3871185779571533e-05,
- 1.1920928955078125e-07, -2.0921230316162109e-05,
- -1.3828277587890625e-05}, /* L599 */
-{1.5045223236083984e+00, 5.4046511650085449e-05,
- 1.1920928955078125e-07, -1.7131567001342773e-03,
- -1.7565488815307617e-04}, /* L600 */
-{2.3155241012573242e+00, 8.2954764366149902e-05,
- 1.1920928955078125e-07, 3.3736228942871094e-05,
- 3.4332275390625000e-05}, /* L601 */
-{1.6143763065338135e+00, 5.7935714721679688e-05,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- 1.0251998901367188e-04}, /* L602 */
-{1.9007269144058228e+00, 6.9916248321533203e-05,
- 1.1920928955078125e-07, 1.9938945770263672e-03,
- -4.5305490493774414e-03}, /* L603 */
-{1.7690852880477905e+00, 6.3866376876831055e-05,
- 1.1920928955078125e-07, 1.0811090469360352e-03,
- -9.1552734375000000e-05}, /* L604 */
-{1.5756504535675049e+00, 5.6833028793334961e-05,
- 1.1920928955078125e-07, -3.8564205169677734e-05,
- 5.1021575927734375e-05}, /* L605 */
-{1.8765380382537842e+00, 6.7844986915588379e-05,
- 1.1920928955078125e-07, 3.2866001129150391e-04,
- -2.3740530014038086e-04}, /* L606 */
-{1.8488636016845703e+00, 6.6906213760375977e-05,
- 1.1920928955078125e-07, 1.3947486877441406e-05,
- -2.1874904632568359e-05}, /* L607 */
-{1.4143947362899780e+00, 5.1259994506835938e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-06,
- 2.6226043701171875e-06}, /* L608 */
-{2.0909426212310791e+00, 7.5902789831161499e-05,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- 2.6583671569824219e-05}, /* L609 */
-{1.3745304346084595e+00, 4.9978494644165039e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- 1.8239021301269531e-05}, /* L610 */
-{2.4753224849700928e+00, 9.0152025222778320e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- 5.0067901611328125e-06}, /* L611 */
-{1.6272025108337402e+00, 5.9366226196289062e-05,
- 1.1920928955078125e-07, 5.0663948059082031e-05,
- -2.9206275939941406e-05}, /* L612 */
-{3.0513265132904053e+00, 1.1150538921356201e-04,
- 1.1920928955078125e-07, 1.2254714965820312e-04,
- 4.8518180847167969e-05}, /* L613 */
-{1.8124324083328247e+00, 6.6339969635009766e-05,
- 1.1920928955078125e-07, -3.0875205993652344e-05,
- -2.6702880859375000e-05}, /* L614 */
-{2.3179955482482910e+00, 8.4973871707916260e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -7.3909759521484375e-06}, /* L615 */
-{1.4465979337692261e+00, 5.3122639656066895e-05,
- 1.1920928955078125e-07, -6.5624713897705078e-05,
- -7.2598457336425781e-05}, /* L616 */
-{1.9851582050323486e+00, 7.3015689849853516e-05,
- 1.1920928955078125e-07, -3.6537647247314453e-05,
- -3.4689903259277344e-05}, /* L617 */
-{1.6008641719818115e+00, 5.8978796005249023e-05,
- 1.1920928955078125e-07, -2.8789043426513672e-05,
- 3.9935111999511719e-05}, /* L618 */
-{2.4319202899932861e+00, 9.0032815933227539e-05,
- 1.1920928955078125e-07, 1.8596649169921875e-04,
- 5.7005882263183594e-04}, /* L619 */
-{1.2795324325561523e+00, 4.7303736209869385e-05,
- 1.1920928955078125e-07, -1.3625621795654297e-04,
- -2.0462274551391602e-04}, /* L620 */
-{1.9249027967453003e+00, 7.1257352828979492e-05,
- 1.1920928955078125e-07, -2.3066997528076172e-05,
- -4.9173831939697266e-05}, /* L621 */
-{1.5663186311721802e+00, 6.0141086578369141e-05,
- 1.1920928955078125e-07, 1.0178685188293457e-02,
- -8.8712573051452637e-03}, /* L622 */
-{2.0397434234619141e+00, 7.5757503509521484e-05,
- 1.1920928955078125e-07, -7.9989433288574219e-05,
- 5.7697296142578125e-05}, /* L623 */
-{1.7867767810821533e+00, 6.6459178924560547e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-05,
- 1.0967254638671875e-05}, /* L624 */
-{2.2703139781951904e+00, 8.4578990936279297e-05,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- 1.0967254638671875e-05}, /* L625 */
-{1.4727154970169067e+00, 5.4955482482910156e-05,
- 1.1920928955078125e-07, 3.9815902709960938e-05,
- -2.0027160644531250e-05}, /* L626 */
-{2.3553121089935303e+00, 8.8065862655639648e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- -4.1127204895019531e-05}, /* L627 */
-{1.9906022548675537e+00, 7.4528157711029053e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -9.1552734375000000e-05}, /* L628 */
-{2.0324523448944092e+00, 7.6442956924438477e-05,
- 1.1920928955078125e-07, -9.3936920166015625e-05,
- -7.6889991760253906e-06}, /* L629 */
-{1.5852142572402954e+00, 5.9545040130615234e-05,
- 1.1920928955078125e-07, 8.2731246948242188e-05,
- 6.2942504882812500e-05}, /* L630 */
-{2.0764775276184082e+00, 7.8111886978149414e-05,
- 1.1920928955078125e-07, -9.2387199401855469e-05,
- -1.1205673217773438e-05}, /* L631 */
-{1.4855570793151855e+00, 5.5968761444091797e-05,
- 1.1920928955078125e-07, 3.6835670471191406e-05,
- 1.4781951904296875e-05}, /* L632 */
-{1.9674001932144165e+00, 7.4237585067749023e-05,
- 1.1920928955078125e-07, -4.2378902435302734e-05,
- -4.1365623474121094e-05}, /* L633 */
-{1.6323432922363281e+00, 6.1690807342529297e-05,
- 1.1920928955078125e-07, -1.5139579772949219e-05,
- -1.7702579498291016e-05}, /* L634 */
-{2.1113648414611816e+00, 7.9929828643798828e-05,
- 1.1920928955078125e-07, 5.0425529479980469e-05,
- 1.1193752288818359e-04}, /* L635 */
-{1.2945275306701660e+00, 4.9090012907981873e-05,
- 1.1920928955078125e-07, -6.0021877288818359e-05,
- 3.5047531127929688e-05}, /* L636 */
-{2.1913280487060547e+00, 8.3208084106445312e-05,
- 1.1920928955078125e-07, -2.4199485778808594e-05,
- 4.5299530029296875e-06}, /* L637 */
-{1.6423569917678833e+00, 6.2465667724609375e-05,
- 1.1920928955078125e-07, -4.9352645874023438e-05,
- -1.7881393432617188e-05}, /* L638 */
-{2.6317546367645264e+00, 1.0025501251220703e-04,
- 1.1920928955078125e-07, -9.5188617706298828e-05,
- 5.5551528930664062e-05}, /* L639 */
-{1.5197391510009766e+00, 5.7980418205261230e-05,
- 1.1920928955078125e-07, -3.1471252441406250e-05,
- -7.5697898864746094e-06}, /* L640 */
-{2.0298442840576172e+00, 7.7560544013977051e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 2.4199485778808594e-05}, /* L641 */
-{1.7032957077026367e+00, 6.5207481384277344e-05,
- 1.1920928955078125e-07, 1.6272068023681641e-04,
- 3.2114982604980469e-04}, /* L642 */
-{2.6641292572021484e+00, 1.0213255882263184e-04,
- 1.1920928955078125e-07, -3.7610530853271484e-05,
- 3.7908554077148438e-05}, /* L643 */
-{1.5146787166595459e+00, 5.8144330978393555e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 2.5510787963867188e-05}, /* L644 */
-{2.3670682907104492e+00, 9.1016292572021484e-05,
- 1.1920928955078125e-07, -5.7995319366455078e-05,
- -9.5963478088378906e-06}, /* L645 */
-{1.4300638437271118e+00, 5.5074691772460938e-05,
- 1.1920928955078125e-07, -1.0967254638671875e-05,
- -4.3749809265136719e-05}, /* L646 */
-{2.1134412288665771e+00, 8.1509351730346680e-05,
- 1.1920928955078125e-07, -1.1444091796875000e-05,
- 1.5854835510253906e-05}, /* L647 */
-{1.5568636655807495e+00, 6.0141086578369141e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- -5.8114528656005859e-05}, /* L648 */
-{2.3709924221038818e+00, 9.1731548309326172e-05,
- 1.1920928955078125e-07, -9.0479850769042969e-05,
- -4.3332576751708984e-05}, /* L649 */
-{2.1227021217346191e+00, 8.2246959209442139e-05,
- 1.1920928955078125e-07, 4.0054321289062500e-05,
- -1.8060207366943359e-05}, /* L650 */
-{2.1325259208679199e+00, 8.2761049270629883e-05,
- 1.1920928955078125e-07, -4.0650367736816406e-05,
- 5.8889389038085938e-05}, /* L651 */
-{1.6527670621871948e+00, 6.4238905906677246e-05,
- 1.1920928955078125e-07, -7.7605247497558594e-05,
- -1.2874603271484375e-05}, /* L652 */
-{2.0956957340240479e+00, 8.1576406955718994e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-05,
- 3.5762786865234375e-05}, /* L653 */
-{1.7779228687286377e+00, 6.9320201873779297e-05,
- 1.1920928955078125e-07, -2.3186206817626953e-05,
- -7.4148178100585938e-05}, /* L654 */
-{2.0511028766632080e+00, 8.0108642578125000e-05,
- 1.1920928955078125e-07, 7.6770782470703125e-05,
- 5.1021575927734375e-05}, /* L655 */
-{1.3253511190414429e+00, 5.1826238632202148e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- 4.7564506530761719e-05}, /* L656 */
-{2.5021166801452637e+00, 9.7990036010742188e-05,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- 2.0980834960937500e-05}, /* L657 */
-{1.9000769853591919e+00, 7.4535608291625977e-05,
- 1.1920928955078125e-07, -5.1021575927734375e-05,
- -2.1040439605712891e-05}, /* L658 */
-{2.0332217216491699e+00, 7.9870223999023438e-05,
- 1.1920928955078125e-07, 1.6450881958007812e-05,
- -2.0802021026611328e-05}, /* L659 */
-{1.9172517061233521e+00, 7.5459480285644531e-05,
- 1.1920928955078125e-07, -2.4586915969848633e-04,
- 1.3577938079833984e-04}, /* L660 */
-{2.0582592487335205e+00, 8.1121921539306641e-05,
- 1.1920928955078125e-07, -3.2007694244384766e-05,
- 1.4424324035644531e-05}, /* L661 */
-{1.8238137960433960e+00, 7.1972608566284180e-05,
- 1.1920928955078125e-07, 3.6239624023437500e-05,
- -7.1525573730468750e-07}, /* L662 */
-{2.4307048320770264e+00, 9.6090137958526611e-05,
- 1.1920928955078125e-07, 1.1634826660156250e-04,
- 1.5175342559814453e-04}, /* L663 */
-{2.2247557640075684e+00, 8.8065862655639648e-05,
- 1.1920928955078125e-07, -3.6895275115966797e-05,
- -5.4836273193359375e-05}, /* L664 */
-{2.1818363666534424e+00, 8.6486339569091797e-05,
- 1.1920928955078125e-07, -1.6689300537109375e-05,
- 7.5101852416992188e-06}, /* L665 */
-{1.5005662441253662e+00, 5.9574842453002930e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- 7.1525573730468750e-05}, /* L666 */
-{1.7042199373245239e+00, 6.7770481109619141e-05,
- 1.1920928955078125e-07, -1.4209747314453125e-04,
- -7.4684619903564453e-05}, /* L667 */
-{1.7735772132873535e+00, 7.0720911026000977e-05,
- 1.1920928955078125e-07, -4.5776367187500000e-05,
- -4.1878223419189453e-04}, /* L668 */
-{2.4194667339324951e+00, 9.6499919891357422e-05,
- 1.1920928955078125e-07, -6.6697597503662109e-05,
- -4.6670436859130859e-05}, /* L669 */
-{1.8383078575134277e+00, 7.3418021202087402e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-05,
- 3.0994415283203125e-05}, /* L670 */
-{2.0879681110382080e+00, 8.4072351455688477e-05,
- 1.1920928955078125e-07, 8.7618827819824219e-05,
- -1.3321638107299805e-03}, /* L671 */
-{1.5840317010879517e+00, 6.3461717218160629e-05,
- 1.1920928955078125e-07, 5.3405761718750000e-05,
- 1.0895729064941406e-04}, /* L672 */
-{2.1310641765594482e+00, 8.5526145994663239e-05,
- 1.1920928955078125e-07, 1.9943714141845703e-04,
- -4.7683715820312500e-05}, /* L673 */
-{1.7927044630050659e+00, 7.2032213211059570e-05,
- 1.1920928955078125e-07, 3.8743019104003906e-05,
- -5.7756900787353516e-05}, /* L674 */
-{2.6735394001007080e+00, 1.0758638381958008e-04,
- 1.1920928955078125e-07, -1.0967254638671875e-05,
- 4.9829483032226562e-05}, /* L675 */
-{1.4583964347839355e+00, 5.8770179748535156e-05,
- 1.1920928955078125e-07, -3.9994716644287109e-05,
- 1.7642974853515625e-05}, /* L676 */
-{2.1142892837524414e+00, 8.5324048995971680e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- -3.7550926208496094e-05}, /* L677 */
-{2.0122616291046143e+00, 8.1360340118408203e-05,
- 1.1920928955078125e-07, -1.4501810073852539e-04,
- 9.1910362243652344e-05}, /* L678 */
-{2.5132310390472412e+00, 1.0180473327636719e-04,
- 1.1920928955078125e-07, -1.3697147369384766e-04,
- -2.7519464492797852e-04}, /* L679 */
-{1.6729816198348999e+00, 6.7904591560363770e-05,
- 1.1920928955078125e-07, 1.9395351409912109e-04,
- 1.2373924255371094e-04}, /* L680 */
-{1.9207093715667725e+00, 7.7992677688598633e-05,
- 1.1920928955078125e-07, -2.2923946380615234e-04,
- 4.4345855712890625e-05}, /* L681 */
-{1.6612211465835571e+00, 6.7532062530517578e-05,
- 1.1920928955078125e-07, 1.8715858459472656e-05,
- -1.9073486328125000e-06}, /* L682 */
-{2.1305842399597168e+00, 8.6741521954536438e-05,
- 1.1920928955078125e-07, 3.4928321838378906e-05,
- -1.2695789337158203e-05}, /* L683 */
-{1.5932800769805908e+00, 6.4969062805175781e-05,
- 1.1920928955078125e-07, 3.3020973205566406e-05,
- -7.5817108154296875e-05}, /* L684 */
-{2.7835290431976318e+00, 1.1366605758666992e-04,
- 1.1920928955078125e-07, -7.8141689300537109e-05,
- 6.0796737670898438e-06}, /* L685 */
-{1.6650556325912476e+00, 6.8090856075286865e-05,
- 1.1920928955078125e-07, 6.2704086303710938e-05,
- -6.9200992584228516e-05}, /* L686 */
-{2.4516501426696777e+00, 1.0042637586593628e-04,
- 1.1920928955078125e-07, 1.4770030975341797e-04,
- -6.3180923461914062e-06}, /* L687 */
-{1.5984659194946289e+00, 6.5565109252929688e-05,
- 1.1920928955078125e-07, 8.9645385742187500e-05,
- 1.8858909606933594e-04}, /* L688 */
-{2.3781969547271729e+00, 9.7721815109252930e-05,
- 1.1920928955078125e-07, 1.8191337585449219e-04,
- 1.3828277587890625e-05}, /* L689 */
-{1.8992320299148560e+00, 7.8186392784118652e-05,
- 1.1920928955078125e-07, 6.3717365264892578e-04,
- 1.4519691467285156e-04}, /* L690 */
-{3.2192499637603760e+00, 1.3259798288345337e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -1.2934207916259766e-05}, /* L691 */
-{2.1815905570983887e+00, 9.0003013610839844e-05,
- 1.1920928955078125e-07, -4.1842460632324219e-05,
- 5.6266784667968750e-05}, /* L692 */
-{2.3006222248077393e+00, 9.5039606094360352e-05,
- 1.1920928955078125e-07, 1.9550323486328125e-05,
- -3.8146972656250000e-06}, /* L693 */
-{1.7378700971603394e+00, 7.1972608566284180e-05,
- 1.1920928955078125e-07, 6.6399574279785156e-04,
- 4.0578842163085938e-04}, /* L694 */
-{2.1271150112152100e+00, 8.8129192590713501e-05,
- 1.1920928955078125e-07, 2.4676322937011719e-05,
- -2.6464462280273438e-05}, /* L695 */
-{1.5232470035552979e+00, 6.3210725784301758e-05,
- 1.1920928955078125e-07, 3.0350685119628906e-04,
- -8.5234642028808594e-06}, /* L696 */
-{2.3591012954711914e+00, 9.8019838333129883e-05,
- 1.1920928955078125e-07, -1.2516975402832031e-06,
- -3.7431716918945312e-05}, /* L697 */
-{1.4241330623626709e+00, 5.9261918067932129e-05,
- 1.1920928955078125e-07, 5.4597854614257812e-05,
- 1.1086463928222656e-04}, /* L698 */
-{2.5482177734375000e+00, 1.0618567466735840e-04,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- -5.0663948059082031e-05}, /* L699 */
-{2.2483475208282471e+00, 9.3825161457061768e-05,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- -1.0019540786743164e-04}, /* L700 */
-{2.0393238067626953e+00, 8.5219740867614746e-05,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- -4.4226646423339844e-05}, /* L701 */
-{1.5482857227325439e+00, 6.4790248870849609e-05,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- 3.5285949707031250e-05}, /* L702 */
-{2.4991180896759033e+00, 1.0472536087036133e-04,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -3.5881996154785156e-05}, /* L703 */
-{1.5704832077026367e+00, 6.5907835960388184e-05,
- 1.1920928955078125e-07, -5.0365924835205078e-05,
- 5.8889389038085938e-05}, /* L704 */
-{1.8420673608779907e+00, 7.7411532402038574e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- 1.2516975402832031e-05}, /* L705 */
-{1.9447143077850342e+00, 8.1844627857208252e-05,
- 1.1920928955078125e-07, -2.5033950805664062e-06,
- 1.4662742614746094e-05}, /* L706 */
-{1.8109430074691772e+00, 7.6323747634887695e-05,
- 1.1920928955078125e-07, -2.8431415557861328e-05,
- -1.1086463928222656e-05}, /* L707 */
-{1.7746196985244751e+00, 7.4893236160278320e-05,
- 1.1920928955078125e-07, 1.7523765563964844e-05,
- -1.4901161193847656e-05}, /* L708 */
-{2.2037153244018555e+00, 9.3132257461547852e-05,
- 1.1920928955078125e-07, -2.4020671844482422e-05,
- -8.4042549133300781e-06}, /* L709 */
-{1.8982046842575073e+00, 8.0347061157226562e-05,
- 1.1920928955078125e-07, 7.6889991760253906e-05,
- 9.2625617980957031e-05}, /* L710 */
-{2.3009641170501709e+00, 9.7535550594329834e-05,
- 1.1920928955078125e-07, 9.4056129455566406e-05,
- -7.5995922088623047e-05}, /* L711 */
-{1.8467736244201660e+00, 7.8380107879638672e-05,
- 1.1920928955078125e-07, 9.2983245849609375e-06,
- -1.4722347259521484e-05}, /* L712 */
-{2.3193156719207764e+00, 9.8586082458496094e-05,
- 1.1920928955078125e-07, -3.8385391235351562e-05,
- 1.3148784637451172e-04}, /* L713 */
-{1.5044926404953003e+00, 6.4060091972351074e-05,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- -1.0287761688232422e-04}, /* L714 */
-{2.4640564918518066e+00, 1.0502105578780174e-04,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- -2.5212764739990234e-05}, /* L715 */
-{1.4508104324340820e+00, 6.1929225921630859e-05,
- 1.1920928955078125e-07, 3.4451484680175781e-05,
- 5.0783157348632812e-05}, /* L716 */
-{2.8503692150115967e+00, 1.2182514183223248e-04,
- 1.1920928955078125e-07, -2.4557113647460938e-05,
- -3.2007694244384766e-05}, /* L717 */
-{1.6732673645019531e+00, 7.1629881858825684e-05,
- 1.1920928955078125e-07, -1.2427568435668945e-04,
- 5.6982040405273438e-05}, /* L718 */
-{2.6061861515045166e+00, 1.1169910430908203e-04,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- 5.0067901611328125e-06}, /* L719 */
-{1.6390521526336670e+00, 7.0348381996154785e-05,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- 3.0755996704101562e-05}, /* L720 */
-{2.1678194999694824e+00, 9.3311071395874023e-05,
- 1.1920928955078125e-07, 3.7372112274169922e-04,
- 3.8850307464599609e-04}, /* L721 */
-{2.6578068733215332e+00, 1.1439993977546692e-04,
- 1.1920928955078125e-07, 4.7445297241210938e-05,
- -3.8743019104003906e-06}, /* L722 */
-{2.1623153686523438e+00, 9.3191862106323242e-05,
- 1.1920928955078125e-07, -3.2484531402587891e-05,
- 4.0531158447265625e-06}, /* L723 */
-{1.8753557205200195e+00, 8.0950558185577393e-05,
- 1.1920928955078125e-07, -1.2433528900146484e-04,
- 9.3340873718261719e-05}, /* L724 */
-{2.0813694000244141e+00, 8.9973211288452148e-05,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- 9.7393989562988281e-05}, /* L725 */
-{1.8653182983398438e+00, 8.0749392509460449e-05,
- 1.1920928955078125e-07, -7.1704387664794922e-05,
- -3.1232833862304688e-05}, /* L726 */
-{2.4434025287628174e+00, 1.0606646537780762e-04,
- 1.1920928955078125e-07, 6.6399574279785156e-05,
- -5.0604343414306641e-04}, /* L727 */
-{2.0144994258880615e+00, 8.7417662143707275e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 1.7046928405761719e-05}, /* L728 */
-{2.3468518257141113e+00, 1.0198354721069336e-04,
- 1.1920928955078125e-07, -6.9141387939453125e-06,
- -1.9252300262451172e-05}, /* L729 */
-{2.1878738403320312e+00, 9.5205381512641907e-05,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- -4.0829181671142578e-05}, /* L730 */
-{2.0849571228027344e+00, 9.0867280960083008e-05,
- 1.1920928955078125e-07, 1.6140937805175781e-04,
- -1.1962652206420898e-04}, /* L731 */
-{1.8179992437362671e+00, 7.9438090324401855e-05,
- 1.1920928955078125e-07, -2.4360418319702148e-04,
- -8.9824199676513672e-05}, /* L732 */
-{2.5820033550262451e+00, 1.1283159255981445e-04,
- 1.1920928955078125e-07, -3.1709671020507812e-05,
- 1.1861324310302734e-04}, /* L733 */
-{1.8074448108673096e+00, 7.9087913036346436e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 5.7697296142578125e-05}, /* L734 */
-{2.4708244800567627e+00, 1.0840594768524170e-04,
- 1.1920928955078125e-07, -2.1648406982421875e-04,
- -2.2238492965698242e-04}, /* L735 */
-{1.6010068655014038e+00, 7.0244073867797852e-05,
- 1.1920928955078125e-07, -4.9352645874023438e-05,
- 2.8252601623535156e-05}, /* L736 */
-{2.3253154754638672e+00, 1.0219216346740723e-04,
- 1.1920928955078125e-07, 1.1670589447021484e-04,
- -3.5166740417480469e-05}, /* L737 */
-{2.0730040073394775e+00, 9.1198366135358810e-05,
- 1.1920928955078125e-07, -1.1384487152099609e-05,
- 2.1815299987792969e-05}, /* L738 */
-{1.9021102190017700e+00, 8.3804130554199219e-05,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- 4.0531158447265625e-05}, /* L739 */
-{2.0837171077728271e+00, 9.1917812824249268e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -1.3589859008789062e-05}, /* L740 */
-{2.2527699470520020e+00, 9.9506229162216187e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-07,
- -2.6881694793701172e-05}, /* L741 */
-{2.2909371852874756e+00, 1.0132789611816406e-04,
- 1.1920928955078125e-07, -1.1861324310302734e-05,
- -1.1980533599853516e-05}, /* L742 */
-{2.2969572544097900e+00, 1.0174512863159180e-04,
- 1.1920928955078125e-07, 2.8491020202636719e-05,
- 8.4280967712402344e-05}, /* L743 */
-{1.9732756614685059e+00, 8.7529420852661133e-05,
- 1.1920928955078125e-07, 6.8426132202148438e-05,
- 7.2002410888671875e-05}, /* L744 */
-{2.4999938011169434e+00, 1.1104345321655273e-04,
- 1.1920928955078125e-07, -4.2736530303955078e-05,
- -7.4505805969238281e-06}, /* L745 */
-{1.5474489927291870e+00, 6.8813562393188477e-05,
- 1.1920928955078125e-07, -1.5616416931152344e-05,
- 6.2465667724609375e-05}, /* L746 */
-{2.2551591396331787e+00, 1.0041892528533936e-04,
- 1.1920928955078125e-07, 3.8743019104003906e-05,
- 7.2836875915527344e-05}, /* L747 */
-{1.7177096605300903e+00, 7.6591968536376953e-05,
- 1.1920928955078125e-07, -2.5033950805664062e-06,
- 4.0531158447265625e-06}, /* L748 */
-{2.5548388957977295e+00, 1.1406838893890381e-04,
- 1.1920928955078125e-07, -1.8775463104248047e-05,
- 4.7326087951660156e-05}, /* L749 */
-{1.9981343746185303e+00, 8.9406967163085938e-05,
- 1.1920928955078125e-07, 2.9921531677246094e-05,
- 2.2137165069580078e-04}, /* L750 */
-{1.9038611650466919e+00, 8.5271894931793213e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -2.1803379058837891e-04}, /* L751 */
-{1.4420906305313110e+00, 6.4641237258911133e-05,
- 1.1920928955078125e-07, -1.3411045074462891e-05,
- 2.3365020751953125e-05}, /* L752 */
-{1.7621377706527710e+00, 7.9095363616943359e-05,
- 1.1920928955078125e-07, 1.3947486877441406e-05,
- 8.2254409790039062e-06}, /* L753 */
-{1.8378251791000366e+00, 8.2623213529586792e-05,
- 1.1920928955078125e-07, -1.2505054473876953e-04,
- -1.2516975402832031e-06}, /* L754 */
-{2.3051035404205322e+00, 1.0374188423156738e-04,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- 1.9431114196777344e-05}, /* L755 */
-{1.5710618495941162e+00, 7.0810317993164062e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.0699033737182617e-04}, /* L756 */
-{2.3700528144836426e+00, 1.0696798563003540e-04,
- 1.1920928955078125e-07, 5.1140785217285156e-05,
- -5.9604644775390625e-07}, /* L757 */
-{1.8858487606048584e+00, 8.5234642028808594e-05,
- 1.1920928955078125e-07, 4.8875808715820312e-05,
- 6.4730644226074219e-05}, /* L758 */
-{2.0922472476959229e+00, 9.4793736934661865e-05,
- 1.1920928955078125e-07, 1.7046928405761719e-04,
- -3.9041042327880859e-04}, /* L759 */
-{1.9188117980957031e+00, 8.6933374404907227e-05,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- 2.8252601623535156e-05}, /* L760 */
-{2.2874414920806885e+00, 1.0380148887634277e-04,
- 1.1920928955078125e-07, 6.4611434936523438e-05,
- -6.1929225921630859e-05}, /* L761 */
-{1.8115466833114624e+00, 8.2284212112426758e-05,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- -1.3649463653564453e-05}, /* L762 */
-{2.9575283527374268e+00, 1.3455748558044434e-04,
- 1.1920928955078125e-07, -3.0279159545898438e-05,
- 7.7009201049804688e-05}, /* L763 */
-{1.5774569511413574e+00, 7.1842223405838013e-05,
- 1.1920928955078125e-07, -3.5881996154785156e-05,
- 9.4532966613769531e-05}, /* L764 */
-{2.9342877864837646e+00, 1.3425946235656738e-04,
- 1.1920928955078125e-07, 1.4758110046386719e-04,
- -3.3640861511230469e-04}, /* L765 */
-{2.0155229568481445e+00, 9.2029571533203125e-05,
- 1.1920928955078125e-07, -8.2254409790039062e-06,
- 5.6028366088867188e-06}, /* L766 */
-{2.4166848659515381e+00, 1.1050701141357422e-04,
- 1.1920928955078125e-07, 8.7857246398925781e-05,
- 4.2080879211425781e-05}, /* L767 */
-{1.6560200452804565e+00, 7.5820833444595337e-05,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -6.5386295318603516e-05}, /* L768 */
-{2.6929414272308350e+00, 1.2344121932983398e-04,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- -5.2392482757568359e-05}, /* L769 */
-{2.0127694606781006e+00, 9.2387199401855469e-05,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- 7.8678131103515625e-06}, /* L770 */
-{2.4180676937103271e+00, 1.1112913489341736e-04,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- 3.5762786865234375e-05}, /* L771 */
-{1.6045144796371460e+00, 7.3835253715515137e-05,
- 1.1920928955078125e-07, 6.1988830566406250e-06,
- -3.5762786865234375e-06}, /* L772 */
-{2.2108206748962402e+00, 1.0189414024353027e-04,
- 1.1920928955078125e-07, 4.7802925109863281e-05,
- 1.5139579772949219e-05}, /* L773 */
-{1.5052748918533325e+00, 6.9454312324523926e-05,
- 1.1920928955078125e-07, 4.5537948608398438e-05,
- -1.9848346710205078e-05}, /* L774 */
-{2.6995556354522705e+00, 1.2472271919250488e-04,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -1.9371509552001953e-05}, /* L775 */
-{1.6755343675613403e+00, 7.7523291110992432e-05,
- 1.1920928955078125e-07, 1.1408329010009766e-04,
- 1.2254714965820312e-04}, /* L776 */
-{2.0190923213958740e+00, 9.3534588813781738e-05,
- 1.1920928955078125e-07, -2.6464462280273438e-05,
- 2.6702880859375000e-05}, /* L777 */
-{1.8375761508941650e+00, 8.5234642028808594e-05,
- 1.1920928955078125e-07, -8.3565711975097656e-05,
- 4.1604042053222656e-05}, /* L778 */
-{1.9806352853775024e+00, 9.1969966888427734e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- 2.5868415832519531e-05}, /* L779 */
-{2.0876910686492920e+00, 9.7066164016723633e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- 1.4781951904296875e-05}, /* L780 */
-{2.0573351383209229e+00, 9.5803290605545044e-05,
- 1.1920928955078125e-07, 1.2302398681640625e-04,
- 1.9228458404541016e-04}, /* L781 */
-{1.9701143503189087e+00, 9.1835856437683105e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -1.0967254638671875e-05}, /* L782 */
-{2.4811666011810303e+00, 1.1580251157283783e-04,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- -7.9274177551269531e-06}, /* L783 */
-{1.6350264549255371e+00, 7.6413154602050781e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- -8.3804130554199219e-05}, /* L784 */
-{2.4119286537170410e+00, 1.1287629604339600e-04,
- 1.1920928955078125e-07, 3.8743019104003906e-05,
- -1.0132789611816406e-05}, /* L785 */
-{2.7476739883422852e+00, 1.2874603271484375e-04,
- 1.1920928955078125e-07, -2.8908252716064453e-05,
- -2.4199485778808594e-05}, /* L786 */
-{2.5886390209197998e+00, 1.2144446372985840e-04,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.5079975128173828e-05}, /* L787 */
-{1.8609656095504761e+00, 8.7425112724304199e-05,
- 1.1920928955078125e-07, -6.6161155700683594e-06,
- 6.2346458435058594e-05}, /* L788 */
-{2.9474508762359619e+00, 1.3881921768188477e-04,
- 1.1920928955078125e-07, 1.5580654144287109e-04,
- -7.8320503234863281e-05}, /* L789 */
-{2.0901196002960205e+00, 9.8437070846557617e-05,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 1.6689300537109375e-06}, /* L790 */
-{2.1623034477233887e+00, 1.0199099779129028e-04,
- 1.1920928955078125e-07, -2.0450353622436523e-04,
- 4.4941902160644531e-05}, /* L791 */
-{2.0843939781188965e+00, 9.8451972007751465e-05,
- 1.1920928955078125e-07, -4.2557716369628906e-05,
- -1.1819601058959961e-04}, /* L792 */
-{2.6955015659332275e+00, 1.2741982936859131e-04,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 7.1525573730468750e-06}, /* L793 */
-{2.0605497360229492e+00, 9.7543001174926758e-05,
- 1.1920928955078125e-07, 8.9526176452636719e-05,
- -1.3273954391479492e-04}, /* L794 */
-{3.0367584228515625e+00, 1.4397501945495605e-04,
- 1.1920928955078125e-07, -2.0968914031982422e-04,
- 3.1256675720214844e-04}, /* L795 */
-{1.6623297929763794e+00, 7.8886747360229492e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -1.1384487152099609e-05}, /* L796 */
-{2.7017025947570801e+00, 1.2835860252380371e-04,
- 1.1920928955078125e-07, 1.4066696166992188e-05,
- 1.5377998352050781e-05}, /* L797 */
-{2.3365538120269775e+00, 1.1116266250610352e-04,
- 1.1920928955078125e-07, 3.7193298339843750e-05,
- 3.0994415283203125e-05}, /* L798 */
-{3.0320093631744385e+00, 1.4477968215942383e-04,
- 1.1920928955078125e-07, 1.7352104187011719e-03,
- 1.1062622070312500e-04}, /* L799 */
-{1.8190797567367554e+00, 8.6754560470581055e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -9.3579292297363281e-05}, /* L800 */
-{2.2781453132629395e+00, 1.0886788368225098e-04,
- 1.1920928955078125e-07, -2.1445751190185547e-04,
- 1.8942356109619141e-04}, /* L801 */
-{2.4532883167266846e+00, 1.1730194091796875e-04,
- 1.1920928955078125e-07, 7.6293945312500000e-06,
- -4.7683715820312500e-06}, /* L802 */
-{2.3627038002014160e+00, 1.1312961578369141e-04,
- 1.1920928955078125e-07, 9.4413757324218750e-05,
- 6.1869621276855469e-05}, /* L803 */
-{2.0669724941253662e+00, 9.9062919616699219e-05,
- 1.1920928955078125e-07, -4.3392181396484375e-05,
- 2.9206275939941406e-05}, /* L804 */
-{3.2593657970428467e+00, 1.5642121434211731e-04,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- -8.3446502685546875e-06}, /* L805 */
-{2.0802903175354004e+00, 9.9956989288330078e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- -1.5437602996826172e-05}, /* L806 */
-{2.4246323108673096e+00, 1.1664349585771561e-04,
- 1.1920928955078125e-07, 6.4015388488769531e-05,
- -3.5762786865234375e-06}, /* L807 */
-{1.6409955024719238e+00, 7.9035758972167969e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 2.4795532226562500e-05}, /* L808 */
-{2.6194143295288086e+00, 1.2633204460144043e-04,
- 1.1920928955078125e-07, -3.2782554626464844e-05,
- -5.5193901062011719e-05}, /* L809 */
-{1.6979091167449951e+00, 8.1986188888549805e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- -2.8848648071289062e-05}, /* L810 */
-{2.5250537395477295e+00, 1.2215971946716309e-04,
- 1.1920928955078125e-07, 7.6651573181152344e-05,
- -3.8921833038330078e-05}, /* L811 */
-{1.9332687854766846e+00, 9.3579292297363281e-05,
- 1.1920928955078125e-07, 9.6559524536132812e-06,
- 9.4175338745117188e-06}, /* L812 */
-{2.3601243495941162e+00, 1.1438131332397461e-04,
- 1.1920928955078125e-07, -5.3703784942626953e-05,
- 5.5432319641113281e-05}, /* L813 */
-{2.0159647464752197e+00, 9.7826123237609863e-05,
- 1.1920928955078125e-07, -5.1438808441162109e-05,
- 6.6518783569335938e-05}, /* L814 */
-{3.8087463378906250e+00, 1.8504261970520020e-04,
- 1.1920928955078125e-07, -3.3378601074218750e-06,
- -3.9875507354736328e-05}, /* L815 */
-{1.5736019611358643e+00, 7.6562166213989258e-05,
- 1.1920928955078125e-07, 1.8548965454101562e-04,
- -1.0663270950317383e-04}, /* L816 */
-{2.4758057594299316e+00, 1.2058019638061523e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- -2.3424625396728516e-05}, /* L817 */
-{1.7238401174545288e+00, 8.4057450294494629e-05,
- 1.1920928955078125e-07, -1.3470649719238281e-05,
- 2.5868415832519531e-05}, /* L818 */
-{2.5203421115875244e+00, 1.2306869029998779e-04,
- 1.1920928955078125e-07, -1.0204315185546875e-04,
- 3.4213066101074219e-05}, /* L819 */
-{1.8332705497741699e+00, 8.9623034000396729e-05,
- 1.1920928955078125e-07, 1.5556812286376953e-04,
- 3.3259391784667969e-05}, /* L820 */
-{3.3448114395141602e+00, 1.6370415687561035e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- -8.7618827819824219e-06}, /* L821 */
-{2.2392404079437256e+00, 1.0976195335388184e-04,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- 1.0073184967041016e-04}, /* L822 */
-{2.7445497512817383e+00, 1.3464689254760742e-04,
- 1.1920928955078125e-07, -3.5941600799560547e-05,
- -3.0875205993652344e-05}, /* L823 */
-{1.7886660099029541e+00, 8.7857246398925781e-05,
- 1.1920928955078125e-07, -3.9041042327880859e-05,
- 2.5510787963867188e-05}, /* L824 */
-{2.9540355205535889e+00, 1.4527887105941772e-04,
- 1.1920928955078125e-07, -1.2874603271484375e-05,
- 1.4901161193847656e-05}, /* L825 */
-{2.2219920158386230e+00, 1.0940432548522949e-04,
- 1.1920928955078125e-07, -4.2974948883056641e-05,
- 8.7022781372070312e-06}, /* L826 */
-{2.5561661720275879e+00, 1.2606382369995117e-04,
- 1.1920928955078125e-07, 5.0783157348632812e-05,
- 1.4710426330566406e-04}, /* L827 */
-{2.1620378494262695e+00, 1.0672211647033691e-04,
- 1.1920928955078125e-07, 5.6743621826171875e-05,
- 1.4305114746093750e-05}, /* L828 */
-{2.5518054962158203e+00, 1.2668967247009277e-04,
- 1.1920928955078125e-07, -1.5921592712402344e-03,
- 2.1111965179443359e-03}, /* L829 */
-{1.5416529178619385e+00, 7.6293945312500000e-05,
- 1.1920928955078125e-07, 1.7046928405761719e-05,
- -2.3841857910156250e-06}, /* L830 */
-{2.4532825946807861e+00, 1.2227892875671387e-04,
- 1.1920928955078125e-07, 2.9630661010742188e-03,
- 2.0295381546020508e-03}, /* L831 */
-{2.4252719879150391e+00, 1.2028217315673828e-04,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.2411346435546875e-05}, /* L832 */
-{1.9761401414871216e+00, 9.8138116300106049e-05,
- 1.1920928955078125e-07, 8.6426734924316406e-05,
- -2.0086765289306641e-05}, /* L833 */
-{1.6813796758651733e+00, 8.3588063716888428e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -2.6643276214599609e-05}, /* L834 */
-{2.5926082134246826e+00, 1.2907385826110840e-04,
- 1.1920928955078125e-07, -1.6713142395019531e-04,
- 1.0561943054199219e-04}, /* L835 */
-{1.7444106340408325e+00, 8.6933374404907227e-05,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- -1.3828277587890625e-05}, /* L836 */
-{3.4351832866668701e+00, 1.7139315605163574e-04,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- -1.3113021850585938e-06}, /* L837 */
-{1.8989329338073730e+00, 9.4860792160034180e-05,
- 1.1920928955078125e-07, -1.7702579498291016e-05,
- -1.1801719665527344e-05}, /* L838 */
-{2.0314595699310303e+00, 1.0173022747039795e-04,
- 1.1920928955078125e-07, 1.4519691467285156e-04,
- -2.8294324874877930e-04}, /* L839 */
-{1.9752336740493774e+00, 9.8913908004760742e-05,
- 1.1920928955078125e-07, -1.0532140731811523e-04,
- 8.8334083557128906e-05}, /* L840 */
-{2.8525748252868652e+00, 1.4302134513854980e-04,
- 1.1920928955078125e-07, -3.2007694244384766e-05,
- 1.2159347534179688e-05}, /* L841 */
-{2.2028794288635254e+00, 1.1059641838073730e-04,
- 1.1920928955078125e-07, 1.0573863983154297e-04,
- -3.6239624023437500e-05}, /* L842 */
-{2.4849731922149658e+00, 1.2490153312683105e-04,
- 1.1920928955078125e-07, -1.6605854034423828e-04,
- 2.3484230041503906e-04}, /* L843 */
-{1.9515322446823120e+00, 9.8183751106262207e-05,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- -3.7550926208496094e-06}, /* L844 */
-{2.1957097053527832e+00, 1.1059641838073730e-04,
- 1.1920928955078125e-07, -1.3411045074462891e-05,
- -3.5524368286132812e-05}, /* L845 */
-{1.7676129341125488e+00, 8.9138746261596680e-05,
- 1.1920928955078125e-07, -3.1352043151855469e-05,
- -3.5762786865234375e-07}, /* L846 */
-{2.7801711559295654e+00, 1.4037266373634338e-04,
- 1.1920928955078125e-07, 4.1007995605468750e-05,
- -2.7418136596679688e-06}, /* L847 */
-{1.9843856096267700e+00, 1.0034441947937012e-04,
- 1.1920928955078125e-07, 1.7380714416503906e-04,
- 1.2445449829101562e-04}, /* L848 */
-{2.1663439273834229e+00, 1.0964274406433105e-04,
- 1.1920928955078125e-07, -9.6321105957031250e-05,
- -7.6413154602050781e-05}, /* L849 */
-{2.1957120895385742e+00, 1.1125020682811737e-04,
- 1.1920928955078125e-07, 6.2346458435058594e-05,
- -9.5367431640625000e-07}, /* L850 */
-{3.4541883468627930e+00, 1.7526745796203613e-04,
- 1.1920928955078125e-07, -1.4895200729370117e-04,
- 1.0967254638671875e-04}, /* L851 */
-{1.7881503105163574e+00, 9.0815126895904541e-05,
- 1.1920928955078125e-07, -3.4511089324951172e-05,
- -4.5716762542724609e-05}, /* L852 */
-{2.3159422874450684e+00, 1.1781975626945496e-04,
- 1.1920928955078125e-07, -2.9128789901733398e-04,
- 1.3506412506103516e-04}, /* L853 */
-{2.0708556175231934e+00, 1.0542571544647217e-04,
- 1.1920928955078125e-07, 2.7060508728027344e-05,
- -2.4855136871337891e-05}, /* L854 */
-{2.5726499557495117e+00, 1.3148784637451172e-04,
- 1.1920928955078125e-07, -3.0738115310668945e-04,
- -1.6230344772338867e-03}, /* L855 */
-{1.7246465682983398e+00, 8.8006258010864258e-05,
- 1.1920928955078125e-07, -2.0682811737060547e-05,
- 1.4901161193847656e-05}, /* L856 */
-{2.6936030387878418e+00, 1.3761222362518311e-04,
- 1.1920928955078125e-07, -3.8981437683105469e-05,
- -1.0430812835693359e-05}, /* L857 */
-{2.1526682376861572e+00, 1.1011958122253418e-04,
- 1.1920928955078125e-07, -5.9127807617187500e-05,
- -1.1038780212402344e-04}, /* L858 */
-{2.1822087764739990e+00, 1.1174008250236511e-04,
- 1.1920928955078125e-07, -4.7087669372558594e-05,
- 7.4028968811035156e-05}, /* L859 */
-{1.7160212993621826e+00, 8.8006258010864258e-05,
- 1.1920928955078125e-07, 1.0442733764648438e-04,
- 3.6954879760742188e-05}, /* L860 */
-{2.9644734859466553e+00, 1.5217065811157227e-04,
- 1.1920928955078125e-07, 2.8610229492187500e-05,
- -4.9471855163574219e-06}, /* L861 */
-{2.2799644470214844e+00, 1.1716037988662720e-04,
- 1.1920928955078125e-07, -5.9008598327636719e-05,
- -9.8347663879394531e-06}, /* L862 */
-{3.0331907272338867e+00, 1.5604496002197266e-04,
- 1.1920928955078125e-07, 1.9073486328125000e-05,
- 1.0013580322265625e-05}, /* L863 */
-{1.6403298377990723e+00, 8.4549188613891602e-05,
- 1.1920928955078125e-07, -6.2465667724609375e-05,
- 1.3589859008789062e-04}, /* L864 */
-{2.6141827106475830e+00, 1.3482570648193359e-04,
- 1.1920928955078125e-07, 4.7206878662109375e-05,
- -8.0704689025878906e-05}, /* L865 */
-{2.0187323093414307e+00, 1.0421872138977051e-04,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- -6.0439109802246094e-05}, /* L866 */
-{2.5755372047424316e+00, 1.3311207294464111e-04,
- 1.1920928955078125e-07, -3.1709671020507812e-05,
- -1.6629695892333984e-05}, /* L867 */
-{1.8259007930755615e+00, 9.4473361968994141e-05,
- 1.1920928955078125e-07, 5.0425529479980469e-05,
- -1.0251998901367188e-05}, /* L868 */
-{2.9165534973144531e+00, 1.5108287334442139e-04,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- 6.9141387939453125e-06}, /* L869 */
-{2.7422730922698975e+00, 1.4226883649826050e-04,
- 1.1920928955078125e-07, -3.2067298889160156e-05,
- 4.1365623474121094e-05}, /* L870 */
-{3.0768077373504639e+00, 1.5977025032043457e-04,
- 1.1920928955078125e-07, -8.5234642028808594e-06,
- -6.9320201873779297e-05}, /* L871 */
-{2.2269895076751709e+00, 1.1579692363739014e-04,
- 1.1920928955078125e-07, -1.2117624282836914e-04,
- 2.8371810913085938e-05}, /* L872 */
-{2.3807578086853027e+00, 1.2390315532684326e-04,
- 1.1920928955078125e-07, 7.0691108703613281e-05,
- 5.6028366088867188e-06}, /* L873 */
-{2.3030762672424316e+00, 1.1999253183603287e-04,
- 1.1920928955078125e-07, -4.7743320465087891e-05,
- 1.0728836059570312e-05}, /* L874 */
-{3.5347509384155273e+00, 1.8436275422573090e-04,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -1.3113021850585938e-06}, /* L875 */
-{2.3561933040618896e+00, 1.2320280075073242e-04,
- 1.1920928955078125e-07, -5.1897764205932617e-04,
- -1.2090206146240234e-03}, /* L876 */
-{2.1131026744842529e+00, 1.1048390297219157e-04,
- 1.1920928955078125e-07, 2.2172927856445312e-05,
- -9.6201896667480469e-05}, /* L877 */
-{1.8844668865203857e+00, 9.8630785942077637e-05,
- 1.1920928955078125e-07, 1.3589859008789062e-05,
- 8.8214874267578125e-06}, /* L878 */
-{2.3148846626281738e+00, 1.2132525444030762e-04,
- 1.1920928955078125e-07, 1.1003017425537109e-04,
- -8.2015991210937500e-05}, /* L879 */
-{1.5947893857955933e+00, 8.3848834037780762e-05,
- 1.1920928955078125e-07, 9.9349021911621094e-04,
- 3.4677982330322266e-04}, /* L880 */
-{2.1570847034454346e+00, 1.1342763900756836e-04,
- 1.1920928955078125e-07, 1.7213821411132812e-04,
- 4.6372413635253906e-05}, /* L881 */
-{1.6580779552459717e+00, 8.7261199951171875e-05,
- 1.1920928955078125e-07, -1.3893842697143555e-04,
- -2.7960538864135742e-04}, /* L882 */
-{3.6699147224426270e+00, 1.9323825836181641e-04,
- 1.1920928955078125e-07, 9.8586082458496094e-05,
- 2.2971630096435547e-04}, /* L883 */
-{2.3332619667053223e+00, 1.2296438217163086e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 8.8214874267578125e-05}, /* L884 */
-{3.4162259101867676e+00, 1.8027424812316895e-04,
- 1.1920928955078125e-07, 1.2671947479248047e-04,
- 4.0411949157714844e-05}, /* L885 */
-{2.4479737281799316e+00, 1.2931227684020996e-04,
- 1.1920928955078125e-07, -4.1127204895019531e-05,
- 3.4093856811523438e-05}, /* L886 */
-{2.4849040508270264e+00, 1.3139843940734863e-04,
- 1.1920928955078125e-07, -4.8875808715820312e-05,
- 2.8371810913085938e-05}, /* L887 */
-{1.9196724891662598e+00, 1.0161101818084717e-04,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -1.6033649444580078e-05}, /* L888 */
-{2.1283452510833740e+00, 1.1280179023742676e-04,
- 1.1920928955078125e-07, -3.3497810363769531e-05,
- -1.0728836059570312e-05}, /* L889 */
-{2.1093358993530273e+00, 1.1190772056579590e-04,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -2.3245811462402344e-06}, /* L890 */
-{2.6136631965637207e+00, 1.3895332813262939e-04,
- 1.1920928955078125e-07, -1.3351440429687500e-04,
- 4.3225288391113281e-04}, /* L891 */
-{1.9454886913299561e+00, 1.0344572365283966e-04,
- 1.1920928955078125e-07, -1.7225742340087891e-05,
- 1.3470649719238281e-05}, /* L892 */
-{2.4386856555938721e+00, 1.2981891632080078e-04,
- 1.1920928955078125e-07, -3.6597251892089844e-05,
- -2.5629997253417969e-06}, /* L893 */
-{1.8367061614990234e+00, 9.7960233688354492e-05,
- 1.1920928955078125e-07, -1.4472007751464844e-04,
- 5.4943561553955078e-04}, /* L894 */
-{3.2065422534942627e+00, 1.7115473747253418e-04,
- 1.1920928955078125e-07, 3.7109851837158203e-04,
- -1.1157989501953125e-04}, /* L895 */
-{2.1621901988983154e+00, 1.1548399925231934e-04,
- 1.1920928955078125e-07, 2.6822090148925781e-05,
- 1.2516975402832031e-05}, /* L896 */
-{2.5777149200439453e+00, 1.3786554336547852e-04,
- 1.1920928955078125e-07, 7.2002410888671875e-05,
- 1.9145011901855469e-04}, /* L897 */
-{1.7790298461914062e+00, 9.5248222351074219e-05,
- 1.1920928955078125e-07, 2.3484230041503906e-05,
- -1.6278028488159180e-04}, /* L898 */
-{2.7658085823059082e+00, 1.4826655387878418e-04,
- 1.1920928955078125e-07, -7.3015689849853516e-05,
- -7.0929527282714844e-06}, /* L899 */
-{1.9058766365051270e+00, 1.0225176811218262e-04,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- -2.4735927581787109e-05}, /* L900 */
-{2.7180824279785156e+00, 1.4628330245614052e-04,
- 1.1920928955078125e-07, 7.4625015258789062e-04,
- 5.4001808166503906e-04}, /* L901 */
-{1.8777757883071899e+00, 1.0100007057189941e-04,
- 1.1920928955078125e-07, 3.0517578125000000e-05,
- -9.2148780822753906e-05}, /* L902 */
-{2.5312402248382568e+00, 1.3625621795654297e-04,
- 1.1920928955078125e-07, -6.4373016357421875e-06,
- 3.1471252441406250e-05}, /* L903 */
-{2.4145874977111816e+00, 1.3023614883422852e-04,
- 1.1920928955078125e-07, 4.1317939758300781e-04,
- 2.0754337310791016e-04}, /* L904 */
-{2.5403666496276855e+00, 1.3712048530578613e-04,
- 1.1920928955078125e-07, -3.3980607986450195e-04,
- 2.2649765014648438e-05}, /* L905 */
-{2.3182437419891357e+00, 1.2519955635070801e-04,
- 1.1920928955078125e-07, 1.4901161193847656e-05,
- -4.7206878662109375e-05}, /* L906 */
-{2.7781753540039062e+00, 1.5020370483398438e-04,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- -7.6293945312500000e-06}, /* L907 */
-{2.3972797393798828e+00, 1.2980401515960693e-04,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- 1.2600421905517578e-04}, /* L908 */
-{2.6933176517486572e+00, 1.4597550034523010e-04,
- 1.1920928955078125e-07, -5.3763389587402344e-05,
- -1.1980533599853516e-05}, /* L909 */
-{2.5247848033905029e+00, 1.3698637485504150e-04,
- 1.1920928955078125e-07, 6.0677528381347656e-05,
- 8.0704689025878906e-05}, /* L910 */
-{2.9228701591491699e+00, 1.5911459922790527e-04,
- 1.1920928955078125e-07, -8.2874298095703125e-04,
- -6.9284439086914062e-04}, /* L911 */
-{1.9770034551620483e+00, 1.0761618614196777e-04,
- 1.1920928955078125e-07, 6.1035156250000000e-04,
- 1.9669532775878906e-05}, /* L912 */
-{2.6018774509429932e+00, 1.4162063598632812e-04,
- 1.1920928955078125e-07, -4.6074390411376953e-05,
- 7.4982643127441406e-05}, /* L913 */
-{1.8861083984375000e+00, 1.0276585817337036e-04,
- 1.1920928955078125e-07, -1.0073184967041016e-05,
- -8.4638595581054688e-06}, /* L914 */
-{3.0955219268798828e+00, 1.6891956329345703e-04,
- 1.1920928955078125e-07, -1.4477968215942383e-04,
- 1.2278556823730469e-05}, /* L915 */
-{1.8754351139068604e+00, 1.0281801223754883e-04,
- 1.1920928955078125e-07, 2.1791458129882812e-04,
- -1.0464787483215332e-03}, /* L916 */
-{2.5912709236145020e+00, 1.4165043830871582e-04,
- 1.1920928955078125e-07, -6.4373016357421875e-05,
- 3.8981437683105469e-05}, /* L917 */
-{1.7696588039398193e+00, 9.7244977951049805e-05,
- 1.1920928955078125e-07, 8.7010860443115234e-04,
- 2.3247003555297852e-03}, /* L918 */
-{2.6782662868499756e+00, 1.4686584472656250e-04,
- 1.1920928955078125e-07, -6.0856342315673828e-05,
- -3.0356645584106445e-04}, /* L919 */
-{1.5951299667358398e+00, 8.7499618530273438e-05,
- 1.1920928955078125e-07, 3.7550926208496094e-05,
- 1.5819072723388672e-04}, /* L920 */
-{3.9940190315246582e+00, 2.1934509277343750e-04,
- 1.1920928955078125e-07, 4.7087669372558594e-05,
- -1.5890598297119141e-04}, /* L921 */
-{2.2927627563476562e+00, 1.2604519724845886e-04,
- 1.1920928955078125e-07, 1.6617774963378906e-04,
- 3.1387805938720703e-04}, /* L922 */
-{3.0911669731140137e+00, 1.7027184367179871e-04,
- 1.1920928955078125e-07, -4.3702125549316406e-04,
- -6.8551301956176758e-04}, /* L923 */
-{1.7874430418014526e+00, 9.8586082458496094e-05,
- 1.1920928955078125e-07, 6.4289569854736328e-04,
- 6.5529346466064453e-04}, /* L924 */
-{2.1385571956634521e+00, 1.1792406439781189e-04,
- 1.1920928955078125e-07, -2.4020671844482422e-05,
- 3.9339065551757812e-06}, /* L925 */
-{2.5630443096160889e+00, 1.4149397611618042e-04,
- 1.1920928955078125e-07, 5.8770179748535156e-05,
- 1.2612342834472656e-04}, /* L926 */
-{2.2913172245025635e+00, 1.2665987014770508e-04,
- 1.1920928955078125e-07, 9.0718269348144531e-05,
- -3.2186508178710938e-05}, /* L927 */
-{2.3807313442230225e+00, 1.3181567192077637e-04,
- 1.1920928955078125e-07, -2.6363134384155273e-04,
- 1.2636184692382812e-04}, /* L928 */
-{2.9552285671234131e+00, 1.6370415687561035e-04,
- 1.1920928955078125e-07, 1.8596649169921875e-04,
- -1.0895729064941406e-04}, /* L929 */
-{1.6572691202163696e+00, 9.1969966888427734e-05,
- 1.1920928955078125e-07, 6.7710876464843750e-05,
- -1.9013881683349609e-05}, /* L930 */
-{3.1323144435882568e+00, 1.7383694648742676e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 2.8610229492187500e-06}, /* L931 */
-{1.6867069005966187e+00, 9.3773007392883301e-05,
- 1.1920928955078125e-07, 2.8133392333984375e-05,
- 1.1885166168212891e-04}, /* L932 */
-{2.9133865833282471e+00, 1.6203522682189941e-04,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 5.3644180297851562e-05}, /* L933 */
-{2.3112335205078125e+00, 1.2868642807006836e-04,
- 1.1920928955078125e-07, -3.6597251892089844e-05,
- -8.7141990661621094e-05}, /* L934 */
-{2.5138881206512451e+00, 1.4011561870574951e-04,
- 1.1920928955078125e-07, 9.2983245849609375e-06,
- 3.1232833862304688e-05}, /* L935 */
-{1.9361759424209595e+00, 1.0851025581359863e-04,
- 1.1920928955078125e-07, 3.1638145446777344e-04,
- -1.0213255882263184e-03}, /* L936 */
-{3.1475715637207031e+00, 1.7592310905456543e-04,
- 1.1920928955078125e-07, 9.0003013610839844e-05,
- 5.9604644775390625e-05}, /* L937 */
-{2.6926772594451904e+00, 1.5056878328323364e-04,
- 1.1920928955078125e-07, -6.8783760070800781e-05,
- 7.9870223999023438e-06}, /* L938 */
-{2.5313024520874023e+00, 1.4168024063110352e-04,
- 1.1920928955078125e-07, 1.2397766113281250e-05,
- 1.5974044799804688e-05}, /* L939 */
-{1.9376578330993652e+00, 1.0867789387702942e-04,
- 1.1920928955078125e-07, -2.1380186080932617e-04,
- -2.0164251327514648e-04}, /* L940 */
-{2.4387421607971191e+00, 1.3679265975952148e-04,
- 1.1920928955078125e-07, -5.8472156524658203e-05,
- 7.3909759521484375e-06}, /* L941 */
-{2.0019938945770264e+00, 1.1241436004638672e-04,
- 1.1920928955078125e-07, -4.6849250793457031e-05,
- 1.2516975402832031e-05}, /* L942 */
-{2.6084067821502686e+00, 1.4693289995193481e-04,
- 1.1920928955078125e-07, 2.1600723266601562e-04,
- 4.0256977081298828e-04}, /* L943 */
-{2.0215182304382324e+00, 1.1375546455383301e-04,
- 1.1920928955078125e-07, 7.7486038208007812e-06,
- 9.2983245849609375e-06}, /* L944 */
-{2.6222875118255615e+00, 1.4773011207580566e-04,
- 1.1920928955078125e-07, -4.4882297515869141e-05,
- -1.3113021850585938e-06}, /* L945 */
-{2.0794596672058105e+00, 1.1727213859558105e-04,
- 1.1920928955078125e-07, -1.4603137969970703e-05,
- -1.4007091522216797e-05}, /* L946 */
-{3.2652111053466797e+00, 1.8432736396789551e-04,
- 1.1920928955078125e-07, -3.3676624298095703e-05,
- -2.4557113647460938e-05}, /* L947 */
-{1.5788738727569580e+00, 8.9228153228759766e-05,
- 1.1920928955078125e-07, 6.6399574279785156e-05,
- 5.1259994506835938e-05}, /* L948 */
-{2.6564276218414307e+00, 1.5027821063995361e-04,
- 1.1920928955078125e-07, -2.0682811737060547e-05,
- 3.3855438232421875e-05}, /* L949 */
-{1.9548366069793701e+00, 1.1070072650909424e-04,
- 1.1920928955078125e-07, -2.3782253265380859e-05,
- 3.0994415283203125e-06}, /* L950 */
-{3.4939458370208740e+00, 1.9806623458862305e-04,
- 1.1920928955078125e-07, 6.8068504333496094e-05,
- -1.0251998901367188e-05}, /* L951 */
-{1.8456555604934692e+00, 1.0474771261215210e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 1.1086463928222656e-05}, /* L952 */
-{2.4174377918243408e+00, 1.3734400272369385e-04,
- 1.1920928955078125e-07, 4.9471855163574219e-05,
- 5.4240226745605469e-05}, /* L953 */
-{1.5730842351913452e+00, 8.9496374130249023e-05,
- 1.1920928955078125e-07, -3.7789344787597656e-05,
- 1.5401840209960938e-04}, /* L954 */
-{3.2439517974853516e+00, 1.8468499183654785e-04,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- 1.6999244689941406e-04}, /* L955 */
-{1.9464484453201294e+00, 1.1101365089416504e-04,
- 1.1920928955078125e-07, -4.4035911560058594e-04,
- 1.5354156494140625e-04}, /* L956 */
-{3.0315759181976318e+00, 1.7297267913818359e-04,
- 1.1920928955078125e-07, -1.0710954666137695e-04,
- -1.2099742889404297e-04}, /* L957 */
-{2.3561677932739258e+00, 1.3455958105623722e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- 4.4584274291992188e-05}, /* L958 */
-{3.2325105667114258e+00, 1.8478929996490479e-04,
- 1.1920928955078125e-07, 7.7486038208007812e-06,
- -2.5629997253417969e-06}, /* L959 */
-{2.2093036174774170e+00, 1.2645125389099121e-04,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- 1.5437602996826172e-04}, /* L960 */
-{2.5724461078643799e+00, 1.4737248420715332e-04,
- 1.1920928955078125e-07, -4.4286251068115234e-05,
- -3.7610530853271484e-05}, /* L961 */
-{2.0313313007354736e+00, 1.1648237705230713e-04,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- -1.2755393981933594e-05}, /* L962 */
-{2.5995750427246094e+00, 1.4925003051757812e-04,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- 9.7274780273437500e-05}, /* L963 */
-{1.8704653978347778e+00, 1.0748207569122314e-04,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -1.1861324310302734e-05}, /* L964 */
-{2.7288212776184082e+00, 1.5701353549957275e-04,
- 1.1920928955078125e-07, -3.1352043151855469e-05,
- 1.1920928955078125e-06}, /* L965 */
-{2.2122416496276855e+00, 1.2764334678649902e-04,
- 1.1920928955078125e-07, 2.7871131896972656e-04,
- 3.5881996154785156e-05}, /* L966 */
-{3.1099154949188232e+00, 1.7926096916198730e-04,
- 1.1920928955078125e-07, -1.3947486877441406e-05,
- 1.2755393981933594e-05}, /* L967 */
-{2.4467654228210449e+00, 1.4130026102066040e-04,
- 1.1920928955078125e-07, -2.6881694793701172e-05,
- 4.6968460083007812e-05}, /* L968 */
-{3.0829267501831055e+00, 1.7812848091125488e-04,
- 1.1920928955078125e-07, -1.1247396469116211e-04,
- -9.1314315795898438e-05}, /* L969 */
-{1.9841572046279907e+00, 1.1475384235382080e-04,
- 1.1920928955078125e-07, -3.7729740142822266e-05,
- -7.2240829467773438e-05}, /* L970 */
-{2.5353126525878906e+00, 1.4686584472656250e-04,
- 1.1920928955078125e-07, 7.3432922363281250e-05,
- -3.5423040390014648e-04}, /* L971 */
-{1.8345459699630737e+00, 1.0631233453750610e-04,
- 1.1920928955078125e-07, 3.4093856811523438e-05,
- -5.1379203796386719e-05}, /* L972 */
-{2.7593464851379395e+00, 1.6006827354431152e-04,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- -1.9609928131103516e-05}, /* L973 */
-{1.9935692548751831e+00, 1.1575222015380859e-04,
- 1.1920928955078125e-07, -3.3259391784667969e-05,
- -1.6093254089355469e-05}, /* L974 */
-{2.9771120548248291e+00, 1.7304718494415283e-04,
- 1.1920928955078125e-07, 7.8916549682617188e-05,
- 5.3644180297851562e-06}, /* L975 */
-{1.8943487405776978e+00, 1.1020898818969727e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-05,
- 9.8943710327148438e-06}, /* L976 */
-{2.7762711048126221e+00, 1.6170740127563477e-04,
- 1.1920928955078125e-07, 4.4822692871093750e-05,
- -4.4107437133789062e-05}, /* L977 */
-{2.4248688220977783e+00, 1.4136731624603271e-04,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -1.0550022125244141e-05}, /* L978 */
-{3.3294036388397217e+00, 1.9431114196777344e-04,
- 1.1920928955078125e-07, 9.8943710327148438e-06,
- 8.5592269897460938e-05}, /* L979 */
-{1.7285628318786621e+00, 1.0100007057189941e-04,
- 1.1920928955078125e-07, -9.2029571533203125e-05,
- 1.1610984802246094e-04}, /* L980 */
-{3.7977769374847412e+00, 2.2211670875549316e-04,
- 1.1920928955078125e-07, 8.6307525634765625e-05,
- -6.2823295593261719e-05}, /* L981 */
-{1.7289311885833740e+00, 1.0120868682861328e-04,
- 1.1920928955078125e-07, -5.1259994506835938e-06,
- 2.9206275939941406e-05}, /* L982 */
-{2.7724754810333252e+00, 1.6245245933532715e-04,
- 1.1920928955078125e-07, -1.6570091247558594e-05,
- 2.6106834411621094e-05}, /* L983 */
-{1.6386578083038330e+00, 9.6127390861511230e-05,
- 1.1920928955078125e-07, -1.9550323486328125e-05,
- 6.7472457885742188e-05}, /* L984 */
-{3.0459799766540527e+00, 1.7888844013214111e-04,
- 1.1920928955078125e-07, -1.8090009689331055e-04,
- 7.7486038208007812e-06}, /* L985 */
-{1.9777216911315918e+00, 1.1625885963439941e-04,
- 1.1920928955078125e-07, 1.1491775512695312e-04,
- 3.0040740966796875e-05}, /* L986 */
-{2.6481158733367920e+00, 1.5583634376525879e-04,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -1.3631582260131836e-04}, /* L987 */
-{2.8040018081665039e+00, 1.6513466835021973e-04,
- 1.1920928955078125e-07, 3.8385391235351562e-05,
- 3.3855438232421875e-05}, /* L988 */
-{3.0401632785797119e+00, 1.7924606800079346e-04,
- 1.1920928955078125e-07, -9.1135501861572266e-05,
- 1.1801719665527344e-04}, /* L989 */
-{2.3593602180480957e+00, 1.3924203813076019e-04,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -1.0722875595092773e-04}, /* L990 */
-{2.7796792984008789e+00, 1.6427040100097656e-04,
- 1.1920928955078125e-07, -9.3460083007812500e-05,
- -4.1961669921875000e-05}, /* L991 */
-{2.2286057472229004e+00, 1.3178586959838867e-04,
- 1.1920928955078125e-07, -3.1173229217529297e-05,
- -1.5139579772949219e-05}, /* L992 */
-{2.4796242713928223e+00, 1.4684163033962250e-04,
- 1.1920928955078125e-07, -3.2067298889160156e-04,
- 1.9073486328125000e-05}, /* L993 */
-{2.3759257793426514e+00, 1.4081597328186035e-04,
- 1.1920928955078125e-07, 8.8214874267578125e-05,
- -1.1223554611206055e-04}, /* L994 */
-{3.2865273952484131e+00, 1.9497796893119812e-04,
- 1.1920928955078125e-07, -8.9526176452636719e-05,
- -1.5199184417724609e-04}, /* L995 */
-{2.0007770061492920e+00, 1.1879205703735352e-04,
- 1.1920928955078125e-07, -2.5331974029541016e-05,
- 2.1576881408691406e-05}, /* L996 */
-{2.7103550434112549e+00, 1.6108155250549316e-04,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- -7.1525573730468750e-07}, /* L997 */
-{2.8120162487030029e+00, 1.6736239194869995e-04,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 1.2373924255371094e-04}, /* L998 */
-{2.9577646255493164e+00, 1.7623230814933777e-04,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 5.9604644775390625e-07}, /* L999 */
-{1.9483228921890259e+00, 1.1613965034484863e-04,
- 1.1920928955078125e-07, 2.4437904357910156e-05,
- -3.2722949981689453e-05}, /* L1000 */
-{3.8359737396240234e+00, 4.5746564865112305e-04,
- 1.1920928955078125e-07, -1.3399124145507812e-04,
- 8.0108642578125000e-05}, /* L1001 */
-{5.8567981719970703e+00, 1.0477304458618164e-03,
- 1.1920928955078125e-07, -3.1220912933349609e-04,
- -1.6033649444580078e-05}, /* L1002 */
-{5.4170632362365723e+00, 1.3025403022766113e-03,
- 1.1920928955078125e-07, -2.4390220642089844e-04,
- -6.3204765319824219e-04}, /* L1003 */
-{9.3633270263671875e+00, 2.7925223112106323e-03,
- 1.1920928955078125e-07, -7.6413154602050781e-05,
- -7.6889991760253906e-06}, /* L1004 */
-{9.4667501449584961e+00, 3.3883601427078247e-03,
- 1.1920928955078125e-07, -2.5510787963867188e-05,
- -6.3002109527587891e-05}, /* L1005 */
-{1.2134570121765137e+01, 5.1215887069702148e-03,
- 1.1920928955078125e-07, 1.6582012176513672e-04,
- 1.0722875595092773e-03}, /* L1006 */
-{1.0536856651306152e+01, 5.0501525402069092e-03,
- 1.1920928955078125e-07, -1.5735626220703125e-04,
- 5.2344799041748047e-04}, /* L1007 */
-{1.2359709739685059e+01, 7.2830915451049805e-03,
- 1.1920928955078125e-07, -1.6933679580688477e-03,
- 1.7970919609069824e-02}, /* L1008 */
-{1.4585222244262695e+01, 8.7253600358963013e-03,
- 1.1920928955078125e-07, -1.4744997024536133e-03,
- 4.3809413909912109e-04}, /* L1009 */
-#endif /* } */
-
-/* Always the last one. Common to both DP and SP */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1010 */
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SINGDOUB64_SS12_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64_ss12u1.h b/usr/src/cmd/fps/fptest/singdoub64_ss12u1.h
deleted file mode 100644
index 3eea12a8e2..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64_ss12u1.h
+++ /dev/null
@@ -1,6113 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef LAPACK_V9A_SS13
-#define LAPACK_V9A_SS13
-
-/* 64-bit golden values for V9A/SS13 Lapack */
-
-
-static struct LinpVals LinpValsA[] = {
-
-#ifdef DP /* { */
-
-/* Start of DP golden values */
-
-
-{, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, /* L0 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{8.4318439831303504e-01, 3.0808688933348094e-15,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 1.1102230246251565e-15}, /* L33 */
-{9.7321442476194397e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 2.2204460492503131e-16}, /* L34 */
-{1.4583044708110673e+00, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -4.4408920985006262e-16}, /* L35 */
-{8.0446023793208044e-01, 3.2127078775090467e-15,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- 1.9984014443252818e-14}, /* L36 */
-{5.3420930866356575e-01, 2.1926904736346842e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -5.5511151231257827e-16}, /* L37 */
-{4.6747763286447808e-01, 1.9706458687096529e-15,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.5543122344752192e-15}, /* L38 */
-{9.8796645269880079e-01, 4.2743586448068527e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 1.3322676295501878e-15}, /* L39 */
-{6.1611576753753372e-01, 2.7339241981394480e-15,
- 2.2204460492503131e-16, -9.5390362275793450e-13,
- 2.3319124409226788e-12}, /* L40 */
-{6.2244703022421788e-01, 2.8310687127941492e-15,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 2.1982415887578100e-14}, /* L41 */
-{8.7271897456624437e-01, 4.0661918276896358e-15,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -9.8809849191638932e-15}, /* L42 */
-{6.8659341819991870e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- -2.9976021664879227e-15}, /* L43 */
-{7.2500932497707793e-01, 3.5388358909926865e-15,
- 2.2204460492503131e-16, -1.1657341758564144e-14,
- 4.2188474935755949e-15}, /* L44 */
-{8.8403751416813714e-01, 4.4131365228849972e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -1.2101430968414206e-14}, /* L45 */
-{6.3093735629719305e-01, 3.2196467714129540e-15,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- -3.3306690738754696e-15}, /* L46 */
-{9.2094634655374696e-01, 4.8017145815038020e-15,
- 2.2204460492503131e-16, -1.9872992140790302e-14,
- 1.3322676295501878e-15}, /* L47 */
-{7.9229777213175645e-01, 4.2188474935755949e-15,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- 1.2212453270876722e-14}, /* L48 */
-{6.0205010610116116e-01, 3.2751579226442118e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 1.3322676295501878e-15}, /* L49 */
-{1.3500208311387045e+00, 7.4940054162198066e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- -1.9984014443252818e-15}, /* L50 */
-{1.1666846688849217e+00, 6.6058269965196814e-15,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- 9.3702823278363212e-14}, /* L51 */
-{1.0480930953997019e+00, 6.0507154842071031e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- 9.9920072216264089e-15}, /* L52 */
-{8.8208908253996454e-01, 5.1902926401226068e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -2.4424906541753444e-15}, /* L53 */
-{8.2408678992692186e-01, 4.9404924595819466e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.8833827526759706e-15}, /* L54 */
-{8.6364968995405822e-01, 5.2735593669694936e-15,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- -6.6613381477509392e-16}, /* L55 */
-{7.5001157285481435e-01, 4.6629367034256575e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- 8.8817841970012523e-16}, /* L56 */
-{1.2017729296036601e+00, 7.6050277186823223e-15,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 5.5511151231257827e-15}, /* L57 */
-{1.0194122814946389e+00, 6.5641936330962380e-15,
- 2.2204460492503131e-16, 2.6534330288541241e-13,
- 1.6364687382974807e-13}, /* L58 */
-{9.9577807695415899e-01, 6.5225602696727947e-15,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- 3.7747582837255322e-15}, /* L59 */
-{8.5001311590214701e-01, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.5543122344752192e-15}, /* L60 */
-{9.2624380035615839e-01, 6.2727600891321345e-15,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -9.2481577951275540e-14}, /* L61 */
-{1.5242170674146556e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 3.9968028886505635e-15}, /* L62 */
-{8.9981547166579190e-01, 6.2935767708438561e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 4.4408920985006262e-16}, /* L63 */
-{7.6563681395596928e-01, 5.4400928206632670e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 1.6875389974302379e-14}, /* L64 */
-{9.1155252700817435e-01, 6.5780714209040525e-15,
- 2.2204460492503131e-16, -5.8841820305133297e-15,
- -1.3322676295501878e-15}, /* L65 */
-{8.6364968995405356e-01, 6.3282712403633923e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -1.3322676295501878e-15}, /* L66 */
-{1.0447922407927950e+00, 7.7715611723760958e-15,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- 4.8849813083506888e-15}, /* L67 */
-{7.8677684603399289e-01, 5.9396931817445875e-15,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- -2.9976021664879227e-15}, /* L68 */
-{1.2246565778977070e+00, 9.3813845580825728e-15,
- 2.2204460492503131e-16, 1.5032419753424620e-13,
- 3.1863400806741993e-13}, /* L69 */
-{1.6214535908385190e+00, 1.2601031329495527e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.2212453270876722e-15}, /* L70 */
-{9.7184598172736347e-01, 7.6605388699135801e-15,
- 2.2204460492503131e-16, -1.9206858326015208e-14,
- -1.0325074129013956e-14}, /* L71 */
-{8.4723529526194563e-01, 6.7723604502134549e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 4.2188474935755949e-15}, /* L72 */
-{1.3493358890629930e+00, 1.0935696792557792e-14,
- 2.2204460492503131e-16, -1.8318679906315083e-14,
- 5.1070259132757201e-15}, /* L73 */
-{1.1790722474159370e+00, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -7.1054273576010019e-15}, /* L74 */
-{1.0000154304731115e+00, 8.3266726846886741e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -5.3290705182007514e-15}, /* L75 */
-{9.9672590603067746e-01, 8.4099394115355608e-15,
- 2.2204460492503131e-16, -5.6510351953420468e-14,
- -4.3631764867768652e-14}, /* L76 */
-{1.8831459405013156e+00, 1.6098233857064770e-14,
- 2.2204460492503131e-16, -1.2212453270876722e-15,
- -1.9984014443252818e-15}, /* L77 */
-{1.1538639582381141e+00, 9.9920072216264089e-15,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 4.2410519540680980e-14}, /* L78 */
-{9.2090028565720605e-01, 8.0768725041480138e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -6.4392935428259079e-15}, /* L79 */
-{1.0812666841987244e+00, 9.6034291630076041e-15,
- 2.2204460492503131e-16, 1.5609735726229701e-13,
- 4.5519144009631418e-14}, /* L80 */
-{9.4445901766904117e-01, 8.4932061383824475e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 1.1768364061026659e-14}, /* L81 */
-{1.1158708766864638e+00, 1.0158540675320182e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -1.7763568394002505e-15}, /* L82 */
-{1.3976119269262395e+00, 1.2878587085651816e-14,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -9.8809849191638932e-15}, /* L83 */
-{1.1964470328874373e+00, 1.1157741397482823e-14,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -7.4384942649885488e-15}, /* L84 */
-{1.5279647533258061e+00, 1.4419021532319221e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 1.3322676295501878e-15}, /* L85 */
-{1.0581558624773642e+00, 1.0103029524088925e-14,
- 2.2204460492503131e-16, -2.5535129566378600e-15,
- 2.2204460492503131e-15}, /* L86 */
-{1.3391011224150913e+00, 1.2934098236883074e-14,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- -1.2878587085651816e-14}, /* L87 */
-{1.1306992651372059e+00, 1.1046719095020308e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -1.8873791418627661e-15}, /* L88 */
-{1.2584463844155744e+00, 1.2434497875801753e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 8.8817841970012523e-16}, /* L89 */
-{1.4757172151078655e+00, 1.4745149545802860e-14,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 2.1094237467877974e-14}, /* L90 */
-{9.5880600339315103e-01, 9.6866958898544908e-15,
- 2.2204460492503131e-16, 1.2434497875801753e-14,
- 2.6645352591003757e-14}, /* L91 */
-{1.0407769289978044e+00, 1.0630385460785874e-14,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- -2.7755575615628914e-15}, /* L92 */
-{1.3226010532063741e+00, 1.3655743202889425e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- 1.9984014443252818e-15}, /* L93 */
-{9.5480196686123875e-01, 9.9642516460107800e-15,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.5543122344752192e-15}, /* L94 */
-{1.3822581706736938e+00, 1.4578616092109087e-14,
- 2.2204460492503131e-16, 8.4376949871511897e-15,
- -5.1070259132757201e-15}, /* L95 */
-{1.9166962417400433e+00, 2.0428103653102880e-14,
- 2.2204460492503131e-16, -3.7747582837255322e-15,
- -3.1086244689504383e-15}, /* L96 */
-{1.2371324913069346e+00, 1.3322676295501878e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 6.6613381477509392e-15}, /* L97 */
-{8.9797303960849595e-01, 9.7699626167013776e-15,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -1.1102230246251565e-15}, /* L98 */
-{1.4040620690480938e+00, 1.5432100042289676e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 1.3322676295501878e-15}, /* L99 */
-{1.2800197510055726e+00, 1.4210854715202004e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 5.7731597280508140e-15}, /* L100 */
-{1.5198254314615605e+00, 1.7041923427996153e-14,
- 2.2204460492503131e-16, -1.7097434579227411e-14,
- 2.8865798640254070e-15}, /* L101 */
-{1.0593760277936337e+00, 1.1996480198117609e-14,
- 2.2204460492503131e-16, -6.1062266354383610e-15,
- -1.5543122344752192e-15}, /* L102 */
-{9.8059765512410590e-01, 1.1213252548714081e-14,
- 2.2204460492503131e-16, -1.2989609388114332e-14,
- 3.3306690738754696e-15}, /* L103 */
-{1.1184066803548092e+00, 1.2913281555171352e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-15,
- 1.1546319456101628e-14}, /* L104 */
-{1.4190695156236912e+00, 1.6542323066914832e-14,
- 2.2204460492503131e-16, -3.1641356201816961e-14,
- -6.1062266354383610e-15}, /* L105 */
-{9.9529837655541686e-01, 1.1712852909795402e-14,
- 2.2204460492503131e-16, 4.6851411639181606e-14,
- -1.0380585280245214e-13}, /* L106 */
-{1.7804013037862301e+00, 2.1149748619109232e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 7.3274719625260332e-15}, /* L107 */
-{1.2916865976944309e+00, 1.5487611193520934e-14,
- 2.2204460492503131e-16, 7.7715611723760958e-15,
- 1.4654943925052066e-14}, /* L108 */
-{1.0527685380438851e+00, 1.2739809207573671e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -5.3290705182007514e-15}, /* L109 */
-{1.0727438254166126e+00, 1.3100631690576847e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -2.2204460492503131e-15}, /* L110 */
-{1.6441695140661536e+00, 2.0261570199409107e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -5.6621374255882984e-15}, /* L111 */
-{1.4509152451060254e+00, 1.8041124150158794e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -2.2426505097428162e-14}, /* L112 */
-{1.1725844649352746e+00, 1.4710455076283324e-14,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 8.6597395920762210e-15}, /* L113 */
-{1.0033049549154456e+00, 1.2698175844150228e-14,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 3.9968028886505635e-15}, /* L114 */
-{1.5000231457096496e+00, 1.9151347174783950e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -1.4432899320127035e-15}, /* L115 */
-{8.9279394843423010e-01, 1.1497747198774277e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- -1.1990408665951691e-14}, /* L116 */
-{1.5042967159233618e+00, 1.9539925233402755e-14,
- 2.2204460492503131e-16, -2.7056135110115065e-13,
- -2.5757174171303632e-13}, /* L117 */
-{1.3474784190248486e+00, 1.7652546091539989e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -1.9443335830260366e-12}, /* L118 */
-{9.4119099338644763e-01, 1.2434497875801753e-14,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- -2.1094237467877974e-15}, /* L119 */
-{1.7194275728381851e+00, 2.2907023500273738e-14,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- -7.5495165674510645e-15}, /* L120 */
-{1.1518772778689883e+00, 1.5473733405713119e-14,
- 2.2204460492503131e-16, 5.4178883601707639e-14,
- -3.8413716652030416e-14}, /* L121 */
-{1.3360861898943925e+00, 1.8096635301390052e-14,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- -3.4416913763379853e-15}, /* L122 */
-{1.1829450823886922e+00, 1.6153745008296028e-14,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- -1.9317880628477724e-14}, /* L123 */
-{1.5010312257805758e+00, 2.0664026045835726e-14,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 5.4845017416482733e-14}, /* L124 */
-{1.1720180845143169e+00, 1.6264767310758543e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-14,
- 3.3750779948604759e-14}, /* L125 */
-{1.6666923841217633e+00, 2.3314683517128287e-14,
- 2.2204460492503131e-16, 4.3520742565306136e-14,
- -6.3282712403633923e-15}, /* L126 */
-{1.4389985820389368e+00, 2.0289325775024736e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -4.0301095793893182e-14}, /* L127 */
-{1.2754103048807188e+00, 1.8124390877005681e-14,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 6.6613381477509392e-16}, /* L128 */
-{1.4728909441076405e+00, 2.1094237467877974e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- 3.0864200084579352e-14}, /* L129 */
-{1.8423361199869592e+00, 2.6589841439772499e-14,
- 2.2204460492503131e-16, -2.1649348980190553e-14,
- -1.7652546091539989e-14}, /* L130 */
-{1.7175837546289456e+00, 2.4980018054066022e-14,
- 2.2204460492503131e-16, -6.5059069243034173e-14,
- -1.1546319456101628e-14}, /* L131 */
-{1.5094929888012547e+00, 2.2121193765656244e-14,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- -5.5511151231257827e-16}, /* L132 */
-{1.4812258631818391e+00, 2.1871393585115584e-14,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- 5.4400928206632670e-14}, /* L133 */
-{2.1977951065248100e+00, 3.2696068075210860e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -8.4376949871511897e-15}, /* L134 */
-{1.1889072340069056e+00, 1.7819079545233762e-14,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- -4.1078251911130792e-15}, /* L135 */
-{1.7610565852814140e+00, 2.6589841439772499e-14,
- 2.2204460492503131e-16, -7.6272321791748254e-14,
- -3.0642155479654321e-14}, /* L136 */
-{1.7591512317081397e+00, 2.6756374893466273e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- 2.6645352591003757e-15}, /* L137 */
-{2.3614494811986848e+00, 3.6179392814972289e-14,
- 2.2204460492503131e-16, -3.4749980670767400e-14,
- -1.0991207943789050e-14}, /* L138 */
-{1.6259243689706477e+00, 2.5091040356528538e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -9.3258734068513149e-15}, /* L139 */
-{1.2660909646518197e+00, 1.9678703111480900e-14,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -2.3725466036239595e-13}, /* L140 */
-{1.5895635344310999e+00, 2.4882873539411321e-14,
- 2.2204460492503131e-16, -1.3211653993039363e-14,
- 5.1070259132757201e-15}, /* L141 */
-{1.1056508632695603e+00, 1.7430501486614958e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 7.7715611723760958e-15}, /* L142 */
-{1.5489749499983407e+00, 2.4591439995447217e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -8.8151708155237429e-14}, /* L143 */
-{1.3066607870829714e+00, 2.0889540097712711e-14,
- 2.2204460492503131e-16, -1.4543921622589551e-14,
- -4.2188474935755949e-15}, /* L144 */
-{1.1310519351557555e+00, 1.8207657603852567e-14,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 3.0198066269804258e-14}, /* L145 */
-{1.5753667740327297e+00, 2.5535129566378600e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 2.0206059048177849e-14}, /* L146 */
-{1.4864174935942889e+00, 2.4258373088059670e-14,
- 2.2204460492503131e-16, -6.9610983643997315e-14,
- -4.4408920985006262e-15}, /* L147 */
-{1.3116756448688298e+00, 2.1552204465535851e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -5.1070259132757201e-15}, /* L148 */
-{1.7114358038296786e+00, 2.8310687127941492e-14,
- 2.2204460492503131e-16, 3.0642155479654321e-14,
- 4.5297099404706387e-14}, /* L149 */
-{2.0364897568488090e+00, 3.3913843955346579e-14,
- 2.2204460492503131e-16, -4.6185277824406512e-14,
- -2.0539125955565396e-14}, /* L150 */
-{1.2980332739915474e+00, 2.1760371282653068e-14,
- 2.2204460492503131e-16, 4.1078251911130792e-14,
- 2.3536728122053319e-14}, /* L151 */
-{1.5806164945471264e+00, 2.6673108166619386e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 8.8817841970012523e-16}, /* L152 */
-{1.5425074613829926e+00, 2.6201263381153694e-14,
- 2.2204460492503131e-16, -4.6962433941644122e-14,
- -6.8056671409522096e-14}, /* L153 */
-{1.6688569196855765e+00, 2.8532731732866523e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- 1.0436096431476471e-14}, /* L154 */
-{1.8822871086485009e+00, 3.2390756743438942e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -2.5424107263916085e-14}, /* L155 */
-{1.8654133991516275e+00, 3.2307490016592055e-14,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- -5.5511151231257827e-15}, /* L156 */
-{1.5637183960582457e+00, 2.7255975254547593e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 3.2862601528904634e-14}, /* L157 */
-{1.7595208207058148e+00, 3.0864200084579352e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 1.7097434579227411e-14}, /* L158 */
-{1.6069430345020865e+00, 2.8366198279172750e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-14,
- -5.9285909514983359e-14}, /* L159 */
-{1.5562740136737514e+00, 2.7644553313166398e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 9.1038288019262836e-15}, /* L160 */
-{1.7942823445832710e+00, 3.2071567623859210e-14,
- 2.2204460492503131e-16, 2.5091040356528538e-14,
- -3.3306690738754696e-15}, /* L161 */
-{1.7515702370168520e+00, 3.1502578323738817e-14,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 8.4376949871511897e-15}, /* L162 */
-{1.7753341422891886e+00, 3.2127078775090467e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- 1.5099033134902129e-14}, /* L163 */
-{1.8529249325305224e+00, 3.3736902160796944e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -1.0769163338864018e-14}, /* L164 */
-{1.1894122923051262e+00, 2.1788126858268697e-14,
- 2.2204460492503131e-16, -1.4210854715202004e-14,
- -3.3306690738754696e-15}, /* L165 */
-{1.7620753820078119e+00, 3.2474023470285829e-14,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 2.8954616482224083e-13}, /* L166 */
-{2.1242842752113966e+00, 3.9385161798577428e-14,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- -3.2196467714129540e-14}, /* L167 */
-{2.2321773001623937e+00, 4.1633363423443370e-14,
- 2.2204460492503131e-16, 1.3367085216486885e-13,
- -8.4710016778899444e-14}, /* L168 */
-{1.4674782648362414e+00, 2.7533531010703882e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 1.3100631690576847e-14}, /* L169 */
-{1.3264910563040142e+00, 2.5035529205297280e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 1.7541523789077473e-14}, /* L170 */
-{2.4971145544562403e+00, 4.7406523151494184e-14,
- 2.2204460492503131e-16, -1.0991207943789050e-14,
- -8.3266726846886741e-15}, /* L171 */
-{1.0436207544762772e+00, 1.9928503292021560e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -4.3298697960381105e-15}, /* L172 */
-{1.6792166621527975e+00, 3.2251978865360797e-14,
- 2.2204460492503131e-16, -7.1054273576010019e-15,
- 5.3290705182007514e-15}, /* L173 */
-{1.6322090934143754e+00, 3.1530333899354446e-14,
- 2.2204460492503131e-16, 2.0317081350640365e-13,
- -2.2049029269055609e-13}, /* L174 */
-{2.5086101370152787e+00, 4.8738790781044372e-14,
- 2.2204460492503131e-16, -8.5487172896137054e-15,
- -2.8088642523016460e-14}, /* L175 */
-{1.6988898506325165e+00, 3.3195668436292181e-14,
- 2.2204460492503131e-16, -9.6589403142388619e-14,
- 4.7073456244106637e-14}, /* L176 */
-{1.7683888685765838e+00, 3.4749980670767400e-14,
- 2.2204460492503131e-16, 6.1284310959308641e-14,
- 2.8421709430404007e-14}, /* L177 */
-{1.5955302373829998e+00, 3.1530333899354446e-14,
- 2.2204460492503131e-16, -1.1901590823981678e-13,
- -1.3200551762793111e-13}, /* L178 */
-{1.7758653908470168e+00, 3.5291214395272164e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 5.8397731095283234e-14}, /* L179 */
-{1.1736292204852639e+00, 2.3453461395206432e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -1.6053824936079764e-13}, /* L180 */
-{2.2514159553467405e+00, 4.5241588253475129e-14,
- 2.2204460492503131e-16, -3.6859404417555197e-14,
- -3.8302694349567901e-14}, /* L181 */
-{1.9890416803911044e+00, 4.0190073491430667e-14,
- 2.2204460492503131e-16, -3.1530333899354446e-14,
- 1.2212453270876722e-14}, /* L182 */
-{1.8494137827908461e+00, 3.7574110489657642e-14,
- 2.2204460492503131e-16, -4.8183679268731794e-14,
- 4.4630965589931293e-14}, /* L183 */
-{2.5000385761827033e+00, 5.1070259132757201e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 1.8429702208777599e-14}, /* L184 */
-{2.2189531578855655e+00, 4.5574655160862676e-14,
- 2.2204460492503131e-16, -4.9027448767446913e-13,
- 2.4358293160275934e-13}, /* L185 */
-{2.3306811242462593e+00, 4.8128168117500536e-14,
- 2.2204460492503131e-16, 2.9753977059954195e-13,
- 1.7630341631047486e-13}, /* L186 */
-{2.3422821312684450e+00, 4.8627768478581856e-14,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- -7.6605388699135801e-15}, /* L187 */
-{1.7260904637671115e+00, 3.6026737149086330e-14,
- 2.2204460492503131e-16, 1.6564527527407336e-13,
- 2.0938806244430452e-13}, /* L188 */
-{1.8733754674700820e+00, 3.9308833965634449e-14,
- 2.2204460492503131e-16, -3.0420110874729289e-14,
- -2.8865798640254070e-15}, /* L189 */
-{1.5184444825867374e+00, 3.2029934260435766e-14,
- 2.2204460492503131e-16, -3.0309088572266774e-14,
- 2.0650148258027912e-14}, /* L190 */
-{1.8900815204229877e+00, 4.0079051188968151e-14,
- 2.2204460492503131e-16, -7.1054273576010019e-15,
- -1.3100631690576847e-14}, /* L191 */
-{1.4349179744548259e+00, 3.0586644328423063e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -5.1070259132757201e-15}, /* L192 */
-{2.2979629192475857e+00, 4.9238391142125693e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- -3.6082248300317588e-14}, /* L193 */
-{1.5876533638438366e+00, 3.4194869158454821e-14,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- 2.2204460492503131e-14}, /* L194 */
-{1.7923353484632876e+00, 3.8802294710649221e-14,
- 2.2204460492503131e-16, 9.7699626167013776e-15,
- 4.7961634663806763e-14}, /* L195 */
-{1.8922884459041780e+00, 4.1176263787523482e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 4.8405723873656825e-14}, /* L196 */
-{2.3109493640753707e+00, 5.0542903196060252e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- -1.7541523789077473e-14}, /* L197 */
-{2.2374082611088202e+00, 4.9182879990894435e-14,
- 2.2204460492503131e-16, -6.1284310959308641e-14,
- 1.9761969838327786e-14}, /* L198 */
-{1.9786737474811122e+00, 4.3715031594615539e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-13,
- -2.2315482794965646e-14}, /* L199 */
-{2.8323874544038095e+00, 6.2890664898063164e-14,
- 2.2204460492503131e-16, 1.6875389974302379e-14,
- 2.0872192862952943e-14}, /* L200 */
-{2.4428237629964049e+00, 5.4511950509095186e-14,
- 2.2204460492503131e-16, 2.2648549702353193e-14,
- 1.1324274851176597e-14}, /* L201 */
-{1.4604185742056859e+00, 3.2751579226442118e-14,
- 2.2204460492503131e-16, -7.4829031859735551e-14,
- 3.4194869158454821e-14}, /* L202 */
-{2.0000308609461306e+00, 4.5075054799781356e-14,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- 1.4654943925052066e-14}, /* L203 */
-{1.8284595861100834e+00, 4.1411318818518339e-14,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 9.9920072216264089e-15}, /* L204 */
-{2.1146667761305893e+00, 4.8128168117500536e-14,
- 2.2204460492503131e-16, 5.1856297034191812e-12,
- -7.4718009557273035e-13}, /* L205 */
-{1.6650742361758482e+00, 3.8080649744642869e-14,
- 2.2204460492503131e-16, -7.4051875742497941e-14,
- 1.6853185513809876e-13}, /* L206 */
-{1.9770836469618631e+00, 4.5435877282784531e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 3.4194869158454821e-14}, /* L207 */
-{2.9327375605219776e+00, 6.7723604502134549e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- -7.6605388699135801e-15}, /* L208 */
-{1.7512231940341563e+00, 4.0634162701280729e-14,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 6.5503158452884236e-14}, /* L209 */
-{2.1286042734352204e+00, 4.9626969200744497e-14,
- 2.2204460492503131e-16, 2.6867397195928788e-14,
- 1.1679546219056647e-13}, /* L210 */
-{2.0885985782776806e+00, 4.8926140916449867e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 5.7731597280508140e-15}, /* L211 */
-{2.4599436178854401e+00, 5.7898130734201914e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -4.1078251911130792e-15}, /* L212 */
-{2.1353029012769920e+00, 5.0494330938732901e-14,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 1.3544720900426910e-14}, /* L213 */
-{1.7967566963405959e+00, 4.2688075296837269e-14,
- 2.2204460492503131e-16, -2.2093438190040615e-14,
- -5.1736392947532295e-14}, /* L214 */
-{2.7514959446009066e+00, 6.5676630800481917e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -5.2180482157382357e-15}, /* L215 */
-{1.8773437826704427e+00, 4.5019543648550098e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- 5.3512749786932545e-14}, /* L216 */
-{1.5345858910015440e+00, 3.6970426720017713e-14,
- 2.2204460492503131e-16, -3.7159164634203989e-13,
- 9.9698027611339057e-14}, /* L217 */
-{1.7683759103089505e+00, 4.2799097599299785e-14,
- 2.2204460492503131e-16, -2.2648549702353193e-14,
- -2.0095036745715333e-14}, /* L218 */
-{2.2546009990687268e+00, 5.4817261840867104e-14,
- 2.2204460492503131e-16, 4.0856207306205761e-14,
- 1.6875389974302379e-14}, /* L219 */
-{2.4454922799750403e+00, 5.9729998724833422e-14,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- 3.3306690738754696e-15}, /* L220 */
-{1.5588475827962787e+00, 3.8247183198336643e-14,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- -1.5099033134902129e-14}, /* L221 */
-{1.9651204123596644e+00, 4.8433479449272454e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 3.4861002973229915e-14}, /* L222 */
-{2.5762729363532069e+00, 6.3782312764715243e-14,
- 2.2204460492503131e-16, -4.3409720262843621e-14,
- 1.1102230246251565e-14}, /* L223 */
-{2.6339692141866542e+00, 6.5503158452884236e-14,
- 2.2204460492503131e-16, -5.6299409578741688e-13,
- -1.0330625244137082e-12}, /* L224 */
-{2.3311470812579520e+00, 5.8231197641589461e-14,
- 2.2204460492503131e-16, 2.2093438190040615e-13,
- -3.2973623831367149e-14}, /* L225 */
-{1.3761274286598091e+00, 3.4527936065842368e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- 1.8429702208777599e-14}, /* L226 */
-{2.2401226713460232e+00, 5.6454840802189210e-14,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- -4.9404924595819466e-14}, /* L227 */
-{4.3926116386781411e+00, 1.1118883591620943e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 1.5099033134902129e-14}, /* L228 */
-{2.3013455539520424e+00, 5.8508753397745750e-14,
- 2.2204460492503131e-16, -2.8419488984354757e-12,
- 9.1238128163695364e-13}, /* L229 */
-{1.7543748965038315e+00, 4.4797499043625066e-14,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- 3.3972824553529790e-14}, /* L230 */
-{1.9348242270864668e+00, 4.9620030306840590e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- -1.5543122344752192e-15}, /* L231 */
-{3.2349637093533472e+00, 8.3322237998117998e-14,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- 2.7755575615628914e-14}, /* L232 */
-{2.3412378425880735e+00, 6.0562665993302289e-14,
- 2.2204460492503131e-16, -5.0404125317982107e-14,
- 3.0198066269804258e-14}, /* L233 */
-{2.1773840248973513e+00, 5.6565863104651726e-14,
- 2.2204460492503131e-16, 1.0125233984581428e-13,
- -9.7699626167013776e-15}, /* L234 */
-{1.8787523938461115e+00, 4.9016346537200661e-14,
- 2.2204460492503131e-16, -3.6637359812630166e-14,
- -2.1538326677728037e-14}, /* L235 */
-{2.1292701432741032e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -2.3425705819590803e-14}, /* L236 */
-{2.5422333200845082e+00, 6.6890937233665682e-14,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- 9.5479180117763462e-15}, /* L237 */
-{1.7195643484079930e+00, 4.5435877282784531e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 1.6653345369377348e-14}, /* L238 */
-{2.6799576703675378e+00, 7.1109784727241276e-14,
- 2.2204460492503131e-16, -2.0827783941967937e-13,
- -2.3203661214665772e-14}, /* L239 */
-{2.6667078145948717e+00, 7.1054273576010019e-14,
- 2.2204460492503131e-16, -2.5091040356528538e-14,
- -1.2101430968414206e-14}, /* L240 */
-{2.8563718753176426e+00, 7.6424977457634213e-14,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- -7.8381745538536052e-14}, /* L241 */
-{2.0961067235843580e+00, 5.6316062924111066e-14,
- 2.2204460492503131e-16, 7.0388139761234925e-14,
- 5.6399329650957952e-14}, /* L242 */
-{1.7572287605426158e+00, 4.7406523151494184e-14,
- 2.2204460492503131e-16, 3.1152858070981893e-13,
- 1.0946799022804043e-13}, /* L243 */
-{2.0896838836574534e+00, 5.6607496468075169e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.7541523789077473e-14}, /* L244 */
-{2.0265618825707352e+00, 5.5122573172639022e-14,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- 5.4400928206632670e-14}, /* L245 */
-{1.9146636900521390e+00, 5.2291504459844873e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- 7.1054273576010019e-15}, /* L246 */
-{2.9433652548737679e+00, 8.0713213890248880e-14,
- 2.2204460492503131e-16, 1.0835776720341528e-13,
- 6.5725203057809267e-14}, /* L247 */
-{2.1814852737334989e+00, 6.0063065632220969e-14,
- 2.2204460492503131e-16, -9.3258734068513149e-14,
- -1.6431300764452317e-14}, /* L248 */
-{2.6255425207666603e+00, 7.2580830234869609e-14,
- 2.2204460492503131e-16, -7.2830630415410269e-14,
- -1.2911893776390571e-13}, /* L249 */
-{2.7360422177743606e+00, 7.5939254884360707e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -1.8429702208777599e-14}, /* L250 */
-{1.8685547286517161e+00, 5.2069459854919842e-14,
- 2.2204460492503131e-16, -3.3528735343679728e-14,
- -8.8040685852774914e-14}, /* L251 */
-{2.0397140129490610e+00, 5.7065463465733046e-14,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -1.3433698597964394e-14}, /* L252 */
-{1.9461762750161948e+00, 5.4664606174981145e-14,
- 2.2204460492503131e-16, 3.5749181392930041e-14,
- 9.3480778673438181e-14}, /* L253 */
-{2.2825155347116022e+00, 6.4365179852643450e-14,
- 2.2204460492503131e-16, 2.9531932455029164e-14,
- 4.7517545453956700e-14}, /* L254 */
-{2.7804350596286973e+00, 7.8714812445923599e-14,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -9.3369756370975665e-14}, /* L255 */
-{2.5801179368259426e+00, 7.3330230776491589e-14,
- 2.2204460492503131e-16, -4.7739590058881731e-14,
- 5.0626169922907138e-14}, /* L256 */
-{1.7938019978472670e+00, 5.1181281435219717e-14,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- -4.4841907964610073e-13}, /* L257 */
-{2.3566255105721221e+00, 6.7501559897209518e-14,
- 2.2204460492503131e-16, -3.4194869158454821e-14,
- 2.6201263381153694e-14}, /* L258 */
-{2.8436732221749996e+00, 8.1767925763642779e-14,
- 2.2204460492503131e-16, -2.5424107263916085e-14,
- 4.0856207306205761e-14}, /* L259 */
-{2.9615841594774968e+00, 8.5487172896137054e-14,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- 6.2172489379008766e-15}, /* L260 */
-{2.3122962156713154e+00, 6.7001959536128197e-14,
- 2.2204460492503131e-16, 7.2830630415410269e-14,
- 8.6375351315837179e-14}, /* L261 */
-{3.0114968497822918e+00, 8.7596596642924851e-14,
- 2.2204460492503131e-16, -2.2726265314076954e-13,
- 1.7963408538435033e-13}, /* L262 */
-{3.1902227049732002e+00, 9.3149446489526611e-14,
- 2.2204460492503131e-16, 6.8167693711984612e-14,
- -5.0515147620444623e-14}, /* L263 */
-{2.2905182977808596e+00, 6.7133798520302435e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- -6.3282712403633923e-14}, /* L264 */
-{2.2878890762496615e+00, 6.7310740314852069e-14,
- 2.2204460492503131e-16, -2.8799185258776561e-13,
- -2.1671553440683056e-13}, /* L265 */
-{2.6334992821291503e+00, 7.7771122874992216e-14,
- 2.2204460492503131e-16, -3.5416114485542494e-14,
- -4.5186077102243871e-14}, /* L266 */
-{2.6835620072418931e+00, 7.9547479714392466e-14,
- 2.2204460492503131e-16, -1.8418599978531347e-13,
- -9.0816243414337805e-14}, /* L267 */
-{1.7780125097773152e+00, 5.2902127123388709e-14,
- 2.2204460492503131e-16, -1.6719958750854857e-13,
- 6.4170890823334048e-14}, /* L268 */
-{2.7816414343914424e+00, 8.3072437817577338e-14,
- 2.2204460492503131e-16, -9.4368957093138306e-15,
- 4.9737991503207013e-14}, /* L269 */
-{2.0782728089783720e+00, 6.2297389469279096e-14,
- 2.2204460492503131e-16, 8.7263529735537304e-14,
- 3.6859404417555197e-14}, /* L270 */
-{2.4742079193066253e+00, 7.4440453801116746e-14,
- 2.2204460492503131e-16, 1.0436096431476471e-13,
- 6.6835426082434424e-14}, /* L271 */
-{2.5055533671591936e+00, 7.5661699128204418e-14,
- 2.2204460492503131e-16, -4.7850612361344247e-14,
- -5.4622972811557702e-14}, /* L272 */
-{2.1612055090809590e+00, 6.5503158452884236e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-14,
- -1.3322676295501878e-14}, /* L273 */
-{3.1560705967207814e+00, 9.6006536054460412e-14,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- -5.7731597280508140e-15}, /* L274 */
-{2.0473043176593291e+00, 6.2505556286396313e-14,
- 2.2204460492503131e-16, -4.1744385725905886e-14,
- 2.8865798640254070e-15}, /* L275 */
-{2.4710526216759376e+00, 7.5717210279435676e-14,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- -1.4432899320127035e-14}, /* L276 */
-{2.2798185716353379e+00, 7.0110584005078636e-14,
- 2.2204460492503131e-16, -5.1492143882114760e-13,
- 5.0959236830294685e-13}, /* L277 */
-{2.6448249829313464e+00, 8.1629147885564635e-14,
- 2.2204460492503131e-16, 5.9285909514983359e-14,
- -1.6264767310758543e-13}, /* L278 */
-{1.7132880851832031e+00, 5.3068660577082483e-14,
- 2.2204460492503131e-16, -1.6098233857064770e-14,
- 1.7763568394002505e-14}, /* L279 */
-{2.6000401192288352e+00, 8.0824236192711396e-14,
- 2.2204460492503131e-16, -5.7953641885433171e-14,
- 2.2426505097428162e-14}, /* L280 */
-{2.1094631544940370e+00, 6.5808469784656154e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- 1.9317880628477724e-14}, /* L281 */
-{2.4060654949502083e+00, 7.5328632220816871e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- 8.8817841970012523e-15}, /* L282 */
-{3.0861783624971655e+00, 9.6964103413199609e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-14,
- 4.5741188614556449e-13}, /* L283 */
-{2.8415931422244336e+00, 8.9594998087250133e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- -1.0880185641326534e-14}, /* L284 */
-{2.6057419615963195e+00, 8.2447937366225688e-14,
- 2.2204460492503131e-16, 6.3282712403633923e-14,
- 5.7953641885433171e-14}, /* L285 */
-{3.2002242053862524e+00, 1.0161316232881745e-13,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- 7.1054273576010019e-15}, /* L286 */
-{3.0923822109572510e+00, 9.8532293435482643e-14,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- 1.1102230246251565e-14}, /* L287 */
-{2.6523846769162907e+00, 8.4807161293554145e-14,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -1.7608137170554983e-13}, /* L288 */
-{2.7219278131344971e+00, 8.7332918674576376e-14,
- 2.2204460492503131e-16, 6.8167693711984612e-14,
- 2.0206059048177849e-14}, /* L289 */
-{1.7474407565246566e+00, 5.6260551772879808e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- 9.9920072216264089e-15}, /* L290 */
-{3.4055508302359989e+00, 1.1002310174035301e-13,
- 2.2204460492503131e-16, -8.1823436914874037e-14,
- -1.1013412404281553e-13}, /* L291 */
-{2.3493513195358955e+00, 7.6161299489285739e-14,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- -8.3710816056736803e-14}, /* L292 */
-{2.8763242458400216e+00, 9.3564045400285067e-14,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- 4.2410519540680980e-14}, /* L293 */
-{3.3895080832180957e+00, 1.1063372440389685e-13,
- 2.2204460492503131e-16, -1.1379786002407855e-13,
- 2.9021229863701592e-13}, /* L294 */
-{2.9129686765961855e+00, 9.5402852284820483e-14,
- 2.2204460492503131e-16, 2.0605739337042905e-13,
- 8.3821838359199319e-13}, /* L295 */
-{2.5253768049952692e+00, 8.2989171090730451e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 5.9063864910058328e-14}, /* L296 */
-{2.1254536716697880e+00, 7.0082828429463007e-14,
- 2.2204460492503131e-16, 7.9491968563161208e-14,
- 6.0840221749458578e-14}, /* L297 */
-{2.7013839648678228e+00, 8.9372953482325102e-14,
- 2.2204460492503131e-16, 8.4376949871511897e-15,
- -2.5812685322534890e-13}, /* L298 */
-{2.2257868527747759e+00, 7.3885342288804168e-14,
- 2.2204460492503131e-16, -1.0258460747536446e-13,
- 1.2811973704174306e-13}, /* L299 */
-{2.3400361073059397e+00, 7.7937656328685989e-14,
- 2.2204460492503131e-16, 2.4669155607170978e-13,
- -3.1974423109204508e-13}, /* L300 */
-{2.9302777730136529e+00, 9.7921670771938807e-14,
- 2.2204460492503131e-16, 8.5931262105987116e-14,
- 5.5289106626332796e-14}, /* L301 */
-{2.9487209961444791e+00, 9.8865360342870190e-14,
- 2.2204460492503131e-16, -1.5509815654013437e-13,
- 1.5654144647214707e-13}, /* L302 */
-{2.8465785768414800e+00, 9.5756735873919752e-14,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- 5.2846615972157451e-14}, /* L303 */
-{2.5691185894716448e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- -3.7414515929867775e-14}, /* L304 */
-{2.4983992066243110e+00, 8.4598994476436928e-14,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- 1.3988810110276972e-14}, /* L305 */
-{2.9363198179032119e+00, 9.9753538762570315e-14,
- 2.2204460492503131e-16, 4.5385917246676399e-13,
- 7.8381745538536052e-13}, /* L306 */
-{2.5782156782379668e+00, 8.7874152399081140e-14,
- 2.2204460492503131e-16, 5.4622972811557702e-14,
- 3.7747582837255322e-15}, /* L307 */
-{3.2955053958770213e+00, 1.1268763699945339e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- 6.6613381477509392e-14}, /* L308 */
-{2.7338609543427785e+00, 9.3786090005210099e-14,
- 2.2204460492503131e-16, -7.4384942649885488e-15,
- -5.5733195836182858e-14}, /* L309 */
-{3.1911782728880511e+00, 1.0982881271104361e-13,
- 2.2204460492503131e-16, -1.8207657603852567e-14,
- 7.5273121069585613e-14}, /* L310 */
-{2.1286502089167438e+00, 7.3496764230185363e-14,
- 2.2204460492503131e-16, -9.1926466438962962e-14,
- -3.2196467714129540e-15}, /* L311 */
-{3.2378304092011843e+00, 1.1215334216885253e-13,
- 2.2204460492503131e-16, 1.7652546091539989e-13,
- -4.4408920985006262e-15}, /* L312 */
-{2.3195246087010419e+00, 8.0602191587786365e-14,
- 2.2204460492503131e-16, -6.7279515292284486e-14,
- -4.0745185003743245e-14}, /* L313 */
-{3.9773702889525016e+00, 1.3865297798787424e-13,
- 2.2204460492503131e-16, -2.9842794901924208e-13,
- -3.2984726061613401e-13}, /* L314 */
-{2.6254373365114159e+00, 9.1815444136500446e-14,
- 2.2204460492503131e-16, -5.9396931817445875e-14,
- -1.4765966227514582e-14}, /* L315 */
-{3.0429662574816128e+00, 1.0675488271161271e-13,
- 2.2204460492503131e-16, 8.2822637637036678e-14,
- -2.6090241078691179e-14}, /* L316 */
-{2.7642382364412246e+00, 9.7283292532779342e-14,
- 2.2204460492503131e-16, -8.3932860661661834e-14,
- 1.7097434579227411e-14}, /* L317 */
-{2.0049444587766967e+00, 7.0783656713757637e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -6.7723604502134549e-15}, /* L318 */
-{2.1990934936576845e+00, 7.7882145177454731e-14,
- 2.2204460492503131e-16, 1.2434497875801753e-14,
- 8.3488771451811772e-14}, /* L319 */
-{2.8328562116367904e+00, 1.0064171718227044e-13,
- 2.2204460492503131e-16, -4.7184478546569153e-14,
- -4.2965631052993558e-14}, /* L320 */
-{2.3009506132426520e+00, 8.2000378709423671e-14,
- 2.2204460492503131e-16, -1.4299672557172016e-13,
- 7.7937656328685989e-14}, /* L321 */
-{2.5365298224804689e+00, 9.0677465536259660e-14,
- 2.2204460492503131e-16, -2.3869795029440866e-14,
- -1.2401191185062999e-13}, /* L322 */
-{2.7523644510519953e+00, 9.8698826889176416e-14,
- 2.2204460492503131e-16, -1.8451906669270102e-13,
- 2.9309887850104133e-14}, /* L323 */
-{2.7114615915716738e+00, 9.7533092713320002e-14,
- 2.2204460492503131e-16, -3.1452618287630685e-13,
- -8.4598994476436928e-14}, /* L324 */
-{3.1777413409872746e+00, 1.1465828286816304e-13,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- -1.2656542480726785e-14}, /* L325 */
-{2.6779554319104117e+00, 9.6922470049776166e-14,
- 2.2204460492503131e-16, -9.4591001698063337e-14,
- 8.5487172896137054e-14}, /* L326 */
-{2.9427059571018237e+00, 1.0683121054455569e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -2.5535129566378600e-14}, /* L327 */
-{2.3811343024345368e+00, 8.6708418223224726e-14,
- 2.2204460492503131e-16, 3.2818192607919627e-13,
- 1.2407852523210749e-12}, /* L328 */
-{3.4149463104369420e+00, 1.2473355681663634e-13,
- 2.2204460492503131e-16, -2.5512925105886097e-13,
- 2.5934809855243657e-13}, /* L329 */
-{3.9894554976294163e+00, 1.4616086119190186e-13,
- 2.2204460492503131e-16, -7.4940054162198066e-14,
- -3.3306690738754696e-14}, /* L330 */
-{3.5517919651051515e+00, 1.3052059433249497e-13,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- -5.9174887212520844e-14}, /* L331 */
-{2.5734583837660527e+00, 9.4854679666411812e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- -3.2640556923979602e-14}, /* L332 */
-{3.2230227049620011e+00, 1.1915468611789493e-13,
- 2.2204460492503131e-16, -6.2794214272798854e-13,
- -1.5784040741095851e-12}, /* L333 */
-{2.4483910726605513e+00, 9.0788487838722176e-14,
- 2.2204460492503131e-16, 3.3506530883187224e-13,
- 6.6613381477509392e-14}, /* L334 */
-{3.4418441532396629e+00, 1.2800871473928055e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-14,
- 2.4424906541753444e-14}, /* L335 */
-{2.7664117340012329e+00, 1.0319523013890830e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -4.6518344731794059e-14}, /* L336 */
-{2.7700724164584529e+00, 1.0363931934875836e-13,
- 2.2204460492503131e-16, -4.4853010194856324e-14,
- 2.9976021664879227e-14}, /* L337 */
-{3.4142538661712134e+00, 1.2811973704174306e-13,
- 2.2204460492503131e-16, -6.7945649107059580e-14,
- -5.3290705182007514e-15}, /* L338 */
-{2.5929603639686984e+00, 9.7588603864551260e-14,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- -1.1579626146840383e-13}, /* L339 */
-{3.1441661622755182e+00, 1.1868284133242923e-13,
- 2.2204460492503131e-16, -3.9046543776066756e-13,
- -5.3890225615305098e-13}, /* L340 */
-{3.3284971072928826e+00, 1.2601031329495527e-13,
- 2.2204460492503131e-16, 6.9499961341534799e-14,
- 6.5503158452884236e-14}, /* L341 */
-{2.4766464023700530e+00, 9.4035890185750759e-14,
- 2.2204460492503131e-16, 1.2523315717771766e-13,
- -3.1086244689504383e-15}, /* L342 */
-{2.5496020231715848e+00, 9.7089003503469939e-14,
- 2.2204460492503131e-16, -4.8194781498978045e-13,
- -1.8129941992128806e-13}, /* L343 */
-{3.1846421630322994e+00, 1.2162493234768590e-13,
- 2.2204460492503131e-16, -1.1912693054227930e-13,
- 5.1514348342607263e-14}, /* L344 */
-{2.8420728393588695e+00, 1.0885736756449660e-13,
- 2.2204460492503131e-16, -1.4765966227514582e-14,
- 2.3758772726978350e-14}, /* L345 */
-{2.8743218081081521e+00, 1.1041167979897182e-13,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- -1.3877787807814457e-14}, /* L346 */
-{3.5324752562018067e+00, 1.3608558724342856e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-14,
- -3.1308289294429414e-14}, /* L347 */
-{2.3351653424946766e+00, 9.0219498538601783e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 5.4622972811557702e-14}, /* L348 */
-{2.5845671011079387e+00, 1.0014211682118912e-13,
- 2.2204460492503131e-16, -5.3734794391857577e-14,
- 8.8817841970012523e-15}, /* L349 */
-{4.4757833481027554e+00, 1.7391643680753077e-13,
- 2.2204460492503131e-16, 7.4162898044960457e-14,
- -1.6209256159527285e-14}, /* L350 */
-{2.3652430489624368e+00, 9.2169327725599715e-14,
- 2.2204460492503131e-16, -5.8952842607595812e-14,
- 1.6653345369377348e-14}, /* L351 */
-{3.5341454417838407e+00, 1.3811174426336947e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- 2.7533531010703882e-14}, /* L352 */
-{3.5156349836156866e+00, 1.3777867735598193e-13,
- 2.2204460492503131e-16, -2.9143354396410359e-13,
- -2.9243274468626623e-13}, /* L353 */
-{2.6426961446536787e+00, 1.0386136395368339e-13,
- 2.2204460492503131e-16, -6.6835426082434424e-14,
- -2.0872192862952943e-13}, /* L354 */
-{3.2127256294481543e+00, 1.2662093595849910e-13,
- 2.2204460492503131e-16, 9.4146912488213275e-14,
- 4.3476333644321130e-13}, /* L355 */
-{3.6638556914563796e+00, 1.4480777688063995e-13,
- 2.2204460492503131e-16, -1.2334577803585489e-13,
- -8.7485574340462335e-14}, /* L356 */
-{2.6947194513026353e+00, 1.0680345496894006e-13,
- 2.2204460492503131e-16, 7.2830630415410269e-14,
- 2.5757174171303632e-14}, /* L357 */
-{2.8952960717466705e+00, 1.1507461650239748e-13,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- -3.8857805861880479e-15}, /* L358 */
-{2.8131092147355066e+00, 1.1212038242280897e-13,
- 2.2204460492503131e-16, 3.3306690738754696e-14,
- -1.2101430968414206e-14}, /* L359 */
-{3.4507476902917014e+00, 1.3791745523406007e-13,
- 2.2204460492503131e-16, -9.6811447747313650e-14,
- 1.1768364061026659e-14}, /* L360 */
-{2.6420075257996265e+00, 1.0588752097362431e-13,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- -3.9745984281580604e-14}, /* L361 */
-{3.9627683287668272e+00, 1.5926149288247871e-13,
- 2.2204460492503131e-16, -4.9404924595819466e-14,
- -1.8540724511240114e-14}, /* L362 */
-{3.3154781558519222e+00, 1.3361534101363759e-13,
- 2.2204460492503131e-16, -8.1823436914874037e-14,
- 4.7517545453956700e-14}, /* L363 */
-{2.6976721202175087e+00, 1.0901696212428647e-13,
- 2.2204460492503131e-16, -3.0575542098176811e-13,
- 2.9642954757491680e-13}, /* L364 */
-{3.1774462890150366e+00, 1.2875811528090253e-13,
- 2.2204460492503131e-16, -1.7430501486614958e-14,
- 2.2737367544323206e-13}, /* L365 */
-{3.0014124327175957e+00, 1.2195799925507345e-13,
- 2.2204460492503131e-16, -9.6589403142388619e-15,
- 4.6629367034256575e-15}, /* L366 */
-{2.3844032769162014e+00, 9.7151453548605105e-14,
- 2.2204460492503131e-16, 5.3956838996782608e-14,
- 6.3948846218409017e-14}, /* L367 */
-{2.1032933238739719e+00, 8.5931262105987116e-14,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -7.3163697322797816e-14}, /* L368 */
-{3.4905687654446971e+00, 1.4299672557172016e-13,
- 2.2204460492503131e-16, -4.5741188614556449e-14,
- -7.5606187976973160e-14}, /* L369 */
-{2.4143109020328741e+00, 9.9174141121594062e-14,
- 2.2204460492503131e-16, -1.0325074129013956e-14,
- -9.9920072216264089e-16}, /* L370 */
-{2.7830618112220349e+00, 1.1463052729254741e-13,
- 2.2204460492503131e-16, 3.9523939676655573e-14,
- -8.1046280797636427e-15}, /* L371 */
-{2.8863012567365454e+00, 1.1920325837522228e-13,
- 2.2204460492503131e-16, -9.1038288019262836e-15,
- -2.1871393585115584e-14}, /* L372 */
-{3.5308855815872668e+00, 1.4621637234313312e-13,
- 2.2204460492503131e-16, -1.3034018309099338e-13,
- -3.0664359940146824e-13}, /* L373 */
-{3.2834731246155977e+00, 1.3633538742396922e-13,
- 2.2204460492503131e-16, 5.8306692807263971e-12,
- 6.0407234769854767e-12}, /* L374 */
-{3.2087161779091744e+00, 1.3358758543802196e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- -2.6822988274943782e-13}, /* L375 */
-{3.0652068713280611e+00, 1.2795320358804929e-13,
- 2.2204460492503131e-16, 8.0491169285323849e-13,
- -1.0191847366058937e-13}, /* L376 */
-{2.8080672018142567e+00, 1.1753098494438063e-13,
- 2.2204460492503131e-16, -9.3147711766050634e-14,
- -6.7834626804597065e-14}, /* L377 */
-{2.3955809458579114e+00, 1.0053242960328390e-13,
- 2.2204460492503131e-16, 5.6399329650957952e-14,
- -1.4210854715202004e-14}, /* L378 */
-{3.7916152337449427e+00, 1.5953904863863499e-13,
- 2.2204460492503131e-16, 1.9806378759312793e-13,
- 7.9047879353311146e-14}, /* L379 */
-{3.4263686591469731e+00, 1.4455103780619538e-13,
- 2.2204460492503131e-16, -2.7644553313166398e-14,
- -2.4980018054066022e-14}, /* L380 */
-{2.8084422850553752e+00, 1.1879386363489175e-13,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- -4.0523140398818214e-14}, /* L381 */
-{2.9503000230005201e+00, 1.2512213487525514e-13,
- 2.2204460492503131e-16, -2.6312285683616210e-14,
- 6.5503158452884236e-14}, /* L382 */
-{2.6947150865654810e+00, 1.1458195503522006e-13,
- 2.2204460492503131e-16, -5.0182080713057076e-14,
- -2.3314683517128287e-14}, /* L383 */
-{3.1471762115440272e+00, 1.3417045252595017e-13,
- 2.2204460492503131e-16, -2.9176661087149114e-13,
- 1.4410694859634532e-13}, /* L384 */
-{3.0870530025517655e+00, 1.3195000647669985e-13,
- 2.2204460492503131e-16, -7.4384942649885488e-15,
- -1.0524914273446484e-13}, /* L385 */
-{3.0201168680899886e+00, 1.2942424909567762e-13,
- 2.2204460492503131e-16, 4.4497738826976274e-13,
- 6.8389738316909643e-13}, /* L386 */
-{2.6033929192825904e+00, 1.1185496973098452e-13,
- 2.2204460492503131e-16, -7.8159700933611020e-14,
- -2.9753977059954195e-14}, /* L387 */
-{2.3428138735867621e+00, 1.0091927293842673e-13,
- 2.2204460492503131e-16, -6.0729199446996063e-14,
- 5.3290705182007514e-14}, /* L388 */
-{3.2172653537863467e+00, 1.3894441153183834e-13,
- 2.2204460492503131e-16, -6.1173288656846125e-14,
- -4.5519144009631418e-15}, /* L389 */
-{3.0296867078335241e+00, 1.3117978925336615e-13,
- 2.2204460492503131e-16, -3.1197266991966899e-14,
- 3.4194869158454821e-14}, /* L390 */
-{3.0224176943362226e+00, 1.3120060593507787e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- 9.1926466438962962e-14}, /* L391 */
-{3.4356013734763642e+00, 1.4951798479878597e-13,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- 2.1516122217235534e-13}, /* L392 */
-{4.1081957456122611e+00, 1.7924550732573152e-13,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- -2.9864999362416711e-14}, /* L393 */
-{2.8096810901907747e+00, 1.2290168882600483e-13,
- 2.2204460492503131e-16, 1.2789769243681803e-13,
- -1.0513812043200232e-13}, /* L394 */
-{4.0789294548925659e+00, 1.7887427650187249e-13,
- 2.2204460492503131e-16, -2.6645352591003757e-14,
- 9.1038288019262836e-15}, /* L395 */
-{2.5404369704987446e+00, 1.1168843627729075e-13,
- 2.2204460492503131e-16, -3.9890313274781874e-13,
- 2.1183055309847987e-13}, /* L396 */
-{3.9142509898791693e+00, 1.7252171913284542e-13,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- -6.5503158452884236e-14}, /* L397 */
-{3.6018054819236860e+00, 1.5915047058001619e-13,
- 2.2204460492503131e-16, -1.2090328738167955e-13,
- 6.9722005946459831e-14}, /* L398 */
-{3.0501648506604173e+00, 1.3511414209688155e-13,
- 2.2204460492503131e-16, 9.5257135512838431e-14,
- 1.6120438317557273e-13}, /* L399 */
-{3.1037902324932563e+00, 1.3783418850721318e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 1.0658141036401503e-14}, /* L400 */
-{2.9077683649015804e+00, 1.2945200467129325e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- 1.6431300764452317e-14}, /* L401 */
-{2.7997875356778432e+00, 1.2495560142156137e-13,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 4.2188474935755949e-15}, /* L402 */
-{3.3145477446901417e+00, 1.4829804051430528e-13,
- 2.2204460492503131e-16, -2.3092638912203256e-14,
- -1.1568523916594131e-13}, /* L403 */
-{2.7840612091019641e+00, 1.2487233469471448e-13,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- 1.3833378886829450e-13}, /* L404 */
-{3.1605239736696809e+00, 1.4210854715202004e-13,
- 2.2204460492503131e-16, -2.6978419498391304e-14,
- -9.9920072216264089e-15}, /* L405 */
-{3.0129597734580815e+00, 1.3580803148727227e-13,
- 2.2204460492503131e-16, -4.8738790781044372e-14,
- 2.6867397195928788e-14}, /* L406 */
-{2.4189419918830888e+00, 1.0930145677434666e-13,
- 2.2204460492503131e-16, 1.3677947663381929e-13,
- 5.4622972811557702e-14}, /* L407 */
-{3.5331219358110206e+00, 1.6003864899971632e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -3.5527136788005009e-14}, /* L408 */
-{2.8530223234434553e+00, 1.2954914918594795e-13,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 8.1490370007486490e-14}, /* L409 */
-{3.8695491046318975e+00, 1.7613688285678109e-13,
- 2.2204460492503131e-16, -1.5154544286133387e-13,
- 1.0480505352461478e-13}, /* L410 */
-{2.9185193223444195e+00, 1.3317125180378753e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- -2.3314683517128287e-14}, /* L411 */
-{3.2342541507519655e+00, 1.4793721803130211e-13,
- 2.2204460492503131e-16, -8.3155704544424225e-14,
- 8.6153306710912148e-14}, /* L412 */
-{3.4207348076949251e+00, 1.5684675780391899e-13,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- 2.3980817331903381e-14}, /* L413 */
-{2.8460416395875563e+00, 1.3081202787645907e-13,
- 2.2204460492503131e-16, -1.1868284133242923e-13,
- -8.6708418223224726e-14}, /* L414 */
-{2.7798457925364786e+00, 1.2807810367831962e-13,
- 2.2204460492503131e-16, -3.2640556923979602e-14,
- 9.6367358537463588e-14}, /* L415 */
-{2.7470213946415964e+00, 1.2687073613903976e-13,
- 2.2204460492503131e-16, -6.2394533983933798e-14,
- -2.5424107263916085e-14}, /* L416 */
-{2.6235262234220178e+00, 1.2145839889399213e-13,
- 2.2204460492503131e-16, -8.7818641247849882e-14,
- -1.6586731987899839e-13}, /* L417 */
-{2.7458395881874389e+00, 1.2742584765135234e-13,
- 2.2204460492503131e-16, 3.7547742692822794e-13,
- 3.9968028886505635e-14}, /* L418 */
-{3.5477665371019338e+00, 1.6503465261052952e-13,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- -2.5646151868841116e-14}, /* L419 */
-{4.1205750181967931e+00, 1.9213797219919115e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- 4.0190073491430667e-14}, /* L420 */
-{3.4008637928984364e+00, 1.5895618155070679e-13,
- 2.2204460492503131e-16, -4.8294701571194310e-14,
- -2.2981616609740740e-14}, /* L421 */
-{3.8163871133290233e+00, 1.7880141811588146e-13,
- 2.2204460492503131e-16, 9.3924867883288243e-14,
- -7.7937656328685989e-14}, /* L422 */
-{3.4001506354855526e+00, 1.5967782651671314e-13,
- 2.2204460492503131e-16, -1.7641443861293737e-13,
- 4.4186876380081230e-14}, /* L423 */
-{3.1321053471373599e+00, 1.4743761767022079e-13,
- 2.2204460492503131e-16, -2.0161650127192843e-13,
- -1.0125233984581428e-13}, /* L424 */
-{3.9518023999635195e+00, 1.8646195698579504e-13,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- -1.1213252548714081e-14}, /* L425 */
-{3.3518512203012865e+00, 1.5852597012866454e-13,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- -4.6074255521943996e-14}, /* L426 */
-{4.1159643184800112e+00, 1.9512169657787126e-13,
- 2.2204460492503131e-16, 3.5971225997855072e-14,
- -8.3155704544424225e-14}, /* L427 */
-{3.7219981189256077e+00, 1.7685852782278744e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -1.6397994073713562e-13}, /* L428 */
-{3.4720610900995896e+00, 1.6536771951791707e-13,
- 2.2204460492503131e-16, -1.0251799409388695e-12,
- -1.5043521983670871e-13}, /* L429 */
-{2.9471211342319137e+00, 1.4069301279562296e-13,
- 2.2204460492503131e-16, -1.3877787807814457e-14,
- 7.5273121069585613e-14}, /* L430 */
-{2.8074513726880035e+00, 1.3433698597964394e-13,
- 2.2204460492503131e-16, 2.9909408283401717e-12,
- 2.9931612743894220e-12}, /* L431 */
-{3.4016528168757301e+00, 1.6314727346866675e-13,
- 2.2204460492503131e-16, 4.0190073491430667e-14,
- -1.1435297153639112e-14}, /* L432 */
-{3.2355966824424964e+00, 1.5554224574998443e-13,
- 2.2204460492503131e-16, 4.2010839251815923e-13,
- -2.5479618415147343e-13}, /* L433 */
-{3.3554467523147924e+00, 1.6167622796103842e-13,
- 2.2204460492503131e-16, -3.4083846855992306e-14,
- -1.8318679906315083e-14}, /* L434 */
-{3.5448613987000157e+00, 1.7119639039719914e-13,
- 2.2204460492503131e-16, 7.7271522513910895e-14,
- -6.8833827526759706e-14}, /* L435 */
-{3.7787057677774731e+00, 1.8290924330699454e-13,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- -1.6431300764452317e-14}, /* L436 */
-{2.9176479671478339e+00, 1.4155343563970746e-13,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- 1.0436096431476471e-14}, /* L437 */
-{3.0650977294400357e+00, 1.4904744105592727e-13,
- 2.2204460492503131e-16, 2.6245672302138701e-13,
- 1.1257661469699087e-13}, /* L438 */
-{3.3363074496354850e+00, 1.6260603974416199e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-14,
- 1.4432899320127035e-14}, /* L439 */
-{3.5079880062308026e+00, 1.7136292385089291e-13,
- 2.2204460492503131e-16, 3.4261482539932331e-13,
- -6.2172489379008766e-15}, /* L440 */
-{4.0845060800503443e+00, 1.9997892231060632e-13,
- 2.2204460492503131e-16, -5.0515147620444623e-14,
- 9.9698027611339057e-14}, /* L441 */
-{3.3948287615052553e+00, 1.6658896484500474e-13,
- 2.2204460492503131e-16, -2.1982415887578100e-14,
- 2.2870594307278225e-14}, /* L442 */
-{3.2754262763595272e+00, 1.6109336087311021e-13,
- 2.2204460492503131e-16, -3.4416913763379853e-15,
- -5.1958437552457326e-14}, /* L443 */
-{2.9069815569300879e+00, 1.4329509800958817e-13,
- 2.2204460492503131e-16, -3.6082248300317588e-14,
- 1.3788969965844444e-13}, /* L444 */
-{2.7831726145768565e+00, 1.3750112159982564e-13,
- 2.2204460492503131e-16, -6.0174087934683484e-14,
- -6.1173288656846125e-14}, /* L445 */
-{4.1408746993324366e+00, 2.0503737596655469e-13,
- 2.2204460492503131e-16, -4.1633363423443370e-14,
- -8.5043083686286991e-14}, /* L446 */
-{3.5342898637817606e+00, 1.7539442120906301e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-13,
- -3.8113956435381624e-13}, /* L447 */
-{3.0669935400880073e+00, 1.5254464358349651e-13,
- 2.2204460492503131e-16, -2.0095036745715333e-14,
- 2.5535129566378600e-14}, /* L448 */
-{3.4465807592355593e+00, 1.7180701306074297e-13,
- 2.2204460492503131e-16, 8.0158102377936302e-14,
- 1.1635137298071641e-13}, /* L449 */
-{3.7383689915903049e+00, 1.8676726831756696e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-14,
- 5.5733195836182858e-14}, /* L450 */
-{2.5964770945342641e+00, 1.3000711618360583e-13,
- 2.2204460492503131e-16, -6.3504757008558954e-14,
- 1.0436096431476471e-14}, /* L451 */
-{3.2686982137223382e+00, 1.6402851299446297e-13,
- 2.2204460492503131e-16, -6.3171690101171407e-14,
- 7.3496764230185363e-14}, /* L452 */
-{3.1611780556178743e+00, 1.5898393712632242e-13,
- 2.2204460492503131e-16, 3.5527136788005009e-14,
- -1.3988810110276972e-14}, /* L453 */
-{3.5870386200857056e+00, 1.8079981956020674e-13,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- -5.5733195836182858e-14}, /* L454 */
-{4.3005904715297234e+00, 2.1724289034352751e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -8.9594998087250133e-14}, /* L455 */
-{2.9528790430907952e+00, 1.4949153026577733e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- -5.9396931817445875e-14}, /* L456 */
-{3.6603193776794329e+00, 1.8571255644417306e-13,
- 2.2204460492503131e-16, -7.6605388699135801e-15,
- 3.4194869158454821e-14}, /* L457 */
-{4.7243900415343143e+00, 2.4022450695326825e-13,
- 2.2204460492503131e-16, -1.3855583347321954e-13,
- -1.5176748746625890e-13}, /* L458 */
-{3.5926268606948866e+00, 1.8307577676068831e-13,
- 2.2204460492503131e-16, -2.7644553313166398e-14,
- 3.7969627442180354e-14}, /* L459 */
-{4.4978689896627992e+00, 2.2970514379494489e-13,
- 2.2204460492503131e-16, -3.0420110874729289e-13,
- 5.8086868648388190e-13}, /* L460 */
-{2.7896144611003399e+00, 1.4277468096679513e-13,
- 2.2204460492503131e-16, 6.4392935428259079e-14,
- 2.8199664825478976e-14}, /* L461 */
-{2.6002683090286216e+00, 1.3337247972700084e-13,
- 2.2204460492503131e-16, -5.7287508070658077e-14,
- -2.5490720645393594e-13}, /* L462 */
-{4.2818982940877479e+00, 2.2010171463193728e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- 4.6629367034256575e-15}, /* L463 */
-{2.6984362992440358e+00, 1.3900686157697351e-13,
- 2.2204460492503131e-16, -9.1393559387142886e-13,
- -8.1934459217336553e-13}, /* L464 */
-{2.8634681732717886e+00, 1.4782619572883959e-13,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- 1.3322676295501878e-14}, /* L465 */
-{4.2065851886922889e+00, 2.1763146840214631e-13,
- 2.2204460492503131e-16, 5.8841820305133297e-14,
- 1.2656542480726785e-14}, /* L466 */
-{3.8931045860150277e+00, 2.0184548477075737e-13,
- 2.2204460492503131e-16, 7.0610184366159956e-14,
- -5.3845816694320092e-14}, /* L467 */
-{4.0983296900140092e+00, 2.1294077612310502e-13,
- 2.2204460492503131e-16, -1.8496315590255108e-13,
- 1.6742163211347361e-13}, /* L468 */
-{2.7106655976936054e+00, 1.4114154723438022e-13,
- 2.2204460492503131e-16, 1.1612932837579137e-13,
- 2.9753977059954195e-14}, /* L469 */
-{2.8872615825615484e+00, 1.5065726444163374e-13,
- 2.2204460492503131e-16, -5.6954441163270531e-14,
- 1.2612133559741778e-13}, /* L470 */
-{4.3949463795672923e+00, 2.2981616609740740e-13,
- 2.2204460492503131e-16, 1.5809575870662229e-12,
- -6.8556271770603416e-13}, /* L471 */
-{3.3652333703068122e+00, 1.7634504967389830e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- -9.9920072216264089e-16}, /* L472 */
-{3.1363935527024820e+00, 1.6470158570314197e-13,
- 2.2204460492503131e-16, -4.2832404290038539e-13,
- 2.5934809855243657e-13}, /* L473 */
-{3.5095271463458029e+00, 1.8468560014639479e-13,
- 2.2204460492503131e-16, 3.4194869158454821e-14,
- 3.3084646133829665e-14}, /* L474 */
-{3.1543064029916388e+00, 1.6634263411141603e-13,
- 2.2204460492503131e-16, -1.1335377081422848e-13,
- -1.5565326805244695e-13}, /* L475 */
-{3.2379510530979623e+00, 1.7111312367035225e-13,
- 2.2204460492503131e-16, 7.8581585682968580e-13,
- -1.4657164371101317e-12}, /* L476 */
-{3.4748759122362918e+00, 1.8401946633161970e-13,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- 5.0626169922907138e-14}, /* L477 */
-{3.3938608240648978e+00, 1.8010593016981602e-13,
- 2.2204460492503131e-16, -2.4757973449140991e-14,
- -1.3988810110276972e-14}, /* L478 */
-{2.8485396967577867e+00, 1.5148299281619870e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- -4.6851411639181606e-14}, /* L479 */
-{3.2906563877714197e+00, 1.7535972673954348e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-14,
- 4.2188474935755949e-14}, /* L480 */
-{4.2973382872557266e+00, 2.2948309919001986e-13,
- 2.2204460492503131e-16, 2.1738166822160565e-13,
- -1.9984014443252818e-13}, /* L481 */
-{4.7407091194431139e+00, 2.5368596112684827e-13,
- 2.2204460492503131e-16, -1.7585932710062480e-13,
- -2.2382096176443156e-13}, /* L482 */
-{3.9701465647087679e+00, 2.1289220386577767e-13,
- 2.2204460492503131e-16, -2.5535129566378600e-14,
- -1.5099033134902129e-14}, /* L483 */
-{4.2218894438472043e+00, 2.2686019729434292e-13,
- 2.2204460492503131e-16, -9.9698027611339057e-14,
- -6.6280314570121845e-14}, /* L484 */
-{4.2856078883776236e+00, 2.3075985566833879e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 5.2180482157382357e-14}, /* L485 */
-{5.0041629583105456e+00, 2.7000623958883807e-13,
- 2.2204460492503131e-16, -3.5638159090467525e-14,
- 1.1102230246251565e-15}, /* L486 */
-{3.9761672899342675e+00, 2.1498081093085375e-13,
- 2.2204460492503131e-16, 3.6415315207705135e-14,
- 1.3988810110276972e-14}, /* L487 */
-{3.5481895819436158e+00, 1.9223511671384585e-13,
- 2.2204460492503131e-16, 2.0228263508670352e-13,
- -2.6578739209526248e-13}, /* L488 */
-{3.8568875044854569e+00, 2.0938806244430452e-13,
- 2.2204460492503131e-16, 1.7164047960704920e-13,
- 2.6689761511988763e-13}, /* L489 */
-{3.4296245500450815e+00, 1.8657297928825756e-13,
- 2.2204460492503131e-16, 3.0020430585864233e-13,
- 3.8746783559417963e-13}, /* L490 */
-{3.9857813990434323e+00, 2.1727064591914313e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -4.0634162701280729e-14}, /* L491 */
-{3.5584689016346811e+00, 1.9437229603624928e-13,
- 2.2204460492503131e-16, 5.7531757136075612e-13,
- -2.8688162956314045e-13}, /* L492 */
-{4.4315838526046063e+00, 2.4255597530498108e-13,
- 2.2204460492503131e-16, -3.0531133177191805e-14,
- 4.2188474935755949e-14}, /* L493 */
-{4.0223055730475217e+00, 2.2060131499301860e-13,
- 2.2204460492503131e-16, -1.9417800700693988e-13,
- 1.8274270985330077e-13}, /* L494 */
-{4.2937278242070258e+00, 2.3596402609626921e-13,
- 2.2204460492503131e-16, 4.1966430330830917e-14,
- -5.9063864910058328e-14}, /* L495 */
-{3.7994314019880351e+00, 2.0922152899061075e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 3.5305092183079978e-14}, /* L496 */
-{3.9527540009447519e+00, 2.1810331318761200e-13,
- 2.2204460492503131e-16, -6.8833827526759706e-14,
- 2.2204460492503131e-16}, /* L497 */
-{3.7806585515930990e+00, 2.0902723996130135e-13,
- 2.2204460492503131e-16, -9.9809049913801573e-14,
- -4.4408920985006262e-15}, /* L498 */
-{4.0491368188907284e+00, 2.2432056212551288e-13,
- 2.2204460492503131e-16, 4.1522341120980855e-14,
- 1.7097434579227411e-14}, /* L499 */
-{3.6490348061458717e+00, 2.0256019084285981e-13,
- 2.2204460492503131e-16, -1.2634338020234281e-13,
- 9.2814644858663087e-14}, /* L500 */
-{3.7470417290047706e+00, 2.0841661729775751e-13,
- 2.2204460492503131e-16, -1.8318679906315083e-13,
- 1.1390888232654106e-13}, /* L501 */
-{3.7627350938529784e+00, 2.0970725156388426e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-14,
- 5.1114668053742207e-13}, /* L502 */
-{3.8201159608551989e+00, 2.1332935418172383e-13,
- 2.2204460492503131e-16, -4.3942627314663696e-13,
- -1.6875389974302379e-14}, /* L503 */
-{3.1032042029420688e+00, 1.7363888105137448e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 1.9984014443252818e-14}, /* L504 */
-{3.4349337540531777e+00, 1.9258206140904122e-13,
- 2.2204460492503131e-16, 2.4646951146678475e-14,
- 7.4384942649885488e-14}, /* L505 */
-{4.4323545307677756e+00, 2.4899526884780698e-13,
- 2.2204460492503131e-16, -4.5885517607757720e-13,
- -2.7644553313166398e-14}, /* L506 */
-{3.6381017630030588e+00, 2.0478063689211012e-13,
- 2.2204460492503131e-16, 7.0832228971084987e-13,
- 3.2152058793144533e-13}, /* L507 */
-{4.3248444019275958e+00, 2.4391599851014689e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- -4.7928327973068008e-13}, /* L508 */
-{3.7426683122308577e+00, 2.1149748619109232e-13,
- 2.2204460492503131e-16, 1.0769163338864018e-13,
- -1.8007817459420039e-13}, /* L509 */
-{4.0175628311364857e+00, 2.2747775885179067e-13,
- 2.2204460492503131e-16, 2.7289281945286348e-13,
- 2.2204460492503131e-14}, /* L510 */
-{3.9584526303127823e+00, 2.2457036230605354e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- 3.8191672047105385e-14}, /* L511 */
-{3.4482750787088032e+00, 1.9600987499757139e-13,
- 2.2204460492503131e-16, -1.0569323194431490e-13,
- 3.0486724256206799e-13}, /* L512 */
-{3.6130948921851922e+00, 2.0577983761427276e-13,
- 2.2204460492503131e-16, 4.8183679268731794e-14,
- -7.0832228971084987e-14}, /* L513 */
-{4.5914834843654369e+00, 2.6201263381153694e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- -6.6613381477509392e-14}, /* L514 */
-{3.7922691820898811e+00, 2.1682655670929307e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-14,
- -1.8762769116165146e-14}, /* L515 */
-{4.7948616270350248e+00, 2.7468305408007154e-13,
- 2.2204460492503131e-16, -5.1958437552457326e-14,
- -2.2204460492503131e-16}, /* L516 */
-{3.3007789020518277e+00, 1.8945955915228296e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- 6.1950444774083735e-14}, /* L517 */
-{3.5608164287359032e+00, 2.0478063689211012e-13,
- 2.2204460492503131e-16, 2.2604140781368187e-13,
- 1.3322676295501878e-15}, /* L518 */
-{4.2230317108763122e+00, 2.4333313142221868e-13,
- 2.2204460492503131e-16, 4.6185277824406512e-14,
- -2.9976021664879227e-15}, /* L519 */
-{4.2031316313108409e+00, 2.4265311981963578e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 1.0014211682118912e-13}, /* L520 */
-{4.0969354464748733e+00, 2.3697710460623966e-13,
- 2.2204460492503131e-16, -6.6946448384896939e-13,
- 2.5091040356528538e-13}, /* L521 */
-{3.2538365512224146e+00, 1.8857138073258284e-13,
- 2.2204460492503131e-16, -3.3395508580724709e-13,
- -2.6123547769429933e-13}, /* L522 */
-{4.0798343526533376e+00, 2.3689383787939278e-13,
- 2.2204460492503131e-16, 2.2870594307278225e-13,
- 3.1419311596891930e-13}, /* L523 */
-{4.2576403050934264e+00, 2.4769075679387242e-13,
- 2.2204460492503131e-16, 2.5801583092288638e-13,
- -1.1635137298071641e-13}, /* L524 */
-{3.6419105077699592e+00, 2.1227464230832993e-13,
- 2.2204460492503131e-16, -3.4761082901013651e-13,
- -2.5857094243519896e-13}, /* L525 */
-{3.8193976608706248e+00, 2.2304380564719395e-13,
- 2.2204460492503131e-16, -8.4598994476436928e-14,
- -1.2767564783189300e-14}, /* L526 */
-{3.7707602185948801e+00, 2.2062213167473033e-13,
- 2.2204460492503131e-16, -5.6010751592339147e-13,
- -3.4594549447319878e-13}, /* L527 */
-{2.6875042400933435e+00, 1.5754064719430971e-13,
- 2.2204460492503131e-16, -1.3000711618360583e-13,
- -1.3233858453531866e-13}, /* L528 */
-{3.4248636264941545e+00, 2.0114465648646274e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 1.6808776592824870e-13}, /* L529 */
-{4.7217055626738080e+00, 2.7783331191244542e-13,
- 2.2204460492503131e-16, 2.6112445539183682e-13,
- 4.9049653227939416e-13}, /* L530 */
-{3.9180852776255568e+00, 2.3098190027326382e-13,
- 2.2204460492503131e-16, 1.9537704787353505e-12,
- 1.4488410471358293e-12}, /* L531 */
-{4.4924882908376471e+00, 2.6534330288541241e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-14,
- -2.1316282072803006e-14}, /* L532 */
-{4.1414523595111215e+00, 2.4506958962167147e-13,
- 2.2204460492503131e-16, -5.2724491439448684e-13,
- -1.3111733920823099e-13}, /* L533 */
-{4.1638642472613547e+00, 2.4685808952540356e-13,
- 2.2204460492503131e-16, 5.0404125317982107e-14,
- -1.0758061108617767e-13}, /* L534 */
-{4.0196325100246018e+00, 2.3875346144563991e-13,
- 2.2204460492503131e-16, 3.1397107136399427e-13,
- 4.7517545453956700e-14}, /* L535 */
-{3.3936620706212892e+00, 2.0194956817931597e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -2.0095036745715333e-14}, /* L536 */
-{5.1992633239527803e+00, 3.0997426847534371e-13,
- 2.2204460492503131e-16, -3.4372504842394846e-13,
- 4.6740389336719090e-13}, /* L537 */
-{4.0845789349757995e+00, 2.4397150966137815e-13,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -8.0602191587786365e-14}, /* L538 */
-{4.2013053297279059e+00, 2.5141000392636670e-13,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- -2.8643754035329039e-14}, /* L539 */
-{2.8611156251133827e+00, 1.7152945730458669e-13,
- 2.2204460492503131e-16, 7.2164496600635175e-14,
- 2.8643754035329039e-14}, /* L540 */
-{3.7865124435089976e+00, 2.2742918659446332e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- 5.9952043329758453e-15}, /* L541 */
-{3.8708548155620677e+00, 2.3292479056635784e-13,
- 2.2204460492503131e-16, -1.6209256159527285e-14,
- -2.4980018054066022e-14}, /* L542 */
-{4.0577872491350524e+00, 2.4462376568834543e-13,
- 2.2204460492503131e-16, 8.3577589293781784e-13,
- -8.9217522258877580e-13}, /* L543 */
-{4.6378749642641965e+00, 2.8010926911292700e-13,
- 2.2204460492503131e-16, 5.8997251528580819e-13,
- -3.4339198151656092e-13}, /* L544 */
-{4.3266123307146982e+00, 2.6179058920661191e-13,
- 2.2204460492503131e-16, -1.3322676295501878e-14,
- 4.9960036108132044e-14}, /* L545 */
-{3.5796759773510858e+00, 2.1699309016298685e-13,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 5.5733195836182858e-14}, /* L546 */
-{5.1325492311101639e+00, 3.1169511416351270e-13,
- 2.2204460492503131e-16, 4.2810199829546036e-13,
- 1.1435297153639112e-13}, /* L547 */
-{3.7408818144226443e+00, 2.2759572004815709e-13,
- 2.2204460492503131e-16, -1.2267964422107980e-13,
- 3.4283687000424834e-13}, /* L548 */
-{4.3528074139020729e+00, 2.6530860841589288e-13,
- 2.2204460492503131e-16, 1.7474910407599964e-13,
- -2.0217161278424101e-13}, /* L549 */
-{4.9263714087347372e+00, 3.0081492852218616e-13,
- 2.2204460492503131e-16, 1.0147438445073931e-13,
- 1.1568523916594131e-13}, /* L550 */
-{3.6824014540338030e+00, 2.2526425169644426e-13,
- 2.2204460492503131e-16, -6.3504757008558954e-14,
- 7.6827433304060833e-14}, /* L551 */
-{4.2056225772699012e+00, 2.5773827516673009e-13,
- 2.2204460492503131e-16, -4.9849013805669529e-14,
- 5.9952043329758453e-14}, /* L552 */
-{3.5741466877700083e+00, 2.1943558081716219e-13,
- 2.2204460492503131e-16, -4.3376413572104866e-13,
- -5.0648374383399641e-13}, /* L553 */
-{5.1525352050029385e+00, 3.1691316237925093e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -6.6280314570121845e-14}, /* L554 */
-{3.6936995212701897e+00, 2.2759572004815709e-13,
- 2.2204460492503131e-16, -4.0301095793893182e-14,
- 3.3528735343679728e-14}, /* L555 */
-{4.3682622875204240e+00, 2.6964541710583489e-13,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- -6.9722005946459831e-14}, /* L556 */
-{4.1059310740014645e+00, 2.5390800573177330e-13,
- 2.2204460492503131e-16, 3.6637359812630166e-13,
- -4.4975134727565091e-13}, /* L557 */
-{4.7016203209999583e+00, 2.9126701051040982e-13,
- 2.2204460492503131e-16, 2.6534330288541241e-13,
- -2.7255975254547593e-13}, /* L558 */
-{5.0485600671172648e+00, 3.1332055006050297e-13,
- 2.2204460492503131e-16, 8.1490370007486490e-14,
- -4.2521541843143495e-14}, /* L559 */
-{3.5267912785288869e+00, 2.1926904736346842e-13,
- 2.2204460492503131e-16, -2.1027624086400465e-13,
- -2.7866597918091429e-14}, /* L560 */
-{4.4986701991871820e+00, 2.8019253583977388e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- -1.6986412276764895e-13}, /* L561 */
-{3.5315892017067032e+00, 2.2035151481247794e-13,
- 2.2204460492503131e-16, -1.1635137298071641e-13,
- 1.9340085088970227e-13}, /* L562 */
-{4.0519602116335465e+00, 2.5326962749261384e-13,
- 2.2204460492503131e-16, 4.1300296516055823e-14,
- -2.0428103653102880e-14}, /* L563 */
-{4.5077365001846319e+00, 2.8225859149966226e-13,
- 2.2204460492503131e-16, -1.2645440250480533e-13,
- -1.5198953207118393e-13}, /* L564 */
-{4.5657151679584773e+00, 2.8639590698986694e-13,
- 2.2204460492503131e-16, -1.3622436512150671e-13,
- -3.3761882178851010e-13}, /* L565 */
-{3.4682033516461410e+00, 2.1793677973391823e-13,
- 2.2204460492503131e-16, -1.9362289549462730e-13,
- -6.3016258877723885e-13}, /* L566 */
-{3.6383434827446650e+00, 2.2903207108626589e-13,
- 2.2204460492503131e-16, 3.8857805861880479e-14,
- 2.6201263381153694e-14}, /* L567 */
-{3.3292306046620355e+00, 2.0994317395661710e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 1.7719159473017498e-13}, /* L568 */
-{4.2987765537377243e+00, 2.7156055182331329e-13,
- 2.2204460492503131e-16, -1.6486811915683575e-13,
- 8.9706020389712648e-14}, /* L569 */
-{3.9824624235088586e+00, 2.5202062658991053e-13,
- 2.2204460492503131e-16, -1.8862689188381410e-13,
- -9.1038288019262836e-15}, /* L570 */
-{4.6795170151308154e+00, 2.9665159217984183e-13,
- 2.2204460492503131e-16, -1.6298074001497298e-13,
- -1.6020518245341009e-13}, /* L571 */
-{4.3138179947530322e+00, 2.7394753132625738e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- 5.2846615972157451e-14}, /* L572 */
-{4.7460807863420671e+00, 3.0192515154681132e-13,
- 2.2204460492503131e-16, 1.2829737272568309e-12,
- 2.4802382370125997e-13}, /* L573 */
-{3.8571489425866452e+00, 2.4580337765200966e-13,
- 2.2204460492503131e-16, -3.1641356201816961e-14,
- -4.1466829969749597e-13}, /* L574 */
-{4.0264737439010414e+00, 2.5704091632938741e-13,
- 2.2204460492503131e-16, 6.9944050551384862e-14,
- 3.2196467714129540e-14}, /* L575 */
-{4.9314313914632564e+00, 3.1535885014477572e-13,
- 2.2204460492503131e-16, -2.9420910152566648e-14,
- -6.5503158452884236e-15}, /* L576 */
-{3.8318951270626589e+00, 2.4547031074462211e-13,
- 2.2204460492503131e-16, -1.3611334281904419e-13,
- -2.6900703886667543e-13}, /* L577 */
-{4.6911838718611856e+00, 3.0103697312711120e-13,
- 2.2204460492503131e-16, 2.5763835509451383e-12,
- 1.4515055823949297e-12}, /* L578 */
-{4.9956900924434926e+00, 3.2113200987282653e-13,
- 2.2204460492503131e-16, -5.8508753397745750e-14,
- -7.5384143372048129e-14}, /* L579 */
-{3.4931089593791089e+00, 2.2493118478905672e-13,
- 2.2204460492503131e-16, 1.2168044349891716e-13,
- -1.8984813721090177e-14}, /* L580 */
-{4.2082682573108157e+00, 2.7144952952085077e-13,
- 2.2204460492503131e-16, 2.7355895326763857e-13,
- -3.6737279884846430e-13}, /* L581 */
-{4.7281002430629755e+00, 3.0550562080122745e-13,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- 9.5479180117763462e-15}, /* L582 */
-{4.1320819909077322e+00, 2.6745272663220021e-13,
- 2.2204460492503131e-16, -6.5503158452884236e-13,
- -4.9871218266162032e-13}, /* L583 */
-{4.4422159126112470e+00, 2.8801960816338124e-13,
- 2.2204460492503131e-16, 7.9625195326116227e-13,
- 1.3131717935266352e-12}, /* L584 */
-{4.9991531863442376e+00, 3.2468472355162703e-13,
- 2.2204460492503131e-16, -4.0079051188968151e-14,
- 9.6811447747313650e-14}, /* L585 */
-{5.7367837949917355e+00, 3.7322922530336200e-13,
- 2.2204460492503131e-16, 1.8629542353210127e-13,
- -1.7652546091539989e-14}, /* L586 */
-{4.6771794405476221e+00, 3.0481173141083673e-13,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 5.2180482157382357e-14}, /* L587 */
-{4.8469464225722128e+00, 3.1641356201816961e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- 2.4202861936828413e-14}, /* L588 */
-{3.7822640318199698e+00, 2.4732993431086925e-13,
- 2.2204460492503131e-16, 3.7081449022480228e-13,
- -4.4630965589931293e-14}, /* L589 */
-{4.7262786431246555e+00, 3.0958569041672490e-13,
- 2.2204460492503131e-16, -5.7176485768195562e-14,
- 2.2426505097428162e-14}, /* L590 */
-{5.2368948951128393e+00, 3.4361402612148595e-13,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -2.6534330288541241e-14}, /* L591 */
-{5.3674071168447686e+00, 3.5277336607464349e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 5.5733195836182858e-14}, /* L592 */
-{3.8265237437090223e+00, 2.5192348207525583e-13,
- 2.2204460492503131e-16, -8.8151708155237429e-14,
- 7.3274719625260332e-14}, /* L593 */
-{4.3501752134710729e+00, 2.8688162956314045e-13,
- 2.2204460492503131e-16, -4.9626969200744497e-14,
- -4.8849813083506888e-15}, /* L594 */
-{4.7840411612590721e+00, 3.1602498395955081e-13,
- 2.2204460492503131e-16, 1.8363088827300089e-13,
- 2.8155255904493970e-13}, /* L595 */
-{5.3028607153457576e+00, 3.5088598693278072e-13,
- 2.2204460492503131e-16, 3.6237679523765109e-13,
- -6.1373128801278654e-13}, /* L596 */
-{4.3157522026187944e+00, 2.8604896229467158e-13,
- 2.2204460492503131e-16, 1.0604850331219495e-12,
- 4.8694381860059366e-13}, /* L597 */
-{4.9682352631687854e+00, 3.2984726061613401e-13,
- 2.2204460492503131e-16, -8.7041485130612273e-14,
- 1.7741363933510002e-13}, /* L598 */
-{3.8572681891448370e+00, 2.5651702983964242e-13,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- 1.8363088827300089e-13}, /* L599 */
-{4.7225074506925866e+00, 3.1458169402753811e-13,
- 2.2204460492503131e-16, 3.7112535267169733e-12,
- 4.2388315080188477e-13}, /* L600 */
-{6.0170644016469739e+00, 4.0148440128007223e-13,
- 2.2204460492503131e-16, -1.2723155862204294e-13,
- 3.3750779948604759e-14}, /* L601 */
-{4.7383795687956880e+00, 3.1669111777432590e-13,
- 2.2204460492503131e-16, 5.6177285046032921e-14,
- -5.5966342671354141e-13}, /* L602 */
-{3.2073019091364419e+00, 2.1471713296250527e-13,
- 2.2204460492503131e-16, 3.5791369867865797e-12,
- -8.1187279121763822e-12}, /* L603 */
-{3.9147412756285060e+00, 2.6251223417261826e-13,
- 2.2204460492503131e-16, 2.5721647034515627e-12,
- -1.8585133432225120e-13}, /* L604 */
-{4.1876099126076411e+00, 2.8127500328878341e-13,
- 2.2204460492503131e-16, -1.4432899320127035e-14,
- -6.4614980033184111e-14}, /* L605 */
-{4.1939010061472404e+00, 2.8216318170848353e-13,
- 2.2204460492503131e-16, -3.3536506904852104e-12,
- 2.5079938126282286e-12}, /* L606 */
-{3.9674691919587990e+00, 2.6736945990535332e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- 1.9317880628477724e-14}, /* L607 */
-{4.1801052791859110e+00, 2.8216318170848353e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-14,
- -1.9706458687096529e-13}, /* L608 */
-{5.1695483859186648e+00, 3.4952596372761491e-13,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- 8.6153306710912148e-14}, /* L609 */
-{4.3811544531626838e+00, 2.9670710333107309e-13,
- 2.2204460492503131e-16, 7.1720407390785113e-14,
- 3.1530333899354446e-14}, /* L610 */
-{5.0167836924298115e+00, 3.4031111262322611e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- -9.7033492352238682e-14}, /* L611 */
-{3.3041310299420852e+00, 2.2450097336701447e-13,
- 2.2204460492503131e-16, -3.5094149808401198e-13,
- -4.4964032497318840e-14}, /* L612 */
-{4.9983765645898623e+00, 3.4017233474514796e-13,
- 2.2204460492503131e-16, -1.8591794770372871e-12,
- -1.6487922138708200e-12}, /* L613 */
-{5.8326639253624437e+00, 3.9759862069388419e-13,
- 2.2204460492503131e-16, -9.7477581562088744e-14,
- 8.2822637637036678e-14}, /* L614 */
-{8.5264362164440506e+00, 5.8217319853781646e-13,
- 2.2204460492503131e-16, 3.6814995496570191e-13,
- -1.6675549829869851e-13}, /* L615 */
-{4.6903483090863878e+00, 3.2077118738982335e-13,
- 2.2204460492503131e-16, -1.9961809982760315e-13,
- -1.4588330543574557e-13}, /* L616 */
-{5.5998872790648981e+00, 3.8359593279579940e-13,
- 2.2204460492503131e-16, 3.5571545708990016e-13,
- 9.1260332624187868e-14}, /* L617 */
-{4.4508565367102459e+00, 3.0538072071095712e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -2.4091839634365897e-13}, /* L618 */
-{5.7932240026869808e+00, 3.9812597663058114e-13,
- 2.2204460492503131e-16, -2.3936408410918375e-13,
- -2.9509727994536661e-13}, /* L619 */
-{4.2258131187057746e+00, 2.9087843245179101e-13,
- 2.2204460492503131e-16, 3.5638159090467525e-13,
- 5.8286708792820718e-13}, /* L620 */
-{4.2014080979914290e+00, 2.8966499338034524e-13,
- 2.2204460492503131e-16, 4.5674575233078940e-13,
- 4.3054448894963571e-13}, /* L621 */
-{4.2445806504467534e+00, 2.9311275628884914e-13,
- 2.2204460492503131e-16, 8.3488327362601922e-11,
- -7.2851724652878147e-11}, /* L622 */
-{3.7664585908304860e+00, 2.6051383272829298e-13,
- 2.2204460492503131e-16, 1.7421619702417956e-12,
- -9.0294438592763981e-13}, /* L623 */
-{5.1935178092343115e+00, 3.5979552670539761e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- -1.6853185513809876e-13}, /* L624 */
-{5.9548093949449319e+00, 4.1319725418986764e-13,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- -6.3282712403633923e-14}, /* L625 */
-{5.1094329813164139e+00, 3.5510483442635632e-13,
- 2.2204460492503131e-16, -7.5384143372048129e-14,
- 2.1094237467877974e-14}, /* L626 */
-{4.4709001957007031e+00, 3.1122326937804701e-13,
- 2.2204460492503131e-16, 3.2374103398069565e-13,
- -4.0412118096355698e-14}, /* L627 */
-{3.8051413537108512e+00, 2.6530166952198897e-13,
- 2.2204460492503131e-16, -2.6756374893466273e-14,
- 6.6791017161449417e-13}, /* L628 */
-{6.0685707826870976e+00, 4.2378600628723007e-13,
- 2.2204460492503131e-16, -2.2093438190040615e-14,
- 5.3290705182007514e-14}, /* L629 */
-{5.2039268610432954e+00, 3.6398314917640562e-13,
- 2.2204460492503131e-16, 1.1985967773853190e-12,
- 8.3244522386394237e-13}, /* L630 */
-{5.4496916408061979e+00, 3.8177794259297571e-13,
- 2.2204460492503131e-16, -3.4527936065842368e-14,
- -7.8603790143461083e-14}, /* L631 */
-{5.2257796055009651e+00, 3.6667197056416967e-13,
- 2.2204460492503131e-16, -9.1382457156896635e-13,
- 7.5939254884360707e-14}, /* L632 */
-{4.9431357609062028e+00, 3.4738878440521148e-13,
- 2.2204460492503131e-16, -4.5186077102243871e-14,
- 8.8817841970012523e-16}, /* L633 */
-{5.2634152441824300e+00, 3.7048142331741474e-13,
- 2.2204460492503131e-16, 2.8221869285971479e-13,
- 2.2826185386293218e-13}, /* L634 */
-{4.6795349419897887e+00, 3.2990277176736527e-13,
- 2.2204460492503131e-16, 7.0832228971084987e-14,
- -2.5746071941057380e-13}, /* L635 */
-{4.5522870563855422e+00, 3.2143732120459845e-13,
- 2.2204460492503131e-16, -3.0486724256206799e-13,
- 1.7519319328584970e-13}, /* L636 */
-{4.5659412696495645e+00, 3.2290836671222678e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- 4.1322500976548326e-13}, /* L637 */
-{3.8017301359429263e+00, 2.6928459462283172e-13,
- 2.2204460492503131e-16, 2.5646151868841116e-13,
- 2.4225066397320916e-13}, /* L638 */
-{5.3943747079250342e+00, 3.8269387658829146e-13,
- 2.2204460492503131e-16, 5.3312909642500017e-13,
- -2.1804780203638074e-13}, /* L639 */
-{5.5650478425127439e+00, 3.9541980800805732e-13,
- 2.2204460492503131e-16, -4.4264591991804991e-13,
- -3.1874503036988244e-13}, /* L640 */
-{3.5881491867893223e+00, 2.5535129566378600e-13,
- 2.2204460492503131e-16, -4.7850612361344247e-14,
- -1.7763568394002505e-14}, /* L641 */
-{4.8733527042976643e+00, 3.4735408993569195e-13,
- 2.2204460492503131e-16, 1.3833378886829450e-13,
- -1.8218759834098819e-13}, /* L642 */
-{4.3335993721418626e+00, 3.0936364581179987e-13,
- 2.2204460492503131e-16, -1.2878587085651816e-13,
- -5.8508753397745750e-14}, /* L643 */
-{4.8757840900745046e+00, 3.4861002973229915e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -5.9396931817445875e-14}, /* L644 */
-{4.2325648172777619e+00, 3.0309088572266774e-13,
- 2.2204460492503131e-16, 6.3726801613483985e-14,
- -1.2978507157868080e-13}, /* L645 */
-{5.5464483791548833e+00, 3.9779290972319359e-13,
- 2.2204460492503131e-16, 4.3520742565306136e-14,
- -2.5868196473766147e-14}, /* L646 */
-{5.4237914010474704e+00, 3.8959807602267915e-13,
- 2.2204460492503131e-16, 1.9406698470447736e-13,
- -2.2726265314076954e-13}, /* L647 */
-{5.4020146956345565e+00, 3.8863356977003605e-13,
- 2.2204460492503131e-16, -8.4932061383824475e-14,
- 1.0103029524088925e-13}, /* L648 */
-{7.5524002051446724e+00, 5.4417581552002048e-13,
- 2.2204460492503131e-16, 7.7426953737358417e-13,
- 4.0145664570445661e-13}, /* L649 */
-{4.2492374732833662e+00, 3.0664359940146824e-13,
- 2.2204460492503131e-16, -9.0372154204487742e-14,
- -1.1879386363489175e-14}, /* L650 */
-{4.4527840029154957e+00, 3.2182676662495524e-13,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- 1.4721557306529576e-13}, /* L651 */
-{3.5874289727938069e+00, 2.5968116545982411e-13,
- 2.2204460492503131e-16, -6.1251004268569886e-13,
- -9.8809849191638932e-14}, /* L652 */
-{5.3384464010648651e+00, 3.8702374638432957e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-14,
- -3.9857006584043120e-14}, /* L653 */
-{5.1307420397616967e+00, 3.7253533591297128e-13,
- 2.2204460492503131e-16, -7.5717210279435676e-14,
- -6.2172489379008766e-14}, /* L654 */
-{4.9259619701975410e+00, 3.5821345889530676e-13,
- 2.2204460492503131e-16, 8.9261931179862586e-14,
- 3.4416913763379853e-14}, /* L655 */
-{4.7033229692459528e+00, 3.4254543646028424e-13,
- 2.2204460492503131e-16, 4.7961634663806763e-14,
- 1.7141843500212417e-13}, /* L656 */
-{4.8297260369403956e+00, 3.5228764350136998e-13,
- 2.2204460492503131e-16, 6.3504757008558954e-14,
- 7.2830630415410269e-14}, /* L657 */
-{4.6573021806852921e+00, 3.4022784589637922e-13,
- 2.2204460492503131e-16, -6.6502359175046877e-14,
- 1.2212453270876722e-14}, /* L658 */
-{4.3228444529591563e+00, 3.1627478414009147e-13,
- 2.2204460492503131e-16, -4.8294701571194310e-14,
- -2.6090241078691179e-14}, /* L659 */
-{5.0192314037204078e+00, 3.6778219358879483e-13,
- 2.2204460492503131e-16, 6.4859229098601645e-13,
- -2.9609648066752925e-13}, /* L660 */
-{4.7813993742079255e+00, 3.5088598693278072e-13,
- 2.2204460492503131e-16, -1.0325074129013956e-14,
- -6.9166894434147252e-14}, /* L661 */
-{4.3923785310871120e+00, 3.2282509998537989e-13,
- 2.2204460492503131e-16, -7.7782225105238467e-13,
- -2.6545432518787493e-13}, /* L662 */
-{5.7119245471869471e+00, 4.2044145942554678e-13,
- 2.2204460492503131e-16, 1.7896795156957523e-13,
- 1.3966605649784469e-13}, /* L663 */
-{4.2213922022854637e+00, 3.1119551380243138e-13,
- 2.2204460492503131e-16, -2.7755575615628914e-13,
- -2.6789681584205027e-13}, /* L664 */
-{4.6131651729595946e+00, 3.4058866837938240e-13,
- 2.2204460492503131e-16, -6.3615779311021470e-14,
- -7.4162898044960457e-14}, /* L665 */
-{4.8611187805292762e+00, 3.5943470422239443e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 4.8916426464984397e-13}, /* L666 */
-{5.3725721944840128e+00, 3.9784842087442485e-13,
- 2.2204460492503131e-16, 4.2854608750531042e-13,
- 2.2182256032010628e-13}, /* L667 */
-{5.2133315784024230e+00, 3.8663516832571077e-13,
- 2.2204460492503131e-16, -1.0602629885170245e-13,
- 4.7739590058881731e-14}, /* L668 */
-{5.6393960423081229e+00, 4.1885939161545593e-13,
- 2.2204460492503131e-16, -8.1712414612411521e-14,
- 8.6153306710912148e-14}, /* L669 */
-{5.6223969301958707e+00, 4.1822101337629647e-13,
- 2.2204460492503131e-16, 6.7945649107059580e-14,
- -7.6605388699135801e-14}, /* L670 */
-{6.2108890834889703e+00, 4.6268544551253399e-13,
- 2.2204460492503131e-16, -3.9124259387790516e-13,
- 5.5047078006964512e-12}, /* L671 */
-{4.7715849091128026e+00, 3.5599301284605644e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-13,
- -2.8210767055725228e-13}, /* L672 */
-{4.2410913865939781e+00, 3.1688540680363531e-13,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- 2.8421709430404007e-14}, /* L673 */
-{6.1209295383359006e+00, 4.5802250880910833e-13,
- 2.2204460492503131e-16, -5.8952842607595812e-14,
- 5.1958437552457326e-14}, /* L674 */
-{5.4748234524831494e+00, 4.1028291875022660e-13,
- 2.2204460492503131e-16, 8.0158102377936302e-14,
- 2.5313084961453569e-14}, /* L675 */
-{4.7108062488399876e+00, 3.5355052219188110e-13,
- 2.2204460492503131e-16, -1.6875389974302379e-13,
- 1.0524914273446484e-13}, /* L676 */
-{4.8578363200777002e+00, 3.6512459722359836e-13,
- 2.2204460492503131e-16, -1.7319479184152442e-14,
- -1.0647038806155251e-13}, /* L677 */
-{3.9719826677937946e+00, 2.9898306053155466e-13,
- 2.2204460492503131e-16, -9.1637808452560421e-13,
- 5.5244697705347789e-13}, /* L678 */
-{5.7054581915063958e+00, 4.3010039973978564e-13,
- 2.2204460492503131e-16, 6.0063065632220969e-13,
- 1.3078427230084344e-12}, /* L679 */
-{4.6167352249966322e+00, 3.4854064079326008e-13,
- 2.2204460492503131e-16, -1.4002132786572474e-12,
- -7.6849637764553336e-13}, /* L680 */
-{5.6505228649430661e+00, 4.2721381987576024e-13,
- 2.2204460492503131e-16, 2.1027624086400465e-13,
- 9.6589403142388619e-14}, /* L681 */
-{4.1162088402135071e+00, 3.1166735858789707e-13,
- 2.2204460492503131e-16, 5.0404125317982107e-14,
- 7.0166095156309893e-14}, /* L682 */
-{4.5968227722062069e+00, 3.4856839636887571e-13,
- 2.2204460492503131e-16, -5.0404125317982107e-14,
- 5.1070259132757201e-15}, /* L683 */
-{4.0570239446551604e+00, 3.0808688933348094e-13,
- 2.2204460492503131e-16, -6.1506355564233672e-14,
- -1.5221157667610896e-13}, /* L684 */
-{5.0416137936030383e+00, 3.8341552155429781e-13,
- 2.2204460492503131e-16, 3.5860203695392556e-13,
- -2.0838886172214188e-13}, /* L685 */
-{3.8443938204289747e+00, 2.9279356716926941e-13,
- 2.2204460492503131e-16, -1.3844481117075702e-13,
- 1.6409096303959814e-13}, /* L686 */
-{6.6259202063039382e+00, 5.0537352080937126e-13,
- 2.2204460492503131e-16, -1.7319479184152442e-13,
- -1.6875389974302379e-14}, /* L687 */
-{4.8343099527041407e+00, 3.6926017799032707e-13,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- -4.4386716524513758e-13}, /* L688 */
-{4.5587880342320082e+00, 3.4872105203476167e-13,
- 2.2204460492503131e-16, 1.1213252548714081e-13,
- -4.7517545453956700e-14}, /* L689 */
-{6.5869669140207634e+00, 5.0459636469213365e-13,
- 2.2204460492503131e-16, 2.3281376826389533e-12,
- 8.1978868138321559e-13}, /* L690 */
-{6.5066582395463364e+00, 4.9916668021232624e-13,
- 2.2204460492503131e-16, 5.8064664187895687e-13,
- 5.9507954119908391e-14}, /* L691 */
-{6.4544899520722341e+00, 4.9588111394882617e-13,
- 2.2204460492503131e-16, -3.3673064336880998e-13,
- 4.5363712786183896e-13}, /* L692 */
-{4.7359382078537360e+00, 3.6437519668197638e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- 1.7541523789077473e-14}, /* L693 */
-{3.7175851159186775e+00, 2.8643754035329039e-13,
- 2.2204460492503131e-16, 9.3356433694680163e-12,
- 5.9161564536225342e-12}, /* L694 */
-{6.1838227058953752e+00, 4.7714610040827665e-13,
- 2.2204460492503131e-16, 2.1227464230832993e-13,
- -3.8768988019910466e-13}, /* L695 */
-{5.1544621552201750e+00, 3.9829251008427491e-13,
- 2.2204460492503131e-16, 1.9850787680297799e-13,
- 1.0214051826551440e-14}, /* L696 */
-{5.2546711310781351e+00, 4.0661918276896358e-13,
- 2.2204460492503131e-16, -2.7644553313166398e-14,
- 6.8167693711984612e-14}, /* L697 */
-{5.1683462630156631e+00, 4.0051295613352522e-13,
- 2.2204460492503131e-16, -2.0594637106796654e-13,
- -4.8949733155723152e-13}, /* L698 */
-{4.1867018843598354e+00, 3.2490676815655206e-13,
- 2.2204460492503131e-16, -5.4845017416482733e-14,
- -4.5075054799781356e-14}, /* L699 */
-{4.7735789598809486e+00, 3.7098102367849606e-13,
- 2.2204460492503131e-16, -7.5384143372048129e-14,
- 6.4837024638109142e-14}, /* L700 */
-{5.0649152662736672e+00, 3.9418468489316183e-13,
- 2.2204460492503131e-16, -9.2592600253738055e-14,
- 4.9293902293356950e-14}, /* L701 */
-{4.7935438875946925e+00, 3.7359698668026908e-13,
- 2.2204460492503131e-16, 6.7501559897209518e-14,
- 1.4077627952246985e-13}, /* L702 */
-{5.6426120318247355e+00, 4.4039771829318397e-13,
- 2.2204460492503131e-16, 1.8518520050747611e-13,
- -9.5368157815300947e-13}, /* L703 */
-{3.8313270674372735e+00, 2.9945490531702035e-13,
- 2.2204460492503131e-16, -3.3473224192448470e-13,
- 4.1144865292608301e-13}, /* L704 */
-{4.0787298392966198e+00, 3.1924463073096376e-13,
- 2.2204460492503131e-16, 4.5963233219481481e-14,
- 1.0991207943789050e-13}, /* L705 */
-{4.3813808502119818e+00, 3.4341973709217655e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 1.2878587085651816e-14}, /* L706 */
-{4.5339534050160450e+00, 3.5588199054359393e-13,
- 2.2204460492503131e-16, 3.5682568011452531e-13,
- 5.2891024893142458e-13}, /* L707 */
-{5.2118726295850646e+00, 4.0967229608668276e-13,
- 2.2204460492503131e-16, 2.9398705692074145e-13,
- 9.8809849191638932e-14}, /* L708 */
-{4.8180611981047941e+00, 3.7925218521195347e-13,
- 2.2204460492503131e-16, -1.9650947535865271e-14,
- -5.1070259132757201e-15}, /* L709 */
-{5.3802901786618191e+00, 4.2410519540680980e-13,
- 2.2204460492503131e-16, 1.4543921622589551e-13,
- 2.7089441800853820e-13}, /* L710 */
-{5.5858034681761168e+00, 4.4092507422988092e-13,
- 2.2204460492503131e-16, -2.0838886172214188e-13,
- -8.5598195198599569e-14}, /* L711 */
-{4.5674229363923331e+00, 3.6104452760810091e-13,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 3.1086244689504383e-15}, /* L712 */
-{4.3099647241253880e+00, 3.4117153546731060e-13,
- 2.2204460492503131e-16, 5.4845017416482733e-14,
- -3.0830893393840597e-13}, /* L713 */
-{5.5490283625570518e+00, 4.3987036235648702e-13,
- 2.2204460492503131e-16, 1.9406698470447736e-13,
- -1.0960121699099545e-12}, /* L714 */
-{6.3098001648026454e+00, 5.0087711755963937e-13,
- 2.2204460492503131e-16, 1.1701750679549150e-13,
- -2.8088642523016460e-14}, /* L715 */
-{5.4015448349052813e+00, 4.2937875477377929e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -1.3244960683778118e-13}, /* L716 */
-{5.9492771686437464e+00, 4.7357950894166834e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- -1.4765966227514582e-14}, /* L717 */
-{4.0334325474155115e+00, 3.2152058793144533e-13,
- 2.2204460492503131e-16, -5.9874327718034692e-13,
- 3.4527936065842368e-13}, /* L718 */
-{6.2489667436003877e+00, 4.9882320496408283e-13,
- 2.2204460492503131e-16, -1.4876988529977098e-13,
- 4.6851411639181606e-14}, /* L719 */
-{4.7618130683010955e+00, 3.8063996399273492e-13,
- 2.2204460492503131e-16, -1.5765166949677223e-14,
- 1.8030021919912542e-13}, /* L720 */
-{4.8190089899344413e+00, 3.8574698990601064e-13,
- 2.2204460492503131e-16, 6.0573768223548541e-13,
- 5.7709392820015637e-13}, /* L721 */
-{5.4452994498122900e+00, 4.3648418213138029e-13,
- 2.2204460492503131e-16, -8.8706819667550008e-14,
- 2.6867397195928788e-14}, /* L722 */
-{4.9979331964771694e+00, 4.0117908994830032e-13,
- 2.2204460492503131e-16, -1.9317880628477724e-14,
- -1.3022916078853086e-13}, /* L723 */
-{5.3266658624814962e+00, 4.2815750944669162e-13,
- 2.2204460492503131e-16, 1.2390088954816747e-13,
- 3.9079850466805510e-14}, /* L724 */
-{5.2551807049291215e+00, 4.2299497238218464e-13,
- 2.2204460492503131e-16, 5.7731597280508140e-14,
- 8.1712414612411521e-14}, /* L725 */
-{5.3311034522421563e+00, 4.2969794389335902e-13,
- 2.2204460492503131e-16, 1.1701750679549150e-13,
- -3.5416114485542494e-14}, /* L726 */
-{6.4026923574185375e+00, 5.1678106238739474e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-14,
- 3.1086244689504383e-14}, /* L727 */
-{5.4828383206431903e+00, 4.4314552027913123e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- -6.8722805224297190e-14}, /* L728 */
-{5.2227448654761517e+00, 4.2270353883822054e-13,
- 2.2204460492503131e-16, -1.1501910535116622e-13,
- 4.6629367034256575e-15}, /* L729 */
-{5.5294607786639238e+00, 4.4814152388994444e-13,
- 2.2204460492503131e-16, 5.4845017416482733e-14,
- -7.5495165674510645e-15}, /* L730 */
-{3.6812643578872324e+00, 2.9876101592662963e-13,
- 2.2204460492503131e-16, -3.6703973194107675e-13,
- 2.7644553313166398e-13}, /* L731 */
-{5.0747230422844911e+00, 4.1241359285959511e-13,
- 2.2204460492503131e-16, 1.2723155862204294e-13,
- 7.4384942649885488e-14}, /* L732 */
-{4.9051919135809046e+00, 3.9918068850397503e-13,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -7.3940853440035426e-14}, /* L733 */
-{4.4186037015068136e+00, 3.6007308246155389e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-14,
- 3.8902214782865485e-13}, /* L734 */
-{4.7938851143583223e+00, 3.9118708272667391e-13,
- 2.2204460492503131e-16, 3.7636560534792807e-13,
- 4.8228088189716800e-13}, /* L735 */
-{5.0954564086903238e+00, 4.1636138981004933e-13,
- 2.2204460492503131e-16, 7.3430150848707854e-13,
- -3.8147263126120379e-13}, /* L736 */
-{6.5230767772173435e+00, 5.3373971908854401e-13,
- 2.2204460492503131e-16, -1.7069679003611782e-12,
- 1.9806378759312793e-13}, /* L737 */
-{7.4590226082607352e+00, 6.1115001948053305e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- 2.9753977059954195e-13}, /* L738 */
-{5.9905371915005796e+00, 4.9149573300155680e-13,
- 2.2204460492503131e-16, -8.9594998087250133e-14,
- -4.5519144009631418e-15}, /* L739 */
-{6.1905503074137398e+00, 5.0859316758078421e-13,
- 2.2204460492503131e-16, -1.1246559239452836e-13,
- -2.0738966099997924e-13}, /* L740 */
-{6.0897531975904897e+00, 5.0098813986210189e-13,
- 2.2204460492503131e-16, -5.5622173533720343e-14,
- 5.4845017416482733e-14}, /* L741 */
-{5.0532424738830288e+00, 4.1627812308320244e-13,
- 2.2204460492503131e-16, -1.4299672557172016e-13,
- 1.8651746813702630e-14}, /* L742 */
-{4.7153506426472500e+00, 3.8896663667742359e-13,
- 2.2204460492503131e-16, 5.2047255394427339e-13,
- -2.2862822746105849e-12}, /* L743 */
-{5.1660027740936192e+00, 4.2671421951467892e-13,
- 2.2204460492503131e-16, -5.1292303737682232e-14,
- 2.4558133304708463e-13}, /* L744 */
-{6.3798758373864874e+00, 5.2768900360433690e-13,
- 2.2204460492503131e-16, -6.7723604502134549e-14,
- -2.1982415887578100e-13}, /* L745 */
-{6.1806397780477473e+00, 5.1189608107904405e-13,
- 2.2204460492503131e-16, 2.2426505097428162e-14,
- 3.2862601528904634e-14}, /* L746 */
-{4.9215271757058083e+00, 4.0815961721563099e-13,
- 2.2204460492503131e-16, 4.7961634663806763e-14,
- 1.4321877017664519e-13}, /* L747 */
-{6.4737735827010674e+00, 5.3761162188692424e-13,
- 2.2204460492503131e-16, 2.0827783941967937e-13,
- 1.7896795156957523e-13}, /* L748 */
-{5.8938677767679390e+00, 4.9010795422077535e-13,
- 2.2204460492503131e-16, -4.3631764867768652e-14,
- 5.5511151231257827e-15}, /* L749 */
-{5.6600089298247420e+00, 4.7128967395337895e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- 6.0174087934683484e-13}, /* L750 */
-{5.0938828702085779e+00, 4.2471581807035363e-13,
- 2.2204460492503131e-16, 8.7707618945387367e-14,
- -2.9309887850104133e-13}, /* L751 */
-{5.9521370503034259e+00, 4.9693582582222007e-13,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -1.7297274723659939e-13}, /* L752 */
-{5.0783612658165858e+00, 4.2454928461665986e-13,
- 2.2204460492503131e-16, -2.5102142586774789e-13,
- 6.1728400169158704e-14}, /* L753 */
-{5.1691062985628413e+00, 4.3270942384765476e-13,
- 2.2204460492503131e-16, -4.0822900615467006e-13,
- -2.5301982731207318e-13}, /* L754 */
-{4.8622593268501086e+00, 4.0756287233989497e-13,
- 2.2204460492503131e-16, -4.3187675657918589e-14,
- 4.5963233219481481e-14}, /* L755 */
-{4.9604079583435956e+00, 4.1634057312833761e-13,
- 2.2204460492503131e-16, -2.2037927038809357e-13,
- -1.3766765505351941e-14}, /* L756 */
-{5.0647371848585072e+00, 4.2565950764128502e-13,
- 2.2204460492503131e-16, 6.4170890823334048e-14,
- -6.9610983643997315e-14}, /* L757 */
-{4.9386621453236152e+00, 4.1561198926842735e-13,
- 2.2204460492503131e-16, 1.4632739464559563e-13,
- 9.3036689463588118e-14}, /* L758 */
-{5.5849890486292120e+00, 4.7062354013860386e-13,
- 2.2204460492503131e-16, -6.3282712403633923e-15,
- -2.4635848916432224e-13}, /* L759 */
-{6.0394832127454210e+00, 5.0959236830294685e-13,
- 2.2204460492503131e-16, 1.4410694859634532e-13,
- 7.9936057773011271e-15}, /* L760 */
-{6.4704438484036633e+00, 5.4667381732542708e-13,
- 2.2204460492503131e-16, 7.1054273576010019e-14,
- -2.1083135237631723e-13}, /* L761 */
-{5.8162821422666831e+00, 4.9205084451386938e-13,
- 2.2204460492503131e-16, 3.5282887722587475e-13,
- 8.8817841970012523e-16}, /* L762 */
-{8.0249143647637453e+00, 6.7978955797798335e-13,
- 2.2204460492503131e-16, 3.3750779948604759e-14,
- -6.9499961341534799e-14}, /* L763 */
-{6.7755342500098648e+00, 5.7470694869721228e-13,
- 2.2204460492503131e-16, 1.8252066524837574e-13,
- -3.1241675912951905e-13}, /* L764 */
-{4.8758246860250267e+00, 4.1411318818518339e-13,
- 2.2204460492503131e-16, -5.2446935683292395e-13,
- 1.8687273950490635e-12}, /* L765 */
-{5.4402827346089841e+00, 4.6265768993691836e-13,
- 2.2204460492503131e-16, -2.2160051571518125e-13,
- 4.4408920985006262e-15}, /* L766 */
-{6.6494563839787721e+00, 5.6622762034663765e-13,
- 2.2204460492503131e-16, 6.0862426209951082e-13,
- 2.5934809855243657e-13}, /* L767 */
-{5.7496835504787178e+00, 4.9024673209885350e-13,
- 2.2204460492503131e-16, -9.6256336235001072e-14,
- 4.0811798385220754e-13}, /* L768 */
-{5.2392800475839456e+00, 4.4730885662147557e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- -1.6431300764452317e-13}, /* L769 */
-{5.4026059263202448e+00, 4.6185277824406512e-13,
- 2.2204460492503131e-16, -1.0125233984581428e-13,
- -4.4464432136237519e-13}, /* L770 */
-{4.7307143378691014e+00, 4.0493997044421803e-13,
- 2.2204460492503131e-16, -1.3467005288703149e-13,
- 3.7747582837255322e-15}, /* L771 */
-{5.4776640825639777e+00, 4.6948556153836307e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- 4.2410519540680980e-14}, /* L772 */
-{4.5417277347125538e+00, 3.8977154837027683e-13,
- 2.2204460492503131e-16, -1.1282086376240841e-12,
- 1.0476064460362977e-12}, /* L773 */
-{6.5058242177679810e+00, 5.5905280404999758e-13,
- 2.2204460492503131e-16, -1.4654943925052066e-14,
- -5.2180482157382357e-14}, /* L774 */
-{5.4361376088906992e+00, 4.6773696027457845e-13,
- 2.2204460492503131e-16, -1.2689849171465539e-13,
- -3.1863400806741993e-14}, /* L775 */
-{5.5992356380756574e+00, 4.8239190419963052e-13,
- 2.2204460492503131e-16, 3.1130653610489389e-13,
- 3.5282887722587475e-13}, /* L776 */
-{4.8360758409790794e+00, 4.1718017929071038e-13,
- 2.2204460492503131e-16, -8.4487972173974413e-14,
- -9.9142916099026479e-14}, /* L777 */
-{4.7892106408032511e+00, 4.1366909897533333e-13,
- 2.2204460492503131e-16, -1.5076828674409626e-13,
- -1.3766765505351941e-14}, /* L778 */
-{6.0006513157923154e+00, 5.1897375286102942e-13,
- 2.2204460492503131e-16, 1.5210055437364645e-13,
- -1.8762769116165146e-14}, /* L779 */
-{4.2705195581422490e+00, 3.6981528950263964e-13,
- 2.2204460492503131e-16, -7.5051076464660582e-14,
- 6.8833827526759706e-14}, /* L780 */
-{5.5966797646122730e+00, 4.8527848406365592e-13,
- 2.2204460492503131e-16, -4.1222580904332062e-13,
- -1.1654011089490268e-12}, /* L781 */
-{5.3714918506004858e+00, 4.6634918149379700e-13,
- 2.2204460492503131e-16, -2.4535928844215960e-14,
- -2.4980018054066022e-14}, /* L782 */
-{5.0805875175942159e+00, 4.4165712753674313e-13,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -9.7699626167013776e-15}, /* L783 */
-{4.7464998355253565e+00, 4.1314174303863638e-13,
- 2.2204460492503131e-16, 6.2394533983933798e-14,
- 7.1720407390785113e-14}, /* L784 */
-{3.9261208439437265e+00, 3.4217073618947325e-13,
- 2.2204460492503131e-16, 5.0648374383399641e-13,
- 2.3536728122053319e-14}, /* L785 */
-{4.6774882957369188e+00, 4.0817349500343880e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- 2.5091040356528538e-14}, /* L786 */
-{5.4371115006593902e+00, 4.7506443223710448e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-14,
- -4.1633363423443370e-14}, /* L787 */
-{5.5780544858105578e+00, 4.8799853047398756e-13,
- 2.2204460492503131e-16, -3.7614356074300304e-13,
- 5.6021853822585399e-13}, /* L788 */
-{4.8637592578527356e+00, 4.2604808569990382e-13,
- 2.2204460492503131e-16, -4.6040948831205242e-13,
- 2.9087843245179101e-14}, /* L789 */
-{4.9607673203088325e+00, 4.3509640335059885e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 2.1316282072803006e-14}, /* L790 */
-{5.5463997904164684e+00, 4.8707652494650588e-13,
- 2.2204460492503131e-16, 1.3722356584366935e-13,
- 7.3718808835110394e-14}, /* L791 */
-{7.4968552621604037e+00, 6.5919492087118670e-13,
- 2.2204460492503131e-16, 1.0678125050844756e-12,
- -4.5585757391108928e-13}, /* L792 */
-{5.7465412227243586e+00, 5.0592863232168384e-13,
- 2.2204460492503131e-16, -9.4924068605450884e-14,
- 6.2394533983933798e-14}, /* L793 */
-{5.4773386164466649e+00, 4.8283599340948058e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-14,
- 1.8607337892717624e-13}, /* L794 */
-{6.7452936609527079e+00, 5.9535709695524019e-13,
- 2.2204460492503131e-16, 1.1588507931037384e-12,
- -1.0323963905989331e-12}, /* L795 */
-{5.6677225098294119e+00, 5.0087711755963937e-13,
- 2.2204460492503131e-16, -1.2045919817182948e-13,
- 3.2107649872159527e-13}, /* L796 */
-{5.7716919793125445e+00, 5.1070606077452396e-13,
- 2.2204460492503131e-16, -2.2648549702353193e-14,
- 1.1546319456101628e-14}, /* L797 */
-{7.7575310361044254e+00, 6.8728356339420316e-13,
- 2.2204460492503131e-16, -1.0436096431476471e-14,
- -8.3710816056736803e-14}, /* L798 */
-{5.5982566421632196e+00, 4.9660275891483252e-13,
- 2.2204460492503131e-16, 8.9639407008235139e-13,
- -1.3355982986240633e-13}, /* L799 */
-{5.1640706473886384e+00, 4.5866088704826780e-13,
- 2.2204460492503131e-16, 4.2010839251815923e-13,
- -2.7089441800853820e-14}, /* L800 */
-{6.0293478396294509e+00, 5.3618220974271935e-13,
- 2.2204460492503131e-16, -3.7680969455777813e-13,
- 2.3270274596143281e-13}, /* L801 */
-{5.9975156967327594e+00, 5.3401727484470030e-13,
- 2.2204460492503131e-16, 8.2600593032111647e-14,
- 8.0158102377936302e-14}, /* L802 */
-{4.9206179749994252e+00, 4.3867687260501498e-13,
- 2.2204460492503131e-16, -6.1395333261771157e-14,
- -1.1657341758564144e-13}, /* L803 */
-{5.0876945940554847e+00, 4.5413672822292028e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- -2.9420910152566648e-14}, /* L804 */
-{5.1867317856259181e+00, 4.6355280725052239e-13,
- 2.2204460492503131e-16, -2.4757973449140991e-14,
- 3.6637359812630166e-14}, /* L805 */
-{6.6606029402411666e+00, 5.9601629187611138e-13,
- 2.2204460492503131e-16, -2.2060131499301860e-13,
- -5.6732396558345499e-14}, /* L806 */
-{5.3853864395590136e+00, 4.8250292650209303e-13,
- 2.2204460492503131e-16, 1.7186252421197423e-13,
- 1.2012613126444194e-13}, /* L807 */
-{5.3459242758868228e+00, 4.7956083548683637e-13,
- 2.2204460492503131e-16, -7.3052675020335300e-14,
- 4.8849813083506888e-15}, /* L808 */
-{6.3844352890848084e+00, 5.7343019221889335e-13,
- 2.2204460492503131e-16, -1.2412293415309250e-13,
- -8.6930462828149757e-14}, /* L809 */
-{6.0456885506712004e+00, 5.4367621515893916e-13,
- 2.2204460492503131e-16, -3.7081449022480228e-14,
- 8.7485574340462335e-14}, /* L810 */
-{5.9192448505473703e+00, 5.3296256297130640e-13,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 1.2212453270876722e-14}, /* L811 */
-{4.9039486236889385e+00, 4.4209080840573733e-13,
- 2.2204460492503131e-16, 5.7953641885433171e-14,
- -2.8221869285971479e-13}, /* L812 */
-{5.8108947767463297e+00, 5.2449711240853958e-13,
- 2.2204460492503131e-16, 1.0280665208028950e-13,
- -8.5487172896137054e-14}, /* L813 */
-{5.8472911663449612e+00, 5.2843146525205498e-13,
- 2.2204460492503131e-16, -7.1720407390785113e-14,
- 2.9531932455029164e-14}, /* L814 */
-{5.2760819437426676e+00, 4.7739590058881731e-13,
- 2.2204460492503131e-16, -6.4392935428259079e-15,
- 2.3536728122053319e-14}, /* L815 */
-{4.9963314121564366e+00, 4.5263792713967632e-13,
- 2.2204460492503131e-16, 2.8066438062523957e-13,
- -9.9809049913801573e-14}, /* L816 */
-{9.8972004374043845e+00, 8.9772633771190158e-13,
- 2.2204460492503131e-16, 6.7057470687359455e-14,
- 1.0680345496894006e-13}, /* L817 */
-{6.0547161540341738e+00, 5.4986570852122441e-13,
- 2.2204460492503131e-16, 1.0258460747536446e-13,
- -1.8762769116165146e-13}, /* L818 */
-{5.6835788693408089e+00, 5.1679147072825060e-13,
- 2.2204460492503131e-16, -2.0883295093199195e-13,
- 1.4788170688007085e-13}, /* L819 */
-{7.7658659107967294e+00, 7.0699002208129968e-13,
- 2.2204460492503131e-16, -1.6586731987899839e-13,
- -2.8610447344590284e-13}, /* L820 */
-{7.6443482359374508e+00, 6.9677597025474824e-13,
- 2.2204460492503131e-16, -2.0738966099997924e-13,
- -3.7303493627405260e-14}, /* L821 */
-{4.9203240645320649e+00, 4.4902970230964456e-13,
- 2.2204460492503131e-16, -9.9920072216264089e-15,
- 4.5985437679973984e-13}, /* L822 */
-{5.4878579899365851e+00, 5.0143222907195195e-13,
- 2.2204460492503131e-16, 9.5545793499240972e-13,
- 6.0151883474190981e-13}, /* L823 */
-{6.2803497143765901e+00, 5.7454041524351851e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- -8.9372953482325102e-14}, /* L824 */
-{8.0253156918978181e+00, 7.3506478681650833e-13,
- 2.2204460492503131e-16, -5.2069459854919842e-14,
- 4.8849813083506888e-14}, /* L825 */
-{4.3955880487509509e+00, 4.0309422466577871e-13,
- 2.2204460492503131e-16, 1.0436096431476471e-14,
- 2.7666757773658901e-13}, /* L826 */
-{4.9359207257683675e+00, 4.5319303865198890e-13,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- 1.4632739464559563e-13}, /* L827 */
-{6.7110613127196102e+00, 6.1692317920858386e-13,
- 2.2204460492503131e-16, 3.9479530755670567e-13,
- 2.1938006966593093e-13}, /* L828 */
-{4.5184027861190534e+00, 4.1586178944896801e-13,
- 2.2204460492503131e-16, 1.5285550603039155e-12,
- -1.9910739723627557e-12}, /* L829 */
-{7.1277220888234192e+00, 6.5680794136824261e-13,
- 2.2204460492503131e-16, 2.3336887977620790e-13,
- -1.4099832412739488e-14}, /* L830 */
-{4.5854464643221036e+00, 4.2305048353341590e-13,
- 2.2204460492503131e-16, 1.5254464358349651e-12,
- 9.8032693074401323e-13}, /* L831 */
-{5.6953590457039507e+00, 5.2608264966558238e-13,
- 2.2204460492503131e-16, 1.4166445794216997e-13,
- 8.8817841970012523e-14}, /* L832 */
-{5.1566708007782589e+00, 4.7689630022773599e-13,
- 2.2204460492503131e-16, -6.5569771834361745e-13,
- -1.4122036873231991e-13}, /* L833 */
-{5.6810641189063018e+00, 5.2602366906739917e-13,
- 2.2204460492503131e-16, 1.1255441023649837e-12,
- -2.2061241722326486e-12}, /* L834 */
-{7.5390837507531092e+00, 6.9889927178934386e-13,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -1.8030021919912542e-13}, /* L835 */
-{6.5557818742044169e+00, 6.0847160643362486e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- -4.9737991503207013e-14}, /* L836 */
-{4.5770681531677999e+00, 4.2532644073389747e-13,
- 2.2204460492503131e-16, -3.1452618287630685e-13,
- -9.8920871494101448e-14}, /* L837 */
-{4.8242916208647806e+00, 4.4883541328033516e-13,
- 2.2204460492503131e-16, 6.9944050551384862e-14,
- 2.4202861936828413e-14}, /* L838 */
-{6.6103538439799037e+00, 6.1573836307449170e-13,
- 2.2204460492503131e-16, 1.4455103780619538e-13,
- -5.7398530373120593e-14}, /* L839 */
-{4.9940554981994092e+00, 4.6573855883025317e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -5.6066262743570405e-14}, /* L840 */
-{5.7401993060558745e+00, 5.3596016513779432e-13,
- 2.2204460492503131e-16, 1.3078427230084344e-13,
- 5.5289106626332796e-14}, /* L841 */
-{6.2256630289172081e+00, 5.8197890950850706e-13,
- 2.2204460492503131e-16, -1.8007817459420039e-13,
- 1.4677148385544569e-13}, /* L842 */
-{5.8446118307928137e+00, 5.4700688423281463e-13,
- 2.2204460492503131e-16, -1.6151524562246777e-12,
- 2.3188118092321020e-12}, /* L843 */
-{5.6466321314715486e+00, 5.2910453796073398e-13,
- 2.2204460492503131e-16, -8.4021678503631847e-13,
- 9.3547392054915690e-13}, /* L844 */
-{5.3997126611756201e+00, 5.0656701056084330e-13,
- 2.2204460492503131e-16, -7.7826634026223473e-14,
- 2.6689761511988763e-13}, /* L845 */
-{5.2452801431278946e+00, 4.9266146717741321e-13,
- 2.2204460492503131e-16, 5.7509552675583109e-14,
- -5.9285909514983359e-14}, /* L846 */
-{5.7857234138907518e+00, 5.4406479321755796e-13,
- 2.2204460492503131e-16, 1.1901590823981678e-13,
- 1.9317880628477724e-14}, /* L847 */
-{5.3661641266103519e+00, 5.0520698735567748e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-13,
- -2.2359891715950653e-13}, /* L848 */
-{6.3798687228077453e+00, 6.0135230128821604e-13,
- 2.2204460492503131e-16, -6.2394533983933798e-14,
- -1.2212453270876722e-15}, /* L849 */
-{6.7017752793213372e+00, 6.3243854597772042e-13,
- 2.2204460492503131e-16, -3.1308289294429414e-14,
- 2.2204460492503131e-16}, /* L850 */
-{5.7622740735211968e+00, 5.4441867680665723e-13,
- 2.2204460492503131e-16, -2.8941293805928581e-12,
- 1.8149926006572059e-12}, /* L851 */
-{5.9629825592457770e+00, 5.6404360349038285e-13,
- 2.2204460492503131e-16, -1.0946799022804043e-13,
- -1.4777068457760834e-13}, /* L852 */
-{5.0861744957595070e+00, 4.8167025923362417e-13,
- 2.2204460492503131e-16, -1.2292389328649733e-12,
- 6.4215299744319054e-13}, /* L853 */
-{5.0556285851944835e+00, 4.7933879088191134e-13,
- 2.2204460492503131e-16, -5.7731597280508140e-15,
- 1.0635936575909000e-13}, /* L854 */
-{6.2374367413835543e+00, 5.9208193903259598e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-13,
- 4.5146109073357366e-12}, /* L855 */
-{5.9497757421420419e+00, 5.6543658644159223e-13,
- 2.2204460492503131e-16, 1.2900791546144319e-13,
- 1.5099033134902129e-14}, /* L856 */
-{5.0644770684410663e+00, 4.8186454826293357e-13,
- 2.2204460492503131e-16, -1.0880185641326534e-13,
- 1.0436096431476471e-14}, /* L857 */
-{6.2309247489302457e+00, 5.9353910675241650e-13,
- 2.2204460492503131e-16, 1.9899637493381306e-12,
- 4.6647130602650577e-12}, /* L858 */
-{4.4090581785389666e+00, 4.2048309278897023e-13,
- 2.2204460492503131e-16, 7.4784622938750545e-13,
- -1.0299538999447577e-12}, /* L859 */
-{6.9174527740754632e+00, 6.6047167734950563e-13,
- 2.2204460492503131e-16, -3.7346792325365641e-12,
- -7.3641093223386633e-13}, /* L860 */
-{5.5769542111074966e+00, 5.3310134084938454e-13,
- 2.2204460492503131e-16, -4.6074255521943996e-14,
- 8.0824236192711396e-14}, /* L861 */
-{6.3616689695639250e+00, 6.0881855112882022e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -7.5939254884360707e-14}, /* L862 */
-{4.7879565690563686e+00, 4.5874415377511468e-13,
- 2.2204460492503131e-16, -1.6431300764452317e-13,
- 1.5742962489184720e-13}, /* L863 */
-{6.5356729271103298e+00, 6.2692212532411418e-13,
- 2.2204460492503131e-16, -1.9484414082171497e-13,
- -3.0264679651281767e-13}, /* L864 */
-{5.1370023243348175e+00, 4.9332760099218831e-13,
- 2.2204460492503131e-16, -1.8285373215576328e-13,
- 3.6703973194107675e-13}, /* L865 */
-{6.7863848408743417e+00, 6.5247807157220450e-13,
- 2.2204460492503131e-16, -1.8418599978531347e-13,
- 3.0975222387041867e-13}, /* L866 */
-{6.4708867950856597e+00, 6.2286287239032845e-13,
- 2.2204460492503131e-16, 5.3734794391857577e-14,
- 3.0486724256206799e-13}, /* L867 */
-{6.7753563116450861e+00, 6.5292216078205456e-13,
- 2.2204460492503131e-16, -2.4824586830618500e-13,
- -1.2900791546144319e-13}, /* L868 */
-{5.1585236737345079e+00, 4.9768522636384205e-13,
- 2.2204460492503131e-16, -3.3750779948604759e-14,
- -1.8984813721090177e-14}, /* L869 */
-{7.3713478367140581e+00, 7.1199296458601680e-13,
- 2.2204460492503131e-16, 2.9332092310596636e-13,
- -2.4069635173873394e-13}, /* L870 */
-{7.3077038371027525e+00, 7.0665695517391214e-13,
- 2.2204460492503131e-16, -2.8721469647052800e-13,
- -5.0881521218570924e-13}, /* L871 */
-{5.4753526751941850e+00, 5.3007598310728099e-13,
- 2.2204460492503131e-16, -3.5804692544161298e-13,
- -1.1535217225855376e-13}, /* L872 */
-{5.1340287185483042e+00, 4.9760195963699516e-13,
- 2.2204460492503131e-16, -2.3170354523927017e-13,
- -1.6509016376176078e-13}, /* L873 */
-{5.6175717919442070e+00, 5.4509174951533623e-13,
- 2.2204460492503131e-16, 1.7430501486614958e-13,
- 5.7953641885433171e-14}, /* L874 */
-{6.0377238114716985e+00, 5.8653082390947020e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-14,
- -8.3932860661661834e-14}, /* L875 */
-{6.1301466578670061e+00, 5.9618976422370906e-13,
- 2.2204460492503131e-16, 7.1409544943890069e-13,
- 1.9251267247000214e-12}, /* L876 */
-{6.2750954190688208e+00, 6.1098348602683927e-13,
- 2.2204460492503131e-16, -3.6359804056473877e-13,
- 1.4579448759377556e-12}, /* L877 */
-{6.1107727389561139e+00, 5.9566240828701211e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 2.6134649999676185e-13}, /* L878 */
-{6.6204598194266104e+00, 6.4608041139280203e-13,
- 2.2204460492503131e-16, 1.8363088827300089e-13,
- 4.3232084578903596e-13}, /* L879 */
-{6.5198966501069764e+00, 6.3699046037868357e-13,
- 2.2204460492503131e-16, -9.1993079820440471e-13,
- -2.1993518117824351e-13}, /* L880 */
-{6.6342329413196772e+00, 6.4889760231778837e-13,
- 2.2204460492503131e-16, 2.7200464103316335e-13,
- 1.5276668818842154e-13}, /* L881 */
-{5.9053381150579725e+00, 5.7825966237601278e-13,
- 2.2204460492503131e-16, 1.3633538742396922e-13,
- 6.5702998597316764e-13}, /* L882 */
-{6.0271895770870376e+00, 5.9086069370550831e-13,
- 2.2204460492503131e-16, -6.5503158452884236e-14,
- 2.4469315462738450e-13}, /* L883 */
-{5.7030632964053680e+00, 5.5971893786477267e-13,
- 2.2204460492503131e-16, 8.8595797365087492e-14,
- 9.7699626167013776e-15}, /* L884 */
-{7.0096155788907950e+00, 6.8872685332621586e-13,
- 2.2204460492503131e-16, -3.8880010322372982e-13,
- 2.2115642650533118e-13}, /* L885 */
-{8.0350013901915709e+00, 7.9036777123064894e-13,
- 2.2204460492503131e-16, 7.9491968563161208e-14,
- -2.5246471579976060e-13}, /* L886 */
-{6.3557033758012915e+00, 6.2588823013243200e-13,
- 2.2204460492503131e-16, -2.5313084961453569e-14,
- -2.0383694732117874e-13}, /* L887 */
-{5.8378470482479052e+00, 5.7553961596568115e-13,
- 2.2204460492503131e-16, -1.6220358389773537e-13,
- 2.6578739209526248e-13}, /* L888 */
-{5.8582769591789754e+00, 5.7820415122478153e-13,
- 2.2204460492503131e-16, 1.5365486660812167e-13,
- 1.8207657603852567e-13}, /* L889 */
-{6.8000107284255273e+00, 6.7190697450314474e-13,
- 2.2204460492503131e-16, -7.2275518903097691e-14,
- 6.7279515292284486e-14}, /* L890 */
-{8.0757703169420463e+00, 7.9886097736903139e-13,
- 2.2204460492503131e-16, 2.3625545964023331e-13,
- -8.7863050168834889e-13}, /* L891 */
-{5.7140995420799570e+00, 5.6587720620449034e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-13,
- 9.3480778673438181e-14}, /* L892 */
-{7.0554422624398523e+00, 6.9949601666507988e-13,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- -1.6653345369377348e-15}, /* L893 */
-{4.9636543636273327e+00, 4.9266146717741321e-13,
- 2.2204460492503131e-16, -1.6919798895287386e-13,
- 6.9522165802027303e-13}, /* L894 */
-{6.3481943731287842e+00, 6.3078708922859050e-13,
- 2.2204460492503131e-16, -7.0132788465571139e-13,
- 3.3772984409097262e-13}, /* L895 */
-{6.9894083486650374e+00, 6.9527716917150428e-13,
- 2.2204460492503131e-16, -3.1763480734525729e-13,
- -1.7030821197749901e-13}, /* L896 */
-{6.6542224549305811e+00, 6.6267304144052019e-13,
- 2.2204460492503131e-16, -1.0014211682118912e-13,
- -3.5593750169482519e-13}, /* L897 */
-{7.0843652973185325e+00, 7.0629613269090896e-13,
- 2.2204460492503131e-16, -1.5165646516379638e-13,
- 2.1693757901175559e-13}, /* L898 */
-{5.8309324475313371e+00, 5.8197890950850706e-13,
- 2.2204460492503131e-16, 1.0942358130705543e-12,
- 6.3282712403633923e-13}, /* L899 */
-{6.6433438145839370e+00, 6.6380234642338110e-13,
- 2.2204460492503131e-16, -4.0523140398818214e-14,
- 7.4384942649885488e-14}, /* L900 */
-{6.9370253729904032e+00, 6.9391714596633847e-13,
- 2.2204460492503131e-16, -7.4795725168996796e-13,
- -8.1212814251330201e-13}, /* L901 */
-{6.4007861517729747e+00, 6.4098726326733413e-13,
- 2.2204460492503131e-16, 2.6134649999676185e-13,
- -1.1302070390684094e-13}, /* L902 */
-{7.6472988869014422e+00, 7.6666450965490185e-13,
- 2.2204460492503131e-16, 1.9584334154387761e-13,
- -8.0824236192711396e-14}, /* L903 */
-{6.6161608808319823e+00, 6.6402439102830613e-13,
- 2.2204460492503131e-16, 7.0898842352562497e-13,
- 2.3647750424515834e-13}, /* L904 */
-{7.4878571174627959e+00, 7.5234263263723733e-13,
- 2.2204460492503131e-16, 3.0724311983476582e-12,
- 4.3143266736933583e-13}, /* L905 */
-{8.0027720079277849e+00, 8.0496720400446975e-13,
- 2.2204460492503131e-16, -4.8738790781044372e-14,
- 6.4392935428259079e-14}, /* L906 */
-{6.3291169314673299e+00, 6.3732352728607111e-13,
- 2.2204460492503131e-16, 2.4646951146678475e-14,
- 2.4868995751603507e-14}, /* L907 */
-{5.9894092292604926e+00, 6.0378091415458357e-13,
- 2.2204460492503131e-16, 1.6608936448392342e-13,
- -5.2413628992553640e-13}, /* L908 */
-{7.1226735037165598e+00, 7.1881389729355760e-13,
- 2.2204460492503131e-16, -4.6851411639181606e-14,
- 2.2204460492503131e-15}, /* L909 */
-{1.2004963995260768e+01, 1.2128631432517523e-12,
- 2.2204460492503131e-16, -1.1879386363489175e-14,
- -7.1498362785860081e-14}, /* L910 */
-{5.2436965276595409e+00, 5.3035353886343728e-13,
- 2.2204460492503131e-16, 1.4608314558017810e-12,
- 9.5767838104166003e-13}, /* L911 */
-{5.4082330733706163e+00, 5.4759538917203976e-13,
- 2.2204460492503131e-16, 6.2074789752841752e-12,
- 2.5446311724408588e-13}, /* L912 */
-{5.1336335100961161e+00, 5.2036153164181087e-13,
- 2.2204460492503131e-16, 1.3966605649784469e-13,
- 9.4058094646243262e-13}, /* L913 */
-{6.1307536550257353e+00, 6.2211347184870647e-13,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 2.1094237467877974e-14}, /* L914 */
-{6.5106660096199507e+00, 6.6138761134482138e-13,
- 2.2204460492503131e-16, 5.0759396685862157e-13,
- -1.1102230246251565e-13}, /* L915 */
-{8.3286157600311341e+00, 8.4698914548653192e-13,
- 2.2204460492503131e-16, -1.0836886943366153e-12,
- 5.4738436006118718e-12}, /* L916 */
-{5.2467367401910279e+00, 5.3415605272277844e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- -4.6740389336719090e-14}, /* L917 */
-{7.6448922354710795e+00, 7.7915451868193486e-13,
- 2.2204460492503131e-16, 6.1779470428291461e-12,
- 1.6034951144661136e-11}, /* L918 */
-{5.4037081990071005e+00, 5.5133675402885274e-13,
- 2.2204460492503131e-16, -4.3998138465894954e-13,
- -1.2402301408087624e-12}, /* L919 */
-{4.3652242783491957e+00, 4.4586556668946287e-13,
- 2.2204460492503131e-16, -3.4305891460917337e-14,
- -6.0951244051921094e-14}, /* L920 */
-{6.3895323392144743e+00, 6.5333849441628900e-13,
- 2.2204460492503131e-16, 1.1612932837579137e-13,
- -3.1674662892555716e-13}, /* L921 */
-{5.8123735953795981e+00, 5.9496851889662139e-13,
- 2.2204460492503131e-16, -5.8375526634790731e-13,
- -9.4768637382003362e-13}, /* L922 */
-{6.5474101132018605e+00, 6.7093552935659773e-13,
- 2.2204460492503131e-16, -6.0607074914287296e-13,
- -8.4632301167175683e-13}, /* L923 */
-{5.7401335151183037e+00, 5.8884841447337521e-13,
- 2.2204460492503131e-16, 5.9752203185325925e-13,
- 4.7628567756419216e-13}, /* L924 */
-{6.8264972566862019e+00, 7.0105032889955510e-13,
- 2.2204460492503131e-16, 1.4004353232621725e-12,
- -5.8375526634790731e-13}, /* L925 */
-{6.4638330921997484e+00, 6.6452399138938745e-13,
- 2.2204460492503131e-16, -2.8677060726067793e-13,
- -5.5944138210861638e-13}, /* L926 */
-{6.1794865563184924e+00, 6.3597738186871311e-13,
- 2.2204460492503131e-16, 4.0101255649460654e-13,
- -1.5787371410169726e-13}, /* L927 */
-{8.3223124297326248e+00, 8.5743565025886426e-13,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- -2.0916601783937949e-13}, /* L928 */
-{7.4370407969731209e+00, 7.6705308771352065e-13,
- 2.2204460492503131e-16, -9.6112007241799802e-13,
- 3.5260683262094972e-13}, /* L929 */
-{6.5539081896025664e+00, 6.7669481129684073e-13,
- 2.2204460492503131e-16, 1.1857181902996672e-13,
- -9.2148511043887993e-15}, /* L930 */
-{8.1063500611954957e+00, 8.3788531668460564e-13,
- 2.2204460492503131e-16, 8.1490370007486490e-14,
- 7.0832228971084987e-14}, /* L931 */
-{5.0944286380281163e+00, 5.2713389209202433e-13,
- 2.2204460492503131e-16, 7.9602990865623724e-13,
- -1.0729306332279975e-11}, /* L932 */
-{6.4677553810622532e+00, 6.6995367586919485e-13,
- 2.2204460492503131e-16, 4.0856207306205761e-13,
- -2.1882495815361835e-13}, /* L933 */
-{5.1754631974800116e+00, 5.3666793231599286e-13,
- 2.2204460492503131e-16, 6.5281113847959205e-13,
- 1.9029222642075183e-13}, /* L934 */
-{5.5473349552734277e+00, 5.7584492729745307e-13,
- 2.2204460492503131e-16, -1.0713652187632761e-13,
- -1.4399592629388280e-13}, /* L935 */
-{6.4204161123026866e+00, 6.6718852664848782e-13,
- 2.2204460492503131e-16, -1.6613377340490842e-12,
- 6.1659566341631944e-12}, /* L936 */
-{5.8863486679335608e+00, 6.1234350923200509e-13,
- 2.2204460492503131e-16, -1.5709655798445965e-13,
- 4.4408920985006262e-14}, /* L937 */
-{7.0773032767795323e+00, 7.3702155489741017e-13,
- 2.2204460492503131e-16, 4.1899816949353408e-13,
- -5.4400928206632670e-14}, /* L938 */
-{7.1384564168047788e+00, 7.4418249340624243e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-13,
- 8.6930462828149757e-13}, /* L939 */
-{7.2005432752390668e+00, 7.5145445421753720e-13,
- 2.2204460492503131e-16, 1.1635137298071641e-13,
- -1.0236256287043943e-13}, /* L940 */
-{5.2109540236965906e+00, 5.4439786012494551e-13,
- 2.2204460492503131e-16, -1.0424994201230220e-13,
- 4.4408920985006262e-16}, /* L941 */
-{7.2018425725798965e+00, 7.5318917769351401e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-13,
- 1.6231460620019789e-13}, /* L942 */
-{7.5646991034900575e+00, 7.9197759461635542e-13,
- 2.2204460492503131e-16, -4.1189274213593308e-14,
- 6.6391336872584361e-14}, /* L943 */
-{8.0042499164981002e+00, 8.3888451740676828e-13,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- 1.1080025785759062e-13}, /* L944 */
-{7.2097997347402023e+00, 7.5642270225273478e-13,
- 2.2204460492503131e-16, 3.7081449022480228e-14,
- 8.9483975784787617e-14}, /* L945 */
-{4.6287007350864569e+00, 4.8613890690774042e-13,
- 2.2204460492503131e-16, -9.7588603864551260e-14,
- 2.5313084961453569e-14}, /* L946 */
-{6.6119337702020271e+00, 6.9516614686904177e-13,
- 2.2204460492503131e-16, 1.8274270985330077e-13,
- 6.1461946643248666e-13}, /* L947 */
-{5.5200433228603947e+00, 5.8097970878634442e-13,
- 2.2204460492503131e-16, 1.6053824936079764e-13,
- 2.1138646388862981e-13}, /* L948 */
-{5.4968399016857976e+00, 5.7914784079571291e-13,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- -1.3922196728799463e-13}, /* L949 */
-{5.8255275069440060e+00, 6.1442517740317726e-13,
- 2.2204460492503131e-16, -7.0555783437953323e-12,
- 1.0891287871572786e-11}, /* L950 */
-{6.8811791147795152e+00, 7.2652994731470244e-13,
- 2.2204460492503131e-16, -8.1379347705023974e-14,
- -2.1538326677728037e-14}, /* L951 */
-{9.0120816747706520e+00, 9.5251584397715305e-13,
- 2.2204460492503131e-16, 2.0716761639505421e-13,
- 3.2818192607919627e-13}, /* L952 */
-{6.6128030311209933e+00, 6.9966255011877365e-13,
- 2.2204460492503131e-16, 1.1841638780651920e-12,
- 1.8962609260597674e-13}, /* L953 */
-{4.9091991170558229e+00, 5.1995907579538425e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- 9.2126306583395490e-13}, /* L954 */
-{6.3900536626935871e+00, 6.7751360077750178e-13,
- 2.2204460492503131e-16, 1.2656542480726785e-13,
- 7.9691808707593736e-13}, /* L955 */
-{5.8969677330262291e+00, 6.2588823013243200e-13,
- 2.2204460492503131e-16, 1.5756285165480222e-12,
- -6.2350125062948791e-13}, /* L956 */
-{7.6933140078650801e+00, 8.1740170188027150e-13,
- 2.2204460492503131e-16, -5.2735593669694936e-14,
- -1.6120438317557273e-13}, /* L957 */
-{5.8556901326765569e+00, 6.2280736123909719e-13,
- 2.2204460492503131e-16, -1.0802470029602773e-13,
- 7.5406347832540632e-13}, /* L958 */
-{6.8952047467702009e+00, 7.3413497503338476e-13,
- 2.2204460492503131e-16, 2.0872192862952943e-13,
- 9.4035890185750759e-13}, /* L959 */
-{6.1161470839986061e+00, 6.5186744890866066e-13,
- 2.2204460492503131e-16, 6.1728400169158704e-14,
- -6.3837823915946501e-14}, /* L960 */
-{6.1335860617206910e+00, 6.5440708407749071e-13,
- 2.2204460492503131e-16, -4.2188474935755949e-14,
- -1.3622436512150671e-13}, /* L961 */
-{5.7419450410871500e+00, 6.1325944322732084e-13,
- 2.2204460492503131e-16, -4.3332004651119860e-13,
- -2.2770674235061961e-13}, /* L962 */
-{6.4761176274904235e+00, 6.9239058930747888e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- 5.0648374383399641e-13}, /* L963 */
-{5.2842334456957394e+00, 5.6554760874405474e-13,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- -1.0547118733938987e-13}, /* L964 */
-{6.9018148828218333e+00, 7.3943628997596988e-13,
- 2.2204460492503131e-16, -1.1624035067825389e-13,
- 2.8044233602031454e-13}, /* L965 */
-{5.8033138160706299e+00, 6.2239102760486276e-13,
- 2.2204460492503131e-16, -6.7146288529329468e-13,
- -2.7422508708241367e-14}, /* L966 */
-{7.3660821680963160e+00, 7.9081186044049900e-13,
- 2.2204460492503131e-16, 1.3300471835009375e-13,
- 2.1360690993788012e-13}, /* L967 */
-{6.4925116581854301e+00, 6.9774741540129526e-13,
- 2.2204460492503131e-16, -4.2765790908561030e-13,
- 1.6875389974302379e-13}, /* L968 */
-{5.7084634995950481e+00, 6.1411986607140534e-13,
- 2.2204460492503131e-16, -4.5641268542340185e-13,
- -3.9779290972319359e-13}, /* L969 */
-{6.9384034806582662e+00, 7.4720785114834598e-13,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 2.3026025530725747e-13}, /* L970 */
-{6.5687449065401884e+00, 7.0812800068154047e-13,
- 2.2204460492503131e-16, 3.3595348725157237e-13,
- -9.3069996154326873e-13}, /* L971 */
-{5.8868324794816296e+00, 6.3526961469051457e-13,
- 2.2204460492503131e-16, 7.2875039336395275e-13,
- -1.0487166690609229e-12}, /* L972 */
-{7.8915740700310826e+00, 8.5248474945842645e-13,
- 2.2204460492503131e-16, -2.3903101720179620e-13,
- -1.8807178037150152e-13}, /* L973 */
-{5.2992823977846522e+00, 5.7304161416027455e-13,
- 2.2204460492503131e-16, -8.4809936851115708e-13,
- -8.0846440653203899e-13}, /* L974 */
-{7.8897452030801762e+00, 8.5403906169290167e-13,
- 2.2204460492503131e-16, -4.7895021282329253e-13,
- 1.0214051826551440e-14}, /* L975 */
-{5.5701855652531194e+00, 6.0357274733746635e-13,
- 2.2204460492503131e-16, -1.5420997812043424e-13,
- 5.4400928206632670e-14}, /* L976 */
-{8.8536353826019187e+00, 9.6034291630076041e-13,
- 2.2204460492503131e-16, 7.2830630415410269e-14,
- 2.6645352591003757e-14}, /* L977 */
-{7.4910547015443365e+00, 8.1337714341600531e-13,
- 2.2204460492503131e-16, -1.8041124150158794e-13,
- -1.5976109324356003e-13}, /* L978 */
-{6.9984692553917132e+00, 7.6066930532192600e-13,
- 2.2204460492503131e-16, 9.5701224722688494e-14,
- 9.5146113210375916e-13}, /* L979 */
-{5.6237256397473212e+00, 6.1187166444653940e-13,
- 2.2204460492503131e-16, -1.4513945600924671e-12,
- 1.7341683644644945e-12}, /* L980 */
-{6.8144764189416032e+00, 7.4218409196191715e-13,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 7.1054273576010019e-14}, /* L981 */
-{6.8194387671740184e+00, 7.4348166512194780e-13,
- 2.2204460492503131e-16, 3.8768988019910466e-13,
- 1.0855760734784781e-12}, /* L982 */
-{6.1744671832417808e+00, 6.7384986479623876e-13,
- 2.2204460492503131e-16, -1.1679546219056647e-13,
- 1.3034018309099338e-13}, /* L983 */
-{6.6580298167526362e+00, 7.2736261458317131e-13,
- 2.2204460492503131e-16, -2.4358293160275934e-13,
- -3.3195668436292181e-14}, /* L984 */
-{6.9218288265079506e+00, 7.5695005818943173e-13,
- 2.2204460492503131e-16, -5.2785553705803068e-12,
- 1.2372325386422744e-12}, /* L985 */
-{8.8133892261460289e+00, 9.6478380839926103e-13,
- 2.2204460492503131e-16, -2.9298785619857881e-13,
- -9.4368957093138306e-14}, /* L986 */
-{7.7326510239734114e+00, 8.4733609018172729e-13,
- 2.2204460492503131e-16, -1.3389289676979388e-13,
- 1.5210055437364645e-13}, /* L987 */
-{6.5222685401886586e+00, 7.1542771706845087e-13,
- 2.2204460492503131e-16, 1.2811973704174306e-13,
- 3.2640556923979602e-14}, /* L988 */
-{9.8710839194041888e+00, 1.0838552277903091e-12,
- 2.2204460492503131e-16, -5.1725290717286043e-13,
- 5.0848214527832170e-13}, /* L989 */
-{6.3823245374172632e+00, 7.0149441810940516e-13,
- 2.2204460492503131e-16, 2.0516921495072893e-13,
- 3.2551739082009590e-13}, /* L990 */
-{6.0630688482802162e+00, 6.6707750434602531e-13,
- 2.2204460492503131e-16, -3.6415315207705135e-13,
- 5.9574567501385900e-13}, /* L991 */
-{6.6491949080503927e+00, 7.3230310704275325e-13,
- 2.2204460492503131e-16, 3.1996627569697011e-13,
- 1.2234657731369225e-13}, /* L992 */
-{7.4598454327789847e+00, 8.2241158327889252e-13,
- 2.2204460492503131e-16, 6.7812422344104561e-13,
- 4.6185277824406512e-14}, /* L993 */
-{8.9547302012872230e+00, 9.8820951421885184e-13,
- 2.2204460492503131e-16, -1.5176748746625890e-12,
- 2.4202861936828413e-14}, /* L994 */
-{6.8987451292889022e+00, 7.6208483967832308e-13,
- 2.2204460492503131e-16, -4.3742787170231168e-14,
- 3.8413716652030416e-14}, /* L995 */
-{5.9713867632325286e+00, 6.6030514389581185e-13,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- 1.8718360195180139e-13}, /* L996 */
-{5.5250763554684852e+00, 6.1156635311476748e-13,
- 2.2204460492503131e-16, -1.3222756223285614e-13,
- 1.8895995879120164e-13}, /* L997 */
-{6.2720453707206296e+00, 6.9494410226411674e-13,
- 2.2204460492503131e-16, -4.5630166312093934e-14,
- -1.0880185641326534e-13}, /* L998 */
-{8.0370386804875285e+00, 8.9139806647153819e-13,
- 2.2204460492503131e-16, -3.5416114485542494e-14,
- -4.7517545453956700e-14}, /* L999 */
-{7.2375014799653465e+00, 8.0352391407245705e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- -1.8474111129762605e-13}, /* L1000 */
-{1.0704751534462535e+01, 2.3769319845712289e-12,
- 2.2204460492503131e-16, -5.1324500205396362e-12,
- 2.5088819910479288e-12}, /* L1001 */
-{1.9969666668716467e+01, 6.6512351182268503e-12,
- 2.2204460492503131e-16, -7.0245698147175517e-11,
- 9.7082342165322189e-12}, /* L1002 */
-{2.5142056782565259e+01, 1.1209977390791437e-11,
- 2.2204460492503131e-16, 5.4001247917767614e-13,
- -5.6191717945353048e-12}, /* L1003 */
-{2.8323200010548174e+01, 1.5722534385531617e-11,
- 2.2204460492503131e-16, -3.7680969455777813e-12,
- -3.6082248300317588e-12}, /* L1004 */
-{3.2321791678561532e+01, 2.1530638383282508e-11,
- 2.2204460492503131e-16, 1.4333201292515696e-11,
- 6.5796257331385277e-12}, /* L1005 */
-{3.7391747446514401e+01, 2.9125646339167588e-11,
- 2.2204460492503131e-16, -2.7823965353945823e-11,
- -1.8096635301390052e-11}, /* L1006 */
-{3.5997876224631987e+01, 3.2108420089382861e-11,
- 2.2204460492503131e-16, 1.3131717935266352e-11,
- 1.3136158827364852e-11}, /* L1007 */
-{4.6061583130257695e+01, 4.6024767330621330e-11,
- 2.2204460492503131e-16, -8.7482243671388460e-11,
- 9.2451313271624258e-10}, /* L1008 */
-{6.2174100014595624e+01, 6.9027117355346945e-11,
- 2.2204460492503131e-16, -4.0004777268620728e-11,
- 1.7784218542260533e-11}, /* L1009 */#else /* } { */
-
-/* Start of SP golden values */
-
-
-{, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, /* L1010 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1011 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1012 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L1013 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L1014 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L1015 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L1016 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L1017 */
-{4.7549185156822205e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.9604644775390625e-07}, /* L1018 */
-{4.2266038060188293e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 8.3446502685546875e-07}, /* L1019 */
-{4.0575435757637024e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 3.5762786865234375e-07}, /* L1020 */
-{3.2275927066802979e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L1021 */
-{2.9586255550384521e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L1022 */
-{7.8410917520523071e-01, 6.0349702835083008e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -7.1525573730468750e-07}, /* L1023 */
-{3.5955643653869629e-01, 2.9802322387695312e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -3.5762786865234375e-07}, /* L1024 */
-{4.0270313620567322e-01, 3.5762786865234375e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 3.5762786865234375e-07}, /* L1025 */
-{2.9888099431991577e-01, 2.8312206268310547e-07,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.1920928955078125e-07}, /* L1026 */
-{5.8850812911987305e-01, 5.9232115745544434e-07,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- 3.5762786865234375e-07}, /* L1027 */
-{5.0337857007980347e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -4.7683715820312500e-07}, /* L1028 */
-{4.5867058634757996e-01, 5.1595270633697510e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.2516975402832031e-06}, /* L1029 */
-{4.7820881009101868e-01, 5.6624412536621094e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.0728836059570312e-06}, /* L1030 */
-{9.7883027791976929e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 2.3841857910156250e-07}, /* L1031 */
-{4.2159116268157959e-01, 5.5134296417236328e-07,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -8.9406967163085938e-07}, /* L1032 */
-{5.0135254859924316e-01, 6.8545341491699219e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -1.7881393432617188e-07}, /* L1033 */
-{1.0027021169662476e+00, 1.4305114746093750e-06,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- -2.3841857910156250e-07}, /* L1034 */
-{7.2194659709930420e-01, 1.0728836059570312e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- 4.7683715820312500e-07}, /* L1035 */
-{3.9529633522033691e-01, 6.1094760894775391e-07,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 1.1920928955078125e-07}, /* L1036 */
-{5.9419322013854980e-01, 9.5367431640625000e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 0.0000000000000000e+00}, /* L1037 */
-{5.9087789058685303e-01, 9.8347663879394531e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -2.9802322387695312e-06}, /* L1038 */
-{6.3101136684417725e-01, 1.0877847671508789e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.1920928955078125e-06}, /* L1039 */
-{1.1363973617553711e+00, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 2.3841857910156250e-07}, /* L1040 */
-{5.0943696498870850e-01, 9.3877315521240234e-07,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -3.1590461730957031e-06}, /* L1041 */
-{9.7332048416137695e-01, 1.8514692783355713e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 7.2717666625976562e-06}, /* L1042 */
-{8.8116312026977539e-01, 1.7285346984863281e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.0132789611816406e-06}, /* L1043 */
-{1.0469392538070679e+00, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.7285346984863281e-06}, /* L1044 */
-{6.3979321718215942e-01, 1.3336539268493652e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.4305114746093750e-06}, /* L1045 */
-{9.8686885833740234e-01, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- -2.1398067474365234e-05}, /* L1046 */
-{5.1392030715942383e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -1.0728836059570312e-06}, /* L1047 */
-{5.0039225816726685e-01, 1.1324882507324219e-06,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 1.1920928955078125e-07}, /* L1048 */
-{8.0833417177200317e-01, 1.8775463104248047e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -4.7683715820312500e-07}, /* L1049 */
-{6.4095199108123779e-01, 1.5273690223693848e-06,
- 1.1920928955078125e-07, -9.3042850494384766e-05,
- 2.2375583648681641e-04}, /* L1050 */
-{1.0251988172531128e+00, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -2.5629997253417969e-06}, /* L1051 */
-{7.3866742849349976e-01, 1.8477439880371094e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 1.0728836059570312e-06}, /* L1052 */
-{1.1637136936187744e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -9.5367431640625000e-07}, /* L1053 */
-{6.5105575323104858e-01, 1.7061829566955566e-06,
- 1.1920928955078125e-07, -1.5676021575927734e-05,
- 1.1682510375976562e-05}, /* L1054 */
-{8.4511369466781616e-01, 2.2649765014648438e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -6.1392784118652344e-06}, /* L1055 */
-{1.0660614967346191e+00, 2.9206275939941406e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.7881393432617188e-06}, /* L1056 */
-{1.0486901998519897e+00, 2.9355287551879883e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -6.5565109252929688e-07}, /* L1057 */
-{8.1313973665237427e-01, 2.3245811462402344e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 7.1525573730468750e-07}, /* L1058 */
-{1.0204066038131714e+00, 2.9802322387695312e-06,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -3.5762786865234375e-07}, /* L1059 */
-{8.1000715494155884e-01, 2.4139881134033203e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -3.0398368835449219e-06}, /* L1060 */
-{9.7052782773971558e-01, 2.9504299163818359e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- -2.6702880859375000e-05}, /* L1061 */
-{6.6346895694732666e-01, 2.0563602447509766e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -1.1324882507324219e-06}, /* L1062 */
-{8.2547765970230103e-01, 2.6077032089233398e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 7.1525573730468750e-07}, /* L1063 */
-{1.0555671453475952e+00, 3.3974647521972656e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -7.1525573730468750e-07}, /* L1064 */
-{6.0000658035278320e-01, 1.9669532775878906e-06,
- 1.1920928955078125e-07, -1.0132789611816406e-06,
- -5.9604644775390625e-08}, /* L1065 */
-{6.0714846849441528e-01, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- -1.4305114746093750e-06}, /* L1066 */
-{6.2719875574111938e-01, 2.1308660507202148e-06,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -8.3446502685546875e-07}, /* L1067 */
-{7.5642675161361694e-01, 2.6151537895202637e-06,
- 1.1920928955078125e-07, -3.0875205993652344e-05,
- -1.6927719116210938e-05}, /* L1068 */
-{7.1186864376068115e-01, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -4.4107437133789062e-06,
- -4.2319297790527344e-06}, /* L1069 */
-{5.5729919672012329e-01, 1.9930303096771240e-06,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 1.0728836059570312e-06}, /* L1070 */
-{9.2214035987854004e-01, 3.3527612686157227e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.3841857910156250e-06}, /* L1071 */
-{1.1209777593612671e+00, 4.1425228118896484e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-07,
- -3.3378601074218750e-06}, /* L1072 */
-{8.2143312692642212e-01, 3.0845403671264648e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.4305114746093750e-06}, /* L1073 */
-{9.1016262769699097e-01, 3.4719705581665039e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -7.2121620178222656e-06}, /* L1074 */
-{8.4808546304702759e-01, 3.2857060432434082e-06,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -1.7285346984863281e-06}, /* L1075 */
-{7.8788590431213379e-01, 3.0994415283203125e-06,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- 2.0265579223632812e-06}, /* L1076 */
-{8.2463252544403076e-01, 3.2931566238403320e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -1.9073486328125000e-06}, /* L1077 */
-{8.6029779911041260e-01, 3.4868717193603516e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 1.9073486328125000e-06}, /* L1078 */
-{8.8033676147460938e-01, 3.6209821701049805e-06,
- 1.1920928955078125e-07, -5.0604343414306641e-05,
- -1.2701749801635742e-04}, /* L1079 */
-{1.2535502910614014e+00, 5.2303075790405273e-06,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 1.1920928955078125e-06}, /* L1080 */
-{9.0141552686691284e-01, 3.8146972656250000e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 3.3378601074218750e-06}, /* L1081 */
-{7.7777242660522461e-01, 3.3378601074218750e-06,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -1.4185905456542969e-05}, /* L1082 */
-{1.0034232139587402e+00, 4.3660402297973633e-06,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- 2.9802322387695312e-06}, /* L1083 */
-{8.9863836765289307e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -6.9737434387207031e-06}, /* L1084 */
-{1.0266774892807007e+00, 4.5895576477050781e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -7.7486038208007812e-07}, /* L1085 */
-{6.6445106267929077e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -2.8014183044433594e-05,
- -2.6226043701171875e-05}, /* L1086 */
-{1.2500019073486328e+00, 5.7369470596313477e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -2.9802322387695312e-07}, /* L1087 */
-{1.0576709508895874e+00, 4.9173831939697266e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 1.9669532775878906e-05}, /* L1088 */
-{8.0380576848983765e-01, 3.7848949432373047e-06,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 1.3113021850585938e-06}, /* L1089 */
-{6.3124734163284302e-01, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- -4.0531158447265625e-06}, /* L1090 */
-{1.2044825553894043e+00, 5.8151781558990479e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -4.4107437133789062e-06}, /* L1091 */
-{8.1098091602325439e-01, 3.9637088775634766e-06,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- -5.0067901611328125e-06}, /* L1092 */
-{1.2168718576431274e+00, 6.0200691223144531e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.4901161193847656e-06}, /* L1093 */
-{5.6548178195953369e-01, 2.8312206268310547e-06,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -1.6689300537109375e-06}, /* L1094 */
-{1.3882204294204712e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- 1.5497207641601562e-06}, /* L1095 */
-{1.7107630968093872e+00, 8.7693333625793457e-06,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- 3.0994415283203125e-06}, /* L1096 */
-{8.1896400451660156e-01, 4.2468309402465820e-06,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 5.4836273193359375e-06}, /* L1097 */
-{7.6276636123657227e-01, 4.0009617805480957e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 2.9802322387695312e-06}, /* L1098 */
-{8.0899810791015625e-01, 4.2915344238281250e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.1920928955078125e-07}, /* L1099 */
-{8.7223005294799805e-01, 4.6789646148681641e-06,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -1.1920928955078125e-06}, /* L1100 */
-{8.2417380809783936e-01, 4.4703483581542969e-06,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 1.2516975402832031e-05}, /* L1101 */
-{7.5204324722290039e-01, 4.1238963603973389e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -5.0663948059082031e-06}, /* L1102 */
-{1.4193508625030518e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, 9.6559524536132812e-06,
- 0.0000000000000000e+00}, /* L1103 */
-{9.6275132894515991e-01, 5.3942203521728516e-06,
- 1.1920928955078125e-07, -6.2584877014160156e-06,
- -3.3974647521972656e-06}, /* L1104 */
-{9.3683904409408569e-01, 5.3048133850097656e-06,
- 1.1920928955078125e-07, -5.9008598327636719e-06,
- 5.3644180297851562e-06}, /* L1105 */
-{1.0781044960021973e+00, 6.1690807342529297e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- 1.6689300537109375e-06}, /* L1106 */
-{1.0644396543502808e+00, 6.1541795730590820e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 3.4570693969726562e-06}, /* L1107 */
-{9.8469865322113037e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -5.4240226745605469e-06}, /* L1108 */
-{1.1337554454803467e+00, 6.6906213760375977e-06,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- 9.0599060058593750e-06}, /* L1109 */
-{9.7000402212142944e-01, 5.7816505432128906e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 1.0728836059570312e-06}, /* L1110 */
-{9.5541024208068848e-01, 5.7518482208251953e-06,
- 1.1920928955078125e-07, -3.1709671020507812e-05,
- -8.5830688476562500e-06}, /* L1111 */
-{8.3822196722030640e-01, 5.0961971282958984e-06,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- 1.7881393432617188e-06}, /* L1112 */
-{1.9174509048461914e+00, 1.1771917343139648e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- -2.3245811462402344e-06}, /* L1113 */
-{1.0769299268722534e+00, 6.6757202148437500e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- 2.8610229492187500e-06}, /* L1114 */
-{1.1833299398422241e+00, 7.4058771133422852e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- -1.7285346984863281e-06}, /* L1115 */
-{8.6897367238998413e-01, 5.4910778999328613e-06,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- -4.7624111175537109e-05}, /* L1116 */
-{1.0105159282684326e+00, 6.4447522163391113e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -1.4901161193847656e-06}, /* L1117 */
-{1.2222226858139038e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, -9.9539756774902344e-06,
- -1.0073184967041016e-05}, /* L1118 */
-{9.9771076440811157e-01, 6.4820051193237305e-06,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- 3.8146972656250000e-06}, /* L1119 */
-{8.5909843444824219e-01, 5.6326389312744141e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -1.6689300537109375e-06}, /* L1120 */
-{1.0945979356765747e+00, 7.2419643402099609e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 4.7683715820312500e-06}, /* L1121 */
-{9.4642227888107300e-01, 6.3180923461914062e-06,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 7.2717666625976562e-06}, /* L1122 */
-{9.4248169660568237e-01, 6.3478946685791016e-06,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -7.8678131103515625e-06}, /* L1123 */
-{1.0350898504257202e+00, 7.0333480834960938e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -6.0200691223144531e-06}, /* L1124 */
-{1.2651975154876709e+00, 8.6724758148193359e-06,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 1.0013580322265625e-05}, /* L1125 */
-{9.2753994464874268e-01, 6.4130872488021851e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- -4.7683715820312500e-06}, /* L1126 */
-{1.3073544502258301e+00, 9.1195106506347656e-06,
- 1.1920928955078125e-07, 7.1644783020019531e-05,
- 6.3896179199218750e-05}, /* L1127 */
-{9.6987730264663696e-01, 6.8247318267822266e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.2165985107421875e-04}, /* L1128 */
-{9.7899848222732544e-01, 6.9439411163330078e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -5.4836273193359375e-06}, /* L1129 */
-{8.6979395151138306e-01, 6.2212347984313965e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.5497207641601562e-06}, /* L1130 */
-{9.7924292087554932e-01, 7.0631504058837891e-06,
- 1.1920928955078125e-07, -4.1127204895019531e-05,
- 1.7762184143066406e-05}, /* L1131 */
-{9.7541624307632446e-01, 7.0929527282714844e-06,
- 1.1920928955078125e-07, -7.6293945312500000e-06,
- -1.0728836059570312e-06}, /* L1132 */
-{1.6664739847183228e+00, 1.2218952178955078e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- -1.3291835784912109e-05}, /* L1133 */
-{8.2053667306900024e-01, 6.0647726058959961e-06,
- 1.1920928955078125e-07, -1.8298625946044922e-05,
- -2.4974346160888672e-05}, /* L1134 */
-{1.2599431276321411e+00, 9.3877315521240234e-06,
- 1.1920928955078125e-07, 1.0609626770019531e-05,
- 3.5762786865234375e-07}, /* L1135 */
-{1.3730195760726929e+00, 1.0311603546142578e-05,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -1.9669532775878906e-06}, /* L1136 */
-{1.4950799942016602e+00, 1.1317431926727295e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.9802322387695312e-06}, /* L1137 */
-{8.7696063518524170e-01, 6.6906213760375977e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- 0.0000000000000000e+00}, /* L1138 */
-{9.5106983184814453e-01, 7.3127448558807373e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -6.6161155700683594e-06}, /* L1139 */
-{9.4996523857116699e-01, 7.3611736297607422e-06,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- -3.5166740417480469e-06}, /* L1140 */
-{1.2995917797088623e+00, 1.0147690773010254e-05,
- 1.1920928955078125e-07, 1.2397766113281250e-05,
- -2.5868415832519531e-05}, /* L1141 */
-{7.4620795249938965e-01, 5.8710575103759766e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -2.0861625671386719e-06}, /* L1142 */
-{1.1202967166900635e+00, 8.8810920715332031e-06,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- -8.5234642028808594e-06}, /* L1143 */
-{1.3694064617156982e+00, 1.0937452316284180e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- -6.6161155700683594e-06}, /* L1144 */
-{1.0537055730819702e+00, 8.4787607192993164e-06,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- -4.7087669372558594e-06}, /* L1145 */
-{1.2646913528442383e+00, 1.0251998901367188e-05,
- 1.1920928955078125e-07, -1.2874603271484375e-05,
- -3.1590461730957031e-06}, /* L1146 */
-{1.2353997230529785e+00, 1.0088086128234863e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 0.0000000000000000e+00}, /* L1147 */
-{1.0905735492706299e+00, 8.9704990386962891e-06,
- 1.1920928955078125e-07, -1.7642974853515625e-05,
- -1.9550323486328125e-05}, /* L1148 */
-{1.2841809988021851e+00, 1.0639429092407227e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- -3.3378601074218750e-06}, /* L1149 */
-{1.1500061750411987e+00, 9.5963478088378906e-06,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -4.1723251342773438e-07}, /* L1150 */
-{1.3510324954986572e+00, 1.1354684829711914e-05,
- 1.1920928955078125e-07, 1.2159347534179688e-05,
- 1.5377998352050781e-05}, /* L1151 */
-{9.4499003887176514e-01, 7.9981982707977295e-06,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- -1.0132789611816406e-06}, /* L1152 */
-{1.3810083866119385e+00, 1.1771917343139648e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- 4.3511390686035156e-05}, /* L1153 */
-{1.1562519073486328e+00, 9.9241733551025391e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 9.2983245849609375e-06}, /* L1154 */
-{1.0793009996414185e+00, 9.3281269073486328e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -1.5497207641601562e-06}, /* L1155 */
-{1.6061439514160156e+00, 1.3977289199829102e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- 2.2649765014648438e-06}, /* L1156 */
-{1.0843659639358521e+00, 9.5013529062271118e-06,
- 1.1920928955078125e-07, -4.5716762542724609e-05,
- -7.1525573730468750e-06}, /* L1157 */
-{1.2195807695388794e+00, 1.0758638381958008e-05,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- -5.5432319641113281e-06}, /* L1158 */
-{1.0805189609527588e+00, 9.5963478088378906e-06,
- 1.1920928955078125e-07, -5.7816505432128906e-06,
- -5.5432319641113281e-06}, /* L1159 */
-{1.2214741706848145e+00, 1.0922551155090332e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- 3.4809112548828125e-05}, /* L1160 */
-{9.9667584896087646e-01, 8.9704990386962891e-06,
- 1.1920928955078125e-07, -2.3365020751953125e-05,
- -1.6868114471435547e-05}, /* L1161 */
-{1.1175954341888428e+00, 1.0125339031219482e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -2.3841857910156250e-06}, /* L1162 */
-{1.5759546756744385e+00, 1.4372169971466064e-05,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- -1.6748905181884766e-05}, /* L1163 */
-{1.2970726490020752e+00, 1.1906027793884277e-05,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 1.3113021850585938e-06}, /* L1164 */
-{1.3951190710067749e+00, 1.2889504432678223e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 3.2186508178710938e-05}, /* L1165 */
-{1.2964704036712646e+00, 1.2055039405822754e-05,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -1.1920928955078125e-06}, /* L1166 */
-{1.0063484907150269e+00, 9.4175338745117188e-06,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- -2.3782253265380859e-05}, /* L1167 */
-{9.6187907457351685e-01, 9.0599060058593750e-06,
- 1.1920928955078125e-07, -7.9274177551269531e-06,
- -2.8252601623535156e-05}, /* L1168 */
-{1.5304667949676514e+00, 1.4506280422210693e-05,
- 1.1920928955078125e-07, 6.9260597229003906e-05,
- -3.3318996429443359e-05}, /* L1169 */
-{1.2531182765960693e+00, 1.1950731277465820e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -8.0466270446777344e-06}, /* L1170 */
-{1.0869301557540894e+00, 1.0430812835693359e-05,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- 1.6331672668457031e-05}, /* L1171 */
-{9.2123973369598389e-01, 8.8959932327270508e-06,
- 1.1920928955078125e-07, 2.6345252990722656e-05,
- 1.5497207641601562e-06}, /* L1172 */
-{1.2883348464965820e+00, 1.2516975402832031e-05,
- 1.1920928955078125e-07, -1.9252300262451172e-05,
- -8.9406967163085938e-07}, /* L1173 */
-{7.4848139286041260e-01, 7.3164701461791992e-06,
- 1.1920928955078125e-07, -2.7418136596679688e-06,
- 2.3841857910156250e-07}, /* L1174 */
-{1.0303035974502563e+00, 1.0132789611816406e-05,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- 2.0265579223632812e-06}, /* L1175 */
-{1.1414912939071655e+00, 1.1295080184936523e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 8.0943107604980469e-05}, /* L1176 */
-{1.5194602012634277e+00, 1.5124678611755371e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- -7.7486038208007812e-06}, /* L1177 */
-{1.0238080024719238e+00, 1.0251998901367188e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.1590461730957031e-06}, /* L1178 */
-{1.1346142292022705e+00, 1.1429190635681152e-05,
- 1.1920928955078125e-07, -7.5101852416992188e-06,
- 1.6331672668457031e-05}, /* L1179 */
-{1.1793857812881470e+00, 1.1950731277465820e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -1.3232231140136719e-05}, /* L1180 */
-{1.6403435468673706e+00, 1.6719102859497070e-05,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -3.3974647521972656e-06}, /* L1181 */
-{1.7790050506591797e+00, 1.8239021301269531e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- -7.7486038208007812e-07}, /* L1182 */
-{1.4508632421493530e+00, 1.4960765838623047e-05,
- 1.1920928955078125e-07, -7.3909759521484375e-06,
- -4.1723251342773438e-06}, /* L1183 */
-{1.5513389110565186e+00, 1.6093254089355469e-05,
- 1.1920928955078125e-07, -6.1690807342529297e-05,
- 6.1869621276855469e-05}, /* L1184 */
-{1.2285547256469727e+00, 1.2814998626708984e-05,
- 1.1920928955078125e-07, -1.9431114196777344e-05,
- 2.0623207092285156e-05}, /* L1185 */
-{1.1248027086257935e+00, 1.1801719665527344e-05,
- 1.1920928955078125e-07, 4.4107437133789062e-05,
- -1.8775463104248047e-05}, /* L1186 */
-{1.0338598489761353e+00, 1.0907649993896484e-05,
- 1.1920928955078125e-07, -2.4080276489257812e-05,
- 2.3841857910156250e-07}, /* L1187 */
-{8.8742196559906006e-01, 9.4175338745117188e-06,
- 1.1920928955078125e-07, -4.1007995605468750e-05,
- -4.6312808990478516e-05}, /* L1188 */
-{1.2569568157196045e+00, 1.3411045074462891e-05,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- 1.7642974853515625e-05}, /* L1189 */
-{1.0193126201629639e+00, 1.0937452316284180e-05,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- 5.1140785217285156e-05}, /* L1190 */
-{1.2982742786407471e+00, 1.4007091522216797e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -8.1062316894531250e-06}, /* L1191 */
-{1.0288227796554565e+00, 1.1160969734191895e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- 1.4305114746093750e-06}, /* L1192 */
-{1.3306066989898682e+00, 1.4513731002807617e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- 9.5367431640625000e-07}, /* L1193 */
-{1.0203016996383667e+00, 1.1190772056579590e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- 2.0265579223632812e-05}, /* L1194 */
-{1.1182178258895874e+00, 1.2330710887908936e-05,
- 1.1920928955078125e-07, -7.9274177551269531e-06,
- -3.2186508178710938e-06}, /* L1195 */
-{1.2682054042816162e+00, 1.4066696166992188e-05,
- 1.1920928955078125e-07, 1.9752979278564453e-04,
- 1.2481212615966797e-04}, /* L1196 */
-{1.1684124469757080e+00, 1.3023614883422852e-05,
- 1.1920928955078125e-07, -3.2961368560791016e-05,
- -7.0333480834960938e-06}, /* L1197 */
-{1.3009834289550781e+00, 1.4580786228179932e-05,
- 1.1920928955078125e-07, -3.2722949981689453e-05,
- -5.5491924285888672e-05}, /* L1198 */
-{1.6348913908004761e+00, 1.8417835235595703e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-06,
- 2.9802322387695312e-06}, /* L1199 */
-{1.6420391798019409e+00, 1.8596649169921875e-05,
- 1.1920928955078125e-07, -2.4318695068359375e-05,
- 2.7537345886230469e-05}, /* L1200 */
-{9.4108945131301880e-01, 1.0713934898376465e-05,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- 1.3232231140136719e-05}, /* L1201 */
-{9.9413573741912842e-01, 1.1377036571502686e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- 1.9073486328125000e-06}, /* L1202 */
-{1.2357484102249146e+00, 1.4215707778930664e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -2.3841857910156250e-07}, /* L1203 */
-{1.6301261186599731e+00, 1.8849968910217285e-05,
- 1.1920928955078125e-07, 1.4662742614746094e-05,
- 2.6226043701171875e-06}, /* L1204 */
-{1.0974243879318237e+00, 1.2755393981933594e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 2.3961067199707031e-05}, /* L1205 */
-{1.0510134696960449e+00, 1.2278556823730469e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- 2.3841857910156250e-06}, /* L1206 */
-{1.4908643960952759e+00, 1.7508864402770996e-05,
- 1.1920928955078125e-07, 7.8082084655761719e-05,
- -3.7074089050292969e-05}, /* L1207 */
-{1.0176256895065308e+00, 1.2010335922241211e-05,
- 1.1920928955078125e-07, 4.4465065002441406e-05,
- -1.7285346984863281e-05}, /* L1208 */
-{1.5929344892501831e+00, 1.8894672393798828e-05,
- 1.1920928955078125e-07, -3.8385391235351562e-05,
- 7.7486038208007812e-06}, /* L1209 */
-{1.7058891057968140e+00, 2.0340085029602051e-05,
- 1.1920928955078125e-07, 6.0558319091796875e-05,
- 2.7537345886230469e-05}, /* L1210 */
-{1.1977496147155762e+00, 1.4349818229675293e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- -7.9274177551269531e-06}, /* L1211 */
-{1.0519545078277588e+00, 1.2665987014770508e-05,
- 1.1920928955078125e-07, -9.4175338745117188e-06,
- -2.5033950805664062e-05}, /* L1212 */
-{1.8053981065750122e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, 5.8412551879882812e-06,
- 4.7683715820312500e-07}, /* L1213 */
-{1.2401795387268066e+00, 1.5079975128173828e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- -6.3180923461914062e-06}, /* L1214 */
-{1.1975620985031128e+00, 1.4707446098327637e-05,
- 1.1920928955078125e-07, 3.4335851669311523e-03,
- -5.1164627075195312e-04}, /* L1215 */
-{1.5048525333404541e+00, 1.8477439880371094e-05,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -7.8082084655761719e-06}, /* L1216 */
-{1.1292189359664917e+00, 1.3932585716247559e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 1.0848045349121094e-05}, /* L1217 */
-{1.1700141429901123e+00, 1.4506280422210693e-05,
- 1.1920928955078125e-07, 1.8239021301269531e-05,
- -1.8358230590820312e-05}, /* L1218 */
-{1.1943764686584473e+00, 1.4878809452056885e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -9.2387199401855469e-06}, /* L1219 */
-{1.7291518449783325e+00, 2.1643936634063721e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- -1.9729137420654297e-05}, /* L1220 */
-{1.6042573451995850e+00, 2.0176172256469727e-05,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- 1.6689300537109375e-06}, /* L1221 */
-{1.4740267992019653e+00, 1.8626451492309570e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -3.9339065551757812e-06}, /* L1222 */
-{1.4295392036437988e+00, 1.8149614334106445e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 5.7220458984375000e-06}, /* L1223 */
-{1.4392251968383789e+00, 1.8358230590820312e-05,
- 1.1920928955078125e-07, -1.6987323760986328e-05,
- -2.1576881408691406e-05}, /* L1224 */
-{2.1736485958099365e+00, 2.7865171432495117e-05,
- 1.1920928955078125e-07, -5.3107738494873047e-05,
- -4.2319297790527344e-05}, /* L1225 */
-{1.1919932365417480e+00, 1.5348196029663086e-05,
- 1.1920928955078125e-07, -7.0035457611083984e-05,
- 8.1062316894531250e-06}, /* L1226 */
-{1.6522569656372070e+00, 2.1398067474365234e-05,
- 1.1920928955078125e-07, -7.0112943649291992e-04,
- 2.2172927856445312e-04}, /* L1227 */
-{1.6680214405059814e+00, 2.1681189537048340e-05,
- 1.1920928955078125e-07, -8.1539154052734375e-05,
- -7.9333782196044922e-05}, /* L1228 */
-{2.1757786273956299e+00, 2.8401613235473633e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 1.0490417480468750e-05}, /* L1229 */
-{1.3124855756759644e+00, 1.7210841178894043e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -1.4483928680419922e-05}, /* L1230 */
-{1.5203121900558472e+00, 2.0027160644531250e-05,
- 1.1920928955078125e-07, -1.9431114196777344e-05,
- 3.5762786865234375e-07}, /* L1231 */
-{1.4143544435501099e+00, 1.8715858459472656e-05,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- -9.0003013610839844e-06}, /* L1232 */
-{1.4371609687805176e+00, 1.9103288650512695e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- -3.1292438507080078e-05}, /* L1233 */
-{1.6026908159255981e+00, 2.1427869796752930e-05,
- 1.1920928955078125e-07, -3.3575296401977539e-04,
- -6.3514709472656250e-04}, /* L1234 */
-{1.6288132667541504e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, -4.0888786315917969e-05,
- 9.1791152954101562e-06}, /* L1235 */
-{1.0187907218933105e+00, 1.3723969459533691e-05,
- 1.1920928955078125e-07, 1.3470649719238281e-05,
- 2.3841857910156250e-06}, /* L1236 */
-{1.2462819814682007e+00, 1.6862526535987854e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- 1.1920928955078125e-06}, /* L1237 */
-{1.4384590387344360e+00, 1.9550323486328125e-05,
- 1.1920928955078125e-07, -3.6537647247314453e-05,
- -3.3259391784667969e-05}, /* L1238 */
-{1.3267810344696045e+00, 1.8194317817687988e-05,
- 1.1920928955078125e-07, -1.6243457794189453e-03,
- 5.1963329315185547e-04}, /* L1239 */
-{1.2517757415771484e+00, 1.7166137695312500e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-05,
- -4.6491622924804688e-05}, /* L1240 */
-{1.6038647890090942e+00, 2.2083520889282227e-05,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- 2.6226043701171875e-06}, /* L1241 */
-{1.1713200807571411e+00, 1.6197562217712402e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- -5.6028366088867188e-06}, /* L1242 */
-{1.8583130836486816e+00, 2.5808811187744141e-05,
- 1.1920928955078125e-07, -1.2278556823730469e-05,
- -1.6689300537109375e-05}, /* L1243 */
-{1.2964105606079102e+00, 1.8082559108734131e-05,
- 1.1920928955078125e-07, -4.8756599426269531e-05,
- -3.9100646972656250e-05}, /* L1244 */
-{1.4914346933364868e+00, 2.0891427993774414e-05,
- 1.1920928955078125e-07, -2.7477741241455078e-05,
- -1.9073486328125000e-06}, /* L1245 */
-{1.2626861333847046e+00, 1.7762184143066406e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-07,
- 1.1920928955078125e-07}, /* L1246 */
-{1.3563674688339233e+00, 1.9162893295288086e-05,
- 1.1920928955078125e-07, 2.0980834960937500e-05,
- 2.7418136596679688e-05}, /* L1247 */
-{1.5367653369903564e+00, 2.1800398826599121e-05,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- -1.1324882507324219e-06}, /* L1248 */
-{1.2470778226852417e+00, 1.7765909433364868e-05,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- 2.9921531677246094e-05}, /* L1249 */
-{1.0934772491455078e+00, 1.5646219253540039e-05,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- 3.8146972656250000e-05}, /* L1250 */
-{1.9852321147918701e+00, 2.8520822525024414e-05,
- 1.1920928955078125e-07, -2.0563602447509766e-05,
- 1.2874603271484375e-05}, /* L1251 */
-{1.2313609123229980e+00, 1.7762184143066406e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -8.5234642028808594e-06}, /* L1252 */
-{1.2252029180526733e+00, 1.7762184143066406e-05,
- 1.1920928955078125e-07, -6.1577558517456055e-04,
- -2.3275613784790039e-04}, /* L1253 */
-{1.0384093523025513e+00, 1.5102326869964600e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -7.1525573730468750e-07}, /* L1254 */
-{1.4937413930892944e+00, 2.1815299987792969e-05,
- 1.1920928955078125e-07, 4.0650367736816406e-05,
- -1.2755393981933594e-05}, /* L1255 */
-{1.2570779323577881e+00, 1.8432736396789551e-05,
- 1.1920928955078125e-07, 2.6345252990722656e-05,
- -5.1259994506835938e-06}, /* L1256 */
-{1.8190509080886841e+00, 2.6784837245941162e-05,
- 1.1920928955078125e-07, -9.2089176177978516e-05,
- -7.8439712524414062e-05}, /* L1257 */
-{1.0523401498794556e+00, 1.5556812286376953e-05,
- 1.1920928955078125e-07, 4.8518180847167969e-05,
- 7.2598457336425781e-05}, /* L1258 */
-{1.8098148107528687e+00, 2.6866793632507324e-05,
- 1.1920928955078125e-07, -2.8133392333984375e-05,
- -1.0192394256591797e-05}, /* L1259 */
-{1.5516481399536133e+00, 2.3126602172851562e-05,
- 1.1920928955078125e-07, -1.1730194091796875e-04,
- -5.0246715545654297e-05}, /* L1260 */
-{1.7170596122741699e+00, 2.5689601898193359e-05,
- 1.1920928955078125e-07, 8.1062316894531250e-06,
- 1.6212463378906250e-05}, /* L1261 */
-{1.6130100488662720e+00, 2.4229288101196289e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-05,
- 1.2755393981933594e-05}, /* L1262 */
-{1.5766159296035767e+00, 2.3778527975082397e-05,
- 1.1920928955078125e-07, -2.6404857635498047e-05,
- -6.1452388763427734e-05}, /* L1263 */
-{1.3089818954467773e+00, 1.9818544387817383e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- 3.5405158996582031e-05}, /* L1264 */
-{2.3881494998931885e+00, 3.6299228668212891e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -2.7954578399658203e-05}, /* L1265 */
-{1.3607747554779053e+00, 2.0766630768775940e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-06,
- 1.5258789062500000e-05}, /* L1266 */
-{1.0377191305160522e+00, 1.5914440155029297e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -1.6212463378906250e-04}, /* L1267 */
-{9.7865903377532959e-01, 1.5050172805786133e-05,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- -1.6272068023681641e-05}, /* L1268 */
-{1.3841279745101929e+00, 2.1368265151977539e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-06,
- -2.2470951080322266e-05}, /* L1269 */
-{8.3651173114776611e-01, 1.2964010238647461e-05,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- -2.2053718566894531e-06}, /* L1270 */
-{1.2979427576065063e+00, 2.0192470401525497e-05,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- 6.3180923461914062e-06}, /* L1271 */
-{1.2060588598251343e+00, 1.8835067749023438e-05,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- 1.4305114746093750e-06}, /* L1272 */
-{1.0417672395706177e+00, 1.6331672668457031e-05,
- 1.1920928955078125e-07, -4.5776367187500000e-05,
- 5.2809715270996094e-05}, /* L1273 */
-{1.1557486057281494e+00, 1.8186867237091064e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- 1.9907951354980469e-05}, /* L1274 */
-{1.1678060293197632e+00, 1.8447637557983398e-05,
- 1.1920928955078125e-07, -4.3451786041259766e-05,
- -3.6835670471191406e-05}, /* L1275 */
-{1.0798661708831787e+00, 1.7121434211730957e-05,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 1.3113021850585938e-05}, /* L1276 */
-{1.6089533567428589e+00, 2.5607645511627197e-05,
- 1.1920928955078125e-07, 4.4941902160644531e-05,
- 2.3841857910156250e-06}, /* L1277 */
-{9.2531841993331909e-01, 1.4781951904296875e-05,
- 1.1920928955078125e-07, -4.5180320739746094e-05,
- 2.0861625671386719e-05}, /* L1278 */
-{1.0825912952423096e+00, 1.7359852790832520e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- 1.0967254638671875e-05}, /* L1279 */
-{1.1458694934844971e+00, 1.8447637557983398e-05,
- 1.1920928955078125e-07, 1.3041496276855469e-04,
- 5.2809715270996094e-05}, /* L1280 */
-{1.2772612571716309e+00, 2.0634382963180542e-05,
- 1.1920928955078125e-07, -5.6743621826171875e-05,
- -4.6730041503906250e-05}, /* L1281 */
-{9.4301450252532959e-01, 1.5288591384887695e-05,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- 2.5033950805664062e-06}, /* L1282 */
-{1.3827694654464722e+00, 2.2500753402709961e-05,
- 1.1920928955078125e-07, -1.3172626495361328e-05,
- 2.1457672119140625e-06}, /* L1283 */
-{9.4524723291397095e-01, 1.5437602996826172e-05,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 2.3841857910156250e-07}, /* L1284 */
-{1.4381570816040039e+00, 2.3573637008666992e-05,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- 1.4305114746093750e-06}, /* L1285 */
-{9.2118191719055176e-01, 1.5154480934143066e-05,
- 1.1920928955078125e-07, -7.0929527282714844e-06,
- -7.2121620178222656e-06}, /* L1286 */
-{1.1705466508865356e+00, 1.9326806068420410e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -6.7353248596191406e-06}, /* L1287 */
-{1.0789124965667725e+00, 1.7881393432617188e-05,
- 1.1920928955078125e-07, -3.2961368560791016e-05,
- 9.3221664428710938e-05}, /* L1288 */
-{1.6003317832946777e+00, 2.6613473892211914e-05,
- 1.1920928955078125e-07, 5.8412551879882812e-06,
- -9.7155570983886719e-06}, /* L1289 */
-{1.8595010042190552e+00, 3.1039118766784668e-05,
- 1.1920928955078125e-07, -1.0073184967041016e-05,
- 7.3909759521484375e-06}, /* L1290 */
-{9.3055397272109985e-01, 1.5586614608764648e-05,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- -1.3828277587890625e-05}, /* L1291 */
-{1.5620447397232056e+00, 2.6255846023559570e-05,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- 8.2254409790039062e-06}, /* L1292 */
-{1.6129204034805298e+00, 2.7209520339965820e-05,
- 1.1920928955078125e-07, 9.7751617431640625e-06,
- -1.7225742340087891e-05}, /* L1293 */
-{1.5218948125839233e+00, 2.5764107704162598e-05,
- 1.1920928955078125e-07, -2.7179718017578125e-05,
- -7.5697898864746094e-06}, /* L1294 */
-{1.9754331111907959e+00, 3.3557415008544922e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- 2.6226043701171875e-06}, /* L1295 */
-{1.2727109193801880e+00, 2.1696090698242188e-05,
- 1.1920928955078125e-07, -1.1682510375976562e-05,
- -3.6358833312988281e-06}, /* L1296 */
-{1.7381219863891602e+00, 2.9733870178461075e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- -2.3245811462402344e-06}, /* L1297 */
-{9.6112900972366333e-01, 1.6510486602783203e-05,
- 1.1920928955078125e-07, -1.1205673217773438e-05,
- -1.2153387069702148e-04}, /* L1298 */
-{1.1695462465286255e+00, 2.0146369934082031e-05,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- 3.4570693969726562e-06}, /* L1299 */
-{1.1542683839797974e+00, 1.9952654838562012e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- -1.2993812561035156e-05}, /* L1300 */
-{1.8624702692031860e+00, 3.2305717468261719e-05,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 7.0333480834960938e-06}, /* L1301 */
-{8.9964288473129272e-01, 1.5661120414733887e-05,
- 1.1920928955078125e-07, 4.3392181396484375e-05,
- -1.3691186904907227e-04}, /* L1302 */
-{1.2183562517166138e+00, 2.1278858184814453e-05,
- 1.1920928955078125e-07, -3.4034252166748047e-05,
- 4.7683715820312500e-07}, /* L1303 */
-{8.7741857767105103e-01, 1.5377998352050781e-05,
- 1.1920928955078125e-07, 2.3484230041503906e-05,
- -1.2856721878051758e-04}, /* L1304 */
-{2.1357288360595703e+00, 3.7610530853271484e-05,
- 1.1920928955078125e-07, 1.3327598571777344e-04,
- 4.8029422760009766e-04}, /* L1305 */
-{1.2161464691162109e+00, 2.1457672119140625e-05,
- 1.1920928955078125e-07, -1.2576580047607422e-05,
- 6.6161155700683594e-05}, /* L1306 */
-{1.2137373685836792e+00, 2.1487474441528320e-05,
- 1.1920928955078125e-07, -6.9141387939453125e-06,
- 2.0265579223632812e-06}, /* L1307 */
-{1.1658335924148560e+00, 2.0712614059448242e-05,
- 1.1920928955078125e-07, -2.8371810913085938e-05,
- -1.1879205703735352e-04}, /* L1308 */
-{1.5931706428527832e+00, 2.8394162654876709e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-05,
- -2.1696090698242188e-05}, /* L1309 */
-{1.0907585620880127e+00, 1.9505620002746582e-05,
- 1.1920928955078125e-07, 3.1471252441406250e-05,
- -4.2617321014404297e-05}, /* L1310 */
-{1.7374719381332397e+00, 3.1173229217529297e-05,
- 1.1920928955078125e-07, 2.9087066650390625e-05,
- 1.1086463928222656e-05}, /* L1311 */
-{1.3886525630950928e+00, 2.5004148483276367e-05,
- 1.1920928955078125e-07, 5.1259994506835938e-05,
- -6.4969062805175781e-05}, /* L1312 */
-{1.2540564537048340e+00, 2.2649765014648438e-05,
- 1.1920928955078125e-07, 2.1815299987792969e-05,
- -2.0980834960937500e-05}, /* L1313 */
-{9.9175816774368286e-01, 1.7970800399780273e-05,
- 1.1920928955078125e-07, -7.5101852416992188e-06,
- 4.8875808715820312e-06}, /* L1314 */
-{1.6540836095809937e+00, 3.0070543289184570e-05,
- 1.1920928955078125e-07, -9.4175338745117188e-06,
- 5.2452087402343750e-06}, /* L1315 */
-{1.1118304729461670e+00, 2.0295381546020508e-05,
- 1.1920928955078125e-07, 2.0480155944824219e-04,
- 3.4022331237792969e-04}, /* L1316 */
-{1.3232371807098389e+00, 2.4214386940002441e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- 2.3841857910156250e-07}, /* L1317 */
-{1.0291864871978760e+00, 1.8894672393798828e-05,
- 1.1920928955078125e-07, 1.3351440429687500e-05,
- -2.4378299713134766e-05}, /* L1318 */
-{1.3769135475158691e+00, 2.5361776351928711e-05,
- 1.1920928955078125e-07, -3.3974647521972656e-05,
- 4.1365623474121094e-05}, /* L1319 */
-{9.7899967432022095e-01, 1.8090009689331055e-05,
- 1.1920928955078125e-07, -1.9192695617675781e-05,
- -9.4771385192871094e-06}, /* L1320 */
-{1.4660800695419312e+00, 2.7179718017578125e-05,
- 1.1920928955078125e-07, 4.3511390686035156e-05,
- 2.3245811462402344e-05}, /* L1321 */
-{9.0497338771820068e-01, 1.6830861568450928e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-05,
- -4.8875808715820312e-06}, /* L1322 */
-{1.5557006597518921e+00, 2.9027462005615234e-05,
- 1.1920928955078125e-07, -1.0615587234497070e-04,
- -3.7848949432373047e-05}, /* L1323 */
-{1.4645508527755737e+00, 2.7418136596679688e-05,
- 1.1920928955078125e-07, -1.2248754501342773e-04,
- -8.8274478912353516e-05}, /* L1324 */
-{1.8489490747451782e+00, 3.4719705581665039e-05,
- 1.1920928955078125e-07, 5.4359436035156250e-05,
- 6.0319900512695312e-05}, /* L1325 */
-{1.7372847795486450e+00, 3.2722949981689453e-05,
- 1.1920928955078125e-07, -3.4034252166748047e-05,
- 9.8943710327148438e-06}, /* L1326 */
-{1.8800387382507324e+00, 3.5524368286132812e-05,
- 1.1920928955078125e-07, -2.5987625122070312e-05,
- 9.5367431640625000e-07}, /* L1327 */
-{1.3620268106460571e+00, 2.5816261768341064e-05,
- 1.1920928955078125e-07, -5.9008598327636719e-06,
- 8.4638595581054688e-06}, /* L1328 */
-{1.4184815883636475e+00, 2.6971101760864258e-05,
- 1.1920928955078125e-07, -1.2934207916259766e-05,
- 8.2254409790039062e-06}, /* L1329 */
-{1.2609255313873291e+00, 2.4050474166870117e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 7.8678131103515625e-06}, /* L1330 */
-{1.2538588047027588e+00, 2.3990869522094727e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-05,
- -2.0742416381835938e-05}, /* L1331 */
-{1.2079840898513794e+00, 2.3186206817626953e-05,
- 1.1920928955078125e-07, -3.0159950256347656e-05,
- -2.9742717742919922e-05}, /* L1332 */
-{1.6592340469360352e+00, 3.1948089599609375e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 4.2915344238281250e-06}, /* L1333 */
-{1.2129570245742798e+00, 2.3424625396728516e-05,
- 1.1920928955078125e-07, 1.4901161193847656e-05,
- 7.8678131103515625e-06}, /* L1334 */
-{1.3397462368011475e+00, 2.5957822799682617e-05,
- 1.1920928955078125e-07, -2.9981136322021484e-05,
- -2.6106834411621094e-05}, /* L1335 */
-{1.3335621356964111e+00, 2.5913119316101074e-05,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- -6.5565109252929688e-07}, /* L1336 */
-{1.8132857084274292e+00, 3.5345554351806641e-05,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- 8.7022781372070312e-06}, /* L1337 */
-{1.0045012235641479e+00, 1.9639730453491211e-05,
- 1.1920928955078125e-07, -2.8669834136962891e-05,
- -7.5697898864746094e-05}, /* L1338 */
-{1.1465537548065186e+00, 2.2485852241516113e-05,
- 1.1920928955078125e-07, -7.8082084655761719e-06,
- 7.8678131103515625e-06}, /* L1339 */
-{1.3559750318527222e+00, 2.6673078536987305e-05,
- 1.1920928955078125e-07, -4.9650669097900391e-05,
- -2.2232532501220703e-05}, /* L1340 */
-{1.6374152898788452e+00, 3.2305717468261719e-05,
- 1.1920928955078125e-07, -9.5367431640625000e-07,
- -1.4901161193847656e-06}, /* L1341 */
-{8.7349468469619751e-01, 1.7285346984863281e-05,
- 1.1920928955078125e-07, -7.6293945312500000e-06,
- 4.0531158447265625e-06}, /* L1342 */
-{1.3870619535446167e+00, 2.7537345886230469e-05,
- 1.1920928955078125e-07, -5.0723552703857422e-05,
- -1.3619661331176758e-04}, /* L1343 */
-{1.3697391748428345e+00, 2.7269124984741211e-05,
- 1.1920928955078125e-07, -1.1205673217773438e-05,
- 5.3644180297851562e-06}, /* L1344 */
-{1.2577501535415649e+00, 2.5123357772827148e-05,
- 1.1920928955078125e-07, 1.1873245239257812e-04,
- 4.7564506530761719e-05}, /* L1345 */
-{8.5861575603485107e-01, 1.7195940017700195e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -4.4107437133789062e-06}, /* L1346 */
-{1.3351397514343262e+00, 2.6836991310119629e-05,
- 1.1920928955078125e-07, 1.3399124145507812e-04,
- -2.2524595260620117e-04}, /* L1347 */
-{1.2263201475143433e+00, 2.4706125259399414e-05,
- 1.1920928955078125e-07, -8.2850456237792969e-06,
- -1.7881393432617188e-07}, /* L1348 */
-{1.4231839179992676e+00, 2.8759241104125977e-05,
- 1.1920928955078125e-07, 1.0848045349121094e-05,
- 6.0796737670898438e-06}, /* L1349 */
-{1.2554723024368286e+00, 2.5451183319091797e-05,
- 1.1920928955078125e-07, 5.8650970458984375e-05,
- 1.0848045349121094e-04}, /* L1350 */
-{1.6113200187683105e+00, 3.2752752304077148e-05,
- 1.1920928955078125e-07, -2.0503997802734375e-05,
- -2.0384788513183594e-05}, /* L1351 */
-{1.6944191455841064e+00, 3.4540891647338867e-05,
- 1.1920928955078125e-07, 2.2888183593750000e-05,
- 1.5258789062500000e-05}, /* L1352 */
-{1.7725239992141724e+00, 3.6239624023437500e-05,
- 1.1920928955078125e-07, -8.8214874267578125e-06,
- -1.6987323760986328e-05}, /* L1353 */
-{1.3036923408508301e+00, 2.6732683181762695e-05,
- 1.1920928955078125e-07, -3.6478042602539062e-05,
- 1.8358230590820312e-05}, /* L1354 */
-{2.0716965198516846e+00, 4.2602419853210449e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 9.6559524536132812e-06}, /* L1355 */
-{1.7556488513946533e+00, 3.6209821701049805e-05,
- 1.1920928955078125e-07, 2.3722648620605469e-05,
- 3.1232833862304688e-05}, /* L1356 */
-{1.4149175882339478e+00, 2.9265880584716797e-05,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- 4.9829483032226562e-05}, /* L1357 */
-{1.2239744663238525e+00, 2.5391578674316406e-05,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- 4.9352645874023438e-05}, /* L1358 */
-{1.8379373550415039e+00, 3.8236379623413086e-05,
- 1.1920928955078125e-07, -1.0788440704345703e-05,
- 4.6849250793457031e-05}, /* L1359 */
-{1.2392036914825439e+00, 2.5853514671325684e-05,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- -1.1205673217773438e-05}, /* L1360 */
-{2.0640878677368164e+00, 4.3183565139770508e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- -3.8146972656250000e-06}, /* L1361 */
-{1.1540567874908447e+00, 2.4214386940002441e-05,
- 1.1920928955078125e-07, -3.8743019104003906e-06,
- 3.1232833862304688e-05}, /* L1362 */
-{1.4506357908248901e+00, 3.0525028705596924e-05,
- 1.1920928955078125e-07, 4.7802925109863281e-05,
- 5.4121017456054688e-05}, /* L1363 */
-{1.2244940996170044e+00, 2.5838613510131836e-05,
- 1.1920928955078125e-07, -1.0192394256591797e-05,
- -7.2121620178222656e-05}, /* L1364 */
-{1.7947084903717041e+00, 3.7983059883117676e-05,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- 2.0873546600341797e-04}, /* L1365 */
-{1.0404492616653442e+00, 2.2083520889282227e-05,
- 1.1920928955078125e-07, -1.0049343109130859e-04,
- -1.7166137695312500e-05}, /* L1366 */
-{1.6932382583618164e+00, 3.6031007766723633e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- 3.8504600524902344e-05}, /* L1367 */
-{1.0041375160217285e+00, 2.1427869796752930e-05,
- 1.1920928955078125e-07, -1.4364719390869141e-05,
- 8.8214874267578125e-06}, /* L1368 */
-{1.1350351572036743e+00, 2.4288892745971680e-05,
- 1.1920928955078125e-07, -2.1457672119140625e-05,
- -1.6570091247558594e-05}, /* L1369 */
-{1.4458054304122925e+00, 3.1024217605590820e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -6.3776969909667969e-06}, /* L1370 */
-{1.7375079393386841e+00, 3.7387013435363770e-05,
- 1.1920928955078125e-07, -7.9870223999023438e-06,
- 1.2874603271484375e-05}, /* L1371 */
-{1.5731759071350098e+00, 3.3944845199584961e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 4.1723251342773438e-06}, /* L1372 */
-{1.6914273500442505e+00, 3.6597251892089844e-05,
- 1.1920928955078125e-07, -1.3411045074462891e-05,
- -1.8477439880371094e-06}, /* L1373 */
-{1.3100943565368652e+00, 2.8431415557861328e-05,
- 1.1920928955078125e-07, -3.6180019378662109e-05,
- 5.9962272644042969e-05}, /* L1374 */
-{1.7335295677185059e+00, 3.7714838981628418e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- -1.6272068023681641e-05}, /* L1375 */
-{2.4289181232452393e+00, 5.2988529205322266e-05,
- 1.1920928955078125e-07, -1.0311603546142578e-05,
- -8.0466270446777344e-06}, /* L1376 */
-{2.0093674659729004e+00, 4.3958425521850586e-05,
- 1.1920928955078125e-07, -2.3722648620605469e-05,
- 1.5974044799804688e-05}, /* L1377 */
-{1.0772960186004639e+00, 2.3633241653442383e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 1.1920928955078125e-07}, /* L1378 */
-{1.4037636518478394e+00, 3.0875205993652344e-05,
- 1.1920928955078125e-07, -1.6927719116210938e-05,
- -1.4841556549072266e-05}, /* L1379 */
-{1.2685499191284180e+00, 2.7976930141448975e-05,
- 1.1920928955078125e-07, 1.3351440429687500e-05,
- 1.4185905456542969e-05}, /* L1380 */
-{1.5781387090682983e+00, 3.4898519515991211e-05,
- 1.1920928955078125e-07, -3.5464763641357422e-05,
- 7.1525573730468750e-07}, /* L1381 */
-{1.2983435392379761e+00, 2.8789043426513672e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- -2.2351741790771484e-05}, /* L1382 */
-{1.6043317317962646e+00, 3.5673379898071289e-05,
- 1.1920928955078125e-07, -2.7775764465332031e-05,
- -5.3167343139648438e-05}, /* L1383 */
-{1.3502142429351807e+00, 3.0130147933959961e-05,
- 1.1920928955078125e-07, -5.1420927047729492e-04,
- -5.3250789642333984e-04}, /* L1384 */
-{1.6409204006195068e+00, 3.6686658859252930e-05,
- 1.1920928955078125e-07, -1.8000602722167969e-05,
- 1.1622905731201172e-04}, /* L1385 */
-{1.0525113344192505e+00, 2.3588538169860840e-05,
- 1.1920928955078125e-07, -1.0013580322265625e-05,
- 1.0609626770019531e-05}, /* L1386 */
-{1.2797068357467651e+00, 2.8759241104125977e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-05,
- 1.4901161193847656e-05}, /* L1387 */
-{1.6454463005065918e+00, 3.7074089050292969e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- 1.4305114746093750e-06}, /* L1388 */
-{1.8370115756988525e+00, 4.1499733924865723e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 2.0265579223632812e-06}, /* L1389 */
-{1.2052081823348999e+00, 2.7298927307128906e-05,
- 1.1920928955078125e-07, 1.0371208190917969e-05,
- -4.7683715820312500e-06}, /* L1390 */
-{1.7833750247955322e+00, 4.0501356124877930e-05,
- 1.1920928955078125e-07, 1.4781951904296875e-05,
- -1.3470649719238281e-05}, /* L1391 */
-{1.2067022323608398e+00, 2.7477741241455078e-05,
- 1.1920928955078125e-07, -1.1444091796875000e-05,
- -1.1801719665527344e-05}, /* L1392 */
-{1.0259829759597778e+00, 2.3424625396728516e-05,
- 1.1920928955078125e-07, 1.9192695617675781e-05,
- 1.4305114746093750e-06}, /* L1393 */
-{1.1892608404159546e+00, 2.7224421501159668e-05,
- 1.1920928955078125e-07, -8.7261199951171875e-05,
- -1.5497207641601562e-06}, /* L1394 */
-{1.6310317516326904e+00, 3.7431716918945312e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -2.7894973754882812e-05}, /* L1395 */
-{1.1712638139724731e+00, 2.6956200599670410e-05,
- 1.1920928955078125e-07, 8.2492828369140625e-05,
- 1.4388561248779297e-04}, /* L1396 */
-{1.3191109895706177e+00, 3.0428171157836914e-05,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- -5.8412551879882812e-06}, /* L1397 */
-{1.1687425374984741e+00, 2.7030706405639648e-05,
- 1.1920928955078125e-07, -1.4185905456542969e-05,
- 2.9802322387695312e-05}, /* L1398 */
-{1.5179406404495239e+00, 3.5196542739868164e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -1.4960765838623047e-05}, /* L1399 */
-{1.1524952650070190e+00, 2.6792287826538086e-05,
- 1.1920928955078125e-07, 1.4662742614746094e-05,
- -2.1994113922119141e-05}, /* L1400 */
-{1.6869832277297974e+00, 3.9316713809967041e-05,
- 1.1920928955078125e-07, -3.8743019104003906e-06,
- -5.0663948059082031e-06}, /* L1401 */
-{1.1122173070907593e+00, 2.5987625122070312e-05,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- 2.2411346435546875e-05}, /* L1402 */
-{2.0101656913757324e+00, 4.7087669372558594e-05,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- -2.1457672119140625e-06}, /* L1403 */
-{1.1953006982803345e+00, 2.8073787689208984e-05,
- 1.1920928955078125e-07, -3.3438205718994141e-05,
- 2.3722648620605469e-05}, /* L1404 */
-{1.9925403594970703e+00, 4.6916306018829346e-05,
- 1.1920928955078125e-07, 3.3855438232421875e-05,
- -8.9406967163085938e-06}, /* L1405 */
-{1.2078046798706055e+00, 2.8520822525024414e-05,
- 1.1920928955078125e-07, -1.5026330947875977e-04,
- 1.0275840759277344e-04}, /* L1406 */
-{1.7974610328674316e+00, 4.2535364627838135e-05,
- 1.1920928955078125e-07, -7.9870223999023438e-06,
- -2.5153160095214844e-05}, /* L1407 */
-{1.2951791286468506e+00, 3.0726194381713867e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- -3.8146972656250000e-06}, /* L1408 */
-{1.7307336330413818e+00, 4.1201710700988770e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-05,
- 9.8228454589843750e-05}, /* L1409 */
-{1.1131089925765991e+00, 2.6538968086242676e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-07,
- 6.3180923461914062e-06}, /* L1410 */
-{1.2630264759063721e+00, 3.0189752578735352e-05,
- 1.1920928955078125e-07, 4.4584274291992188e-05,
- -3.6537647247314453e-05}, /* L1411 */
-{2.2866775989532471e+00, 5.4791569709777832e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- -7.0333480834960938e-06}, /* L1412 */
-{1.9254223108291626e+00, 4.6253204345703125e-05,
- 1.1920928955078125e-07, 2.0861625671386719e-05,
- 2.3841857910156250e-06}, /* L1413 */
-{1.2598603963851929e+00, 3.0338764190673828e-05,
- 1.1920928955078125e-07, -1.7583370208740234e-05,
- 1.1920928955078125e-05}, /* L1414 */
-{2.0592036247253418e+00, 4.9710273742675781e-05,
- 1.1920928955078125e-07, -1.4901161193847656e-06,
- 3.5762786865234375e-06}, /* L1415 */
-{1.3841522932052612e+00, 3.3497810363769531e-05,
- 1.1920928955078125e-07, -3.2186508178710938e-06,
- -2.5570392608642578e-05}, /* L1416 */
-{1.2210686206817627e+00, 2.9623508453369141e-05,
- 1.1920928955078125e-07, -3.8444995880126953e-05,
- -1.9669532775878906e-05}, /* L1417 */
-{1.3291358947753906e+00, 3.2335519790649414e-05,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- 8.9764595031738281e-05}, /* L1418 */
-{1.6585131883621216e+00, 4.0441751480102539e-05,
- 1.1920928955078125e-07, 6.4969062805175781e-05,
- 6.7114830017089844e-05}, /* L1419 */
-{2.3393919467926025e+00, 5.7190656661987305e-05,
- 1.1920928955078125e-07, -6.0796737670898438e-05,
- -2.4616718292236328e-05}, /* L1420 */
-{1.9875842332839966e+00, 4.8696994781494141e-05,
- 1.1920928955078125e-07, -1.2636184692382812e-05,
- 2.1696090698242188e-05}, /* L1421 */
-{1.2387638092041016e+00, 3.0420720577239990e-05,
- 1.1920928955078125e-07, -1.8477439880371094e-06,
- 2.2649765014648438e-06}, /* L1422 */
-{1.3376426696777344e+00, 3.2931566238403320e-05,
- 1.1920928955078125e-07, -4.5418739318847656e-05,
- 3.3497810363769531e-05}, /* L1423 */
-{1.5897701978683472e+00, 3.9234757423400879e-05,
- 1.1920928955078125e-07, -4.0054321289062500e-05,
- 3.0994415283203125e-06}, /* L1424 */
-{1.9498820304870605e+00, 4.8235058784484863e-05,
- 1.1920928955078125e-07, -1.3053417205810547e-05,
- 1.9550323486328125e-05}, /* L1425 */
-{1.1309252977371216e+00, 2.8043985366821289e-05,
- 1.1920928955078125e-07, 3.8504600524902344e-05,
- -4.1723251342773438e-07}, /* L1426 */
-{1.7441880702972412e+00, 4.3362379074096680e-05,
- 1.1920928955078125e-07, -8.7559223175048828e-05,
- 1.6105175018310547e-04}, /* L1427 */
-{1.1221930980682373e+00, 2.7962028980255127e-05,
- 1.1920928955078125e-07, -2.7894973754882812e-05,
- -5.0067901611328125e-06}, /* L1428 */
-{1.8358938694000244e+00, 4.5850872993469238e-05,
- 1.1920928955078125e-07, -1.2040138244628906e-05,
- 4.2915344238281250e-06}, /* L1429 */
-{1.4915813207626343e+00, 3.7342309951782227e-05,
- 1.1920928955078125e-07, 1.2159347534179688e-05,
- -3.9339065551757812e-06}, /* L1430 */
-{1.3514995574951172e+00, 3.3915042877197266e-05,
- 1.1920928955078125e-07, -1.9609928131103516e-05,
- 5.0067901611328125e-06}, /* L1431 */
-{1.9424787759780884e+00, 4.8860907554626465e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- 1.0132789611816406e-05}, /* L1432 */
-{2.2824485301971436e+00, 5.7548284530639648e-05,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- 1.0967254638671875e-05}, /* L1433 */
-{1.4196853637695312e+00, 3.5881996154785156e-05,
- 1.1920928955078125e-07, 8.3565711975097656e-05,
- 2.6822090148925781e-05}, /* L1434 */
-{2.0587852001190186e+00, 5.2154064178466797e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-05,
- 1.1086463928222656e-05}, /* L1435 */
-{1.5611630678176880e+00, 3.9644539356231689e-05,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- 6.9737434387207031e-05}, /* L1436 */
-{2.0004017353057861e+00, 5.0917267799377441e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-05,
- 3.4332275390625000e-05}, /* L1437 */
-{1.6173666715621948e+00, 4.1261315345764160e-05,
- 1.1920928955078125e-07, -1.1444091796875000e-05,
- 1.4901161193847656e-05}, /* L1438 */
-{1.7316709756851196e+00, 4.4301152229309082e-05,
- 1.1920928955078125e-07, -7.6353549957275391e-05,
- -3.4749507904052734e-05}, /* L1439 */
-{1.2825214862823486e+00, 3.2871961593627930e-05,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- -1.0311603546142578e-05}, /* L1440 */
-{1.3583186864852905e+00, 3.4898519515991211e-05,
- 1.1920928955078125e-07, 4.6014785766601562e-05,
- 5.9366226196289062e-05}, /* L1441 */
-{1.0954340696334839e+00, 2.8207898139953613e-05,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- 6.6757202148437500e-06}, /* L1442 */
-{1.8105490207672119e+00, 4.6759843826293945e-05,
- 1.1920928955078125e-07, -1.4382600784301758e-04,
- 8.7976455688476562e-05}, /* L1443 */
-{1.7050383090972900e+00, 4.4107437133789062e-05,
- 1.1920928955078125e-07, -1.1205673217773438e-05,
- -9.2983245849609375e-06}, /* L1444 */
-{1.9364947080612183e+00, 5.0216913223266602e-05,
- 1.1920928955078125e-07, 3.5166740417480469e-05,
- 2.8252601623535156e-05}, /* L1445 */
-{1.2488127946853638e+00, 3.2454729080200195e-05,
- 1.1920928955078125e-07, -1.1682510375976562e-05,
- 3.0994415283203125e-06}, /* L1446 */
-{1.4114278554916382e+00, 3.6776065826416016e-05,
- 1.1920928955078125e-07, 7.9035758972167969e-05,
- -1.0204315185546875e-04}, /* L1447 */
-{1.2499012947082520e+00, 3.2633543014526367e-05,
- 1.1920928955078125e-07, -3.6060810089111328e-05,
- 6.3180923461914062e-06}, /* L1448 */
-{1.5762051343917847e+00, 4.1246414184570312e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- 4.1007995605468750e-05}, /* L1449 */
-{1.2615462541580200e+00, 3.3088028430938721e-05,
- 1.1920928955078125e-07, -2.5629997253417969e-05,
- -1.4305114746093750e-06}, /* L1450 */
-{1.7548559904098511e+00, 4.6133995056152344e-05,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- 6.3061714172363281e-05}, /* L1451 */
-{1.3512141704559326e+00, 3.5598874092102051e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- -1.2516975402832031e-06}, /* L1452 */
-{1.9481852054595947e+00, 5.1444396376609802e-05,
- 1.1920928955078125e-07, -1.4483928680419922e-05,
- -2.7835369110107422e-05}, /* L1453 */
-{1.3838692903518677e+00, 3.6627054214477539e-05,
- 1.1920928955078125e-07, -1.9133090972900391e-05,
- 2.9802322387695312e-06}, /* L1454 */
-{1.4002081155776978e+00, 3.7141144275665283e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -1.8239021301269531e-05}, /* L1455 */
-{1.3880631923675537e+00, 3.6900863051414490e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- -9.4175338745117188e-06}, /* L1456 */
-{2.1057124137878418e+00, 5.6110322475433350e-05,
- 1.1920928955078125e-07, -1.0114908218383789e-04,
- 9.7036361694335938e-05}, /* L1457 */
-{1.0557851791381836e+00, 2.8192996978759766e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- -3.3378601074218750e-06}, /* L1458 */
-{1.4353449344635010e+00, 3.8415193557739258e-05,
- 1.1920928955078125e-07, 4.5418739318847656e-05,
- 2.6464462280273438e-05}, /* L1459 */
-{1.9754149913787842e+00, 5.2988529205322266e-05,
- 1.1920928955078125e-07, -1.7285346984863281e-05,
- -3.3855438232421875e-05}, /* L1460 */
-{1.6584044694900513e+00, 4.4584274291992188e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- -3.1471252441406250e-05}, /* L1461 */
-{1.1271488666534424e+00, 3.0368566513061523e-05,
- 1.1920928955078125e-07, -2.9087066650390625e-05,
- 2.1696090698242188e-05}, /* L1462 */
-{1.5054625272750854e+00, 4.0650367736816406e-05,
- 1.1920928955078125e-07, -1.5974044799804688e-05,
- -4.7087669372558594e-06}, /* L1463 */
-{1.2962318658828735e+00, 3.5077333450317383e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- 2.3841857910156250e-07}, /* L1464 */
-{1.5944050550460815e+00, 4.3243169784545898e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- 3.1828880310058594e-05}, /* L1465 */
-{1.1379826068878174e+00, 3.0934810638427734e-05,
- 1.1920928955078125e-07, -2.9325485229492188e-05,
- -3.5881996154785156e-05}, /* L1466 */
-{1.4034835100173950e+00, 3.8236379623413086e-05,
- 1.1920928955078125e-07, -2.2113323211669922e-05,
- 9.2029571533203125e-05}, /* L1467 */
-{1.2783238887786865e+00, 3.4898519515991211e-05,
- 1.1920928955078125e-07, 1.4066696166992188e-05,
- -1.3351440429687500e-05}, /* L1468 */
-{1.8538811206817627e+00, 5.0723552703857422e-05,
- 1.1920928955078125e-07, -2.9742717742919922e-05,
- -5.3167343139648438e-05}, /* L1469 */
-{1.2802045345306396e+00, 3.5107135772705078e-05,
- 1.1920928955078125e-07, 8.9049339294433594e-05,
- -8.8810920715332031e-06}, /* L1470 */
-{1.7689334154129028e+00, 4.8622488975524902e-05,
- 1.1920928955078125e-07, -2.5033950805664062e-05,
- 2.8729438781738281e-05}, /* L1471 */
-{1.2634744644165039e+00, 3.4809112548828125e-05,
- 1.1920928955078125e-07, 4.8279762268066406e-05,
- 1.1134147644042969e-04}, /* L1472 */
-{1.8021466732025146e+00, 4.9740076065063477e-05,
- 1.1920928955078125e-07, -1.3172626495361328e-05,
- 1.3113021850585938e-06}, /* L1473 */
-{1.3816223144531250e+00, 3.8225203752517700e-05,
- 1.1920928955078125e-07, 1.0883808135986328e-04,
- 1.0025501251220703e-04}, /* L1474 */
-{1.6515465974807739e+00, 4.5776367187500000e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -1.3113021850585938e-05}, /* L1475 */
-{1.6826131343841553e+00, 4.6737492084503174e-05,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- -9.0003013610839844e-06}, /* L1476 */
-{2.1497521400451660e+00, 5.9850513935089111e-05,
- 1.1920928955078125e-07, -1.0550022125244141e-04,
- 7.2121620178222656e-05}, /* L1477 */
-{1.4881008863449097e+00, 4.1529536247253418e-05,
- 1.1920928955078125e-07, -7.3134899139404297e-05,
- 1.6868114471435547e-04}, /* L1478 */
-{1.5448435544967651e+00, 4.3187290430068970e-05,
- 1.1920928955078125e-07, -2.5331974029541016e-05,
- -7.7486038208007812e-07}, /* L1479 */
-{1.4849699735641479e+00, 4.1604042053222656e-05,
- 1.1920928955078125e-07, -2.9683113098144531e-05,
- 1.8715858459472656e-05}, /* L1480 */
-{2.2235758304595947e+00, 6.2428414821624756e-05,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -1.0371208190917969e-05}, /* L1481 */
-{1.5330740213394165e+00, 4.3131411075592041e-05,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- 8.2254409790039062e-06}, /* L1482 */
-{1.6582512855529785e+00, 4.6759843826293945e-05,
- 1.1920928955078125e-07, 6.7472457885742188e-05,
- -2.4318695068359375e-05}, /* L1483 */
-{1.5347341299057007e+00, 4.3362379074096680e-05,
- 1.1920928955078125e-07, -2.5570392608642578e-05,
- -4.9471855163574219e-06}, /* L1484 */
-{1.9177533388137817e+00, 5.4359436035156250e-05,
- 1.1920928955078125e-07, 3.9815902709960938e-05,
- -1.4597177505493164e-04}, /* L1485 */
-{1.6128203868865967e+00, 4.5783817768096924e-05,
- 1.1920928955078125e-07, 1.1062622070312500e-04,
- -1.9127130508422852e-04}, /* L1486 */
-{1.5746463537216187e+00, 4.4770538806915283e-05,
- 1.1920928955078125e-07, -4.1723251342773438e-06,
- 1.4305114746093750e-06}, /* L1487 */
-{1.2361463308334351e+00, 3.5226345062255859e-05,
- 1.1920928955078125e-07, 5.7697296142578125e-05,
- -5.0783157348632812e-05}, /* L1488 */
-{1.2776293754577637e+00, 3.6478042602539062e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 5.0067901611328125e-06}, /* L1489 */
-{1.0395350456237793e+00, 2.9742717742919922e-05,
- 1.1920928955078125e-07, -4.7445297241210938e-05,
- 4.5895576477050781e-05}, /* L1490 */
-{2.0484542846679688e+00, 5.8740377426147461e-05,
- 1.1920928955078125e-07, 1.4066696166992188e-04,
- -1.4621019363403320e-04}, /* L1491 */
-{1.4003931283950806e+00, 4.0233135223388672e-05,
- 1.1920928955078125e-07, -8.4042549133300781e-06,
- 4.1723251342773438e-06}, /* L1492 */
-{1.9649422168731689e+00, 5.6572258472442627e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -6.3776969909667969e-06}, /* L1493 */
-{1.1796791553497314e+00, 3.4034252166748047e-05,
- 1.1920928955078125e-07, -5.1259994506835938e-06,
- -1.0490417480468750e-05}, /* L1494 */
-{1.8512749671936035e+00, 5.3524971008300781e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- 1.4185905456542969e-05}, /* L1495 */
-{1.9978289604187012e+00, 5.7876110076904297e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- 6.1988830566406250e-06}, /* L1496 */
-{1.6106010675430298e+00, 4.6759843826293945e-05,
- 1.1920928955078125e-07, 4.8637390136718750e-05,
- -3.3199787139892578e-05}, /* L1497 */
-{1.1299568414688110e+00, 3.2871961593627930e-05,
- 1.1920928955078125e-07, 1.0883808135986328e-04,
- -7.4744224548339844e-05}, /* L1498 */
-{1.9313563108444214e+00, 5.6296586990356445e-05,
- 1.1920928955078125e-07, -3.9637088775634766e-05,
- -3.9339065551757812e-05}, /* L1499 */
-{1.3632235527038574e+00, 3.9815902709960938e-05,
- 1.1920928955078125e-07, 9.6559524536132812e-06,
- -2.0623207092285156e-05}, /* L1500 */
-{1.6506551504135132e+00, 4.8309564590454102e-05,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- 2.0980834960937500e-05}, /* L1501 */
-{1.5693887472152710e+00, 4.6029686927795410e-05,
- 1.1920928955078125e-07, -8.8930130004882812e-05,
- 2.0623207092285156e-05}, /* L1502 */
-{1.7611865997314453e+00, 5.1754526793956757e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -1.9907951354980469e-05}, /* L1503 */
-{1.9873125553131104e+00, 5.8531761169433594e-05,
- 1.1920928955078125e-07, 5.8889389038085938e-05,
- -8.2612037658691406e-05}, /* L1504 */
-{1.8383181095123291e+00, 5.4240226745605469e-05,
- 1.1920928955078125e-07, 1.2636184692382812e-05,
- 1.0371208190917969e-05}, /* L1505 */
-{1.1027753353118896e+00, 3.2603740692138672e-05,
- 1.1920928955078125e-07, -5.2452087402343750e-06,
- 1.0728836059570312e-06}, /* L1506 */
-{1.7803213596343994e+00, 5.2742660045623779e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 1.5258789062500000e-05}, /* L1507 */
-{1.4907630681991577e+00, 4.4256448745727539e-05,
- 1.1920928955078125e-07, -4.9173831939697266e-05,
- -9.0599060058593750e-05}, /* L1508 */
-{2.0239846706390381e+00, 6.0200691223144531e-05,
- 1.1920928955078125e-07, -1.8477439880371094e-05,
- 1.8119812011718750e-05}, /* L1509 */
-{1.1144508123397827e+00, 3.3214688301086426e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- -1.4901161193847656e-05}, /* L1510 */
-{1.9620109796524048e+00, 5.8606266975402832e-05,
- 1.1920928955078125e-07, -1.1438131332397461e-04,
- 1.2576580047607422e-04}, /* L1511 */
-{1.5394760370254517e+00, 4.6074390411376953e-05,
- 1.1920928955078125e-07, -1.8656253814697266e-05,
- -5.3524971008300781e-05}, /* L1512 */
-{1.6924753189086914e+00, 5.0827860832214355e-05,
- 1.1920928955078125e-07, 9.6690654754638672e-04,
- 8.7499618530273438e-05}, /* L1513 */
-{1.1616461277008057e+00, 3.4898519515991211e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 4.6491622924804688e-06}, /* L1514 */
-{2.3611564636230469e+00, 7.1078538894653320e-05,
- 1.1920928955078125e-07, 2.3365020751953125e-05,
- 5.2690505981445312e-05}, /* L1515 */
-{1.7132921218872070e+00, 5.1677227020263672e-05,
- 1.1920928955078125e-07, -6.0558319091796875e-05,
- 1.4305114746093750e-06}, /* L1516 */
-{1.9700919389724731e+00, 5.9545040130615234e-05,
- 1.1920928955078125e-07, 1.2826919555664062e-04,
- 5.2452087402343750e-05}, /* L1517 */
-{1.4536706209182739e+00, 4.4047832489013672e-05,
- 1.1920928955078125e-07, 1.8703937530517578e-04,
- -3.3789873123168945e-04}, /* L1518 */
-{2.0969827175140381e+00, 6.3627958297729492e-05,
- 1.1920928955078125e-07, -4.3094158172607422e-05,
- 2.2411346435546875e-05}, /* L1519 */
-{1.4146339893341064e+00, 4.3004751205444336e-05,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- -5.8412551879882812e-06}, /* L1520 */
-{2.1186771392822266e+00, 6.4536929130554199e-05,
- 1.1920928955078125e-07, 5.9962272644042969e-05,
- 4.8875808715820312e-06}, /* L1521 */
-{1.7401461601257324e+00, 5.3107738494873047e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -5.2869319915771484e-05}, /* L1522 */
-{1.5861666202545166e+00, 4.8510730266571045e-05,
- 1.1920928955078125e-07, -6.2406063079833984e-05,
- 1.7404556274414062e-05}, /* L1523 */
-{1.9230616092681885e+00, 5.8919191360473633e-05,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- -1.4722347259521484e-05}, /* L1524 */
-{1.7132749557495117e+00, 5.2593648433685303e-05,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- -1.8477439880371094e-05}, /* L1525 */
-{1.1891524791717529e+00, 3.6582350730895996e-05,
- 1.1920928955078125e-07, -2.5570392608642578e-05,
- 6.9737434387207031e-05}, /* L1526 */
-{1.7972261905670166e+00, 5.5409967899322510e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- -5.6266784667968750e-05}, /* L1527 */
-{1.8937269449234009e+00, 5.8472156524658203e-05,
- 1.1920928955078125e-07, 1.6570091247558594e-05,
- -1.3291835784912109e-05}, /* L1528 */
-{1.9247720241546631e+00, 5.9559941291809082e-05,
- 1.1920928955078125e-07, -2.3424625396728516e-05,
- 4.8160552978515625e-05}, /* L1529 */
-{1.2874305248260498e+00, 3.9905309677124023e-05,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 2.6226043701171875e-05}, /* L1530 */
-{2.1404082775115967e+00, 6.6488981246948242e-05,
- 1.1920928955078125e-07, -4.4941902160644531e-05,
- 4.6849250793457031e-05}, /* L1531 */
-{1.6732366085052490e+00, 5.2064657211303711e-05,
- 1.1920928955078125e-07, 4.3392181396484375e-05,
- -8.8810920715332031e-06}, /* L1532 */
-{2.1306273937225342e+00, 6.6429376602172852e-05,
- 1.1920928955078125e-07, -1.2165307998657227e-04,
- -1.2755393981933594e-04}, /* L1533 */
-{1.5713833570480347e+00, 4.9084424972534180e-05,
- 1.1920928955078125e-07, -3.7610530853271484e-05,
- 2.7894973754882812e-05}, /* L1534 */
-{2.1737983226776123e+00, 6.8031251430511475e-05,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- -1.7523765563964844e-05}, /* L1535 */
-{1.7201981544494629e+00, 5.3938478231430054e-05,
- 1.1920928955078125e-07, 7.6293945312500000e-06,
- -4.4107437133789062e-06}, /* L1536 */
-{1.5260287523269653e+00, 4.7951936721801758e-05,
- 1.1920928955078125e-07, -8.6069107055664062e-05,
- -5.7756900787353516e-05}, /* L1537 */
-{1.3840992450714111e+00, 4.3570995330810547e-05,
- 1.1920928955078125e-07, -7.3254108428955078e-05,
- -1.1271238327026367e-04}, /* L1538 */
-{1.5215897560119629e+00, 4.7981739044189453e-05,
- 1.1920928955078125e-07, 3.2782554626464844e-05,
- -6.2108039855957031e-05}, /* L1539 */
-{1.6385518312454224e+00, 5.1766633987426758e-05,
- 1.1920928955078125e-07, -3.0159950256347656e-05,
- -4.3332576751708984e-05}, /* L1540 */
-{2.6145944595336914e+00, 8.2880258560180664e-05,
- 1.1920928955078125e-07, 8.7380409240722656e-04,
- 6.5803527832031250e-04}, /* L1541 */
-{1.4643225669860840e+00, 4.6461820602416992e-05,
- 1.1920928955078125e-07, -6.2167644500732422e-05,
- 7.0214271545410156e-05}, /* L1542 */
-{1.5510369539260864e+00, 4.9471855163574219e-05,
- 1.1920928955078125e-07, 2.1610260009765625e-03,
- 6.7126750946044922e-04}, /* L1543 */
-{1.6978869438171387e+00, 5.4046511650085449e-05,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- 4.9710273742675781e-05}, /* L1544 */
-{2.9040098190307617e+00, 9.2715024948120117e-05,
- 1.1920928955078125e-07, -3.6090612411499023e-04,
- 2.8729438781738281e-05}, /* L1545 */
-{1.4747371673583984e+00, 4.7117471694946289e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- 1.5497207641601562e-05}, /* L1546 */
-{2.5894241333007812e+00, 8.2999467849731445e-05,
- 1.1920928955078125e-07, -2.7740001678466797e-04,
- 3.2389163970947266e-04}, /* L1547 */
-{1.4263014793395996e+00, 4.5739114284515381e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- -7.9274177551269531e-06}, /* L1548 */
-{2.3825769424438477e+00, 7.6547265052795410e-05,
- 1.1920928955078125e-07, -6.4373016357421875e-06,
- 8.4638595581054688e-06}, /* L1549 */
-{1.0481963157653809e+00, 3.3739954233169556e-05,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- 1.7642974853515625e-05}, /* L1550 */
-{1.7919580936431885e+00, 5.7786703109741211e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -1.8477439880371094e-06}, /* L1551 */
-{1.4354053735733032e+00, 4.6379864215850830e-05,
- 1.1920928955078125e-07, 4.2319297790527344e-05,
- -8.8214874267578125e-06}, /* L1552 */
-{2.2453553676605225e+00, 7.3224306106567383e-05,
- 1.1920928955078125e-07, -2.3877620697021484e-03,
- 2.1587610244750977e-03}, /* L1553 */
-{1.5011637210845947e+00, 4.8726797103881836e-05,
- 1.1920928955078125e-07, -5.8555603027343750e-04,
- 2.6702880859375000e-04}, /* L1554 */
-{1.6169064044952393e+00, 5.2530318498611450e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- 1.0597705841064453e-04}, /* L1555 */
-{1.5450292825698853e+00, 5.0283968448638916e-05,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- -8.7022781372070312e-06}, /* L1556 */
-{2.0099329948425293e+00, 6.5542757511138916e-05,
- 1.1920928955078125e-07, -4.9233436584472656e-05,
- -4.2319297790527344e-05}, /* L1557 */
-{1.2560998201370239e+00, 4.1037797927856445e-05,
- 1.1920928955078125e-07, -1.8179416656494141e-05,
- 5.8293342590332031e-05}, /* L1558 */
-{1.7137652635574341e+00, 5.6087970733642578e-05,
- 1.1920928955078125e-07, 4.6014785766601562e-05,
- -6.8128108978271484e-05}, /* L1559 */
-{1.6471037864685059e+00, 5.4001808166503906e-05,
- 1.1920928955078125e-07, -6.6041946411132812e-05,
- 3.2544136047363281e-05}, /* L1560 */
-{2.0242938995361328e+00, 6.6488981246948242e-05,
- 1.1920928955078125e-07, -7.0929527282714844e-06,
- -6.1333179473876953e-05}, /* L1561 */
-{1.3907424211502075e+00, 4.5776367187500000e-05,
- 1.1920928955078125e-07, -1.0359287261962891e-04,
- 2.0051002502441406e-04}, /* L1562 */
-{1.7893331050872803e+00, 5.9008598327636719e-05,
- 1.1920928955078125e-07, 5.8770179748535156e-05,
- 4.8637390136718750e-05}, /* L1563 */
-{1.4569642543792725e+00, 4.8115849494934082e-05,
- 1.1920928955078125e-07, -1.8179416656494141e-05,
- -1.7285346984863281e-06}, /* L1564 */
-{1.7615898847579956e+00, 5.8293342590332031e-05,
- 1.1920928955078125e-07, -1.2439489364624023e-04,
- -2.0325183868408203e-04}, /* L1565 */
-{1.4934916496276855e+00, 4.9497932195663452e-05,
- 1.1920928955078125e-07, -1.6391277313232422e-05,
- 1.8239021301269531e-05}, /* L1566 */
-{1.6852548122406006e+00, 5.5953860282897949e-05,
- 1.1920928955078125e-07, -1.6689300537109375e-05,
- -2.6106834411621094e-05}, /* L1567 */
-{1.9645620584487915e+00, 6.5356492996215820e-05,
- 1.1920928955078125e-07, 4.7922134399414062e-05,
- -5.2571296691894531e-05}, /* L1568 */
-{2.5756866931915283e+00, 8.5830688476562500e-05,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- -6.2286853790283203e-05}, /* L1569 */
-{1.2981446981430054e+00, 4.3332576751708984e-05,
- 1.1920928955078125e-07, -1.5437602996826172e-05,
- 9.6559524536132812e-06}, /* L1570 */
-{1.6806840896606445e+00, 5.6207180023193359e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- -1.2218952178955078e-05}, /* L1571 */
-{1.3308761119842529e+00, 4.4584274291992188e-05,
- 1.1920928955078125e-07, -3.0398368835449219e-06,
- 2.4318695068359375e-05}, /* L1572 */
-{2.1907477378845215e+00, 7.3522329330444336e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- 1.1682510375976562e-05}, /* L1573 */
-{1.2211368083953857e+00, 4.1067600250244141e-05,
- 1.1920928955078125e-07, 6.9379806518554688e-05,
- 1.7130374908447266e-04}, /* L1574 */
-{1.9338735342025757e+00, 6.5132975578308105e-05,
- 1.1920928955078125e-07, -9.0003013610839844e-06,
- -5.5611133575439453e-05}, /* L1575 */
-{1.5046993494033813e+00, 5.0768256187438965e-05,
- 1.1920928955078125e-07, -1.1861324310302734e-05,
- -2.9683113098144531e-05}, /* L1576 */
-{2.0874316692352295e+00, 7.0601701736450195e-05,
- 1.1920928955078125e-07, -1.6301870346069336e-04,
- 9.2267990112304688e-05}, /* L1577 */
-{1.3573189973831177e+00, 4.5955181121826172e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -3.5762786865234375e-06}, /* L1578 */
-{2.6554052829742432e+00, 9.0062618255615234e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- 2.2649765014648438e-06}, /* L1579 */
-{1.5302015542984009e+00, 5.1990151405334473e-05,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 9.4175338745117188e-06}, /* L1580 */
-{2.1459891796112061e+00, 7.3045492172241211e-05,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- 1.4066696166992188e-05}, /* L1581 */
-{1.6581412553787231e+00, 5.6535005569458008e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- 5.8412551879882812e-06}, /* L1582 */
-{1.6590129137039185e+00, 5.6669116020202637e-05,
- 1.1920928955078125e-07, -6.9975852966308594e-05,
- -1.0192394256591797e-05}, /* L1583 */
-{2.0739428997039795e+00, 7.0989131927490234e-05,
- 1.1920928955078125e-07, -5.2452087402343750e-05,
- -8.0108642578125000e-05}, /* L1584 */
-{2.2205832004547119e+00, 7.6107680797576904e-05,
- 1.1920928955078125e-07, -1.0907649993896484e-05,
- 6.4373016357421875e-06}, /* L1585 */
-{1.2821903228759766e+00, 4.4047832489013672e-05,
- 1.1920928955078125e-07, -4.5537948608398438e-05,
- -6.0796737670898438e-06}, /* L1586 */
-{2.3135478496551514e+00, 7.9602003097534180e-05,
- 1.1920928955078125e-07, -1.2749433517456055e-04,
- -1.6570091247558594e-04}, /* L1587 */
-{1.6386511325836182e+00, 5.6475400924682617e-05,
- 1.1920928955078125e-07, -9.7990036010742188e-05,
- -4.5359134674072266e-05}, /* L1588 */
-{1.7943061590194702e+00, 6.1929225921630859e-05,
- 1.1920928955078125e-07, -6.3478946685791016e-05,
- -2.4855136871337891e-05}, /* L1589 */
-{1.3809245824813843e+00, 4.7743320465087891e-05,
- 1.1920928955078125e-07, -1.2099742889404297e-05,
- -3.4332275390625000e-05}, /* L1590 */
-{2.4040441513061523e+00, 8.3267688751220703e-05,
- 1.1920928955078125e-07, -1.2350082397460938e-04,
- 8.3804130554199219e-05}, /* L1591 */
-{1.8293954133987427e+00, 6.3464045524597168e-05,
- 1.1920928955078125e-07, -1.0907649993896484e-05,
- 5.0067901611328125e-06}, /* L1592 */
-{2.0455167293548584e+00, 7.1084126830101013e-05,
- 1.1920928955078125e-07, 9.8943710327148438e-06,
- -4.8279762268066406e-06}, /* L1593 */
-{1.6171967983245850e+00, 5.6326389312744141e-05,
- 1.1920928955078125e-07, 1.4758110046386719e-04,
- 2.2685527801513672e-04}, /* L1594 */
-{2.0097320079803467e+00, 7.0080161094665527e-05,
- 1.1920928955078125e-07, 3.6716461181640625e-05,
- -1.9192695617675781e-05}, /* L1595 */
-{1.5680779218673706e+00, 5.4776668548583984e-05,
- 1.1920928955078125e-07, 5.2213668823242188e-05,
- -2.2053718566894531e-05}, /* L1596 */
-{2.9544463157653809e+00, 1.0338425636291504e-04,
- 1.1920928955078125e-07, 3.8862228393554688e-05,
- -4.4286251068115234e-05}, /* L1597 */
-{1.8332197666168213e+00, 6.4253807067871094e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 2.0265579223632812e-05}, /* L1598 */
-{1.9086176156997681e+00, 6.7010521888732910e-05,
- 1.1920928955078125e-07, 3.7908554077148438e-05,
- -3.4511089324951172e-05}, /* L1599 */
-{1.5753525495529175e+00, 5.5402517318725586e-05,
- 1.1920928955078125e-07, -4.1723251342773438e-06,
- -2.5808811187744141e-05}, /* L1600 */
-{1.9220883846282959e+00, 6.7710876464843750e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 1.3828277587890625e-05}, /* L1601 */
-{1.3358314037322998e+00, 4.7139823436737061e-05,
- 1.1920928955078125e-07, -2.8252601623535156e-05,
- 1.9669532775878906e-05}, /* L1602 */
-{2.1455285549163818e+00, 7.5843185186386108e-05,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- -1.8298625946044922e-05}, /* L1603 */
-{1.4477404356002808e+00, 5.1259994506835938e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-05,
- -1.1920928955078125e-05}, /* L1604 */
-{2.4598176479339600e+00, 8.7320804595947266e-05,
- 1.1920928955078125e-07, -4.3809413909912109e-04,
- -4.8255920410156250e-04}, /* L1605 */
-{1.4193363189697266e+00, 5.0425529479980469e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 3.6239624023437500e-05}, /* L1606 */
-{1.6554319858551025e+00, 5.8919191360473633e-05,
- 1.1920928955078125e-07, -1.8656253814697266e-05,
- -5.9962272644042969e-05}, /* L1607 */
-{1.6987222433090210e+00, 6.0550868511199951e-05,
- 1.1920928955078125e-07, -1.0550022125244141e-05,
- 1.0728836059570312e-06}, /* L1608 */
-{2.6107833385467529e+00, 9.3219801783561707e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -3.1828880310058594e-05}, /* L1609 */
-{1.4334782361984253e+00, 5.1409006118774414e-05,
- 1.1920928955078125e-07, -1.0981559753417969e-03,
- -1.0913610458374023e-04}, /* L1610 */
-{2.5392487049102783e+00, 9.0986490249633789e-05,
- 1.1920928955078125e-07, 6.1750411987304688e-05,
- 1.6331672668457031e-05}, /* L1611 */
-{1.4882453680038452e+00, 5.3405761718750000e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -4.7862529754638672e-05}, /* L1612 */
-{1.7979615926742554e+00, 6.4939260482788086e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-04,
- -9.5635652542114258e-04}, /* L1613 */
-{1.7160894870758057e+00, 6.1810016632080078e-05,
- 1.1920928955078125e-07, 1.8751621246337891e-04,
- -1.7344951629638672e-05}, /* L1614 */
-{2.0119936466217041e+00, 7.2568655014038086e-05,
- 1.1920928955078125e-07, -2.7894973754882812e-05,
- 5.8650970458984375e-05}, /* L1615 */
-{1.6964043378829956e+00, 6.1303377151489258e-05,
- 1.1920928955078125e-07, 1.7869472503662109e-04,
- -1.1575222015380859e-04}, /* L1616 */
-{2.3658163547515869e+00, 8.5614621639251709e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- 4.0650367736816406e-05}, /* L1617 */
-{1.9094018936157227e+00, 6.9200992584228516e-05,
- 1.1920928955078125e-07, -1.5377998352050781e-05,
- 7.9870223999023438e-06}, /* L1618 */
-{2.4481444358825684e+00, 8.8870525360107422e-05,
- 1.1920928955078125e-07, 5.0425529479980469e-05,
- 7.0333480834960938e-06}, /* L1619 */
-{1.8851681947708130e+00, 6.8545341491699219e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 4.0531158447265625e-06}, /* L1620 */
-{2.6643478870391846e+00, 9.7036361694335938e-05,
- 1.1920928955078125e-07, -7.8678131103515625e-06,
- 2.9563903808593750e-05}, /* L1621 */
-{2.1620888710021973e+00, 7.8931450843811035e-05,
- 1.1920928955078125e-07, -1.8262863159179688e-04,
- -8.1658363342285156e-06}, /* L1622 */
-{2.5466248989105225e+00, 9.3065202236175537e-05,
- 1.1920928955078125e-07, 1.0585784912109375e-04,
- 7.0333480834960938e-06}, /* L1623 */
-{1.8539042472839355e+00, 6.7859888076782227e-05,
- 1.1920928955078125e-07, -3.1411647796630859e-05,
- -1.5497207641601562e-06}, /* L1624 */
-{1.9892973899841309e+00, 7.2926282882690430e-05,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- -1.2695789337158203e-05}, /* L1625 */
-{1.2623553276062012e+00, 4.6372413635253906e-05,
- 1.1920928955078125e-07, -2.1350383758544922e-04,
- -2.0825862884521484e-04}, /* L1626 */
-{1.4568940401077271e+00, 5.3584575653076172e-05,
- 1.1920928955078125e-07, 2.8133392333984375e-05,
- 1.6689300537109375e-06}, /* L1627 */
-{1.7426048517227173e+00, 6.4194202423095703e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -4.3392181396484375e-05}, /* L1628 */
-{2.1693186759948730e+00, 8.0078840255737305e-05,
- 1.1920928955078125e-07, 1.6331672668457031e-05,
- 7.0452690124511719e-05}, /* L1629 */
-{1.7258934974670410e+00, 6.3784420490264893e-05,
- 1.1920928955078125e-07, -2.5808811187744141e-05,
- -2.8431415557861328e-05}, /* L1630 */
-{2.1555266380310059e+00, 7.9799443483352661e-05,
- 1.1920928955078125e-07, -5.4597854614257812e-05,
- -4.8995018005371094e-05}, /* L1631 */
-{1.6544167995452881e+00, 6.2882900238037109e-05,
- 1.1920928955078125e-07, -6.6698789596557617e-03,
- 5.8200359344482422e-03}, /* L1632 */
-{2.3437118530273438e+00, 8.7037682533264160e-05,
- 1.1920928955078125e-07, -7.3909759521484375e-06,
- 3.3378601074218750e-06}, /* L1633 */
-{1.5294830799102783e+00, 5.6892633438110352e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- 3.5643577575683594e-05}, /* L1634 */
-{1.7582176923751831e+00, 6.5505504608154297e-05,
- 1.1920928955078125e-07, -1.3053417205810547e-05,
- 4.1007995605468750e-05}, /* L1635 */
-{1.7990097999572754e+00, 6.7129731178283691e-05,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- -7.0333480834960938e-06}, /* L1636 */
-{2.2227990627288818e+00, 8.3133578300476074e-05,
- 1.1920928955078125e-07, -5.3405761718750000e-05,
- 1.1205673217773438e-05}, /* L1637 */
-{1.7688533067703247e+00, 6.6220760345458984e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -4.5478343963623047e-05}, /* L1638 */
-{1.8815815448760986e+00, 7.0706009864807129e-05,
- 1.1920928955078125e-07, -1.2922286987304688e-04,
- -4.6312808990478516e-05}, /* L1639 */
-{1.6056692600250244e+00, 6.0424208641052246e-05,
- 1.1920928955078125e-07, -5.6302547454833984e-04,
- -3.9988756179809570e-04}, /* L1640 */
-{2.4445848464965820e+00, 9.1969966888427734e-05,
- 1.1920928955078125e-07, -1.5676021575927734e-04,
- -3.7372112274169922e-05}, /* L1641 */
-{1.3839454650878906e+00, 5.2139163017272949e-05,
- 1.1920928955078125e-07, -6.7174434661865234e-05,
- 5.0067901611328125e-06}, /* L1642 */
-{2.0602412223815918e+00, 7.7739357948303223e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- 8.4638595581054688e-06}, /* L1643 */
-{1.8682886362075806e+00, 7.0616602897644043e-05,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- 2.0384788513183594e-05}, /* L1644 */
-{3.0392105579376221e+00, 1.1503696441650391e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 3.0517578125000000e-05}, /* L1645 */
-{1.5671128034591675e+00, 5.9410929679870605e-05,
- 1.1920928955078125e-07, -2.5212764739990234e-05,
- -8.1658363342285156e-06}, /* L1646 */
-{2.5605208873748779e+00, 9.7230076789855957e-05,
- 1.1920928955078125e-07, -4.9471855163574219e-06,
- -4.5120716094970703e-05}, /* L1647 */
-{1.5962239503860474e+00, 6.0707330703735352e-05,
- 1.1920928955078125e-07, -7.3969364166259766e-05,
- -5.0246715545654297e-05}, /* L1648 */
-{2.5346782207489014e+00, 9.6559524536132812e-05,
- 1.1920928955078125e-07, -1.8376111984252930e-04,
- 5.5193901062011719e-05}, /* L1649 */
-{1.4176317453384399e+00, 5.4091215133666992e-05,
- 1.1920928955078125e-07, -6.7174434661865234e-05,
- -1.0311603546142578e-05}, /* L1650 */
-{2.1029851436614990e+00, 8.0352649092674255e-05,
- 1.1920928955078125e-07, -4.8875808715820312e-06,
- 2.2292137145996094e-05}, /* L1651 */
-{1.9991426467895508e+00, 7.6502561569213867e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 1.5497207641601562e-06}, /* L1652 */
-{1.7428052425384521e+00, 6.6801905632019043e-05,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 6.0439109802246094e-05}, /* L1653 */
-{1.7064628601074219e+00, 6.5505504608154297e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-07,
- 2.2649765014648438e-06}, /* L1654 */
-{2.1256141662597656e+00, 8.1729143857955933e-05,
- 1.1920928955078125e-07, -3.9041042327880859e-05,
- 2.1934509277343750e-05}, /* L1655 */
-{1.6816952228546143e+00, 6.4760446548461914e-05,
- 1.1920928955078125e-07, -2.7298927307128906e-05,
- -1.9848346710205078e-05}, /* L1656 */
-{2.0869371891021729e+00, 8.0496072769165039e-05,
- 1.1920928955078125e-07, -4.7445297241210938e-05,
- 5.9485435485839844e-05}, /* L1657 */
-{1.5306817293167114e+00, 5.9127807617187500e-05,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- -7.3015689849853516e-05}, /* L1658 */
-{2.3187510967254639e+00, 8.9704990386962891e-05,
- 1.1920928955078125e-07, -6.8902969360351562e-05,
- -4.3213367462158203e-05}, /* L1659 */
-{1.7622005939483643e+00, 6.8277120590209961e-05,
- 1.1920928955078125e-07, 3.1948089599609375e-05,
- 9.7751617431640625e-06}, /* L1660 */
-{1.9776018857955933e+00, 7.6770782470703125e-05,
- 1.1920928955078125e-07, -8.1002712249755859e-05,
- 2.0635128021240234e-04}, /* L1661 */
-{1.4050763845443726e+00, 5.4612755775451660e-05,
- 1.1920928955078125e-07, -7.3790550231933594e-05,
- -2.4676322937011719e-05}, /* L1662 */
-{2.3198952674865723e+00, 9.0301036834716797e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 2.6226043701171875e-06}, /* L1663 */
-{1.1947917938232422e+00, 4.6581029891967773e-05,
- 1.1920928955078125e-07, -3.3915042877197266e-05,
- -3.9041042327880859e-05}, /* L1664 */
-{2.1869087219238281e+00, 8.5383653640747070e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- 5.0067901611328125e-06}, /* L1665 */
-{1.8649330139160156e+00, 7.2926282882690430e-05,
- 1.1920928955078125e-07, 2.6702880859375000e-05,
- 1.0132789611816406e-05}, /* L1666 */
-{2.2221548557281494e+00, 8.7022781372070312e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- -1.6689300537109375e-06}, /* L1667 */
-{1.5864865779876709e+00, 6.2227249145507812e-05,
- 1.1920928955078125e-07, -2.9146671295166016e-05,
- -1.2278556823730469e-05}, /* L1668 */
-{2.3221783638000488e+00, 9.1221183538436890e-05,
- 1.1920928955078125e-07, -2.0861625671386719e-05,
- -2.8610229492187500e-06}, /* L1669 */
-{1.7372859716415405e+00, 6.8373978137969971e-05,
- 1.1920928955078125e-07, -2.1171569824218750e-04,
- 1.2695789337158203e-04}, /* L1670 */
-{2.5208034515380859e+00, 9.9360942840576172e-05,
- 1.1920928955078125e-07, -2.5212764739990234e-05,
- 1.1920928955078125e-06}, /* L1671 */
-{1.6139509677886963e+00, 6.3687562942504883e-05,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- 1.8477439880371094e-05}, /* L1672 */
-{2.0792121887207031e+00, 8.2179903984069824e-05,
- 1.1920928955078125e-07, -5.9783458709716797e-05,
- -3.7074089050292969e-05}, /* L1673 */
-{1.6847186088562012e+00, 6.6684558987617493e-05,
- 1.1920928955078125e-07, -2.7477741241455078e-05,
- -4.2378902435302734e-05}, /* L1674 */
-{1.8724658489227295e+00, 7.4222683906555176e-05,
- 1.1920928955078125e-07, -1.9252300262451172e-05,
- -4.8875808715820312e-06}, /* L1675 */
-{1.4882587194442749e+00, 5.9083104133605957e-05,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- -1.9371509552001953e-05}, /* L1676 */
-{2.2740080356597900e+00, 9.0420246124267578e-05,
- 1.1920928955078125e-07, -8.6903572082519531e-05,
- -4.6372413635253906e-05}, /* L1677 */
-{1.8998298645019531e+00, 7.5817108154296875e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -6.2245130538940430e-04}, /* L1678 */
-{2.1470892429351807e+00, 8.5622072219848633e-05,
- 1.1920928955078125e-07, -3.1411647796630859e-05,
- 1.0609626770019531e-05}, /* L1679 */
-{2.1589746475219727e+00, 8.6233019828796387e-05,
- 1.1920928955078125e-07, -1.7940998077392578e-05,
- -7.7486038208007812e-05}, /* L1680 */
-{2.6408479213714600e+00, 1.0585784912109375e-04,
- 1.1920928955078125e-07, -1.2010335922241211e-04,
- 5.7911872863769531e-04}, /* L1681 */
-{2.2424156665802002e+00, 8.9854001998901367e-05,
- 1.1920928955078125e-07, -1.0979175567626953e-04,
- -8.6069107055664062e-05}, /* L1682 */
-{2.6493763923645020e+00, 1.0631978511810303e-04,
- 1.1920928955078125e-07, 2.0098686218261719e-04,
- -6.5386295318603516e-05}, /* L1683 */
-{1.9800323247909546e+00, 7.9557299613952637e-05,
- 1.1920928955078125e-07, 8.5592269897460938e-05,
- -1.5676021575927734e-05}, /* L1684 */
-{2.6626889705657959e+00, 1.0713934898376465e-04,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- 2.2411346435546875e-05}, /* L1685 */
-{1.7357704639434814e+00, 6.9946050643920898e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-05,
- -2.8610229492187500e-06}, /* L1686 */
-{1.8876268863677979e+00, 7.6174736022949219e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -2.4318695068359375e-05}, /* L1687 */
-{1.7651349306106567e+00, 7.1346759796142578e-05,
- 1.1920928955078125e-07, -2.9444694519042969e-05,
- 6.4253807067871094e-05}, /* L1688 */
-{2.3339831829071045e+00, 9.4525516033172607e-05,
- 1.1920928955078125e-07, -1.0180473327636719e-04,
- -2.0563602447509766e-04}, /* L1689 */
-{2.0596404075622559e+00, 8.3655118942260742e-05,
- 1.1920928955078125e-07, 2.8145313262939453e-04,
- 1.8250942230224609e-04}, /* L1690 */
-{2.4040806293487549e+00, 9.7632408142089844e-05,
- 1.1920928955078125e-07, -3.1763315200805664e-04,
- 1.4066696166992188e-05}, /* L1691 */
-{1.6582144498825073e+00, 6.7412853240966797e-05,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- 3.6954879760742188e-05}, /* L1692 */
-{2.1082248687744141e+00, 8.5830688476562500e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- -6.7353248596191406e-06}, /* L1693 */
-{1.4668284654617310e+00, 5.9828162193298340e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- -1.4495849609375000e-04}, /* L1694 */
-{2.2771246433258057e+00, 9.2990696430206299e-05,
- 1.1920928955078125e-07, -7.5519084930419922e-05,
- 4.1842460632324219e-05}, /* L1695 */
-{2.1812453269958496e+00, 8.9198350906372070e-05,
- 1.1920928955078125e-07, -1.7046928405761719e-05,
- 3.8623809814453125e-05}, /* L1696 */
-{1.8539848327636719e+00, 7.5936317443847656e-05,
- 1.1920928955078125e-07, -9.1195106506347656e-05,
- 5.6028366088867188e-06}, /* L1697 */
-{1.6613483428955078e+00, 6.8135559558868408e-05,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- -2.0563602447509766e-05}, /* L1698 */
-{2.2887988090515137e+00, 9.4026327133178711e-05,
- 1.1920928955078125e-07, 1.0752677917480469e-04,
- 2.4557113647460938e-05}, /* L1699 */
-{2.0444700717926025e+00, 8.4146857261657715e-05,
- 1.1920928955078125e-07, -4.5561790466308594e-04,
- -1.3476610183715820e-04}, /* L1700 */
-{3.1926982402801514e+00, 1.3151764869689941e-04,
- 1.1920928955078125e-07, -1.0341405868530273e-04,
- -4.1961669921875000e-05}, /* L1701 */
-{1.7540787458419800e+00, 7.2360038757324219e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-05,
- -3.6776065826416016e-05}, /* L1702 */
-{1.9683402776718140e+00, 8.1311911344528198e-05,
- 1.1920928955078125e-07, -2.1815299987792969e-05,
- -1.0132789611816406e-05}, /* L1703 */
-{1.5366808176040649e+00, 6.3728541135787964e-05,
- 1.1920928955078125e-07, 1.4095306396484375e-03,
- 8.8453292846679688e-04}, /* L1704 */
-{2.3481090068817139e+00, 9.7325071692466736e-05,
- 1.1920928955078125e-07, -1.1062622070312500e-04,
- 2.0515918731689453e-04}, /* L1705 */
-{1.2620661258697510e+00, 5.2362680435180664e-05,
- 1.1920928955078125e-07, 1.1765956878662109e-04,
- -1.0788440704345703e-05}, /* L1706 */
-{1.8564250469207764e+00, 7.7128410339355469e-05,
- 1.1920928955078125e-07, -2.3066997528076172e-05,
- -1.0609626770019531e-05}, /* L1707 */
-{1.9809130430221558e+00, 8.2433223724365234e-05,
- 1.1920928955078125e-07, 1.2719631195068359e-04,
- 1.4805793762207031e-04}, /* L1708 */
-{2.1545314788818359e+00, 8.9779496192932129e-05,
- 1.1920928955078125e-07, 6.8545341491699219e-05,
- -1.4424324035644531e-05}, /* L1709 */
-{1.9002609252929688e+00, 7.9289078712463379e-05,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- -2.0861625671386719e-05}, /* L1710 */
-{2.1194939613342285e+00, 8.8572502136230469e-05,
- 1.1920928955078125e-07, -6.1452388763427734e-05,
- 1.3589859008789062e-05}, /* L1711 */
-{1.7199875116348267e+00, 7.1972608566284180e-05,
- 1.1920928955078125e-07, -9.8943710327148438e-06,
- -4.2438507080078125e-05}, /* L1712 */
-{2.3216865062713623e+00, 9.7289681434631348e-05,
- 1.1920928955078125e-07, -1.4841556549072266e-05,
- -8.7618827819824219e-06}, /* L1713 */
-{1.7669166326522827e+00, 7.4148178100585938e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- -2.2649765014648438e-05}, /* L1714 */
-{1.6694194078445435e+00, 7.0154666900634766e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-05,
- 0.0000000000000000e+00}, /* L1715 */
-{1.6188361644744873e+00, 6.8128108978271484e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- 1.1444091796875000e-05}, /* L1716 */
-{2.3602023124694824e+00, 9.9480152130126953e-05,
- 1.1920928955078125e-07, -4.8875808715820312e-06,
- -1.1706352233886719e-04}, /* L1717 */
-{1.4274255037307739e+00, 6.0252845287322998e-05,
- 1.1920928955078125e-07, 1.2528896331787109e-04,
- -1.0192394256591797e-05}, /* L1718 */
-{2.2988367080688477e+00, 9.7155570983886719e-05,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- 2.9206275939941406e-05}, /* L1719 */
-{1.5461632013320923e+00, 6.5445899963378906e-05,
- 1.1920928955078125e-07, 3.9935111999511719e-05,
- 6.6280364990234375e-05}, /* L1720 */
-{1.9090785980224609e+00, 8.0959871411323547e-05,
- 1.1920928955078125e-07, 1.1324882507324219e-04,
- -3.7992000579833984e-04}, /* L1721 */
-{1.5375938415527344e+00, 6.5263360738754272e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -9.2983245849609375e-06}, /* L1722 */
-{2.0910115242004395e+00, 8.8870525360107422e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- 6.5207481384277344e-05}, /* L1723 */
-{1.7595071792602539e+00, 7.4893236160278320e-05,
- 1.1920928955078125e-07, -1.2814998626708984e-05,
- 7.4505805969238281e-05}, /* L1724 */
-{2.1591715812683105e+00, 9.2029571533203125e-05,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- -1.8179416656494141e-05}, /* L1725 */
-{1.6088076829910278e+00, 6.8664550781250000e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -3.0219554901123047e-05}, /* L1726 */
-{2.5671923160552979e+00, 1.0973215103149414e-04,
- 1.1920928955078125e-07, 5.8293342590332031e-05,
- -6.3776969909667969e-06}, /* L1727 */
-{1.9288637638092041e+00, 8.2552433013916016e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -1.1801719665527344e-05}, /* L1728 */
-{3.1062536239624023e+00, 1.3312697410583496e-04,
- 1.1920928955078125e-07, 1.2636184692382812e-05,
- 9.5367431640625000e-06}, /* L1729 */
-{1.7863671779632568e+00, 7.6666474342346191e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -1.2338161468505859e-05}, /* L1730 */
-{2.3592751026153564e+00, 1.0144710540771484e-04,
- 1.1920928955078125e-07, 1.3911724090576172e-04,
- 1.4853477478027344e-04}, /* L1731 */
-{2.2422988414764404e+00, 9.6499919891357422e-05,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- 1.0132789611816406e-05}, /* L1732 */
-{2.1561350822448730e+00, 9.2923641204833984e-05,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- -9.0003013610839844e-06}, /* L1733 */
-{1.4140819311141968e+00, 6.1035156250000000e-05,
- 1.1920928955078125e-07, -9.4473361968994141e-05,
- 3.5405158996582031e-05}, /* L1734 */
-{2.0418946743011475e+00, 8.8244676589965820e-05,
- 1.1920928955078125e-07, 2.3722648620605469e-05,
- 1.0251998901367188e-05}, /* L1735 */
-{1.7496078014373779e+00, 7.5727701187133789e-05,
- 1.1920928955078125e-07, -4.5716762542724609e-05,
- 8.7022781372070312e-06}, /* L1736 */
-{2.6250491142272949e+00, 1.1377036571502686e-04,
- 1.1920928955078125e-07, -2.0861625671386719e-05,
- 5.3882598876953125e-05}, /* L1737 */
-{1.9813417196273804e+00, 8.5987150669097900e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- 4.3392181396484375e-05}, /* L1738 */
-{1.9966820478439331e+00, 8.6769461631774902e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -1.8954277038574219e-05}, /* L1739 */
-{2.2731249332427979e+00, 9.8913908004760742e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -3.2544136047363281e-05}, /* L1740 */
-{2.2289917469024658e+00, 9.7140669822692871e-05,
- 1.1920928955078125e-07, 1.3172626495361328e-04,
- -9.3936920166015625e-05}, /* L1741 */
-{1.7321634292602539e+00, 7.5578689575195312e-05,
- 1.1920928955078125e-07, -1.1980533599853516e-05,
- 6.4373016357421875e-06}, /* L1742 */
-{2.0246231555938721e+00, 8.8483095169067383e-05,
- 1.1920928955078125e-07, -4.3988227844238281e-05,
- 1.7797946929931641e-04}, /* L1743 */
-{1.6644182205200195e+00, 7.2836875915527344e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- -1.5354156494140625e-04}, /* L1744 */
-{2.4302031993865967e+00, 1.0648369789123535e-04,
- 1.1920928955078125e-07, -3.1471252441406250e-05,
- -3.3199787139892578e-05}, /* L1745 */
-{1.4454622268676758e+00, 6.3419342041015625e-05,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 1.2040138244628906e-05}, /* L1746 */
-{2.6828982830047607e+00, 1.1789239943027496e-04,
- 1.1920928955078125e-07, -8.8095664978027344e-05,
- -4.1723251342773438e-06}, /* L1747 */
-{2.0662176609039307e+00, 9.0897083282470703e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- 2.8967857360839844e-05}, /* L1748 */
-{2.2055304050445557e+00, 9.7155570983886719e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 1.0013580322265625e-05}, /* L1749 */
-{1.7370011806488037e+00, 7.6621770858764648e-05,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- 1.3113021850585938e-06}, /* L1750 */
-{2.3647711277008057e+00, 1.0445713996887207e-04,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -2.0325183868408203e-05}, /* L1751 */
-{1.8752216100692749e+00, 8.2969665527343750e-05,
- 1.1920928955078125e-07, -2.1624565124511719e-04,
- -2.8014183044433594e-05}, /* L1752 */
-{2.6947195529937744e+00, 1.1956691741943359e-04,
- 1.1920928955078125e-07, -1.6885995864868164e-04,
- 6.8485736846923828e-04}, /* L1753 */
-{1.5535091161727905e+00, 6.8902969360351562e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 6.6161155700683594e-05}, /* L1754 */
-{2.1915209293365479e+00, 9.7334384918212891e-05,
- 1.1920928955078125e-07, -4.5061111450195312e-05,
- -5.9604644775390625e-06}, /* L1755 */
-{1.7833107709884644e+00, 7.9303979873657227e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- 2.4080276489257812e-05}, /* L1756 */
-{2.2707669734954834e+00, 1.0111927986145020e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 2.6941299438476562e-05}, /* L1757 */
-{1.7618168592453003e+00, 7.8558921813964844e-05,
- 1.1920928955078125e-07, -1.5437602996826172e-05,
- 4.1484832763671875e-05}, /* L1758 */
-{2.4681625366210938e+00, 1.1019408702850342e-04,
- 1.1920928955078125e-07, 3.4093856811523438e-05,
- 2.2172927856445312e-05}, /* L1759 */
-{2.0890531539916992e+00, 9.3489885330200195e-05,
- 1.1920928955078125e-07, 5.6982040405273438e-05,
- 2.6929378509521484e-04}, /* L1760 */
-{2.3426351547241211e+00, 1.0506063699722290e-04,
- 1.1920928955078125e-07, 1.4781951904296875e-04,
- -7.5107812881469727e-04}, /* L1761 */
-{2.2498238086700439e+00, 1.0085105895996094e-04,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- -2.9623508453369141e-05}, /* L1762 */
-{2.3314814567565918e+00, 1.0466575622558594e-04,
- 1.1920928955078125e-07, -6.3478946685791016e-05,
- 1.8239021301269531e-05}, /* L1763 */
-{1.9313265085220337e+00, 8.6814165115356445e-05,
- 1.1920928955078125e-07, -7.4088573455810547e-05,
- -1.2397766113281250e-05}, /* L1764 */
-{2.4335935115814209e+00, 1.0952353477478027e-04,
- 1.1920928955078125e-07, -3.3378601074218750e-06,
- 2.9683113098144531e-05}, /* L1765 */
-{1.9520809650421143e+00, 8.8006258010864258e-05,
- 1.1920928955078125e-07, 2.1100044250488281e-05,
- -2.3126602172851562e-04}, /* L1766 */
-{2.6704120635986328e+00, 1.2052059173583984e-04,
- 1.1920928955078125e-07, 1.0371208190917969e-05,
- -2.0444393157958984e-05}, /* L1767 */
-{2.2689750194549561e+00, 1.0254979133605957e-04,
- 1.1920928955078125e-07, 6.0796737670898438e-05,
- 6.0081481933593750e-05}, /* L1768 */
-{2.1498427391052246e+00, 9.7543001174926758e-05,
- 1.1920928955078125e-07, 1.1360645294189453e-04,
- -7.7557563781738281e-04}, /* L1769 */
-{1.6386512517929077e+00, 7.4237585067749023e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- -1.9431114196777344e-05}, /* L1770 */
-{2.2027707099914551e+00, 1.0001659393310547e-04,
- 1.1920928955078125e-07, 7.8558921813964844e-05,
- -1.3780593872070312e-04}, /* L1771 */
-{1.6518601179122925e+00, 7.5042247772216797e-05,
- 1.1920928955078125e-07, -9.8109245300292969e-05,
- -4.5895576477050781e-06}, /* L1772 */
-{2.7681057453155518e+00, 1.2591481208801270e-04,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- -1.4662742614746094e-05}, /* L1773 */
-{1.5092557668685913e+00, 6.8739056587219238e-05,
- 1.1920928955078125e-07, -2.4676322937011719e-05,
- 9.1314315795898438e-05}, /* L1774 */
-{2.9111638069152832e+00, 1.3326480984687805e-04,
- 1.1920928955078125e-07, 1.3482570648193359e-04,
- -4.5239925384521484e-04}, /* L1775 */
-{1.8229529857635498e+00, 8.3237886428833008e-05,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- -1.5854835510253906e-05}, /* L1776 */
-{2.8705987930297852e+00, 1.3126060366630554e-04,
- 1.1920928955078125e-07, -5.2928924560546875e-05,
- -4.9710273742675781e-05}, /* L1777 */
-{1.7384099960327148e+00, 7.9587101936340332e-05,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- -3.5226345062255859e-05}, /* L1778 */
-{3.0848710536956787e+00, 1.4144182205200195e-04,
- 1.1920928955078125e-07, -1.3554096221923828e-04,
- 2.1183490753173828e-04}, /* L1779 */
-{1.8776628971099854e+00, 8.6203217506408691e-05,
- 1.1920928955078125e-07, 5.5551528930664062e-05,
- 1.5830993652343750e-04}, /* L1780 */
-{2.5466752052307129e+00, 1.1704862117767334e-04,
- 1.1920928955078125e-07, 1.2755393981933594e-05,
- -6.7055225372314453e-05}, /* L1781 */
-{1.6701420545578003e+00, 7.6856464147567749e-05,
- 1.1920928955078125e-07, 1.9192695617675781e-05,
- 9.5367431640625000e-06}, /* L1782 */
-{1.9069079160690308e+00, 8.7916851043701172e-05,
- 1.1920928955078125e-07, 1.9538402557373047e-04,
- -2.2816658020019531e-04}, /* L1783 */
-{1.6976265907287598e+00, 7.8350305557250977e-05,
- 1.1920928955078125e-07, 2.2172927856445312e-05,
- -6.0200691223144531e-06}, /* L1784 */
-{2.4320957660675049e+00, 1.1235475540161133e-04,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- 1.2159347534179688e-05}, /* L1785 */
-{1.7184666395187378e+00, 7.9512596130371094e-05,
- 1.1920928955078125e-07, 1.5294551849365234e-04,
- 1.7213821411132812e-04}, /* L1786 */
-{2.2211933135986328e+00, 1.0287761688232422e-04,
- 1.1920928955078125e-07, -6.5565109252929688e-07,
- -3.8146972656250000e-06}, /* L1787 */
-{1.9474271535873413e+00, 9.0315937995910645e-05,
- 1.1920928955078125e-07, -3.8444995880126953e-05,
- 1.5377998352050781e-05}, /* L1788 */
-{3.1050331592559814e+00, 1.4419946819543839e-04,
- 1.1920928955078125e-07, 5.5551528930664062e-05,
- -4.5359134674072266e-05}, /* L1789 */
-{1.9431529045104980e+00, 9.0345740318298340e-05,
- 1.1920928955078125e-07, 1.4901161193847656e-05,
- 1.0132789611816406e-05}, /* L1790 */
-{2.2056438922882080e+00, 1.0269880294799805e-04,
- 1.1920928955078125e-07, 6.1392784118652344e-05,
- -7.2658061981201172e-05}, /* L1791 */
-{2.1218938827514648e+00, 9.8913908004760742e-05,
- 1.1920928955078125e-07, -1.6689300537109375e-05,
- 4.7922134399414062e-05}, /* L1792 */
-{2.9662759304046631e+00, 1.3846158981323242e-04,
- 1.1920928955078125e-07, 8.4280967712402344e-05,
- -1.3887882232666016e-05}, /* L1793 */
-{1.7498950958251953e+00, 8.1777572631835938e-05,
- 1.1920928955078125e-07, -1.4185905456542969e-05,
- -1.8239021301269531e-05}, /* L1794 */
-{2.3507330417633057e+00, 1.1000037193298340e-04,
- 1.1920928955078125e-07, -1.4960765838623047e-05,
- 3.3140182495117188e-05}, /* L1795 */
-{1.7486015558242798e+00, 8.1926584243774414e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- -4.5299530029296875e-06}, /* L1796 */
-{2.3049988746643066e+00, 1.0815262794494629e-04,
- 1.1920928955078125e-07, -2.1219253540039062e-05,
- 7.3909759521484375e-06}, /* L1797 */
-{1.8053104877471924e+00, 8.4817409515380859e-05,
- 1.1920928955078125e-07, 8.4877014160156250e-05,
- -1.0639429092407227e-04}, /* L1798 */
-{2.3539047241210938e+00, 1.1071562767028809e-04,
- 1.1920928955078125e-07, -3.9219856262207031e-05,
- 3.0875205993652344e-05}, /* L1799 */
-{1.6418801546096802e+00, 7.7322125434875488e-05,
- 1.1920928955078125e-07, 6.4134597778320312e-05,
- -1.6093254089355469e-05}, /* L1800 */
-{2.2988612651824951e+00, 1.0839104652404785e-04,
- 1.1920928955078125e-07, 1.3232231140136719e-05,
- 3.5881996154785156e-05}, /* L1801 */
-{2.3134348392486572e+00, 1.0941177606582642e-04,
- 1.1920928955078125e-07, -4.9430131912231445e-04,
- 2.1958351135253906e-04}, /* L1802 */
-{2.1120645999908447e+00, 9.9837779998779297e-05,
- 1.1920928955078125e-07, 1.3470649719238281e-05,
- -9.8943710327148438e-06}, /* L1803 */
-{2.1017658710479736e+00, 9.9480777862481773e-05,
- 1.1920928955078125e-07, 1.5616416931152344e-05,
- -1.9729137420654297e-05}, /* L1804 */
-{2.8653111457824707e+00, 1.3579800724983215e-04,
- 1.1920928955078125e-07, 9.3102455139160156e-05,
- -7.1227550506591797e-05}, /* L1805 */
-{1.8221752643585205e+00, 8.6486339569091797e-05,
- 1.1920928955078125e-07, -3.4570693969726562e-05,
- 5.8770179748535156e-05}, /* L1806 */
-{2.8210661411285400e+00, 1.3402104377746582e-04,
- 1.1920928955078125e-07, -6.4969062805175781e-06,
- 1.4424324035644531e-05}, /* L1807 */
-{2.3456311225891113e+00, 1.1157989501953125e-04,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -2.2053718566894531e-06}, /* L1808 */
-{2.7881257534027100e+00, 1.3284385204315186e-04,
- 1.1920928955078125e-07, -2.9605627059936523e-04,
- -5.5432319641113281e-05}, /* L1809 */
-{1.8128116130828857e+00, 8.6463987827301025e-05,
- 1.1920928955078125e-07, 1.3208389282226562e-04,
- -6.4373016357421875e-05}, /* L1810 */
-{2.1947944164276123e+00, 1.0484457015991211e-04,
- 1.1920928955078125e-07, -1.1676549911499023e-04,
- 9.1195106506347656e-05}, /* L1811 */
-{2.0533421039581299e+00, 9.8168849945068359e-05,
- 1.1920928955078125e-07, 8.7022781372070312e-06,
- -5.0902366638183594e-05}, /* L1812 */
-{1.9979074001312256e+00, 9.5635652542114258e-05,
- 1.1920928955078125e-07, -1.0967254638671875e-05,
- -5.1677227020263672e-05}, /* L1813 */
-{2.0360455513000488e+00, 9.7587704658508301e-05,
- 1.1920928955078125e-07, 3.5285949707031250e-05,
- 2.7179718017578125e-05}, /* L1814 */
-{1.9578819274902344e+00, 9.3963928520679474e-05,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- 6.6757202148437500e-06}, /* L1815 */
-{2.2573385238647461e+00, 1.0845065116882324e-04,
- 1.1920928955078125e-07, 2.4795532226562500e-05,
- 2.0265579223632812e-06}, /* L1816 */
-{2.5022745132446289e+00, 1.2037158012390137e-04,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- -1.5020370483398438e-05}, /* L1817 */
-{1.6966168880462646e+00, 8.1717967987060547e-05,
- 1.1920928955078125e-07, -2.5331974029541016e-05,
- 4.3392181396484375e-05}, /* L1818 */
-{2.3328707218170166e+00, 1.1250376701354980e-04,
- 1.1920928955078125e-07, -5.4657459259033203e-05,
- -4.7385692596435547e-05}, /* L1819 */
-{3.4232356548309326e+00, 1.6528367996215820e-04,
- 1.1920928955078125e-07, -1.7762184143066406e-05,
- 2.3722648620605469e-05}, /* L1820 */
-{2.4594986438751221e+00, 1.1903047561645508e-04,
- 1.1920928955078125e-07, -1.2093782424926758e-04,
- -1.2809038162231445e-04}, /* L1821 */
-{2.0857689380645752e+00, 1.0097026824951172e-04,
- 1.1920928955078125e-07, -4.5776367187500000e-05,
- 1.1920928955078125e-05}, /* L1822 */
-{2.0649635791778564e+00, 1.0007619857788086e-04,
- 1.1920928955078125e-07, -1.0907649993896484e-05,
- -1.5556812286376953e-05}, /* L1823 */
-{2.1299760341644287e+00, 1.0335445404052734e-04,
- 1.1920928955078125e-07, 1.0204315185546875e-04,
- -1.8000602722167969e-05}, /* L1824 */
-{2.5681340694427490e+00, 1.2478232383728027e-04,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- 1.1384487152099609e-04}, /* L1825 */
-{1.8315933942794800e+00, 8.9108943939208984e-05,
- 1.1920928955078125e-07, 1.4650821685791016e-04,
- -9.8943710327148438e-05}, /* L1826 */
-{2.3002212047576904e+00, 1.1202692985534668e-04,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- 2.1934509277343750e-05}, /* L1827 */
-{2.1280312538146973e+00, 1.0377913713455200e-04,
- 1.1920928955078125e-07, 9.8943710327148438e-05,
- 1.8239021301269531e-05}, /* L1828 */
-{2.4616782665252686e+00, 1.2018531560897827e-04,
- 1.1920928955078125e-07, -3.8444995880126953e-05,
- 1.0848045349121094e-05}, /* L1829 */
-{2.0719974040985107e+00, 1.0128319263458252e-04,
- 1.1920928955078125e-07, 7.9035758972167969e-05,
- 8.3446502685546875e-07}, /* L1830 */
-{2.0984549522399902e+00, 1.0269880294799805e-04,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- -3.5762786865234375e-06}, /* L1831 */
-{2.0673472881317139e+00, 1.0129809379577637e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -4.0709972381591797e-05}, /* L1832 */
-{2.0363466739654541e+00, 9.9942088127136230e-05,
- 1.1920928955078125e-07, 1.0824203491210938e-04,
- 1.8596649169921875e-04}, /* L1833 */
-{2.1924707889556885e+00, 1.0769069194793701e-04,
- 1.1920928955078125e-07, -1.4305114746093750e-05,
- 2.8133392333984375e-05}, /* L1834 */
-{2.5006375312805176e+00, 1.2305378913879395e-04,
- 1.1920928955078125e-07, 4.5537948608398438e-05,
- 3.9339065551757812e-05}, /* L1835 */
-{1.8640559911727905e+00, 9.1791152954101562e-05,
- 1.1920928955078125e-07, -1.6212463378906250e-05,
- -9.2744827270507812e-05}, /* L1836 */
-{2.5396268367767334e+00, 1.2522935867309570e-04,
- 1.1920928955078125e-07, 4.4941902160644531e-05,
- 1.0871887207031250e-04}, /* L1837 */
-{1.9220930337905884e+00, 9.5002353191375732e-05,
- 1.1920928955078125e-07, -2.2161006927490234e-04,
- -1.8966197967529297e-04}, /* L1838 */
-{2.1667468547821045e+00, 1.0711699724197388e-04,
- 1.1920928955078125e-07, -2.0056962966918945e-04,
- 2.6929378509521484e-04}, /* L1839 */
-{2.7691848278045654e+00, 1.3703107833862305e-04,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -6.0796737670898438e-06}, /* L1840 */
-{2.3119692802429199e+00, 1.1458992958068848e-04,
- 1.1920928955078125e-07, -2.3329257965087891e-04,
- -1.9490718841552734e-04}, /* L1841 */
-{1.4835515022277832e+00, 7.3593109846115112e-05,
- 1.1920928955078125e-07, 6.4849853515625000e-05,
- 1.3387203216552734e-04}, /* L1842 */
-{2.1553435325622559e+00, 1.0703504085540771e-04,
- 1.1920928955078125e-07, 8.3804130554199219e-05,
- -2.7060508728027344e-05}, /* L1843 */
-{2.2853090763092041e+00, 1.1369585990905762e-04,
- 1.1920928955078125e-07, -1.7964839935302734e-04,
- 4.3475627899169922e-04}, /* L1844 */
-{2.8922224044799805e+00, 1.4400482177734375e-04,
- 1.1920928955078125e-07, -2.4354457855224609e-04,
- 1.1134147644042969e-04}, /* L1845 */
-{1.6120048761367798e+00, 8.0332159996032715e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -5.7220458984375000e-06}, /* L1846 */
-{1.8666315078735352e+00, 9.3132257461547852e-05,
- 1.1920928955078125e-07, 2.8371810913085938e-05,
- -8.2254409790039062e-06}, /* L1847 */
-{2.4853396415710449e+00, 1.2415647506713867e-04,
- 1.1920928955078125e-07, 2.3007392883300781e-05,
- -2.0742416381835938e-05}, /* L1848 */
-{2.4352109432220459e+00, 1.2187659740447998e-04,
- 1.1920928955078125e-07, -7.4505805969238281e-05,
- 1.6856193542480469e-04}, /* L1849 */
-{1.7282103300094604e+00, 8.6545944213867188e-05,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- 2.8014183044433594e-05}, /* L1850 */
-{2.6603484153747559e+00, 1.3339519500732422e-04,
- 1.1920928955078125e-07, -1.8048286437988281e-04,
- 1.0716915130615234e-04}, /* L1851 */
-{1.6997557878494263e+00, 8.5324048995971680e-05,
- 1.1920928955078125e-07, 4.4584274291992188e-05,
- 1.6570091247558594e-05}, /* L1852 */
-{2.8429338932037354e+00, 1.4299154281616211e-04,
- 1.1920928955078125e-07, 4.3642520904541016e-04,
- -5.4985284805297852e-04}, /* L1853 */
-{1.6515436172485352e+00, 8.3103775978088379e-05,
- 1.1920928955078125e-07, 8.7261199951171875e-05,
- -8.0823898315429688e-05}, /* L1854 */
-{2.4816195964813232e+00, 1.2502074241638184e-04,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -1.3703107833862305e-04}, /* L1855 */
-{1.7384079694747925e+00, 8.7663531303405762e-05,
- 1.1920928955078125e-07, -1.7166137695312500e-05,
- -2.5212764739990234e-05}, /* L1856 */
-{2.6873564720153809e+00, 1.3568997383117676e-04,
- 1.1920928955078125e-07, 1.3232231140136719e-05,
- -8.1658363342285156e-06}, /* L1857 */
-{1.4985584020614624e+00, 7.5755640864372253e-05,
- 1.1920928955078125e-07, 6.7830085754394531e-05,
- 2.9563903808593750e-05}, /* L1858 */
-{2.7007632255554199e+00, 1.3668090105056763e-04,
- 1.1920928955078125e-07, -2.7596950531005859e-05,
- -2.2888183593750000e-05}, /* L1859 */
-{1.8015152215957642e+00, 9.1284513473510742e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- 3.4570693969726562e-06}, /* L1860 */
-{2.7948830127716064e+00, 1.4185905456542969e-04,
- 1.1920928955078125e-07, 3.4213066101074219e-04,
- -1.6695261001586914e-04}, /* L1861 */
-{1.6055277585983276e+00, 8.1539154052734375e-05,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- 7.9870223999023438e-06}, /* L1862 */
-{2.0925402641296387e+00, 1.0641291737556458e-04,
- 1.1920928955078125e-07, -1.0961294174194336e-04,
- 5.2690505981445312e-05}, /* L1863 */
-{1.7606729269027710e+00, 8.9645385742187500e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- 1.4185905456542969e-05}, /* L1864 */
-{2.4618394374847412e+00, 1.2559443712234497e-04,
- 1.1920928955078125e-07, -8.3386898040771484e-05,
- -5.7774782180786133e-04}, /* L1865 */
-{1.4373915195465088e+00, 7.3343515396118164e-05,
- 1.1920928955078125e-07, 8.1062316894531250e-06,
- -1.3828277587890625e-05}, /* L1866 */
-{2.2235951423645020e+00, 1.1359155178070068e-04,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -1.7762184143066406e-05}, /* L1867 */
-{1.8781640529632568e+00, 9.6112489700317383e-05,
- 1.1920928955078125e-07, -1.3083219528198242e-04,
- -3.3730268478393555e-04}, /* L1868 */
-{2.2864773273468018e+00, 1.1712312698364258e-04,
- 1.1920928955078125e-07, 5.9366226196289062e-05,
- -1.1742115020751953e-04}, /* L1869 */
-{2.1287276744842529e+00, 1.0952353477478027e-04,
- 1.1920928955078125e-07, -8.8697671890258789e-04,
- -1.9913911819458008e-04}, /* L1870 */
-{2.4328908920288086e+00, 1.2487173080444336e-04,
- 1.1920928955078125e-07, -2.9146671295166016e-05,
- -1.3232231140136719e-05}, /* L1871 */
-{2.4926898479461670e+00, 1.2809038162231445e-04,
- 1.1920928955078125e-07, -3.0219554901123047e-05,
- -5.2571296691894531e-05}, /* L1872 */
-{2.2158510684967041e+00, 1.1399388313293457e-04,
- 1.1920928955078125e-07, -2.5570392608642578e-05,
- -7.7486038208007812e-06}, /* L1873 */
-{1.9853980541229248e+00, 1.0225176811218262e-04,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- 1.8239021301269531e-05}, /* L1874 */
-{2.8388967514038086e+00, 1.4643371105194092e-04,
- 1.1920928955078125e-07, 2.5629997253417969e-05,
- 7.2717666625976562e-06}, /* L1875 */
-{2.8566086292266846e+00, 1.4749169349670410e-04,
- 1.1920928955078125e-07, 7.2360038757324219e-05,
- -7.2836875915527344e-05}, /* L1876 */
-{2.5184569358825684e+00, 1.3017654418945312e-04,
- 1.1920928955078125e-07, 6.4015388488769531e-05,
- 7.3075294494628906e-05}, /* L1877 */
-{1.9263958930969238e+00, 9.9688768386840820e-05,
- 1.1920928955078125e-07, -4.3511390686035156e-05,
- 4.7206878662109375e-05}, /* L1878 */
-{2.7452421188354492e+00, 1.4221668243408203e-04,
- 1.1920928955078125e-07, -1.4662742614746094e-05,
- -1.7523765563964844e-05}, /* L1879 */
-{2.5641698837280273e+00, 1.3311207294464111e-04,
- 1.1920928955078125e-07, -1.4489889144897461e-04,
- 1.7321109771728516e-04}, /* L1880 */
-{3.2108201980590820e+00, 1.6671419143676758e-04,
- 1.1920928955078125e-07, 6.9499015808105469e-05,
- 5.6385993957519531e-05}, /* L1881 */
-{1.6079204082489014e+00, 8.3580613136291504e-05,
- 1.1920928955078125e-07, 2.1338462829589844e-05,
- -6.5565109252929688e-07}, /* L1882 */
-{2.5309545993804932e+00, 1.3172626495361328e-04,
- 1.1920928955078125e-07, 5.1140785217285156e-05,
- 2.4795532226562500e-05}, /* L1883 */
-{2.4556424617767334e+00, 1.2794137001037598e-04,
- 1.1920928955078125e-07, 3.9935111999511719e-05,
- 4.5180320739746094e-05}, /* L1884 */
-{3.3386497497558594e+00, 1.7437338829040527e-04,
- 1.1920928955078125e-07, 2.8991699218750000e-04,
- 2.4509429931640625e-04}, /* L1885 */
-{1.6634821891784668e+00, 8.6873769760131836e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- 1.2159347534179688e-04}, /* L1886 */
-{2.3434493541717529e+00, 1.2252479791641235e-04,
- 1.1920928955078125e-07, -6.9260597229003906e-05,
- 1.6069412231445312e-04}, /* L1887 */
-{2.0525343418121338e+00, 1.0743364691734314e-04,
- 1.1920928955078125e-07, -4.4703483581542969e-05,
- -8.9704990386962891e-05}, /* L1888 */
-{2.4524402618408203e+00, 1.2850761413574219e-04,
- 1.1920928955078125e-07, 1.2397766113281250e-05,
- -1.2993812561035156e-05}, /* L1889 */
-{1.4443668127059937e+00, 7.5876712799072266e-05,
- 1.1920928955078125e-07, -5.4794549942016602e-04,
- -1.8507242202758789e-04}, /* L1890 */
-{2.2905726432800293e+00, 1.2062489986419678e-04,
- 1.1920928955078125e-07, 3.5476684570312500e-04,
- 6.0319900512695312e-05}, /* L1891 */
-{1.7725929021835327e+00, 9.3251466751098633e-05,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- 1.3601779937744141e-04}, /* L1892 */
-{2.2941467761993408e+00, 1.2078881263732910e-04,
- 1.1920928955078125e-07, -3.1471252441406250e-05,
- 1.6784667968750000e-04}, /* L1893 */
-{1.7702763080596924e+00, 9.3281269073486328e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 7.1525573730468750e-06}, /* L1894 */
-{3.2860200405120850e+00, 1.7338991165161133e-04,
- 1.1920928955078125e-07, 7.8082084655761719e-05,
- 1.5020370483398438e-05}, /* L1895 */
-{2.0420827865600586e+00, 1.0788440704345703e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- 4.7802925109863281e-05}, /* L1896 */
-{3.2731742858886719e+00, 1.7306208610534668e-04,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- 3.5762786865234375e-06}, /* L1897 */
-{1.7687418460845947e+00, 9.3623995780944824e-05,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -2.0384788513183594e-05}, /* L1898 */
-{3.4269099235534668e+00, 1.8161535263061523e-04,
- 1.1920928955078125e-07, -3.2961368560791016e-05,
- 3.2305717468261719e-05}, /* L1899 */
-{1.8056877851486206e+00, 9.5814466476440430e-05,
- 1.1920928955078125e-07, -5.0246715545654297e-05,
- 5.2571296691894531e-05}, /* L1900 */
-{3.3191819190979004e+00, 1.7637014389038086e-04,
- 1.1920928955078125e-07, -5.1081180572509766e-05,
- 1.8763542175292969e-04}, /* L1901 */
-{1.8332746028900146e+00, 9.7483396530151367e-05,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- 4.2915344238281250e-06}, /* L1902 */
-{2.8806416988372803e+00, 1.5336275100708008e-04,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- -5.7041645050048828e-05}, /* L1903 */
-{1.8356271982192993e+00, 9.7870826721191406e-05,
- 1.1920928955078125e-07, -6.8008899688720703e-05,
- 3.0159950256347656e-04}, /* L1904 */
-{3.9514160156250000e+00, 2.1086633205413818e-04,
- 1.1920928955078125e-07, 2.4271011352539062e-04,
- -1.0418891906738281e-04}, /* L1905 */
-{1.8275932073593140e+00, 9.7610056400299072e-05,
- 1.1920928955078125e-07, 2.5629997253417969e-05,
- 1.5854835510253906e-05}, /* L1906 */
-{2.8603291511535645e+00, 1.5297532081604004e-04,
- 1.1920928955078125e-07, 4.1723251342773438e-05,
- 1.3470649719238281e-04}, /* L1907 */
-{1.7409679889678955e+00, 9.3191862106323242e-05,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -2.5689601898193359e-05}, /* L1908 */
-{2.8995096683502197e+00, 1.5538558363914490e-04,
- 1.1920928955078125e-07, -4.3570995330810547e-05,
- -6.4253807067871094e-05}, /* L1909 */
-{2.8324661254882812e+00, 1.5196204185485840e-04,
- 1.1920928955078125e-07, 2.2292137145996094e-05,
- -3.4868717193603516e-05}, /* L1910 */
-{2.8509500026702881e+00, 1.5318393707275391e-04,
- 1.1920928955078125e-07, 1.5032291412353516e-04,
- 1.3399124145507812e-04}, /* L1911 */
-{2.2605297565460205e+00, 1.2156367301940918e-04,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- -4.2378902435302734e-05}, /* L1912 */
-{2.9011981487274170e+00, 1.5616416931152344e-04,
- 1.1920928955078125e-07, -2.0563602447509766e-05,
- 1.3589859008789062e-05}, /* L1913 */
-{2.5663242340087891e+00, 1.3829022645950317e-04,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- 1.3113021850585938e-05}, /* L1914 */
-{2.0113093852996826e+00, 1.0858476161956787e-04,
- 1.1920928955078125e-07, -4.3809413909912109e-04,
- -5.3048133850097656e-05}, /* L1915 */
-{2.0161223411560059e+00, 1.0888278484344482e-04,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- -1.1563301086425781e-05}, /* L1916 */
-{2.6440193653106689e+00, 1.4299154281616211e-04,
- 1.1920928955078125e-07, 7.0095062255859375e-05,
- 2.8491020202636719e-04}, /* L1917 */
-{1.9061421155929565e+00, 1.0319054126739502e-04,
- 1.1920928955078125e-07, 4.1961669921875000e-05,
- -4.8875808715820312e-05}, /* L1918 */
-{2.4617960453033447e+00, 1.3339519500732422e-04,
- 1.1920928955078125e-07, -5.1856040954589844e-06,
- -3.5047531127929688e-05}, /* L1919 */
-{1.9810401201248169e+00, 1.0752677917480469e-04,
- 1.1920928955078125e-07, 1.4865398406982422e-04,
- 1.0263919830322266e-04}, /* L1920 */
-{3.1827111244201660e+00, 1.7300248146057129e-04,
- 1.1920928955078125e-07, 3.3664703369140625e-04,
- 2.4199485778808594e-04}, /* L1921 */
-{2.2300319671630859e+00, 1.2132152915000916e-04,
- 1.1920928955078125e-07, 3.6871433258056641e-04,
- 3.3855438232421875e-05}, /* L1922 */
-{2.5846183300018311e+00, 1.4070421457290649e-04,
- 1.1920928955078125e-07, -4.1723251342773438e-06,
- 2.0492076873779297e-04}, /* L1923 */
-{1.9145039319992065e+00, 1.0430812835693359e-04,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -1.8239021301269531e-05}, /* L1924 */
-{2.9107191562652588e+00, 1.5877932310104370e-04,
- 1.1920928955078125e-07, -8.4042549133300781e-05,
- -1.3709068298339844e-05}, /* L1925 */
-{1.8062936067581177e+00, 9.9033117294311523e-05,
- 1.1920928955078125e-07, -1.8262863159179688e-04,
- 1.1172294616699219e-03}, /* L1926 */
-{2.5536561012268066e+00, 1.3959407806396484e-04,
- 1.1920928955078125e-07, -3.8385391235351562e-05,
- 4.6849250793457031e-05}, /* L1927 */
-{1.8466471433639526e+00, 1.0144710540771484e-04,
- 1.1920928955078125e-07, -8.3380937576293945e-04,
- -2.2706985473632812e-03}, /* L1928 */
-{3.5425333976745605e+00, 1.9410252571105957e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- -7.5578689575195312e-05}, /* L1929 */
-{2.3763818740844727e+00, 1.3034790754318237e-04,
- 1.1920928955078125e-07, 5.1259994506835938e-05,
- 1.0454654693603516e-04}, /* L1930 */
-{2.4987885951995850e+00, 1.3723969459533691e-04,
- 1.1920928955078125e-07, 7.9989433288574219e-05,
- -1.3691186904907227e-04}, /* L1931 */
-{2.6794495582580566e+00, 1.4726817607879639e-04,
- 1.1920928955078125e-07, 4.9114227294921875e-05,
- 4.7087669372558594e-05}, /* L1932 */
-{3.0614643096923828e+00, 1.6847252845764160e-04,
- 1.1920928955078125e-07, 6.6876411437988281e-05,
- 1.3005733489990234e-04}, /* L1933 */
-{1.6402275562286377e+00, 9.0479850769042969e-05,
- 1.1920928955078125e-07, -6.8700313568115234e-04,
- -7.1400403976440430e-04}, /* L1934 */
-{2.5690569877624512e+00, 1.4166533946990967e-04,
- 1.1920928955078125e-07, -4.3630599975585938e-05,
- -2.5928020477294922e-05}, /* L1935 */
-{2.4554016590118408e+00, 1.3554748147726059e-04,
- 1.1920928955078125e-07, -4.5895576477050781e-05,
- -7.5817108154296875e-05}, /* L1936 */
-{3.0257985591888428e+00, 1.6725063323974609e-04,
- 1.1920928955078125e-07, -8.1956386566162109e-05,
- -1.1086463928222656e-05}, /* L1937 */
-{1.9632952213287354e+00, 1.0865926742553711e-04,
- 1.1920928955078125e-07, -1.8268823623657227e-04,
- 1.3363361358642578e-04}, /* L1938 */
-{3.0890502929687500e+00, 1.7106533050537109e-04,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- -5.2452087402343750e-06}, /* L1939 */
-{2.1422698497772217e+00, 1.1889636516571045e-04,
- 1.1920928955078125e-07, 3.7908554077148438e-05,
- -2.7596950531005859e-05}, /* L1940 */
-{2.5277142524719238e+00, 1.4027953147888184e-04,
- 1.1920928955078125e-07, 3.3497810363769531e-05,
- 1.5497207641601562e-05}, /* L1941 */
-{2.0290853977203369e+00, 1.1365115642547607e-04,
- 1.1920928955078125e-07, 8.6903572082519531e-05,
- -1.2836456298828125e-03}, /* L1942 */
-{2.8987660408020020e+00, 1.6123056411743164e-04,
- 1.1920928955078125e-07, -2.4557113647460938e-05,
- -2.8192996978759766e-05}, /* L1943 */
-{2.0777528285980225e+00, 1.1569261550903320e-04,
- 1.1920928955078125e-07, -6.7949295043945312e-05,
- 8.2969665527343750e-05}, /* L1944 */
-{3.0584731101989746e+00, 1.7046928405761719e-04,
- 1.1920928955078125e-07, -1.7464160919189453e-05,
- 2.1815299987792969e-05}, /* L1945 */
-{2.4689078330993652e+00, 1.3846158981323242e-04,
- 1.1920928955078125e-07, -5.6564807891845703e-05,
- 1.3842582702636719e-03}, /* L1946 */
-{2.8085601329803467e+00, 1.5702843666076660e-04,
- 1.1920928955078125e-07, 7.7486038208007812e-05,
- 2.4795532226562500e-05}, /* L1947 */
-{2.0344049930572510e+00, 1.1381506919860840e-04,
- 1.1920928955078125e-07, 1.6880035400390625e-04,
- -2.5749206542968750e-05}, /* L1948 */
-{3.2024304866790771e+00, 1.7935037612915039e-04,
- 1.1920928955078125e-07, 1.2314319610595703e-04,
- 4.3618679046630859e-04}, /* L1949 */
-{2.3651342391967773e+00, 1.3273954391479492e-04,
- 1.1920928955078125e-07, -3.7831068038940430e-04,
- -3.2556056976318359e-04}, /* L1950 */
-{2.8672444820404053e+00, 1.6085803508758545e-04,
- 1.1920928955078125e-07, -1.7046928405761719e-04,
- -2.2709369659423828e-05}, /* L1951 */
-{2.1778659820556641e+00, 1.2230873107910156e-04,
- 1.1920928955078125e-07, -1.1670589447021484e-04,
- -4.8816204071044922e-05}, /* L1952 */
-{3.4397442340850830e+00, 1.9359588623046875e-04,
- 1.1920928955078125e-07, 1.4424324035644531e-04,
- 2.7120113372802734e-04}, /* L1953 */
-{2.8241491317749023e+00, 1.5892460942268372e-04,
- 1.1920928955078125e-07, 1.3351440429687500e-05,
- -4.4703483581542969e-06}, /* L1954 */
-{2.5162622928619385e+00, 1.4173984527587891e-04,
- 1.1920928955078125e-07, -1.1503696441650391e-05,
- 1.8715858459472656e-05}, /* L1955 */
-{2.1169745922088623e+00, 1.1938810348510742e-04,
- 1.1920928955078125e-07, -2.1398067474365234e-05,
- 1.4305114746093750e-05}, /* L1956 */
-{2.7241365909576416e+00, 1.5377998352050781e-04,
- 1.1920928955078125e-07, 6.0796737670898438e-05,
- -1.6331672668457031e-05}, /* L1957 */
-{1.7056642770767212e+00, 9.6410512924194336e-05,
- 1.1920928955078125e-07, 8.0347061157226562e-05,
- 6.6399574279785156e-05}, /* L1958 */
-{3.1809294223785400e+00, 1.7994642257690430e-04,
- 1.1920928955078125e-07, -3.5762786865234375e-06,
- -4.8279762268066406e-06}, /* L1959 */
-{2.2413270473480225e+00, 1.2692809104919434e-04,
- 1.1920928955078125e-07, 7.9154968261718750e-05,
- -1.1438131332397461e-04}, /* L1960 */
-{2.8122732639312744e+00, 1.5943124890327454e-04,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- -4.6074390411376953e-05}, /* L1961 */
-{2.1340303421020508e+00, 1.2111663818359375e-04,
- 1.1920928955078125e-07, 6.0319900512695312e-05,
- 7.6651573181152344e-05}, /* L1962 */
-{2.8176293373107910e+00, 1.6009807586669922e-04,
- 1.1920928955078125e-07, -7.7486038208007812e-06,
- 1.0097026824951172e-04}, /* L1963 */
-{1.9855377674102783e+00, 1.1295080184936523e-04,
- 1.1920928955078125e-07, 3.9935111999511719e-05,
- -1.1801719665527344e-04}, /* L1964 */
-{2.6457307338714600e+00, 1.5062093734741211e-04,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- 1.1563301086425781e-04}, /* L1965 */
-{1.8793472051620483e+00, 1.0713934898376465e-04,
- 1.1920928955078125e-07, -2.2655725479125977e-04,
- 9.6440315246582031e-05}, /* L1966 */
-{3.2956936359405518e+00, 1.8802285194396973e-04,
- 1.1920928955078125e-07, 3.4451484680175781e-05,
- 7.5101852416992188e-06}, /* L1967 */
-{2.8477327823638916e+00, 1.6269087791442871e-04,
- 1.1920928955078125e-07, -1.2516975402832031e-05,
- -1.8274784088134766e-04}, /* L1968 */
-{3.2187063694000244e+00, 1.8413364887237549e-04,
- 1.1920928955078125e-07, -1.2969970703125000e-04,
- -3.2395124435424805e-04}, /* L1969 */
-{2.1435589790344238e+00, 1.2266635894775391e-04,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 1.5735626220703125e-05}, /* L1970 */
-{2.9644253253936768e+00, 1.6984343528747559e-04,
- 1.1920928955078125e-07, -6.0856342315673828e-05,
- -2.7418136596679688e-05}, /* L1971 */
-{2.0189805030822754e+00, 1.1578202247619629e-04,
- 1.1920928955078125e-07, 4.8637390136718750e-05,
- 3.1709671020507812e-05}, /* L1972 */
-{3.2408525943756104e+00, 1.8605589866638184e-04,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 2.5033950805664062e-05}, /* L1973 */
-{2.0035963058471680e+00, 1.1513382196426392e-04,
- 1.1920928955078125e-07, 6.1988830566406250e-06,
- 7.2717666625976562e-06}, /* L1974 */
-{2.5991616249084473e+00, 1.4951080083847046e-04,
- 1.1920928955078125e-07, -2.2470951080322266e-05,
- 3.5166740417480469e-05}, /* L1975 */
-{2.3958036899566650e+00, 1.3831257820129395e-04,
- 1.1920928955078125e-07, 3.6430358886718750e-04,
- -1.8298625946044922e-05}, /* L1976 */
-{2.4136555194854736e+00, 1.3914704322814941e-04,
- 1.1920928955078125e-07, -9.2267990112304688e-05,
- -5.2571296691894531e-05}, /* L1977 */
-{1.7428263425827026e+00, 1.0064337402582169e-04,
- 1.1920928955078125e-07, -2.9265880584716797e-05,
- -5.3644180297851562e-06}, /* L1978 */
-{2.9059805870056152e+00, 1.6786158084869385e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- -1.9073486328125000e-05}, /* L1979 */
-{2.4391889572143555e+00, 1.4105439186096191e-04,
- 1.1920928955078125e-07, -2.0980834960937500e-05,
- -5.3048133850097656e-05}, /* L1980 */
-{2.7203071117401123e+00, 1.5753507614135742e-04,
- 1.1920928955078125e-07, 1.8715858459472656e-05,
- -2.5969743728637695e-04}, /* L1981 */
-{2.3946189880371094e+00, 1.3878196477890015e-04,
- 1.1920928955078125e-07, 7.3790550231933594e-05,
- -1.0365247726440430e-04}, /* L1982 */
-{2.7591810226440430e+00, 1.6010552644729614e-04,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -6.5505504608154297e-05}, /* L1983 */
-{1.9628891944885254e+00, 1.1396408081054688e-04,
- 1.1920928955078125e-07, -5.1259994506835938e-06,
- 2.6583671569824219e-05}, /* L1984 */
-{2.9665896892547607e+00, 1.7242133617401123e-04,
- 1.1920928955078125e-07, 3.1590461730957031e-05,
- -1.5020370483398438e-05}, /* L1985 */
-{2.2222132682800293e+00, 1.2928247451782227e-04,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 8.1062316894531250e-06}, /* L1986 */
-{3.0559027194976807e+00, 1.7797946929931641e-04,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- 5.0902366638183594e-05}, /* L1987 */
-{2.2775073051452637e+00, 1.3278424739837646e-04,
- 1.1920928955078125e-07, -5.6326389312744141e-05,
- -2.2768974304199219e-05}, /* L1988 */
-{3.2548406124114990e+00, 1.8998980522155762e-04,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 2.3043155670166016e-04}, /* L1989 */
-{2.2917304039001465e+00, 1.3398379087448120e-04,
- 1.1920928955078125e-07, -3.1322240829467773e-04,
- 3.6585330963134766e-04}, /* L1990 */
-{3.1600151062011719e+00, 1.8480420112609863e-04,
- 1.1920928955078125e-07, -1.0609626770019531e-05,
- 3.3617019653320312e-05}, /* L1991 */
-{2.4353582859039307e+00, 1.4257431030273438e-04,
- 1.1920928955078125e-07, 2.9563903808593750e-05,
- -2.1994113922119141e-05}, /* L1992 */
-{2.9273936748504639e+00, 1.7154216766357422e-04,
- 1.1920928955078125e-07, -6.2525272369384766e-05,
- 1.2946128845214844e-04}, /* L1993 */
-{1.8083318471908569e+00, 1.0606646537780762e-04,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 5.7220458984375000e-06}, /* L1994 */
-{3.1197268962860107e+00, 1.8335878849029541e-04,
- 1.1920928955078125e-07, -4.8440694808959961e-04,
- 1.3887882232666016e-04}, /* L1995 */
-{2.1046981811523438e+00, 1.2370944023132324e-04,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -1.9729137420654297e-05}, /* L1996 */
-{2.5268464088439941e+00, 1.4868378639221191e-04,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- 4.7683715820312500e-07}, /* L1997 */
-{2.1645905971527100e+00, 1.2749433517456055e-04,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- 4.1127204895019531e-05}, /* L1998 */
-{2.8154706954956055e+00, 1.6599893569946289e-04,
- 1.1920928955078125e-07, -5.4836273193359375e-05,
- 9.7393989562988281e-05}, /* L1999 */
-{2.4877271652221680e+00, 1.4683604240417480e-04,
- 1.1920928955078125e-07, 4.1484832763671875e-05,
- 7.0452690124511719e-05}, /* L2000 */
-{2.8615453243255615e+00, 1.6911327838897705e-04,
- 1.1920928955078125e-07, -7.2240829467773438e-05,
- 1.5532970428466797e-04}, /* L2001 */
-{2.2114782333374023e+00, 1.3077259063720703e-04,
- 1.1920928955078125e-07, -9.8943710327148438e-06,
- 2.6226043701171875e-06}, /* L2002 */
-{2.9739820957183838e+00, 1.7631053924560547e-04,
- 1.1920928955078125e-07, -8.5550546646118164e-04,
- 1.8191337585449219e-04}, /* L2003 */
-{2.7283720970153809e+00, 1.6182661056518555e-04,
- 1.1920928955078125e-07, 2.6714801788330078e-04,
- -1.5407800674438477e-04}, /* L2004 */
-{3.0635843276977539e+00, 1.8173456192016602e-04,
- 1.1920928955078125e-07, -7.9572200775146484e-05,
- -2.6226043701171875e-05}, /* L2005 */
-{1.9393781423568726e+00, 1.1515617370605469e-04,
- 1.1920928955078125e-07, -1.3172626495361328e-05,
- 1.8358230590820312e-05}, /* L2006 */
-{2.5894029140472412e+00, 1.5389174222946167e-04,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- 3.6954879760742188e-05}, /* L2007 */
-{2.0099897384643555e+00, 1.1957064270973206e-04,
- 1.1920928955078125e-07, 2.3841857910156250e-05,
- 5.7220458984375000e-06}, /* L2008 */
-{2.7748332023620605e+00, 1.6534328460693359e-04,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- 4.6014785766601562e-05}, /* L2009 */
-{2.0054776668548584e+00, 1.1956691741943359e-04,
- 1.1920928955078125e-07, 6.5326690673828125e-05,
- -1.2040138244628906e-05}, /* L2010 */
-{3.6920042037963867e+00, 4.4040381908416748e-04,
- 1.1920928955078125e-07, 2.8407573699951172e-04,
- -8.6128711700439453e-05}, /* L2011 */
-{4.4301600456237793e+00, 7.9256296157836914e-04,
- 1.1920928955078125e-07, 1.4102458953857422e-04,
- -7.6711177825927734e-05}, /* L2012 */
-{6.0660715103149414e+00, 1.4528632164001465e-03,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- -3.0279159545898438e-05}, /* L2013 */
-{7.6663098335266113e+00, 2.2868216037750244e-03,
- 1.1920928955078125e-07, -8.6307525634765625e-05,
- -1.0907649993896484e-05}, /* L2014 */
-{9.7100963592529297e+00, 3.4745782613754272e-03,
- 1.1920928955078125e-07, -9.0360641479492188e-05,
- 1.2743473052978516e-04}, /* L2015 */
-{1.1466410636901855e+01, 4.8325955867767334e-03,
- 1.1920928955078125e-07, -6.0528516769409180e-04,
- -1.0817050933837891e-03}, /* L2016 */
-{1.1994355201721191e+01, 5.7648420333862305e-03,
- 1.1920928955078125e-07, -1.5127658843994141e-04,
- 1.9207000732421875e-03}, /* L2017 */
-{1.2910548210144043e+01, 7.8035499900579453e-03,
- 1.1920928955078125e-07, -1.2465119361877441e-03,
- 2.3229956626892090e-02}, /* L2018 */
-{1.4922426223754883e+01, 8.9192017912864685e-03,
- 1.1920928955078125e-07, -1.7597675323486328e-03,
- 7.2169303894042969e-04}, /* L2019 */
-#endif /* } */
-
-/* Always the last one. Common to both DP and SP */
-
-{, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, /* L2020 */
-};
-
-#endif /* LAPACK_V9A_SS13 */
diff --git a/usr/src/cmd/fps/fptest/singdoub64v9b_sos10.h b/usr/src/cmd/fps/fptest/singdoub64v9b_sos10.h
deleted file mode 100644
index 53b8d726e7..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64v9b_sos10.h
+++ /dev/null
@@ -1,6137 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SINGDOUB64V9B_SOS10_H
-#define _SINGDOUB64V9B_SOS10_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64 bits V9B LAPACK */
-/* dummy val */
-
-#ifdef DP
-static struct LinpVals LinpValsA[] = {
-/* Lapack v9b double for SOS10 libs */
-
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{1.0065038988871822e+00, 3.6776137690708310e-15,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 4.4408920985006262e-16}, /* L33 */
-{1.1575353385426153e+00, 4.3576253716537394e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L34 */
-{1.2009566230208775e+00, 4.6629367034256575e-15,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -6.6613381477509392e-16}, /* L35 */
-{7.5928536495966170e-01, 3.0322966360074588e-15,
- 2.2204460492503131e-16, -1.5432100042289676e-14,
- 1.4876988529977098e-14}, /* L36 */
-{6.2211716958288588e-01, 2.5535129566378600e-15,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- 2.2204460492503131e-16}, /* L37 */
-{7.2755321734541567e-01, 3.0669911055269949e-15,
- 2.2204460492503131e-16, 9.3258734068513149e-15,
- 1.7763568394002505e-15}, /* L38 */
-{5.7738299183696074e-01, 2.4980018054066022e-15,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 6.6613381477509392e-16}, /* L39 */
-{3.8780890951603081e-01, 1.7208456881689926e-15,
- 2.2204460492503131e-16, -9.3691721048116960e-13,
- 2.2903900998016979e-12}, /* L40 */
-{5.1107783118900896e-01, 2.3245294578089215e-15,
- 2.2204460492503131e-16, -8.3266726846886741e-15,
- -9.5479180117763462e-15}, /* L41 */
-{9.8590437058507985e-01, 4.5935477643865852e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -6.3282712403633923e-15}, /* L42 */
-{7.2150494793889763e-01, 3.4416913763379853e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- -2.4424906541753444e-15}, /* L43 */
-{6.9373441291924898e-01, 3.3861802251067274e-15,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- 3.3306690738754696e-15}, /* L44 */
-{7.7839781121723006e-01, 3.8857805861880479e-15,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -9.9920072216264089e-15}, /* L45 */
-{1.2074835611894628e+00, 6.1617377866696188e-15,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- -3.1086244689504383e-15}, /* L46 */
-{6.6010027151831141e-01, 3.4416913763379853e-15,
- 2.2204460492503131e-16, -1.9206858326015208e-14,
- 2.4424906541753444e-15}, /* L47 */
-{5.5838749236589591e-01, 2.9733160378242474e-15,
- 2.2204460492503131e-16, 1.8651746813702630e-14,
- 1.1102230246251565e-14}, /* L48 */
-{7.0664355673735113e-01, 3.8441472227646045e-15,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- 8.2156503822261584e-15}, /* L49 */
-{1.2100186708724696e+00, 6.7168492989821971e-15,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- -4.8849813083506888e-15}, /* L50 */
-{1.0287383001440775e+00, 5.8247677514611240e-15,
- 2.2204460492503131e-16, -1.0658141036401503e-14,
- 7.1498362785860081e-14}, /* L51 */
-{8.7020573517129773e-01, 5.0237591864288333e-15,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 2.8865798640254070e-15}, /* L52 */
-{7.1227514151622939e-01, 4.1910919179599659e-15,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- -4.4408920985006262e-15}, /* L53 */
-{7.5232642338834110e-01, 4.5102810375396984e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -2.2204460492503131e-16}, /* L54 */
-{7.8183024564262182e-01, 4.7739590058881731e-15,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -4.4408920985006262e-16}, /* L55 */
-{8.3036995566070004e-01, 5.1625370645069779e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- 4.6629367034256575e-15}, /* L56 */
-{8.6404842018949157e-01, 5.4678483962788960e-15,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- 5.7731597280508140e-15}, /* L57 */
-{1.1638110613264707e+00, 7.4940054162198066e-15,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 2.4424906541753444e-15}, /* L58 */
-{9.7459130935938965e-01, 6.3837823915946501e-15,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- -2.3314683517128287e-15}, /* L59 */
-{6.7917714652965411e-01, 4.5241588253475129e-15,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.4408920985006262e-16}, /* L60 */
-{6.5574782326106329e-01, 4.4408920985006262e-15,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- -1.4432899320127035e-15}, /* L61 */
-{1.0685648753039370e+00, 7.3552275381416621e-15,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- -1.3322676295501878e-15}, /* L62 */
-{1.0238253216748596e+00, 7.1609385088322597e-15,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- 4.2188474935755949e-15}, /* L63 */
-{8.1727335290739977e-01, 5.8069868358323617e-15,
- 2.2204460492503131e-16, -8.6597395920762210e-15,
- 1.1546319456101628e-14}, /* L64 */
-{9.0001388742579913e-01, 6.4948046940571658e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -2.7755575615628914e-15}, /* L65 */
-{8.4471000377084660e-01, 6.1894933622852477e-15,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- -3.7747582837255322e-15}, /* L66 */
-{7.2762316769498137e-01, 5.4123372450476381e-15,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -5.7731597280508140e-15}, /* L67 */
-{1.2647253973630594e+00, 9.5479180117763462e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-15,
- -5.5511151231257827e-16}, /* L68 */
-{9.4204352145946491e-01, 7.2164496600635175e-15,
- 2.2204460492503131e-16, 2.6734170432973769e-13,
- 5.5644377994212846e-13}, /* L69 */
-{1.5071661130701348e+00, 1.1712852909795402e-14,
- 2.2204460492503131e-16, 2.1316282072803006e-14,
- -4.5519144009631418e-15}, /* L70 */
-{8.8909822603678723e-01, 7.0082828429463007e-15,
- 2.2204460492503131e-16, -2.7977620220553945e-14,
- -1.8540724511240114e-14}, /* L71 */
-{1.1458510140837599e+00, 9.1593399531575415e-15,
- 2.2204460492503131e-16, -1.3988810110276972e-14,
- -1.5765166949677223e-14}, /* L72 */
-{1.0239884031214288e+00, 8.2989171090730451e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -1.8873791418627661e-15}, /* L73 */
-{9.1724388301841120e-01, 7.5356387796432500e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- -4.4408920985006262e-16}, /* L74 */
-{9.5501473610182086e-01, 7.9519724138776837e-15,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -7.6605388699135801e-15}, /* L75 */
-{9.2106684385679649e-01, 7.7715611723760958e-15,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- 1.0436096431476471e-14}, /* L76 */
-{8.7014329664543899e-01, 7.4384942649885488e-15,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- -1.7763568394002505e-15}, /* L77 */
-{1.4359195924741848e+00, 1.2434497875801753e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 2.8865798640254070e-14}, /* L78 */
-{1.0063446420583884e+00, 8.8262730457699945e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 1.1102230246251565e-15}, /* L79 */
-{1.4187718919827592e+00, 1.2601031329495527e-14,
- 2.2204460492503131e-16, 3.4106051316484809e-13,
- 9.8809849191638932e-14}, /* L80 */
-{1.5571227922027056e+00, 1.4002687898084787e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- 8.6597395920762210e-15}, /* L81 */
-{1.3353864589854390e+00, 1.2156942119645464e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- -1.3766765505351941e-14}, /* L82 */
-{1.1747169213388602e+00, 1.0824674490095276e-14,
- 2.2204460492503131e-16, -2.1427304375265521e-14,
- 2.1982415887578100e-14}, /* L83 */
-{1.0952549952800739e+00, 1.0214051826551440e-14,
- 2.2204460492503131e-16, -1.7985612998927536e-14,
- -1.3322676295501878e-15}, /* L84 */
-{1.1058994172290908e+00, 1.0436096431476471e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 6.6613381477509392e-15}, /* L85 */
-{1.8430516945347288e+00, 1.7597034940308731e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 4.6629367034256575e-15}, /* L86 */
-{1.2701345410031120e+00, 1.2267964422107980e-14,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 1.5765166949677223e-14}, /* L87 */
-{1.4034307461752853e+00, 1.3711254354120683e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- -3.2196467714129540e-15}, /* L88 */
-{1.1854115496057300e+00, 1.1712852909795402e-14,
- 2.2204460492503131e-16, 1.5099033134902129e-14,
- 8.2156503822261584e-15}, /* L89 */
-{1.2000185165677364e+00, 1.1990408665951691e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 2.2204460492503131e-15}, /* L90 */
-{7.6374804854812706e-01, 7.7160500211448380e-15,
- 2.2204460492503131e-16, -2.8976820942716586e-14,
- -2.4313884239290928e-14}, /* L91 */
-{1.3559991842555943e+00, 1.3850032232198828e-14,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- -1.8096635301390052e-14}, /* L92 */
-{8.3872261910647661e-01, 8.6597395920762210e-15,
- 2.2204460492503131e-16, 5.5511151231257827e-15,
- 4.2188474935755949e-15}, /* L93 */
-{8.8565196369028021e-01, 9.2426066800044282e-15,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 1.9984014443252818e-15}, /* L94 */
-{1.3460734018078753e+00, 1.4196976927394189e-14,
- 2.2204460492503131e-16, -1.7319479184152442e-14,
- 5.9952043329758453e-15}, /* L95 */
-{8.6687535525711035e-01, 9.2391372330524746e-15,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- 5.5511151231257827e-15}, /* L96 */
-{1.3711551778651840e+00, 1.4765966227514582e-14,
- 2.2204460492503131e-16, -1.3544720900426910e-14,
- 8.8817841970012523e-16}, /* L97 */
-{1.1020578213377017e+00, 1.1990408665951691e-14,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -4.3298697960381105e-15}, /* L98 */
-{1.1477449827019064e+00, 1.2614909117303341e-14,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -1.0214051826551440e-14}, /* L99 */
-{1.0400160476920295e+00, 1.1546319456101628e-14,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 1.7763568394002505e-15}, /* L100 */
-{9.2575685890330428e-01, 1.0380585280245214e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 7.5495165674510645e-15}, /* L101 */
-{8.6275841060424052e-01, 9.7699626167013776e-15,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 1.7763568394002505e-15}, /* L102 */
-{1.4636148169302525e+00, 1.6736612096224235e-14,
- 2.2204460492503131e-16, -3.3306690738754696e-14,
- -1.3100631690576847e-14}, /* L103 */
-{9.4893291148856684e-01, 1.0956513474269514e-14,
- 2.2204460492503131e-16, -1.0103029524088925e-14,
- 1.1990408665951691e-14}, /* L104 */
-{1.0857310387993651e+00, 1.2656542480726785e-14,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- 5.9952043329758453e-15}, /* L105 */
-{1.0613371313983184e+00, 1.2490009027033011e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- -1.0325074129013956e-14}, /* L106 */
-{1.5163785382641397e+00, 1.8013368574543165e-14,
- 2.2204460492503131e-16, -7.2164496600635175e-15,
- -3.9968028886505635e-15}, /* L107 */
-{1.3796509179674865e+00, 1.6542323066914832e-14,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- -5.1070259132757201e-15}, /* L108 */
-{9.6446442319710779e-01, 1.1671219546371958e-14,
- 2.2204460492503131e-16, 1.9095836023552692e-14,
- 1.4210854715202004e-14}, /* L109 */
-{1.0136520045250119e+00, 1.2378986724570495e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -1.4654943925052066e-14}, /* L110 */
-{1.4977708587040834e+00, 1.8457457784393227e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 4.6629367034256575e-15}, /* L111 */
-{1.0491233310766919e+00, 1.3045120539345589e-14,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- -1.5543122344752192e-14}, /* L112 */
-{9.1594333676075912e-01, 1.1490808304870370e-14,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 1.0880185641326534e-14}, /* L113 */
-{1.2149310273730156e+00, 1.5376588891058418e-14,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- -5.9952043329758453e-15}, /* L114 */
-{1.6913304454521474e+00, 2.1593837828959295e-14,
- 2.2204460492503131e-16, 3.4416913763379853e-14,
- -1.6764367671839864e-14}, /* L115 */
-{8.4053021095800695e-01, 1.0824674490095276e-14,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- 1.1102230246251565e-15}, /* L116 */
-{1.2307882221206057e+00, 1.5987211554602254e-14,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- 2.4424906541753444e-15}, /* L117 */
-{1.4491749034811980e+00, 1.8984813721090177e-14,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -7.6083583877561978e-13}, /* L118 */
-{1.3529620529929951e+00, 1.7874590696465020e-14,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- 0.0000000000000000e+00}, /* L119 */
-{1.2646028464524319e+00, 1.6847634398686751e-14,
- 2.2204460492503131e-16, 1.9095836023552692e-14,
- 8.6597395920762210e-15}, /* L120 */
-{1.5310153594635663e+00, 2.0566881531181025e-14,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- -1.7763568394002505e-14}, /* L121 */
-{1.5481796264803476e+00, 2.0969337377607644e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- 4.6629367034256575e-15}, /* L122 */
-{9.1058315620312524e-01, 1.2434497875801753e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 2.2204460492503131e-15}, /* L123 */
-{1.0766295158721686e+00, 1.4821477378745840e-14,
- 2.2204460492503131e-16, -3.6748382115092681e-14,
- -4.8516746176119341e-14}, /* L124 */
-{9.6801493669781946e-01, 1.3433698597964394e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -3.3417713041217212e-14}, /* L125 */
-{1.7673883823291630e+00, 2.4723278979621455e-14,
- 2.2204460492503131e-16, -7.2164496600635175e-15,
- -5.9952043329758453e-15}, /* L126 */
-{1.0826938715747865e+00, 1.5265566588595902e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 2.2160051571518125e-13}, /* L127 */
-{1.4101780093780765e+00, 2.0039525594484076e-14,
- 2.2204460492503131e-16, -1.0103029524088925e-14,
- -9.8809849191638932e-15}, /* L128 */
-{1.3023456768952084e+00, 1.8651746813702630e-14,
- 2.2204460492503131e-16, -6.4392935428259079e-15,
- -4.4408920985006262e-15}, /* L129 */
-{9.4616844575528802e-01, 1.3655743202889425e-14,
- 2.2204460492503131e-16, -2.4757973449140991e-14,
- -3.7636560534792807e-14}, /* L130 */
-{2.0687342111308560e+00, 3.0087043967341742e-14,
- 2.2204460492503131e-16, -5.7731597280508140e-14,
- 1.8207657603852567e-14}, /* L131 */
-{1.4735075850531847e+00, 2.1593837828959295e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -2.8865798640254070e-15}, /* L132 */
-{1.1720105656014277e+00, 1.7305601396344628e-14,
- 2.2204460492503131e-16, -7.7715611723760958e-15,
- 2.3758772726978350e-14}, /* L133 */
-{1.4589777362499301e+00, 2.1704860131421810e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -2.4313884239290928e-14}, /* L134 */
-{1.5565054987270910e+00, 2.3328561304936102e-14,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- 7.3274719625260332e-15}, /* L135 */
-{1.3639916349462280e+00, 2.0594637106796654e-14,
- 2.2204460492503131e-16, -4.0523140398818214e-14,
- -8.2933659939499194e-14}, /* L136 */
-{1.2372453683590603e+00, 1.8818280267396403e-14,
- 2.2204460492503131e-16, -2.5535129566378600e-15,
- -7.7715611723760958e-16}, /* L137 */
-{1.7228526709780039e+00, 2.6395552410463097e-14,
- 2.2204460492503131e-16, -8.4932061383824475e-14,
- -8.9706020389712648e-14}, /* L138 */
-{1.5288005681692896e+00, 2.3592239273284576e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- 9.7699626167013776e-15}, /* L139 */
-{1.3393063800977436e+00, 2.0816681711721685e-14,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -5.9396931817445875e-14}, /* L140 */
-{1.5283923777797828e+00, 2.3925306180672123e-14,
- 2.2204460492503131e-16, -1.5432100042289676e-14,
- -1.9206858326015208e-14}, /* L141 */
-{1.3838241696335563e+00, 2.1815882433884326e-14,
- 2.2204460492503131e-16, -2.7755575615628914e-14,
- -2.7755575615628914e-15}, /* L142 */
-{1.0594569071095876e+00, 1.6819878823071122e-14,
- 2.2204460492503131e-16, -1.8984813721090177e-14,
- -1.5210055437364645e-14}, /* L143 */
-{1.5590518343139634e+00, 2.4924506902834764e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -4.1078251911130792e-15}, /* L144 */
-{1.0896719863085418e+00, 1.7541523789077473e-14,
- 2.2204460492503131e-16, 1.5765166949677223e-14,
- -1.8651746813702630e-14}, /* L145 */
-{1.3168011404686821e+00, 2.1344037648418634e-14,
- 2.2204460492503131e-16, -6.9944050551384862e-15,
- 2.8865798640254070e-14}, /* L146 */
-{1.4464508905056348e+00, 2.3606117061092391e-14,
- 2.2204460492503131e-16, -9.8254737679326354e-14,
- -4.7739590058881731e-15}, /* L147 */
-{1.3986702304590053e+00, 2.2981616609740740e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -4.4408920985006262e-16}, /* L148 */
-{1.6778782390488114e+00, 2.7755575615628914e-14,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- -1.2101430968414206e-14}, /* L149 */
-{1.4716893751795901e+00, 2.4508173268600331e-14,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -2.2204460492503131e-15}, /* L150 */
-{1.5960511175099870e+00, 2.6756374893466273e-14,
- 2.2204460492503131e-16, 4.5519144009631418e-14,
- 2.0872192862952943e-14}, /* L151 */
-{1.3519945458040790e+00, 2.2815083156046967e-14,
- 2.2204460492503131e-16, 4.2188474935755949e-15,
- -1.3211653993039363e-14}, /* L152 */
-{1.1650506567436236e+00, 1.9789725413943415e-14,
- 2.2204460492503131e-16, -6.4503957730721595e-14,
- -9.4924068605450884e-14}, /* L153 */
-{1.5357379825122048e+00, 2.6256774532384952e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- 4.3520742565306136e-14}, /* L154 */
-{1.4709904396636206e+00, 2.5313084961453569e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -3.1752378504279477e-14}, /* L155 */
-{1.3237383743120219e+00, 2.2926105458509483e-14,
- 2.2204460492503131e-16, 1.0080825063596421e-13,
- -5.6621374255882984e-15}, /* L156 */
-{1.0366401994235181e+00, 1.8068879725774423e-14,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -3.6082248300317588e-14}, /* L157 */
-{1.8481297828996279e+00, 3.2418512319054571e-14,
- 2.2204460492503131e-16, -2.8865798640254070e-15,
- 9.5479180117763462e-15}, /* L158 */
-{1.6336730067003429e+00, 2.8838043064638441e-14,
- 2.2204460492503131e-16, 6.7723604502134549e-14,
- -3.6748382115092681e-14}, /* L159 */
-{1.4812728563882740e+00, 2.6312285683616210e-14,
- 2.2204460492503131e-16, -1.2323475573339238e-14,
- -1.2878587085651816e-14}, /* L160 */
-{1.2577833830483345e+00, 2.2482016248659420e-14,
- 2.2204460492503131e-16, 6.7057470687359455e-14,
- -4.9960036108132044e-15}, /* L161 */
-{1.7994104813759739e+00, 3.2363001167823313e-14,
- 2.2204460492503131e-16, -1.8651746813702630e-14,
- -3.9968028886505635e-15}, /* L162 */
-{1.1994050101686242e+00, 2.1704860131421810e-14,
- 2.2204460492503131e-16, 5.3956838996782608e-14,
- -1.4210854715202004e-14}, /* L163 */
-{1.7591734859236889e+00, 3.2029934260435766e-14,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- 3.2862601528904634e-14}, /* L164 */
-{1.5394176929706678e+00, 2.8199664825478976e-14,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- -8.4376949871511897e-15}, /* L165 */
-{1.7193412888759150e+00, 3.1686459012192358e-14,
- 2.2204460492503131e-16, -5.9841021027295938e-14,
- -2.0028423364237824e-13}, /* L166 */
-{1.9251794065694541e+00, 3.5693670241698783e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -2.1427304375265521e-14}, /* L167 */
-{1.9047912961390523e+00, 3.5527136788005009e-14,
- 2.2204460492503131e-16, -4.4741987892393809e-14,
- 1.6653345369377348e-14}, /* L168 */
-{1.5784267223591424e+00, 2.9615199181876051e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- 4.4408920985006262e-16}, /* L169 */
-{1.3411971655756090e+00, 2.5313084961453569e-14,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- 1.2434497875801753e-14}, /* L170 */
-{1.4912510805300607e+00, 2.8310687127941492e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -1.1213252548714081e-14}, /* L171 */
-{1.8343306297340050e+00, 3.5027536426923689e-14,
- 2.2204460492503131e-16, -1.2656542480726785e-14,
- -2.3314683517128287e-14}, /* L172 */
-{1.1199594777696713e+00, 2.1510571102112408e-14,
- 2.2204460492503131e-16, -9.3258734068513149e-15,
- 6.4392935428259079e-15}, /* L173 */
-{1.4971495381505093e+00, 2.8921309791485328e-14,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- -3.7192471324942744e-14}, /* L174 */
-{1.7085977926368767e+00, 3.3195668436292181e-14,
- 2.2204460492503131e-16, 2.3980817331903381e-14,
- -2.7866597918091429e-14}, /* L175 */
-{1.4886593339994789e+00, 2.9087843245179101e-14,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- -2.0983215165415459e-14}, /* L176 */
-{1.6695172864677161e+00, 3.2807090377673376e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- -8.4376949871511897e-15}, /* L177 */
-{1.5814850768423530e+00, 3.1252778143198157e-14,
- 2.2204460492503131e-16, 2.2692958623338200e-13,
- 1.8385293287792592e-13}, /* L178 */
-{2.6033921262594850e+00, 5.1736392947532295e-14,
- 2.2204460492503131e-16, -1.1879386363489175e-14,
- 1.0880185641326534e-14}, /* L179 */
-{1.2875198667334076e+00, 2.5729418595688003e-14,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- -1.8307577676068831e-13}, /* L180 */
-{1.4033365709401533e+00, 2.8199664825478976e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -2.7755575615628914e-15}, /* L181 */
-{1.6566189686130695e+00, 3.3473224192448470e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 2.0872192862952943e-14}, /* L182 */
-{1.5218814064849018e+00, 3.0919711235810610e-14,
- 2.2204460492503131e-16, 6.3060667798708891e-14,
- -4.0301095793893182e-14}, /* L183 */
-{1.8233977006723587e+00, 3.7247982476174002e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- 1.8429702208777599e-14}, /* L184 */
-{2.0351665382308983e+00, 4.1799896877137144e-14,
- 2.2204460492503131e-16, -5.7098770156471801e-13,
- 2.8443913890896511e-13}, /* L185 */
-{1.7580916438938179e+00, 3.6304292905242619e-14,
- 2.2204460492503131e-16, 5.6288307348495437e-13,
- 3.6703973194107675e-13}, /* L186 */
-{1.8823819867728921e+00, 3.9079850466805510e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 4.8849813083506888e-15}, /* L187 */
-{2.0292866315179712e+00, 4.2355008389449722e-14,
- 2.2204460492503131e-16, -7.8492767840998567e-14,
- -7.4162898044960457e-14}, /* L188 */
-{1.5317696673119026e+00, 3.2140956562898282e-14,
- 2.2204460492503131e-16, 4.4630965589931293e-14,
- 2.2870594307278225e-14}, /* L189 */
-{1.7684483402050382e+00, 3.7303493627405260e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- 7.3274719625260332e-15}, /* L190 */
-{2.2399723905255393e+00, 4.7498463495720955e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- 2.4424906541753444e-15}, /* L191 */
-{2.1380538240062443e+00, 4.5574655160862676e-14,
- 2.2204460492503131e-16, -1.2101430968414206e-14,
- -2.1316282072803006e-14}, /* L192 */
-{1.6697148832640221e+00, 3.5776936968545670e-14,
- 2.2204460492503131e-16, -1.4654943925052066e-14,
- -1.6653345369377348e-15}, /* L193 */
-{1.9819893454477395e+00, 4.2688075296837269e-14,
- 2.2204460492503131e-16, 7.2608585810485238e-14,
- 1.9539925233402755e-14}, /* L194 */
-{2.4654226574355689e+00, 5.3373971908854401e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 1.7763568394002505e-15}, /* L195 */
-{2.1798805748450274e+00, 4.7434278727109813e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- 5.9952043329758453e-15}, /* L196 */
-{1.8084035386092292e+00, 3.9551695252271202e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 1.7541523789077473e-14}, /* L197 */
-{1.5252760606204838e+00, 3.3528735343679728e-14,
- 2.2204460492503131e-16, 5.5955240441107890e-14,
- 2.6645352591003757e-15}, /* L198 */
-{1.6850134373391572e+00, 3.7227165794462280e-14,
- 2.2204460492503131e-16, -8.2822637637036678e-14,
- 8.8817841970012523e-15}, /* L199 */
-{1.5825244187234253e+00, 3.5138558729386205e-14,
- 2.2204460492503131e-16, -3.3417713041217212e-14,
- -3.4083846855992306e-14}, /* L200 */
-{1.8697427809186937e+00, 4.1723569044194164e-14,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- -1.4876988529977098e-14}, /* L201 */
-{1.6807190031959627e+00, 3.7692071686024065e-14,
- 2.2204460492503131e-16, 1.9095836023552692e-14,
- 4.2188474935755949e-14}, /* L202 */
-{1.5616004505417018e+00, 3.5194069880617462e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -3.3306690738754696e-16}, /* L203 */
-{1.6691434023337466e+00, 3.7803093988486580e-14,
- 2.2204460492503131e-16, -2.1205259770340490e-14,
- 2.2204460492503131e-16}, /* L204 */
-{1.4939254906251385e+00, 3.4000580129145419e-14,
- 2.2204460492503131e-16, 9.3041130355686619e-12,
- -1.3655743202889425e-12}, /* L205 */
-{1.8701744882997535e+00, 4.2771342023684156e-14,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- 5.9063864910058328e-14}, /* L206 */
-{1.6352909334063577e+00, 3.7581049383561549e-14,
- 2.2204460492503131e-16, -3.5527136788005009e-14,
- -3.0531133177191805e-14}, /* L207 */
-{1.9711842619902009e+00, 4.5519144009631418e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -2.2204460492503131e-15}, /* L208 */
-{2.0096003865962997e+00, 4.6629367034256575e-14,
- 2.2204460492503131e-16, -3.5194069880617462e-14,
- 2.0627943797535409e-13}, /* L209 */
-{2.9905223349381949e+00, 6.9722005946459831e-14,
- 2.2204460492503131e-16, 3.0420110874729289e-14,
- 7.7271522513910895e-14}, /* L210 */
-{1.9407882406574071e+00, 4.5463632858400160e-14,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- 5.5511151231257827e-15}, /* L211 */
-{1.6727852454316987e+00, 3.9371284010769614e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- 6.4392935428259079e-15}, /* L212 */
-{1.7488532762967113e+00, 4.1355807667287081e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 2.6645352591003757e-15}, /* L213 */
-{1.8902160823661780e+00, 4.4908521346087582e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -7.6605388699135801e-15}, /* L214 */
-{2.8352181666869729e+00, 6.7675032244807198e-14,
- 2.2204460492503131e-16, -5.4400928206632670e-15,
- -1.3988810110276972e-14}, /* L215 */
-{1.7106745442581111e+00, 4.1022740759899534e-14,
- 2.2204460492503131e-16, -4.8183679268731794e-14,
- 7.7715611723760958e-14}, /* L216 */
-{2.5046469422078461e+00, 6.0340621388377258e-14,
- 2.2204460492503131e-16, 2.5146551507759796e-12,
- -7.7804429565730970e-13}, /* L217 */
-{1.7041547358740925e+00, 4.1244785364824565e-14,
- 2.2204460492503131e-16, 1.4344081478157023e-13,
- 1.4210854715202004e-13}, /* L218 */
-{1.7682921253455799e+00, 4.2993386628609187e-14,
- 2.2204460492503131e-16, -3.7636560534792807e-14,
- -3.1086244689504383e-15}, /* L219 */
-{1.7579816715248178e+00, 4.2937875477377929e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 2.2426505097428162e-14}, /* L220 */
-{2.0950549516244261e+00, 5.1403326040144748e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-14,
- 2.9309887850104133e-14}, /* L221 */
-{2.2207549874919641e+00, 5.4733995114020217e-14,
- 2.2204460492503131e-16, -7.7715611723760958e-15,
- 2.0206059048177849e-14}, /* L222 */
-{1.7533902839236113e+00, 4.3409720262843621e-14,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- 2.9976021664879227e-14}, /* L223 */
-{1.7745809536247203e+00, 4.4131365228849972e-14,
- 2.2204460492503131e-16, 4.6429526889824047e-13,
- 8.9661611468727642e-13}, /* L224 */
-{1.5578018150257844e+00, 3.8913317013111737e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 9.1038288019262836e-15}, /* L225 */
-{2.1714936836488827e+00, 5.4484194933479557e-14,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- 1.5321077739827160e-14}, /* L226 */
-{2.0022335381056453e+00, 5.0459636469213365e-14,
- 2.2204460492503131e-16, -5.2957638274619967e-14,
- 4.9515946898281982e-14}, /* L227 */
-{2.3936772858801021e+00, 6.0590421568917918e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- -6.8833827526759706e-15}, /* L228 */
-{1.8444607748691584e+00, 4.6893045002605049e-14,
- 2.2204460492503131e-16, 1.3005152510459084e-12,
- -3.7458924850852782e-13}, /* L229 */
-{2.4652554307743464e+00, 6.2949645496246376e-14,
- 2.2204460492503131e-16, 4.7295500849031669e-14,
- 6.5947247662734299e-14}, /* L230 */
-{2.0979760952077027e+00, 5.3804183330896649e-14,
- 2.2204460492503131e-16, -2.0095036745715333e-14,
- -2.4424906541753444e-15}, /* L231 */
-{2.1993873853399926e+00, 5.6649129831498612e-14,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- 1.3322676295501878e-14}, /* L232 */
-{2.0665554925867649e+00, 5.3457238635701287e-14,
- 2.2204460492503131e-16, -2.7755575615628914e-14,
- 8.8817841970012523e-15}, /* L233 */
-{2.2178493928773801e+00, 5.7617105531093671e-14,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- 5.3512749786932545e-14}, /* L234 */
-{2.1375329826361971e+00, 5.5767890305702394e-14,
- 2.2204460492503131e-16, -2.5646151868841116e-14,
- -1.0769163338864018e-14}, /* L235 */
-{2.0870290253816521e+00, 5.4681953409740913e-14,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -8.7707618945387367e-15}, /* L236 */
-{2.2835927258236692e+00, 6.0085617037408667e-14,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- 2.2204460492503131e-15}, /* L237 */
-{1.6491851111792561e+00, 4.3576253716537394e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 3.6193270602780103e-14}, /* L238 */
-{2.1715816251686371e+00, 5.7620574978045624e-14,
- 2.2204460492503131e-16, -5.2025050933934835e-13,
- 2.7045032879868813e-13}, /* L239 */
-{2.1312828861939646e+00, 5.6787907709576757e-14,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 1.4077627952246985e-13}, /* L240 */
-{2.2614456830179592e+00, 6.0507154842071031e-14,
- 2.2204460492503131e-16, 1.2212453270876722e-13,
- -9.4702024000525853e-14}, /* L241 */
-{2.2479685709807158e+00, 6.0396132539608516e-14,
- 2.2204460492503131e-16, -3.2085445411667024e-14,
- -7.0277117458772409e-14}, /* L242 */
-{1.8786298107437347e+00, 5.0681681074138396e-14,
- 2.2204460492503131e-16, 4.2588155224621005e-13,
- 1.2523315717771766e-13}, /* L243 */
-{1.5973607132249501e+00, 4.3270942384765476e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 8.6597395920762210e-15}, /* L244 */
-{2.3061580335399396e+00, 6.2727600891321345e-14,
- 2.2204460492503131e-16, -1.7541523789077473e-14,
- -4.3298697960381105e-15}, /* L245 */
-{1.7845803820230977e+00, 4.8738790781044372e-14,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- 1.7097434579227411e-14}, /* L246 */
-{2.4904230431973993e+00, 6.8292593802254942e-14,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- 3.7747582837255322e-15}, /* L247 */
-{1.6088957933820578e+00, 4.4297898682543746e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- 4.5741188614556449e-14}, /* L248 */
-{1.5140795875017174e+00, 4.1855408028368402e-14,
- 2.2204460492503131e-16, -5.7620574978045624e-14,
- -1.0524914273446484e-13}, /* L249 */
-{1.9950307837931691e+00, 5.5372373353179682e-14,
- 2.2204460492503131e-16, 1.4477308241112041e-13,
- 8.9928064994637680e-14}, /* L250 */
-{1.8252273668743184e+00, 5.0862092315639984e-14,
- 2.2204460492503131e-16, -1.4988010832439613e-14,
- 1.7097434579227411e-14}, /* L251 */
-{1.6537566066426810e+00, 4.6267460349080913e-14,
- 2.2204460492503131e-16, 3.2640556923979602e-14,
- 6.6613381477509392e-16}, /* L252 */
-{2.8597279207395374e+00, 8.0324635831630076e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-14,
- 1.3300471835009375e-13}, /* L253 */
-{1.9418360653489597e+00, 5.4758281242683893e-14,
- 2.2204460492503131e-16, -1.7208456881689926e-14,
- -4.0523140398818214e-14}, /* L254 */
-{2.0892479238606829e+00, 5.9147131636905215e-14,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- -3.4861002973229915e-14}, /* L255 */
-{2.1367517205809885e+00, 6.0729199446996063e-14,
- 2.2204460492503131e-16, -4.7406523151494184e-14,
- 3.4861002973229915e-14}, /* L256 */
-{2.2840819365277465e+00, 6.5170091545496689e-14,
- 2.2204460492503131e-16, -9.2814644858663087e-14,
- -6.9499961341534799e-14}, /* L257 */
-{2.0097209329467955e+00, 5.7565063826814367e-14,
- 2.2204460492503131e-16, 2.2426505097428162e-14,
- -1.3655743202889425e-14}, /* L258 */
-{2.1815008425374414e+00, 6.2727600891321345e-14,
- 2.2204460492503131e-16, -3.2973623831367149e-14,
- 3.1086244689504383e-14}, /* L259 */
-{2.0538778456635729e+00, 5.9285909514983359e-14,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -2.9087843245179101e-14}, /* L260 */
-{2.0881548260829490e+00, 6.0507154842071031e-14,
- 2.2204460492503131e-16, -6.7834626804597065e-14,
- -1.0713652187632761e-13}, /* L261 */
-{3.3359293367676410e+00, 9.7033492352238682e-14,
- 2.2204460492503131e-16, 2.2959412149248237e-13,
- 1.0880185641326534e-13}, /* L262 */
-{2.0072790716467179e+00, 5.8609367359352404e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-14,
- -1.3566925360919413e-13}, /* L263 */
-{1.8665060733545529e+00, 5.4706239538404589e-14,
- 2.2204460492503131e-16, 2.4202861936828413e-14,
- -1.2767564783189300e-14}, /* L264 */
-{2.0113517903473968e+00, 5.9174887212520844e-14,
- 2.2204460492503131e-16, -9.8920871494101448e-14,
- -7.2275518903097691e-14}, /* L265 */
-{1.8562316496093456e+00, 5.4817261840867104e-14,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- 2.1760371282653068e-14}, /* L266 */
-{1.7397272189279571e+00, 5.1569859493838521e-14,
- 2.2204460492503131e-16, -6.8978156519960976e-13,
- -2.3403501359098300e-13}, /* L267 */
-{2.1576825472799608e+00, 6.4198646398949677e-14,
- 2.2204460492503131e-16, -5.5733195836182858e-14,
- 2.4646951146678475e-14}, /* L268 */
-{2.0111834493900527e+00, 6.0063065632220969e-14,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -2.6201263381153694e-14}, /* L269 */
-{2.2053581032665157e+00, 6.6106842222524165e-14,
- 2.2204460492503131e-16, -2.4702462297909733e-13,
- -1.1302070390684094e-13}, /* L270 */
-{2.1254940514850018e+00, 6.3948846218409017e-14,
- 2.2204460492503131e-16, 1.8207657603852567e-14,
- 3.2196467714129540e-14}, /* L271 */
-{1.7904688038247432e+00, 5.4067861299245124e-14,
- 2.2204460492503131e-16, 7.8603790143461083e-14,
- 1.1102230246251565e-14}, /* L272 */
-{1.6135780114409475e+00, 4.8905324234738146e-14,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -3.6637359812630166e-14}, /* L273 */
-{2.6597125728363564e+00, 8.0907502919558283e-14,
- 2.2204460492503131e-16, 4.9293902293356950e-14,
- 2.8865798640254070e-14}, /* L274 */
-{1.8745743796686245e+00, 5.7231996919426820e-14,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- -1.4321877017664519e-14}, /* L275 */
-{2.0235819489824509e+00, 6.2005955925314993e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- -1.6209256159527285e-14}, /* L276 */
-{1.8700649566235104e+00, 5.7509552675583109e-14,
- 2.2204460492503131e-16, 3.2995828291859652e-13,
- -2.6278978992877455e-13}, /* L277 */
-{2.0656793559277684e+00, 6.3754557189099614e-14,
- 2.2204460492503131e-16, -3.2862601528904634e-13,
- 9.4302343711660797e-13}, /* L278 */
-{2.2697482843980650e+00, 7.0304873034388038e-14,
- 2.2204460492503131e-16, -3.3861802251067274e-14,
- -6.2172489379008766e-15}, /* L279 */
-{1.6839545552427824e+00, 5.2347015611076131e-14,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- 3.8191672047105385e-14}, /* L280 */
-{1.8149746247015963e+00, 5.6621374255882984e-14,
- 2.2204460492503131e-16, 8.1046280797636427e-14,
- -7.8714812445923599e-14}, /* L281 */
-{2.2606731805906786e+00, 7.0776717819853729e-14,
- 2.2204460492503131e-16, -2.8865798640254070e-15,
- -2.5646151868841116e-14}, /* L282 */
-{2.1025059403901691e+00, 6.6058269965196814e-14,
- 2.2204460492503131e-16, -2.2981616609740740e-14,
- -2.5490720645393594e-13}, /* L283 */
-{2.0220382427786987e+00, 6.3754557189099614e-14,
- 2.2204460492503131e-16, -1.6209256159527285e-14,
- 1.3544720900426910e-14}, /* L284 */
-{2.3245972725907493e+00, 7.3552275381416621e-14,
- 2.2204460492503131e-16, -2.8865798640254070e-15,
- 2.2648549702353193e-14}, /* L285 */
-{2.0227584843659607e+00, 6.4226401974565306e-14,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- -1.3766765505351941e-14}, /* L286 */
-{2.3724233666318058e+00, 7.5592310189165346e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- -6.9944050551384862e-15}, /* L287 */
-{2.7031667104954611e+00, 8.6430862467068437e-14,
- 2.2204460492503131e-16, 4.4853010194856324e-14,
- -1.1513012765362873e-13}, /* L288 */
-{2.1124893436116849e+00, 6.7779115653365807e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-14,
- -1.0658141036401503e-14}, /* L289 */
-{1.7218207491328443e+00, 5.5435690760052836e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- 1.4654943925052066e-14}, /* L290 */
-{1.7216760504018747e+00, 5.5622173533720343e-14,
- 2.2204460492503131e-16, 4.4186876380081230e-14,
- 4.3964831775156199e-14}, /* L291 */
-{2.0531138718102517e+00, 6.6557870326278135e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- -5.4067861299245124e-14}, /* L292 */
-{2.3780230415766064e+00, 7.7354789240757782e-14,
- 2.2204460492503131e-16, 1.1701750679549150e-13,
- -2.7755575615628914e-15}, /* L293 */
-{2.0076840402609841e+00, 6.5530914028499865e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 7.5495165674510645e-15}, /* L294 */
-{2.3915623260936463e+00, 7.8326234387304794e-14,
- 2.2204460492503131e-16, -1.6175949468788531e-13,
- -4.6618264804010323e-13}, /* L295 */
-{2.4392268270317543e+00, 8.0158102377936302e-14,
- 2.2204460492503131e-16, -1.3100631690576847e-14,
- 7.8381745538536052e-14}, /* L296 */
-{1.8636651204264985e+00, 6.1450844413002415e-14,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- 4.6407322429331543e-14}, /* L297 */
-{1.7181473167807055e+00, 5.6843418860808015e-14,
- 2.2204460492503131e-16, -2.6001423236721166e-13,
- -1.4972467710094861e-12}, /* L298 */
-{1.7801278022380964e+00, 5.9091620485673957e-14,
- 2.2204460492503131e-16, -1.9373391779708982e-13,
- 9.6589403142388619e-14}, /* L299 */
-{2.1183660202172190e+00, 7.0554673214928698e-14,
- 2.2204460492503131e-16, 4.3254289039396099e-13,
- -4.8994142076708158e-13}, /* L300 */
-{2.9090980442120453e+00, 9.7213903593740270e-14,
- 2.2204460492503131e-16, 1.7696955012524995e-13,
- 5.6843418860808015e-14}, /* L301 */
-{2.2107129197660136e+00, 7.4121264681537014e-14,
- 2.2204460492503131e-16, -9.3369756370975665e-14,
- 4.8183679268731794e-14}, /* L302 */
-{2.6650576241154855e+00, 8.9650509238481391e-14,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- -1.2545520178264269e-14}, /* L303 */
-{1.8158174921747741e+00, 6.1284310959308641e-14,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- -2.1094237467877974e-14}, /* L304 */
-{1.8377332746889663e+00, 6.2228000530240024e-14,
- 2.2204460492503131e-16, -6.6169292267659330e-14,
- -5.6621374255882984e-15}, /* L305 */
-{2.1944783057569950e+00, 7.4551476103579262e-14,
- 2.2204460492503131e-16, -5.2291504459844873e-13,
- -8.2089890440784075e-13}, /* L306 */
-{2.4861947143590846e+00, 8.4737772354515073e-14,
- 2.2204460492503131e-16, -1.1668443988810395e-13,
- 4.8849813083506888e-15}, /* L307 */
-{2.4111573345942836e+00, 8.2447937366225688e-14,
- 2.2204460492503131e-16, -7.2941652717872785e-14,
- 7.3940853440035426e-14}, /* L308 */
-{2.5471671351020841e+00, 8.7381490931903727e-14,
- 2.2204460492503131e-16, -1.0347278589506459e-13,
- 1.1790568521519162e-13}, /* L309 */
-{1.7790597093729195e+00, 6.1228799808077383e-14,
- 2.2204460492503131e-16, -2.4158453015843406e-13,
- -8.1268325402561459e-14}, /* L310 */
-{2.5965030871603698e+00, 8.9650509238481391e-14,
- 2.2204460492503131e-16, 4.1300296516055823e-14,
- 4.7073456244106637e-14}, /* L311 */
-{2.4375376117773762e+00, 8.4432461022743155e-14,
- 2.2204460492503131e-16, -1.8041124150158794e-13,
- -3.5638159090467525e-14}, /* L312 */
-{2.5249990252249819e+00, 8.7742313414906903e-14,
- 2.2204460492503131e-16, -3.6659564273122669e-13,
- -1.2534417948018017e-13}, /* L313 */
-{2.9968615289009564e+00, 1.0447198661722723e-13,
- 2.2204460492503131e-16, 1.0769163338864018e-13,
- 8.8151708155237429e-14}, /* L314 */
-{2.8643299115686967e+00, 1.0016987239680475e-13,
- 2.2204460492503131e-16, -3.1530333899354446e-14,
- 4.7295500849031669e-14}, /* L315 */
-{2.5518589960369948e+00, 8.9525609148211061e-14,
- 2.2204460492503131e-16, 4.7517545453956700e-14,
- -2.9531932455029164e-14}, /* L316 */
-{3.0473656335544526e+00, 1.0724754417879012e-13,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -4.9404924595819466e-14}, /* L317 */
-{2.2720476368451825e+00, 8.0213613529167560e-14,
- 2.2204460492503131e-16, -7.0943251273547503e-14,
- 3.9301895071730542e-14}, /* L318 */
-{2.4106955048080945e+00, 8.5376150593674538e-14,
- 2.2204460492503131e-16, 4.2188474935755949e-15,
- -2.0206059048177849e-14}, /* L319 */
-{2.6687911800745661e+00, 9.4813046302988369e-14,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- -9.1704421834037930e-14}, /* L320 */
-{2.2336793260095487e+00, 7.9602990865623724e-14,
- 2.2204460492503131e-16, 1.6475709685437323e-13,
- -8.3266726846886741e-14}, /* L321 */
-{2.8191428789189152e+00, 1.0078049506034858e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -8.8817841970012523e-16}, /* L322 */
-{2.4690783461367887e+00, 8.8540286213856234e-14,
- 2.2204460492503131e-16, -4.7295500849031669e-14,
- 3.2196467714129540e-14}, /* L323 */
-{2.1504961456221845e+00, 7.7354789240757782e-14,
- 2.2204460492503131e-16, -1.0147438445073931e-13,
- 1.4654943925052066e-14}, /* L324 */
-{2.7115803018592155e+00, 9.7838404045091920e-14,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- 2.9087843245179101e-14}, /* L325 */
-{3.5675397105526656e+00, 1.2911893776390571e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- 1.8873791418627661e-14}, /* L326 */
-{3.2049424193740310e+00, 1.1635137298071641e-13,
- 2.2204460492503131e-16, 8.4376949871511897e-14,
- -4.5741188614556449e-14}, /* L327 */
-{2.0335679637942881e+00, 7.4051875742497941e-14,
- 2.2204460492503131e-16, 4.5807801996033959e-13,
- 1.4770407119613083e-12}, /* L328 */
-{2.1915231774185338e+00, 8.0047080075473787e-14,
- 2.2204460492503131e-16, -6.2727600891321345e-14,
- 5.9729998724833422e-14}, /* L329 */
-{2.3487104835782056e+00, 8.6049223302353539e-14,
- 2.2204460492503131e-16, -1.3011813848606835e-13,
- -1.3633538742396922e-13}, /* L330 */
-{2.2432370305926717e+00, 8.2434059578417873e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 2.2204460492503131e-15}, /* L331 */
-{2.0704621058491766e+00, 7.6314822516909686e-14,
- 2.2204460492503131e-16, -5.5400128928795311e-14,
- 2.1316282072803006e-14}, /* L332 */
-{1.8919210846776544e+00, 6.9944050551384862e-14,
- 2.2204460492503131e-16, -1.5809575870662229e-13,
- -3.1941116418465754e-13}, /* L333 */
-{2.6377652522325841e+00, 9.7810648469476291e-14,
- 2.2204460492503131e-16, 4.9737991503207013e-13,
- 6.8389738316909643e-14}, /* L334 */
-{2.4056341344248229e+00, 8.9470097996979803e-14,
- 2.2204460492503131e-16, -7.9047879353311146e-14,
- -5.0626169922907138e-14}, /* L335 */
-{1.6771092115225030e+00, 6.2561067437627571e-14,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- 1.1102230246251565e-14}, /* L336 */
-{1.9770334734476827e+00, 7.3968609015651055e-14,
- 2.2204460492503131e-16, 2.2515322939398175e-13,
- -4.4031445156633708e-13}, /* L337 */
-{2.2426381547294900e+00, 8.4154905266586866e-14,
- 2.2204460492503131e-16, 3.8635761256955448e-14,
- 1.1102230246251565e-14}, /* L338 */
-{2.5044634232190566e+00, 9.4257934790675790e-14,
- 2.2204460492503131e-16, -9.2148511043887993e-15,
- -9.5701224722688494e-14}, /* L339 */
-{3.0581354230399493e+00, 1.1543543898540065e-13,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- -2.4613644455939721e-13}, /* L340 */
-{1.9516430175361241e+00, 7.3885342288804168e-14,
- 2.2204460492503131e-16, 6.6391336872584361e-14,
- 3.5083047578154947e-14}, /* L341 */
-{2.2134844469818060e+00, 8.4043882964124350e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-13,
- -1.1035616864774056e-13}, /* L342 */
-{2.8386006515868081e+00, 1.0809408923506680e-13,
- 2.2204460492503131e-16, -5.9618976422370906e-14,
- -1.3322676295501878e-15}, /* L343 */
-{2.4171884605755256e+00, 9.2315044497581766e-14,
- 2.2204460492503131e-16, -2.0849988402460440e-13,
- 1.1346479311669100e-13}, /* L344 */
-{2.1159746789716789e+00, 8.1046280797636427e-14,
- 2.2204460492503131e-16, -1.8429702208777599e-14,
- -2.3314683517128287e-15}, /* L345 */
-{2.3959907279246582e+00, 9.2037488741425477e-14,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- -1.6464607455191071e-13}, /* L346 */
-{2.5778495750950001e+00, 9.9309449552720253e-14,
- 2.2204460492503131e-16, 3.5527136788005009e-15,
- -7.5162098767123098e-14}, /* L347 */
-{2.8718115540983353e+00, 1.1095291352347658e-13,
- 2.2204460492503131e-16, -2.7366997557010109e-13,
- 1.0842438058489279e-12}, /* L348 */
-{2.5845671011071412e+00, 1.0014211682118912e-13,
- 2.2204460492503131e-16, -4.5519144009631418e-14,
- 1.5520917884259688e-13}, /* L349 */
-{2.7521853240087895e+00, 1.0694223284701820e-13,
- 2.2204460492503131e-16, 2.5313084961453569e-14,
- -5.1292303737682232e-14}, /* L350 */
-{2.4843688187250534e+00, 9.6811447747313650e-14,
- 2.2204460492503131e-16, -5.4400928206632670e-15,
- -7.1054273576010019e-15}, /* L351 */
-{2.7628267219739966e+00, 1.0796918914479647e-13,
- 2.2204460492503131e-16, 1.1279865930191590e-13,
- 7.7271522513910895e-14}, /* L352 */
-{2.3040425012795498e+00, 9.0296043211979260e-14,
- 2.2204460492503131e-16, 6.0396132539608516e-14,
- 7.5717210279435676e-14}, /* L353 */
-{2.1659938737715021e+00, 8.5126350413133878e-14,
- 2.2204460492503131e-16, -1.3877787807814457e-14,
- -2.5868196473766147e-14}, /* L354 */
-{2.9972293465403030e+00, 1.1812772982011666e-13,
- 2.2204460492503131e-16, 1.3611334281904419e-13,
- 1.3877787807814457e-12}, /* L355 */
-{2.5133814786954383e+00, 9.9337205128335881e-14,
- 2.2204460492503131e-16, -1.0180745135812685e-13,
- 3.3972824553529790e-14}, /* L356 */
-{3.1761694572202055e+00, 1.2588541320468494e-13,
- 2.2204460492503131e-16, -1.0103029524088925e-14,
- 2.7755575615628914e-14}, /* L357 */
-{2.7678499711451203e+00, 1.1000922395254520e-13,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- -5.7509552675583109e-14}, /* L358 */
-{2.6546370619520641e+00, 1.0580425424677742e-13,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- 4.3076653355456074e-14}, /* L359 */
-{2.6878018900809382e+00, 1.0742448597333976e-13,
- 2.2204460492503131e-16, -9.5590202420225978e-14,
- 3.3972824553529790e-14}, /* L360 */
-{3.0305176757270336e+00, 1.2145839889399213e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- 4.9737991503207013e-14}, /* L361 */
-{4.1671913725649210e+00, 1.6747714326470486e-13,
- 2.2204460492503131e-16, -1.1213252548714081e-14,
- 9.6811447747313650e-14}, /* L362 */
-{2.4752448051787517e+00, 9.9753538762570315e-14,
- 2.2204460492503131e-16, 5.9063864910058328e-14,
- 4.2632564145606011e-14}, /* L363 */
-{2.2294300050239424e+00, 9.0094598448331453e-14,
- 2.2204460492503131e-16, 4.1522341120980855e-14,
- -6.6613381477509392e-15}, /* L364 */
-{3.4390941619208881e+00, 1.3936074516607277e-13,
- 2.2204460492503131e-16, 1.1235457009206584e-13,
- -4.4297898682543746e-14}, /* L365 */
-{3.3613906648618581e+00, 1.3658518760450988e-13,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- 9.7699626167013776e-15}, /* L366 */
-{3.0300195059560533e+00, 1.2345680033831741e-13,
- 2.2204460492503131e-16, -3.3417713041217212e-14,
- -5.3179682879544998e-14}, /* L367 */
-{2.3162509237187625e+00, 9.4631767699748792e-14,
- 2.2204460492503131e-16, 6.3504757008558954e-14,
- -1.9095836023552692e-13}, /* L368 */
-{3.8357637937824607e+00, 1.5713819134788309e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- 8.3044682241961709e-14}, /* L369 */
-{1.9973281165392391e+00, 8.2045481519799068e-14,
- 2.2204460492503131e-16, -3.8413716652030416e-14,
- -4.9849013805669529e-14}, /* L370 */
-{2.5859352856858755e+00, 1.0651115406323797e-13,
- 2.2204460492503131e-16, -3.3195668436292181e-14,
- -9.1593399531575415e-14}, /* L371 */
-{2.4046069961238410e+00, 9.9309449552720253e-14,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- -6.1839422471621219e-14}, /* L372 */
-{2.6220243726611265e+00, 1.0857981180834031e-13,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 7.7715611723760958e-15}, /* L373 */
-{3.8610221432745684e+00, 1.6031620475587260e-13,
- 2.2204460492503131e-16, -5.9886540171305569e-12,
- -6.5855099151690411e-12}, /* L374 */
-{3.4987206527480361e+00, 1.4566126083082054e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- -3.5527136788005009e-15}, /* L375 */
-{2.1815496192697483e+00, 9.1066043594878465e-14,
- 2.2204460492503131e-16, 1.8096635301390052e-13,
- -2.4202861936828413e-14}, /* L376 */
-{2.6280246359178525e+00, 1.0999534616473738e-13,
- 2.2204460492503131e-16, -5.0404125317982107e-14,
- 1.5543122344752192e-15}, /* L377 */
-{3.1230640626273707e+00, 1.3106182805699973e-13,
- 2.2204460492503131e-16, 9.0594198809412774e-14,
- -3.0087043967341742e-14}, /* L378 */
-{4.4802802135696922e+00, 1.8851586958135158e-13,
- 2.2204460492503131e-16, 1.1812772982011666e-13,
- 9.6589403142388619e-14}, /* L379 */
-{4.1711169928941043e+00, 1.7597034940308731e-13,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- 6.6613381477509392e-14}, /* L380 */
-{3.0118574972901890e+00, 1.2739809207573671e-13,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- 3.9968028886505635e-15}, /* L381 */
-{2.7297474258936285e+00, 1.1576850589278820e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- -2.2970514379494489e-13}, /* L382 */
-{2.4079946598054645e+00, 1.0239031844605506e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-15,
- -4.2854608750531042e-14}, /* L383 */
-{3.9427594408600872e+00, 1.6808776592824870e-13,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 1.1546319456101628e-13}, /* L384 */
-{2.9247132359053261e+00, 1.2501111257279263e-13,
- 2.2204460492503131e-16, -1.7541523789077473e-14,
- -8.8262730457699945e-14}, /* L385 */
-{3.1707017215863145e+00, 1.3587742042631135e-13,
- 2.2204460492503131e-16, -1.1490808304870370e-13,
- -9.3036689463588118e-14}, /* L386 */
-{2.6072689385170862e+00, 1.1202150318467829e-13,
- 2.2204460492503131e-16, -1.2001510896197942e-13,
- 3.7303493627405260e-14}, /* L387 */
-{2.5354710100565967e+00, 1.0921819004749977e-13,
- 2.2204460492503131e-16, -2.3980817331903381e-14,
- 0.0000000000000000e+00}, /* L388 */
-{2.4229105840542147e+00, 1.0463852007092100e-13,
- 2.2204460492503131e-16, -3.3195668436292181e-14,
- -3.0420110874729289e-14}, /* L389 */
-{3.7894721974835623e+00, 1.6407708525179032e-13,
- 2.2204460492503131e-16, -6.9499961341534799e-14,
- 2.3314683517128287e-14}, /* L390 */
-{2.8369932959109669e+00, 1.2315148900654549e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -2.2204460492503131e-15}, /* L391 */
-{2.5172520173191195e+00, 1.0955125695488732e-13,
- 2.2204460492503131e-16, 9.9698027611339057e-14,
- -2.7078339570607568e-13}, /* L392 */
-{2.8276447954855652e+00, 1.2337353361147052e-13,
- 2.2204460492503131e-16, 5.7287508070658077e-14,
- -5.9063864910058328e-14}, /* L393 */
-{2.6430387016838250e+00, 1.1561238077995029e-13,
- 2.2204460492503131e-16, 6.2616578588858829e-14,
- 6.1284310959308641e-14}, /* L394 */
-{2.6405405567836291e+00, 1.1579626146840383e-13,
- 2.2204460492503131e-16, 5.6776805479330505e-13,
- -3.9357406222961799e-13}, /* L395 */
-{2.4984541030680463e+00, 1.0984269049885143e-13,
- 2.2204460492503131e-16, -4.0556447089556968e-13,
- 3.9479530755670567e-13}, /* L396 */
-{3.1020553233549495e+00, 1.3672396548258803e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -1.0580425424677742e-13}, /* L397 */
-{2.5940976960190856e+00, 1.1462358839864351e-13,
- 2.2204460492503131e-16, 1.4366285938649526e-13,
- -8.3821838359199319e-14}, /* L398 */
-{2.4805694347581402e+00, 1.0988258913879889e-13,
- 2.2204460492503131e-16, 2.6179058920661191e-13,
- 6.1395333261771157e-13}, /* L399 */
-{3.1087902973061219e+00, 1.3805623311213822e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- 6.2838623193783860e-14}, /* L400 */
-{2.4302060648338921e+00, 1.0819123374972150e-13,
- 2.2204460492503131e-16, -7.1942451995710144e-14,
- 1.0347278589506459e-13}, /* L401 */
-{3.1779018896741547e+00, 1.4183099139586375e-13,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- 1.7985612998927536e-14}, /* L402 */
-{3.2611973598796125e+00, 1.4591106101136120e-13,
- 2.2204460492503131e-16, 5.0626169922907138e-14,
- -2.5091040356528538e-14}, /* L403 */
-{2.3168537823689337e+00, 1.0391687510491465e-13,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- 1.4743761767022079e-13}, /* L404 */
-{3.8947902366934977e+00, 1.7512380434681063e-13,
- 2.2204460492503131e-16, -2.8310687127941492e-14,
- -5.8064664187895687e-14}, /* L405 */
-{2.4347522878098351e+00, 1.0974554598419672e-13,
- 2.2204460492503131e-16, -2.1316282072803006e-14,
- 2.6867397195928788e-14}, /* L406 */
-{2.6916718660318262e+00, 1.2162493234768590e-13,
- 2.2204460492503131e-16, 6.2172489379008766e-14,
- -6.3504757008558954e-14}, /* L407 */
-{2.6875256348331797e+00, 1.2173595465014841e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 2.0849988402460440e-13}, /* L408 */
-{2.4327860412011750e+00, 1.1046719095020308e-13,
- 2.2204460492503131e-16, 1.7763568394002505e-14,
- 3.9968028886505635e-14}, /* L409 */
-{3.7829629128807718e+00, 1.7219559111936178e-13,
- 2.2204460492503131e-16, -2.7977620220553945e-14,
- 2.3958612871410878e-13}, /* L410 */
-{2.1800694562886931e+00, 9.9475983006414026e-14,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -6.1062266354383610e-14}, /* L411 */
-{3.0503931737018535e+00, 1.3952727861976655e-13,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- -3.0753177782116836e-14}, /* L412 */
-{2.8511167836206424e+00, 1.3072876114961218e-13,
- 2.2204460492503131e-16, -1.0824674490095276e-13,
- -9.8698826889176416e-14}, /* L413 */
-{3.7536589925056347e+00, 1.7252865802674933e-13,
- 2.2204460492503131e-16, -1.0991207943789050e-14,
- 6.6613381477509392e-16}, /* L414 */
-{2.9409919079333777e+00, 1.3550272015550036e-13,
- 2.2204460492503131e-16, -1.3977707880030721e-13,
- 7.8825834748386114e-14}, /* L415 */
-{2.8383684197972512e+00, 1.3108958363261536e-13,
- 2.2204460492503131e-16, -7.7937656328685989e-14,
- -1.8984813721090177e-14}, /* L416 */
-{2.3141707546640458e+00, 1.0713652187632761e-13,
- 2.2204460492503131e-16, -1.0980105713542798e-13,
- 1.0214051826551440e-13}, /* L417 */
-{3.1997912866037450e+00, 1.4849232954361469e-13,
- 2.2204460492503131e-16, 5.6621374255882984e-13,
- 7.0166095156309893e-14}, /* L418 */
-{2.6703249188586309e+00, 1.2421791026340223e-13,
- 2.2204460492503131e-16, -1.2989609388114332e-14,
- -2.0261570199409107e-13}, /* L419 */
-{3.1262202954956146e+00, 1.4577228313328305e-13,
- 2.2204460492503131e-16, -8.7152507433074788e-14,
- 2.6645352591003757e-15}, /* L420 */
-{2.4151061717686515e+00, 1.1288192602876279e-13,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- -1.3877787807814457e-14}, /* L421 */
-{3.7097510250960295e+00, 1.7380541450506826e-13,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- -1.9984014443252818e-14}, /* L422 */
-{3.6008026675992144e+00, 1.6910084443821916e-13,
- 2.2204460492503131e-16, -1.6964207816272392e-13,
- -1.3988810110276972e-14}, /* L423 */
-{3.1191335252915482e+00, 1.4682699500667695e-13,
- 2.2204460492503131e-16, -5.2446935683292395e-13,
- -1.2156942119645464e-13}, /* L424 */
-{2.8435565348948404e+00, 1.3417045252595017e-13,
- 2.2204460492503131e-16, 1.2900791546144319e-13,
- -1.0813572259849025e-13}, /* L425 */
-{3.6784388424838230e+00, 1.7397194795876203e-13,
- 2.2204460492503131e-16, -9.9698027611339057e-14,
- -1.6131540547803525e-13}, /* L426 */
-{3.0785568822346243e+00, 1.4594228603392878e-13,
- 2.2204460492503131e-16, -1.6431300764452317e-14,
- -2.4980018054066022e-14}, /* L427 */
-{2.9124109574649539e+00, 1.3838930001952576e-13,
- 2.2204460492503131e-16, -4.4186876380081230e-14,
- -2.3314683517128287e-14}, /* L428 */
-{2.8438499697230588e+00, 1.3544720900426910e-13,
- 2.2204460492503131e-16, 1.2057022047429200e-12,
- 9.1704421834037930e-14}, /* L429 */
-{2.9709585709066992e+00, 1.4183099139586375e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- 2.6423307986078726e-14}, /* L430 */
-{2.6589580769629988e+00, 1.2723155862204294e-13,
- 2.2204460492503131e-16, -1.1035616864774056e-13,
- -6.8722805224297190e-14}, /* L431 */
-{2.5440057473603956e+00, 1.2201351040630470e-13,
- 2.2204460492503131e-16, -3.3195668436292181e-14,
- -9.6589403142388619e-15}, /* L432 */
-{4.6732547372732309e+00, 2.2465362903290043e-13,
- 2.2204460492503131e-16, 4.5052850339288852e-13,
- -3.2884805989397137e-13}, /* L433 */
-{2.3194345662139888e+00, 1.1175782521632982e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 1.4876988529977098e-14}, /* L434 */
-{2.9835638393306558e+00, 1.4408895084028206e-13,
- 2.2204460492503131e-16, -9.4368957093138306e-14,
- 9.5479180117763462e-15}, /* L435 */
-{3.0871854102753113e+00, 1.4943601911454607e-13,
- 2.2204460492503131e-16, -2.1838086894376829e-13,
- -1.4543921622589551e-14}, /* L436 */
-{4.0538144108221266e+00, 1.9667600881234648e-13,
- 2.2204460492503131e-16, 4.8849813083506888e-14,
- -2.7589042161935140e-13}, /* L437 */
-{3.3350774735794158e+00, 1.6217582832211974e-13,
- 2.2204460492503131e-16, -2.7455815398980121e-13,
- -9.9031893796563963e-14}, /* L438 */
-{3.0592546930856614e+00, 1.4910295220715852e-13,
- 2.2204460492503131e-16, -1.1768364061026659e-14,
- -7.3274719625260332e-15}, /* L439 */
-{2.7807083418376477e+00, 1.3583578706288790e-13,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 1.1102230246251565e-15}, /* L440 */
-{3.1406195258125811e+00, 1.5376588891058418e-13,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- 4.5519144009631418e-14}, /* L441 */
-{2.7817007412665919e+00, 1.3650192087766300e-13,
- 2.2204460492503131e-16, -3.3195668436292181e-14,
- -8.8817841970012523e-15}, /* L442 */
-{3.5829912868034577e+00, 1.7622014958362797e-13,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- -4.5297099404706387e-14}, /* L443 */
-{3.3108423911212039e+00, 1.6320278461989801e-13,
- 2.2204460492503131e-16, 3.9968028886505635e-14,
- -1.4122036873231991e-13}, /* L444 */
-{3.4795275713321447e+00, 1.7190415757539768e-13,
- 2.2204460492503131e-16, -1.5321077739827160e-14,
- -5.2180482157382357e-14}, /* L445 */
-{2.4913354226786684e+00, 1.2335965582366271e-13,
- 2.2204460492503131e-16, 5.0626169922907138e-14,
- 5.7065463465733046e-14}, /* L446 */
-{3.7763223737402849e+00, 1.8740564655672642e-13,
- 2.2204460492503131e-16, 8.2822637637036678e-14,
- 1.4654943925052066e-13}, /* L447 */
-{2.9375280194729934e+00, 1.4610535004067060e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- 2.9309887850104133e-14}, /* L448 */
-{2.8986913461355583e+00, 1.4449552665496412e-13,
- 2.2204460492503131e-16, 1.4832579608992091e-13,
- 8.0380146982861334e-14}, /* L449 */
-{3.4489217862672534e+00, 1.7230661342182430e-13,
- 2.2204460492503131e-16, -5.4511950509095186e-14,
- 6.8833827526759706e-15}, /* L450 */
-{2.7339506896319197e+00, 1.3689049893628180e-13,
- 2.2204460492503131e-16, 1.1346479311669100e-13,
- -2.2315482794965646e-13}, /* L451 */
-{3.4723782538601387e+00, 1.7424950371491832e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -4.5519144009631418e-15}, /* L452 */
-{2.5193397038917813e+00, 1.2670420268534599e-13,
- 2.2204460492503131e-16, 6.1950444774083735e-14,
- 1.5987211554602254e-14}, /* L453 */
-{3.5110467058125905e+00, 1.7696955012524995e-13,
- 2.2204460492503131e-16, 7.1276318180935050e-14,
- -1.0325074129013956e-13}, /* L454 */
-{3.1604697064310847e+00, 1.5965007094109751e-13,
- 2.2204460492503131e-16, -1.8984813721090177e-14,
- 2.4424906541753444e-15}, /* L455 */
-{3.0000286156314870e+00, 1.5187850976872141e-13,
- 2.2204460492503131e-16, -1.0436096431476471e-14,
- 1.8651746813702630e-14}, /* L456 */
-{3.2330724140013398e+00, 1.6403545188836688e-13,
- 2.2204460492503131e-16, -3.8524738954492932e-14,
- 2.2204460492503131e-14}, /* L457 */
-{2.7805942081527224e+00, 1.4138690218601369e-13,
- 2.2204460492503131e-16, -1.8285373215576328e-13,
- -4.1977532561077169e-13}, /* L458 */
-{3.5114714025015314e+00, 1.7894019599395961e-13,
- 2.2204460492503131e-16, 1.5498713423767185e-13,
- 7.6605388699135801e-14}, /* L459 */
-{3.3967715303797590e+00, 1.7347234759768071e-13,
- 2.2204460492503131e-16, 7.2386541205560206e-14,
- 1.8784973576657649e-13}, /* L460 */
-{2.3906139090484571e+00, 1.2235351620759616e-13,
- 2.2204460492503131e-16, -1.6209256159527285e-14,
- -3.5194069880617462e-14}, /* L461 */
-{3.2608536143171443e+00, 1.6725509865977983e-13,
- 2.2204460492503131e-16, 1.6875389974302379e-13,
- 3.0531133177191805e-13}, /* L462 */
-{3.0162274742476631e+00, 1.5504264538890311e-13,
- 2.2204460492503131e-16, -1.7097434579227411e-14,
- 3.9968028886505635e-15}, /* L463 */
-{2.9526143702682579e+00, 1.5210055437364645e-13,
- 2.2204460492503131e-16, -1.9928503292021560e-13,
- -2.1971313657331848e-13}, /* L464 */
-{4.1957389455897252e+00, 2.1660451210436804e-13,
- 2.2204460492503131e-16, -7.0277117458772409e-14,
- 1.9539925233402755e-14}, /* L465 */
-{3.3562551894477264e+00, 1.7363888105137448e-13,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 9.2814644858663087e-14}, /* L466 */
-{3.3279225355238582e+00, 1.7254253581455714e-13,
- 2.2204460492503131e-16, 6.2838623193783860e-14,
- -3.3195668436292181e-14}, /* L467 */
-{4.2436302212546471e+00, 2.2049029269055609e-13,
- 2.2204460492503131e-16, 2.8155255904493970e-13,
- -9.8587804586713901e-14}, /* L468 */
-{2.6876588983682534e+00, 1.3994361225400098e-13,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- 2.0650148258027912e-14}, /* L469 */
-{2.7010895940029447e+00, 1.4094281297616362e-13,
- 2.2204460492503131e-16, -1.3467005288703149e-13,
- 5.1958437552457326e-14}, /* L470 */
-{3.2410075595906145e+00, 1.6947554470903015e-13,
- 2.2204460492503131e-16, 4.3181014319770838e-12,
- -1.6538992397840957e-12}, /* L471 */
-{3.7998243800381792e+00, 1.9911849946652183e-13,
- 2.2204460492503131e-16, -8.6264329013374663e-14,
- -1.5765166949677223e-13}, /* L472 */
-{3.1089091467821115e+00, 1.6325829577112927e-13,
- 2.2204460492503131e-16, -3.1730174043786974e-13,
- 1.1546319456101628e-14}, /* L473 */
-{3.0654300833419943e+00, 1.6131540547803525e-13,
- 2.2204460492503131e-16, 9.3702823278363212e-14,
- 1.0946799022804043e-13}, /* L474 */
-{2.7410787772234237e+00, 1.4455103780619538e-13,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- 2.9443114613059151e-13}, /* L475 */
-{3.5704122074683746e+00, 1.8868240303504535e-13,
- 2.2204460492503131e-16, 9.2370555648813024e-14,
- -1.6053824936079764e-13}, /* L476 */
-{3.6373512565475781e+00, 1.9262369477246466e-13,
- 2.2204460492503131e-16, -4.5297099404706387e-14,
- -4.3853809472693683e-14}, /* L477 */
-{2.7748695641955456e+00, 1.4725720642871920e-13,
- 2.2204460492503131e-16, -2.5335289421946072e-13,
- 1.7874590696465020e-13}, /* L478 */
-{2.6071490852879062e+00, 1.3864603909397033e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-14,
- -2.1094237467877974e-15}, /* L479 */
-{3.1927387871221158e+00, 1.7014167852380524e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -1.2623235789988030e-13}, /* L480 */
-{3.4581930689713927e+00, 1.8467172235858698e-13,
- 2.2204460492503131e-16, -2.9465319073551655e-13,
- 2.2626345241860690e-13}, /* L481 */
-{3.0674566446833169e+00, 1.6414647419082939e-13,
- 2.2204460492503131e-16, -2.1094237467877974e-14,
- 2.0206059048177849e-14}, /* L482 */
-{3.6118356935607907e+00, 1.9367840664585856e-13,
- 2.2204460492503131e-16, -3.9079850466805510e-14,
- 1.0458300891968975e-13}, /* L483 */
-{3.1622202453331396e+00, 1.6991963391888021e-13,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- -2.3536728122053319e-14}, /* L484 */
-{2.7211599762749930e+00, 1.4652168367490503e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- 8.3266726846886741e-14}, /* L485 */
-{3.7664968319029470e+00, 2.0322632465763490e-13,
- 2.2204460492503131e-16, 5.3956838996782608e-14,
- -3.5749181392930041e-14}, /* L486 */
-{3.4907930503584987e+00, 1.8873791418627661e-13,
- 2.2204460492503131e-16, -5.9396931817445875e-14,
- 1.1990408665951691e-14}, /* L487 */
-{4.2828277367930321e+00, 2.3203661214665772e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-13,
- 5.9596771961878403e-13}, /* L488 */
-{3.1523818070857779e+00, 1.7114087924596788e-13,
- 2.2204460492503131e-16, 2.7000623958883807e-13,
- 1.6431300764452317e-13}, /* L489 */
-{2.9784722875688159e+00, 1.6203011155013769e-13,
- 2.2204460492503131e-16, -8.0602191587786365e-14,
- -6.6835426082434424e-14}, /* L490 */
-{2.9913727285873928e+00, 1.6306400674181987e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- -4.0301095793893182e-14}, /* L491 */
-{3.1921036184605587e+00, 1.7436052601738083e-13,
- 2.2204460492503131e-16, 3.0264679651281767e-13,
- -1.6586731987899839e-13}, /* L492 */
-{4.0700185377045699e+00, 2.2276624989103766e-13,
- 2.2204460492503131e-16, -1.3100631690576847e-14,
- 5.9952043329758453e-14}, /* L493 */
-{4.3289886602758427e+00, 2.3742119381608973e-13,
- 2.2204460492503131e-16, -2.8865798640254070e-15,
- -3.4527936065842368e-14}, /* L494 */
-{2.3724342455135936e+00, 1.3037834700746487e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- -1.0780265569110270e-13}, /* L495 */
-{3.5070899038245358e+00, 1.9312329513354598e-13,
- 2.2204460492503131e-16, 6.0840221749458578e-14,
- -6.2616578588858829e-14}, /* L496 */
-{4.3048700356435949e+00, 2.3753221611855224e-13,
- 2.2204460492503131e-16, -2.9198865547641617e-14,
- 2.4646951146678475e-14}, /* L497 */
-{3.3926026413046153e+00, 1.8757218001042020e-13,
- 2.2204460492503131e-16, 4.9293902293356950e-14,
- -1.0991207943789050e-14}, /* L498 */
-{3.6939230098607569e+00, 2.0464185901403198e-13,
- 2.2204460492503131e-16, -5.0182080713057076e-14,
- -4.3631764867768652e-14}, /* L499 */
-{3.9970381255593508e+00, 2.2187807147133753e-13,
- 2.2204460492503131e-16, -9.1704421834037930e-14,
- 2.7533531010703882e-14}, /* L500 */
-{3.0858577776216878e+00, 1.7164047960704920e-13,
- 2.2204460492503131e-16, -5.7065463465733046e-14,
- 8.2822637637036678e-14}, /* L501 */
-{3.1703489653058505e+00, 1.7669199436909366e-13,
- 2.2204460492503131e-16, 3.4927616354707425e-13,
- 1.8365309273349339e-12}, /* L502 */
-{3.5725986893873283e+00, 1.9950707752514063e-13,
- 2.2204460492503131e-16, -4.4098058538111218e-13,
- -1.5099033134902129e-13}, /* L503 */
-{3.9157119530086519e+00, 2.1910251390977464e-13,
- 2.2204460492503131e-16, -5.7842619582970656e-14,
- -4.9071857688431919e-14}, /* L504 */
-{3.2146346230371403e+00, 1.8023083026008635e-13,
- 2.2204460492503131e-16, 5.4845017416482733e-14,
- -8.0935258495173912e-14}, /* L505 */
-{2.4911304808964352e+00, 1.3994361225400098e-13,
- 2.2204460492503131e-16, -8.7940765780558650e-13,
- 9.1038288019262836e-15}, /* L506 */
-{3.2288276421980489e+00, 1.8174350913113813e-13,
- 2.2204460492503131e-16, 9.2592600253738055e-13,
- 4.4364512064021255e-13}, /* L507 */
-{3.9871197238621332e+00, 2.2486873474392155e-13,
- 2.2204460492503131e-16, -6.9400041269318535e-13,
- 1.0378364834195963e-12}, /* L508 */
-{2.6591609242014815e+00, 1.5026868638301494e-13,
- 2.2204460492503131e-16, -1.2789769243681803e-13,
- 9.0150109599562711e-14}, /* L509 */
-{3.2215993565241616e+00, 1.8240964294591322e-13,
- 2.2204460492503131e-16, -1.0003109451872660e-13,
- -1.3400391907225639e-13}, /* L510 */
-{2.9178360508185719e+00, 1.6553425297161084e-13,
- 2.2204460492503131e-16, -2.9376501231581642e-13,
- -2.1538326677728037e-14}, /* L511 */
-{3.6543317316712796e+00, 2.0772272790736679e-13,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- -1.1823875212257917e-13}, /* L512 */
-{3.0139176369992637e+00, 1.7165435739485702e-13,
- 2.2204460492503131e-16, 8.1268325402561459e-14,
- -6.6613381477509392e-16}, /* L513 */
-{2.8336846165151441e+00, 1.6170398353665405e-13,
- 2.2204460492503131e-16, 2.0050627824730327e-13,
- -9.5146113210375916e-14}, /* L514 */
-{2.3068181199809921e+00, 1.3189449532546860e-13,
- 2.2204460492503131e-16, -1.2656542480726785e-14,
- -5.9396931817445875e-14}, /* L515 */
-{3.4641803297426637e+00, 1.9845236565174673e-13,
- 2.2204460492503131e-16, 8.5931262105987116e-14,
- -1.3600232051658168e-13}, /* L516 */
-{3.3994250925018670e+00, 1.9512169657787126e-13,
- 2.2204460492503131e-16, 1.3944401189291966e-13,
- -9.7144514654701197e-14}, /* L517 */
-{3.1930552307558218e+00, 1.8363088827300089e-13,
- 2.2204460492503131e-16, 2.5002222514558525e-13,
- 6.2838623193783860e-14}, /* L518 */
-{4.0944187912003907e+00, 2.3592239273284576e-13,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -4.0745185003743245e-14}, /* L519 */
-{3.6096210795395791e+00, 2.0838886172214188e-13,
- 2.2204460492503131e-16, 5.8397731095283234e-14,
- 1.5321077739827160e-14}, /* L520 */
-{3.4304276770833768e+00, 1.9842461007613110e-13,
- 2.2204460492503131e-16, 1.8562928971732617e-13,
- 1.5987211554602254e-14}, /* L521 */
-{2.7341997160645017e+00, 1.5845658118962547e-13,
- 2.2204460492503131e-16, -1.4566126083082054e-13,
- -1.2845280394913061e-13}, /* L522 */
-{4.1319376853345275e+00, 2.3991919562149633e-13,
- 2.2204460492503131e-16, -3.2129854332652030e-13,
- -5.7520654905829360e-13}, /* L523 */
-{3.0410353322137356e+00, 1.7691403897401869e-13,
- 2.2204460492503131e-16, -1.4610535004067060e-13,
- 7.7271522513910895e-14}, /* L524 */
-{2.7619091193868925e+00, 1.6098233857064770e-13,
- 2.2204460492503131e-16, -1.3489209749195652e-13,
- -3.0342395263005528e-13}, /* L525 */
-{3.1663548054667956e+00, 1.8490764475131982e-13,
- 2.2204460492503131e-16, 5.7287508070658077e-14,
- 8.5265128291212022e-14}, /* L526 */
-{3.7865334882723367e+00, 2.2154500456394999e-13,
- 2.2204460492503131e-16, 9.1482377229112899e-14,
- 2.6867397195928788e-14}, /* L527 */
-{3.0615578605443119e+00, 1.7946755193065655e-13,
- 2.2204460492503131e-16, 1.9539925233402755e-14,
- -7.7604589421298442e-14}, /* L528 */
-{3.1758084131417927e+00, 1.8651746813702630e-13,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- -2.0938806244430452e-13}, /* L529 */
-{3.6000056797473232e+00, 2.1183055309847987e-13,
- 2.2204460492503131e-16, 1.0000889005823410e-12,
- 1.6289192217300297e-12}, /* L530 */
-{3.3323969712810220e+00, 1.9645396420742145e-13,
- 2.2204460492503131e-16, 2.3065993559612252e-12,
- 1.6144863224099026e-12}, /* L531 */
-{4.2570555885658692e+00, 2.5143775950198233e-13,
- 2.2204460492503131e-16, -6.2394533983933798e-14,
- -4.1411318818518339e-14}, /* L532 */
-{3.1482226029549532e+00, 1.8629542353210127e-13,
- 2.2204460492503131e-16, 7.1826988801149128e-12,
- 2.2510882047299674e-12}, /* L533 */
-{5.5791286524176149e+00, 3.3076319461144976e-13,
- 2.2204460492503131e-16, -1.9872992140790302e-14,
- -1.8118839761882555e-13}, /* L534 */
-{3.7350526217824309e+00, 2.2185031589572191e-13,
- 2.2204460492503131e-16, -9.1293639314926622e-13,
- -4.9737991503207013e-14}, /* L535 */
-{3.7278510307090249e+00, 2.2183643810791409e-13,
- 2.2204460492503131e-16, -1.0236256287043943e-13,
- 6.8167693711984612e-14}, /* L536 */
-{4.5474932081006925e+00, 2.7111646261346323e-13,
- 2.2204460492503131e-16, 2.1549428907974288e-12,
- -2.4452662117369073e-12}, /* L537 */
-{2.9739823872407385e+00, 1.7763568394002505e-13,
- 2.2204460492503131e-16, 5.1736392947532295e-14,
- 6.3060667798708891e-14}, /* L538 */
-{4.6688385348911385e+00, 2.7938762414692064e-13,
- 2.2204460492503131e-16, -1.0613732115416497e-13,
- -3.1863400806741993e-14}, /* L539 */
-{3.2157458142462994e+00, 1.9279022822615843e-13,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- -2.8421709430404007e-14}, /* L540 */
-{3.9518315583075081e+00, 2.3735874377095456e-13,
- 2.2204460492503131e-16, -3.7081449022480228e-14,
- -1.9961809982760315e-13}, /* L541 */
-{3.5685019400127418e+00, 2.1473101075031309e-13,
- 2.2204460492503131e-16, 5.3512749786932545e-14,
- -7.8492767840998567e-14}, /* L542 */
-{3.2587528392971477e+00, 1.9645396420742145e-13,
- 2.2204460492503131e-16, 3.3828495560328520e-12,
- -3.1148417178883392e-12}, /* L543 */
-{4.3097494465698212e+00, 2.6029178812336795e-13,
- 2.2204460492503131e-16, -1.6192602814157908e-12,
- 8.1468165546993987e-13}, /* L544 */
-{3.2670923104780889e+00, 1.9768214842841303e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- 2.0761170560490427e-13}, /* L545 */
-{2.9230815348438210e+00, 1.7719159473017498e-13,
- 2.2204460492503131e-16, -1.6875389974302379e-14,
- 1.1546319456101628e-14}, /* L546 */
-{3.4497312196294279e+00, 2.0949908474676704e-13,
- 2.2204460492503131e-16, -3.0253577421035516e-13,
- -1.5565326805244695e-13}, /* L547 */
-{3.6952613044929956e+00, 2.2482016248659420e-13,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- -2.3536728122053319e-14}, /* L548 */
-{4.0261903230026057e+00, 2.4540092180558304e-13,
- 2.2204460492503131e-16, -2.7344793096517606e-13,
- 2.6045832157706172e-13}, /* L549 */
-{3.4565963625869416e+00, 2.1106727476905007e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-13,
- -1.4543921622589551e-14}, /* L550 */
-{3.8759135560727467e+00, 2.3710200469650999e-13,
- 2.2204460492503131e-16, -1.5987211554602254e-14,
- -2.1094237467877974e-14}, /* L551 */
-{3.4500450717833022e+00, 2.1143330142248118e-13,
- 2.2204460492503131e-16, 9.7699626167013776e-15,
- 3.3084646133829665e-14}, /* L552 */
-{2.8512703212496340e+00, 1.7505441540777156e-13,
- 2.2204460492503131e-16, -1.6231460620019789e-13,
- -4.4453329905991268e-13}, /* L553 */
-{3.5798792942105342e+00, 2.2018498135878417e-13,
- 2.2204460492503131e-16, -9.9253938401488995e-14,
- -3.4638958368304884e-14}, /* L554 */
-{3.6126183122617292e+00, 2.2259971643734389e-13,
- 2.2204460492503131e-16, 4.8827608623014385e-13,
- 7.3052675020335300e-13}, /* L555 */
-{3.4109766045432273e+00, 2.1055379662016094e-13,
- 2.2204460492503131e-16, -1.3833378886829450e-13,
- 1.6475709685437323e-13}, /* L556 */
-{3.7100597133509452e+00, 2.2942758803878860e-13,
- 2.2204460492503131e-16, -1.3544720900426910e-13,
- 4.0856207306205761e-14}, /* L557 */
-{3.9288816466493639e+00, 2.4339558146735385e-13,
- 2.2204460492503131e-16, 3.6837199957062694e-13,
- -3.7869707369964090e-13}, /* L558 */
-{3.7361418516033682e+00, 2.3187007869296394e-13,
- 2.2204460492503131e-16, 3.2196467714129540e-14,
- 6.9944050551384862e-14}, /* L559 */
-{3.1678621408127698e+00, 1.9695356456850277e-13,
- 2.2204460492503131e-16, 8.9772633771190158e-13,
- 1.3233858453531866e-13}, /* L560 */
-{3.8489365537780320e+00, 2.3972490659218693e-13,
- 2.2204460492503131e-16, 8.4154905266586866e-14,
- -6.6280314570121845e-14}, /* L561 */
-{4.2070795912759431e+00, 2.6249835638481045e-13,
- 2.2204460492503131e-16, 6.0174087934683484e-14,
- 1.9251267247000214e-13}, /* L562 */
-{3.2797565066425833e+00, 2.0500268149703516e-13,
- 2.2204460492503131e-16, -3.2363001167823313e-13,
- 1.8940404800105171e-13}, /* L563 */
-{3.4286401611612241e+00, 2.1468937738688965e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- -2.4791280139879746e-13}, /* L564 */
-{4.7283260439843460e+00, 2.9659608102861057e-13,
- 2.2204460492503131e-16, 8.6597395920762210e-15,
- -7.0055072853847378e-14}, /* L565 */
-{3.4169665217133280e+00, 2.1471713296250527e-13,
- 2.2204460492503131e-16, -8.1934459217336553e-14,
- -3.7414515929867775e-14}, /* L566 */
-{3.5410108776780125e+00, 2.2290502776911580e-13,
- 2.2204460492503131e-16, 4.0056846728475648e-13,
- -3.0020430585864233e-13}, /* L567 */
-{4.2552884037392840e+00, 2.6834090505190034e-13,
- 2.2204460492503131e-16, -2.4380497620768438e-13,
- -1.0313971898767704e-13}, /* L568 */
-{4.8330480469226238e+00, 3.0531133177191805e-13,
- 2.2204460492503131e-16, 5.3068660577082483e-13,
- -2.2515322939398175e-13}, /* L569 */
-{3.4495668459149043e+00, 2.1829760221692140e-13,
- 2.2204460492503131e-16, 3.5971225997855072e-14,
- 4.8849813083506888e-15}, /* L570 */
-{3.7478167711014123e+00, 2.3758772726978350e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- 4.4408920985006262e-14}, /* L571 */
-{3.2914169061786689e+00, 2.0902030106739744e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- -1.6431300764452317e-14}, /* L572 */
-{3.1466018230488029e+00, 2.0017321133991572e-13,
- 2.2204460492503131e-16, -1.1779466291272911e-12,
- -1.9406698470447736e-13}, /* L573 */
-{3.4616779353797815e+00, 2.2060131499301860e-13,
- 2.2204460492503131e-16, -6.0285110237146000e-14,
- 1.6053824936079764e-13}, /* L574 */
-{3.0834831257030380e+00, 1.9684254226604025e-13,
- 2.2204460492503131e-16, -5.5955240441107890e-14,
- -4.8294701571194310e-14}, /* L575 */
-{4.2599893598900733e+00, 2.7242097466739779e-13,
- 2.2204460492503131e-16, 1.6475709685437323e-13,
- 7.7049477908985864e-14}, /* L576 */
-{3.4150833775983482e+00, 2.1876944700238710e-13,
- 2.2204460492503131e-16, 5.6044058283077902e-13,
- 5.4689586193035211e-13}, /* L577 */
-{3.5103861611702145e+00, 2.2526425169644426e-13,
- 2.2204460492503131e-16, -2.7843283234574301e-12,
- -1.6138201885951275e-12}, /* L578 */
-{3.2763436837912034e+00, 2.1060930777139220e-13,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- -1.0591527654923993e-13}, /* L579 */
-{3.0184853657341568e+00, 1.9436882658929733e-13,
- 2.2204460492503131e-16, -4.1966430330830917e-14,
- -1.7208456881689926e-13}, /* L580 */
-{3.6032759086662818e+00, 2.3242519020527652e-13,
- 2.2204460492503131e-16, -1.9240165016753963e-13,
- 4.0856207306205761e-14}, /* L581 */
-{3.6976003354486204e+00, 2.3891999489933369e-13,
- 2.2204460492503131e-16, -1.1912693054227930e-13,
- 1.1590728377086634e-13}, /* L582 */
-{3.7444312935489728e+00, 2.4236168627567167e-13,
- 2.2204460492503131e-16, 4.1500136660488351e-13,
- 1.8252066524837574e-13}, /* L583 */
-{3.4246629373589004e+00, 2.2204460492503131e-13,
- 2.2204460492503131e-16, -1.2134737659152961e-13,
- -4.2899017671516049e-13}, /* L584 */
-{3.9927413421108309e+00, 2.5932034297682094e-13,
- 2.2204460492503131e-16, 8.9928064994637680e-14,
- -2.6956215037898801e-13}, /* L585 */
-{3.9078559948042000e+00, 2.5424107263916085e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- 4.3520742565306136e-14}, /* L586 */
-{3.4863768803780717e+00, 2.2720714198953829e-13,
- 2.2204460492503131e-16, 1.9539925233402755e-13,
- -1.1024514634527804e-13}, /* L587 */
-{3.3971142031879165e+00, 2.2176704916887502e-13,
- 2.2204460492503131e-16, 1.0236256287043943e-13,
- 7.7049477908985864e-14}, /* L588 */
-{3.1502596391166393e+00, 2.0600188221919780e-13,
- 2.2204460492503131e-16, -3.3639757646142243e-14,
- -7.4606987254810520e-14}, /* L589 */
-{4.1186505658212296e+00, 2.6978419498391304e-13,
- 2.2204460492503131e-16, 4.2188474935755949e-14,
- -3.9857006584043120e-14}, /* L590 */
-{4.2961150690438856e+00, 2.8188562595232725e-13,
- 2.2204460492503131e-16, 5.3068660577082483e-14,
- -6.4948046940571658e-14}, /* L591 */
-{3.7761883901519040e+00, 2.4819035715495374e-13,
- 2.2204460492503131e-16, -1.0158540675320182e-13,
- 6.9944050551384862e-14}, /* L592 */
-{3.9793486053963019e+00, 2.6198487823592131e-13,
- 2.2204460492503131e-16, -2.1205259770340490e-14,
- 1.0391687510491465e-13}, /* L593 */
-{3.6843492471672117e+00, 2.4297230893921551e-13,
- 2.2204460492503131e-16, -1.7008616737257398e-13,
- -2.2204460492503131e-16}, /* L594 */
-{3.4941231597602083e+00, 2.3081536681957004e-13,
- 2.2204460492503131e-16, -3.6337599595981374e-13,
- -3.6082248300317588e-13}, /* L595 */
-{3.2298708676020613e+00, 2.1371793224034263e-13,
- 2.2204460492503131e-16, -1.6853185513809876e-13,
- 8.9039886574937555e-14}, /* L596 */
-{4.0860617229898279e+00, 2.7082502906949912e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- 6.0396132539608516e-14}, /* L597 */
-{4.1684848375184460e+00, 2.7675084446343590e-13,
- 2.2204460492503131e-16, -1.8651746813702630e-14,
- 5.5511151231257827e-15}, /* L598 */
-{3.8155318962521596e+00, 2.5374147227807953e-13,
- 2.2204460492503131e-16, -1.6653345369377348e-14,
- -2.4091839634365897e-13}, /* L599 */
-{4.4125069615920358e+00, 2.9393154576951019e-13,
- 2.2204460492503131e-16, 4.8829829069063635e-12,
- 5.8730798002670781e-13}, /* L600 */
-{3.9715120895070544e+00, 2.6499635819021705e-13,
- 2.2204460492503131e-16, 3.3351099659739702e-13,
- 1.2101430968414206e-13}, /* L601 */
-{3.1719319146781393e+00, 2.1199708655217364e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- 2.9221070008134120e-13}, /* L602 */
-{4.0232235944730350e+00, 2.6934010577406298e-13,
- 2.2204460492503131e-16, -2.4851232183209504e-12,
- 5.6616933363784483e-12}, /* L603 */
-{5.0861007395898508e+00, 3.4106051316484809e-13,
- 2.2204460492503131e-16, -1.6362466936925557e-12,
- 8.5931262105987116e-14}, /* L604 */
-{3.7619894063921393e+00, 2.5268676040468563e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-14,
- -9.9253938401488995e-14}, /* L605 */
-{3.0948893712772794e+00, 2.0822232826844811e-13,
- 2.2204460492503131e-16, -2.8754776337791554e-13,
- 2.0872192862952943e-14}, /* L606 */
-{4.1513656929607947e+00, 2.7976232441773163e-13,
- 2.2204460492503131e-16, -1.6453505224944820e-13,
- 1.1435297153639112e-13}, /* L607 */
-{4.8602050364003384e+00, 3.2807090377673376e-13,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -1.2101430968414206e-14}, /* L608 */
-{4.2198342438689709e+00, 2.8531343954085742e-13,
- 2.2204460492503131e-16, 1.0502709812953981e-13,
- 8.3266726846886741e-14}, /* L609 */
-{3.3516446321756805e+00, 2.2698509738461325e-13,
- 2.2204460492503131e-16, -1.2168044349891716e-13,
- 4.5963233219481481e-14}, /* L610 */
-{3.4791380586190810e+00, 2.3600565945969265e-13,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- 1.0724754417879012e-13}, /* L611 */
-{3.5996788818496355e+00, 2.4458213232492199e-13,
- 2.2204460492503131e-16, -2.7222668563808838e-13,
- 5.8397731095283234e-14}, /* L612 */
-{4.8481928039935545e+00, 3.2995134402469262e-13,
- 2.2204460492503131e-16, 1.2874146193553315e-12,
- 1.1313172620930345e-12}, /* L613 */
-{4.4511470877495132e+00, 3.0342395263005528e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-14,
- 3.9079850466805510e-14}, /* L614 */
-{3.7178920446053061e+00, 2.5385249458054204e-13,
- 2.2204460492503131e-16, 2.8488322811881517e-13,
- -1.6742163211347361e-13}, /* L615 */
-{3.7861261032654450e+00, 2.5893176491820213e-13,
- 2.2204460492503131e-16, -4.3665071558507407e-13,
- -3.9701575360595598e-13}, /* L616 */
-{3.0968444321047475e+00, 2.1213586443025179e-13,
- 2.2204460492503131e-16, -1.1357581541915351e-13,
- 4.2854608750531042e-14}, /* L617 */
-{4.1828544957596021e+00, 2.8699265186560297e-13,
- 2.2204460492503131e-16, 5.7731597280508140e-14,
- 5.7287508070658077e-14}, /* L618 */
-{3.9692737300135299e+00, 2.7277919506518700e-13,
- 2.2204460492503131e-16, -4.1544545581473358e-13,
- -1.4633849687584188e-12}, /* L619 */
-{3.9080706819197411e+00, 2.6900703886667543e-13,
- 2.2204460492503131e-16, -1.6764367671839864e-13,
- -1.2589929099249275e-13}, /* L620 */
-{4.5197333788017682e+00, 3.1161184743666581e-13,
- 2.2204460492503131e-16, -2.3159252293680765e-13,
- -1.5543122344752192e-13}, /* L621 */
-{3.6804720437131397e+00, 2.5415780591231396e-13,
- 2.2204460492503131e-16, -6.7964078809268358e-11,
- 5.9227289739283151e-11}, /* L622 */
-{3.4067068194088987e+00, 2.3563095918888166e-13,
- 2.2204460492503131e-16, -1.3988810110276972e-14,
- 1.0658141036401503e-14}, /* L623 */
-{3.6893087052642484e+00, 2.5558721805651885e-13,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- -5.9618976422370906e-14}, /* L624 */
-{2.5194039748817145e+00, 1.7481849301503871e-13,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- 3.5305092183079978e-14}, /* L625 */
-{3.8027216545321112e+00, 2.6428859101201851e-13,
- 2.2204460492503131e-16, 1.4988010832439613e-13,
- -1.0014211682118912e-13}, /* L626 */
-{3.2010616691367817e+00, 2.2282869993617282e-13,
- 2.2204460492503131e-16, -4.6751491566965342e-13,
- 6.8167693711984612e-14}, /* L627 */
-{3.5461839387884986e+00, 2.4724666758402236e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- 1.4210854715202004e-14}, /* L628 */
-{3.4173344853381051e+00, 2.3864243914317740e-13,
- 2.2204460492503131e-16, -1.6431300764452317e-14,
- 1.4321877017664519e-13}, /* L629 */
-{3.6218311110141821e+00, 2.5332513864384509e-13,
- 2.2204460492503131e-16, -7.2830630415410269e-14,
- -1.0091927293842673e-13}, /* L630 */
-{3.4096725743915020e+00, 2.3886448374810243e-13,
- 2.2204460492503131e-16, 2.8954616482224083e-13,
- -5.0293103015519591e-14}, /* L631 */
-{3.6265880001747548e+00, 2.5446311724408588e-13,
- 2.2204460492503131e-16, -8.3932860661661834e-14,
- 3.3084646133829665e-14}, /* L632 */
-{3.4431333943413200e+00, 2.4197310821705287e-13,
- 2.2204460492503131e-16, 7.0610184366159956e-14,
- 9.3924867883288243e-14}, /* L633 */
-{5.6642439522805077e+00, 3.9869496593070153e-13,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- 3.1685765122801968e-13}, /* L634 */
-{4.8469072532984470e+00, 3.4170236085095951e-13,
- 2.2204460492503131e-16, -4.2077452633293433e-14,
- -5.5289106626332796e-14}, /* L635 */
-{3.4229613752683701e+00, 2.4169555246089658e-13,
- 2.2204460492503131e-16, 3.1175062531474396e-13,
- -3.0253577421035516e-13}, /* L636 */
-{5.1303063672752991e+00, 3.6282088444750116e-13,
- 2.2204460492503131e-16, 8.5487172896137054e-14,
- 2.5268676040468563e-13}, /* L637 */
-{3.9185014800455251e+00, 2.7755575615628914e-13,
- 2.2204460492503131e-16, 3.2573943542502093e-13,
- 1.7252865802674933e-13}, /* L638 */
-{3.8914625167384687e+00, 2.7607256758432897e-13,
- 2.2204460492503131e-16, 4.7428727611986687e-13,
- -9.6034291630076041e-14}, /* L639 */
-{3.7640684385968597e+00, 2.6745272663220021e-13,
- 2.2204460492503131e-16, -1.3533618670180658e-13,
- -1.7585932710062480e-13}, /* L640 */
-{4.0070266027255901e+00, 2.8516078387497146e-13,
- 2.2204460492503131e-16, -1.2423395645555502e-13,
- 1.6875389974302379e-14}, /* L641 */
-{3.5171395054021768e+00, 2.5068835896036035e-13,
- 2.2204460492503131e-16, -9.6367358537463588e-14,
- -1.3289369604763124e-13}, /* L642 */
-{3.8849205927161270e+00, 2.7733371155136410e-13,
- 2.2204460492503131e-16, -2.8044233602031454e-13,
- -1.5420997812043424e-13}, /* L643 */
-{5.7523382680512256e+00, 4.1128211947238924e-13,
- 2.2204460492503131e-16, -6.5836225360271783e-14,
- 2.9753977059954195e-14}, /* L644 */
-{4.3341153650952009e+00, 3.1036284653396251e-13,
- 2.2204460492503131e-16, 3.0242475190789264e-13,
- 2.8821389719269064e-13}, /* L645 */
-{4.1141705776431214e+00, 2.9506952436975098e-13,
- 2.2204460492503131e-16, -9.2148511043887993e-15,
- 1.4432899320127035e-13}, /* L646 */
-{4.6263596947094943e+00, 3.3231750684592498e-13,
- 2.2204460492503131e-16, 3.5238478801602469e-13,
- -4.1111558601869547e-13}, /* L647 */
-{3.8368116089205375e+00, 2.7602919949742954e-13,
- 2.2204460492503131e-16, -8.6597395920762210e-14,
- 1.3189449532546860e-13}, /* L648 */
-{3.5631797356750190e+00, 2.5673907444456745e-13,
- 2.2204460492503131e-16, -7.2497563508022722e-14,
- -1.0547118733938987e-13}, /* L649 */
-{3.9469293040204554e+00, 2.8482771696758391e-13,
- 2.2204460492503131e-16, -2.1083135237631723e-13,
- -2.4003021792395884e-13}, /* L650 */
-{3.4324170896804991e+00, 2.4807933485249123e-13,
- 2.2204460492503131e-16, -7.0632388826652459e-13,
- 1.7799095530790510e-12}, /* L651 */
-{4.2409959548516110e+00, 3.0699054409666360e-13,
- 2.2204460492503131e-16, 3.1707969583294471e-13,
- -2.3536728122053319e-14}, /* L652 */
-{4.0865301839478851e+00, 2.9626301412122302e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- 1.2234657731369225e-13}, /* L653 */
-{4.6445027404988961e+00, 3.3723024372989130e-13,
- 2.2204460492503131e-16, -3.5593750169482519e-13,
- -8.4476869943728161e-13}, /* L654 */
-{4.9038245306861841e+00, 3.5660363550960028e-13,
- 2.2204460492503131e-16, 4.2321701698710967e-13,
- 3.1041835768519377e-13}, /* L655 */
-{3.7496248182485910e+00, 2.7308710848217288e-13,
- 2.2204460492503131e-16, 2.2004620348070603e-13,
- -2.0650148258027912e-14}, /* L656 */
-{5.3264924219090117e+00, 3.8852254746757353e-13,
- 2.2204460492503131e-16, 1.2811973704174306e-13,
- 1.3700152123874432e-13}, /* L657 */
-{4.6003112093102319e+00, 3.3606450955403488e-13,
- 2.2204460492503131e-16, 2.9465319073551655e-13,
- 9.8587804586713901e-14}, /* L658 */
-{3.8148533252463741e+00, 2.7910833366728838e-13,
- 2.2204460492503131e-16, 1.0613732115416497e-13,
- 2.1094237467877974e-14}, /* L659 */
-{4.2636430904133915e+00, 3.1241675912951905e-13,
- 2.2204460492503131e-16, 4.2699177527083521e-13,
- -2.0461410343841635e-13}, /* L660 */
-{4.8751967990432004e+00, 3.5776936968545670e-13,
- 2.2204460492503131e-16, 3.4861002973229915e-14,
- -3.5860203695392556e-14}, /* L661 */
-{4.4786023500970522e+00, 3.2916226168355767e-13,
- 2.2204460492503131e-16, 3.6104452760810091e-13,
- 8.4821039081361960e-14}, /* L662 */
-{5.1900534372365685e+00, 3.8202774277351637e-13,
- 2.2204460492503131e-16, 1.0895728763671286e-12,
- 1.1282086376240841e-12}, /* L663 */
-{4.8245558045074812e+00, 3.5565994593866890e-13,
- 2.2204460492503131e-16, 6.5281113847959205e-14,
- -2.4202861936828413e-14}, /* L664 */
-{4.8421129025935530e+00, 3.5749181392930041e-13,
- 2.2204460492503131e-16, -5.4733995114020217e-14,
- 5.1514348342607263e-14}, /* L665 */
-{3.4973778902104007e+00, 2.5859869801081459e-13,
- 2.2204460492503131e-16, -1.7541523789077473e-14,
- -2.5646151868841116e-14}, /* L666 */
-{4.4996322865068796e+00, 3.3320568526562511e-13,
- 2.2204460492503131e-16, 2.8488322811881517e-13,
- 1.4233059175694507e-13}, /* L667 */
-{3.8338383839678825e+00, 2.8432811660650259e-13,
- 2.2204460492503131e-16, 2.2071233729548112e-13,
- -2.5333068975896822e-12}, /* L668 */
-{4.7481390307833102e+00, 3.5266234377218098e-13,
- 2.2204460492503131e-16, 2.0738966099997924e-13,
- -1.1546319456101628e-14}, /* L669 */
-{3.6917968693496213e+00, 2.7461366514103247e-13,
- 2.2204460492503131e-16, -1.9606538614880265e-13,
- -3.2751579226442118e-14}, /* L670 */
-{4.2913629552626462e+00, 3.1968871994081383e-13,
- 2.2204460492503131e-16, -3.8424818882276668e-13,
- 3.1918911957973251e-12}, /* L671 */
-{5.0945020852499958e+00, 3.8008485248042234e-13,
- 2.2204460492503131e-16, 1.0524914273446484e-13,
- 9.2148511043887993e-14}, /* L672 */
-{4.3536472848260690e+00, 3.2529534621517087e-13,
- 2.2204460492503131e-16, -2.4757973449140991e-13,
- 8.0602191587786365e-14}, /* L673 */
-{4.5215204867498278e+00, 3.3834046675451646e-13,
- 2.2204460492503131e-16, -7.1720407390785113e-14,
- 8.2156503822261584e-15}, /* L674 */
-{4.3461179680110211e+00, 3.2569780206159749e-13,
- 2.2204460492503131e-16, -6.7723604502134549e-14,
- 1.7896795156957523e-13}, /* L675 */
-{3.9535935157191213e+00, 2.9672098111888090e-13,
- 2.2204460492503131e-16, 5.5289106626332796e-14,
- 4.1522341120980855e-14}, /* L676 */
-{4.1946151850818199e+00, 3.1527558341792883e-13,
- 2.2204460492503131e-16, 1.1546319456101628e-13,
- 5.5733195836182858e-14}, /* L677 */
-{4.6858481008551056e+00, 3.5271785492341223e-13,
- 2.2204460492503131e-16, -3.8768988019910466e-13,
- 3.2596148002994596e-13}, /* L678 */
-{4.4421093647420635e+00, 3.3486408090865893e-13,
- 2.2204460492503131e-16, -4.8339110492179316e-13,
- -9.0394358664980246e-13}, /* L679 */
-{4.3397127290983057e+00, 3.2762681456688370e-13,
- 2.2204460492503131e-16, -2.2180035585961377e-12,
- -1.2585488207150775e-12}, /* L680 */
-{4.7000808367864373e+00, 3.5535463460689698e-13,
- 2.2204460492503131e-16, -6.0773608367981069e-13,
- 2.8865798640254070e-14}, /* L681 */
-{3.3592428365579097e+00, 2.5435209494162336e-13,
- 2.2204460492503131e-16, -1.4610535004067060e-13,
- -2.1194157540094238e-13}, /* L682 */
-{3.2137678815120632e+00, 2.4369395390522186e-13,
- 2.2204460492503131e-16, 5.7509552675583109e-14,
- 1.5765166949677223e-14}, /* L683 */
-{5.4506664942818084e+00, 4.1391889915587399e-13,
- 2.2204460492503131e-16, -1.6209256159527285e-14,
- -8.5631501889338324e-13}, /* L684 */
-{5.6711768306619570e+00, 4.3129388949125769e-13,
- 2.2204460492503131e-16, -4.2765790908561030e-13,
- 3.5527136788005009e-13}, /* L685 */
-{3.5466528258999066e+00, 2.7011726189130059e-13,
- 2.2204460492503131e-16, 8.4821039081361960e-14,
- 1.6653345369377348e-14}, /* L686 */
-{4.2600139990695762e+00, 3.2492064594435988e-13,
- 2.2204460492503131e-16, -3.6515235279921399e-13,
- 3.0753177782116836e-13}, /* L687 */
-{4.9076203881336875e+00, 3.7485986537078020e-13,
- 2.2204460492503131e-16, 1.0991207943789050e-13,
- 6.0462745921086025e-13}, /* L688 */
-{4.0500789587723665e+00, 3.0980773502164993e-13,
- 2.2204460492503131e-16, 4.9671378121729504e-13,
- -2.5646151868841116e-14}, /* L689 */
-{4.5449347067890047e+00, 3.4816594052244909e-13,
- 2.2204460492503131e-16, -2.6556534749033744e-12,
- -7.8859141439124869e-13}, /* L690 */
-{4.2959546793443808e+00, 3.2956970485997772e-13,
- 2.2204460492503131e-16, 9.3902663422795740e-13,
- 1.7363888105137448e-13}, /* L691 */
-{5.2155971015136320e+00, 4.0070030626893072e-13,
- 2.2204460492503131e-16, 1.4854784069484595e-13,
- -2.9332092310596636e-13}, /* L692 */
-{4.4109016200051503e+00, 3.3936742305229473e-13,
- 2.2204460492503131e-16, 1.3056222769591841e-13,
- -9.1038288019262836e-15}, /* L693 */
-{4.5295460511727974e+00, 3.4899860779091796e-13,
- 2.2204460492503131e-16, -2.8029800702711327e-12,
- -1.5872858583065863e-12}, /* L694 */
-{4.8611587486183696e+00, 3.7508884886960914e-13,
- 2.2204460492503131e-16, -7.1720407390785113e-14,
- 2.6623148130511254e-13}, /* L695 */
-{4.1415295226265521e+00, 3.2002178684820137e-13,
- 2.2204460492503131e-16, 1.6875389974302379e-14,
- 1.5987211554602254e-14}, /* L696 */
-{4.7173675574003537e+00, 3.6504133049675147e-13,
- 2.2204460492503131e-16, -7.2719608112947753e-14,
- -4.0811798385220754e-13}, /* L697 */
-{3.8159085991792860e+00, 2.9570790260891044e-13,
- 2.2204460492503131e-16, 4.6118664442929003e-13,
- 7.0454753142712434e-13}, /* L698 */
-{3.4928524348743517e+00, 2.7106095146223197e-13,
- 2.2204460492503131e-16, 1.7386092565629951e-13,
- 1.8984813721090177e-13}, /* L699 */
-{5.3737584782153371e+00, 4.1762426850056045e-13,
- 2.2204460492503131e-16, -8.8595797365087492e-14,
- -4.2077452633293433e-14}, /* L700 */
-{4.8238307204341222e+00, 3.7542191577699668e-13,
- 2.2204460492503131e-16, -5.9618976422370906e-14,
- -2.2992718839986992e-13}, /* L701 */
-{4.7792098193953061e+00, 3.7247982476174002e-13,
- 2.2204460492503131e-16, 7.5939254884360707e-14,
- 2.4957813593573519e-13}, /* L702 */
-{5.6379889804414214e+00, 4.4003689581018079e-13,
- 2.2204460492503131e-16, 9.3924867883288243e-14,
- -2.3714363805993344e-13}, /* L703 */
-{4.3522795938926437e+00, 3.4017233474514796e-13,
- 2.2204460492503131e-16, 1.2079226507921703e-13,
- -4.9671378121729504e-13}, /* L704 */
-{3.8262471714487050e+00, 2.9948266089263598e-13,
- 2.2204460492503131e-16, 1.1723955140041653e-13,
- 6.8833827526759706e-14}, /* L705 */
-{3.8665075166470726e+00, 3.0306313014705211e-13,
- 2.2204460492503131e-16, 1.1390888232654106e-13,
- -1.4432899320127035e-15}, /* L706 */
-{4.8041094182325166e+00, 3.7708725031393442e-13,
- 2.2204460492503131e-16, -8.6042284408449632e-14,
- 2.9087843245179101e-14}, /* L707 */
-{4.0826335598427415e+00, 3.2090996526790150e-13,
- 2.2204460492503131e-16, -5.1181281435219717e-14,
- -2.1616042289451798e-13}, /* L708 */
-{4.2207400864541018e+00, 3.3223424011907809e-13,
- 2.2204460492503131e-16, -4.1855408028368402e-14,
- -1.4210854715202004e-14}, /* L709 */
-{4.7147961709577855e+00, 3.7164715749327115e-13,
- 2.2204460492503131e-16, -4.8872017543999391e-13,
- -4.9871218266162032e-13}, /* L710 */
-{4.5260707835703942e+00, 3.5727323877132733e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-14,
- -9.9364960703951510e-14}, /* L711 */
-{4.7689681981897074e+00, 3.7697622801147190e-13,
- 2.2204460492503131e-16, 2.4624746686185972e-13,
- -1.9928503292021560e-13}, /* L712 */
-{4.5708347009165351e+00, 3.6182168372533852e-13,
- 2.2204460492503131e-16, 6.5059069243034173e-14,
- -6.9499961341534799e-14}, /* L713 */
-{3.5245153645720153e+00, 2.7938762414692064e-13,
- 2.2204460492503131e-16, -1.0291767438275201e-13,
- 3.1441516057384433e-13}, /* L714 */
-{4.1944122119595129e+00, 3.3295588508508445e-13,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- 1.3766765505351941e-14}, /* L715 */
-{4.4301745872834886e+00, 3.5216274341109965e-13,
- 2.2204460492503131e-16, 5.3956838996782608e-14,
- -5.2624571367232420e-14}, /* L716 */
-{4.6199515009225296e+00, 3.6776137690708310e-13,
- 2.2204460492503131e-16, -1.9162449405030202e-13,
- 4.7295500849031669e-14}, /* L717 */
-{5.0135872971584599e+00, 3.9965253328944073e-13,
- 2.2204460492503131e-16, -2.2304380564719395e-13,
- 1.3455903058456897e-13}, /* L718 */
-{4.7103690449344020e+00, 3.7600478286492489e-13,
- 2.2204460492503131e-16, -2.9864999362416711e-14,
- -2.5535129566378600e-14}, /* L719 */
-{4.8441048647999763e+00, 3.8721803541363897e-13,
- 2.2204460492503131e-16, 1.8007817459420039e-13,
- -3.3484326422694721e-13}, /* L720 */
-{6.0887752096190830e+00, 4.8738790781044372e-13,
- 2.2204460492503131e-16, 4.3831605012201180e-13,
- 6.8212102632969618e-13}, /* L721 */
-{4.8095643747872776e+00, 3.8552494530108561e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- 4.3298697960381105e-14}, /* L722 */
-{3.7109325490925111e+00, 2.9787283750692950e-13,
- 2.2204460492503131e-16, -1.4221956945448255e-13,
- 1.9917401061775308e-13}, /* L723 */
-{2.9392311565829816e+00, 2.3625545964023331e-13,
- 2.2204460492503131e-16, 1.6231460620019789e-13,
- -1.3133938381315602e-13}, /* L724 */
-{5.0082837636729680e+00, 4.0312198024139434e-13,
- 2.2204460492503131e-16, -8.1046280797636427e-15,
- -1.1146639167236572e-13}, /* L725 */
-{4.3023483856385631e+00, 3.4677816174166765e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-13,
- 1.8962609260597674e-13}, /* L726 */
-{4.9697464927871566e+00, 4.0112357879706906e-13,
- 2.2204460492503131e-16, -2.3225865675158275e-13,
- 7.6605388699135801e-13}, /* L727 */
-{4.9302962401021091e+00, 3.9848679911358431e-13,
- 2.2204460492503131e-16, -4.4075854077618715e-14,
- 7.4162898044960457e-14}, /* L728 */
-{4.2623524037552105e+00, 3.4497404932665177e-13,
- 2.2204460492503131e-16, 1.3455903058456897e-13,
- -1.3877787807814457e-14}, /* L729 */
-{4.4198699869586271e+00, 3.5821345889530676e-13,
- 2.2204460492503131e-16, -2.2393198406689407e-13,
- 2.3558932582545822e-13}, /* L730 */
-{4.0752458276289465e+00, 3.3073543903583413e-13,
- 2.2204460492503131e-16, -7.7493567118835927e-14,
- 1.2390088954816747e-13}, /* L731 */
-{5.1038331889644875e+00, 4.1477932199995848e-13,
- 2.2204460492503131e-16, -4.9849013805669529e-14,
- -7.8825834748386114e-15}, /* L732 */
-{4.0702656304164728e+00, 3.3123503939691545e-13,
- 2.2204460492503131e-16, -9.3036689463588118e-14,
- 2.1804780203638074e-13}, /* L733 */
-{4.4332495011809545e+00, 3.6126657221302594e-13,
- 2.2204460492503131e-16, -1.0580425424677742e-13,
- -8.3710816056736803e-14}, /* L734 */
-{6.6578336333596253e+00, 5.4328763710032035e-13,
- 2.2204460492503131e-16, 2.6112445539183682e-13,
- 2.7489122089718876e-13}, /* L735 */
-{4.9028609961359546e+00, 4.0062397843598774e-13,
- 2.2204460492503131e-16, -7.5028872004168079e-13,
- 4.0745185003743245e-13}, /* L736 */
-{5.1010935296971418e+00, 4.1738834610782760e-13,
- 2.2204460492503131e-16, 7.6205708410270745e-13,
- -1.9650947535865271e-13}, /* L737 */
-{4.4783268486823467e+00, 3.6692870963861424e-13,
- 2.2204460492503131e-16, 1.7430501486614958e-13,
- 1.2012613126444194e-13}, /* L738 */
-{5.3596160337106147e+00, 4.3973158447840888e-13,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- 1.0591527654923993e-13}, /* L739 */
-{4.5187571292680468e+00, 3.7124470164684453e-13,
- 2.2204460492503131e-16, 1.6076029396572267e-13,
- 2.4691360067663481e-13}, /* L740 */
-{5.3566211367387799e+00, 4.4067527404934026e-13,
- 2.2204460492503131e-16, -4.5408121707168903e-14,
- -1.5942802633617248e-13}, /* L741 */
-{4.5161796319394183e+00, 3.7203573555188996e-13,
- 2.2204460492503131e-16, 1.0533796057643485e-12,
- -4.3076653355456074e-14}, /* L742 */
-{4.9966431456274902e+00, 4.1217029789208937e-13,
- 2.2204460492503131e-16, -1.0824674490095276e-12,
- 4.2059689064899430e-12}, /* L743 */
-{4.1418076098240588e+00, 3.4211522503824199e-13,
- 2.2204460492503131e-16, -7.5273121069585613e-14,
- -3.9346303992715548e-13}, /* L744 */
-{5.1630953941739959e+00, 4.2704728642206646e-13,
- 2.2204460492503131e-16, -1.1324274851176597e-14,
- 3.4416913763379853e-14}, /* L745 */
-{5.6132796335914863e+00, 4.6490589156178430e-13,
- 2.2204460492503131e-16, -6.1062266354383610e-14,
- -2.1183055309847987e-13}, /* L746 */
-{4.9156704060896903e+00, 4.0767389464235748e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- 4.6629367034256575e-14}, /* L747 */
-{3.4699252606164586e+00, 2.8815838604145938e-13,
- 2.2204460492503131e-16, 5.0803805606847163e-13,
- -2.7133850721838826e-13}, /* L748 */
-{6.1809176288450915e+00, 5.1397774925021622e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- 2.6001423236721166e-13}, /* L749 */
-{4.5946739157051839e+00, 3.8258285428582894e-13,
- 2.2204460492503131e-16, -5.9952043329758453e-15,
- -6.4737104565892878e-13}, /* L750 */
-{3.9394203297554444e+00, 3.2845948183535256e-13,
- 2.2204460492503131e-16, -9.4591001698063337e-14,
- 1.0522693827397234e-12}, /* L751 */
-{3.6948196591305940e+00, 3.0847546739209974e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- 3.9523939676655573e-14}, /* L752 */
-{4.5529620305162002e+00, 3.8062608620492711e-13,
- 2.2204460492503131e-16, 2.6800783814451279e-13,
- -9.2703622556200571e-14}, /* L753 */
-{4.7632701145100116e+00, 3.9873659929412497e-13,
- 2.2204460492503131e-16, -7.6916251146030845e-13,
- -8.3821838359199319e-14}, /* L754 */
-{4.7205372489498076e+00, 3.9568348597640579e-13,
- 2.2204460492503131e-16, 1.0635936575909000e-13,
- 3.4861002973229915e-14}, /* L755 */
-{3.7417387075954718e+00, 3.1405433809084116e-13,
- 2.2204460492503131e-16, -2.6001423236721166e-13,
- -7.9614093095869976e-13}, /* L756 */
-{5.0507014955972123e+00, 4.2447989567762079e-13,
- 2.2204460492503131e-16, -5.9618976422370906e-14,
- 2.9576341376014170e-13}, /* L757 */
-{5.6754706956541394e+00, 4.7761794519374234e-13,
- 2.2204460492503131e-16, 7.5051076464660582e-14,
- -5.9729998724833422e-14}, /* L758 */
-{5.0216647079327830e+00, 4.2315456694197451e-13,
- 2.2204460492503131e-16, 3.3084646133829665e-13,
- -1.4489520694382918e-12}, /* L759 */
-{4.3427700095113293e+00, 3.6642910927753292e-13,
- 2.2204460492503131e-16, 5.2446935683292395e-13,
- -1.4277468096679513e-13}, /* L760 */
-{5.3564473470918195e+00, 4.5255466041282943e-13,
- 2.2204460492503131e-16, -1.3111733920823099e-13,
- 3.2196467714129540e-14}, /* L761 */
-{4.7637870434160545e+00, 4.0301095793893182e-13,
- 2.2204460492503131e-16, 4.5052850339288852e-13,
- -4.0967229608668276e-14}, /* L762 */
-{6.3949969832663172e+00, 5.4171944707803732e-13,
- 2.2204460492503131e-16, -1.5254464358349651e-13,
- 9.1260332624187868e-14}, /* L763 */
-{5.7887035046049542e+00, 4.9100307153437939e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- -1.4266365866433262e-13}, /* L764 */
-{4.8777854734637227e+00, 4.1427972163887716e-13,
- 2.2204460492503131e-16, -2.7899904608830184e-13,
- 8.7996276931789907e-13}, /* L765 */
-{4.5625479947081411e+00, 3.8801253876563635e-13,
- 2.2204460492503131e-16, -1.0191847366058937e-13,
- -1.7574830479816228e-13}, /* L766 */
-{5.2773877264226297e+00, 4.4939052479264774e-13,
- 2.2204460492503131e-16, -8.7030382900366021e-13,
- -5.1403326040144748e-13}, /* L767 */
-{4.8580805812941774e+00, 4.1422421048764591e-13,
- 2.2204460492503131e-16, -6.0729199446996063e-14,
- -1.0358380819752711e-13}, /* L768 */
-{4.9382392605311702e+00, 4.2160719360140320e-13,
- 2.2204460492503131e-16, -4.3820502781954929e-13,
- 7.6871842225045839e-13}, /* L769 */
-{5.2013069074268543e+00, 4.4464432136237519e-13,
- 2.2204460492503131e-16, -2.8432811660650259e-13,
- -9.1260332624187868e-13}, /* L770 */
-{4.9776647112730039e+00, 4.2607844336073342e-13,
- 2.2204460492503131e-16, -2.5979218776228663e-14,
- -5.3068660577082483e-14}, /* L771 */
-{4.3675587041982835e+00, 3.7433944832798716e-13,
- 2.2204460492503131e-16, -4.0523140398818214e-14,
- 1.5321077739827160e-14}, /* L772 */
-{4.2723223937711499e+00, 3.6665115388245795e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-13,
- 3.8480330033507926e-13}, /* L773 */
-{3.7810137172688303e+00, 3.2490676815655206e-13,
- 2.2204460492503131e-16, -3.5638159090467525e-14,
- 4.1522341120980855e-14}, /* L774 */
-{4.5129103458570157e+00, 3.8830050286264850e-13,
- 2.2204460492503131e-16, -9.2925667161125602e-14,
- -4.0745185003743245e-14}, /* L775 */
-{4.1140528825232021e+00, 3.5443870061158123e-13,
- 2.2204460492503131e-16, -1.2956302697375577e-13,
- -9.4257934790675790e-14}, /* L776 */
-{4.5540612390278836e+00, 3.9285241726361164e-13,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -4.4741987892393809e-14}, /* L777 */
-{5.4971166419901918e+00, 4.7481463205656382e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- -3.4861002973229915e-14}, /* L778 */
-{4.4338965974416409e+00, 3.8347103270552907e-13,
- 2.2204460492503131e-16, -2.4769075679387242e-13,
- 2.8888003100746573e-13}, /* L779 */
-{5.2208415702906468e+00, 4.5211057120297937e-13,
- 2.2204460492503131e-16, -5.2735593669694936e-14,
- 7.5495165674510645e-14}, /* L780 */
-{4.8950141249209009e+00, 4.2443826231419735e-13,
- 2.2204460492503131e-16, 1.7497114868092467e-12,
- 3.5271785492341223e-12}, /* L781 */
-{4.3660554817053683e+00, 3.7905789618264407e-13,
- 2.2204460492503131e-16, 7.6605388699135801e-14,
- -2.8699265186560297e-13}, /* L782 */
-{4.0536462422094957e+00, 3.5238478801602469e-13,
- 2.2204460492503131e-16, 2.4269475318305922e-13,
- -6.2838623193783860e-14}, /* L783 */
-{4.7264105181151024e+00, 4.1139314177485176e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- -2.0428103653102880e-13}, /* L784 */
-{3.6536681847999350e+00, 3.1842584125030271e-13,
- 2.2204460492503131e-16, 1.6253665080512292e-13,
- 7.1942451995710144e-14}, /* L785 */
-{4.6628572293955886e+00, 4.0689673852511987e-13,
- 2.2204460492503131e-16, -8.2045481519799068e-14,
- -6.1395333261771157e-14}, /* L786 */
-{4.9796774879833592e+00, 4.3509640335059885e-13,
- 2.2204460492503131e-16, -1.1657341758564144e-13,
- 1.4588330543574557e-13}, /* L787 */
-{7.0006455627310293e+00, 6.1245453153446761e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-13,
- -4.0201175721676918e-13}, /* L788 */
-{5.7240267747097890e+00, 5.0140447349633632e-13,
- 2.2204460492503131e-16, -1.9835244557953047e-12,
- 7.7871042947208480e-13}, /* L789 */
-{5.2451823259921557e+00, 4.6004172693514533e-13,
- 2.2204460492503131e-16, 6.5503158452884236e-14,
- 4.7961634663806763e-14}, /* L790 */
-{4.5335090488805534e+00, 3.9812597663058114e-13,
- 2.2204460492503131e-16, 5.3912430075797602e-13,
- -2.1094237467877974e-14}, /* L791 */
-{5.0157907417169820e+00, 4.4103609653234344e-13,
- 2.2204460492503131e-16, -7.8093087552133511e-13,
- 4.4875214655348827e-13}, /* L792 */
-{5.1481796229498311e+00, 4.5324854980322016e-13,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- 7.3496764230185363e-14}, /* L793 */
-{5.5157517752876659e+00, 4.8622217363458731e-13,
- 2.2204460492503131e-16, 1.0746958878371515e-13,
- -1.0247358517290195e-13}, /* L794 */
-{4.8918316172383429e+00, 4.3176573427672338e-13,
- 2.2204460492503131e-16, 9.4702024000525853e-13,
- -1.1590728377086634e-12}, /* L795 */
-{4.4403336386769743e+00, 3.9240832805376158e-13,
- 2.2204460492503131e-16, -2.8954616482224083e-13,
- 9.7033492352238682e-13}, /* L796 */
-{4.5155341003495266e+00, 3.9955538877478602e-13,
- 2.2204460492503131e-16, 6.7945649107059580e-14,
- -9.9920072216264089e-16}, /* L797 */
-{5.6860991965622336e+00, 5.0376369742366478e-13,
- 2.2204460492503131e-16, 1.2034817586936697e-13,
- 3.5971225997855072e-14}, /* L798 */
-{4.2180917612860727e+00, 3.7417291487429338e-13,
- 2.2204460492503131e-16, -1.5991652446700755e-12,
- -1.4832579608992091e-13}, /* L799 */
-{5.4818836488013147e+00, 4.8688830744936240e-13,
- 2.2204460492503131e-16, -9.9387165164444013e-13,
- 2.4669155607170978e-13}, /* L800 */
-{5.5269281955104166e+00, 4.9150267189546071e-13,
- 2.2204460492503131e-16, -9.3913765653041992e-13,
- 7.5495165674510645e-13}, /* L801 */
-{6.8712701924664801e+00, 6.1181615329530814e-13,
- 2.2204460492503131e-16, 5.1292303737682232e-14,
- 1.0058620603103918e-13}, /* L802 */
-{3.6594080150661163e+00, 3.2623903578610225e-13,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- 3.0198066269804258e-14}, /* L803 */
-{5.1834658894334353e+00, 4.6268544551253399e-13,
- 2.2204460492503131e-16, -2.8088642523016460e-14,
- -2.0095036745715333e-14}, /* L804 */
-{4.1590127728796631e+00, 3.7170266864450241e-13,
- 2.2204460492503131e-16, -3.9412917374193057e-14,
- 4.1078251911130792e-14}, /* L805 */
-{5.6668823898113025e+00, 5.0709436649754025e-13,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- 1.2212453270876722e-13}, /* L806 */
-{4.6437495817430259e+00, 4.1605607847827741e-13,
- 2.2204460492503131e-16, 5.6399329650957952e-14,
- -4.4630965589931293e-14}, /* L807 */
-{4.9084235856384737e+00, 4.4031445156633708e-13,
- 2.2204460492503131e-16, 2.4558133304708463e-13,
- -1.0658141036401503e-14}, /* L808 */
-{5.2014915191615065e+00, 4.6718184876226587e-13,
- 2.2204460492503131e-16, -1.1313172620930345e-13,
- -2.0405899192610377e-13}, /* L809 */
-{5.4392061123381454e+00, 4.8913650907422834e-13,
- 2.2204460492503131e-16, 8.1268325402561459e-14,
- -1.5121237595394632e-13}, /* L810 */
-{4.0376142616452686e+00, 3.6354252941350751e-13,
- 2.2204460492503131e-16, 4.1655567883935873e-13,
- 5.4867221876975236e-13}, /* L811 */
-{4.3854748992811254e+00, 3.9535041906901824e-13,
- 2.2204460492503131e-16, 4.5763393075048953e-13,
- -3.1252778143198157e-13}, /* L812 */
-{4.8677813576660354e+00, 4.3937076199540570e-13,
- 2.2204460492503131e-16, 4.2343906159203470e-13,
- -2.6134649999676185e-13}, /* L813 */
-{5.0473052604598809e+00, 4.5613512966724556e-13,
- 2.2204460492503131e-16, 8.1623596770441509e-13,
- -7.5628392437465664e-13}, /* L814 */
-{4.1527672880454825e+00, 3.7575498268438423e-13,
- 2.2204460492503131e-16, 4.9293902293356950e-14,
- -2.6523228058294990e-13}, /* L815 */
-{4.5704728971416149e+00, 4.1405767703395213e-13,
- 2.2204460492503131e-16, 1.0214051826551440e-13,
- 2.9976021664879227e-14}, /* L816 */
-{5.9700216588443293e+00, 5.4151128026092010e-13,
- 2.2204460492503131e-16, -6.8722805224297190e-14,
- -5.7731597280508140e-14}, /* L817 */
-{4.5959730212667065e+00, 4.1738834610782760e-13,
- 2.2204460492503131e-16, -3.1608049511078207e-13,
- -8.4376949871511897e-15}, /* L818 */
-{6.8327336127737617e+00, 6.2128080458023760e-13,
- 2.2204460492503131e-16, -2.2060131499301860e-13,
- -5.5289106626332796e-14}, /* L819 */
-{6.7042788700717209e+00, 6.1034510778767981e-13,
- 2.2204460492503131e-16, -4.2632564145606011e-14,
- 9.9698027611339057e-14}, /* L820 */
-{4.8824681172336080e+00, 4.4503289942099400e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- -2.0206059048177849e-14}, /* L821 */
-{5.4221496737853405e+00, 4.9482640207543227e-13,
- 2.2204460492503131e-16, 2.9110047705671604e-13,
- 1.0880185641326534e-13}, /* L822 */
-{5.5133744335968391e+00, 5.0376369742366478e-13,
- 2.2204460492503131e-16, 7.8848039208878618e-13,
- 1.0047518372857667e-12}, /* L823 */
-{5.2982486503452613e+00, 4.8469561697572772e-13,
- 2.2204460492503131e-16, -4.7795101210112989e-13,
- -1.3533618670180658e-13}, /* L824 */
-{4.6257648738566850e+00, 4.2368886177257536e-13,
- 2.2204460492503131e-16, -6.3726801613483985e-14,
- -2.0083934515469082e-13}, /* L825 */
-{4.9340271549091890e+00, 4.5247139368598255e-13,
- 2.2204460492503131e-16, 2.1116441928370477e-13,
- 1.2190248810384219e-13}, /* L826 */
-{5.4292709599907010e+00, 4.9849013805669529e-13,
- 2.2204460492503131e-16, 2.3936408410918375e-13,
- 5.2691184748709929e-13}, /* L827 */
-{5.5976839522454318e+00, 5.1457449412595224e-13,
- 2.2204460492503131e-16, -9.1104901400740346e-13,
- -6.8001160258290838e-13}, /* L828 */
-{4.4089333733318075e+00, 4.0578651550049472e-13,
- 2.2204460492503131e-16, 4.1566750041965861e-12,
- -5.5710991375690355e-12}, /* L829 */
-{4.9590439684897261e+00, 4.5696779693571443e-13,
- 2.2204460492503131e-16, 2.0183854587685346e-13,
- 5.7287508070658077e-14}, /* L830 */
-{5.9275063433729489e+00, 5.4686810635473648e-13,
- 2.2204460492503131e-16, 5.3432813729159534e-12,
- 3.9659386885659842e-12}, /* L831 */
-{4.4308964137292195e+00, 4.0928371802806396e-13,
- 2.2204460492503131e-16, -3.5571545708990016e-13,
- -6.5680794136824261e-13}, /* L832 */
-{4.8307399144092962e+00, 4.4675374510916299e-13,
- 2.2204460492503131e-16, 1.1279865930191590e-13,
- 2.1338486533295509e-13}, /* L833 */
-{5.0896363273133813e+00, 4.7126191837776332e-13,
- 2.2204460492503131e-16, 3.2196467714129540e-13,
- -3.5293989952833726e-13}, /* L834 */
-{4.5143783798495569e+00, 4.1849856913245276e-13,
- 2.2204460492503131e-16, 2.2493118478905672e-13,
- -1.4188650254709501e-13}, /* L835 */
-{4.8172735990486268e+00, 4.4711283286869019e-13,
- 2.2204460492503131e-16, 9.6367358537463588e-14,
- 1.6853185513809876e-13}, /* L836 */
-{4.9274271288728819e+00, 4.5788373093103019e-13,
- 2.2204460492503131e-16, 7.9047879353311146e-14,
- -8.9594998087250133e-14}, /* L837 */
-{4.2285269577726678e+00, 3.9340752877592422e-13,
- 2.2204460492503131e-16, -5.1847415249994810e-14,
- -1.2079226507921703e-13}, /* L838 */
-{4.1329028256160463e+00, 3.8496983378877303e-13,
- 2.2204460492503131e-16, 3.2684965844964609e-13,
- -9.3702823278363212e-13}, /* L839 */
-{5.5886992935177444e+00, 5.2119419891027974e-13,
- 2.2204460492503131e-16, -2.0516921495072893e-13,
- -6.5725203057809267e-14}, /* L840 */
-{5.5019409039913363e+00, 5.1371407128186775e-13,
- 2.2204460492503131e-16, -2.8654856265575290e-13,
- -2.9753977059954195e-13}, /* L841 */
-{6.7215070416072713e+00, 6.2833072078660734e-13,
- 2.2204460492503131e-16, -2.7322588636025102e-13,
- 1.2723155862204294e-13}, /* L842 */
-{5.3119894008811288e+00, 4.9715787042714510e-13,
- 2.2204460492503131e-16, -4.0955017155397400e-12,
- 5.8142379799619448e-12}, /* L843 */
-{4.2494142872530851e+00, 3.9818148778181239e-13,
- 2.2204460492503131e-16, 1.3060663661690342e-12,
- -1.7653656314564614e-12}, /* L844 */
-{5.0727890684640240e+00, 4.7589709950557335e-13,
- 2.2204460492503131e-16, -2.3758772726978350e-14,
- -1.4099832412739488e-14}, /* L845 */
-{4.4066263377082233e+00, 4.1389114358025836e-13,
- 2.2204460492503131e-16, -4.4408920985006262e-15,
- 9.6145313932538556e-14}, /* L846 */
-{4.0997703407263488e+00, 3.8552494530108561e-13,
- 2.2204460492503131e-16, 2.1849189124623081e-13,
- -1.4266365866433262e-13}, /* L847 */
-{4.9268945656483707e+00, 4.6385117968839040e-13,
- 2.2204460492503131e-16, 1.5343282200319663e-13,
- 1.7164047960704920e-13}, /* L848 */
-{5.7679714087668996e+00, 5.4367621515893916e-13,
- 2.2204460492503131e-16, 1.0369483049998962e-13,
- -1.4654943925052066e-14}, /* L849 */
-{4.6135366905718165e+00, 4.3537395910675514e-13,
- 2.2204460492503131e-16, -5.2513549064769904e-14,
- 1.4610535004067060e-13}, /* L850 */
-{4.7913559729662198e+00, 4.5268649939700367e-13,
- 2.2204460492503131e-16, -2.2796209364628339e-12,
- 1.3322676295501878e-12}, /* L851 */
-{4.6514157892744468e+00, 4.3998138465894954e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-13,
- 2.9243274468626623e-13}, /* L852 */
-{3.5970162260279159e+00, 3.4064417953061366e-13,
- 2.2204460492503131e-16, -1.1379786002407855e-12,
- 5.3490545326440042e-13}, /* L853 */
-{4.7646445195553309e+00, 4.5174974871997620e-13,
- 2.2204460492503131e-16, 7.8381745538536052e-14,
- -2.5535129566378600e-15}, /* L854 */
-{5.4634589121232251e+00, 5.1861293037802625e-13,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -1.4760415112391456e-12}, /* L855 */
-{5.6583033196672758e+00, 5.3773652197719457e-13,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- -3.7525538232330291e-14}, /* L856 */
-{5.7369730244250787e+00, 5.4584982367433810e-13,
- 2.2204460492503131e-16, -1.3877787807814457e-14,
- -1.0769163338864018e-14}, /* L857 */
-{5.8356735426101025e+00, 5.5588866842981588e-13,
- 2.2204460492503131e-16, 1.3149481503660354e-12,
- 3.1621372187373709e-12}, /* L858 */
-{4.2677599346558237e+00, 4.0700776082758239e-13,
- 2.2204460492503131e-16, -5.1703086256793540e-13,
- 5.5933035980615387e-13}, /* L859 */
-{4.6143241404595088e+00, 4.4057119064078165e-13,
- 2.2204460492503131e-16, -3.1066260675061130e-12,
- -6.2605476358612577e-13}, /* L860 */
-{5.5998926909721538e+00, 5.3529403132301923e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-13,
- 1.6942003355779889e-13}, /* L861 */
-{5.1508201914493643e+00, 4.9293902293356950e-13,
- 2.2204460492503131e-16, 1.4144241333724494e-13,
- 1.2723155862204294e-13}, /* L862 */
-{5.3117117406963654e+00, 5.0892623448817176e-13,
- 2.2204460492503131e-16, 1.1191048088221578e-13,
- -6.0618177144533547e-14}, /* L863 */
-{5.5214207482219724e+00, 5.2963189389743093e-13,
- 2.2204460492503131e-16, -2.5868196473766147e-14,
- -5.3179682879544998e-14}, /* L864 */
-{5.2202394498778313e+00, 5.0132120676948944e-13,
- 2.2204460492503131e-16, 2.4957813593573519e-13,
- -4.6784798257704097e-13}, /* L865 */
-{5.8972379415159040e+00, 5.6699089867606745e-13,
- 2.2204460492503131e-16, -2.1938006966593093e-13,
- -1.7785772854495008e-13}, /* L866 */
-{4.7970087216755770e+00, 4.6174175594160261e-13,
- 2.2204460492503131e-16, 3.0597746558669314e-13,
- 1.3988810110276972e-13}, /* L867 */
-{5.5776297676078483e+00, 5.3750059958446172e-13,
- 2.2204460492503131e-16, 1.0058620603103918e-13,
- -1.2101430968414206e-14}, /* L868 */
-{5.6933346440944774e+00, 5.4928284143329620e-13,
- 2.2204460492503131e-16, -2.4502622153477205e-13,
- -1.1535217225855376e-13}, /* L869 */
-{5.5057558128921222e+00, 5.3179682879544998e-13,
- 2.2204460492503131e-16, -4.5274894944213884e-13,
- 5.9174887212520844e-13}, /* L870 */
-{4.8946510920091590e+00, 4.7331409624984389e-13,
- 2.2204460492503131e-16, -5.8020255266910681e-13,
- -8.2345241736447861e-13}, /* L871 */
-{4.3933555552809684e+00, 4.2532644073389747e-13,
- 2.2204460492503131e-16, 2.6556534749033744e-13,
- 2.6867397195928788e-14}, /* L872 */
-{5.8402153997131530e+00, 5.6604720910513606e-13,
- 2.2204460492503131e-16, 1.0125233984581428e-13,
- -2.8754776337791554e-14}, /* L873 */
-{4.0675121381645427e+00, 3.9468428525424315e-13,
- 2.2204460492503131e-16, -5.1836313019748559e-13,
- -1.6953105586026140e-13}, /* L874 */
-{6.3310099884751896e+00, 6.1502192227891328e-13,
- 2.2204460492503131e-16, -2.4380497620768438e-13,
- -2.7433610938487618e-13}, /* L875 */
-{5.2306018596547581e+00, 5.0870418988324673e-13,
- 2.2204460492503131e-16, -9.1671115143299176e-13,
- -1.7792434192642759e-12}, /* L876 */
-{5.3623231694100246e+00, 5.2211013290559549e-13,
- 2.2204460492503131e-16, 1.0436096431476471e-14,
- -4.0289993563646931e-13}, /* L877 */
-{5.6033687493576299e+00, 5.4620197253996139e-13,
- 2.2204460492503131e-16, 2.4735768988648488e-13,
- 1.2612133559741778e-13}, /* L878 */
-{6.1416479149775496e+00, 5.9935389984389076e-13,
- 2.2204460492503131e-16, 1.6631140908884845e-13,
- -3.4749980670767400e-14}, /* L879 */
-{5.9147820589439402e+00, 5.7787108431739398e-13,
- 2.2204460492503131e-16, 8.8657969854466501e-12,
- 3.1226132790607153e-12}, /* L880 */
-{5.1217447434810204e+00, 5.0096038428648626e-13,
- 2.2204460492503131e-16, 2.8577140653851529e-13,
- 1.3633538742396922e-13}, /* L881 */
-{4.9101551390495040e+00, 4.8080983638953967e-13,
- 2.2204460492503131e-16, 4.8827608623014385e-13,
- 1.3082868122182845e-12}, /* L882 */
-{5.2831340430425575e+00, 5.1791904098763553e-13,
- 2.2204460492503131e-16, 2.3447910280083306e-13,
- 9.0083496218085202e-13}, /* L883 */
-{7.3062898077239566e+00, 7.1706529602977298e-13,
- 2.2204460492503131e-16, -2.0383694732117874e-13,
- 2.2670754162845697e-13}, /* L884 */
-{6.0127213507161050e+00, 5.9077742697866142e-13,
- 2.2204460492503131e-16, 5.1625370645069779e-13,
- 2.3803181647963356e-13}, /* L885 */
-{8.8360748888059018e+00, 8.6916585040341943e-13,
- 2.2204460492503131e-16, 3.6814995496570191e-13,
- -1.1723955140041653e-13}, /* L886 */
-{5.1772911445718677e+00, 5.0984216848348751e-13,
- 2.2204460492503131e-16, 2.6556534749033744e-13,
- 1.1857181902996672e-13}, /* L887 */
-{6.0522336477462879e+00, 5.9667548679698257e-13,
- 2.2204460492503131e-16, -1.2512213487525514e-13,
- -1.4432899320127035e-14}, /* L888 */
-{5.1985458845721153e+00, 5.1308957083051610e-13,
- 2.2204460492503131e-16, 2.7089441800853820e-14,
- -6.4726002335646626e-14}, /* L889 */
-{4.5264116357317512e+00, 4.4725334547024431e-13,
- 2.2204460492503131e-16, 1.4255263636187010e-13,
- 1.5987211554602254e-13}, /* L890 */
-{6.9842983367972113e+00, 6.9089178822423492e-13,
- 2.2204460492503131e-16, -1.2634338020234281e-13,
- 1.0569323194431490e-13}, /* L891 */
-{5.9853128343264821e+00, 5.9273592978303924e-13,
- 2.2204460492503131e-16, -4.6629367034256575e-14,
- 3.0420110874729289e-14}, /* L892 */
-{6.8046020010655033e+00, 6.7462702091347637e-13,
- 2.2204460492503131e-16, 4.3298697960381105e-14,
- -9.1926466438962962e-14}, /* L893 */
-{4.6498954793413905e+00, 4.6151971133667757e-13,
- 2.2204460492503131e-16, 3.9102054927298013e-13,
- -1.4308554341369017e-12}, /* L894 */
-{6.4710995949506849e+00, 6.4299954249946722e-13,
- 2.2204460492503131e-16, 2.8566038423605278e-12,
- -9.5390362275793450e-13}, /* L895 */
-{4.2543227695494821e+00, 4.2320227183756387e-13,
- 2.2204460492503131e-16, -3.4205971388701073e-13,
- -2.9121149935917856e-13}, /* L896 */
-{5.8154355964539182e+00, 5.7914090190180900e-13,
- 2.2204460492503131e-16, -1.2656542480726785e-13,
- -6.5469851762145481e-13}, /* L897 */
-{4.9031257757848739e+00, 4.8883119774245642e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- -3.4761082901013651e-13}, /* L898 */
-{5.4327115745631600e+00, 5.4223292522692645e-13,
- 2.2204460492503131e-16, -1.0758061108617767e-13,
- -1.1168843627729075e-13}, /* L899 */
-{6.8413996826131056e+00, 6.8359207183732451e-13,
- 2.2204460492503131e-16, -7.4051875742497941e-14,
- -2.8199664825478976e-14}, /* L900 */
-{7.6340298022972926e+00, 7.6363915191279830e-13,
- 2.2204460492503131e-16, -6.4526162191214098e-13,
- -4.6285197896622776e-13}, /* L901 */
-{4.6283332445041854e+00, 4.6349035720538723e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- -5.5067062021407764e-14}, /* L902 */
-{5.9020026671115291e+00, 5.9169336097397718e-13,
- 2.2204460492503131e-16, -1.6786572132332367e-13,
- 1.3522516439934407e-13}, /* L903 */
-{4.6050957610609737e+00, 4.6218584515145267e-13,
- 2.2204460492503131e-16, 6.5369931689929217e-13,
- 3.6770586575585185e-13}, /* L904 */
-{5.8668600849085308e+00, 5.8947291492472687e-13,
- 2.2204460492503131e-16, 7.3074879480827803e-13,
- 4.3898218393678690e-13}, /* L905 */
-{6.4212297776182865e+00, 6.4588612236349263e-13,
- 2.2204460492503131e-16, -4.3298697960381105e-15,
- -2.9276581159365378e-13}, /* L906 */
-{6.2533174733993899e+00, 6.2969074399177316e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- -3.9679370900103095e-13}, /* L907 */
-{6.5304601241642661e+00, 6.5832322232450835e-13,
- 2.2204460492503131e-16, 3.3062441673337162e-13,
- -1.1405321131974233e-12}, /* L908 */
-{4.9890067710749717e+00, 5.0348614166750849e-13,
- 2.2204460492503131e-16, 2.8976820942716586e-13,
- 2.6290081223123707e-13}, /* L909 */
-{6.8500108073099941e+00, 6.9205752240009133e-13,
- 2.2204460492503131e-16, -7.8936857050848630e-14,
- 2.8421709430404007e-14}, /* L910 */
-{5.5093390982305124e+00, 5.5722093605936607e-13,
- 2.2204460492503131e-16, 2.7189361873070084e-12,
- 2.1078694345533222e-12}, /* L911 */
-{4.3492393177387880e+00, 4.4036996271756834e-13,
- 2.2204460492503131e-16, 2.1752599721480692e-11,
- 1.4810375148499588e-13}, /* L912 */
-{5.9578407250273697e+00, 6.0390581424485390e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -3.8602454566216693e-13}, /* L913 */
-{4.7435796940435777e+00, 4.8135107011404443e-13,
- 2.2204460492503131e-16, -1.2922996006636822e-13,
- 1.0236256287043943e-13}, /* L914 */
-{6.9846848585828472e+00, 7.0954093295272358e-13,
- 2.2204460492503131e-16, -7.9491968563161208e-14,
- -5.7731597280508140e-14}, /* L915 */
-{5.1042656948162861e+00, 5.1908477516349194e-13,
- 2.2204460492503131e-16, -1.0990097720764425e-12,
- 7.5730532955731178e-12}, /* L916 */
-{4.8225266925022563e+00, 4.9096837706485985e-13,
- 2.2204460492503131e-16, 2.3581137043038325e-13,
- -2.9320990080350384e-13}, /* L917 */
-{7.2320375530561183e+00, 7.3707706604864143e-13,
- 2.2204460492503131e-16, -2.3390178682802798e-11,
- -6.0995652972906100e-11}, /* L918 */
-{5.2780279136750776e+00, 5.3851367809443218e-13,
- 2.2204460492503131e-16, -1.7319479184152442e-14,
- 9.6500585300418606e-13}, /* L919 */
-{4.4413113549138199e+00, 4.5363712786183896e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- 2.1538326677728037e-14}, /* L920 */
-{4.5282373287911541e+00, 4.6301851241992154e-13,
- 2.2204460492503131e-16, -6.7168492989821971e-13,
- 1.3240519791679617e-12}, /* L921 */
-{5.9880788617489031e+00, 6.1295413189554893e-13,
- 2.2204460492503131e-16, 3.3062441673337162e-13,
- 4.4964032497318840e-13}, /* L922 */
-{7.7428345343850769e+00, 7.9343476233617594e-13,
- 2.2204460492503131e-16, 2.7235991240104340e-12,
- 4.1355807667287081e-12}, /* L923 */
-{4.8015836036286741e+00, 4.9256779210971047e-13,
- 2.2204460492503131e-16, 1.5765166949677223e-13,
- 3.6570746431152656e-13}, /* L924 */
-{5.7356847248910485e+00, 5.8902882571487680e-13,
- 2.2204460492503131e-16, 1.1983747327803940e-12,
- -8.1112894179113937e-13}, /* L925 */
-{5.7629680555521654e+00, 5.9247051709121479e-13,
- 2.2204460492503131e-16, -3.8324898810060404e-13,
- -8.4965368074563230e-13}, /* L926 */
-{6.6477990535339648e+00, 6.8417493892525272e-13,
- 2.2204460492503131e-16, 6.8678396303312184e-13,
- -4.6063153291697745e-13}, /* L927 */
-{6.2645572974269026e+00, 6.4542815536583475e-13,
- 2.2204460492503131e-16, 5.8397731095283234e-14,
- -4.6074255521943996e-14}, /* L928 */
-{5.1493622684115481e+00, 5.3110293940505926e-13,
- 2.2204460492503131e-16, -1.9799717421165042e-12,
- 9.1815444136500446e-13}, /* L929 */
-{5.2798806419150122e+00, 5.4515073011351944e-13,
- 2.2204460492503131e-16, 3.8835601401387976e-13,
- -5.2402526762307389e-14}, /* L930 */
-{5.1793851855136284e+00, 5.3534954247425048e-13,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- 8.7041485130612273e-14}, /* L931 */
-{4.5021530256413831e+00, 4.6584958113271568e-13,
- 2.2204460492503131e-16, -3.0431213104975541e-13,
- 5.7283067178559577e-12}, /* L932 */
-{4.9938449634906874e+00, 5.1728066274847606e-13,
- 2.2204460492503131e-16, 1.3677947663381929e-13,
- -2.2859492077031973e-13}, /* L933 */
-{5.8150520009993727e+00, 6.0298988024953815e-13,
- 2.2204460492503131e-16, 2.9043434324194095e-13,
- 4.6851411639181606e-14}, /* L934 */
-{5.5582975394150216e+00, 5.7698290589769385e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- -8.9039886574937555e-14}, /* L935 */
-{5.0966960752302439e+00, 5.2963189389743093e-13,
- 2.2204460492503131e-16, -6.7668093350903291e-13,
- 3.0540014961388806e-12}, /* L936 */
-{6.8858166268573360e+00, 7.1631589548815100e-13,
- 2.2204460492503131e-16, 2.6068036618198676e-13,
- 2.0872192862952943e-14}, /* L937 */
-{5.6775142879186422e+00, 5.9124927176412712e-13,
- 2.2204460492503131e-16, 1.6862067298006878e-12,
- -2.5091040356528538e-14}, /* L938 */
-{4.3770037107380890e+00, 4.5630166312093934e-13,
- 2.2204460492503131e-16, -2.8166358134740221e-13,
- -2.8388402739665253e-13}, /* L939 */
-{5.0250079279891038e+00, 5.2441384568169269e-13,
- 2.2204460492503131e-16, -2.7644553313166398e-14,
- -6.2061467076546251e-14}, /* L940 */
-{5.2899924055680092e+00, 5.5265514387059511e-13,
- 2.2204460492503131e-16, -5.2069459854919842e-14,
- 1.5321077739827160e-13}, /* L941 */
-{5.1913563857598035e+00, 5.4292681461731718e-13,
- 2.2204460492503131e-16, -1.1465273175303992e-12,
- -1.5942802633617248e-13}, /* L942 */
-{6.0114092721519556e+00, 6.2935767708438561e-13,
- 2.2204460492503131e-16, 1.4077627952246985e-13,
- 1.5565326805244695e-13}, /* L943 */
-{6.5243747003318910e+00, 6.8378636086663391e-13,
- 2.2204460492503131e-16, 7.7715611723760958e-15,
- -2.5646151868841116e-14}, /* L944 */
-{4.8198488741504795e+00, 5.0567883214114318e-13,
- 2.2204460492503131e-16, -7.4162898044960457e-14,
- -1.8141044222375058e-13}, /* L945 */
-{5.1663594073966195e+00, 5.4260762549773744e-13,
- 2.2204460492503131e-16, 3.3972824553529790e-14,
- 1.2856382625159313e-13}, /* L946 */
-{4.3827886470101243e+00, 4.6079806637067122e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -2.5535129566378600e-15}, /* L947 */
-{5.0000010224135334e+00, 5.2624571367232420e-13,
- 2.2204460492503131e-16, 8.8040685852774914e-13,
- 2.7844393457598926e-13}, /* L948 */
-{4.9504751956503901e+00, 5.2158277696889854e-13,
- 2.2204460492503131e-16, 1.5631940186722204e-13,
- -2.4680257837417230e-13}, /* L949 */
-{5.7721064434063072e+00, 6.0879079555320459e-13,
- 2.2204460492503131e-16, 7.1511685462155583e-12,
- -1.1232348384737634e-11}, /* L950 */
-{4.9699011214260533e+00, 5.2473303480127242e-13,
- 2.2204460492503131e-16, -3.0087043967341742e-14,
- -3.9412917374193057e-13}, /* L951 */
-{5.2032573665119379e+00, 5.4994897524807129e-13,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- 3.1685765122801968e-13}, /* L952 */
-{5.9026769677642346e+00, 6.2452820692726618e-13,
- 2.2204460492503131e-16, -5.4900528567713991e-13,
- 2.9087843245179101e-14}, /* L953 */
-{5.9355358049279729e+00, 6.2866378769399489e-13,
- 2.2204460492503131e-16, 1.9917401061775308e-13,
- 8.0380146982861334e-14}, /* L954 */
-{5.8141700370801015e+00, 6.1645480387007012e-13,
- 2.2204460492503131e-16, -8.5487172896137054e-14,
- -8.3544282603043030e-13}, /* L955 */
-{7.1285317924009188e+00, 7.5660311349423637e-13,
- 2.2204460492503131e-16, 1.1133316490941070e-12,
- -3.2407410088808319e-13}, /* L956 */
-{6.5114955843820059e+00, 6.9183547779516630e-13,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- 6.6169292267659330e-14}, /* L957 */
-{5.5623706572590770e+00, 5.9161009424713029e-13,
- 2.2204460492503131e-16, 2.1072033007385471e-13,
- -1.9095836023552692e-14}, /* L958 */
-{6.2763307933196444e+00, 6.6824323852188172e-13,
- 2.2204460492503131e-16, -3.5416114485542494e-14,
- 9.9764640992816567e-13}, /* L959 */
-{6.3593763003976447e+00, 6.7779115653365807e-13,
- 2.2204460492503131e-16, -1.0635936575909000e-13,
- 5.9863225487788441e-13}, /* L960 */
-{5.4297617762805501e+00, 5.7931437424940668e-13,
- 2.2204460492503131e-16, -3.5693670241698783e-13,
- 1.1390888232654106e-13}, /* L961 */
-{5.2554584551166501e+00, 5.6130100567486352e-13,
- 2.2204460492503131e-16, -7.4640293945549274e-13,
- -7.7449158197850920e-13}, /* L962 */
-{5.5685369642285885e+00, 5.9535709695524019e-13,
- 2.2204460492503131e-16, 2.5113244817021041e-13,
- 2.1027624086400465e-13}, /* L963 */
-{5.9372418779785399e+00, 6.3543614814420835e-13,
- 2.2204460492503131e-16, 9.1260332624187868e-14,
- -7.1609385088322597e-14}, /* L964 */
-{4.7506486398249654e+00, 5.0896786785159520e-13,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- 4.6185277824406512e-14}, /* L965 */
-{5.2463778843638433e+00, 5.6266102888002933e-13,
- 2.2204460492503131e-16, -1.4223067168472880e-12,
- 3.3062441673337162e-13}, /* L966 */
-{6.7737862869009922e+00, 7.2722383670509316e-13,
- 2.2204460492503131e-16, -1.0402789740737717e-13,
- -3.1752378504279477e-14}, /* L967 */
-{4.9266538999829788e+00, 5.2946536044373715e-13,
- 2.2204460492503131e-16, 4.8472337255134335e-13,
- -1.8729462425426391e-13}, /* L968 */
-{6.2404553524502901e+00, 6.7135186299083216e-13,
- 2.2204460492503131e-16, -1.1957101975212936e-13,
- -1.8507417820501360e-13}, /* L969 */
-{5.8690733650907099e+00, 6.3204996791910162e-13,
- 2.2204460492503131e-16, -8.1046280797636427e-14,
- 2.2204460492503131e-16}, /* L970 */
-{7.2044298974821572e+00, 7.7665651687652826e-13,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- -1.4976908602193362e-12}, /* L971 */
-{5.2525730905343240e+00, 5.6682436522237367e-13,
- 2.2204460492503131e-16, -4.0079051188968151e-13,
- 3.5260683262094972e-13}, /* L972 */
-{6.0128480949063885e+00, 6.4953598055694783e-13,
- 2.2204460492503131e-16, 6.0174087934683484e-14,
- -1.6397994073713562e-13}, /* L973 */
-{5.6565719985770953e+00, 6.1167737541723000e-13,
- 2.2204460492503131e-16, -2.4835689060864752e-13,
- -7.3274719625260332e-14}, /* L974 */
-{5.9753858372604451e+00, 6.4681593414661620e-13,
- 2.2204460492503131e-16, 8.4532381094959419e-13,
- 2.5490720645393594e-13}, /* L975 */
-{4.9129108406842255e+00, 5.3235194030776256e-13,
- 2.2204460492503131e-16, -2.0439205883349132e-13,
- 3.4861002973229915e-13}, /* L976 */
-{5.9831127894774019e+00, 6.4898086904463526e-13,
- 2.2204460492503131e-16, 1.1524114995609125e-13,
- 4.4120262998603721e-13}, /* L977 */
-{5.2671598193904590e+00, 5.7190710500698572e-13,
- 2.2204460492503131e-16, 1.5099033134902129e-14,
- -6.8833827526759706e-14}, /* L978 */
-{5.7691533758261713e+00, 6.2705396430828841e-13,
- 2.2204460492503131e-16, 1.2057022047429200e-13,
- 2.7178259642823832e-13}, /* L979 */
-{4.9439423374967637e+00, 5.3790999432479225e-13,
- 2.2204460492503131e-16, 6.8389738316909643e-14,
- -1.7430501486614958e-14}, /* L980 */
-{5.1264026792571746e+00, 5.5833115908399122e-13,
- 2.2204460492503131e-16, 3.7259084706420253e-13,
- -4.0367709175370692e-13}, /* L981 */
-{5.8706732982272953e+00, 6.4004357369640275e-13,
- 2.2204460492503131e-16, -5.7287508070658077e-14,
- -3.0730973321624333e-13}, /* L982 */
-{6.6724326970699677e+00, 7.2819528185164017e-13,
- 2.2204460492503131e-16, 5.2668980288217426e-13,
- -7.5361938911555626e-13}, /* L983 */
-{4.8215202948729754e+00, 5.2673143624559771e-13,
- 2.2204460492503131e-16, -4.9515946898281982e-14,
- -1.5731860258938468e-13}, /* L984 */
-{5.9593920815507353e+00, 6.5170091545496689e-13,
- 2.2204460492503131e-16, -6.5736305288055519e-13,
- 1.4144241333724494e-13}, /* L985 */
-{5.2966542271020112e+00, 5.7981397461048800e-13,
- 2.2204460492503131e-16, 5.9330318435968366e-13,
- 3.6148861681795097e-13}, /* L986 */
-{4.6441245565351021e+00, 5.0889847891255613e-13,
- 2.2204460492503131e-16, -1.7696955012524995e-13,
- 8.8018481392282411e-13}, /* L987 */
-{6.8178151593266376e+00, 7.4784622938750545e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-14,
- -1.7985612998927536e-14}, /* L988 */
-{6.0813965923969384e+00, 6.6774363816080040e-13,
- 2.2204460492503131e-16, 1.4588330543574557e-13,
- 8.8817841970012523e-14}, /* L989 */
-{5.1893950005499541e+00, 5.7037707890117417e-13,
- 2.2204460492503131e-16, 1.1923795284474181e-13,
- 6.1595173406203685e-13}, /* L990 */
-{4.8443501328789482e+00, 5.3299031854692203e-13,
- 2.2204460492503131e-16, 4.3076653355456074e-14,
- -4.9626969200744497e-14}, /* L991 */
-{6.3513117826229530e+00, 6.9949601666507988e-13,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- -7.7715611723760958e-16}, /* L992 */
-{6.6983900907528797e+00, 7.3846484482942287e-13,
- 2.2204460492503131e-16, -1.6171508576690030e-12,
- 4.5630166312093934e-13}, /* L993 */
-{5.2023400979833267e+00, 5.7411020382147626e-13,
- 2.2204460492503131e-16, -1.3569145806968663e-12,
- 6.5392136150421720e-13}, /* L994 */
-{6.1648253812212532e+00, 6.8101080330507102e-13,
- 2.2204460492503131e-16, -2.4491519923230953e-13,
- -5.4733995114020217e-14}, /* L995 */
-{5.2133544797058242e+00, 5.7648330553661253e-13,
- 2.2204460492503131e-16, -4.2721381987576024e-13,
- 1.4455103780619538e-13}, /* L996 */
-{6.0501516885247177e+00, 6.6968652845389443e-13,
- 2.2204460492503131e-16, 2.1782575743145571e-13,
- -2.2204460492503131e-14}, /* L997 */
-{6.7578921634344660e+00, 7.4877604117062901e-13,
- 2.2204460492503131e-16, 2.0139445666700340e-13,
- 6.5281113847959205e-13}, /* L998 */
-{8.9125393599743905e+00, 9.8850094776281594e-13,
- 2.2204460492503131e-16, -1.6986412276764895e-14,
- 3.0908609005564358e-13}, /* L999 */
-{5.2700010776369428e+00, 5.8508753397745750e-13,
- 2.2204460492503131e-16, 1.4233059175694507e-13,
- 7.7493567118835927e-14}, /* L1000 */
-{1.0450001497795245e+01, 2.3203661214665772e-12,
- 2.2204460492503131e-16, 1.0583534049146692e-11,
- -4.6157522248790883e-12}, /* L1001 */
-{1.5503666670562568e+01, 5.1637583098340656e-12,
- 2.2204460492503131e-16, -3.4304559193287787e-11,
- 5.4571902552424945e-12}, /* L1002 */
-{1.7151892437160857e+01, 7.6474382382230033e-12,
- 2.2204460492503131e-16, 1.6491252807782075e-12,
- -3.3610891847501989e-12}, /* L1003 */
-{2.3230050008252473e+01, 1.2895268186596809e-11,
- 2.2204460492503131e-16, -2.0931034683258076e-12,
- -4.9030779436520788e-12}, /* L1004 */
-{2.5835125009100796e+01, 1.7209650371441398e-11,
- 2.2204460492503131e-16, 1.3557821532117487e-11,
- 9.4040331077849260e-12}, /* L1005 */
-{3.0167830682979631e+01, 2.3498702983459907e-11,
- 2.2204460492503131e-16, -2.5479618415147343e-11,
- -1.5200729563957793e-11}, /* L1006 */
-{3.5298699288949834e+01, 3.1484786999769199e-11,
- 2.2204460492503131e-16, 1.4085843602629211e-11,
- 2.0574653092353401e-12}, /* L1007 */
-{4.3699860948598719e+01, 4.3664932780629329e-11,
- 2.2204460492503131e-16, -7.7282513721854684e-11,
- 7.9624329352157019e-10}, /* L1008 */
-{4.5208375009643142e+01, 5.0191378830888311e-11,
- 2.2204460492503131e-16, -3.8968828164342995e-11,
- 1.4890089161667674e-11}, /* L1009 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1011 */
-}; /* DOUBLE */
-
-#else
-
-
-static struct LinpVals LinpValsA[] = {
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L3 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L4 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L5 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L6 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L7 */
-{2.2189640998840332e-01, 1.0430812835693359e-07,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.5762786865234375e-07}, /* L8 */
-{3.6630606651306152e-01, 1.9371509552001953e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -3.5762786865234375e-07}, /* L9 */
-{4.0575447678565979e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L10 */
-{2.8817784786224365e-01, 1.8626451492309570e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.1920928955078125e-07}, /* L11 */
-{3.1171223521232605e-01, 2.1979212760925293e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -2.3841857910156250e-07}, /* L12 */
-{3.1945201754570007e-01, 2.4586915969848633e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -7.1525573730468750e-07}, /* L13 */
-{5.7529002428054810e-01, 4.7683715820312500e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -4.7683715820312500e-07}, /* L14 */
-{4.1109275817871094e-01, 3.6507844924926758e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 2.3841857910156250e-07}, /* L15 */
-{5.6630027294158936e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- -2.3841857910156250e-07}, /* L16 */
-{2.6649358868598938e-01, 2.6822090148925781e-07,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -4.1723251342773438e-07}, /* L17 */
-{5.5057054758071899e-01, 5.8673322200775146e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 2.3841857910156250e-07}, /* L18 */
-{5.6961244344711304e-01, 6.4074993133544922e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -1.0728836059570312e-06}, /* L19 */
-{5.9146845340728760e-01, 7.0035457611083984e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -8.9406967163085938e-07}, /* L20 */
-{7.7999979257583618e-01, 9.7369775176048279e-07,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -1.4305114746093750e-06}, /* L21 */
-{5.8111280202865601e-01, 7.5995922088623047e-07,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -3.5762786865234375e-07}, /* L22 */
-{3.8146379590034485e-01, 5.2154064178466797e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -2.9802322387695312e-07}, /* L23 */
-{7.7291780710220337e-01, 1.1026859283447266e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -2.3841857910156250e-07}, /* L24 */
-{4.8129647970199585e-01, 7.1525573730468750e-07,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 5.9604644775390625e-07}, /* L25 */
-{8.0987650156021118e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -2.0861625671386719e-06,
- -8.9406967163085938e-07}, /* L26 */
-{9.3771111965179443e-01, 1.5050172805786133e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 7.1525573730468750e-07}, /* L27 */
-{7.3412078619003296e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -3.2186508178710938e-06}, /* L28 */
-{7.7795881032943726e-01, 1.3411045074462891e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 1.4305114746093750e-06}, /* L29 */
-{8.8154238462448120e-01, 1.5720725059509277e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -1.1920928955078125e-07}, /* L30 */
-{7.1159505844116211e-01, 1.3113021850585938e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- -2.3841857910156250e-06}, /* L31 */
-{6.5801620483398438e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 9.8943710327148438e-06}, /* L32 */
-{7.5202614068984985e-01, 1.4752149581909180e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -3.3974647521972656e-06}, /* L33 */
-{8.4050089120864868e-01, 1.6987323760986328e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.1920928955078125e-06}, /* L34 */
-{1.3582198619842529e+00, 2.8312206268310547e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.1457672119140625e-06}, /* L35 */
-{6.1158120632171631e-01, 1.3113021850585938e-06,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- -2.1457672119140625e-05}, /* L36 */
-{5.8154177665710449e-01, 1.2814998626708984e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -1.9073486328125000e-06}, /* L37 */
-{7.2425973415374756e-01, 1.6391277313232422e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -3.5762786865234375e-07}, /* L38 */
-{5.7096558809280396e-01, 1.3262033462524414e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -1.3709068298339844e-06}, /* L39 */
-{8.1304115056991577e-01, 1.9371509552001953e-06,
- 1.1920928955078125e-07, -4.1902065277099609e-05,
- 1.0061264038085938e-04}, /* L40 */
-{1.0739811658859253e+00, 2.6226043701171875e-06,
- 1.1920928955078125e-07, -2.1219253540039062e-05,
- -2.0623207092285156e-05}, /* L41 */
-{5.8378452062606812e-01, 1.4603137969970703e-06,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- 3.0994415283203125e-06}, /* L42 */
-{7.3895734548568726e-01, 1.8924474716186523e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -2.9802322387695312e-07}, /* L43 */
-{7.2216004133224487e-01, 1.8924474716186523e-06,
- 1.1920928955078125e-07, -4.5895576477050781e-06,
- 1.7881393432617188e-06}, /* L44 */
-{7.4781596660614014e-01, 2.0042061805725098e-06,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -2.0861625671386719e-06}, /* L45 */
-{7.7235138416290283e-01, 2.1159648895263672e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -7.7486038208007812e-07}, /* L46 */
-{8.6759459972381592e-01, 2.4288892745971680e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-06,
- 5.9604644775390625e-07}, /* L47 */
-{6.5676969289779663e-01, 1.8775463104248047e-06,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -8.3446502685546875e-07}, /* L48 */
-{8.3673852682113647e-01, 2.4437904357910156e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -1.7285346984863281e-06}, /* L49 */
-{8.3000296354293823e-01, 2.4735927581787109e-06,
- 1.1920928955078125e-07, -1.2516975402832031e-06,
- -3.1590461730957031e-06}, /* L50 */
-{9.0191948413848877e-01, 2.7418136596679688e-06,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- 1.6808509826660156e-05}, /* L51 */
-{1.1153945922851562e+00, 3.4570693969726562e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -4.8875808715820312e-06}, /* L52 */
-{1.2452992200851440e+00, 3.9339065551757812e-06,
- 1.1920928955078125e-07, -6.5565109252929688e-07,
- -6.5565109252929688e-07}, /* L53 */
-{9.4445270299911499e-01, 3.0398368835449219e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.3709068298339844e-06}, /* L54 */
-{1.1545555591583252e+00, 3.7848949432373047e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- 2.7418136596679688e-06}, /* L55 */
-{6.6518044471740723e-01, 2.2202730178833008e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -4.8279762268066406e-06}, /* L56 */
-{6.2281411886215210e-01, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -3.9339065551757812e-06}, /* L57 */
-{7.5852060317993164e-01, 2.6226043701171875e-06,
- 1.1920928955078125e-07, -7.0750713348388672e-05,
- -4.1961669921875000e-05}, /* L58 */
-{9.6611219644546509e-01, 3.3974647521972656e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -3.0994415283203125e-06}, /* L59 */
-{8.5834288597106934e-01, 3.0696392059326172e-06,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 2.0265579223632812e-06}, /* L60 */
-{1.5737241506576538e+00, 5.7220458984375000e-06,
- 1.1920928955078125e-07, -2.1517276763916016e-05,
- -3.2603740692138672e-05}, /* L61 */
-{1.2500104904174805e+00, 4.6193599700927734e-06,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- 2.3841857910156250e-06}, /* L62 */
-{1.1150785684585571e+00, 4.1872262954711914e-06,
- 1.1920928955078125e-07, -9.5367431640625000e-07,
- 2.9802322387695312e-06}, /* L63 */
-{8.9844626188278198e-01, 3.4272670745849609e-06,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- -4.7683715820312500e-06}, /* L64 */
-{1.3509730100631714e+00, 5.2340328693389893e-06,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.9073486328125000e-06}, /* L65 */
-{8.0303579568862915e-01, 3.1590461730957031e-06,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- 8.3446502685546875e-07}, /* L66 */
-{1.0858224630355835e+00, 4.3362379074096680e-06,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -2.2649765014648438e-06}, /* L67 */
-{7.9044908285140991e-01, 3.2037496566772461e-06,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -1.4901161193847656e-06}, /* L68 */
-{1.0071352720260620e+00, 4.1425228118896484e-06,
- 1.1920928955078125e-07, -4.7326087951660156e-05,
- -1.2964010238647461e-04}, /* L69 */
-{9.1071319580078125e-01, 3.7997961044311523e-06,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 3.2186508178710938e-06}, /* L70 */
-{1.1448168754577637e+00, 4.8447400331497192e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -9.5367431640625000e-07}, /* L71 */
-{9.1666764020919800e-01, 3.9339065551757812e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- -8.2254409790039062e-06}, /* L72 */
-{9.5548504590988159e-01, 4.1574239730834961e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- 1.7881393432617188e-06}, /* L73 */
-{1.1621736288070679e+00, 5.1259994506835938e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -9.5367431640625000e-07}, /* L74 */
-{1.7633385658264160e+00, 7.8827142715454102e-06,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- -3.3974647521972656e-06}, /* L75 */
-{8.7169545888900757e-01, 3.9488077163696289e-06,
- 1.1920928955078125e-07, -1.2576580047607422e-05,
- -1.3709068298339844e-05}, /* L76 */
-{7.5162768363952637e-01, 3.4496188163757324e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- 4.7683715820312500e-07}, /* L77 */
-{1.2820539474487305e+00, 5.9604644775390625e-06,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- -5.0663948059082031e-06}, /* L78 */
-{1.0696300268173218e+00, 5.0365924835205078e-06,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -9.5367431640625000e-07}, /* L79 */
-{7.4274194240570068e-01, 3.5464763641357422e-06,
- 1.1920928955078125e-07, -6.0003995895385742e-04,
- -1.8072128295898438e-04}, /* L80 */
-{1.3333305120468140e+00, 6.4373016357421875e-06,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- 2.6226043701171875e-06}, /* L81 */
-{1.3140288591384888e+00, 6.4224004745483398e-06,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- -8.1062316894531250e-06}, /* L82 */
-{1.1445879936218262e+00, 5.6624412536621094e-06,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -1.2516975402832031e-06}, /* L83 */
-{9.4940656423568726e-01, 4.7534704208374023e-06,
- 1.1920928955078125e-07, -1.4543533325195312e-05,
- 2.7418136596679688e-06}, /* L84 */
-{1.0587543249130249e+00, 5.3644180297851562e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- 5.2452087402343750e-06}, /* L85 */
-{1.3546587228775024e+00, 6.9439411163330078e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 0.0000000000000000e+00}, /* L86 */
-{8.7068307399749756e-01, 4.5150518417358398e-06,
- 1.1920928955078125e-07, -1.5258789062500000e-05,
- -6.9141387939453125e-06}, /* L87 */
-{1.0113493204116821e+00, 5.3048133850097656e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -3.7550926208496094e-06}, /* L88 */
-{1.0323122739791870e+00, 5.4761767387390137e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-06,
- -1.1920928955078125e-07}, /* L89 */
-{1.1166691780090332e+00, 5.9902667999267578e-06,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- 4.6491622924804688e-06}, /* L90 */
-{9.3458819389343262e-01, 5.0691887736320496e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -2.3841857910156250e-07}, /* L91 */
-{9.8370236158370972e-01, 5.3942203521728516e-06,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- -2.3245811462402344e-06}, /* L92 */
-{1.5430234670639038e+00, 8.5532665252685547e-06,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- -2.3841857910156250e-07}, /* L93 */
-{1.1436041593551636e+00, 6.4074993133544922e-06,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -2.8014183044433594e-06}, /* L94 */
-{1.0499954223632812e+00, 5.9455633163452148e-06,
- 1.1920928955078125e-07, -1.1563301086425781e-05,
- 4.2915344238281250e-06}, /* L95 */
-{9.6380722522735596e-01, 5.5150012485682964e-06,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- 2.1457672119140625e-06}, /* L96 */
-{1.1907181739807129e+00, 6.8843364715576172e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 6.5565109252929688e-06}, /* L97 */
-{1.0969462394714355e+00, 6.4074993133544922e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -4.0531158447265625e-06}, /* L98 */
-{1.4241938591003418e+00, 8.4042549133300781e-06,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- 9.8943710327148438e-06}, /* L99 */
-{1.0949985980987549e+00, 6.5267086029052734e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -1.8477439880371094e-06}, /* L100 */
-{1.7735216617584229e+00, 1.0676681995391846e-05,
- 1.1920928955078125e-07, -9.4175338745117188e-06,
- -5.1259994506835938e-06}, /* L101 */
-{9.9816024303436279e-01, 6.0684978961944580e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- 2.0265579223632812e-06}, /* L102 */
-{1.1844638586044312e+00, 7.2717666625976562e-06,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- 7.9870223999023438e-06}, /* L103 */
-{1.2548104524612427e+00, 7.7784061431884766e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -2.5629997253417969e-06}, /* L104 */
-{1.5713977813720703e+00, 9.8347663879394531e-06,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- 4.6491622924804688e-06}, /* L105 */
-{1.3490117788314819e+00, 8.5234642028808594e-06,
- 1.1920928955078125e-07, -1.1265277862548828e-05,
- 1.5139579772949219e-05}, /* L106 */
-{1.1635591983795166e+00, 7.4207782745361328e-06,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -5.1259994506835938e-06}, /* L107 */
-{7.7776497602462769e-01, 5.0067901611328125e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -2.0265579223632812e-06}, /* L108 */
-{1.2098702192306519e+00, 7.8603625297546387e-06,
- 1.1920928955078125e-07, -4.8279762268066406e-06,
- -5.6624412536621094e-06}, /* L109 */
-{9.9545836448669434e-01, 6.5267086029052734e-06,
- 1.1920928955078125e-07, -4.8279762268066406e-06,
- 3.3378601074218750e-06}, /* L110 */
-{1.8997472524642944e+00, 1.2569129467010498e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- 1.7166137695312500e-05}, /* L111 */
-{9.6429288387298584e-01, 6.4373016357421875e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- -1.7881393432617188e-07}, /* L112 */
-{1.1769987344741821e+00, 7.9274177551269531e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -5.1856040954589844e-06}, /* L113 */
-{1.2127261161804199e+00, 8.2403421401977539e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- 5.1259994506835938e-06}, /* L114 */
-{1.3608702421188354e+00, 9.3281269073486328e-06,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -5.3644180297851562e-07}, /* L115 */
-{1.1637883186340332e+00, 8.0466270446777344e-06,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 5.9604644775390625e-06}, /* L116 */
-{1.1377027034759521e+00, 7.9348683357238770e-06,
- 1.1920928955078125e-07, 3.3736228942871094e-05,
- 3.6358833312988281e-05}, /* L117 */
-{1.1387661695480347e+00, 8.0168247222900391e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- -9.9283456802368164e-04}, /* L118 */
-{1.5546188354492188e+00, 1.1026859283447266e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 2.7418136596679688e-06}, /* L119 */
-{1.7791683673858643e+00, 1.2725591659545898e-05,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- 5.8412551879882812e-06}, /* L120 */
-{1.3037217855453491e+00, 9.4026327133178711e-06,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 6.5565109252929688e-06}, /* L121 */
-{1.3483450412750244e+00, 9.8049640655517578e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -6.6161155700683594e-06}, /* L122 */
-{8.9426171779632568e-01, 6.5565109252929688e-06,
- 1.1920928955078125e-07, 1.5616416931152344e-05,
- 5.9604644775390625e-06}, /* L123 */
-{1.2792242765426636e+00, 9.4547867774963379e-06,
- 1.1920928955078125e-07, -8.9406967163085938e-07,
- 6.1988830566406250e-06}, /* L124 */
-{1.2199683189392090e+00, 9.0897083282470703e-06,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -1.3053417205810547e-05}, /* L125 */
-{1.5019747018814087e+00, 1.1280179023742676e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- 7.1525573730468750e-06}, /* L126 */
-{1.1096799373626709e+00, 8.4042549133300781e-06,
- 1.1920928955078125e-07, -2.2351741790771484e-05,
- -2.1302700042724609e-04}, /* L127 */
-{1.2539020776748657e+00, 9.5665454864501953e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -7.1525573730468750e-07}, /* L128 */
-{8.9148110151290894e-01, 6.8545341491699219e-06,
- 1.1920928955078125e-07, -8.9406967163085938e-07,
- 1.4305114746093750e-06}, /* L129 */
-{1.4442204236984253e+00, 1.1190772056579590e-05,
- 1.1920928955078125e-07, -1.3470649719238281e-05,
- -1.6450881958007812e-05}, /* L130 */
-{1.6558032035827637e+00, 1.2930482625961304e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- -3.7312507629394531e-05}, /* L131 */
-{1.4639582633972168e+00, 1.1518597602844238e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-05,
- 8.3446502685546875e-06}, /* L132 */
-{1.4473495483398438e+00, 1.1473894119262695e-05,
- 1.1920928955078125e-07, -1.2516975402832031e-06,
- -9.3579292297363281e-06}, /* L133 */
-{1.0839569568634033e+00, 8.6575746536254883e-06,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 6.3180923461914062e-06}, /* L134 */
-{1.3231586217880249e+00, 1.0646879673004150e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -3.4570693969726562e-06}, /* L135 */
-{1.1139441728591919e+00, 9.0301036834716797e-06,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- 5.0067901611328125e-06}, /* L136 */
-{2.1496353149414062e+00, 1.7553567886352539e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 2.2649765014648438e-06}, /* L137 */
-{1.9383929967880249e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, 1.0609626770019531e-05,
- 1.9788742065429688e-05}, /* L138 */
-{1.7117853164672852e+00, 1.4182180166244507e-05,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- -5.3644180297851562e-07}, /* L139 */
-{1.5460164546966553e+00, 1.2904405593872070e-05,
- 1.1920928955078125e-07, 6.3300132751464844e-05,
- 7.5697898864746094e-05}, /* L140 */
-{1.9095742702484131e+00, 1.6048550605773926e-05,
- 1.1920928955078125e-07, -4.9471855163574219e-06,
- -4.8279762268066406e-06}, /* L141 */
-{1.3890877962112427e+00, 1.1757016181945801e-05,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 2.3841857910156250e-06}, /* L142 */
-{1.2010275125503540e+00, 1.0237097740173340e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- 9.1791152954101562e-06}, /* L143 */
-{1.0867848396301270e+00, 9.3281269073486328e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -1.1503696441650391e-05}, /* L144 */
-{1.3249622583389282e+00, 1.1451542377471924e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- -9.5367431640625000e-07}, /* L145 */
-{1.5822976827621460e+00, 1.3769604265689850e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -6.9141387939453125e-06}, /* L146 */
-{1.5646312236785889e+00, 1.3709068298339844e-05,
- 1.1920928955078125e-07, -5.6624412536621094e-06,
- -5.9604644775390625e-07}, /* L147 */
-{1.3141894340515137e+00, 1.1593103408813477e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -3.7550926208496094e-06}, /* L148 */
-{1.3887020349502563e+00, 1.2333504855632782e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -6.4969062805175781e-06}, /* L149 */
-{1.7914862632751465e+00, 1.6018748283386230e-05,
- 1.1920928955078125e-07, 1.0132789611816406e-05,
- 3.2901763916015625e-05}, /* L150 */
-{1.0993409156799316e+00, 9.8943710327148438e-06,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- 4.6491622924804688e-06}, /* L151 */
-{1.3019963502883911e+00, 1.1796131730079651e-05,
- 1.1920928955078125e-07, -1.1742115020751953e-05,
- 2.3007392883300781e-05}, /* L152 */
-{1.3790004253387451e+00, 1.2576580047607422e-05,
- 1.1920928955078125e-07, -7.6889991760253906e-06,
- -2.7298927307128906e-05}, /* L153 */
-{1.6265758275985718e+00, 1.4930963516235352e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- 1.9907951354980469e-05}, /* L154 */
-{2.2193210124969482e+00, 2.0503997802734375e-05,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- 8.1062316894531250e-06}, /* L155 */
-{1.7852593660354614e+00, 1.6599893569946289e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- 5.1259994506835938e-06}, /* L156 */
-{1.3180706501007080e+00, 1.2334436178207397e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -2.1576881408691406e-05}, /* L157 */
-{1.3322532176971436e+00, 1.2546777725219727e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- 9.5367431640625000e-07}, /* L158 */
-{1.3788979053497314e+00, 1.3068318367004395e-05,
- 1.1920928955078125e-07, -1.4901161193847656e-05,
- 1.5139579772949219e-05}, /* L159 */
-{1.4453047513961792e+00, 1.3783574104309082e-05,
- 1.1920928955078125e-07, -8.4042549133300781e-06,
- -7.9274177551269531e-06}, /* L160 */
-{1.1241743564605713e+00, 1.0788440704345703e-05,
- 1.1920928955078125e-07, -2.5808811187744141e-05,
- -1.9669532775878906e-06}, /* L161 */
-{2.2160046100616455e+00, 2.1398067474365234e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -5.9604644775390625e-08}, /* L162 */
-{1.6211035251617432e+00, 1.5750527381896973e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-05,
- -9.8347663879394531e-06}, /* L163 */
-{1.5213465690612793e+00, 1.4871358871459961e-05,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -2.6822090148925781e-06}, /* L164 */
-{1.3787782192230225e+00, 1.3560056686401367e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -5.3644180297851562e-07}, /* L165 */
-{1.7770569324493408e+00, 1.7583370208740234e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -7.1525573730468750e-06}, /* L166 */
-{2.7484865188598633e+00, 2.7358531951904297e-05,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- 1.5497207641601562e-06}, /* L167 */
-{1.8256701231002808e+00, 1.8283724784851074e-05,
- 1.1920928955078125e-07, 4.0411949157714844e-05,
- -2.0444393157958984e-05}, /* L168 */
-{1.2751148939132690e+00, 1.2844800949096680e-05,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- 6.6757202148437500e-06}, /* L169 */
-{1.2080430984497070e+00, 1.2241303920745850e-05,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- 1.1920928955078125e-06}, /* L170 */
-{1.6344949007034302e+00, 1.6659498214721680e-05,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- -6.7353248596191406e-06}, /* L171 */
-{1.2437934875488281e+00, 1.2751668691635132e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 2.5033950805664062e-06}, /* L172 */
-{1.9306336641311646e+00, 1.9907951354980469e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -2.6822090148925781e-06}, /* L173 */
-{1.4759663343429565e+00, 1.5318393707275391e-05,
- 1.1920928955078125e-07, 1.7297267913818359e-04,
- -1.4179944992065430e-04}, /* L174 */
-{1.7314062118530273e+00, 1.8060207366943359e-05,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- 8.9406967163085938e-06}, /* L175 */
-{2.0251193046569824e+00, 2.1249055862426758e-05,
- 1.1920928955078125e-07, -3.2663345336914062e-05,
- 1.9311904907226562e-05}, /* L176 */
-{1.7570381164550781e+00, 1.8537044525146484e-05,
- 1.1920928955078125e-07, 9.6559524536132812e-06,
- -3.6954879760742188e-06}, /* L177 */
-{1.3735564947128296e+00, 1.4573335647583008e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -1.4901161193847656e-06}, /* L178 */
-{1.4944077730178833e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, -1.8477439880371094e-06,
- -1.5377998352050781e-05}, /* L179 */
-{1.4609329700469971e+00, 1.5676021575927734e-05,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- -5.4121017456054688e-05}, /* L180 */
-{1.5553495883941650e+00, 1.6781035810709000e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 1.5258789062500000e-05}, /* L181 */
-{1.8710874319076538e+00, 2.0299106836318970e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -6.8545341491699219e-06}, /* L182 */
-{1.5281776189804077e+00, 1.6668811440467834e-05,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- -1.9073486328125000e-06}, /* L183 */
-{1.3851374387741089e+00, 1.5191733837127686e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- 2.3722648620605469e-05}, /* L184 */
-{1.8414518833160400e+00, 2.0310282707214355e-05,
- 1.1920928955078125e-07, -1.3244152069091797e-04,
- 5.4836273193359375e-05}, /* L185 */
-{1.3277161121368408e+00, 1.4722347259521484e-05,
- 1.1920928955078125e-07, 8.9526176452636719e-05,
- 4.1842460632324219e-05}, /* L186 */
-{1.4732117652893066e+00, 1.6421079635620117e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- -1.4305114746093750e-05}, /* L187 */
-{1.9066803455352783e+00, 2.1368265151977539e-05,
- 1.1920928955078125e-07, 3.6597251892089844e-05,
- 2.4199485778808594e-05}, /* L188 */
-{1.4106603860855103e+00, 1.5892088413238525e-05,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- 6.1988830566406250e-06}, /* L189 */
-{1.3992812633514404e+00, 1.5847384929656982e-05,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- -2.2470951080322266e-05}, /* L190 */
-{1.6347910165786743e+00, 1.8611550331115723e-05,
- 1.1920928955078125e-07, -1.1682510375976562e-05,
- 9.1791152954101562e-06}, /* L191 */
-{2.1333692073822021e+00, 2.4415552616119385e-05,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -1.8358230590820312e-05}, /* L192 */
-{1.5025627613067627e+00, 1.7285346984863281e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -7.1525573730468750e-06}, /* L193 */
-{2.8878440856933594e+00, 3.3393502235412598e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -1.0132789611816406e-06}, /* L194 */
-{1.5371786355972290e+00, 1.7866492271423340e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-06,
- 8.8214874267578125e-06}, /* L195 */
-{1.3603134155273438e+00, 1.5892437659204006e-05,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- -5.4836273193359375e-06}, /* L196 */
-{1.5173231363296509e+00, 1.7821788787841797e-05,
- 1.1920928955078125e-07, 1.5509128570556641e-04,
- -5.7697296142578125e-05}, /* L197 */
-{1.9416118860244751e+00, 2.2917985916137695e-05,
- 1.1920928955078125e-07, 1.0538101196289062e-04,
- -2.8491020202636719e-05}, /* L198 */
-{2.1532411575317383e+00, 2.5540590286254883e-05,
- 1.1920928955078125e-07, -2.4139881134033203e-05,
- 3.8146972656250000e-06}, /* L199 */
-{1.6072083711624146e+00, 1.9162893295288086e-05,
- 1.1920928955078125e-07, -5.3048133850097656e-06,
- 3.9219856262207031e-05}, /* L200 */
-{2.0441396236419678e+00, 2.4490058422088623e-05,
- 1.1920928955078125e-07, -1.4901161193847656e-06,
- -3.6954879760742188e-06}, /* L201 */
-{1.4244385957717896e+00, 1.7151236534118652e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-05,
- 0.0000000000000000e+00}, /* L202 */
-{2.1994934082031250e+00, 2.6613473892211914e-05,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- -5.9008598327636719e-06}, /* L203 */
-{2.0759253501892090e+00, 2.5242567062377930e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -1.3709068298339844e-06}, /* L204 */
-{2.3012712001800537e+00, 2.8297305107116699e-05,
- 1.1920928955078125e-07, 4.2761564254760742e-03,
- -6.3121318817138672e-04}, /* L205 */
-{1.8009073734283447e+00, 2.2113323211669922e-05,
- 1.1920928955078125e-07, -1.9490718841552734e-05,
- 2.3484230041503906e-05}, /* L206 */
-{1.6811375617980957e+00, 2.0742416381835938e-05,
- 1.1920928955078125e-07, -5.7816505432128906e-06,
- -1.5199184417724609e-05}, /* L207 */
-{1.5233845710754395e+00, 1.8887221813201904e-05,
- 1.1920928955078125e-07, 2.1576881408691406e-05,
- -7.2717666625976562e-06}, /* L208 */
-{1.7081001996994019e+00, 2.1278858184814453e-05,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 3.5166740417480469e-05}, /* L209 */
-{1.7094756364822388e+00, 2.1398067474365234e-05,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -1.6212463378906250e-05}, /* L210 */
-{1.7369682788848877e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 7.1525573730468750e-07}, /* L211 */
-{2.1650257110595703e+00, 2.7358531951904297e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-05,
- -2.9802322387695312e-07}, /* L212 */
-{1.8022015094757080e+00, 2.2880733013153076e-05,
- 1.1920928955078125e-07, -8.9406967163085938e-06,
- 4.6491622924804688e-06}, /* L213 */
-{1.6097611188888550e+00, 2.0533800125122070e-05,
- 1.1920928955078125e-07, -1.6510486602783203e-05,
- -3.1828880310058594e-05}, /* L214 */
-{2.7405803203582764e+00, 3.5122036933898926e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 2.3841857910156250e-06}, /* L215 */
-{2.3216056823730469e+00, 2.9891729354858398e-05,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- -4.3988227844238281e-05}, /* L216 */
-{2.0458810329437256e+00, 2.6509165763854980e-05,
- 1.1920928955078125e-07, 8.0680847167968750e-04,
- -2.4825334548950195e-04}, /* L217 */
-{1.6922439336776733e+00, 2.1994113922119141e-05,
- 1.1920928955078125e-07, 7.5340270996093750e-05,
- 7.4386596679687500e-05}, /* L218 */
-{2.6654584407806396e+00, 3.4794211387634277e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-05,
- 4.6491622924804688e-06}, /* L219 */
-{1.8817204236984253e+00, 2.4676322937011719e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 2.6702880859375000e-05}, /* L220 */
-{1.5587403774261475e+00, 2.0533800125122070e-05,
- 1.1920928955078125e-07, -3.1232833862304688e-05,
- -2.2530555725097656e-05}, /* L221 */
-{2.7387201786041260e+00, 3.6239624023437500e-05,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- 3.4570693969726562e-06}, /* L222 */
-{1.7229948043823242e+00, 2.2903084754943848e-05,
- 1.1920928955078125e-07, -3.4272670745849609e-05,
- 3.3974647521972656e-05}, /* L223 */
-{1.9461916685104370e+00, 2.6075169444084167e-05,
- 1.1920928955078125e-07, -7.8052282333374023e-04,
- -1.6004443168640137e-03}, /* L224 */
-{2.6253008842468262e+00, 3.5211443901062012e-05,
- 1.1920928955078125e-07, -7.9929828643798828e-05,
- 2.2768974304199219e-05}, /* L225 */
-{1.6724463701248169e+00, 2.2530555725097656e-05,
- 1.1920928955078125e-07, -1.2636184692382812e-05,
- -1.7464160919189453e-05}, /* L226 */
-{2.3430407047271729e+00, 3.1702220439910889e-05,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- 4.2915344238281250e-06}, /* L227 */
-{1.9295259714126587e+00, 2.6226043701171875e-05,
- 1.1920928955078125e-07, -5.4895877838134766e-05,
- -5.2034854888916016e-05}, /* L228 */
-{1.4821538925170898e+00, 2.0265579223632812e-05,
- 1.1920928955078125e-07, -5.9717893600463867e-04,
- 2.0396709442138672e-04}, /* L229 */
-{1.7281060218811035e+00, 2.3692846298217773e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -1.4901161193847656e-05}, /* L230 */
-{1.6037313938140869e+00, 2.2083520889282227e-05,
- 1.1920928955078125e-07, 1.6570091247558594e-05,
- 1.4305114746093750e-05}, /* L231 */
-{2.3717210292816162e+00, 3.2797455787658691e-05,
- 1.1920928955078125e-07, 1.0371208190917969e-05,
- -8.7618827819824219e-06}, /* L232 */
-{2.8710215091705322e+00, 3.9875507354736328e-05,
- 1.1920928955078125e-07, -1.5854835510253906e-05,
- -4.8875808715820312e-06}, /* L233 */
-{1.7312009334564209e+00, 2.4147331714630127e-05,
- 1.1920928955078125e-07, 5.0306320190429688e-05,
- 9.1791152954101562e-06}, /* L234 */
-{1.5403704643249512e+00, 2.1576881408691406e-05,
- 1.1920928955078125e-07, -2.1159648895263672e-05,
- -1.0430812835693359e-05}, /* L235 */
-{1.9861783981323242e+00, 2.7939677238464355e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.1324882507324219e-06}, /* L236 */
-{1.4239082336425781e+00, 2.0116567611694336e-05,
- 1.1920928955078125e-07, -1.8656253814697266e-05,
- -2.1994113922119141e-05}, /* L237 */
-{2.0041613578796387e+00, 2.8431415557861328e-05,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- -1.7404556274414062e-05}, /* L238 */
-{1.6922721862792969e+00, 2.4110078811645508e-05,
- 1.1920928955078125e-07, -9.1969966888427734e-05,
- -5.6803226470947266e-05}, /* L239 */
-{1.9665743112564087e+00, 2.8133392333984375e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 1.5258789062500000e-05}, /* L240 */
-{1.8344422578811646e+00, 2.6375055313110352e-05,
- 1.1920928955078125e-07, -1.1718273162841797e-04,
- 7.2479248046875000e-05}, /* L241 */
-{2.2969586849212646e+00, 3.3140182495117188e-05,
- 1.1920928955078125e-07, -1.5377998352050781e-04,
- -2.1243095397949219e-04}, /* L242 */
-{2.3987174034118652e+00, 3.4764409065246582e-05,
- 1.1920928955078125e-07, -4.1544437408447266e-04,
- -1.5157461166381836e-04}, /* L243 */
-{1.5798897743225098e+00, 2.2977590560913086e-05,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -5.8412551879882812e-06}, /* L244 */
-{2.7386751174926758e+00, 3.9994716644287109e-05,
- 1.1920928955078125e-07, -3.4570693969726562e-05,
- -7.3313713073730469e-06}, /* L245 */
-{2.1707072257995605e+00, 3.1828880310058594e-05,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- 9.5367431640625000e-07}, /* L246 */
-{1.7630616426467896e+00, 2.5957822799682617e-05,
- 1.1920928955078125e-07, -1.5854835510253906e-05,
- -1.7404556274414062e-05}, /* L247 */
-{1.9818193912506104e+00, 2.9295682907104492e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-05,
- -1.0073184967041016e-05}, /* L248 */
-{1.9132480621337891e+00, 2.8401613235473633e-05,
- 1.1920928955078125e-07, 1.2397766113281250e-05,
- 1.4424324035644531e-05}, /* L249 */
-{1.8253062963485718e+00, 2.7203932404518127e-05,
- 1.1920928955078125e-07, 1.1348724365234375e-04,
- 4.9471855163574219e-05}, /* L250 */
-{2.5992815494537354e+00, 3.8892030715942383e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -2.0205974578857422e-05}, /* L251 */
-{1.6348389387130737e+00, 2.4557113647460938e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -7.6293945312500000e-06}, /* L252 */
-{2.5707912445068359e+00, 3.8772821426391602e-05,
- 1.1920928955078125e-07, -3.8981437683105469e-05,
- -7.5876712799072266e-05}, /* L253 */
-{1.8078932762145996e+00, 2.7373433113098145e-05,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 4.8637390136718750e-05}, /* L254 */
-{1.8174178600311279e+00, 2.7626752853393555e-05,
- 1.1920928955078125e-07, -2.1040439605712891e-05,
- 6.3776969909667969e-05}, /* L255 */
-{2.7811093330383301e+00, 4.2438507080078125e-05,
- 1.1920928955078125e-07, -3.8444995880126953e-05,
- 2.8610229492187500e-05}, /* L256 */
-{2.3761701583862305e+00, 3.6478042602539062e-05,
- 1.1920928955078125e-07, -5.1617622375488281e-05,
- -3.2842159271240234e-04}, /* L257 */
-{2.1567502021789551e+00, 3.3169984817504883e-05,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- -3.6120414733886719e-05}, /* L258 */
-{2.4815292358398438e+00, 3.8310885429382324e-05,
- 1.1920928955078125e-07, -1.1384487152099609e-05,
- 3.1709671020507812e-05}, /* L259 */
-{1.9406576156616211e+00, 3.0077993869781494e-05,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- 6.3180923461914062e-06}, /* L260 */
-{2.1775522232055664e+00, 3.3877789974212646e-05,
- 1.1920928955078125e-07, 2.4557113647460938e-05,
- 1.7881393432617188e-06}, /* L261 */
-{2.9978020191192627e+00, 4.6834349632263184e-05,
- 1.1920928955078125e-07, -1.9985437393188477e-04,
- 4.2080879211425781e-05}, /* L262 */
-{2.8316121101379395e+00, 4.4390559196472168e-05,
- 1.1920928955078125e-07, 3.5881996154785156e-05,
- -3.6954879760742188e-05}, /* L263 */
-{2.3938372135162354e+00, 3.7670135498046875e-05,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- -3.0696392059326172e-05}, /* L264 */
-{2.3713757991790771e+00, 3.7461519241333008e-05,
- 1.1920928955078125e-07, -6.0141086578369141e-05,
- -6.9200992584228516e-05}, /* L265 */
-{2.0970685482025146e+00, 3.3251941204071045e-05,
- 1.1920928955078125e-07, -2.5391578674316406e-05,
- -4.4405460357666016e-05}, /* L266 */
-{2.3971326351165771e+00, 3.8206577301025391e-05,
- 1.1920928955078125e-07, -3.8003921508789062e-04,
- -1.4096498489379883e-04}, /* L267 */
-{1.6919915676116943e+00, 2.7030706405639648e-05,
- 1.1920928955078125e-07, 7.8678131103515625e-05,
- -3.7133693695068359e-05}, /* L268 */
-{2.8995459079742432e+00, 4.6499073505401611e-05,
- 1.1920928955078125e-07, 1.7285346984863281e-05,
- 4.4107437133789062e-06}, /* L269 */
-{1.7237652540206909e+00, 2.7745962142944336e-05,
- 1.1920928955078125e-07, 7.7128410339355469e-05,
- 3.1948089599609375e-05}, /* L270 */
-{1.5661971569061279e+00, 2.5302171707153320e-05,
- 1.1920928955078125e-07, -5.2392482757568359e-05,
- -4.5120716094970703e-05}, /* L271 */
-{2.0633811950683594e+00, 3.3453106880187988e-05,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- -1.1563301086425781e-05}, /* L272 */
-{1.9073903560638428e+00, 3.1038187444210052e-05,
- 1.1920928955078125e-07, -2.2828578948974609e-05,
- 1.1920928955078125e-07}, /* L273 */
-{1.9742430448532104e+00, 3.2246112823486328e-05,
- 1.1920928955078125e-07, -2.2590160369873047e-05,
- -4.3511390686035156e-06}, /* L274 */
-{1.9677819013595581e+00, 3.2255426049232483e-05,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- 6.5565109252929688e-06}, /* L275 */
-{2.4396986961364746e+00, 4.0136277675628662e-05,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- -1.2457370758056641e-05}, /* L276 */
-{1.8177505731582642e+00, 3.0025839805603027e-05,
- 1.1920928955078125e-07, -2.0533800125122070e-04,
- 1.8084049224853516e-04}, /* L277 */
-{1.7567865848541260e+00, 2.9116868972778320e-05,
- 1.1920928955078125e-07, -3.2126903533935547e-05,
- 1.0216236114501953e-04}, /* L278 */
-{1.8745150566101074e+00, 3.1173229217529297e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- -3.4570693969726562e-06}, /* L279 */
-{1.9008158445358276e+00, 3.1724572181701660e-05,
- 1.1920928955078125e-07, -2.7418136596679688e-06,
- -6.7353248596191406e-06}, /* L280 */
-{2.1313695907592773e+00, 3.5703182220458984e-05,
- 1.1920928955078125e-07, -2.0027160644531250e-05,
- 7.8678131103515625e-06}, /* L281 */
-{2.1629920005798340e+00, 3.6358833312988281e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- -2.3245811462402344e-06}, /* L282 */
-{2.6175808906555176e+00, 4.4226646423339844e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -2.3037195205688477e-04}, /* L283 */
-{1.8059939146041870e+00, 3.0577182769775391e-05,
- 1.1920928955078125e-07, -6.5386295318603516e-05,
- -7.0095062255859375e-05}, /* L284 */
-{2.4453511238098145e+00, 4.1544437408447266e-05,
- 1.1920928955078125e-07, -4.3272972106933594e-05,
- -2.1636486053466797e-05}, /* L285 */
-{1.9588391780853271e+00, 3.3393502235412598e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-05,
- -5.2452087402343750e-06}, /* L286 */
-{2.0626201629638672e+00, 3.5285949707031250e-05,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -1.0430812835693359e-05}, /* L287 */
-{2.4062309265136719e+00, 4.1365623474121094e-05,
- 1.1920928955078125e-07, 7.7843666076660156e-05,
- -2.2709369659423828e-04}, /* L288 */
-{2.0518932342529297e+00, 3.5345554351806641e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-06,
- 4.1723251342773438e-06}, /* L289 */
-{1.8658719062805176e+00, 3.2253563404083252e-05,
- 1.1920928955078125e-07, 2.0742416381835938e-05,
- -1.7285346984863281e-06}, /* L290 */
-{2.6425535678863525e+00, 4.5835971832275391e-05,
- 1.1920928955078125e-07, -9.0003013610839844e-06,
- -8.2850456237792969e-06}, /* L291 */
-{2.0215661525726318e+00, 3.5189092159271240e-05,
- 1.1920928955078125e-07, 4.2676925659179688e-05,
- -7.1108341217041016e-05}, /* L292 */
-{2.2042412757873535e+00, 3.8504600524902344e-05,
- 1.1920928955078125e-07, 9.1910362243652344e-05,
- 4.6014785766601562e-05}, /* L293 */
-{2.6630659103393555e+00, 4.6670436859130859e-05,
- 1.1920928955078125e-07, -7.1585178375244141e-05,
- 6.0439109802246094e-05}, /* L294 */
-{3.1092755794525146e+00, 5.4687261581420898e-05,
- 1.1920928955078125e-07, -1.2159347534179688e-05,
- -8.4102153778076172e-05}, /* L295 */
-{2.7260375022888184e+00, 4.8100948333740234e-05,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- -2.2649765014648438e-06}, /* L296 */
-{2.4055395126342773e+00, 4.2587518692016602e-05,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 2.0861625671386719e-05}, /* L297 */
-{2.2514145374298096e+00, 3.9994716644287109e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 1.0275840759277344e-04}, /* L298 */
-{1.9899502992630005e+00, 3.5464763641357422e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- -8.5234642028808594e-06}, /* L299 */
-{2.3508369922637939e+00, 4.2080879211425781e-05,
- 1.1920928955078125e-07, -5.2601099014282227e-04,
- 6.4682960510253906e-04}, /* L300 */
-{2.1294834613800049e+00, 3.8206577301025391e-05,
- 1.1920928955078125e-07, -1.1742115020751953e-05,
- -2.2053718566894531e-06}, /* L301 */
-{1.7228214740753174e+00, 3.1016767024993896e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -5.6087970733642578e-05}, /* L302 */
-{2.8134369850158691e+00, 5.0812959671020508e-05,
- 1.1920928955078125e-07, -6.4373016357421875e-06,
- -4.2915344238281250e-06}, /* L303 */
-{3.0491602420806885e+00, 5.5253505706787109e-05,
- 1.1920928955078125e-07, 1.0848045349121094e-05,
- 1.2516975402832031e-05}, /* L304 */
-{2.3236732482910156e+00, 4.2244791984558105e-05,
- 1.1920928955078125e-07, 1.6093254089355469e-05,
- 8.5830688476562500e-06}, /* L305 */
-{2.7610785961151123e+00, 5.0395727157592773e-05,
- 1.1920928955078125e-07, 1.8310546875000000e-04,
- 3.0028820037841797e-04}, /* L306 */
-{1.9165561199188232e+00, 3.5077333450317383e-05,
- 1.1920928955078125e-07, -5.7637691497802734e-05,
- 1.5497207641601562e-05}, /* L307 */
-{3.1946399211883545e+00, 5.8650970458984375e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- -2.0325183868408203e-05}, /* L308 */
-{2.8280823230743408e+00, 5.2094459533691406e-05,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- 1.0371208190917969e-05}, /* L309 */
-{2.6892290115356445e+00, 4.9699097871780396e-05,
- 1.1920928955078125e-07, 3.2067298889160156e-05,
- -6.8545341491699219e-06}, /* L310 */
-{2.1606910228729248e+00, 4.0054321289062500e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.0490417480468750e-05}, /* L311 */
-{2.5548410415649414e+00, 4.7513283789157867e-05,
- 1.1920928955078125e-07, -1.0371208190917969e-05,
- -1.9669532775878906e-06}, /* L312 */
-{2.8300588130950928e+00, 5.2809715270996094e-05,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- 5.6028366088867188e-05}, /* L313 */
-{2.9151206016540527e+00, 5.4568052291870117e-05,
- 1.1920928955078125e-07, 6.9260597229003906e-05,
- 8.1777572631835938e-05}, /* L314 */
-{2.9345300197601318e+00, 5.5104494094848633e-05,
- 1.1920928955078125e-07, -1.9848346710205078e-05,
- -7.6651573181152344e-05}, /* L315 */
-{2.0489308834075928e+00, 3.8594007492065430e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 2.9683113098144531e-05}, /* L316 */
-{2.5329389572143555e+00, 4.7862529754638672e-05,
- 1.1920928955078125e-07, 2.8491020202636719e-05,
- -1.1265277862548828e-05}, /* L317 */
-{2.0207736492156982e+00, 3.8303434848785400e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -3.8146972656250000e-06}, /* L318 */
-{1.6803948879241943e+00, 3.1951814889907837e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-05,
- 1.7881393432617188e-06}, /* L319 */
-{3.2248353958129883e+00, 6.1511993408203125e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- -1.6808509826660156e-05}, /* L320 */
-{2.0936515331268311e+00, 4.0084123611450195e-05,
- 1.1920928955078125e-07, 6.5672397613525391e-04,
- -2.3597478866577148e-04}, /* L321 */
-{2.1280190944671631e+00, 4.0855258703231812e-05,
- 1.1920928955078125e-07, 9.1910362243652344e-05,
- 1.3101100921630859e-04}, /* L322 */
-{2.6232008934020996e+00, 5.0514936447143555e-05,
- 1.1920928955078125e-07, -5.4895877838134766e-05,
- -1.9073486328125000e-06}, /* L323 */
-{2.5062313079833984e+00, 4.8436224460601807e-05,
- 1.1920928955078125e-07, 1.3589859008789062e-04,
- -4.1723251342773438e-07}, /* L324 */
-{2.5230169296264648e+00, 4.8890709877014160e-05,
- 1.1920928955078125e-07, -3.3915042877197266e-05,
- -1.8775463104248047e-05}, /* L325 */
-{2.1639659404754639e+00, 4.2051076889038086e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 2.1696090698242188e-05}, /* L326 */
-{3.0562987327575684e+00, 5.9574842453002930e-05,
- 1.1920928955078125e-07, -3.4272670745849609e-05,
- 1.2636184692382812e-05}, /* L327 */
-{2.2465183734893799e+00, 4.3928623199462891e-05,
- 1.1920928955078125e-07, -9.8466873168945312e-05,
- -2.3120641708374023e-04}, /* L328 */
-{2.7019002437591553e+00, 5.2990391850471497e-05,
- 1.1920928955078125e-07, 1.2636184692382812e-05,
- -1.5318393707275391e-05}, /* L329 */
-{2.4795572757720947e+00, 4.8778951168060303e-05,
- 1.1920928955078125e-07, -5.6862831115722656e-05,
- -7.0095062255859375e-05}, /* L330 */
-{2.2014863491058350e+00, 4.3436884880065918e-05,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- 4.3749809265136719e-05}, /* L331 */
-{2.5285425186157227e+00, 5.0038099288940430e-05,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 1.9311904907226562e-05}, /* L332 */
-{1.7712036371231079e+00, 3.5196542739868164e-05,
- 1.1920928955078125e-07, -2.7704238891601562e-04,
- -6.3019990921020508e-04}, /* L333 */
-{1.8170697689056396e+00, 3.6180019378662109e-05,
- 1.1920928955078125e-07, -4.2498111724853516e-05,
- 2.0265579223632812e-06}, /* L334 */
-{1.9550298452377319e+00, 3.9044767618179321e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-05,
- 3.3736228942871094e-05}, /* L335 */
-{2.5204973220825195e+00, 5.0485134124755859e-05,
- 1.1920928955078125e-07, -4.9829483032226562e-05,
- 2.0503997802734375e-05}, /* L336 */
-{2.2628602981567383e+00, 4.5478343963623047e-05,
- 1.1920928955078125e-07, -1.2570619583129883e-04,
- 1.6820430755615234e-04}, /* L337 */
-{2.4363055229187012e+00, 4.9084424972534180e-05,
- 1.1920928955078125e-07, -4.8279762268066406e-05,
- -1.2218952178955078e-05}, /* L338 */
-{2.5107040405273438e+00, 5.0738453865051270e-05,
- 1.1920928955078125e-07, 7.7486038208007812e-06,
- -4.9233436584472656e-05}, /* L339 */
-{3.2352368831634521e+00, 6.5594911575317383e-05,
- 1.1920928955078125e-07, 1.1122226715087891e-04,
- 1.4424324035644531e-04}, /* L340 */
-{2.7725696563720703e+00, 5.6356191635131836e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 4.7326087951660156e-05}, /* L341 */
-{2.4019429683685303e+00, 4.8965215682983398e-05,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -6.2584877014160156e-06}, /* L342 */
-{2.6420495510101318e+00, 5.4016709327697754e-05,
- 1.1920928955078125e-07, -1.2576580047607422e-05,
- 5.8412551879882812e-06}, /* L343 */
-{2.5041303634643555e+00, 5.1349401473999023e-05,
- 1.1920928955078125e-07, 4.3392181396484375e-05,
- -1.3649463653564453e-05}, /* L344 */
-{2.4897339344024658e+00, 5.1200389862060547e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.9073486328125000e-06}, /* L345 */
-{2.1848044395446777e+00, 4.5061111450195312e-05,
- 1.1920928955078125e-07, -3.4689903259277344e-05,
- 4.7087669372558594e-05}, /* L346 */
-{2.9077217578887939e+00, 6.0141086578369141e-05,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.6212463378906250e-05}, /* L347 */
-{2.1914703845977783e+00, 4.5523047447204590e-05,
- 1.1920928955078125e-07, -1.4996528625488281e-04,
- 5.5587291717529297e-04}, /* L348 */
-{2.6640062332153320e+00, 5.5432319641113281e-05,
- 1.1920928955078125e-07, -4.5180320739746094e-05,
- 1.6438961029052734e-04}, /* L349 */
-{2.4141144752502441e+00, 5.0365924835205078e-05,
- 1.1920928955078125e-07, 2.2768974304199219e-05,
- 6.3180923461914062e-06}, /* L350 */
-{1.9883847236633301e+00, 4.1604042053222656e-05,
- 1.1920928955078125e-07, 2.0623207092285156e-05,
- 3.0994415283203125e-06}, /* L351 */
-{2.1346588134765625e+00, 4.4792890548706055e-05,
- 1.1920928955078125e-07, 4.6133995056152344e-05,
- 1.0788440704345703e-04}, /* L352 */
-{2.6041996479034424e+00, 5.4806470870971680e-05,
- 1.1920928955078125e-07, 1.1062622070312500e-04,
- 1.3256072998046875e-04}, /* L353 */
-{2.2638974189758301e+00, 4.7773122787475586e-05,
- 1.1920928955078125e-07, 1.9192695617675781e-05,
- 9.3460083007812500e-05}, /* L354 */
-{3.4702515602111816e+00, 7.3432922363281250e-05,
- 1.1920928955078125e-07, -1.5258789062500000e-05,
- -5.7518482208251953e-05}, /* L355 */
-{2.4574007987976074e+00, 5.2183866500854492e-05,
- 1.1920928955078125e-07, 2.7906894683837891e-04,
- 1.0848045349121094e-04}, /* L356 */
-{3.0418555736541748e+00, 6.4730644226074219e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 2.5391578674316406e-05}, /* L357 */
-{2.5522701740264893e+00, 5.4463744163513184e-05,
- 1.1920928955078125e-07, 1.4662742614746094e-05,
- -8.7618827819824219e-06}, /* L358 */
-{2.5194013118743896e+00, 5.3912401199340820e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -7.3313713073730469e-06}, /* L359 */
-{2.5437009334564209e+00, 5.4582953453063965e-05,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- 4.2915344238281250e-06}, /* L360 */
-{3.0247805118560791e+00, 6.5088272094726562e-05,
- 1.1920928955078125e-07, 5.3405761718750000e-05,
- -1.8417835235595703e-05}, /* L361 */
-{3.2387988567352295e+00, 6.9886445999145508e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -1.1980533599853516e-05}, /* L362 */
-{2.0094070434570312e+00, 4.3481588363647461e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-05,
- 3.0159950256347656e-05}, /* L363 */
-{2.8144791126251221e+00, 6.1094760894775391e-05,
- 1.1920928955078125e-07, 1.3136863708496094e-04,
- -1.3607740402221680e-04}, /* L364 */
-{2.9070694446563721e+00, 6.3255429267883301e-05,
- 1.1920928955078125e-07, -1.1342763900756836e-04,
- -6.1750411987304688e-05}, /* L365 */
-{2.2048673629760742e+00, 4.8100948333740234e-05,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 1.0251998901367188e-05}, /* L366 */
-{2.3073966503143311e+00, 5.0485134124755859e-05,
- 1.1920928955078125e-07, -4.2796134948730469e-05,
- 4.0531158447265625e-05}, /* L367 */
-{3.0824701786041260e+00, 6.7621469497680664e-05,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- 2.1576881408691406e-05}, /* L368 */
-{2.4836688041687012e+00, 5.4627656936645508e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 2.4437904357910156e-05}, /* L369 */
-{2.0607519149780273e+00, 4.5448541641235352e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 1.9311904907226562e-05}, /* L370 */
-{2.9789326190948486e+00, 6.5878033638000488e-05,
- 1.1920928955078125e-07, -2.6226043701171875e-06,
- -4.5418739318847656e-05}, /* L371 */
-{2.8755564689636230e+00, 6.3762068748474121e-05,
- 1.1920928955078125e-07, 2.4437904357910156e-05,
- 1.9788742065429688e-05}, /* L372 */
-{2.1336400508880615e+00, 4.7445297241210938e-05,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- 7.9393386840820312e-05}, /* L373 */
-{2.6124074459075928e+00, 5.8349221944808960e-05,
- 1.1920928955078125e-07, -9.1993808746337891e-04,
- -9.2780590057373047e-04}, /* L374 */
-{2.8251183032989502e+00, 6.3154846429824829e-05,
- 1.1920928955078125e-07, -4.9233436584472656e-05,
- 1.1670589447021484e-04}, /* L375 */
-{3.2158968448638916e+00, 7.2091817855834961e-05,
- 1.1920928955078125e-07, -2.6279687881469727e-04,
- 8.2254409790039062e-06}, /* L376 */
-{3.0574278831481934e+00, 6.8709254264831543e-05,
- 1.1920928955078125e-07, -2.3305416107177734e-05,
- 1.1205673217773438e-05}, /* L377 */
-{2.3369059562683105e+00, 5.2660703659057617e-05,
- 1.1920928955078125e-07, 2.9087066650390625e-05,
- 1.0728836059570312e-06}, /* L378 */
-{3.2579820156097412e+00, 7.3611736297607422e-05,
- 1.1920928955078125e-07, -8.5353851318359375e-05,
- -3.8027763366699219e-05}, /* L379 */
-{2.2117111682891846e+00, 5.0097703933715820e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- -2.9623508453369141e-05}, /* L380 */
-{2.5686366558074951e+00, 5.8338046073913574e-05,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- -2.9742717742919922e-05}, /* L381 */
-{3.3267192840576172e+00, 7.5802206993103027e-05,
- 1.1920928955078125e-07, 1.5318393707275391e-04,
- -2.5427341461181641e-04}, /* L382 */
-{2.5873582363128662e+00, 5.9068202972412109e-05,
- 1.1920928955078125e-07, -2.8729438781738281e-05,
- 5.7220458984375000e-06}, /* L383 */
-{3.2542302608489990e+00, 7.4505805969238281e-05,
- 1.1920928955078125e-07, 4.0769577026367188e-05,
- -1.1897087097167969e-04}, /* L384 */
-{2.5617325305938721e+00, 5.8790668845176697e-05,
- 1.1920928955078125e-07, -3.0338764190673828e-05,
- 1.5854835510253906e-05}, /* L385 */
-{2.2261345386505127e+00, 5.1237642765045166e-05,
- 1.1920928955078125e-07, -1.3840198516845703e-04,
- -2.0736455917358398e-04}, /* L386 */
-{2.3474810123443604e+00, 5.4150819778442383e-05,
- 1.1920928955078125e-07, -1.4543533325195312e-05,
- -1.0848045349121094e-05}, /* L387 */
-{2.0191648006439209e+00, 4.6700239181518555e-05,
- 1.1920928955078125e-07, -1.2934207916259766e-05,
- 2.1934509277343750e-05}, /* L388 */
-{1.9633042812347412e+00, 4.5523047447204590e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 1.0848045349121094e-05}, /* L389 */
-{2.9138581752777100e+00, 6.7740678787231445e-05,
- 1.1920928955078125e-07, -1.5974044799804688e-05,
- -1.4722347259521484e-05}, /* L390 */
-{2.3246891498565674e+00, 5.4180622100830078e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -2.9206275939941406e-06}, /* L391 */
-{3.1366462707519531e+00, 7.3313713073730469e-05,
- 1.1920928955078125e-07, -4.8995018005371094e-05,
- 1.6999244689941406e-04}, /* L392 */
-{2.5511569976806641e+00, 5.9768557548522949e-05,
- 1.1920928955078125e-07, -6.7353248596191406e-06,
- 1.4662742614746094e-05}, /* L393 */
-{2.4069147109985352e+00, 5.6535005569458008e-05,
- 1.1920928955078125e-07, -1.0037422180175781e-04,
- -1.1324882507324219e-05}, /* L394 */
-{3.2565941810607910e+00, 7.6726078987121582e-05,
- 1.1920928955078125e-07, -1.3208389282226562e-04,
- 7.2717666625976562e-05}, /* L395 */
-{3.3154320716857910e+00, 7.8260898590087891e-05,
- 1.1920928955078125e-07, 4.0173530578613281e-05,
- 2.7179718017578125e-05}, /* L396 */
-{2.2013769149780273e+00, 5.2094459533691406e-05,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- -1.0132789611816406e-05}, /* L397 */
-{2.9965872764587402e+00, 7.1089714765548706e-05,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- 2.6226043701171875e-05}, /* L398 */
-{4.8675985336303711e+00, 1.1582951992750168e-04,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- 4.4465065002441406e-05}, /* L399 */
-{3.4448235034942627e+00, 8.2135200500488281e-05,
- 1.1920928955078125e-07, 2.8371810913085938e-05,
- -5.9604644775390625e-07}, /* L400 */
-{1.7917469739913940e+00, 4.2825937271118164e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 8.5830688476562500e-06}, /* L401 */
-{2.9190092086791992e+00, 6.9946050643920898e-05,
- 1.1920928955078125e-07, -4.7922134399414062e-05,
- -1.4781951904296875e-05}, /* L402 */
-{3.1212413311004639e+00, 7.4988231062889099e-05,
- 1.1920928955078125e-07, 3.6001205444335938e-05,
- 4.6253204345703125e-05}, /* L403 */
-{3.3016142845153809e+00, 7.9520046710968018e-05,
- 1.1920928955078125e-07, -8.7797641754150391e-05,
- 4.3392181396484375e-05}, /* L404 */
-{2.5954740047454834e+00, 6.2659382820129395e-05,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- -1.1801719665527344e-05}, /* L405 */
-{3.1500399112701416e+00, 7.6234340667724609e-05,
- 1.1920928955078125e-07, -2.0623207092285156e-05,
- 5.6028366088867188e-06}, /* L406 */
-{2.1939091682434082e+00, 5.3226947784423828e-05,
- 1.1920928955078125e-07, -5.8412551879882812e-05,
- -3.6239624023437500e-05}, /* L407 */
-{2.6877670288085938e+00, 6.5434724092483521e-05,
- 1.1920928955078125e-07, 5.3524971008300781e-05,
- 2.8729438781738281e-05}, /* L408 */
-{2.5728218555450439e+00, 6.2733888626098633e-05,
- 1.1920928955078125e-07, -6.3478946685791016e-05,
- -1.0007619857788086e-04}, /* L409 */
-{3.2742455005645752e+00, 8.0078840255737305e-05,
- 1.1920928955078125e-07, -1.3381242752075195e-04,
- -8.5592269897460938e-05}, /* L410 */
-{2.8177847862243652e+00, 6.9040805101394653e-05,
- 1.1920928955078125e-07, -5.4836273193359375e-06,
- 3.3974647521972656e-05}, /* L411 */
-{2.2618916034698486e+00, 5.5549666285514832e-05,
- 1.1920928955078125e-07, -2.1040439605712891e-05,
- 1.7762184143066406e-05}, /* L412 */
-{3.7640857696533203e+00, 9.2670321464538574e-05,
- 1.1920928955078125e-07, 6.6995620727539062e-05,
- 1.0371208190917969e-05}, /* L413 */
-{2.5550801753997803e+00, 6.3098967075347900e-05,
- 1.1920928955078125e-07, 2.3269653320312500e-04,
- 4.3749809265136719e-05}, /* L414 */
-{2.7094342708587646e+00, 6.7040324211120605e-05,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- -3.2007694244384766e-05}, /* L415 */
-{2.8891294002532959e+00, 7.1704387664794922e-05,
- 1.1920928955078125e-07, -2.6035308837890625e-04,
- -4.1604042053222656e-05}, /* L416 */
-{2.4206686019897461e+00, 6.0200691223144531e-05,
- 1.1920928955078125e-07, -2.3204088211059570e-04,
- 3.8039684295654297e-04}, /* L417 */
-{2.6355955600738525e+00, 6.5714120864868164e-05,
- 1.1920928955078125e-07, 2.4259090423583984e-04,
- 2.6941299438476562e-05}, /* L418 */
-{2.6906697750091553e+00, 6.7204236984252930e-05,
- 1.1920928955078125e-07, 2.5868415832519531e-05,
- -3.4272670745849609e-05}, /* L419 */
-{2.8222055435180664e+00, 7.0661306381225586e-05,
- 1.1920928955078125e-07, -5.6564807891845703e-05,
- -2.6464462280273438e-05}, /* L420 */
-{2.5567009449005127e+00, 6.4169988036155701e-05,
- 1.1920928955078125e-07, -8.5771083831787109e-05,
- -4.3332576751708984e-05}, /* L421 */
-{3.4146778583526611e+00, 8.5912644863128662e-05,
- 1.1920928955078125e-07, -7.8976154327392578e-05,
- 4.3511390686035156e-05}, /* L422 */
-{2.8130726814270020e+00, 7.0929527282714844e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- -1.0669231414794922e-05}, /* L423 */
-{2.9997084140777588e+00, 7.5817108154296875e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- 1.0728836059570312e-06}, /* L424 */
-{4.4337902069091797e+00, 1.1232495307922363e-04,
- 1.1920928955078125e-07, -3.3974647521972656e-06,
- -7.7486038208007812e-06}, /* L425 */
-{3.4331889152526855e+00, 8.7194144725799561e-05,
- 1.1920928955078125e-07, 9.1552734375000000e-05,
- 1.0859966278076172e-04}, /* L426 */
-{2.6074423789978027e+00, 6.6369771957397461e-05,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- 2.5033950805664062e-05}, /* L427 */
-{3.0480685234069824e+00, 7.7761709690093994e-05,
- 1.1920928955078125e-07, -1.7642974853515625e-05,
- -3.5762786865234375e-05}, /* L428 */
-{2.7869405746459961e+00, 7.1302056312561035e-05,
- 1.1920928955078125e-07, -1.0532140731811523e-04,
- -7.8082084655761719e-06}, /* L429 */
-{3.8392596244812012e+00, 9.8407268524169922e-05,
- 1.1920928955078125e-07, -8.4042549133300781e-06,
- 1.4185905456542969e-05}, /* L430 */
-{2.7247571945190430e+00, 7.0154666900634766e-05,
- 1.1920928955078125e-07, -6.8807601928710938e-04,
- -6.2984228134155273e-04}, /* L431 */
-{2.3728237152099609e+00, 6.1107799410820007e-05,
- 1.1920928955078125e-07, -2.0384788513183594e-05,
- 8.9406967163085938e-06}, /* L432 */
-{3.3913035392761230e+00, 8.7633728981018066e-05,
- 1.1920928955078125e-07, 2.7263164520263672e-04,
- -1.4251470565795898e-04}, /* L433 */
-{3.1149868965148926e+00, 8.0585479736328125e-05,
- 1.1920928955078125e-07, -3.8385391235351562e-05,
- 3.5762786865234375e-06}, /* L434 */
-{3.0939691066741943e+00, 8.0227851867675781e-05,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- 1.9788742065429688e-05}, /* L435 */
-{2.6854977607727051e+00, 6.9797039031982422e-05,
- 1.1920928955078125e-07, -1.0067224502563477e-04,
- -1.0311603546142578e-05}, /* L436 */
-{2.9255356788635254e+00, 7.6234340667724609e-05,
- 1.1920928955078125e-07, 7.4982643127441406e-05,
- -1.4609098434448242e-04}, /* L437 */
-{3.3418045043945312e+00, 8.7261199951171875e-05,
- 1.1920928955078125e-07, -1.0961294174194336e-04,
- -7.3909759521484375e-06}, /* L438 */
-{3.1744203567504883e+00, 8.3088874816894531e-05,
- 1.1920928955078125e-07, 1.2254714965820312e-04,
- -3.7908554077148438e-05}, /* L439 */
-{3.2314956188201904e+00, 8.4789469838142395e-05,
- 1.1920928955078125e-07, -1.3142824172973633e-04,
- 1.0967254638671875e-05}, /* L440 */
-{3.6460816860198975e+00, 9.5844268798828125e-05,
- 1.1920928955078125e-07, -7.2121620178222656e-06,
- -1.8954277038574219e-05}, /* L441 */
-{4.1092233657836914e+00, 1.0827183723449707e-04,
- 1.1920928955078125e-07, -1.3113021850585938e-05,
- -1.7523765563964844e-05}, /* L442 */
-{2.7775535583496094e+00, 7.3343515396118164e-05,
- 1.1920928955078125e-07, -2.9981136322021484e-05,
- -1.1682510375976562e-05}, /* L443 */
-{2.5474042892456055e+00, 6.7468732595443726e-05,
- 1.1920928955078125e-07, -3.9100646972656250e-05,
- 5.7339668273925781e-05}, /* L444 */
-{3.9107868671417236e+00, 1.0374933481216431e-04,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -5.3048133850097656e-06}, /* L445 */
-{2.6244187355041504e+00, 6.9774687290191650e-05,
- 1.1920928955078125e-07, -3.0040740966796875e-05,
- -5.5789947509765625e-05}, /* L446 */
-{3.3370428085327148e+00, 8.8915228843688965e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -3.7610530853271484e-05}, /* L447 */
-{3.3220365047454834e+00, 8.8714063167572021e-05,
- 1.1920928955078125e-07, 4.3034553527832031e-05,
- -7.8082084655761719e-06}, /* L448 */
-{3.1199979782104492e+00, 8.3506107330322266e-05,
- 1.1920928955078125e-07, 4.9710273742675781e-05,
- 3.2067298889160156e-05}, /* L449 */
-{3.7826178073883057e+00, 1.0147690773010254e-04,
- 1.1920928955078125e-07, 1.3947486877441406e-04,
- 5.8293342590332031e-05}, /* L450 */
-{3.0933513641357422e+00, 8.3159655332565308e-05,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -8.0466270446777344e-06}, /* L451 */
-{2.7914371490478516e+00, 7.5211748480796814e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 7.3909759521484375e-06}, /* L452 */
-{2.4103434085845947e+00, 6.5088272094726562e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -7.0333480834960938e-06}, /* L453 */
-{2.9798476696014404e+00, 8.0645084381103516e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 6.5445899963378906e-05}, /* L454 */
-{2.4479994773864746e+00, 6.6399574279785156e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -5.9604644775390625e-08}, /* L455 */
-{2.2857246398925781e+00, 6.2137842178344727e-05,
- 1.1920928955078125e-07, -3.7789344787597656e-05,
- -3.4868717193603516e-05}, /* L456 */
-{3.4887325763702393e+00, 9.5039606094360352e-05,
- 1.1920928955078125e-07, -2.9146671295166016e-05,
- -1.1146068572998047e-05}, /* L457 */
-{4.0719385147094727e+00, 1.1119246482849121e-04,
- 1.1920928955078125e-07, -3.0815601348876953e-05,
- -1.7642974853515625e-05}, /* L458 */
-{3.5460462570190430e+00, 9.7036361694335938e-05,
- 1.1920928955078125e-07, -1.5288591384887695e-04,
- -7.9154968261718750e-05}, /* L459 */
-{2.4650981426239014e+00, 6.7621469497680664e-05,
- 1.1920928955078125e-07, 3.9482116699218750e-04,
- 2.1839141845703125e-04}, /* L460 */
-{2.4064548015594482e+00, 6.6131353378295898e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -1.5318393707275391e-05}, /* L461 */
-{3.4266293048858643e+00, 9.4383955001831055e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 5.3763389587402344e-05}, /* L462 */
-{3.0144898891448975e+00, 8.3204358816146851e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 1.9907951354980469e-05}, /* L463 */
-{2.3755469322204590e+00, 6.5743923187255859e-05,
- 1.1920928955078125e-07, -2.0259618759155273e-04,
- -1.5556812286376953e-04}, /* L464 */
-{2.5234112739562988e+00, 6.9946050643920898e-05,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 1.0251998901367188e-05}, /* L465 */
-{3.7449080944061279e+00, 1.0402500629425049e-04,
- 1.1920928955078125e-07, -4.5180320739746094e-05,
- 1.1324882507324219e-05}, /* L466 */
-{3.3605184555053711e+00, 9.3549489974975586e-05,
- 1.1920928955078125e-07, -5.0842761993408203e-05,
- 6.3896179199218750e-05}, /* L467 */
-{3.6066815853118896e+00, 1.0065734386444092e-04,
- 1.1920928955078125e-07, -8.7857246398925781e-05,
- 1.9907951354980469e-04}, /* L468 */
-{3.1095924377441406e+00, 8.6933374404907227e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- 2.2411346435546875e-05}, /* L469 */
-{2.7381629943847656e+00, 7.6711177825927734e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-05,
- -3.0994415283203125e-06}, /* L470 */
-{4.3375506401062012e+00, 1.2217462062835693e-04,
- 1.1920928955078125e-07, 1.0873079299926758e-03,
- -3.1763315200805664e-04}, /* L471 */
-{4.0892305374145508e+00, 1.1505186557769775e-04,
- 1.1920928955078125e-07, -2.2590160369873047e-05,
- -4.5299530029296875e-06}, /* L472 */
-{3.7043900489807129e+00, 1.0445713996887207e-04,
- 1.1920928955078125e-07, -4.0888786315917969e-05,
- -1.2749433517456055e-04}, /* L473 */
-{3.1379499435424805e+00, 8.8661909103393555e-05,
- 1.1920928955078125e-07, -2.1338462829589844e-05,
- -3.8146972656250000e-06}, /* L474 */
-{2.6890432834625244e+00, 7.6340045779943466e-05,
- 1.1920928955078125e-07, -1.1938810348510742e-04,
- 2.2232532501220703e-04}, /* L475 */
-{3.8275201320648193e+00, 1.0864436626434326e-04,
- 1.1920928955078125e-07, 8.9645385742187500e-05,
- -1.6313791275024414e-04}, /* L476 */
-{3.1187989711761475e+00, 8.8691711425781250e-05,
- 1.1920928955078125e-07, 1.8835067749023438e-05,
- 1.2755393981933594e-05}, /* L477 */
-{3.4936711788177490e+00, 9.9569559097290039e-05,
- 1.1920928955078125e-07, 9.2506408691406250e-05,
- -6.4253807067871094e-05}, /* L478 */
-{2.6311857700347900e+00, 7.5131654739379883e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -2.7656555175781250e-05}, /* L479 */
-{2.8464992046356201e+00, 8.1449747085571289e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -3.7431716918945312e-05}, /* L480 */
-{5.0630707740783691e+00, 1.4516711235046387e-04,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- -1.1086463928222656e-05}, /* L481 */
-{3.3599872589111328e+00, 9.6559524536132812e-05,
- 1.1920928955078125e-07, -2.9385089874267578e-05,
- -6.8366527557373047e-05}, /* L482 */
-{2.8084692955017090e+00, 8.0898404121398926e-05,
- 1.1920928955078125e-07, -1.6880035400390625e-04,
- 4.4345855712890625e-05}, /* L483 */
-{3.5160791873931885e+00, 1.0144710540771484e-04,
- 1.1920928955078125e-07, 3.5405158996582031e-05,
- 5.4836273193359375e-06}, /* L484 */
-{3.6491794586181641e+00, 1.0553002357482910e-04,
- 1.1920928955078125e-07, -1.2576580047607422e-05,
- -1.8596649169921875e-05}, /* L485 */
-{4.2249965667724609e+00, 1.2239813804626465e-04,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- -1.9013881683349609e-05}, /* L486 */
-{3.2158520221710205e+00, 9.3370676040649414e-05,
- 1.1920928955078125e-07, -8.0108642578125000e-05,
- 8.4757804870605469e-05}, /* L487 */
-{3.0407748222351074e+00, 8.8490545749664307e-05,
- 1.1920928955078125e-07, 1.8143653869628906e-04,
- 9.1791152954101562e-06}, /* L488 */
-{2.7717578411102295e+00, 8.0794095993041992e-05,
- 1.1920928955078125e-07, 2.7537345886230469e-05,
- 2.3007392883300781e-05}, /* L489 */
-{2.8087632656097412e+00, 8.2105398178100586e-05,
- 1.1920928955078125e-07, -2.9593706130981445e-04,
- -3.5709142684936523e-04}, /* L490 */
-{2.9702608585357666e+00, 8.6933374404907227e-05,
- 1.1920928955078125e-07, -5.4299831390380859e-05,
- -4.1127204895019531e-05}, /* L491 */
-{3.5154829025268555e+00, 1.0335445404052734e-04,
- 1.1920928955078125e-07, 1.4371871948242188e-03,
- -6.4253807067871094e-04}, /* L492 */
-{3.3719451427459717e+00, 9.9092721939086914e-05,
- 1.1920928955078125e-07, -1.8537044525146484e-05,
- 2.3841857910156250e-05}, /* L493 */
-{3.0564389228820801e+00, 9.0003013610839844e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- 1.6689300537109375e-05}, /* L494 */
-{2.9551346302032471e+00, 8.7201595306396484e-05,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -3.6895275115966797e-05}, /* L495 */
-{3.7225058078765869e+00, 1.1005997657775879e-04,
- 1.1920928955078125e-07, -1.5795230865478516e-05,
- -3.8743019104003906e-05}, /* L496 */
-{3.8522903919219971e+00, 1.1412799358367920e-04,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- -8.8810920715332031e-06}, /* L497 */
-{3.7185397148132324e+00, 1.1038780212402344e-04,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -5.0902366638183594e-05}, /* L498 */
-{3.8306903839111328e+00, 1.1399388313293457e-04,
- 1.1920928955078125e-07, 5.0663948059082031e-05,
- -7.8082084655761719e-06}, /* L499 */
-{3.3836429119110107e+00, 1.0085105895996094e-04,
- 1.1920928955078125e-07, 2.9683113098144531e-05,
- -2.6822090148925781e-06}, /* L500 */
-{3.5867655277252197e+00, 1.0719895362854004e-04,
- 1.1920928955078125e-07, 1.8787384033203125e-04,
- -2.0438432693481445e-04}, /* L501 */
-{3.1911556720733643e+00, 9.5546245574951172e-05,
- 1.1920928955078125e-07, 1.6725063323974609e-04,
- 3.4272670745849609e-04}, /* L502 */
-{3.2055959701538086e+00, 9.6261501312255859e-05,
- 1.1920928955078125e-07, 9.8335742950439453e-04,
- 4.5418739318847656e-05}, /* L503 */
-{3.9002463817596436e+00, 1.1718273162841797e-04,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- 3.6597251892089844e-05}, /* L504 */
-{3.5593757629394531e+00, 1.0714307427406311e-04,
- 1.1920928955078125e-07, 2.2172927856445312e-05,
- -1.5974044799804688e-05}, /* L505 */
-{2.5144660472869873e+00, 7.5846910476684570e-05,
- 1.1920928955078125e-07, -1.1122226715087891e-04,
- -5.3048133850097656e-06}, /* L506 */
-{3.3483262062072754e+00, 1.0119378566741943e-04,
- 1.1920928955078125e-07, -1.9371509552001953e-05,
- -1.4185905456542969e-05}, /* L507 */
-{3.0885303020477295e+00, 9.3698501586914062e-05,
- 1.1920928955078125e-07, -8.6635351181030273e-04,
- 1.4426708221435547e-03}, /* L508 */
-{3.5962338447570801e+00, 1.0913610458374023e-04,
- 1.1920928955078125e-07, -4.2498111724853516e-05,
- 3.2901763916015625e-05}, /* L509 */
-{2.4107313156127930e+00, 7.3300674557685852e-05,
- 1.1920928955078125e-07, -1.1867284774780273e-04,
- -2.6643276214599609e-05}, /* L510 */
-{3.7841026782989502e+00, 1.1527538299560547e-04,
- 1.1920928955078125e-07, 7.4744224548339844e-05,
- -1.0311603546142578e-05}, /* L511 */
-{3.3639321327209473e+00, 1.0267016477882862e-04,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- 4.3153762817382812e-05}, /* L512 */
-{3.6876573562622070e+00, 1.1277198791503906e-04,
- 1.1920928955078125e-07, 5.8770179748535156e-05,
- 2.1338462829589844e-05}, /* L513 */
-{3.2476923465728760e+00, 9.9509954452514648e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-05,
- -9.7155570983886719e-06}, /* L514 */
-{3.1547374725341797e+00, 9.6857547760009766e-05,
- 1.1920928955078125e-07, 1.4066696166992188e-05,
- -9.0777873992919922e-05}, /* L515 */
-{3.2902867794036865e+00, 1.0120868682861328e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 2.5749206542968750e-05}, /* L516 */
-{3.6813879013061523e+00, 1.1345744132995605e-04,
- 1.1920928955078125e-07, 2.0861625671386719e-05,
- -2.4080276489257812e-05}, /* L517 */
-{3.8911895751953125e+00, 1.2016296386718750e-04,
- 1.1920928955078125e-07, -1.0198354721069336e-04,
- -1.9431114196777344e-05}, /* L518 */
-{3.5295143127441406e+00, 1.0919570922851562e-04,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 1.6212463378906250e-05}, /* L519 */
-{3.0702850818634033e+00, 9.5188617706298828e-05,
- 1.1920928955078125e-07, -6.6339969635009766e-05,
- 8.6069107055664062e-05}, /* L520 */
-{3.5966358184814453e+00, 1.1196732521057129e-04,
- 1.1920928955078125e-07, 4.4929981231689453e-04,
- -1.6558170318603516e-04}, /* L521 */
-{2.8474361896514893e+00, 8.8647007942199707e-05,
- 1.1920928955078125e-07, -1.2671947479248047e-04,
- -1.5741586685180664e-04}, /* L522 */
-{4.6662869453430176e+00, 1.4549493789672852e-04,
- 1.1920928955078125e-07, 1.7070770263671875e-04,
- 1.9812583923339844e-04}, /* L523 */
-{3.1762177944183350e+00, 9.9211931228637695e-05,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- 1.0132789611816406e-05}, /* L524 */
-{3.0821838378906250e+00, 9.6470117568969727e-05,
- 1.1920928955078125e-07, 7.4505805969238281e-05,
- 4.5418739318847656e-05}, /* L525 */
-{3.1083412170410156e+00, 9.7468495368957520e-05,
- 1.1920928955078125e-07, -5.9008598327636719e-06,
- -2.8669834136962891e-05}, /* L526 */
-{3.9168117046356201e+00, 1.2305378913879395e-04,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- 9.5367431640625000e-07}, /* L527 */
-{3.2936491966247559e+00, 1.0369718074798584e-04,
- 1.1920928955078125e-07, -8.6545944213867188e-05,
- -2.1427869796752930e-04}, /* L528 */
-{4.2519507408142090e+00, 1.3408064842224121e-04,
- 1.1920928955078125e-07, 3.5047531127929688e-05,
- -4.3690204620361328e-05}, /* L529 */
-{3.7689161300659180e+00, 1.1920928955078125e-04,
- 1.1920928955078125e-07, -6.2674283981323242e-04,
- -9.3662738800048828e-04}, /* L530 */
-{4.1597552299499512e+00, 1.3212754856795073e-04,
- 1.1920928955078125e-07, -2.0530819892883301e-03,
- -1.5193223953247070e-03}, /* L531 */
-{4.0232539176940918e+00, 1.2773275375366211e-04,
- 1.1920928955078125e-07, -1.1038780212402344e-04,
- 1.5747547149658203e-04}, /* L532 */
-{3.4739191532135010e+00, 1.1113286018371582e-04,
- 1.1920928955078125e-07, 3.7822723388671875e-03,
- 1.1769533157348633e-03}, /* L533 */
-{3.8987226486206055e+00, 1.2412667274475098e-04,
- 1.1920928955078125e-07, -2.8431415557861328e-05,
- -1.3852119445800781e-04}, /* L534 */
-{3.1376380920410156e+00, 1.0009855031967163e-04,
- 1.1920928955078125e-07, 9.5963478088378906e-05,
- -1.3405084609985352e-04}, /* L535 */
-{3.6161074638366699e+00, 1.1555850505828857e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- -1.1324882507324219e-06}, /* L536 */
-{3.9206655025482178e+00, 1.2620165944099426e-04,
- 1.1920928955078125e-07, -1.1246800422668457e-03,
- 1.2557506561279297e-03}, /* L537 */
-{4.2291231155395508e+00, 1.3562291860580444e-04,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- -3.3497810363769531e-05}, /* L538 */
-{4.7674794197082520e+00, 1.5318393707275391e-04,
- 1.1920928955078125e-07, -9.1195106506347656e-05,
- -8.1658363342285156e-06}, /* L539 */
-{3.1643774509429932e+00, 1.0186433792114258e-04,
- 1.1920928955078125e-07, 3.0517578125000000e-05,
- 4.6968460083007812e-05}, /* L540 */
-{3.5372176170349121e+00, 1.1408329010009766e-04,
- 1.1920928955078125e-07, 3.4809112548828125e-05,
- 1.0347366333007812e-04}, /* L541 */
-{4.0505838394165039e+00, 1.3089179992675781e-04,
- 1.1920928955078125e-07, 3.7074089050292969e-05,
- 1.7523765563964844e-05}, /* L542 */
-{3.7835776805877686e+00, 1.2329220771789551e-04,
- 1.1920928955078125e-07, -2.1667480468750000e-03,
- 1.9497871398925781e-03}, /* L543 */
-{3.3685359954833984e+00, 1.0958313941955566e-04,
- 1.1920928955078125e-07, -1.7974972724914551e-03,
- 8.5246562957763672e-04}, /* L544 */
-{3.7529900074005127e+00, 1.2193620204925537e-04,
- 1.1920928955078125e-07, 2.3365020751953125e-05,
- -6.9320201873779297e-05}, /* L545 */
-{2.8645610809326172e+00, 9.3236565589904785e-05,
- 1.1920928955078125e-07, 2.2411346435546875e-05,
- -5.9843063354492188e-05}, /* L546 */
-{3.4860730171203613e+00, 1.1369585990905762e-04,
- 1.1920928955078125e-07, 7.8201293945312500e-05,
- 7.9870223999023438e-06}, /* L547 */
-{4.2228288650512695e+00, 1.3798475265502930e-04,
- 1.1920928955078125e-07, -5.1438808441162109e-05,
- 1.2481212615966797e-04}, /* L548 */
-{3.8567097187042236e+00, 1.2624263763427734e-04,
- 1.1920928955078125e-07, 8.9526176452636719e-05,
- -7.9452991485595703e-05}, /* L549 */
-{3.6561391353607178e+00, 1.1989474296569824e-04,
- 1.1920928955078125e-07, -1.3649463653564453e-05,
- 6.2227249145507812e-05}, /* L550 */
-{3.2415523529052734e+00, 1.0648369789123535e-04,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -9.0599060058593750e-05}, /* L551 */
-{4.0557208061218262e+00, 1.3348460197448730e-04,
- 1.1920928955078125e-07, -4.8935413360595703e-05,
- 1.3923645019531250e-04}, /* L552 */
-{3.4413435459136963e+00, 1.1348724365234375e-04,
- 1.1920928955078125e-07, -1.4007091522216797e-05,
- -6.8843364715576172e-05}, /* L553 */
-{3.4535906314849854e+00, 1.1405348777770996e-04,
- 1.1920928955078125e-07, 2.4199485778808594e-05,
- -2.4378299713134766e-05}, /* L554 */
-{3.1924855709075928e+00, 1.0566413402557373e-04,
- 1.1920928955078125e-07, -2.2304058074951172e-04,
- -2.3716688156127930e-04}, /* L555 */
-{3.9599545001983643e+00, 1.3130903244018555e-04,
- 1.1920928955078125e-07, -4.6014785766601562e-05,
- -5.6147575378417969e-05}, /* L556 */
-{3.3682622909545898e+00, 1.1198222637176514e-04,
- 1.1920928955078125e-07, -2.4574995040893555e-04,
- 3.6954879760742188e-04}, /* L557 */
-{3.9781887531280518e+00, 1.3232231140136719e-04,
- 1.1920928955078125e-07, -4.5180320739746094e-05,
- 5.2332878112792969e-05}, /* L558 */
-{3.4531719684600830e+00, 1.1506676673889160e-04,
- 1.1920928955078125e-07, 5.4359436035156250e-05,
- -6.8545341491699219e-06}, /* L559 */
-{3.5442283153533936e+00, 1.1831521987915039e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- 2.0742416381835938e-05}, /* L560 */
-{3.2265877723693848e+00, 1.0791420936584473e-04,
- 1.1920928955078125e-07, 9.7990036010742188e-05,
- -5.9604644775390625e-05}, /* L561 */
-{3.2367444038391113e+00, 1.0843947529792786e-04,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 8.5115432739257812e-05}, /* L562 */
-{3.9802150726318359e+00, 1.3364851474761963e-04,
- 1.1920928955078125e-07, 2.4449825286865234e-04,
- -1.9472837448120117e-04}, /* L563 */
-{3.5972721576690674e+00, 1.2105703353881836e-04,
- 1.1920928955078125e-07, -1.3917684555053711e-04,
- -3.7741661071777344e-04}, /* L564 */
-{3.5179908275604248e+00, 1.1864304542541504e-04,
- 1.1920928955078125e-07, 1.4364719390869141e-04,
- 3.1876564025878906e-04}, /* L565 */
-{2.6562328338623047e+00, 8.9764595031738281e-05,
- 1.1920928955078125e-07, -4.8935413360595703e-05,
- -3.4707784652709961e-04}, /* L566 */
-{3.0558199882507324e+00, 1.0329484939575195e-04,
- 1.1920928955078125e-07, 6.3657760620117188e-05,
- 4.9948692321777344e-05}, /* L567 */
-{3.9763338565826416e+00, 1.3466179370880127e-04,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- -3.6239624023437500e-05}, /* L568 */
-{3.7594473361968994e+00, 1.2752413749694824e-04,
- 1.1920928955078125e-07, -2.7835369110107422e-05,
- -1.7285346984863281e-06}, /* L569 */
-{3.7506580352783203e+00, 1.2749433517456055e-04,
- 1.1920928955078125e-07, 3.4809112548828125e-05,
- -7.8380107879638672e-05}, /* L570 */
-{5.1482024192810059e+00, 1.7523765563964844e-04,
- 1.1920928955078125e-07, -2.7716159820556641e-05,
- -4.9412250518798828e-05}, /* L571 */
-{3.4284558296203613e+00, 1.1691451072692871e-04,
- 1.1920928955078125e-07, 2.8729438781738281e-05,
- 4.5299530029296875e-06}, /* L572 */
-{4.1485152244567871e+00, 1.4179944992065430e-04,
- 1.1920928955078125e-07, 1.3673305511474609e-04,
- 3.9815902709960938e-05}, /* L573 */
-{3.3756041526794434e+00, 1.1558830738067627e-04,
- 1.1920928955078125e-07, 8.9764595031738281e-05,
- 1.8882751464843750e-04}, /* L574 */
-{3.0114588737487793e+00, 1.0322034358978271e-04,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- -2.5033950805664062e-05}, /* L575 */
-{4.6099290847778320e+00, 1.5839934349060059e-04,
- 1.1920928955078125e-07, -6.2584877014160156e-06,
- -7.3611736297607422e-05}, /* L576 */
-{4.1372799873352051e+00, 1.4242529869079590e-04,
- 1.1920928955078125e-07, 3.1781196594238281e-04,
- 3.8433074951171875e-04}, /* L577 */
-{4.1709203720092773e+00, 1.4382600784301758e-04,
- 1.1920928955078125e-07, 3.2639503479003906e-04,
- 2.0170211791992188e-04}, /* L578 */
-{3.9531817436218262e+00, 1.3646483421325684e-04,
- 1.1920928955078125e-07, -8.6426734924316406e-05,
- -1.0788440704345703e-04}, /* L579 */
-{3.4372875690460205e+00, 1.1885166168212891e-04,
- 1.1920928955078125e-07, -4.1723251342773438e-06,
- 5.7220458984375000e-06}, /* L580 */
-{3.4765279293060303e+00, 1.2047588825225830e-04,
- 1.1920928955078125e-07, 3.7193298339843750e-05,
- 1.0788440704345703e-04}, /* L581 */
-{4.4539427757263184e+00, 1.5455484390258789e-04,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- -4.0650367736816406e-05}, /* L582 */
-{3.8785910606384277e+00, 1.3482570648193359e-04,
- 1.1920928955078125e-07, -1.6516447067260742e-04,
- -6.3240528106689453e-05}, /* L583 */
-{3.0051567554473877e+00, 1.0526180267333984e-04,
- 1.1920928955078125e-07, 1.3853311538696289e-03,
- 2.5627613067626953e-03}, /* L584 */
-{4.1537151336669922e+00, 1.4484766870737076e-04,
- 1.1920928955078125e-07, 3.6001205444335938e-05,
- -4.2915344238281250e-05}, /* L585 */
-{3.9015984535217285e+00, 1.3628788292407990e-04,
- 1.1920928955078125e-07, -4.8160552978515625e-05,
- 1.6331672668457031e-05}, /* L586 */
-{3.3269212245941162e+00, 1.1651217937469482e-04,
- 1.1920928955078125e-07, -2.2232532501220703e-04,
- 1.7130374908447266e-04}, /* L587 */
-{4.4253616333007812e+00, 1.5512108802795410e-04,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- -9.8347663879394531e-06}, /* L588 */
-{3.5343008041381836e+00, 1.2411177158355713e-04,
- 1.1920928955078125e-07, -1.8417835235595703e-05,
- 2.7060508728027344e-05}, /* L589 */
-{4.8883738517761230e+00, 1.7192959785461426e-04,
- 1.1920928955078125e-07, 6.4611434936523438e-05,
- 9.4175338745117188e-06}, /* L590 */
-{3.4892816543579102e+00, 1.2293457984924316e-04,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- 5.3524971008300781e-05}, /* L591 */
-{3.2163062095642090e+00, 1.1350214481353760e-04,
- 1.1920928955078125e-07, -4.4047832489013672e-05,
- 5.2213668823242188e-05}, /* L592 */
-{3.5749428272247314e+00, 1.2637302279472351e-04,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- -4.2557716369628906e-05}, /* L593 */
-{3.4677729606628418e+00, 1.2280046939849854e-04,
- 1.1920928955078125e-07, -6.9618225097656250e-05,
- -1.7583370208740234e-05}, /* L594 */
-{4.3066859245300293e+00, 1.5275180339813232e-04,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 2.3484230041503906e-05}, /* L595 */
-{3.4064581394195557e+00, 1.2108683586120605e-04,
- 1.1920928955078125e-07, -1.2385845184326172e-04,
- 2.6762485504150391e-04}, /* L596 */
-{3.2715609073638916e+00, 1.1644139885902405e-04,
- 1.1920928955078125e-07, -7.2479248046875000e-05,
- -8.3684921264648438e-05}, /* L597 */
-{5.0103149414062500e+00, 1.7860531806945801e-04,
- 1.1920928955078125e-07, -7.3850154876708984e-05,
- -1.9669532775878906e-06}, /* L598 */
-{4.1127190589904785e+00, 1.4686584472656250e-04,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- -8.9108943939208984e-05}, /* L599 */
-{3.7643437385559082e+00, 1.3864040374755859e-04,
- 1.1920928955078125e-07, -1.1477172374725342e-02,
- -1.2279748916625977e-03}, /* L600 */
-{3.3885958194732666e+00, 1.2143701314926147e-04,
- 1.1920928955078125e-07, -4.3332576751708984e-05,
- -7.3015689849853516e-05}, /* L601 */
-{3.7702808380126953e+00, 1.3533234596252441e-04,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- 2.2268295288085938e-04}, /* L602 */
-{3.1802268028259277e+00, 1.1470913887023926e-04,
- 1.1920928955078125e-07, -3.2454729080200195e-04,
- 9.1814994812011719e-04}, /* L603 */
-{4.1836252212524414e+00, 1.5339255332946777e-04,
- 1.1920928955078125e-07, -7.0563554763793945e-03,
- 4.7039985656738281e-04}, /* L604 */
-{4.0438923835754395e+00, 1.4587806072086096e-04,
- 1.1920928955078125e-07, -2.0861625671386719e-05,
- -1.3887882232666016e-05}, /* L605 */
-{3.8670630455017090e+00, 1.3996660709381104e-04,
- 1.1920928955078125e-07, -7.5411796569824219e-04,
- 5.6779384613037109e-04}, /* L606 */
-{4.4003806114196777e+00, 1.5923380851745605e-04,
- 1.1920928955078125e-07, -2.9623508453369141e-05,
- -1.7225742340087891e-05}, /* L607 */
-{4.3803229331970215e+00, 1.5875697135925293e-04,
- 1.1920928955078125e-07, 2.8848648071289062e-05,
- -2.0563602447509766e-05}, /* L608 */
-{4.0735921859741211e+00, 1.4787912368774414e-04,
- 1.1920928955078125e-07, 4.5537948608398438e-05,
- -1.0907649993896484e-05}, /* L609 */
-{3.6023418903350830e+00, 1.3101100921630859e-04,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -1.0150671005249023e-04}, /* L610 */
-{4.5650100708007812e+00, 1.6626715660095215e-04,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- 1.3589859008789062e-05}, /* L611 */
-{3.1243860721588135e+00, 1.1402368545532227e-04,
- 1.1920928955078125e-07, 1.3661384582519531e-04,
- -3.3617019653320312e-05}, /* L612 */
-{5.0536475181579590e+00, 1.8505752086639404e-04,
- 1.1920928955078125e-07, -1.3559460639953613e-03,
- -1.1158585548400879e-03}, /* L613 */
-{7.6940755844116211e+00, 2.8172135353088379e-04,
- 1.1920928955078125e-07, 4.7922134399414062e-05,
- -1.9073486328125000e-06}, /* L614 */
-{4.5354285240173340e+00, 1.6629695892333984e-04,
- 1.1920928955078125e-07, -1.2600421905517578e-04,
- 7.8558921813964844e-05}, /* L615 */
-{3.8229675292968750e+00, 1.4039874076843262e-04,
- 1.1920928955078125e-07, -1.0097026824951172e-04,
- -9.8228454589843750e-05}, /* L616 */
-{3.1977112293243408e+00, 1.1762976646423340e-04,
- 1.1920928955078125e-07, -2.3549795150756836e-04,
- -3.2842159271240234e-05}, /* L617 */
-{4.5512847900390625e+00, 1.6772747039794922e-04,
- 1.1920928955078125e-07, 4.3153762817382812e-05,
- -7.5221061706542969e-05}, /* L618 */
-{4.2120561599731445e+00, 1.5556812286376953e-04,
- 1.1920928955078125e-07, -5.1796436309814453e-05,
- -5.4121017456054688e-05}, /* L619 */
-{3.9554276466369629e+00, 1.4622509479522705e-04,
- 1.1920928955078125e-07, 1.6379356384277344e-04,
- 2.3949146270751953e-04}, /* L620 */
-{3.4692881107330322e+00, 1.2844800949096680e-04,
- 1.1920928955078125e-07, -7.4088573455810547e-05,
- -8.6903572082519531e-05}, /* L621 */
-{3.5450844764709473e+00, 1.4391541481018066e-04,
- 1.1920928955078125e-07, 2.7126908302307129e-02,
- -2.3659825325012207e-02}, /* L622 */
-{3.3986780643463135e+00, 1.2625753879547119e-04,
- 1.1920928955078125e-07, -1.5157461166381836e-04,
- 1.5223026275634766e-04}, /* L623 */
-{3.2199184894561768e+00, 1.1977553367614746e-04,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 3.6001205444335938e-05}, /* L624 */
-{4.0182919502258301e+00, 1.4972686767578125e-04,
- 1.1920928955078125e-07, 4.0411949157714844e-05,
- 2.8967857360839844e-05}, /* L625 */
-{3.6669168472290039e+00, 1.3685226440429688e-04,
- 1.1920928955078125e-07, 7.7009201049804688e-05,
- -4.1246414184570312e-05}, /* L626 */
-{3.6282544136047363e+00, 1.3591349124908447e-04,
- 1.1920928955078125e-07, -1.5026330947875977e-04,
- 1.5854835510253906e-05}, /* L627 */
-{4.2142353057861328e+00, 1.5781819820404053e-04,
- 1.1920928955078125e-07, -3.4093856811523438e-05,
- -2.0509958267211914e-04}, /* L628 */
-{5.2681307792663574e+00, 1.9763410091400146e-04,
- 1.1920928955078125e-07, -4.3153762817382812e-05,
- 2.3841857910156250e-06}, /* L629 */
-{3.8718218803405762e+00, 1.4555273810401559e-04,
- 1.1920928955078125e-07, 2.7799606323242188e-04,
- 1.9097328186035156e-04}, /* L630 */
-{4.7972083091735840e+00, 1.8048286437988281e-04,
- 1.1920928955078125e-07, -1.1366605758666992e-04,
- 2.1934509277343750e-05}, /* L631 */
-{5.1822633743286133e+00, 1.9571185111999512e-04,
- 1.1920928955078125e-07, 1.1776685714721680e-03,
- 2.8848648071289062e-05}, /* L632 */
-{5.2040829658508301e+00, 1.9637867808341980e-04,
- 1.1920928955078125e-07, -3.3378601074218750e-06,
- 4.7683715820312500e-07}, /* L633 */
-{4.1298990249633789e+00, 1.5628337860107422e-04,
- 1.1920928955078125e-07, 1.1992454528808594e-04,
- 1.5294551849365234e-04}, /* L634 */
-{4.7550578117370605e+00, 1.8003582954406738e-04,
- 1.1920928955078125e-07, -9.3638896942138672e-05,
- -1.1885166168212891e-04}, /* L635 */
-{3.0633618831634521e+00, 1.1631846427917480e-04,
- 1.1920928955078125e-07, -3.9505958557128906e-04,
- 2.6392936706542969e-04}, /* L636 */
-{4.2064313888549805e+00, 1.5985220670700073e-04,
- 1.1920928955078125e-07, 4.9948692321777344e-05,
- -3.0571222305297852e-04}, /* L637 */
-{2.9007499217987061e+00, 1.1044647544622421e-04,
- 1.1920928955078125e-07, 1.0776519775390625e-04,
- -7.9870223999023438e-06}, /* L638 */
-{5.2138352394104004e+00, 1.9875913858413696e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-04,
- -2.7072429656982422e-04}, /* L639 */
-{3.8706736564636230e+00, 1.4767050743103027e-04,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- -3.8087368011474609e-05}, /* L640 */
-{3.7539987564086914e+00, 1.4343857765197754e-04,
- 1.1920928955078125e-07, -2.8073787689208984e-05,
- -1.5258789062500000e-05}, /* L641 */
-{4.7832365036010742e+00, 1.8313527107238770e-04,
- 1.1920928955078125e-07, 2.0658969879150391e-04,
- 3.2794475555419922e-04}, /* L642 */
-{3.5375435352325439e+00, 1.3563036918640137e-04,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- 2.4080276489257812e-05}, /* L643 */
-{5.1350893974304199e+00, 1.9714236259460449e-04,
- 1.1920928955078125e-07, -2.4557113647460938e-05,
- 7.7605247497558594e-05}, /* L644 */
-{4.8430399894714355e+00, 1.8626451492309570e-04,
- 1.1920928955078125e-07, -2.5033950805664062e-06,
- -1.5699863433837891e-04}, /* L645 */
-{3.5097515583038330e+00, 1.3519823551177979e-04,
- 1.1920928955078125e-07, 1.6713142395019531e-04,
- -2.5457143783569336e-04}, /* L646 */
-{3.6487514972686768e+00, 1.4074193313717842e-04,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- -3.6239624023437500e-05}, /* L647 */
-{3.8612313270568848e+00, 1.4916062355041504e-04,
- 1.1920928955078125e-07, 4.9471855163574219e-05,
- 6.1988830566406250e-06}, /* L648 */
-{3.9836931228637695e+00, 1.5414319932460785e-04,
- 1.1920928955078125e-07, 1.5735626220703125e-04,
- 4.9471855163574219e-05}, /* L649 */
-{4.6722373962402344e+00, 1.8103420734405518e-04,
- 1.1920928955078125e-07, -1.7106533050537109e-05,
- -4.4405460357666016e-05}, /* L650 */
-{5.2156605720520020e+00, 2.0256638526916504e-04,
- 1.1920928955078125e-07, -2.0247697830200195e-04,
- 2.7322769165039062e-04}, /* L651 */
-{3.6391518115997314e+00, 1.4147162437438965e-04,
- 1.1920928955078125e-07, -1.2040138244628906e-04,
- -4.4941902160644531e-05}, /* L652 */
-{4.1164956092834473e+00, 1.6024522483348846e-04,
- 1.1920928955078125e-07, -7.5101852416992188e-06,
- 6.1273574829101562e-05}, /* L653 */
-{4.7303042411804199e+00, 1.8444657325744629e-04,
- 1.1920928955078125e-07, -9.1314315795898438e-05,
- -1.0013580322265625e-04}, /* L654 */
-{3.4343707561492920e+00, 1.3425201177597046e-04,
- 1.1920928955078125e-07, 2.4425983428955078e-04,
- 1.6987323760986328e-04}, /* L655 */
-{4.0029425621032715e+00, 1.5653669834136963e-04,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- 9.4175338745117188e-06}, /* L656 */
-{4.0388722419738770e+00, 1.5822052955627441e-04,
- 1.1920928955078125e-07, 1.9061565399169922e-04,
- 7.0691108703613281e-05}, /* L657 */
-{5.0046882629394531e+00, 1.9636750221252441e-04,
- 1.1920928955078125e-07, 9.7632408142089844e-05,
- 7.6413154602050781e-05}, /* L658 */
-{3.7438876628875732e+00, 1.4706701040267944e-04,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- -2.3841857910156250e-06}, /* L659 */
-{4.4229402542114258e+00, 1.7401576042175293e-04,
- 1.1920928955078125e-07, -3.2544136047363281e-05,
- 2.7060508728027344e-05}, /* L660 */
-{4.2138323783874512e+00, 1.6611814498901367e-04,
- 1.1920928955078125e-07, -5.8412551879882812e-05,
- -5.2154064178466797e-05}, /* L661 */
-{4.4439287185668945e+00, 1.7542205750942230e-04,
- 1.1920928955078125e-07, 1.4352798461914062e-04,
- 6.9737434387207031e-05}, /* L662 */
-{5.2279777526855469e+00, 2.0700693130493164e-04,
- 1.1920928955078125e-07, 6.4611434936523438e-04,
- 6.3896179199218750e-04}, /* L663 */
-{4.2842249870300293e+00, 1.6960501670837402e-04,
- 1.1920928955078125e-07, -5.4717063903808594e-05,
- -8.8751316070556641e-05}, /* L664 */
-{4.7246499061584473e+00, 1.8733739852905273e-04,
- 1.1920928955078125e-07, -3.5881996154785156e-05,
- -5.6564807891845703e-05}, /* L665 */
-{5.1743521690368652e+00, 2.0560622215270996e-04,
- 1.1920928955078125e-07, -1.0699033737182617e-04,
- -4.3869018554687500e-04}, /* L666 */
-{4.8257226943969727e+00, 1.9189715385437012e-04,
- 1.1920928955078125e-07, -1.1563301086425781e-04,
- -4.8398971557617188e-05}, /* L667 */
-{4.2687072753906250e+00, 1.7032027244567871e-04,
- 1.1920928955078125e-07, 1.0657310485839844e-04,
- -6.0039758682250977e-04}, /* L668 */
-{3.7359967231750488e+00, 1.4901161193847656e-04,
- 1.1920928955078125e-07, -1.3828277587890625e-05,
- 8.2015991210937500e-05}, /* L669 */
-{3.9273929595947266e+00, 1.5687942504882812e-04,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- 4.4345855712890625e-05}, /* L670 */
-{3.6957836151123047e+00, 1.4856457710266113e-04,
- 1.1920928955078125e-07, -1.3905763626098633e-04,
- 1.3836622238159180e-03}, /* L671 */
-{5.8731136322021484e+00, 2.3533403873443604e-04,
- 1.1920928955078125e-07, -7.8678131103515625e-05,
- -1.8674135208129883e-04}, /* L672 */
-{3.8163423538208008e+00, 1.5315413475036621e-04,
- 1.1920928955078125e-07, 1.6117095947265625e-04,
- -2.1517276763916016e-05}, /* L673 */
-{4.3318314552307129e+00, 1.7416477203369141e-04,
- 1.1920928955078125e-07, -4.6145915985107422e-04,
- 6.8902969360351562e-05}, /* L674 */
-{4.4275774955749512e+00, 1.7821788787841797e-04,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- 1.0991096496582031e-04}, /* L675 */
-{4.0736703872680664e+00, 1.6416981816291809e-04,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- 7.8797340393066406e-05}, /* L676 */
-{3.7288568019866943e+00, 1.5050172805786133e-04,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- 1.8358230590820312e-05}, /* L677 */
-{3.9295365810394287e+00, 1.5896558761596680e-04,
- 1.1920928955078125e-07, 3.0410289764404297e-04,
- -8.2015991210937500e-05}, /* L678 */
-{4.9036130905151367e+00, 1.9854307174682617e-04,
- 1.1920928955078125e-07, -9.1910362243652344e-05,
- -1.3363361358642578e-04}, /* L679 */
-{4.2984266281127930e+00, 1.7577409744262695e-04,
- 1.1920928955078125e-07, 1.0821819305419922e-03,
- 6.5720081329345703e-04}, /* L680 */
-{4.5869584083557129e+00, 1.8627941608428955e-04,
- 1.1920928955078125e-07, 2.7680397033691406e-04,
- 5.1140785217285156e-05}, /* L681 */
-{4.0955486297607422e+00, 1.6650557518005371e-04,
- 1.1920928955078125e-07, 9.0479850769042969e-05,
- 5.3882598876953125e-05}, /* L682 */
-{3.4467804431915283e+00, 1.4035403728485107e-04,
- 1.1920928955078125e-07, -9.8705291748046875e-05,
- 2.5272369384765625e-05}, /* L683 */
-{3.5511398315429688e+00, 1.4485418796539307e-04,
- 1.1920928955078125e-07, -3.4093856811523438e-05,
- 2.3186206817626953e-04}, /* L684 */
-{3.7254760265350342e+00, 1.5214085578918457e-04,
- 1.1920928955078125e-07, -1.3411045074462891e-04,
- -1.2457370758056641e-04}, /* L685 */
-{3.5612938404083252e+00, 1.4570355415344238e-04,
- 1.1920928955078125e-07, -1.6689300537109375e-04,
- 2.3436546325683594e-04}, /* L686 */
-{4.6706566810607910e+00, 1.9151205196976662e-04,
- 1.1920928955078125e-07, -3.0565261840820312e-04,
- 1.1754035949707031e-04}, /* L687 */
-{4.5935311317443848e+00, 1.8841028213500977e-04,
- 1.1920928955078125e-07, 7.5578689575195312e-05,
- -1.0371208190917969e-05}, /* L688 */
-{4.8141946792602539e+00, 1.9787251949310303e-04,
- 1.1920928955078125e-07, -3.0869245529174805e-04,
- -3.3020973205566406e-05}, /* L689 */
-{4.7634758949279785e+00, 1.9614398479461670e-04,
- 1.1920928955078125e-07, -7.3885917663574219e-04,
- -4.4351816177368164e-04}, /* L690 */
-{4.8199486732482910e+00, 1.9869208335876465e-04,
- 1.1920928955078125e-07, -6.1625242233276367e-04,
- -1.8477439880371094e-04}, /* L691 */
-{5.1738538742065430e+00, 2.1356344223022461e-04,
- 1.1920928955078125e-07, -1.9747018814086914e-04,
- 1.4376640319824219e-04}, /* L692 */
-{5.1210474967956543e+00, 2.1156668663024902e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- -2.3841857910156250e-07}, /* L693 */
-{3.9213244915008545e+00, 1.6272068023681641e-04,
- 1.1920928955078125e-07, 1.6252994537353516e-03,
- 1.0960102081298828e-03}, /* L694 */
-{4.6364102363586426e+00, 1.9219517707824707e-04,
- 1.1920928955078125e-07, -1.2320280075073242e-04,
- 2.5427341461181641e-04}, /* L695 */
-{4.1811957359313965e+00, 1.7352402210235596e-04,
- 1.1920928955078125e-07, 3.9255619049072266e-04,
- -2.0563602447509766e-05}, /* L696 */
-{3.9385590553283691e+00, 1.6367435455322266e-04,
- 1.1920928955078125e-07, 4.9829483032226562e-05,
- 1.2302398681640625e-04}, /* L697 */
-{3.9498898983001709e+00, 1.6440451145172119e-04,
- 1.1920928955078125e-07, -1.5205144882202148e-04,
- -2.4151802062988281e-04}, /* L698 */
-{4.4550080299377441e+00, 1.8566846847534180e-04,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -2.7775764465332031e-05}, /* L699 */
-{3.8921618461608887e+00, 1.6243755817413330e-04,
- 1.1920928955078125e-07, -8.4996223449707031e-05,
- 1.3172626495361328e-04}, /* L700 */
-{4.8027248382568359e+00, 2.0077452063560486e-04,
- 1.1920928955078125e-07, 1.9121170043945312e-04,
- 8.1300735473632812e-05}, /* L701 */
-{4.2649531364440918e+00, 1.7848610877990723e-04,
- 1.1920928955078125e-07, 6.3300132751464844e-05,
- 1.2004375457763672e-04}, /* L702 */
-{4.7060246467590332e+00, 1.9729137420654297e-04,
- 1.1920928955078125e-07, -5.5432319641113281e-05,
- 2.3150444030761719e-04}, /* L703 */
-{3.4902858734130859e+00, 1.4649331569671631e-04,
- 1.1920928955078125e-07, 9.1075897216796875e-05,
- -8.8393688201904297e-05}, /* L704 */
-{4.1206336021423340e+00, 1.7318129539489746e-04,
- 1.1920928955078125e-07, 4.8160552978515625e-05,
- -7.4505805969238281e-06}, /* L705 */
-{3.8790771961212158e+00, 1.6325712203979492e-04,
- 1.1920928955078125e-07, 7.7128410339355469e-05,
- -9.1195106506347656e-06}, /* L706 */
-{4.2897195816040039e+00, 1.8081068992614746e-04,
- 1.1920928955078125e-07, 6.5565109252929688e-05,
- 1.1277198791503906e-04}, /* L707 */
-{4.6935501098632812e+00, 1.9812583923339844e-04,
- 1.1920928955078125e-07, -2.5117397308349609e-04,
- 3.8743019104003906e-05}, /* L708 */
-{4.2702960968017578e+00, 1.8048286437988281e-04,
- 1.1920928955078125e-07, 3.3020973205566406e-05,
- 2.4080276489257812e-05}, /* L709 */
-{3.7989566326141357e+00, 1.6081333160400391e-04,
- 1.1920928955078125e-07, 8.4996223449707031e-05,
- 1.7154216766357422e-04}, /* L710 */
-{4.0509147644042969e+00, 1.7178058624267578e-04,
- 1.1920928955078125e-07, 6.5207481384277344e-05,
- 3.6954879760742188e-04}, /* L711 */
-{3.4944574832916260e+00, 1.4832615852355957e-04,
- 1.1920928955078125e-07, 3.2186508178710938e-05,
- 1.9550323486328125e-05}, /* L712 */
-{3.7046225070953369e+00, 1.5747547149658203e-04,
- 1.1920928955078125e-07, -1.4722347259521484e-05,
- 1.7344951629638672e-04}, /* L713 */
-{5.7011594772338867e+00, 2.4300813674926758e-04,
- 1.1920928955078125e-07, 1.8811225891113281e-04,
- -4.4184923171997070e-04}, /* L714 */
-{5.6165056228637695e+00, 2.3940205574035645e-04,
- 1.1920928955078125e-07, 2.4795532226562500e-05,
- -8.3446502685546875e-07}, /* L715 */
-{4.5763478279113770e+00, 1.9535422325134277e-04,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 8.8810920715332031e-05}, /* L716 */
-{4.4925785064697266e+00, 1.9205734133720398e-04,
- 1.1920928955078125e-07, -6.2286853790283203e-05,
- -2.1040439605712891e-05}, /* L717 */
-{3.8978645801544189e+00, 1.6683340072631836e-04,
- 1.1920928955078125e-07, 1.3589859008789062e-05,
- -2.2828578948974609e-05}, /* L718 */
-{3.7061953544616699e+00, 1.5887618064880371e-04,
- 1.1920928955078125e-07, 3.8981437683105469e-05,
- 9.9301338195800781e-05}, /* L719 */
-{4.1609468460083008e+00, 1.7862766981124878e-04,
- 1.1920928955078125e-07, 6.2942504882812500e-05,
- 3.0946731567382812e-04}, /* L720 */
-{5.0089893341064453e+00, 2.1538138389587402e-04,
- 1.1920928955078125e-07, -4.6730041503906250e-05,
- -8.8810920715332031e-06}, /* L721 */
-{4.2303662300109863e+00, 1.8209964036941528e-04,
- 1.1920928955078125e-07, 9.4652175903320312e-05,
- -7.3909759521484375e-05}, /* L722 */
-{3.7578177452087402e+00, 1.6200542449951172e-04,
- 1.1920928955078125e-07, -9.3460083007812500e-05,
- 2.9087066650390625e-05}, /* L723 */
-{3.6999268531799316e+00, 1.5974044799804688e-04,
- 1.1920928955078125e-07, -1.3089179992675781e-04,
- 8.0227851867675781e-05}, /* L724 */
-{4.4781270027160645e+00, 1.9372999668121338e-04,
- 1.1920928955078125e-07, -5.8233737945556641e-05,
- 2.8979778289794922e-04}, /* L725 */
-{4.9151506423950195e+00, 2.1296739578247070e-04,
- 1.1920928955078125e-07, -2.4282932281494141e-04,
- -7.1287155151367188e-05}, /* L726 */
-{4.4860315322875977e+00, 1.9453093409538269e-04,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- -1.5413761138916016e-04}, /* L727 */
-{3.9735352993011475e+00, 1.7245858907699585e-04,
- 1.1920928955078125e-07, 3.8623809814453125e-05,
- 1.4221668243408203e-04}, /* L728 */
-{5.5183639526367188e+00, 2.3981928825378418e-04,
- 1.1920928955078125e-07, 1.5389919281005859e-04,
- 2.1934509277343750e-05}, /* L729 */
-{4.9566574096679688e+00, 2.1573901176452637e-04,
- 1.1920928955078125e-07, -3.3676624298095703e-05,
- -8.8036060333251953e-05}, /* L730 */
-{4.2565364837646484e+00, 1.8550455570220947e-04,
- 1.1920928955078125e-07, -8.5473060607910156e-05,
- 8.5711479187011719e-05}, /* L731 */
-{5.5883369445800781e+00, 2.4396926164627075e-04,
- 1.1920928955078125e-07, 1.1014938354492188e-04,
- 7.7605247497558594e-05}, /* L732 */
-{4.6069984436035156e+00, 2.0130723714828491e-04,
- 1.1920928955078125e-07, -5.6087970733642578e-05,
- 5.4478645324707031e-05}, /* L733 */
-{4.7376465797424316e+00, 2.0730495452880859e-04,
- 1.1920928955078125e-07, 1.1920928955078125e-05,
- -4.2200088500976562e-05}, /* L734 */
-{5.4993090629577637e+00, 2.4116039276123047e-04,
- 1.1920928955078125e-07, -1.5383958816528320e-04,
- -1.7124414443969727e-04}, /* L735 */
-{4.4497976303100586e+00, 1.9524991512298584e-04,
- 1.1920928955078125e-07, -3.9875507354736328e-05,
- 3.0398368835449219e-05}, /* L736 */
-{3.8586995601654053e+00, 1.6954913735389709e-04,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- -1.7881393432617188e-07}, /* L737 */
-{4.2005600929260254e+00, 1.8480792641639709e-04,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- 7.8201293945312500e-05}, /* L738 */
-{3.7296545505523682e+00, 1.6435980796813965e-04,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- -9.6738338470458984e-05}, /* L739 */
-{4.5342345237731934e+00, 2.0003318786621094e-04,
- 1.1920928955078125e-07, -8.9347362518310547e-05,
- -7.7664852142333984e-05}, /* L740 */
-{5.9183058738708496e+00, 2.6142597198486328e-04,
- 1.1920928955078125e-07, 5.7458877563476562e-05,
- -4.6789646148681641e-05}, /* L741 */
-{3.8286004066467285e+00, 1.6938894987106323e-04,
- 1.1920928955078125e-07, -2.4497509002685547e-04,
- 4.1604042053222656e-05}, /* L742 */
-{4.5904011726379395e+00, 2.0360946655273438e-04,
- 1.1920928955078125e-07, -1.5014410018920898e-04,
- 6.1798095703125000e-04}, /* L743 */
-{3.7883598804473877e+00, 1.6818661242723465e-04,
- 1.1920928955078125e-07, -2.5999546051025391e-04,
- -3.3479928970336914e-04}, /* L744 */
-{4.6516780853271484e+00, 2.0665675401687622e-04,
- 1.1920928955078125e-07, 8.9526176452636719e-05,
- -1.0347366333007812e-04}, /* L745 */
-{3.9843575954437256e+00, 1.7718598246574402e-04,
- 1.1920928955078125e-07, -9.1195106506347656e-06,
- 5.4121017456054688e-05}, /* L746 */
-{4.4322652816772461e+00, 1.9737565889954567e-04,
- 1.1920928955078125e-07, -4.4763088226318359e-05,
- 9.4175338745117188e-06}, /* L747 */
-{5.8166418075561523e+00, 2.5949627161026001e-04,
- 1.1920928955078125e-07, -8.7261199951171875e-05,
- 1.0693073272705078e-04}, /* L748 */
-{4.9772286415100098e+00, 2.2223591804504395e-04,
- 1.1920928955078125e-07, 9.5367431640625000e-06,
- -1.4305114746093750e-06}, /* L749 */
-{2.8411679267883301e+00, 1.2714415788650513e-04,
- 1.1920928955078125e-07, -4.2319297790527344e-05,
- -2.4908781051635742e-04}, /* L750 */
-{4.4223418235778809e+00, 1.9854865968227386e-04,
- 1.1920928955078125e-07, 1.8000602722167969e-04,
- -1.2544989585876465e-03}, /* L751 */
-{4.3431792259216309e+00, 1.9469857215881348e-04,
- 1.1920928955078125e-07, 4.3272972106933594e-05,
- -1.8179416656494141e-05}, /* L752 */
-{5.3755192756652832e+00, 2.4147331714630127e-04,
- 1.1920928955078125e-07, -2.9653310775756836e-04,
- 5.0783157348632812e-05}, /* L753 */
-{5.6732382774353027e+00, 2.5509297847747803e-04,
- 1.1920928955078125e-07, -2.2393465042114258e-04,
- 6.3180923461914062e-05}, /* L754 */
-{5.2730417251586914e+00, 2.3734569549560547e-04,
- 1.1920928955078125e-07, 5.6505203247070312e-05,
- 2.4676322937011719e-05}, /* L755 */
-{4.5985279083251953e+00, 2.0729005336761475e-04,
- 1.1920928955078125e-07, -8.4340572357177734e-05,
- -8.5234642028808594e-05}, /* L756 */
-{4.8163733482360840e+00, 2.1743774414062500e-04,
- 1.1920928955078125e-07, 7.9751014709472656e-05,
- 1.1479854583740234e-04}, /* L757 */
-{4.8428277969360352e+00, 2.1901726722717285e-04,
- 1.1920928955078125e-07, -6.9975852966308594e-05,
- -1.4299154281616211e-04}, /* L758 */
-{4.7938642501831055e+00, 2.1734833717346191e-04,
- 1.1920928955078125e-07, -1.7386674880981445e-04,
- -5.8209896087646484e-04}, /* L759 */
-{4.0527749061584473e+00, 1.8370896577835083e-04,
- 1.1920928955078125e-07, 1.7631053924560547e-04,
- 9.1075897216796875e-05}, /* L760 */
-{4.6957206726074219e+00, 2.1305680274963379e-04,
- 1.1920928955078125e-07, -1.1390447616577148e-04,
- 1.1825561523437500e-04}, /* L761 */
-{4.4694385528564453e+00, 2.0309165120124817e-04,
- 1.1920928955078125e-07, 1.4996528625488281e-04,
- 2.1457672119140625e-06}, /* L762 */
-{4.3693590164184570e+00, 1.9875168800354004e-04,
- 1.1920928955078125e-07, 4.2796134948730469e-05,
- 2.6464462280273438e-05}, /* L763 */
-{4.7736887931823730e+00, 2.1749734878540039e-04,
- 1.1920928955078125e-07, -4.9948692321777344e-05,
- -3.3974647521972656e-05}, /* L764 */
-{4.0998091697692871e+00, 1.8781423568725586e-04,
- 1.1920928955078125e-07, -1.5157461166381836e-04,
- 6.0963630676269531e-04}, /* L765 */
-{5.5412731170654297e+00, 2.5303661823272705e-04,
- 1.1920928955078125e-07, -4.4345855712890625e-05,
- -6.2584877014160156e-06}, /* L766 */
-{3.8906898498535156e+00, 1.7795339226722717e-04,
- 1.1920928955078125e-07, -1.7160177230834961e-04,
- -9.3936920166015625e-05}, /* L767 */
-{3.5563375949859619e+00, 1.6283988952636719e-04,
- 1.1920928955078125e-07, -2.6762485504150391e-05,
- 9.4413757324218750e-05}, /* L768 */
-{4.6511545181274414e+00, 2.1323561668395996e-04,
- 1.1920928955078125e-07, 1.0848045349121094e-04,
- -1.7625093460083008e-04}, /* L769 */
-{4.3572177886962891e+00, 2.0003318786621094e-04,
- 1.1920928955078125e-07, 2.2172927856445312e-05,
- -2.6822090148925781e-06}, /* L770 */
-{4.6440820693969727e+00, 2.1349266171455383e-04,
- 1.1920928955078125e-07, 1.4352798461914062e-04,
- -7.5697898864746094e-05}, /* L771 */
-{4.2722020149230957e+00, 1.9661337137222290e-04,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- 1.4066696166992188e-05}, /* L772 */
-{4.1592264175415039e+00, 1.9186735153198242e-04,
- 1.1920928955078125e-07, 4.5573711395263672e-04,
- -4.0960311889648438e-04}, /* L773 */
-{4.6677560806274414e+00, 2.1549314260482788e-04,
- 1.1920928955078125e-07, -1.7702579498291016e-05,
- 2.1100044250488281e-05}, /* L774 */
-{5.8537640571594238e+00, 2.7045607566833496e-04,
- 1.1920928955078125e-07, 2.5629997253417969e-05,
- 4.0650367736816406e-05}, /* L775 */
-{4.3422040939331055e+00, 2.0086765289306641e-04,
- 1.1920928955078125e-07, 3.5881996154785156e-05,
- 5.7697296142578125e-05}, /* L776 */
-{3.6543712615966797e+00, 1.6936659812927246e-04,
- 1.1920928955078125e-07, 7.9512596130371094e-05,
- -3.5166740417480469e-06}, /* L777 */
-{5.6661624908447266e+00, 2.6317313313484192e-04,
- 1.1920928955078125e-07, -3.9887428283691406e-04,
- 1.1062622070312500e-04}, /* L778 */
-{5.5171098709106445e+00, 2.5627017021179199e-04,
- 1.1920928955078125e-07, 1.4817714691162109e-04,
- -1.8358230590820312e-04}, /* L779 */
-{4.9460015296936035e+00, 2.3001432418823242e-04,
- 1.1920928955078125e-07, 1.3113021850585938e-05,
- -6.1750411987304688e-05}, /* L780 */
-{5.2718229293823242e+00, 2.4555623531341553e-04,
- 1.1920928955078125e-07, -1.6921758651733398e-04,
- -3.8677453994750977e-04}, /* L781 */
-{5.0978212356567383e+00, 2.3767352104187012e-04,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- 5.8650970458984375e-05}, /* L782 */
-{5.3260412216186523e+00, 2.4871528148651123e-04,
- 1.1920928955078125e-07, 3.0171871185302734e-04,
- -5.3346157073974609e-05}, /* L783 */
-{3.9825551509857178e+00, 1.8614530563354492e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 7.7724456787109375e-05}, /* L784 */
-{5.1661300659179688e+00, 2.4181604385375977e-04,
- 1.1920928955078125e-07, -8.8989734649658203e-05,
- 4.3392181396484375e-05}, /* L785 */
-{5.7570858001708984e+00, 2.6974081993103027e-04,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- 2.6106834411621094e-05}, /* L786 */
-{5.2958049774169922e+00, 2.4849921464920044e-04,
- 1.1920928955078125e-07, -9.6201896667480469e-05,
- -8.6247920989990234e-05}, /* L787 */
-{5.4943833351135254e+00, 2.5819242000579834e-04,
- 1.1920928955078125e-07, -9.9539756774902344e-05,
- 2.5582313537597656e-04}, /* L788 */
-{5.4959702491760254e+00, 2.5999546051025391e-04,
- 1.1920928955078125e-07, -6.0558319091796875e-04,
- 1.8882751464843750e-04}, /* L789 */
-{4.7890214920043945e+00, 2.2557377815246582e-04,
- 1.1920928955078125e-07, 7.8201293945312500e-05,
- -4.4107437133789062e-06}, /* L790 */
-{5.2443380355834961e+00, 2.4740397930145264e-04,
- 1.1920928955078125e-07, -3.0672550201416016e-04,
- 1.4543533325195312e-05}, /* L791 */
-{6.9938297271728516e+00, 3.3122301101684570e-04,
- 1.1920928955078125e-07, 5.9568881988525391e-04,
- -4.2986869812011719e-04}, /* L792 */
-{4.5912642478942871e+00, 2.1709501743316650e-04,
- 1.1920928955078125e-07, -1.4388561248779297e-04,
- -9.8943710327148438e-06}, /* L793 */
-{4.3786382675170898e+00, 2.0731240510940552e-04,
- 1.1920928955078125e-07, 7.1287155151367188e-05,
- -1.6832351684570312e-04}, /* L794 */
-{5.4967217445373535e+00, 2.6054680347442627e-04,
- 1.1920928955078125e-07, -7.4803829193115234e-05,
- 1.4936923980712891e-04}, /* L795 */
-{4.3320999145507812e+00, 2.0601786673069000e-04,
- 1.1920928955078125e-07, 1.1360645294189453e-04,
- -3.4242868423461914e-04}, /* L796 */
-{5.0228133201599121e+00, 2.3870170116424561e-04,
- 1.1920928955078125e-07, 3.1471252441406250e-05,
- 7.4505805969238281e-05}, /* L797 */
-{5.1217212677001953e+00, 2.4369359016418457e-04,
- 1.1920928955078125e-07, -8.7201595306396484e-05,
- 1.1801719665527344e-05}, /* L798 */
-{4.9861407279968262e+00, 2.3943185806274414e-04,
- 1.1920928955078125e-07, -4.8807263374328613e-03,
- -4.0578842163085938e-04}, /* L799 */
-{5.3324775695800781e+00, 2.5433301925659180e-04,
- 1.1920928955078125e-07, 1.4197826385498047e-04,
- -3.3199787139892578e-05}, /* L800 */
-{6.2244777679443359e+00, 2.9730796813964844e-04,
- 1.1920928955078125e-07, -1.2338161468505859e-05,
- -2.9027462005615234e-05}, /* L801 */
-{4.8699021339416504e+00, 2.3297185543924570e-04,
- 1.1920928955078125e-07, 1.0132789611816406e-05,
- 2.4676322937011719e-05}, /* L802 */
-{4.5460243225097656e+00, 2.1766126155853271e-04,
- 1.1920928955078125e-07, 7.8797340393066406e-05,
- 5.9247016906738281e-05}, /* L803 */
-{4.5906333923339844e+00, 2.2003054618835449e-04,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- -8.1300735473632812e-05}, /* L804 */
-{5.1835756301879883e+00, 2.4878792464733124e-04,
- 1.1920928955078125e-07, -1.0550022125244141e-05,
- -5.5968761444091797e-05}, /* L805 */
-{4.8872237205505371e+00, 2.3486092686653137e-04,
- 1.1920928955078125e-07, -1.2993812561035156e-05,
- 3.6954879760742188e-05}, /* L806 */
-{5.8850393295288086e+00, 2.8318166732788086e-04,
- 1.1920928955078125e-07, 1.7952919006347656e-04,
- 8.2254409790039062e-06}, /* L807 */
-{3.9728193283081055e+00, 1.9139051437377930e-04,
- 1.1920928955078125e-07, -2.1040439605712891e-05,
- 4.2557716369628906e-05}, /* L808 */
-{5.1040682792663574e+00, 2.4622678756713867e-04,
- 1.1920928955078125e-07, 2.5260448455810547e-04,
- 1.2624263763427734e-04}, /* L809 */
-{4.2816171646118164e+00, 2.0678341388702393e-04,
- 1.1920928955078125e-07, 5.3286552429199219e-05,
- -1.2958049774169922e-04}, /* L810 */
-{5.9511656761169434e+00, 2.8786063194274902e-04,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- -3.1292438507080078e-05}, /* L811 */
-{5.9504723548889160e+00, 2.8862990438938141e-04,
- 1.1920928955078125e-07, -2.2548437118530273e-04,
- 3.2556056976318359e-04}, /* L812 */
-{4.6207208633422852e+00, 2.2399425506591797e-04,
- 1.1920928955078125e-07, -1.3977289199829102e-04,
- 1.6617774963378906e-04}, /* L813 */
-{6.0180282592773438e+00, 2.9204040765762329e-04,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- 7.9274177551269531e-05}, /* L814 */
-{5.9383215904235840e+00, 2.8854608535766602e-04,
- 1.1920928955078125e-07, -1.6748905181884766e-05,
- -9.9360942840576172e-05}, /* L815 */
-{4.5037150382995605e+00, 2.1910667419433594e-04,
- 1.1920928955078125e-07, 1.0037422180175781e-04,
- -7.4923038482666016e-05}, /* L816 */
-{5.5749187469482422e+00, 2.7161091566085815e-04,
- 1.1920928955078125e-07, -7.3373317718505859e-05,
- 3.7074089050292969e-05}, /* L817 */
-{4.7260155677795410e+00, 2.3044459521770477e-04,
- 1.1920928955078125e-07, -3.1530857086181641e-05,
- -5.8412551879882812e-06}, /* L818 */
-{5.6246056556701660e+00, 2.7470663189888000e-04,
- 1.1920928955078125e-07, 1.1432170867919922e-04,
- 2.0027160644531250e-05}, /* L819 */
-{5.0637235641479492e+00, 2.4757534265518188e-04,
- 1.1920928955078125e-07, 1.3780593872070312e-04,
- 7.7962875366210938e-05}, /* L820 */
-{4.5452146530151367e+00, 2.2247433662414551e-04,
- 1.1920928955078125e-07, 4.7087669372558594e-05,
- 9.5963478088378906e-05}, /* L821 */
-{4.8559632301330566e+00, 2.3800134658813477e-04,
- 1.1920928955078125e-07, -1.5407800674438477e-04,
- -2.0074844360351562e-04}, /* L822 */
-{7.3548707962036133e+00, 3.6123394966125488e-04,
- 1.1920928955078125e-07, -5.8352947235107422e-04,
- -4.2349100112915039e-04}, /* L823 */
-{5.2314071655273438e+00, 2.5698542594909668e-04,
- 1.1920928955078125e-07, -4.6908855438232422e-05,
- 9.5367431640625000e-07}, /* L824 */
-{4.8988361358642578e+00, 2.4095177650451660e-04,
- 1.1920928955078125e-07, 1.9669532775878906e-05,
- -1.0526180267333984e-04}, /* L825 */
-{4.5907983779907227e+00, 2.2611278109252453e-04,
- 1.1920928955078125e-07, 1.3709068298339844e-04,
- -1.3291835784912109e-04}, /* L826 */
-{5.4349031448364258e+00, 2.6798620820045471e-04,
- 1.1920928955078125e-07, -3.2663345336914062e-05,
- -3.7491321563720703e-05}, /* L827 */
-{5.6199011802673340e+00, 2.7806311845779419e-04,
- 1.1920928955078125e-07, -4.1025876998901367e-04,
- -3.4266710281372070e-04}, /* L828 */
-{4.8497896194458008e+00, 2.4175643920898438e-04,
- 1.1920928955078125e-07, 3.5682916641235352e-03,
- -4.5229792594909668e-03}, /* L829 */
-{5.8889040946960449e+00, 2.9147043824195862e-04,
- 1.1920928955078125e-07, 5.3167343139648438e-05,
- 4.3511390686035156e-05}, /* L830 */
-{5.2526550292968750e+00, 2.6023387908935547e-04,
- 1.1920928955078125e-07, 9.2506408691406250e-05,
- -3.5285949707031250e-05}, /* L831 */
-{3.8960497379302979e+00, 1.9329320639371872e-04,
- 1.1920928955078125e-07, -2.8371810913085938e-05,
- -8.2969665527343750e-05}, /* L832 */
-{4.1645727157592773e+00, 2.0679831504821777e-04,
- 1.1920928955078125e-07, -1.0764598846435547e-04,
- -6.8306922912597656e-05}, /* L833 */
-{3.8987510204315186e+00, 1.9410252571105957e-04,
- 1.1920928955078125e-07, 3.2234191894531250e-04,
- -7.5441598892211914e-04}, /* L834 */
-{4.9486317634582520e+00, 2.4640560150146484e-04,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- 1.2242794036865234e-04}, /* L835 */
-{3.9442026615142822e+00, 1.9659474492073059e-04,
- 1.1920928955078125e-07, 7.6651573181152344e-05,
- -2.0086765289306641e-05}, /* L836 */
-{5.6565294265747070e+00, 2.8225779533386230e-04,
- 1.1920928955078125e-07, -4.0352344512939453e-05,
- -1.6510486602783203e-05}, /* L837 */
-{4.7735142707824707e+00, 2.3861229419708252e-04,
- 1.1920928955078125e-07, 5.2213668823242188e-05,
- 3.8743019104003906e-05}, /* L838 */
-{4.6249623298645020e+00, 2.3183226585388184e-04,
- 1.1920928955078125e-07, 2.1004676818847656e-04,
- -4.1198730468750000e-04}, /* L839 */
-{5.4616484642028809e+00, 2.7352571487426758e-04,
- 1.1920928955078125e-07, 1.9490718841552734e-04,
- -6.4313411712646484e-05}, /* L840 */
-{5.8893089294433594e+00, 2.9531121253967285e-04,
- 1.1920928955078125e-07, 4.7922134399414062e-05,
- -1.4531612396240234e-04}, /* L841 */
-{4.7599658966064453e+00, 2.3911148309707642e-04,
- 1.1920928955078125e-07, -5.7816505432128906e-05,
- -1.7404556274414062e-05}, /* L842 */
-{4.8852062225341797e+00, 2.4572014808654785e-04,
- 1.1920928955078125e-07, 4.6312808990478516e-04,
- -6.0021877288818359e-04}, /* L843 */
-{4.0558485984802246e+00, 2.0407140254974365e-04,
- 1.1920928955078125e-07, -6.3717365264892578e-05,
- 5.4717063903808594e-05}, /* L844 */
-{4.5782470703125000e+00, 2.3069977760314941e-04,
- 1.1920928955078125e-07, 2.7060508728027344e-05,
- -3.3456087112426758e-04}, /* L845 */
-{5.4247183799743652e+00, 2.7361512184143066e-04,
- 1.1920928955078125e-07, -1.5908479690551758e-04,
- 3.5762786865234375e-07}, /* L846 */
-{4.0128397941589355e+00, 2.0265579223632812e-04,
- 1.1920928955078125e-07, 3.9219856262207031e-05,
- 4.3630599975585938e-05}, /* L847 */
-{5.2048635482788086e+00, 2.6324391365051270e-04,
- 1.1920928955078125e-07, -3.1137466430664062e-04,
- -1.9633769989013672e-04}, /* L848 */
-{5.0692229270935059e+00, 2.5656819343566895e-04,
- 1.1920928955078125e-07, -8.0943107604980469e-05,
- -6.0439109802246094e-05}, /* L849 */
-{6.0438160896301270e+00, 3.0627846717834473e-04,
- 1.1920928955078125e-07, -4.8518180847167969e-05,
- -2.2947788238525391e-05}, /* L850 */
-{4.4402437210083008e+00, 2.2566318511962891e-04,
- 1.1920928955078125e-07, -9.5075368881225586e-04,
- 4.9090385437011719e-04}, /* L851 */
-{5.3619003295898438e+00, 2.7233362197875977e-04,
- 1.1920928955078125e-07, 5.1021575927734375e-05,
- 3.6597251892089844e-05}, /* L852 */
-{4.4910583496093750e+00, 2.2868812084197998e-04,
- 1.1920928955078125e-07, 9.4532966613769531e-04,
- -4.1359663009643555e-04}, /* L853 */
-{4.6402668952941895e+00, 2.3627281188964844e-04,
- 1.1920928955078125e-07, 6.5684318542480469e-05,
- 1.3113021850585938e-05}, /* L854 */
-{5.0893239974975586e+00, 2.5998055934906006e-04,
- 1.1920928955078125e-07, -1.7511844635009766e-04,
- -1.2987852096557617e-03}, /* L855 */
-{5.0811262130737305e+00, 2.5931000709533691e-04,
- 1.1920928955078125e-07, -7.0512294769287109e-05,
- 5.1736831665039062e-05}, /* L856 */
-{4.3322720527648926e+00, 2.2134184837341309e-04,
- 1.1920928955078125e-07, 5.0187110900878906e-05,
- -4.4941902160644531e-05}, /* L857 */
-{4.6237492561340332e+00, 2.3762881755828857e-04,
- 1.1920928955078125e-07, 9.4044208526611328e-04,
- 2.4342536926269531e-03}, /* L858 */
-{5.1871380805969238e+00, 2.6620924472808838e-04,
- 1.1920928955078125e-07, 5.9831142425537109e-04,
- -7.7795982360839844e-04}, /* L859 */
-{4.9393477439880371e+00, 2.5528669357299805e-04,
- 1.1920928955078125e-07, 2.1551847457885742e-03,
- 4.4703483581542969e-04}, /* L860 */
-{5.3050327301025391e+00, 2.7231872081756592e-04,
- 1.1920928955078125e-07, 3.3974647521972656e-05,
- -9.5546245574951172e-05}, /* L861 */
-{4.8765621185302734e+00, 2.5060772895812988e-04,
- 1.1920928955078125e-07, -7.5995922088623047e-05,
- -7.4505805969238281e-06}, /* L862 */
-{4.3017992973327637e+00, 2.2132322192192078e-04,
- 1.1920928955078125e-07, -3.1232833862304688e-05,
- 3.2067298889160156e-05}, /* L863 */
-{4.9364428520202637e+00, 2.5454163551330566e-04,
- 1.1920928955078125e-07, 5.8770179748535156e-05,
- -2.4408102035522461e-04}, /* L864 */
-{4.9730615615844727e+00, 2.5656819343566895e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- -7.9691410064697266e-05}, /* L865 */
-{4.9953870773315430e+00, 2.5817751884460449e-04,
- 1.1920928955078125e-07, 2.1409988403320312e-04,
- 7.0691108703613281e-05}, /* L866 */
-{5.1169176101684570e+00, 2.6482343673706055e-04,
- 1.1920928955078125e-07, -2.5224685668945312e-04,
- -3.2728910446166992e-04}, /* L867 */
-{5.0259714126586914e+00, 2.6010721921920776e-04,
- 1.1920928955078125e-07, 1.7523765563964844e-04,
- -8.6367130279541016e-05}, /* L868 */
-{4.9066472053527832e+00, 2.5433301925659180e-04,
- 1.1920928955078125e-07, 8.5234642028808594e-05,
- 8.0108642578125000e-05}, /* L869 */
-{5.8348283767700195e+00, 3.0323863029479980e-04,
- 1.1920928955078125e-07, 1.5866756439208984e-04,
- -4.1258335113525391e-04}, /* L870 */
-{4.7762055397033691e+00, 2.4810433387756348e-04,
- 1.1920928955078125e-07, -1.4567375183105469e-04,
- -2.0861625671386719e-04}, /* L871 */
-{5.0528659820556641e+00, 2.6276707649230957e-04,
- 1.1920928955078125e-07, -2.2387504577636719e-04,
- -2.3901462554931641e-05}, /* L872 */
-{7.0854940414428711e+00, 3.6878883838653564e-04,
- 1.1920928955078125e-07, 1.4793872833251953e-04,
- -3.3199787139892578e-05}, /* L873 */
-{5.9593586921691895e+00, 3.1055323779582977e-04,
- 1.1920928955078125e-07, 2.7334690093994141e-04,
- 3.0517578125000000e-05}, /* L874 */
-{5.4359879493713379e+00, 2.8392672538757324e-04,
- 1.1920928955078125e-07, 3.8957595825195312e-04,
- 3.3855438232421875e-04}, /* L875 */
-{5.7845115661621094e+00, 3.0264258384704590e-04,
- 1.1920928955078125e-07, -8.6009502410888672e-04,
- -1.8996596336364746e-03}, /* L876 */
-{4.3264331817626953e+00, 2.2619962692260742e-04,
- 1.1920928955078125e-07, -1.9133090972900391e-05,
- -1.4543533325195312e-05}, /* L877 */
-{5.0491905212402344e+00, 2.6434659957885742e-04,
- 1.1920928955078125e-07, -2.8848648071289062e-05,
- 3.2186508178710938e-05}, /* L878 */
-{4.3716835975646973e+00, 2.2917427122592926e-04,
- 1.1920928955078125e-07, -1.7577409744262695e-04,
- 1.3244152069091797e-04}, /* L879 */
-{5.4264287948608398e+00, 2.8467178344726562e-04,
- 1.1920928955078125e-07, 1.4638900756835938e-04,
- 6.2465667724609375e-05}, /* L880 */
-{3.7581083774566650e+00, 1.9906461238861084e-04,
- 1.1920928955078125e-07, -7.2115659713745117e-04,
- -2.0980834960937500e-04}, /* L881 */
-{4.8762574195861816e+00, 2.5716423988342285e-04,
- 1.1920928955078125e-07, 1.9896030426025391e-04,
- 6.6602230072021484e-04}, /* L882 */
-{4.6789541244506836e+00, 2.4637952446937561e-04,
- 1.1920928955078125e-07, 8.9049339294433594e-05,
- 2.4962425231933594e-04}, /* L883 */
-{4.6237559318542480e+00, 2.4369359016418457e-04,
- 1.1920928955078125e-07, -7.1167945861816406e-05,
- -1.4901161193847656e-05}, /* L884 */
-{4.3511476516723633e+00, 2.2965669631958008e-04,
- 1.1920928955078125e-07, 2.9230117797851562e-04,
- -1.9848346710205078e-05}, /* L885 */
-{5.1926608085632324e+00, 2.7454318478703499e-04,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- 2.5272369384765625e-05}, /* L886 */
-{4.7287635803222656e+00, 2.5012157857418060e-04,
- 1.1920928955078125e-07, 1.9419193267822266e-04,
- -7.8141689300537109e-05}, /* L887 */
-{5.6029157638549805e+00, 2.9662251472473145e-04,
- 1.1920928955078125e-07, 1.0848045349121094e-04,
- -4.5895576477050781e-06}, /* L888 */
-{5.7085886001586914e+00, 3.0253827571868896e-04,
- 1.1920928955078125e-07, -2.0146369934082031e-05,
- -3.8683414459228516e-05}, /* L889 */
-{4.7532944679260254e+00, 2.5227665901184082e-04,
- 1.1920928955078125e-07, 7.8797340393066406e-05,
- -9.8645687103271484e-05}, /* L890 */
-{5.5787529945373535e+00, 2.9674172401428223e-04,
- 1.1920928955078125e-07, -1.4084577560424805e-04,
- 6.0939788818359375e-04}, /* L891 */
-{4.6046619415283203e+00, 2.4493038654327393e-04,
- 1.1920928955078125e-07, -1.0323524475097656e-04,
- -4.1127204895019531e-05}, /* L892 */
-{4.8557782173156738e+00, 2.5856494903564453e-04,
- 1.1920928955078125e-07, -3.5107135772705078e-05,
- -2.4437904357910156e-06}, /* L893 */
-{4.9186348915100098e+00, 2.6221573352813721e-04,
- 1.1920928955078125e-07, -1.5175342559814453e-04,
- 2.8216838836669922e-04}, /* L894 */
-{6.5284805297851562e+00, 3.4872069954872131e-04,
- 1.1920928955078125e-07, -1.1943578720092773e-03,
- 3.6847591400146484e-04}, /* L895 */
-{4.8592348098754883e+00, 2.5957822799682617e-04,
- 1.1920928955078125e-07, 3.7193298339843750e-05,
- -1.6868114471435547e-05}, /* L896 */
-{5.5058813095092773e+00, 2.9450654983520508e-04,
- 1.1920928955078125e-07, 1.3184547424316406e-04,
- 7.5340270996093750e-05}, /* L897 */
-{7.1662878990173340e+00, 3.8374215364456177e-04,
- 1.1920928955078125e-07, 1.2397766113281250e-04,
- -1.6736984252929688e-04}, /* L898 */
-{5.4948153495788574e+00, 2.9470399022102356e-04,
- 1.1920928955078125e-07, 2.4664402008056641e-04,
- 2.1421909332275391e-04}, /* L899 */
-{6.2433843612670898e+00, 3.3500790596008301e-04,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- 3.4332275390625000e-05}, /* L900 */
-{6.2719564437866211e+00, 3.3771991729736328e-04,
- 1.1920928955078125e-07, -8.9251995086669922e-04,
- -6.1118602752685547e-04}, /* L901 */
-{5.7363834381103516e+00, 3.0866265296936035e-04,
- 1.1920928955078125e-07, -2.2929906845092773e-04,
- 1.5115737915039062e-04}, /* L902 */
-{5.8233127593994141e+00, 3.1360983848571777e-04,
- 1.1920928955078125e-07, -4.1246414184570312e-05,
- -1.4245510101318359e-05}, /* L903 */
-{5.6014518737792969e+00, 3.0232407152652740e-04,
- 1.1920928955078125e-07, 9.0157985687255859e-04,
- 2.6261806488037109e-04}, /* L904 */
-{6.0674018859863281e+00, 3.2764673233032227e-04,
- 1.1920928955078125e-07, 4.1639804840087891e-04,
- 1.1086463928222656e-05}, /* L905 */
-{5.8334345817565918e+00, 3.1509995460510254e-04,
- 1.1920928955078125e-07, -6.4909458160400391e-05,
- 1.8131732940673828e-04}, /* L906 */
-{5.2944221496582031e+00, 2.8637051582336426e-04,
- 1.1920928955078125e-07, 1.1658668518066406e-04,
- 3.9458274841308594e-04}, /* L907 */
-{4.7547850608825684e+00, 2.5753676891326904e-04,
- 1.1920928955078125e-07, 7.1287155151367188e-05,
- -2.3114681243896484e-04}, /* L908 */
-{5.1948256492614746e+00, 2.8163194656372070e-04,
- 1.1920928955078125e-07, -1.1104345321655273e-04,
- -7.4863433837890625e-05}, /* L909 */
-{7.2856726646423340e+00, 3.9578787982463837e-04,
- 1.1920928955078125e-07, -3.2252073287963867e-04,
- -2.1225214004516602e-04}, /* L910 */
-{5.2319149971008301e+00, 2.8572976589202881e-04,
- 1.1920928955078125e-07, -2.0481944084167480e-03,
- -1.6152858734130859e-03}, /* L911 */
-{5.1695442199707031e+00, 2.8257071971893311e-04,
- 1.1920928955078125e-07, 2.3112297058105469e-03,
- 8.3923339843750000e-05}, /* L912 */
-{4.8775024414062500e+00, 2.6595592498779297e-04,
- 1.1920928955078125e-07, -1.3172626495361328e-04,
- -1.1069178581237793e-03}, /* L913 */
-{7.0309958457946777e+00, 3.8324296474456787e-04,
- 1.1920928955078125e-07, -3.9100646972656250e-05,
- -7.6234340667724609e-05}, /* L914 */
-{6.9282450675964355e+00, 3.7834048271179199e-04,
- 1.1920928955078125e-07, -2.4181604385375977e-04,
- 9.2148780822753906e-05}, /* L915 */
-{5.4559311866760254e+00, 3.0207633972167969e-04,
- 1.1920928955078125e-07, -2.2244453430175781e-04,
- 3.7927627563476562e-03}, /* L916 */
-{5.1711554527282715e+00, 2.8271228075027466e-04,
- 1.1920928955078125e-07, 6.6161155700683594e-05,
- 1.1920928955078125e-06}, /* L917 */
-{5.3764057159423828e+00, 2.9912590980529785e-04,
- 1.1920928955078125e-07, 3.4743547439575195e-03,
- 9.3233585357666016e-03}, /* L918 */
-{3.9816880226135254e+00, 2.1830201148986816e-04,
- 1.1920928955078125e-07, -1.0031461715698242e-04,
- -2.4861097335815430e-04}, /* L919 */
-{5.4723439216613770e+00, 3.0027329921722412e-04,
- 1.1920928955078125e-07, -1.0710954666137695e-04,
- 4.1365623474121094e-05}, /* L920 */
-{5.5769276618957520e+00, 3.0660070478916168e-04,
- 1.1920928955078125e-07, -2.2232532501220703e-04,
- 4.4763088226318359e-04}, /* L921 */
-{5.0344314575195312e+00, 2.7674436569213867e-04,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- -7.8082084655761719e-05}, /* L922 */
-{5.0549912452697754e+00, 2.7821958065032959e-04,
- 1.1920928955078125e-07, -4.8875808715820312e-05,
- -1.7720460891723633e-04}, /* L923 */
-{4.3978548049926758e+00, 2.4357438087463379e-04,
- 1.1920928955078125e-07, 2.3881196975708008e-03,
- 2.6938915252685547e-03}, /* L924 */
-{4.5824570655822754e+00, 2.5281310081481934e-04,
- 1.1920928955078125e-07, 4.3618679046630859e-04,
- -2.8789043426513672e-05}, /* L925 */
-{6.9681735038757324e+00, 3.8468837738037109e-04,
- 1.1920928955078125e-07, 9.7990036010742188e-05,
- 9.9897384643554688e-05}, /* L926 */
-{4.3679957389831543e+00, 2.4139881134033203e-04,
- 1.1920928955078125e-07, -3.0338764190673828e-05,
- 6.3776969909667969e-05}, /* L927 */
-{6.0600848197937012e+00, 3.3604353666305542e-04,
- 1.1920928955078125e-07, -5.9378147125244141e-04,
- 3.6072731018066406e-04}, /* L928 */
-{6.0987982749938965e+00, 3.3798813819885254e-04,
- 1.1920928955078125e-07, -5.2273273468017578e-04,
- 2.2614002227783203e-04}, /* L929 */
-{4.9864921569824219e+00, 2.7665495872497559e-04,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- -2.9027462005615234e-05}, /* L930 */
-{5.7451725006103516e+00, 3.1891465187072754e-04,
- 1.1920928955078125e-07, 3.6120414733886719e-05,
- 1.1074542999267578e-04}, /* L931 */
-{4.7445440292358398e+00, 2.7416646480560303e-04,
- 1.1920928955078125e-07, -5.5706501007080078e-04,
- 5.3735971450805664e-03}, /* L932 */
-{5.6494603157043457e+00, 3.1426548957824707e-04,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- -8.3684921264648438e-05}, /* L933 */
-{4.8419675827026367e+00, 2.6962161064147949e-04,
- 1.1920928955078125e-07, 8.7976455688476562e-05,
- 1.2183189392089844e-04}, /* L934 */
-{6.1975789070129395e+00, 3.4543126821517944e-04,
- 1.1920928955078125e-07, 1.9431114196777344e-05,
- -1.1384487152099609e-05}, /* L935 */
-{4.5340342521667480e+00, 2.5942921638488770e-04,
- 1.1920928955078125e-07, 1.5318393707275391e-03,
- -5.6353211402893066e-03}, /* L936 */
-{6.3955612182617188e+00, 3.5771727561950684e-04,
- 1.1920928955078125e-07, 1.9836425781250000e-04,
- -1.0806322097778320e-04}, /* L937 */
-{6.4559397697448730e+00, 3.6111474037170410e-04,
- 1.1920928955078125e-07, 1.6903877258300781e-04,
- 3.0875205993652344e-05}, /* L938 */
-{4.6038875579833984e+00, 2.5776028633117676e-04,
- 1.1920928955078125e-07, -4.5835971832275391e-05,
- -2.4127960205078125e-04}, /* L939 */
-{5.1171851158142090e+00, 2.8726458549499512e-04,
- 1.1920928955078125e-07, -4.5216083526611328e-04,
- -3.8754940032958984e-04}, /* L940 */
-{4.4189562797546387e+00, 2.4795532226562500e-04,
- 1.1920928955078125e-07, 1.6117095947265625e-04,
- -3.1173229217529297e-05}, /* L941 */
-{5.2334847450256348e+00, 2.9407441616058350e-04,
- 1.1920928955078125e-07, -2.4121999740600586e-04,
- -1.2457370758056641e-05}, /* L942 */
-{6.2667074203491211e+00, 3.5234913229942322e-04,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -6.3896179199218750e-05}, /* L943 */
-{4.2498359680175781e+00, 2.3916363716125488e-04,
- 1.1920928955078125e-07, 6.3538551330566406e-05,
- 1.5497207641601562e-06}, /* L944 */
-{5.3738732337951660e+00, 3.0273944139480591e-04,
- 1.1920928955078125e-07, -1.1163949966430664e-04,
- -4.1723251342773438e-06}, /* L945 */
-{5.0836496353149414e+00, 2.8671324253082275e-04,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- -4.5478343963623047e-05}, /* L946 */
-{5.3319334983825684e+00, 3.0108354985713959e-04,
- 1.1920928955078125e-07, -8.0466270446777344e-05,
- -2.3514032363891602e-04}, /* L947 */
-{5.6575970649719238e+00, 3.1993538141250610e-04,
- 1.1920928955078125e-07, 1.9192695617675781e-04,
- 1.6725063323974609e-04}, /* L948 */
-{4.4730577468872070e+00, 2.5312602519989014e-04,
- 1.1920928955078125e-07, 8.7618827819824219e-05,
- 3.6668777465820312e-04}, /* L949 */
-{4.9279279708862305e+00, 2.8058886528015137e-04,
- 1.1920928955078125e-07, -2.7950406074523926e-03,
- 4.2028427124023438e-03}, /* L950 */
-{6.0424184799194336e+00, 3.4257769584655762e-04,
- 1.1920928955078125e-07, 4.9352645874023438e-05,
- -7.9154968261718750e-05}, /* L951 */
-{6.3592963218688965e+00, 3.6108493804931641e-04,
- 1.1920928955078125e-07, 1.1348724365234375e-04,
- 9.1314315795898438e-05}, /* L952 */
-{5.7861633300781250e+00, 3.2892823219299316e-04,
- 1.1920928955078125e-07, 2.7549266815185547e-04,
- -1.0633468627929688e-04}, /* L953 */
-{4.9448685646057129e+00, 2.8138607740402222e-04,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -1.8918514251708984e-04}, /* L954 */
-{6.9093933105468750e+00, 3.9339065551757812e-04,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -3.5345554351806641e-05}, /* L955 */
-{6.2355756759643555e+00, 3.5572052001953125e-04,
- 1.1920928955078125e-07, 6.2227249145507812e-04,
- -2.1344423294067383e-04}, /* L956 */
-{5.9942321777343750e+00, 3.4198164939880371e-04,
- 1.1920928955078125e-07, -2.0682811737060547e-05,
- 1.3470649719238281e-05}, /* L957 */
-{5.6657543182373047e+00, 3.2372772693634033e-04,
- 1.1920928955078125e-07, -1.3417005538940430e-04,
- 1.9717216491699219e-04}, /* L958 */
-{5.3106651306152344e+00, 3.0371546745300293e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -2.4265050888061523e-04}, /* L959 */
-{6.1326141357421875e+00, 3.5106390714645386e-04,
- 1.1920928955078125e-07, 6.5684318542480469e-05,
- 1.2242794036865234e-04}, /* L960 */
-{5.1424431800842285e+00, 2.9462575912475586e-04,
- 1.1920928955078125e-07, 4.4226646423339844e-05,
- -2.6702880859375000e-05}, /* L961 */
-{5.4141693115234375e+00, 3.1057000160217285e-04,
- 1.1920928955078125e-07, -1.7917156219482422e-04,
- -1.9353628158569336e-04}, /* L962 */
-{5.1057934761047363e+00, 2.9316765721887350e-04,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -1.3709068298339844e-06}, /* L963 */
-{4.3034482002258301e+00, 2.4742633104324341e-04,
- 1.1920928955078125e-07, 1.7940998077392578e-04,
- 6.1273574829101562e-05}, /* L964 */
-{4.8049292564392090e+00, 2.7647614479064941e-04,
- 1.1920928955078125e-07, 4.4941902160644531e-05,
- 1.2803077697753906e-04}, /* L965 */
-{5.3867731094360352e+00, 3.1632184982299805e-04,
- 1.1920928955078125e-07, 2.6062726974487305e-03,
- 1.3935565948486328e-04}, /* L966 */
-{4.5265178680419922e+00, 2.6097893714904785e-04,
- 1.1920928955078125e-07, -8.1837177276611328e-05,
- 1.6140937805175781e-04}, /* L967 */
-{4.3001074790954590e+00, 2.4837255477905273e-04,
- 1.1920928955078125e-07, -6.0498714447021484e-05,
- 3.8266181945800781e-05}, /* L968 */
-{5.0521054267883301e+00, 2.9191747307777405e-04,
- 1.1920928955078125e-07, -5.6028366088867188e-05,
- -9.3400478363037109e-05}, /* L969 */
-{6.3749914169311523e+00, 3.6871433258056641e-04,
- 1.1920928955078125e-07, 4.1127204895019531e-05,
- -9.6738338470458984e-05}, /* L970 */
-{5.4225873947143555e+00, 3.1396746635437012e-04,
- 1.1920928955078125e-07, -2.8431415557861328e-05,
- 2.3007392883300781e-04}, /* L971 */
-{5.0508465766906738e+00, 2.9276311397552490e-04,
- 1.1920928955078125e-07, 1.2826919555664062e-04,
- -8.6545944213867188e-05}, /* L972 */
-{4.9802422523498535e+00, 2.8893351554870605e-04,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- -5.3346157073974609e-05}, /* L973 */
-{4.7707667350769043e+00, 2.7702748775482178e-04,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- 6.8783760070800781e-05}, /* L974 */
-{6.8601779937744141e+00, 3.9875507354736328e-04,
- 1.1920928955078125e-07, -1.6814470291137695e-04,
- 4.6491622924804688e-06}, /* L975 */
-{8.3237686157226562e+00, 4.8434734344482422e-04,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 1.6474723815917969e-04}, /* L976 */
-{6.1108503341674805e+00, 3.5598874092102051e-04,
- 1.1920928955078125e-07, 3.6716461181640625e-05,
- 1.9240379333496094e-04}, /* L977 */
-{5.2318091392517090e+00, 3.0514597892761230e-04,
- 1.1920928955078125e-07, 2.0170211791992188e-04,
- 7.7724456787109375e-05}, /* L978 */
-{7.0031437873840332e+00, 4.0894746780395508e-04,
- 1.1920928955078125e-07, 2.2268295288085938e-04,
- 3.1197071075439453e-04}, /* L979 */
-{6.1762423515319824e+00, 3.6111474037170410e-04,
- 1.1920928955078125e-07, -3.3825635910034180e-04,
- 3.9160251617431641e-04}, /* L980 */
-{5.1702899932861328e+00, 3.0273199081420898e-04,
- 1.1920928955078125e-07, -1.0800361633300781e-04,
- 1.8608570098876953e-04}, /* L981 */
-{5.5756750106811523e+00, 3.2694637775421143e-04,
- 1.1920928955078125e-07, 2.3913383483886719e-04,
- 6.5195560455322266e-04}, /* L982 */
-{6.5549726486206055e+00, 3.8413703441619873e-04,
- 1.1920928955078125e-07, -3.1530857086181641e-05,
- 2.3961067199707031e-05}, /* L983 */
-{5.5842485427856445e+00, 3.2779574394226074e-04,
- 1.1920928955078125e-07, -1.2886524200439453e-04,
- -9.5367431640625000e-07}, /* L984 */
-{6.8727436065673828e+00, 4.0569901466369629e-04,
- 1.1920928955078125e-07, -2.4877786636352539e-03,
- 6.1261653900146484e-04}, /* L985 */
-{5.6474647521972656e+00, 3.3213943243026733e-04,
- 1.1920928955078125e-07, 9.0003013610839844e-05,
- 1.3649463653564453e-04}, /* L986 */
-{5.2302017211914062e+00, 3.0791014432907104e-04,
- 1.1920928955078125e-07, 7.2121620178222656e-05,
- -2.8920173645019531e-04}, /* L987 */
-{4.7172813415527344e+00, 2.7796626091003418e-04,
- 1.1920928955078125e-07, -5.0842761993408203e-05,
- 1.6498565673828125e-04}, /* L988 */
-{7.2241983413696289e+00, 4.2596459388732910e-04,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- -9.2327594757080078e-05}, /* L989 */
-{6.7579894065856934e+00, 3.9902701973915100e-04,
- 1.1920928955078125e-07, -7.7664852142333984e-05,
- -3.3849477767944336e-04}, /* L990 */
-{5.5737280845642090e+00, 3.2934546470642090e-04,
- 1.1920928955078125e-07, 1.4698505401611328e-04,
- 1.3053417205810547e-04}, /* L991 */
-{5.8503813743591309e+00, 3.4610927104949951e-04,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- -6.0558319091796875e-05}, /* L992 */
-{5.3310189247131348e+00, 3.1572580337524414e-04,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- 2.9778480529785156e-04}, /* L993 */
-{7.1494469642639160e+00, 4.2387843132019043e-04,
- 1.1920928955078125e-07, -4.5478343963623047e-05,
- 3.0267238616943359e-04}, /* L994 */
-{6.6653022766113281e+00, 3.9577484130859375e-04,
- 1.1920928955078125e-07, -3.1816959381103516e-04,
- -3.1900405883789062e-04}, /* L995 */
-{6.2761549949645996e+00, 3.7273764610290527e-04,
- 1.1920928955078125e-07, 1.0085105895996094e-04,
- 3.5762786865234375e-07}, /* L996 */
-{5.5579524040222168e+00, 3.3035874366760254e-04,
- 1.1920928955078125e-07, -9.2387199401855469e-06,
- -2.2888183593750000e-05}, /* L997 */
-{5.5026473999023438e+00, 3.2849609851837158e-04,
- 1.1920928955078125e-07, -2.7120113372802734e-04,
- -6.0898065567016602e-04}, /* L998 */
-{7.3746266365051270e+00, 4.3961405754089355e-04,
- 1.1920928955078125e-07, -1.6993284225463867e-04,
- -5.8591365814208984e-05}, /* L999 */
-{6.1620302200317383e+00, 3.6734342575073242e-04,
- 1.1920928955078125e-07, -1.1640787124633789e-04,
- 8.7499618530273438e-05}, /* L1000 */
-{1.3462138175964355e+01, 1.6159936785697937e-03,
- 1.1920928955078125e-07, -2.4120807647705078e-03,
- 9.3829631805419922e-04}, /* L1001 */
-{1.3280698776245117e+01, 2.4043619632720947e-03,
- 1.1920928955078125e-07, 3.1414031982421875e-03,
- -4.2670965194702148e-04}, /* L1002 */
-{2.4343105316162109e+01, 5.8691725134849548e-03,
- 1.1920928955078125e-07, 8.0537796020507812e-04,
- 4.9936771392822266e-04}, /* L1003 */
-{2.3355789184570312e+01, 7.0401430130004883e-03,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- -3.0348300933837891e-03}, /* L1004 */
-{2.7049118041992188e+01, 9.7385942935943604e-03,
- 1.1920928955078125e-07, -1.4069080352783203e-03,
- -1.4125108718872070e-03}, /* L1005 */
-{2.7930175781250000e+01, 1.2035548686981201e-02,
- 1.1920928955078125e-07, -9.1167092323303223e-03,
- -6.2170028686523438e-03}, /* L1006 */
-{3.8024681091308594e+01, 1.8519140779972076e-02,
- 1.1920928955078125e-07, -2.5574564933776855e-03,
- -8.1682205200195312e-03}, /* L1007 */
-{3.3715114593505859e+01, 2.1082807332277298e-02,
- 1.1920928955078125e-07, 4.5572519302368164e-03,
- -3.5281717777252197e-02}, /* L1008 */
-{4.6165416717529297e+01, 2.8010942041873932e-02,
- 1.1920928955078125e-07, -3.4152865409851074e-03,
- 2.0146369934082031e-04}, /* L1009 */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1011 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1012 */
-}; /* SINGLE */
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SINGDOUB64V9B_SOS10_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64v9b_sos11.h b/usr/src/cmd/fps/fptest/singdoub64v9b_sos11.h
deleted file mode 100644
index e683cc3187..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64v9b_sos11.h
+++ /dev/null
@@ -1,6139 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SINGDOUB64V9B_SOS11_H
-#define _SINGDOUB64V9B_SOS11_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64 bits V9B LAPACK */
-
-#ifdef DP
-static struct LinpVals LinpValsA[] = {
-/* Lapack v9b double for SOS10 libs */
-
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{1.0065038988871822e+00, 3.6776137690708310e-15,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 4.4408920985006262e-16}, /* L33 */
-{1.1575353385426153e+00, 4.3576253716537394e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L34 */
-{1.2009566230208775e+00, 4.6629367034256575e-15,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -6.6613381477509392e-16}, /* L35 */
-{6.1159828024210205e-01, 2.4424906541753444e-15,
- 2.2204460492503131e-16, -1.7652546091539989e-14,
- 1.4876988529977098e-14}, /* L36 */
-{7.7088431883096797e-01, 3.1641356201816961e-15,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- 0.0000000000000000e+00}, /* L37 */
-{6.7158758524190554e-01, 2.8310687127941492e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- 2.6645352591003757e-15}, /* L38 */
-{5.5172152553309561e-01, 2.3869795029440866e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 1.7763568394002505e-15}, /* L39 */
-{6.6302813562449681e-01, 2.9420910152566648e-15,
- 2.2204460492503131e-16, -7.8503870071244819e-13,
- 1.9155788066882451e-12}, /* L40 */
-{8.3145497909849841e-01, 3.7816971776294395e-15,
- 2.2204460492503131e-16, -3.4194869158454821e-14,
- -3.3750779948604759e-14}, /* L41 */
-{1.0544113208069905e+00, 4.9127368839663177e-15,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- 4.2188474935755949e-15}, /* L42 */
-{7.7969083083719226e-01, 3.7192471324942744e-15,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -4.1078251911130792e-15}, /* L43 */
-{8.9844292820689153e-01, 4.3853809472693683e-15,
- 2.2204460492503131e-16, -1.2989609388114332e-14,
- 3.7747582837255322e-15}, /* L44 */
-{1.1926166464721064e+00, 5.9535709695524019e-15,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- -1.4765966227514582e-14}, /* L45 */
-{1.6099780815859479e+00, 8.2156503822261584e-15,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- -2.8865798640254070e-15}, /* L46 */
-{5.6960265364872864e-01, 2.9698465908722937e-15,
- 2.2204460492503131e-16, -3.3417713041217212e-14,
- 5.3290705182007514e-15}, /* L47 */
-{7.5059788938801664e-01, 3.9968028886505635e-15,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 6.2172489379008766e-15}, /* L48 */
-{8.8776880052203955e-01, 4.8294701571194310e-15,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 1.7763568394002505e-15}, /* L49 */
-{9.5751477467800905e-01, 5.3151927303929369e-15,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -3.5527136788005009e-15}, /* L50 */
-{1.4281010800528113e+00, 8.0859798023968921e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.5757174171303632e-14}, /* L51 */
-{7.6443487233279306e-01, 4.4131365228849972e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 3.3306690738754696e-15}, /* L52 */
-{1.3302092046859246e+00, 7.8270723236073536e-15,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- -5.1070259132757201e-15}, /* L53 */
-{1.3935400211685649e+00, 8.3544282603043030e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 6.6613381477509392e-16}, /* L54 */
-{9.8637885642121115e-01, 6.0229599085914742e-15,
- 2.2204460492503131e-16, 4.2188474935755949e-15,
- -1.1102230246251565e-16}, /* L55 */
-{7.4554721825447678e-01, 4.6351811278100286e-15,
- 2.2204460492503131e-16, 2.8199664825478976e-14,
- 4.4408920985006262e-15}, /* L56 */
-{1.0087874956527063e+00, 6.3837823915946501e-15,
- 2.2204460492503131e-16, -4.3298697960381105e-15,
- 9.3258734068513149e-15}, /* L57 */
-{9.3104884906090468e-01, 5.9952043329758453e-15,
- 2.2204460492503131e-16, 1.4166445794216997e-13,
- 9.1482377229112899e-14}, /* L58 */
-{9.3274744335972293e-01, 6.1096960823903146e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- 2.2204460492503131e-16}, /* L59 */
-{1.1500177450440849e+00, 7.6605388699135801e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- 1.1102230246251565e-15}, /* L60 */
-{1.9426529264108485e+00, 1.3156142841808105e-14,
- 2.2204460492503131e-16, -2.1982415887578100e-14,
- -3.6082248300317588e-14}, /* L61 */
-{8.0646405683316236e-01, 5.5511151231257827e-15,
- 2.2204460492503131e-16, 3.5527136788005009e-15,
- 1.1102230246251565e-15}, /* L62 */
-{1.0932708376799325e+00, 7.6466610821057657e-15,
- 2.2204460492503131e-16, -1.2212453270876722e-15,
- -7.7715611723760958e-16}, /* L63 */
-{1.2812697702936753e+00, 9.1038288019262836e-15,
- 2.2204460492503131e-16, -6.3282712403633923e-15,
- 1.7763568394002505e-15}, /* L64 */
-{1.0500162019967620e+00, 7.5772721430666934e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- -1.3322676295501878e-15}, /* L65 */
-{7.2349601219835624e-01, 5.3013149425851225e-15,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- -1.1102230246251565e-15}, /* L66 */
-{1.3955439216303944e+00, 1.0380585280245214e-14,
- 2.2204460492503131e-16, -2.7755575615628914e-15,
- -2.6645352591003757e-15}, /* L67 */
-{1.0698694495135039e+00, 8.0768725041480138e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 4.8849813083506888e-15}, /* L68 */
-{8.3334619206072991e-01, 6.3837823915946501e-15,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- 1.7452705947107461e-13}, /* L69 */
-{1.5071661130701630e+00, 1.1712852909795402e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 3.1086244689504383e-15}, /* L70 */
-{1.2887522801166682e+00, 1.0158540675320182e-14,
- 2.2204460492503131e-16, -3.5971225997855072e-14,
- -2.4646951146678475e-14}, /* L71 */
-{7.9862343405837943e-01, 6.3837823915946501e-15,
- 2.2204460492503131e-16, -1.6542323066914832e-14,
- -1.5099033134902129e-14}, /* L72 */
-{6.8494207566650933e-01, 5.5511151231257827e-15,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 6.6613381477509392e-16}, /* L73 */
-{1.4898878541845868e+00, 1.2240208846492351e-14,
- 2.2204460492503131e-16, 4.2188474935755949e-15,
- -1.9317880628477724e-14}, /* L74 */
-{1.6333585364394150e+00, 1.3600232051658168e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- -7.7715611723760958e-15}, /* L75 */
-{1.2237030925525847e+00, 1.0325074129013956e-14,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- 1.5099033134902129e-14}, /* L76 */
-{1.1753428111404809e+00, 1.0047518372857667e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- 2.2204460492503131e-16}, /* L77 */
-{1.4295092371506528e+00, 1.2378986724570495e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- 1.2212453270876722e-14}, /* L78 */
-{8.8608962193820440e-01, 7.7715611723760958e-15,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- 3.3306690738754696e-15}, /* L79 */
-{1.4875229528258245e+00, 1.3211653993039363e-14,
- 2.2204460492503131e-16, 9.6544994221403613e-13,
- 2.8843594179761567e-13}, /* L80 */
-{1.4367505644605918e+00, 1.2920220449075259e-14,
- 2.2204460492503131e-16, -3.6637359812630166e-15,
- 3.5527136788005009e-15}, /* L81 */
-{1.4390465950710614e+00, 1.3100631690576847e-14,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -1.5210055437364645e-14}, /* L82 */
-{1.2409830040810663e+00, 1.1435297153639112e-14,
- 2.2204460492503131e-16, 3.5527136788005009e-15,
- 6.8833827526759706e-15}, /* L83 */
-{1.5297855097118160e+00, 1.4266365866433262e-14,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- -9.8809849191638932e-15}, /* L84 */
-{1.1470765231897337e+00, 1.0824674490095276e-14,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- 4.4408920985006262e-15}, /* L85 */
-{1.4767669729079556e+00, 1.4099832412739488e-14,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- 1.9984014443252818e-15}, /* L86 */
-{1.5345064364156262e+00, 1.4821477378745840e-14,
- 2.2204460492503131e-16, 9.5479180117763462e-15,
- -5.5511151231257827e-16}, /* L87 */
-{1.0511525831677182e+00, 1.0269562977782698e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- -4.3298697960381105e-15}, /* L88 */
-{1.2191199349025925e+00, 1.2045919817182948e-14,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 2.8865798640254070e-15}, /* L89 */
-{1.5305791727518232e+00, 1.5293322164211531e-14,
- 2.2204460492503131e-16, 6.6391336872584361e-14,
- 2.8643754035329039e-14}, /* L90 */
-{8.9012362492660502e-01, 8.9928064994637680e-15,
- 2.2204460492503131e-16, -1.9761969838327786e-14,
- -9.9920072216264089e-15}, /* L91 */
-{9.1305756695371576e-01, 9.3258734068513149e-15,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -3.6637359812630166e-15}, /* L92 */
-{1.4731410104819016e+00, 1.5210055437364645e-14,
- 2.2204460492503131e-16, -4.3298697960381105e-15,
- 2.2204460492503131e-16}, /* L93 */
-{1.0119837002526935e+00, 1.0560996521746802e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 1.7763568394002505e-15}, /* L94 */
-{1.9908201925076203e+00, 2.0997092953223273e-14,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- 7.7715611723760958e-15}, /* L95 */
-{1.5677325238146205e+00, 1.6708856520608606e-14,
- 2.2204460492503131e-16, 4.2188474935755949e-15,
- 3.5527136788005009e-15}, /* L96 */
-{1.3556910217238531e+00, 1.4599432773820809e-14,
- 2.2204460492503131e-16, -1.3544720900426910e-14,
- -7.7715611723760958e-16}, /* L97 */
-{1.5315925103833747e+00, 1.6663753710233209e-14,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -7.3274719625260332e-15}, /* L98 */
-{1.5555795585134495e+00, 1.7097434579227411e-14,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- -1.0547118733938987e-14}, /* L99 */
-{1.6050247659093462e+00, 1.7819079545233762e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 3.5527136788005009e-15}, /* L100 */
-{1.7636410747822591e+00, 1.9775847626135601e-14,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- 6.6613381477509392e-16}, /* L101 */
-{1.4166885265035594e+00, 1.6042722705833512e-14,
- 2.2204460492503131e-16, -1.6875389974302379e-14,
- -9.4368957093138306e-15}, /* L102 */
-{1.3446809429176878e+00, 1.5376588891058418e-14,
- 2.2204460492503131e-16, 2.0650148258027912e-14,
- 4.8849813083506888e-15}, /* L103 */
-{1.2428076383523503e+00, 1.4349632593280148e-14,
- 2.2204460492503131e-16, -1.4210854715202004e-14,
- 1.8651746813702630e-14}, /* L104 */
-{1.9309821764611665e+00, 2.2509771824275049e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 4.2188474935755949e-15}, /* L105 */
-{1.2971898272646543e+00, 1.5265566588595902e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-15,
- 1.7763568394002505e-15}, /* L106 */
-{1.7990931809913482e+00, 2.1371793224034263e-14,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- -2.4424906541753444e-15}, /* L107 */
-{1.4884488930420416e+00, 1.7846835120849391e-14,
- 2.2204460492503131e-16, -8.3266726846886741e-15,
- 1.3322676295501878e-15}, /* L108 */
-{1.6468144015589137e+00, 1.9928503292021560e-14,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 1.3544720900426910e-14}, /* L109 */
-{1.6045702134409514e+00, 1.9595436384634013e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -4.5519144009631418e-15}, /* L110 */
-{1.3220924722696190e+00, 1.6292522886374172e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- 1.7763568394002505e-15}, /* L111 */
-{2.0759248891517217e+00, 2.5812685322534890e-14,
- 2.2204460492503131e-16, 1.8651746813702630e-14,
- -3.9190872769268026e-14}, /* L112 */
-{1.6880791448030530e+00, 2.1177504194724861e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 5.1070259132757201e-15}, /* L113 */
-{1.8245895573544391e+00, 2.3092638912203256e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -3.1086244689504383e-15}, /* L114 */
-{1.8282890804953020e+00, 2.3342439092743916e-14,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -1.3544720900426910e-14}, /* L115 */
-{1.4827815003566036e+00, 1.9095836023552692e-14,
- 2.2204460492503131e-16, -1.4765966227514582e-14,
- -2.1205259770340490e-14}, /* L116 */
-{1.7265223671404371e+00, 2.2426505097428162e-14,
- 2.2204460492503131e-16, -1.5087930904655877e-13,
- -1.4777068457760834e-13}, /* L117 */
-{1.2690873789242012e+00, 1.6625589793761719e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -2.0579093984451902e-12}, /* L118 */
-{1.8445662772171771e+00, 2.4369395390522186e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -5.3290705182007514e-15}, /* L119 */
-{2.0521149979499964e+00, 2.7339241981394480e-14,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- -1.4876988529977098e-14}, /* L120 */
-{1.4173772423642603e+00, 1.9040324872321435e-14,
- 2.2204460492503131e-16, 7.5273121069585613e-14,
- -3.3861802251067274e-14}, /* L121 */
-{2.0225721923707840e+00, 2.7394753132625738e-14,
- 2.2204460492503131e-16, 1.5099033134902129e-14,
- -1.4765966227514582e-14}, /* L122 */
-{1.8252314157821714e+00, 2.4924506902834764e-14,
- 2.2204460492503131e-16, -1.3544720900426910e-14,
- -5.8841820305133297e-15}, /* L123 */
-{1.4596999428679314e+00, 2.0095036745715333e-14,
- 2.2204460492503131e-16, -2.5757174171303632e-14,
- -3.3750779948604759e-14}, /* L124 */
-{1.2260189177598309e+00, 1.7014167852380524e-14,
- 2.2204460492503131e-16, 2.0872192862952943e-14,
- -3.4638958368304884e-14}, /* L125 */
-{2.5873415105891033e+00, 3.6193270602780103e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-14,
- 3.5527136788005009e-15}, /* L126 */
-{1.3435246679085870e+00, 1.8943180357666733e-14,
- 2.2204460492503131e-16, -1.9206858326015208e-14,
- -2.0705659409259169e-13}, /* L127 */
-{1.4389870476582931e+00, 2.0448920334814602e-14,
- 2.2204460492503131e-16, -1.1657341758564144e-14,
- -2.5535129566378600e-15}, /* L128 */
-{2.5504269505864414e+00, 3.6526337510167650e-14,
- 2.2204460492503131e-16, 5.5511151231257827e-15,
- 2.2204460492503131e-15}, /* L129 */
-{1.9923384345579360e+00, 2.8754776337791554e-14,
- 2.2204460492503131e-16, -2.3647750424515834e-14,
- -2.3092638912203256e-14}, /* L130 */
-{1.9618623330649909e+00, 2.8532731732866523e-14,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -4.7739590058881731e-14}, /* L131 */
-{2.0614664680029358e+00, 3.0210209334136096e-14,
- 2.2204460492503131e-16, -2.6978419498391304e-14,
- -3.2196467714129540e-15}, /* L132 */
-{2.3120657509057909e+00, 3.4139358007223564e-14,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- 2.6645352591003757e-14}, /* L133 */
-{2.5000385761827415e+00, 3.7192471324942744e-14,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -1.6098233857064770e-14}, /* L134 */
-{1.5398385748858949e+00, 2.3078761124395442e-14,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- 4.2188474935755949e-15}, /* L135 */
-{1.6213485472008271e+00, 2.4480417692984702e-14,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- -1.4099832412739488e-14}, /* L136 */
-{1.6606095652016992e+00, 2.5257573810222311e-14,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- -2.5535129566378600e-15}, /* L137 */
-{2.1993092981781377e+00, 3.3695268797373501e-14,
- 2.2204460492503131e-16, -3.1863400806741993e-14,
- -3.9190872769268026e-14}, /* L138 */
-{1.5395921015916800e+00, 2.3758772726978350e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 1.5765166949677223e-14}, /* L139 */
-{1.8857433831773329e+00, 2.9309887850104133e-14,
- 2.2204460492503131e-16, -1.1135536936990320e-13,
- -1.1390888232654106e-13}, /* L140 */
-{2.3369154917792776e+00, 3.6581848661398908e-14,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- -1.6653345369377348e-14}, /* L141 */
-{1.8908742470565316e+00, 2.9809488211185453e-14,
- 2.2204460492503131e-16, -3.0864200084579352e-14,
- -1.4432899320127035e-15}, /* L142 */
-{1.7331998206035673e+00, 2.7516183775944114e-14,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- -1.0658141036401503e-14}, /* L143 */
-{1.6224208676686116e+00, 2.5937585412805220e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- -8.2156503822261584e-15}, /* L144 */
-{1.6918364502614904e+00, 2.7235158572835871e-14,
- 2.2204460492503131e-16, 2.6423307986078726e-14,
- -5.4400928206632670e-15}, /* L145 */
-{2.2748638688072607e+00, 3.6873282205363012e-14,
- 2.2204460492503131e-16, -6.3726801613483985e-14,
- 3.8191672047105385e-14}, /* L146 */
-{2.1462916211853633e+00, 3.5027536426923689e-14,
- 2.2204460492503131e-16, -7.6605388699135801e-14,
- -3.4416913763379853e-15}, /* L147 */
-{1.7635407253613340e+00, 2.8976820942716586e-14,
- 2.2204460492503131e-16, -1.7985612998927536e-14,
- -7.8825834748386114e-15}, /* L148 */
-{2.3406401434729895e+00, 3.8719027983802334e-14,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -1.9428902930940239e-14}, /* L149 */
-{2.3417027996908848e+00, 3.8996583739958623e-14,
- 2.2204460492503131e-16, 4.3742787170231168e-14,
- 5.2624571367232420e-14}, /* L150 */
-{1.7417487298967489e+00, 2.9198865547641617e-14,
- 2.2204460492503131e-16, 7.7493567118835927e-14,
- 3.3084646133829665e-14}, /* L151 */
-{2.7664900560127270e+00, 4.6684878185487833e-14,
- 2.2204460492503131e-16, 2.4868995751603507e-14,
- -3.1863400806741993e-14}, /* L152 */
-{1.9967628366631549e+00, 3.3917313402298532e-14,
- 2.2204460492503131e-16, -4.8072656966269278e-14,
- -7.4051875742497941e-14}, /* L153 */
-{2.2402943085272757e+00, 3.8302694349567901e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- 6.0840221749458578e-14}, /* L154 */
-{2.7161709434140162e+00, 4.6740389336719090e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -9.6589403142388619e-15}, /* L155 */
-{2.8109408093746824e+00, 4.8683279629813114e-14,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 5.7731597280508140e-15}, /* L156 */
-{1.6879241342378213e+00, 2.9420910152566648e-14,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- -1.2190248810384219e-13}, /* L157 */
-{2.8528921220613541e+00, 5.0043302834978931e-14,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 2.0206059048177849e-14}, /* L158 */
-{2.5660773310250273e+00, 4.5297099404706387e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- -2.3758772726978350e-14}, /* L159 */
-{2.8500439768483052e+00, 5.0626169922907138e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- 1.1102230246251565e-14}, /* L160 */
-{1.5815461427589852e+00, 2.8269053764518048e-14,
- 2.2204460492503131e-16, 5.6843418860808015e-14,
- -2.8754776337791554e-14}, /* L161 */
-{2.6142378691688761e+00, 4.7017945092875379e-14,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- -1.4210854715202004e-14}, /* L162 */
-{1.6848419484273971e+00, 3.0489499813768361e-14,
- 2.2204460492503131e-16, 5.3068660577082483e-14,
- -1.3211653993039363e-14}, /* L163 */
-{1.9664937580949646e+00, 3.5804692544161298e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 2.7089441800853820e-14}, /* L164 */
-{2.1576090499903495e+00, 3.9523939676655573e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -2.6645352591003757e-15}, /* L165 */
-{2.0422001863266468e+00, 3.7636560534792807e-14,
- 2.2204460492503131e-16, -1.3400391907225639e-13,
- -3.7447822620606530e-13}, /* L166 */
-{3.3237788315986325e+00, 6.1624316760600095e-14,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- -1.4654943925052066e-14}, /* L167 */
-{2.7329290744994323e+00, 5.0973114618102500e-14,
- 2.2204460492503131e-16, -3.3639757646142243e-14,
- 2.7533531010703882e-14}, /* L168 */
-{2.6265198177588531e+00, 4.9280024505549136e-14,
- 2.2204460492503131e-16, -5.7731597280508140e-15,
- -1.6542323066914832e-14}, /* L169 */
-{1.7176735629302331e+00, 3.2418512319054571e-14,
- 2.2204460492503131e-16, 2.4202861936828413e-14,
- 4.8849813083506888e-15}, /* L170 */
-{2.6403916190561416e+00, 5.0126569561825818e-14,
- 2.2204460492503131e-16, 3.2640556923979602e-14,
- -1.5987211554602254e-14}, /* L171 */
-{2.3953857985751013e+00, 4.5741188614556449e-14,
- 2.2204460492503131e-16, -7.3274719625260332e-15,
- -2.5535129566378600e-15}, /* L172 */
-{2.5722940263613392e+00, 4.9404924595819466e-14,
- 2.2204460492503131e-16, -1.9539925233402755e-14,
- -4.1411318818518339e-14}, /* L173 */
-{2.7162775449836061e+00, 5.2471915701346461e-14,
- 2.2204460492503131e-16, -1.0558220964185239e-13,
- 1.2900791546144319e-13}, /* L174 */
-{2.4114657809122568e+00, 4.6851411639181606e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -2.0650148258027912e-14}, /* L175 */
-{1.4034307461752793e+00, 2.7422508708241367e-14,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- -9.9920072216264089e-16}, /* L176 */
-{2.2288479509696200e+00, 4.3798298321462426e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- -1.0214051826551440e-14}, /* L177 */
-{1.7612631317595666e+00, 3.4805491821998658e-14,
- 2.2204460492503131e-16, 1.1191048088221578e-13,
- 5.2846615972157451e-14}, /* L178 */
-{3.0475330576706350e+00, 6.0562665993302289e-14,
- 2.2204460492503131e-16, -3.0198066269804258e-14,
- 3.8191672047105385e-14}, /* L179 */
-{2.2000339470403754e+00, 4.3964831775156199e-14,
- 2.2204460492503131e-16, 2.2426505097428162e-14,
- -7.4606987254810520e-14}, /* L180 */
-{2.2403660610873799e+00, 4.5019543648550098e-14,
- 2.2204460492503131e-16, -3.2640556923979602e-14,
- -2.7422508708241367e-14}, /* L181 */
-{2.7308113678303720e+00, 5.5178084323870280e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 8.2156503822261584e-15}, /* L182 */
-{2.1093221648229705e+00, 4.2854608750531042e-14,
- 2.2204460492503131e-16, 1.5099033134902129e-14,
- 2.8865798640254070e-15}, /* L183 */
-{2.5204193254450531e+00, 5.1486592766991635e-14,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- -9.7699626167013776e-15}, /* L184 */
-{2.3297656785590117e+00, 4.7850612361344247e-14,
- 2.2204460492503131e-16, -5.9952043329758453e-13,
- 2.9376501231581642e-13}, /* L185 */
-{2.1082314552371311e+00, 4.3534620353113951e-14,
- 2.2204460492503131e-16, 1.5210055437364645e-13,
- 1.1191048088221578e-13}, /* L186 */
-{2.2700885039348142e+00, 4.7128967395337895e-14,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 0.0000000000000000e+00}, /* L187 */
-{2.9468539812863672e+00, 6.1506355564233672e-14,
- 2.2204460492503131e-16, -1.2900791546144319e-13,
- -1.1846079672750420e-13}, /* L188 */
-{2.4960702609823349e+00, 5.2374771186691760e-14,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- 2.8865798640254070e-15}, /* L189 */
-{1.9237138938834508e+00, 4.0578651550049472e-14,
- 2.2204460492503131e-16, 8.5043083686286991e-14,
- -5.0626169922907138e-14}, /* L190 */
-{2.2225473834336413e+00, 4.7128967395337895e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -8.4376949871511897e-15}, /* L191 */
-{2.9115032585128202e+00, 6.2061467076546251e-14,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3766765505351941e-14}, /* L192 */
-{1.9268432031460110e+00, 4.1286418728248009e-14,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- -1.4654943925052066e-14}, /* L193 */
-{2.4639555451859811e+00, 5.3068660577082483e-14,
- 2.2204460492503131e-16, 6.7723604502134549e-14,
- 2.7977620220553945e-14}, /* L194 */
-{2.7333755099597874e+00, 5.9174887212520844e-14,
- 2.2204460492503131e-16, -5.3290705182007514e-15,
- -1.4321877017664519e-14}, /* L195 */
-{2.1275838495269195e+00, 4.6296300126869028e-14,
- 2.2204460492503131e-16, -1.4099832412739488e-14,
- -6.6613381477509392e-15}, /* L196 */
-{2.4987695210676093e+00, 5.4650728387173331e-14,
- 2.2204460492503131e-16, -4.3298697960381105e-14,
- 2.6645352591003757e-14}, /* L197 */
-{2.3396825664979284e+00, 5.1431081615760377e-14,
- 2.2204460492503131e-16, 1.1923795284474181e-13,
- -2.1982415887578100e-14}, /* L198 */
-{2.9535631621133547e+00, 6.5253358272343576e-14,
- 2.2204460492503131e-16, -2.4202861936828413e-14,
- 1.3988810110276972e-14}, /* L199 */
-{2.5925400035011350e+00, 5.7565063826814367e-14,
- 2.2204460492503131e-16, 5.0182080713057076e-14,
- 2.3536728122053319e-14}, /* L200 */
-{2.5497905876490119e+00, 5.6898930012039273e-14,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- -3.0753177782116836e-14}, /* L201 */
-{2.1733008612754912e+00, 4.8738790781044372e-14,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- 4.6407322429331543e-14}, /* L202 */
-{2.7451162494142820e+00, 6.1867178047236848e-14,
- 2.2204460492503131e-16, -7.2164496600635175e-15,
- -1.6653345369377348e-15}, /* L203 */
-{1.8701268957131361e+00, 4.2355008389449722e-14,
- 2.2204460492503131e-16, -1.8318679906315083e-14,
- -2.2204460492503131e-15}, /* L204 */
-{2.3561339166755602e+00, 5.3623772089395061e-14,
- 2.2204460492503131e-16, -4.9293902293356950e-14,
- 0.0000000000000000e+00}, /* L205 */
-{2.7791690968243570e+00, 6.3560268159790212e-14,
- 2.2204460492503131e-16, -4.9182879990894435e-14,
- 7.9936057773011271e-14}, /* L206 */
-{2.8472661562080477e+00, 6.5433769513845164e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -5.3290705182007514e-15}, /* L207 */
-{3.0605941006859960e+00, 7.0676103858247075e-14,
- 2.2204460492503131e-16, 3.5527136788005009e-14,
- -9.6589403142388619e-15}, /* L208 */
-{2.8337757832423236e+00, 6.5752958633424896e-14,
- 2.2204460492503131e-16, -6.1062266354383610e-15,
- 1.0591527654923993e-13}, /* L209 */
-{3.1726680026316560e+00, 7.3968609015651055e-14,
- 2.2204460492503131e-16, 2.9087843245179101e-14,
- 3.4638958368304884e-14}, /* L210 */
-{2.5450629676019498e+00, 5.9618976422370906e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- 2.7755575615628914e-14}, /* L211 */
-{3.2028796098642638e+00, 7.5384143372048129e-14,
- 2.2204460492503131e-16, -1.8207657603852567e-14,
- -1.0436096431476471e-14}, /* L212 */
-{2.8568515936281456e+00, 6.7557071048440775e-14,
- 2.2204460492503131e-16, -1.2656542480726785e-14,
- 1.9984014443252818e-15}, /* L213 */
-{2.4416264599166686e+00, 5.8009153036664429e-14,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- 4.9071857688431919e-14}, /* L214 */
-{4.4227426625623663e+00, 1.0556833185404457e-13,
- 2.2204460492503131e-16, 4.9960036108132044e-14,
- 4.4630965589931293e-14}, /* L215 */
-{2.4861494729814635e+00, 5.9618976422370906e-14,
- 2.2204460492503131e-16, 7.2830630415410269e-14,
- 2.8421709430404007e-14}, /* L216 */
-{2.4839092950429027e+00, 5.9841021027295938e-14,
- 2.2204460492503131e-16, 6.0995652972906100e-13,
- -1.8762769116165146e-13}, /* L217 */
-{2.5482044570076603e+00, 6.1672889017927446e-14,
- 2.2204460492503131e-16, 3.5305092183079978e-14,
- 5.8397731095283234e-14}, /* L218 */
-{3.8134150062731811e+00, 9.2717500344008386e-14,
- 2.2204460492503131e-16, -1.7097434579227411e-14,
- -3.4416913763379853e-15}, /* L219 */
-{2.6079947874268061e+00, 6.3699046037868357e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-14,
- 3.2862601528904634e-14}, /* L220 */
-{2.3903083762320509e+00, 5.8647531275823894e-14,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 1.0746958878371515e-13}, /* L221 */
-{2.8941888021574269e+00, 7.1331829332166308e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -8.8817841970012523e-16}, /* L222 */
-{2.3901714100543505e+00, 5.9174887212520844e-14,
- 2.2204460492503131e-16, 1.5321077739827160e-14,
- -2.2870594307278225e-14}, /* L223 */
-{2.5580751859802735e+00, 6.3615779311021470e-14,
- 2.2204460492503131e-16, 4.4564352208453784e-13,
- 8.4310336490034388e-13}, /* L224 */
-{3.0450469857904743e+00, 7.6064154974631037e-14,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- -5.5511151231257827e-16}, /* L225 */
-{1.9358705789024284e+00, 4.8572257327350599e-14,
- 2.2204460492503131e-16, 1.9095836023552692e-14,
- 1.0658141036401503e-14}, /* L226 */
-{3.2952050308098828e+00, 8.3044682241961709e-14,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- -3.9968028886505635e-15}, /* L227 */
-{3.1568469565036086e+00, 7.9908302197395642e-14,
- 2.2204460492503131e-16, -4.5408121707168903e-14,
- -5.6177285046032921e-14}, /* L228 */
-{2.8903284412108996e+00, 7.3482886442377549e-14,
- 2.2204460492503131e-16, 5.5313531532874549e-12,
- -1.7227330673108554e-12}, /* L229 */
-{2.8674355495507768e+00, 7.3219208474029074e-14,
- 2.2204460492503131e-16, 6.5725203057809267e-14,
- 9.0372154204487742e-14}, /* L230 */
-{2.4026344758116984e+00, 6.1617377866696188e-14,
- 2.2204460492503131e-16, -3.0642155479654321e-14,
- 5.7731597280508140e-15}, /* L231 */
-{3.9192415092997681e+00, 1.0094702851404236e-13,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- 7.7715611723760958e-15}, /* L232 */
-{4.2554304691588145e+00, 1.1007861289158427e-13,
- 2.2204460492503131e-16, -1.9650947535865271e-14,
- -1.9984014443252818e-15}, /* L233 */
-{3.5235586428418570e+00, 9.1537888380344157e-14,
- 2.2204460492503131e-16, 5.2846615972157451e-14,
- 5.9729998724833422e-14}, /* L234 */
-{2.3457808768011796e+00, 6.1201044232461754e-14,
- 2.2204460492503131e-16, -3.7747582837255322e-14,
- 3.3306690738754696e-15}, /* L235 */
-{3.2013205835692160e+00, 8.3877349510430577e-14,
- 2.2204460492503131e-16, -3.1086244689504383e-15,
- 1.3322676295501878e-15}, /* L236 */
-{4.5906562779430518e+00, 1.2078879563226508e-13,
- 2.2204460492503131e-16, 8.6597395920762210e-15,
- -6.5503158452884236e-15}, /* L237 */
-{3.5525758254827560e+00, 9.3869356732056985e-14,
- 2.2204460492503131e-16, -3.1974423109204508e-14,
- -2.2981616609740740e-14}, /* L238 */
-{3.5816452237860150e+00, 9.5035090907913400e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-14,
- 5.0182080713057076e-14}, /* L239 */
-{2.6500408907520634e+00, 7.0610184366159956e-14,
- 2.2204460492503131e-16, 4.1078251911130792e-14,
- 1.0391687510491465e-13}, /* L240 */
-{2.5113198705859112e+00, 6.7192779118485646e-14,
- 2.2204460492503131e-16, 9.1926466438962962e-14,
- -5.7620574978045624e-14}, /* L241 */
-{3.6785175041911242e+00, 9.8830665873350654e-14,
- 2.2204460492503131e-16, 4.9293902293356950e-14,
- -1.4876988529977098e-14}, /* L242 */
-{3.1574561276974009e+00, 8.5181861564365136e-14,
- 2.2204460492503131e-16, -5.9507954119908391e-14,
- -1.5876189252139739e-14}, /* L243 */
-{2.9887756257069844e+00, 8.0963014070789541e-14,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- 1.4432899320127035e-14}, /* L244 */
-{2.8531052485740913e+00, 7.7604589421298442e-14,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- -1.2323475573339238e-14}, /* L245 */
-{2.2170057536351799e+00, 6.0548788205494475e-14,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- -2.2204460492503131e-15}, /* L246 */
-{2.6600865923192338e+00, 7.2945122164824738e-14,
- 2.2204460492503131e-16, -1.7930101847696278e-13,
- -1.3855583347321954e-13}, /* L247 */
-{2.5060870566087834e+00, 6.9000360980453479e-14,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- 7.6383344094210770e-14}, /* L248 */
-{2.5221272704281597e+00, 6.9722005946459831e-14,
- 2.2204460492503131e-16, -3.3084646133829665e-14,
- -8.2489570729649131e-14}, /* L249 */
-{3.1930492695001358e+00, 8.8623552940703121e-14,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- 3.5749181392930041e-14}, /* L250 */
-{2.8914788791463395e+00, 8.0574436012170736e-14,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- 3.9745984281580604e-14}, /* L251 */
-{2.5119435217833539e+00, 7.0277117458772409e-14,
- 2.2204460492503131e-16, 4.3742787170231168e-14,
- -1.7319479184152442e-14}, /* L252 */
-{2.8597279207398425e+00, 8.0324635831630076e-14,
- 2.2204460492503131e-16, 2.7089441800853820e-14,
- 4.8405723873656825e-14}, /* L253 */
-{3.2441445461015506e+00, 9.1482377229112899e-14,
- 2.2204460492503131e-16, 2.9753977059954195e-14,
- 3.2418512319054571e-14}, /* L254 */
-{2.8645049842985966e+00, 8.1094853054963778e-14,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- -4.4408920985006262e-14}, /* L255 */
-{2.7207451067361865e+00, 7.7327033665142153e-14,
- 2.2204460492503131e-16, -2.0317081350640365e-14,
- 1.6431300764452317e-14}, /* L256 */
-{3.7607584184879199e+00, 1.0730305533002138e-13,
- 2.2204460492503131e-16, -2.7977620220553945e-14,
- -1.5742962489184720e-13}, /* L257 */
-{3.8808738362823956e+00, 1.1116108034059380e-13,
- 2.2204460492503131e-16, 5.6843418860808015e-14,
- -1.2978507157868080e-13}, /* L258 */
-{3.1670372851177433e+00, 9.1066043594878465e-14,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -1.9761969838327786e-14}, /* L259 */
-{3.7827506764234085e+00, 1.0919043447188415e-13,
- 2.2204460492503131e-16, 5.4622972811557702e-14,
- -3.1974423109204508e-14}, /* L260 */
-{3.4962225299088572e+00, 1.0130785099704553e-13,
- 2.2204460492503131e-16, -1.3355982986240633e-13,
- -1.6397994073713562e-13}, /* L261 */
-{3.0611159360271007e+00, 8.9039886574937555e-14,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 1.8207657603852567e-13}, /* L262 */
-{2.8508044448560725e+00, 8.3238971271271112e-14,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- -6.1839422471621219e-14}, /* L263 */
-{3.2706174645020170e+00, 9.5859951920740372e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- -3.3861802251067274e-14}, /* L264 */
-{2.6170215133308679e+00, 7.6993966757754606e-14,
- 2.2204460492503131e-16, -3.0964120156795616e-13,
- -2.0250467969162855e-13}, /* L265 */
-{2.5906179813629642e+00, 7.6504774737529146e-14,
- 2.2204460492503131e-16, -1.5543122344752192e-14,
- 4.9293902293356950e-14}, /* L266 */
-{5.8249962480952080e+00, 1.7266743590482747e-13,
- 2.2204460492503131e-16, -4.4353409833775004e-13,
- -1.4888090760223349e-13}, /* L267 */
-{2.6926721455785732e+00, 8.0116469014512859e-14,
- 2.2204460492503131e-16, -7.8159700933611020e-14,
- 3.3750779948604759e-14}, /* L268 */
-{3.3824871368058389e+00, 1.0101641745308143e-13,
- 2.2204460492503131e-16, -1.0191847366058937e-13,
- 5.0182080713057076e-14}, /* L269 */
-{2.2833685662447825e+00, 6.8445249468140901e-14,
- 2.2204460492503131e-16, -3.8946623703850491e-13,
- -1.4910295220715852e-13}, /* L270 */
-{2.2103662097905352e+00, 6.6502359175046877e-14,
- 2.2204460492503131e-16, 8.4598994476436928e-14,
- 1.2412293415309250e-13}, /* L271 */
-{2.6186065821853743e+00, 7.9075634928926775e-14,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- 3.7747582837255322e-15}, /* L272 */
-{2.4542503238713063e+00, 7.4384942649885488e-14,
- 2.2204460492503131e-16, -9.4924068605450884e-14,
- -1.0469403122215226e-13}, /* L273 */
-{3.2354513836287095e+00, 9.8421271133020127e-14,
- 2.2204460492503131e-16, -2.2759572004815709e-14,
- -1.7430501486614958e-14}, /* L274 */
-{3.2136575420364628e+00, 9.8115092439510221e-14,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- -5.8841820305133297e-15}, /* L275 */
-{3.2536733933506663e+00, 9.9698027611339057e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -1.4099832412739488e-14}, /* L276 */
-{3.1895799018851725e+00, 9.8088204225632580e-14,
- 2.2204460492503131e-16, 3.5971225997855072e-13,
- -3.2263081095607049e-13}, /* L277 */
-{3.5477166125962523e+00, 1.0949574580365606e-13,
- 2.2204460492503131e-16, -3.4039437935007300e-13,
- 1.0265122085684197e-12}, /* L278 */
-{4.3564740314537795e+00, 1.3494066974928387e-13,
- 2.2204460492503131e-16, -3.2418512319054571e-14,
- 1.3988810110276972e-14}, /* L279 */
-{3.6875568998660633e+00, 1.1463052729254741e-13,
- 2.2204460492503131e-16, 6.9722005946459831e-14,
- -2.7755575615628914e-15}, /* L280 */
-{3.5147339484728506e+00, 1.0964840146954202e-13,
- 2.2204460492503131e-16, 1.0613732115416497e-13,
- 1.3322676295501878e-15}, /* L281 */
-{4.3883655858524380e+00, 1.3739009929736312e-13,
- 2.2204460492503131e-16, -8.0824236192711396e-14,
- -1.8429702208777599e-14}, /* L282 */
-{4.0707341904710796e+00, 1.2789769243681803e-13,
- 2.2204460492503131e-16, -4.9182879990894435e-14,
- -2.4413804311507192e-13}, /* L283 */
-{3.7051628053354300e+00, 1.1682321776618210e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-14,
- 2.5535129566378600e-14}, /* L284 */
-{3.1877684862623261e+00, 1.0086376178719547e-13,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- 5.7731597280508140e-15}, /* L285 */
-{3.6346714684501324e+00, 1.1540768340978502e-13,
- 2.2204460492503131e-16, 5.0848214527832170e-14,
- -3.0975222387041867e-14}, /* L286 */
-{2.6707729179707180e+00, 8.5098594837518249e-14,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- -1.0325074129013956e-14}, /* L287 */
-{4.1233275127946856e+00, 1.3183898417423734e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- -2.7400304247748863e-13}, /* L288 */
-{3.6064570325621870e+00, 1.1571299474155694e-13,
- 2.2204460492503131e-16, -2.4202861936828413e-14,
- 1.2878587085651816e-14}, /* L289 */
-{3.5448822845727679e+00, 1.1413092693146609e-13,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- -1.2212453270876722e-15}, /* L290 */
-{3.0275381245592397e+00, 9.7810648469476291e-14,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -1.4876988529977098e-14}, /* L291 */
-{3.5976582524381846e+00, 1.1662892873687269e-13,
- 2.2204460492503131e-16, -1.6542323066914832e-14,
- 1.3322676295501878e-15}, /* L292 */
-{2.7858791642431306e+00, 9.0621954385028403e-14,
- 2.2204460492503131e-16, 1.7497114868092467e-13,
- 4.2854608750531042e-14}, /* L293 */
-{3.1195209240556259e+00, 1.0182132914593467e-13,
- 2.2204460492503131e-16, 8.1934459217336553e-14,
- -2.4835689060864752e-13}, /* L294 */
-{5.1729611759191441e+00, 1.6942003355779889e-13,
- 2.2204460492503131e-16, -3.3151259515307174e-13,
- -1.0313971898767704e-12}, /* L295 */
-{5.3835290150621287e+00, 1.7691403897401869e-13,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- 1.0813572259849025e-13}, /* L296 */
-{3.9007335899089166e+00, 1.2861933740282439e-13,
- 2.2204460492503131e-16, -2.3647750424515834e-14,
- -3.4861002973229915e-14}, /* L297 */
-{4.3859737168693895e+00, 1.4510614931850796e-13,
- 2.2204460492503131e-16, -1.2012613126444194e-13,
- -4.5630166312093934e-13}, /* L298 */
-{3.3896844106500881e+00, 1.1252110354575962e-13,
- 2.2204460492503131e-16, -5.9952043329758453e-14,
- -5.7731597280508140e-15}, /* L299 */
-{2.9025447869474017e+00, 9.6672669869235506e-14,
- 2.2204460492503131e-16, 7.4384942649885488e-14,
- -1.0147438445073931e-13}, /* L300 */
-{3.3372607970429344e+00, 1.1152190282359697e-13,
- 2.2204460492503131e-16, 1.9428902930940239e-13,
- 5.7509552675583109e-14}, /* L301 */
-{3.1887909256451046e+00, 1.0691447727140257e-13,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- -1.8651746813702630e-13}, /* L302 */
-{3.3531870539951516e+00, 1.1279865930191590e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-14,
- -8.6597395920762210e-15}, /* L303 */
-{4.2813160617126753e+00, 1.4449552665496412e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -3.2529534621517087e-14}, /* L304 */
-{3.3451335834102105e+00, 1.1327050408738160e-13,
- 2.2204460492503131e-16, -8.9150908877400070e-14,
- -2.2204460492503131e-16}, /* L305 */
-{3.8848638659273544e+00, 1.3197776205231548e-13,
- 2.2204460492503131e-16, -3.1108449149996886e-13,
- -5.4856119646728985e-13}, /* L306 */
-{2.6691169179990255e+00, 9.0972368527175718e-14,
- 2.2204460492503131e-16, -1.3344880755994382e-13,
- 3.9968028886505635e-15}, /* L307 */
-{4.3377292698439458e+00, 1.4832579608992091e-13,
- 2.2204460492503131e-16, 4.6407322429331543e-14,
- 4.1522341120980855e-14}, /* L308 */
-{3.5518347409189106e+00, 1.2184697695261093e-13,
- 2.2204460492503131e-16, -4.4297898682543746e-14,
- 9.9031893796563963e-14}, /* L309 */
-{3.0712167444340124e+00, 1.0570017083821881e-13,
- 2.2204460492503131e-16, -3.3639757646142243e-14,
- 7.2386541205560206e-14}, /* L310 */
-{3.2223166021308756e+00, 1.1125822485524850e-13,
- 2.2204460492503131e-16, -4.2299497238218464e-14,
- -1.4988010832439613e-14}, /* L311 */
-{3.9551892346257413e+00, 1.3700152123874432e-13,
- 2.2204460492503131e-16, 2.6201263381153694e-13,
- 1.0880185641326534e-14}, /* L312 */
-{3.6917502553068777e+00, 1.2828627049543684e-13,
- 2.2204460492503131e-16, -2.6512125828048738e-13,
- -2.4313884239290928e-14}, /* L313 */
-{3.9761760030069935e+00, 1.3861134462445079e-13,
- 2.2204460492503131e-16, 5.1403326040144748e-13,
- 4.5519144009631418e-13}, /* L314 */
-{3.6143414844234494e+00, 1.2639889135357407e-13,
- 2.2204460492503131e-16, -1.0325074129013956e-13,
- -6.4948046940571658e-14}, /* L315 */
-{4.3006992721927020e+00, 1.5087930904655877e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- -3.6526337510167650e-14}, /* L316 */
-{5.8159414763587467e+00, 2.0468349237745542e-13,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -3.7747582837255322e-15}, /* L317 */
-{3.0008324670714925e+00, 1.0594303212485556e-13,
- 2.2204460492503131e-16, -7.0166095156309893e-14,
- 1.3455903058456897e-13}, /* L318 */
-{2.8785710627958823e+00, 1.0194622923620500e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- 1.2878587085651816e-14}, /* L319 */
-{3.2250497632746860e+00, 1.1457501614131615e-13,
- 2.2204460492503131e-16, 9.5479180117763462e-15,
- -1.4666046155298318e-13}, /* L320 */
-{3.7648556003939584e+00, 1.3417045252595017e-13,
- 2.2204460492503131e-16, 2.3869795029440866e-13,
- -1.0158540675320182e-13}, /* L321 */
-{3.2547086060102535e+00, 1.1635137298071641e-13,
- 2.2204460492503131e-16, 1.4299672557172016e-13,
- 1.6764367671839864e-13}, /* L322 */
-{3.9319492157903029e+00, 1.4099832412739488e-13,
- 2.2204460492503131e-16, -6.2616578588858829e-14,
- 4.4408920985006262e-14}, /* L323 */
-{3.4213490885138094e+00, 1.2306822227969860e-13,
- 2.2204460492503131e-16, -2.2026824808563106e-13,
- -5.7953641885433171e-14}, /* L324 */
-{3.8800598702348243e+00, 1.3999912340523224e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-14,
- 1.7763568394002505e-14}, /* L325 */
-{3.5284286776115139e+00, 1.2770340340750863e-13,
- 2.2204460492503131e-16, 1.1612932837579137e-13,
- -8.2489570729649131e-14}, /* L326 */
-{3.6881303032120392e+00, 1.3389289676979388e-13,
- 2.2204460492503131e-16, 5.4845017416482733e-14,
- -7.7715611723760958e-15}, /* L327 */
-{3.5351155232587361e+00, 1.2873035970528690e-13,
- 2.2204460492503131e-16, 1.2478906796786760e-12,
- 3.9326319978272295e-12}, /* L328 */
-{2.8777039781164233e+00, 1.0511036485638670e-13,
- 2.2204460492503131e-16, -5.9952043329758453e-15,
- -1.3544720900426910e-14}, /* L329 */
-{4.5197667107578692e+00, 1.6558976412284210e-13,
- 2.2204460492503131e-16, -3.0175861809311755e-13,
- -1.2501111257279263e-13}, /* L330 */
-{3.3852486098030687e+00, 1.2440048990924879e-13,
- 2.2204460492503131e-16, -3.7414515929867775e-14,
- 8.4598994476436928e-14}, /* L331 */
-{3.8042755683354343e+00, 1.4022116801015727e-13,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- 2.2204460492503131e-15}, /* L332 */
-{4.3829505128390043e+00, 1.6203705044404160e-13,
- 2.2204460492503131e-16, -2.5091040356528538e-14,
- 5.1070259132757201e-14}, /* L333 */
-{4.3069526848344557e+00, 1.5970558209232877e-13,
- 2.2204460492503131e-16, 2.3203661214665772e-13,
- 5.1958437552457326e-14}, /* L334 */
-{4.2030499286742833e+00, 1.5631940186722204e-13,
- 2.2204460492503131e-16, -8.9261931179862586e-14,
- -3.1419311596891930e-14}, /* L335 */
-{3.6771400724681458e+00, 1.3716805469243809e-13,
- 2.2204460492503131e-16, -1.1435297153639112e-14,
- 4.9737991503207013e-14}, /* L336 */
-{4.1647526904084220e+00, 1.5581980150614072e-13,
- 2.2204460492503131e-16, 1.6253665080512292e-13,
- -3.6315395135488870e-13}, /* L337 */
-{3.7781648068462266e+00, 1.4177548024463249e-13,
- 2.2204460492503131e-16, 9.3924867883288243e-14,
- 4.6629367034256575e-15}, /* L338 */
-{3.0391324402502353e+00, 1.1438072711200675e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-15,
- -1.7985612998927536e-14}, /* L339 */
-{4.9802239048458459e+00, 1.8798851364465463e-13,
- 2.2204460492503131e-16, -1.1057821325266559e-13,
- -2.4436008771999695e-13}, /* L340 */
-{3.8930219470754066e+00, 1.4738210651898953e-13,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -3.1974423109204508e-14}, /* L341 */
-{3.8216963965729072e+00, 1.4510614931850796e-13,
- 2.2204460492503131e-16, 9.7921670771938807e-14,
- -4.5075054799781356e-14}, /* L342 */
-{5.3076620733996709e+00, 2.0211610163300975e-13,
- 2.2204460492503131e-16, -7.3940853440035426e-14,
- 1.6653345369377348e-14}, /* L343 */
-{2.7671211857014253e+00, 1.0567935415650709e-13,
- 2.2204460492503131e-16, -1.8285373215576328e-13,
- 5.1958437552457326e-14}, /* L344 */
-{4.2058619988873129e+00, 1.6109336087311021e-13,
- 2.2204460492503131e-16, -4.6629367034256575e-14,
- 3.0864200084579352e-14}, /* L345 */
-{3.9379220347361077e+00, 1.5126788710517758e-13,
- 2.2204460492503131e-16, -1.6908696665041134e-13,
- -2.7444713168733870e-13}, /* L346 */
-{5.9366910281679779e+00, 2.2870594307278225e-13,
- 2.2204460492503131e-16, -6.4392935428259079e-14,
- -2.3536728122053319e-14}, /* L347 */
-{3.3132695153300977e+00, 1.2800871473928055e-13,
- 2.2204460492503131e-16, -2.6201263381153694e-14,
- 1.3145040611561853e-13}, /* L348 */
-{3.4212562291828386e+00, 1.3256062914024369e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -3.8635761256955448e-14}, /* L349 */
-{5.2065089090833165e+00, 2.0231039066231915e-13,
- 2.2204460492503131e-16, 1.2034817586936697e-13,
- 6.1950444774083735e-14}, /* L350 */
-{2.9765416552327459e+00, 1.1599055049771323e-13,
- 2.2204460492503131e-16, -2.2981616609740740e-14,
- 1.6875389974302379e-14}, /* L351 */
-{3.5932727745873558e+00, 1.4042239593337058e-13,
- 2.2204460492503131e-16, 9.1482377229112899e-14,
- -1.3988810110276972e-14}, /* L352 */
-{4.5524781778165400e+00, 1.7841284005726266e-13,
- 2.2204460492503131e-16, 3.2196467714129540e-13,
- 3.3395508580724709e-13}, /* L353 */
-{4.1342445833252768e+00, 1.6248113965389166e-13,
- 2.2204460492503131e-16, -9.4368957093138306e-15,
- -9.0705221111875289e-14}, /* L354 */
-{4.7731370309072787e+00, 1.8812035262882887e-13,
- 2.2204460492503131e-16, -7.1720407390785113e-14,
- 1.0635936575909000e-13}, /* L355 */
-{4.9031655446329401e+00, 1.9378942894832107e-13,
- 2.2204460492503131e-16, -2.8210767055725228e-13,
- -7.0055072853847378e-14}, /* L356 */
-{4.2140005972484147e+00, 1.6701917626704699e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- 8.8373752760162461e-14}, /* L357 */
-{4.1215719767121310e+00, 1.6381340728344185e-13,
- 2.2204460492503131e-16, -1.6098233857064770e-14,
- -3.7636560534792807e-14}, /* L358 */
-{4.4260780447274364e+00, 1.7640749971903347e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- 5.1736392947532295e-14}, /* L359 */
-{4.6955585646829707e+00, 1.8766932452507490e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- 2.4424906541753444e-15}, /* L360 */
-{3.5526863977329985e+00, 1.4238610290817633e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 4.1966430330830917e-14}, /* L361 */
-{4.5484127245129873e+00, 1.8279822100453202e-13,
- 2.2204460492503131e-16, -4.7184478546569153e-14,
- 1.3278267374516872e-13}, /* L362 */
-{3.2466065697306190e+00, 1.3083978345207470e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- 3.5971225997855072e-14}, /* L363 */
-{4.2047352097190291e+00, 1.6991963391888021e-13,
- 2.2204460492503131e-16, -1.8496315590255108e-13,
- 2.5779378631796135e-13}, /* L364 */
-{4.4096570831400408e+00, 1.7869039581341895e-13,
- 2.2204460492503131e-16, -5.2069459854919842e-14,
- 4.6851411639181606e-14}, /* L365 */
-{4.7510979007207039e+00, 1.9305390619450691e-13,
- 2.2204460492503131e-16, 3.8635761256955448e-14,
- 1.2878587085651816e-14}, /* L366 */
-{3.1594492960040350e+00, 1.2873035970528690e-13,
- 2.2204460492503131e-16, -4.9182879990894435e-14,
- -6.5503158452884236e-15}, /* L367 */
-{4.8764339401719567e+00, 1.9922952176898434e-13,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -1.5498713423767185e-13}, /* L368 */
-{3.8767535861557803e+00, 1.5881740367262864e-13,
- 2.2204460492503131e-16, 4.2854608750531042e-14,
- 1.3655743202889425e-13}, /* L369 */
-{4.5696651055999267e+00, 1.8771095788849834e-13,
- 2.2204460492503131e-16, 9.5479180117763462e-15,
- -4.1300296516055823e-14}, /* L370 */
-{3.5674404911885138e+00, 1.4693801730913947e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -4.3187675657918589e-14}, /* L371 */
-{4.2997975296816264e+00, 1.7758017278879379e-13,
- 2.2204460492503131e-16, 6.4392935428259079e-14,
- 2.7311486405778851e-14}, /* L372 */
-{4.7990016636626445e+00, 1.9872992140790302e-13,
- 2.2204460492503131e-16, -1.0580425424677742e-13,
- -8.8928864272475039e-14}, /* L373 */
-{4.6444566917885624e+00, 1.9284573937738969e-13,
- 2.2204460492503131e-16, 8.0957462955666415e-13,
- 6.7545968818194524e-13}, /* L374 */
-{3.8220589752674363e+00, 1.5912271500440056e-13,
- 2.2204460492503131e-16, 1.1746159600534156e-13,
- -2.3325785747374539e-13}, /* L375 */
-{4.2753319268191543e+00, 1.7846835120849391e-13,
- 2.2204460492503131e-16, 9.6389562997956091e-13,
- -1.0214051826551440e-14}, /* L376 */
-{5.3568465831259235e+00, 2.2420953982305036e-13,
- 2.2204460492503131e-16, -1.3855583347321954e-13,
- -6.1062266354383610e-14}, /* L377 */
-{3.6343153375984625e+00, 1.5251688800788088e-13,
- 2.2204460492503131e-16, 5.5067062021407764e-14,
- -1.3877787807814457e-14}, /* L378 */
-{4.3391170855221022e+00, 1.8257617639960699e-13,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- -3.4083846855992306e-14}, /* L379 */
-{4.2921714923722050e+00, 1.8107737531636303e-13,
- 2.2204460492503131e-16, 1.4233059175694507e-13,
- 6.1062266354383610e-14}, /* L380 */
-{3.5486111863499232e+00, 1.5010215292932116e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- 8.4376949871511897e-15}, /* L381 */
-{4.5550328660251171e+00, 1.9317880628477724e-13,
- 2.2204460492503131e-16, -3.9590553058133082e-13,
- 8.3200113465409231e-13}, /* L382 */
-{3.7183902357219427e+00, 1.5810963649443011e-13,
- 2.2204460492503131e-16, -1.1812772982011666e-13,
- -5.5400128928795311e-14}, /* L383 */
-{3.8444508748800157e+00, 1.6389667401028873e-13,
- 2.2204460492503131e-16, -3.7259084706420253e-13,
- -1.8318679906315083e-14}, /* L384 */
-{3.8380367630598453e+00, 1.6404932967617469e-13,
- 2.2204460492503131e-16, -1.7430501486614958e-14,
- -2.4535928844215960e-14}, /* L385 */
-{5.2785658320762581e+00, 2.2620794126737565e-13,
- 2.2204460492503131e-16, -1.4288570326925765e-13,
- -1.4166445794216997e-13}, /* L386 */
-{3.8478373448117633e+00, 1.6532261670754167e-13,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- 2.1094237467877974e-14}, /* L387 */
-{4.8144953969862456e+00, 2.0738966099997924e-13,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- 1.2212453270876722e-13}, /* L388 */
-{3.5022947553853920e+00, 1.5125400931736976e-13,
- 2.2204460492503131e-16, 8.6597395920762210e-15,
- 1.3544720900426910e-14}, /* L389 */
-{5.5962263865396231e+00, 2.4230617512444041e-13,
- 2.2204460492503131e-16, -1.6142642778049776e-13,
- -7.7715611723760958e-15}, /* L390 */
-{3.6164151637755944e+00, 1.5698553568199713e-13,
- 2.2204460492503131e-16, 2.5757174171303632e-14,
- -6.9944050551384862e-15}, /* L391 */
-{4.8316952833072477e+00, 2.1027624086400465e-13,
- 2.2204460492503131e-16, -3.7303493627405260e-14,
- 2.2892798767770728e-13}, /* L392 */
-{5.0082551224439991e+00, 2.1851617737489448e-13,
- 2.2204460492503131e-16, 5.1292303737682232e-14,
- -9.6589403142388619e-15}, /* L393 */
-{3.5872926927273814e+00, 1.5691614674295806e-13,
- 2.2204460492503131e-16, -4.8960835385969403e-14,
- 3.7969627442180354e-14}, /* L394 */
-{5.9165323885067727e+00, 2.5945912085489908e-13,
- 2.2204460492503131e-16, 3.4572344986827375e-13,
- -2.3347990207867042e-13}, /* L395 */
-{4.2617345351265623e+00, 1.8736401319330298e-13,
- 2.2204460492503131e-16, -5.1081361363003452e-13,
- 2.7466917629226373e-13}, /* L396 */
-{5.3294141700270670e+00, 2.3489543643506750e-13,
- 2.2204460492503131e-16, -3.4083846855992306e-14,
- -8.3599793754274287e-14}, /* L397 */
-{7.2538628715124780e+00, 3.2052138720928269e-13,
- 2.2204460492503131e-16, 4.6407322429331543e-14,
- -7.4051875742497941e-14}, /* L398 */
-{4.8697373088046314e+00, 2.1571633368466792e-13,
- 2.2204460492503131e-16, 1.5920598173124745e-13,
- 4.4808601273871318e-13}, /* L399 */
-{6.2532060564024077e+00, 2.7769453403436728e-13,
- 2.2204460492503131e-16, 2.6867397195928788e-14,
- 6.5281113847959205e-14}, /* L400 */
-{4.9570467987418789e+00, 2.2068458171986549e-13,
- 2.2204460492503131e-16, 5.0404125317982107e-14,
- 8.6597395920762210e-15}, /* L401 */
-{4.8769288882241622e+00, 2.1765922397776194e-13,
- 2.2204460492503131e-16, -7.4829031859735551e-14,
- 3.2196467714129540e-14}, /* L402 */
-{5.1799501531278391e+00, 2.3175905639050143e-13,
- 2.2204460492503131e-16, 6.2838623193783860e-14,
- -5.9841021027295938e-14}, /* L403 */
-{4.0079280809175541e+00, 1.7976592436852457e-13,
- 2.2204460492503131e-16, 6.8167693711984612e-14,
- 2.4424906541753444e-14}, /* L404 */
-{4.8676390223386559e+00, 2.1886659151704180e-13,
- 2.2204460492503131e-16, 7.3496764230185363e-14,
- -9.9920072216264089e-14}, /* L405 */
-{4.3547213402603528e+00, 1.9628743075372768e-13,
- 2.2204460492503131e-16, -1.8207657603852567e-14,
- -4.2743586448068527e-14}, /* L406 */
-{4.8606114732788530e+00, 2.1962986984647159e-13,
- 2.2204460492503131e-16, -8.0047080075473787e-14,
- -4.7850612361344247e-14}, /* L407 */
-{5.6838777448119782e+00, 2.5746071941057380e-13,
- 2.2204460492503131e-16, 3.5083047578154947e-14,
- -1.6986412276764895e-14}, /* L408 */
-{5.3570193128331649e+00, 2.4324986469537180e-13,
- 2.2204460492503131e-16, -1.8374191057546341e-13,
- -2.2815083156046967e-13}, /* L409 */
-{7.2329958208416905e+00, 3.2923663795259017e-13,
- 2.2204460492503131e-16, -4.3731684939984916e-13,
- 2.0117241206207837e-13}, /* L410 */
-{5.1703656189897487e+00, 2.3592239273284576e-13,
- 2.2204460492503131e-16, 4.6407322429331543e-14,
- -4.1855408028368402e-14}, /* L411 */
-{4.0898448360353727e+00, 1.8707257964933888e-13,
- 2.2204460492503131e-16, 3.4416913763379853e-14,
- -1.3544720900426910e-14}, /* L412 */
-{4.6530407508488336e+00, 2.1335017086343555e-13,
- 2.2204460492503131e-16, -1.8174350913113813e-13,
- -3.2196467714129540e-15}, /* L413 */
-{4.2826495454992353e+00, 1.9684254226604025e-13,
- 2.2204460492503131e-16, 2.2160051571518125e-13,
- 7.9269923958236177e-14}, /* L414 */
-{5.1771578158090694e+00, 2.3853141684071488e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- 4.7073456244106637e-14}, /* L415 */
-{5.4440122639913726e+00, 2.5143082060807842e-13,
- 2.2204460492503131e-16, -1.5509815654013437e-13,
- 1.6653345369377348e-14}, /* L416 */
-{4.9484884479252935e+00, 2.2909452113140105e-13,
- 2.2204460492503131e-16, 1.0791367799356522e-13,
- -1.6797674362578618e-13}, /* L417 */
-{3.4904639156274548e+00, 1.6198153929281034e-13,
- 2.2204460492503131e-16, 6.9322325657594774e-13,
- 8.8595797365087492e-14}, /* L418 */
-{5.0430075296972561e+00, 2.3459012510329558e-13,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- 1.3544720900426910e-13}, /* L419 */
-{4.0036096168134971e+00, 1.8668400159072007e-13,
- 2.2204460492503131e-16, -8.6486373618299694e-14,
- -1.8873791418627661e-15}, /* L420 */
-{4.9561042806922977e+00, 2.3164803408803891e-13,
- 2.2204460492503131e-16, 1.2501111257279263e-13,
- 1.0058620603103918e-13}, /* L421 */
-{4.2864745356240945e+00, 2.0082546736688300e-13,
- 2.2204460492503131e-16, 9.3702823278363212e-14,
- -9.7255536957163713e-14}, /* L422 */
-{4.4415317270434684e+00, 2.0858315075145129e-13,
- 2.2204460492503131e-16, -1.3855583347321954e-13,
- -1.1102230246251565e-15}, /* L423 */
-{5.9735239593058012e+00, 2.8119173656193652e-13,
- 2.2204460492503131e-16, -4.9549253589020736e-13,
- -8.6153306710912148e-14}, /* L424 */
-{5.0671071558920184e+00, 2.3908652835302746e-13,
- 2.2204460492503131e-16, 1.9451107391432743e-13,
- -1.5476508963274682e-13}, /* L425 */
-{4.8028627132886443e+00, 2.2715163083830703e-13,
- 2.2204460492503131e-16, 5.2624571367232420e-14,
- 1.1324274851176597e-14}, /* L426 */
-{5.2769824185572372e+00, 2.5016100302366340e-13,
- 2.2204460492503131e-16, 7.9936057773011271e-14,
- -1.1679546219056647e-13}, /* L427 */
-{4.7091570676050845e+00, 2.2376545061320030e-13,
- 2.2204460492503131e-16, -3.5194069880617462e-14,
- -1.0624834345662748e-13}, /* L428 */
-{5.2284881001237302e+00, 2.4902302442342261e-13,
- 2.2204460492503131e-16, -9.9142916099026479e-14,
- -6.6502359175046877e-14}, /* L429 */
-{4.8389996449424766e+00, 2.3100965584887945e-13,
- 2.2204460492503131e-16, 5.2624571367232420e-14,
- 1.0658141036401503e-14}, /* L430 */
-{4.4553789243286417e+00, 2.1319057630364568e-13,
- 2.2204460492503131e-16, -5.6799009939823009e-13,
- -5.9108273831043334e-13}, /* L431 */
-{5.3854680356995637e+00, 2.5829338667904267e-13,
- 2.2204460492503131e-16, -2.4868995751603507e-14,
- -2.7200464103316335e-14}, /* L432 */
-{4.1155126967259479e+00, 1.9784174298820290e-13,
- 2.2204460492503131e-16, 3.7103653482972732e-13,
- -2.0683454948766666e-13}, /* L433 */
-{4.4893861397702564e+00, 2.1631307856040394e-13,
- 2.2204460492503131e-16, -3.1974423109204508e-14,
- 1.9628743075372768e-13}, /* L434 */
-{4.5333765747325883e+00, 2.1893598045608087e-13,
- 2.2204460492503131e-16, -1.0125233984581428e-13,
- -2.6312285683616210e-14}, /* L435 */
-{4.2918987362346472e+00, 2.0775048348298242e-13,
- 2.2204460492503131e-16, -9.7710728397260027e-13,
- -6.5392136150421720e-14}, /* L436 */
-{4.4027879912091272e+00, 2.1360690993788012e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-14,
- 6.1506355564233672e-14}, /* L437 */
-{3.8710414899566814e+00, 1.8823831382519529e-13,
- 2.2204460492503131e-16, -2.6445512446571229e-13,
- -6.5725203057809267e-14}, /* L438 */
-{7.3383387891097751e+00, 3.5765834738299418e-13,
- 2.2204460492503131e-16, 4.0190073491430667e-14,
- 2.1982415887578100e-14}, /* L439 */
-{3.8659459660503703e+00, 1.8884893648873913e-13,
- 2.2204460492503131e-16, -2.5857094243519896e-13,
- 1.9984014443252818e-14}, /* L440 */
-{6.5703574556261168e+00, 3.2168712138513911e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-14,
- 4.9071857688431919e-14}, /* L441 */
-{5.6550313158160543e+00, 2.7750024500505788e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- -2.4091839634365897e-14}, /* L442 */
-{5.5113392513659898e+00, 2.7106095146223197e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- 1.0436096431476471e-14}, /* L443 */
-{5.0698681785166508e+00, 2.4991120284312274e-13,
- 2.2204460492503131e-16, -5.7509552675583109e-14,
- -1.5332179970073412e-13}, /* L444 */
-{4.2882431503965668e+00, 2.1185830867409550e-13,
- 2.2204460492503131e-16, -1.7985612998927536e-14,
- -2.7533531010703882e-14}, /* L445 */
-{5.9227022333271941e+00, 2.9326541195473510e-13,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- -5.9729998724833422e-14}, /* L446 */
-{6.0805949122189862e+00, 3.0175861809311755e-13,
- 2.2204460492503131e-16, 3.7725378376762819e-13,
- -2.6045832157706172e-13}, /* L447 */
-{5.2065228764595242e+00, 2.5895952049381776e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 3.3306690738754696e-15}, /* L448 */
-{4.6949222878632826e+00, 2.3403501359098300e-13,
- 2.2204460492503131e-16, -8.6264329013374663e-14,
- -9.0816243414337805e-14}, /* L449 */
-{6.3033934579555710e+00, 3.1491476093492565e-13,
- 2.2204460492503131e-16, -6.8722805224297190e-14,
- -2.0983215165415459e-14}, /* L450 */
-{3.2539113033536071e+00, 1.6292522886374172e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- -2.0183854587685346e-13}, /* L451 */
-{5.2721741821903612e+00, 2.6456614676817480e-13,
- 2.2204460492503131e-16, -4.2854608750531042e-14,
- -1.5432100042289676e-14}, /* L452 */
-{3.9801704149971235e+00, 2.0017321133991572e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- 1.9984014443252818e-15}, /* L453 */
-{6.2291343061725390e+00, 3.1397107136399427e-13,
- 2.2204460492503131e-16, 5.5067062021407764e-14,
- -7.1720407390785113e-14}, /* L454 */
-{4.9648825221323136e+00, 2.5079938126282286e-13,
- 2.2204460492503131e-16, -3.0309088572266774e-14,
- -8.9928064994637680e-15}, /* L455 */
-{4.4496038458459894e+00, 2.2526425169644426e-13,
- 2.2204460492503131e-16, -1.3988810110276972e-14,
- -9.6589403142388619e-15}, /* L456 */
-{4.2462111806216534e+00, 2.1543877792851163e-13,
- 2.2204460492503131e-16, -7.8714812445923599e-14,
- 1.0236256287043943e-13}, /* L457 */
-{5.6889188923004630e+00, 2.8926860906608454e-13,
- 2.2204460492503131e-16, -1.6331380692236053e-13,
- -2.9953817204386723e-13}, /* L458 */
-{5.9472244833124854e+00, 3.0306313014705211e-13,
- 2.2204460492503131e-16, 3.7081449022480228e-14,
- 5.3290705182007514e-14}, /* L459 */
-{5.5736265333213817e+00, 2.8464383627913037e-13,
- 2.2204460492503131e-16, -1.4490630917407543e-12,
- 4.6784798257704097e-13}, /* L460 */
-{4.6996109875321341e+00, 2.4052981828504016e-13,
- 2.2204460492503131e-16, 5.0626169922907138e-14,
- 3.6859404417555197e-14}, /* L461 */
-{5.6764610710572718e+00, 2.9115598820794730e-13,
- 2.2204460492503131e-16, 4.5741188614556449e-14,
- 2.7822188997106423e-13}, /* L462 */
-{5.4654948969429604e+00, 2.8094193638139586e-13,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -3.3972824553529790e-14}, /* L463 */
-{6.1595415111115210e+00, 3.1730174043786974e-13,
- 2.2204460492503131e-16, -3.0342395263005528e-13,
- -3.4394709302887350e-13}, /* L464 */
-{4.3532673298874656e+00, 2.2473689575974731e-13,
- 2.2204460492503131e-16, -6.1506355564233672e-14,
- 5.3290705182007514e-15}, /* L465 */
-{6.2929784802147637e+00, 3.2557290197132716e-13,
- 2.2204460492503131e-16, -6.4503957730721595e-14,
- -3.3417713041217212e-14}, /* L466 */
-{4.8630014176302225e+00, 2.5213164889237305e-13,
- 2.2204460492503131e-16, -4.1411318818518339e-14,
- 7.5939254884360707e-14}, /* L467 */
-{6.1197164922843443e+00, 3.1796787425264483e-13,
- 2.2204460492503131e-16, 1.5831780331154732e-13,
- 4.4408920985006262e-16}, /* L468 */
-{5.4126315854879516e+00, 2.8183011480109599e-13,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- 5.9507954119908391e-14}, /* L469 */
-{5.3585617506862899e+00, 2.7960966875184567e-13,
- 2.2204460492503131e-16, -2.6423307986078726e-14,
- -4.4630965589931293e-14}, /* L470 */
-{6.7411736421210149e+00, 3.5250274921239111e-13,
- 2.2204460492503131e-16, -3.1696867353048219e-12,
- 9.9364960703951510e-13}, /* L471 */
-{6.0445491810718464e+00, 3.1674662892555716e-13,
- 2.2204460492503131e-16, 9.0594198809412774e-14,
- -8.6153306710912148e-14}, /* L472 */
-{4.7770011677329629e+00, 2.5085489241405412e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-13,
- 1.3189449532546860e-13}, /* L473 */
-{5.9599724607299329e+00, 3.1363800445660672e-13,
- 2.2204460492503131e-16, 1.1457501614131615e-13,
- 1.1923795284474181e-13}, /* L474 */
-{6.3805871767087687e+00, 3.3648084318826932e-13,
- 2.2204460492503131e-16, 2.0472512574087887e-13,
- -2.2115642650533118e-13}, /* L475 */
-{7.3771712071331015e+00, 3.8985481509712372e-13,
- 2.2204460492503131e-16, 1.4366285938649526e-13,
- -2.7233770794055090e-13}, /* L476 */
-{5.8637875876438983e+00, 3.1052937998765628e-13,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- 3.9968028886505635e-14}, /* L477 */
-{3.7191777346133970e+00, 1.9736989820273720e-13,
- 2.2204460492503131e-16, -2.7666757773658901e-13,
- 1.9340085088970227e-13}, /* L478 */
-{6.3951549456033785e+00, 3.4008906801830108e-13,
- 2.2204460492503131e-16, 1.9606538614880265e-13,
- -6.9388939039072284e-14}, /* L479 */
-{3.9724337242043148e+00, 2.1169177522040172e-13,
- 2.2204460492503131e-16, 1.7119639039719914e-13,
- -2.6756374893466273e-13}, /* L480 */
-{4.7318538663699847e+00, 2.5268676040468563e-13,
- 2.2204460492503131e-16, 6.0018656711235963e-13,
- -8.1135098639606440e-13}, /* L481 */
-{6.8786963175148541e+00, 3.6809444381447065e-13,
- 2.2204460492503131e-16, -3.1530333899354446e-14,
- -4.2521541843143495e-14}, /* L482 */
-{7.0849537078598717e+00, 3.7991831902672857e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- -4.9960036108132044e-15}, /* L483 */
-{4.9401297658215952e+00, 2.6545432518787493e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- -8.9372953482325102e-14}, /* L484 */
-{4.9655112808213016e+00, 2.6736945990535332e-13,
- 2.2204460492503131e-16, 3.3528735343679728e-14,
- 6.7057470687359455e-14}, /* L485 */
-{9.2583187627132997e+00, 4.9954484993008919e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- -1.5765166949677223e-14}, /* L486 */
-{4.5739655998069733e+00, 2.4730217873525362e-13,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -5.5400128928795311e-14}, /* L487 */
-{4.9365224966181609e+00, 2.6745272663220021e-13,
- 2.2204460492503131e-16, 3.7725378376762819e-13,
- 2.1871393585115584e-13}, /* L488 */
-{7.4990490344368332e+00, 4.0711878313004490e-13,
- 2.2204460492503131e-16, 2.5135449277513544e-13,
- 1.1679546219056647e-13}, /* L489 */
-{5.4388273882034701e+00, 2.9587443606260422e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- -2.9976021664879227e-15}, /* L490 */
-{5.5751550113481541e+00, 3.0390967520332879e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 4.5075054799781356e-14}, /* L491 */
-{5.5346056370543382e+00, 3.0231372960543013e-13,
- 2.2204460492503131e-16, 5.0652815275498142e-12,
- -2.2504220709151923e-12}, /* L492 */
-{5.0345307802550892e+00, 2.7555735471196385e-13,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- 1.5987211554602254e-14}, /* L493 */
-{4.8983260746783897e+00, 2.6864621638367225e-13,
- 2.2204460492503131e-16, 1.3722356584366935e-13,
- -1.6942003355779889e-13}, /* L494 */
-{4.7778233508209427e+00, 2.6256774532384952e-13,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- -9.1926466438962962e-14}, /* L495 */
-{6.2490515417668915e+00, 3.4411362648256727e-13,
- 2.2204460492503131e-16, 7.6827433304060833e-14,
- -2.1538326677728037e-14}, /* L496 */
-{5.9711334141272454e+00, 3.2947256034532302e-13,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- -1.7541523789077473e-14}, /* L497 */
-{6.6145209236202813e+00, 3.6570746431152656e-13,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- -1.8340884366807586e-13}, /* L498 */
-{5.5421370317473748e+00, 3.0703217746008704e-13,
- 2.2204460492503131e-16, -5.7731597280508140e-15,
- -9.0039087297100195e-14}, /* L499 */
-{5.0175478596441536e+00, 2.7852720130283615e-13,
- 2.2204460492503131e-16, 4.6851411639181606e-14,
- 3.7747582837255322e-14}, /* L500 */
-{5.3603305703773483e+00, 2.9815039326308579e-13,
- 2.2204460492503131e-16, 1.6386891843467311e-13,
- -8.6264329013374663e-14}, /* L501 */
-{5.8760520643603078e+00, 3.2748803668880555e-13,
- 2.2204460492503131e-16, 1.5187850976872141e-13,
- 1.1672884880908896e-12}, /* L502 */
-{5.6243081203506939e+00, 3.1408209366645679e-13,
- 2.2204460492503131e-16, 1.0884626533425035e-12,
- -6.4948046940571658e-14}, /* L503 */
-{4.9048086890490588e+00, 2.7444713168733870e-13,
- 2.2204460492503131e-16, -1.1435297153639112e-14,
- -4.3298697960381105e-15}, /* L504 */
-{5.8094613538677180e+00, 3.2571167984940530e-13,
- 2.2204460492503131e-16, 9.1704421834037930e-14,
- -1.1268763699945339e-13}, /* L505 */
-{5.9793060451799205e+00, 3.3589797610034111e-13,
- 2.2204460492503131e-16, -1.1657341758564144e-12,
- 3.7303493627405260e-14}, /* L506 */
-{4.7604004364352903e+00, 2.6795232699328153e-13,
- 2.2204460492503131e-16, 8.7174711893567292e-13,
- 4.3454129183828627e-13}, /* L507 */
-{4.3651991175490110e+00, 2.4619195571062846e-13,
- 2.2204460492503131e-16, 7.3208106243782822e-13,
- -1.4515055823949297e-12}, /* L508 */
-{5.6434722975740623e+00, 3.1891156382357622e-13,
- 2.2204460492503131e-16, -2.1993518117824351e-13,
- 1.6875389974302379e-13}, /* L509 */
-{5.6304458626044651e+00, 3.1880054152111370e-13,
- 2.2204460492503131e-16, 1.5432100042289676e-13,
- -1.4011014570769476e-13}, /* L510 */
-{5.7975112679734222e+00, 3.2890357104520263e-13,
- 2.2204460492503131e-16, -4.2266190547479709e-13,
- 5.6843418860808015e-14}, /* L511 */
-{5.4932164592863968e+00, 3.1225022567582528e-13,
- 2.2204460492503131e-16, 1.5498713423767185e-13,
- -2.5923707624997405e-13}, /* L512 */
-{6.2583442953111295e+00, 3.5643710205590651e-13,
- 2.2204460492503131e-16, -8.6819440525687241e-14,
- -1.9872992140790302e-14}, /* L513 */
-{5.3030661472476179e+00, 3.0261904093720204e-13,
- 2.2204460492503131e-16, 1.2012613126444194e-13,
- -4.0301095793893182e-14}, /* L514 */
-{5.2238362350830059e+00, 2.9867774919978274e-13,
- 2.2204460492503131e-16, 5.2624571367232420e-14,
- -4.7739590058881731e-14}, /* L515 */
-{6.5514190795499472e+00, 3.7531089347453417e-13,
- 2.2204460492503131e-16, -1.9984014443252818e-14,
- -1.9984014443252818e-14}, /* L516 */
-{7.1760267955496220e+00, 4.1189274213593308e-13,
- 2.2204460492503131e-16, 1.4788170688007085e-13,
- -9.0594198809412774e-14}, /* L517 */
-{4.7250919142691101e+00, 2.7173749361786292e-13,
- 2.2204460492503131e-16, 3.8835601401387976e-13,
- 1.3100631690576847e-14}, /* L518 */
-{6.3208192209499670e+00, 3.6420866322828260e-13,
- 2.2204460492503131e-16, 7.1942451995710144e-14,
- -1.2789769243681803e-13}, /* L519 */
-{5.7855860510373631e+00, 3.3401059695847835e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- -5.3734794391857577e-14}, /* L520 */
-{5.2226569922060442e+00, 3.0209168500050509e-13,
- 2.2204460492503131e-16, 5.8109073108880693e-13,
- -1.0835776720341528e-13}, /* L521 */
-{7.1302794487259673e+00, 4.1322500976548326e-13,
- 2.2204460492503131e-16, -9.4702024000525853e-14,
- -5.7509552675583109e-14}, /* L522 */
-{6.5730266226991247e+00, 3.8165998139660928e-13,
- 2.2204460492503131e-16, -3.7891911830456593e-13,
- -6.7035266226866952e-13}, /* L523 */
-{5.8110778704670638e+00, 3.3806291099836017e-13,
- 2.2204460492503131e-16, 1.3433698597964394e-13,
- -4.8627768478581856e-14}, /* L524 */
-{6.1100096398038746e+00, 3.5613179072413459e-13,
- 2.2204460492503131e-16, -1.0458300891968975e-13,
- -1.7708057242771247e-13}, /* L525 */
-{4.8778594068603880e+00, 2.8485547254319954e-13,
- 2.2204460492503131e-16, -4.4408920985006262e-14,
- 4.1078251911130792e-14}, /* L526 */
-{5.8956449752232025e+00, 3.4494629375103614e-13,
- 2.2204460492503131e-16, -1.1690648449302898e-13,
- -8.2045481519799068e-14}, /* L527 */
-{5.8238728247283307e+00, 3.4139358007223564e-13,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -1.7763568394002505e-15}, /* L528 */
-{6.3346035669276866e+00, 3.7203573555188996e-13,
- 2.2204460492503131e-16, 1.8496315590255108e-13,
- -2.1094237467877974e-13}, /* L529 */
-{5.9139244247798413e+00, 3.4798552928094750e-13,
- 2.2204460492503131e-16, -1.8451906669270102e-13,
- -1.3800072196090696e-13}, /* L530 */
-{6.8879581364473230e+00, 4.0606407125665100e-13,
- 2.2204460492503131e-16, 3.0457858457566545e-12,
- 2.2770674235061961e-12}, /* L531 */
-{6.1758791046303312e+00, 3.6477071363449909e-13,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- -1.6697754290362354e-13}, /* L532 */
-{5.3752430021245061e+00, 3.1807889655510735e-13,
- 2.2204460492503131e-16, -1.4231948952669882e-12,
- -4.8272497110701806e-13}, /* L533 */
-{7.0744493636549839e+00, 4.1941450312776851e-13,
- 2.2204460492503131e-16, 6.8167693711984612e-14,
- 1.0680345496894006e-13}, /* L534 */
-{7.7088906670315742e+00, 4.5788373093103019e-13,
- 2.2204460492503131e-16, -7.0654593287144962e-13,
- 1.3034018309099338e-13}, /* L535 */
-{6.3265025186760493e+00, 3.7647662765039058e-13,
- 2.2204460492503131e-16, -1.2201351040630470e-13,
- 1.5831780331154732e-13}, /* L536 */
-{5.9320391541026334e+00, 3.5366154449434362e-13,
- 2.2204460492503131e-16, 3.8811176494846222e-12,
- -4.2562620095054626e-12}, /* L537 */
-{6.6654380254034855e+00, 3.9812597663058114e-13,
- 2.2204460492503131e-16, 1.2057022047429200e-13,
- 3.2862601528904634e-14}, /* L538 */
-{6.1342861159552244e+00, 3.6708136530450020e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- -3.1419311596891930e-14}, /* L539 */
-{7.6650583895132627e+00, 4.5953518768016011e-13,
- 2.2204460492503131e-16, -9.8143715376863838e-14,
- -4.0856207306205761e-14}, /* L540 */
-{4.5213795918232194e+00, 2.7156749071721720e-13,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- -3.3861802251067274e-14}, /* L541 */
-{7.4335910638212672e+00, 4.4730885662147557e-13,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- -3.8413716652030416e-14}, /* L542 */
-{6.2136377959033773e+00, 3.7458924850852782e-13,
- 2.2204460492503131e-16, 1.5325518631925661e-12,
- -1.4817036486647339e-12}, /* L543 */
-{7.0790552863119203e+00, 4.2754688678314778e-13,
- 2.2204460492503131e-16, -1.0172973574640309e-12,
- 5.9219296133505850e-13}, /* L544 */
-{6.4449642967046978e+00, 3.8996583739958623e-13,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- -3.3628655415895992e-13}, /* L545 */
-{5.2386758475140187e+00, 3.1755847951231431e-13,
- 2.2204460492503131e-16, 9.9031893796563963e-14,
- -1.6786572132332367e-13}, /* L546 */
-{6.3958053375057391e+00, 3.8841152516511102e-13,
- 2.2204460492503131e-16, -3.0242475190789264e-13,
- -1.5154544286133387e-13}, /* L547 */
-{5.4160669391267104e+00, 3.2951419370874646e-13,
- 2.2204460492503131e-16, -2.5646151868841116e-14,
- -1.2656542480726785e-13}, /* L548 */
-{6.1138529974163784e+00, 3.7264635821543379e-13,
- 2.2204460492503131e-16, -1.0935696792557792e-13,
- -1.3322676295501878e-15}, /* L549 */
-{6.4127373901485258e+00, 3.9157566078529271e-13,
- 2.2204460492503131e-16, 1.7474910407599964e-13,
- 9.1038288019262836e-15}, /* L550 */
-{5.0158881313876851e+00, 3.0683788843077764e-13,
- 2.2204460492503131e-16, 3.9523939676655573e-14,
- -1.0780265569110270e-13}, /* L551 */
-{5.4636635113601573e+00, 3.3483632533304331e-13,
- 2.2204460492503131e-16, 1.8141044222375058e-13,
- -3.3129055054814671e-13}, /* L552 */
-{4.8255049007451332e+00, 2.9626301412122302e-13,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- -5.0548454311183377e-13}, /* L553 */
-{5.6352751363010416e+00, 3.4660468939406996e-13,
- 2.2204460492503131e-16, 5.8397731095283234e-14,
- -2.0317081350640365e-14}, /* L554 */
-{7.8000123061344269e+00, 4.8061554736023027e-13,
- 2.2204460492503131e-16, -8.3044682241961709e-14,
- -1.0802470029602773e-13}, /* L555 */
-{6.7311257276579539e+00, 4.1550096696596484e-13,
- 2.2204460492503131e-16, -1.7985612998927536e-14,
- 7.7937656328685989e-14}, /* L556 */
-{5.0828177139879793e+00, 3.1431801605918963e-13,
- 2.2204460492503131e-16, -1.8018919689666291e-13,
- 2.0805579481475434e-13}, /* L557 */
-{5.9684793985885074e+00, 3.6974937001055252e-13,
- 2.2204460492503131e-16, 2.3803181647963356e-13,
- -2.2881696537524476e-13}, /* L558 */
-{6.0089540241972168e+00, 3.7292391397159008e-13,
- 2.2204460492503131e-16, 5.7287508070658077e-14,
- 1.0969003483296547e-13}, /* L559 */
-{6.5464388997915446e+00, 4.0700776082758239e-13,
- 2.2204460492503131e-16, 3.1130653610489389e-13,
- 2.4646951146678475e-14}, /* L560 */
-{5.9171216349490567e+00, 3.6853853302432071e-13,
- 2.2204460492503131e-16, 7.5273121069585613e-14,
- -9.3147711766050634e-14}, /* L561 */
-{5.3029443095532969e+00, 3.3087421691391228e-13,
- 2.2204460492503131e-16, -5.0515147620444623e-14,
- 2.4757973449140991e-13}, /* L562 */
-{6.9191938649469833e+00, 4.3248737924272973e-13,
- 2.2204460492503131e-16, -3.2385205628315816e-13,
- 7.7937656328685989e-14}, /* L563 */
-{9.2916813262137943e+00, 5.8181237605481329e-13,
- 2.2204460492503131e-16, 1.3056222769591841e-13,
- -1.8329782136561334e-13}, /* L564 */
-{6.1619566244117951e+00, 3.8652414602324825e-13,
- 2.2204460492503131e-16, -2.2537527399890678e-14,
- -3.6093350530563839e-13}, /* L565 */
-{6.8994145955018897e+00, 4.3354903001002754e-13,
- 2.2204460492503131e-16, -3.7636560534792807e-14,
- 1.0103029524088925e-13}, /* L566 */
-{5.6075926213852831e+00, 3.5299541067956852e-13,
- 2.2204460492503131e-16, 9.9031893796563963e-14,
- -2.1371793224034263e-13}, /* L567 */
-{7.5440259867682000e+00, 4.7573056605187958e-13,
- 2.2204460492503131e-16, -1.0136336214827679e-13,
- -7.5495165674510645e-14}, /* L568 */
-{9.0729492880943940e+00, 5.7315263646273706e-13,
- 2.2204460492503131e-16, 2.5535129566378600e-14,
- -6.2172489379008766e-15}, /* L569 */
-{6.2728169142065671e+00, 3.9696024245472472e-13,
- 2.2204460492503131e-16, -2.9853897132170459e-13,
- 6.7057470687359455e-14}, /* L570 */
-{5.5791462803671488e+00, 3.5368236117605534e-13,
- 2.2204460492503131e-16, 8.4154905266586866e-14,
- -1.4177548024463249e-13}, /* L571 */
-{6.7709897036186559e+00, 4.2998937743732313e-13,
- 2.2204460492503131e-16, -3.2640556923979602e-14,
- 9.7699626167013776e-15}, /* L572 */
-{5.7098693924321964e+00, 3.6323721808173559e-13,
- 2.2204460492503131e-16, -1.3162804179955856e-12,
- -2.7255975254547593e-13}, /* L573 */
-{6.3763166801563260e+00, 4.0634162701280729e-13,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- 5.3645976549887564e-13}, /* L574 */
-{5.2643561316998522e+00, 3.3606450955403488e-13,
- 2.2204460492503131e-16, -1.7319479184152442e-14,
- -4.0190073491430667e-14}, /* L575 */
-{5.2152860059400918e+00, 3.3351099659739702e-13,
- 2.2204460492503131e-16, 3.2263081095607049e-13,
- 1.6076029396572267e-13}, /* L576 */
-{7.9332880796498699e+00, 5.0820458952216541e-13,
- 2.2204460492503131e-16, 7.0543570984682447e-13,
- 7.9580786405131221e-13}, /* L577 */
-{9.0324536969056801e+00, 5.7961968558117860e-13,
- 2.2204460492503131e-16, -9.4257934790675790e-13,
- -5.1414428270390999e-13}, /* L578 */
-{5.0945676232252346e+00, 3.2748803668880555e-13,
- 2.2204460492503131e-16, 4.0412118096355698e-14,
- 1.4699352846037073e-13}, /* L579 */
-{4.3819034650843012e+00, 2.8216318170848353e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- 1.4477308241112041e-13}, /* L580 */
-{6.7926096840466057e+00, 4.3814951666831803e-13,
- 2.2204460492503131e-16, 1.0347278589506459e-13,
- -2.0872192862952943e-14}, /* L581 */
-{7.4695135029138884e+00, 4.8264170438017118e-13,
- 2.2204460492503131e-16, -4.4919623576333834e-13,
- 3.0753177782116836e-13}, /* L582 */
-{6.2718527339117829e+00, 4.0595131423071251e-13,
- 2.2204460492503131e-16, -9.0261131902025227e-14,
- -8.8040685852774914e-14}, /* L583 */
-{4.5839113416575232e+00, 2.9720670369215441e-13,
- 2.2204460492503131e-16, -1.1246559239452836e-13,
- -2.0949908474676704e-13}, /* L584 */
-{5.1777859468073641e+00, 3.3628655415895992e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-14,
- -9.6589403142388619e-14}, /* L585 */
-{5.4840103586469455e+00, 3.5678404675110187e-13,
- 2.2204460492503131e-16, -1.4543921622589551e-13,
- 2.3314683517128287e-14}, /* L586 */
-{6.6081875978387696e+00, 4.3065551125209822e-13,
- 2.2204460492503131e-16, -2.7944313529815190e-13,
- 2.4624746686185972e-13}, /* L587 */
-{7.9966112557638818e+00, 5.2202686617874861e-13,
- 2.2204460492503131e-16, 1.0680345496894006e-13,
- 1.7386092565629951e-13}, /* L588 */
-{6.8951721688828647e+00, 4.5088932587589170e-13,
- 2.2204460492503131e-16, -2.8466118351389014e-13,
- -5.3623772089395061e-14}, /* L589 */
-{6.4983153371844695e+00, 4.2565950764128502e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-14,
- -3.1086244689504383e-14}, /* L590 */
-{6.3673958326887954e+00, 4.1779080195425422e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-14,
- 1.0658141036401503e-14}, /* L591 */
-{6.3218005144897038e+00, 4.1550096696596484e-13,
- 2.2204460492503131e-16, -2.0861090632706691e-13,
- 1.1834977442504169e-13}, /* L592 */
-{5.8450766754423036e+00, 3.8481717812288707e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -5.9618976422370906e-14}, /* L593 */
-{5.6588893994504570e+00, 3.7318759193993856e-13,
- 2.2204460492503131e-16, -2.2315482794965646e-14,
- -2.1205259770340490e-14}, /* L594 */
-{6.3346869900716749e+00, 4.1845780313076730e-13,
- 2.2204460492503131e-16, 5.5444537849780318e-13,
- 6.5525362913376739e-13}, /* L595 */
-{8.9115073483382403e+00, 5.8966720395403627e-13,
- 2.2204460492503131e-16, -1.1557421686347880e-13,
- 9.3258734068513149e-14}, /* L596 */
-{6.9790729874480331e+00, 4.6257442321007147e-13,
- 2.2204460492503131e-16, 2.0088375407567582e-12,
- 1.0846878950587779e-12}, /* L597 */
-{7.3068677153885497e+00, 4.8511195060996215e-13,
- 2.2204460492503131e-16, 1.1879386363489175e-13,
- -6.9388939039072284e-14}, /* L598 */
-{5.8973381857422300e+00, 3.9218628344883655e-13,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -4.3187675657918589e-14}, /* L599 */
-{8.3379298213147521e+00, 5.5541682364435019e-13,
- 2.2204460492503131e-16, 8.2400752887679118e-12,
- 9.5301544433823437e-13}, /* L600 */
-{5.6073299781720687e+00, 3.7414515929867775e-13,
- 2.2204460492503131e-16, 9.9031893796563963e-14,
- 6.3504757008558954e-14}, /* L601 */
-{7.7670388321818136e+00, 5.1911253073910757e-13,
- 2.2204460492503131e-16, 1.0524914273446484e-13,
- 6.1106675275368616e-13}, /* L602 */
-{4.8536560821816872e+00, 3.2493452373216769e-13,
- 2.2204460492503131e-16, 2.5357493882438575e-13,
- -5.0459636469213365e-13}, /* L603 */
-{7.7011710905543804e+00, 5.1642023990439156e-13,
- 2.2204460492503131e-16, 1.9311219290329973e-12,
- -8.1823436914874037e-14}, /* L604 */
-{6.1008360716124610e+00, 4.0978331838914528e-13,
- 2.2204460492503131e-16, -2.1427304375265521e-14,
- -1.1124434706744069e-13}, /* L605 */
-{7.0900483147281061e+00, 4.7701426142410241e-13,
- 2.2204460492503131e-16, -5.2413628992553640e-13,
- -2.8088642523016460e-14}, /* L606 */
-{6.2528928965350268e+00, 4.2138514899647816e-13,
- 2.2204460492503131e-16, -8.9483975784787617e-14,
- -4.8960835385969403e-14}, /* L607 */
-{8.4761646886916626e+00, 5.7215343574057442e-13,
- 2.2204460492503131e-16, -2.1804780203638074e-13,
- -2.2870594307278225e-14}, /* L608 */
-{6.8553063821674582e+00, 4.6350423499319504e-13,
- 2.2204460492503131e-16, 1.0635936575909000e-13,
- -7.7937656328685989e-14}, /* L609 */
-{6.5582070682418179e+00, 4.4414472100129387e-13,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- 4.7961634663806763e-14}, /* L610 */
-{6.4359757841967085e+00, 4.3658132664603500e-13,
- 2.2204460492503131e-16, -2.0050627824730327e-13,
- 3.3972824553529790e-14}, /* L611 */
-{6.1911862384589629e+00, 4.2066350403047181e-13,
- 2.2204460492503131e-16, -3.9801495432811862e-13,
- 2.7089441800853820e-14}, /* L612 */
-{9.0821921430553747e+00, 6.1810279117224809e-13,
- 2.2204460492503131e-16, 1.0242917625191694e-12,
- 8.5798035343032097e-13}, /* L613 */
-{9.0313405924497641e+00, 6.1564468800678895e-13,
- 2.2204460492503131e-16, -5.8286708792820718e-14,
- -9.7810648469476291e-14}, /* L614 */
-{5.6370007634522867e+00, 3.8488656706192614e-13,
- 2.2204460492503131e-16, 3.3106850594322168e-13,
- -2.0783375020982930e-13}, /* L615 */
-{6.2869417371327447e+00, 4.2996162186170750e-13,
- 2.2204460492503131e-16, 2.2293278334473143e-13,
- 2.4336088699783431e-13}, /* L616 */
-{5.8103819385557838e+00, 3.9801495432811862e-13,
- 2.2204460492503131e-16, -1.1823875212257917e-13,
- 6.5281113847959205e-14}, /* L617 */
-{7.0230693327724785e+00, 4.8186454826293357e-13,
- 2.2204460492503131e-16, 8.9483975784787617e-14,
- 3.2307490016592055e-13}, /* L618 */
-{6.6187503454731704e+00, 4.5485837318892663e-13,
- 2.2204460492503131e-16, -4.1688874574674628e-13,
- -1.6633361354934095e-12}, /* L619 */
-{5.5596861909034372e+00, 3.8269387658829146e-13,
- 2.2204460492503131e-16, 6.0151883474190981e-13,
- 7.1898043074725138e-13}, /* L620 */
-{5.8707822092319404e+00, 4.0475955920271645e-13,
- 2.2204460492503131e-16, -3.2107649872159527e-13,
- -2.1760371282653068e-13}, /* L621 */
-{5.9564000725867414e+00, 4.1132375283581268e-13,
- 2.2204460492503131e-16, 5.2680082518463678e-12,
- -4.6390669083962166e-12}, /* L622 */
-{6.9446337495344563e+00, 4.8033799160407398e-13,
- 2.2204460492503131e-16, 1.4721557306529576e-13,
- -1.5576429035490946e-13}, /* L623 */
-{6.1342244215976400e+00, 4.2496561825089429e-13,
- 2.2204460492503131e-16, 6.6169292267659330e-14,
- 1.8651746813702630e-14}, /* L624 */
-{5.6004088358019670e+00, 3.8860581419442042e-13,
- 2.2204460492503131e-16, 1.6520118606422329e-13,
- 9.0816243414337805e-14}, /* L625 */
-{4.9417010872905642e+00, 3.4344749266779218e-13,
- 2.2204460492503131e-16, 5.3734794391857577e-14,
- -4.4630965589931293e-14}, /* L626 */
-{5.8556711204862690e+00, 4.0761838349112622e-13,
- 2.2204460492503131e-16, -3.8558045645231687e-13,
- 6.0840221749458578e-14}, /* L627 */
-{5.9785126170540916e+00, 4.1683323459551502e-13,
- 2.2204460492503131e-16, 2.6423307986078726e-14,
- 2.2315482794965646e-13}, /* L628 */
-{6.2933326635156233e+00, 4.3948178429786822e-13,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- 1.1812772982011666e-13}, /* L629 */
-{6.0841365831046366e+00, 4.2554848533882250e-13,
- 2.2204460492503131e-16, 3.8902214782865485e-13,
- 2.5579538487363607e-13}, /* L630 */
-{7.5808360490851925e+00, 5.3107518382944363e-13,
- 2.2204460492503131e-16, 7.6383344094210770e-14,
- -6.4726002335646626e-14}, /* L631 */
-{6.8259601364466969e+00, 4.7895021282329253e-13,
- 2.2204460492503131e-16, -7.6127992798546984e-13,
- 1.0036416142611415e-13}, /* L632 */
-{6.2826422186441659e+00, 4.4152528855256890e-13,
- 2.2204460492503131e-16, 2.6378899065093719e-13,
- 2.5468516184901091e-13}, /* L633 */
-{6.9116828288981473e+00, 4.8649972939074360e-13,
- 2.2204460492503131e-16, -7.2497563508022722e-14,
- 8.1490370007486490e-14}, /* L634 */
-{8.4914257985583124e+00, 5.9863745904831234e-13,
- 2.2204460492503131e-16, 4.4186876380081230e-14,
- -5.5733195836182858e-14}, /* L635 */
-{5.7971789575627106e+00, 4.0933922917929522e-13,
- 2.2204460492503131e-16, 2.4624746686185972e-13,
- -2.6156854460168688e-13}, /* L636 */
-{9.5188533225160121e+00, 6.7318373098146367e-13,
- 2.2204460492503131e-16, 7.5717210279435676e-14,
- 1.5321077739827160e-13}, /* L637 */
-{5.6191311223956744e+00, 3.9801495432811862e-13,
- 2.2204460492503131e-16, -5.6732396558345499e-14,
- 4.5297099404706387e-14}, /* L638 */
-{7.7875709719524462e+00, 5.5247473262909352e-13,
- 2.2204460492503131e-16, 2.3270274596143281e-13,
- -3.5749181392930041e-14}, /* L639 */
-{8.0523564542598081e+00, 5.7215343574057442e-13,
- 2.2204460492503131e-16, -1.9273471707492718e-13,
- -1.9773072068574038e-13}, /* L640 */
-{7.5647545246702013e+00, 5.3834714464073841e-13,
- 2.2204460492503131e-16, -1.0491607582707729e-13,
- 3.9968028886505635e-15}, /* L641 */
-{9.5958095318923835e+00, 6.8395289432032769e-13,
- 2.2204460492503131e-16, 3.0930813466056861e-13,
- 7.0321526379757415e-13}, /* L642 */
-{6.7986110372539637e+00, 4.8533399521488718e-13,
- 2.2204460492503131e-16, -1.8463008899516353e-13,
- 2.1582735598713043e-13}, /* L643 */
-{6.6844049559697218e+00, 4.7792325652551426e-13,
- 2.2204460492503131e-16, -1.5032419753424620e-13,
- 1.0391687510491465e-13}, /* L644 */
-{6.9759799982994277e+00, 4.9954484993008919e-13,
- 2.2204460492503131e-16, 6.5281113847959205e-14,
- 1.5099033134902129e-13}, /* L645 */
-{7.7623961477063341e+00, 5.5672133569828475e-13,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- 4.8783199702029378e-13}, /* L646 */
-{7.0942924910121654e+00, 5.0959236830294685e-13,
- 2.2204460492503131e-16, 2.5490720645393594e-13,
- -2.9332092310596636e-13}, /* L647 */
-{6.9938381947162096e+00, 5.0315307476012094e-13,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- 1.4233059175694507e-13}, /* L648 */
-{7.6086406636762050e+00, 5.4822812955990230e-13,
- 2.2204460492503131e-16, 3.7703173916270316e-13,
- 1.5054624213917123e-13}, /* L649 */
-{8.1627051860503386e+00, 5.8905658129049243e-13,
- 2.2204460492503131e-16, -1.0780265569110270e-13,
- -1.4999113062685865e-13}, /* L650 */
-{6.1528514892540125e+00, 4.4469983251360645e-13,
- 2.2204460492503131e-16, -4.6795900487950348e-13,
- 1.0513812043200232e-12}, /* L651 */
-{7.1553027000091527e+00, 5.1794679656325116e-13,
- 2.2204460492503131e-16, 5.2802207051172445e-13,
- 1.1124434706744069e-13}, /* L652 */
-{7.0398273395572790e+00, 5.1036952442018446e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- 1.4477308241112041e-13}, /* L653 */
-{6.9399956587443032e+00, 5.0390247530174292e-13,
- 2.2204460492503131e-16, -3.4749980670767400e-13,
- -7.8803630287893611e-13}, /* L654 */
-{5.7461922719137206e+00, 4.1786019089329329e-13,
- 2.2204460492503131e-16, -4.0967229608668276e-14,
- 8.8817841970012523e-14}, /* L655 */
-{5.9912442085228150e+00, 4.3634540425330215e-13,
- 2.2204460492503131e-16, 1.6520118606422329e-13,
- -2.2060131499301860e-13}, /* L656 */
-{7.4052628248876884e+00, 5.4015125705575429e-13,
- 2.2204460492503131e-16, 7.3718808835110394e-14,
- 1.0236256287043943e-13}, /* L657 */
-{8.4187062913699311e+00, 6.1500804449110547e-13,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- -1.8873791418627661e-14}, /* L658 */
-{6.5326354962670479e+00, 4.7795101210112989e-13,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- 1.0258460747536446e-13}, /* L659 */
-{6.8545562690121296e+00, 5.0226489634042082e-13,
- 2.2204460492503131e-16, 9.9564800848384039e-13,
- -5.9940941099512202e-13}, /* L660 */
-{8.9542501332212296e+00, 6.5711325270001453e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -8.3377749149349256e-14}, /* L661 */
-{6.4913244408049966e+00, 4.7709058925704539e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- -1.2434497875801753e-14}, /* L662 */
-{7.0173564710306779e+00, 5.1653126220685408e-13,
- 2.2204460492503131e-16, -6.9499961341534799e-14,
- -1.3067324999838092e-13}, /* L663 */
-{6.8358541584695667e+00, 5.0393023087735855e-13,
- 2.2204460492503131e-16, 8.5043083686286991e-14,
- 8.9039886574937555e-14}, /* L664 */
-{8.4496373912027973e+00, 6.2383431753687546e-13,
- 2.2204460492503131e-16, 1.4899192990469601e-13,
- 1.0214051826551440e-13}, /* L665 */
-{6.8746354707794595e+00, 5.0831561182462792e-13,
- 2.2204460492503131e-16, -4.7628567756419216e-14,
- -5.2191584387628609e-13}, /* L666 */
-{6.3658271348627560e+00, 4.7140069625584147e-13,
- 2.2204460492503131e-16, -4.3720582709738665e-13,
- -1.9806378759312793e-13}, /* L667 */
-{9.1497150343692137e+00, 6.7856831265089568e-13,
- 2.2204460492503131e-16, 1.6187051699034782e-13,
- -8.2933659939499194e-14}, /* L668 */
-{7.6965741758206239e+00, 5.7165383537949310e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- 2.4447111002245947e-13}, /* L669 */
-{7.0906828288097321e+00, 5.2743920342379624e-13,
- 2.2204460492503131e-16, -2.7744473385382662e-13,
- -9.3147711766050634e-14}, /* L670 */
-{7.2202051318562486e+00, 5.3787529985527271e-13,
- 2.2204460492503131e-16, 3.5305092183079978e-13,
- -5.5466742310272821e-12}, /* L671 */
-{9.9784383620987782e+00, 7.4446004916239872e-13,
- 2.2204460492503131e-16, 1.3122836151069350e-13,
- -1.1979306435705439e-13}, /* L672 */
-{7.6303983683959009e+00, 5.7012727872063351e-13,
- 2.2204460492503131e-16, -1.7563728249569976e-13,
- 1.0014211682118912e-13}, /* L673 */
-{9.5493474102854989e+00, 7.1456729422436638e-13,
- 2.2204460492503131e-16, 1.1302070390684094e-13,
- 6.1284310959308641e-14}, /* L674 */
-{8.0811238607541416e+00, 6.0559890435740726e-13,
- 2.2204460492503131e-16, -1.4521717162097048e-13,
- 1.6875389974302379e-13}, /* L675 */
-{7.0251590126368493e+00, 5.2724491439448684e-13,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -7.7715611723760958e-14}, /* L676 */
-{8.5730725176728679e+00, 6.4436910668375091e-13,
- 2.2204460492503131e-16, 1.3411494137471891e-13,
- 8.8817841970012523e-16}, /* L677 */
-{7.6445548337131530e+00, 5.7542859366321863e-13,
- 2.2204460492503131e-16, -5.7398530373120593e-13,
- 4.9227288911879441e-13}, /* L678 */
-{8.3542105295396034e+00, 6.2977401071862005e-13,
- 2.2204460492503131e-16, -9.4257934790675790e-14,
- -1.1379786002407855e-13}, /* L679 */
-{7.7571813561513352e+00, 5.8562876770196226e-13,
- 2.2204460492503131e-16, -1.3308243396181751e-12,
- -8.1634699000687760e-13}, /* L680 */
-{7.3865755305040466e+00, 5.5846993696206937e-13,
- 2.2204460492503131e-16, 1.1346479311669100e-13,
- 5.7731597280508140e-15}, /* L681 */
-{6.4882800313257940e+00, 4.9127368839663177e-13,
- 2.2204460492503131e-16, -2.0605739337042905e-13,
- -1.6198153929281034e-13}, /* L682 */
-{7.0003541997065426e+00, 5.3082364892542699e-13,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- 3.1974423109204508e-14}, /* L683 */
-{5.1250080857420324e+00, 3.8918868128234863e-13,
- 2.2204460492503131e-16, -2.0083934515469082e-13,
- -1.5681900222830336e-12}, /* L684 */
-{6.7138792056727468e+00, 5.1059156902510949e-13,
- 2.2204460492503131e-16, 1.9739765377835283e-13,
- 6.8389738316909643e-14}, /* L685 */
-{7.4806969335419566e+00, 5.6973870066201471e-13,
- 2.2204460492503131e-16, -1.7985612998927536e-13,
- 2.1693757901175559e-13}, /* L686 */
-{7.5467731874902393e+00, 5.7560900490472022e-13,
- 2.2204460492503131e-16, -1.2267964422107980e-12,
- 5.2402526762307389e-13}, /* L687 */
-{7.0348948199268495e+00, 5.3734794391857577e-13,
- 2.2204460492503131e-16, 1.9406698470447736e-13,
- 8.5931262105987116e-13}, /* L688 */
-{7.3907954050644609e+00, 5.6535331971474534e-13,
- 2.2204460492503131e-16, 2.1449508835758024e-13,
- -5.1514348342607263e-14}, /* L689 */
-{8.3152305103006690e+00, 6.3699046037868357e-13,
- 2.2204460492503131e-16, -2.5279778270714814e-13,
- -2.0838886172214188e-13}, /* L690 */
-{9.2706369128888806e+00, 7.1120886957487528e-13,
- 2.2204460492503131e-16, -7.0499162063697440e-14,
- 3.5971225997855072e-14}, /* L691 */
-{8.7803606736357533e+00, 6.7457150976224511e-13,
- 2.2204460492503131e-16, -2.0816681711721685e-13,
- 2.1049828546892968e-13}, /* L692 */
-{8.8030441916554629e+00, 6.7729155617257675e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- -1.3122836151069350e-13}, /* L693 */
-{5.9575021945680851e+00, 4.5902170953127097e-13,
- 2.2204460492503131e-16, -1.4469536679939665e-12,
- -7.6438855245442028e-13}, /* L694 */
-{8.3590059938149697e+00, 6.4498406615598469e-13,
- 2.2204460492503131e-16, 7.1054273576010019e-14,
- -2.1183055309847987e-13}, /* L695 */
-{6.5366482439502747e+00, 5.0509596505321497e-13,
- 2.2204460492503131e-16, -4.3776093860969922e-13,
- -5.3401727484470030e-14}, /* L696 */
-{6.3335824459089087e+00, 4.9010795422077535e-13,
- 2.2204460492503131e-16, -5.7176485768195562e-14,
- -2.6134649999676185e-13}, /* L697 */
-{6.1078176592700206e+00, 4.7331583097331986e-13,
- 2.2204460492503131e-16, -6.7057470687359455e-14,
- -1.8174350913113813e-13}, /* L698 */
-{7.7711138342149244e+00, 6.0307314697638503e-13,
- 2.2204460492503131e-16, 1.8518520050747611e-13,
- 1.6964207816272392e-13}, /* L699 */
-{7.4400117381582698e+00, 5.7820415122478153e-13,
- 2.2204460492503131e-16, -5.4178883601707639e-14,
- 5.9729998724833422e-14}, /* L700 */
-{8.5877453606400032e+00, 6.6835426082434424e-13,
- 2.2204460492503131e-16, -2.6156854460168688e-13,
- -2.5623947408348613e-13}, /* L701 */
-{7.2594487752207693e+00, 5.6578353113678759e-13,
- 2.2204460492503131e-16, 4.7961634663806763e-14,
- 2.3980817331903381e-14}, /* L702 */
-{7.2393428582511827e+00, 5.6502025280735779e-13,
- 2.2204460492503131e-16, 5.4622972811557702e-14,
- -9.1471274998866647e-13}, /* L703 */
-{6.2713167124791021e+00, 4.9016346537200661e-13,
- 2.2204460492503131e-16, 1.3367085216486885e-13,
- -5.1414428270390999e-13}, /* L704 */
-{6.2978822766387799e+00, 4.9293902293356950e-13,
- 2.2204460492503131e-16, 1.6631140908884845e-13,
- -6.4948046940571658e-14}, /* L705 */
-{1.0031177299347318e+01, 7.8625994603953586e-13,
- 2.2204460492503131e-16, -2.1649348980190553e-14,
- 5.2180482157382357e-14}, /* L706 */
-{9.2259692941986806e+00, 7.2417072338737398e-13,
- 2.2204460492503131e-16, -3.2940317140628395e-13,
- -3.2529534621517087e-13}, /* L707 */
-{8.7962709400792960e+00, 6.9141914416093186e-13,
- 2.2204460492503131e-16, -1.8773871346411397e-13,
- -1.8218759834098819e-13}, /* L708 */
-{9.3286465937533247e+00, 7.3430150848707854e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- 1.7763568394002505e-15}, /* L709 */
-{5.9524741799891734e+00, 4.6920800578220678e-13,
- 2.2204460492503131e-16, 2.8999025403209089e-13,
- 3.6393110747212631e-13}, /* L710 */
-{6.3495177532506659e+00, 5.0121018446702692e-13,
- 2.2204460492503131e-16, 4.7317705309524172e-13,
- -1.2883027977750316e-12}, /* L711 */
-{7.8753635486055584e+00, 6.2252980548294090e-13,
- 2.2204460492503131e-16, 1.8807178037150152e-13,
- -3.5205172110863714e-13}, /* L712 */
-{6.7496600178436736e+00, 5.3429483060085659e-13,
- 2.2204460492503131e-16, 1.1723955140041653e-13,
- -1.2034817586936697e-13}, /* L713 */
-{6.9376860156587830e+00, 5.4994897524807129e-13,
- 2.2204460492503131e-16, -1.7719159473017498e-13,
- 3.3573144264664734e-13}, /* L714 */
-{9.0692450778435934e+00, 7.1992412031818276e-13,
- 2.2204460492503131e-16, 5.3512749786932545e-14,
- -5.1847415249994810e-14}, /* L715 */
-{7.6941462173193660e+00, 6.1162186426599874e-13,
- 2.2204460492503131e-16, 1.4499512701604544e-13,
- -4.4853010194856324e-14}, /* L716 */
-{8.2381580462133144e+00, 6.5578098507046434e-13,
- 2.2204460492503131e-16, -1.2423395645555502e-13,
- 2.8643754035329039e-14}, /* L717 */
-{7.0912368146346081e+00, 5.6527005298789845e-13,
- 2.2204460492503131e-16, 2.9087843245179101e-14,
- -7.7604589421298442e-14}, /* L718 */
-{8.7740054978869555e+00, 7.0038419508478000e-13,
- 2.2204460492503131e-16, 5.0182080713057076e-14,
- -5.0959236830294685e-14}, /* L719 */
-{6.9763998956040743e+00, 5.5766502526921613e-13,
- 2.2204460492503131e-16, 4.3742787170231168e-14,
- -2.5335289421946072e-13}, /* L720 */
-{8.3564625599007805e+00, 6.6890937233665682e-13,
- 2.2204460492503131e-16, -4.1477932199995848e-13,
- -4.0878411766698264e-13}, /* L721 */
-{6.6856926810244888e+00, 5.3591159288046697e-13,
- 2.2204460492503131e-16, 3.1397107136399427e-13,
- 1.0302869668521453e-13}, /* L722 */
-{8.0007041857009309e+00, 6.4220850859442180e-13,
- 2.2204460492503131e-16, 7.9714013168086240e-14,
- 5.7065463465733046e-14}, /* L723 */
-{8.2185903145949748e+00, 6.6061045522758377e-13,
- 2.2204460492503131e-16, 7.7715611723760958e-15,
- 2.7755575615628914e-14}, /* L724 */
-{8.1369093893812963e+00, 6.5494831780199547e-13,
- 2.2204460492503131e-16, 3.8635761256955448e-14,
- 2.1094237467877974e-13}, /* L725 */
-{1.0081283122932700e+01, 8.1257223172315207e-13,
- 2.2204460492503131e-16, 4.1056047450638289e-13,
- 7.4384942649885488e-14}, /* L726 */
-{6.5907944423022098e+00, 5.3196336224914376e-13,
- 2.2204460492503131e-16, -5.5377924468302808e-13,
- 2.4882318427899008e-12}, /* L727 */
-{7.6978143426973125e+00, 6.2216898299993773e-13,
- 2.2204460492503131e-16, 3.6415315207705135e-14,
- 1.2057022047429200e-13}, /* L728 */
-{8.9225106477536293e+00, 7.2214456636743307e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-14,
- 7.1276318180935050e-14}, /* L729 */
-{7.9760399811136358e+00, 6.4642735608799740e-13,
- 2.2204460492503131e-16, -3.3306690738754696e-13,
- 1.0946799022804043e-13}, /* L730 */
-{6.3249928791226333e+00, 5.1331855432934503e-13,
- 2.2204460492503131e-16, 1.6076029396572267e-13,
- -8.4821039081361960e-14}, /* L731 */
-{8.4659457338153672e+00, 6.8801214725411342e-13,
- 2.2204460492503131e-16, -3.7203573555188996e-13,
- -1.3899992268306960e-13}, /* L732 */
-{7.8598350471743963e+00, 6.3962724006216831e-13,
- 2.2204460492503131e-16, 6.3726801613483985e-14,
- -2.4436008771999695e-13}, /* L733 */
-{6.6549832516561631e+00, 5.4231619195377334e-13,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- 3.5171865420124959e-13}, /* L734 */
-{8.5149794205177596e+00, 6.9483307996165422e-13,
- 2.2204460492503131e-16, 8.0890849574188906e-13,
- 6.8522965079864662e-13}, /* L735 */
-{8.1209367255014442e+00, 6.6358030181845606e-13,
- 2.2204460492503131e-16, -1.6098233857064770e-14,
- -4.8072656966269278e-14}, /* L736 */
-{7.7598494204438273e+00, 6.3493654778312703e-13,
- 2.2204460492503131e-16, -2.6796342922352778e-12,
- 1.2034817586936697e-13}, /* L737 */
-{7.9173566647080813e+00, 6.4870331328847897e-13,
- 2.2204460492503131e-16, 2.3092638912203256e-14,
- -1.4666046155298318e-13}, /* L738 */
-{8.1732199314743319e+00, 6.7057470687359455e-13,
- 2.2204460492503131e-16, 1.8030021919912542e-13,
- 2.1205259770340490e-13}, /* L739 */
-{1.1642923774495202e+01, 9.5654040244141925e-13,
- 2.2204460492503131e-16, 2.6800783814451279e-13,
- 4.4120262998603721e-13}, /* L740 */
-{8.6423888038493679e+00, 7.1098682496995025e-13,
- 2.2204460492503131e-16, -9.6367358537463588e-14,
- -9.8476782284251385e-14}, /* L741 */
-{7.4198230270539938e+00, 6.1123328620737993e-13,
- 2.2204460492503131e-16, 4.9293902293356950e-13,
- -2.1094237467877974e-14}, /* L742 */
-{6.6117197178996099e+00, 5.4539706084710815e-13,
- 2.2204460492503131e-16, -1.8082202402069925e-12,
- 6.7752470300774803e-12}, /* L743 */
-{5.8367027569887213e+00, 4.8211434844347423e-13,
- 2.2204460492503131e-16, -5.2069459854919842e-14,
- -4.6029846600958990e-13}, /* L744 */
-{7.5707543940917601e+00, 6.2618833729377599e-13,
- 2.2204460492503131e-16, 1.7452705947107461e-13,
- -1.1801670751765414e-13}, /* L745 */
-{7.3029605835950777e+00, 6.0484950381578528e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- -9.4368957093138306e-15}, /* L746 */
-{7.5796638995865422e+00, 6.2860827654276363e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- 2.8421709430404007e-14}, /* L747 */
-{8.3135157900738186e+00, 6.9039218786315359e-13,
- 2.2204460492503131e-16, 6.0063065632220969e-13,
- -3.5604852399728770e-13}, /* L748 */
-{1.0868508469083766e+01, 9.0377705319610868e-13,
- 2.2204460492503131e-16, 1.2434497875801753e-13,
- -8.6375351315837179e-14}, /* L749 */
-{7.5391368945181005e+00, 6.2775826203953500e-13,
- 2.2204460492503131e-16, -2.0761170560490427e-14,
- -1.1652900866465643e-12}, /* L750 */
-{7.9274426002847909e+00, 6.6097127771058695e-13,
- 2.2204460492503131e-16, 1.0853540288735530e-12,
- -5.4878324107221488e-12}, /* L751 */
-{8.4248803132693322e+00, 7.0338179725126793e-13,
- 2.2204460492503131e-16, 7.9047879353311146e-14,
- -5.2957638274619967e-14}, /* L752 */
-{8.0511415204034709e+00, 6.7307270867900115e-13,
- 2.2204460492503131e-16, -1.7796875084741259e-13,
- -1.5210055437364645e-14}, /* L753 */
-{9.0146030818080014e+00, 7.5461858983771890e-13,
- 2.2204460492503131e-16, -6.2649885279597584e-13,
- -2.9676261448230434e-13}, /* L754 */
-{7.7170651554010510e+00, 6.4685756751003964e-13,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- 2.6645352591003757e-14}, /* L755 */
-{7.9512360896899192e+00, 6.6736893788998941e-13,
- 2.2204460492503131e-16, -1.1379786002407855e-13,
- -4.7661874447157970e-13}, /* L756 */
-{7.7668550543468671e+00, 6.5275562732836079e-13,
- 2.2204460492503131e-16, 1.0569323194431490e-13,
- 2.9465319073551655e-13}, /* L757 */
-{9.1309510814102719e+00, 7.6841311091868647e-13,
- 2.2204460492503131e-16, 1.9007018181582680e-13,
- 3.4527936065842368e-13}, /* L758 */
-{6.3952670068392203e+00, 5.3890225615305098e-13,
- 2.2204460492503131e-16, 9.3480778673438181e-14,
- -6.2405636214180049e-13}, /* L759 */
-{7.1490244369556519e+00, 6.0321192485446318e-13,
- 2.2204460492503131e-16, 6.3549165929543960e-13,
- -3.6415315207705135e-14}, /* L760 */
-{9.2204481870868147e+00, 7.7901574080385672e-13,
- 2.2204460492503131e-16, -2.6312285683616210e-14,
- 4.8649972939074360e-13}, /* L761 */
-{7.0767828186329744e+00, 5.9868776602911566e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- 7.1498362785860081e-14}, /* L762 */
-{9.0580090484084312e+00, 7.6730288789406131e-13,
- 2.2204460492503131e-16, -3.6870506647801449e-13,
- 1.6164847238542279e-13}, /* L763 */
-{8.6135607100861673e+00, 7.3061001693019989e-13,
- 2.2204460492503131e-16, -5.0515147620444623e-14,
- -1.3966605649784469e-13}, /* L764 */
-{9.3460931767114683e+00, 7.9378170703137130e-13,
- 2.2204460492503131e-16, -3.6382008516966380e-13,
- 7.6139095028793236e-13}, /* L765 */
-{8.1175062796307191e+00, 6.9033667671192234e-13,
- 2.2204460492503131e-16, 3.6926017799032707e-13,
- -3.9523939676655573e-14}, /* L766 */
-{7.7703532795437686e+00, 6.6167644280357152e-13,
- 2.2204460492503131e-16, -4.6729287106472839e-13,
- -2.8921309791485328e-13}, /* L767 */
-{6.7864690403882921e+00, 5.7864824043463159e-13,
- 2.2204460492503131e-16, 7.5939254884360707e-14,
- -4.0289993563646931e-13}, /* L768 */
-{7.6716635990797180e+00, 6.5497607337761110e-13,
- 2.2204460492503131e-16, -3.9024339315574252e-13,
- 6.8722805224297190e-13}, /* L769 */
-{8.2159220532193498e+00, 7.0235484095348966e-13,
- 2.2204460492503131e-16, -1.2934098236883074e-13,
- -4.0090153419214403e-13}, /* L770 */
-{9.9262478267255894e+00, 8.4966755853344011e-13,
- 2.2204460492503131e-16, -3.7569947153315297e-13,
- 1.4011014570769476e-13}, /* L771 */
-{7.6671105420495307e+00, 6.5714100827563016e-13,
- 2.2204460492503131e-16, 4.5741188614556449e-14,
- 2.1538326677728037e-14}, /* L772 */
-{6.2600357497146764e+00, 5.3723692161611325e-13,
- 2.2204460492503131e-16, -9.0771834493352799e-13,
- 9.5679020262195991e-13}, /* L773 */
-{6.9344424650668897e+00, 5.9588445289193714e-13,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -4.1078251911130792e-15}, /* L774 */
-{7.9638835324175661e+00, 6.8522965079864662e-13,
- 2.2204460492503131e-16, -1.2467804566540508e-13,
- 2.7533531010703882e-14}, /* L775 */
-{6.6958868528083499e+00, 5.7687188359523134e-13,
- 2.2204460492503131e-16, -2.8477220581635265e-13,
- -7.3385741927722847e-14}, /* L776 */
-{9.4272993007967809e+00, 8.1323836553792717e-13,
- 2.2204460492503131e-16, 1.0569323194431490e-13,
- -2.5202062658991053e-14}, /* L777 */
-{9.0597829312097833e+00, 7.8254069890704159e-13,
- 2.2204460492503131e-16, -7.3829831137572910e-14,
- 4.7961634663806763e-14}, /* L778 */
-{8.3023237533164647e+00, 7.1803674117631999e-13,
- 2.2204460492503131e-16, -2.6378899065093719e-13,
- 3.8591352335970441e-13}, /* L779 */
-{1.1273735735366229e+01, 9.7627461670413140e-13,
- 2.2204460492503131e-16, -3.9412917374193057e-14,
- -2.3869795029440866e-14}, /* L780 */
-{7.8828549464309541e+00, 6.8350880511047762e-13,
- 2.2204460492503131e-16, 5.0315307476012094e-13,
- 7.9181106116266164e-13}, /* L781 */
-{7.2281124268610917e+00, 6.2753968688156192e-13,
- 2.2204460492503131e-16, -7.1720407390785113e-14,
- 2.0095036745715333e-13}, /* L782 */
-{7.8001400202558973e+00, 6.7806871228981436e-13,
- 2.2204460492503131e-16, 4.2721381987576024e-13,
- -1.1379786002407855e-13}, /* L783 */
-{8.1007780867734738e+00, 7.0510264293943692e-13,
- 2.2204460492503131e-16, 1.5742962489184720e-13,
- -4.7373216460755430e-13}, /* L784 */
-{8.0063820584721519e+00, 6.9777517097691089e-13,
- 2.2204460492503131e-16, 2.3625545964023331e-13,
- 4.2854608750531042e-14}, /* L785 */
-{9.3683353911756662e+00, 8.1751272418273402e-13,
- 2.2204460492503131e-16, -1.5709655798445965e-13,
- -8.5487172896137054e-14}, /* L786 */
-{9.8653268733618802e+00, 8.6197715631897154e-13,
- 2.2204460492503131e-16, -4.2188474935755949e-14,
- 1.4011014570769476e-13}, /* L787 */
-{7.6225532698072138e+00, 6.6686239863500418e-13,
- 2.2204460492503131e-16, -1.5087930904655877e-13,
- 1.1057821325266559e-13}, /* L788 */
-{9.2962757566792416e+00, 8.1432083298693669e-13,
- 2.2204460492503131e-16, -1.1596279492209760e-12,
- 4.5252690483721381e-13}, /* L789 */
-{7.8417845239347139e+00, 6.8778316375528448e-13,
- 2.2204460492503131e-16, 1.8918200339612667e-13,
- 7.5273121069585613e-14}, /* L790 */
-{1.0031937445661887e+01, 8.8098972561567734e-13,
- 2.2204460492503131e-16, 2.7444713168733870e-13,
- 1.3100631690576847e-14}, /* L791 */
-{9.7733740053005729e+00, 8.5936813221110242e-13,
- 2.2204460492503131e-16, -1.4068746168049984e-12,
- 1.2632117574185031e-12}, /* L792 */
-{8.1570116083399462e+00, 7.1814776347878251e-13,
- 2.2204460492503131e-16, -1.4277468096679513e-13,
- -3.5971225997855072e-14}, /* L793 */
-{8.3942197927261670e+00, 7.3996364591266683e-13,
- 2.2204460492503131e-16, 5.6932236702778027e-13,
- -7.3618888762894130e-13}, /* L794 */
-{8.9644795521205562e+00, 7.9122819407473344e-13,
- 2.2204460492503131e-16, 6.3127281180186401e-13,
- -3.6270986214503864e-13}, /* L795 */
-{9.0091222539477940e+00, 7.9616868653431538e-13,
- 2.2204460492503131e-16, 2.0272672429655358e-13,
- -2.2903900998016979e-13}, /* L796 */
-{8.5225981387605927e+00, 7.5411898947663758e-13,
- 2.2204460492503131e-16, 6.3948846218409017e-14,
- -5.0182080713057076e-14}, /* L797 */
-{8.9649264247308160e+00, 7.9425355181683699e-13,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- -1.5210055437364645e-14}, /* L798 */
-{1.0153176218971900e+01, 9.0065455093935043e-13,
- 2.2204460492503131e-16, -9.2370555648813024e-14,
- -3.7181369094696493e-13}, /* L799 */
-{6.8540733137181205e+00, 6.0876303997758896e-13,
- 2.2204460492503131e-16, -1.7774670624248756e-13,
- 9.2814644858663087e-14}, /* L800 */
-{1.0262812696080609e+01, 9.1265883739310993e-13,
- 2.2204460492503131e-16, -4.0745185003743245e-14,
- 2.0650148258027912e-14}, /* L801 */
-{9.3971469955077058e+00, 8.3671958250874923e-13,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- -2.5979218776228663e-14}, /* L802 */
-{8.8044970789588568e+00, 7.8492767840998567e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-13,
- 4.2055248172800930e-13}, /* L803 */
-{8.1179582368654284e+00, 7.2462348621460393e-13,
- 2.2204460492503131e-16, -2.6978419498391304e-14,
- 9.7699626167013776e-15}, /* L804 */
-{7.9571554111933915e+00, 7.1115335842364402e-13,
- 2.2204460492503131e-16, 6.2172489379008766e-14,
- -5.8397731095283234e-14}, /* L805 */
-{1.0999707180613436e+01, 9.8429597805704816e-13,
- 2.2204460492503131e-16, 4.9071857688431919e-14,
- 2.6312285683616210e-13}, /* L806 */
-{9.2162475021254160e+00, 8.2572837456496018e-13,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- -1.0891287871572786e-13}, /* L807 */
-{1.1011155986237982e+01, 9.8776542500900177e-13,
- 2.2204460492503131e-16, 1.6253665080512292e-13,
- 4.9515946898281982e-14}, /* L808 */
-{9.4715847826933111e+00, 8.5070839261902620e-13,
- 2.2204460492503131e-16, 3.0198066269804258e-14,
- 1.3389289676979388e-13}, /* L809 */
-{8.8274830629839229e+00, 7.9383721818260256e-13,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- 5.5955240441107890e-14}, /* L810 */
-{9.1177702421295681e+00, 8.2095441555907200e-13,
- 2.2204460492503131e-16, 4.9960036108132044e-14,
- 1.9828583219805296e-13}, /* L811 */
-{7.7413915239861826e+00, 6.9788619327937340e-13,
- 2.2204460492503131e-16, 2.0627943797535409e-13,
- -1.5554224574998443e-13}, /* L812 */
-{8.3662493618442042e+00, 7.5514594577441585e-13,
- 2.2204460492503131e-16, 4.9737991503207013e-13,
- -1.8562928971732617e-13}, /* L813 */
-{9.8151260504972004e+00, 8.8701268552426882e-13,
- 2.2204460492503131e-16, 3.6814995496570191e-13,
- -4.8938630925476900e-13}, /* L814 */
-{8.1251661933612400e+00, 7.3518968690677866e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-13,
- -3.5105252038647450e-13}, /* L815 */
-{7.8564002627408431e+00, 7.1174316440547614e-13,
- 2.2204460492503131e-16, 4.1722181265413383e-13,
- -2.1671553440683056e-13}, /* L816 */
-{1.0989613421620609e+01, 9.9681374265969680e-13,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- 3.3528735343679728e-14}, /* L817 */
-{7.6917908639907449e+00, 6.9853844930634068e-13,
- 2.2204460492503131e-16, -2.7311486405778851e-13,
- -2.5490720645393594e-13}, /* L818 */
-{9.9505651496248699e+00, 9.0477625391827132e-13,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 3.8413716652030416e-14}, /* L819 */
-{1.0474406769448130e+01, 9.5357055585054695e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- 3.4638958368304884e-14}, /* L820 */
-{9.3471523840972708e+00, 8.5198514909734513e-13,
- 2.2204460492503131e-16, 1.2811973704174306e-13,
- 5.3290705182007514e-14}, /* L821 */
-{9.1748928207892924e+00, 8.3730244959667743e-13,
- 2.2204460492503131e-16, 3.4838798512737412e-13,
- 3.2995828291859652e-13}, /* L822 */
-{7.6124056917937111e+00, 6.9555472492766057e-13,
- 2.2204460492503131e-16, 4.2499337382650992e-13,
- 3.7481129311345285e-13}, /* L823 */
-{1.0435999474658935e+01, 9.5470853445078774e-13,
- 2.2204460492503131e-16, 2.9753977059954195e-14,
- -1.6153745008296028e-13}, /* L824 */
-{8.6345590773439298e+00, 7.9086737159173026e-13,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- -2.4080737404119645e-13}, /* L825 */
-{7.1454410554881882e+00, 6.5526750692157520e-13,
- 2.2204460492503131e-16, 3.8857805861880479e-14,
- 5.9463545198923384e-13}, /* L826 */
-{8.2073890068956512e+00, 7.5356387796432500e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- 8.8151708155237429e-14}, /* L827 */
-{8.9788789003189802e+00, 8.2539530765757263e-13,
- 2.2204460492503131e-16, -4.8516746176119341e-14,
- -2.7011726189130059e-13}, /* L828 */
-{1.1247906768776405e+01, 1.0352274593117272e-12,
- 2.2204460492503131e-16, 1.7856827128071018e-12,
- -2.3888668820859493e-12}, /* L829 */
-{1.4267115882790330e+01, 1.3146914112915908e-12,
- 2.2204460492503131e-16, -3.6903813338540203e-13,
- 4.8405723873656825e-14}, /* L830 */
-{9.3177042311755276e+00, 8.5964568796725871e-13,
- 2.2204460492503131e-16, 5.6292748240593937e-12,
- 4.0194514383529167e-12}, /* L831 */
-{9.8466952226890037e+00, 9.0954327403025559e-13,
- 2.2204460492503131e-16, -4.1422421048764591e-13,
- -7.6938455606523348e-13}, /* L832 */
-{8.5948514953303921e+00, 7.9486417448038083e-13,
- 2.2204460492503131e-16, 2.8443913890896511e-13,
- 2.7000623958883807e-13}, /* L833 */
-{8.8087668952346743e+00, 8.1562534504087125e-13,
- 2.2204460492503131e-16, 6.2594374128366326e-13,
- -1.3617995620052170e-12}, /* L834 */
-{9.6566020616241381e+00, 8.9520058033087935e-13,
- 2.2204460492503131e-16, 5.3979043457275111e-13,
- -1.9628743075372768e-13}, /* L835 */
-{9.5675988269251526e+00, 8.8801188624643146e-13,
- 2.2204460492503131e-16, -1.7319479184152442e-13,
- 3.4416913763379853e-14}, /* L836 */
-{9.8064670846328816e+00, 9.1127105861232849e-13,
- 2.2204460492503131e-16, 6.3060667798708891e-14,
- 4.3298697960381105e-14}, /* L837 */
-{6.9284118856561259e+00, 6.4459548809736589e-13,
- 2.2204460492503131e-16, 1.7053025658242404e-13,
- 1.3433698597964394e-13}, /* L838 */
-{9.0184141091925465e+00, 8.4004331268872079e-13,
- 2.2204460492503131e-16, 1.1235457009206584e-13,
- -8.4110496345601860e-13}, /* L839 */
-{8.7113232677223849e+00, 8.1240569826945830e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 2.6645352591003757e-15}, /* L840 */
-{8.9916907617526984e+00, 8.3955065122154338e-13,
- 2.2204460492503131e-16, -7.8537176761983574e-13,
- -6.7723604502134549e-15}, /* L841 */
-{8.9554773120016549e+00, 8.3716367171859929e-13,
- 2.2204460492503131e-16, -4.1888714719107156e-13,
- 1.3944401189291966e-13}, /* L842 */
-{8.1085537181598077e+00, 7.5889294848252575e-13,
- 2.2204460492503131e-16, -1.8022250358740166e-12,
- 2.1767032620800819e-12}, /* L843 */
-{6.3753062668792131e+00, 5.9738325397518111e-13,
- 2.2204460492503131e-16, 9.2015284280932974e-13,
- -1.1829426327381043e-12}, /* L844 */
-{6.9753068629793482e+00, 6.5437932850187508e-13,
- 2.2204460492503131e-16, 1.0902390101819037e-13,
- 3.9301895071730542e-14}, /* L845 */
-{9.3367464091360812e+00, 8.7695128936360334e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- 9.4813046302988369e-14}, /* L846 */
-{8.3182687318184527e+00, 7.8221457089355795e-13,
- 2.2204460492503131e-16, 1.7430501486614958e-13,
- -1.5820678100908481e-13}, /* L847 */
-{9.0244835776105106e+00, 8.4962592517001667e-13,
- 2.2204460492503131e-16, -2.8432811660650259e-13,
- -1.1513012765362873e-13}, /* L848 */
-{9.9347918814930889e+00, 9.3643148790789610e-13,
- 2.2204460492503131e-16, 3.1530333899354446e-14,
- -7.6938455606523348e-14}, /* L849 */
-{9.1970733338090263e+00, 8.6791684950071613e-13,
- 2.2204460492503131e-16, 1.2434497875801753e-13,
- 2.6090241078691179e-13}, /* L850 */
-{7.6554174833676889e+00, 7.2328254496767386e-13,
- 2.2204460492503131e-16, 3.1938895972416503e-12,
- -2.1015411633129588e-12}, /* L851 */
-{8.2320589091379368e+00, 7.7867746972604124e-13,
- 2.2204460492503131e-16, 1.3877787807814457e-13,
- 3.9301895071730542e-14}, /* L852 */
-{7.4452051812794373e+00, 7.0507488736382129e-13,
- 2.2204460492503131e-16, 8.7196916354059795e-13,
- -4.7795101210112989e-13}, /* L853 */
-{1.0113013613444698e+01, 9.5884411521751645e-13,
- 2.2204460492503131e-16, 1.3100631690576847e-13,
- 5.4400928206632670e-14}, /* L854 */
-{1.0413759119881194e+01, 9.8851482555062375e-13,
- 2.2204460492503131e-16, 2.0694557179012918e-13,
- 1.8747225993820393e-12}, /* L855 */
-{7.3998364411266042e+00, 7.0324301937318978e-13,
- 2.2204460492503131e-16, 8.4821039081361960e-14,
- -1.8685053504441385e-13}, /* L856 */
-{9.2454929997491213e+00, 8.7967133577393497e-13,
- 2.2204460492503131e-16, -4.2299497238218464e-14,
- -4.5963233219481481e-14}, /* L857 */
-{9.8286868353851187e+00, 9.3625107666639451e-13,
- 2.2204460492503131e-16, 1.6502355038028327e-12,
- 3.9463987633325814e-12}, /* L858 */
-{8.4691635364532445e+00, 8.0768725041480138e-13,
- 2.2204460492503131e-16, -7.8981265971833636e-13,
- 1.1657341758564144e-12}, /* L859 */
-{7.5886747630495819e+00, 7.2455930144599279e-13,
- 2.2204460492503131e-16, -1.1372902619655179e-11,
- -2.1447288389708774e-12}, /* L860 */
-{7.8618010214998941e+00, 7.5150996536876846e-13,
- 2.2204460492503131e-16, 9.0150109599562711e-14,
- 2.8577140653851529e-13}, /* L861 */
-{1.0041779184052107e+01, 9.6100905011553550e-13,
- 2.2204460492503131e-16, -3.5826897004653802e-13,
- 3.2951419370874646e-13}, /* L862 */
-{1.0351406829750047e+01, 9.9178998347326797e-13,
- 2.2204460492503131e-16, 1.0569323194431490e-13,
- 9.8365759981788869e-14}, /* L863 */
-{1.1348397534065148e+01, 1.0885736756449660e-12,
- 2.2204460492503131e-16, 4.0856207306205761e-14,
- 2.2715163083830703e-13}, /* L864 */
-{9.3971246524926855e+00, 9.0244478556655849e-13,
- 2.2204460492503131e-16, 3.2374103398069565e-13,
- -3.6892711108293952e-13}, /* L865 */
-{1.1118377818631906e+01, 1.0689782392603320e-12,
- 2.2204460492503131e-16, -3.8880010322372982e-13,
- -5.1447734961129754e-13}, /* L866 */
-{6.7906681531239945e+00, 6.5364380574806091e-13,
- 2.2204460492503131e-16, 2.6045832157706172e-13,
- -2.2581936320875684e-13}, /* L867 */
-{9.7062365117534704e+00, 9.3536289824669439e-13,
- 2.2204460492503131e-16, 2.2826185386293218e-13,
- 1.0880185641326534e-13}, /* L868 */
-{7.3974512567412658e+00, 7.1369299359247407e-13,
- 2.2204460492503131e-16, -1.2012613126444194e-13,
- 1.8873791418627661e-14}, /* L869 */
-{9.1740087266918966e+00, 8.8611062931676088e-13,
- 2.2204460492503131e-16, -1.4850343177386094e-12,
- 1.5665246877460959e-12}, /* L870 */
-{1.0797232878722047e+01, 1.0440953657209207e-12,
- 2.2204460492503131e-16, -3.2418512319054571e-14,
- -4.7117865165091644e-13}, /* L871 */
-{8.5705410447332522e+00, 8.2972517745361074e-13,
- 2.2204460492503131e-16, 4.9693582582222007e-13,
- 1.0214051826551440e-13}, /* L872 */
-{8.6861534521969350e+00, 8.4188211957325620e-13,
- 2.2204460492503131e-16, 8.0602191587786365e-14,
- 9.1038288019262836e-15}, /* L873 */
-{1.0973129440523874e+01, 1.0647593917667564e-12,
- 2.2204460492503131e-16, -6.0407234769854767e-13,
- -1.7397194795876203e-13}, /* L874 */
-{9.8854441677605731e+00, 9.6031516072514478e-13,
- 2.2204460492503131e-16, -1.7363888105137448e-13,
- -1.9961809982760315e-13}, /* L875 */
-{8.0462455713145253e+00, 7.8254069890704159e-13,
- 2.2204460492503131e-16, 5.4578563890572696e-13,
- 1.6497914145929826e-12}, /* L876 */
-{7.8107306810781569e+00, 7.6050277186823223e-13,
- 2.2204460492503131e-16, 1.1546319456101628e-13,
- -6.8345329395924637e-13}, /* L877 */
-{9.2690920726535246e+00, 9.0352725301556802e-13,
- 2.2204460492503131e-16, -8.8151708155237429e-14,
- -4.2155168245017194e-13}, /* L878 */
-{6.7559833552078921e+00, 6.5930594317364921e-13,
- 2.2204460492503131e-16, 1.5853984791647235e-13,
- 6.0396132539608516e-14}, /* L879 */
-{9.9505838808073204e+00, 9.7216679151301832e-13,
- 2.2204460492503131e-16, 5.1196824557564469e-12,
- 1.8134382884227307e-12}, /* L880 */
-{8.6180612698383943e+00, 8.4293683144665010e-13,
- 2.2204460492503131e-16, 5.4001247917767614e-13,
- 8.5043083686286991e-14}, /* L881 */
-{8.5439477201128682e+00, 8.3663631578190234e-13,
- 2.2204460492503131e-16, 8.7663210024402360e-13,
- 2.2719603975929203e-12}, /* L882 */
-{8.4170065730201813e+00, 8.2514052014703854e-13,
- 2.2204460492503131e-16, 3.9634961979118088e-13,
- 7.9847239931041258e-13}, /* L883 */
-{7.5000118328168002e+00, 7.3607786532647879e-13,
- 2.2204460492503131e-16, -4.9515946898281982e-14,
- -1.3156142841808105e-13}, /* L884 */
-{1.0622615629431015e+01, 1.0437206654501097e-12,
- 2.2204460492503131e-16, -3.1308289294429414e-14,
- 2.5313084961453569e-13}, /* L885 */
-{8.4164918340357762e+00, 8.2789330946297923e-13,
- 2.2204460492503131e-16, 5.4778404035005224e-13,
- 7.3274719625260332e-15}, /* L886 */
-{9.0377820154528763e+00, 8.9001028769075674e-13,
- 2.2204460492503131e-16, -4.3298697960381105e-15,
- -1.3988810110276972e-14}, /* L887 */
-{1.0015218503779181e+01, 9.8737684695038297e-13,
- 2.2204460492503131e-16, -2.7011726189130059e-13,
- -8.1490370007486490e-14}, /* L888 */
-{9.8116015315750875e+00, 9.6839203322929279e-13,
- 2.2204460492503131e-16, 1.9539925233402755e-14,
- 4.9071857688431919e-14}, /* L889 */
-{7.6733267129990290e+00, 7.5819905909213503e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-13,
- 2.9110047705671604e-13}, /* L890 */
-{1.1874317275155715e+01, 1.1746159600534156e-12,
- 2.2204460492503131e-16, -1.3200551762793111e-13,
- 1.1213252548714081e-13}, /* L891 */
-{8.8010228540451401e+00, 8.7158058548197914e-13,
- 2.2204460492503131e-16, -1.8363088827300089e-13,
- -2.9976021664879227e-15}, /* L892 */
-{9.3078254352992627e+00, 9.2280350028062230e-13,
- 2.2204460492503131e-16, -1.4765966227514582e-13,
- -1.2279066652354231e-13}, /* L893 */
-{1.1438496793770033e+01, 1.1353140649816851e-12,
- 2.2204460492503131e-16, 5.0115467331579566e-13,
- -2.1791457527342573e-12}, /* L894 */
-{1.0807279620496514e+01, 1.0738632205686827e-12,
- 2.2204460492503131e-16, 3.9692693576398597e-12,
- -1.4368506384698776e-12}, /* L895 */
-{7.7427577515155717e+00, 7.7021722333370235e-13,
- 2.2204460492503131e-16, 6.7945649107059580e-14,
- -9.2481577951275540e-14}, /* L896 */
-{1.1237545600220363e+01, 1.1191117477160617e-12,
- 2.2204460492503131e-16, -2.7877700148337681e-13,
- -1.0176304243714185e-12}, /* L897 */
-{1.1951021082380818e+01, 1.1914913500277180e-12,
- 2.2204460492503131e-16, 1.3278267374516872e-13,
- 4.0190073491430667e-14}, /* L898 */
-{9.6871676750559459e+00, 9.6686547657043320e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 1.0613732115416497e-13}, /* L899 */
-{9.2983480034000330e+00, 9.2909013815756225e-13,
- 2.2204460492503131e-16, 1.8651746813702630e-13,
- 6.2172489379008766e-15}, /* L900 */
-{1.3793861940187897e+01, 1.3798129305797602e-12,
- 2.2204460492503131e-16, -1.6336931807359178e-12,
- -1.3139489496438728e-12}, /* L901 */
-{1.0151762136235071e+01, 1.0166173458614480e-12,
- 2.2204460492503131e-16, -1.3578027591165664e-13,
- 1.1501910535116622e-13}, /* L902 */
-{9.4137745420918506e+00, 9.4375895987042213e-13,
- 2.2204460492503131e-16, -3.1596947280831955e-13,
- 1.7230661342182430e-13}, /* L903 */
-{1.0279883475243905e+01, 1.0317302567841580e-12,
- 2.2204460492503131e-16, 1.3735679260662437e-12,
- 8.2445161808664125e-13}, /* L904 */
-{8.5530521682371798e+00, 8.5936813221110242e-13,
- 2.2204460492503131e-16, 4.8672177399566863e-13,
- 3.4994229736184934e-13}, /* L905 */
-{1.0577831258254472e+01, 1.0639822356495188e-12,
- 2.2204460492503131e-16, -1.4233059175694507e-13,
- -1.2623235789988030e-13}, /* L906 */
-{1.1622124179743357e+01, 1.1703138458329931e-12,
- 2.2204460492503131e-16, 2.0805579481475434e-13,
- -3.3151259515307174e-13}, /* L907 */
-{9.8537462731777996e+00, 9.9333735681383928e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-13,
- -6.3360428015357684e-13}, /* L908 */
-{9.9279584576897477e+00, 1.0019207685729725e-12,
- 2.2204460492503131e-16, -1.8740564655672642e-13,
- 3.2418512319054571e-14}, /* L909 */
-{1.1652490911680289e+01, 1.1772527397369004e-12,
- 2.2204460492503131e-16, 1.1857181902996672e-13,
- 6.2838623193783860e-14}, /* L910 */
-{1.0307062090250291e+01, 1.0424681951004544e-12,
- 2.2204460492503131e-16, 1.2800871473928055e-12,
- 1.0502709812953981e-12}, /* L911 */
-{1.1535654164464855e+01, 1.1680101330568959e-12,
- 2.2204460492503131e-16, 1.1785239451000962e-11,
- -2.3314683517128287e-15}, /* L912 */
-{1.0132819929655659e+01, 1.0270950756563479e-12,
- 2.2204460492503131e-16, 1.9739765377835283e-13,
- 5.4289905904170155e-13}, /* L913 */
-{8.3161372998585179e+00, 8.4387358212367758e-13,
- 2.2204460492503131e-16, -2.0095036745715333e-14,
- -1.1324274851176597e-14}, /* L914 */
-{1.0084715364276265e+01, 1.0244582959728632e-12,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- -1.8440804439023850e-13}, /* L915 */
-{8.9963296955587779e+00, 9.1489316123016806e-13,
- 2.2204460492503131e-16, -1.0509371151101732e-12,
- 5.9963145560004705e-12}, /* L916 */
-{9.9384017213244320e+00, 1.0118017534921364e-12,
- 2.2204460492503131e-16, 2.1160850849355484e-13,
- 5.3290705182007514e-14}, /* L917 */
-{8.2697910962924492e+00, 8.4284315637894736e-13,
- 2.2204460492503131e-16, -2.9981572780002352e-11,
- -7.7916562091218111e-11}, /* L918 */
-{1.1825270288937995e+01, 1.2065244636705330e-12,
- 2.2204460492503131e-16, -6.3826721685700250e-13,
- -2.1005419625907962e-12}, /* L919 */
-{1.1538061681930994e+01, 1.1785017406396037e-12,
- 2.2204460492503131e-16, 2.3692159345500841e-13,
- -1.8596235662471372e-13}, /* L920 */
-{8.8450193836923994e+00, 9.0441543143526815e-13,
- 2.2204460492503131e-16, -5.8397731095283234e-13,
- 1.1068923555512811e-12}, /* L921 */
-{1.0264387126941537e+01, 1.0506873149296325e-12,
- 2.2204460492503131e-16, -4.0845105075959509e-13,
- -9.1127105861232849e-13}, /* L922 */
-{9.4886390222721655e+00, 9.7233332496671210e-13,
- 2.2204460492503131e-16, 9.8010488613908819e-13,
- 1.3220535777236364e-12}, /* L923 */
-{9.9967690186098501e+00, 1.0255130078462571e-12,
- 2.2204460492503131e-16, -5.3543836031622050e-12,
- -5.4796167603399226e-12}, /* L924 */
-{9.3189336214453569e+00, 9.5701224722688494e-13,
- 2.2204460492503131e-16, 1.0784706461208771e-12,
- -6.3793414994961495e-13}, /* L925 */
-{1.0413623341090959e+01, 1.0705880626460385e-12,
- 2.2204460492503131e-16, -2.8976820942716586e-14,
- -3.2063240951174521e-13}, /* L926 */
-{8.2756333369792312e+00, 8.5170759334118884e-13,
- 2.2204460492503131e-16, 5.0892623448817176e-13,
- 5.4356519285647664e-13}, /* L927 */
-{8.1724266867889330e+00, 8.4199314187571872e-13,
- 2.2204460492503131e-16, 4.4830805734363821e-13,
- -4.0034642267983145e-13}, /* L928 */
-{9.9908661393972142e+00, 1.0304535003058390e-12,
- 2.2204460492503131e-16, -9.2514884642014295e-13,
- 3.4261482539932331e-13}, /* L929 */
-{6.8387204668620525e+00, 7.0610184366159956e-13,
- 2.2204460492503131e-16, 5.6821214400315512e-13,
- -6.9499961341534799e-14}, /* L930 */
-{1.0777138378030795e+01, 1.1139422717576508e-12,
- 2.2204460492503131e-16, -1.8318679906315083e-14,
- 2.3447910280083306e-13}, /* L931 */
-{9.6877835246949182e+00, 1.0024203689340538e-12,
- 2.2204460492503131e-16, 1.1191048088221578e-13,
- 2.0063950501025829e-12}, /* L932 */
-{9.6980324496184576e+00, 1.0045575482564573e-12,
- 2.2204460492503131e-16, 2.0472512574087887e-13,
- -2.6878499426175040e-13}, /* L933 */
-{7.2312747921227718e+00, 7.4984463083183073e-13,
- 2.2204460492503131e-16, 6.9344530118087278e-13,
- 4.7584158835434209e-13}, /* L934 */
-{8.5139171757804135e+00, 8.8379303875285586e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- -2.3647750424515834e-14}, /* L935 */
-{8.3138151999186523e+00, 8.6394433274072924e-13,
- 2.2204460492503131e-16, 1.2556622408510520e-12,
- -4.5208281562736374e-12}, /* L936 */
-{1.0372481679559685e+01, 1.0790257576331896e-12,
- 2.2204460492503131e-16, 1.8651746813702630e-14,
- 1.6120438317557273e-13}, /* L937 */
-{9.8960710501762303e+00, 1.0305645226083016e-12,
- 2.2204460492503131e-16, 8.9506180245280120e-13,
- 3.9968028886505635e-14}, /* L938 */
-{8.3435967633244168e+00, 8.6981810643038671e-13,
- 2.2204460492503131e-16, 3.5704772471945034e-13,
- 7.8381745538536052e-14}, /* L939 */
-{1.0139111741216380e+01, 1.0581258091946211e-12,
- 2.2204460492503131e-16, -2.8577140653851529e-13,
- -2.6778579353958776e-13}, /* L940 */
-{8.7599683238501864e+00, 9.1516984962458636e-13,
- 2.2204460492503131e-16, -2.7455815398980121e-13,
- 1.9984014443252818e-15}, /* L941 */
-{9.1714582065930017e+00, 9.5917718212490399e-13,
- 2.2204460492503131e-16, -3.9745984281580604e-13,
- 1.6053824936079764e-13}, /* L942 */
-{1.0159082836098808e+01, 1.0635936575909000e-12,
- 2.2204460492503131e-16, 1.7630341631047486e-13,
- 4.4297898682543746e-13}, /* L943 */
-{9.1324296625344754e+00, 9.5712326952934745e-13,
- 2.2204460492503131e-16, 1.7763568394002505e-14,
- -9.2259533346350509e-14}, /* L944 */
-{8.0301713994163517e+00, 8.4249274223680004e-13,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -4.8738790781044372e-14}, /* L945 */
-{6.8102550923856091e+00, 7.1526118361475710e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-14,
- -1.1446399383885364e-13}, /* L946 */
-{8.8674780540324907e+00, 9.3230978492897520e-13,
- 2.2204460492503131e-16, 1.0724754417879012e-13,
- 4.2321701698710967e-13}, /* L947 */
-{1.0038504162407413e+01, 1.0565437413845302e-12,
- 2.2204460492503131e-16, 7.0410344221727428e-13,
- 2.5468516184901091e-13}, /* L948 */
-{8.0937845844634175e+00, 8.5276230521458274e-13,
- 2.2204460492503131e-16, -9.4702024000525853e-14,
- -2.0794477251229182e-13}, /* L949 */
-{1.0417370551212171e+01, 1.0987322163202862e-12,
- 2.2204460492503131e-16, -2.2645219033279318e-12,
- 3.4183766928208570e-12}, /* L950 */
-{1.0213494464958714e+01, 1.0783630932653665e-12,
- 2.2204460492503131e-16, -2.6578739209526248e-13,
- -1.9917401061775308e-13}, /* L951 */
-{1.4997639621424455e+01, 1.5851486789841829e-12,
- 2.2204460492503131e-16, 8.2378548427186615e-14,
- 2.9798385980939202e-13}, /* L952 */
-{9.7959096631439024e+00, 1.0364487046388149e-12,
- 2.2204460492503131e-16, 1.3122836151069350e-13,
- -1.1768364061026659e-14}, /* L953 */
-{7.6923495812992320e+00, 8.1473716662117113e-13,
- 2.2204460492503131e-16, 4.9849013805669529e-13,
- -2.1392887461502141e-12}, /* L954 */
-{7.6502633444709556e+00, 8.1112894179113937e-13,
- 2.2204460492503131e-16, -7.4162898044960457e-14,
- -9.0205620750793969e-13}, /* L955 */
-{1.3285044557591510e+01, 1.4100387524251801e-12,
- 2.2204460492503131e-16, -6.2228000530240024e-13,
- 1.4677148385544569e-13}, /* L956 */
-{9.5203781223305342e+00, 1.0115241977359801e-12,
- 2.2204460492503131e-16, -6.4614980033184111e-14,
- -1.5676349107707210e-13}, /* L957 */
-{1.0028968647855649e+01, 1.0666745264842348e-12,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- 1.3544720900426910e-13}, /* L958 */
-{8.7497411009737451e+00, 9.3158813996296885e-13,
- 2.2204460492503131e-16, -4.2965631052993558e-14,
- 6.7634786660164536e-13}, /* L959 */
-{1.1219793960947081e+01, 1.1958212198237561e-12,
- 2.2204460492503131e-16, 1.2012613126444194e-13,
- 4.8627768478581856e-13}, /* L960 */
-{1.1526016925064813e+01, 1.2297385332260546e-12,
- 2.2204460492503131e-16, -2.0916601783937949e-13,
- -5.5844218138645374e-14}, /* L961 */
-{1.1970376668146281e+01, 1.2784773240070990e-12,
- 2.2204460492503131e-16, 2.7977620220553945e-14,
- -2.1871393585115584e-14}, /* L962 */
-{1.4350080815993110e+01, 1.5342310755173116e-12,
- 2.2204460492503131e-16, 1.9073631563060189e-13,
- 1.3344880755994382e-13}, /* L963 */
-{8.6418586136039686e+00, 9.2489904623960228e-13,
- 2.2204460492503131e-16, 7.7715611723760958e-14,
- -8.9039886574937555e-14}, /* L964 */
-{9.6844579388594187e+00, 1.0375589276634400e-12,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- 1.0014211682118912e-13}, /* L965 */
-{1.0860768266360658e+01, 1.1647904862854830e-12,
- 2.2204460492503131e-16, 8.1601392309949006e-13,
- 2.3980817331903381e-14}, /* L966 */
-{1.1890385058091161e+01, 1.2765344337140050e-12,
- 2.2204460492503131e-16, -8.8040685852774914e-14,
- -2.4003021792395884e-13}, /* L967 */
-{9.7768615033417596e+00, 1.0507150705052481e-12,
- 2.2204460492503131e-16, 3.9657166439610592e-13,
- -7.2608585810485238e-14}, /* L968 */
-{9.2760596883549109e+00, 9.9792396568432196e-13,
- 2.2204460492503131e-16, -1.8385293287792592e-13,
- -2.1804780203638074e-13}, /* L969 */
-{1.1121136294733217e+01, 1.1976530878143876e-12,
- 2.2204460492503131e-16, -6.5503158452884236e-14,
- -4.4408920985006262e-16}, /* L970 */
-{9.9083439416635564e+00, 1.0681455719918631e-12,
- 2.2204460492503131e-16, 4.3520742565306136e-14,
- 2.0938806244430452e-13}, /* L971 */
-{1.0315845730820786e+01, 1.1132206267916445e-12,
- 2.2204460492503131e-16, -4.5241588253475129e-13,
- 8.3089091162946715e-13}, /* L972 */
-{1.1976079176838949e+01, 1.2937120992539963e-12,
- 2.2204460492503131e-16, -7.0499162063697440e-14,
- -4.4630965589931293e-14}, /* L973 */
-{1.0035037986311428e+01, 1.0851458620564358e-12,
- 2.2204460492503131e-16, -5.5411231159041563e-13,
- -1.9440005161186491e-13}, /* L974 */
-{1.1404104896075522e+01, 1.2344569810807116e-12,
- 2.2204460492503131e-16, 1.7807977314987511e-13,
- -4.6629367034256575e-15}, /* L975 */
-{1.0098875015895359e+01, 1.0942913242217855e-12,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- -7.4384942649885488e-15}, /* L976 */
-{1.0492325584624520e+01, 1.1380896225432480e-12,
- 2.2204460492503131e-16, -1.2767564783189300e-13,
- 3.4550140526334872e-13}, /* L977 */
-{1.0146730091221563e+01, 1.1017298184867741e-12,
- 2.2204460492503131e-16, 7.6827433304060833e-14,
- -5.6621374255882984e-14}, /* L978 */
-{9.9913197141698653e+00, 1.0859646515370969e-12,
- 2.2204460492503131e-16, -1.1912693054227930e-13,
- 5.1447734961129754e-13}, /* L979 */
-{1.0197961268979272e+01, 1.1095568908103814e-12,
- 2.2204460492503131e-16, -1.3178347302300608e-12,
- 1.5523138330308939e-12}, /* L980 */
-{1.1203875889398375e+01, 1.2202461263655096e-12,
- 2.2204460492503131e-16, 2.6134649999676185e-13,
- -7.6938455606523348e-14}, /* L981 */
-{1.0759167169522630e+01, 1.1730061366677091e-12,
- 2.2204460492503131e-16, -1.3156142841808105e-13,
- -9.0438767585965252e-13}, /* L982 */
-{1.0268059068132624e+01, 1.1206036099054018e-12,
- 2.2204460492503131e-16, 4.7073456244106637e-13,
- -8.4221518648064375e-13}, /* L983 */
-{9.7383149994706422e+00, 1.0638712133470563e-12,
- 2.2204460492503131e-16, 1.1346479311669100e-13,
- -1.4577228313328305e-13}, /* L984 */
-{1.0906855022130074e+01, 1.1927403509304213e-12,
- 2.2204460492503131e-16, 2.5013324744804777e-12,
- -6.9222405585378510e-13}, /* L985 */
-{9.7996977442562301e+00, 1.0727529975440575e-12,
- 2.2204460492503131e-16, 4.0145664570445661e-13,
- 2.7133850721838826e-13}, /* L986 */
-{9.9022310015373058e+00, 1.0850764731173967e-12,
- 2.2204460492503131e-16, -9.1149310321725352e-14,
- 9.6367358537463588e-13}, /* L987 */
-{1.2278342591717463e+01, 1.3468115511727774e-12,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- 2.5557334026871104e-13}, /* L988 */
-{1.2528313987542816e+01, 1.3756218386618002e-12,
- 2.2204460492503131e-16, -8.6930462828149757e-14,
- 5.2557957985754911e-13}, /* L989 */
-{8.8651533279456061e+00, 9.7438723756226864e-13,
- 2.2204460492503131e-16, -1.9162449405030202e-13,
- -4.4519943287468777e-13}, /* L990 */
-{8.3218987753590046e+00, 9.1560092840836660e-13,
- 2.2204460492503131e-16, 7.6383344094210770e-14,
- -6.6557870326278135e-13}, /* L991 */
-{9.5539334052569949e+00, 1.0522138715884921e-12,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- 7.8381745538536052e-14}, /* L992 */
-{1.1285500796996919e+01, 1.2441714325461817e-12,
- 2.2204460492503131e-16, 7.3225869812176825e-12,
- -1.6678880498943727e-12}, /* L993 */
-{1.0965545501851667e+01, 1.2101153412658050e-12,
- 2.2204460492503131e-16, -3.2429614549300823e-13,
- 3.4172664697962318e-13}, /* L994 */
-{1.1531158136825695e+01, 1.2738143873036734e-12,
- 2.2204460492503131e-16, -1.0479395129436853e-12,
- -7.1020966885271264e-13}, /* L995 */
-{9.2479938589425519e+00, 1.0226264279822317e-12,
- 2.2204460492503131e-16, -5.2802207051172445e-13,
- 5.6399329650957952e-14}, /* L996 */
-{1.3134029766966524e+01, 1.4537954173832190e-12,
- 2.2204460492503131e-16, 1.6719958750854857e-13,
- -2.3758772726978350e-14}, /* L997 */
-{1.1072647554743570e+01, 1.2268519533620292e-12,
- 2.2204460492503131e-16, 2.0516921495072893e-13,
- 5.8819615844640794e-13}, /* L998 */
-{1.0203455539867686e+01, 1.1316780845760377e-12,
- 2.2204460492503131e-16, 1.7985612998927536e-13,
- -7.1165295878472534e-14}, /* L999 */
-{1.0628970923463212e+01, 1.1800525834271269e-12,
- 2.2204460492503131e-16, 1.9650947535865271e-13,
- 1.2545520178264269e-13}, /* L1000 */
-{1.9227784005705573e+01, 4.2694250912411746e-12,
- 2.2204460492503131e-16, 1.4442003148928961e-11,
- -6.0199623064249863e-12}, /* L1001 */
-{2.6755083341300629e+01, 8.9112328627294346e-12,
- 2.2204460492503131e-16, -2.3353097233780318e-11,
- 3.7361225224685768e-12}, /* L1002 */
-{3.4467629495798228e+01, 1.5367929151466342e-11,
- 2.2204460492503131e-16, 2.3583357489087575e-12,
- -3.5877967263786559e-12}, /* L1003 */
-
-{4.5652300017050720e+01, 2.5342117293547517e-11,
- 2.2204460492503131e-16, -3.6152192350868972e-12,
- -3.5597080838556394e-12}, /* L1004 */
-{4.5981166683409540e+01, 3.0629609959476056e-11,
- 2.2204460492503131e-16, 1.1979306435705439e-11,
- 7.1738170959179115e-12}, /* L1005 */
-{7.0296964106758224e+01, 5.4756588152571339e-11,
- 2.2204460492503131e-16, -1.7002399488319497e-11,
- -1.3789525077356757e-11}, /* L1006 */
-{6.9685399574683572e+01, 6.2156113589395545e-11,
- 2.2204460492503131e-16, 1.5861312263609761e-11,
- 1.7216228442862302e-11}, /* L1007 */
-{7.9836874766207544e+01, 7.9773063155208490e-11,
- 2.2204460492503131e-16, -6.8415606513383409e-11,
- 6.5468896970344304e-10}, /* L1008 */
-{8.7875525021743030e+01, 9.7561431156023559e-11,
- 2.2204460492503131e-16, -2.6137980668750060e-11,
- 8.9828144922421416e-12}, /* L1009 */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1011 */
-}; /* DOUBLE */
-
-#else
-
-
-static struct LinpVals LinpValsA[] = {
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L3 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L4 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L5 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L6 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L7 */
-{2.2189640998840332e-01, 1.0430812835693359e-07,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.5762786865234375e-07}, /* L8 */
-{3.6630606651306152e-01, 1.9371509552001953e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -3.5762786865234375e-07}, /* L9 */
-{4.0575447678565979e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L10 */
-{2.8817784786224365e-01, 1.8626451492309570e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.1920928955078125e-07}, /* L11 */
-{3.1171223521232605e-01, 2.1979212760925293e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -2.3841857910156250e-07}, /* L12 */
-{3.1945201754570007e-01, 2.4586915969848633e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -7.1525573730468750e-07}, /* L13 */
-{5.7529002428054810e-01, 4.7683715820312500e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -4.7683715820312500e-07}, /* L14 */
-{4.1109275817871094e-01, 3.6507844924926758e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 2.3841857910156250e-07}, /* L15 */
-{5.6630027294158936e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- -2.3841857910156250e-07}, /* L16 */
-{2.6649358868598938e-01, 2.6822090148925781e-07,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -4.1723251342773438e-07}, /* L17 */
-{5.5057054758071899e-01, 5.8673322200775146e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 2.3841857910156250e-07}, /* L18 */
-{5.6961244344711304e-01, 6.4074993133544922e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -1.0728836059570312e-06}, /* L19 */
-{5.9146845340728760e-01, 7.0035457611083984e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -8.9406967163085938e-07}, /* L20 */
-{7.7999979257583618e-01, 9.7369775176048279e-07,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -1.4305114746093750e-06}, /* L21 */
-{5.8111280202865601e-01, 7.5995922088623047e-07,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -3.5762786865234375e-07}, /* L22 */
-{3.8146379590034485e-01, 5.2154064178466797e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -2.9802322387695312e-07}, /* L23 */
-{7.7291780710220337e-01, 1.1026859283447266e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -2.3841857910156250e-07}, /* L24 */
-{4.8129647970199585e-01, 7.1525573730468750e-07,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 5.9604644775390625e-07}, /* L25 */
-{8.0987650156021118e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -2.0861625671386719e-06,
- -8.9406967163085938e-07}, /* L26 */
-{9.3771111965179443e-01, 1.5050172805786133e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 7.1525573730468750e-07}, /* L27 */
-{7.3412078619003296e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -3.2186508178710938e-06}, /* L28 */
-{7.7795881032943726e-01, 1.3411045074462891e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 1.4305114746093750e-06}, /* L29 */
-{8.8154238462448120e-01, 1.5720725059509277e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -1.1920928955078125e-07}, /* L30 */
-{7.1159505844116211e-01, 1.3113021850585938e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- -2.3841857910156250e-06}, /* L31 */
-{6.5801620483398438e-01, 1.2516975402832031e-06,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 9.8943710327148438e-06}, /* L32 */
-{7.5202614068984985e-01, 1.4752149581909180e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -3.3974647521972656e-06}, /* L33 */
-{8.4050089120864868e-01, 1.6987323760986328e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.1920928955078125e-06}, /* L34 */
-{1.3582198619842529e+00, 2.8312206268310547e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.1457672119140625e-06}, /* L35 */
-{6.4285701513290405e-01, 1.3783574104309082e-06,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- -1.9669532775878906e-05}, /* L36 */
-{7.0326042175292969e-01, 1.5497207641601562e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -1.9669532775878906e-06}, /* L37 */
-{5.5636250972747803e-01, 1.2591481208801270e-06,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -3.5762786865234375e-07}, /* L38 */
-{6.6078066825866699e-01, 1.5348196029663086e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -7.7486038208007812e-07}, /* L39 */
-{7.0020627975463867e-01, 1.6689300537109375e-06,
- 1.1920928955078125e-07, -1.6111135482788086e-04,
- 3.9136409759521484e-04}, /* L40 */
-{7.2006529569625854e-01, 1.7583370208740234e-06,
- 1.1920928955078125e-07, -1.3709068298339844e-05,
- -1.2695789337158203e-05}, /* L41 */
-{6.9100439548492432e-01, 1.7285346984863281e-06,
- 1.1920928955078125e-07, -4.8279762268066406e-06,
- 5.3644180297851562e-06}, /* L42 */
-{5.4112643003463745e-01, 1.3858079910278320e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -1.1920928955078125e-06}, /* L43 */
-{1.0974416732788086e+00, 2.8759241104125977e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- 4.2915344238281250e-06}, /* L44 */
-{9.1183447837829590e-01, 2.4437904357910156e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -1.9669532775878906e-06}, /* L45 */
-{1.4903097152709961e+00, 4.0829181671142578e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -5.3644180297851562e-07}, /* L46 */
-{5.4293489456176758e-01, 1.5199184417724609e-06,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- 1.6689300537109375e-06}, /* L47 */
-{9.5908516645431519e-01, 2.7418136596679688e-06,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -2.2053718566894531e-06}, /* L48 */
-{6.4285749197006226e-01, 1.8775463104248047e-06,
- 1.1920928955078125e-07, -9.0003013610839844e-06,
- -5.6624412536621094e-06}, /* L49 */
-{6.9000554084777832e-01, 2.0563602447509766e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -2.8014183044433594e-06}, /* L50 */
-{1.1323524713516235e+00, 3.4421682357788086e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -5.1259994506835938e-06}, /* L51 */
-{9.5674163103103638e-01, 2.9653310775756836e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- -2.6226043701171875e-06}, /* L52 */
-{8.7265098094940186e-01, 2.7567148208618164e-06,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -1.2516975402832031e-06}, /* L53 */
-{9.5139855146408081e-01, 3.0621886253356934e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -7.1525573730468750e-07}, /* L54 */
-{1.4636522531509399e+00, 4.7981739044189453e-06,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 1.1920928955078125e-06}, /* L55 */
-{9.9107724428176880e-01, 3.3080577850341797e-06,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- -4.1723251342773438e-06}, /* L56 */
-{1.2105371952056885e+00, 4.1127204895019531e-06,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -6.4373016357421875e-06}, /* L57 */
-{1.3228781223297119e+00, 4.5746564865112305e-06,
- 1.1920928955078125e-07, -1.5282630920410156e-04,
- -8.9704990386962891e-05}, /* L58 */
-{9.2373782396316528e-01, 3.2484531402587891e-06,
- 1.1920928955078125e-07, -3.8743019104003906e-06,
- -9.5367431640625000e-07}, /* L59 */
-{6.9584172964096069e-01, 2.4884939193725586e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 2.3841857910156250e-06}, /* L60 */
-{1.2704985141754150e+00, 4.6193599700927734e-06,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- 7.7486038208007812e-06}, /* L61 */
-{1.1451735496520996e+00, 4.2319297790527344e-06,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -5.9604644775390625e-07}, /* L62 */
-{1.5391918420791626e+00, 5.7797878980636597e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.3113021850585938e-06}, /* L63 */
-{1.9609311819076538e+00, 7.4803829193115234e-06,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -1.0430812835693359e-05}, /* L64 */
-{1.4778996706008911e+00, 5.7257711887359619e-06,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- -2.2053718566894531e-06}, /* L65 */
-{1.0454643964767456e+00, 4.1127204895019531e-06,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- 1.0728836059570312e-06}, /* L66 */
-{1.1492538452148438e+00, 4.5895576477050781e-06,
- 1.1920928955078125e-07, -8.2850456237792969e-06,
- 1.0728836059570312e-06}, /* L67 */
-{1.3051515817642212e+00, 5.2899122238159180e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- -4.8875808715820312e-06}, /* L68 */
-{1.1953181028366089e+00, 4.9173831939697266e-06,
- 1.1920928955078125e-07, -1.2385845184326172e-04,
- -2.7090311050415039e-04}, /* L69 */
-{1.2142846584320068e+00, 5.0663948059082031e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- -2.0861625671386719e-06}, /* L70 */
-{1.2817039489746094e+00, 5.4240226745605469e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- -1.6093254089355469e-06}, /* L71 */
-{9.3055182695388794e-01, 3.9935111999511719e-06,
- 1.1920928955078125e-07, -5.7816505432128906e-06,
- -9.7155570983886719e-06}, /* L72 */
-{1.1335659027099609e+00, 4.9322843551635742e-06,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- 9.5367431640625000e-07}, /* L73 */
-{2.1047501564025879e+00, 9.2834234237670898e-06,
- 1.1920928955078125e-07, -4.4703483581542969e-06,
- -1.4901161193847656e-06}, /* L74 */
-{1.7033433914184570e+00, 7.6144933700561523e-06,
- 1.1920928955078125e-07, -9.5367431640625000e-07,
- 3.5762786865234375e-07}, /* L75 */
-{1.5065851211547852e+00, 6.8247318267822266e-06,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -5.5432319641113281e-06}, /* L76 */
-{1.0162297487258911e+00, 4.6640634536743164e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 1.6689300537109375e-06}, /* L77 */
-{1.8877750635147095e+00, 8.7767839431762695e-06,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -2.2888183593750000e-05}, /* L78 */
-{1.2658354043960571e+00, 5.9604644775390625e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -2.0861625671386719e-06}, /* L79 */
-{1.1489238739013672e+00, 5.4836273193359375e-06,
- 1.1920928955078125e-07, -4.1830539703369141e-04,
- -1.2367963790893555e-04}, /* L80 */
-{1.3086394071578979e+00, 6.3180923461914062e-06,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- 5.0067901611328125e-06}, /* L81 */
-{1.5274313688278198e+00, 7.4654817581176758e-06,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -1.3768672943115234e-05}, /* L82 */
-{1.2891620397567749e+00, 6.3776969909667969e-06,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -4.2319297790527344e-06}, /* L83 */
-{1.4285771846771240e+00, 7.1525573730468750e-06,
- 1.1920928955078125e-07, 1.1324882507324219e-05,
- 3.6954879760742188e-06}, /* L84 */
-{1.1528733968734741e+00, 5.8412551879882812e-06,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- 6.1988830566406250e-06}, /* L85 */
-{1.9709439277648926e+00, 1.0102987289428711e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 3.8146972656250000e-06}, /* L86 */
-{1.7643710374832153e+00, 9.1493129730224609e-06,
- 1.1920928955078125e-07, -9.8347663879394531e-06,
- -3.6358833312988281e-06}, /* L87 */
-{1.0738641023635864e+00, 5.6326389312744141e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 1.1920928955078125e-06}, /* L88 */
-{1.1573083400726318e+00, 6.1392784118652344e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 1.3113021850585938e-06}, /* L89 */
-{1.3638981580734253e+00, 7.3164701461791992e-06,
- 1.1920928955078125e-07, -6.4969062805175781e-06,
- -2.9802322387695312e-07}, /* L90 */
-{1.1813235282897949e+00, 6.4074993133544922e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 1.1920928955078125e-06}, /* L91 */
-{1.5489176511764526e+00, 8.4936618804931641e-06,
- 1.1920928955078125e-07, 7.8678131103515625e-06,
- -8.9406967163085938e-07}, /* L92 */
-{1.6021543741226196e+00, 8.8810920715332031e-06,
- 1.1920928955078125e-07, -7.3909759521484375e-06,
- 2.3841857910156250e-06}, /* L93 */
-{1.3031754493713379e+00, 7.3015689849853516e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-06,
- -8.9406967163085938e-07}, /* L94 */
-{2.0157608985900879e+00, 1.1414289474487305e-05,
- 1.1920928955078125e-07, -1.2934207916259766e-05,
- 9.0599060058593750e-06}, /* L95 */
-{1.2721236944198608e+00, 7.2792172431945801e-06,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- 1.7881393432617188e-06}, /* L96 */
-{1.8401776552200317e+00, 1.0639429092407227e-05,
- 1.1920928955078125e-07, -8.3446502685546875e-06,
- 5.0067901611328125e-06}, /* L97 */
-{1.8954187631607056e+00, 1.1071562767028809e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -5.3048133850097656e-06}, /* L98 */
-{1.2929334640502930e+00, 7.6293945312500000e-06,
- 1.1920928955078125e-07, -4.4107437133789062e-06,
- 8.3446502685546875e-06}, /* L99 */
-{2.3375167846679688e+00, 1.3932585716247559e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- -3.5762786865234375e-07}, /* L100 */
-{1.0742617845535278e+00, 6.4671039581298828e-06,
- 1.1920928955078125e-07, -6.6161155700683594e-06,
- 8.3446502685546875e-07}, /* L101 */
-{1.2107567787170410e+00, 7.3611736297607422e-06,
- 1.1920928955078125e-07, -5.4240226745605469e-06,
- 4.1723251342773438e-06}, /* L102 */
-{1.6795842647552490e+00, 1.0311603546142578e-05,
- 1.1920928955078125e-07, 2.2053718566894531e-05,
- 1.3709068298339844e-05}, /* L103 */
-{1.9423207044601440e+00, 1.2040138244628906e-05,
- 1.1920928955078125e-07, -3.3378601074218750e-06,
- -4.1723251342773438e-07}, /* L104 */
-{1.5333460569381714e+00, 9.5963478088378906e-06,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- 1.1920928955078125e-06}, /* L105 */
-{1.2499825954437256e+00, 7.8976154327392578e-06,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- -9.4771385192871094e-06}, /* L106 */
-{1.5934705734252930e+00, 1.0162591934204102e-05,
- 1.1920928955078125e-07, -4.1127204895019531e-06,
- -1.7285346984863281e-06}, /* L107 */
-{1.3888971805572510e+00, 8.9406967163085938e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -4.8875808715820312e-06}, /* L108 */
-{9.8050159215927124e-01, 6.3702464103698730e-06,
- 1.1920928955078125e-07, -1.1682510375976562e-05,
- -1.3768672943115234e-05}, /* L109 */
-{1.4181925058364868e+00, 9.2983245849609375e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -1.1920928955078125e-07}, /* L110 */
-{1.1531411409378052e+00, 7.6293945312500000e-06,
- 1.1920928955078125e-07, -9.1195106506347656e-06,
- -1.0132789611816406e-06}, /* L111 */
-{1.9910570383071899e+00, 1.3291835784912109e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- -7.5697898864746094e-06}, /* L112 */
-{1.3628201484680176e+00, 9.1791152954101562e-06,
- 1.1920928955078125e-07, -5.7816505432128906e-06,
- -8.3446502685546875e-06}, /* L113 */
-{1.8107148408889771e+00, 1.2303586117923260e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 4.8875808715820312e-06}, /* L114 */
-{2.2564542293548584e+00, 1.5467405319213867e-05,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- -2.5033950805664062e-06}, /* L115 */
-{1.8965284824371338e+00, 1.3113021850585938e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 1.0490417480468750e-05}, /* L116 */
-{1.6067200899124146e+00, 1.1205673217773438e-05,
- 1.1920928955078125e-07, 2.6464462280273438e-05,
- 2.8967857360839844e-05}, /* L117 */
-{2.3613219261169434e+00, 1.6629695892333984e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -1.3784766197204590e-03}, /* L118 */
-{1.6218386888504028e+00, 1.1503696441650391e-05,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- 3.9339065551757812e-06}, /* L119 */
-{2.0958366394042969e+00, 1.4990568161010742e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- -5.3644180297851562e-07}, /* L120 */
-{1.4791064262390137e+00, 1.0669231414794922e-05,
- 1.1920928955078125e-07, 2.6822090148925781e-05,
- -1.2159347534179688e-05}, /* L121 */
-{2.2950832843780518e+00, 1.6689300537109375e-05,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- -3.5166740417480469e-06}, /* L122 */
-{1.4308627843856812e+00, 1.0490417480468750e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- 1.0728836059570312e-06}, /* L123 */
-{1.4757993221282959e+00, 1.0907649993896484e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 1.0609626770019531e-05}, /* L124 */
-{1.6599128246307373e+00, 1.2367963790893555e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- 8.5830688476562500e-06}, /* L125 */
-{1.8831708431243896e+00, 1.4143064618110657e-05,
- 1.1920928955078125e-07, 1.8835067749023438e-05,
- -5.5432319641113281e-06}, /* L126 */
-{2.5118145942687988e+00, 1.9013881683349609e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -7.0929527282714844e-06}, /* L127 */
-{1.7512135505676270e+00, 1.3360753655433655e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 2.2649765014648438e-06}, /* L128 */
-{1.5513629913330078e+00, 1.1928379535675049e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- 2.8610229492187500e-06}, /* L129 */
-{2.5076577663421631e+00, 1.9431114196777344e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- -1.3291835784912109e-05}, /* L130 */
-{1.7846240997314453e+00, 1.3936776667833328e-05,
- 1.1920928955078125e-07, -1.8715858459472656e-05,
- -3.2603740692138672e-05}, /* L131 */
-{1.9204624891281128e+00, 1.5109777450561523e-05,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- -7.1525573730468750e-07}, /* L132 */
-{1.4548920392990112e+00, 1.1533498764038086e-05,
- 1.1920928955078125e-07, -1.1146068572998047e-05,
- 2.5033950805664062e-06}, /* L133 */
-{1.9430928230285645e+00, 1.5519559383392334e-05,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- 4.7683715820312500e-07}, /* L134 */
-{2.2111103534698486e+00, 1.7791986465454102e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -3.8146972656250000e-06}, /* L135 */
-{1.3344289064407349e+00, 1.0818243026733398e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -1.7642974853515625e-05}, /* L136 */
-{1.9726235866546631e+00, 1.6108155250549316e-05,
- 1.1920928955078125e-07, 5.8412551879882812e-06,
- 9.2983245849609375e-06}, /* L137 */
-{1.9057892560958862e+00, 1.5676021575927734e-05,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- 1.7166137695312500e-05}, /* L138 */
-{1.4464863538742065e+00, 1.1984258890151978e-05,
- 1.1920928955078125e-07, 7.7486038208007812e-06,
- -1.3887882232666016e-05}, /* L139 */
-{2.1343657970428467e+00, 1.7821788787841797e-05,
- 1.1920928955078125e-07, 1.5163421630859375e-04,
- 1.7750263214111328e-04}, /* L140 */
-{1.9266402721405029e+00, 1.6191974282264709e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -5.2452087402343750e-06}, /* L141 */
-{1.7077547311782837e+00, 1.4454126358032227e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -5.7816505432128906e-06}, /* L142 */
-{2.1992895603179932e+00, 1.8745660781860352e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -8.8810920715332031e-06}, /* L143 */
-{2.0333840847015381e+00, 1.7452985048294067e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- -1.1265277862548828e-05}, /* L144 */
-{1.5594630241394043e+00, 1.3478100299835205e-05,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- 6.7949295043945312e-06}, /* L145 */
-{2.0273032188415527e+00, 1.7642974853515625e-05,
- 1.1920928955078125e-07, -2.7179718017578125e-05,
- 1.0371208190917969e-05}, /* L146 */
-{1.7959040403366089e+00, 1.5735626220703125e-05,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- 1.5497207641601562e-06}, /* L147 */
-{1.6858024597167969e+00, 1.4871358871459961e-05,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- -4.7683715820312500e-07}, /* L148 */
-{1.8826328516006470e+00, 1.6720412531867623e-05,
- 1.1920928955078125e-07, -2.0146369934082031e-05,
- -1.1861324310302734e-05}, /* L149 */
-{2.3696844577789307e+00, 2.1189451217651367e-05,
- 1.1920928955078125e-07, 1.3470649719238281e-05,
- 3.9577484130859375e-05}, /* L150 */
-{2.4023139476776123e+00, 2.1621584892272949e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-05,
- 1.1920928955078125e-05}, /* L151 */
-{2.0427429676055908e+00, 1.8507242202758789e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 7.1525573730468750e-06}, /* L152 */
-{2.5488064289093018e+00, 2.3245811462402344e-05,
- 1.1920928955078125e-07, -7.9870223999023438e-06,
- -2.9206275939941406e-05}, /* L153 */
-{2.3961176872253418e+00, 2.1994113922119141e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -1.2516975402832031e-06}, /* L154 */
-{1.8919099569320679e+00, 1.7479062080383301e-05,
- 1.1920928955078125e-07, -5.7220458984375000e-06,
- 1.0371208190917969e-05}, /* L155 */
-{2.0606923103332520e+00, 1.9162893295288086e-05,
- 1.1920928955078125e-07, -8.2969665527343750e-05,
- 7.8678131103515625e-06}, /* L156 */
-{2.2945528030395508e+00, 2.1472573280334473e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -1.6331672668457031e-05}, /* L157 */
-{2.6279625892639160e+00, 2.4750828742980957e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- 9.7751617431640625e-06}, /* L158 */
-{2.5102236270904541e+00, 2.3789703845977783e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 1.0728836059570312e-06}, /* L159 */
-{2.1093666553497314e+00, 2.0116567611694336e-05,
- 1.1920928955078125e-07, -1.0311603546142578e-05,
- -9.5367431640625000e-07}, /* L160 */
-{2.2357373237609863e+00, 2.1457672119140625e-05,
- 1.1920928955078125e-07, -4.7564506530761719e-05,
- -5.7220458984375000e-06}, /* L161 */
-{2.2137036323547363e+00, 2.1377578377723694e-05,
- 1.1920928955078125e-07, 3.9696693420410156e-05,
- 1.0728836059570312e-06}, /* L162 */
-{2.2115287780761719e+00, 2.1487474441528320e-05,
- 1.1920928955078125e-07, 7.1883201599121094e-05,
- -7.7486038208007812e-06}, /* L163 */
-{2.5792534351348877e+00, 2.5212764739990234e-05,
- 1.1920928955078125e-07, -8.3446502685546875e-07,
- -1.8656253814697266e-05}, /* L164 */
-{2.1977243423461914e+00, 2.1614134311676025e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- -4.7683715820312500e-07}, /* L165 */
-{2.1414949893951416e+00, 2.1189451217651367e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- -3.6537647247314453e-05}, /* L166 */
-{2.7784261703491211e+00, 2.7656555175781250e-05,
- 1.1920928955078125e-07, -8.1658363342285156e-06,
- 3.5762786865234375e-06}, /* L167 */
-{2.9432895183563232e+00, 2.9474496841430664e-05,
- 1.1920928955078125e-07, 3.2544136047363281e-05,
- -8.9406967163085938e-07}, /* L168 */
-{1.7270449399948120e+00, 1.7397105693817139e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -3.9339065551757812e-06}, /* L169 */
-{1.8792474269866943e+00, 1.9043684005737305e-05,
- 1.1920928955078125e-07, 4.5657157897949219e-05,
- 1.9550323486328125e-05}, /* L170 */
-{2.8099050521850586e+00, 2.8640031814575195e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 5.7220458984375000e-06}, /* L171 */
-{2.4708847999572754e+00, 2.5331974029541016e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -7.1525573730468750e-06}, /* L172 */
-{2.4825413227081299e+00, 2.5600194931030273e-05,
- 1.1920928955078125e-07, -5.2452087402343750e-06,
- 6.9141387939453125e-06}, /* L173 */
-{2.9228992462158203e+00, 3.0338764190673828e-05,
- 1.1920928955078125e-07, 1.9514560699462891e-04,
- -1.6051530838012695e-04}, /* L174 */
-{2.5814032554626465e+00, 2.6926398277282715e-05,
- 1.1920928955078125e-07, -2.0325183868408203e-05,
- 1.5020370483398438e-05}, /* L175 */
-{2.5453574657440186e+00, 2.6702880859375000e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-05,
- -1.9967555999755859e-05}, /* L176 */
-{2.4293150901794434e+00, 2.5629997253417969e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -7.7486038208007812e-07}, /* L177 */
-{2.0612363815307617e+00, 2.1874904632568359e-05,
- 1.1920928955078125e-07, 7.9870223999023438e-05,
- 6.9379806518554688e-05}, /* L178 */
-{2.9272656440734863e+00, 3.1232833862304688e-05,
- 1.1920928955078125e-07, -1.2397766113281250e-05,
- -3.2663345336914062e-05}, /* L179 */
-{2.6659111976623535e+00, 2.8610229492187500e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- -1.1110305786132812e-04}, /* L180 */
-{2.1491436958312988e+00, 2.3186206817626953e-05,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- 3.5762786865234375e-07}, /* L181 */
-{3.8677251338958740e+00, 4.1961669921875000e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- 9.1791152954101562e-06}, /* L182 */
-{2.2322256565093994e+00, 2.4348497390747070e-05,
- 1.1920928955078125e-07, -1.8537044525146484e-05,
- 5.1259994506835938e-06}, /* L183 */
-{1.8342103958129883e+00, 2.0116567611694336e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- 6.9141387939453125e-06}, /* L184 */
-{2.2044229507446289e+00, 2.4318695068359375e-05,
- 1.1920928955078125e-07, -2.3275613784790039e-04,
- 1.1587142944335938e-04}, /* L185 */
-{2.9313027858734131e+00, 3.2514333724975586e-05,
- 1.1920928955078125e-07, 2.2006034851074219e-04,
- 1.2779235839843750e-04}, /* L186 */
-{2.4811809062957764e+00, 2.7656555175781250e-05,
- 1.1920928955078125e-07, -3.9577484130859375e-05,
- -1.9729137420654297e-05}, /* L187 */
-{2.3627111911773682e+00, 2.6494264602661133e-05,
- 1.1920928955078125e-07, -1.6039609909057617e-04,
- -1.9472837448120117e-04}, /* L188 */
-{2.6930735111236572e+00, 3.0338764190673828e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 1.4066696166992188e-05}, /* L189 */
-{2.3656694889068604e+00, 2.6792287826538086e-05,
- 1.1920928955078125e-07, 4.8160552978515625e-05,
- -4.1425228118896484e-05}, /* L190 */
-{2.5444195270538330e+00, 2.8967857360839844e-05,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- 6.7949295043945312e-06}, /* L191 */
-{3.5064337253570557e+00, 4.0128827095031738e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- -7.2121620178222656e-06}, /* L192 */
-{2.3107743263244629e+00, 2.6583671569824219e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -2.0742416381835938e-05}, /* L193 */
-{1.8968746662139893e+00, 2.1934509277343750e-05,
- 1.1920928955078125e-07, -9.9539756774902344e-06,
- -1.2516975402832031e-06}, /* L194 */
-{1.5769190788269043e+00, 1.8328428268432617e-05,
- 1.1920928955078125e-07, -8.8214874267578125e-06,
- 1.6689300537109375e-06}, /* L195 */
-{2.5623247623443604e+00, 2.9936432838439941e-05,
- 1.1920928955078125e-07, -1.8477439880371094e-05,
- -3.3259391784667969e-05}, /* L196 */
-{2.0203559398651123e+00, 2.3730099201202393e-05,
- 1.1920928955078125e-07, 1.6796588897705078e-04,
- -5.4061412811279297e-05}, /* L197 */
-{2.3053452968597412e+00, 2.7209520339965820e-05,
- 1.1920928955078125e-07, 7.5459480285644531e-05,
- -3.3497810363769531e-05}, /* L198 */
-{2.6645538806915283e+00, 3.1605362892150879e-05,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -3.6358833312988281e-06}, /* L199 */
-{3.0957288742065430e+00, 3.6910176277160645e-05,
- 1.1920928955078125e-07, 2.1576881408691406e-05,
- 4.0650367736816406e-05}, /* L200 */
-{2.6716063022613525e+00, 3.2007694244384766e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 3.5762786865234375e-06}, /* L201 */
-{2.2325506210327148e+00, 2.6881694793701172e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 4.6014785766601562e-05}, /* L202 */
-{3.5344378948211670e+00, 4.2766332626342773e-05,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -1.9669532775878906e-06}, /* L203 */
-{2.8822681903839111e+00, 3.5047531127929688e-05,
- 1.1920928955078125e-07, -1.1444091796875000e-05,
- -1.0311603546142578e-05}, /* L204 */
-{2.5466833114624023e+00, 3.1203031539916992e-05,
- 1.1920928955078125e-07, -2.0692348480224609e-03,
- 3.0004978179931641e-04}, /* L205 */
-{2.1431393623352051e+00, 2.6315450668334961e-05,
- 1.1920928955078125e-07, 2.8133392333984375e-05,
- -4.6014785766601562e-05}, /* L206 */
-{2.8900310993194580e+00, 3.5658478736877441e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-05,
- 9.0599060058593750e-06}, /* L207 */
-{2.2882711887359619e+00, 2.8371810913085938e-05,
- 1.1920928955078125e-07, 2.4795532226562500e-05,
- -2.7775764465332031e-05}, /* L208 */
-{2.4260251522064209e+00, 3.0223280191421509e-05,
- 1.1920928955078125e-07, -1.0788440704345703e-05,
- 6.1273574829101562e-05}, /* L209 */
-{2.5916640758514404e+00, 3.2439827919006348e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -9.0599060058593750e-06}, /* L210 */
-{2.7922165393829346e+00, 3.5122036933898926e-05,
- 1.1920928955078125e-07, -7.6889991760253906e-06,
- -1.0967254638671875e-05}, /* L211 */
-{2.6732940673828125e+00, 3.3780932426452637e-05,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- 1.1682510375976562e-05}, /* L212 */
-{3.1723682880401611e+00, 4.0277838706970215e-05,
- 1.1920928955078125e-07, 1.5616416931152344e-05,
- -2.2053718566894531e-05}, /* L213 */
-{2.3247151374816895e+00, 2.9653310775756836e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- 1.7523765563964844e-05}, /* L214 */
-{2.2998373508453369e+00, 2.9474496841430664e-05,
- 1.1920928955078125e-07, -1.1146068572998047e-05,
- 4.2915344238281250e-06}, /* L215 */
-{2.2568023204803467e+00, 2.9057264328002930e-05,
- 1.1920928955078125e-07, 2.0980834960937500e-05,
- -2.3245811462402344e-05}, /* L216 */
-{4.0243339538574219e+00, 5.2094459533691406e-05,
- 1.1920928955078125e-07, -4.6575069427490234e-04,
- 1.3923645019531250e-04}, /* L217 */
-{2.8187942504882812e+00, 3.6656856536865234e-05,
- 1.1920928955078125e-07, -1.8745660781860352e-04,
- -1.9568204879760742e-04}, /* L218 */
-{2.5638887882232666e+00, 3.3468008041381836e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- 9.1791152954101562e-06}, /* L219 */
-{2.4885780811309814e+00, 3.2633543014526367e-05,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -1.2099742889404297e-05}, /* L220 */
-{2.7576930522918701e+00, 3.6329030990600586e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 5.7220458984375000e-05}, /* L221 */
-{3.2475495338439941e+00, 4.2974948883056641e-05,
- 1.1920928955078125e-07, -2.0921230316162109e-05,
- 3.9935111999511719e-05}, /* L222 */
-{3.2756993770599365e+00, 4.3541193008422852e-05,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -1.8835067749023438e-05}, /* L223 */
-{2.9359743595123291e+00, 3.9424747228622437e-05,
- 1.1920928955078125e-07, -1.4573335647583008e-03,
- -2.6413202285766602e-03}, /* L224 */
-{2.7066173553466797e+00, 3.6299228668212891e-05,
- 1.1920928955078125e-07, 1.7285346984863281e-05,
- 7.8678131103515625e-06}, /* L225 */
-{2.4004156589508057e+00, 3.2335519790649414e-05,
- 1.1920928955078125e-07, -8.2254409790039062e-06,
- -7.0929527282714844e-06}, /* L226 */
-{3.8499970436096191e+00, 5.2094459533691406e-05,
- 1.1920928955078125e-07, -1.7881393432617188e-07,
- 4.4226646423339844e-05}, /* L227 */
-{2.9752814769744873e+00, 4.0441751480102539e-05,
- 1.1920928955078125e-07, -3.2007694244384766e-05,
- -4.8756599426269531e-05}, /* L228 */
-{4.8369293212890625e+00, 6.6295266151428223e-05,
- 1.1920928955078125e-07, -1.4317035675048828e-03,
- 4.8911571502685547e-04}, /* L229 */
-{2.5807011127471924e+00, 3.5382807254791260e-05,
- 1.1920928955078125e-07, -1.7404556274414062e-05,
- -7.2121620178222656e-06}, /* L230 */
-{2.5052635669708252e+00, 3.4496188163757324e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- 4.8875808715820312e-06}, /* L231 */
-{3.0170190334320068e+00, 4.1723251342773438e-05,
- 1.1920928955078125e-07, -2.8371810913085938e-05,
- -9.5963478088378906e-06}, /* L232 */
-{3.2140707969665527e+00, 4.4643878936767578e-05,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- 4.4107437133789062e-06}, /* L233 */
-{2.7459168434143066e+00, 3.8299709558486938e-05,
- 1.1920928955078125e-07, -1.9788742065429688e-05,
- -2.0861625671386719e-06}, /* L234 */
-{3.3850409984588623e+00, 4.7415494918823242e-05,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- -2.5033950805664062e-06}, /* L235 */
-{3.2613983154296875e+00, 4.5880675315856934e-05,
- 1.1920928955078125e-07, -2.4795532226562500e-05,
- 8.4638595581054688e-06}, /* L236 */
-{3.2708954811096191e+00, 4.6210363507270813e-05,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- 6.0796737670898438e-06}, /* L237 */
-{2.7254183292388916e+00, 3.8668513298034668e-05,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 8.5711479187011719e-05}, /* L238 */
-{2.9094514846801758e+00, 4.1455030441284180e-05,
- 1.1920928955078125e-07, -2.1773576736450195e-04,
- 1.5044212341308594e-04}, /* L239 */
-{2.4601752758026123e+00, 3.5196542739868164e-05,
- 1.1920928955078125e-07, 1.3947486877441406e-05,
- 4.8041343688964844e-05}, /* L240 */
-{3.2238759994506836e+00, 4.6342611312866211e-05,
- 1.1920928955078125e-07, -6.3657760620117188e-05,
- 3.3259391784667969e-05}, /* L241 */
-{2.8799386024475098e+00, 4.1544437408447266e-05,
- 1.1920928955078125e-07, 3.6001205444335938e-05,
- 7.2479248046875000e-05}, /* L242 */
-{2.4394946098327637e+00, 3.5375356674194336e-05,
- 1.1920928955078125e-07, -7.9137086868286133e-04,
- -2.8616189956665039e-04}, /* L243 */
-{2.6877148151397705e+00, 3.9089471101760864e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 9.4175338745117188e-06}, /* L244 */
-{3.1121640205383301e+00, 4.5448541641235352e-05,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 3.3378601074218750e-06}, /* L245 */
-{3.0182261466979980e+00, 4.4256448745727539e-05,
- 1.1920928955078125e-07, 2.0623207092285156e-05,
- -6.0200691223144531e-06}, /* L246 */
-{3.5554327964782715e+00, 5.2347779273986816e-05,
- 1.1920928955078125e-07, -6.6101551055908203e-05,
- -4.9948692321777344e-05}, /* L247 */
-{2.6632261276245117e+00, 3.9368867874145508e-05,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- 3.3140182495117188e-05}, /* L248 */
-{2.8211865425109863e+00, 4.1909515857696533e-05,
- 1.1920928955078125e-07, -4.8041343688964844e-05,
- -6.8247318267822266e-05}, /* L249 */
-{3.4138302803039551e+00, 5.0872564315795898e-05,
- 1.1920928955078125e-07, -4.9173831939697266e-05,
- -1.1265277862548828e-05}, /* L250 */
-{2.9381258487701416e+00, 4.3958425521850586e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- -2.9206275939941406e-06}, /* L251 */
-{3.9105188846588135e+00, 5.8740377426147461e-05,
- 1.1920928955078125e-07, -2.9861927032470703e-05,
- -1.7166137695312500e-05}, /* L252 */
-{3.3492789268493652e+00, 5.0514936447143555e-05,
- 1.1920928955078125e-07, 4.4465065002441406e-05,
- 1.0454654693603516e-04}, /* L253 */
-{3.3404855728149414e+00, 5.0574541091918945e-05,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- 5.6028366088867188e-06}, /* L254 */
-{3.6894984245300293e+00, 5.6087970733642578e-05,
- 1.1920928955078125e-07, -2.6047229766845703e-05,
- 6.0677528381347656e-05}, /* L255 */
-{2.8875164985656738e+00, 4.4063199311494827e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-05,
- 9.8943710327148438e-06}, /* L256 */
-{2.9506196975708008e+00, 4.5284628868103027e-05,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- 3.3998489379882812e-04}, /* L257 */
-{3.7852635383605957e+00, 5.8218836784362793e-05,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- -5.8412551879882812e-05}, /* L258 */
-{2.8730788230895996e+00, 4.4355168938636780e-05,
- 1.1920928955078125e-07, -6.7353248596191406e-06,
- -2.4259090423583984e-05}, /* L259 */
-{3.4188246726989746e+00, 5.2988529205322266e-05,
- 1.1920928955078125e-07, 2.3603439331054688e-05,
- 5.8412551879882812e-06}, /* L260 */
-{2.6000919342041016e+00, 4.0456652641296387e-05,
- 1.1920928955078125e-07, -5.7518482208251953e-05,
- -4.6491622924804688e-05}, /* L261 */
-{4.6385631561279297e+00, 7.2449445724487305e-05,
- 1.1920928955078125e-07, -7.7903270721435547e-05,
- 7.6532363891601562e-05}, /* L262 */
-{3.7708623409271240e+00, 5.9127807617187500e-05,
- 1.1920928955078125e-07, -2.1761655807495117e-04,
- 2.2876262664794922e-04}, /* L263 */
-{3.3351089954376221e+00, 5.2481889724731445e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- 2.0623207092285156e-05}, /* L264 */
-{2.9905428886413574e+00, 4.7240406274795532e-05,
- 1.1920928955078125e-07, 1.7523765563964844e-05,
- 4.4345855712890625e-05}, /* L265 */
-{3.6163811683654785e+00, 5.7339668273925781e-05,
- 1.1920928955078125e-07, 1.3232231140136719e-05,
- 1.1324882507324219e-05}, /* L266 */
-{4.0867795944213867e+00, 6.5103173255920410e-05,
- 1.1920928955078125e-07, -3.7181377410888672e-04,
- -1.1700391769409180e-04}, /* L267 */
-{2.3039534091949463e+00, 3.6805868148803711e-05,
- 1.1920928955078125e-07, 6.6399574279785156e-05,
- -2.6881694793701172e-05}, /* L268 */
-{3.7835102081298828e+00, 6.0677528381347656e-05,
- 1.1920928955078125e-07, 3.9339065551757812e-05,
- -1.5258789062500000e-05}, /* L269 */
-{3.0756173133850098e+00, 4.9531459808349609e-05,
- 1.1920928955078125e-07, 2.7287006378173828e-04,
- 9.2864036560058594e-05}, /* L270 */
-{4.0165371894836426e+00, 6.4879655838012695e-05,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- 1.7046928405761719e-05}, /* L271 */
-{3.2424371242523193e+00, 5.2571296691894531e-05,
- 1.1920928955078125e-07, -2.8848648071289062e-05,
- -1.3232231140136719e-05}, /* L272 */
-{2.2746024131774902e+00, 3.7014484405517578e-05,
- 1.1920928955078125e-07, 8.1062316894531250e-06,
- 1.3113021850585938e-06}, /* L273 */
-{3.9735214710235596e+00, 6.4909458160400391e-05,
- 1.1920928955078125e-07, 3.8862228393554688e-05,
- 2.7656555175781250e-05}, /* L274 */
-{3.2889521121978760e+00, 5.3912401199340820e-05,
- 1.1920928955078125e-07, -2.5629997253417969e-05,
- 1.0609626770019531e-05}, /* L275 */
-{4.2445321083068848e+00, 6.9829635322093964e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -2.4855136871337891e-05}, /* L276 */
-{3.1919836997985840e+00, 5.2720308303833008e-05,
- 1.1920928955078125e-07, 1.7035007476806641e-04,
- -1.5830993652343750e-04}, /* L277 */
-{3.4819188117980957e+00, 5.7697296142578125e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- -4.4345855712890625e-05}, /* L278 */
-{3.1469557285308838e+00, 5.2336603403091431e-05,
- 1.1920928955078125e-07, -1.0311603546142578e-05,
- 7.3909759521484375e-06}, /* L279 */
-{3.7310957908630371e+00, 6.2271952629089355e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 5.6028366088867188e-06}, /* L280 */
-{2.9104669094085693e+00, 4.8756599426269531e-05,
- 1.1920928955078125e-07, 5.2928924560546875e-05,
- 2.1219253540039062e-05}, /* L281 */
-{3.4555954933166504e+00, 5.8084726333618164e-05,
- 1.1920928955078125e-07, -4.8637390136718750e-05,
- -1.7046928405761719e-05}, /* L282 */
-{4.7982797622680664e+00, 8.1047415733337402e-05,
- 1.1920928955078125e-07, -2.8073787689208984e-05,
- -1.9848346710205078e-04}, /* L283 */
-{4.3207159042358398e+00, 7.3142349720001221e-05,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -1.7762184143066406e-05}, /* L284 */
-{3.3792603015899658e+00, 5.7406723499298096e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- 3.3140182495117188e-05}, /* L285 */
-{3.3958184719085693e+00, 5.7891011238098145e-05,
- 1.1920928955078125e-07, 2.7537345886230469e-05,
- -5.6624412536621094e-06}, /* L286 */
-{2.5783097743988037e+00, 4.4107437133789062e-05,
- 1.1920928955078125e-07, 3.3974647521972656e-05,
- -1.4543533325195312e-05}, /* L287 */
-{3.8255918025970459e+00, 6.5743923187255859e-05,
- 1.1920928955078125e-07, 4.6968460083007812e-05,
- -1.6802549362182617e-04}, /* L288 */
-{4.0258326530456543e+00, 6.9350004196166992e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- -1.9073486328125000e-06}, /* L289 */
-{3.5427536964416504e+00, 6.1243772506713867e-05,
- 1.1920928955078125e-07, -2.1278858184814453e-05,
- -2.8967857360839844e-05}, /* L290 */
-{3.6850323677062988e+00, 6.3918530941009521e-05,
- 1.1920928955078125e-07, 1.5616416931152344e-05,
- 7.2717666625976562e-06}, /* L291 */
-{3.0099024772644043e+00, 5.2392482757568359e-05,
- 1.1920928955078125e-07, 4.8160552978515625e-05,
- -6.6339969635009766e-05}, /* L292 */
-{2.5216712951660156e+00, 4.4056214392185211e-05,
- 1.1920928955078125e-07, 1.2087821960449219e-04,
- 1.3351440429687500e-05}, /* L293 */
-{2.6831400394439697e+00, 4.7020614147186279e-05,
- 1.1920928955078125e-07, -2.5868415832519531e-05,
- -2.5629997253417969e-06}, /* L294 */
-{3.8572752475738525e+00, 6.7889690399169922e-05,
- 1.1920928955078125e-07, -1.0746717453002930e-04,
- -2.7906894683837891e-04}, /* L295 */
-{4.3599972724914551e+00, 7.6927244663238525e-05,
- 1.1920928955078125e-07, 2.2411346435546875e-05,
- -2.9921531677246094e-05}, /* L296 */
-{3.2949450016021729e+00, 5.8333389461040497e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -1.6689300537109375e-06}, /* L297 */
-{4.2500610351562500e+00, 7.5519084930419922e-05,
- 1.1920928955078125e-07, 3.7670135498046875e-05,
- 1.8894672393798828e-04}, /* L298 */
-{2.6970086097717285e+00, 4.8071146011352539e-05,
- 1.1920928955078125e-07, 4.6253204345703125e-05,
- -6.1213970184326172e-05}, /* L299 */
-{4.1166572570800781e+00, 7.3626637458801270e-05,
- 1.1920928955078125e-07, 1.2457370758056641e-04,
- -1.4472007751464844e-04}, /* L300 */
-{4.2025179862976074e+00, 7.5399875640869141e-05,
- 1.1920928955078125e-07, -2.4199485778808594e-05,
- -3.3974647521972656e-06}, /* L301 */
-{4.3678936958312988e+00, 7.8640878200531006e-05,
- 1.1920928955078125e-07, -3.3259391784667969e-05,
- 1.5854835510253906e-05}, /* L302 */
-{4.9597129821777344e+00, 8.9578330516815186e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -2.4318695068359375e-05}, /* L303 */
-{3.8057916164398193e+00, 6.8962574005126953e-05,
- 1.1920928955078125e-07, 1.8239021301269531e-05,
- -1.4305114746093750e-05}, /* L304 */
-{3.5237333774566650e+00, 6.4060091972351074e-05,
- 1.1920928955078125e-07, -1.8477439880371094e-05,
- -5.5432319641113281e-06}, /* L305 */
-{5.2449893951416016e+00, 9.5698982477188110e-05,
- 1.1920928955078125e-07, -1.2618303298950195e-04,
- -2.0194053649902344e-04}, /* L306 */
-{3.3960819244384766e+00, 6.2152743339538574e-05,
- 1.1920928955078125e-07, -5.3286552429199219e-05,
- -6.4253807067871094e-05}, /* L307 */
-{5.7641472816467285e+00, 1.0582804679870605e-04,
- 1.1920928955078125e-07, 1.4305114746093750e-05,
- -2.4318695068359375e-05}, /* L308 */
-{3.6273007392883301e+00, 6.6816806793212891e-05,
- 1.1920928955078125e-07, -5.8829784393310547e-05,
- 3.5643577575683594e-05}, /* L309 */
-{3.2890641689300537e+00, 6.0781836509704590e-05,
- 1.1920928955078125e-07, -8.5413455963134766e-05,
- -3.0577182769775391e-05}, /* L310 */
-{3.1874060630798340e+00, 5.9098005294799805e-05,
- 1.1920928955078125e-07, -8.7678432464599609e-05,
- -3.7491321563720703e-05}, /* L311 */
-{4.3988504409790039e+00, 8.1837177276611328e-05,
- 1.1920928955078125e-07, -2.5498867034912109e-04,
- -2.1994113922119141e-05}, /* L312 */
-{3.7305386066436768e+00, 6.9618225097656250e-05,
- 1.1920928955078125e-07, -1.8358230590820312e-04,
- -4.3511390686035156e-05}, /* L313 */
-{4.3963913917541504e+00, 8.2314014434814453e-05,
- 1.1920928955078125e-07, -1.7082691192626953e-04,
- -1.4656782150268555e-04}, /* L314 */
-{3.3966987133026123e+00, 6.3776969909667969e-05,
- 1.1920928955078125e-07, 1.6093254089355469e-05,
- 3.3020973205566406e-05}, /* L315 */
-{5.4197955131530762e+00, 1.0209903120994568e-04,
- 1.1920928955078125e-07, 7.9870223999023438e-06,
- -4.5597553253173828e-05}, /* L316 */
-{3.8657374382019043e+00, 7.3045492172241211e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-05,
- -2.4139881134033203e-05}, /* L317 */
-{3.1806356906890869e+00, 6.0290098190307617e-05,
- 1.1920928955078125e-07, 3.4451484680175781e-05,
- -5.6624412536621094e-05}, /* L318 */
-{3.2052252292633057e+00, 6.0945749282836914e-05,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- 6.9141387939453125e-06}, /* L319 */
-{4.4746818542480469e+00, 8.5353851318359375e-05,
- 1.1920928955078125e-07, -2.4616718292236328e-05,
- 6.6757202148437500e-06}, /* L320 */
-{2.6711359024047852e+00, 5.1110982894897461e-05,
- 1.1920928955078125e-07, 5.1856040954589844e-05,
- -4.1961669921875000e-05}, /* L321 */
-{3.9127485752105713e+00, 7.5101852416992188e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- -2.1278858184814453e-05}, /* L322 */
-{4.2777919769287109e+00, 8.2373619079589844e-05,
- 1.1920928955078125e-07, 3.6358833312988281e-05,
- -1.8596649169921875e-05}, /* L323 */
-{3.8539283275604248e+00, 7.4461102485656738e-05,
- 1.1920928955078125e-07, 1.2922286987304688e-04,
- 2.3007392883300781e-05}, /* L324 */
-{4.8808608055114746e+00, 9.4562768936157227e-05,
- 1.1920928955078125e-07, -2.1874904632568359e-05,
- -1.8358230590820312e-05}, /* L325 */
-{2.9200415611267090e+00, 5.6743621826171875e-05,
- 1.1920928955078125e-07, -2.7894973754882812e-05,
- 3.7789344787597656e-05}, /* L326 */
-{3.4750907421112061e+00, 6.7740678787231445e-05,
- 1.1920928955078125e-07, 1.5616416931152344e-05,
- -1.2278556823730469e-05}, /* L327 */
-{3.5283370018005371e+00, 6.9022178649902344e-05,
- 1.1920928955078125e-07, -2.5022029876708984e-04,
- -7.6347589492797852e-04}, /* L328 */
-{3.3081059455871582e+00, 6.4877793192863464e-05,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- -1.3291835784912109e-05}, /* L329 */
-{3.8759987354278564e+00, 7.6241791248321533e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- 6.7949295043945312e-06}, /* L330 */
-{3.4412052631378174e+00, 6.7904591560363770e-05,
- 1.1920928955078125e-07, -3.3140182495117188e-05,
- -1.6272068023681641e-05}, /* L331 */
-{3.6796884536743164e+00, 7.2821974754333496e-05,
- 1.1920928955078125e-07, 4.2080879211425781e-05,
- 1.2636184692382812e-05}, /* L332 */
-{2.8218092918395996e+00, 5.6028366088867188e-05,
- 1.1920928955078125e-07, 6.2227249145507812e-05,
- 1.4650821685791016e-04}, /* L333 */
-{5.3604621887207031e+00, 1.0672211647033691e-04,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- 8.8214874267578125e-06}, /* L334 */
-{4.2461862564086914e+00, 8.4817409515380859e-05,
- 1.1920928955078125e-07, 1.2850761413574219e-04,
- 4.9829483032226562e-05}, /* L335 */
-{3.5448184013366699e+00, 7.1018934249877930e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-05,
- -4.7445297241210938e-05}, /* L336 */
-{3.6334500312805176e+00, 7.3015689849853516e-05,
- 1.1920928955078125e-07, -5.2034854888916016e-05,
- 1.3327598571777344e-04}, /* L337 */
-{3.8627569675445557e+00, 7.7825970947742462e-05,
- 1.1920928955078125e-07, -3.4093856811523438e-05,
- -7.2717666625976562e-06}, /* L338 */
-{3.3389458656311035e+00, 6.7472457885742188e-05,
- 1.1920928955078125e-07, -5.4836273193359375e-06,
- 3.7312507629394531e-05}, /* L339 */
-{4.8516044616699219e+00, 9.8347663879394531e-05,
- 1.1920928955078125e-07, 8.2254409790039062e-05,
- 8.3088874816894531e-05}, /* L340 */
-{4.1359677314758301e+00, 8.4072351455688477e-05,
- 1.1920928955078125e-07, 2.4676322937011719e-05,
- 4.2438507080078125e-05}, /* L341 */
-{4.1377468109130859e+00, 8.4355473518371582e-05,
- 1.1920928955078125e-07, 6.0439109802246094e-05,
- 6.7949295043945312e-06}, /* L342 */
-{3.5220341682434082e+00, 7.2017312049865723e-05,
- 1.1920928955078125e-07, -7.0810317993164062e-05,
- -5.3048133850097656e-05}, /* L343 */
-{3.5813810825347900e+00, 7.3462724685668945e-05,
- 1.1920928955078125e-07, -1.6963481903076172e-04,
- 1.0848045349121094e-04}, /* L344 */
-{3.5835077762603760e+00, 7.3701143264770508e-05,
- 1.1920928955078125e-07, -9.3579292297363281e-06,
- 4.0888786315917969e-05}, /* L345 */
-{6.7618408203125000e+00, 1.3947486877441406e-04,
- 1.1920928955078125e-07, -4.9412250518798828e-05,
- -1.1146068572998047e-05}, /* L346 */
-{4.2642188072204590e+00, 8.8214874267578125e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-05,
- -5.2452087402343750e-06}, /* L347 */
-{5.4840736389160156e+00, 1.1396408081054688e-04,
- 1.1920928955078125e-07, 1.6522407531738281e-04,
- -5.8305263519287109e-04}, /* L348 */
-{4.1298732757568359e+00, 8.5912644863128662e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- 1.8239021301269531e-05}, /* L349 */
-{3.1010384559631348e+00, 6.4700841903686523e-05,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 1.2636184692382812e-05}, /* L350 */
-{3.3545711040496826e+00, 7.0184469223022461e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- -1.4305114746093750e-06}, /* L351 */
-{3.0629448890686035e+00, 6.4279884099960327e-05,
- 1.1920928955078125e-07, 1.2397766113281250e-05,
- 1.0812282562255859e-04}, /* L352 */
-{3.8545062541961670e+00, 8.1129372119903564e-05,
- 1.1920928955078125e-07, 7.5697898864746094e-05,
- 1.9836425781250000e-04}, /* L353 */
-{5.4713168144226074e+00, 1.1545419692993164e-04,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- -4.0113925933837891e-05}, /* L354 */
-{4.4923596382141113e+00, 9.5129013061523438e-05,
- 1.1920928955078125e-07, 6.0796737670898438e-05,
- 7.4565410614013672e-04}, /* L355 */
-{4.6742124557495117e+00, 9.9189579486846924e-05,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- 1.9907951354980469e-05}, /* L356 */
-{5.0585660934448242e+00, 1.0764598846435547e-04,
- 1.1920928955078125e-07, -7.5399875640869141e-05,
- -1.2814998626708984e-05}, /* L357 */
-{4.0799021720886230e+00, 8.7067484855651855e-05,
- 1.1920928955078125e-07, 3.3855438232421875e-05,
- 3.9339065551757812e-05}, /* L358 */
-{4.3434953689575195e+00, 9.2953443527221680e-05,
- 1.1920928955078125e-07, 2.7537345886230469e-05,
- -6.6399574279785156e-05}, /* L359 */
-{4.6747188568115234e+00, 1.0031461715698242e-04,
- 1.1920928955078125e-07, -3.6358833312988281e-06,
- 2.3722648620605469e-05}, /* L360 */
-{4.1515140533447266e+00, 8.9332461357116699e-05,
- 1.1920928955078125e-07, -2.0563602447509766e-05,
- 5.6028366088867188e-06}, /* L361 */
-{4.3729529380798340e+00, 9.4361603260040283e-05,
- 1.1920928955078125e-07, 2.4914741516113281e-05,
- -4.2378902435302734e-05}, /* L362 */
-{3.5849521160125732e+00, 7.7567994594573975e-05,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- -4.3511390686035156e-06}, /* L363 */
-{3.9998588562011719e+00, 8.6834654211997986e-05,
- 1.1920928955078125e-07, 6.9022178649902344e-05,
- -1.0681152343750000e-04}, /* L364 */
-{6.7398791313171387e+00, 1.4665722846984863e-04,
- 1.1920928955078125e-07, 4.1723251342773438e-05,
- -8.7082386016845703e-05}, /* L365 */
-{5.8494853973388672e+00, 1.2761354446411133e-04,
- 1.1920928955078125e-07, 2.3722648620605469e-05,
- 2.8252601623535156e-05}, /* L366 */
-{3.2831811904907227e+00, 7.1823596954345703e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -8.1658363342285156e-06}, /* L367 */
-{4.0520100593566895e+00, 8.8900327682495117e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-05,
- -3.0457973480224609e-05}, /* L368 */
-{5.4008064270019531e+00, 1.1879205703735352e-04,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -2.3245811462402344e-06}, /* L369 */
-{5.1322269439697266e+00, 1.1318922042846680e-04,
- 1.1920928955078125e-07, -2.0086765289306641e-05,
- 1.1444091796875000e-05}, /* L370 */
-{3.6642782688140869e+00, 8.1039965152740479e-05,
- 1.1920928955078125e-07, -2.3603439331054688e-05,
- 2.3722648620605469e-05}, /* L371 */
-{4.3639526367187500e+00, 9.6768140792846680e-05,
- 1.1920928955078125e-07, -8.2254409790039062e-06,
- -1.9967555999755859e-05}, /* L372 */
-{5.0115923881530762e+00, 1.1142343282699585e-04,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- -1.6152858734130859e-05}, /* L373 */
-{4.6094865798950195e+00, 1.0284781455993652e-04,
- 1.1920928955078125e-07, -4.5073032379150391e-04,
- -4.9859285354614258e-04}, /* L374 */
-{5.2065563201904297e+00, 1.1640787124633789e-04,
- 1.1920928955078125e-07, -7.5697898864746094e-06,
- -2.7656555175781250e-05}, /* L375 */
-{5.7023444175720215e+00, 1.2780725955963135e-04,
- 1.1920928955078125e-07, -6.2108039855957031e-05,
- 1.1444091796875000e-05}, /* L376 */
-{4.5958142280578613e+00, 1.0332465171813965e-04,
- 1.1920928955078125e-07, 6.3538551330566406e-05,
- 3.1709671020507812e-05}, /* L377 */
-{4.1447081565856934e+00, 9.3400478363037109e-05,
- 1.1920928955078125e-07, -3.6776065826416016e-05,
- 1.6450881958007812e-05}, /* L378 */
-{4.0952301025390625e+00, 9.2536211013793945e-05,
- 1.1920928955078125e-07, 1.1253356933593750e-04,
- 6.4969062805175781e-05}, /* L379 */
-{4.1163024902343750e+00, 9.3240290880203247e-05,
- 1.1920928955078125e-07, 5.0306320190429688e-05,
- 6.7949295043945312e-06}, /* L380 */
-{4.6929459571838379e+00, 1.0659545660018921e-04,
- 1.1920928955078125e-07, -5.2213668823242188e-05,
- -7.7486038208007812e-07}, /* L381 */
-{4.8500423431396484e+00, 1.1044740676879883e-04,
- 1.1920928955078125e-07, -3.2782554626464844e-05,
- 7.1525573730468750e-05}, /* L382 */
-{4.0257434844970703e+00, 9.1910362243652344e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- -5.4240226745605469e-06}, /* L383 */
-{5.7780075073242188e+00, 1.3230368494987488e-04,
- 1.1920928955078125e-07, -2.0068883895874023e-04,
- 7.9154968261718750e-05}, /* L384 */
-{4.4178075790405273e+00, 1.0138750076293945e-04,
- 1.1920928955078125e-07, -1.8715858459472656e-05,
- 4.8160552978515625e-05}, /* L385 */
-{4.3271675109863281e+00, 9.9614262580871582e-05,
- 1.1920928955078125e-07, -2.0766258239746094e-04,
- -2.2643804550170898e-04}, /* L386 */
-{4.2465567588806152e+00, 9.7960233688354492e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -1.2516975402832031e-05}, /* L387 */
-{4.1096854209899902e+00, 9.5069408416748047e-05,
- 1.1920928955078125e-07, -2.7596950531005859e-05,
- 1.1849403381347656e-04}, /* L388 */
-{3.4330332279205322e+00, 7.9602003097534180e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.0430812835693359e-05}, /* L389 */
-{4.6399517059326172e+00, 1.0786950588226318e-04,
- 1.1920928955078125e-07, -8.2254409790039062e-06,
- -3.6656856536865234e-05}, /* L390 */
-{3.5343129634857178e+00, 8.2373619079589844e-05,
- 1.1920928955078125e-07, 2.8729438781738281e-05,
- -3.8743019104003906e-06}, /* L391 */
-{5.2381052970886230e+00, 1.2250058352947235e-04,
- 1.1920928955078125e-07, -1.0555982589721680e-04,
- 3.9780139923095703e-04}, /* L392 */
-{4.3261165618896484e+00, 1.0134279727935791e-04,
- 1.1920928955078125e-07, -2.1934509277343750e-05,
- -2.8014183044433594e-06}, /* L393 */
-{4.6700892448425293e+00, 1.0970234870910645e-04,
- 1.1920928955078125e-07, -3.3915042877197266e-05,
- -1.9085407257080078e-04}, /* L394 */
-{6.1232705116271973e+00, 1.4418363571166992e-04,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- 2.1457672119140625e-06}, /* L395 */
-{4.3827781677246094e+00, 1.0362267494201660e-04,
- 1.1920928955078125e-07, -5.2797794342041016e-04,
- 4.1019916534423828e-04}, /* L396 */
-{4.4960632324218750e+00, 1.0639429092407227e-04,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- 6.0796737670898438e-06}, /* L397 */
-{4.5424103736877441e+00, 1.0776519775390625e-04,
- 1.1920928955078125e-07, -4.2974948883056641e-05,
- 3.6239624023437500e-05}, /* L398 */
-{5.3106079101562500e+00, 1.2639164924621582e-04,
- 1.1920928955078125e-07, -2.8252601623535156e-05,
- -9.3877315521240234e-05}, /* L399 */
-{5.3583478927612305e+00, 1.2778490781784058e-04,
- 1.1920928955078125e-07, 3.1948089599609375e-05,
- 2.0861625671386719e-05}, /* L400 */
-{4.6441769599914551e+00, 1.1100620031356812e-04,
- 1.1920928955078125e-07, 4.5180320739746094e-05,
- -4.3511390686035156e-06}, /* L401 */
-{3.7701148986816406e+00, 9.0341083705425262e-05,
- 1.1920928955078125e-07, -2.9325485229492188e-05,
- 4.0411949157714844e-05}, /* L402 */
-{5.8259038925170898e+00, 1.3995170593261719e-04,
- 1.1920928955078125e-07, -4.1127204895019531e-05,
- 5.1617622375488281e-05}, /* L403 */
-{6.0981087684631348e+00, 1.4689564704895020e-04,
- 1.1920928955078125e-07, -9.7274780273437500e-05,
- -8.7797641754150391e-05}, /* L404 */
-{4.3266220092773438e+00, 1.0445527732372284e-04,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- -1.7106533050537109e-05}, /* L405 */
-{4.8852176666259766e+00, 1.1822581291198730e-04,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- 2.7418136596679688e-06}, /* L406 */
-{4.0438656806945801e+00, 9.8109245300292969e-05,
- 1.1920928955078125e-07, -5.7995319366455078e-05,
- -1.5795230865478516e-05}, /* L407 */
-{4.4105358123779297e+00, 1.0734796524047852e-04,
- 1.1920928955078125e-07, -1.8417835235595703e-05,
- -2.3841857910156250e-04}, /* L408 */
-{3.9815435409545898e+00, 9.7095966339111328e-05,
- 1.1920928955078125e-07, 5.9962272644042969e-05,
- 9.4294548034667969e-05}, /* L409 */
-{4.9555668830871582e+00, 1.2113898992538452e-04,
- 1.1920928955078125e-07, -5.2928924560546875e-05,
- -3.4332275390625000e-05}, /* L410 */
-{4.9142613410949707e+00, 1.2040138244628906e-04,
- 1.1920928955078125e-07, -3.0994415283203125e-05,
- 2.4914741516113281e-05}, /* L411 */
-{5.0758414268493652e+00, 1.2466311454772949e-04,
- 1.1920928955078125e-07, -3.7491321563720703e-05,
- -4.5061111450195312e-05}, /* L412 */
-{5.1107726097106934e+00, 1.2584030628204346e-04,
- 1.1920928955078125e-07, -4.5478343963623047e-05,
- 2.6226043701171875e-05}, /* L413 */
-{5.7558150291442871e+00, 1.4229118824005127e-04,
- 1.1920928955078125e-07, 5.6588649749755859e-04,
- 1.8334388732910156e-04}, /* L414 */
-{5.6824665069580078e+00, 1.4057010412216187e-04,
- 1.1920928955078125e-07, -2.6583671569824219e-05,
- 2.8610229492187500e-06}, /* L415 */
-{4.9363479614257812e+00, 1.2242048978805542e-04,
- 1.1920928955078125e-07, 6.0319900512695312e-05,
- -5.3703784942626953e-05}, /* L416 */
-{3.6308703422546387e+00, 9.0271234512329102e-05,
- 1.1920928955078125e-07, -7.2002410888671875e-05,
- 2.4950504302978516e-04}, /* L417 */
-{5.0980744361877441e+00, 1.2707710266113281e-04,
- 1.1920928955078125e-07, -1.8167495727539062e-04,
- -1.1026859283447266e-05}, /* L418 */
-{5.3428630828857422e+00, 1.3345479965209961e-04,
- 1.1920928955078125e-07, -5.7220458984375000e-06,
- -6.5326690673828125e-05}, /* L419 */
-{4.3520560264587402e+00, 1.0895729064941406e-04,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- 8.9406967163085938e-06}, /* L420 */
-{3.9912190437316895e+00, 1.0016560554504395e-04,
- 1.1920928955078125e-07, -7.2658061981201172e-05,
- -6.3776969909667969e-06}, /* L421 */
-{4.5135855674743652e+00, 1.1353939771652222e-04,
- 1.1920928955078125e-07, -9.7751617431640625e-06,
- -1.5258789062500000e-05}, /* L422 */
-{4.3553781509399414e+00, 1.0982155799865723e-04,
- 1.1920928955078125e-07, 2.6464462280273438e-05,
- 6.1988830566406250e-06}, /* L423 */
-{4.2683467864990234e+00, 1.0788440704345703e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-06,
- 3.3855438232421875e-05}, /* L424 */
-{4.7313356399536133e+00, 1.1986494064331055e-04,
- 1.1920928955078125e-07, -4.5478343963623047e-05,
- 5.3763389587402344e-05}, /* L425 */
-{5.1270408630371094e+00, 1.3019144535064697e-04,
- 1.1920928955078125e-07, -2.1159648895263672e-05,
- -1.8537044525146484e-05}, /* L426 */
-{4.6962056159973145e+00, 1.1953711509704590e-04,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- 1.4185905456542969e-05}, /* L427 */
-{3.6136903762817383e+00, 9.2193484306335449e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- -5.3644180297851562e-06}, /* L428 */
-{5.0909810066223145e+00, 1.3029575347900391e-04,
- 1.1920928955078125e-07, -1.8644332885742188e-04,
- 5.2094459533691406e-05}, /* L429 */
-{5.0982642173767090e+00, 1.3068318367004395e-04,
- 1.1920928955078125e-07, -1.3589859008789062e-05,
- -2.3365020751953125e-05}, /* L430 */
-{4.1435589790344238e+00, 1.0681152343750000e-04,
- 1.1920928955078125e-07, -1.0446906089782715e-03,
- -9.8711252212524414e-04}, /* L431 */
-{3.9613900184631348e+00, 1.0201334953308105e-04,
- 1.1920928955078125e-07, -1.8358230590820312e-05,
- -9.7751617431640625e-06}, /* L432 */
-{4.0312447547912598e+00, 1.0412884876132011e-04,
- 1.1920928955078125e-07, 1.3613700866699219e-04,
- -1.0997056961059570e-04}, /* L433 */
-{4.1096243858337402e+00, 1.0631978511810303e-04,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 1.8715858459472656e-05}, /* L434 */
-{4.9512338638305664e+00, 1.2841820716857910e-04,
- 1.1920928955078125e-07, 1.3661384582519531e-04,
- 3.3855438232421875e-05}, /* L435 */
-{6.1311354637145996e+00, 1.5935301780700684e-04,
- 1.1920928955078125e-07, -2.2947788238525391e-05,
- -7.0333480834960938e-06}, /* L436 */
-{4.8328466415405273e+00, 1.2592226266860962e-04,
- 1.1920928955078125e-07, 6.7591667175292969e-05,
- -1.3029575347900391e-04}, /* L437 */
-{4.9123182296752930e+00, 1.2827664613723755e-04,
- 1.1920928955078125e-07, 1.9538402557373047e-04,
- 7.1167945861816406e-05}, /* L438 */
-{5.2583565711975098e+00, 1.3762712478637695e-04,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -8.5413455963134766e-05}, /* L439 */
-{4.3235507011413574e+00, 1.1339783668518066e-04,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -1.0550022125244141e-05}, /* L440 */
-{3.9639384746551514e+00, 1.0420382022857666e-04,
- 1.1920928955078125e-07, 1.4901161193847656e-05,
- -3.4689903259277344e-05}, /* L441 */
-{4.1293630599975586e+00, 1.0880455374717712e-04,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- -2.4020671844482422e-05}, /* L442 */
-{4.6812310218811035e+00, 1.2362003326416016e-04,
- 1.1920928955078125e-07, -9.7751617431640625e-06,
- -2.9981136322021484e-05}, /* L443 */
-{4.2615609169006348e+00, 1.1280458420515060e-04,
- 1.1920928955078125e-07, -4.2915344238281250e-05,
- -6.2584877014160156e-06}, /* L444 */
-{4.3287577629089355e+00, 1.1482834815979004e-04,
- 1.1920928955078125e-07, 3.2544136047363281e-05,
- 1.5854835510253906e-05}, /* L445 */
-{4.0053238868713379e+00, 1.0648369789123535e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- -2.3841857910156250e-07}, /* L446 */
-{5.5018124580383301e+00, 1.4661252498626709e-04,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -1.0311603546142578e-05}, /* L447 */
-{4.2147574424743652e+00, 1.1255219578742981e-04,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -1.7881393432617188e-06}, /* L448 */
-{5.1888313293457031e+00, 1.3887882232666016e-04,
- 1.1920928955078125e-07, -1.1146068572998047e-05,
- 1.7404556274414062e-05}, /* L449 */
-{5.4367957115173340e+00, 1.4584138989448547e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-05,
- 7.1525573730468750e-06}, /* L450 */
-{3.8382022380828857e+00, 1.0322034358978271e-04,
- 1.1920928955078125e-07, -5.1021575927734375e-05,
- 1.3196468353271484e-04}, /* L451 */
-{6.7498173713684082e+00, 1.8186122179031372e-04,
- 1.1920928955078125e-07, -2.1576881408691406e-05,
- 4.2796134948730469e-05}, /* L452 */
-{4.5105223655700684e+00, 1.2180209159851074e-04,
- 1.1920928955078125e-07, -3.8206577301025391e-05,
- 1.0251998901367188e-05}, /* L453 */
-{6.4299764633178711e+00, 1.7401576042175293e-04,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -1.8715858459472656e-05}, /* L454 */
-{5.2402591705322266e+00, 1.4212727546691895e-04,
- 1.1920928955078125e-07, -9.4771385192871094e-06,
- 1.4781951904296875e-05}, /* L455 */
-{3.7329313755035400e+00, 1.0147690773010254e-04,
- 1.1920928955078125e-07, -3.4809112548828125e-05,
- -2.4139881134033203e-05}, /* L456 */
-{5.1823096275329590e+00, 1.4117360115051270e-04,
- 1.1920928955078125e-07, -5.2809715270996094e-05,
- -5.6624412536621094e-06}, /* L457 */
-{6.9275112152099609e+00, 1.8917210400104523e-04,
- 1.1920928955078125e-07, 3.2067298889160156e-05,
- 7.2598457336425781e-05}, /* L458 */
-{4.8719649314880371e+00, 1.3332068920135498e-04,
- 1.1920928955078125e-07, -2.0396709442138672e-04,
- -1.3840198516845703e-04}, /* L459 */
-{4.7669134140014648e+00, 1.3075023889541626e-04,
- 1.1920928955078125e-07, -1.7881393432617188e-04,
- 2.5391578674316406e-05}, /* L460 */
-{4.9504418373107910e+00, 1.3611838221549988e-04,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- 7.2717666625976562e-06}, /* L461 */
-{5.3522801399230957e+00, 1.4740228652954102e-04,
- 1.1920928955078125e-07, 4.5418739318847656e-05,
- 5.2332878112792969e-05}, /* L462 */
-{7.2665777206420898e+00, 2.0056962966918945e-04,
- 1.1920928955078125e-07, 2.8610229492187500e-05,
- -2.9206275939941406e-05}, /* L463 */
-{3.7900853157043457e+00, 1.0487437248229980e-04,
- 1.1920928955078125e-07, -7.3552131652832031e-05,
- -1.5354156494140625e-04}, /* L464 */
-{4.1813840866088867e+00, 1.1590123176574707e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- -1.5735626220703125e-05}, /* L465 */
-{6.6688213348388672e+00, 1.8525123596191406e-04,
- 1.1920928955078125e-07, 6.2108039855957031e-05,
- 3.5047531127929688e-05}, /* L466 */
-{5.7059788703918457e+00, 1.5887618064880371e-04,
- 1.1920928955078125e-07, -1.3995170593261719e-04,
- 4.0292739868164062e-05}, /* L467 */
-{5.3852772712707520e+00, 1.5031173825263977e-04,
- 1.1920928955078125e-07, -1.0627508163452148e-04,
- 1.6546249389648438e-04}, /* L468 */
-{5.4737334251403809e+00, 1.5303492546081543e-04,
- 1.1920928955078125e-07, -3.2961368560791016e-05,
- -8.2254409790039062e-06}, /* L469 */
-{6.2459731101989746e+00, 1.7499178647994995e-04,
- 1.1920928955078125e-07, 2.0742416381835938e-05,
- 2.5033950805664062e-05}, /* L470 */
-{4.6046891212463379e+00, 1.3118982315063477e-04,
- 1.1920928955078125e-07, -4.3466687202453613e-03,
- 1.4680624008178711e-03}, /* L471 */
-{4.8978681564331055e+00, 1.3780593872070312e-04,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -3.0457973480224609e-05}, /* L472 */
-{7.9574761390686035e+00, 2.2460520267486572e-04,
- 1.1920928955078125e-07, 3.8075447082519531e-04,
- -2.1219253540039062e-04}, /* L473 */
-{4.2515830993652344e+00, 1.2014200910925865e-04,
- 1.1920928955078125e-07, -7.2360038757324219e-05,
- -6.6876411437988281e-05}, /* L474 */
-{5.4190325736999512e+00, 1.5361607074737549e-04,
- 1.1920928955078125e-07, 4.3272972106933594e-05,
- -1.7601251602172852e-04}, /* L475 */
-{6.3281736373901367e+00, 1.7964839935302734e-04,
- 1.1920928955078125e-07, 1.3947486877441406e-04,
- -2.2107362747192383e-04}, /* L476 */
-{3.7793059349060059e+00, 1.0746717453002930e-04,
- 1.1920928955078125e-07, 2.6583671569824219e-05,
- 4.0531158447265625e-06}, /* L477 */
-{4.4066367149353027e+00, 1.2557208538055420e-04,
- 1.1920928955078125e-07, 6.1273574829101562e-05,
- 3.9339065551757812e-06}, /* L478 */
-{6.4993472099304199e+00, 1.8557906150817871e-04,
- 1.1920928955078125e-07, -6.1392784118652344e-05,
- 3.7193298339843750e-05}, /* L479 */
-{6.2593770027160645e+00, 1.7911195755004883e-04,
- 1.1920928955078125e-07, -5.5074691772460938e-05,
- -1.2320280075073242e-04}, /* L480 */
-{4.6440944671630859e+00, 1.3327598571777344e-04,
- 1.1920928955078125e-07, -4.3690204620361328e-04,
- 5.5289268493652344e-04}, /* L481 */
-{6.5928316116333008e+00, 1.8948316574096680e-04,
- 1.1920928955078125e-07, -3.9458274841308594e-05,
- -9.8526477813720703e-05}, /* L482 */
-{4.8468360900878906e+00, 1.3955682516098022e-04,
- 1.1920928955078125e-07, 4.6133995056152344e-05,
- -7.1525573730468750e-07}, /* L483 */
-{4.7277173995971680e+00, 1.3640522956848145e-04,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- -9.2983245849609375e-06}, /* L484 */
-{5.2042722702026367e+00, 1.5047192573547363e-04,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -2.7179718017578125e-05}, /* L485 */
-{7.6484584808349609e+00, 2.2158026695251465e-04,
- 1.1920928955078125e-07, 2.0742416381835938e-05,
- -1.7762184143066406e-05}, /* L486 */
-{5.6462640762329102e+00, 1.6395002603530884e-04,
- 1.1920928955078125e-07, -1.2415647506713867e-04,
- 7.0691108703613281e-05}, /* L487 */
-{4.7241506576538086e+00, 1.3745576143264771e-04,
- 1.1920928955078125e-07, 2.3794174194335938e-04,
- -1.8179416656494141e-04}, /* L488 */
-{5.8057913780212402e+00, 1.6927719116210938e-04,
- 1.1920928955078125e-07, -3.0159950256347656e-05,
- -8.3208084106445312e-05}, /* L489 */
-{4.3500633239746094e+00, 1.2707710266113281e-04,
- 1.1920928955078125e-07, -2.4497509002685547e-05,
- -6.9677829742431641e-05}, /* L490 */
-{4.9095382690429688e+00, 1.4370679855346680e-04,
- 1.1920928955078125e-07, -2.8192996978759766e-05,
- 8.7261199951171875e-05}, /* L491 */
-{5.7339191436767578e+00, 1.6829371452331543e-04,
- 1.1920928955078125e-07, 4.8053264617919922e-04,
- -2.3537874221801758e-04}, /* L492 */
-{4.6975097656250000e+00, 1.3805180788040161e-04,
- 1.1920928955078125e-07, -3.8743019104003906e-05,
- -2.2888183593750000e-05}, /* L493 */
-{4.3158860206604004e+00, 1.2713670730590820e-04,
- 1.1920928955078125e-07, -5.0961971282958984e-05,
- 1.2087821960449219e-04}, /* L494 */
-{5.4251818656921387e+00, 1.6009807586669922e-04,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- -1.7285346984863281e-06}, /* L495 */
-{6.5774898529052734e+00, 1.9448995590209961e-04,
- 1.1920928955078125e-07, -6.0200691223144531e-05,
- -1.1265277862548828e-05}, /* L496 */
-{6.7196607589721680e+00, 1.9907951354980469e-04,
- 1.1920928955078125e-07, -1.2457370758056641e-05,
- -1.2278556823730469e-05}, /* L497 */
-{5.4235830307006836e+00, 1.6105175018310547e-04,
- 1.1920928955078125e-07, -1.4960765838623047e-05,
- 9.8109245300292969e-05}, /* L498 */
-{5.0917434692382812e+00, 1.5148520469665527e-04,
- 1.1920928955078125e-07, -8.6307525634765625e-05,
- 4.2080879211425781e-05}, /* L499 */
-{5.4442763328552246e+00, 1.6227364540100098e-04,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- 1.4662742614746094e-05}, /* L500 */
-{5.5390739440917969e+00, 1.6545504331588745e-04,
- 1.1920928955078125e-07, 1.3566017150878906e-04,
- -8.9883804321289062e-05}, /* L501 */
-{5.3297233581542969e+00, 1.5962123870849609e-04,
- 1.1920928955078125e-07, 2.7537345886230469e-05,
- 2.7930736541748047e-04}, /* L502 */
-{6.4822640419006348e+00, 1.9440799951553345e-04,
- 1.1920928955078125e-07, 1.8680095672607422e-04,
- -2.6047229766845703e-05}, /* L503 */
-{5.5394301414489746e+00, 1.6643106937408447e-04,
- 1.1920928955078125e-07, 3.6358833312988281e-05,
- 3.6239624023437500e-05}, /* L504 */
-{5.2332248687744141e+00, 1.5753507614135742e-04,
- 1.1920928955078125e-07, -3.9279460906982422e-05,
- -1.3113021850585938e-06}, /* L505 */
-{8.0942201614379883e+00, 2.4414062500000000e-04,
- 1.1920928955078125e-07, -1.6093254089355469e-05,
- 1.5258789062500000e-05}, /* L506 */
-{4.2767829895019531e+00, 1.2925267219543457e-04,
- 1.1920928955078125e-07, 3.8385391235351562e-05,
- -5.6624412536621094e-06}, /* L507 */
-{4.6451654434204102e+00, 1.4105439186096191e-04,
- 1.1920928955078125e-07, -1.2108683586120605e-03,
- 2.1839141845703125e-03}, /* L508 */
-{5.5332851409912109e+00, 1.6792863607406616e-04,
- 1.1920928955078125e-07, -4.2080879211425781e-05,
- 5.9604644775390625e-05}, /* L509 */
-{6.4323558807373047e+00, 1.9559264183044434e-04,
- 1.1920928955078125e-07, 3.8146972656250000e-05,
- -7.2360038757324219e-05}, /* L510 */
-{6.5628199577331543e+00, 1.9992887973785400e-04,
- 1.1920928955078125e-07, 5.5193901062011719e-05,
- -3.8266181945800781e-05}, /* L511 */
-{5.6717777252197266e+00, 1.7311424016952515e-04,
- 1.1920928955078125e-07, -6.7889690399169922e-05,
- -8.7022781372070312e-06}, /* L512 */
-{6.5298566818237305e+00, 1.9976496696472168e-04,
- 1.1920928955078125e-07, 1.5568733215332031e-04,
- 9.4175338745117188e-06}, /* L513 */
-{6.1009860038757324e+00, 1.8694996833801270e-04,
- 1.1920928955078125e-07, -9.0241432189941406e-05,
- 9.1791152954101562e-06}, /* L514 */
-{4.6069436073303223e+00, 1.4144182205200195e-04,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 4.8279762268066406e-05}, /* L515 */
-{5.7826142311096191e+00, 1.7786026000976562e-04,
- 1.1920928955078125e-07, 2.7894973754882812e-05,
- -1.5199184417724609e-05}, /* L516 */
-{4.6740789413452148e+00, 1.4409609138965607e-04,
- 1.1920928955078125e-07, 3.2782554626464844e-05,
- -8.1777572631835938e-05}, /* L517 */
-{5.7292728424072266e+00, 1.7690658569335938e-04,
- 1.1920928955078125e-07, 1.6212463378906250e-05,
- -5.0067901611328125e-06}, /* L518 */
-{6.9742560386657715e+00, 2.1585822105407715e-04,
- 1.1920928955078125e-07, -2.5033950805664062e-06,
- -4.0352344512939453e-05}, /* L519 */
-{5.2072267532348633e+00, 1.6140937805175781e-04,
- 1.1920928955078125e-07, 6.1988830566406250e-06,
- -4.2915344238281250e-06}, /* L520 */
-{6.0043420791625977e+00, 1.8668919801712036e-04,
- 1.1920928955078125e-07, 1.7476081848144531e-04,
- -5.6624412536621094e-06}, /* L521 */
-{7.2041501998901367e+00, 2.2444128990173340e-04,
- 1.1920928955078125e-07, -2.7942657470703125e-04,
- -3.4064054489135742e-04}, /* L522 */
-{6.3482990264892578e+00, 1.9794702529907227e-04,
- 1.1920928955078125e-07, -1.6772747039794922e-04,
- -1.1688470840454102e-04}, /* L523 */
-{5.0018472671508789e+00, 1.5630759298801422e-04,
- 1.1920928955078125e-07, -2.6547908782958984e-04,
- 8.9883804321289062e-05}, /* L524 */
-{6.0701403617858887e+00, 1.9017606973648071e-04,
- 1.1920928955078125e-07, 3.1435489654541016e-04,
- 4.1615962982177734e-04}, /* L525 */
-{6.5122113227844238e+00, 2.0425021648406982e-04,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -3.8385391235351562e-05}, /* L526 */
-{5.9485774040222168e+00, 1.8700957298278809e-04,
- 1.1920928955078125e-07, -1.8322467803955078e-04,
- -1.0120868682861328e-04}, /* L527 */
-{6.1064362525939941e+00, 1.9222497940063477e-04,
- 1.1920928955078125e-07, 2.8491020202636719e-05,
- 2.6464462280273438e-05}, /* L528 */
-{6.3791060447692871e+00, 2.0116567611694336e-04,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- -1.2350082397460938e-04}, /* L529 */
-{6.2805528640747070e+00, 1.9842386245727539e-04,
- 1.1920928955078125e-07, -3.5881996154785156e-05,
- 7.2717666625976562e-06}, /* L530 */
-{4.7098083496093750e+00, 1.4910101890563965e-04,
- 1.1920928955078125e-07, 1.3899803161621094e-04,
- 9.3340873718261719e-05}, /* L531 */
-{6.0455698966979980e+00, 1.9177794456481934e-04,
- 1.1920928955078125e-07, -1.8775463104248047e-05,
- 6.1273574829101562e-05}, /* L532 */
-{6.4203238487243652e+00, 2.0446628332138062e-04,
- 1.1920928955078125e-07, -1.2432932853698730e-03,
- -3.6144256591796875e-04}, /* L533 */
-{7.1806120872497559e+00, 2.2858381271362305e-04,
- 1.1920928955078125e-07, 7.1048736572265625e-05,
- 5.3644180297851562e-06}, /* L534 */
-{9.8606615066528320e+00, 3.1463801860809326e-04,
- 1.1920928955078125e-07, 2.2411346435546875e-04,
- 1.0371208190917969e-05}, /* L535 */
-{5.9835610389709473e+00, 1.9130110740661621e-04,
- 1.1920928955078125e-07, -5.5313110351562500e-05,
- 8.1181526184082031e-05}, /* L536 */
-{7.0415029525756836e+00, 2.2654235363006592e-04,
- 1.1920928955078125e-07, -1.0530948638916016e-03,
- 1.1537075042724609e-03}, /* L537 */
-{6.3463444709777832e+00, 2.0353496074676514e-04,
- 1.1920928955078125e-07, -1.6510486602783203e-05,
- -9.2387199401855469e-06}, /* L538 */
-{6.0591125488281250e+00, 1.9469857215881348e-04,
- 1.1920928955078125e-07, -1.6045570373535156e-04,
- 4.9233436584472656e-05}, /* L539 */
-{5.6011815071105957e+00, 1.8030405044555664e-04,
- 1.1920928955078125e-07, 1.8715858459472656e-05,
- 3.6001205444335938e-05}, /* L540 */
-{6.5123834609985352e+00, 2.1007657051086426e-04,
- 1.1920928955078125e-07, -3.6716461181640625e-05,
- -1.6403198242187500e-04}, /* L541 */
-{5.2143120765686035e+00, 1.6847252845764160e-04,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- -1.7821788787841797e-05}, /* L542 */
-{5.8082418441772461e+00, 1.9138120114803314e-04,
- 1.1920928955078125e-07, 5.5387020111083984e-03,
- -5.0246119499206543e-03}, /* L543 */
-{5.6817235946655273e+00, 1.8434831872582436e-04,
- 1.1920928955078125e-07, 4.2402744293212891e-04,
- -1.5872716903686523e-04}, /* L544 */
-{5.9275789260864258e+00, 1.9258260726928711e-04,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- 2.7060508728027344e-05}, /* L545 */
-{5.8588380813598633e+00, 1.9070506095886230e-04,
- 1.1920928955078125e-07, 4.8279762268066406e-05,
- 5.6266784667968750e-05}, /* L546 */
-{5.6254734992980957e+00, 1.8343701958656311e-04,
- 1.1920928955078125e-07, -8.4638595581054688e-05,
- 3.4093856811523438e-05}, /* L547 */
-{5.0961833000183105e+00, 1.6652792692184448e-04,
- 1.1920928955078125e-07, 6.5922737121582031e-05,
- -1.3411045074462891e-04}, /* L548 */
-{6.2443075180053711e+00, 2.0440947264432907e-04,
- 1.1920928955078125e-07, 6.7234039306640625e-05,
- -1.5187263488769531e-04}, /* L549 */
-{7.4831562042236328e+00, 2.4535506963729858e-04,
- 1.1920928955078125e-07, -6.8604946136474609e-05,
- -4.7683715820312500e-06}, /* L550 */
-{5.0809082984924316e+00, 1.6692280769348145e-04,
- 1.1920928955078125e-07, 7.5221061706542969e-05,
- 1.1420249938964844e-04}, /* L551 */
-{5.6055669784545898e+00, 1.8453598022460938e-04,
- 1.1920928955078125e-07, -6.1929225921630859e-05,
- 2.1076202392578125e-04}, /* L552 */
-{6.0394906997680664e+00, 1.9916892051696777e-04,
- 1.1920928955078125e-07, 2.0325183868408203e-04,
- -9.4473361968994141e-05}, /* L553 */
-{4.9989409446716309e+00, 1.6509741544723511e-04,
- 1.1920928955078125e-07, 1.4305114746093750e-05,
- -1.2576580047607422e-05}, /* L554 */
-{6.5298719406127930e+00, 2.1618604660034180e-04,
- 1.1920928955078125e-07, -2.9033422470092773e-04,
- -4.6604871749877930e-04}, /* L555 */
-{5.1845488548278809e+00, 1.7186999320983887e-04,
- 1.1920928955078125e-07, -9.8526477813720703e-05,
- 1.3649463653564453e-04}, /* L556 */
-{6.6930212974548340e+00, 2.2235512733459473e-04,
- 1.1920928955078125e-07, -4.7624111175537109e-05,
- 1.6808509826660156e-04}, /* L557 */
-{4.8804965019226074e+00, 1.6233325004577637e-04,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- 1.1205673217773438e-05}, /* L558 */
-{6.2572875022888184e+00, 2.0852684974670410e-04,
- 1.1920928955078125e-07, 9.0837478637695312e-05,
- 4.1365623474121094e-05}, /* L559 */
-{6.7210745811462402e+00, 2.2441148757934570e-04,
- 1.1920928955078125e-07, -3.9935111999511719e-05,
- -2.3066997528076172e-05}, /* L560 */
-{5.2006220817565918e+00, 1.7392635345458984e-04,
- 1.1920928955078125e-07, 6.3538551330566406e-05,
- -7.3850154876708984e-05}, /* L561 */
-{7.3802509307861328e+00, 2.4726241827011108e-04,
- 1.1920928955078125e-07, 8.5234642028808594e-05,
- 3.7550926208496094e-05}, /* L562 */
-{6.7479071617126465e+00, 2.2649765014648438e-04,
- 1.1920928955078125e-07, 3.8027763366699219e-05,
- -6.0021877288818359e-05}, /* L563 */
-{6.6056127548217773e+00, 2.2214651107788086e-04,
- 1.1920928955078125e-07, 5.1736831665039062e-05,
- 1.4531612396240234e-04}, /* L564 */
-{7.0501170158386230e+00, 2.3755431175231934e-04,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- 2.0265579223632812e-05}, /* L565 */
-{6.4391379356384277e+00, 2.1730363368988037e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-05,
- 9.4175338745117188e-05}, /* L566 */
-{6.9825325012207031e+00, 2.3601949214935303e-04,
- 1.1920928955078125e-07, 7.5578689575195312e-05,
- 3.5643577575683594e-05}, /* L567 */
-{5.8127536773681641e+00, 1.9684806466102600e-04,
- 1.1920928955078125e-07, 1.2326240539550781e-04,
- 5.4478645324707031e-05}, /* L568 */
-{8.0272684097290039e+00, 2.7230381965637207e-04,
- 1.1920928955078125e-07, 8.3208084106445312e-05,
- -3.8623809814453125e-05}, /* L569 */
-{6.4014959335327148e+00, 2.1758675575256348e-04,
- 1.1920928955078125e-07, -8.5473060607910156e-05,
- 2.5749206542968750e-05}, /* L570 */
-{5.7988405227661133e+00, 1.9738078117370605e-04,
- 1.1920928955078125e-07, -4.1365623474121094e-05,
- -3.7729740142822266e-05}, /* L571 */
-{7.0236344337463379e+00, 2.3949146270751953e-04,
- 1.1920928955078125e-07, 2.8610229492187500e-05,
- -1.0311603546142578e-05}, /* L572 */
-{5.9214911460876465e+00, 2.0278990268707275e-04,
- 1.1920928955078125e-07, 1.1740922927856445e-03,
- 2.9563903808593750e-04}, /* L573 */
-{5.3969821929931641e+00, 1.8486380577087402e-04,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- -3.0374526977539062e-04}, /* L574 */
-{5.3109188079833984e+00, 1.8203258514404297e-04,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- 2.0980834960937500e-05}, /* L575 */
-{5.6305375099182129e+00, 1.9362129387445748e-04,
- 1.1920928955078125e-07, -1.5616416931152344e-05,
- -1.6355514526367188e-04}, /* L576 */
-{6.8221902847290039e+00, 2.3466348648071289e-04,
- 1.1920928955078125e-07, -1.4483928680419922e-05,
- -8.5234642028808594e-05}, /* L577 */
-{6.3150839805603027e+00, 2.1791458129882812e-04,
- 1.1920928955078125e-07, 4.7433376312255859e-04,
- 1.9383430480957031e-04}, /* L578 */
-{7.1800775527954102e+00, 2.4781748652458191e-04,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- 1.9907951354980469e-05}, /* L579 */
-{5.4412136077880859e+00, 1.8814206123352051e-04,
- 1.1920928955078125e-07, -5.3405761718750000e-05,
- -1.1909008026123047e-04}, /* L580 */
-{8.7572927474975586e+00, 3.0329823493957520e-04,
- 1.1920928955078125e-07, -1.3828277587890625e-05,
- 2.7418136596679688e-06}, /* L581 */
-{7.5605139732360840e+00, 2.6246905326843262e-04,
- 1.1920928955078125e-07, 4.5454502105712891e-04,
- -2.1207332611083984e-04}, /* L582 */
-{6.3386330604553223e+00, 2.2041797637939453e-04,
- 1.1920928955078125e-07, -3.0934810638427734e-04,
- -2.5814771652221680e-04}, /* L583 */
-{6.0350904464721680e+00, 2.1021068096160889e-04,
- 1.1920928955078125e-07, -1.0293722152709961e-04,
- -2.1505355834960938e-04}, /* L584 */
-{7.0498714447021484e+00, 2.4584680795669556e-04,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- 8.4638595581054688e-06}, /* L585 */
-{7.2395043373107910e+00, 2.5289505720138550e-04,
- 1.1920928955078125e-07, 1.3470649719238281e-05,
- 3.5762786865234375e-07}, /* L586 */
-{6.1346359252929688e+00, 2.1506845951080322e-04,
- 1.1920928955078125e-07, -6.1881542205810547e-04,
- 3.1769275665283203e-04}, /* L587 */
-{6.6148605346679688e+00, 2.3186206817626953e-04,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -3.5643577575683594e-05}, /* L588 */
-{8.6546363830566406e+00, 3.0386447906494141e-04,
- 1.1920928955078125e-07, -1.9371509552001953e-05,
- -3.2186508178710938e-05}, /* L589 */
-{7.0274395942687988e+00, 2.4715566541999578e-04,
- 1.1920928955078125e-07, -3.2126903533935547e-05,
- -3.9935111999511719e-06}, /* L590 */
-{5.8514413833618164e+00, 2.0614266395568848e-04,
- 1.1920928955078125e-07, -2.7894973754882812e-05,
- -1.9073486328125000e-06}, /* L591 */
-{6.4276132583618164e+00, 2.2682547569274902e-04,
- 1.1920928955078125e-07, 2.0980834960937500e-05,
- 6.3776969909667969e-05}, /* L592 */
-{6.2850108146667480e+00, 2.2220611572265625e-04,
- 1.1920928955078125e-07, -1.1056661605834961e-04,
- 4.8637390136718750e-05}, /* L593 */
-{5.9203419685363770e+00, 2.0962953567504883e-04,
- 1.1920928955078125e-07, 7.6293945312500000e-05,
- 8.3446502685546875e-06}, /* L594 */
-{6.0755124092102051e+00, 2.1553039550781250e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-05,
- 7.7009201049804688e-05}, /* L595 */
-{6.9456195831298828e+00, 2.4677626788616180e-04,
- 1.1920928955078125e-07, 6.1035156250000000e-05,
- -1.2278556823730469e-05}, /* L596 */
-{6.6276535987854004e+00, 2.3597478866577148e-04,
- 1.1920928955078125e-07, -2.1386146545410156e-04,
- -1.3536214828491211e-04}, /* L597 */
-{8.7692584991455078e+00, 3.1261146068572998e-04,
- 1.1920928955078125e-07, -3.4809112548828125e-05,
- 4.8756599426269531e-05}, /* L598 */
-{7.5165872573852539e+00, 2.6839971542358398e-04,
- 1.1920928955078125e-07, -1.2457370758056641e-05,
- 1.0728836059570312e-06}, /* L599 */
-{8.3262538909912109e+00, 2.9927678406238556e-04,
- 1.1920928955078125e-07, -1.9312500953674316e-03,
- -2.1171569824218750e-04}, /* L600 */
-{9.4458217620849609e+00, 3.3859908580780029e-04,
- 1.1920928955078125e-07, 8.7618827819824219e-05,
- 1.5139579772949219e-05}, /* L601 */
-{6.7274756431579590e+00, 2.4144351482391357e-04,
- 1.1920928955078125e-07, -4.2974948883056641e-05,
- 1.1897087097167969e-04}, /* L602 */
-{7.8363604545593262e+00, 2.8376467525959015e-04,
- 1.1920928955078125e-07, -7.1954727172851562e-04,
- 1.8471479415893555e-03}, /* L603 */
-{7.2006816864013672e+00, 2.5996565818786621e-04,
- 1.1920928955078125e-07, 1.1007785797119141e-03,
- -1.5318393707275391e-04}, /* L604 */
-{5.9672775268554688e+00, 2.1524727344512939e-04,
- 1.1920928955078125e-07, 5.8531761169433594e-05,
- -5.4180622100830078e-05}, /* L605 */
-{6.6397676467895508e+00, 2.3984909057617188e-04,
- 1.1920928955078125e-07, -1.9311904907226562e-05,
- -5.2213668823242188e-05}, /* L606 */
-{7.7012095451354980e+00, 2.7869641780853271e-04,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- -2.4914741516113281e-05}, /* L607 */
-{6.5380864143371582e+00, 2.3730099201202393e-04,
- 1.1920928955078125e-07, -6.4134597778320312e-05,
- 8.6665153503417969e-05}, /* L608 */
-{7.0148911476135254e+00, 2.5467574596405029e-04,
- 1.1920928955078125e-07, -2.4974346160888672e-05,
- 3.6001205444335938e-05}, /* L609 */
-{8.0610733032226562e+00, 2.9312074184417725e-04,
- 1.1920928955078125e-07, 6.1988830566406250e-06,
- 1.4781951904296875e-05}, /* L610 */
-{8.4844284057617188e+00, 3.0901655554771423e-04,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- 1.7523765563964844e-05}, /* L611 */
-{8.4315233230590820e+00, 3.0758976936340332e-04,
- 1.1920928955078125e-07, -1.1563301086425781e-05,
- 1.1920928955078125e-05}, /* L612 */
-{8.6042461395263672e+00, 3.1459331512451172e-04,
- 1.1920928955078125e-07, 3.5476684570312500e-04,
- 3.4737586975097656e-04}, /* L613 */
-{8.7867527008056641e+00, 3.2180547714233398e-04,
- 1.1920928955078125e-07, -2.2470951080322266e-05,
- 1.0967254638671875e-05}, /* L614 */
-{9.0580825805664062e+00, 3.3208727836608887e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -4.0590763092041016e-05}, /* L615 */
-{5.8906612396240234e+00, 2.1637976169586182e-04,
- 1.1920928955078125e-07, 1.3172626495361328e-04,
- 1.1813640594482422e-04}, /* L616 */
-{7.1024665832519531e+00, 2.6124715805053711e-04,
- 1.1920928955078125e-07, 1.2028217315673828e-04,
- 1.2755393981933594e-05}, /* L617 */
-{6.8424844741821289e+00, 2.5221705436706543e-04,
- 1.1920928955078125e-07, 1.9931793212890625e-04,
- 4.2915344238281250e-05}, /* L618 */
-{5.5158677101135254e+00, 2.0404160022735596e-04,
- 1.1920928955078125e-07, 8.1896781921386719e-05,
- 3.4797191619873047e-04}, /* L619 */
-{8.7877855300903320e+00, 3.2496452331542969e-04,
- 1.1920928955078125e-07, -2.9331445693969727e-04,
- -3.3307075500488281e-04}, /* L620 */
-{5.8555126190185547e+00, 2.1676719188690186e-04,
- 1.1920928955078125e-07, 3.5285949707031250e-05,
- 1.3113021850585938e-05}, /* L621 */
-{5.1568202972412109e+00, 2.0846724510192871e-04,
- 1.1920928955078125e-07, 2.5754451751708984e-02,
- -2.2436201572418213e-02}, /* L622 */
-{6.2856278419494629e+00, 2.3347139358520508e-04,
- 1.1920928955078125e-07, -4.4822692871093750e-05,
- 5.6266784667968750e-05}, /* L623 */
-{6.2185540199279785e+00, 2.3135170340538025e-04,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 7.2598457336425781e-05}, /* L624 */
-{6.9696683883666992e+00, 2.5967881083488464e-04,
- 1.1920928955078125e-07, -7.0512294769287109e-05,
- 2.3841857910156250e-06}, /* L625 */
-{7.5238008499145508e+00, 2.8077512979507446e-04,
- 1.1920928955078125e-07, 2.5749206542968750e-05,
- -5.1021575927734375e-05}, /* L626 */
-{8.8563022613525391e+00, 3.3107399940490723e-04,
- 1.1920928955078125e-07, -6.6339969635009766e-05,
- -8.4698200225830078e-05}, /* L627 */
-{6.3256535530090332e+00, 2.3686140775680542e-04,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- -1.6564130783081055e-04}, /* L628 */
-{6.3983573913574219e+00, 2.3998320102691650e-04,
- 1.1920928955078125e-07, -2.5928020477294922e-05,
- 1.8000602722167969e-05}, /* L629 */
-{6.9314603805541992e+00, 2.6085972785949707e-04,
- 1.1920928955078125e-07, 5.4144859313964844e-04,
- 3.9875507354736328e-04}, /* L630 */
-{6.2985086441040039e+00, 2.3696944117546082e-04,
- 1.1920928955078125e-07, -5.9008598327636719e-05,
- 3.8146972656250000e-05}, /* L631 */
-{5.0981369018554688e+00, 1.9231438636779785e-04,
- 1.1920928955078125e-07, 6.9189071655273438e-04,
- -6.5624713897705078e-05}, /* L632 */
-{5.7392144203186035e+00, 2.1660327911376953e-04,
- 1.1920928955078125e-07, -7.8141689300537109e-05,
- -6.3419342041015625e-05}, /* L633 */
-{6.8691639900207520e+00, 2.5969743728637695e-04,
- 1.1920928955078125e-07, -3.5107135772705078e-05,
- -1.1295080184936523e-04}, /* L634 */
-{6.3156399726867676e+00, 2.3921206593513489e-04,
- 1.1920928955078125e-07, 7.8678131103515625e-05,
- 3.3187866210937500e-04}, /* L635 */
-{7.0038423538208008e+00, 2.6579201221466064e-04,
- 1.1920928955078125e-07, 2.2745132446289062e-04,
- -1.6206502914428711e-04}, /* L636 */
-{7.4366865158081055e+00, 2.8249621391296387e-04,
- 1.1920928955078125e-07, 6.4253807067871094e-05,
- -2.0384788513183594e-04}, /* L637 */
-{6.2501978874206543e+00, 2.3779273033142090e-04,
- 1.1920928955078125e-07, 4.2438507080078125e-05,
- 3.7550926208496094e-05}, /* L638 */
-{8.1037216186523438e+00, 3.0872225761413574e-04,
- 1.1920928955078125e-07, 6.9737434387207031e-05,
- 2.8014183044433594e-05}, /* L639 */
-{5.9695239067077637e+00, 2.2774934768676758e-04,
- 1.1920928955078125e-07, 6.4969062805175781e-05,
- -3.8921833038330078e-05}, /* L640 */
-{6.5091695785522461e+00, 2.4873018264770508e-04,
- 1.1920928955078125e-07, -1.9490718841552734e-05,
- 6.7949295043945312e-05}, /* L641 */
-{9.5873517990112305e+00, 3.6695599555969238e-04,
- 1.1920928955078125e-07, -4.0411949157714844e-05,
- -1.8668174743652344e-04}, /* L642 */
-{6.6014575958251953e+00, 2.5308877229690552e-04,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 4.8995018005371094e-05}, /* L643 */
-{8.5098400115966797e+00, 3.2669305801391602e-04,
- 1.1920928955078125e-07, 2.1696090698242188e-05,
- 2.0384788513183594e-05}, /* L644 */
-{7.7046642303466797e+00, 2.9628351330757141e-04,
- 1.1920928955078125e-07, 6.1988830566406250e-05,
- 4.8756599426269531e-05}, /* L645 */
-{6.8033075332641602e+00, 2.6200711727142334e-04,
- 1.1920928955078125e-07, 7.5459480285644531e-05,
- -3.5583972930908203e-05}, /* L646 */
-{7.6110777854919434e+00, 2.9364228248596191e-04,
- 1.1920928955078125e-07, -2.2649765014648438e-05,
- 3.8504600524902344e-05}, /* L647 */
-{7.6394329071044922e+00, 2.9513239860534668e-04,
- 1.1920928955078125e-07, 8.3327293395996094e-05,
- -1.3118982315063477e-04}, /* L648 */
-{6.9210720062255859e+00, 2.6804208755493164e-04,
- 1.1920928955078125e-07, -5.7119131088256836e-04,
- -2.6553869247436523e-04}, /* L649 */
-{9.6470050811767578e+00, 3.7398934364318848e-04,
- 1.1920928955078125e-07, 2.1576881408691406e-04,
- 4.1079521179199219e-04}, /* L650 */
-{6.6267209053039551e+00, 2.5722384452819824e-04,
- 1.1920928955078125e-07, 4.4465065002441406e-05,
- -1.0704994201660156e-04}, /* L651 */
-{6.6527590751647949e+00, 2.5856494903564453e-04,
- 1.1920928955078125e-07, 6.3896179199218750e-05,
- -2.3245811462402344e-05}, /* L652 */
-{6.7702984809875488e+00, 2.6354193687438965e-04,
- 1.1920928955078125e-07, -3.5166740417480469e-05,
- 2.1219253540039062e-05}, /* L653 */
-{9.8063097000122070e+00, 3.8236379623413086e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- 3.7908554077148438e-05}, /* L654 */
-{5.9667401313781738e+00, 2.3318454623222351e-04,
- 1.1920928955078125e-07, -2.0933151245117188e-04,
- -1.2665987014770508e-04}, /* L655 */
-{7.4389114379882812e+00, 2.9096007347106934e-04,
- 1.1920928955078125e-07, 1.1610984802246094e-04,
- -4.8398971557617188e-05}, /* L656 */
-{8.9964923858642578e+00, 3.5235285758972168e-04,
- 1.1920928955078125e-07, 5.1736831665039062e-05,
- 7.1525573730468750e-05}, /* L657 */
-{6.3046779632568359e+00, 2.4741888046264648e-04,
- 1.1920928955078125e-07, 1.5044212341308594e-04,
- 1.2445449829101562e-04}, /* L658 */
-{9.0647687911987305e+00, 3.5610795021057129e-04,
- 1.1920928955078125e-07, 4.3749809265136719e-05,
- 7.5101852416992188e-06}, /* L659 */
-{6.8659934997558594e+00, 2.7024745941162109e-04,
- 1.1920928955078125e-07, -2.4121999740600586e-04,
- 1.6617774963378906e-04}, /* L660 */
-{8.9323902130126953e+00, 3.5199522972106934e-04,
- 1.1920928955078125e-07, -1.4483928680419922e-05,
- -8.7499618530273438e-05}, /* L661 */
-{6.1813611984252930e+00, 2.4397484958171844e-04,
- 1.1920928955078125e-07, 1.0144710540771484e-04,
- 4.7206878662109375e-05}, /* L662 */
-{1.0839965820312500e+01, 4.2879581451416016e-04,
- 1.1920928955078125e-07, 3.4725666046142578e-04,
- 3.5870075225830078e-04}, /* L663 */
-{8.7427816390991211e+00, 3.4610927104949951e-04,
- 1.1920928955078125e-07, -5.6028366088867188e-05,
- -9.6440315246582031e-05}, /* L664 */
-{7.9008026123046875e+00, 3.1322240829467773e-04,
- 1.1920928955078125e-07, 4.7564506530761719e-05,
- 4.3630599975585938e-05}, /* L665 */
-{6.4652600288391113e+00, 2.5704503059387207e-04,
- 1.1920928955078125e-07, -2.1356344223022461e-04,
- -7.7950954437255859e-04}, /* L666 */
-{6.9284787178039551e+00, 2.7552247047424316e-04,
- 1.1920928955078125e-07, -3.2484531402587891e-05,
- -2.7120113372802734e-05}, /* L667 */
-{8.3810567855834961e+00, 3.3651292324066162e-04,
- 1.1920928955078125e-07, 3.3843517303466797e-04,
- -2.2404789924621582e-03}, /* L668 */
-{8.1851119995117188e+00, 3.2645463943481445e-04,
- 1.1920928955078125e-07, -6.1869621276855469e-05,
- -3.4272670745849609e-05}, /* L669 */
-{7.3816566467285156e+00, 2.9486417770385742e-04,
- 1.1920928955078125e-07, 1.1992454528808594e-04,
- 1.0311603546142578e-04}, /* L670 */
-{7.8220148086547852e+00, 3.1331181526184082e-04,
- 1.1920928955078125e-07, -1.0734796524047852e-04,
- 3.2830238342285156e-04}, /* L671 */
-{7.5229115486145020e+00, 3.0151009559631348e-04,
- 1.1920928955078125e-07, -1.9711256027221680e-04,
- -2.3770332336425781e-04}, /* L672 */
-{6.5509996414184570e+00, 2.6284158229827881e-04,
- 1.1920928955078125e-07, -9.8228454589843750e-05,
- 8.7141990661621094e-05}, /* L673 */
-{7.1282691955566406e+00, 2.8648972511291504e-04,
- 1.1920928955078125e-07, -2.4437904357910156e-04,
- 4.8160552978515625e-05}, /* L674 */
-{6.7553138732910156e+00, 2.7185678482055664e-04,
- 1.1920928955078125e-07, -7.4505805969238281e-06,
- -2.7775764465332031e-05}, /* L675 */
-{8.0430755615234375e+00, 3.2412260770797729e-04,
- 1.1920928955078125e-07, 4.6968460083007812e-05,
- -1.0132789611816406e-06}, /* L676 */
-{6.0175518989562988e+00, 2.4289637804031372e-04,
- 1.1920928955078125e-07, -8.1896781921386719e-05,
- -7.3909759521484375e-06}, /* L677 */
-{9.2409667968750000e+00, 3.7362426519393921e-04,
- 1.1920928955078125e-07, -1.8084049224853516e-04,
- 3.5285949707031250e-05}, /* L678 */
-{7.9893679618835449e+00, 3.2436847686767578e-04,
- 1.1920928955078125e-07, -5.8668851852416992e-04,
- -9.3948841094970703e-04}, /* L679 */
-{8.5888214111328125e+00, 3.4877657890319824e-04,
- 1.1920928955078125e-07, -3.2430887222290039e-04,
- -1.5801191329956055e-04}, /* L680 */
-{6.5242967605590820e+00, 2.6491284370422363e-04,
- 1.1920928955078125e-07, -2.2679567337036133e-04,
- 5.1379203796386719e-05}, /* L681 */
-{6.3782482147216797e+00, 2.5932490825653076e-04,
- 1.1920928955078125e-07, 1.2636184692382812e-04,
- 8.8214874267578125e-05}, /* L682 */
-{5.6315855979919434e+00, 2.2928416728973389e-04,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -1.3828277587890625e-05}, /* L683 */
-{5.2586255073547363e+00, 2.1506845951080322e-04,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- -1.3022422790527344e-03}, /* L684 */
-{6.9760751724243164e+00, 2.8494000434875488e-04,
- 1.1920928955078125e-07, -1.9007921218872070e-04,
- -2.5629997253417969e-06}, /* L685 */
-{7.5023474693298340e+00, 3.0702352523803711e-04,
- 1.1920928955078125e-07, -3.0714273452758789e-04,
- 3.7658214569091797e-04}, /* L686 */
-{7.7858262062072754e+00, 3.1998753547668457e-04,
- 1.1920928955078125e-07, -8.0305337905883789e-04,
- 1.1944770812988281e-04}, /* L687 */
-{8.6353225708007812e+00, 3.5417079925537109e-04,
- 1.1920928955078125e-07, 5.0067901611328125e-06,
- 6.9379806518554688e-05}, /* L688 */
-{8.8512706756591797e+00, 3.6355108022689819e-04,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- -1.4424324035644531e-05}, /* L689 */
-{9.7236375808715820e+00, 4.0125846862792969e-04,
- 1.1920928955078125e-07, -2.0437836647033691e-03,
- -4.0638446807861328e-04}, /* L690 */
-{9.4059677124023438e+00, 3.8754940032958984e-04,
- 1.1920928955078125e-07, -2.9051303863525391e-04,
- -1.2433528900146484e-04}, /* L691 */
-{6.6670751571655273e+00, 2.7510523796081543e-04,
- 1.1920928955078125e-07, -2.2292137145996094e-05,
- 1.3744831085205078e-04}, /* L692 */
-{9.0571823120117188e+00, 3.7418492138385773e-04,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- 2.3841857910156250e-06}, /* L693 */
-{6.1256175041198730e+00, 2.5447085499763489e-04,
- 1.1920928955078125e-07, 2.2163391113281250e-03,
- 1.5540122985839844e-03}, /* L694 */
-{8.7037515640258789e+00, 3.6066025495529175e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-05,
- 7.7486038208007812e-06}, /* L695 */
-{6.5329518318176270e+00, 2.7114152908325195e-04,
- 1.1920928955078125e-07, -5.8341026306152344e-04,
- 6.9379806518554688e-05}, /* L696 */
-{6.4613380432128906e+00, 2.6848167181015015e-04,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- 4.0411949157714844e-05}, /* L697 */
-{6.8359751701354980e+00, 2.8477609157562256e-04,
- 1.1920928955078125e-07, -4.9871206283569336e-04,
- -7.7468156814575195e-04}, /* L698 */
-{8.5539026260375977e+00, 3.5655498504638672e-04,
- 1.1920928955078125e-07, -1.1163949966430664e-04,
- -8.3744525909423828e-05}, /* L699 */
-{7.8085741996765137e+00, 3.2585859298706055e-04,
- 1.1920928955078125e-07, 1.7523765563964844e-05,
- 7.7366828918457031e-05}, /* L700 */
-{7.7560830116271973e+00, 3.2418221235275269e-04,
- 1.1920928955078125e-07, -1.1307001113891602e-04,
- -3.3378601074218750e-06}, /* L701 */
-{7.5783333778381348e+00, 3.1717121601104736e-04,
- 1.1920928955078125e-07, 1.8954277038574219e-05,
- -1.3738870620727539e-04}, /* L702 */
-{7.8158402442932129e+00, 3.2773613929748535e-04,
- 1.1920928955078125e-07, 3.6120414733886719e-05,
- -2.9957294464111328e-04}, /* L703 */
-{7.1744160652160645e+00, 3.0111521482467651e-04,
- 1.1920928955078125e-07, -1.5133619308471680e-04,
- 1.3160705566406250e-04}, /* L704 */
-{5.7248415946960449e+00, 2.4059414863586426e-04,
- 1.1920928955078125e-07, -3.4332275390625000e-05,
- -2.9325485229492188e-05}, /* L705 */
-{7.8722009658813477e+00, 3.3134222030639648e-04,
- 1.1920928955078125e-07, 3.1232833862304688e-05,
- 3.7550926208496094e-05}, /* L706 */
-{7.3511781692504883e+00, 3.0989944934844971e-04,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 1.7976760864257812e-04}, /* L707 */
-{8.1909294128417969e+00, 3.4577772021293640e-04,
- 1.1920928955078125e-07, 1.2099742889404297e-04,
- 1.4221668243408203e-04}, /* L708 */
-{7.9022564888000488e+00, 3.3400859683752060e-04,
- 1.1920928955078125e-07, 8.2850456237792969e-05,
- 2.2411346435546875e-05}, /* L709 */
-{6.1412162780761719e+00, 2.5995075702667236e-04,
- 1.1920928955078125e-07, 4.7922134399414062e-05,
- 1.1062622070312500e-04}, /* L710 */
-{7.7555079460144043e+00, 3.2907724380493164e-04,
- 1.1920928955078125e-07, -9.0539455413818359e-05,
- 7.1871280670166016e-04}, /* L711 */
-{6.4432311058044434e+00, 2.7352571487426758e-04,
- 1.1920928955078125e-07, -8.3506107330322266e-05,
- 1.2898445129394531e-04}, /* L712 */
-{6.7280173301696777e+00, 2.8598308563232422e-04,
- 1.1920928955078125e-07, -8.3148479461669922e-05,
- -1.0675191879272461e-04}, /* L713 */
-{8.2304182052612305e+00, 3.5047531127929688e-04,
- 1.1920928955078125e-07, -1.7368793487548828e-04,
- 1.9001960754394531e-04}, /* L714 */
-{7.4354805946350098e+00, 3.1694769859313965e-04,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- -7.6293945312500000e-06}, /* L715 */
-{7.9958872795104980e+00, 3.4138560295104980e-04,
- 1.1920928955078125e-07, 8.6665153503417969e-05,
- 8.2135200500488281e-05}, /* L716 */
-{7.6991958618164062e+00, 3.2908469438552856e-04,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- -4.2915344238281250e-06}, /* L717 */
-{6.9327716827392578e+00, 2.9677897691726685e-04,
- 1.1920928955078125e-07, 1.2588500976562500e-04,
- -8.7261199951171875e-05}, /* L718 */
-{7.7279024124145508e+00, 3.3122301101684570e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- -2.5808811187744141e-05}, /* L719 */
-{8.3348321914672852e+00, 3.5779178142547607e-04,
- 1.1920928955078125e-07, 1.1539459228515625e-04,
- 1.3387203216552734e-04}, /* L720 */
-{8.8460826873779297e+00, 3.8066506385803223e-04,
- 1.1920928955078125e-07, 2.6500225067138672e-04,
- 3.1054019927978516e-04}, /* L721 */
-{6.3662152290344238e+00, 2.7415156364440918e-04,
- 1.1920928955078125e-07, -1.1456012725830078e-04,
- -6.3359737396240234e-05}, /* L722 */
-{7.6852712631225586e+00, 3.3125281333923340e-04,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- -3.9815902709960938e-05}, /* L723 */
-{7.1553425788879395e+00, 3.0884146690368652e-04,
- 1.1920928955078125e-07, -7.2240829467773438e-05,
- 1.2814998626708984e-04}, /* L724 */
-{6.0831313133239746e+00, 2.6290118694305420e-04,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -2.7894973754882812e-05}, /* L725 */
-{8.4181261062622070e+00, 3.6457180976867676e-04,
- 1.1920928955078125e-07, -2.2304058074951172e-04,
- -3.6954879760742188e-05}, /* L726 */
-{7.7604570388793945e+00, 3.3649057149887085e-04,
- 1.1920928955078125e-07, 1.0132789611816406e-05,
- -1.8388032913208008e-04}, /* L727 */
-{7.7245235443115234e+00, 3.3529847860336304e-04,
- 1.1920928955078125e-07, 6.8664550781250000e-05,
- 1.0466575622558594e-04}, /* L728 */
-{9.8660135269165039e+00, 4.2888522148132324e-04,
- 1.1920928955078125e-07, -2.8300285339355469e-04,
- 1.9478797912597656e-04}, /* L729 */
-{7.5239119529724121e+00, 3.2743811607360840e-04,
- 1.1920928955078125e-07, -6.9558620452880859e-05,
- 2.3484230041503906e-05}, /* L730 */
-{6.9827303886413574e+00, 3.0440092086791992e-04,
- 1.1920928955078125e-07, 3.6287307739257812e-04,
- -2.3078918457031250e-04}, /* L731 */
-{6.6796255111694336e+00, 2.9212236404418945e-04,
- 1.1920928955078125e-07, -4.1651725769042969e-04,
- -1.1825561523437500e-04}, /* L732 */
-{7.0517215728759766e+00, 3.0815601348876953e-04,
- 1.1920928955078125e-07, 7.2479248046875000e-05,
- -9.5963478088378906e-05}, /* L733 */
-{7.3174252510070801e+00, 3.2034516334533691e-04,
- 1.1920928955078125e-07, 2.0265579223632812e-05,
- -4.3076276779174805e-04}, /* L734 */
-{8.2722187042236328e+00, 3.6340951919555664e-04,
- 1.1920928955078125e-07, -4.4137239456176758e-04,
- -4.3570995330810547e-04}, /* L735 */
-{8.5445909500122070e+00, 3.7518143653869629e-04,
- 1.1920928955078125e-07, 2.1767616271972656e-04,
- -1.0830163955688477e-04}, /* L736 */
-{8.0048913955688477e+00, 3.5461783409118652e-04,
- 1.1920928955078125e-07, 1.8582344055175781e-03,
- -2.1058320999145508e-04}, /* L737 */
-{8.1115169525146484e+00, 3.5686790943145752e-04,
- 1.1920928955078125e-07, -7.1287155151367188e-05,
- 9.0837478637695312e-05}, /* L738 */
-{9.4919004440307617e+00, 4.1827559471130371e-04,
- 1.1920928955078125e-07, -2.8192996978759766e-05,
- -1.0108947753906250e-04}, /* L739 */
-{1.1358254432678223e+01, 5.0142407417297363e-04,
- 1.1920928955078125e-07, -1.5485286712646484e-04,
- -1.7172098159790039e-04}, /* L740 */
-{7.0606970787048340e+00, 3.1191110610961914e-04,
- 1.1920928955078125e-07, 2.5987625122070312e-05,
- -2.6047229766845703e-05}, /* L741 */
-{7.9571962356567383e+00, 3.5199522972106934e-04,
- 1.1920928955078125e-07, 1.5032291412353516e-04,
- -2.4855136871337891e-05}, /* L742 */
-{6.9899382591247559e+00, 3.1203031539916992e-04,
- 1.1920928955078125e-07, 9.5236301422119141e-04,
- -3.2241940498352051e-03}, /* L743 */
-{8.1276798248291016e+00, 3.6073476076126099e-04,
- 1.1920928955078125e-07, -8.1658363342285156e-05,
- -2.5838613510131836e-04}, /* L744 */
-{9.3987903594970703e+00, 4.1744112968444824e-04,
- 1.1920928955078125e-07, -3.8743019104003906e-05,
- 6.4015388488769531e-05}, /* L745 */
-{7.4981541633605957e+00, 3.3348798751831055e-04,
- 1.1920928955078125e-07, 9.2983245849609375e-06,
- 1.4257431030273438e-04}, /* L746 */
-{8.0847797393798828e+00, 3.6010146141052246e-04,
- 1.1920928955078125e-07, -1.1420249938964844e-04,
- 2.2006034851074219e-04}, /* L747 */
-{8.5359191894531250e+00, 3.8063526153564453e-04,
- 1.1920928955078125e-07, 1.3506412506103516e-04,
- 5.0544738769531250e-05}, /* L748 */
-{1.2460144996643066e+01, 5.5637955665588379e-04,
- 1.1920928955078125e-07, -3.5405158996582031e-05,
- 8.8572502136230469e-05}, /* L749 */
-{7.9872264862060547e+00, 3.5742204636335373e-04,
- 1.1920928955078125e-07, 9.2744827270507812e-05,
- 2.2459030151367188e-04}, /* L750 */
-{7.5220804214477539e+00, 3.3687800168991089e-04,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- -1.2952089309692383e-04}, /* L751 */
-{9.3508100509643555e+00, 4.1919201612472534e-04,
- 1.1920928955078125e-07, -4.6372413635253906e-05,
- -4.1663646697998047e-05}, /* L752 */
-{7.4651403427124023e+00, 3.3521372824907303e-04,
- 1.1920928955078125e-07, -1.9580125808715820e-04,
- -2.3603439331054688e-05}, /* L753 */
-{9.4936475753784180e+00, 4.2707100510597229e-04,
- 1.1920928955078125e-07, -1.7404556274414062e-04,
- -1.4138221740722656e-04}, /* L754 */
-{8.3075609207153320e+00, 3.7400424480438232e-04,
- 1.1920928955078125e-07, -1.7350912094116211e-04,
- -4.2676925659179688e-05}, /* L755 */
-{6.6209278106689453e+00, 2.9844045639038086e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 1.3709068298339844e-05}, /* L756 */
-{1.1975041389465332e+01, 5.4103136062622070e-04,
- 1.1920928955078125e-07, 4.9948692321777344e-05,
- -9.7572803497314453e-05}, /* L757 */
-{1.0297108650207520e+01, 4.6551600098609924e-04,
- 1.1920928955078125e-07, -1.0997056961059570e-04,
- -1.7702579498291016e-05}, /* L758 */
-{7.9993572235107422e+00, 3.6512315273284912e-04,
- 1.1920928955078125e-07, 2.5010108947753906e-04,
- -2.4985074996948242e-03}, /* L759 */
-{9.0597629547119141e+00, 4.1064620018005371e-04,
- 1.1920928955078125e-07, -2.7430057525634766e-04,
- 1.0180473327636719e-04}, /* L760 */
-{7.8014631271362305e+00, 3.5391747951507568e-04,
- 1.1920928955078125e-07, -5.1379203796386719e-05,
- -2.4437904357910156e-05}, /* L761 */
-{7.0552334785461426e+00, 3.2049417495727539e-04,
- 1.1920928955078125e-07, 7.1048736572265625e-05,
- 4.9710273742675781e-05}, /* L762 */
-{7.6703281402587891e+00, 3.4901499748229980e-04,
- 1.1920928955078125e-07, 1.0240077972412109e-04,
- -1.3560056686401367e-04}, /* L763 */
-{8.7450103759765625e+00, 3.9842724800109863e-04,
- 1.1920928955078125e-07, -1.5258789062500000e-05,
- 1.2159347534179688e-05}, /* L764 */
-{7.4178571701049805e+00, 3.3856928348541260e-04,
- 1.1920928955078125e-07, -2.6524066925048828e-05,
- 4.3153762817382812e-05}, /* L765 */
-{8.3173875808715820e+00, 3.7986040115356445e-04,
- 1.1920928955078125e-07, 1.9419193267822266e-04,
- -2.1576881408691406e-05}, /* L766 */
-{6.4517030715942383e+00, 2.9501318931579590e-04,
- 1.1920928955078125e-07, 1.0693073272705078e-04,
- -1.2695789337158203e-05}, /* L767 */
-{8.7599296569824219e+00, 4.0116906166076660e-04,
- 1.1920928955078125e-07, -1.8894672393798828e-05,
- 1.6105175018310547e-04}, /* L768 */
-{8.3753376007080078e+00, 3.8398057222366333e-04,
- 1.1920928955078125e-07, -9.5665454864501953e-05,
- 1.0573863983154297e-04}, /* L769 */
-{9.7409629821777344e+00, 4.4727325439453125e-04,
- 1.1920928955078125e-07, 1.0800361633300781e-04,
- 1.9073486328125000e-04}, /* L770 */
-{8.0373258590698242e+00, 3.6941468715667725e-04,
- 1.1920928955078125e-07, -6.2167644500732422e-05,
- -1.6093254089355469e-05}, /* L771 */
-{7.5368156433105469e+00, 3.4698098897933960e-04,
- 1.1920928955078125e-07, -1.0555982589721680e-04,
- -3.4153461456298828e-05}, /* L772 */
-{6.4909362792968750e+00, 2.9993057250976562e-04,
- 1.1920928955078125e-07, 1.0327100753784180e-03,
- -1.1838674545288086e-03}, /* L773 */
-{1.0008131980895996e+01, 4.6211481094360352e-04,
- 1.1920928955078125e-07, 2.1648406982421875e-04,
- -1.2791156768798828e-04}, /* L774 */
-{1.0580728530883789e+01, 4.8893690109252930e-04,
- 1.1920928955078125e-07, -8.2135200500488281e-05,
- -5.8114528656005859e-05}, /* L775 */
-{7.7617173194885254e+00, 3.5938620567321777e-04,
- 1.1920928955078125e-07, -5.7017803192138672e-04,
- -3.8129091262817383e-04}, /* L776 */
-{7.0736064910888672e+00, 3.2767653465270996e-04,
- 1.1920928955078125e-07, 4.9948692321777344e-05,
- 4.7326087951660156e-05}, /* L777 */
-{7.1877789497375488e+00, 3.3339858055114746e-04,
- 1.1920928955078125e-07, 2.7060508728027344e-05,
- -6.9141387939453125e-05}, /* L778 */
-{8.0357007980346680e+00, 3.7322938442230225e-04,
- 1.1920928955078125e-07, 9.6440315246582031e-05,
- -1.6784667968750000e-04}, /* L779 */
-{1.0291506767272949e+01, 4.7865509986877441e-04,
- 1.1920928955078125e-07, 7.2360038757324219e-05,
- 3.0994415283203125e-06}, /* L780 */
-{7.9654245376586914e+00, 3.7164986133575439e-04,
- 1.1920928955078125e-07, -7.1758031845092773e-04,
- -1.3777017593383789e-03}, /* L781 */
-{6.1556787490844727e+00, 2.8696656227111816e-04,
- 1.1920928955078125e-07, 9.7751617431640625e-06,
- -1.8179416656494141e-05}, /* L782 */
-{9.5562715530395508e+00, 4.4617056846618652e-04,
- 1.1920928955078125e-07, 1.1026859283447266e-04,
- -6.6101551055908203e-05}, /* L783 */
-{7.2770228385925293e+00, 3.4010410308837891e-04,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- -6.1988830566406250e-05}, /* L784 */
-{9.4578351974487305e+00, 4.4265389442443848e-04,
- 1.1920928955078125e-07, -4.6372413635253906e-05,
- -1.3113021850585938e-06}, /* L785 */
-{8.1044416427612305e+00, 3.7977099418640137e-04,
- 1.1920928955078125e-07, 1.0013580322265625e-04,
- 2.4199485778808594e-05}, /* L786 */
-{9.9571504592895508e+00, 4.6721100807189941e-04,
- 1.1920928955078125e-07, -3.8743019104003906e-06,
- -5.1319599151611328e-05}, /* L787 */
-{1.0457695007324219e+01, 4.9132108688354492e-04,
- 1.1920928955078125e-07, 7.8916549682617188e-05,
- -1.3768672943115234e-05}, /* L788 */
-{1.1252063751220703e+01, 5.2983313798904419e-04,
- 1.1920928955078125e-07, -8.2373619079589844e-05,
- 2.7775764465332031e-05}, /* L789 */
-{1.0718814849853516e+01, 5.0495564937591553e-04,
- 1.1920928955078125e-07, -1.5127658843994141e-04,
- 7.0571899414062500e-05}, /* L790 */
-{8.5602502822875977e+00, 4.0367245674133301e-04,
- 1.1920928955078125e-07, 1.5020370483398438e-05,
- 8.7022781372070312e-06}, /* L791 */
-{1.0013714790344238e+01, 4.7492980957031250e-04,
- 1.1920928955078125e-07, -9.3650817871093750e-04,
- 6.8581104278564453e-04}, /* L792 */
-{8.3655643463134766e+00, 3.9553642272949219e-04,
- 1.1920928955078125e-07, -1.1390447616577148e-04,
- 3.1948089599609375e-05}, /* L793 */
-{8.4641027450561523e+00, 4.0099024772644043e-04,
- 1.1920928955078125e-07, -2.1243095397949219e-04,
- 2.8049945831298828e-04}, /* L794 */
-{1.0659439086914062e+01, 5.0531327724456787e-04,
- 1.1920928955078125e-07, -2.6744604110717773e-04,
- 1.4460086822509766e-04}, /* L795 */
-{7.9054107666015625e+00, 3.7518143653869629e-04,
- 1.1920928955078125e-07, -1.0246038436889648e-04,
- 1.0299682617187500e-04}, /* L796 */
-{9.5306520462036133e+00, 4.5290589332580566e-04,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- 6.6161155700683594e-05}, /* L797 */
-{9.2877130508422852e+00, 4.4199824333190918e-04,
- 1.1920928955078125e-07, 1.4185905456542969e-04,
- 6.0200691223144531e-05}, /* L798 */
-{1.1182752609252930e+01, 5.3314864635467529e-04,
- 1.1920928955078125e-07, 5.4442882537841797e-04,
- 2.0730495452880859e-04}, /* L799 */
-{6.5925202369689941e+00, 3.1447410583496094e-04,
- 1.1920928955078125e-07, 3.0398368835449219e-04,
- 4.2915344238281250e-06}, /* L800 */
-{1.1206704139709473e+01, 5.3550302982330322e-04,
- 1.1920928955078125e-07, 1.5127658843994141e-04,
- -2.7793645858764648e-04}, /* L801 */
-{8.7226705551147461e+00, 4.1734427213668823e-04,
- 1.1920928955078125e-07, -5.1259994506835938e-06,
- 1.2886524200439453e-04}, /* L802 */
-{7.9748106002807617e+00, 3.8203597068786621e-04,
- 1.1920928955078125e-07, 2.1970272064208984e-04,
- 2.9587745666503906e-04}, /* L803 */
-{7.2476968765258789e+00, 3.4736841917037964e-04,
- 1.1920928955078125e-07, -6.6459178924560547e-05,
- 1.7881393432617188e-06}, /* L804 */
-{8.5656089782714844e+00, 4.1137635707855225e-04,
- 1.1920928955078125e-07, -2.7716159820556641e-05,
- -1.6033649444580078e-05}, /* L805 */
-{8.3720512390136719e+00, 4.0231645107269287e-04,
- 1.1920928955078125e-07, 5.5432319641113281e-05,
- 8.7499618530273438e-05}, /* L806 */
-{1.0095947265625000e+01, 4.8577785491943359e-04,
- 1.1920928955078125e-07, -1.9019842147827148e-04,
- 2.8133392333984375e-05}, /* L807 */
-{9.1272926330566406e+00, 4.3971091508865356e-04,
- 1.1920928955078125e-07, -1.0293722152709961e-04,
- 6.0439109802246094e-05}, /* L808 */
-{1.1859457969665527e+01, 5.7195127010345459e-04,
- 1.1920928955078125e-07, -4.4167041778564453e-05,
- -3.2484531402587891e-05}, /* L809 */
-{8.5666589736938477e+00, 4.1367113590240479e-04,
- 1.1920928955078125e-07, -1.4960765838623047e-05,
- 1.4543533325195312e-05}, /* L810 */
-{8.4692449569702148e+00, 4.0955841541290283e-04,
- 1.1920928955078125e-07, 3.9696693420410156e-05,
- -5.3882598876953125e-05}, /* L811 */
-{9.1456623077392578e+00, 4.4293701648712158e-04,
- 1.1920928955078125e-07, 3.4213066101074219e-05,
- -1.3762712478637695e-04}, /* L812 */
-{7.6439170837402344e+00, 3.7053413689136505e-04,
- 1.1920928955078125e-07, 5.3763389587402344e-05,
- -1.8405914306640625e-04}, /* L813 */
-{7.6895751953125000e+00, 3.7323683500289917e-04,
- 1.1920928955078125e-07, 4.9591064453125000e-05,
- -1.4495849609375000e-04}, /* L814 */
-{8.6533880233764648e+00, 4.2046606540679932e-04,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- 9.8943710327148438e-05}, /* L815 */
-{9.6250572204589844e+00, 4.6837329864501953e-04,
- 1.1920928955078125e-07, 3.1518936157226562e-04,
- -1.1259317398071289e-04}, /* L816 */
-{1.0730645179748535e+01, 5.2267313003540039e-04,
- 1.1920928955078125e-07, -8.5234642028808594e-05,
- -4.7028064727783203e-05}, /* L817 */
-{1.0476833343505859e+01, 5.1094591617584229e-04,
- 1.1920928955078125e-07, -4.0531158447265625e-05,
- 2.7656555175781250e-05}, /* L818 */
-{1.1640770912170410e+01, 5.6862831115722656e-04,
- 1.1920928955078125e-07, 1.3816356658935547e-04,
- 1.2862682342529297e-04}, /* L819 */
-{1.1956746101379395e+01, 5.8469176292419434e-04,
- 1.1920928955078125e-07, 2.1672248840332031e-04,
- -2.2768974304199219e-05}, /* L820 */
-{9.4440784454345703e+00, 4.6226382255554199e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 5.9843063354492188e-05}, /* L821 */
-{7.9644570350646973e+00, 3.9035081863403320e-04,
- 1.1920928955078125e-07, 2.8610229492187500e-05,
- 7.8797340393066406e-05}, /* L822 */
-{1.0351369857788086e+01, 5.0801038742065430e-04,
- 1.1920928955078125e-07, -1.7398595809936523e-04,
- -2.2971630096435547e-04}, /* L823 */
-{8.2503747940063477e+00, 4.0531158447265625e-04,
- 1.1920928955078125e-07, -9.9837779998779297e-05,
- 7.6532363891601562e-05}, /* L824 */
-{9.2089242935180664e+00, 4.5292079448699951e-04,
- 1.1920928955078125e-07, -1.2218952178955078e-05,
- -3.3020973205566406e-05}, /* L825 */
-{7.1083607673645020e+00, 3.5017728805541992e-04,
- 1.1920928955078125e-07, -2.7418136596679688e-05,
- -2.7650594711303711e-04}, /* L826 */
-{8.7799711227416992e+00, 4.3307617306709290e-04,
- 1.1920928955078125e-07, 2.1302700042724609e-04,
- 2.3806095123291016e-04}, /* L827 */
-{1.1278598785400391e+01, 5.5675196927040815e-04,
- 1.1920928955078125e-07, 7.9512596130371094e-05,
- -2.2292137145996094e-05}, /* L828 */
-{8.1490106582641602e+00, 4.0283054113388062e-04,
- 1.1920928955078125e-07, -1.3220310211181641e-04,
- 8.5949897766113281e-05}, /* L829 */
-{1.0296076774597168e+01, 5.1003694534301758e-04,
- 1.1920928955078125e-07, -1.7017126083374023e-04,
- -2.0265579223632812e-05}, /* L830 */
-{9.4815149307250977e+00, 4.7257542610168457e-04,
- 1.1920928955078125e-07, 3.0697584152221680e-03,
- 2.1072626113891602e-03}, /* L831 */
-{8.4133529663085938e+00, 4.1732192039489746e-04,
- 1.1920928955078125e-07, 7.7605247497558594e-05,
- -2.3365020751953125e-05}, /* L832 */
-{8.3256120681762695e+00, 4.1356869041919708e-04,
- 1.1920928955078125e-07, 2.0527839660644531e-04,
- -3.1471252441406250e-05}, /* L833 */
-{8.2553091049194336e+00, 4.1159987449645996e-04,
- 1.1920928955078125e-07, 7.8058242797851562e-04,
- -1.4983415603637695e-03}, /* L834 */
-{9.2851276397705078e+00, 4.6230852603912354e-04,
- 1.1920928955078125e-07, -2.1725893020629883e-04,
- 1.2159347534179688e-04}, /* L835 */
-{8.8567323684692383e+00, 4.4143199920654297e-04,
- 1.1920928955078125e-07, -3.2246112823486328e-05,
- 6.1988830566406250e-06}, /* L836 */
-{7.8072638511657715e+00, 3.8963556289672852e-04,
- 1.1920928955078125e-07, -2.1338462829589844e-05,
- 4.0769577026367188e-05}, /* L837 */
-{7.8097858428955078e+00, 3.9021112024784088e-04,
- 1.1920928955078125e-07, -6.1988830566406250e-06,
- -5.2571296691894531e-05}, /* L838 */
-{8.6298151016235352e+00, 4.3192505836486816e-04,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- 2.7930736541748047e-04}, /* L839 */
-{9.8158292770385742e+00, 4.9161911010742188e-04,
- 1.1920928955078125e-07, 1.7428398132324219e-04,
- -9.8645687103271484e-05}, /* L840 */
-{9.0967493057250977e+00, 4.5628845691680908e-04,
- 1.1920928955078125e-07, 1.7559528350830078e-04,
- -8.7022781372070312e-05}, /* L841 */
-{9.2034978866577148e+00, 4.6277046203613281e-04,
- 1.1920928955078125e-07, 3.9267539978027344e-04,
- 9.5367431640625000e-06}, /* L842 */
-{7.8399934768676758e+00, 3.9436668157577515e-04,
- 1.1920928955078125e-07, 5.2630901336669922e-04,
- -6.2835216522216797e-04}, /* L843 */
-{9.5789117813110352e+00, 4.8232078552246094e-04,
- 1.1920928955078125e-07, 3.5381317138671875e-04,
- -2.6881694793701172e-05}, /* L844 */
-{9.9373798370361328e+00, 5.0061941146850586e-04,
- 1.1920928955078125e-07, 7.3432922363281250e-05,
- 3.7431716918945312e-05}, /* L845 */
-{8.1232728958129883e+00, 4.0967762470245361e-04,
- 1.1920928955078125e-07, -7.5161457061767578e-05,
- -7.1644783020019531e-05}, /* L846 */
-{1.0829225540161133e+01, 5.4682791233062744e-04,
- 1.1920928955078125e-07, 1.6641616821289062e-04,
- -7.5638294219970703e-05}, /* L847 */
-{7.7559561729431152e+00, 3.9225816726684570e-04,
- 1.1920928955078125e-07, -2.9307603836059570e-04,
- -1.5676021575927734e-04}, /* L848 */
-{9.0573883056640625e+00, 4.5841932296752930e-04,
- 1.1920928955078125e-07, 1.8954277038574219e-05,
- -1.7821788787841797e-05}, /* L849 */
-{8.8831062316894531e+00, 4.5023858547210693e-04,
- 1.1920928955078125e-07, -4.0650367736816406e-05,
- 8.1896781921386719e-05}, /* L850 */
-{8.4672594070434570e+00, 4.3044984340667725e-04,
- 1.1920928955078125e-07, -1.1081695556640625e-03,
- 7.8487396240234375e-04}, /* L851 */
-{8.2383756637573242e+00, 4.1845440864562988e-04,
- 1.1920928955078125e-07, -1.9729137420654297e-05,
- -1.2576580047607422e-05}, /* L852 */
-{7.9757180213928223e+00, 4.0566921234130859e-04,
- 1.1920928955078125e-07, 1.5795230865478516e-04,
- -9.7870826721191406e-05}, /* L853 */
-{9.2713727951049805e+00, 4.7232210636138916e-04,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- 2.6941299438476562e-05}, /* L854 */
-{8.6559352874755859e+00, 4.4171325862407684e-04,
- 1.1920928955078125e-07, -8.9824199676513672e-05,
- -7.8606605529785156e-04}, /* L855 */
-{1.1156954765319824e+01, 5.6943297386169434e-04,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -1.6093254089355469e-06}, /* L856 */
-{8.1563882827758789e+00, 4.1675567626953125e-04,
- 1.1920928955078125e-07, 2.1815299987792969e-05,
- 3.0755996704101562e-05}, /* L857 */
-{8.3569803237915039e+00, 4.2860954999923706e-04,
- 1.1920928955078125e-07, 4.5812129974365234e-04,
- 1.2892484664916992e-03}, /* L858 */
-{6.5217180252075195e+00, 3.3412873744964600e-04,
- 1.1920928955078125e-07, 3.4224987030029297e-04,
- -6.4325332641601562e-04}, /* L859 */
-{7.6589684486389160e+00, 3.9388239383697510e-04,
- 1.1920928955078125e-07, 8.7475776672363281e-04,
- 1.8465518951416016e-04}, /* L860 */
-{9.7625293731689453e+00, 5.0112605094909668e-04,
- 1.1920928955078125e-07, 2.6583671569824219e-05,
- 6.1392784118652344e-05}, /* L861 */
-{1.3033841133117676e+01, 6.6979229450225830e-04,
- 1.1920928955078125e-07, 6.4969062805175781e-05,
- -1.8298625946044922e-05}, /* L862 */
-{1.0703670501708984e+01, 5.5065751075744629e-04,
- 1.1920928955078125e-07, 6.6995620727539062e-05,
- -3.5285949707031250e-05}, /* L863 */
-{8.7870597839355469e+00, 4.5258924365043640e-04,
- 1.1920928955078125e-07, -6.8485736846923828e-05,
- -4.2498111724853516e-05}, /* L864 */
-{8.8717489242553711e+00, 4.5756250619888306e-04,
- 1.1920928955078125e-07, 7.2836875915527344e-05,
- -6.8545341491699219e-05}, /* L865 */
-{8.4858713150024414e+00, 4.3883919715881348e-04,
- 1.1920928955078125e-07, 1.4936923980712891e-04,
- 2.2959709167480469e-04}, /* L866 */
-{9.7873468399047852e+00, 5.0598382949829102e-04,
- 1.1920928955078125e-07, 5.1736831665039062e-05,
- -8.7082386016845703e-05}, /* L867 */
-{1.1246879577636719e+01, 5.8209896087646484e-04,
- 1.1920928955078125e-07, -8.4280967712402344e-05,
- -7.9214572906494141e-05}, /* L868 */
-{7.4356365203857422e+00, 3.8522481918334961e-04,
- 1.1920928955078125e-07, 1.0073184967041016e-04,
- 2.6702880859375000e-05}, /* L869 */
-{7.7839784622192383e+00, 4.0379166603088379e-04,
- 1.1920928955078125e-07, -9.4473361968994141e-05,
- 3.7789344787597656e-05}, /* L870 */
-{9.6325693130493164e+00, 5.0017237663269043e-04,
- 1.1920928955078125e-07, 6.8426132202148438e-05,
- 3.5166740417480469e-05}, /* L871 */
-{7.0483856201171875e+00, 3.6644935607910156e-04,
- 1.1920928955078125e-07, -2.8550624847412109e-05,
- -1.6748905181884766e-05}, /* L872 */
-{7.6601843833923340e+00, 3.9866566658020020e-04,
- 1.1920928955078125e-07, 5.0783157348632812e-05,
- 5.7578086853027344e-05}, /* L873 */
-{1.0220000267028809e+01, 5.3265690803527832e-04,
- 1.1920928955078125e-07, 2.1588802337646484e-04,
- 1.7762184143066406e-05}, /* L874 */
-{8.5810480117797852e+00, 4.4766068458557129e-04,
- 1.1920928955078125e-07, 1.0955333709716797e-04,
- -2.1278858184814453e-05}, /* L875 */
-{6.9883627891540527e+00, 3.6549568176269531e-04,
- 1.1920928955078125e-07, -5.5426359176635742e-04,
- -1.3208985328674316e-03}, /* L876 */
-{1.0403188705444336e+01, 5.4410099983215332e-04,
- 1.1920928955078125e-07, -2.8312206268310547e-05,
- 4.5037269592285156e-04}, /* L877 */
-{8.3422574996948242e+00, 4.3668411672115326e-04,
- 1.1920928955078125e-07, -8.8334083557128906e-05,
- -5.3286552429199219e-05}, /* L878 */
-{6.3030834197998047e+00, 3.3037737011909485e-04,
- 1.1920928955078125e-07, 2.1815299987792969e-05,
- 1.6701221466064453e-04}, /* L879 */
-{1.4042819976806641e+01, 7.3812901973724365e-04,
- 1.1920928955078125e-07, -7.7027082443237305e-04,
- -2.3162364959716797e-04}, /* L880 */
-{7.7576794624328613e+00, 4.0775537490844727e-04,
- 1.1920928955078125e-07, 7.4744224548339844e-05,
- 1.3113021850585938e-05}, /* L881 */
-{8.3169689178466797e+00, 4.3887272477149963e-04,
- 1.1920928955078125e-07, -3.3730268478393555e-04,
- -9.7739696502685547e-04}, /* L882 */
-{9.5070629119873047e+00, 5.0088763236999512e-04,
- 1.1920928955078125e-07, 3.6787986755371094e-04,
- 4.8172473907470703e-04}, /* L883 */
-{9.3201141357421875e+00, 4.9126148223876953e-04,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -5.3822994232177734e-05}, /* L884 */
-{8.9280786514282227e+00, 4.7123432159423828e-04,
- 1.1920928955078125e-07, 3.3140182495117188e-04,
- -6.3002109527587891e-05}, /* L885 */
-{9.1437072753906250e+00, 4.8322975635528564e-04,
- 1.1920928955078125e-07, 1.3124942779541016e-04,
- 7.0214271545410156e-05}, /* L886 */
-{9.4961786270141602e+00, 5.0225853919982910e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-04,
- -2.8371810913085938e-05}, /* L887 */
-{9.6915903091430664e+00, 5.1321089267730713e-04,
- 1.1920928955078125e-07, 3.0636787414550781e-05,
- -2.1398067474365234e-05}, /* L888 */
-{1.0172485351562500e+01, 5.3912401199340820e-04,
- 1.1920928955078125e-07, 1.3554096221923828e-04,
- 1.2755393981933594e-04}, /* L889 */
-{8.3275375366210938e+00, 4.4187903404235840e-04,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- -6.0558319091796875e-05}, /* L890 */
-{1.2983414649963379e+01, 6.8971514701843262e-04,
- 1.1920928955078125e-07, 2.1100044250488281e-05,
- 9.0003013610839844e-05}, /* L891 */
-{1.0722451210021973e+01, 5.7028234004974365e-04,
- 1.1920928955078125e-07, -7.8797340393066406e-05,
- 5.3167343139648438e-05}, /* L892 */
-{8.5333909988403320e+00, 4.5442581176757812e-04,
- 1.1920928955078125e-07, -1.6993284225463867e-04,
- -8.3446502685546875e-05}, /* L893 */
-{1.0132835388183594e+01, 5.4034590721130371e-04,
- 1.1920928955078125e-07, 1.0800361633300781e-04,
- -5.2756071090698242e-04}, /* L894 */
-{9.2016401290893555e+00, 4.9108266830444336e-04,
- 1.1920928955078125e-07, 1.8060207366943359e-04,
- -7.3730945587158203e-05}, /* L895 */
-{1.1781818389892578e+01, 6.2972307205200195e-04,
- 1.1920928955078125e-07, -3.2180547714233398e-04,
- -2.2387504577636719e-04}, /* L896 */
-{1.0683487892150879e+01, 5.7158619165420532e-04,
- 1.1920928955078125e-07, 2.2041797637939453e-04,
- 5.3524971008300781e-05}, /* L897 */
-{1.0243280410766602e+01, 5.4851174354553223e-04,
- 1.1920928955078125e-07, -4.2676925659179688e-05,
- -5.0902366638183594e-05}, /* L898 */
-{7.4458522796630859e+00, 3.9923191070556641e-04,
- 1.1920928955078125e-07, 1.4281272888183594e-04,
- -9.0837478637695312e-05}, /* L899 */
-{7.0050592422485352e+00, 3.7592649459838867e-04,
- 1.1920928955078125e-07, -5.5909156799316406e-05,
- -3.6895275115966797e-05}, /* L900 */
-{1.1405840873718262e+01, 6.1485171318054199e-04,
- 1.1920928955078125e-07, 1.2934207916259766e-03,
- 9.6404552459716797e-04}, /* L901 */
-{1.0063811302185059e+01, 5.4186582565307617e-04,
- 1.1920928955078125e-07, -3.9154291152954102e-04,
- 2.7143955230712891e-04}, /* L902 */
-{1.1058274269104004e+01, 5.9536099433898926e-04,
- 1.1920928955078125e-07, -1.0114908218383789e-04,
- 3.0517578125000000e-05}, /* L903 */
-{8.8502283096313477e+00, 4.7761201858520508e-04,
- 1.1920928955078125e-07, 7.8248977661132812e-04,
- 2.8109550476074219e-04}, /* L904 */
-{7.3312983512878418e+00, 3.9719045162200928e-04,
- 1.1920928955078125e-07, -2.1967291831970215e-03,
- -2.2667646408081055e-04}, /* L905 */
-{9.0210342407226562e+00, 4.8734527081251144e-04,
- 1.1920928955078125e-07, -1.0150671005249023e-04,
- 1.6427040100097656e-04}, /* L906 */
-{8.1283330917358398e+00, 4.3958425521850586e-04,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -7.1108341217041016e-05}, /* L907 */
-{9.4914913177490234e+00, 5.1531195640563965e-04,
- 1.1920928955078125e-07, 2.5987625122070312e-04,
- -9.2649459838867188e-04}, /* L908 */
-{1.0203420639038086e+01, 5.5306043941527605e-04,
- 1.1920928955078125e-07, 9.1314315795898438e-05,
- 4.4822692871093750e-05}, /* L909 */
-{1.0444139480590820e+01, 5.6675076484680176e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -1.0359287261962891e-04}, /* L910 */
-{9.2874412536621094e+00, 5.0708651542663574e-04,
- 1.1920928955078125e-07, 1.9863843917846680e-03,
- 1.6139745712280273e-03}, /* L911 */
-{9.6693840026855469e+00, 5.2928924560546875e-04,
- 1.1920928955078125e-07, -2.7241110801696777e-03,
- -1.1992454528808594e-04}, /* L912 */
-{1.1754215240478516e+01, 6.4080953598022461e-04,
- 1.1920928955078125e-07, -1.0251998901367188e-05,
- -1.1105537414550781e-03}, /* L913 */
-{9.8504190444946289e+00, 5.3700804710388184e-04,
- 1.1920928955078125e-07, 3.6597251892089844e-05,
- 3.1828880310058594e-05}, /* L914 */
-{1.3181356430053711e+01, 7.1990489959716797e-04,
- 1.1920928955078125e-07, -2.3406744003295898e-04,
- 9.0956687927246094e-05}, /* L915 */
-{1.4247035980224609e+01, 7.9065561294555664e-04,
- 1.1920928955078125e-07, 3.0398368835449219e-04,
- -4.3262243270874023e-03}, /* L916 */
-{8.9705066680908203e+00, 4.9051642417907715e-04,
- 1.1920928955078125e-07, -1.3160705566406250e-04,
- -1.5968084335327148e-04}, /* L917 */
-{8.2823219299316406e+00, 4.5916438102722168e-04,
- 1.1920928955078125e-07, 2.6386976242065430e-03,
- 7.0695877075195312e-03}, /* L918 */
-{9.6352138519287109e+00, 5.2892416715621948e-04,
- 1.1920928955078125e-07, 1.8298625946044922e-04,
- 7.9119205474853516e-04}, /* L919 */
-{9.2817764282226562e+00, 5.0976872444152832e-04,
- 1.1920928955078125e-07, 3.0839443206787109e-04,
- 4.8685073852539062e-04}, /* L920 */
-{1.1308170318603516e+01, 6.2125176191329956e-04,
- 1.1920928955078125e-07, -7.1883201599121094e-05,
- 2.3126602172851562e-04}, /* L921 */
-{9.4951810836791992e+00, 5.2202830556780100e-04,
- 1.1920928955078125e-07, 1.5521049499511719e-04,
- 2.2351741790771484e-04}, /* L922 */
-{1.3900238990783691e+01, 7.6577067375183105e-04,
- 1.1920928955078125e-07, -4.0543079376220703e-04,
- -7.3570013046264648e-04}, /* L923 */
-{8.8174076080322266e+00, 4.9000233411788940e-04,
- 1.1920928955078125e-07, -3.9368271827697754e-03,
- -4.0540695190429688e-03}, /* L924 */
-{7.9460101127624512e+00, 4.3842196464538574e-04,
- 1.1920928955078125e-07, 3.6239624023437500e-04,
- -1.3297796249389648e-04}, /* L925 */
-{9.4983844757080078e+00, 5.2443146705627441e-04,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- 1.6760826110839844e-04}, /* L926 */
-{1.0159771919250488e+01, 5.6210160255432129e-04,
- 1.1920928955078125e-07, 4.6408176422119141e-04,
- -1.1026859283447266e-04}, /* L927 */
-{1.1957699775695801e+01, 6.6190212965011597e-04,
- 1.1920928955078125e-07, 1.9335746765136719e-04,
- -1.9228458404541016e-04}, /* L928 */
-{8.9515600204467773e+00, 4.9614906311035156e-04,
- 1.1920928955078125e-07, 4.9829483032226562e-04,
- -2.6619434356689453e-04}, /* L929 */
-{1.0922044754028320e+01, 6.0603022575378418e-04,
- 1.1920928955078125e-07, 1.8382072448730469e-04,
- 1.0013580322265625e-05}, /* L930 */
-{9.9998025894165039e+00, 5.5515766143798828e-04,
- 1.1920928955078125e-07, -4.7802925109863281e-05,
- -1.0430812835693359e-04}, /* L931 */
-{8.1896724700927734e+00, 4.6378374099731445e-04,
- 1.1920928955078125e-07, -2.2464990615844727e-04,
- 2.6038885116577148e-03}, /* L932 */
-{1.1513603210449219e+01, 6.4107775688171387e-04,
- 1.1920928955078125e-07, 1.6701221466064453e-04,
- -2.5349855422973633e-04}, /* L933 */
-{9.7844085693359375e+00, 5.4505467414855957e-04,
- 1.1920928955078125e-07, 8.8691711425781250e-05,
- -5.9247016906738281e-05}, /* L934 */
-{8.8827753067016602e+00, 4.9528479576110840e-04,
- 1.1920928955078125e-07, -1.3661384582519531e-04,
- -3.4153461456298828e-05}, /* L935 */
-{9.1089468002319336e+00, 5.0896406173706055e-04,
- 1.1920928955078125e-07, 2.5725364685058594e-04,
- -2.9623508453369141e-04}, /* L936 */
-{1.1051383972167969e+01, 6.1790645122528076e-04,
- 1.1920928955078125e-07, -1.2439489364624023e-04,
- 1.0418891906738281e-04}, /* L937 */
-{8.7532510757446289e+00, 4.9018859863281250e-04,
- 1.1920928955078125e-07, 5.9294700622558594e-04,
- -3.0219554901123047e-05}, /* L938 */
-{7.8880100250244141e+00, 4.4187903404235840e-04,
- 1.1920928955078125e-07, 3.1483173370361328e-04,
- 5.2285194396972656e-04}, /* L939 */
-{1.1493575096130371e+01, 6.4480304718017578e-04,
- 1.1920928955078125e-07, 1.0693073272705078e-04,
- 1.8823146820068359e-04}, /* L940 */
-{1.0807123184204102e+01, 6.0644745826721191e-04,
- 1.1920928955078125e-07, -5.1134824752807617e-04,
- -1.0609626770019531e-05}, /* L941 */
-{9.6604642868041992e+00, 5.4270029067993164e-04,
- 1.1920928955078125e-07, -2.5260448455810547e-04,
- -8.7618827819824219e-05}, /* L942 */
-{9.4464282989501953e+00, 5.3393840789794922e-04,
- 1.1920928955078125e-07, 5.8197975158691406e-04,
- 1.0615587234497070e-03}, /* L943 */
-{9.7526903152465820e+00, 5.4889172315597534e-04,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- 4.2796134948730469e-05}, /* L944 */
-{1.0654140472412109e+01, 6.0021877288818359e-04,
- 1.1920928955078125e-07, 7.9512596130371094e-05,
- 4.4465065002441406e-05}, /* L945 */
-{7.3481712341308594e+00, 4.1463971138000488e-04,
- 1.1920928955078125e-07, -7.3730945587158203e-05,
- 2.8371810913085938e-05}, /* L946 */
-{7.7998895645141602e+00, 4.4035911560058594e-04,
- 1.1920928955078125e-07, -6.1750411987304688e-05,
- 2.0027160644531250e-05}, /* L947 */
-{8.3111248016357422e+00, 4.6974420547485352e-04,
- 1.1920928955078125e-07, -7.5757503509521484e-05,
- -3.6716461181640625e-05}, /* L948 */
-{1.0132393836975098e+01, 5.7336501777172089e-04,
- 1.1920928955078125e-07, 1.9681453704833984e-04,
- 1.2409687042236328e-04}, /* L949 */
-{1.1651517868041992e+01, 6.6160410642623901e-04,
- 1.1920928955078125e-07, 1.6598701477050781e-03,
- -2.5767087936401367e-03}, /* L950 */
-{8.5649852752685547e+00, 4.8560649156570435e-04,
- 1.1920928955078125e-07, 4.9233436584472656e-05,
- -1.1563301086425781e-05}, /* L951 */
-{1.1197967529296875e+01, 6.3574314117431641e-04,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- -1.0198354721069336e-04}, /* L952 */
-{9.8814334869384766e+00, 5.6192278861999512e-04,
- 1.1920928955078125e-07, 1.6033649444580078e-04,
- -3.6966800689697266e-04}, /* L953 */
-{1.0608693122863770e+01, 6.0400366783142090e-04,
- 1.1920928955078125e-07, 2.1696090698242188e-05,
- -3.3926963806152344e-04}, /* L954 */
-{1.0559864997863770e+01, 6.0153007507324219e-04,
- 1.1920928955078125e-07, -2.4497509002685547e-05,
- 7.2693824768066406e-04}, /* L955 */
-{9.4600629806518555e+00, 5.4049491882324219e-04,
- 1.1920928955078125e-07, -1.2421011924743652e-03,
- 4.6503543853759766e-04}, /* L956 */
-{1.1099864006042480e+01, 6.3326954841613770e-04,
- 1.1920928955078125e-07, -8.1419944763183594e-05,
- -7.0035457611083984e-05}, /* L957 */
-{1.1403630256652832e+01, 6.5171718597412109e-04,
- 1.1920928955078125e-07, -1.9013881683349609e-05,
- 3.0648708343505859e-04}, /* L958 */
-{1.0115736961364746e+01, 5.7838857173919678e-04,
- 1.1920928955078125e-07, 5.8293342590332031e-05,
- -1.2874603271484375e-04}, /* L959 */
-{1.1561657905578613e+01, 6.6179037094116211e-04,
- 1.1920928955078125e-07, 5.4240226745605469e-05,
- 2.2411346435546875e-05}, /* L960 */
-{1.0051919937133789e+01, 5.7619810104370117e-04,
- 1.1920928955078125e-07, -3.0547380447387695e-04,
- 1.8155574798583984e-04}, /* L961 */
-{9.6297760009765625e+00, 5.5256485939025879e-04,
- 1.1920928955078125e-07, -1.9282102584838867e-04,
- -1.7613172531127930e-04}, /* L962 */
-{9.7141704559326172e+00, 5.5807456374168396e-04,
- 1.1920928955078125e-07, -8.7797641754150391e-05,
- 1.9073486328125000e-05}, /* L963 */
-{1.0236481666564941e+01, 5.8838725090026855e-04,
- 1.1920928955078125e-07, 1.1849403381347656e-04,
- 5.2809715270996094e-05}, /* L964 */
-{1.1331947326660156e+01, 6.5213441848754883e-04,
- 1.1920928955078125e-07, 1.7046928405761719e-05,
- 1.4305114746093750e-06}, /* L965 */
-{1.2052168846130371e+01, 7.0199370384216309e-04,
- 1.1920928955078125e-07, -1.9173026084899902e-03,
- 1.4019012451171875e-04}, /* L966 */
-{1.0337010383605957e+01, 5.9634447097778320e-04,
- 1.1920928955078125e-07, -1.7064809799194336e-04,
- -1.2534856796264648e-04}, /* L967 */
-{9.1697626113891602e+00, 5.2964687347412109e-04,
- 1.1920928955078125e-07, -5.2332878112792969e-05,
- 7.6532363891601562e-05}, /* L968 */
-{1.0193867683410645e+01, 5.8892369270324707e-04,
- 1.1920928955078125e-07, -5.4538249969482422e-05,
- 8.9526176452636719e-05}, /* L969 */
-{9.9314708709716797e+00, 5.7440996170043945e-04,
- 1.1920928955078125e-07, 1.0991096496582031e-04,
- 7.1287155151367188e-05}, /* L970 */
-{1.0806577682495117e+01, 6.2572956085205078e-04,
- 1.1920928955078125e-07, 6.5207481384277344e-05,
- 2.3829936981201172e-04}, /* L971 */
-{9.2789001464843750e+00, 5.3796172142028809e-04,
- 1.1920928955078125e-07, -1.0937452316284180e-04,
- 9.9897384643554688e-05}, /* L972 */
-{1.0411365509033203e+01, 6.0400366783142090e-04,
- 1.1920928955078125e-07, 3.9815902709960938e-05,
- 6.2108039855957031e-05}, /* L973 */
-{1.0549766540527344e+01, 6.1307847499847412e-04,
- 1.1920928955078125e-07, -1.5515089035034180e-04,
- -2.0843744277954102e-04}, /* L974 */
-{9.1327381134033203e+00, 5.3085386753082275e-04,
- 1.1920928955078125e-07, 8.6188316345214844e-05,
- -5.7399272918701172e-05}, /* L975 */
-{8.6180763244628906e+00, 5.0145387649536133e-04,
- 1.1920928955078125e-07, 7.6055526733398438e-05,
- 1.1920928955078125e-05}, /* L976 */
-{1.0338429450988770e+01, 6.0227513313293457e-04,
- 1.1920928955078125e-07, 6.6041946411132812e-05,
- -1.9556283950805664e-04}, /* L977 */
-{1.1901911735534668e+01, 6.9428980350494385e-04,
- 1.1920928955078125e-07, -1.4501810073852539e-04,
- 4.5776367187500000e-05}, /* L978 */
-{9.6638269424438477e+00, 5.6409835815429688e-04,
- 1.1920928955078125e-07, -9.9837779998779297e-05,
- 1.4185905456542969e-05}, /* L979 */
-{8.5638427734375000e+00, 5.0061941146850586e-04,
- 1.1920928955078125e-07, 2.9706954956054688e-04,
- -2.6285648345947266e-04}, /* L980 */
-{9.0771675109863281e+00, 5.3092837333679199e-04,
- 1.1920928955078125e-07, 9.5605850219726562e-05,
- 6.6161155700683594e-05}, /* L981 */
-{1.0999839782714844e+01, 6.4407475292682648e-04,
- 1.1920928955078125e-07, 2.6226043701171875e-05,
- -9.0777873992919922e-05}, /* L982 */
-{9.7369794845581055e+00, 5.7068467140197754e-04,
- 1.1920928955078125e-07, -1.3124942779541016e-04,
- 1.0228157043457031e-04}, /* L983 */
-{9.6857423782348633e+00, 5.6889653205871582e-04,
- 1.1920928955078125e-07, 4.0841102600097656e-04,
- -3.3414363861083984e-04}, /* L984 */
-{1.1864460945129395e+01, 7.0130825042724609e-04,
- 1.1920928955078125e-07, -3.3139586448669434e-03,
- 6.9618225097656250e-04}, /* L985 */
-{1.0219273567199707e+01, 6.0087442398071289e-04,
- 1.1920928955078125e-07, -1.5717744827270508e-04,
- -8.0883502960205078e-05}, /* L986 */
-{1.0608036994934082e+01, 6.2444806098937988e-04,
- 1.1920928955078125e-07, 5.6624412536621094e-05,
- 1.6593933105468750e-04}, /* L987 */
-{1.1704878807067871e+01, 6.9019198417663574e-04,
- 1.1920928955078125e-07, 8.8691711425781250e-05,
- -3.1608343124389648e-04}, /* L988 */
-{1.2267510414123535e+01, 7.2341784834861755e-04,
- 1.1920928955078125e-07, -3.4630298614501953e-04,
- 2.4366378784179688e-04}, /* L989 */
-{1.1165058135986328e+01, 6.5918266773223877e-04,
- 1.1920928955078125e-07, 1.0335445404052734e-04,
- -8.6247920989990234e-05}, /* L990 */
-{1.1115084648132324e+01, 6.5684318542480469e-04,
- 1.1920928955078125e-07, 1.6045570373535156e-04,
- 1.8286705017089844e-04}, /* L991 */
-{1.0359435081481934e+01, 6.1276555061340332e-04,
- 1.1920928955078125e-07, 1.9347667694091797e-04,
- 7.7247619628906250e-05}, /* L992 */
-{1.0480091094970703e+01, 6.2102079391479492e-04,
- 1.1920928955078125e-07, -4.6235322952270508e-04,
- 2.2876262664794922e-04}, /* L993 */
-{1.4800333023071289e+01, 8.8004022836685181e-04,
- 1.1920928955078125e-07, -9.7703933715820312e-04,
- 1.6415119171142578e-04}, /* L994 */
-{1.1344488143920898e+01, 6.7367032170295715e-04,
- 1.1920928955078125e-07, -5.1885843276977539e-04,
- -2.9909610748291016e-04}, /* L995 */
-{1.1725367546081543e+01, 6.9627165794372559e-04,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- -8.0883502960205078e-05}, /* L996 */
-{1.1054396629333496e+01, 6.5717101097106934e-04,
- 1.1920928955078125e-07, -3.7610530853271484e-05,
- -2.8729438781738281e-05}, /* L997 */
-{1.0916586875915527e+01, 6.5001845359802246e-04,
- 1.1920928955078125e-07, -1.2326240539550781e-04,
- -2.5230646133422852e-04}, /* L998 */
-{1.3366931915283203e+01, 7.9710036516189575e-04,
- 1.1920928955078125e-07, 1.0037422180175781e-04,
- -1.4901161193847656e-04}, /* L999 */
-{9.4170589447021484e+00, 5.6156516075134277e-04,
- 1.1920928955078125e-07, -7.3075294494628906e-05,
- 5.9366226196289062e-05}, /* L1000 */
-{1.8795497894287109e+01, 2.2723823785781860e-03,
- 1.1920928955078125e-07, 4.6479701995849609e-03,
- -2.2736787796020508e-03}, /* L1001 */
-{2.7350450515747070e+01, 4.9976408481597900e-03,
- 1.1920928955078125e-07, 5.0144195556640625e-03,
- -1.0826587677001953e-03}, /* L1002 */
-{3.7344253540039062e+01, 8.9622437953948975e-03,
- 1.1920928955078125e-07, 6.3002109527587891e-04,
- -8.4882974624633789e-04}, /* L1003 */
-
-{4.4480564117431641e+01, 1.3309225440025330e-02,
- 1.1920928955078125e-07, -1.5407800674438477e-04,
- 3.3104419708251953e-04}, /* L1004 */
-{5.5352958679199219e+01, 1.9909808412194252e-02,
- 1.1920928955078125e-07, 1.5795230865478516e-04,
- -9.4264745712280273e-04}, /* L1005 */
-{5.8576671600341797e+01, 2.4684794247150421e-02,
- 1.1920928955078125e-07, -1.8904209136962891e-03,
- -6.7198276519775391e-04}, /* L1006 */
-{7.6381240844726562e+01, 3.7241965532302856e-02,
- 1.1920928955078125e-07, 1.1624097824096680e-03,
- 3.2919645309448242e-03}, /* L1007 */
-{7.3610855102539062e+01, 4.7583088278770447e-02,
- 1.1920928955078125e-07, -3.4701824188232422e-03,
- 3.6826133728027344e-02}, /* L1008 */
-{7.5543640136718750e+01, 4.6551555395126343e-02,
- 1.1920928955078125e-07, -8.5176825523376465e-03,
- 2.7242898941040039e-03}, /* L1009 */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1011 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1012 */
-}; /* SINGLE */
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SINGDOUB64V9B_SOS11_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64v9b_sos8.h b/usr/src/cmd/fps/fptest/singdoub64v9b_sos8.h
deleted file mode 100644
index 58192b70b3..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64v9b_sos8.h
+++ /dev/null
@@ -1,6136 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SINGDOUB64V9B_SOS8_H
-#define _SINGDOUB64V9B_SOS8_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64 bits V9 LAPAK */
-
-#ifdef DP
-static struct LinpVals LinpValsA[] = {
-
-/* DOUBLE */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{4.3116348151574585e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.1086244689504383e-15}, /* L25 */
-{7.9059493480077547e-01, 2.2759572004815709e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- -4.7739590058881731e-15}, /* L26 */
-{6.4061757589549106e-01, 1.9151347174783950e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 1.7763568394002505e-15}, /* L27 */
-{8.6841481949807864e-01, 2.6922908347160046e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- -7.7715611723760958e-16}, /* L28 */
-{1.0027057709668548e+00, 3.2196467714129540e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- 8.8817841970012523e-16}, /* L29 */
-{7.1442786181388396e-01, 2.3731017151362721e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 1.3322676295501878e-15}, /* L30 */
-{7.3585665449986737e-01, 2.5257573810222311e-15,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- 2.2204460492503131e-16}, /* L31 */
-{1.1084598952484821e+00, 3.9274139496114913e-15,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- 2.4424906541753444e-14}, /* L32 */
-{7.6722183990645665e-01, 2.8033131371785203e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 1.7763568394002505e-15}, /* L33 */
-{7.0779230891777922e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 3.1086244689504383e-15}, /* L34 */
-{9.2216312124817401e-01, 3.5804692544161298e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -6.6613381477509392e-16}, /* L35 */
-{6.5329816298588328e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -1.8096635301390052e-14,
- 1.6431300764452317e-14}, /* L36 */
-{1.0278457584412908e+00, 4.2188474935755949e-15,
- 2.2204460492503131e-16, -4.1078251911130792e-15,
- 2.2204460492503131e-16}, /* L37 */
-{7.3742950536368168e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 7.7715611723760958e-15,
- 1.1102230246251565e-15}, /* L38 */
-{6.8644422362838720e-01, 2.9698465908722937e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -1.6653345369377348e-15}, /* L39 */
-{7.1306799491765060e-01, 3.1641356201816961e-15,
- 2.2204460492503131e-16, -4.5075054799781356e-13,
- 1.1035616864774056e-12}, /* L40 */
-{9.3977296720121883e-01, 4.2743586448068527e-15,
- 2.2204460492503131e-16, -4.8294701571194310e-14,
- -4.5852210917018965e-14}, /* L41 */
-{8.4591190708808728e-01, 3.9412917374193057e-15,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -1.0325074129013956e-14}, /* L42 */
-{8.3787671373549000e-01, 3.9968028886505635e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- -2.4424906541753444e-15}, /* L43 */
-{1.2254079179023980e+00, 5.9813265451680309e-15,
- 2.2204460492503131e-16, -1.9984014443252818e-14,
- 1.4876988529977098e-14}, /* L44 */
-{9.6743727965570092e-01, 4.8294701571194310e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -9.1038288019262836e-15}, /* L45 */
-{1.0007971858507319e+00, 5.1070259132757201e-15,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -6.6613381477509392e-16}, /* L46 */
-{1.2669666501722445e+00, 6.6058269965196814e-15,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- -6.6613381477509392e-16}, /* L47 */
-{8.1314771350367954e-01, 4.3298697960381105e-15,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 8.4376949871511897e-15}, /* L48 */
-{1.3571637984992073e+00, 7.3829831137572910e-15,
- 2.2204460492503131e-16, -1.5099033134902129e-14,
- 0.0000000000000000e+00}, /* L49 */
-{1.1325174750108040e+00, 6.2866378769399489e-15,
- 2.2204460492503131e-16, -3.8857805861880479e-15,
- -6.6613381477509392e-15}, /* L50 */
-{1.0490357947117981e+00, 5.9396931817445875e-15,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- 5.4845017416482733e-14}, /* L51 */
-{9.2819941848899812e-01, 5.3585608172923571e-15,
- 2.2204460492503131e-16, -8.6597395920762210e-15,
- -1.3766765505351941e-14}, /* L52 */
-{1.1250173592822601e+00, 6.6197047843274959e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- -4.5519144009631418e-15}, /* L53 */
-{9.3519961553503805e-01, 5.6066262743570405e-15,
- 2.2204460492503131e-16, -7.7715611723760958e-16,
- -1.2212453270876722e-14}, /* L54 */
-{8.8183178868993095e-01, 5.3845816694320092e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 4.4408920985006262e-16}, /* L55 */
-{9.1965704766723078e-01, 5.7176485768195562e-15,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 4.8849813083506888e-15}, /* L56 */
-{1.0438757563710621e+00, 6.6058269965196814e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.1086244689504383e-15}, /* L57 */
-{1.0603611892084850e+00, 6.8278716014447127e-15,
- 2.2204460492503131e-16, 4.0412118096355698e-14,
- 2.2648549702353193e-14}, /* L58 */
-{8.9090357736005477e-01, 5.8356097731859791e-15,
- 2.2204460492503131e-16, -2.5535129566378600e-15,
- -8.2156503822261584e-15}, /* L59 */
-{7.5834503477544180e-01, 5.0515147620444623e-15,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- 4.4408920985006262e-16}, /* L60 */
-{1.0512457291653567e+00, 7.1193051454088163e-15,
- 2.2204460492503131e-16, -2.5202062658991053e-14,
- -3.4638958368304884e-14}, /* L61 */
-{9.6372454791563000e-01, 6.6335825721353103e-15,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -6.6613381477509392e-16}, /* L62 */
-{1.0000154304731179e+00, 6.9944050551384862e-15,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- 5.3290705182007514e-15}, /* L63 */
-{1.3593959757993888e+00, 9.6589403142388619e-15,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- 2.2204460492503131e-16}, /* L64 */
-{1.2769427804502820e+00, 9.2148511043887993e-15,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -2.6645352591003757e-15}, /* L65 */
-{6.2122170680905631e-01, 4.5519144009631418e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- 2.8865798640254070e-15}, /* L66 */
-{6.7165215479533091e-01, 4.9960036108132044e-15,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- 5.1070259132757201e-15}, /* L67 */
-{1.1084729863516321e+00, 8.3683060481121174e-15,
- 2.2204460492503131e-16, -4.1078251911130792e-15,
- -7.7715611723760958e-16}, /* L68 */
-{8.6957863519378309e-01, 6.6613381477509392e-15,
- 2.2204460492503131e-16, -1.1801670751765414e-13,
- -2.5190960428744802e-13}, /* L69 */
-{1.1143029082414426e+00, 8.6597395920762210e-15,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- -5.7731597280508140e-15}, /* L70 */
-{1.1074114538161584e+00, 8.7291285311152933e-15,
- 2.2204460492503131e-16, -1.2101430968414206e-14,
- -9.5479180117763462e-15}, /* L71 */
-{6.5278785044773047e-01, 5.2180482157382357e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 7.1054273576010019e-15}, /* L72 */
-{9.0069882950146574e-01, 7.2997163869104043e-15,
- 2.2204460492503131e-16, -5.2180482157382357e-15,
- 0.0000000000000000e+00}, /* L73 */
-{1.3783996474088556e+00, 1.1324274851176597e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- 4.6629367034256575e-15}, /* L74 */
-{1.2400191337866657e+00, 1.0325074129013956e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.4432899320127035e-15}, /* L75 */
-{8.0511110726411750e-01, 6.7931771319251766e-15,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 1.2656542480726785e-14}, /* L76 */
-{1.0227430538929647e+00, 8.7430063189231078e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 2.2204460492503131e-16}, /* L77 */
-{1.1522613694072839e+00, 9.9781294338185944e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- -2.6534330288541241e-14}, /* L78 */
-{9.4305252620565783e-01, 8.2711615334574162e-15,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- -1.3211653993039363e-14}, /* L79 */
-{8.7501350166378311e-01, 7.7715611723760958e-15,
- 2.2204460492503131e-16, -1.0336176359260207e-13,
- -3.7969627442180354e-14}, /* L80 */
-{1.1481658646172732e+00, 1.0325074129013956e-14,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- 8.2156503822261584e-15}, /* L81 */
-{9.6038067255800763e-01, 8.7430063189231078e-15,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- -2.8643754035329039e-14}, /* L82 */
-{1.5271319977405620e+00, 1.4072076837123859e-14,
- 2.2204460492503131e-16, -4.6629367034256575e-15,
- -5.7731597280508140e-15}, /* L83 */
-{1.0833500496791915e+00, 1.0103029524088925e-14,
- 2.2204460492503131e-16, 2.7089441800853820e-14,
- -4.4408920985006262e-15}, /* L84 */
-{8.1177723179579730e-01, 7.6605388699135801e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- 9.1038288019262836e-15}, /* L85 */
-{1.4157195193035037e+00, 1.3516965324811281e-14,
- 2.2204460492503131e-16, 7.1054273576010019e-15,
- -4.7739590058881731e-15}, /* L86 */
-{1.4339301718565070e+00, 1.3850032232198828e-14,
- 2.2204460492503131e-16, 3.3750779948604759e-14,
- 9.3258734068513149e-15}, /* L87 */
-{1.0966078300074031e+00, 1.0713652187632761e-14,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -4.7739590058881731e-15}, /* L88 */
-{1.4269883108998163e+00, 1.4099832412739488e-14,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- 1.3322676295501878e-15}, /* L89 */
-{9.6112594151026487e-01, 9.6034291630076041e-15,
- 2.2204460492503131e-16, -5.9952043329758453e-15,
- 1.5543122344752192e-15}, /* L90 */
-{7.5687981070149035e-01, 7.6466610821057657e-15,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- 1.1102230246251565e-14}, /* L91 */
-{1.2968950113947713e+00, 1.3246348462558899e-14,
- 2.2204460492503131e-16, 2.8865798640254070e-14,
- -1.5654144647214707e-14}, /* L92 */
-{9.4087473297201274e-01, 9.7144514654701197e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-14,
- -2.6645352591003757e-15}, /* L93 */
-{1.6343337287917910e+00, 1.7055801215803967e-14,
- 2.2204460492503131e-16, -7.4384942649885488e-15,
- -1.4432899320127035e-15}, /* L94 */
-{1.5842349714336754e+00, 1.6708856520608606e-14,
- 2.2204460492503131e-16, -3.4861002973229915e-14,
- 1.8429702208777599e-14}, /* L95 */
-{1.6198166608184248e+00, 1.7263968032921184e-14,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- 7.1054273576010019e-15}, /* L96 */
-{1.8685855337448287e+00, 2.0122792321330962e-14,
- 2.2204460492503131e-16, -8.1046280797636427e-15,
- 1.0658141036401503e-14}, /* L97 */
-{1.8673757528222230e+00, 2.0317081350640365e-14,
- 2.2204460492503131e-16, -6.9944050551384862e-15,
- -5.7731597280508140e-15}, /* L98 */
-{7.9799211118558777e-01, 8.7707618945387367e-15,
- 2.2204460492503131e-16, -1.1657341758564144e-14,
- -2.8865798640254070e-15}, /* L99 */
-{1.2900199053102661e+00, 1.4321877017664519e-14,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- 9.3258734068513149e-15}, /* L100 */
-{9.2390039461404450e-01, 1.0359768598533492e-14,
- 2.2204460492503131e-16, -3.3084646133829665e-14,
- -7.5495165674510645e-15}, /* L101 */
-{1.0441337582880958e+00, 1.1823875212257917e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- 1.1102230246251565e-15}, /* L102 */
-{1.5291498087331572e+00, 1.7486012637846216e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- -8.3266726846886741e-15}, /* L103 */
-{1.3822328666395058e+00, 1.5959455978986625e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 4.4408920985006262e-15}, /* L104 */
-{9.1846655310714198e-01, 1.0706713293728853e-14,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- 2.6645352591003757e-15}, /* L105 */
-{1.3113409890165224e+00, 1.5432100042289676e-14,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- -2.6978419498391304e-14}, /* L106 */
-{8.6216283608546784e-01, 1.0241807402167069e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 7.7715611723760958e-15}, /* L107 */
-{1.0208490852745877e+00, 1.2240208846492351e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 1.7097434579227411e-14}, /* L108 */
-{1.1376322328317801e+00, 1.3766765505351941e-14,
- 2.2204460492503131e-16, -1.6209256159527285e-14,
- -8.7707618945387367e-15}, /* L109 */
-{1.2704741491692457e+00, 1.5515366769136563e-14,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -2.3314683517128287e-15}, /* L110 */
-{1.0360520225622298e+00, 1.2767564783189300e-14,
- 2.2204460492503131e-16, -7.7715611723760958e-16,
- -6.8833827526759706e-15}, /* L111 */
-{1.7254730530261146e+00, 2.1455059950881150e-14,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- 1.5099033134902129e-14}, /* L112 */
-{1.2278950529038868e+00, 1.5404344466674047e-14,
- 2.2204460492503131e-16, -6.4392935428259079e-15,
- -1.1213252548714081e-14}, /* L113 */
-{1.4956371131198674e+00, 1.8929302569858919e-14,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- -8.4376949871511897e-15}, /* L114 */
-{1.3195855789066957e+00, 1.6847634398686751e-14,
- 2.2204460492503131e-16, 5.9285909514983359e-14,
- -1.1657341758564144e-14}, /* L115 */
-{1.0431195438555405e+00, 1.3433698597964394e-14,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- -1.6653345369377348e-14}, /* L116 */
-{1.7906259203761148e+00, 2.3259172365897030e-14,
- 2.2204460492503131e-16, -1.1013412404281553e-13,
- -8.8262730457699945e-14}, /* L117 */
-{1.2627313486464986e+00, 1.6542323066914832e-14,
- 2.2204460492503131e-16, -7.2164496600635175e-15,
- 1.4030998585212728e-12}, /* L118 */
-{1.0420328855349865e+00, 1.3766765505351941e-14,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- -3.1086244689504383e-15}, /* L119 */
-{1.1797057031362417e+00, 1.5716594692349872e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 4.2188474935755949e-15}, /* L120 */
-{1.3285328962674945e+00, 1.7846835120849391e-14,
- 2.2204460492503131e-16, 2.1871393585115584e-13,
- -8.4487972173974413e-14}, /* L121 */
-{1.2267735400597024e+00, 1.6616048814643847e-14,
- 2.2204460492503131e-16, 1.4210854715202004e-14,
- -2.3092638912203256e-14}, /* L122 */
-{1.1260336351257836e+00, 1.5376588891058418e-14,
- 2.2204460492503131e-16, 5.5289106626332796e-14,
- 4.5297099404706387e-14}, /* L123 */
-{1.2459869678071651e+00, 1.7152945730458669e-14,
- 2.2204460492503131e-16, -2.8421709430404007e-14,
- -2.9087843245179101e-14}, /* L124 */
-{8.9601382570362909e-01, 1.2434497875801753e-14,
- 2.2204460492503131e-16, 6.5503158452884236e-14,
- -5.4733995114020217e-14}, /* L125 */
-{1.6984389057241362e+00, 2.3758772726978350e-14,
- 2.2204460492503131e-16, -1.7319479184152442e-14,
- 1.5321077739827160e-14}, /* L126 */
-{1.1220645578131840e+00, 1.5820678100908481e-14,
- 2.2204460492503131e-16, -3.4749980670767400e-14,
- -4.1344705437040830e-13}, /* L127 */
-{1.4258032504791929e+00, 2.0261570199409107e-14,
- 2.2204460492503131e-16, -1.4654943925052066e-14,
- -1.0103029524088925e-14}, /* L128 */
-{1.2093209856883971e+00, 1.7319479184152442e-14,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- -5.9952043329758453e-15}, /* L129 */
-{1.3230973387797587e+00, 1.9095836023552692e-14,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 6.6613381477509392e-16}, /* L130 */
-{2.0181609116892956e+00, 2.9351521213527576e-14,
- 2.2204460492503131e-16, -5.0959236830294685e-14,
- 7.1054273576010019e-15}, /* L131 */
-{1.5265387063659324e+00, 2.2370993946196904e-14,
- 2.2204460492503131e-16, -9.7477581562088744e-14,
- -4.6851411639181606e-14}, /* L132 */
-{1.2105449947832292e+00, 1.7874590696465020e-14,
- 2.2204460492503131e-16, -1.1102230246251565e-14,
- 1.3322676295501878e-14}, /* L133 */
-{1.9580526012714794e+00, 2.9129476608602545e-14,
- 2.2204460492503131e-16, -7.4384942649885488e-15,
- -8.5487172896137054e-15}, /* L134 */
-{1.4861340425086405e+00, 2.2273849431542203e-14,
- 2.2204460492503131e-16, -3.4416913763379853e-15,
- 5.7731597280508140e-15}, /* L135 */
-{1.2316366515014756e+00, 1.8596235662471372e-14,
- 2.2204460492503131e-16, -1.7985612998927536e-14,
- -1.8651746813702630e-14}, /* L136 */
-{1.6679089479058593e+00, 2.5368596112684827e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -1.1102230246251565e-15}, /* L137 */
-{1.7464037590146095e+00, 2.6756374893466273e-14,
- 2.2204460492503131e-16, -2.4757973449140991e-14,
- -2.4091839634365897e-14}, /* L138 */
-{2.3165825080024227e+00, 3.5749181392930041e-14,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- -1.2767564783189300e-14}, /* L139 */
-{1.4035930863420734e+00, 2.1815882433884326e-14,
- 2.2204460492503131e-16, 8.9039886574937555e-14,
- 1.0969003483296547e-13}, /* L140 */
-{1.9893923989198485e+00, 3.1141755840735641e-14,
- 2.2204460492503131e-16, 2.4646951146678475e-14,
- 2.7755575615628914e-14}, /* L141 */
-{1.2253710204388750e+00, 1.9317880628477724e-14,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- 1.3766765505351941e-14}, /* L142 */
-{1.1084087113985051e+00, 1.7597034940308731e-14,
- 2.2204460492503131e-16, -5.3290705182007514e-15,
- -5.5511151231257827e-15}, /* L143 */
-{1.6466182896514814e+00, 2.6324428747948048e-14,
- 2.2204460492503131e-16, -1.8096635301390052e-14,
- 2.6867397195928788e-14}, /* L144 */
-{1.6207146631803906e+00, 2.6090241078691179e-14,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -2.7311486405778851e-14}, /* L145 */
-{1.3082393645229580e+00, 2.1205259770340490e-14,
- 2.2204460492503131e-16, -9.1038288019262836e-15,
- -1.3877787807814457e-14}, /* L146 */
-{1.1156634734529838e+00, 1.8207657603852567e-14,
- 2.2204460492503131e-16, -2.9642954757491680e-14,
- 1.3322676295501878e-15}, /* L147 */
-{1.1942751847035264e+00, 1.9623191960249642e-14,
- 2.2204460492503131e-16, -1.7319479184152442e-14,
- 7.1054273576010019e-15}, /* L148 */
-{1.6778782390488072e+00, 2.7755575615628914e-14,
- 2.2204460492503131e-16, -8.8817841970012523e-15,
- -1.1435297153639112e-14}, /* L149 */
-{1.4887729721165819e+00, 2.4792667918660527e-14,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- 2.7533531010703882e-14}, /* L150 */
-{1.2003496475049622e+00, 2.0122792321330962e-14,
- 2.2204460492503131e-16, 2.2870594307278225e-14,
- 1.4876988529977098e-14}, /* L151 */
-{1.1496887925997656e+00, 1.9401147355324611e-14,
- 2.2204460492503131e-16, 2.0428103653102880e-14,
- -3.8857805861880479e-14}, /* L152 */
-{1.3594981015581309e+00, 2.3092638912203256e-14,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- 3.0198066269804258e-14}, /* L153 */
-{1.5065167524009684e+00, 2.5757174171303632e-14,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- 3.7525538232330291e-14}, /* L154 */
-{1.6097022574389359e+00, 2.7700064464397656e-14,
- 2.2204460492503131e-16, -1.4543921622589551e-14,
- 1.5543122344752192e-14}, /* L155 */
-{1.7051545160629888e+00, 2.9531932455029164e-14,
- 2.2204460492503131e-16, -6.1617377866696188e-14,
- 3.7747582837255322e-15}, /* L156 */
-{1.2229488066932011e+00, 2.1316282072803006e-14,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- -4.2854608750531042e-14}, /* L157 */
-{1.6519242237556886e+00, 2.8976820942716586e-14,
- 2.2204460492503131e-16, 2.8421709430404007e-14,
- 5.8397731095283234e-14}, /* L158 */
-{1.4371290934779055e+00, 2.5368596112684827e-14,
- 2.2204460492503131e-16, 2.6689761511988763e-13,
- -1.5809575870662229e-13}, /* L159 */
-{1.7406518586672208e+00, 3.0919711235810610e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 8.8817841970012523e-15}, /* L160 */
-{1.3773504453875565e+00, 2.4619195571062846e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -4.3964831775156199e-14}, /* L161 */
-{1.8518804268020190e+00, 3.3306690738754696e-14,
- 2.2204460492503131e-16, -1.7208456881689926e-14,
- -2.5535129566378600e-15}, /* L162 */
-{1.2730257780562548e+00, 2.3037127760971998e-14,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- 9.1038288019262836e-15}, /* L163 */
-{1.4946876975287584e+00, 2.7214341891124150e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- 1.5321077739827160e-14}, /* L164 */
-{1.5617665226668849e+00, 2.8609059565809503e-14,
- 2.2204460492503131e-16, -1.4210854715202004e-14,
- -7.5495165674510645e-15}, /* L165 */
-{1.1114629332667711e+00, 2.0483614804334138e-14,
- 2.2204460492503131e-16, -2.3758772726978350e-14,
- 1.9317880628477724e-14}, /* L166 */
-{1.6108032981872042e+00, 2.9864999362416711e-14,
- 2.2204460492503131e-16, -3.6637359812630166e-15,
- 2.2204460492503131e-15}, /* L167 */
-{1.4791894909075600e+00, 2.7589042161935140e-14,
- 2.2204460492503131e-16, -1.5232259897857148e-13,
- 7.5939254884360707e-14}, /* L168 */
-{1.7640804746141172e+00, 3.3098523921637479e-14,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- 2.4424906541753444e-14}, /* L169 */
-{1.4000216026623522e+00, 2.6423307986078726e-14,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- 3.1086244689504383e-15}, /* L170 */
-{1.5526555367870989e+00, 2.9476421303797906e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 3.4194869158454821e-14}, /* L171 */
-{1.4854880377085515e+00, 2.8366198279172750e-14,
- 2.2204460492503131e-16, 8.4376949871511897e-15,
- 6.6613381477509392e-16}, /* L172 */
-{1.6994481882028336e+00, 3.2640556923979602e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -8.5487172896137054e-15}, /* L173 */
-{2.1006071255051508e+00, 4.0578651550049472e-14,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- 6.1284310959308641e-14}, /* L174 */
-{2.0328885108045869e+00, 3.9496184101039944e-14,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- -1.5432100042289676e-14}, /* L175 */
-{1.1981718971641819e+00, 2.3411828031782989e-14,
- 2.2204460492503131e-16, -1.1302070390684094e-13,
- 4.9071857688431919e-14}, /* L176 */
-{1.8863285415209243e+00, 3.7067571234672414e-14,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- 2.1316282072803006e-14}, /* L177 */
-{1.3946844416552473e+00, 2.7561286586319511e-14,
- 2.2204460492503131e-16, -2.7156055182331329e-13,
- -2.3159252293680765e-13}, /* L178 */
-{1.6927635499065219e+00, 3.3639757646142243e-14,
- 2.2204460492503131e-16, -5.1292303737682232e-14,
- 1.3322676295501878e-13}, /* L179 */
-{1.2291856332898528e+00, 2.4563684419831588e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 9.3258734068513149e-15}, /* L180 */
-{1.7230928860704191e+00, 3.4625080580497070e-14,
- 2.2204460492503131e-16, 6.5503158452884236e-14,
- 4.9515946898281982e-14}, /* L181 */
-{1.6016730658399594e+00, 3.2363001167823313e-14,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- -2.3203661214665772e-14}, /* L182 */
-{1.7076766230755100e+00, 3.4694469519536142e-14,
- 2.2204460492503131e-16, 5.8175686490358203e-14,
- -5.0848214527832170e-14}, /* L183 */
-{1.5394259276167594e+00, 3.1447067172507559e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -3.2196467714129540e-14}, /* L184 */
-{1.6500254602787741e+00, 3.3889557826682903e-14,
- 2.2204460492503131e-16, -5.9452442968677133e-13,
- 2.7045032879868813e-13}, /* L185 */
-{1.8091677008259672e+00, 3.7359004778636518e-14,
- 2.2204460492503131e-16, -5.0792703376600912e-13,
- -3.7225778015681499e-13}, /* L186 */
-{1.7674069506488237e+00, 3.6692870963861424e-14,
- 2.2204460492503131e-16, 7.4162898044960457e-14,
- 7.5717210279435676e-14}, /* L187 */
-{2.4042924179423086e+00, 5.0182080713057076e-14,
- 2.2204460492503131e-16, -3.6193270602780103e-13,
- -4.1278092055563320e-13}, /* L188 */
-{1.4246251569038748e+00, 2.9892754938032340e-14,
- 2.2204460492503131e-16, 1.3766765505351941e-14,
- 1.3766765505351941e-14}, /* L189 */
-{2.1934548981558279e+00, 4.6268544551253399e-14,
- 2.2204460492503131e-16, -8.8595797365087492e-14,
- 9.9475983006414026e-14}, /* L190 */
-{1.6170079351055520e+00, 3.4288544226157569e-14,
- 2.2204460492503131e-16, 3.0642155479654321e-14,
- 4.8849813083506888e-15}, /* L191 */
-{1.7500270033277308e+00, 3.7303493627405260e-14,
- 2.2204460492503131e-16, -1.9650947535865271e-14,
- 1.3766765505351941e-14}, /* L192 */
-{1.2927660616737804e+00, 2.7700064464397656e-14,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- 4.4408920985006262e-16}, /* L193 */
-{1.7629138001122859e+00, 3.7969627442180354e-14,
- 2.2204460492503131e-16, 3.7081449022480228e-14,
- -1.5543122344752192e-15}, /* L194 */
-{1.7936174195279895e+00, 3.8830050286264850e-14,
- 2.2204460492503131e-16, -1.7874590696465020e-14,
- 1.3100631690576847e-14}, /* L195 */
-{1.1964470328873600e+00, 2.6034729927459921e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 4.9960036108132044e-14}, /* L196 */
-{2.0000308609460693e+00, 4.3742787170231168e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- 5.9952043329758453e-15}, /* L197 */
-{1.3926982573381197e+00, 3.0614399904038692e-14,
- 2.2204460492503131e-16, -2.3536728122053319e-14,
- -6.6613381477509392e-16}, /* L198 */
-{1.6339369582623724e+00, 3.6098728173339367e-14,
- 2.2204460492503131e-16, 3.0420110874729289e-14,
- -2.2204460492503131e-15}, /* L199 */
-{1.7900276205466630e+00, 3.9745984281580604e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 1.1324274851176597e-14}, /* L200 */
-{1.5199239502961162e+00, 3.3917313402298532e-14,
- 2.2204460492503131e-16, -3.1086244689504383e-14,
- 1.2212453270876722e-14}, /* L201 */
-{1.6169803959319091e+00, 3.6262659541819176e-14,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 7.4606987254810520e-14}, /* L202 */
-{1.4852445925499189e+00, 3.3473224192448470e-14,
- 2.2204460492503131e-16, -5.8841820305133297e-15,
- 2.2648549702353193e-14}, /* L203 */
-{1.4828660182259918e+00, 3.3584246494910985e-14,
- 2.2204460492503131e-16, -3.4638958368304884e-14,
- -6.2172489379008766e-15}, /* L204 */
-{1.7488074723068054e+00, 3.9801495432811862e-14,
- 2.2204460492503131e-16, 3.2178704145735537e-12,
- -4.7239989697800411e-13}, /* L205 */
-{1.7014825649553087e+00, 3.8913317013111737e-14,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- 6.3726801613483985e-14}, /* L206 */
-{1.8623475770403390e+00, 4.2799097599299785e-14,
- 2.2204460492503131e-16, 2.5535129566378600e-14,
- 2.2648549702353193e-14}, /* L207 */
-{1.7983582028155394e+00, 4.1528195812712276e-14,
- 2.2204460492503131e-16, -1.2878587085651816e-14,
- 2.5757174171303632e-14}, /* L208 */
-{1.6313050757268452e+00, 3.7851666245813931e-14,
- 2.2204460492503131e-16, -3.7747582837255322e-15,
- 6.1728400169158704e-14}, /* L209 */
-{2.0476506433496025e+00, 4.7739590058881731e-14,
- 2.2204460492503131e-16, -1.4543921622589551e-14,
- -2.5535129566378600e-14}, /* L210 */
-{2.0222468435542265e+00, 4.7371828681974648e-14,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -1.3322676295501878e-14}, /* L211 */
-{2.2771577785890686e+00, 5.3596016513779432e-14,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- -4.8849813083506888e-15}, /* L212 */
-{1.8779632497146974e+00, 4.4408920985006262e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 2.9087843245179101e-14}, /* L213 */
-{1.8084391195936764e+00, 4.2965631052993558e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-14,
- 8.2600593032111647e-14}, /* L214 */
-{2.4959687459420250e+00, 5.9577343058947463e-14,
- 2.2204460492503131e-16, 4.9737991503207013e-14,
- 3.0642155479654321e-14}, /* L215 */
-{2.2048951331609645e+00, 5.2874371547773080e-14,
- 2.2204460492503131e-16, -1.0547118733938987e-14,
- -1.1612932837579137e-13}, /* L216 */
-{1.8756049778870303e+00, 4.5186077102243871e-14,
- 2.2204460492503131e-16, 1.1866063687193673e-12,
- -3.6115554991056342e-13}, /* L217 */
-{1.7213568361696103e+00, 4.1661118999058999e-14,
- 2.2204460492503131e-16, -3.9634961979118088e-14,
- -3.8302694349567901e-14}, /* L218 */
-{1.4543603406650849e+00, 3.5360603334311236e-14,
- 2.2204460492503131e-16, -1.2545520178264269e-14,
- -2.8865798640254070e-15}, /* L219 */
-{1.7397995727887370e+00, 4.2493786267527867e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- -6.8389738316909643e-14}, /* L220 */
-{1.5475351910487274e+00, 3.7969627442180354e-14,
- 2.2204460492503131e-16, -3.0975222387041867e-14,
- -6.5614180755346752e-14}, /* L221 */
-{1.6982244021997055e+00, 4.1855408028368402e-14,
- 2.2204460492503131e-16, -1.6098233857064770e-14,
- -6.3282712403633923e-15}, /* L222 */
-{2.4069878130332389e+00, 5.9591220846755277e-14,
- 2.2204460492503131e-16, 3.5527136788005009e-15,
- -3.0864200084579352e-14}, /* L223 */
-{2.1696763357476248e+00, 5.3956838996782608e-14,
- 2.2204460492503131e-16, -1.3772316620475067e-12,
- -2.3159252293680765e-12}, /* L224 */
-{2.7811540249712348e+00, 6.9472205765919171e-14,
- 2.2204460492503131e-16, -4.6074255521943996e-14,
- 2.1094237467877974e-14}, /* L225 */
-{1.8141872853712522e+00, 4.5519144009631418e-14,
- 2.2204460492503131e-16, -1.6098233857064770e-14,
- 8.8817841970012523e-16}, /* L226 */
-{2.8238321186485842e+00, 7.1165295878472534e-14,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- -5.8841820305133297e-15}, /* L227 */
-{1.6666923841213908e+00, 4.2188474935755949e-14,
- 2.2204460492503131e-16, 1.0613732115416497e-13,
- 9.9920072216264089e-14}, /* L228 */
-{2.1004690919370375e+00, 5.3401727484470030e-14,
- 2.2204460492503131e-16, 4.2723602433625274e-12,
- -1.2776446567386301e-12}, /* L229 */
-{1.4771967065352534e+00, 3.7719827261639693e-14,
- 2.2204460492503131e-16, 2.2426505097428162e-14,
- 5.2402526762307389e-14}, /* L230 */
-{1.9572812835610582e+00, 5.0195958500864890e-14,
- 2.2204460492503131e-16, -2.5424107263916085e-14,
- -8.5487172896137054e-15}, /* L231 */
-{2.0700750451924241e+00, 5.3318460757623143e-14,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- -5.1070259132757201e-15}, /* L232 */
-{2.5408117375110186e+00, 6.5725203057809267e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -9.5479180117763462e-15}, /* L233 */
-{2.0021676460538878e+00, 5.2013948703688584e-14,
- 2.2204460492503131e-16, 4.3742787170231168e-14,
- 2.5535129566378600e-14}, /* L234 */
-{1.8638585470092814e+00, 4.8627768478581856e-14,
- 2.2204460492503131e-16, 7.7271522513910895e-14,
- 1.4210854715202004e-14}, /* L235 */
-{2.0127429215030275e+00, 5.2735593669694936e-14,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- 1.7985612998927536e-14}, /* L236 */
-{1.8080447761928695e+00, 4.7573056605187958e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- -6.4392935428259079e-15}, /* L237 */
-{1.6222676790301067e+00, 4.2865017091386903e-14,
- 2.2204460492503131e-16, -3.3306690738754696e-14,
- 6.2172489379008766e-14}, /* L238 */
-{2.0460566757371290e+00, 5.4289905904170155e-14,
- 2.2204460492503131e-16, -3.6270986214503864e-13,
- 6.5947247662734299e-14}, /* L239 */
-{1.6250250745181214e+00, 4.3298697960381105e-14,
- 2.2204460492503131e-16, -1.1324274851176597e-14,
- -9.6922470049776166e-14}, /* L240 */
-{1.9239145412248659e+00, 5.1476184426135774e-14,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -2.9531932455029164e-14}, /* L241 */
-{2.2841261536938515e+00, 6.1367577686155528e-14,
- 2.2204460492503131e-16, -9.5479180117763462e-14,
- -1.4710455076283324e-13}, /* L242 */
-{1.8498227818799708e+00, 4.9904524956900786e-14,
- 2.2204460492503131e-16, -1.1555201240298629e-12,
- -4.9404924595819466e-13}, /* L243 */
-{1.7213380360601647e+00, 4.6629367034256575e-14,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- -2.1982415887578100e-14}, /* L244 */
-{2.5255491738985012e+00, 6.8695049648681561e-14,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -3.5749181392930041e-14}, /* L245 */
-{1.8821428630448440e+00, 5.1403326040144748e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -9.5479180117763462e-15}, /* L246 */
-{1.6650054485101964e+00, 4.5657921887709563e-14,
- 2.2204460492503131e-16, 4.6407322429331543e-14,
- 2.7755575615628914e-14}, /* L247 */
-{1.9012390139839810e+00, 5.2347015611076131e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-14,
- 1.0835776720341528e-13}, /* L248 */
-{2.0442082494395142e+00, 5.6510351953420468e-14,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- 5.0848214527832170e-14}, /* L249 */
-{2.9160449952587180e+00, 8.0935258495173912e-14,
- 2.2204460492503131e-16, 1.9184653865522705e-13,
- 1.1945999744966684e-13}, /* L250 */
-{2.2614890785744017e+00, 6.3019034435285448e-14,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- 4.4630965589931293e-14}, /* L251 */
-{1.8723007154367601e+00, 5.2381710080595667e-14,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- -1.5543122344752192e-15}, /* L252 */
-{2.3261228491438666e+00, 6.5336624999190462e-14,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 3.4861002973229915e-14}, /* L253 */
-{2.0708980961763586e+00, 5.8397731095283234e-14,
- 2.2204460492503131e-16, 2.9753977059954195e-14,
- 5.7953641885433171e-14}, /* L254 */
-{2.1078756622711898e+00, 5.9674487573602164e-14,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- -1.3755663275105690e-13}, /* L255 */
-{1.8847947078250726e+00, 5.3568260938163803e-14,
- 2.2204460492503131e-16, -7.7826634026223473e-14,
- 1.0436096431476471e-14}, /* L256 */
-{2.4319441402528312e+00, 6.9388939039072284e-14,
- 2.2204460492503131e-16, 9.6145313932538556e-14,
- 2.2848389846785722e-13}, /* L257 */
-{3.0543106946226670e+00, 8.7485574340462335e-14,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- -6.8167693711984612e-14}, /* L258 */
-{2.3079506701360772e+00, 6.6363581296968732e-14,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- -1.0880185641326534e-14}, /* L259 */
-{1.6788720592363509e+00, 4.8461235024888083e-14,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 3.7747582837255322e-15}, /* L260 */
-{1.8790998761785693e+00, 5.4449500463960021e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- -8.8817841970012523e-15}, /* L261 */
-{2.0439246680086609e+00, 5.9452442968677133e-14,
- 2.2204460492503131e-16, 9.3480778673438181e-14,
- -3.1086244689504383e-14}, /* L262 */
-{2.1559268025788296e+00, 6.2949645496246376e-14,
- 2.2204460492503131e-16, 1.8873791418627661e-14,
- 1.1546319456101628e-14}, /* L263 */
-{1.8343086068429322e+00, 5.3762549967473205e-14,
- 2.2204460492503131e-16, -4.0745185003743245e-14,
- -1.2778667013435552e-13}, /* L264 */
-{2.5056990408832700e+00, 7.3718808835110394e-14,
- 2.2204460492503131e-16, -6.4281913125796564e-14,
- -2.9420910152566648e-14}, /* L265 */
-{2.2011617839922288e+00, 6.5003558091802915e-14,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- 6.0396132539608516e-14}, /* L266 */
-{2.7069706081423126e+00, 8.0241369104783189e-14,
- 2.2204460492503131e-16, -3.1796787425264483e-13,
- -8.0047080075473787e-14}, /* L267 */
-{1.4183987518975152e+00, 4.2202352723563763e-14,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- -6.2727600891321345e-14}, /* L268 */
-{2.3624899853729957e+00, 7.0554673214928698e-14,
- 2.2204460492503131e-16, 6.2616578588858829e-14,
- -3.7525538232330291e-14}, /* L269 */
-{2.5352243042894291e+00, 7.5994766035591965e-14,
- 2.2204460492503131e-16, 4.1278092055563320e-13,
- 1.2434497875801753e-13}, /* L270 */
-{2.7435847695815165e+00, 8.2545081880880389e-14,
- 2.2204460492503131e-16, -6.6058269965196814e-14,
- 8.8817841970012523e-15}, /* L271 */
-{2.0882675165758084e+00, 6.3060667798708891e-14,
- 2.2204460492503131e-16, -7.8159700933611020e-14,
- -4.8405723873656825e-14}, /* L272 */
-{1.5380273951277246e+00, 4.6615489246448760e-14,
- 2.2204460492503131e-16, 2.3314683517128287e-14,
- -1.8096635301390052e-14}, /* L273 */
-{2.0167966305946279e+00, 6.1350230451395760e-14,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -2.5202062658991053e-14}, /* L274 */
-{2.4073098726296300e+00, 7.3496764230185363e-14,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- 3.7525538232330291e-14}, /* L275 */
-{2.2880787838541781e+00, 7.0110584005078636e-14,
- 2.2204460492503131e-16, -6.3282712403633923e-15,
- -2.0539125955565396e-14}, /* L276 */
-{1.7581498723479168e+00, 5.4067861299245124e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- 8.2156503822261584e-15}, /* L277 */
-{2.5539962432944106e+00, 7.8825834748386114e-14,
- 2.2204460492503131e-16, -1.3211653993039363e-14,
- 8.0158102377936302e-14}, /* L278 */
-{2.3940781598264307e+00, 7.4155959151056550e-14,
- 2.2204460492503131e-16, 3.5749181392930041e-14,
- 3.5305092183079978e-14}, /* L279 */
-{2.4509306755788960e+00, 7.6189055064901368e-14,
- 2.2204460492503131e-16, 3.4638958368304884e-14,
- 3.0642155479654321e-14}, /* L280 */
-{1.7179980393622807e+00, 5.3596016513779432e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- -3.3972824553529790e-14}, /* L281 */
-{2.1454231753056807e+00, 6.7168492989821971e-14,
- 2.2204460492503131e-16, -2.3980817331903381e-14,
- 9.3258734068513149e-15}, /* L282 */
-{2.1254744926824238e+00, 6.6779914931203166e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- -8.3044682241961709e-14}, /* L283 */
-{1.9630584594670892e+00, 6.1894933622852477e-14,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- 2.8421709430404007e-14}, /* L284 */
-{2.1596824472144491e+00, 6.8334227165678385e-14,
- 2.2204460492503131e-16, 2.7533531010703882e-14,
- 2.3314683517128287e-14}, /* L285 */
-{2.5472421017466598e+00, 8.0879747343942654e-14,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 3.8413716652030416e-14}, /* L286 */
-{2.4878432660549765e+00, 7.9269923958236177e-14,
- 2.2204460492503131e-16, -2.3536728122053319e-14,
- 1.5765166949677223e-14}, /* L287 */
-{2.5764286437820321e+00, 8.2378548427186615e-14,
- 2.2204460492503131e-16, -9.5812247025151009e-14,
- 3.7858605139717838e-13}, /* L288 */
-{2.2353286092925675e+00, 7.1720407390785113e-14,
- 2.2204460492503131e-16, -6.3837823915946501e-14,
- -6.8167693711984612e-14}, /* L289 */
-{2.3138288063704087e+00, 7.4495964952348004e-14,
- 2.2204460492503131e-16, -4.4408920985006262e-15,
- 2.3536728122053319e-14}, /* L290 */
-{2.2955680672026020e+00, 7.4162898044960457e-14,
- 2.2204460492503131e-16, 6.3282712403633923e-14,
- 9.5923269327613525e-14}, /* L291 */
-{1.6233127193292136e+00, 5.2624571367232420e-14,
- 2.2204460492503131e-16, -5.3290705182007514e-15,
- -1.4255263636187010e-13}, /* L292 */
-{2.2304098423686574e+00, 7.2553074659253980e-14,
- 2.2204460492503131e-16, -1.5476508963274682e-13,
- -2.9309887850104133e-14}, /* L293 */
-{1.6615902645782847e+00, 5.4234394752938897e-14,
- 2.2204460492503131e-16, 6.0174087934683484e-14,
- -1.7652546091539989e-13}, /* L294 */
-{2.4321349860400701e+00, 7.9655032569903028e-14,
- 2.2204460492503131e-16, 4.8627768478581856e-14,
- 1.8363088827300089e-13}, /* L295 */
-{2.2981773533081005e+00, 7.5522921250126274e-14,
- 2.2204460492503131e-16, -7.7937656328685989e-14,
- 1.4432899320127035e-13}, /* L296 */
-{2.1835353759650733e+00, 7.1997963146941402e-14,
- 2.2204460492503131e-16, -8.1490370007486490e-14,
- -8.4487972173974413e-14}, /* L297 */
-{1.8037191069772156e+00, 5.9674487573602164e-14,
- 2.2204460492503131e-16, -1.6875389974302379e-14,
- -8.9039886574937555e-14}, /* L298 */
-{3.0911848214538278e+00, 1.0261236305098009e-13,
- 2.2204460492503131e-16, 3.5083047578154947e-14,
- -3.4638958368304884e-14}, /* L299 */
-{2.2717017195546965e+00, 7.5661699128204418e-14,
- 2.2204460492503131e-16, 7.6716411001598317e-13,
- -8.5076390377025746e-13}, /* L300 */
-{2.4767824033806005e+00, 8.2767126485805420e-14,
- 2.2204460492503131e-16, 1.0280665208028950e-13,
- 3.0864200084579352e-14}, /* L301 */
-{1.9702290765942367e+00, 6.6058269965196814e-14,
- 2.2204460492503131e-16, -2.7755575615628914e-14,
- -3.6970426720017713e-14}, /* L302 */
-{2.4142286712571455e+00, 8.1212814251330201e-14,
- 2.2204460492503131e-16, 2.4868995751603507e-14,
- -4.1855408028368402e-14}, /* L303 */
-{1.8585813099252868e+00, 6.2727600891321345e-14,
- 2.2204460492503131e-16, -1.9872992140790302e-14,
- -1.3655743202889425e-14}, /* L304 */
-{2.2557725120177503e+00, 7.6383344094210770e-14,
- 2.2204460492503131e-16, -9.9031893796563963e-14,
- -4.0412118096355698e-14}, /* L305 */
-{2.7917097434023437e+00, 9.4840801878603997e-14,
- 2.2204460492503131e-16, -1.6797674362578618e-13,
- -3.2063240951174521e-13}, /* L306 */
-{2.6596501595471964e+00, 9.0649709960644032e-14,
- 2.2204460492503131e-16, -5.8730798002670781e-14,
- 1.2656542480726785e-14}, /* L307 */
-{2.5146491912382003e+00, 8.5986773257218374e-14,
- 2.2204460492503131e-16, -2.5535129566378600e-15,
- 7.5051076464660582e-14}, /* L308 */
-{2.6424355954080032e+00, 9.0649709960644032e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- -2.1760371282653068e-14}, /* L309 */
-{2.3814883598277516e+00, 8.1962214792952182e-14,
- 2.2204460492503131e-16, -1.7763568394002505e-14,
- -7.9047879353311146e-14}, /* L310 */
-{2.7653159813720167e+00, 9.5479180117763462e-14,
- 2.2204460492503131e-16, 9.2370555648813024e-14,
- 3.0420110874729289e-14}, /* L311 */
-{2.2275984749317272e+00, 7.7160500211448380e-14,
- 2.2204460492503131e-16, -9.1149310321725352e-14,
- -9.7699626167013776e-15}, /* L312 */
-{2.1022688602274426e+00, 7.3052675020335300e-14,
- 2.2204460492503131e-16, -1.8018919689666291e-13,
- -9.4813046302988369e-14}, /* L313 */
-{3.4220273249782118e+00, 1.1929346399597307e-13,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- 4.2632564145606011e-14}, /* L314 */
-{2.4190849460964454e+00, 8.4598994476436928e-14,
- 2.2204460492503131e-16, 8.6153306710912148e-14,
- 8.8817841970012523e-16}, /* L315 */
-{2.3295207156208999e+00, 8.1725425038481347e-14,
- 2.2204460492503131e-16, -1.3178347302300608e-13,
- 3.6859404417555197e-14}, /* L316 */
-{2.4953066419687620e+00, 8.7818641247849882e-14,
- 2.2204460492503131e-16, 4.7073456244106637e-14,
- 9.9920072216264089e-15}, /* L317 */
-{1.9685838348305029e+00, 6.9499961341534799e-14,
- 2.2204460492503131e-16, -6.8833827526759706e-14,
- 6.0840221749458578e-14}, /* L318 */
-{1.9577104587160035e+00, 6.9333427887841026e-14,
- 2.2204460492503131e-16, 4.2854608750531042e-14,
- 5.7731597280508140e-15}, /* L319 */
-{2.5414454651007135e+00, 9.0288887477640856e-14,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- 1.1768364061026659e-14}, /* L320 */
-{2.1199704063447946e+00, 7.5550676825741903e-14,
- 2.2204460492503131e-16, -3.7125857943465235e-13,
- 1.3211653993039363e-13}, /* L321 */
-{1.9953724039715079e+00, 7.1331829332166308e-14,
- 2.2204460492503131e-16, 9.4813046302988369e-14,
- 4.1300296516055823e-14}, /* L322 */
-{2.6362635883831858e+00, 9.4535490546832079e-14,
- 2.2204460492503131e-16, -5.4511950509095186e-14,
- -8.4821039081361960e-14}, /* L323 */
-{2.9290575417230720e+00, 1.0536016503692736e-13,
- 2.2204460492503131e-16, 1.7519319328584970e-13,
- 4.2188474935755949e-14}, /* L324 */
-{2.4142680219533879e+00, 8.7110874069651345e-14,
- 2.2204460492503131e-16, 4.6851411639181606e-14,
- 5.5067062021407764e-14}, /* L325 */
-{1.8849984111214824e+00, 6.8223204863215869e-14,
- 2.2204460492503131e-16, 6.3948846218409017e-14,
- 5.3290705182007514e-15}, /* L326 */
-{2.4205266459298742e+00, 8.7874152399081140e-14,
- 2.2204460492503131e-16, -9.2592600253738055e-14,
- 1.6875389974302379e-14}, /* L327 */
-{2.3582680959465274e+00, 8.5875750954755858e-14,
- 2.2204460492503131e-16, -2.4225066397320916e-13,
- -8.2089890440784075e-13}, /* L328 */
-{2.0425847090510971e+00, 7.4606987254810520e-14,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -3.9412917374193057e-14}, /* L329 */
-{3.0379256637850198e+00, 1.1129985821867194e-13,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- 1.1590728377086634e-13}, /* L330 */
-{2.7507977324640671e+00, 1.0108580639212050e-13,
- 2.2204460492503131e-16, -3.0642155479654321e-14,
- -8.5487172896137054e-15}, /* L331 */
-{2.1679551388038196e+00, 7.9908302197395642e-14,
- 2.2204460492503131e-16, 1.2945200467129325e-13,
- 2.8199664825478976e-14}, /* L332 */
-{2.1216543592414050e+00, 7.8437256689767310e-14,
- 2.2204460492503131e-16, -5.9707794264340919e-13,
- -1.4325207686738395e-12}, /* L333 */
-{2.1212902170363930e+00, 7.8659301294692341e-14,
- 2.2204460492503131e-16, 6.5947247662734299e-14,
- 7.1054273576010019e-15}, /* L334 */
-{3.3731863774136808e+00, 1.2545520178264269e-13,
- 2.2204460492503131e-16, -3.2440716779547074e-13,
- -1.4033219031261979e-13}, /* L335 */
-{1.8301993713584912e+00, 6.8271777120543220e-14,
- 2.2204460492503131e-16, 2.7977620220553945e-14,
- -3.1641356201816961e-14}, /* L336 */
-{2.3116083689523448e+00, 8.6486373618299694e-14,
- 2.2204460492503131e-16, -3.8102854205135372e-13,
- 5.4356519285647664e-13}, /* L337 */
-{2.6568457294816223e+00, 9.9698027611339057e-14,
- 2.2204460492503131e-16, 6.8167693711984612e-14,
- 5.8175686490358203e-14}, /* L338 */
-{2.6093691717334355e+00, 9.8206165421999003e-14,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- -8.3821838359199319e-14}, /* L339 */
-{3.0706356159212751e+00, 1.1590728377086634e-13,
- 2.2204460492503131e-16, 1.3655743202889425e-13,
- 2.4735768988648488e-13}, /* L340 */
-{2.6686628789747200e+00, 1.0103029524088925e-13,
- 2.2204460492503131e-16, -6.9610983643997315e-14,
- -7.3052675020335300e-14}, /* L341 */
-{2.3436034138132795e+00, 8.8984375423706297e-14,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- 2.1760371282653068e-14}, /* L342 */
-{2.0685450376689594e+00, 7.8770323597154857e-14,
- 2.2204460492503131e-16, 9.2370555648813024e-14,
- 7.1720407390785113e-14}, /* L343 */
-{2.6650120519930600e+00, 1.0177969578251123e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-13,
- -1.2223555501122974e-13}, /* L344 */
-{3.6493316723630649e+00, 1.3977707880030721e-13,
- 2.2204460492503131e-16, -3.9857006584043120e-14,
- 2.8643754035329039e-14}, /* L345 */
-{2.1445417613017259e+00, 8.2378548427186615e-14,
- 2.2204460492503131e-16, -2.3636648194269583e-13,
- -1.5887291482385990e-13}, /* L346 */
-{2.7349125173447235e+00, 1.0536016503692736e-13,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -1.6919798895287386e-13}, /* L347 */
-{2.6322245238884441e+00, 1.0169642905566434e-13,
- 2.2204460492503131e-16, 4.1300296516055823e-14,
- 4.8627768478581856e-14}, /* L348 */
-{2.5659421718866913e+00, 9.9420471855182768e-14,
- 2.2204460492503131e-16, 5.6399329650957952e-14,
- -1.4166445794216997e-13}, /* L349 */
-{2.3657507898046655e+00, 9.1926466438962962e-14,
- 2.2204460492503131e-16, -6.8389738316909643e-14,
- -1.6875389974302379e-14}, /* L350 */
-{1.7165507033048200e+00, 6.6890937233665682e-14,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- 1.9539925233402755e-14}, /* L351 */
-{2.3466271180983562e+00, 9.1704421834037930e-14,
- 2.2204460492503131e-16, 7.7493567118835927e-14,
- 1.4366285938649526e-13}, /* L352 */
-{2.3923881898994441e+00, 9.3758334429594470e-14,
- 2.2204460492503131e-16, 2.7977620220553945e-14,
- -5.4400928206632670e-15}, /* L353 */
-{2.4414218525030384e+00, 9.5951024903229154e-14,
- 2.2204460492503131e-16, 3.5083047578154947e-14,
- 2.4158453015843406e-13}, /* L354 */
-{2.6016246507203107e+00, 1.0253603521803711e-13,
- 2.2204460492503131e-16, -1.5265566588595902e-13,
- -6.0373928079116013e-13}, /* L355 */
-{2.6741985668829429e+00, 1.0569323194431490e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- -1.0325074129013956e-14}, /* L356 */
-{2.9874410549005348e+00, 1.1840528557627295e-13,
- 2.2204460492503131e-16, -2.1205259770340490e-14,
- -7.5495165674510645e-15}, /* L357 */
-{2.6620522492757552e+00, 1.0580425424677742e-13,
- 2.2204460492503131e-16, 5.1736392947532295e-14,
- 6.5947247662734299e-14}, /* L358 */
-{2.8900167384837943e+00, 1.1518563880485999e-13,
- 2.2204460492503131e-16, 1.0991207943789050e-13,
- -3.8746783559417963e-14}, /* L359 */
-{3.4708868899327729e+00, 1.3872236692691331e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- -5.6621374255882984e-14}, /* L360 */
-{2.2147156140255237e+00, 8.8762330818781265e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 7.3274719625260332e-15}, /* L361 */
-{2.5815315463454334e+00, 1.0375034165122088e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- 6.8167693711984612e-14}, /* L362 */
-{3.8395909262302097e+00, 1.5473733405713119e-13,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- -8.1490370007486490e-14}, /* L363 */
-{2.4849284529174782e+00, 1.0041967257734541e-13,
- 2.2204460492503131e-16, -2.2826185386293218e-13,
- 2.8466118351389014e-13}, /* L364 */
-{3.2274470605390531e+00, 1.3078427230084344e-13,
- 2.2204460492503131e-16, -5.2735593669694936e-14,
- -2.4591439995447217e-13}, /* L365 */
-{3.5389890336613266e+00, 1.4380163726457340e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-14,
- 9.8365759981788869e-14}, /* L366 */
-{3.2752548976251274e+00, 1.3344880755994382e-13,
- 2.2204460492503131e-16, 1.1279865930191590e-13,
- 8.1046280797636427e-14}, /* L367 */
-{2.6857581538336111e+00, 1.0972819874943696e-13,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- 2.3980817331903381e-14}, /* L368 */
-{2.2900082350940467e+00, 9.3813845580825728e-14,
- 2.2204460492503131e-16, -7.7715611723760958e-16,
- -4.6296300126869028e-14}, /* L369 */
-{2.3567931226279146e+00, 9.6811447747313650e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -1.4876988529977098e-14}, /* L370 */
-{1.8962556747648123e+00, 7.8104189782379763e-14,
- 2.2204460492503131e-16, -9.5701224722688494e-14,
- -3.5305092183079978e-14}, /* L371 */
-{2.5065910966441516e+00, 1.0352135815239194e-13,
- 2.2204460492503131e-16, -1.8318679906315083e-14,
- 3.6193270602780103e-14}, /* L372 */
-{3.2239103355063286e+00, 1.3350431871117507e-13,
- 2.2204460492503131e-16, 2.4868995751603507e-14,
- -2.3425705819590803e-14}, /* L373 */
-{2.3646755248971454e+00, 9.8185348740287282e-14,
- 2.2204460492503131e-16, -6.8842709310956707e-12,
- -7.3421269064510852e-12}, /* L374 */
-{3.5280544387072954e+00, 1.4688250615790821e-13,
- 2.2204460492503131e-16, 7.9047879353311146e-14,
- -3.1641356201816961e-13}, /* L375 */
-{3.1310323551160355e+00, 1.3070100557399655e-13,
- 2.2204460492503131e-16, 7.2986061638857791e-13,
- 5.1514348342607263e-14}, /* L376 */
-{2.2725814855627013e+00, 9.5118357634760287e-14,
- 2.2204460492503131e-16, -9.9031893796563963e-14,
- -3.9079850466805510e-14}, /* L377 */
-{2.3704069463025372e+00, 9.9475983006414026e-14,
- 2.2204460492503131e-16, -3.1463720517876936e-13,
- 8.0824236192711396e-14}, /* L378 */
-{2.5455537903656142e+00, 1.0710876630071198e-13,
- 2.2204460492503131e-16, -1.3200551762793111e-13,
- -1.1091128016005314e-13}, /* L379 */
-{2.8303068301938343e+00, 1.1940448629843559e-13,
- 2.2204460492503131e-16, -1.5543122344752192e-13,
- -1.2978507157868080e-13}, /* L380 */
-{2.1627630307343684e+00, 9.1482377229112899e-14,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- 0.0000000000000000e+00}, /* L381 */
-{3.2179736497529778e+00, 1.3647416530204737e-13,
- 2.2204460492503131e-16, 1.5409895581797173e-13,
- -1.9551027463649007e-13}, /* L382 */
-{2.8890713917860196e+00, 1.2284617767477357e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- -4.4408920985006262e-16}, /* L383 */
-{2.7506866970942254e+00, 1.1726730697603216e-13,
- 2.2204460492503131e-16, 1.0664802374549254e-12,
- 6.2905236575261370e-13}, /* L384 */
-{3.1127026856818714e+00, 1.3304635171351720e-13,
- 2.2204460492503131e-16, 6.5281113847959205e-14,
- -7.3829831137572910e-14}, /* L385 */
-{2.8628123679134205e+00, 1.2268311366803175e-13,
- 2.2204460492503131e-16, 1.8274270985330077e-13,
- 3.0553337637684308e-13}, /* L386 */
-{2.6408611052172573e+00, 1.1346479311669100e-13,
- 2.2204460492503131e-16, -6.3060667798708891e-14,
- 6.4392935428259079e-14}, /* L387 */
-{4.8260934854687871e+00, 2.0788926136106056e-13,
- 2.2204460492503131e-16, -3.7525538232330291e-14,
- -6.4837024638109142e-14}, /* L388 */
-{3.1067240751506562e+00, 1.3417045252595017e-13,
- 2.2204460492503131e-16, -3.7303493627405260e-14,
- 1.2656542480726785e-14}, /* L389 */
-{3.0731167579694540e+00, 1.3306022950132501e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -6.8389738316909643e-14}, /* L390 */
-{2.4878839112887916e+00, 1.0799694472041210e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- 1.0880185641326534e-14}, /* L391 */
-{3.4987698421568738e+00, 1.5226708782734022e-13,
- 2.2204460492503131e-16, 2.7844393457598926e-13,
- -9.3725027738855715e-13}, /* L392 */
-{2.8841022703116783e+00, 1.2583684094735759e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-14,
- -2.9198865547641617e-14}, /* L393 */
-{1.9619543655988492e+00, 8.5820239803524601e-14,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- -9.5368157815300947e-14}, /* L394 */
-{3.3937148766796708e+00, 1.4882539645100223e-13,
- 2.2204460492503131e-16, -2.6867397195928788e-14,
- 7.7715611723760958e-14}, /* L395 */
-{3.0492819501751751e+00, 1.3405943022348765e-13,
- 2.2204460492503131e-16, -6.3016258877723885e-13,
- 2.2981616609740740e-13}, /* L396 */
-{2.8740926706845222e+00, 1.2667644710973036e-13,
- 2.2204460492503131e-16, -4.2077452633293433e-14,
- -3.3195668436292181e-14}, /* L397 */
-{2.8430016761748877e+00, 1.2562173523633646e-13,
- 2.2204460492503131e-16, -2.0650148258027912e-14,
- 6.0840221749458578e-14}, /* L398 */
-{3.1476755131198106e+00, 1.3943360355206380e-13,
- 2.2204460492503131e-16, 9.8809849191638932e-14,
- 3.5704772471945034e-13}, /* L399 */
-{2.5475330220790315e+00, 1.1313172620930345e-13,
- 2.2204460492503131e-16, 2.9753977059954195e-14,
- -5.5511151231257827e-15}, /* L400 */
-{2.5567663088466688e+00, 1.1382561559969417e-13,
- 2.2204460492503131e-16, 5.3956838996782608e-14,
- -3.5416114485542494e-14}, /* L401 */
-{3.0075016709323830e+00, 1.3422596367718143e-13,
- 2.2204460492503131e-16, -4.3520742565306136e-14,
- -3.3306690738754696e-14}, /* L402 */
-{3.5982042964886882e+00, 1.6098927746455161e-13,
- 2.2204460492503131e-16, -3.0198066269804258e-14,
- -2.3980817331903381e-14}, /* L403 */
-{2.4254563034172345e+00, 1.0878797862545753e-13,
- 2.2204460492503131e-16, -7.0610184366159956e-14,
- -7.4718009557273035e-14}, /* L404 */
-{2.6666921027840358e+00, 1.1990408665951691e-13,
- 2.2204460492503131e-16, -6.5503158452884236e-15,
- 3.5971225997855072e-14}, /* L405 */
-{3.7066240254098402e+00, 1.6707468741827824e-13,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- -4.6407322429331543e-14}, /* L406 */
-{2.6634160682595720e+00, 1.2034817586936697e-13,
- 2.2204460492503131e-16, 8.7485574340462335e-14,
- 1.6431300764452317e-14}, /* L407 */
-{3.5070800207344468e+00, 1.5885903703605209e-13,
- 2.2204460492503131e-16, 1.6475709685437323e-13,
- 3.7747582837255322e-13}, /* L408 */
-{2.4547911410709475e+00, 1.1146639167236572e-13,
- 2.2204460492503131e-16, 1.0813572259849025e-13,
- -2.5091040356528538e-14}, /* L409 */
-{4.3817491121791701e+00, 1.9945156637390937e-13,
- 2.2204460492503131e-16, 1.2012613126444194e-13,
- -9.2481577951275540e-14}, /* L410 */
-{3.3795942798969976e+00, 1.5420997812043424e-13,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -7.1942451995710144e-14}, /* L411 */
-{2.6039386724980571e+00, 1.1910611386056758e-13,
- 2.2204460492503131e-16, 3.7525538232330291e-14,
- 2.3758772726978350e-14}, /* L412 */
-{3.2724283083336361e+00, 1.5004664177808991e-13,
- 2.2204460492503131e-16, -4.0778491694482000e-13,
- 1.9340085088970227e-13}, /* L413 */
-{3.4336076305283152e+00, 1.5781820295046600e-13,
- 2.2204460492503131e-16, -3.6504133049675147e-13,
- -2.0317081350640365e-13}, /* L414 */
-{3.8831695695504811e+00, 1.7891244041834398e-13,
- 2.2204460492503131e-16, -1.3433698597964394e-14,
- 3.5527136788005009e-15}, /* L415 */
-{3.2259923094360703e+00, 1.4899192990469601e-13,
- 2.2204460492503131e-16, 2.1960211427085596e-13,
- 1.2434497875801753e-14}, /* L416 */
-{2.3849148347283324e+00, 1.1041167979897182e-13,
- 2.2204460492503131e-16, -1.8463008899516353e-13,
- 3.2485125700532080e-13}, /* L417 */
-{1.9665259346475237e+00, 9.1260332624187868e-14,
- 2.2204460492503131e-16, 1.6409096303959814e-13,
- 3.1086244689504383e-14}, /* L418 */
-{2.6456099605631791e+00, 1.2306822227969860e-13,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- -9.2481577951275540e-14}, /* L419 */
-{3.1339491638600534e+00, 1.4613267193541724e-13,
- 2.2204460492503131e-16, -7.8159700933611020e-14,
- -2.1649348980190553e-14}, /* L420 */
-{2.7363681434736300e+00, 1.2789769243681803e-13,
- 2.2204460492503131e-16, 1.5454304502782179e-13,
- 7.5939254884360707e-14}, /* L421 */
-{3.8003917000939587e+00, 1.7805201757425948e-13,
- 2.2204460492503131e-16, -5.3512749786932545e-14,
- 7.3496764230185363e-14}, /* L422 */
-{3.2388015787359770e+00, 1.5210055437364645e-13,
- 2.2204460492503131e-16, -5.6288307348495437e-14,
- 5.1958437552457326e-14}, /* L423 */
-{3.1270935068797892e+00, 1.4720169527748794e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- -5.1736392947532295e-14}, /* L424 */
-{3.0882647513858039e+00, 1.4571677198205180e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- -3.7192471324942744e-14}, /* L425 */
-{2.6038980765960225e+00, 1.2315148900654549e-13,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- 3.7081449022480228e-14}, /* L426 */
-{2.2547053471502236e+00, 1.0688672169578695e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -8.9261931179862586e-14}, /* L427 */
-{2.6191838614662091e+00, 1.2445600106048005e-13,
- 2.2204460492503131e-16, 4.7295500849031669e-14,
- -1.3722356584366935e-13}, /* L428 */
-{3.0746214017077778e+00, 1.4643841694805815e-13,
- 2.2204460492503131e-16, -8.9528384705772623e-13,
- -1.5543122344752192e-13}, /* L429 */
-{3.1442160374682717e+00, 1.5010215292932116e-13,
- 2.2204460492503131e-16, 8.9039886574937555e-14,
- -4.8183679268731794e-14}, /* L430 */
-{2.8921389554367329e+00, 1.3838930001952576e-13,
- 2.2204460492503131e-16, -5.3135273958559992e-13,
- -4.6196380054652764e-13}, /* L431 */
-{2.5665754070845606e+00, 1.2309597785531423e-13,
- 2.2204460492503131e-16, -8.1379347705023974e-14,
- 1.0880185641326534e-14}, /* L432 */
-{3.8048861772452076e+00, 1.8290924330699454e-13,
- 2.2204460492503131e-16, -5.2535753525262407e-13,
- 3.5216274341109965e-13}, /* L433 */
-{2.9216868545478230e+00, 1.4077627952246985e-13,
- 2.2204460492503131e-16, 8.7707618945387367e-14,
- 2.7977620220553945e-14}, /* L434 */
-{3.4896884586423256e+00, 1.6853185513809876e-13,
- 2.2204460492503131e-16, -1.0080825063596421e-13,
- -4.5519144009631418e-15}, /* L435 */
-{2.7260867824638750e+00, 1.3195694537060376e-13,
- 2.2204460492503131e-16, -9.2525986872260546e-13,
- -3.5527136788005009e-14}, /* L436 */
-{2.4250803397525904e+00, 1.1765588503465096e-13,
- 2.2204460492503131e-16, -7.2497563508022722e-14,
- -4.8072656966269278e-14}, /* L437 */
-{2.9555076430256184e+00, 1.4371837053772651e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -3.8413716652030416e-14}, /* L438 */
-{3.2631290750889130e+00, 1.5903944827755367e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-14,
- -5.8619775700208265e-14}, /* L439 */
-{2.5704790638462112e+00, 1.2556622408510520e-13,
- 2.2204460492503131e-16, -3.7980729672426605e-13,
- 1.1546319456101628e-14}, /* L440 */
-{2.3804081929398997e+00, 1.1654566201002581e-13,
- 2.2204460492503131e-16, -4.0301095793893182e-14,
- 8.2822637637036678e-14}, /* L441 */
-{3.0537621598411979e+00, 1.4985235274878050e-13,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- -3.4305891460917337e-14}, /* L442 */
-{3.6648205097656583e+00, 1.8024470804789416e-13,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- -5.7731597280508140e-15}, /* L443 */
-{2.5816687692692790e+00, 1.2725931419765857e-13,
- 2.2204460492503131e-16, 9.3036689463588118e-14,
- 5.7731597280508140e-15}, /* L444 */
-{3.0932879321470059e+00, 1.5282219933965280e-13,
- 2.2204460492503131e-16, 8.4154905266586866e-14,
- 2.5535129566378600e-14}, /* L445 */
-{3.0426299188430859e+00, 1.5065726444163374e-13,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 1.1368683772161603e-13}, /* L446 */
-{2.9112982181060181e+00, 1.4447752889890086e-13,
- 2.2204460492503131e-16, -2.5612845178102361e-13,
- 2.1138646388862981e-13}, /* L447 */
-{3.4598544302302967e+00, 1.7208456881689926e-13,
- 2.2204460492503131e-16, -5.9396931817445875e-14,
- 2.7977620220553945e-14}, /* L448 */
-{2.4721839371575478e+00, 1.2323475573339238e-13,
- 2.2204460492503131e-16, -9.2925667161125602e-14,
- -1.0236256287043943e-13}, /* L449 */
-{3.4369772278894750e+00, 1.7170986854608827e-13,
- 2.2204460492503131e-16, 1.3500311979441904e-13,
- 2.8421709430404007e-14}, /* L450 */
-{2.5526851025470103e+00, 1.2781442570997115e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- 8.5931262105987116e-14}, /* L451 */
-{3.4259176337067023e+00, 1.7191803536320549e-13,
- 2.2204460492503131e-16, -4.7850612361344247e-14,
- 2.7533531010703882e-14}, /* L452 */
-{3.3314335427262156e+00, 1.6754653220374394e-13,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- 2.2204460492503131e-14}, /* L453 */
-{2.5165438277227090e+00, 1.2684298056342413e-13,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- -2.0250467969162855e-13}, /* L454 */
-{3.0917877326303729e+00, 1.5618062398914390e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.8199664825478976e-14}, /* L455 */
-{2.8032065628127114e+00, 1.4191425812271063e-13,
- 2.2204460492503131e-16, -1.6187051699034782e-13,
- -2.3292479056635784e-13}, /* L456 */
-{3.1072506449288269e+00, 1.5765166949677223e-13,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- -6.7612582199672033e-14}, /* L457 */
-{3.2975205362120348e+00, 1.6767143229401427e-13,
- 2.2204460492503131e-16, -1.4110934642985740e-13,
- -6.3948846218409017e-14}, /* L458 */
-{4.2102798109705821e+00, 2.1455059950881150e-13,
- 2.2204460492503131e-16, -3.3772984409097262e-13,
- -2.7933211299568939e-13}, /* L459 */
-{3.3850866363148535e+00, 1.7287560272194469e-13,
- 2.2204460492503131e-16, 1.7497114868092467e-13,
- -6.3060667798708891e-14}, /* L460 */
-{3.4371260603510025e+00, 1.7591483825185605e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- 5.2180482157382357e-14}, /* L461 */
-{3.9133219590692181e+00, 2.0072138395832440e-13,
- 2.2204460492503131e-16, 1.0014211682118912e-13,
- 2.1582735598713043e-13}, /* L462 */
-{3.3072669673759907e+00, 1.7000290064572710e-13,
- 2.2204460492503131e-16, -1.1646239528317892e-13,
- -2.1205259770340490e-14}, /* L463 */
-{2.7861257132531452e+00, 1.4352408150841711e-13,
- 2.2204460492503131e-16, -6.2461147365411307e-13,
- -7.0887740122316245e-13}, /* L464 */
-{3.5167002105465879e+00, 1.8154922010182872e-13,
- 2.2204460492503131e-16, 4.6407322429331543e-14,
- 1.0880185641326534e-14}, /* L465 */
-{3.5856028706316470e+00, 1.8550438962705584e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- 1.3455903058456897e-13}, /* L466 */
-{3.3876126123687582e+00, 1.7563728249569976e-13,
- 2.2204460492503131e-16, -1.0424994201230220e-13,
- -2.1316282072803006e-14}, /* L467 */
-{3.9926929986394706e+00, 2.0745211104511441e-13,
- 2.2204460492503131e-16, 4.2210679396248452e-13,
- -4.4431125445498765e-13}, /* L468 */
-{3.5484080467497492e+00, 1.8476192797933777e-13,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 1.5543122344752192e-14}, /* L469 */
-{2.8734316634118993e+00, 1.4993561947562739e-13,
- 2.2204460492503131e-16, -9.0261131902025227e-14,
- 4.2854608750531042e-14}, /* L470 */
-{4.0233929416859988e+00, 2.1038726316646716e-13,
- 2.2204460492503131e-16, 1.2021494910641195e-12,
- -6.0595972684041044e-13}, /* L471 */
-{2.9608333265148947e+00, 1.5515366769136563e-13,
- 2.2204460492503131e-16, 7.6161299489285739e-14,
- 6.0396132539608516e-14}, /* L472 */
-{4.0687491689798012e+00, 2.1366242108911138e-13,
- 2.2204460492503131e-16, 9.5035090907913400e-14,
- -9.2148511043887993e-14}, /* L473 */
-{3.8296778794135165e+00, 2.0153323454508154e-13,
- 2.2204460492503131e-16, -8.6597395920762210e-15,
- 1.3988810110276972e-14}, /* L474 */
-{2.5116686942702073e+00, 1.3245307628473313e-13,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- 2.4891200212096010e-13}, /* L475 */
-{3.2384762681852894e+00, 1.7114087924596788e-13,
- 2.2204460492503131e-16, 1.2219114609024473e-12,
- -2.1930235405420717e-12}, /* L476 */
-{3.1604075038885342e+00, 1.6736612096224235e-13,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- 1.3988810110276972e-14}, /* L477 */
-{2.8551527567515005e+00, 1.5151768728571824e-13,
- 2.2204460492503131e-16, -2.8943514251977831e-13,
- 1.7075230118734908e-13}, /* L478 */
-{2.6623427223970508e+00, 1.4158119121532309e-13,
- 2.2204460492503131e-16, -2.1649348980190553e-14,
- 3.4861002973229915e-14}, /* L479 */
-{3.2597967184172791e+00, 1.7371520888431746e-13,
- 2.2204460492503131e-16, -1.2301271112846734e-13,
- 1.7341683644644945e-13}, /* L480 */
-{4.6268632599364130e+00, 2.4708013413032859e-13,
- 2.2204460492503131e-16, -7.1720407390785113e-14,
- 1.0591527654923993e-13}, /* L481 */
-{3.1688580268326052e+00, 1.6957268922368485e-13,
- 2.2204460492503131e-16, 2.5757174171303632e-14,
- -1.2290168882600483e-13}, /* L482 */
-{3.3778790106303980e+00, 1.8113288646759429e-13,
- 2.2204460492503131e-16, 6.1284310959308641e-14,
- -4.6629367034256575e-15}, /* L483 */
-{3.4483799996483833e+00, 1.8529622280993863e-13,
- 2.2204460492503131e-16, -3.2196467714129540e-15,
- 3.2640556923979602e-14}, /* L484 */
-{3.7698813196604668e+00, 2.0299040226490206e-13,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- -2.3314683517128287e-14}, /* L485 */
-{3.9123315562739696e+00, 2.1109503034466570e-13,
- 2.2204460492503131e-16, -2.4535928844215960e-14,
- -4.6629367034256575e-15}, /* L486 */
-{2.6858572410995500e+00, 1.4521717162097048e-13,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- -1.2767564783189300e-14}, /* L487 */
-{2.9216467204484413e+00, 1.5829004773593169e-13,
- 2.2204460492503131e-16, -2.7100544031100071e-13,
- 1.6697754290362354e-13}, /* L488 */
-{3.5613836633420668e+00, 1.9334533973847101e-13,
- 2.2204460492503131e-16, 1.0902390101819037e-13,
- 1.2700951401711791e-13}, /* L489 */
-{2.6542345009638284e+00, 1.4439144324640552e-13,
- 2.2204460492503131e-16, 1.2412293415309250e-13,
- 2.1072033007385471e-13}, /* L490 */
-{3.2912737561851553e+00, 1.7941204077942530e-13,
- 2.2204460492503131e-16, -2.4868995751603507e-14,
- -6.0951244051921094e-14}, /* L491 */
-{3.2479984605500376e+00, 1.7741363933510002e-13,
- 2.2204460492503131e-16, 9.7921670771938807e-13,
- -4.7128967395337895e-13}, /* L492 */
-{3.0162559509425275e+00, 1.6509016376176078e-13,
- 2.2204460492503131e-16, -5.5844218138645374e-14,
- 1.0036416142611415e-13}, /* L493 */
-{2.9828219737734010e+00, 1.6359136267851682e-13,
- 2.2204460492503131e-16, -6.9833028248922346e-14,
- 1.3011813848606835e-13}, /* L494 */
-{3.0101297220817487e+00, 1.6542323066914832e-13,
- 2.2204460492503131e-16, -2.5757174171303632e-14,
- 5.8397731095283234e-14}, /* L495 */
-{3.4803759393374825e+00, 1.9165224962591765e-13,
- 2.2204460492503131e-16, -4.9404924595819466e-14,
- 2.5313084961453569e-14}, /* L496 */
-{4.1142243539996883e+00, 2.2701285296022888e-13,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- 3.3084646133829665e-14}, /* L497 */
-{4.4669100772913355e+00, 2.4696911182786607e-13,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- 1.5321077739827160e-14}, /* L498 */
-{3.5586511784933927e+00, 1.9714785359781217e-13,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- -1.5765166949677223e-14}, /* L499 */
-{3.5172210488476772e+00, 1.9524312722118964e-13,
- 2.2204460492503131e-16, -1.4432899320127035e-14,
- -1.3211653993039363e-14}, /* L500 */
-{3.4274902777852252e+00, 1.9064264056289915e-13,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- 3.6859404417555197e-14}, /* L501 */
-{3.8097972957443078e+00, 2.1233015345956119e-13,
- 2.2204460492503131e-16, 1.1213252548714081e-13,
- -6.6946448384896939e-14}, /* L502 */
-{3.5855212778583372e+00, 2.0022872249114698e-13,
- 2.2204460492503131e-16, -3.3750779948604759e-13,
- -2.3647750424515834e-14}, /* L503 */
-{3.7748375934118972e+00, 2.1121993043493603e-13,
- 2.2204460492503131e-16, -3.2862601528904634e-14,
- 7.2830630415410269e-14}, /* L504 */
-{3.1713173781746757e+00, 1.7780221739371882e-13,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- -7.8936857050848630e-14}, /* L505 */
-{2.9782892778375780e+00, 1.6731060981101109e-13,
- 2.2204460492503131e-16, 2.9753977059954195e-14,
- 3.0420110874729289e-14}, /* L506 */
-{3.0582145749729506e+00, 1.7214007996813052e-13,
- 2.2204460492503131e-16, -7.0576877675421201e-13,
- -3.0242475190789264e-13}, /* L507 */
-{4.0768105400072105e+00, 2.2992718839986992e-13,
- 2.2204460492503131e-16, -2.5079938126282286e-13,
- 4.3742787170231168e-13}, /* L508 */
-{3.5697786474155215e+00, 2.0172752357439094e-13,
- 2.2204460492503131e-16, 2.5757174171303632e-14,
- 7.4162898044960457e-14}, /* L509 */
-{2.9715969718886064e+00, 1.6825429938194247e-13,
- 2.2204460492503131e-16, 9.8143715376863838e-14,
- 2.9309887850104133e-14}, /* L510 */
-{3.0998338729026385e+00, 1.7585932710062480e-13,
- 2.2204460492503131e-16, 4.2188474935755949e-14,
- -6.5836225360271783e-14}, /* L511 */
-{4.2139073816567905e+00, 2.3953061756287752e-13,
- 2.2204460492503131e-16, 1.1746159600534156e-13,
- -5.4178883601707639e-14}, /* L512 */
-{3.2648946898011002e+00, 1.8594847883690591e-13,
- 2.2204460492503131e-16, 2.1893598045608087e-13,
- 4.7961634663806763e-14}, /* L513 */
-{3.6274665070322563e+00, 2.0700108294136044e-13,
- 2.2204460492503131e-16, 1.3766765505351941e-13,
- -9.8476782284251385e-14}, /* L514 */
-{2.9977227683941723e+00, 1.7139761832041245e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- -8.7041485130612273e-14}, /* L515 */
-{3.4796843535958217e+00, 1.9934054407144686e-13,
- 2.2204460492503131e-16, -2.0206059048177849e-14,
- 4.2632564145606011e-14}, /* L516 */
-{2.9758267452686376e+00, 1.7080781233858033e-13,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- 2.2959412149248237e-13}, /* L517 */
-{2.8349465576573287e+00, 1.6303625116620424e-13,
- 2.2204460492503131e-16, -2.3225865675158275e-13,
- -2.9976021664879227e-14}, /* L518 */
-{3.3247884825335365e+00, 1.9157592179297467e-13,
- 2.2204460492503131e-16, -7.8270723236073536e-14,
- 1.3433698597964394e-13}, /* L519 */
-{3.3908707344164206e+00, 1.9576007481703073e-13,
- 2.2204460492503131e-16, -8.2156503822261584e-15,
- 6.7279515292284486e-14}, /* L520 */
-{3.6274049552246859e+00, 2.0981827386634677e-13,
- 2.2204460492503131e-16, 2.8532731732866523e-13,
- -4.7628567756419216e-14}, /* L521 */
-{3.2634151103954516e+00, 1.8912649224489542e-13,
- 2.2204460492503131e-16, 3.0841995624086849e-13,
- 2.1249668691325496e-13}, /* L522 */
-{3.1408988368709294e+00, 1.8237494847639368e-13,
- 2.2204460492503131e-16, -3.4205971388701073e-13,
- -4.4131365228849972e-13}, /* L523 */
-{2.9599283340215901e+00, 1.7219559111936178e-13,
- 2.2204460492503131e-16, 1.8585133432225120e-13,
- -1.0424994201230220e-13}, /* L524 */
-{3.7847678760174071e+00, 2.2060131499301860e-13,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- 8.5043083686286991e-14}, /* L525 */
-{3.3488645991169785e+00, 1.9556578578772132e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- 3.5305092183079978e-14}, /* L526 */
-{3.0322628485337830e+00, 1.7741363933510002e-13,
- 2.2204460492503131e-16, -4.2121861554278439e-13,
- -2.8088642523016460e-13}, /* L527 */
-{3.2452702716008317e+00, 1.9023671526952057e-13,
- 2.2204460492503131e-16, 1.6520118606422329e-13,
- 3.0730973321624333e-13}, /* L528 */
-{3.3908961815989374e+00, 1.9914972448908941e-13,
- 2.2204460492503131e-16, -3.9523939676655573e-14,
- -2.4080737404119645e-13}, /* L529 */
-{3.9707609816741112e+00, 2.3364643553236419e-13,
- 2.2204460492503131e-16, 6.3460348087573948e-13,
- 1.0997869281936801e-12}, /* L530 */
-{4.4792914361227716e+00, 2.6406654640709348e-13,
- 2.2204460492503131e-16, 4.5807801996033959e-13,
- 3.0797586703101842e-13}, /* L531 */
-{4.6285317385563349e+00, 2.7337854202613698e-13,
- 2.2204460492503131e-16, -5.5844218138645374e-14,
- 9.9253938401488995e-14}, /* L532 */
-{3.4432512109869209e+00, 2.0375368059433185e-13,
- 2.2204460492503131e-16, -1.1028178370509067e-11,
- -3.5096370254450449e-12}, /* L533 */
-{3.8178899186424058e+00, 2.2634671914545379e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -1.7774670624248756e-13}, /* L534 */
-{3.0448646169853468e+00, 1.8085533071143800e-13,
- 2.2204460492503131e-16, 4.3831605012201180e-13,
- -7.6605388699135801e-14}, /* L535 */
-{3.2609659657453194e+00, 1.9405310691666955e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- 1.3322676295501878e-15}, /* L536 */
-{4.1792430926679076e+00, 2.4916180230150076e-13,
- 2.2204460492503131e-16, 1.6273649094955545e-12,
- -1.8455237338343977e-12}, /* L537 */
-{3.3029791888290929e+00, 1.9728663147589032e-13,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- 2.2648549702353193e-14}, /* L538 */
-{3.3608587347324130e+00, 2.0111690091084711e-13,
- 2.2204460492503131e-16, -4.5186077102243871e-14,
- 3.0642155479654321e-14}, /* L539 */
-{2.6879672037883151e+00, 1.6114887202434147e-13,
- 2.2204460492503131e-16, -8.0935258495173912e-14,
- -5.2291504459844873e-14}, /* L540 */
-{4.0467947395539765e+00, 2.4306251455996630e-13,
- 2.2204460492503131e-16, -8.9817042692175164e-14,
- -2.2293278334473143e-13}, /* L541 */
-{3.6462234648503045e+00, 2.1940782524154656e-13,
- 2.2204460492503131e-16, -2.2315482794965646e-14,
- -1.1990408665951691e-14}, /* L542 */
-{3.9567281577647124e+00, 2.3853141684071488e-13,
- 2.2204460492503131e-16, 6.2139182688270012e-12,
- -5.6189497499303798e-12}, /* L543 */
-{3.7389764872204241e+00, 2.2581936320875684e-13,
- 2.2204460492503131e-16, 4.5230486023228877e-12,
- -1.9987345112326693e-12}, /* L544 */
-{3.6330332547982427e+00, 2.1982415887578100e-13,
- 2.2204460492503131e-16, -1.1102230246251565e-14,
- 6.8833827526759706e-14}, /* L545 */
-{3.3129631023437058e+00, 2.0082546736688300e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-14,
- -5.4289905904170155e-14}, /* L546 */
-{6.0242325392075875e+00, 3.6584624218960471e-13,
- 2.2204460492503131e-16, 1.4765966227514582e-13,
- -4.4408920985006262e-16}, /* L547 */
-{3.5748231582707355e+00, 2.1749269052406817e-13,
- 2.2204460492503131e-16, 9.7699626167013776e-14,
- 1.2589929099249275e-13}, /* L548 */
-{4.4255534303140882e+00, 2.6974256162048960e-13,
- 2.2204460492503131e-16, -1.6098233857064770e-13,
- 2.2648549702353193e-13}, /* L549 */
-{3.3236416073696895e+00, 2.0294876890147862e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-14,
- 1.2434497875801753e-14}, /* L550 */
-{4.0943803254319775e+00, 2.5046631435543532e-13,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- 1.3544720900426910e-14}, /* L551 */
-{3.2761600601233867e+00, 2.0077689510955565e-13,
- 2.2204460492503131e-16, 5.1514348342607263e-14,
- -1.4699352846037073e-13}, /* L552 */
-{3.4575099757238150e+00, 2.1227464230832993e-13,
- 2.2204460492503131e-16, -2.8499425042127768e-13,
- -6.1683991248173697e-13}, /* L553 */
-{3.3537959050240151e+00, 2.0627943797535409e-13,
- 2.2204460492503131e-16, -5.7398530373120593e-14,
- 5.4845017416482733e-14}, /* L554 */
-{3.7446005024765898e+00, 2.3073210009272316e-13,
- 2.2204460492503131e-16, -2.1738166822160565e-13,
- -2.3880897259687117e-13}, /* L555 */
-{3.7383152504842805e+00, 2.3075985566833879e-13,
- 2.2204460492503131e-16, -9.9031893796563963e-14,
- 1.9317880628477724e-13}, /* L556 */
-{3.7396827403373325e+00, 2.3125945602942011e-13,
- 2.2204460492503131e-16, 8.5709217501062085e-14,
- 1.1324274851176597e-13}, /* L557 */
-{2.9435530311615441e+00, 1.8235413179468196e-13,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- -8.2933659939499194e-14}, /* L558 */
-{4.2889155323053858e+00, 2.6617597015388128e-13,
- 2.2204460492503131e-16, -1.6853185513809876e-13,
- -6.5281113847959205e-14}, /* L559 */
-{3.8535775083877715e+00, 2.3958612871410878e-13,
- 2.2204460492503131e-16, -1.3777867735598193e-13,
- 1.7297274723659939e-13}, /* L560 */
-{3.0018986755090928e+00, 1.8696849624078027e-13,
- 2.2204460492503131e-16, 1.1790568521519162e-13,
- -2.7222668563808838e-13}, /* L561 */
-{3.6680996483970443e+00, 2.2886900707952407e-13,
- 2.2204460492503131e-16, 2.3980817331903381e-14,
- 1.1390888232654106e-13}, /* L562 */
-{4.0572888168416510e+00, 2.5360269440000138e-13,
- 2.2204460492503131e-16, -2.1282975382064251e-13,
- 1.4854784069484595e-13}, /* L563 */
-{4.3794395335802836e+00, 2.7422508708241367e-13,
- 2.2204460492503131e-16, 1.9317880628477724e-13,
- 7.3052675020335300e-13}, /* L564 */
-{3.6044304654935115e+00, 2.2609691896491313e-13,
- 2.2204460492503131e-16, 1.2323475573339238e-13,
- 2.3292479056635784e-13}, /* L565 */
-{3.1517689964141558e+00, 1.9805251189053408e-13,
- 2.2204460492503131e-16, 1.2945200467129325e-13,
- 1.7452705947107461e-13}, /* L566 */
-{3.8642036274453884e+00, 2.4324986469537180e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -9.4702024000525853e-14}, /* L567 */
-{3.7726732056930667e+00, 2.3790691638936323e-13,
- 2.2204460492503131e-16, -1.7097434579227411e-13,
- 3.1086244689504383e-15}, /* L568 */
-{4.6283025569378413e+00, 2.9237723353503497e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-13,
- -7.8603790143461083e-14}, /* L569 */
-{3.6807075614649567e+00, 2.3292479056635784e-13,
- 2.2204460492503131e-16, -2.5757174171303632e-14,
- -3.1530333899354446e-14}, /* L570 */
-{3.7653299335823309e+00, 2.3869795029440866e-13,
- 2.2204460492503131e-16, 5.7509552675583109e-14,
- 4.3076653355456074e-14}, /* L571 */
-{2.8964206536198676e+00, 1.8393619960477281e-13,
- 2.2204460492503131e-16, -1.2767564783189300e-14,
- -3.1752378504279477e-14}, /* L572 */
-{3.4415412063422108e+00, 2.1893598045608087e-13,
- 2.2204460492503131e-16, -2.1155299734232358e-12,
- -4.5241588253475129e-13}, /* L573 */
-{4.1718271394036357e+00, 2.6585678103430155e-13,
- 2.2204460492503131e-16, -3.8302694349567901e-14,
- 5.6821214400315512e-13}, /* L574 */
-{3.3769618495961029e+00, 2.1557755580658977e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -3.2640556923979602e-14}, /* L575 */
-{4.3502672801062889e+00, 2.7819413439544860e-13,
- 2.2204460492503131e-16, 2.3381296898605797e-13,
- -9.1926466438962962e-14}, /* L576 */
-{4.5628321554775733e+00, 2.9229396680818809e-13,
- 2.2204460492503131e-16, -5.6243898427510430e-13,
- -7.5617290207219412e-13}, /* L577 */
-{4.1439295482818972e+00, 2.6591923107943671e-13,
- 2.2204460492503131e-16, 5.0692783304384648e-13,
- 2.6290081223123707e-13}, /* L578 */
-{3.3488826583402855e+00, 2.1527224447481785e-13,
- 2.2204460492503131e-16, 4.5963233219481481e-14,
- 6.9055872131684737e-14}, /* L579 */
-{2.7896595736779930e+00, 1.7963408538435033e-13,
- 2.2204460492503131e-16, -1.1324274851176597e-13,
- 5.7975846345925675e-13}, /* L580 */
-{3.6101606011083467e+00, 2.3286927941512658e-13,
- 2.2204460492503131e-16, 5.0270898555027088e-13,
- -2.5635049638594865e-13}, /* L581 */
-{3.6692497752540323e+00, 2.3708812690870218e-13,
- 2.2204460492503131e-16, -5.2557957985754911e-13,
- 2.1604940059205546e-13}, /* L582 */
-{4.1951181109482834e+00, 2.7153279624769766e-13,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- -1.2045919817182948e-13}, /* L583 */
-{3.0603644173764839e+00, 1.9842461007613110e-13,
- 2.2204460492503131e-16, -1.8257617639960699e-12,
- -2.5777158185746885e-12}, /* L584 */
-{4.3410324899032542e+00, 2.8194113710355850e-13,
- 2.2204460492503131e-16, -1.6875389974302379e-14,
- -2.1527224447481785e-13}, /* L585 */
-{4.0648528295293085e+00, 2.6445512446571229e-13,
- 2.2204460492503131e-16, 6.2838623193783860e-14,
- -6.0729199446996063e-14}, /* L586 */
-{3.6490687895289691e+00, 2.3780977187470853e-13,
- 2.2204460492503131e-16, 1.0746958878371515e-13,
- -1.0735856648125264e-13}, /* L587 */
-{3.3579984952163260e+00, 2.1921353621223716e-13,
- 2.2204460492503131e-16, 8.4154905266586866e-14,
- -5.7509552675583109e-14}, /* L588 */
-{2.8921947158369519e+00, 1.8912649224489542e-13,
- 2.2204460492503131e-16, 3.0153657348819252e-13,
- -8.0047080075473787e-14}, /* L589 */
-{3.6790312281604924e+00, 2.4098778528269804e-13,
- 2.2204460492503131e-16, 2.3292479056635784e-13,
- 1.6409096303959814e-13}, /* L590 */
-{4.4898547994121989e+00, 2.9459767958428529e-13,
- 2.2204460492503131e-16, -3.5194069880617462e-14,
- 3.5527136788005009e-14}, /* L591 */
-{4.7398723429956808e+00, 3.1152858070981893e-13,
- 2.2204460492503131e-16, -1.0336176359260207e-13,
- 2.8421709430404007e-14}, /* L592 */
-{3.7664477635986588e+00, 2.4796831255002871e-13,
- 2.2204460492503131e-16, 1.3256062914024369e-13,
- -7.8270723236073536e-14}, /* L593 */
-{3.7685244641464046e+00, 2.4852342406234129e-13,
- 2.2204460492503131e-16, -5.8952842607595812e-14,
- -8.8817841970012523e-16}, /* L594 */
-{4.1344603044765931e+00, 2.7311486405778851e-13,
- 2.2204460492503131e-16, -4.6096459982436500e-13,
- -5.4800608495497727e-13}, /* L595 */
-{3.9358283572358426e+00, 2.6043056600144610e-13,
- 2.2204460492503131e-16, -2.3758772726978350e-14,
- -8.4598994476436928e-14}, /* L596 */
-{2.9870231381041710e+00, 1.9798052086628104e-13,
- 2.2204460492503131e-16, -7.4451556031362998e-13,
- -2.8665958495821542e-13}, /* L597 */
-{3.8862937568510549e+00, 2.5801583092288638e-13,
- 2.2204460492503131e-16, -1.9206858326015208e-14,
- 1.4033219031261979e-13}, /* L598 */
-{3.7996721049531530e+00, 2.5268676040468563e-13,
- 2.2204460492503131e-16, 3.8635761256955448e-14,
- 1.5143442055887135e-13}, /* L599 */
-{4.0350063660025226e+00, 2.6878499426175040e-13,
- 2.2204460492503131e-16, -5.4407589544780421e-12,
- -6.0607074914287296e-13}, /* L600 */
-{3.7026888700447835e+00, 2.4705931744861687e-13,
- 2.2204460492503131e-16, -1.0225154056797692e-13,
- -1.4510614931850796e-13}, /* L601 */
-{4.2408704782255757e+00, 2.8343993818680246e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-15,
- -4.3287595730134854e-13}, /* L602 */
-{3.6434551676171276e+00, 2.4391599851014689e-13,
- 2.2204460492503131e-16, 6.0373928079116013e-12,
- -1.3674505972005591e-11}, /* L603 */
-{4.7028219891566367e+00, 3.1535885014477572e-13,
- 2.2204460492503131e-16, -4.6238568529588520e-12,
- 3.0775382242609339e-13}, /* L604 */
-{3.5561006518070677e+00, 2.3885754485419852e-13,
- 2.2204460492503131e-16, -1.1568523916594131e-13,
- 2.1982415887578100e-14}, /* L605 */
-{4.4700978115607057e+00, 3.0074553958314709e-13,
- 2.2204460492503131e-16, -1.7769119509125630e-12,
- 1.2563283746658271e-12}, /* L606 */
-{3.9715878146002628e+00, 2.6764701566150961e-13,
- 2.2204460492503131e-16, -8.1601392309949006e-14,
- -1.6642243139131097e-13}, /* L607 */
-{3.8560916100945999e+00, 2.6029178812336795e-13,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- -9.0483176506950258e-14}, /* L608 */
-{4.2294812213226134e+00, 2.8596569556782470e-13,
- 2.2204460492503131e-16, -7.5606187976973160e-14,
- 5.1514348342607263e-14}, /* L609 */
-{6.1254195001840035e+00, 4.1483483315118974e-13,
- 2.2204460492503131e-16, -5.1181281435219717e-14,
- -2.9642954757491680e-14}, /* L610 */
-{4.2225925867281466e+00, 2.8643754035329039e-13,
- 2.2204460492503131e-16, -4.1411318818518339e-14,
- -3.4527936065842368e-14}, /* L611 */
-{3.8954309824501872e+00, 2.6467716907063732e-13,
- 2.2204460492503131e-16, 1.5054624213917123e-13,
- 7.5717210279435676e-14}, /* L612 */
-{5.2171778886004097e+00, 3.5506320106293288e-13,
- 2.2204460492503131e-16, -2.0505819264826641e-13,
- -3.0830893393840597e-13}, /* L613 */
-{7.3436597946076159e+00, 5.0059956180348308e-13,
- 2.2204460492503131e-16, 1.0547118733938987e-13,
- -1.6764367671839864e-14}, /* L614 */
-{4.4479744972724431e+00, 3.0370150838621157e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-13,
- 2.8377300509419001e-13}, /* L615 */
-{4.5131970555638103e+00, 3.0865587863360133e-13,
- 2.2204460492503131e-16, 1.6786572132332367e-13,
- 3.2795988147427124e-13}, /* L616 */
-{4.9278845980963100e+00, 3.3756331063727885e-13,
- 2.2204460492503131e-16, -1.5010215292932116e-13,
- 6.3948846218409017e-14}, /* L617 */
-{4.1165113490176148e+00, 2.8244073746463982e-13,
- 2.2204460492503131e-16, -1.2434497875801753e-13,
- -1.5387691121304670e-13}, /* L618 */
-{4.8517847144062207e+00, 3.3342772987055014e-13,
- 2.2204460492503131e-16, -1.0047518372857667e-12,
- -3.0814240048471220e-12}, /* L619 */
-{3.3741988718826703e+00, 2.3225865675158275e-13,
- 2.2204460492503131e-16, -3.0098146197587994e-13,
- -5.0626169922907138e-13}, /* L620 */
-{3.4565271925158694e+00, 2.3830937223578985e-13,
- 2.2204460492503131e-16, -3.6526337510167650e-14,
- -2.3725466036239595e-13}, /* L621 */
-{4.3553123370677040e+00, 3.0075941737095491e-13,
- 2.2204460492503131e-16, 3.7839731348299210e-11,
- -3.3014146971765967e-11}, /* L622 */
-{4.2801030609305322e+00, 2.9604096951629799e-13,
- 2.2204460492503131e-16, 6.3193894561663910e-13,
- -3.6670666503368921e-13}, /* L623 */
-{4.1839008317390940e+00, 2.8985147615401274e-13,
- 2.2204460492503131e-16, -3.3750779948604759e-14,
- 4.4408920985006262e-15}, /* L624 */
-{4.2680067336642429e+00, 2.9615199181876051e-13,
- 2.2204460492503131e-16, 1.4210854715202004e-14,
- 1.0658141036401503e-13}, /* L625 */
-{4.5303585852782016e+00, 3.1485924978369439e-13,
- 2.2204460492503131e-16, -1.5532020114505940e-13,
- 1.3988810110276972e-13}, /* L626 */
-{6.0283189207975738e+00, 4.1963654773269354e-13,
- 2.2204460492503131e-16, 1.1235457009206584e-13,
- 2.4424906541753444e-15}, /* L627 */
-{3.3294240426622368e+00, 2.3213375666131242e-13,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- -4.3332004651119860e-13}, /* L628 */
-{3.9276691537624449e+00, 2.7428059823364492e-13,
- 2.2204460492503131e-16, -2.1638246749944301e-13,
- 4.9515946898281982e-14}, /* L629 */
-{3.9833396178452722e+00, 2.7861046802968303e-13,
- 2.2204460492503131e-16, -2.1409540806871519e-12,
- -1.4955814364725484e-12}, /* L630 */
-{5.5301196599335816e+00, 3.8741232444294837e-13,
- 2.2204460492503131e-16, -5.1847415249994810e-14,
- -6.0840221749458578e-14}, /* L631 */
-{3.6392462479922667e+00, 2.5535129566378600e-13,
- 2.2204460492503131e-16, 3.4727776210274897e-13,
- 2.6867397195928788e-14}, /* L632 */
-{2.9913159358492698e+00, 2.1022072971277339e-13,
- 2.2204460492503131e-16, -1.8895995879120164e-13,
- -1.0436096431476471e-13}, /* L633 */
-{4.2981140366806132e+00, 3.0253577421035516e-13,
- 2.2204460492503131e-16, -2.6434410216324977e-13,
- -3.1463720517876936e-13}, /* L634 */
-{4.4401644855917599e+00, 3.1302738179306289e-13,
- 2.2204460492503131e-16, -4.5186077102243871e-14,
- -4.6196380054652764e-13}, /* L635 */
-{3.5597540439182156e+00, 2.5135449277513544e-13,
- 2.2204460492503131e-16, 2.9198865547641617e-13,
- -2.5524027336132349e-13}, /* L636 */
-{4.1122513858843979e+00, 2.9082292130055976e-13,
- 2.2204460492503131e-16, -5.0737192225369654e-14,
- -2.5068835896036035e-13}, /* L637 */
-{4.3620758475930144e+00, 3.0897506775318107e-13,
- 2.2204460492503131e-16, -3.1630253971570710e-13,
- -2.1549428907974288e-13}, /* L638 */
-{3.4647941988222715e+00, 2.4580337765200966e-13,
- 2.2204460492503131e-16, -6.9333427887841026e-13,
- 2.6756374893466273e-13}, /* L639 */
-{5.0656329920841108e+00, 3.5993430458347575e-13,
- 2.2204460492503131e-16, -2.1493917756743031e-13,
- -6.4726002335646626e-14}, /* L640 */
-{3.8713009595737295e+00, 2.7550184356073260e-13,
- 2.2204460492503131e-16, -3.8857805861880479e-15,
- 5.4178883601707639e-14}, /* L641 */
-{5.1577184177423021e+00, 3.6762259902900496e-13,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- -1.1102230246251565e-14}, /* L642 */
-{5.4821237347203695e+00, 3.9135361618036768e-13,
- 2.2204460492503131e-16, 2.4069635173873394e-13,
- -9.1038288019262836e-14}, /* L643 */
-{4.4782679349608054e+00, 3.2018832030189515e-13,
- 2.2204460492503131e-16, 1.1524114995609125e-13,
- -7.2386541205560206e-14}, /* L644 */
-{4.0294637216538298e+00, 2.8854696410007818e-13,
- 2.2204460492503131e-16, 2.6223467841646197e-13,
- 3.1219471452459402e-13}, /* L645 */
-{3.7784502337306787e+00, 2.7099156252319290e-13,
- 2.2204460492503131e-16, -9.9475983006414026e-14,
- 3.3795188869589765e-13}, /* L646 */
-{4.1986155886364660e+00, 3.0159208463942377e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- -8.0491169285323849e-14}, /* L647 */
-{4.2307165513725806e+00, 3.0436764220098667e-13,
- 2.2204460492503131e-16, 5.0182080713057076e-14,
- -2.4813484600372249e-13}, /* L648 */
-{4.6240442753561357e+00, 3.3317792969000948e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 4.8849813083506888e-14}, /* L649 */
-{3.8865445933673763e+00, 2.8047009159593017e-13,
- 2.2204460492503131e-16, -1.8629542353210127e-13,
- -2.6023627697213669e-13}, /* L650 */
-{3.7820720192230040e+00, 2.7335078645052135e-13,
- 2.2204460492503131e-16, -3.1008529077780622e-13,
- 6.5347727229436714e-13}, /* L651 */
-{3.6426437838327406e+00, 2.6367796834847468e-13,
- 2.2204460492503131e-16, -2.9687363678476686e-13,
- -1.8696155734687636e-13}, /* L652 */
-{3.6500823284385797e+00, 2.6462165791940606e-13,
- 2.2204460492503131e-16, -1.5432100042289676e-13,
- -5.8730798002670781e-14}, /* L653 */
-{4.2316580524575995e+00, 3.0725422206501207e-13,
- 2.2204460492503131e-16, -1.2867484855405564e-13,
- -8.1068485258128931e-13}, /* L654 */
-{3.6374103189139468e+00, 2.6451063561694355e-13,
- 2.2204460492503131e-16, -4.9338311214341957e-13,
- -3.2585045772748344e-13}, /* L655 */
-{3.8555701073501023e+00, 2.8080315850331772e-13,
- 2.2204460492503131e-16, -2.3203661214665772e-13,
- 1.5543122344752192e-14}, /* L656 */
-{4.1818939646227049e+00, 3.0503377601576176e-13,
- 2.2204460492503131e-16, 1.3211653993039363e-13,
- 2.5535129566378600e-14}, /* L657 */
-{3.9980888021138785e+00, 2.9207062116065607e-13,
- 2.2204460492503131e-16, 4.1744385725905886e-14,
- -4.2743586448068527e-14}, /* L658 */
-{4.2936334812285315e+00, 3.1413760481768804e-13,
- 2.2204460492503131e-16, -2.0872192862952943e-14,
- 7.4384942649885488e-14}, /* L659 */
-{4.4352342702190803e+00, 3.2499003488339895e-13,
- 2.2204460492503131e-16, 9.9742436532324064e-13,
- -4.5441428397907657e-13}, /* L660 */
-{4.0756493953851356e+00, 2.9909408283401717e-13,
- 2.2204460492503131e-16, -8.9483975784787617e-14,
- -6.6835426082434424e-14}, /* L661 */
-{3.6465314329152707e+00, 2.6800783814451279e-13,
- 2.2204460492503131e-16, -2.4868995751603507e-13,
- -6.1395333261771157e-14}, /* L662 */
-{4.6561159432646324e+00, 3.4272584770178582e-13,
- 2.2204460492503131e-16, 6.8589578461342171e-13,
- 6.1395333261771157e-13}, /* L663 */
-{3.6950359501665906e+00, 2.7239321909178216e-13,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 3.6637359812630166e-14}, /* L664 */
-{4.3067737121208145e+00, 3.1796787425264483e-13,
- 2.2204460492503131e-16, -6.1617377866696188e-14,
- -1.3877787807814457e-14}, /* L665 */
-{4.1929495581885927e+00, 3.1002977962657496e-13,
- 2.2204460492503131e-16, 2.3092638912203256e-14,
- 1.7807977314987511e-13}, /* L666 */
-{3.4730189726603995e+00, 2.5718316365441751e-13,
- 2.2204460492503131e-16, -1.0880185641326534e-14,
- -2.9531932455029164e-14}, /* L667 */
-{4.8259806678394126e+00, 3.5790814756353484e-13,
- 2.2204460492503131e-16, 8.5709217501062085e-14,
- 2.6347812820404215e-12}, /* L668 */
-{4.3968679235158747e+00, 3.2657210269348980e-13,
- 2.2204460492503131e-16, 2.6267876762631204e-13,
- 9.1704421834037930e-14}, /* L669 */
-{5.1597096330471377e+00, 3.8380409961291662e-13,
- 2.2204460492503131e-16, -2.8477220581635265e-13,
- -2.1493917756743031e-13}, /* L670 */
-{5.3003064247945977e+00, 3.9485081870793692e-13,
- 2.2204460492503131e-16, -8.5609297428845821e-13,
- 6.5814020899779280e-12}, /* L671 */
-{4.9895912054433937e+00, 3.7225778015681499e-13,
- 2.2204460492503131e-16, 1.7874590696465020e-13,
- 3.3018032752352156e-13}, /* L672 */
-{4.6326224649342507e+00, 3.4613978350250818e-13,
- 2.2204460492503131e-16, 6.2971849956738879e-13,
- -1.3100631690576847e-13}, /* L673 */
-{4.9317121576456273e+00, 3.6903466393845008e-13,
- 2.2204460492503131e-16, -1.0328404798087831e-12,
- 1.7918999617450027e-13}, /* L674 */
-{4.5078774824791825e+00, 3.3782004971172341e-13,
- 2.2204460492503131e-16, -7.9491968563161208e-14,
- 1.0347278589506459e-13}, /* L675 */
-{3.7100650249900413e+00, 2.7844393457598926e-13,
- 2.2204460492503131e-16, 1.9229062786507711e-13,
- -1.3655743202889425e-14}, /* L676 */
-{5.4372316211932743e+00, 4.0867309536452012e-13,
- 2.2204460492503131e-16, -1.0613732115416497e-13,
- 2.5091040356528538e-14}, /* L677 */
-{3.9616581677375620e+00, 2.9820590441431705e-13,
- 2.2204460492503131e-16, 3.2640556923979602e-13,
- 1.9984014443252818e-15}, /* L678 */
-{3.6516994284474764e+00, 2.7527979895580756e-13,
- 2.2204460492503131e-16, -9.9031893796563963e-13,
- -1.9652057758889896e-12}, /* L679 */
-{3.7437559065390982e+00, 2.8263502649394923e-13,
- 2.2204460492503131e-16, 4.8916426464984397e-13,
- 3.4350300381902343e-13}, /* L680 */
-{4.6027399159503952e+00, 3.4799507026006538e-13,
- 2.2204460492503131e-16, 1.3273826482418372e-12,
- 8.3044682241961709e-14}, /* L681 */
-{4.1686282777542942e+00, 3.1563640590093200e-13,
- 2.2204460492503131e-16, 8.3488771451811772e-14,
- 1.0746958878371515e-13}, /* L682 */
-{3.6032267682918673e+00, 2.7322588636025102e-13,
- 2.2204460492503131e-16, -1.9428902930940239e-14,
- -2.2204460492503131e-16}, /* L683 */
-{3.8684271558765198e+00, 2.9376501231581642e-13,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- 7.2164496600635175e-14}, /* L684 */
-{6.2788420229562574e+00, 4.7750692289127983e-13,
- 2.2204460492503131e-16, -6.0651483835272302e-13,
- 4.6629367034256575e-15}, /* L685 */
-{4.1902398471222186e+00, 3.1913360842850125e-13,
- 2.2204460492503131e-16, -2.5424107263916085e-13,
- 2.0561330416057899e-13}, /* L686 */
-{3.6413812908785874e+00, 2.7773616739779072e-13,
- 2.2204460492503131e-16, 6.1750604629651207e-13,
- -5.5400128928795311e-14}, /* L687 */
-{3.7202093577722533e+00, 2.8416158315280882e-13,
- 2.2204460492503131e-16, 9.5479180117763462e-14,
- 2.9620750296999176e-13}, /* L688 */
-{3.6984818873697725e+00, 2.8291258225010552e-13,
- 2.2204460492503131e-16, -1.1235457009206584e-13,
- 7.9936057773011271e-15}, /* L689 */
-{5.0021818049671767e+00, 3.8319347694937278e-13,
- 2.2204460492503131e-16, -6.5583094510657247e-12,
- -2.0283774659901610e-12}, /* L690 */
-{4.3900213979458886e+00, 3.3678615452004124e-13,
- 2.2204460492503131e-16, -4.1455727739503345e-13,
- -2.1949109196839345e-13}, /* L691 */
-{3.6315086196294479e+00, 2.7899904608830184e-13,
- 2.2204460492503131e-16, -7.0610184366159956e-14,
- 1.1923795284474181e-13}, /* L692 */
-{4.2020268315879372e+00, 3.2329694477084558e-13,
- 2.2204460492503131e-16, 1.2834178164666810e-13,
- 3.5971225997855072e-14}, /* L693 */
-{3.6453587772060621e+00, 2.8087254744235679e-13,
- 2.2204460492503131e-16, -5.5468962756322071e-12,
- -3.4481306698808112e-12}, /* L694 */
-{4.3784241740552723e+00, 3.3784086639343514e-13,
- 2.2204460492503131e-16, -2.6534330288541241e-13,
- 3.2884805989397137e-13}, /* L695 */
-{3.5138345667894626e+00, 2.7151891845988985e-13,
- 2.2204460492503131e-16, 5.1092463593249704e-13,
- 5.3290705182007514e-15}, /* L696 */
-{3.7761896019105472e+00, 2.9221070008134120e-13,
- 2.2204460492503131e-16, 1.3500311979441904e-13,
- 4.9737991503207013e-14}, /* L697 */
-{4.2515289139709678e+00, 3.2946562145141911e-13,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -9.9920072216264089e-15}, /* L698 */
-{4.2296204070047265e+00, 3.2823743723042753e-13,
- 2.2204460492503131e-16, 3.5971225997855072e-14,
- 1.2945200467129325e-13}, /* L699 */
-{3.7250058769658532e+00, 2.8949065367100957e-13,
- 2.2204460492503131e-16, -3.2895908219643388e-13,
- 2.7955415760061442e-13}, /* L700 */
-{4.3366687535406321e+00, 3.3750779948604759e-13,
- 2.2204460492503131e-16, 7.0432548682219931e-13,
- 3.9235281690253032e-13}, /* L701 */
-{5.0904638717161710e+00, 3.9673819784979969e-13,
- 2.2204460492503131e-16, -3.5860203695392556e-14,
- 1.4832579608992091e-13}, /* L702 */
-{3.8677159171984923e+00, 3.0186964039558006e-13,
- 2.2204460492503131e-16, -1.3877787807814457e-14,
- 4.9915627187147038e-13}, /* L703 */
-{3.2862267756106416e+00, 2.5685009674702997e-13,
- 2.2204460492503131e-16, 2.7045032879868813e-13,
- -4.1799896877137144e-13}, /* L704 */
-{3.6829845340743494e+00, 2.8826940834392190e-13,
- 2.2204460492503131e-16, -1.1290968160437842e-13,
- -6.9944050551384862e-14}, /* L705 */
-{4.7960415610823688e+00, 3.7592151613807800e-13,
- 2.2204460492503131e-16, -1.4976908602193362e-13,
- 6.6391336872584361e-14}, /* L706 */
-{4.0058408320633987e+00, 3.1442903836165215e-13,
- 2.2204460492503131e-16, -1.6420198534206065e-13,
- -5.1836313019748559e-13}, /* L707 */
-{3.9777605130293372e+00, 3.1266655931005971e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 3.1530333899354446e-14}, /* L708 */
-{4.1604437995051100e+00, 3.2748803668880555e-13,
- 2.2204460492503131e-16, -6.5392136150421720e-14,
- -1.2878587085651816e-14}, /* L709 */
-{4.3929646772883588e+00, 3.4627856138058632e-13,
- 2.2204460492503131e-16, -2.5746071941057380e-13,
- -3.1763480734525729e-13}, /* L710 */
-{4.0007095468225051e+00, 3.1580293935462578e-13,
- 2.2204460492503131e-16, -8.0790929501972641e-13,
- 5.2335913380829879e-13}, /* L711 */
-{4.7795019226773370e+00, 3.7780889527994077e-13,
- 2.2204460492503131e-16, -3.0975222387041867e-14,
- 2.0650148258027912e-14}, /* L712 */
-{4.3008483002045885e+00, 3.4044989050130425e-13,
- 2.2204460492503131e-16, 1.1191048088221578e-13,
- -3.2795988147427124e-13}, /* L713 */
-{3.2601592051927470e+00, 2.5843216455712081e-13,
- 2.2204460492503131e-16, 2.9509727994536661e-13,
- -7.6194606180024493e-13}, /* L714 */
-{4.1080484393376038e+00, 3.2610025790802410e-13,
- 2.2204460492503131e-16, -6.0174087934683484e-14,
- 6.4170890823334048e-14}, /* L715 */
-{4.8261249326477120e+00, 3.8363756615922284e-13,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- 2.9087843245179101e-14}, /* L716 */
-{4.8835502431665860e+00, 3.8874459207249856e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 6.8833827526759706e-15}, /* L717 */
-{4.3126808988546266e+00, 3.4378055957517972e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- -7.8714812445923599e-14}, /* L718 */
-{4.4951392199670570e+00, 3.5882408155885059e-13,
- 2.2204460492503131e-16, 1.3855583347321954e-13,
- -9.3702823278363212e-14}, /* L719 */
-{3.9932354668217771e+00, 3.1920299736754032e-13,
- 2.2204460492503131e-16, -1.8973711490843925e-13,
- -6.0507154842071031e-14}, /* L720 */
-{4.0830074820000553e+00, 3.2683231121488632e-13,
- 2.2204460492503131e-16, 6.1906035853098729e-13,
- 6.1572968945711182e-13}, /* L721 */
-{4.2330399194924011e+00, 3.3931191190106347e-13,
- 2.2204460492503131e-16, -2.2859492077031973e-13,
- 4.8405723873656825e-14}, /* L722 */
-{4.9827187879655508e+00, 3.9995784462121264e-13,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 9.5257135512838431e-14}, /* L723 */
-{4.3056007156279792e+00, 3.4608427235127692e-13,
- 2.2204460492503131e-16, 1.7252865802674933e-13,
- -6.7057470687359455e-14}, /* L724 */
-{4.9948354665855845e+00, 4.0203951279238481e-13,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- -6.2316818372210037e-13}, /* L725 */
-{4.7272801855342825e+00, 3.8102854205135372e-13,
- 2.2204460492503131e-16, -1.1979306435705439e-13,
- -3.4305891460917337e-14}, /* L726 */
-{5.3597058425467230e+00, 4.3259840154519225e-13,
- 2.2204460492503131e-16, 1.1457501614131615e-13,
- -1.1843859226701170e-12}, /* L727 */
-{4.5528917985144171e+00, 3.6798342151200814e-13,
- 2.2204460492503131e-16, -6.7279515292284486e-14,
- -4.7739590058881731e-14}, /* L728 */
-{3.9585110464683164e+00, 3.2038260933120455e-13,
- 2.2204460492503131e-16, 1.5831780331154732e-13,
- -7.6272321791748254e-14}, /* L729 */
-{4.3208972280682367e+00, 3.5019209754239000e-13,
- 2.2204460492503131e-16, -3.2218672174622043e-13,
- 7.5717210279435676e-14}, /* L730 */
-{4.3707319299294136e+00, 3.5471625636773751e-13,
- 2.2204460492503131e-16, 1.0278444761979699e-12,
- -6.4148686362841545e-13}, /* L731 */
-{3.8791044807411437e+00, 3.1524782784231320e-13,
- 2.2204460492503131e-16, 2.5579538487363607e-13,
- -3.3639757646142243e-14}, /* L732 */
-{3.4369085602234795e+00, 2.7969293547869256e-13,
- 2.2204460492503131e-16, -8.1046280797636427e-14,
- 3.0708768861131830e-13}, /* L733 */
-{3.7391067166535628e+00, 3.0470070910837421e-13,
- 2.2204460492503131e-16, -2.1649348980190553e-14,
- -2.7944313529815190e-13}, /* L734 */
-{4.2789183155005910e+00, 3.4916514124461173e-13,
- 2.2204460492503131e-16, 1.2434497875801753e-13,
- 2.6112445539183682e-13}, /* L735 */
-{5.1810543698290337e+00, 4.2335579486518782e-13,
- 2.2204460492503131e-16, 5.7021054544748040e-13,
- -3.5060843117662444e-13}, /* L736 */
-{3.2208327613014758e+00, 2.6353919047039653e-13,
- 2.2204460492503131e-16, -1.0516032489249483e-12,
- 2.0383694732117874e-13}, /* L737 */
-{5.0948589867050149e+00, 4.1744385725905886e-13,
- 2.2204460492503131e-16, -5.6732396558345499e-14,
- -8.2822637637036678e-14}, /* L738 */
-{4.3731462770799645e+00, 3.5879632598323496e-13,
- 2.2204460492503131e-16, -1.7030821197749901e-13,
- -7.1165295878472534e-14}, /* L739 */
-{4.8520346821122526e+00, 3.9862557699166246e-13,
- 2.2204460492503131e-16, -3.7747582837255322e-15,
- -1.5099033134902129e-13}, /* L740 */
-{4.3468354680199575e+00, 3.5760283623176292e-13,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- 6.2172489379008766e-15}, /* L741 */
-{5.0217397287593837e+00, 4.1368297676314114e-13,
- 2.2204460492503131e-16, -4.8050452505776775e-13,
- -3.5527136788005009e-14}, /* L742 */
-{4.3331158538371861e+00, 3.5743630277806915e-13,
- 2.2204460492503131e-16, -1.1882717032563050e-12,
- 3.9792613648614861e-12}, /* L743 */
-{4.3165390682967226e+00, 3.5654812435836902e-13,
- 2.2204460492503131e-16, 2.9598545836506673e-13,
- 1.7275070263167436e-13}, /* L744 */
-{3.9147712770294398e+00, 3.2379654513192691e-13,
- 2.2204460492503131e-16, 2.2537527399890678e-13,
- -1.0713652187632761e-13}, /* L745 */
-{4.0549661830708441e+00, 3.3584246494910985e-13,
- 2.2204460492503131e-16, -1.6442402994698568e-13,
- 3.8791192480402970e-13}, /* L746 */
-{4.8678122315199408e+00, 4.0370484732932255e-13,
- 2.2204460492503131e-16, -8.0380146982861334e-14,
- 7.2830630415410269e-14}, /* L747 */
-{4.0635090848238224e+00, 3.3745228833481633e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-15,
- 1.1546319456101628e-13}, /* L748 */
-{7.1989224058544812e+00, 5.9863052015440843e-13,
- 2.2204460492503131e-16, -3.3084646133829665e-14,
- 1.3256062914024369e-13}, /* L749 */
-{5.2730083192504171e+00, 4.3906545066363378e-13,
- 2.2204460492503131e-16, -2.1060930777139220e-13,
- -6.3538063699297709e-13}, /* L750 */
-{5.4647223367479514e+00, 4.5563552930616424e-13,
- 2.2204460492503131e-16, -3.6259883984257613e-13,
- 2.1438406605511773e-12}, /* L751 */
-{5.7530010978261403e+00, 4.8031023602845835e-13,
- 2.2204460492503131e-16, -8.1379347705023974e-14,
- 3.7170266864450241e-13}, /* L752 */
-{4.0541232620881313e+00, 3.3892333384244466e-13,
- 2.2204460492503131e-16, -1.4643841694805815e-13,
- -3.3306690738754696e-15}, /* L753 */
-{4.3403583066975013e+00, 3.6333436259639029e-13,
- 2.2204460492503131e-16, -4.7917225742821756e-13,
- 1.0658141036401503e-13}, /* L754 */
-{4.5092786375000902e+00, 3.7797542873363454e-13,
- 2.2204460492503131e-16, -1.2057022047429200e-13,
- -3.1197266991966899e-14}, /* L755 */
-{4.0198476119802713e+00, 3.3739677718358507e-13,
- 2.2204460492503131e-16, -2.8455016121142762e-13,
- -8.8595797365087492e-14}, /* L756 */
-{4.7612360455212839e+00, 4.0015213365052205e-13,
- 2.2204460492503131e-16, -6.8611782921834674e-14,
- -8.9817042692175164e-14}, /* L757 */
-{5.2958526824749397e+00, 4.4567127766015346e-13,
- 2.2204460492503131e-16, 1.7985612998927536e-13,
- 2.3203661214665772e-13}, /* L758 */
-{4.9499419333947401e+00, 4.1711079035167131e-13,
- 2.2204460492503131e-16, -1.7352785874891197e-13,
- 1.1195488980320079e-12}, /* L759 */
-{3.9184272347612783e+00, 3.3062441673337162e-13,
- 2.2204460492503131e-16, -7.9380946260698693e-14,
- 4.3032244434471068e-13}, /* L760 */
-{4.7495968495789942e+00, 4.0128317335685892e-13,
- 2.2204460492503131e-16, 1.8873791418627661e-14,
- -1.0458300891968975e-13}, /* L761 */
-{3.9278277192694997e+00, 3.3228975127030935e-13,
- 2.2204460492503131e-16, -3.7181369094696493e-13,
- 1.2878587085651816e-13}, /* L762 */
-{4.6253349514175497e+00, 3.9181158317802556e-13,
- 2.2204460492503131e-16, 1.3100631690576847e-14,
- 1.8274270985330077e-13}, /* L763 */
-{7.1531526468365625e+00, 6.0673688295764805e-13,
- 2.2204460492503131e-16, -6.5059069243034173e-14,
- 1.3833378886829450e-13}, /* L764 */
-{4.1581764949737057e+00, 3.5316194413326230e-13,
- 2.2204460492503131e-16, -4.3165471197426086e-13,
- 1.8345325258906087e-12}, /* L765 */
-{4.6050986493079265e+00, 3.9163117193652397e-13,
- 2.2204460492503131e-16, -1.9784174298820290e-13,
- 4.0856207306205761e-14}, /* L766 */
-{5.1188151164080482e+00, 4.3588743725564427e-13,
- 2.2204460492503131e-16, -7.9936057773011271e-14,
- 4.7739590058881731e-14}, /* L767 */
-{3.8287820823611050e+00, 3.2646108039102728e-13,
- 2.2204460492503131e-16, -8.7707618945387367e-14,
- 4.4497738826976274e-13}, /* L768 */
-{3.9212716287499236e+00, 3.3478254890528802e-13,
- 2.2204460492503131e-16, -2.3758772726978350e-14,
- 3.0619951019161817e-13}, /* L769 */
-{4.3436350997275719e+00, 3.7132449892673947e-13,
- 2.2204460492503131e-16, -2.4291679778798425e-13,
- -7.6127992798546984e-13}, /* L770 */
-{5.8491499545744761e+00, 5.0067588963642606e-13,
- 2.2204460492503131e-16, -1.8696155734687636e-13,
- -2.2204460492503131e-14}, /* L771 */
-{3.8471563287526109e+00, 3.2973623831367149e-13,
- 2.2204460492503131e-16, 1.2989609388114332e-13,
- 4.2188474935755949e-14}, /* L772 */
-{3.8719336637537434e+00, 3.3228975127030935e-13,
- 2.2204460492503131e-16, 4.2610359685113508e-13,
- -3.1918911957973251e-13}, /* L773 */
-{5.1737807725289500e+00, 4.4458881021114394e-13,
- 2.2204460492503131e-16, -8.7929663550312398e-14,
- -9.7699626167013776e-14}, /* L774 */
-{5.0688789649479533e+00, 4.3613723743618493e-13,
- 2.2204460492503131e-16, -8.2822637637036678e-14,
- -8.9706020389712648e-14}, /* L775 */
-{4.8468182138680280e+00, 4.1756875734932919e-13,
- 2.2204460492503131e-16, -3.1885605267234496e-13,
- -1.6620038678638593e-13}, /* L776 */
-{4.1222716260017664e+00, 3.5560443478743764e-13,
- 2.2204460492503131e-16, 9.7699626167013776e-15,
- -2.0761170560490427e-14}, /* L777 */
-{4.1041195856355346e+00, 3.5449421176281248e-13,
- 2.2204460492503131e-16, -2.1860291354869332e-13,
- 8.0380146982861334e-14}, /* L778 */
-{3.9627790377231835e+00, 3.4272584770178582e-13,
- 2.2204460492503131e-16, 4.5941028758988978e-13,
- -5.8897331456364554e-13}, /* L779 */
-{5.8692400291710785e+00, 5.0826010067339666e-13,
- 2.2204460492503131e-16, 6.3948846218409017e-14,
- -2.2204460492503131e-16}, /* L780 */
-{3.9391867526302407e+00, 3.4156011352592941e-13,
- 2.2204460492503131e-16, -2.0071722062198205e-12,
- -4.0619729801960602e-12}, /* L781 */
-{3.2781381642690071e+00, 2.8460567236265888e-13,
- 2.2204460492503131e-16, -1.2523315717771766e-13,
- 1.1945999744966684e-13}, /* L782 */
-{5.0268278542336997e+00, 4.3698378249246161e-13,
- 2.2204460492503131e-16, -2.9642954757491680e-14,
- 3.3528735343679728e-14}, /* L783 */
-{4.6486042729100063e+00, 4.0462078132463830e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-13,
- -3.4894309663968670e-13}, /* L784 */
-{3.5229354944645230e+00, 3.0703217746008704e-13,
- 2.2204460492503131e-16, 2.8266278206956486e-13,
- -2.7755575615628914e-14}, /* L785 */
-{6.0012817328961656e+00, 5.2369220071568634e-13,
- 2.2204460492503131e-16, 8.5931262105987116e-14,
- -1.2456702336294256e-13}, /* L786 */
-{4.9164626487321739e+00, 4.2957304380308869e-13,
- 2.2204460492503131e-16, -7.8270723236073536e-14,
- 2.0650148258027912e-14}, /* L787 */
-{5.1814802560714179e+00, 4.5330406095445142e-13,
- 2.2204460492503131e-16, -2.3148150063434514e-13,
- 4.9094062148924422e-13}, /* L788 */
-{4.4809956628277652e+00, 3.9251935035622409e-13,
- 2.2204460492503131e-16, -5.6543658644159223e-13,
- 1.8207657603852567e-13}, /* L789 */
-{4.3886145188832337e+00, 3.8491432263754177e-13,
- 2.2204460492503131e-16, 2.1915802506100590e-13,
- -4.4853010194856324e-14}, /* L790 */
-{6.1167131902021277e+00, 5.3716059378317027e-13,
- 2.2204460492503131e-16, 4.8805404162521882e-13,
- 8.1046280797636427e-14}, /* L791 */
-{4.6673053434256015e+00, 4.1039394105268912e-13,
- 2.2204460492503131e-16, 4.4653170050423796e-13,
- -4.3975934005402451e-13}, /* L792 */
-{4.4631217955965115e+00, 3.9293568399045853e-13,
- 2.2204460492503131e-16, 1.3944401189291966e-13,
- -7.2164496600635175e-15}, /* L793 */
-{4.4231807820052076e+00, 3.8991032624835498e-13,
- 2.2204460492503131e-16, 4.6918025020659115e-13,
- -4.0645264931526981e-13}, /* L794 */
-{5.5289395406495210e+00, 4.8799853047398756e-13,
- 2.2204460492503131e-16, 3.2551739082009590e-13,
- -1.0793588245405772e-12}, /* L795 */
-{4.1250065080446960e+00, 3.6454173013567015e-13,
- 2.2204460492503131e-16, 2.7000623958883807e-13,
- -2.7078339570607568e-13}, /* L796 */
-{4.5200824136736761e+00, 3.9995784462121264e-13,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- 5.1514348342607263e-14}, /* L797 */
-{4.1278260613722058e+00, 3.6570746431152656e-13,
- 2.2204460492503131e-16, 1.9895196601282805e-13,
- 7.8603790143461083e-14}, /* L798 */
-{4.3860363316300051e+00, 3.8907072008598220e-13,
- 2.2204460492503131e-16, -1.2688738948440914e-12,
- 1.3056222769591841e-13}, /* L799 */
-{4.6962574093138363e+00, 4.1711079035167131e-13,
- 2.2204460492503131e-16, -1.1508571873264373e-12,
- 1.2212453270876722e-13}, /* L800 */
-{4.1629279161746746e+00, 3.7020386756125845e-13,
- 2.2204460492503131e-16, 1.4639400802707314e-12,
- -7.7471362658343423e-13}, /* L801 */
-{5.1697400765276322e+00, 4.6031234379739772e-13,
- 2.2204460492503131e-16, -1.2922996006636822e-13,
- 1.3766765505351941e-13}, /* L802 */
-{4.4750226268943232e+00, 3.9895170500514610e-13,
- 2.2204460492503131e-16, -1.3999912340523224e-13,
- 1.1834977442504169e-13}, /* L803 */
-{5.0219295649242541e+00, 4.4826642398021477e-13,
- 2.2204460492503131e-16, -1.9984014443252818e-14,
- 1.7608137170554983e-13}, /* L804 */
-{6.2863453217276684e+00, 5.6182836161156047e-13,
- 2.2204460492503131e-16, 1.4632739464559563e-13,
- 1.0902390101819037e-13}, /* L805 */
-{5.4714726522321522e+00, 4.8960835385969403e-13,
- 2.2204460492503131e-16, 3.9968028886505635e-14,
- 4.4853010194856324e-14}, /* L806 */
-{5.9640738457432354e+00, 5.3435034175208784e-13,
- 2.2204460492503131e-16, 4.1522341120980855e-13,
- -6.1395333261771157e-14}, /* L807 */
-{4.7537203712646265e+00, 4.2643666375852263e-13,
- 2.2204460492503131e-16, 5.3068660577082483e-14,
- 6.6835426082434424e-14}, /* L808 */
-{4.9604528199612021e+00, 4.4553249978207532e-13,
- 2.2204460492503131e-16, -1.0991207943789050e-14,
- 2.7089441800853820e-14}, /* L809 */
-{4.1660559555321397e+00, 3.7464475965975907e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-14,
- 8.3488771451811772e-14}, /* L810 */
-{5.5370001044341226e+00, 4.9854564920792654e-13,
- 2.2204460492503131e-16, 1.9717560917342780e-13,
- 1.9828583219805296e-13}, /* L811 */
-{4.5338741481927247e+00, 4.0872860651575138e-13,
- 2.2204460492503131e-16, -2.0738966099997924e-13,
- 3.4550140526334872e-13}, /* L812 */
-{4.8130457239573561e+00, 4.3443026953582375e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 2.0272672429655358e-13}, /* L813 */
-{4.9133984152932504e+00, 4.4403369869883136e-13,
- 2.2204460492503131e-16, -1.6087131626818518e-13,
- 1.2234657731369225e-13}, /* L814 */
-{4.1546077817476785e+00, 3.7592151613807800e-13,
- 2.2204460492503131e-16, -3.3306690738754696e-15,
- -1.0957901253050295e-13}, /* L815 */
-{4.9277038529020718e+00, 4.4642067820177544e-13,
- 2.2204460492503131e-16, 3.9923619965520629e-13,
- -1.6608936448392342e-13}, /* L816 */
-{5.4997026793670667e+00, 4.9885096053969846e-13,
- 2.2204460492503131e-16, 1.4210854715202004e-14,
- -1.3100631690576847e-14}, /* L817 */
-{5.2817931741934734e+00, 4.7967185778929888e-13,
- 2.2204460492503131e-16, -1.0880185641326534e-13,
- -3.4028335704761048e-13}, /* L818 */
-{5.7347465324838574e+00, 5.2144399909082040e-13,
- 2.2204460492503131e-16, 3.1108449149996886e-13,
- -1.3189449532546860e-13}, /* L819 */
-{5.1417764048957615e+00, 4.6809778275758163e-13,
- 2.2204460492503131e-16, -4.3931525084417444e-13,
- -5.5289106626332796e-14}, /* L820 */
-{4.5548183920155232e+00, 4.1516790005857729e-13,
- 2.2204460492503131e-16, 1.6875389974302379e-14,
- -9.8032693074401323e-14}, /* L821 */
-{4.7548736818405821e+00, 4.3393066917474243e-13,
- 2.2204460492503131e-16, 3.3528735343679728e-13,
- -3.8913317013111737e-13}, /* L822 */
-{5.3341517936133371e+00, 4.8738790781044372e-13,
- 2.2204460492503131e-16, -4.4741987892393809e-14,
- -2.9598545836506673e-13}, /* L823 */
-{5.3513433943083077e+00, 4.8955284270846278e-13,
- 2.2204460492503131e-16, -3.0098146197587994e-13,
- -4.7628567756419216e-14}, /* L824 */
-{5.3090992852930707e+00, 4.8627768478581856e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- -1.1279865930191590e-13}, /* L825 */
-{4.4533968566604418e+00, 4.0839553960836383e-13,
- 2.2204460492503131e-16, -1.4588330543574557e-13,
- 2.3137047833188262e-13}, /* L826 */
-{4.8615554331083866e+00, 4.4636516705054419e-13,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- -9.9364960703951510e-14}, /* L827 */
-{5.1056843837739683e+00, 4.6934678366028493e-13,
- 2.2204460492503131e-16, 1.7541523789077473e-13,
- 5.4622972811557702e-14}, /* L828 */
-{4.5817321984315571e+00, 4.2169046032825008e-13,
- 2.2204460492503131e-16, 3.9663827777758343e-12,
- -4.9739101726231638e-12}, /* L829 */
-{4.6415735881025180e+00, 4.2771342023684156e-13,
- 2.2204460492503131e-16, -4.8738790781044372e-14,
- -4.0412118096355698e-14}, /* L830 */
-{5.2069877578137778e+00, 4.8039350275530524e-13,
- 2.2204460492503131e-16, 1.0746958878371515e-12,
- 6.8611782921834674e-13}, /* L831 */
-{4.3479635905821610e+00, 4.0162317915815038e-13,
- 2.2204460492503131e-16, 2.9087843245179101e-14,
- 1.6431300764452317e-13}, /* L832 */
-{3.9759966691154158e+00, 3.6770586575585185e-13,
- 2.2204460492503131e-16, -1.8351986597053838e-13,
- 7.9269923958236177e-14}, /* L833 */
-{5.8345415792881807e+00, 5.4023452378260117e-13,
- 2.2204460492503131e-16, 3.1619151741324458e-13,
- -1.1090017792980689e-12}, /* L834 */
-{5.5024038907601538e+00, 5.1009196866402817e-13,
- 2.2204460492503131e-16, -1.0658141036401503e-14,
- -2.6767477123712524e-13}, /* L835 */
-{4.2002159568538460e+00, 3.8984093730931590e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-14,
- 4.9071857688431919e-14}, /* L836 */
-{4.7019190072538635e+00, 4.3692827134123036e-13,
- 2.2204460492503131e-16, -3.8957725934096743e-13,
- 5.5511151231257827e-15}, /* L837 */
-{5.7917752475068651e+00, 5.3884674500181973e-13,
- 2.2204460492503131e-16, 6.6835426082434424e-14,
- -3.5460523406527500e-13}, /* L838 */
-{5.7026311663091764e+00, 5.3118620613190615e-13,
- 2.2204460492503131e-16, -5.6998850084255537e-13,
- 8.2533979650634137e-13}, /* L839 */
-{4.3009740475799454e+00, 4.0110276211535734e-13,
- 2.2204460492503131e-16, -1.0436096431476471e-14,
- -8.7485574340462335e-14}, /* L840 */
-{4.7895438228450029e+00, 4.4719783431901305e-13,
- 2.2204460492503131e-16, 3.8102854205135372e-13,
- -2.2692958623338200e-13}, /* L841 */
-{5.1165460771530942e+00, 4.7829795679632525e-13,
- 2.2204460492503131e-16, -2.9309887850104133e-13,
- 8.8817841970012523e-15}, /* L842 */
-{4.2704693709956913e+00, 3.9968028886505635e-13,
- 2.2204460492503131e-16, -6.4181993053580300e-13,
- 1.2010392680394943e-12}, /* L843 */
-{4.7553392560699752e+00, 4.4558801093330658e-13,
- 2.2204460492503131e-16, 1.3045120539345589e-12,
- -1.7938983631893279e-12}, /* L844 */
-{5.0692387670031964e+00, 4.7556403259818580e-13,
- 2.2204460492503131e-16, -1.1124434706744069e-13,
- 3.4594549447319878e-13}, /* L845 */
-{4.7641919136617652e+00, 4.4747539007516934e-13,
- 2.2204460492503131e-16, -1.9095836023552692e-13,
- -1.2823075934420558e-13}, /* L846 */
-{3.8834181693991439e+00, 3.6518010837482962e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- -1.0769163338864018e-13}, /* L847 */
-{4.7818471669928151e+00, 4.5019543648550098e-13,
- 2.2204460492503131e-16, 3.3906211172052281e-13,
- 1.4011014570769476e-13}, /* L848 */
-{5.1835697211448526e+00, 4.8859180590277163e-13,
- 2.2204460492503131e-16, 2.5179858198498550e-13,
- 5.1736392947532295e-14}, /* L849 */
-{5.0453020776530533e+00, 4.7611914411049838e-13,
- 2.2204460492503131e-16, 2.9154456626656611e-13,
- -5.9285909514983359e-14}, /* L850 */
-{6.3078830424419836e+00, 5.9596771961878403e-13,
- 2.2204460492503131e-16, 2.6207924719301445e-12,
- -1.5810686093686854e-12}, /* L851 */
-{4.7783599449544720e+00, 4.5198914055966100e-13,
- 2.2204460492503131e-16, 2.7844393457598926e-13,
- 2.5091040356528538e-13}, /* L852 */
-{6.3962586259992467e+00, 6.0573768223548541e-13,
- 2.2204460492503131e-16, 7.0610184366159956e-13,
- -4.5907722068250223e-13}, /* L853 */
-{4.6326185501298776e+00, 4.3923198411732756e-13,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- -1.4621637234313312e-13}, /* L854 */
-{4.5111182283042011e+00, 4.2821302059792288e-13,
- 2.2204460492503131e-16, -5.6765703249084254e-13,
- -3.9905856397126627e-12}, /* L855 */
-{3.9875939080766440e+00, 3.7896075166798937e-13,
- 2.2204460492503131e-16, -2.3381296898605797e-13,
- 1.2057022047429200e-13}, /* L856 */
-{5.4483749903387162e+00, 5.1839088577310122e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- -2.1649348980190553e-14}, /* L857 */
-{4.6381192056501135e+00, 4.4181325264958105e-13,
- 2.2204460492503131e-16, 2.1682655670929307e-12,
- 5.7835958244822905e-12}, /* L858 */
-{4.2122810927663012e+00, 4.0171685422585313e-13,
- 2.2204460492503131e-16, 4.8161474808239291e-13,
- -7.3585582072155375e-13}, /* L859 */
-{4.7781325382563082e+00, 4.5621145750018854e-13,
- 2.2204460492503131e-16, -1.1876832850532537e-11,
- -2.3637758417294208e-12}, /* L860 */
-{4.7061630579301248e+00, 4.4986236957811343e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- 6.8833827526759706e-15}, /* L861 */
-{5.1531403807240110e+00, 4.9316106753849454e-13,
- 2.2204460492503131e-16, -1.8074430840897548e-13,
- 4.2632564145606011e-14}, /* L862 */
-{4.7731825017151071e+00, 4.5732861941871761e-13,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- -8.0935258495173912e-14}, /* L863 */
-{5.4819964961985823e+00, 5.2585019671980149e-13,
- 2.2204460492503131e-16, -2.0983215165415459e-14,
- -5.5910831520122883e-13}, /* L864 */
-{4.8537648832477309e+00, 4.6612713688887197e-13,
- 2.2204460492503131e-16, -1.6164847238542279e-13,
- 2.4891200212096010e-13}, /* L865 */
-{4.2846487922526668e+00, 4.1194825328716433e-13,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 1.5365486660812167e-13}, /* L866 */
-{4.2494300030754353e+00, 4.0903391784752330e-13,
- 2.2204460492503131e-16, -5.8375526634790731e-13,
- -7.5239814378846859e-13}, /* L867 */
-{6.4954019529064215e+00, 6.2594374128366326e-13,
- 2.2204460492503131e-16, 3.7769787297747826e-13,
- -1.9773072068574038e-13}, /* L868 */
-{5.2054167281546535e+00, 5.0220938518918956e-13,
- 2.2204460492503131e-16, -1.0302869668521453e-13,
- 9.7699626167013776e-14}, /* L869 */
-{4.7260132033778168e+00, 4.5648207436244093e-13,
- 2.2204460492503131e-16, -3.8069547514396618e-13,
- 5.9441340738430881e-13}, /* L870 */
-{5.4477697890137229e+00, 5.2680082518463678e-13,
- 2.2204460492503131e-16, 6.2838623193783860e-14,
- 7.4829031859735551e-14}, /* L871 */
-{4.3807408564797656e+00, 4.2410519540680980e-13,
- 2.2204460492503131e-16, 5.3512749786932545e-14,
- 4.6629367034256575e-14}, /* L872 */
-{8.0333746445271892e+00, 7.7861328495743010e-13,
- 2.2204460492503131e-16, 2.0183854587685346e-13,
- 6.8833827526759706e-14}, /* L873 */
-{4.5955450078581439e+00, 4.4592107784069412e-13,
- 2.2204460492503131e-16, 7.1187500338965037e-13,
- 1.3766765505351941e-13}, /* L874 */
-{5.1914367619813655e+00, 5.0431880893597736e-13,
- 2.2204460492503131e-16, 7.1320727101920056e-13,
- 5.5178084323870280e-13}, /* L875 */
-{5.0211266433260064e+00, 4.8833159738137510e-13,
- 2.2204460492503131e-16, -4.3454129183828627e-13,
- -6.7945649107059580e-13}, /* L876 */
-{5.1795976815788993e+00, 5.0431880893597736e-13,
- 2.2204460492503131e-16, -7.6383344094210770e-14,
- 1.2745360322696797e-13}, /* L877 */
-{5.3957943899760386e+00, 5.2596815791616791e-13,
- 2.2204460492503131e-16, -2.4935609133081016e-13,
- -9.4591001698063337e-14}, /* L878 */
-{5.5330007658594180e+00, 5.3995696802644488e-13,
- 2.2204460492503131e-16, -2.7355895326763857e-13,
- 1.8429702208777599e-14}, /* L879 */
-{4.0579609477094554e+00, 3.9646064209364340e-13,
- 2.2204460492503131e-16, 2.0341506257182118e-12,
- 6.6346927951599355e-13}, /* L880 */
-{5.1080528944207337e+00, 4.9962117776303216e-13,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 1.5143442055887135e-13}, /* L881 */
-{5.0504614828636178e+00, 4.9454884631927598e-13,
- 2.2204460492503131e-16, -2.2259971643734389e-13,
- -1.0080825063596421e-12}, /* L882 */
-{5.0376282763159947e+00, 4.9385148748193330e-13,
- 2.2204460492503131e-16, -2.6556534749033744e-13,
- -1.2302381335871360e-12}, /* L883 */
-{6.0719835617102733e+00, 5.9592608625536059e-13,
- 2.2204460492503131e-16, -5.4845017416482733e-14,
- -1.6098233857064770e-13}, /* L884 */
-{4.5661088988967267e+00, 4.4864112425102576e-13,
- 2.2204460492503131e-16, 6.3060667798708891e-14,
- -9.5146113210375916e-14}, /* L885 */
-{5.1264189231924258e+00, 5.0426329778474610e-13,
- 2.2204460492503131e-16, 1.4122036873231991e-13,
- 4.4408920985006262e-13}, /* L886 */
-{4.8311801137291690e+00, 4.7575832162749521e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- 3.5971225997855072e-14}, /* L887 */
-{5.0023305273467260e+00, 4.9316800643239844e-13,
- 2.2204460492503131e-16, -7.3163697322797816e-14,
- -8.0047080075473787e-14}, /* L888 */
-{5.3436529751507411e+00, 5.2741144784818061e-13,
- 2.2204460492503131e-16, -8.2045481519799068e-14,
- -2.2093438190040615e-14}, /* L889 */
-{5.0803450939435288e+00, 5.0198734058426453e-13,
- 2.2204460492503131e-16, 1.2456702336294256e-13,
- -1.7563728249569976e-13}, /* L890 */
-{5.7867655832426728e+00, 5.7243099149673071e-13,
- 2.2204460492503131e-16, 1.6497914145929826e-13,
- -3.6759484345338933e-13}, /* L891 */
-{5.0459720866264757e+00, 4.9971138338378296e-13,
- 2.2204460492503131e-16, -1.0169642905566434e-13,
- -5.5067062021407764e-14}, /* L892 */
-{3.7732422352643904e+00, 3.7408964814744650e-13,
- 2.2204460492503131e-16, 8.7485574340462335e-14,
- 1.6253665080512292e-13}, /* L893 */
-{3.8557107811502651e+00, 3.8269387658829146e-13,
- 2.2204460492503131e-16, -6.7168492989821971e-13,
- 3.0999647293583621e-12}, /* L894 */
-{4.8941417997310337e+00, 4.8630544036143419e-13,
- 2.2204460492503131e-16, -8.4221518648064375e-13,
- 4.1877612488860905e-13}, /* L895 */
-{5.3091601620088635e+00, 5.2813309281418697e-13,
- 2.2204460492503131e-16, -2.7655655543412649e-13,
- -4.6807002718196600e-13}, /* L896 */
-{5.6036877707407404e+00, 5.5805360332783494e-13,
- 2.2204460492503131e-16, -3.7403413699621524e-13,
- -2.4047430713380891e-13}, /* L897 */
-{5.0935492387981292e+00, 5.0781601146354660e-13,
- 2.2204460492503131e-16, -1.9151347174783950e-13,
- 6.8345329395924637e-13}, /* L898 */
-{4.9941680573087410e+00, 4.9846238248107966e-13,
- 2.2204460492503131e-16, -2.8865798640254070e-15,
- 2.0894397323445446e-13}, /* L899 */
-{5.2479249463543054e+00, 5.2437221231826925e-13,
- 2.2204460492503131e-16, -9.8032693074401323e-14,
- -5.4511950509095186e-14}, /* L900 */
-{6.4334174752253475e+00, 6.4354077622397199e-13,
- 2.2204460492503131e-16, 1.0564882302332990e-12,
- 6.2438942904918804e-13}, /* L901 */
-{5.5105408447953010e+00, 5.5183635438993406e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -8.9928064994637680e-15}, /* L902 */
-{5.7815705834178832e+00, 5.7961968558117860e-13,
- 2.2204460492503131e-16, 2.2404300636935659e-13,
- -2.2903900998016979e-13}, /* L903 */
-{5.0735699515076345e+00, 5.0920379024432805e-13,
- 2.2204460492503131e-16, -9.0261131902025227e-14,
- 1.7164047960704920e-13}, /* L904 */
-{5.1243174769239204e+00, 5.1486592766991635e-13,
- 2.2204460492503131e-16, 1.1883827255587676e-12,
- -3.2529534621517087e-14}, /* L905 */
-{5.7042032600464605e+00, 5.7376325912628090e-13,
- 2.2204460492503131e-16, 6.7057470687359455e-14,
- 1.9140244944537699e-13}, /* L906 */
-{7.9085020032011561e+00, 7.9636297556362479e-13,
- 2.2204460492503131e-16, -2.2748469774569458e-13,
- -1.0583756093751617e-12}, /* L907 */
-{5.9866215045566049e+00, 6.0349988895147533e-13,
- 2.2204460492503131e-16, 8.2334139506201609e-13,
- -2.6733060209949144e-12}, /* L908 */
-{5.0269606263401201e+00, 5.0731641110246528e-13,
- 2.2204460492503131e-16, -4.4964032497318840e-14,
- 1.3766765505351941e-14}, /* L909 */
-{5.0571508358434993e+00, 5.1092463593249704e-13,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- -8.8262730457699945e-14}, /* L910 */
-{4.6578009819678412e+00, 4.7109538492406955e-13,
- 2.2204460492503131e-16, -3.7709835254418067e-12,
- -2.6927349239258547e-12}, /* L911 */
-{4.9418509299435724e+00, 5.0037318038986811e-13,
- 2.2204460492503131e-16, 6.2043703508152248e-12,
- -1.1513012765362873e-13}, /* L912 */
-{5.3269525445595871e+00, 5.3995696802644488e-13,
- 2.2204460492503131e-16, 4.2188474935755949e-14,
- 9.7988284153416316e-13}, /* L913 */
-{4.3704253854041566e+00, 4.4348552608042269e-13,
- 2.2204460492503131e-16, -7.9158901655773661e-14,
- -2.0317081350640365e-14}, /* L914 */
-{5.3016477087057581e+00, 5.3856918924566344e-13,
- 2.2204460492503131e-16, 4.3032244434471068e-13,
- -6.6280314570121845e-14}, /* L915 */
-{4.6331950827082871e+00, 4.7117865165091644e-13,
- 2.2204460492503131e-16, 6.8434147237894649e-13,
- -2.3229196344232150e-12}, /* L916 */
-{5.5850858290774354e+00, 5.6860245678524990e-13,
- 2.2204460492503131e-16, 1.2412293415309250e-13,
- -1.1879386363489175e-13}, /* L917 */
-{5.1256208313772262e+00, 5.2239462755565569e-13,
- 2.2204460492503131e-16, 1.8069323814984273e-11,
- 4.7904791244945955e-11}, /* L918 */
-{4.6823387257502853e+00, 4.7773590639010877e-13,
- 2.2204460492503131e-16, -9.7966079692923813e-13,
- -1.9341195311994852e-12}, /* L919 */
-{4.6608769187092136e+00, 4.7606363295926712e-13,
- 2.2204460492503131e-16, -4.2188474935755949e-14,
- -4.9293902293356950e-13}, /* L920 */
-{5.7622240747967304e+00, 5.8919535916857058e-13,
- 2.2204460492503131e-16, 3.3639757646142243e-13,
- -4.9971138338378296e-13}, /* L921 */
-{5.3168806769793102e+00, 5.4424867390601150e-13,
- 2.2204460492503131e-16, 3.8791192480402970e-13,
- 6.8722805224297190e-13}, /* L922 */
-{4.9003327583353053e+00, 5.0215387403795830e-13,
- 2.2204460492503131e-16, -2.5994761898573415e-12,
- -4.5610182297650681e-12}, /* L923 */
-{5.9302041612797449e+00, 6.0834670634335453e-13,
- 2.2204460492503131e-16, -3.2278624217951801e-12,
- -3.3436586832635840e-12}, /* L924 */
-{4.8729806611022930e+00, 5.0043302834978931e-13,
- 2.2204460492503131e-16, -7.2142292140142672e-13,
- 4.5297099404706387e-14}, /* L925 */
-{6.5748618850746823e+00, 6.7593847186131484e-13,
- 2.2204460492503131e-16, -5.5955240441107890e-13,
- -1.2490009027033011e-12}, /* L926 */
-{5.7907318976673112e+00, 5.9596771961878403e-13,
- 2.2204460492503131e-16, 3.2263081095607049e-13,
- 2.5890400934258651e-13}, /* L927 */
-{6.0727466499728093e+00, 6.2566618552750697e-13,
- 2.2204460492503131e-16, 4.8827608623014385e-13,
- -2.0972112935169207e-13}, /* L928 */
-{6.8167491832454781e+00, 7.0307648591949601e-13,
- 2.2204460492503131e-16, 6.7257310831791983e-13,
- -3.8491432263754177e-13}, /* L929 */
-{6.1474559353592975e+00, 6.3472838096600981e-13,
- 2.2204460492503131e-16, 5.1403326040144748e-13,
- -1.0658141036401503e-13}, /* L930 */
-{6.3525878957741710e+00, 6.5661365233893321e-13,
- 2.2204460492503131e-16, -1.3111733920823099e-13,
- -9.5368157815300947e-14}, /* L931 */
-{4.6384193351556906e+00, 4.7994941354545517e-13,
- 2.2204460492503131e-16, -2.2315482794965646e-13,
- 2.4091839634365897e-12}, /* L932 */
-{6.1291629390388778e+00, 6.3488103663189577e-13,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- -3.7148062403957738e-13}, /* L933 */
-{4.7973844425279433e+00, 4.9746318175891702e-13,
- 2.2204460492503131e-16, -1.6164847238542279e-13,
- -3.5405012255296242e-13}, /* L934 */
-{6.5486734334904559e+00, 6.7978955797798335e-13,
- 2.2204460492503131e-16, 2.7733371155136410e-13,
- 5.9063864910058328e-14}, /* L935 */
-{5.5470172985045467e+00, 5.7642779438538128e-13,
- 2.2204460492503131e-16, -1.8318679906315083e-12,
- 4.0059067174524898e-12}, /* L936 */
-{6.4535854219817965e+00, 6.7135186299083216e-13,
- 2.2204460492503131e-16, 2.2049029269055609e-13,
- -5.0848214527832170e-14}, /* L937 */
-{5.9349773806944279e+00, 6.1806115780882465e-13,
- 2.2204460492503131e-16, -1.2212453270876722e-12,
- 8.4598994476436928e-14}, /* L938 */
-{4.4046927853107611e+00, 4.5918824298496475e-13,
- 2.2204460492503131e-16, 4.7517545453956700e-14,
- -4.2299497238218464e-14}, /* L939 */
-{5.2441572099106732e+00, 5.4728443998897092e-13,
- 2.2204460492503131e-16, -2.2903900998016979e-13,
- -1.0724754417879012e-13}, /* L940 */
-{4.4181791278720688e+00, 4.6157522248790883e-13,
- 2.2204460492503131e-16, -1.6420198534206065e-13,
- 9.1704421834037930e-14}, /* L941 */
-{5.4732039641993913e+00, 5.7240323592111508e-13,
- 2.2204460492503131e-16, -1.1046719095020308e-13,
- -4.4297898682543746e-14}, /* L942 */
-{7.1183834470382976e+00, 7.4525108306744414e-13,
- 2.2204460492503131e-16, 1.7363888105137448e-13,
- 4.6340709047854034e-13}, /* L943 */
-{5.8453482052979471e+00, 6.1262106498816138e-13,
- 2.2204460492503131e-16, -4.0301095793893182e-14,
- 3.3750779948604759e-14}, /* L944 */
-{5.8486864761914772e+00, 6.1362026571032402e-13,
- 2.2204460492503131e-16, 2.4646951146678475e-14,
- -2.9976021664879227e-14}, /* L945 */
-{4.1709839395885986e+00, 4.3806624994147114e-13,
- 2.2204460492503131e-16, 5.9285909514983359e-14,
- -1.5543122344752192e-14}, /* L946 */
-{6.8859570574989064e+00, 7.2397643435806458e-13,
- 2.2204460492503131e-16, -2.9232172238380372e-13,
- -1.4199752484955752e-13}, /* L947 */
-{5.2456827709738061e+00, 5.5210350180523449e-13,
- 2.2204460492503131e-16, 4.1699976804920880e-13,
- 8.0602191587786365e-14}, /* L948 */
-{5.6865132808279393e+00, 5.9913185523896573e-13,
- 2.2204460492503131e-16, -2.8188562595232725e-13,
- 2.7533531010703882e-13}, /* L949 */
-{6.7689487525497594e+00, 7.1392891598520691e-13,
- 2.2204460492503131e-16, 2.4702462297909733e-12,
- -4.0235592635440298e-12}, /* L950 */
-{4.9969778882671276e+00, 5.2759185908968220e-13,
- 2.2204460492503131e-16, 2.3048229991218250e-13,
- 2.6867397195928788e-14}, /* L951 */
-{5.2805945672016206e+00, 5.5812299226687401e-13,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- -1.9162449405030202e-13}, /* L952 */
-{5.4611763528067394e+00, 5.7781557316616272e-13,
- 2.2204460492503131e-16, -1.6997514507011147e-12,
- 4.8627768478581856e-13}, /* L953 */
-{5.8294037077533707e+00, 6.1742277956966518e-13,
- 2.2204460492503131e-16, 4.1966430330830917e-14,
- 1.2723155862204294e-13}, /* L954 */
-{6.4602271063609980e+00, 6.8495382976596630e-13,
- 2.2204460492503131e-16, 1.4654943925052066e-14,
- -1.2283507544452732e-12}, /* L955 */
-{7.3182546345527815e+00, 7.7673978360337514e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 1.1568523916594131e-13}, /* L956 */
-{5.6447242472627996e+00, 5.9974247790250956e-13,
- 2.2204460492503131e-16, 7.9936057773011271e-14,
- 2.7133850721838826e-13}, /* L957 */
-{6.6291767209166297e+00, 7.0507488736382129e-13,
- 2.2204460492503131e-16, -6.3060667798708891e-14,
- -1.2900791546144319e-13}, /* L958 */
-{6.5980201187539018e+00, 7.0249361883156780e-13,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- 1.1257661469699087e-13}, /* L959 */
-{5.9520845504456830e+00, 6.3438143627081445e-13,
- 2.2204460492503131e-16, -1.5087930904655877e-13,
- -2.5979218776228663e-14}, /* L960 */
-{7.3251835998734283e+00, 7.8154149818487895e-13,
- 2.2204460492503131e-16, 9.1926466438962962e-14,
- 1.9895196601282805e-13}, /* L961 */
-{5.3077583618632573e+00, 5.6688681526750884e-13,
- 2.2204460492503131e-16, 3.6104452760810091e-13,
- 4.6451731350316550e-13}, /* L962 */
-{5.9620988307939671e+00, 6.3743454958853363e-13,
- 2.2204460492503131e-16, 2.3270274596143281e-13,
- 3.1330493754921918e-13}, /* L963 */
-{5.1810176569537196e+00, 5.5450088964903443e-13,
- 2.2204460492503131e-16, 1.5254464358349651e-13,
- -6.3504757008558954e-14}, /* L964 */
-{5.7981877141418821e+00, 6.2119753785339071e-13,
- 2.2204460492503131e-16, 1.0613732115416497e-13,
- -1.5321077739827160e-13}, /* L965 */
-{6.1261658489658863e+00, 6.5701610818535983e-13,
- 2.2204460492503131e-16, -6.8756111915035945e-13,
- 2.1049828546892968e-13}, /* L966 */
-{5.4353682262404250e+00, 5.8353322174298228e-13,
- 2.2204460492503131e-16, -1.5132339825640884e-13,
- -2.7100544031100071e-13}, /* L967 */
-{9.1983489883515226e+00, 9.8854258112623938e-13,
- 2.2204460492503131e-16, -1.2223555501122974e-13,
- 2.7533531010703882e-13}, /* L968 */
-{5.8462344256051386e+00, 6.2894134345015118e-13,
- 2.2204460492503131e-16, 1.9939605522267811e-13,
- -1.1868284133242923e-13}, /* L969 */
-{6.2854394296095002e+00, 6.7688910032615013e-13,
- 2.2204460492503131e-16, 5.2624571367232420e-14,
- -1.4999113062685865e-13}, /* L970 */
-{6.0468601448327508e+00, 6.5186744890866066e-13,
- 2.2204460492503131e-16, -9.8476782284251385e-14,
- 7.8870243669371121e-13}, /* L971 */
-{6.9143211155252908e+00, 7.4614966982800013e-13,
- 2.2204460492503131e-16, -4.4853010194856324e-14,
- -1.8884893648873913e-13}, /* L972 */
-{6.5801657854261402e+00, 7.1082029151625648e-13,
- 2.2204460492503131e-16, 3.8524738954492932e-13,
- -1.0447198661722723e-13}, /* L973 */
-{5.3883481244267646e+00, 5.8267279889889778e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- 2.6001423236721166e-13}, /* L974 */
-{6.6015398114541073e+00, 7.1459504979998201e-13,
- 2.2204460492503131e-16, -2.6734170432973769e-13,
- 4.0190073491430667e-14}, /* L975 */
-{5.5276650647539700e+00, 5.9896532178527195e-13,
- 2.2204460492503131e-16, 1.9806378759312793e-13,
- -2.6656454821250009e-13}, /* L976 */
-{5.7579336236795946e+00, 6.2455596250288181e-13,
- 2.2204460492503131e-16, -4.0523140398818214e-14,
- -2.2670754162845697e-13}, /* L977 */
-{4.9907985665539893e+00, 5.4189985831953891e-13,
- 2.2204460492503131e-16, 5.5067062021407764e-13,
- -1.4654943925052066e-14}, /* L978 */
-{5.9683362561872331e+00, 6.4870331328847897e-13,
- 2.2204460492503131e-16, -1.7652546091539989e-13,
- -7.4140693584467954e-13}, /* L979 */
-{5.4056133502649741e+00, 5.8814064729517668e-13,
- 2.2204460492503131e-16, 4.8672177399566863e-13,
- -4.0156766800691912e-13}, /* L980 */
-{6.0662601599189845e+00, 6.6069372195443066e-13,
- 2.2204460492503131e-16, -2.5757174171303632e-13,
- 9.5257135512838431e-13}, /* L981 */
-{5.3495428454239171e+00, 5.8322791041121036e-13,
- 2.2204460492503131e-16, 3.7658764995285310e-13,
- 7.2386541205560206e-13}, /* L982 */
-{6.3723309063059492e+00, 6.9544370262519806e-13,
- 2.2204460492503131e-16, 2.1049828546892968e-13,
- -1.0502709812953981e-13}, /* L983 */
-{5.8226637922701112e+00, 6.3610228195898344e-13,
- 2.2204460492503131e-16, -5.0404125317982107e-13,
- 4.6695980415734084e-13}, /* L984 */
-{6.0355342290971361e+00, 6.6002758813965556e-13,
- 2.2204460492503131e-16, -7.0354833070496170e-13,
- 2.5490720645393594e-13}, /* L985 */
-{5.1888955843821938e+00, 5.6801785497384571e-13,
- 2.2204460492503131e-16, -1.4921397450962104e-13,
- -1.4621637234313312e-13}, /* L986 */
-{5.3571439526035585e+00, 5.8703042427055152e-13,
- 2.2204460492503131e-16, 2.7977620220553945e-14,
- 6.5947247662734299e-14}, /* L987 */
-{6.4304162946847052e+00, 7.0535244311997758e-13,
- 2.2204460492503131e-16, 1.0791367799356522e-13,
- -4.0412118096355698e-14}, /* L988 */
-{6.1162803204564069e+00, 6.7157390759575719e-13,
- 2.2204460492503131e-16, -5.6543658644159223e-13,
- 8.7552187721939845e-13}, /* L989 */
-{5.6136375115415733e+00, 6.1700644593543075e-13,
- 2.2204460492503131e-16, -7.6161299489285739e-14,
- -6.0662586065518553e-13}, /* L990 */
-{6.1548953050043078e+00, 6.7718053387011423e-13,
- 2.2204460492503131e-16, -6.8500760619372159e-14,
- -5.5200288784362783e-13}, /* L991 */
-{6.7769671115966696e+00, 7.4637518387987711e-13,
- 2.2204460492503131e-16, 7.6383344094210770e-14,
- 8.0380146982861334e-14}, /* L992 */
-{5.2613303809778529e+00, 5.8003601921541303e-13,
- 2.2204460492503131e-16, 2.6638691252856006e-12,
- -7.8814732518139863e-13}, /* L993 */
-{6.2852125528194076e+00, 6.9361183463456655e-13,
- 2.2204460492503131e-16, -1.1439738045737613e-12,
- 5.9574567501385900e-13}, /* L994 */
-{5.5080413273167155e+00, 6.0845772864581704e-13,
- 2.2204460492503131e-16, 4.9005244306954410e-13,
- 3.5771385853422544e-13}, /* L995 */
-{6.1227422158686249e+00, 6.7704175599203609e-13,
- 2.2204460492503131e-16, -8.7485574340462335e-14,
- -8.6930462828149757e-14}, /* L996 */
-{6.7582762064443278e+00, 7.4806827399243048e-13,
- 2.2204460492503131e-16, -1.4777068457760834e-13,
- -2.9420910152566648e-14}, /* L997 */
-{5.5118999246957978e+00, 6.1071980805849080e-13,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- -6.4281913125796564e-14}, /* L998 */
-{6.0833658585453234e+00, 6.7471375708727521e-13,
- 2.2204460492503131e-16, 5.0848214527832170e-14,
- 2.8155255904493970e-13}, /* L999 */
-{5.7175011691447981e+00, 6.3477001432943325e-13,
- 2.2204460492503131e-16, 3.9301895071730542e-14,
- 2.3980817331903381e-14}, /* L1000 */
-{1.2663751815298195e+01, 2.8119173656193652e-12,
- 2.2204460492503131e-16, 4.7941650649363510e-12,
- -2.3560042805570447e-12}, /* L1001 */
-{1.3541000004080869e+01, 4.5100589929347734e-12,
- 2.2204460492503131e-16, -2.3664403769885212e-11,
- 3.7654324103186809e-12}, /* L1002 */
-{1.8465886461451269e+01, 8.2333029283176984e-12,
- 2.2204460492503131e-16, 1.5074608228360376e-12,
- -2.5605073616929985e-12}, /* L1003 */
-{2.5256800008829348e+01, 1.4020340444176327e-11,
- 2.2204460492503131e-16, -6.6046057511925937e-12,
- -6.8210992409944993e-12}, /* L1004 */
-{3.0103083344046357e+01, 2.0052681737325884e-11,
- 2.2204460492503131e-16, 1.2493117651501962e-11,
- 1.1880940675723650e-11}, /* L1005 */
-{2.8984250294938665e+01, 2.2576773783811177e-11,
- 2.2204460492503131e-16, -1.7518320127862808e-11,
- -1.7247314687551807e-11}, /* L1006 */
-{3.9639656473114961e+01, 3.5356717553725048e-11,
- 2.2204460492503131e-16, 1.3578249635770590e-11,
- 4.4810821719920568e-12}, /* L1007 */
-{4.9513833207060770e+01, 4.9474258023707307e-11,
- 2.2204460492503131e-16, -5.3186011150785362e-11,
- 5.7351323690113531e-10}, /* L1008 */
-{4.2976650009945132e+01, 4.7713666351256734e-11,
- 2.2204460492503131e-16, -3.9288461373132577e-11,
- 1.9730883593638282e-11}, /* L1009 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1011 */
-}; /* Double */
-
-#else
-
-
-static struct LinpVals LinpValsA[] = {
-/* SINGLE */
-
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L0 */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L3 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L4 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L5 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L6 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L7 */
-{2.2189640998840332e-01, 1.0430812835693359e-07,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -3.5762786865234375e-07}, /* L8 */
-{3.6630606651306152e-01, 1.9371509552001953e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -3.5762786865234375e-07}, /* L9 */
-{4.0575447678565979e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L10 */
-{2.8817784786224365e-01, 1.8626451492309570e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.1920928955078125e-07}, /* L11 */
-{3.1171223521232605e-01, 2.1979212760925293e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -2.3841857910156250e-07}, /* L12 */
-{3.1945201754570007e-01, 2.4586915969848633e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -7.1525573730468750e-07}, /* L13 */
-{5.7529002428054810e-01, 4.7683715820312500e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -4.7683715820312500e-07}, /* L14 */
-{4.1109275817871094e-01, 3.6507844924926758e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 2.3841857910156250e-07}, /* L15 */
-{5.6630027294158936e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- -2.3841857910156250e-07}, /* L16 */
-{2.6649358868598938e-01, 2.6822090148925781e-07,
- 1.1920928955078125e-07, 4.6491622924804688e-06,
- -4.1723251342773438e-07}, /* L17 */
-{5.5057054758071899e-01, 5.8673322200775146e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- 2.3841857910156250e-07}, /* L18 */
-{5.6961244344711304e-01, 6.4074993133544922e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -1.0728836059570312e-06}, /* L19 */
-{5.9146845340728760e-01, 7.0035457611083984e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -8.9406967163085938e-07}, /* L20 */
-{7.7999979257583618e-01, 9.7369775176048279e-07,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -1.4305114746093750e-06}, /* L21 */
-{5.8111280202865601e-01, 7.5995922088623047e-07,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -3.5762786865234375e-07}, /* L22 */
-{3.8146379590034485e-01, 5.2154064178466797e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -2.9802322387695312e-07}, /* L23 */
-{7.7291780710220337e-01, 1.1026859283447266e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -2.3841857910156250e-07}, /* L24 */
-{5.6151247024536133e-01, 8.3446502685546875e-07,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- 5.9604644775390625e-07}, /* L25 */
-{5.5776882171630859e-01, 8.6205545812845230e-07,
- 1.1920928955078125e-07, -2.6226043701171875e-06,
- -1.1920928955078125e-06}, /* L26 */
-{7.6131069660186768e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 8.3446502685546875e-07}, /* L27 */
-{7.6993095874786377e-01, 1.2814998626708984e-06,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- -3.5762786865234375e-06}, /* L28 */
-{1.1237185001373291e+00, 1.9371509552001953e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.5497207641601562e-06}, /* L29 */
-{6.6846847534179688e-01, 1.1920928955078125e-06,
- 1.1920928955078125e-07, -1.0132789611816406e-06,
- -1.1920928955078125e-07}, /* L30 */
-{5.5795443058013916e-01, 1.0281801223754883e-06,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- -2.9206275939941406e-06}, /* L31 */
-{6.4430630207061768e-01, 1.2256205081939697e-06,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 1.1801719665527344e-05}, /* L32 */
-{6.9885289669036865e-01, 1.3709068298339844e-06,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -3.1590461730957031e-06}, /* L33 */
-{8.4050089120864868e-01, 1.6987323760986328e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.1920928955078125e-06}, /* L34 */
-{1.3582198619842529e+00, 2.8312206268310547e-06,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 2.1457672119140625e-06}, /* L35 */
-{6.1158120632171631e-01, 1.3113021850585938e-06,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- -2.1457672119140625e-05}, /* L36 */
-{6.2211459875106812e-01, 1.3709068298339844e-06,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -1.9073486328125000e-06}, /* L37 */
-{7.2425973415374756e-01, 1.6391277313232422e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -3.5762786865234375e-07}, /* L38 */
-{5.7096558809280396e-01, 1.3262033462524414e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -1.3709068298339844e-06}, /* L39 */
-{8.1304115056991577e-01, 1.9371509552001953e-06,
- 1.1920928955078125e-07, -4.1902065277099609e-05,
- 1.0061264038085938e-04}, /* L40 */
-{1.2692545652389526e+00, 3.0994415283203125e-06,
- 1.1920928955078125e-07, -1.9133090972900391e-05,
- -1.8656253814697266e-05}, /* L41 */
-{5.8378452062606812e-01, 1.4603137969970703e-06,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- 3.0994415283203125e-06}, /* L42 */
-{7.3895734548568726e-01, 1.8924474716186523e-06,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -2.9802322387695312e-07}, /* L43 */
-{7.2216004133224487e-01, 1.8924474716186523e-06,
- 1.1920928955078125e-07, -4.5895576477050781e-06,
- 1.7881393432617188e-06}, /* L44 */
-{7.6727581024169922e-01, 2.0563602447509766e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -2.0861625671386719e-06}, /* L45 */
-{7.7235138416290283e-01, 2.1159648895263672e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -7.7486038208007812e-07}, /* L46 */
-{8.6759459972381592e-01, 2.4288892745971680e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-06,
- 5.9604644775390625e-07}, /* L47 */
-{6.5676969289779663e-01, 1.8775463104248047e-06,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- -8.3446502685546875e-07}, /* L48 */
-{8.3673852682113647e-01, 2.4437904357910156e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -1.7285346984863281e-06}, /* L49 */
-{8.3000296354293823e-01, 2.4735927581787109e-06,
- 1.1920928955078125e-07, -1.2516975402832031e-06,
- -3.1590461730957031e-06}, /* L50 */
-{9.0191948413848877e-01, 2.7418136596679688e-06,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- 1.6808509826660156e-05}, /* L51 */
-{1.1153945922851562e+00, 3.4570693969726562e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -4.8875808715820312e-06}, /* L52 */
-{1.0424662828445435e+00, 3.2931566238403320e-06,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.0132789611816406e-06}, /* L53 */
-{9.4445270299911499e-01, 3.0398368835449219e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.3709068298339844e-06}, /* L54 */
-{1.1545555591583252e+00, 3.7848949432373047e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- 2.7418136596679688e-06}, /* L55 */
-{6.6518044471740723e-01, 2.2202730178833008e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -4.8279762268066406e-06}, /* L56 */
-{7.7193790674209595e-01, 2.6226043701171875e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- -3.8146972656250000e-06}, /* L57 */
-{7.5852060317993164e-01, 2.6226043701171875e-06,
- 1.1920928955078125e-07, -7.0750713348388672e-05,
- -4.1961669921875000e-05}, /* L58 */
-{9.6611219644546509e-01, 3.3974647521972656e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -3.0994415283203125e-06}, /* L59 */
-{8.5834288597106934e-01, 3.0696392059326172e-06,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 2.0265579223632812e-06}, /* L60 */
-{7.5407338142395020e-01, 2.7418136596679688e-06,
- 1.1920928955078125e-07, -2.2351741790771484e-05,
- -3.4928321838378906e-05}, /* L61 */
-{1.2500104904174805e+00, 4.6193599700927734e-06,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- 2.3841857910156250e-06}, /* L62 */
-{1.1150785684585571e+00, 4.1872262954711914e-06,
- 1.1920928955078125e-07, -9.5367431640625000e-07,
- 2.9802322387695312e-06}, /* L63 */
-{8.9844626188278198e-01, 3.4272670745849609e-06,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- -4.7683715820312500e-06}, /* L64 */
-{9.6923863887786865e-01, 3.7550926208496094e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -1.9073486328125000e-06}, /* L65 */
-{8.0303579568862915e-01, 3.1590461730957031e-06,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- 8.3446502685546875e-07}, /* L66 */
-{1.0858224630355835e+00, 4.3362379074096680e-06,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -2.2649765014648438e-06}, /* L67 */
-{7.9044908285140991e-01, 3.2037496566772461e-06,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -1.4901161193847656e-06}, /* L68 */
-{6.7744588851928711e-01, 2.7865171432495117e-06,
- 1.1920928955078125e-07, -5.8114528656005859e-05,
- -1.5032291412353516e-04}, /* L69 */
-{9.1071319580078125e-01, 3.7997961044311523e-06,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 3.2186508178710938e-06}, /* L70 */
-{1.1448168754577637e+00, 4.8447400331497192e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -9.5367431640625000e-07}, /* L71 */
-{9.1666764020919800e-01, 3.9339065551757812e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- -8.2254409790039062e-06}, /* L72 */
-{9.5548504590988159e-01, 4.1574239730834961e-06,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- 1.7881393432617188e-06}, /* L73 */
-{1.1621736288070679e+00, 5.1259994506835938e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -9.5367431640625000e-07}, /* L74 */
-{1.7633385658264160e+00, 7.8827142715454102e-06,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- -3.3974647521972656e-06}, /* L75 */
-{8.7169545888900757e-01, 3.9488077163696289e-06,
- 1.1920928955078125e-07, -1.2576580047607422e-05,
- -1.3709068298339844e-05}, /* L76 */
-{1.4350712299346924e+00, 6.5863132476806641e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 0.0000000000000000e+00}, /* L77 */
-{1.2820539474487305e+00, 5.9604644775390625e-06,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- -5.0663948059082031e-06}, /* L78 */
-{1.0696300268173218e+00, 5.0365924835205078e-06,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -9.5367431640625000e-07}, /* L79 */
-{7.4274194240570068e-01, 3.5464763641357422e-06,
- 1.1920928955078125e-07, -6.0003995895385742e-04,
- -1.8072128295898438e-04}, /* L80 */
-{7.5308203697204590e-01, 3.6358833312988281e-06,
- 1.1920928955078125e-07, -4.8279762268066406e-06,
- 3.9339065551757812e-06}, /* L81 */
-{1.3140288591384888e+00, 6.4224004745483398e-06,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- -8.1062316894531250e-06}, /* L82 */
-{1.1445879936218262e+00, 5.6624412536621094e-06,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- -1.2516975402832031e-06}, /* L83 */
-{9.4940656423568726e-01, 4.7534704208374023e-06,
- 1.1920928955078125e-07, -1.4543533325195312e-05,
- 2.7418136596679688e-06}, /* L84 */
-{1.0528759956359863e+00, 5.3346157073974609e-06,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- 4.6491622924804688e-06}, /* L85 */
-{1.3546587228775024e+00, 6.9439411163330078e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- 0.0000000000000000e+00}, /* L86 */
-{8.7068307399749756e-01, 4.5150518417358398e-06,
- 1.1920928955078125e-07, -1.5258789062500000e-05,
- -6.9141387939453125e-06}, /* L87 */
-{1.0113493204116821e+00, 5.3048133850097656e-06,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -3.7550926208496094e-06}, /* L88 */
-{1.3188291788101196e+00, 6.9960951805114746e-06,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- -3.5762786865234375e-07}, /* L89 */
-{1.1166691780090332e+00, 5.9902667999267578e-06,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- 4.6491622924804688e-06}, /* L90 */
-{9.3458819389343262e-01, 5.0691887736320496e-06,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -2.3841857910156250e-07}, /* L91 */
-{9.8370236158370972e-01, 5.3942203521728516e-06,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- -2.3245811462402344e-06}, /* L92 */
-{1.0914074182510376e+00, 6.0498714447021484e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-06,
- -2.3841857910156250e-07}, /* L93 */
-{1.1436041593551636e+00, 6.4074993133544922e-06,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -2.8014183044433594e-06}, /* L94 */
-{1.0499954223632812e+00, 5.9455633163452148e-06,
- 1.1920928955078125e-07, -1.1563301086425781e-05,
- 4.2915344238281250e-06}, /* L95 */
-{9.6380722522735596e-01, 5.5150012485682964e-06,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- 2.1457672119140625e-06}, /* L96 */
-{1.1907181739807129e+00, 6.8843364715576172e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 6.5565109252929688e-06}, /* L97 */
-{1.0969462394714355e+00, 6.4074993133544922e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -4.0531158447265625e-06}, /* L98 */
-{1.4241938591003418e+00, 8.4042549133300781e-06,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- 9.8943710327148438e-06}, /* L99 */
-{1.0949985980987549e+00, 6.5267086029052734e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -1.8477439880371094e-06}, /* L100 */
-{1.5829229354858398e+00, 9.5292925834655762e-06,
- 1.1920928955078125e-07, -9.2983245849609375e-06,
- -5.9008598327636719e-06}, /* L101 */
-{9.9816024303436279e-01, 6.0684978961944580e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- 2.0265579223632812e-06}, /* L102 */
-{1.1844638586044312e+00, 7.2717666625976562e-06,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- 7.9870223999023438e-06}, /* L103 */
-{1.2548104524612427e+00, 7.7784061431884766e-06,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- -2.5629997253417969e-06}, /* L104 */
-{1.1594960689544678e+00, 7.2568655014038086e-06,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- 4.2915344238281250e-06}, /* L105 */
-{1.3490117788314819e+00, 8.5234642028808594e-06,
- 1.1920928955078125e-07, -1.1265277862548828e-05,
- 1.5139579772949219e-05}, /* L106 */
-{1.1635591983795166e+00, 7.4207782745361328e-06,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -5.1259994506835938e-06}, /* L107 */
-{7.7776497602462769e-01, 5.0067901611328125e-06,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -2.0265579223632812e-06}, /* L108 */
-{9.7821879386901855e-01, 6.3553452491760254e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -3.1590461730957031e-06}, /* L109 */
-{9.9545836448669434e-01, 6.5267086029052734e-06,
- 1.1920928955078125e-07, -4.8279762268066406e-06,
- 3.3378601074218750e-06}, /* L110 */
-{1.8997472524642944e+00, 1.2569129467010498e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- 1.7166137695312500e-05}, /* L111 */
-{9.6429288387298584e-01, 6.4373016357421875e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- -1.7881393432617188e-07}, /* L112 */
-{1.6747868061065674e+00, 1.1280179023742676e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- -5.9008598327636719e-06}, /* L113 */
-{1.2127261161804199e+00, 8.2403421401977539e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- 5.1259994506835938e-06}, /* L114 */
-{1.3608702421188354e+00, 9.3281269073486328e-06,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -5.3644180297851562e-07}, /* L115 */
-{1.1637883186340332e+00, 8.0466270446777344e-06,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 5.9604644775390625e-06}, /* L116 */
-{1.5041579008102417e+00, 1.0490417480468750e-05,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- 2.9563903808593750e-05}, /* L117 */
-{1.1387661695480347e+00, 8.0168247222900391e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- -9.9283456802368164e-04}, /* L118 */
-{1.5546188354492188e+00, 1.1026859283447266e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 2.7418136596679688e-06}, /* L119 */
-{1.7791683673858643e+00, 1.2725591659545898e-05,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- 5.8412551879882812e-06}, /* L120 */
-{1.3037217855453491e+00, 9.4026327133178711e-06,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 6.5565109252929688e-06}, /* L121 */
-{1.3483450412750244e+00, 9.8049640655517578e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -6.6161155700683594e-06}, /* L122 */
-{8.9426171779632568e-01, 6.5565109252929688e-06,
- 1.1920928955078125e-07, 1.5616416931152344e-05,
- 5.9604644775390625e-06}, /* L123 */
-{1.2792242765426636e+00, 9.4547867774963379e-06,
- 1.1920928955078125e-07, -8.9406967163085938e-07,
- 6.1988830566406250e-06}, /* L124 */
-{1.1239743232727051e+00, 8.3744525909423828e-06,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- -1.3470649719238281e-05}, /* L125 */
-{1.5019747018814087e+00, 1.1280179023742676e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- 7.1525573730468750e-06}, /* L126 */
-{1.1096799373626709e+00, 8.4042549133300781e-06,
- 1.1920928955078125e-07, -2.2351741790771484e-05,
- -2.1302700042724609e-04}, /* L127 */
-{1.2539020776748657e+00, 9.5665454864501953e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -7.1525573730468750e-07}, /* L128 */
-{1.2248177528381348e+00, 9.4175338745117188e-06,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- 1.5497207641601562e-06}, /* L129 */
-{1.4442204236984253e+00, 1.1190772056579590e-05,
- 1.1920928955078125e-07, -1.3470649719238281e-05,
- -1.6450881958007812e-05}, /* L130 */
-{1.6558032035827637e+00, 1.2930482625961304e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- -3.7312507629394531e-05}, /* L131 */
-{1.4639582633972168e+00, 1.1518597602844238e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-05,
- 8.3446502685546875e-06}, /* L132 */
-{1.5187774896621704e+00, 1.2040138244628906e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- -9.5367431640625000e-06}, /* L133 */
-{1.0839569568634033e+00, 8.6575746536254883e-06,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 6.3180923461914062e-06}, /* L134 */
-{1.3231586217880249e+00, 1.0646879673004150e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -3.4570693969726562e-06}, /* L135 */
-{1.1139441728591919e+00, 9.0301036834716797e-06,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- 5.0067901611328125e-06}, /* L136 */
-{1.3065693378448486e+00, 1.0669231414794922e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 3.0994415283203125e-06}, /* L137 */
-{1.9383929967880249e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, 1.0609626770019531e-05,
- 1.9788742065429688e-05}, /* L138 */
-{1.7117853164672852e+00, 1.4182180166244507e-05,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- -5.3644180297851562e-07}, /* L139 */
-{1.5460164546966553e+00, 1.2904405593872070e-05,
- 1.1920928955078125e-07, 6.3300132751464844e-05,
- 7.5697898864746094e-05}, /* L140 */
-{1.7052301168441772e+00, 1.4331191778182983e-05,
- 1.1920928955078125e-07, -2.8610229492187500e-06,
- -5.1856040954589844e-06}, /* L141 */
-{1.3890877962112427e+00, 1.1757016181945801e-05,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 2.3841857910156250e-06}, /* L142 */
-{1.2010275125503540e+00, 1.0237097740173340e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- 9.1791152954101562e-06}, /* L143 */
-{1.0867848396301270e+00, 9.3281269073486328e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -1.1503696441650391e-05}, /* L144 */
-{1.3249622583389282e+00, 1.1451542377471924e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- -9.5367431640625000e-07}, /* L145 */
-{1.5822976827621460e+00, 1.3769604265689850e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-06,
- -6.9141387939453125e-06}, /* L146 */
-{1.5646312236785889e+00, 1.3709068298339844e-05,
- 1.1920928955078125e-07, -5.6624412536621094e-06,
- -5.9604644775390625e-07}, /* L147 */
-{1.3141894340515137e+00, 1.1593103408813477e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- -3.7550926208496094e-06}, /* L148 */
-{1.4244635105133057e+00, 1.2651085853576660e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -6.1392784118652344e-06}, /* L149 */
-{1.7914862632751465e+00, 1.6018748283386230e-05,
- 1.1920928955078125e-07, 1.0132789611816406e-05,
- 3.2901763916015625e-05}, /* L150 */
-{1.0993409156799316e+00, 9.8943710327148438e-06,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- 4.6491622924804688e-06}, /* L151 */
-{1.3019963502883911e+00, 1.1796131730079651e-05,
- 1.1920928955078125e-07, -1.1742115020751953e-05,
- 2.3007392883300781e-05}, /* L152 */
-{1.3398001194000244e+00, 1.2218952178955078e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- -2.4020671844482422e-05}, /* L153 */
-{1.6265758275985718e+00, 1.4930963516235352e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- 1.9907951354980469e-05}, /* L154 */
-{2.2193210124969482e+00, 2.0503997802734375e-05,
- 1.1920928955078125e-07, -8.1062316894531250e-06,
- 8.1062316894531250e-06}, /* L155 */
-{1.7852593660354614e+00, 1.6599893569946289e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- 5.1259994506835938e-06}, /* L156 */
-{1.3853526115417480e+00, 1.2964010238647461e-05,
- 1.1920928955078125e-07, -7.5101852416992188e-06,
- -1.3649463653564453e-05}, /* L157 */
-{1.3322532176971436e+00, 1.2546777725219727e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- 9.5367431640625000e-07}, /* L158 */
-{1.3788979053497314e+00, 1.3068318367004395e-05,
- 1.1920928955078125e-07, -1.4901161193847656e-05,
- 1.5139579772949219e-05}, /* L159 */
-{1.4453047513961792e+00, 1.3783574104309082e-05,
- 1.1920928955078125e-07, -8.4042549133300781e-06,
- -7.9274177551269531e-06}, /* L160 */
-{1.1987112760543823e+00, 1.1503696441650391e-05,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- -2.6822090148925781e-06}, /* L161 */
-{2.2160046100616455e+00, 2.1398067474365234e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -5.9604644775390625e-08}, /* L162 */
-{1.6211035251617432e+00, 1.5750527381896973e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-05,
- -9.8347663879394531e-06}, /* L163 */
-{1.5213465690612793e+00, 1.4871358871459961e-05,
- 1.1920928955078125e-07, -2.2649765014648438e-06,
- -2.6822090148925781e-06}, /* L164 */
-{9.3029785156250000e-01, 9.1493129730224609e-06,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- -1.4305114746093750e-06}, /* L165 */
-{1.7770569324493408e+00, 1.7583370208740234e-05,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -7.1525573730468750e-06}, /* L166 */
-{2.7484865188598633e+00, 2.7358531951904297e-05,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- 1.5497207641601562e-06}, /* L167 */
-{1.8256701231002808e+00, 1.8283724784851074e-05,
- 1.1920928955078125e-07, 4.0411949157714844e-05,
- -2.0444393157958984e-05}, /* L168 */
-{1.2751148939132690e+00, 1.2844800949096680e-05,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- 6.6757202148437500e-06}, /* L169 */
-{1.2080430984497070e+00, 1.2241303920745850e-05,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- 1.1920928955078125e-06}, /* L170 */
-{1.6344949007034302e+00, 1.6659498214721680e-05,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- -6.7353248596191406e-06}, /* L171 */
-{1.2437934875488281e+00, 1.2751668691635132e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 2.5033950805664062e-06}, /* L172 */
-{1.3901654481887817e+00, 1.4334917068481445e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -8.3446502685546875e-07}, /* L173 */
-{1.4759663343429565e+00, 1.5318393707275391e-05,
- 1.1920928955078125e-07, 1.7297267913818359e-04,
- -1.4179944992065430e-04}, /* L174 */
-{1.7314062118530273e+00, 1.8060207366943359e-05,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- 8.9406967163085938e-06}, /* L175 */
-{2.0251193046569824e+00, 2.1249055862426758e-05,
- 1.1920928955078125e-07, -3.2663345336914062e-05,
- 1.9311904907226562e-05}, /* L176 */
-{1.4208809137344360e+00, 1.4990568161010742e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -2.5033950805664062e-06}, /* L177 */
-{1.3735564947128296e+00, 1.4573335647583008e-05,
- 1.1920928955078125e-07, -4.2319297790527344e-06,
- -1.4901161193847656e-06}, /* L178 */
-{1.4944077730178833e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, -1.8477439880371094e-06,
- -1.5377998352050781e-05}, /* L179 */
-{1.4609329700469971e+00, 1.5676021575927734e-05,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- -5.4121017456054688e-05}, /* L180 */
-{1.5565155744552612e+00, 1.6793608665466309e-05,
- 1.1920928955078125e-07, 2.6822090148925781e-05,
- 1.5735626220703125e-05}, /* L181 */
-{1.8710874319076538e+00, 2.0299106836318970e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -6.8545341491699219e-06}, /* L182 */
-{1.5281776189804077e+00, 1.6668811440467834e-05,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- -1.9073486328125000e-06}, /* L183 */
-{1.3851374387741089e+00, 1.5191733837127686e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-06,
- 2.3722648620605469e-05}, /* L184 */
-{1.8832707405090332e+00, 2.0772218704223633e-05,
- 1.1920928955078125e-07, -1.5079975128173828e-04,
- 6.3061714172363281e-05}, /* L185 */
-{1.3277161121368408e+00, 1.4722347259521484e-05,
- 1.1920928955078125e-07, 8.9526176452636719e-05,
- 4.1842460632324219e-05}, /* L186 */
-{1.4732117652893066e+00, 1.6421079635620117e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- -1.4305114746093750e-05}, /* L187 */
-{1.9066803455352783e+00, 2.1368265151977539e-05,
- 1.1920928955078125e-07, 3.6597251892089844e-05,
- 2.4199485778808594e-05}, /* L188 */
-{1.3306343555450439e+00, 1.4990568161010742e-05,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- 5.9604644775390625e-06}, /* L189 */
-{1.3992812633514404e+00, 1.5847384929656982e-05,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- -2.2470951080322266e-05}, /* L190 */
-{1.6347910165786743e+00, 1.8611550331115723e-05,
- 1.1920928955078125e-07, -1.1682510375976562e-05,
- 9.1791152954101562e-06}, /* L191 */
-{2.1333692073822021e+00, 2.4415552616119385e-05,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -1.8358230590820312e-05}, /* L192 */
-{1.5025627613067627e+00, 1.7285346984863281e-05,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -7.1525573730468750e-06}, /* L193 */
-{2.8878440856933594e+00, 3.3393502235412598e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -1.0132789611816406e-06}, /* L194 */
-{1.5371786355972290e+00, 1.7866492271423340e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-06,
- 8.8214874267578125e-06}, /* L195 */
-{1.3603134155273438e+00, 1.5892437659204006e-05,
- 1.1920928955078125e-07, -7.2717666625976562e-06,
- -5.4836273193359375e-06}, /* L196 */
-{1.3587090969085693e+00, 1.5959143638610840e-05,
- 1.1920928955078125e-07, 1.6939640045166016e-04,
- -6.1392784118652344e-05}, /* L197 */
-{1.9416118860244751e+00, 2.2917985916137695e-05,
- 1.1920928955078125e-07, 1.0538101196289062e-04,
- -2.8491020202636719e-05}, /* L198 */
-{2.1532411575317383e+00, 2.5540590286254883e-05,
- 1.1920928955078125e-07, -2.4139881134033203e-05,
- 3.8146972656250000e-06}, /* L199 */
-{1.6072083711624146e+00, 1.9162893295288086e-05,
- 1.1920928955078125e-07, -5.3048133850097656e-06,
- 3.9219856262207031e-05}, /* L200 */
-{1.3756120204925537e+00, 1.6480684280395508e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -3.0398368835449219e-06}, /* L201 */
-{1.4244385957717896e+00, 1.7151236534118652e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-05,
- 0.0000000000000000e+00}, /* L202 */
-{2.1994934082031250e+00, 2.6613473892211914e-05,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- -5.9008598327636719e-06}, /* L203 */
-{2.0759253501892090e+00, 2.5242567062377930e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- -1.3709068298339844e-06}, /* L204 */
-{2.0260188579559326e+00, 2.4918466806411743e-05,
- 1.1920928955078125e-07, 4.4333934783935547e-03,
- -6.5422058105468750e-04}, /* L205 */
-{1.8009073734283447e+00, 2.2113323211669922e-05,
- 1.1920928955078125e-07, -1.9490718841552734e-05,
- 2.3484230041503906e-05}, /* L206 */
-{1.6811375617980957e+00, 2.0742416381835938e-05,
- 1.1920928955078125e-07, -5.7816505432128906e-06,
- -1.5199184417724609e-05}, /* L207 */
-{1.5233845710754395e+00, 1.8887221813201904e-05,
- 1.1920928955078125e-07, 2.1576881408691406e-05,
- -7.2717666625976562e-06}, /* L208 */
-{1.8643037080764771e+00, 2.3224856704473495e-05,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- 3.6954879760742188e-05}, /* L209 */
-{1.7094756364822388e+00, 2.1398067474365234e-05,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -1.6212463378906250e-05}, /* L210 */
-{1.7369682788848877e+00, 2.1845102310180664e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- 7.1525573730468750e-07}, /* L211 */
-{2.1650257110595703e+00, 2.7358531951904297e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-05,
- -2.9802322387695312e-07}, /* L212 */
-{1.6689873933792114e+00, 2.1189451217651367e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- 3.3378601074218750e-06}, /* L213 */
-{1.6097611188888550e+00, 2.0533800125122070e-05,
- 1.1920928955078125e-07, -1.6510486602783203e-05,
- -3.1828880310058594e-05}, /* L214 */
-{2.7405803203582764e+00, 3.5122036933898926e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 2.3841857910156250e-06}, /* L215 */
-{2.3216056823730469e+00, 2.9891729354858398e-05,
- 1.1920928955078125e-07, 4.6849250793457031e-05,
- -4.3988227844238281e-05}, /* L216 */
-{2.5184204578399658e+00, 3.2633543014526367e-05,
- 1.1920928955078125e-07, 8.2778930664062500e-04,
- -2.5498867034912109e-04}, /* L217 */
-{1.6922439336776733e+00, 2.1994113922119141e-05,
- 1.1920928955078125e-07, 7.5340270996093750e-05,
- 7.4386596679687500e-05}, /* L218 */
-{2.6654584407806396e+00, 3.4794211387634277e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-05,
- 4.6491622924804688e-06}, /* L219 */
-{1.8817204236984253e+00, 2.4676322937011719e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 2.6702880859375000e-05}, /* L220 */
-{1.6627982854843140e+00, 2.1904706954956055e-05,
- 1.1920928955078125e-07, -3.3855438232421875e-05,
- -2.6464462280273438e-05}, /* L221 */
-{2.7387201786041260e+00, 3.6239624023437500e-05,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- 3.4570693969726562e-06}, /* L222 */
-{1.7229948043823242e+00, 2.2903084754943848e-05,
- 1.1920928955078125e-07, -3.4272670745849609e-05,
- 3.3974647521972656e-05}, /* L223 */
-{1.9461916685104370e+00, 2.6075169444084167e-05,
- 1.1920928955078125e-07, -7.8052282333374023e-04,
- -1.6004443168640137e-03}, /* L224 */
-{1.9976035356521606e+00, 2.6792287826538086e-05,
- 1.1920928955078125e-07, -7.0393085479736328e-05,
- 1.9907951354980469e-05}, /* L225 */
-{1.6724463701248169e+00, 2.2530555725097656e-05,
- 1.1920928955078125e-07, -1.2636184692382812e-05,
- -1.7464160919189453e-05}, /* L226 */
-{2.3430407047271729e+00, 3.1702220439910889e-05,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- 4.2915344238281250e-06}, /* L227 */
-{1.9295259714126587e+00, 2.6226043701171875e-05,
- 1.1920928955078125e-07, -5.4895877838134766e-05,
- -5.2034854888916016e-05}, /* L228 */
-{1.6247096061706543e+00, 2.2217631340026855e-05,
- 1.1920928955078125e-07, -6.4718723297119141e-04,
- 2.2089481353759766e-04}, /* L229 */
-{1.7281060218811035e+00, 2.3692846298217773e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -1.4901161193847656e-05}, /* L230 */
-{1.6037313938140869e+00, 2.2083520889282227e-05,
- 1.1920928955078125e-07, 1.6570091247558594e-05,
- 1.4305114746093750e-05}, /* L231 */
-{2.3717210292816162e+00, 3.2797455787658691e-05,
- 1.1920928955078125e-07, 1.0371208190917969e-05,
- -8.7618827819824219e-06}, /* L232 */
-{1.9451102018356323e+00, 2.7015805244445801e-05,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- -5.9008598327636719e-06}, /* L233 */
-{1.7312009334564209e+00, 2.4147331714630127e-05,
- 1.1920928955078125e-07, 5.0306320190429688e-05,
- 9.1791152954101562e-06}, /* L234 */
-{1.5403704643249512e+00, 2.1576881408691406e-05,
- 1.1920928955078125e-07, -2.1159648895263672e-05,
- -1.0430812835693359e-05}, /* L235 */
-{1.9861783981323242e+00, 2.7939677238464355e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.1324882507324219e-06}, /* L236 */
-{1.4692959785461426e+00, 2.0757317543029785e-05,
- 1.1920928955078125e-07, -1.9133090972900391e-05,
- -1.7344951629638672e-05}, /* L237 */
-{2.0041613578796387e+00, 2.8431415557861328e-05,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- -1.7404556274414062e-05}, /* L238 */
-{1.6922721862792969e+00, 2.4110078811645508e-05,
- 1.1920928955078125e-07, -9.1969966888427734e-05,
- -5.6803226470947266e-05}, /* L239 */
-{1.9665743112564087e+00, 2.8133392333984375e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 1.5258789062500000e-05}, /* L240 */
-{1.8344422578811646e+00, 2.6375055313110352e-05,
- 1.1920928955078125e-07, -1.1718273162841797e-04,
- 7.2479248046875000e-05}, /* L241 */
-{2.2969586849212646e+00, 3.3140182495117188e-05,
- 1.1920928955078125e-07, -1.5377998352050781e-04,
- -2.1243095397949219e-04}, /* L242 */
-{2.3987174034118652e+00, 3.4764409065246582e-05,
- 1.1920928955078125e-07, -4.1544437408447266e-04,
- -1.5157461166381836e-04}, /* L243 */
-{1.5798897743225098e+00, 2.2977590560913086e-05,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- -5.8412551879882812e-06}, /* L244 */
-{1.6973921060562134e+00, 2.4788081645965576e-05,
- 1.1920928955078125e-07, -2.7060508728027344e-05,
- -7.9274177551269531e-06}, /* L245 */
-{2.1707072257995605e+00, 3.1828880310058594e-05,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- 9.5367431640625000e-07}, /* L246 */
-{1.7630616426467896e+00, 2.5957822799682617e-05,
- 1.1920928955078125e-07, -1.5854835510253906e-05,
- -1.7404556274414062e-05}, /* L247 */
-{1.9818193912506104e+00, 2.9295682907104492e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-05,
- -1.0073184967041016e-05}, /* L248 */
-{2.4191913604736328e+00, 3.5911798477172852e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- 1.4781951904296875e-05}, /* L249 */
-{1.8253062963485718e+00, 2.7203932404518127e-05,
- 1.1920928955078125e-07, 1.1348724365234375e-04,
- 4.9471855163574219e-05}, /* L250 */
-{2.5992815494537354e+00, 3.8892030715942383e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -2.0205974578857422e-05}, /* L251 */
-{1.6348389387130737e+00, 2.4557113647460938e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- -7.6293945312500000e-06}, /* L252 */
-{2.9867699146270752e+00, 4.5046210289001465e-05,
- 1.1920928955078125e-07, -3.5583972930908203e-05,
- -7.2360038757324219e-05}, /* L253 */
-{1.8078932762145996e+00, 2.7373433113098145e-05,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 4.8637390136718750e-05}, /* L254 */
-{1.8174178600311279e+00, 2.7626752853393555e-05,
- 1.1920928955078125e-07, -2.1040439605712891e-05,
- 6.3776969909667969e-05}, /* L255 */
-{2.7811093330383301e+00, 4.2438507080078125e-05,
- 1.1920928955078125e-07, -3.8444995880126953e-05,
- 2.8610229492187500e-05}, /* L256 */
-{2.0711069107055664e+00, 3.1799077987670898e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-05,
- -3.4767389297485352e-04}, /* L257 */
-{2.1567502021789551e+00, 3.3169984817504883e-05,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- -3.6120414733886719e-05}, /* L258 */
-{2.4815292358398438e+00, 3.8310885429382324e-05,
- 1.1920928955078125e-07, -1.1384487152099609e-05,
- 3.1709671020507812e-05}, /* L259 */
-{1.9406576156616211e+00, 3.0077993869781494e-05,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- 6.3180923461914062e-06}, /* L260 */
-{1.4098842144012451e+00, 2.1934509277343750e-05,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- 2.2649765014648438e-06}, /* L261 */
-{2.9978020191192627e+00, 4.6834349632263184e-05,
- 1.1920928955078125e-07, -1.9985437393188477e-04,
- 4.2080879211425781e-05}, /* L262 */
-{2.8316121101379395e+00, 4.4390559196472168e-05,
- 1.1920928955078125e-07, 3.5881996154785156e-05,
- -3.6954879760742188e-05}, /* L263 */
-{2.3938372135162354e+00, 3.7670135498046875e-05,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- -3.0696392059326172e-05}, /* L264 */
-{2.3091406822204590e+00, 3.6478042602539062e-05,
- 1.1920928955078125e-07, -5.3524971008300781e-05,
- -6.6280364990234375e-05}, /* L265 */
-{2.0970685482025146e+00, 3.3251941204071045e-05,
- 1.1920928955078125e-07, -2.5391578674316406e-05,
- -4.4405460357666016e-05}, /* L266 */
-{2.3971326351165771e+00, 3.8206577301025391e-05,
- 1.1920928955078125e-07, -3.8003921508789062e-04,
- -1.4096498489379883e-04}, /* L267 */
-{1.6919915676116943e+00, 2.7030706405639648e-05,
- 1.1920928955078125e-07, 7.8678131103515625e-05,
- -3.7133693695068359e-05}, /* L268 */
-{2.0284366607666016e+00, 3.2529234886169434e-05,
- 1.1920928955078125e-07, 1.4305114746093750e-05,
- 6.4373016357421875e-06}, /* L269 */
-{1.7237652540206909e+00, 2.7745962142944336e-05,
- 1.1920928955078125e-07, 7.7128410339355469e-05,
- 3.1948089599609375e-05}, /* L270 */
-{1.5661971569061279e+00, 2.5302171707153320e-05,
- 1.1920928955078125e-07, -5.2392482757568359e-05,
- -4.5120716094970703e-05}, /* L271 */
-{2.0633811950683594e+00, 3.3453106880187988e-05,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- -1.1563301086425781e-05}, /* L272 */
-{1.9284604787826538e+00, 3.1380914151668549e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-05,
- 4.7683715820312500e-07}, /* L273 */
-{1.9742430448532104e+00, 3.2246112823486328e-05,
- 1.1920928955078125e-07, -2.2590160369873047e-05,
- -4.3511390686035156e-06}, /* L274 */
-{1.9677819013595581e+00, 3.2255426049232483e-05,
- 1.1920928955078125e-07, -5.8412551879882812e-06,
- 6.5565109252929688e-06}, /* L275 */
-{2.4396986961364746e+00, 4.0136277675628662e-05,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- -1.2457370758056641e-05}, /* L276 */
-{1.7249462604522705e+00, 2.8491020202636719e-05,
- 1.1920928955078125e-07, -1.7625093460083008e-04,
- 1.5366077423095703e-04}, /* L277 */
-{1.7567865848541260e+00, 2.9116868972778320e-05,
- 1.1920928955078125e-07, -3.2126903533935547e-05,
- 1.0216236114501953e-04}, /* L278 */
-{1.8745150566101074e+00, 3.1173229217529297e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-06,
- -3.4570693969726562e-06}, /* L279 */
-{1.9008158445358276e+00, 3.1724572181701660e-05,
- 1.1920928955078125e-07, -2.7418136596679688e-06,
- -6.7353248596191406e-06}, /* L280 */
-{1.6883282661437988e+00, 2.8282403945922852e-05,
- 1.1920928955078125e-07, -3.0815601348876953e-05,
- 1.1205673217773438e-05}, /* L281 */
-{2.1629920005798340e+00, 3.6358833312988281e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- -2.3245811462402344e-06}, /* L282 */
-{2.6175808906555176e+00, 4.4226646423339844e-05,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -2.3037195205688477e-04}, /* L283 */
-{1.8059939146041870e+00, 3.0577182769775391e-05,
- 1.1920928955078125e-07, -6.5386295318603516e-05,
- -7.0095062255859375e-05}, /* L284 */
-{1.8471757173538208e+00, 3.1381845474243164e-05,
- 1.1920928955078125e-07, -4.3034553527832031e-05,
- -1.9609928131103516e-05}, /* L285 */
-{1.9588391780853271e+00, 3.3393502235412598e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-05,
- -5.2452087402343750e-06}, /* L286 */
-{2.0626201629638672e+00, 3.5285949707031250e-05,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -1.0430812835693359e-05}, /* L287 */
-{2.4062309265136719e+00, 4.1365623474121094e-05,
- 1.1920928955078125e-07, 7.7843666076660156e-05,
- -2.2709369659423828e-04}, /* L288 */
-{2.0518932342529297e+00, 3.5345554351806641e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-06,
- 4.1723251342773438e-06}, /* L289 */
-{1.8658719062805176e+00, 3.2253563404083252e-05,
- 1.1920928955078125e-07, 2.0742416381835938e-05,
- -1.7285346984863281e-06}, /* L290 */
-{2.6425535678863525e+00, 4.5835971832275391e-05,
- 1.1920928955078125e-07, -9.0003013610839844e-06,
- -8.2850456237792969e-06}, /* L291 */
-{2.0215661525726318e+00, 3.5189092159271240e-05,
- 1.1920928955078125e-07, 4.2676925659179688e-05,
- -7.1108341217041016e-05}, /* L292 */
-{1.9667040109634399e+00, 3.4354627132415771e-05,
- 1.1920928955078125e-07, 9.1195106506347656e-05,
- 4.7206878662109375e-05}, /* L293 */
-{2.6630659103393555e+00, 4.6670436859130859e-05,
- 1.1920928955078125e-07, -7.1585178375244141e-05,
- 6.0439109802246094e-05}, /* L294 */
-{3.1092755794525146e+00, 5.4687261581420898e-05,
- 1.1920928955078125e-07, -1.2159347534179688e-05,
- -8.4102153778076172e-05}, /* L295 */
-{2.7260375022888184e+00, 4.8100948333740234e-05,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- -2.2649765014648438e-06}, /* L296 */
-{1.8146826028823853e+00, 3.2126903533935547e-05,
- 1.1920928955078125e-07, 2.0861625671386719e-05,
- 2.0742416381835938e-05}, /* L297 */
-{2.2514145374298096e+00, 3.9994716644287109e-05,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- 1.0275840759277344e-04}, /* L298 */
-{1.9899502992630005e+00, 3.5464763641357422e-05,
- 1.1920928955078125e-07, 6.9141387939453125e-06,
- -8.5234642028808594e-06}, /* L299 */
-{2.3508369922637939e+00, 4.2080879211425781e-05,
- 1.1920928955078125e-07, -5.2601099014282227e-04,
- 6.4682960510253906e-04}, /* L300 */
-{3.1228332519531250e+00, 5.6028366088867188e-05,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- 5.9604644775390625e-07}, /* L301 */
-{1.7228214740753174e+00, 3.1016767024993896e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -5.6087970733642578e-05}, /* L302 */
-{2.8134369850158691e+00, 5.0812959671020508e-05,
- 1.1920928955078125e-07, -6.4373016357421875e-06,
- -4.2915344238281250e-06}, /* L303 */
-{3.0491602420806885e+00, 5.5253505706787109e-05,
- 1.1920928955078125e-07, 1.0848045349121094e-05,
- 1.2516975402832031e-05}, /* L304 */
-{2.1548168659210205e+00, 3.9175152778625488e-05,
- 1.1920928955078125e-07, 3.2067298889160156e-05,
- 6.9141387939453125e-06}, /* L305 */
-{2.7610785961151123e+00, 5.0395727157592773e-05,
- 1.1920928955078125e-07, 1.8310546875000000e-04,
- 3.0028820037841797e-04}, /* L306 */
-{1.9165561199188232e+00, 3.5077333450317383e-05,
- 1.1920928955078125e-07, -5.7637691497802734e-05,
- 1.5497207641601562e-05}, /* L307 */
-{3.1946399211883545e+00, 5.8650970458984375e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- -2.0325183868408203e-05}, /* L308 */
-{2.6865181922912598e+00, 4.9486756324768066e-05,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- 6.5565109252929688e-06}, /* L309 */
-{2.6892290115356445e+00, 4.9699097871780396e-05,
- 1.1920928955078125e-07, 3.2067298889160156e-05,
- -6.8545341491699219e-06}, /* L310 */
-{2.1606910228729248e+00, 4.0054321289062500e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 1.0490417480468750e-05}, /* L311 */
-{2.5548410415649414e+00, 4.7513283789157867e-05,
- 1.1920928955078125e-07, -1.0371208190917969e-05,
- -1.9669532775878906e-06}, /* L312 */
-{2.4467649459838867e+00, 4.5657157897949219e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 5.2809715270996094e-05}, /* L313 */
-{2.9151206016540527e+00, 5.4568052291870117e-05,
- 1.1920928955078125e-07, 6.9260597229003906e-05,
- 8.1777572631835938e-05}, /* L314 */
-{2.9345300197601318e+00, 5.5104494094848633e-05,
- 1.1920928955078125e-07, -1.9848346710205078e-05,
- -7.6651573181152344e-05}, /* L315 */
-{2.0489308834075928e+00, 3.8594007492065430e-05,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 2.9683113098144531e-05}, /* L316 */
-{2.9169781208038330e+00, 5.5119395256042480e-05,
- 1.1920928955078125e-07, 2.8729438781738281e-05,
- -1.0669231414794922e-05}, /* L317 */
-{2.0207736492156982e+00, 3.8303434848785400e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -3.8146972656250000e-06}, /* L318 */
-{1.6803948879241943e+00, 3.1951814889907837e-05,
- 1.1920928955078125e-07, -1.3709068298339844e-05,
- 1.7881393432617188e-06}, /* L319 */
-{3.2248353958129883e+00, 6.1511993408203125e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- -1.6808509826660156e-05}, /* L320 */
-{2.3068952560424805e+00, 4.4167041778564453e-05,
- 1.1920928955078125e-07, 6.5112113952636719e-04,
- -2.3704767227172852e-04}, /* L321 */
-{2.1280190944671631e+00, 4.0855258703231812e-05,
- 1.1920928955078125e-07, 9.1910362243652344e-05,
- 1.3101100921630859e-04}, /* L322 */
-{2.6232008934020996e+00, 5.0514936447143555e-05,
- 1.1920928955078125e-07, -5.4895877838134766e-05,
- -1.9073486328125000e-06}, /* L323 */
-{2.5062313079833984e+00, 4.8436224460601807e-05,
- 1.1920928955078125e-07, 1.3589859008789062e-04,
- -4.1723251342773438e-07}, /* L324 */
-{2.4361395835876465e+00, 4.7206878662109375e-05,
- 1.1920928955078125e-07, -2.7418136596679688e-05,
- -1.6748905181884766e-05}, /* L325 */
-{2.1639659404754639e+00, 4.2051076889038086e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 2.1696090698242188e-05}, /* L326 */
-{3.0562987327575684e+00, 5.9574842453002930e-05,
- 1.1920928955078125e-07, -3.4272670745849609e-05,
- 1.2636184692382812e-05}, /* L327 */
-{2.2465183734893799e+00, 4.3928623199462891e-05,
- 1.1920928955078125e-07, -9.8466873168945312e-05,
- -2.3120641708374023e-04}, /* L328 */
-{2.7811193466186523e+00, 5.4543837904930115e-05,
- 1.1920928955078125e-07, 2.5868415832519531e-05,
- -1.5139579772949219e-05}, /* L329 */
-{2.4795572757720947e+00, 4.8778951168060303e-05,
- 1.1920928955078125e-07, -5.6862831115722656e-05,
- -7.0095062255859375e-05}, /* L330 */
-{2.2014863491058350e+00, 4.3436884880065918e-05,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- 4.3749809265136719e-05}, /* L331 */
-{2.5285425186157227e+00, 5.0038099288940430e-05,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 1.9311904907226562e-05}, /* L332 */
-{2.4505815505981445e+00, 4.8696994781494141e-05,
- 1.1920928955078125e-07, -2.7656555175781250e-04,
- -6.3496828079223633e-04}, /* L333 */
-{1.8170697689056396e+00, 3.6180019378662109e-05,
- 1.1920928955078125e-07, -4.2498111724853516e-05,
- 2.0265579223632812e-06}, /* L334 */
-{1.9550298452377319e+00, 3.9044767618179321e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-05,
- 3.3736228942871094e-05}, /* L335 */
-{2.5204973220825195e+00, 5.0485134124755859e-05,
- 1.1920928955078125e-07, -4.9829483032226562e-05,
- 2.0503997802734375e-05}, /* L336 */
-{2.2628602981567383e+00, 4.5478343963623047e-05,
- 1.1920928955078125e-07, -1.2570619583129883e-04,
- 1.6820430755615234e-04}, /* L337 */
-{2.4363055229187012e+00, 4.9084424972534180e-05,
- 1.1920928955078125e-07, -4.8279762268066406e-05,
- -1.2218952178955078e-05}, /* L338 */
-{2.5107040405273438e+00, 5.0738453865051270e-05,
- 1.1920928955078125e-07, 7.7486038208007812e-06,
- -4.9233436584472656e-05}, /* L339 */
-{3.2352368831634521e+00, 6.5594911575317383e-05,
- 1.1920928955078125e-07, 1.1122226715087891e-04,
- 1.4424324035644531e-04}, /* L340 */
-{2.4676001071929932e+00, 5.0157308578491211e-05,
- 1.1920928955078125e-07, 3.3736228942871094e-05,
- 4.9591064453125000e-05}, /* L341 */
-{2.4019429683685303e+00, 4.8965215682983398e-05,
- 1.1920928955078125e-07, -3.8146972656250000e-06,
- -6.2584877014160156e-06}, /* L342 */
-{2.6420495510101318e+00, 5.4016709327697754e-05,
- 1.1920928955078125e-07, -1.2576580047607422e-05,
- 5.8412551879882812e-06}, /* L343 */
-{2.5041303634643555e+00, 5.1349401473999023e-05,
- 1.1920928955078125e-07, 4.3392181396484375e-05,
- -1.3649463653564453e-05}, /* L344 */
-{2.3897404670715332e+00, 4.9144029617309570e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- 7.1525573730468750e-07}, /* L345 */
-{2.1848044395446777e+00, 4.5061111450195312e-05,
- 1.1920928955078125e-07, -3.4689903259277344e-05,
- 4.7087669372558594e-05}, /* L346 */
-{2.9077217578887939e+00, 6.0141086578369141e-05,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.6212463378906250e-05}, /* L347 */
-{2.1914703845977783e+00, 4.5523047447204590e-05,
- 1.1920928955078125e-07, -1.4996528625488281e-04,
- 5.5587291717529297e-04}, /* L348 */
-{2.2758717536926270e+00, 4.7355890274047852e-05,
- 1.1920928955078125e-07, -4.3749809265136719e-05,
- 1.6295909881591797e-04}, /* L349 */
-{2.4141144752502441e+00, 5.0365924835205078e-05,
- 1.1920928955078125e-07, 2.2768974304199219e-05,
- 6.3180923461914062e-06}, /* L350 */
-{1.9883847236633301e+00, 4.1604042053222656e-05,
- 1.1920928955078125e-07, 2.0623207092285156e-05,
- 3.0994415283203125e-06}, /* L351 */
-{2.1346588134765625e+00, 4.4792890548706055e-05,
- 1.1920928955078125e-07, 4.6133995056152344e-05,
- 1.0788440704345703e-04}, /* L352 */
-{2.9412229061126709e+00, 6.1899423599243164e-05,
- 1.1920928955078125e-07, 1.0764598846435547e-04,
- 1.3446807861328125e-04}, /* L353 */
-{2.2638974189758301e+00, 4.7773122787475586e-05,
- 1.1920928955078125e-07, 1.9192695617675781e-05,
- 9.3460083007812500e-05}, /* L354 */
-{3.4702515602111816e+00, 7.3432922363281250e-05,
- 1.1920928955078125e-07, -1.5258789062500000e-05,
- -5.7518482208251953e-05}, /* L355 */
-{2.4574007987976074e+00, 5.2183866500854492e-05,
- 1.1920928955078125e-07, 2.7906894683837891e-04,
- 1.0848045349121094e-04}, /* L356 */
-{2.7799725532531738e+00, 5.9157609939575195e-05,
- 1.1920928955078125e-07, 1.2636184692382812e-05,
- 2.6702880859375000e-05}, /* L357 */
-{2.5522701740264893e+00, 5.4463744163513184e-05,
- 1.1920928955078125e-07, 1.4662742614746094e-05,
- -8.7618827819824219e-06}, /* L358 */
-{2.5194013118743896e+00, 5.3912401199340820e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -7.3313713073730469e-06}, /* L359 */
-{2.5437009334564209e+00, 5.4582953453063965e-05,
- 1.1920928955078125e-07, -2.3245811462402344e-06,
- 4.2915344238281250e-06}, /* L360 */
-{2.3502912521362305e+00, 5.0574541091918945e-05,
- 1.1920928955078125e-07, 5.5193901062011719e-05,
- -1.9073486328125000e-05}, /* L361 */
-{3.2387988567352295e+00, 6.9886445999145508e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -1.1980533599853516e-05}, /* L362 */
-{2.0094070434570312e+00, 4.3481588363647461e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-05,
- 3.0159950256347656e-05}, /* L363 */
-{2.8144791126251221e+00, 6.1094760894775391e-05,
- 1.1920928955078125e-07, 1.3136863708496094e-04,
- -1.3607740402221680e-04}, /* L364 */
-{3.4075286388397217e+00, 7.4144452810287476e-05,
- 1.1920928955078125e-07, -1.0180473327636719e-04,
- -5.3346157073974609e-05}, /* L365 */
-{2.2048673629760742e+00, 4.8100948333740234e-05,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 1.0251998901367188e-05}, /* L366 */
-{2.3073966503143311e+00, 5.0485134124755859e-05,
- 1.1920928955078125e-07, -4.2796134948730469e-05,
- 4.0531158447265625e-05}, /* L367 */
-{3.0824701786041260e+00, 6.7621469497680664e-05,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- 2.1576881408691406e-05}, /* L368 */
-{2.7946333885192871e+00, 6.1467289924621582e-05,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- 2.4199485778808594e-05}, /* L369 */
-{2.0607519149780273e+00, 4.5448541641235352e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 1.9311904907226562e-05}, /* L370 */
-{2.9789326190948486e+00, 6.5878033638000488e-05,
- 1.1920928955078125e-07, -2.6226043701171875e-06,
- -4.5418739318847656e-05}, /* L371 */
-{2.8755564689636230e+00, 6.3762068748474121e-05,
- 1.1920928955078125e-07, 2.4437904357910156e-05,
- 1.9788742065429688e-05}, /* L372 */
-{3.8196339607238770e+00, 8.4936618804931641e-05,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- 7.9989433288574219e-05}, /* L373 */
-{2.6124074459075928e+00, 5.8349221944808960e-05,
- 1.1920928955078125e-07, -9.1993808746337891e-04,
- -9.2780590057373047e-04}, /* L374 */
-{2.8251183032989502e+00, 6.3154846429824829e-05,
- 1.1920928955078125e-07, -4.9233436584472656e-05,
- 1.1670589447021484e-04}, /* L375 */
-{3.2158968448638916e+00, 7.2091817855834961e-05,
- 1.1920928955078125e-07, -2.6279687881469727e-04,
- 8.2254409790039062e-06}, /* L376 */
-{3.1496043205261230e+00, 7.0780515670776367e-05,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 9.8943710327148438e-06}, /* L377 */
-{2.3369059562683105e+00, 5.2660703659057617e-05,
- 1.1920928955078125e-07, 2.9087066650390625e-05,
- 1.0728836059570312e-06}, /* L378 */
-{3.2579820156097412e+00, 7.3611736297607422e-05,
- 1.1920928955078125e-07, -8.5353851318359375e-05,
- -3.8027763366699219e-05}, /* L379 */
-{2.2117111682891846e+00, 5.0097703933715820e-05,
- 1.1920928955078125e-07, 6.5565109252929688e-06,
- -2.9623508453369141e-05}, /* L380 */
-{2.8730759620666504e+00, 6.5252184867858887e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-05,
- -2.9563903808593750e-05}, /* L381 */
-{3.3267192840576172e+00, 7.5802206993103027e-05,
- 1.1920928955078125e-07, 1.5318393707275391e-04,
- -2.5427341461181641e-04}, /* L382 */
-{2.5873582363128662e+00, 5.9068202972412109e-05,
- 1.1920928955078125e-07, -2.8729438781738281e-05,
- 5.7220458984375000e-06}, /* L383 */
-{3.2542302608489990e+00, 7.4505805969238281e-05,
- 1.1920928955078125e-07, 4.0769577026367188e-05,
- -1.1897087097167969e-04}, /* L384 */
-{2.5617325305938721e+00, 5.8790668845176697e-05,
- 1.1920928955078125e-07, -3.0338764190673828e-05,
- 1.5854835510253906e-05}, /* L385 */
-{2.2261345386505127e+00, 5.1237642765045166e-05,
- 1.1920928955078125e-07, -1.3840198516845703e-04,
- -2.0736455917358398e-04}, /* L386 */
-{2.3474810123443604e+00, 5.4150819778442383e-05,
- 1.1920928955078125e-07, -1.4543533325195312e-05,
- -1.0848045349121094e-05}, /* L387 */
-{2.0191648006439209e+00, 4.6700239181518555e-05,
- 1.1920928955078125e-07, -1.2934207916259766e-05,
- 2.1934509277343750e-05}, /* L388 */
-{3.3096787929534912e+00, 7.6740980148315430e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 1.3351440429687500e-05}, /* L389 */
-{2.9138581752777100e+00, 6.7740678787231445e-05,
- 1.1920928955078125e-07, -1.5974044799804688e-05,
- -1.4722347259521484e-05}, /* L390 */
-{2.3246891498565674e+00, 5.4180622100830078e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -2.9206275939941406e-06}, /* L391 */
-{3.1366462707519531e+00, 7.3313713073730469e-05,
- 1.1920928955078125e-07, -4.8995018005371094e-05,
- 1.6999244689941406e-04}, /* L392 */
-{2.6090314388275146e+00, 6.1124563217163086e-05,
- 1.1920928955078125e-07, -2.5689601898193359e-05,
- 1.4662742614746094e-05}, /* L393 */
-{2.4069147109985352e+00, 5.6535005569458008e-05,
- 1.1920928955078125e-07, -1.0037422180175781e-04,
- -1.1324882507324219e-05}, /* L394 */
-{3.2565941810607910e+00, 7.6726078987121582e-05,
- 1.1920928955078125e-07, -1.3208389282226562e-04,
- 7.2717666625976562e-05}, /* L395 */
-{3.3154320716857910e+00, 7.8260898590087891e-05,
- 1.1920928955078125e-07, 4.0173530578613281e-05,
- 2.7179718017578125e-05}, /* L396 */
-{2.4507339000701904e+00, 5.7995319366455078e-05,
- 1.1920928955078125e-07, -2.4318695068359375e-05,
- -9.5963478088378906e-06}, /* L397 */
-{2.9965872764587402e+00, 7.1089714765548706e-05,
- 1.1920928955078125e-07, 9.4175338745117188e-06,
- 2.6226043701171875e-05}, /* L398 */
-{4.8675985336303711e+00, 1.1582951992750168e-04,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- 4.4465065002441406e-05}, /* L399 */
-{3.4448235034942627e+00, 8.2135200500488281e-05,
- 1.1920928955078125e-07, 2.8371810913085938e-05,
- -5.9604644775390625e-07}, /* L400 */
-{3.0198867321014404e+00, 7.2181224822998047e-05,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- 9.1791152954101562e-06}, /* L401 */
-{2.9190092086791992e+00, 6.9946050643920898e-05,
- 1.1920928955078125e-07, -4.7922134399414062e-05,
- -1.4781951904296875e-05}, /* L402 */
-{3.1212413311004639e+00, 7.4988231062889099e-05,
- 1.1920928955078125e-07, 3.6001205444335938e-05,
- 4.6253204345703125e-05}, /* L403 */
-{3.3016142845153809e+00, 7.9520046710968018e-05,
- 1.1920928955078125e-07, -8.7797641754150391e-05,
- 4.3392181396484375e-05}, /* L404 */
-{3.6241664886474609e+00, 8.7493099272251129e-05,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- -1.1980533599853516e-05}, /* L405 */
-{3.1500399112701416e+00, 7.6234340667724609e-05,
- 1.1920928955078125e-07, -2.0623207092285156e-05,
- 5.6028366088867188e-06}, /* L406 */
-{2.1939091682434082e+00, 5.3226947784423828e-05,
- 1.1920928955078125e-07, -5.8412551879882812e-05,
- -3.6239624023437500e-05}, /* L407 */
-{2.6877670288085938e+00, 6.5434724092483521e-05,
- 1.1920928955078125e-07, 5.3524971008300781e-05,
- 2.8729438781738281e-05}, /* L408 */
-{2.7287237644195557e+00, 6.6533684730529785e-05,
- 1.1920928955078125e-07, -5.3882598876953125e-05,
- -8.9347362518310547e-05}, /* L409 */
-{3.2742455005645752e+00, 8.0078840255737305e-05,
- 1.1920928955078125e-07, -1.3381242752075195e-04,
- -8.5592269897460938e-05}, /* L410 */
-{2.8177847862243652e+00, 6.9040805101394653e-05,
- 1.1920928955078125e-07, -5.4836273193359375e-06,
- 3.3974647521972656e-05}, /* L411 */
-{2.2618916034698486e+00, 5.5549666285514832e-05,
- 1.1920928955078125e-07, -2.1040439605712891e-05,
- 1.7762184143066406e-05}, /* L412 */
-{2.9402916431427002e+00, 7.2389841079711914e-05,
- 1.1920928955078125e-07, 8.4161758422851562e-05,
- 3.5762786865234375e-06}, /* L413 */
-{2.5550801753997803e+00, 6.3098967075347900e-05,
- 1.1920928955078125e-07, 2.3269653320312500e-04,
- 4.3749809265136719e-05}, /* L414 */
-{2.7094342708587646e+00, 6.7040324211120605e-05,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- -3.2007694244384766e-05}, /* L415 */
-{2.8891294002532959e+00, 7.1704387664794922e-05,
- 1.1920928955078125e-07, -2.6035308837890625e-04,
- -4.1604042053222656e-05}, /* L416 */
-{2.8939502239227295e+00, 7.1972608566284180e-05,
- 1.1920928955078125e-07, -2.2774934768676758e-04,
- 3.9827823638916016e-04}, /* L417 */
-{2.6355955600738525e+00, 6.5714120864868164e-05,
- 1.1920928955078125e-07, 2.4259090423583984e-04,
- 2.6941299438476562e-05}, /* L418 */
-{2.6906697750091553e+00, 6.7204236984252930e-05,
- 1.1920928955078125e-07, 2.5868415832519531e-05,
- -3.4272670745849609e-05}, /* L419 */
-{2.8222055435180664e+00, 7.0661306381225586e-05,
- 1.1920928955078125e-07, -5.6564807891845703e-05,
- -2.6464462280273438e-05}, /* L420 */
-{2.7661051750183105e+00, 6.9424510002136230e-05,
- 1.1920928955078125e-07, -9.6023082733154297e-05,
- -3.9935111999511719e-05}, /* L421 */
-{3.4146778583526611e+00, 8.5912644863128662e-05,
- 1.1920928955078125e-07, -7.8976154327392578e-05,
- 4.3511390686035156e-05}, /* L422 */
-{2.8130726814270020e+00, 7.0929527282714844e-05,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- -1.0669231414794922e-05}, /* L423 */
-{2.9997084140777588e+00, 7.5817108154296875e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- 1.0728836059570312e-06}, /* L424 */
-{3.1527574062347412e+00, 7.9870223999023438e-05,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -7.9870223999023438e-06}, /* L425 */
-{3.4331889152526855e+00, 8.7194144725799561e-05,
- 1.1920928955078125e-07, 9.1552734375000000e-05,
- 1.0859966278076172e-04}, /* L426 */
-{2.6074423789978027e+00, 6.6369771957397461e-05,
- 1.1920928955078125e-07, -6.8545341491699219e-06,
- 2.5033950805664062e-05}, /* L427 */
-{3.0480685234069824e+00, 7.7761709690093994e-05,
- 1.1920928955078125e-07, -1.7642974853515625e-05,
- -3.5762786865234375e-05}, /* L428 */
-{3.2274334430694580e+00, 8.2582235336303711e-05,
- 1.1920928955078125e-07, -1.2105703353881836e-04,
- -6.7353248596191406e-06}, /* L429 */
-{3.8392596244812012e+00, 9.8407268524169922e-05,
- 1.1920928955078125e-07, -8.4042549133300781e-06,
- 1.4185905456542969e-05}, /* L430 */
-{2.7247571945190430e+00, 7.0154666900634766e-05,
- 1.1920928955078125e-07, -6.8807601928710938e-04,
- -6.2984228134155273e-04}, /* L431 */
-{2.3728237152099609e+00, 6.1107799410820007e-05,
- 1.1920928955078125e-07, -2.0384788513183594e-05,
- 8.9406967163085938e-06}, /* L432 */
-{3.3913035392761230e+00, 8.7633728981018066e-05,
- 1.1920928955078125e-07, 2.7263164520263672e-04,
- -1.4251470565795898e-04}, /* L433 */
-{3.1149868965148926e+00, 8.0585479736328125e-05,
- 1.1920928955078125e-07, -3.8385391235351562e-05,
- 3.5762786865234375e-06}, /* L434 */
-{3.0939691066741943e+00, 8.0227851867675781e-05,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- 1.9788742065429688e-05}, /* L435 */
-{2.6854977607727051e+00, 6.9797039031982422e-05,
- 1.1920928955078125e-07, -1.0067224502563477e-04,
- -1.0311603546142578e-05}, /* L436 */
-{2.5184438228607178e+00, 6.5624713897705078e-05,
- 1.1920928955078125e-07, 6.8545341491699219e-05,
- -1.4424324035644531e-04}, /* L437 */
-{3.3418045043945312e+00, 8.7261199951171875e-05,
- 1.1920928955078125e-07, -1.0961294174194336e-04,
- -7.3909759521484375e-06}, /* L438 */
-{3.1744203567504883e+00, 8.3088874816894531e-05,
- 1.1920928955078125e-07, 1.2254714965820312e-04,
- -3.7908554077148438e-05}, /* L439 */
-{3.2314956188201904e+00, 8.4789469838142395e-05,
- 1.1920928955078125e-07, -1.3142824172973633e-04,
- 1.0967254638671875e-05}, /* L440 */
-{3.9805166721343994e+00, 1.0463595390319824e-04,
- 1.1920928955078125e-07, -1.5556812286376953e-05,
- -1.6212463378906250e-05}, /* L441 */
-{4.1092233657836914e+00, 1.0827183723449707e-04,
- 1.1920928955078125e-07, -1.3113021850585938e-05,
- -1.7523765563964844e-05}, /* L442 */
-{2.7775535583496094e+00, 7.3343515396118164e-05,
- 1.1920928955078125e-07, -2.9981136322021484e-05,
- -1.1682510375976562e-05}, /* L443 */
-{2.5474042892456055e+00, 6.7468732595443726e-05,
- 1.1920928955078125e-07, -3.9100646972656250e-05,
- 5.7339668273925781e-05}, /* L444 */
-{3.4387097358703613e+00, 9.1224908828735352e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-06,
- -3.8146972656250000e-06}, /* L445 */
-{2.6244187355041504e+00, 6.9774687290191650e-05,
- 1.1920928955078125e-07, -3.0040740966796875e-05,
- -5.5789947509765625e-05}, /* L446 */
-{3.3370428085327148e+00, 8.8915228843688965e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -3.7610530853271484e-05}, /* L447 */
-{3.3220365047454834e+00, 8.8714063167572021e-05,
- 1.1920928955078125e-07, 4.3034553527832031e-05,
- -7.8082084655761719e-06}, /* L448 */
-{2.4847772121429443e+00, 6.6504813730716705e-05,
- 1.1920928955078125e-07, 7.1287155151367188e-05,
- 3.6001205444335938e-05}, /* L449 */
-{3.7826178073883057e+00, 1.0147690773010254e-04,
- 1.1920928955078125e-07, 1.3947486877441406e-04,
- 5.8293342590332031e-05}, /* L450 */
-{3.0933513641357422e+00, 8.3159655332565308e-05,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -8.0466270446777344e-06}, /* L451 */
-{2.7914371490478516e+00, 7.5211748480796814e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 7.3909759521484375e-06}, /* L452 */
-{2.8283858299255371e+00, 7.6375901699066162e-05,
- 1.1920928955078125e-07, 1.7523765563964844e-05,
- -7.3909759521484375e-06}, /* L453 */
-{2.9798476696014404e+00, 8.0645084381103516e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 6.5445899963378906e-05}, /* L454 */
-{2.4479994773864746e+00, 6.6399574279785156e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -5.9604644775390625e-08}, /* L455 */
-{2.2857246398925781e+00, 6.2137842178344727e-05,
- 1.1920928955078125e-07, -3.7789344787597656e-05,
- -3.4868717193603516e-05}, /* L456 */
-{3.5565459728240967e+00, 9.6887350082397461e-05,
- 1.1920928955078125e-07, -4.6014785766601562e-05,
- -7.5101852416992188e-06}, /* L457 */
-{4.0719385147094727e+00, 1.1119246482849121e-04,
- 1.1920928955078125e-07, -3.0815601348876953e-05,
- -1.7642974853515625e-05}, /* L458 */
-{3.5460462570190430e+00, 9.7036361694335938e-05,
- 1.1920928955078125e-07, -1.5288591384887695e-04,
- -7.9154968261718750e-05}, /* L459 */
-{2.4650981426239014e+00, 6.7621469497680664e-05,
- 1.1920928955078125e-07, 3.9482116699218750e-04,
- 2.1839141845703125e-04}, /* L460 */
-{2.9384605884552002e+00, 8.0756843090057373e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-06,
- -1.4960765838623047e-05}, /* L461 */
-{3.4266293048858643e+00, 9.4383955001831055e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-05,
- 5.3763389587402344e-05}, /* L462 */
-{3.0144898891448975e+00, 8.3204358816146851e-05,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 1.9907951354980469e-05}, /* L463 */
-{2.3755469322204590e+00, 6.5743923187255859e-05,
- 1.1920928955078125e-07, -2.0259618759155273e-04,
- -1.5556812286376953e-04}, /* L464 */
-{3.6491155624389648e+00, 1.0114908218383789e-04,
- 1.1920928955078125e-07, -1.8417835235595703e-05,
- 8.7022781372070312e-06}, /* L465 */
-{3.7449080944061279e+00, 1.0402500629425049e-04,
- 1.1920928955078125e-07, -4.5180320739746094e-05,
- 1.1324882507324219e-05}, /* L466 */
-{3.3605184555053711e+00, 9.3549489974975586e-05,
- 1.1920928955078125e-07, -5.0842761993408203e-05,
- 6.3896179199218750e-05}, /* L467 */
-{3.6066815853118896e+00, 1.0065734386444092e-04,
- 1.1920928955078125e-07, -8.7857246398925781e-05,
- 1.9907951354980469e-04}, /* L468 */
-{3.2082083225250244e+00, 8.9690089225769043e-05,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- 2.5629997253417969e-05}, /* L469 */
-{2.7381629943847656e+00, 7.6711177825927734e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-05,
- -3.0994415283203125e-06}, /* L470 */
-{4.3375506401062012e+00, 1.2217462062835693e-04,
- 1.1920928955078125e-07, 1.0873079299926758e-03,
- -3.1763315200805664e-04}, /* L471 */
-{4.0892305374145508e+00, 1.1505186557769775e-04,
- 1.1920928955078125e-07, -2.2590160369873047e-05,
- -4.5299530029296875e-06}, /* L472 */
-{3.0184571743011475e+00, 8.5115432739257812e-05,
- 1.1920928955078125e-07, -5.2571296691894531e-05,
- -1.2701749801635742e-04}, /* L473 */
-{3.1379499435424805e+00, 8.8661909103393555e-05,
- 1.1920928955078125e-07, -2.1338462829589844e-05,
- -3.8146972656250000e-06}, /* L474 */
-{2.6890432834625244e+00, 7.6340045779943466e-05,
- 1.1920928955078125e-07, -1.1938810348510742e-04,
- 2.2232532501220703e-04}, /* L475 */
-{3.8275201320648193e+00, 1.0864436626434326e-04,
- 1.1920928955078125e-07, 8.9645385742187500e-05,
- -1.6313791275024414e-04}, /* L476 */
-{3.2602243423461914e+00, 9.2715024948120117e-05,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- 1.5139579772949219e-05}, /* L477 */
-{3.4936711788177490e+00, 9.9569559097290039e-05,
- 1.1920928955078125e-07, 9.2506408691406250e-05,
- -6.4253807067871094e-05}, /* L478 */
-{2.6311857700347900e+00, 7.5131654739379883e-05,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- -2.7656555175781250e-05}, /* L479 */
-{2.8464992046356201e+00, 8.1449747085571289e-05,
- 1.1920928955078125e-07, 7.0333480834960938e-06,
- -3.7431716918945312e-05}, /* L480 */
-{5.0630707740783691e+00, 1.4516711235046387e-04,
- 1.1920928955078125e-07, 1.8358230590820312e-05,
- -1.1086463928222656e-05}, /* L481 */
-{3.3599872589111328e+00, 9.6559524536132812e-05,
- 1.1920928955078125e-07, -2.9385089874267578e-05,
- -6.8366527557373047e-05}, /* L482 */
-{2.8084692955017090e+00, 8.0898404121398926e-05,
- 1.1920928955078125e-07, -1.6880035400390625e-04,
- 4.4345855712890625e-05}, /* L483 */
-{3.5160791873931885e+00, 1.0144710540771484e-04,
- 1.1920928955078125e-07, 3.5405158996582031e-05,
- 5.4836273193359375e-06}, /* L484 */
-{3.3183646202087402e+00, 9.5963478088378906e-05,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- -1.3768672943115234e-05}, /* L485 */
-{4.2249965667724609e+00, 1.2239813804626465e-04,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- -1.9013881683349609e-05}, /* L486 */
-{3.2158520221710205e+00, 9.3370676040649414e-05,
- 1.1920928955078125e-07, -8.0108642578125000e-05,
- 8.4757804870605469e-05}, /* L487 */
-{3.0407748222351074e+00, 8.8490545749664307e-05,
- 1.1920928955078125e-07, 1.8143653869628906e-04,
- 9.1791152954101562e-06}, /* L488 */
-{3.6684803962707520e+00, 1.0693073272705078e-04,
- 1.1920928955078125e-07, 2.3007392883300781e-05,
- 2.7894973754882812e-05}, /* L489 */
-{2.8087632656097412e+00, 8.2105398178100586e-05,
- 1.1920928955078125e-07, -2.9593706130981445e-04,
- -3.5709142684936523e-04}, /* L490 */
-{2.9702608585357666e+00, 8.6933374404907227e-05,
- 1.1920928955078125e-07, -5.4299831390380859e-05,
- -4.1127204895019531e-05}, /* L491 */
-{3.5154829025268555e+00, 1.0335445404052734e-04,
- 1.1920928955078125e-07, 1.4371871948242188e-03,
- -6.4253807067871094e-04}, /* L492 */
-{3.5689535140991211e+00, 1.0488182306289673e-04,
- 1.1920928955078125e-07, -7.5697898864746094e-06,
- 2.0742416381835938e-05}, /* L493 */
-{3.0564389228820801e+00, 9.0003013610839844e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- 1.6689300537109375e-05}, /* L494 */
-{2.9551346302032471e+00, 8.7201595306396484e-05,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -3.6895275115966797e-05}, /* L495 */
-{3.7225058078765869e+00, 1.1005997657775879e-04,
- 1.1920928955078125e-07, -1.5795230865478516e-05,
- -3.8743019104003906e-05}, /* L496 */
-{4.6113557815551758e+00, 1.3661384582519531e-04,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -7.9870223999023438e-06}, /* L497 */
-{3.7185397148132324e+00, 1.1038780212402344e-04,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -5.0902366638183594e-05}, /* L498 */
-{3.8306903839111328e+00, 1.1399388313293457e-04,
- 1.1920928955078125e-07, 5.0663948059082031e-05,
- -7.8082084655761719e-06}, /* L499 */
-{3.3836429119110107e+00, 1.0085105895996094e-04,
- 1.1920928955078125e-07, 2.9683113098144531e-05,
- -2.6822090148925781e-06}, /* L500 */
-{2.9473364353179932e+00, 8.8080763816833496e-05,
- 1.1920928955078125e-07, 1.4650821685791016e-04,
- -1.7708539962768555e-04}, /* L501 */
-{3.1911556720733643e+00, 9.5546245574951172e-05,
- 1.1920928955078125e-07, 1.6725063323974609e-04,
- 3.4272670745849609e-04}, /* L502 */
-{3.2055959701538086e+00, 9.6261501312255859e-05,
- 1.1920928955078125e-07, 9.8335742950439453e-04,
- 4.5418739318847656e-05}, /* L503 */
-{3.9002463817596436e+00, 1.1718273162841797e-04,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- 3.6597251892089844e-05}, /* L504 */
-{2.6137373447418213e+00, 7.8678131103515625e-05,
- 1.1920928955078125e-07, 3.4213066101074219e-05,
- -1.6868114471435547e-05}, /* L505 */
-{2.5144660472869873e+00, 7.5846910476684570e-05,
- 1.1920928955078125e-07, -1.1122226715087891e-04,
- -5.3048133850097656e-06}, /* L506 */
-{3.3483262062072754e+00, 1.0119378566741943e-04,
- 1.1920928955078125e-07, -1.9371509552001953e-05,
- -1.4185905456542969e-05}, /* L507 */
-{3.0885303020477295e+00, 9.3698501586914062e-05,
- 1.1920928955078125e-07, -8.6635351181030273e-04,
- 1.4426708221435547e-03}, /* L508 */
-{3.1789145469665527e+00, 9.6470117568969727e-05,
- 1.1920928955078125e-07, -3.5107135772705078e-05,
- 3.2067298889160156e-05}, /* L509 */
-{2.4107313156127930e+00, 7.3300674557685852e-05,
- 1.1920928955078125e-07, -1.1867284774780273e-04,
- -2.6643276214599609e-05}, /* L510 */
-{3.7841026782989502e+00, 1.1527538299560547e-04,
- 1.1920928955078125e-07, 7.4744224548339844e-05,
- -1.0311603546142578e-05}, /* L511 */
-{3.3639321327209473e+00, 1.0267016477882862e-04,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- 4.3153762817382812e-05}, /* L512 */
-{3.7792832851409912e+00, 1.1557340621948242e-04,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- 2.3603439331054688e-05}, /* L513 */
-{3.2476923465728760e+00, 9.9509954452514648e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-05,
- -9.7155570983886719e-06}, /* L514 */
-{3.1547374725341797e+00, 9.6857547760009766e-05,
- 1.1920928955078125e-07, 1.4066696166992188e-05,
- -9.0777873992919922e-05}, /* L515 */
-{3.2902867794036865e+00, 1.0120868682861328e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- 2.5749206542968750e-05}, /* L516 */
-{3.7239885330200195e+00, 1.1476874351501465e-04,
- 1.1920928955078125e-07, 1.9550323486328125e-05,
- -3.2961368560791016e-05}, /* L517 */
-{3.8911895751953125e+00, 1.2016296386718750e-04,
- 1.1920928955078125e-07, -1.0198354721069336e-04,
- -1.9431114196777344e-05}, /* L518 */
-{3.5295143127441406e+00, 1.0919570922851562e-04,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 1.6212463378906250e-05}, /* L519 */
-{3.0702850818634033e+00, 9.5188617706298828e-05,
- 1.1920928955078125e-07, -6.6339969635009766e-05,
- 8.6069107055664062e-05}, /* L520 */
-{4.1039986610412598e+00, 1.2776255607604980e-04,
- 1.1920928955078125e-07, 4.3725967407226562e-04,
- -1.6671419143676758e-04}, /* L521 */
-{2.8474361896514893e+00, 8.8647007942199707e-05,
- 1.1920928955078125e-07, -1.2671947479248047e-04,
- -1.5741586685180664e-04}, /* L522 */
-{4.6662869453430176e+00, 1.4549493789672852e-04,
- 1.1920928955078125e-07, 1.7070770263671875e-04,
- 1.9812583923339844e-04}, /* L523 */
-{3.1762177944183350e+00, 9.9211931228637695e-05,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- 1.0132789611816406e-05}, /* L524 */
-{3.2066769599914551e+00, 1.0037422180175781e-04,
- 1.1920928955078125e-07, 1.1181831359863281e-04,
- 7.3552131652832031e-05}, /* L525 */
-{3.1083412170410156e+00, 9.7468495368957520e-05,
- 1.1920928955078125e-07, -5.9008598327636719e-06,
- -2.8669834136962891e-05}, /* L526 */
-{3.9168117046356201e+00, 1.2305378913879395e-04,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- 9.5367431640625000e-07}, /* L527 */
-{3.2936491966247559e+00, 1.0369718074798584e-04,
- 1.1920928955078125e-07, -8.6545944213867188e-05,
- -2.1427869796752930e-04}, /* L528 */
-{2.7719261646270752e+00, 8.7410211563110352e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-05,
- -4.0352344512939453e-05}, /* L529 */
-{3.7689161300659180e+00, 1.1920928955078125e-04,
- 1.1920928955078125e-07, -6.2674283981323242e-04,
- -9.3662738800048828e-04}, /* L530 */
-{4.1597552299499512e+00, 1.3212754856795073e-04,
- 1.1920928955078125e-07, -2.0530819892883301e-03,
- -1.5193223953247070e-03}, /* L531 */
-{4.0232539176940918e+00, 1.2773275375366211e-04,
- 1.1920928955078125e-07, -1.1038780212402344e-04,
- 1.5747547149658203e-04}, /* L532 */
-{4.4753580093383789e+00, 1.4317035675048828e-04,
- 1.1920928955078125e-07, 3.7877559661865234e-03,
- 1.1754035949707031e-03}, /* L533 */
-{3.8987226486206055e+00, 1.2412667274475098e-04,
- 1.1920928955078125e-07, -2.8431415557861328e-05,
- -1.3852119445800781e-04}, /* L534 */
-{3.1376380920410156e+00, 1.0009855031967163e-04,
- 1.1920928955078125e-07, 9.5963478088378906e-05,
- -1.3405084609985352e-04}, /* L535 */
-{3.6161074638366699e+00, 1.1555850505828857e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- -1.1324882507324219e-06}, /* L536 */
-{4.7283177375793457e+00, 1.5217065811157227e-04,
- 1.1920928955078125e-07, -1.1253952980041504e-03,
- 1.2241601943969727e-03}, /* L537 */
-{4.2291231155395508e+00, 1.3562291860580444e-04,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- -3.3497810363769531e-05}, /* L538 */
-{4.7674794197082520e+00, 1.5318393707275391e-04,
- 1.1920928955078125e-07, -9.1195106506347656e-05,
- -8.1658363342285156e-06}, /* L539 */
-{3.1643774509429932e+00, 1.0186433792114258e-04,
- 1.1920928955078125e-07, 3.0517578125000000e-05,
- 4.6968460083007812e-05}, /* L540 */
-{3.0483887195587158e+00, 9.8317861557006836e-05,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- 1.0120868682861328e-04}, /* L541 */
-{4.0505838394165039e+00, 1.3089179992675781e-04,
- 1.1920928955078125e-07, 3.7074089050292969e-05,
- 1.7523765563964844e-05}, /* L542 */
-{3.7835776805877686e+00, 1.2329220771789551e-04,
- 1.1920928955078125e-07, -2.1667480468750000e-03,
- 1.9497871398925781e-03}, /* L543 */
-{3.3685359954833984e+00, 1.0958313941955566e-04,
- 1.1920928955078125e-07, -1.7974972724914551e-03,
- 8.5246562957763672e-04}, /* L544 */
-{3.2718780040740967e+00, 1.0630488395690918e-04,
- 1.1920928955078125e-07, 1.2397766113281250e-05,
- -6.9558620452880859e-05}, /* L545 */
-{2.8645610809326172e+00, 9.3236565589904785e-05,
- 1.1920928955078125e-07, 2.2411346435546875e-05,
- -5.9843063354492188e-05}, /* L546 */
-{3.4860730171203613e+00, 1.1369585990905762e-04,
- 1.1920928955078125e-07, 7.8201293945312500e-05,
- 7.9870223999023438e-06}, /* L547 */
-{4.2228288650512695e+00, 1.3798475265502930e-04,
- 1.1920928955078125e-07, -5.1438808441162109e-05,
- 1.2481212615966797e-04}, /* L548 */
-{3.9595754146575928e+00, 1.2961030006408691e-04,
- 1.1920928955078125e-07, 9.1910362243652344e-05,
- -7.8558921813964844e-05}, /* L549 */
-{3.6561391353607178e+00, 1.1989474296569824e-04,
- 1.1920928955078125e-07, -1.3649463653564453e-05,
- 6.2227249145507812e-05}, /* L550 */
-{3.2415523529052734e+00, 1.0648369789123535e-04,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -9.0599060058593750e-05}, /* L551 */
-{4.0557208061218262e+00, 1.3348460197448730e-04,
- 1.1920928955078125e-07, -4.8935413360595703e-05,
- 1.3923645019531250e-04}, /* L552 */
-{2.9606189727783203e+00, 9.7632408142089844e-05,
- 1.1920928955078125e-07, -1.4841556549072266e-05,
- -6.5386295318603516e-05}, /* L553 */
-{3.4535906314849854e+00, 1.1405348777770996e-04,
- 1.1920928955078125e-07, 2.4199485778808594e-05,
- -2.4378299713134766e-05}, /* L554 */
-{3.1924855709075928e+00, 1.0566413402557373e-04,
- 1.1920928955078125e-07, -2.2304058074951172e-04,
- -2.3716688156127930e-04}, /* L555 */
-{3.9599545001983643e+00, 1.3130903244018555e-04,
- 1.1920928955078125e-07, -4.6014785766601562e-05,
- -5.6147575378417969e-05}, /* L556 */
-{4.4815397262573242e+00, 1.4899671077728271e-04,
- 1.1920928955078125e-07, -2.4503469467163086e-04,
- 3.7169456481933594e-04}, /* L557 */
-{3.9781887531280518e+00, 1.3232231140136719e-04,
- 1.1920928955078125e-07, -4.5180320739746094e-05,
- 5.2332878112792969e-05}, /* L558 */
-{3.4531719684600830e+00, 1.1506676673889160e-04,
- 1.1920928955078125e-07, 5.4359436035156250e-05,
- -6.8545341491699219e-06}, /* L559 */
-{3.5442283153533936e+00, 1.1831521987915039e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- 2.0742416381835938e-05}, /* L560 */
-{3.8825147151947021e+00, 1.2985244393348694e-04,
- 1.1920928955078125e-07, 9.8109245300292969e-05,
- -5.8293342590332031e-05}, /* L561 */
-{3.2367444038391113e+00, 1.0843947529792786e-04,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 8.5115432739257812e-05}, /* L562 */
-{3.9802150726318359e+00, 1.3364851474761963e-04,
- 1.1920928955078125e-07, 2.4449825286865234e-04,
- -1.9472837448120117e-04}, /* L563 */
-{3.5972721576690674e+00, 1.2105703353881836e-04,
- 1.1920928955078125e-07, -1.3917684555053711e-04,
- -3.7741661071777344e-04}, /* L564 */
-{4.4405498504638672e+00, 1.4975666999816895e-04,
- 1.1920928955078125e-07, 1.1312961578369141e-04,
- 3.1626224517822266e-04}, /* L565 */
-{2.6562328338623047e+00, 8.9764595031738281e-05,
- 1.1920928955078125e-07, -4.8935413360595703e-05,
- -3.4707784652709961e-04}, /* L566 */
-{3.0558199882507324e+00, 1.0329484939575195e-04,
- 1.1920928955078125e-07, 6.3657760620117188e-05,
- 4.9948692321777344e-05}, /* L567 */
-{3.9763338565826416e+00, 1.3466179370880127e-04,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- -3.6239624023437500e-05}, /* L568 */
-{3.6478600502014160e+00, 1.2373924255371094e-04,
- 1.1920928955078125e-07, -3.6716461181640625e-05,
- 0.0000000000000000e+00}, /* L569 */
-{3.7506580352783203e+00, 1.2749433517456055e-04,
- 1.1920928955078125e-07, 3.4809112548828125e-05,
- -7.8380107879638672e-05}, /* L570 */
-{5.1482024192810059e+00, 1.7523765563964844e-04,
- 1.1920928955078125e-07, -2.7716159820556641e-05,
- -4.9412250518798828e-05}, /* L571 */
-{3.4284558296203613e+00, 1.1691451072692871e-04,
- 1.1920928955078125e-07, 2.8729438781738281e-05,
- 4.5299530029296875e-06}, /* L572 */
-{3.6785480976104736e+00, 1.2572109699249268e-04,
- 1.1920928955078125e-07, 7.3552131652832031e-05,
- 2.2768974304199219e-05}, /* L573 */
-{3.3756041526794434e+00, 1.1558830738067627e-04,
- 1.1920928955078125e-07, 8.9764595031738281e-05,
- 1.8882751464843750e-04}, /* L574 */
-{3.0114588737487793e+00, 1.0322034358978271e-04,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- -2.5033950805664062e-05}, /* L575 */
-{4.6099290847778320e+00, 1.5839934349060059e-04,
- 1.1920928955078125e-07, -6.2584877014160156e-06,
- -7.3611736297607422e-05}, /* L576 */
-{4.1372799873352051e+00, 1.4242529869079590e-04,
- 1.1920928955078125e-07, 3.1781196594238281e-04,
- 3.8433074951171875e-04}, /* L577 */
-{4.1709203720092773e+00, 1.4382600784301758e-04,
- 1.1920928955078125e-07, 3.2639503479003906e-04,
- 2.0170211791992188e-04}, /* L578 */
-{3.9531817436218262e+00, 1.3646483421325684e-04,
- 1.1920928955078125e-07, -8.6426734924316406e-05,
- -1.0788440704345703e-04}, /* L579 */
-{3.4372875690460205e+00, 1.1885166168212891e-04,
- 1.1920928955078125e-07, -4.1723251342773438e-06,
- 5.7220458984375000e-06}, /* L580 */
-{3.1209814548492432e+00, 1.0815262794494629e-04,
- 1.1920928955078125e-07, 9.7751617431640625e-06,
- 1.0824203491210938e-04}, /* L581 */
-{4.4539427757263184e+00, 1.5455484390258789e-04,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- -4.0650367736816406e-05}, /* L582 */
-{3.8785910606384277e+00, 1.3482570648193359e-04,
- 1.1920928955078125e-07, -1.6516447067260742e-04,
- -6.3240528106689453e-05}, /* L583 */
-{3.0051567554473877e+00, 1.0526180267333984e-04,
- 1.1920928955078125e-07, 1.3853311538696289e-03,
- 2.5627613067626953e-03}, /* L584 */
-{2.8792140483856201e+00, 1.0040402412414551e-04,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- -4.0233135223388672e-05}, /* L585 */
-{3.9015984535217285e+00, 1.3628788292407990e-04,
- 1.1920928955078125e-07, -4.8160552978515625e-05,
- 1.6331672668457031e-05}, /* L586 */
-{3.3269212245941162e+00, 1.1651217937469482e-04,
- 1.1920928955078125e-07, -2.2232532501220703e-04,
- 1.7130374908447266e-04}, /* L587 */
-{4.4253616333007812e+00, 1.5512108802795410e-04,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- -9.8347663879394531e-06}, /* L588 */
-{3.5830979347229004e+00, 1.2582540512084961e-04,
- 1.1920928955078125e-07, -1.2338161468505859e-05,
- 2.9444694519042969e-05}, /* L589 */
-{4.8883738517761230e+00, 1.7192959785461426e-04,
- 1.1920928955078125e-07, 6.4611434936523438e-05,
- 9.4175338745117188e-06}, /* L590 */
-{3.4892816543579102e+00, 1.2293457984924316e-04,
- 1.1920928955078125e-07, -3.9339065551757812e-06,
- 5.3524971008300781e-05}, /* L591 */
-{3.2163062095642090e+00, 1.1350214481353760e-04,
- 1.1920928955078125e-07, -4.4047832489013672e-05,
- 5.2213668823242188e-05}, /* L592 */
-{3.5872771739959717e+00, 1.2680888175964355e-04,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -4.2319297790527344e-05}, /* L593 */
-{3.4677729606628418e+00, 1.2280046939849854e-04,
- 1.1920928955078125e-07, -6.9618225097656250e-05,
- -1.7583370208740234e-05}, /* L594 */
-{4.3066859245300293e+00, 1.5275180339813232e-04,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 2.3484230041503906e-05}, /* L595 */
-{3.4064581394195557e+00, 1.2108683586120605e-04,
- 1.1920928955078125e-07, -1.2385845184326172e-04,
- 2.6762485504150391e-04}, /* L596 */
-{4.2888460159301758e+00, 1.5267729759216309e-04,
- 1.1920928955078125e-07, -1.6039609909057617e-04,
- -1.2713670730590820e-04}, /* L597 */
-{5.0103149414062500e+00, 1.7860531806945801e-04,
- 1.1920928955078125e-07, -7.3850154876708984e-05,
- -1.9669532775878906e-06}, /* L598 */
-{4.1127190589904785e+00, 1.4686584472656250e-04,
- 1.1920928955078125e-07, 1.1801719665527344e-05,
- -8.9108943939208984e-05}, /* L599 */
-{3.7643437385559082e+00, 1.3864040374755859e-04,
- 1.1920928955078125e-07, -1.1477172374725342e-02,
- -1.2279748916625977e-03}, /* L600 */
-{3.8977630138397217e+00, 1.3968348503112793e-04,
- 1.1920928955078125e-07, -3.4987926483154297e-05,
- -7.3790550231933594e-05}, /* L601 */
-{3.7702808380126953e+00, 1.3533234596252441e-04,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- 2.2268295288085938e-04}, /* L602 */
-{3.1802268028259277e+00, 1.1470913887023926e-04,
- 1.1920928955078125e-07, -3.2454729080200195e-04,
- 9.1814994812011719e-04}, /* L603 */
-{4.1836252212524414e+00, 1.5339255332946777e-04,
- 1.1920928955078125e-07, -7.0563554763793945e-03,
- 4.7039985656738281e-04}, /* L604 */
-{3.9930126667022705e+00, 1.4404021203517914e-04,
- 1.1920928955078125e-07, -2.3365020751953125e-05,
- -2.5391578674316406e-05}, /* L605 */
-{3.8670630455017090e+00, 1.3996660709381104e-04,
- 1.1920928955078125e-07, -7.5411796569824219e-04,
- 5.6779384613037109e-04}, /* L606 */
-{4.4003806114196777e+00, 1.5923380851745605e-04,
- 1.1920928955078125e-07, -2.9623508453369141e-05,
- -1.7225742340087891e-05}, /* L607 */
-{4.3803229331970215e+00, 1.5875697135925293e-04,
- 1.1920928955078125e-07, 2.8848648071289062e-05,
- -2.0563602447509766e-05}, /* L608 */
-{4.9733977317810059e+00, 1.8054246902465820e-04,
- 1.1920928955078125e-07, 2.7775764465332031e-05,
- -9.5367431640625000e-06}, /* L609 */
-{3.6023418903350830e+00, 1.3101100921630859e-04,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -1.0150671005249023e-04}, /* L610 */
-{4.5650100708007812e+00, 1.6626715660095215e-04,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- 1.3589859008789062e-05}, /* L611 */
-{3.1243860721588135e+00, 1.1402368545532227e-04,
- 1.1920928955078125e-07, 1.3661384582519531e-04,
- -3.3617019653320312e-05}, /* L612 */
-{4.2188105583190918e+00, 1.5448033809661865e-04,
- 1.1920928955078125e-07, -1.3507604598999023e-03,
- -1.0890960693359375e-03}, /* L613 */
-{7.6940755844116211e+00, 2.8172135353088379e-04,
- 1.1920928955078125e-07, 4.7922134399414062e-05,
- -1.9073486328125000e-06}, /* L614 */
-{4.5354285240173340e+00, 1.6629695892333984e-04,
- 1.1920928955078125e-07, -1.2600421905517578e-04,
- 7.8558921813964844e-05}, /* L615 */
-{3.8229675292968750e+00, 1.4039874076843262e-04,
- 1.1920928955078125e-07, -1.0097026824951172e-04,
- -9.8228454589843750e-05}, /* L616 */
-{3.9884676933288574e+00, 1.4671683311462402e-04,
- 1.1920928955078125e-07, -2.0247697830200195e-04,
- -3.0875205993652344e-05}, /* L617 */
-{4.5512847900390625e+00, 1.6772747039794922e-04,
- 1.1920928955078125e-07, 4.3153762817382812e-05,
- -7.5221061706542969e-05}, /* L618 */
-{4.2120561599731445e+00, 1.5556812286376953e-04,
- 1.1920928955078125e-07, -5.1796436309814453e-05,
- -5.4121017456054688e-05}, /* L619 */
-{3.9554276466369629e+00, 1.4622509479522705e-04,
- 1.1920928955078125e-07, 1.6379356384277344e-04,
- 2.3949146270751953e-04}, /* L620 */
-{4.1023797988891602e+00, 1.5189312398433685e-04,
- 1.1920928955078125e-07, -7.3254108428955078e-05,
- -9.5963478088378906e-05}, /* L621 */
-{3.5450844764709473e+00, 1.4391541481018066e-04,
- 1.1920928955078125e-07, 2.7126908302307129e-02,
- -2.3659825325012207e-02}, /* L622 */
-{3.3986780643463135e+00, 1.2625753879547119e-04,
- 1.1920928955078125e-07, -1.5157461166381836e-04,
- 1.5223026275634766e-04}, /* L623 */
-{3.2199184894561768e+00, 1.1977553367614746e-04,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 3.6001205444335938e-05}, /* L624 */
-{4.1866326332092285e+00, 1.5600025653839111e-04,
- 1.1920928955078125e-07, -1.0371208190917969e-05,
- 2.8729438781738281e-05}, /* L625 */
-{3.6669168472290039e+00, 1.3685226440429688e-04,
- 1.1920928955078125e-07, 7.7009201049804688e-05,
- -4.1246414184570312e-05}, /* L626 */
-{3.6282544136047363e+00, 1.3591349124908447e-04,
- 1.1920928955078125e-07, -1.5026330947875977e-04,
- 1.5854835510253906e-05}, /* L627 */
-{4.2142353057861328e+00, 1.5781819820404053e-04,
- 1.1920928955078125e-07, -3.4093856811523438e-05,
- -2.0509958267211914e-04}, /* L628 */
-{3.7081568241119385e+00, 1.3915076851844788e-04,
- 1.1920928955078125e-07, -3.5166740417480469e-05,
- 1.0728836059570312e-06}, /* L629 */
-{3.8718218803405762e+00, 1.4555273810401559e-04,
- 1.1920928955078125e-07, 2.7799606323242188e-04,
- 1.9097328186035156e-04}, /* L630 */
-{4.7972083091735840e+00, 1.8048286437988281e-04,
- 1.1920928955078125e-07, -1.1366605758666992e-04,
- 2.1934509277343750e-05}, /* L631 */
-{5.1822633743286133e+00, 1.9571185111999512e-04,
- 1.1920928955078125e-07, 1.1776685714721680e-03,
- 2.8848648071289062e-05}, /* L632 */
-{3.5153336524963379e+00, 1.3265013694763184e-04,
- 1.1920928955078125e-07, 3.3736228942871094e-05,
- 2.7418136596679688e-06}, /* L633 */
-{4.1298990249633789e+00, 1.5628337860107422e-04,
- 1.1920928955078125e-07, 1.1992454528808594e-04,
- 1.5294551849365234e-04}, /* L634 */
-{4.7550578117370605e+00, 1.8003582954406738e-04,
- 1.1920928955078125e-07, -9.3638896942138672e-05,
- -1.1885166168212891e-04}, /* L635 */
-{3.0633618831634521e+00, 1.1631846427917480e-04,
- 1.1920928955078125e-07, -3.9505958557128906e-04,
- 2.6392936706542969e-04}, /* L636 */
-{4.6574974060058594e+00, 1.7698109149932861e-04,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- -2.9784440994262695e-04}, /* L637 */
-{2.9007499217987061e+00, 1.1044647544622421e-04,
- 1.1920928955078125e-07, 1.0776519775390625e-04,
- -7.9870223999023438e-06}, /* L638 */
-{5.2138352394104004e+00, 1.9875913858413696e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-04,
- -2.7072429656982422e-04}, /* L639 */
-{3.8706736564636230e+00, 1.4767050743103027e-04,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- -3.8087368011474609e-05}, /* L640 */
-{3.7883164882659912e+00, 1.4474987983703613e-04,
- 1.1920928955078125e-07, -5.2630901336669922e-05,
- -1.8775463104248047e-05}, /* L641 */
-{4.7832365036010742e+00, 1.8313527107238770e-04,
- 1.1920928955078125e-07, 2.0658969879150391e-04,
- 3.2794475555419922e-04}, /* L642 */
-{3.5375435352325439e+00, 1.3563036918640137e-04,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- 2.4080276489257812e-05}, /* L643 */
-{5.1350893974304199e+00, 1.9714236259460449e-04,
- 1.1920928955078125e-07, -2.4557113647460938e-05,
- 7.7605247497558594e-05}, /* L644 */
-{4.8864350318908691e+00, 1.8793344497680664e-04,
- 1.1920928955078125e-07, 1.1920928955078125e-05,
- -1.5455484390258789e-04}, /* L645 */
-{3.5097515583038330e+00, 1.3519823551177979e-04,
- 1.1920928955078125e-07, 1.6713142395019531e-04,
- -2.5457143783569336e-04}, /* L646 */
-{3.6487514972686768e+00, 1.4074193313717842e-04,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- -3.6239624023437500e-05}, /* L647 */
-{3.8612313270568848e+00, 1.4916062355041504e-04,
- 1.1920928955078125e-07, 4.9471855163574219e-05,
- 6.1988830566406250e-06}, /* L648 */
-{3.3284945487976074e+00, 1.2879073619842529e-04,
- 1.1920928955078125e-07, 1.5091896057128906e-04,
- 4.6014785766601562e-05}, /* L649 */
-{4.6722373962402344e+00, 1.8103420734405518e-04,
- 1.1920928955078125e-07, -1.7106533050537109e-05,
- -4.4405460357666016e-05}, /* L650 */
-{5.2156605720520020e+00, 2.0256638526916504e-04,
- 1.1920928955078125e-07, -2.0247697830200195e-04,
- 2.7322769165039062e-04}, /* L651 */
-{3.6391518115997314e+00, 1.4147162437438965e-04,
- 1.1920928955078125e-07, -1.2040138244628906e-04,
- -4.4941902160644531e-05}, /* L652 */
-{3.7426073551177979e+00, 1.4568865299224854e-04,
- 1.1920928955078125e-07, -4.8875808715820312e-06,
- 5.9604644775390625e-05}, /* L653 */
-{4.7303042411804199e+00, 1.8444657325744629e-04,
- 1.1920928955078125e-07, -9.1314315795898438e-05,
- -1.0013580322265625e-04}, /* L654 */
-{3.4343707561492920e+00, 1.3425201177597046e-04,
- 1.1920928955078125e-07, 2.4425983428955078e-04,
- 1.6987323760986328e-04}, /* L655 */
-{4.0029425621032715e+00, 1.5653669834136963e-04,
- 1.1920928955078125e-07, -3.4570693969726562e-06,
- 9.4175338745117188e-06}, /* L656 */
-{5.2698073387145996e+00, 2.0644068717956543e-04,
- 1.1920928955078125e-07, 2.0098686218261719e-04,
- 7.1525573730468750e-05}, /* L657 */
-{5.0046882629394531e+00, 1.9636750221252441e-04,
- 1.1920928955078125e-07, 9.7632408142089844e-05,
- 7.6413154602050781e-05}, /* L658 */
-{3.7438876628875732e+00, 1.4706701040267944e-04,
- 1.1920928955078125e-07, -3.2782554626464844e-06,
- -2.3841857910156250e-06}, /* L659 */
-{4.4229402542114258e+00, 1.7401576042175293e-04,
- 1.1920928955078125e-07, -3.2544136047363281e-05,
- 2.7060508728027344e-05}, /* L660 */
-{5.0758147239685059e+00, 2.0009651780128479e-04,
- 1.1920928955078125e-07, -5.4478645324707031e-05,
- -5.1915645599365234e-05}, /* L661 */
-{4.4439287185668945e+00, 1.7542205750942230e-04,
- 1.1920928955078125e-07, 1.4352798461914062e-04,
- 6.9737434387207031e-05}, /* L662 */
-{5.2279777526855469e+00, 2.0700693130493164e-04,
- 1.1920928955078125e-07, 6.4611434936523438e-04,
- 6.3896179199218750e-04}, /* L663 */
-{4.2842249870300293e+00, 1.6960501670837402e-04,
- 1.1920928955078125e-07, -5.4717063903808594e-05,
- -8.8751316070556641e-05}, /* L664 */
-{4.8795695304870605e+00, 1.9347667694091797e-04,
- 1.1920928955078125e-07, -4.4882297515869141e-05,
- -5.9843063354492188e-05}, /* L665 */
-{5.1743521690368652e+00, 2.0560622215270996e-04,
- 1.1920928955078125e-07, -1.0699033737182617e-04,
- -4.3869018554687500e-04}, /* L666 */
-{4.8257226943969727e+00, 1.9189715385437012e-04,
- 1.1920928955078125e-07, -1.1563301086425781e-04,
- -4.8398971557617188e-05}, /* L667 */
-{4.2687072753906250e+00, 1.7032027244567871e-04,
- 1.1920928955078125e-07, 1.0657310485839844e-04,
- -6.0039758682250977e-04}, /* L668 */
-{3.9034028053283691e+00, 1.5568733215332031e-04,
- 1.1920928955078125e-07, 1.6808509826660156e-05,
- 8.3684921264648438e-05}, /* L669 */
-{3.9273929595947266e+00, 1.5687942504882812e-04,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- 4.4345855712890625e-05}, /* L670 */
-{3.6957836151123047e+00, 1.4856457710266113e-04,
- 1.1920928955078125e-07, -1.3905763626098633e-04,
- 1.3836622238159180e-03}, /* L671 */
-{5.8731136322021484e+00, 2.3533403873443604e-04,
- 1.1920928955078125e-07, -7.8678131103515625e-05,
- -1.8674135208129883e-04}, /* L672 */
-{3.8163423538208008e+00, 1.5315413475036621e-04,
- 1.1920928955078125e-07, 1.6117095947265625e-04,
- -2.1517276763916016e-05}, /* L673 */
-{4.3318314552307129e+00, 1.7416477203369141e-04,
- 1.1920928955078125e-07, -4.6145915985107422e-04,
- 6.8902969360351562e-05}, /* L674 */
-{4.4275774955749512e+00, 1.7821788787841797e-04,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- 1.0991096496582031e-04}, /* L675 */
-{4.0736703872680664e+00, 1.6416981816291809e-04,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- 7.8797340393066406e-05}, /* L676 */
-{4.0565977096557617e+00, 1.6373395919799805e-04,
- 1.1920928955078125e-07, -4.6491622924804688e-05,
- 1.5854835510253906e-05}, /* L677 */
-{3.9295365810394287e+00, 1.5896558761596680e-04,
- 1.1920928955078125e-07, 3.0410289764404297e-04,
- -8.2015991210937500e-05}, /* L678 */
-{4.9036130905151367e+00, 1.9854307174682617e-04,
- 1.1920928955078125e-07, -9.1910362243652344e-05,
- -1.3363361358642578e-04}, /* L679 */
-{4.2984266281127930e+00, 1.7577409744262695e-04,
- 1.1920928955078125e-07, 1.0821819305419922e-03,
- 6.5720081329345703e-04}, /* L680 */
-{3.5255796909332275e+00, 1.4317035675048828e-04,
- 1.1920928955078125e-07, 2.5343894958496094e-04,
- 5.2809715270996094e-05}, /* L681 */
-{4.0955486297607422e+00, 1.6650557518005371e-04,
- 1.1920928955078125e-07, 9.0479850769042969e-05,
- 5.3882598876953125e-05}, /* L682 */
-{3.4467804431915283e+00, 1.4035403728485107e-04,
- 1.1920928955078125e-07, -9.8705291748046875e-05,
- 2.5272369384765625e-05}, /* L683 */
-{3.5511398315429688e+00, 1.4485418796539307e-04,
- 1.1920928955078125e-07, -3.4093856811523438e-05,
- 2.3186206817626953e-04}, /* L684 */
-{4.1012806892395020e+00, 1.6748905181884766e-04,
- 1.1920928955078125e-07, -1.4930963516235352e-04,
- -1.2880563735961914e-04}, /* L685 */
-{3.5612938404083252e+00, 1.4570355415344238e-04,
- 1.1920928955078125e-07, -1.6689300537109375e-04,
- 2.3436546325683594e-04}, /* L686 */
-{4.6706566810607910e+00, 1.9151205196976662e-04,
- 1.1920928955078125e-07, -3.0565261840820312e-04,
- 1.1754035949707031e-04}, /* L687 */
-{4.5935311317443848e+00, 1.8841028213500977e-04,
- 1.1920928955078125e-07, 7.5578689575195312e-05,
- -1.0371208190917969e-05}, /* L688 */
-{4.9877967834472656e+00, 2.0501017570495605e-04,
- 1.1920928955078125e-07, -3.0648708343505859e-04,
- -3.2186508178710938e-05}, /* L689 */
-{4.7634758949279785e+00, 1.9614398479461670e-04,
- 1.1920928955078125e-07, -7.3885917663574219e-04,
- -4.4351816177368164e-04}, /* L690 */
-{4.8199486732482910e+00, 1.9869208335876465e-04,
- 1.1920928955078125e-07, -6.1625242233276367e-04,
- -1.8477439880371094e-04}, /* L691 */
-{5.1738538742065430e+00, 2.1356344223022461e-04,
- 1.1920928955078125e-07, -1.9747018814086914e-04,
- 1.4376640319824219e-04}, /* L692 */
-{4.5363945960998535e+00, 1.8741190433502197e-04,
- 1.1920928955078125e-07, 3.8266181945800781e-05,
- 2.1457672119140625e-06}, /* L693 */
-{3.9213244915008545e+00, 1.6272068023681641e-04,
- 1.1920928955078125e-07, 1.6252994537353516e-03,
- 1.0960102081298828e-03}, /* L694 */
-{4.6364102363586426e+00, 1.9219517707824707e-04,
- 1.1920928955078125e-07, -1.2320280075073242e-04,
- 2.5427341461181641e-04}, /* L695 */
-{4.1811957359313965e+00, 1.7352402210235596e-04,
- 1.1920928955078125e-07, 3.9255619049072266e-04,
- -2.0563602447509766e-05}, /* L696 */
-{4.1636705398559570e+00, 1.7303228378295898e-04,
- 1.1920928955078125e-07, 3.7074089050292969e-05,
- 1.2028217315673828e-04}, /* L697 */
-{3.9498898983001709e+00, 1.6440451145172119e-04,
- 1.1920928955078125e-07, -1.5205144882202148e-04,
- -2.4151802062988281e-04}, /* L698 */
-{4.4550080299377441e+00, 1.8566846847534180e-04,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -2.7775764465332031e-05}, /* L699 */
-{3.8921618461608887e+00, 1.6243755817413330e-04,
- 1.1920928955078125e-07, -8.4996223449707031e-05,
- 1.3172626495361328e-04}, /* L700 */
-{4.5664653778076172e+00, 1.9090622663497925e-04,
- 1.1920928955078125e-07, 2.0158290863037109e-04,
- 8.8930130004882812e-05}, /* L701 */
-{4.2649531364440918e+00, 1.7848610877990723e-04,
- 1.1920928955078125e-07, 6.3300132751464844e-05,
- 1.2004375457763672e-04}, /* L702 */
-{4.7060246467590332e+00, 1.9729137420654297e-04,
- 1.1920928955078125e-07, -5.5432319641113281e-05,
- 2.3150444030761719e-04}, /* L703 */
-{3.4902858734130859e+00, 1.4649331569671631e-04,
- 1.1920928955078125e-07, 9.1075897216796875e-05,
- -8.8393688201904297e-05}, /* L704 */
-{4.0546793937683105e+00, 1.7040967941284180e-04,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- -6.1988830566406250e-06}, /* L705 */
-{3.8790771961212158e+00, 1.6325712203979492e-04,
- 1.1920928955078125e-07, 7.7128410339355469e-05,
- -9.1195106506347656e-06}, /* L706 */
-{4.2897195816040039e+00, 1.8081068992614746e-04,
- 1.1920928955078125e-07, 6.5565109252929688e-05,
- 1.1277198791503906e-04}, /* L707 */
-{4.6935501098632812e+00, 1.9812583923339844e-04,
- 1.1920928955078125e-07, -2.5117397308349609e-04,
- 3.8743019104003906e-05}, /* L708 */
-{4.1629967689514160e+00, 1.7594546079635620e-04,
- 1.1920928955078125e-07, 1.4781951904296875e-05,
- 2.6106834411621094e-05}, /* L709 */
-{3.7989566326141357e+00, 1.6081333160400391e-04,
- 1.1920928955078125e-07, 8.4996223449707031e-05,
- 1.7154216766357422e-04}, /* L710 */
-{4.0509147644042969e+00, 1.7178058624267578e-04,
- 1.1920928955078125e-07, 6.5207481384277344e-05,
- 3.6954879760742188e-04}, /* L711 */
-{3.4944574832916260e+00, 1.4832615852355957e-04,
- 1.1920928955078125e-07, 3.2186508178710938e-05,
- 1.9550323486328125e-05}, /* L712 */
-{4.0025258064270020e+00, 1.7014145851135254e-04,
- 1.1920928955078125e-07, -4.1961669921875000e-05,
- 1.8990039825439453e-04}, /* L713 */
-{5.7011594772338867e+00, 2.4300813674926758e-04,
- 1.1920928955078125e-07, 1.8811225891113281e-04,
- -4.4184923171997070e-04}, /* L714 */
-{5.6165056228637695e+00, 2.3940205574035645e-04,
- 1.1920928955078125e-07, 2.4795532226562500e-05,
- -8.3446502685546875e-07}, /* L715 */
-{4.5763478279113770e+00, 1.9535422325134277e-04,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- 8.8810920715332031e-05}, /* L716 */
-{4.1430392265319824e+00, 1.7711520195007324e-04,
- 1.1920928955078125e-07, -6.8724155426025391e-05,
- -2.1576881408691406e-05}, /* L717 */
-{3.8978645801544189e+00, 1.6683340072631836e-04,
- 1.1920928955078125e-07, 1.3589859008789062e-05,
- -2.2828578948974609e-05}, /* L718 */
-{3.7061953544616699e+00, 1.5887618064880371e-04,
- 1.1920928955078125e-07, 3.8981437683105469e-05,
- 9.9301338195800781e-05}, /* L719 */
-{4.1609468460083008e+00, 1.7862766981124878e-04,
- 1.1920928955078125e-07, 6.2942504882812500e-05,
- 3.0946731567382812e-04}, /* L720 */
-{4.3612403869628906e+00, 1.8754601478576660e-04,
- 1.1920928955078125e-07, -1.0448694229125977e-04,
- -4.0233135223388672e-05}, /* L721 */
-{4.2303662300109863e+00, 1.8209964036941528e-04,
- 1.1920928955078125e-07, 9.4652175903320312e-05,
- -7.3909759521484375e-05}, /* L722 */
-{3.7578177452087402e+00, 1.6200542449951172e-04,
- 1.1920928955078125e-07, -9.3460083007812500e-05,
- 2.9087066650390625e-05}, /* L723 */
-{3.6999268531799316e+00, 1.5974044799804688e-04,
- 1.1920928955078125e-07, -1.3089179992675781e-04,
- 8.0227851867675781e-05}, /* L724 */
-{4.6208405494689941e+00, 1.9989907741546631e-04,
- 1.1920928955078125e-07, -8.2433223724365234e-05,
- 2.8610229492187500e-04}, /* L725 */
-{4.9151506423950195e+00, 2.1296739578247070e-04,
- 1.1920928955078125e-07, -2.4282932281494141e-04,
- -7.1287155151367188e-05}, /* L726 */
-{4.4860315322875977e+00, 1.9453093409538269e-04,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- -1.5413761138916016e-04}, /* L727 */
-{3.9735352993011475e+00, 1.7245858907699585e-04,
- 1.1920928955078125e-07, 3.8623809814453125e-05,
- 1.4221668243408203e-04}, /* L728 */
-{4.5213680267333984e+00, 1.9648671150207520e-04,
- 1.1920928955078125e-07, 1.1813640594482422e-04,
- 1.5139579772949219e-05}, /* L729 */
-{4.9566574096679688e+00, 2.1573901176452637e-04,
- 1.1920928955078125e-07, -3.3676624298095703e-05,
- -8.8036060333251953e-05}, /* L730 */
-{4.2565364837646484e+00, 1.8550455570220947e-04,
- 1.1920928955078125e-07, -8.5473060607910156e-05,
- 8.5711479187011719e-05}, /* L731 */
-{5.5883369445800781e+00, 2.4396926164627075e-04,
- 1.1920928955078125e-07, 1.1014938354492188e-04,
- 7.7605247497558594e-05}, /* L732 */
-{3.8435192108154297e+00, 1.6794493421912193e-04,
- 1.1920928955078125e-07, -2.2470951080322266e-05,
- 5.4359436035156250e-05}, /* L733 */
-{4.7376465797424316e+00, 2.0730495452880859e-04,
- 1.1920928955078125e-07, 1.1920928955078125e-05,
- -4.2200088500976562e-05}, /* L734 */
-{5.4993090629577637e+00, 2.4116039276123047e-04,
- 1.1920928955078125e-07, -1.5383958816528320e-04,
- -1.7124414443969727e-04}, /* L735 */
-{4.4497976303100586e+00, 1.9524991512298584e-04,
- 1.1920928955078125e-07, -3.9875507354736328e-05,
- 3.0398368835449219e-05}, /* L736 */
-{4.4794707298278809e+00, 1.9681453704833984e-04,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -2.3245811462402344e-06}, /* L737 */
-{4.2005600929260254e+00, 1.8480792641639709e-04,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- 7.8201293945312500e-05}, /* L738 */
-{3.7296545505523682e+00, 1.6435980796813965e-04,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- -9.6738338470458984e-05}, /* L739 */
-{4.5342345237731934e+00, 2.0003318786621094e-04,
- 1.1920928955078125e-07, -8.9347362518310547e-05,
- -7.7664852142333984e-05}, /* L740 */
-{4.9683303833007812e+00, 2.1946430206298828e-04,
- 1.1920928955078125e-07, 2.4437904357910156e-05,
- -4.7683715820312500e-05}, /* L741 */
-{3.8286004066467285e+00, 1.6938894987106323e-04,
- 1.1920928955078125e-07, -2.4497509002685547e-04,
- 4.1604042053222656e-05}, /* L742 */
-{4.5904011726379395e+00, 2.0360946655273438e-04,
- 1.1920928955078125e-07, -1.5014410018920898e-04,
- 6.1798095703125000e-04}, /* L743 */
-{3.7883598804473877e+00, 1.6818661242723465e-04,
- 1.1920928955078125e-07, -2.5999546051025391e-04,
- -3.3479928970336914e-04}, /* L744 */
-{5.0848455429077148e+00, 2.2590160369873047e-04,
- 1.1920928955078125e-07, 8.7141990661621094e-05,
- -1.0448694229125977e-04}, /* L745 */
-{3.9843575954437256e+00, 1.7718598246574402e-04,
- 1.1920928955078125e-07, -9.1195106506347656e-06,
- 5.4121017456054688e-05}, /* L746 */
-{4.4322652816772461e+00, 1.9737565889954567e-04,
- 1.1920928955078125e-07, -4.4763088226318359e-05,
- 9.4175338745117188e-06}, /* L747 */
-{5.8166418075561523e+00, 2.5949627161026001e-04,
- 1.1920928955078125e-07, -8.7261199951171875e-05,
- 1.0693073272705078e-04}, /* L748 */
-{6.2811937332153320e+00, 2.8045475482940674e-04,
- 1.1920928955078125e-07, 7.8678131103515625e-06,
- -5.9604644775390625e-07}, /* L749 */
-{2.8411679267883301e+00, 1.2714415788650513e-04,
- 1.1920928955078125e-07, -4.2319297790527344e-05,
- -2.4908781051635742e-04}, /* L750 */
-{4.4223418235778809e+00, 1.9854865968227386e-04,
- 1.1920928955078125e-07, 1.8000602722167969e-04,
- -1.2544989585876465e-03}, /* L751 */
-{4.3431792259216309e+00, 1.9469857215881348e-04,
- 1.1920928955078125e-07, 4.3272972106933594e-05,
- -1.8179416656494141e-05}, /* L752 */
-{3.8816151618957520e+00, 1.7435848712921143e-04,
- 1.1920928955078125e-07, -2.5892257690429688e-04,
- 4.9710273742675781e-05}, /* L753 */
-{5.6732382774353027e+00, 2.5509297847747803e-04,
- 1.1920928955078125e-07, -2.2393465042114258e-04,
- 6.3180923461914062e-05}, /* L754 */
-{5.2730417251586914e+00, 2.3734569549560547e-04,
- 1.1920928955078125e-07, 5.6505203247070312e-05,
- 2.4676322937011719e-05}, /* L755 */
-{4.5985279083251953e+00, 2.0729005336761475e-04,
- 1.1920928955078125e-07, -8.4340572357177734e-05,
- -8.5234642028808594e-05}, /* L756 */
-{5.6211819648742676e+00, 2.5376677513122559e-04,
- 1.1920928955078125e-07, 5.9127807617187500e-05,
- 1.0406970977783203e-04}, /* L757 */
-{4.8428277969360352e+00, 2.1901726722717285e-04,
- 1.1920928955078125e-07, -6.9975852966308594e-05,
- -1.4299154281616211e-04}, /* L758 */
-{4.7938642501831055e+00, 2.1734833717346191e-04,
- 1.1920928955078125e-07, -1.7386674880981445e-04,
- -5.8209896087646484e-04}, /* L759 */
-{4.0527749061584473e+00, 1.8370896577835083e-04,
- 1.1920928955078125e-07, 1.7631053924560547e-04,
- 9.1075897216796875e-05}, /* L760 */
-{4.8543033599853516e+00, 2.2025406360626221e-04,
- 1.1920928955078125e-07, -1.0609626770019531e-04,
- 1.1539459228515625e-04}, /* L761 */
-{4.4694385528564453e+00, 2.0309165120124817e-04,
- 1.1920928955078125e-07, 1.4996528625488281e-04,
- 2.1457672119140625e-06}, /* L762 */
-{4.3693590164184570e+00, 1.9875168800354004e-04,
- 1.1920928955078125e-07, 4.2796134948730469e-05,
- 2.6464462280273438e-05}, /* L763 */
-{4.7736887931823730e+00, 2.1749734878540039e-04,
- 1.1920928955078125e-07, -4.9948692321777344e-05,
- -3.3974647521972656e-05}, /* L764 */
-{4.1773786544799805e+00, 1.9134953618049622e-04,
- 1.1920928955078125e-07, -1.8298625946044922e-04,
- 5.9700012207031250e-04}, /* L765 */
-{5.5412731170654297e+00, 2.5303661823272705e-04,
- 1.1920928955078125e-07, -4.4345855712890625e-05,
- -6.2584877014160156e-06}, /* L766 */
-{3.8906898498535156e+00, 1.7795339226722717e-04,
- 1.1920928955078125e-07, -1.7160177230834961e-04,
- -9.3936920166015625e-05}, /* L767 */
-{3.5563375949859619e+00, 1.6283988952636719e-04,
- 1.1920928955078125e-07, -2.6762485504150391e-05,
- 9.4413757324218750e-05}, /* L768 */
-{4.6511545181274414e+00, 2.1323561668395996e-04,
- 1.1920928955078125e-07, 1.0848045349121094e-04,
- -1.7625093460083008e-04}, /* L769 */
-{4.3572177886962891e+00, 2.0003318786621094e-04,
- 1.1920928955078125e-07, 2.2172927856445312e-05,
- -2.6822090148925781e-06}, /* L770 */
-{4.6440820693969727e+00, 2.1349266171455383e-04,
- 1.1920928955078125e-07, 1.4352798461914062e-04,
- -7.5697898864746094e-05}, /* L771 */
-{4.2722020149230957e+00, 1.9661337137222290e-04,
- 1.1920928955078125e-07, -4.5299530029296875e-06,
- 1.4066696166992188e-05}, /* L772 */
-{4.3706703186035156e+00, 2.0164623856544495e-04,
- 1.1920928955078125e-07, 4.7779083251953125e-04,
- -4.5168399810791016e-04}, /* L773 */
-{4.6677560806274414e+00, 2.1549314260482788e-04,
- 1.1920928955078125e-07, -1.7702579498291016e-05,
- 2.1100044250488281e-05}, /* L774 */
-{5.8537640571594238e+00, 2.7045607566833496e-04,
- 1.1920928955078125e-07, 2.5629997253417969e-05,
- 4.0650367736816406e-05}, /* L775 */
-{4.3422040939331055e+00, 2.0086765289306641e-04,
- 1.1920928955078125e-07, 3.5881996154785156e-05,
- 5.7697296142578125e-05}, /* L776 */
-{4.5719070434570312e+00, 2.1189451217651367e-04,
- 1.1920928955078125e-07, 5.2094459533691406e-05,
- -4.5299530029296875e-06}, /* L777 */
-{5.6661624908447266e+00, 2.6317313313484192e-04,
- 1.1920928955078125e-07, -3.9887428283691406e-04,
- 1.1062622070312500e-04}, /* L778 */
-{5.5171098709106445e+00, 2.5627017021179199e-04,
- 1.1920928955078125e-07, 1.4817714691162109e-04,
- -1.8358230590820312e-04}, /* L779 */
-{4.9460015296936035e+00, 2.3001432418823242e-04,
- 1.1920928955078125e-07, 1.3113021850585938e-05,
- -6.1750411987304688e-05}, /* L780 */
-{5.2106895446777344e+00, 2.4268031120300293e-04,
- 1.1920928955078125e-07, -1.3160705566406250e-04,
- -2.9563903808593750e-04}, /* L781 */
-{5.0978212356567383e+00, 2.3767352104187012e-04,
- 1.1920928955078125e-07, 1.7762184143066406e-05,
- 5.8650970458984375e-05}, /* L782 */
-{5.3260412216186523e+00, 2.4871528148651123e-04,
- 1.1920928955078125e-07, 3.0171871185302734e-04,
- -5.3346157073974609e-05}, /* L783 */
-{3.9825551509857178e+00, 1.8614530563354492e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 7.7724456787109375e-05}, /* L784 */
-{3.2228932380676270e+00, 1.5085935592651367e-04,
- 1.1920928955078125e-07, -6.6936016082763672e-05,
- 4.9591064453125000e-05}, /* L785 */
-{5.7570858001708984e+00, 2.6974081993103027e-04,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- 2.6106834411621094e-05}, /* L786 */
-{5.2958049774169922e+00, 2.4849921464920044e-04,
- 1.1920928955078125e-07, -9.6201896667480469e-05,
- -8.6247920989990234e-05}, /* L787 */
-{5.4943833351135254e+00, 2.5819242000579834e-04,
- 1.1920928955078125e-07, -9.9539756774902344e-05,
- 2.5582313537597656e-04}, /* L788 */
-{4.2781906127929688e+00, 2.0244717597961426e-04,
- 1.1920928955078125e-07, -6.3729286193847656e-04,
- 1.9812583923339844e-04}, /* L789 */
-{4.7890214920043945e+00, 2.2557377815246582e-04,
- 1.1920928955078125e-07, 7.8201293945312500e-05,
- -4.4107437133789062e-06}, /* L790 */
-{5.2443380355834961e+00, 2.4740397930145264e-04,
- 1.1920928955078125e-07, -3.0672550201416016e-04,
- 1.4543533325195312e-05}, /* L791 */
-{6.9938297271728516e+00, 3.3122301101684570e-04,
- 1.1920928955078125e-07, 5.9568881988525391e-04,
- -4.2986869812011719e-04}, /* L792 */
-{4.7700786590576172e+00, 2.2555142641067505e-04,
- 1.1920928955078125e-07, -1.2797117233276367e-04,
- -9.4771385192871094e-06}, /* L793 */
-{4.3786382675170898e+00, 2.0731240510940552e-04,
- 1.1920928955078125e-07, 7.1287155151367188e-05,
- -1.6832351684570312e-04}, /* L794 */
-{5.4967217445373535e+00, 2.6054680347442627e-04,
- 1.1920928955078125e-07, -7.4803829193115234e-05,
- 1.4936923980712891e-04}, /* L795 */
-{4.3320999145507812e+00, 2.0601786673069000e-04,
- 1.1920928955078125e-07, 1.1360645294189453e-04,
- -3.4242868423461914e-04}, /* L796 */
-{5.6571002006530762e+00, 2.6884675025939941e-04,
- 1.1920928955078125e-07, 3.9458274841308594e-05,
- 7.8082084655761719e-05}, /* L797 */
-{5.1217212677001953e+00, 2.4369359016418457e-04,
- 1.1920928955078125e-07, -8.7201595306396484e-05,
- 1.1801719665527344e-05}, /* L798 */
-{4.9861407279968262e+00, 2.3943185806274414e-04,
- 1.1920928955078125e-07, -4.8807263374328613e-03,
- -4.0578842163085938e-04}, /* L799 */
-{5.3324775695800781e+00, 2.5433301925659180e-04,
- 1.1920928955078125e-07, 1.4197826385498047e-04,
- -3.3199787139892578e-05}, /* L800 */
-{4.9912142753601074e+00, 2.3838877677917480e-04,
- 1.1920928955078125e-07, 9.7751617431640625e-06,
- -4.2498111724853516e-05}, /* L801 */
-{4.8699021339416504e+00, 2.3297185543924570e-04,
- 1.1920928955078125e-07, 1.0132789611816406e-05,
- 2.4676322937011719e-05}, /* L802 */
-{4.5460243225097656e+00, 2.1766126155853271e-04,
- 1.1920928955078125e-07, 7.8797340393066406e-05,
- 5.9247016906738281e-05}, /* L803 */
-{4.5906333923339844e+00, 2.2003054618835449e-04,
- 1.1920928955078125e-07, -1.3887882232666016e-05,
- -8.1300735473632812e-05}, /* L804 */
-{4.1658539772033691e+00, 1.9994378089904785e-04,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -5.6862831115722656e-05}, /* L805 */
-{4.8872237205505371e+00, 2.3486092686653137e-04,
- 1.1920928955078125e-07, -1.2993812561035156e-05,
- 3.6954879760742188e-05}, /* L806 */
-{5.8850393295288086e+00, 2.8318166732788086e-04,
- 1.1920928955078125e-07, 1.7952919006347656e-04,
- 8.2254409790039062e-06}, /* L807 */
-{3.9728193283081055e+00, 1.9139051437377930e-04,
- 1.1920928955078125e-07, -2.1040439605712891e-05,
- 4.2557716369628906e-05}, /* L808 */
-{5.6959815025329590e+00, 2.7477741241455078e-04,
- 1.1920928955078125e-07, 1.8060207366943359e-04,
- 1.2326240539550781e-04}, /* L809 */
-{4.2816171646118164e+00, 2.0678341388702393e-04,
- 1.1920928955078125e-07, 5.3286552429199219e-05,
- -1.2958049774169922e-04}, /* L810 */
-{5.9511656761169434e+00, 2.8786063194274902e-04,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- -3.1292438507080078e-05}, /* L811 */
-{5.9504723548889160e+00, 2.8862990438938141e-04,
- 1.1920928955078125e-07, -2.2548437118530273e-04,
- 3.2556056976318359e-04}, /* L812 */
-{4.6004209518432617e+00, 2.2301077842712402e-04,
- 1.1920928955078125e-07, -1.3136863708496094e-04,
- 1.6760826110839844e-04}, /* L813 */
-{6.0180282592773438e+00, 2.9204040765762329e-04,
- 1.1920928955078125e-07, 3.4332275390625000e-05,
- 7.9274177551269531e-05}, /* L814 */
-{5.9383215904235840e+00, 2.8854608535766602e-04,
- 1.1920928955078125e-07, -1.6748905181884766e-05,
- -9.9360942840576172e-05}, /* L815 */
-{4.5037150382995605e+00, 2.1910667419433594e-04,
- 1.1920928955078125e-07, 1.0037422180175781e-04,
- -7.4923038482666016e-05}, /* L816 */
-{5.3696050643920898e+00, 2.6160478591918945e-04,
- 1.1920928955078125e-07, -7.3969364166259766e-05,
- 3.9577484130859375e-05}, /* L817 */
-{4.7260155677795410e+00, 2.3044459521770477e-04,
- 1.1920928955078125e-07, -3.1530857086181641e-05,
- -5.8412551879882812e-06}, /* L818 */
-{5.6246056556701660e+00, 2.7470663189888000e-04,
- 1.1920928955078125e-07, 1.1432170867919922e-04,
- 2.0027160644531250e-05}, /* L819 */
-{5.0637235641479492e+00, 2.4757534265518188e-04,
- 1.1920928955078125e-07, 1.3780593872070312e-04,
- 7.7962875366210938e-05}, /* L820 */
-{4.2316632270812988e+00, 2.0712614059448242e-04,
- 1.1920928955078125e-07, 3.3736228942871094e-05,
- 9.4532966613769531e-05}, /* L821 */
-{4.8559632301330566e+00, 2.3800134658813477e-04,
- 1.1920928955078125e-07, -1.5407800674438477e-04,
- -2.0074844360351562e-04}, /* L822 */
-{7.3548707962036133e+00, 3.6123394966125488e-04,
- 1.1920928955078125e-07, -5.8352947235107422e-04,
- -4.2349100112915039e-04}, /* L823 */
-{5.2314071655273438e+00, 2.5698542594909668e-04,
- 1.1920928955078125e-07, -4.6908855438232422e-05,
- 9.5367431640625000e-07}, /* L824 */
-{4.2577166557312012e+00, 2.0942091941833496e-04,
- 1.1920928955078125e-07, -6.6757202148437500e-06,
- -1.0222196578979492e-04}, /* L825 */
-{4.5907983779907227e+00, 2.2611278109252453e-04,
- 1.1920928955078125e-07, 1.3709068298339844e-04,
- -1.3291835784912109e-04}, /* L826 */
-{5.4349031448364258e+00, 2.6798620820045471e-04,
- 1.1920928955078125e-07, -3.2663345336914062e-05,
- -3.7491321563720703e-05}, /* L827 */
-{5.6199011802673340e+00, 2.7806311845779419e-04,
- 1.1920928955078125e-07, -4.1025876998901367e-04,
- -3.4266710281372070e-04}, /* L828 */
-{3.9830639362335205e+00, 1.9851326942443848e-04,
- 1.1920928955078125e-07, 3.5047531127929688e-03,
- -4.4169425964355469e-03}, /* L829 */
-{5.8889040946960449e+00, 2.9147043824195862e-04,
- 1.1920928955078125e-07, 5.3167343139648438e-05,
- 4.3511390686035156e-05}, /* L830 */
-{5.2526550292968750e+00, 2.6023387908935547e-04,
- 1.1920928955078125e-07, 9.2506408691406250e-05,
- -3.5285949707031250e-05}, /* L831 */
-{3.8960497379302979e+00, 1.9329320639371872e-04,
- 1.1920928955078125e-07, -2.8371810913085938e-05,
- -8.2969665527343750e-05}, /* L832 */
-{4.7689604759216309e+00, 2.3680925369262695e-04,
- 1.1920928955078125e-07, -8.1181526184082031e-05,
- -6.8724155426025391e-05}, /* L833 */
-{3.8987510204315186e+00, 1.9410252571105957e-04,
- 1.1920928955078125e-07, 3.2234191894531250e-04,
- -7.5441598892211914e-04}, /* L834 */
-{4.9486317634582520e+00, 2.4640560150146484e-04,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- 1.2242794036865234e-04}, /* L835 */
-{3.9442026615142822e+00, 1.9659474492073059e-04,
- 1.1920928955078125e-07, 7.6651573181152344e-05,
- -2.0086765289306641e-05}, /* L836 */
-{5.9707083702087402e+00, 2.9793381690979004e-04,
- 1.1920928955078125e-07, -3.9517879486083984e-05,
- -2.0980834960937500e-05}, /* L837 */
-{4.7735142707824707e+00, 2.3861229419708252e-04,
- 1.1920928955078125e-07, 5.2213668823242188e-05,
- 3.8743019104003906e-05}, /* L838 */
-{4.6249623298645020e+00, 2.3183226585388184e-04,
- 1.1920928955078125e-07, 2.1004676818847656e-04,
- -4.1198730468750000e-04}, /* L839 */
-{5.4616484642028809e+00, 2.7352571487426758e-04,
- 1.1920928955078125e-07, 1.9490718841552734e-04,
- -6.4313411712646484e-05}, /* L840 */
-{4.9883089065551758e+00, 2.5013089179992676e-04,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- -1.4644861221313477e-04}, /* L841 */
-{4.7599658966064453e+00, 2.3911148309707642e-04,
- 1.1920928955078125e-07, -5.7816505432128906e-05,
- -1.7404556274414062e-05}, /* L842 */
-{4.8852062225341797e+00, 2.4572014808654785e-04,
- 1.1920928955078125e-07, 4.6312808990478516e-04,
- -6.0021877288818359e-04}, /* L843 */
-{4.0558485984802246e+00, 2.0407140254974365e-04,
- 1.1920928955078125e-07, -6.3717365264892578e-05,
- 5.4717063903808594e-05}, /* L844 */
-{4.7143473625183105e+00, 2.3755431175231934e-04,
- 1.1920928955078125e-07, 4.9829483032226562e-05,
- -3.2603740692138672e-04}, /* L845 */
-{5.4247183799743652e+00, 2.7361512184143066e-04,
- 1.1920928955078125e-07, -1.5908479690551758e-04,
- 3.5762786865234375e-07}, /* L846 */
-{4.0128397941589355e+00, 2.0265579223632812e-04,
- 1.1920928955078125e-07, 3.9219856262207031e-05,
- 4.3630599975585938e-05}, /* L847 */
-{5.2048635482788086e+00, 2.6324391365051270e-04,
- 1.1920928955078125e-07, -3.1137466430664062e-04,
- -1.9633769989013672e-04}, /* L848 */
-{5.2110257148742676e+00, 2.6375055313110352e-04,
- 1.1920928955078125e-07, -8.6665153503417969e-05,
- -6.2644481658935547e-05}, /* L849 */
-{6.0438160896301270e+00, 3.0627846717834473e-04,
- 1.1920928955078125e-07, -4.8518180847167969e-05,
- -2.2947788238525391e-05}, /* L850 */
-{4.4402437210083008e+00, 2.2566318511962891e-04,
- 1.1920928955078125e-07, -9.5075368881225586e-04,
- 4.9090385437011719e-04}, /* L851 */
-{5.3619003295898438e+00, 2.7233362197875977e-04,
- 1.1920928955078125e-07, 5.1021575927734375e-05,
- 3.6597251892089844e-05}, /* L852 */
-{4.2721757888793945e+00, 2.1752715110778809e-04,
- 1.1920928955078125e-07, 9.2625617980957031e-04,
- -3.9339065551757812e-04}, /* L853 */
-{4.6402668952941895e+00, 2.3627281188964844e-04,
- 1.1920928955078125e-07, 6.5684318542480469e-05,
- 1.3113021850585938e-05}, /* L854 */
-{5.0893239974975586e+00, 2.5998055934906006e-04,
- 1.1920928955078125e-07, -1.7511844635009766e-04,
- -1.2987852096557617e-03}, /* L855 */
-{5.0811262130737305e+00, 2.5931000709533691e-04,
- 1.1920928955078125e-07, -7.0512294769287109e-05,
- 5.1736831665039062e-05}, /* L856 */
-{4.0615801811218262e+00, 2.0751357078552246e-04,
- 1.1920928955078125e-07, 7.3552131652832031e-05,
- -4.5835971832275391e-05}, /* L857 */
-{4.6237492561340332e+00, 2.3762881755828857e-04,
- 1.1920928955078125e-07, 9.4044208526611328e-04,
- 2.4342536926269531e-03}, /* L858 */
-{5.1871380805969238e+00, 2.6620924472808838e-04,
- 1.1920928955078125e-07, 5.9831142425537109e-04,
- -7.7795982360839844e-04}, /* L859 */
-{4.9393477439880371e+00, 2.5528669357299805e-04,
- 1.1920928955078125e-07, 2.1551847457885742e-03,
- 4.4703483581542969e-04}, /* L860 */
-{4.3433337211608887e+00, 2.2295117378234863e-04,
- 1.1920928955078125e-07, 2.7060508728027344e-05,
- -1.0150671005249023e-04}, /* L861 */
-{4.8765621185302734e+00, 2.5060772895812988e-04,
- 1.1920928955078125e-07, -7.5995922088623047e-05,
- -7.4505805969238281e-06}, /* L862 */
-{4.3017992973327637e+00, 2.2132322192192078e-04,
- 1.1920928955078125e-07, -3.1232833862304688e-05,
- 3.2067298889160156e-05}, /* L863 */
-{4.9364428520202637e+00, 2.5454163551330566e-04,
- 1.1920928955078125e-07, 5.8770179748535156e-05,
- -2.4408102035522461e-04}, /* L864 */
-{4.9730615615844727e+00, 2.5656819343566895e-04,
- 1.1920928955078125e-07, 8.2254409790039062e-06,
- -7.9691410064697266e-05}, /* L865 */
-{4.9953870773315430e+00, 2.5817751884460449e-04,
- 1.1920928955078125e-07, 2.1409988403320312e-04,
- 7.0691108703613281e-05}, /* L866 */
-{5.1169176101684570e+00, 2.6482343673706055e-04,
- 1.1920928955078125e-07, -2.5224685668945312e-04,
- -3.2728910446166992e-04}, /* L867 */
-{5.0259714126586914e+00, 2.6010721921920776e-04,
- 1.1920928955078125e-07, 1.7523765563964844e-04,
- -8.6367130279541016e-05}, /* L868 */
-{5.6925835609436035e+00, 2.9506534337997437e-04,
- 1.1920928955078125e-07, 7.4386596679687500e-05,
- 7.3790550231933594e-05}, /* L869 */
-{5.8348283767700195e+00, 3.0323863029479980e-04,
- 1.1920928955078125e-07, 1.5866756439208984e-04,
- -4.1258335113525391e-04}, /* L870 */
-{4.7762055397033691e+00, 2.4810433387756348e-04,
- 1.1920928955078125e-07, -1.4567375183105469e-04,
- -2.0861625671386719e-04}, /* L871 */
-{5.0528659820556641e+00, 2.6276707649230957e-04,
- 1.1920928955078125e-07, -2.2387504577636719e-04,
- -2.3901462554931641e-05}, /* L872 */
-{6.3173775672912598e+00, 3.2880902290344238e-04,
- 1.1920928955078125e-07, 1.5485286712646484e-04,
- -3.0636787414550781e-05}, /* L873 */
-{5.9593586921691895e+00, 3.1055323779582977e-04,
- 1.1920928955078125e-07, 2.7334690093994141e-04,
- 3.0517578125000000e-05}, /* L874 */
-{5.4359879493713379e+00, 2.8392672538757324e-04,
- 1.1920928955078125e-07, 3.8957595825195312e-04,
- 3.3855438232421875e-04}, /* L875 */
-{5.7845115661621094e+00, 3.0264258384704590e-04,
- 1.1920928955078125e-07, -8.6009502410888672e-04,
- -1.8996596336364746e-03}, /* L876 */
-{5.0507979393005371e+00, 2.6407837867736816e-04,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -6.3776969909667969e-06}, /* L877 */
-{5.0491905212402344e+00, 2.6434659957885742e-04,
- 1.1920928955078125e-07, -2.8848648071289062e-05,
- 3.2186508178710938e-05}, /* L878 */
-{4.3716835975646973e+00, 2.2917427122592926e-04,
- 1.1920928955078125e-07, -1.7577409744262695e-04,
- 1.3244152069091797e-04}, /* L879 */
-{5.4264287948608398e+00, 2.8467178344726562e-04,
- 1.1920928955078125e-07, 1.4638900756835938e-04,
- 6.2465667724609375e-05}, /* L880 */
-{4.9131278991699219e+00, 2.6020407676696777e-04,
- 1.1920928955078125e-07, -7.1239471435546875e-04,
- -2.0658969879150391e-04}, /* L881 */
-{4.8762574195861816e+00, 2.5716423988342285e-04,
- 1.1920928955078125e-07, 1.9896030426025391e-04,
- 6.6602230072021484e-04}, /* L882 */
-{4.6789541244506836e+00, 2.4637952446937561e-04,
- 1.1920928955078125e-07, 8.9049339294433594e-05,
- 2.4962425231933594e-04}, /* L883 */
-{4.6237559318542480e+00, 2.4369359016418457e-04,
- 1.1920928955078125e-07, -7.1167945861816406e-05,
- -1.4901161193847656e-05}, /* L884 */
-{5.6558389663696289e+00, 2.9852986335754395e-04,
- 1.1920928955078125e-07, 3.2424926757812500e-04,
- -2.8312206268310547e-05}, /* L885 */
-{5.1926608085632324e+00, 2.7454318478703499e-04,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- 2.5272369384765625e-05}, /* L886 */
-{4.7287635803222656e+00, 2.5012157857418060e-04,
- 1.1920928955078125e-07, 1.9419193267822266e-04,
- -7.8141689300537109e-05}, /* L887 */
-{5.6029157638549805e+00, 2.9662251472473145e-04,
- 1.1920928955078125e-07, 1.0848045349121094e-04,
- -4.5895576477050781e-06}, /* L888 */
-{5.2500104904174805e+00, 2.7823448181152344e-04,
- 1.1920928955078125e-07, -4.0233135223388672e-05,
- -4.1604042053222656e-05}, /* L889 */
-{4.7532944679260254e+00, 2.5227665901184082e-04,
- 1.1920928955078125e-07, 7.8797340393066406e-05,
- -9.8645687103271484e-05}, /* L890 */
-{5.5787529945373535e+00, 2.9674172401428223e-04,
- 1.1920928955078125e-07, -1.4084577560424805e-04,
- 6.0939788818359375e-04}, /* L891 */
-{4.6046619415283203e+00, 2.4493038654327393e-04,
- 1.1920928955078125e-07, -1.0323524475097656e-04,
- -4.1127204895019531e-05}, /* L892 */
-{5.4097957611083984e+00, 2.8806924819946289e-04,
- 1.1920928955078125e-07, -8.0347061157226562e-05,
- -3.5166740417480469e-06}, /* L893 */
-{4.9186348915100098e+00, 2.6221573352813721e-04,
- 1.1920928955078125e-07, -1.5175342559814453e-04,
- 2.8216838836669922e-04}, /* L894 */
-{6.5284805297851562e+00, 3.4872069954872131e-04,
- 1.1920928955078125e-07, -1.1943578720092773e-03,
- 3.6847591400146484e-04}, /* L895 */
-{4.8592348098754883e+00, 2.5957822799682617e-04,
- 1.1920928955078125e-07, 3.7193298339843750e-05,
- -1.6868114471435547e-05}, /* L896 */
-{5.3040013313293457e+00, 2.8370320796966553e-04,
- 1.1920928955078125e-07, 7.9512596130371094e-05,
- 7.9274177551269531e-05}, /* L897 */
-{7.1662878990173340e+00, 3.8374215364456177e-04,
- 1.1920928955078125e-07, 1.2397766113281250e-04,
- -1.6736984252929688e-04}, /* L898 */
-{5.4948153495788574e+00, 2.9470399022102356e-04,
- 1.1920928955078125e-07, 2.4664402008056641e-04,
- 2.1421909332275391e-04}, /* L899 */
-{6.2433843612670898e+00, 3.3500790596008301e-04,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- 3.4332275390625000e-05}, /* L900 */
-{5.7844600677490234e+00, 3.1146407127380371e-04,
- 1.1920928955078125e-07, -8.9049339294433594e-04,
- -5.9968233108520508e-04}, /* L901 */
-{5.7363834381103516e+00, 3.0866265296936035e-04,
- 1.1920928955078125e-07, -2.2929906845092773e-04,
- 1.5115737915039062e-04}, /* L902 */
-{5.8233127593994141e+00, 3.1360983848571777e-04,
- 1.1920928955078125e-07, -4.1246414184570312e-05,
- -1.4245510101318359e-05}, /* L903 */
-{5.6014518737792969e+00, 3.0232407152652740e-04,
- 1.1920928955078125e-07, 9.0157985687255859e-04,
- 2.6261806488037109e-04}, /* L904 */
-{5.0150942802429199e+00, 2.7075409889221191e-04,
- 1.1920928955078125e-07, 3.1948089599609375e-04,
- -1.5497207641601562e-06}, /* L905 */
-{5.8334345817565918e+00, 3.1509995460510254e-04,
- 1.1920928955078125e-07, -6.4909458160400391e-05,
- 1.8131732940673828e-04}, /* L906 */
-{5.2944221496582031e+00, 2.8637051582336426e-04,
- 1.1920928955078125e-07, 1.1658668518066406e-04,
- 3.9458274841308594e-04}, /* L907 */
-{4.7547850608825684e+00, 2.5753676891326904e-04,
- 1.1920928955078125e-07, 7.1287155151367188e-05,
- -2.3114681243896484e-04}, /* L908 */
-{5.3960723876953125e+00, 2.9253959655761719e-04,
- 1.1920928955078125e-07, -9.0241432189941406e-05,
- -7.6591968536376953e-05}, /* L909 */
-{7.2856726646423340e+00, 3.9578787982463837e-04,
- 1.1920928955078125e-07, -3.2252073287963867e-04,
- -2.1225214004516602e-04}, /* L910 */
-{5.2319149971008301e+00, 2.8572976589202881e-04,
- 1.1920928955078125e-07, -2.0481944084167480e-03,
- -1.6152858734130859e-03}, /* L911 */
-{5.1695442199707031e+00, 2.8257071971893311e-04,
- 1.1920928955078125e-07, 2.3112297058105469e-03,
- 8.3923339843750000e-05}, /* L912 */
-{4.4177427291870117e+00, 2.4089217185974121e-04,
- 1.1920928955078125e-07, -1.2773275375366211e-04,
- -1.1294484138488770e-03}, /* L913 */
-{7.0309958457946777e+00, 3.8324296474456787e-04,
- 1.1920928955078125e-07, -3.9100646972656250e-05,
- -7.6234340667724609e-05}, /* L914 */
-{6.9282450675964355e+00, 3.7834048271179199e-04,
- 1.1920928955078125e-07, -2.4181604385375977e-04,
- 9.2148780822753906e-05}, /* L915 */
-{5.4559311866760254e+00, 3.0207633972167969e-04,
- 1.1920928955078125e-07, -2.2244453430175781e-04,
- 3.7927627563476562e-03}, /* L916 */
-{5.0569982528686523e+00, 2.7647614479064941e-04,
- 1.1920928955078125e-07, 3.9815902709960938e-05,
- 1.4305114746093750e-06}, /* L917 */
-{5.3764057159423828e+00, 2.9912590980529785e-04,
- 1.1920928955078125e-07, 3.4743547439575195e-03,
- 9.3233585357666016e-03}, /* L918 */
-{3.9816880226135254e+00, 2.1830201148986816e-04,
- 1.1920928955078125e-07, -1.0031461715698242e-04,
- -2.4861097335815430e-04}, /* L919 */
-{5.4723439216613770e+00, 3.0027329921722412e-04,
- 1.1920928955078125e-07, -1.0710954666137695e-04,
- 4.1365623474121094e-05}, /* L920 */
-{5.4966359138488770e+00, 3.0212104320526123e-04,
- 1.1920928955078125e-07, -2.0968914031982422e-04,
- 3.8778781890869141e-04}, /* L921 */
-{5.0344314575195312e+00, 2.7674436569213867e-04,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- -7.8082084655761719e-05}, /* L922 */
-{5.0549912452697754e+00, 2.7821958065032959e-04,
- 1.1920928955078125e-07, -4.8875808715820312e-05,
- -1.7720460891723633e-04}, /* L923 */
-{4.3978548049926758e+00, 2.4357438087463379e-04,
- 1.1920928955078125e-07, 2.3881196975708008e-03,
- 2.6938915252685547e-03}, /* L924 */
-{7.5419149398803711e+00, 4.1610002517700195e-04,
- 1.1920928955078125e-07, 4.5907497406005859e-04,
- -4.5418739318847656e-05}, /* L925 */
-{6.9681735038757324e+00, 3.8468837738037109e-04,
- 1.1920928955078125e-07, 9.7990036010742188e-05,
- 9.9897384643554688e-05}, /* L926 */
-{4.3679957389831543e+00, 2.4139881134033203e-04,
- 1.1920928955078125e-07, -3.0338764190673828e-05,
- 6.3776969909667969e-05}, /* L927 */
-{6.0600848197937012e+00, 3.3604353666305542e-04,
- 1.1920928955078125e-07, -5.9378147125244141e-04,
- 3.6072731018066406e-04}, /* L928 */
-{6.8035759925842285e+00, 3.7705898284912109e-04,
- 1.1920928955078125e-07, -5.3423643112182617e-04,
- 2.3221969604492188e-04}, /* L929 */
-{4.9864921569824219e+00, 2.7665495872497559e-04,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- -2.9027462005615234e-05}, /* L930 */
-{5.7451725006103516e+00, 3.1891465187072754e-04,
- 1.1920928955078125e-07, 3.6120414733886719e-05,
- 1.1074542999267578e-04}, /* L931 */
-{4.7445440292358398e+00, 2.7416646480560303e-04,
- 1.1920928955078125e-07, -5.5706501007080078e-04,
- 5.3735971450805664e-03}, /* L932 */
-{6.1595239639282227e+00, 3.4263730049133301e-04,
- 1.1920928955078125e-07, 6.5207481384277344e-05,
- -8.2314014434814453e-05}, /* L933 */
-{4.8419675827026367e+00, 2.6962161064147949e-04,
- 1.1920928955078125e-07, 8.7976455688476562e-05,
- 1.2183189392089844e-04}, /* L934 */
-{6.1975789070129395e+00, 3.4543126821517944e-04,
- 1.1920928955078125e-07, 1.9431114196777344e-05,
- -1.1384487152099609e-05}, /* L935 */
-{4.5340342521667480e+00, 2.5942921638488770e-04,
- 1.1920928955078125e-07, 1.5318393707275391e-03,
- -5.6353211402893066e-03}, /* L936 */
-{7.9678297042846680e+00, 4.4567883014678955e-04,
- 1.1920928955078125e-07, 2.4378299713134766e-04,
- -1.1312961578369141e-04}, /* L937 */
-{6.4559397697448730e+00, 3.6111474037170410e-04,
- 1.1920928955078125e-07, 1.6903877258300781e-04,
- 3.0875205993652344e-05}, /* L938 */
-{4.6038875579833984e+00, 2.5776028633117676e-04,
- 1.1920928955078125e-07, -4.5835971832275391e-05,
- -2.4127960205078125e-04}, /* L939 */
-{5.1171851158142090e+00, 2.8726458549499512e-04,
- 1.1920928955078125e-07, -4.5216083526611328e-04,
- -3.8754940032958984e-04}, /* L940 */
-{5.1062717437744141e+00, 2.8651952743530273e-04,
- 1.1920928955078125e-07, 1.8024444580078125e-04,
- -3.2663345336914062e-05}, /* L941 */
-{5.2334847450256348e+00, 2.9407441616058350e-04,
- 1.1920928955078125e-07, -2.4121999740600586e-04,
- -1.2457370758056641e-05}, /* L942 */
-{6.2667074203491211e+00, 3.5234913229942322e-04,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -6.3896179199218750e-05}, /* L943 */
-{4.2498359680175781e+00, 2.3916363716125488e-04,
- 1.1920928955078125e-07, 6.3538551330566406e-05,
- 1.5497207641601562e-06}, /* L944 */
-{4.7044043540954590e+00, 2.6502460241317749e-04,
- 1.1920928955078125e-07, -5.4359436035156250e-05,
- -1.9669532775878906e-06}, /* L945 */
-{5.0836496353149414e+00, 2.8671324253082275e-04,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- -4.5478343963623047e-05}, /* L946 */
-{5.3319334983825684e+00, 3.0108354985713959e-04,
- 1.1920928955078125e-07, -8.0466270446777344e-05,
- -2.3514032363891602e-04}, /* L947 */
-{5.6575970649719238e+00, 3.1993538141250610e-04,
- 1.1920928955078125e-07, 1.9192695617675781e-04,
- 1.6725063323974609e-04}, /* L948 */
-{6.7648687362670898e+00, 3.8281083106994629e-04,
- 1.1920928955078125e-07, 3.8981437683105469e-05,
- 3.6847591400146484e-04}, /* L949 */
-{4.9279279708862305e+00, 2.8058886528015137e-04,
- 1.1920928955078125e-07, -2.7950406074523926e-03,
- 4.2028427124023438e-03}, /* L950 */
-{6.0424184799194336e+00, 3.4257769584655762e-04,
- 1.1920928955078125e-07, 4.9352645874023438e-05,
- -7.9154968261718750e-05}, /* L951 */
-{6.3592963218688965e+00, 3.6108493804931641e-04,
- 1.1920928955078125e-07, 1.1348724365234375e-04,
- 9.1314315795898438e-05}, /* L952 */
-{4.8536510467529297e+00, 2.7592480182647705e-04,
- 1.1920928955078125e-07, 3.2711029052734375e-04,
- -1.1169910430908203e-04}, /* L953 */
-{4.9448685646057129e+00, 2.8138607740402222e-04,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -1.8918514251708984e-04}, /* L954 */
-{6.9093933105468750e+00, 3.9339065551757812e-04,
- 1.1920928955078125e-07, -1.0728836059570312e-05,
- -3.5345554351806641e-05}, /* L955 */
-{6.2355756759643555e+00, 3.5572052001953125e-04,
- 1.1920928955078125e-07, 6.2227249145507812e-04,
- -2.1344423294067383e-04}, /* L956 */
-{5.4618668556213379e+00, 3.1161308288574219e-04,
- 1.1920928955078125e-07, -7.5697898864746094e-06,
- 1.5020370483398438e-05}, /* L957 */
-{5.6657543182373047e+00, 3.2372772693634033e-04,
- 1.1920928955078125e-07, -1.3417005538940430e-04,
- 1.9717216491699219e-04}, /* L958 */
-{5.3106651306152344e+00, 3.0371546745300293e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- -2.4265050888061523e-04}, /* L959 */
-{6.1326141357421875e+00, 3.5106390714645386e-04,
- 1.1920928955078125e-07, 6.5684318542480469e-05,
- 1.2242794036865234e-04}, /* L960 */
-{5.1424431800842285e+00, 2.9462575912475586e-04,
- 1.1920928955078125e-07, 4.4226646423339844e-05,
- -2.6702880859375000e-05}, /* L961 */
-{5.4141693115234375e+00, 3.1057000160217285e-04,
- 1.1920928955078125e-07, -1.7917156219482422e-04,
- -1.9353628158569336e-04}, /* L962 */
-{5.1057934761047363e+00, 2.9316765721887350e-04,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -1.3709068298339844e-06}, /* L963 */
-{4.3034482002258301e+00, 2.4742633104324341e-04,
- 1.1920928955078125e-07, 1.7940998077392578e-04,
- 6.1273574829101562e-05}, /* L964 */
-{5.7545542716979980e+00, 3.3110380172729492e-04,
- 1.1920928955078125e-07, 8.9883804321289062e-05,
- 1.2290477752685547e-04}, /* L965 */
-{5.3867731094360352e+00, 3.1632184982299805e-04,
- 1.1920928955078125e-07, 2.6062726974487305e-03,
- 1.3935565948486328e-04}, /* L966 */
-{4.5265178680419922e+00, 2.6097893714904785e-04,
- 1.1920928955078125e-07, -8.1837177276611328e-05,
- 1.6140937805175781e-04}, /* L967 */
-{4.3001074790954590e+00, 2.4837255477905273e-04,
- 1.1920928955078125e-07, -6.0498714447021484e-05,
- 3.8266181945800781e-05}, /* L968 */
-{6.7583003044128418e+00, 3.9049983024597168e-04,
- 1.1920928955078125e-07, -9.3460083007812500e-05,
- -8.9645385742187500e-05}, /* L969 */
-{6.3749914169311523e+00, 3.6871433258056641e-04,
- 1.1920928955078125e-07, 4.1127204895019531e-05,
- -9.6738338470458984e-05}, /* L970 */
-{5.4225873947143555e+00, 3.1396746635437012e-04,
- 1.1920928955078125e-07, -2.8431415557861328e-05,
- 2.3007392883300781e-04}, /* L971 */
-{5.0508465766906738e+00, 2.9276311397552490e-04,
- 1.1920928955078125e-07, 1.2826919555664062e-04,
- -8.6545944213867188e-05}, /* L972 */
-{5.2312722206115723e+00, 3.0350685119628906e-04,
- 1.1920928955078125e-07, 2.1100044250488281e-05,
- -5.4299831390380859e-05}, /* L973 */
-{4.7707667350769043e+00, 2.7702748775482178e-04,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- 6.8783760070800781e-05}, /* L974 */
-{6.8601779937744141e+00, 3.9875507354736328e-04,
- 1.1920928955078125e-07, -1.6814470291137695e-04,
- 4.6491622924804688e-06}, /* L975 */
-{8.3237686157226562e+00, 4.8434734344482422e-04,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 1.6474723815917969e-04}, /* L976 */
-{5.0740065574645996e+00, 2.9557943344116211e-04,
- 1.1920928955078125e-07, 6.5565109252929688e-05,
- 1.7750263214111328e-04}, /* L977 */
-{5.2318091392517090e+00, 3.0514597892761230e-04,
- 1.1920928955078125e-07, 2.0170211791992188e-04,
- 7.7724456787109375e-05}, /* L978 */
-{7.0031437873840332e+00, 4.0894746780395508e-04,
- 1.1920928955078125e-07, 2.2268295288085938e-04,
- 3.1197071075439453e-04}, /* L979 */
-{6.1762423515319824e+00, 3.6111474037170410e-04,
- 1.1920928955078125e-07, -3.3825635910034180e-04,
- 3.9160251617431641e-04}, /* L980 */
-{5.8927702903747559e+00, 3.4505128860473633e-04,
- 1.1920928955078125e-07, -9.4354152679443359e-05,
- 1.9359588623046875e-04}, /* L981 */
-{5.5756750106811523e+00, 3.2694637775421143e-04,
- 1.1920928955078125e-07, 2.3913383483886719e-04,
- 6.5195560455322266e-04}, /* L982 */
-{6.5549726486206055e+00, 3.8413703441619873e-04,
- 1.1920928955078125e-07, -3.1530857086181641e-05,
- 2.3961067199707031e-05}, /* L983 */
-{5.5842485427856445e+00, 3.2779574394226074e-04,
- 1.1920928955078125e-07, -1.2886524200439453e-04,
- -9.5367431640625000e-07}, /* L984 */
-{6.7066521644592285e+00, 3.9595365524291992e-04,
- 1.1920928955078125e-07, -2.5489926338195801e-03,
- 6.2537193298339844e-04}, /* L985 */
-{5.6474647521972656e+00, 3.3213943243026733e-04,
- 1.1920928955078125e-07, 9.0003013610839844e-05,
- 1.3649463653564453e-04}, /* L986 */
-{5.2302017211914062e+00, 3.0791014432907104e-04,
- 1.1920928955078125e-07, 7.2121620178222656e-05,
- -2.8920173645019531e-04}, /* L987 */
-{4.7172813415527344e+00, 2.7796626091003418e-04,
- 1.1920928955078125e-07, -5.0842761993408203e-05,
- 1.6498565673828125e-04}, /* L988 */
-{6.4009451866149902e+00, 3.7741661071777344e-04,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -1.0389089584350586e-04}, /* L989 */
-{6.7579894065856934e+00, 3.9902701973915100e-04,
- 1.1920928955078125e-07, -7.7664852142333984e-05,
- -3.3849477767944336e-04}, /* L990 */
-{5.5737280845642090e+00, 3.2934546470642090e-04,
- 1.1920928955078125e-07, 1.4698505401611328e-04,
- 1.3053417205810547e-04}, /* L991 */
-{5.8503813743591309e+00, 3.4610927104949951e-04,
- 1.1920928955078125e-07, 2.3126602172851562e-05,
- -6.0558319091796875e-05}, /* L992 */
-{5.3022623062133789e+00, 3.1401216983795166e-04,
- 1.1920928955078125e-07, -2.0194053649902344e-04,
- 3.6597251892089844e-04}, /* L993 */
-{7.1494469642639160e+00, 4.2387843132019043e-04,
- 1.1920928955078125e-07, -4.5478343963623047e-05,
- 3.0267238616943359e-04}, /* L994 */
-{6.6653022766113281e+00, 3.9577484130859375e-04,
- 1.1920928955078125e-07, -3.1816959381103516e-04,
- -3.1900405883789062e-04}, /* L995 */
-{6.2761549949645996e+00, 3.7273764610290527e-04,
- 1.1920928955078125e-07, 1.0085105895996094e-04,
- 3.5762786865234375e-07}, /* L996 */
-{5.2721443176269531e+00, 3.1337141990661621e-04,
- 1.1920928955078125e-07, 1.8119812011718750e-05,
- -1.5914440155029297e-05}, /* L997 */
-{5.5026473999023438e+00, 3.2849609851837158e-04,
- 1.1920928955078125e-07, -2.7120113372802734e-04,
- -6.0898065567016602e-04}, /* L998 */
-{7.3746266365051270e+00, 4.3961405754089355e-04,
- 1.1920928955078125e-07, -1.6993284225463867e-04,
- -5.8591365814208984e-05}, /* L999 */
-{6.1620302200317383e+00, 3.6734342575073242e-04,
- 1.1920928955078125e-07, -1.1640787124633789e-04,
- 8.7499618530273438e-05}, /* L1000 */
-{1.3462138175964355e+01, 1.6159936785697937e-03,
- 1.1920928955078125e-07, -2.4120807647705078e-03,
- 9.3829631805419922e-04}, /* L1001 */
-{1.3280698776245117e+01, 2.4043619632720947e-03,
- 1.1920928955078125e-07, 3.1414031982421875e-03,
- -4.2670965194702148e-04}, /* L1002 */
-{2.4343105316162109e+01, 5.8691725134849548e-03,
- 1.1920928955078125e-07, 8.0537796020507812e-04,
- 4.9936771392822266e-04}, /* L1003 */
-{2.3355789184570312e+01, 7.0401430130004883e-03,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- -3.0348300933837891e-03}, /* L1004 */
-{2.7049118041992188e+01, 9.7385942935943604e-03,
- 1.1920928955078125e-07, -1.4069080352783203e-03,
- -1.4125108718872070e-03}, /* L1005 */
-{2.7930175781250000e+01, 1.2035548686981201e-02,
- 1.1920928955078125e-07, -9.1167092323303223e-03,
- -6.2170028686523438e-03}, /* L1006 */
-{3.8024681091308594e+01, 1.8519140779972076e-02,
- 1.1920928955078125e-07, -2.5574564933776855e-03,
- -8.1682205200195312e-03}, /* L1007 */
-{3.3715114593505859e+01, 2.1082807332277298e-02,
- 1.1920928955078125e-07, 4.5572519302368164e-03,
- -3.5281717777252197e-02}, /* L1008 */
-{4.6165416717529297e+01, 2.8010942041873932e-02,
- 1.1920928955078125e-07, -3.4152865409851074e-03,
- 2.0146369934082031e-04}, /* L1009 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1010 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0}, /* L1011 */
-{0.0, 0.0,
- 0.0, 0.0,
- 0.0} /* L1012 */
-}; /* SINGLE */
-
-#endif /* DP */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SINGDOUB64V9B_SOS8_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64v9b_ss12.h b/usr/src/cmd/fps/fptest/singdoub64v9b_ss12.h
deleted file mode 100644
index 52477666bf..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64v9b_ss12.h
+++ /dev/null
@@ -1,6126 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SINGDOUB64V9B_SS12_H
-#define _SINGDOUB64V9B_SS12_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64-bit golden values for V9B/SS12 Lapack */
-
-
-static struct LinpVals LinpValsA[] = {
-
-#ifdef DP /* { */
-
-/* Start of DP golden values */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L0 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{8.4318439831303504e-01, 3.0808688933348094e-15,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 1.1102230246251565e-15}, /* L33 */
-{9.7321442476194397e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 2.2204460492503131e-16}, /* L34 */
-{1.4583044708110673e+00, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -4.4408920985006262e-16}, /* L35 */
-{7.3322293824479434e-01, 2.9282132274488504e-15,
- 2.2204460492503131e-16, -1.7652546091539989e-14,
- 1.4654943925052066e-14}, /* L36 */
-{8.4526789345500786e-01, 3.4694469519536142e-15,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- -7.7715611723760958e-16}, /* L37 */
-{3.8846732871836481e-01, 1.6375789613221059e-15,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- 1.9984014443252818e-15}, /* L38 */
-{9.3664352009106877e-01, 4.0523140398818214e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 1.7763568394002505e-15}, /* L39 */
-{5.5043845221636245e-01, 2.4424906541753444e-15,
- 2.2204460492503131e-16, -9.0261131902025227e-13,
- 2.2069013283498862e-12}, /* L40 */
-{8.0551968617249903e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6312285683616210e-14,
- -2.6645352591003757e-14}, /* L41 */
-{1.0454756316476288e+00, 4.8711035205428743e-15,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -5.2180482157382357e-15}, /* L42 */
-{9.7752283269141105e-01, 4.6629367034256575e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.6645352591003757e-15}, /* L43 */
-{8.6148166850218699e-01, 4.2049697057677804e-15,
- 2.2204460492503131e-16, -3.4416913763379853e-15,
- 1.1102230246251565e-15}, /* L44 */
-{1.0563970295090952e+00, 5.2735593669694936e-15,
- 2.2204460492503131e-16, -2.8865798640254070e-15,
- -1.2101430968414206e-14}, /* L45 */
-{1.0211938676275674e+00, 5.2111093218343285e-15,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- -4.1078251911130792e-15}, /* L46 */
-{9.6885685013140577e-01, 5.0515147620444623e-15,
- 2.2204460492503131e-16, -3.8191672047105385e-14,
- 4.4408920985006262e-15}, /* L47 */
-{1.1825826121868439e+00, 6.2970462177958098e-15,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 6.6613381477509392e-15}, /* L48 */
-{1.5740038790865019e+00, 8.5625950774215198e-15,
- 2.2204460492503131e-16, -1.8984813721090177e-14,
- -8.1046280797636427e-15}, /* L49 */
-{9.0001388742580246e-01, 4.9960036108132044e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -3.2196467714129540e-15}, /* L50 */
-{8.5295433775635876e-01, 4.8294701571194310e-15,
- 2.2204460492503131e-16, -1.2212453270876722e-15,
- 3.7969627442180354e-14}, /* L51 */
-{1.3605979174225624e+00, 7.8548278992229825e-15,
- 2.2204460492503131e-16, 3.5527136788005009e-15,
- 3.7747582837255322e-15}, /* L52 */
-{8.8680613645728601e-01, 5.2180482157382357e-15,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- -3.8857805861880479e-15}, /* L53 */
-{9.6529267247058115e-01, 5.7870375158586285e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -2.3314683517128287e-15}, /* L54 */
-{8.9092283805786343e-01, 5.4400928206632670e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 4.4408920985006262e-15}, /* L55 */
-{9.1965704766721101e-01, 5.7176485768195562e-15,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -1.8873791418627661e-15}, /* L56 */
-{1.0000154304731188e+00, 6.3282712403633923e-15,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- 7.9936057773011271e-15}, /* L57 */
-{1.2586401107668486e+00, 8.1046280797636427e-15,
- 2.2204460492503131e-16, 3.8968828164342995e-13,
- 2.3470114740575809e-13}, /* L58 */
-{8.8242887032215045e-01, 5.7800986219547212e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -2.3314683517128287e-15}, /* L59 */
-{9.7501504471128808e-01, 6.4948046940571658e-15,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- 8.8817841970012523e-16}, /* L60 */
-{1.3688735810572958e+00, 9.2703622556200571e-15,
- 2.2204460492503131e-16, -7.4606987254810520e-14,
- -1.2134737659152961e-13}, /* L61 */
-{1.0902385968313253e+00, 7.5044137570756675e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 3.7747582837255322e-15}, /* L62 */
-{7.2620168165310051e-01, 5.0792703376600912e-15,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- 4.4408920985006262e-16}, /* L63 */
-{1.0722821705659045e+00, 7.6189055064901368e-15,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- 2.2204460492503131e-16}, /* L64 */
-{1.1692488110146999e+00, 8.4376949871511897e-15,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -2.7755575615628914e-15}, /* L65 */
-{1.0378948028395030e+00, 7.6050277186823223e-15,
- 2.2204460492503131e-16, -2.0206059048177849e-14,
- 7.3274719625260332e-15}, /* L66 */
-{1.3750212169004810e+00, 1.0227929614359255e-14,
- 2.2204460492503131e-16, -9.7699626167013776e-15,
- 6.6613381477509392e-15}, /* L67 */
-{7.9780642798774548e-01, 6.0229599085914742e-15,
- 2.2204460492503131e-16, -9.7699626167013776e-15,
- -3.8857805861880479e-15}, /* L68 */
-{1.2445844216208166e+00, 9.5340402239685318e-15,
- 2.2204460492503131e-16, 1.8141044222375058e-13,
- 3.5194069880617462e-13}, /* L69 */
-{1.0643021367178127e+00, 8.2711615334574162e-15,
- 2.2204460492503131e-16, -3.2196467714129540e-15,
- -1.5543122344752192e-15}, /* L70 */
-{1.1760744851338045e+00, 9.2703622556200571e-15,
- 2.2204460492503131e-16, -3.2751579226442118e-14,
- -2.0539125955565396e-14}, /* L71 */
-{1.3402984588979951e+00, 1.0713652187632761e-14,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- -1.9984014443252818e-15}, /* L72 */
-{1.0993320314446988e+00, 8.9095397726168812e-15,
- 2.2204460492503131e-16, -2.3869795029440866e-14,
- 7.3274719625260332e-15}, /* L73 */
-{1.4020486609673712e+00, 1.1518563880485999e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- -5.8841820305133297e-15}, /* L74 */
-{1.7035809741547945e+00, 1.4184942283279600e-14,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- -5.2180482157382357e-15}, /* L75 */
-{1.1513335548210102e+00, 9.7144514654701197e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -3.2196467714129540e-15}, /* L76 */
-{1.1802130161590194e+00, 1.0089151736281110e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- -1.7763568394002505e-15}, /* L77 */
-{1.0448879177378469e+00, 9.0483176506950258e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 5.4178883601707639e-14}, /* L78 */
-{1.7785084554616846e+00, 1.5598633495983449e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 8.8817841970012523e-16}, /* L79 */
-{1.5640866342229285e+00, 1.3891665595622271e-14,
- 2.2204460492503131e-16, 4.4830805734363821e-13,
- 1.3677947663381929e-13}, /* L80 */
-{1.2407598859573825e+00, 1.1157741397482823e-14,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- 1.1102230246251565e-15}, /* L81 */
-{2.3414995445223701e+00, 2.1316282072803006e-14,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- -3.0087043967341742e-14}, /* L82 */
-{1.4909868616993309e+00, 1.3739009929736312e-14,
- 2.2204460492503131e-16, 2.5091040356528538e-14,
- -6.5503158452884236e-15}, /* L83 */
-{1.1250173592822328e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, -4.1744385725905886e-14,
- -3.4416913763379853e-15}, /* L84 */
-{1.9217208290746031e+00, 1.8134799217861541e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-15,
- -2.4424906541753444e-15}, /* L85 */
-{1.6860725281232691e+00, 1.6098233857064770e-14,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -6.6613381477509392e-16}, /* L86 */
-{1.0862236572379966e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, -2.9087843245179101e-14,
- -1.2212453270876722e-14}, /* L87 */
-{1.6988898506332140e+00, 1.6597834218146090e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- -1.0436096431476471e-14}, /* L88 */
-{1.4101341182513836e+00, 1.3933298959045715e-14,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -2.8865798640254070e-15}, /* L89 */
-{9.4445901766904683e-01, 9.4368957093138306e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 4.2188474935755949e-15}, /* L90 */
-{8.8462903464924114e-01, 8.9372953482325102e-15,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- 4.3076653355456074e-14}, /* L91 */
-{1.4293698816001337e+00, 1.4599432773820809e-14,
- 2.2204460492503131e-16, -9.7699626167013776e-15,
- 6.8833827526759706e-15}, /* L92 */
-{1.4381942346857988e+00, 1.4849232954361469e-14,
- 2.2204460492503131e-16, -1.0547118733938987e-14,
- 2.8865798640254070e-15}, /* L93 */
-{1.4095962184859603e+00, 1.4710455076283324e-14,
- 2.2204460492503131e-16, -1.4765966227514582e-14,
- -7.9936057773011271e-15}, /* L94 */
-{2.8039906346555035e+00, 2.9573565818452607e-14,
- 2.2204460492503131e-16, -1.6431300764452317e-14,
- 5.5511151231257827e-15}, /* L95 */
-{1.6041914197172078e+00, 1.7097434579227411e-14,
- 2.2204460492503131e-16, -1.5987211554602254e-14,
- -2.6645352591003757e-15}, /* L96 */
-{1.8170383466070419e+00, 1.9567680809018384e-14,
- 2.2204460492503131e-16, -1.5321077739827160e-14,
- 5.3290705182007514e-15}, /* L97 */
-{1.3439301759339604e+00, 1.4621984179008507e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- -1.3322676295501878e-15}, /* L98 */
-{1.9242721162132923e+00, 2.1149748619109232e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 8.8817841970012523e-16}, /* L99 */
-{2.9625457127765391e+00, 3.2890357104520263e-14,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- 5.5511151231257827e-15}, /* L100 */
-{1.2852921095869991e+00, 1.4412082638415313e-14,
- 2.2204460492503131e-16, -2.4535928844215960e-14,
- -1.0103029524088925e-14}, /* L101 */
-{1.3970803808080099e+00, 1.5820678100908481e-14,
- 2.2204460492503131e-16, -7.7715611723760958e-15,
- 6.2172489379008766e-15}, /* L102 */
-{1.6844920115250395e+00, 1.9262369477246466e-14,
- 2.2204460492503131e-16, -2.6756374893466273e-14,
- -6.8833827526759706e-15}, /* L103 */
-{1.3750212169004725e+00, 1.5876189252139739e-14,
- 2.2204460492503131e-16, -1.0547118733938987e-14,
- 1.5765166949677223e-14}, /* L104 */
-{1.3047820378553872e+00, 1.5210055437364645e-14,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- 9.5479180117763462e-15}, /* L105 */
-{1.1226588323233835e+00, 1.3211653993039363e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- -5.9063864910058328e-14}, /* L106 */
-{1.4112367289854100e+00, 1.6764367671839864e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 1.2656542480726785e-14}, /* L107 */
-{2.4329079107111644e+00, 2.9171109972025988e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- -5.9952043329758453e-15}, /* L108 */
-{1.3486446631150799e+00, 1.6320278461989801e-14,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 3.1974423109204508e-14}, /* L109 */
-{1.6272978368607867e+00, 1.9872992140790302e-14,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- 2.2204460492503131e-16}, /* L110 */
-{1.9583635513431428e+00, 2.4133472997789340e-14,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- -2.7755575615628914e-15}, /* L111 */
-{1.4910944365089831e+00, 1.8540724511240114e-14,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- -3.1863400806741993e-14}, /* L112 */
-{1.6593176390593474e+00, 2.0816681711721685e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 1.0436096431476471e-14}, /* L113 */
-{1.4802859990555859e+00, 1.8735013540549517e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -1.5543122344752192e-15}, /* L114 */
-{2.1060107571102940e+00, 2.6888213877640510e-14,
- 2.2204460492503131e-16, 3.3528735343679728e-14,
- -1.0325074129013956e-14}, /* L115 */
-{1.2823473731281858e+00, 1.6514567491299204e-14,
- 2.2204460492503131e-16, -9.4368957093138306e-15,
- -2.2537527399890678e-14}, /* L116 */
-{1.6709659543366842e+00, 2.1704860131421810e-14,
- 2.2204460492503131e-16, -1.0558220964185239e-13,
- -1.3256062914024369e-13}, /* L117 */
-{2.0731252091441892e+00, 2.7158830739892892e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- -2.0341506257182118e-12}, /* L118 */
-{1.1575808869552118e+00, 1.5293322164211531e-14,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- -8.4376949871511897e-15}, /* L119 */
-{2.4625379975399899e+00, 3.2807090377673376e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -8.4376949871511897e-15}, /* L120 */
-{1.7438285605758650e+00, 2.3425705819590803e-14,
- 2.2204460492503131e-16, 1.2456702336294256e-13,
- -5.9396931817445875e-14}, /* L121 */
-{2.5451212390319462e+00, 3.4472424914611111e-14,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- 4.4408920985006262e-15}, /* L122 */
-{1.1016430148704714e+00, 1.5043521983670871e-14,
- 2.2204460492503131e-16, -2.9198865547641617e-14,
- -2.6867397195928788e-14}, /* L123 */
-{1.4506272222286285e+00, 1.9970136655445003e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 1.2434497875801753e-14}, /* L124 */
-{1.5360237012065137e+00, 2.1316282072803006e-14,
- 2.2204460492503131e-16, -6.4726002335646626e-14,
- 3.2862601528904634e-14}, /* L125 */
-{1.6746290145223433e+00, 2.3425705819590803e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 7.7715611723760958e-15}, /* L126 */
-{1.3090753174492020e+00, 1.8457457784393227e-14,
- 2.2204460492503131e-16, -2.3980817331903381e-14,
- -2.6179058920661191e-13}, /* L127 */
-{1.9687803787438483e+00, 2.7977620220553945e-14,
- 2.2204460492503131e-16, -2.7755575615628914e-15,
- -9.9920072216264089e-16}, /* L128 */
-{1.9070061697393341e+00, 2.7311486405778851e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 3.4638958368304884e-14}, /* L129 */
-{2.1846490942642083e+00, 3.1530333899354446e-14,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- 7.9936057773011271e-15}, /* L130 */
-{2.0649173583425950e+00, 3.0031532816110484e-14,
- 2.2204460492503131e-16, -7.0499162063697440e-14,
- 1.4876988529977098e-14}, /* L131 */
-{1.3409297817707460e+00, 1.9650947535865271e-14,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- -5.8841820305133297e-15}, /* L132 */
-{1.5413771672704086e+00, 2.2759572004815709e-14,
- 2.2204460492503131e-16, -9.1038288019262836e-15,
- 6.8389738316909643e-14}, /* L133 */
-{1.8946187866518844e+00, 2.8185787037671162e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- -6.6613381477509392e-15}, /* L134 */
-{1.6203953734517988e+00, 2.4286128663675299e-14,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 3.7747582837255322e-15}, /* L135 */
-{1.5919363286574972e+00, 2.4036328483134639e-14,
- 2.2204460492503131e-16, -1.2878587085651816e-14,
- 1.0436096431476471e-14}, /* L136 */
-{1.9452854906648289e+00, 2.9587443606260422e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- -1.0325074129013956e-14}, /* L137 */
-{2.2323714025370274e+00, 3.4201808052358729e-14,
- 2.2204460492503131e-16, -5.9063864910058328e-14,
- -3.9634961979118088e-14}, /* L138 */
-{1.8075818482472423e+00, 2.7894353493707058e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- -9.4368957093138306e-15}, /* L139 */
-{1.5321664988307440e+00, 2.3814283878209608e-14,
- 2.2204460492503131e-16, -2.9942714974140472e-13,
- -3.4139358007223564e-13}, /* L140 */
-{2.6347924285160054e+00, 4.1244785364824565e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- -8.4376949871511897e-15}, /* L141 */
-{1.8521412550311385e+00, 2.9198865547641617e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 1.0658141036401503e-14}, /* L142 */
-{1.8496788906302410e+00, 2.9365399001335390e-14,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -3.2862601528904634e-14}, /* L143 */
-{1.3906464580015256e+00, 2.2232216068118760e-14,
- 2.2204460492503131e-16, -1.1213252548714081e-14,
- 3.4416913763379853e-14}, /* L144 */
-{1.4827815003566338e+00, 2.3869795029440866e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 9.9920072216264089e-15}, /* L145 */
-{1.9366737189468126e+00, 3.1391556021276301e-14,
- 2.2204460492503131e-16, -2.8532731732866523e-14,
- 2.9976021664879227e-14}, /* L146 */
-{1.6802980362370283e+00, 2.7422508708241367e-14,
- 2.2204460492503131e-16, 7.7493567118835927e-14,
- 2.2204460492503131e-16}, /* L147 */
-{1.7094858372276440e+00, 2.8088642523016460e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -1.1324274851176597e-14}, /* L148 */
-{3.3616290519342669e+00, 5.5608295745912528e-14,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- 1.9761969838327786e-14}, /* L149 */
-{2.9133782874447340e+00, 4.8516746176119341e-14,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- 1.0658141036401503e-14}, /* L150 */
-{1.9205594360078899e+00, 3.2196467714129540e-14,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- 2.9976021664879227e-14}, /* L151 */
-{1.5723926834412174e+00, 2.6534330288541241e-14,
- 2.2204460492503131e-16, -2.1649348980190553e-14,
- 1.7763568394002505e-14}, /* L152 */
-{2.2484007064231508e+00, 3.8191672047105385e-14,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- -8.4376949871511897e-15}, /* L153 */
-{2.2159432834345298e+00, 3.7886360715333467e-14,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- 5.7731597280508140e-14}, /* L154 */
-{2.4839092950460229e+00, 4.2743586448068527e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -3.3639757646142243e-14}, /* L155 */
-{2.8429925859922287e+00, 4.9238391142125693e-14,
- 2.2204460492503131e-16, 9.3702823278363212e-14,
- -4.3298697960381105e-15}, /* L156 */
-{1.7985946317186561e+00, 3.1349922657852858e-14,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- -4.3187675657918589e-14}, /* L157 */
-{2.2500347185644372e+00, 3.9468428525424315e-14,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- 9.3258734068513149e-15}, /* L158 */
-{2.5189067918509283e+00, 4.4464432136237519e-14,
- 2.2204460492503131e-16, 2.3048229991218250e-13,
- -1.4599432773820809e-13}, /* L159 */
-{2.9300256797347366e+00, 5.2046908449732143e-14,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- 9.1038288019262836e-15}, /* L160 */
-{2.2018973298304485e+00, 3.9357406222961799e-14,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- -2.4535928844215960e-14}, /* L161 */
-{2.4784333045366185e+00, 4.4575454438700035e-14,
- 2.2204460492503131e-16, -2.8088642523016460e-14,
- 2.2204460492503131e-16}, /* L162 */
-{2.4478905322621287e+00, 4.4297898682543746e-14,
- 2.2204460492503131e-16, 6.3060667798708891e-14,
- 8.2156503822261584e-15}, /* L163 */
-{1.9390543103075617e+00, 3.5305092183079978e-14,
- 2.2204460492503131e-16, -1.0214051826551440e-14,
- 2.9753977059954195e-14}, /* L164 */
-{2.3926979047394039e+00, 4.3830390705767996e-14,
- 2.2204460492503131e-16, -2.9753977059954195e-14,
- 3.3306690738754696e-15}, /* L165 */
-{1.8870773108172394e+00, 3.4777736246383029e-14,
- 2.2204460492503131e-16, -3.0642155479654321e-14,
- -7.2830630415410269e-14}, /* L166 */
-{3.0988502111965350e+00, 5.7454041524351851e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- -1.1768364061026659e-14}, /* L167 */
-{2.0774130073509189e+00, 3.8746783559417963e-14,
- 2.2204460492503131e-16, 1.7963408538435033e-13,
- -9.8254737679326354e-14}, /* L168 */
-{1.7840511969681965e+00, 3.3473224192448470e-14,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- 2.0428103653102880e-14}, /* L169 */
-{1.6103189652471119e+00, 3.0392355299113660e-14,
- 2.2204460492503131e-16, -6.4392935428259079e-15,
- 3.3306690738754696e-15}, /* L170 */
-{1.4590868415381790e+00, 2.7700064464397656e-14,
- 2.2204460492503131e-16, -3.4861002973229915e-14,
- 1.7541523789077473e-14}, /* L171 */
-{2.0625318253507161e+00, 3.9385161798577428e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 5.7731597280508140e-15}, /* L172 */
-{2.4509048700612515e+00, 4.7073456244106637e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- -4.3298697960381105e-15}, /* L173 */
-{2.7672840791527755e+00, 5.3457238635701287e-14,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- -1.2778667013435552e-13}, /* L174 */
-{2.0886036562166272e+00, 4.0578651550049472e-14,
- 2.2204460492503131e-16, -2.6867397195928788e-14,
- -9.6589403142388619e-15}, /* L175 */
-{2.3238994946785558e+00, 4.5408121707168903e-14,
- 2.2204460492503131e-16, 4.7295500849031669e-14,
- -2.7200464103316335e-14}, /* L176 */
-{2.8051280295473875e+00, 5.5122573172639022e-14,
- 2.2204460492503131e-16, -7.3274719625260332e-15,
- 1.1546319456101628e-14}, /* L177 */
-{1.9901992485659987e+00, 3.9329650647346170e-14,
- 2.2204460492503131e-16, -2.2848389846785722e-13,
- -1.6198153929281034e-13}, /* L178 */
-{2.7221090418883036e+00, 5.4095616874860752e-14,
- 2.2204460492503131e-16, -5.9952043329758453e-15,
- 2.7311486405778851e-14}, /* L179 */
-{1.7104430592043798e+00, 3.4180991370647007e-14,
- 2.2204460492503131e-16, -7.4384942649885488e-15,
- -1.2945200467129325e-13}, /* L180 */
-{1.6882166573145112e+00, 3.3924252296202440e-14,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- -7.3274719625260332e-15}, /* L181 */
-{3.0563658417612878e+00, 6.1756155744774333e-14,
- 2.2204460492503131e-16, -2.2315482794965646e-14,
- 1.5543122344752192e-14}, /* L182 */
-{2.9494990633760696e+00, 5.9924287754142824e-14,
- 2.2204460492503131e-16, -3.7858605139717838e-14,
- 5.5067062021407764e-14}, /* L183 */
-{1.8668766324320636e+00, 3.8136160895874127e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 2.2204460492503131e-14}, /* L184 */
-{3.3041050371670369e+00, 6.7862382380212694e-14,
- 2.2204460492503131e-16, -6.6435745793569367e-13,
- 3.2640556923979602e-13}, /* L185 */
-{2.2150879427681005e+00, 4.5741188614556449e-14,
- 2.2204460492503131e-16, 1.3256062914024369e-13,
- 1.8207657603852567e-14}, /* L186 */
-{2.5762429605903074e+00, 5.3484994211316916e-14,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- -1.3100631690576847e-14}, /* L187 */
-{2.6542962755625545e+00, 5.5400128928795311e-14,
- 2.2204460492503131e-16, -1.7685852782278744e-13,
- -1.5509815654013437e-13}, /* L188 */
-{2.4524187937789370e+00, 5.1458837191376006e-14,
- 2.2204460492503131e-16, -4.8960835385969403e-14,
- -7.4384942649885488e-15}, /* L189 */
-{2.1552964146248783e+00, 4.5463632858400160e-14,
- 2.2204460492503131e-16, -2.9087843245179101e-14,
- 2.4646951146678475e-14}, /* L190 */
-{2.2729408311734809e+00, 4.8197557056539608e-14,
- 2.2204460492503131e-16, -1.2434497875801753e-14,
- -1.1102230246251565e-16}, /* L191 */
-{2.7057709173477096e+00, 5.7676086129276882e-14,
- 2.2204460492503131e-16, -2.1205259770340490e-14,
- 2.5313084961453569e-14}, /* L192 */
-{2.8238777699887536e+00, 6.0507154842071031e-14,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- -5.2180482157382357e-15}, /* L193 */
-{2.7062273247337711e+00, 5.8286708792820718e-14,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- 1.7319479184152442e-14}, /* L194 */
-{1.5974605466275047e+00, 3.4583447217073626e-14,
- 2.2204460492503131e-16, -1.5543122344752192e-14,
- 3.7969627442180354e-14}, /* L195 */
-{3.3776031376180593e+00, 7.3496764230185363e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- 3.5749181392930041e-14}, /* L196 */
-{2.8191266216130195e+00, 6.1657276506643655e-14,
- 2.2204460492503131e-16, 1.6919798895287386e-13,
- -3.7081449022480228e-14}, /* L197 */
-{2.3611475441724723e+00, 5.1902926401226068e-14,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- -3.2529534621517087e-14}, /* L198 */
-{2.1935011829220654e+00, 4.8461235024888083e-14,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- -1.7208456881689926e-14}, /* L199 */
-{2.5250389619438347e+00, 5.6066262743570405e-14,
- 2.2204460492503131e-16, -1.3200551762793111e-13,
- -4.2410519540680980e-14}, /* L200 */
-{2.3084933320371150e+00, 5.1514348342607263e-14,
- 2.2204460492503131e-16, 2.1760371282653068e-14,
- 4.8849813083506888e-15}, /* L201 */
-{2.1584491469616061e+00, 4.8405723873656825e-14,
- 2.2204460492503131e-16, -8.5709217501062085e-14,
- 5.5511151231257827e-15}, /* L202 */
-{3.3719732126048272e+00, 7.5994766035591965e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 2.4202861936828413e-14}, /* L203 */
-{2.5711181043290647e+00, 5.8231197641589461e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- 1.4654943925052066e-14}, /* L204 */
-{2.2414980014670256e+00, 5.1014747981525943e-14,
- 2.2204460492503131e-16, -2.7233770794055090e-12,
- 4.0367709175370692e-13}, /* L205 */
-{2.6747985543232389e+00, 6.1173288656846125e-14,
- 2.2204460492503131e-16, -4.1855408028368402e-14,
- 1.9184653865522705e-13}, /* L206 */
-{2.4275736899163927e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, 4.5741188614556449e-14,
- 4.7295500849031669e-14}, /* L207 */
-{3.4207258595269141e+00, 7.8992368202079888e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- 1.0214051826551440e-14}, /* L208 */
-{1.9928537167083293e+00, 4.6240788975637770e-14,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- 6.8833827526759706e-15}, /* L209 */
-{3.3228191290223670e+00, 7.7469280990172251e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-14,
- 1.1213252548714081e-13}, /* L210 */
-{2.3815533356051382e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, -1.1213252548714081e-14,
- -1.6653345369377348e-15}, /* L211 */
-{3.7193970138113874e+00, 8.7541085491693593e-14,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- 1.3544720900426910e-14}, /* L212 */
-{2.9190591262752417e+00, 6.9028116556069108e-14,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 7.1054273576010019e-15}, /* L213 */
-{2.7885944305365191e+00, 6.6252558994506217e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- -8.9928064994637680e-15}, /* L214 */
-{3.2233055503148913e+00, 7.6938455606523348e-14,
- 2.2204460492503131e-16, 7.1276318180935050e-14,
- 8.2156503822261584e-15}, /* L215 */
-{2.0960971580864860e+00, 5.0265347439903962e-14,
- 2.2204460492503131e-16, -4.8405723873656825e-14,
- 1.3100631690576847e-14}, /* L216 */
-{3.6682593670737966e+00, 8.8373752760162461e-14,
- 2.2204460492503131e-16, -1.0820233597996776e-12,
- 3.2818192607919627e-13}, /* L217 */
-{2.3555409337051239e+00, 5.7009952314501788e-14,
- 2.2204460492503131e-16, -9.0483176506950258e-14,
- -1.0935696792557792e-13}, /* L218 */
-{2.7580334246836968e+00, 6.7057470687359455e-14,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- -4.2188474935755949e-15}, /* L219 */
-{2.5875399263489585e+00, 6.3199445676787036e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -9.7699626167013776e-15}, /* L220 */
-{2.6776431266172818e+00, 6.5697447482193638e-14,
- 2.2204460492503131e-16, -4.1078251911130792e-15,
- -3.0975222387041867e-14}, /* L221 */
-{2.9465544750369372e+00, 7.2622463598293052e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 1.8873791418627661e-14}, /* L222 */
-{2.9103588088650989e+00, 7.2053474298172659e-14,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- -1.0491607582707729e-13}, /* L223 */
-{2.1942302860490086e+00, 5.4567461660326444e-14,
- 2.2204460492503131e-16, -1.2543299732215019e-12,
- -2.3796520309815605e-12}, /* L224 */
-{2.9328230319262962e+00, 7.3260841837452517e-14,
- 2.2204460492503131e-16, 5.5733195836182858e-14,
- 3.3306690738754696e-15}, /* L225 */
-{2.4845516115510300e+00, 6.2339022832702540e-14,
- 2.2204460492503131e-16, -1.7541523789077473e-14,
- -2.4313884239290928e-14}, /* L226 */
-{2.8414535359253952e+00, 7.1609385088322597e-14,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- -9.8365759981788869e-14}, /* L227 */
-{2.1601210504727981e+00, 5.4678483962788960e-14,
- 2.2204460492503131e-16, 3.8413716652030416e-14,
- 2.5757174171303632e-14}, /* L228 */
-{3.1812717951789433e+00, 8.0879747343942654e-14,
- 2.2204460492503131e-16, -1.7047474543119279e-12,
- 6.3793414994961495e-13}, /* L229 */
-{3.1060261875834261e+00, 7.9311557321659620e-14,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- 5.1070259132757201e-14}, /* L230 */
-{2.8831613709740678e+00, 7.3940853440035426e-14,
- 2.2204460492503131e-16, -2.7533531010703882e-14,
- -1.0769163338864018e-14}, /* L231 */
-{2.5205130300389698e+00, 6.4920291364956029e-14,
- 2.2204460492503131e-16, 6.3948846218409017e-14,
- 2.5757174171303632e-14}, /* L232 */
-{4.5757143811716361e+00, 1.1836365221284950e-13,
- 2.2204460492503131e-16, -1.8651746813702630e-14,
- 1.3766765505351941e-14}, /* L233 */
-{2.3782418250352051e+00, 6.1783911320389961e-14,
- 2.2204460492503131e-16, 6.4837024638109142e-14,
- -8.7707618945387367e-15}, /* L234 */
-{2.6340831977140020e+00, 6.8722805224297190e-14,
- 2.2204460492503131e-16, -5.1736392947532295e-14,
- -1.9428902930940239e-14}, /* L235 */
-{2.4438936420564654e+00, 6.4032112945255903e-14,
- 2.2204460492503131e-16, -4.3298697960381105e-15,
- -1.0769163338864018e-14}, /* L236 */
-{3.6435161359218013e+00, 9.5867758176382267e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- 2.6645352591003757e-14}, /* L237 */
-{3.0378620009741142e+00, 8.0269124680398818e-14,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- -1.4466206010865790e-13}, /* L238 */
-{3.6726508121238957e+00, 9.7449825986473115e-14,
- 2.2204460492503131e-16, -1.4332979247910771e-13,
- 2.7533531010703882e-14}, /* L239 */
-{1.8989876351583057e+00, 5.0598414347291509e-14,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- 7.3052675020335300e-14}, /* L240 */
-{3.4689331945027613e+00, 9.2814644858663087e-14,
- 2.2204460492503131e-16, 8.8373752760162461e-14,
- -7.7937656328685989e-14}, /* L241 */
-{3.7774343197562574e+00, 1.0148826223854712e-13,
- 2.2204460492503131e-16, -1.3256062914024369e-13,
- -2.0405899192610377e-13}, /* L242 */
-{2.6003487659619116e+00, 7.0152217368502079e-14,
- 2.2204460492503131e-16, -1.6106005418237146e-12,
- -5.1847415249994810e-13}, /* L243 */
-{2.8709459387145744e+00, 7.7771122874992216e-14,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- 1.1324274851176597e-14}, /* L244 */
-{3.5551568977225330e+00, 9.6700425444851135e-14,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- 1.0658141036401503e-14}, /* L245 */
-{4.1484379951128876e+00, 1.1329825966299722e-13,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- -5.9952043329758453e-15}, /* L246 */
-{3.4089594836366168e+00, 9.3480778673438181e-14,
- 2.2204460492503131e-16, 7.2830630415410269e-14,
- 6.8611782921834674e-14}, /* L247 */
-{2.5645557007292012e+00, 7.0610184366159956e-14,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- -7.2053474298172659e-14}, /* L248 */
-{3.0582801217071753e+00, 8.4543483325205671e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- -3.0864200084579352e-14}, /* L249 */
-{2.9685458053592919e+00, 8.2392426214994430e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -1.9650947535865271e-14}, /* L250 */
-{3.6434825146120655e+00, 1.0152989560197057e-13,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- 1.5543122344752192e-14}, /* L251 */
-{3.0139353946202108e+00, 8.4321438720280639e-14,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- -1.5543122344752192e-15}, /* L252 */
-{2.8508345028798892e+00, 8.0074835651089415e-14,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 1.1168843627729075e-13}, /* L253 */
-{3.5039910752784365e+00, 9.8809849191638932e-14,
- 2.2204460492503131e-16, 7.1276318180935050e-14,
- 2.0805579481475434e-13}, /* L254 */
-{3.7103513692402537e+00, 1.0504097591734762e-13,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- -3.1530333899354446e-14}, /* L255 */
-{2.7695739851769900e+00, 7.8714812445923599e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- 2.5091040356528538e-14}, /* L256 */
-{2.7724163198841438e+00, 7.9103390504542404e-14,
- 2.2204460492503131e-16, 3.5305092183079978e-14,
- 4.8472337255134335e-13}, /* L257 */
-{3.4535416610520864e+00, 9.8920871494101448e-14,
- 2.2204460492503131e-16, 5.8397731095283234e-14,
- -7.6827433304060833e-14}, /* L258 */
-{3.4247632696123702e+00, 9.8476782284251385e-14,
- 2.2204460492503131e-16, 2.7533531010703882e-14,
- -1.0436096431476471e-14}, /* L259 */
-{3.3260128596208705e+00, 9.6006536054460412e-14,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- -4.4408920985006262e-15}, /* L260 */
-{2.8237983611406752e+00, 8.1823436914874037e-14,
- 2.2204460492503131e-16, 1.6808776592824870e-13,
- 2.5224267119483557e-13}, /* L261 */
-{4.2243018231877070e+00, 1.2287393325038920e-13,
- 2.2204460492503131e-16, -4.5319303865198890e-13,
- 4.6185277824406512e-14}, /* L262 */
-{3.7614648843931424e+00, 1.0982881271104361e-13,
- 2.2204460492503131e-16, -8.8706819667550008e-14,
- 8.9483975784787617e-14}, /* L263 */
-{3.6742991195406893e+00, 1.0769163338864018e-13,
- 2.2204460492503131e-16, -3.7525538232330291e-14,
- -1.4421797089880783e-13}, /* L264 */
-{2.4547548585763428e+00, 7.2220007751866433e-14,
- 2.2204460492503131e-16, -3.3417713041217212e-14,
- 1.3766765505351941e-14}, /* L265 */
-{3.4323837895558738e+00, 1.0136336214827679e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 1.0436096431476471e-14}, /* L266 */
-{4.5820873225291354e+00, 1.3582451136029405e-13,
- 2.2204460492503131e-16, -3.6604053121891411e-13,
- -1.2834178164666810e-13}, /* L267 */
-{3.3554622233318105e+00, 9.9836805489417202e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- -4.6629367034256575e-15}, /* L268 */
-{4.7514673683025359e+00, 1.4190038033490282e-13,
- 2.2204460492503131e-16, -4.3187675657918589e-14,
- 1.9539925233402755e-14}, /* L269 */
-{2.7208753170784687e+00, 8.1559758946525562e-14,
- 2.2204460492503131e-16, -1.3988810110276972e-13,
- -3.3084646133829665e-14}, /* L270 */
-{2.5424746553354858e+00, 7.6494366396673286e-14,
- 2.2204460492503131e-16, 8.3266726846886741e-14,
- 2.7533531010703882e-14}, /* L271 */
-{3.1691665480432216e+00, 9.5701224722688494e-14,
- 2.2204460492503131e-16, -6.3282712403633923e-15,
- -5.9952043329758453e-15}, /* L272 */
-{2.4157881919303112e+00, 7.3219208474029074e-14,
- 2.2204460492503131e-16, -5.5511151231257827e-15,
- 4.6629367034256575e-15}, /* L273 */
-{2.3774317573231869e+00, 7.2320621713473088e-14,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -4.2521541843143495e-14}, /* L274 */
-{3.5182361053915550e+00, 1.0741407763248390e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.0769163338864018e-14}, /* L275 */
-{4.6303930060224348e+00, 1.4188303310014305e-13,
- 2.2204460492503131e-16, -5.7953641885433171e-14,
- -3.4416913763379853e-15}, /* L276 */
-{2.9801903893660504e+00, 9.1648910682806672e-14,
- 2.2204460492503131e-16, 5.2358117841322382e-13,
- -5.2358117841322382e-13}, /* L277 */
-{2.8426697623415151e+00, 8.7735374521002996e-14,
- 2.2204460492503131e-16, -1.1590728377086634e-13,
- 2.3914203950425872e-13}, /* L278 */
-{2.7007585192167123e+00, 8.3655304905505545e-14,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- 5.9952043329758453e-15}, /* L279 */
-{3.6232701936242320e+00, 1.1263212584822213e-13,
- 2.2204460492503131e-16, -2.0317081350640365e-14,
- 2.6201263381153694e-14}, /* L280 */
-{3.9715915317002000e+00, 1.2390088954816747e-13,
- 2.2204460492503131e-16, -8.5709217501062085e-14,
- 3.8635761256955448e-14}, /* L281 */
-{3.1046578346778073e+00, 9.7200025805932455e-14,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- 3.8635761256955448e-14}, /* L282 */
-{4.2739175376500977e+00, 1.3428147482841268e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-14,
- 2.5734969710811129e-13}, /* L283 */
-{3.0194127874311874e+00, 9.5201624361607173e-14,
- 2.2204460492503131e-16, -7.9602990865623724e-14,
- -8.8817841970012523e-14}, /* L284 */
-{4.0581766537067780e+00, 1.2840423169180326e-13,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- -2.5868196473766147e-14}, /* L285 */
-{3.0044169882305920e+00, 9.5395913390916576e-14,
- 2.2204460492503131e-16, 7.9936057773011271e-15,
- -9.5146113210375916e-14}, /* L286 */
-{3.3942025257813597e+00, 1.0814916670542907e-13,
- 2.2204460492503131e-16, -2.7311486405778851e-14,
- -3.5527136788005009e-15}, /* L287 */
-{4.4097902663208837e+00, 1.4099832412739488e-13,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 4.9737991503207013e-14}, /* L288 */
-{4.7215261414547980e+00, 1.5148993171010261e-13,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -4.0856207306205761e-14}, /* L289 */
-{3.8884220682309247e+00, 1.2519152381429421e-13,
- 2.2204460492503131e-16, -1.2190248810384219e-13,
- -7.7160500211448380e-14}, /* L290 */
-{3.6078735397519277e+00, 1.1655953979783362e-13,
- 2.2204460492503131e-16, 8.4154905266586866e-14,
- 1.0613732115416497e-13}, /* L291 */
-{3.9452663558388266e+00, 1.2789769243681803e-13,
- 2.2204460492503131e-16, -2.6090241078691179e-14,
- -6.3504757008558954e-14}, /* L292 */
-{3.1502192570873455e+00, 1.0247358517290195e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- 1.1546319456101628e-14}, /* L293 */
-{2.9894168757036095e+00, 9.7574726076743445e-14,
- 2.2204460492503131e-16, 4.0412118096355698e-14,
- -1.1257661469699087e-13}, /* L294 */
-{3.6522809318134999e+00, 1.1961612256250476e-13,
- 2.2204460492503131e-16, -2.6134649999676185e-13,
- -8.1834539145120289e-13}, /* L295 */
-{5.0304830269400362e+00, 1.6531220836668581e-13,
- 2.2204460492503131e-16, -7.7715611723760958e-15,
- -6.5059069243034173e-14}, /* L296 */
-{3.0867479659462744e+00, 1.0177969578251123e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 2.5535129566378600e-14}, /* L297 */
-{3.3540785998572855e+00, 1.1096679131128440e-13,
- 2.2204460492503131e-16, 4.0412118096355698e-14,
- 2.2470914018413168e-13}, /* L298 */
-{2.9599118928713040e+00, 9.8254737679326354e-14,
- 2.2204460492503131e-16, -6.4392935428259079e-15,
- -7.2608585810485238e-14}, /* L299 */
-{3.0029630030907555e+00, 1.0001721673091879e-13,
- 2.2204460492503131e-16, 1.1612932837579137e-13,
- -1.6187051699034782e-13}, /* L300 */
-{3.4136739362492530e+00, 1.1407541578023483e-13,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- 8.4376949871511897e-15}, /* L301 */
-{3.9814356066693390e+00, 1.3349044092336726e-13,
- 2.2204460492503131e-16, 1.0658141036401503e-13,
- -1.9650947535865271e-13}, /* L302 */
-{3.3144075777310089e+00, 1.1149414724798135e-13,
- 2.2204460492503131e-16, -5.3290705182007514e-15,
- -1.8873791418627661e-15}, /* L303 */
-{3.0263624869579915e+00, 1.0214051826551440e-13,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- 1.7097434579227411e-14}, /* L304 */
-{3.5578417835804412e+00, 1.2047307595963730e-13,
- 2.2204460492503131e-16, -7.2164496600635175e-14,
- -1.0769163338864018e-14}, /* L305 */
-{5.4298223455037480e+00, 1.8446355554146976e-13,
- 2.2204460492503131e-16, 1.0522693827397234e-12,
- 1.7725820811165249e-12}, /* L306 */
-{5.3469880427403993e+00, 1.8224310949221945e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- -1.4432899320127035e-15}, /* L307 */
-{4.2167858452168305e+00, 1.4419021532319221e-13,
- 2.2204460492503131e-16, -7.0721206668622472e-14,
- 5.5733195836182858e-14}, /* L308 */
-{3.1052259078928750e+00, 1.0652589921278377e-13,
- 2.2204460492503131e-16, -4.6518344731794059e-14,
- 9.1038288019262836e-15}, /* L309 */
-{3.3726326856745681e+00, 1.1607381722456012e-13,
- 2.2204460492503131e-16, 1.3766765505351941e-13,
- 6.6613381477509392e-15}, /* L310 */
-{2.6961830818381491e+00, 9.3092200614819376e-14,
- 2.2204460492503131e-16, -5.7731597280508140e-15,
- 1.2434497875801753e-14}, /* L311 */
-{3.7308267983019232e+00, 1.2922996006636822e-13,
- 2.2204460492503131e-16, 2.7489122089718876e-13,
- 2.6645352591003757e-14}, /* L312 */
-{3.5479780688186380e+00, 1.2329026688462363e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-14,
- 2.7977620220553945e-14}, /* L313 */
-{4.0446483971361076e+00, 1.4099832412739488e-13,
- 2.2204460492503131e-16, -4.1522341120980855e-14,
- 2.5535129566378600e-14}, /* L314 */
-{2.7778206402022638e+00, 9.7144514654701197e-14,
- 2.2204460492503131e-16, -5.6066262743570405e-14,
- 1.0769163338864018e-13}, /* L315 */
-{4.3133576953628561e+00, 1.5132339825640884e-13,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -8.0713213890248880e-14}, /* L316 */
-{4.4038534414522656e+00, 1.5498713423767185e-13,
- 2.2204460492503131e-16, 2.3980817331903381e-14,
- 1.4432899320127035e-14}, /* L317 */
-{2.8145088373375091e+00, 9.9364960703951510e-14,
- 2.2204460492503131e-16, 5.9063864910058328e-14,
- -5.9729998724833422e-14}, /* L318 */
-{5.7077683229894216e+00, 2.0214385720862538e-13,
- 2.2204460492503131e-16, -2.2870594307278225e-14,
- 1.0125233984581428e-13}, /* L319 */
-{4.0860005479482222e+00, 1.4516166046973922e-13,
- 2.2204460492503131e-16, 3.8191672047105385e-14,
- -4.5630166312093934e-14}, /* L320 */
-{3.0191275827323305e+00, 1.0759448887398548e-13,
- 2.2204460492503131e-16, 1.8829382497642655e-13,
- -6.3171690101171407e-14}, /* L321 */
-{3.7190014844450761e+00, 1.3294920719886250e-13,
- 2.2204460492503131e-16, -9.2481577951275540e-14,
- -3.7636560534792807e-14}, /* L322 */
-{3.3913061986195414e+00, 1.2161105455987808e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- -9.7699626167013776e-15}, /* L323 */
-{4.4475994916922552e+00, 1.5998313784848506e-13,
- 2.2204460492503131e-16, -4.0323300254385686e-13,
- -7.1720407390785113e-14}, /* L324 */
-{4.2662196749257140e+00, 1.5393242236427795e-13,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- 4.8849813083506888e-15}, /* L325 */
-{3.2316449570651087e+00, 1.1696199564426024e-13,
- 2.2204460492503131e-16, 3.7525538232330291e-14,
- -4.5741188614556449e-14}, /* L326 */
-{4.6621514487953313e+00, 1.6925350010410511e-13,
- 2.2204460492503131e-16, 8.4821039081361960e-14,
- -4.2410519540680980e-14}, /* L327 */
-{3.3304629751890991e+00, 1.2127798765249054e-13,
- 2.2204460492503131e-16, -4.0378811405616943e-13,
- -1.1607381722456012e-12}, /* L328 */
-{2.8967012317313565e+00, 1.0580425424677742e-13,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- 1.5476508963274682e-13}, /* L329 */
-{4.0894570406766118e+00, 1.4982459717316488e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- -3.3084646133829665e-14}, /* L330 */
-{3.2009557359092833e+00, 1.1762812945903534e-13,
- 2.2204460492503131e-16, -2.7533531010703882e-14,
- -6.5392136150421720e-14}, /* L331 */
-{4.4902801294500705e+00, 1.6550649739599521e-13,
- 2.2204460492503131e-16, 1.5254464358349651e-13,
- 2.9309887850104133e-14}, /* L332 */
-{2.9865325693813820e+00, 1.1041167979897182e-13,
- 2.2204460492503131e-16, -3.5083047578154947e-13,
- -8.6930462828149757e-13}, /* L333 */
-{4.7130218248238247e+00, 1.7476298186380745e-13,
- 2.2204460492503131e-16, 5.4223292522692645e-13,
- 1.1146639167236572e-13}, /* L334 */
-{3.7381173815213637e+00, 1.3902767825868523e-13,
- 2.2204460492503131e-16, -7.2164496600635175e-14,
- -4.1411318818518339e-14}, /* L335 */
-{4.5045337917289521e+00, 1.6803225477701744e-13,
- 2.2204460492503131e-16, 5.7509552675583109e-14,
- -1.4210854715202004e-14}, /* L336 */
-{4.2938348008720153e+00, 1.6064927166326015e-13,
- 2.2204460492503131e-16, -1.3689049893628180e-13,
- 1.7474910407599964e-13}, /* L337 */
-{4.6775869691651835e+00, 1.7552626019323725e-13,
- 2.2204460492503131e-16, -3.1752378504279477e-14,
- 9.7699626167013776e-15}, /* L338 */
-{3.3379939839066104e+00, 1.2562867413024037e-13,
- 2.2204460492503131e-16, -2.7755575615628914e-14,
- -1.1057821325266559e-13}, /* L339 */
-{5.6964114263622720e+00, 2.1502244429427719e-13,
- 2.2204460492503131e-16, 6.1239902038323635e-13,
- 9.1771035215515440e-13}, /* L340 */
-{3.9256470839204907e+00, 1.4861722963388502e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- 3.3528735343679728e-14}, /* L341 */
-{5.1769804668198951e+00, 1.9656498650988397e-13,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- 1.0458300891968975e-13}, /* L342 */
-{3.5292089754715232e+00, 1.3439249713087520e-13,
- 2.2204460492503131e-16, 3.6792791036077688e-13,
- 1.2612133559741778e-13}, /* L343 */
-{3.4157503802486002e+00, 1.3045120539345589e-13,
- 2.2204460492503131e-16, -9.1260332624187868e-14,
- 9.0816243414337805e-14}, /* L344 */
-{4.8696403570859399e+00, 1.8651746813702630e-13,
- 2.2204460492503131e-16, 4.8405723873656825e-14,
- -6.9166894434147252e-14}, /* L345 */
-{2.8213043715378929e+00, 1.0837511443817505e-13,
- 2.2204460492503131e-16, -1.5487611193520934e-13,
- -7.7826634026223473e-14}, /* L346 */
-{5.0706834291562828e+00, 1.9534374118279629e-13,
- 2.2204460492503131e-16, 1.9761969838327786e-14,
- 1.4210854715202004e-14}, /* L347 */
-{3.6239783326268262e+00, 1.4001300119304005e-13,
- 2.2204460492503131e-16, -7.9825035470548755e-14,
- 3.3995029014022293e-13}, /* L348 */
-{4.6963475373777479e+00, 1.8196555373606316e-13,
- 2.2204460492503131e-16, 6.1950444774083735e-14,
- -1.3156142841808105e-13}, /* L349 */
-{5.3715114551115697e+00, 2.0872192862952943e-13,
- 2.2204460492503131e-16, 1.1990408665951691e-14,
- 1.3811174426336947e-13}, /* L350 */
-{3.7322513217085089e+00, 1.4543921622589551e-13,
- 2.2204460492503131e-16, -2.8310687127941492e-14,
- -1.3988810110276972e-14}, /* L351 */
-{3.5980668826528035e+00, 1.4060974606877608e-13,
- 2.2204460492503131e-16, 5.3956838996782608e-14,
- 1.7430501486614958e-13}, /* L352 */
-{3.8187558081509518e+00, 1.4965806371947110e-13,
- 2.2204460492503131e-16, -8.3599793754274287e-14,
- -1.4632739464559563e-13}, /* L353 */
-{6.0587093065147410e+00, 2.3811508320648045e-13,
- 2.2204460492503131e-16, 3.2862601528904634e-14,
- 3.6393110747212631e-13}, /* L354 */
-{4.4620406813180411e+00, 1.7585932710062480e-13,
- 2.2204460492503131e-16, 1.7652546091539989e-13,
- 9.6478380839926103e-13}, /* L355 */
-{3.1910604747652753e+00, 1.2612133559741778e-13,
- 2.2204460492503131e-16, -3.5682568011452531e-13,
- -1.3866685577568205e-13}, /* L356 */
-{4.3530083444119070e+00, 1.7252865802674933e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- -2.9642954757491680e-14}, /* L357 */
-{4.7849900346372092e+00, 1.9018120411828932e-13,
- 2.2204460492503131e-16, 6.6169292267659330e-14,
- 9.2370555648813024e-14}, /* L358 */
-{3.7688603828131426e+00, 1.5021317523178368e-13,
- 2.2204460492503131e-16, -1.1624035067825389e-13,
- 5.3290705182007514e-14}, /* L359 */
-{4.6945168819418193e+00, 1.8762769116165146e-13,
- 2.2204460492503131e-16, -5.4178883601707639e-14,
- 6.1062266354383610e-14}, /* L360 */
-{2.6511835676651687e+00, 1.0625528235053139e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- -1.5099033134902129e-14}, /* L361 */
-{4.8964843936833926e+00, 1.9678703111480900e-13,
- 2.2204460492503131e-16, -5.6621374255882984e-14,
- 4.3298697960381105e-14}, /* L362 */
-{3.6804975622908485e+00, 1.4832579608992091e-13,
- 2.2204460492503131e-16, -1.0225154056797692e-13,
- -1.0691447727140257e-13}, /* L363 */
-{5.2308499440104841e+00, 2.1138646388862981e-13,
- 2.2204460492503131e-16, 1.6009416015094757e-13,
- -8.4710016778899444e-14}, /* L364 */
-{4.2767783204610934e+00, 1.7330581414398694e-13,
- 2.2204460492503131e-16, -5.9952043329758453e-15,
- 1.6209256159527285e-14}, /* L365 */
-{4.2213766122425591e+00, 1.7152945730458669e-13,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -2.0539125955565396e-14}, /* L366 */
-{4.2003372917549333e+00, 1.7114087924596788e-13,
- 2.2204460492503131e-16, -3.1086244689504383e-14,
- 7.3718808835110394e-14}, /* L367 */
-{5.7922089403616104e+00, 2.3664403769885212e-13,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- 1.0880185641326534e-14}, /* L368 */
-{4.6443806069733284e+00, 1.9026447084513620e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -3.5638159090467525e-14}, /* L369 */
-{5.3000817815062176e+00, 2.1771473512899320e-13,
- 2.2204460492503131e-16, -4.8405723873656825e-14,
- 3.1752378504279477e-14}, /* L370 */
-{4.5650973947024882e+00, 1.8803014700807807e-13,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- 5.9063864910058328e-14}, /* L371 */
-{4.0864205813108372e+00, 1.6876777753083161e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 8.0380146982861334e-14}, /* L372 */
-{4.9116039373335045e+00, 2.0339285811132868e-13,
- 2.2204460492503131e-16, -9.5812247025151009e-14,
- -1.9595436384634013e-13}, /* L373 */
-{5.2032888441009577e+00, 2.1604940059205546e-13,
- 2.2204460492503131e-16, -1.7934542739794779e-12,
- -1.6749934772519737e-12}, /* L374 */
-{6.0002592520761446e+00, 2.4980711943456413e-13,
- 2.2204460492503131e-16, 2.8643754035329039e-14,
- -1.4832579608992091e-13}, /* L375 */
-{4.7633713722794448e+00, 1.9884094371036554e-13,
- 2.2204460492503131e-16, -1.5509815654013437e-13,
- -4.1078251911130792e-15}, /* L376 */
-{4.9191740472453107e+00, 2.0589085991673528e-13,
- 2.2204460492503131e-16, 7.0388139761234925e-14,
- 6.5281113847959205e-14}, /* L377 */
-{4.3334001987148589e+00, 1.8185453143360064e-13,
- 2.2204460492503131e-16, -8.4487972173974413e-14,
- -7.6605388699135801e-15}, /* L378 */
-{4.1319898789466052e+00, 1.7386092565629951e-13,
- 2.2204460492503131e-16, -1.9317880628477724e-14,
- -3.4527936065842368e-14}, /* L379 */
-{4.8658645551173834e+00, 2.0528023725319144e-13,
- 2.2204460492503131e-16, 3.4861002973229915e-14,
- -3.3528735343679728e-14}, /* L380 */
-{3.1640908174151492e+00, 1.3383738561856262e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- 4.7073456244106637e-14}, /* L381 */
-{5.2094916111467278e+00, 2.2093438190040615e-13,
- 2.2204460492503131e-16, -3.4849900742983664e-13,
- 5.9330318435968366e-13}, /* L382 */
-{4.8571125680694385e+00, 2.0652923815589475e-13,
- 2.2204460492503131e-16, 1.3811174426336947e-13,
- 4.1522341120980855e-14}, /* L383 */
-{5.5593168536130948e+00, 2.3700486018185529e-13,
- 2.2204460492503131e-16, 4.4919623576333834e-13,
- 3.2884805989397137e-13}, /* L384 */
-{3.7409575826046662e+00, 1.5989987112163817e-13,
- 2.2204460492503131e-16, -1.5321077739827160e-14,
- 2.5313084961453569e-14}, /* L385 */
-{4.5285561101606637e+00, 1.9406698470447736e-13,
- 2.2204460492503131e-16, 5.7798210661985649e-13,
- 7.5406347832540632e-13}, /* L386 */
-{5.4286879397493903e+00, 2.3324397968593757e-13,
- 2.2204460492503131e-16, 3.5527136788005009e-14,
- 1.0658141036401503e-14}, /* L387 */
-{4.4910375959579660e+00, 1.9345636204093353e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- -7.1609385088322597e-14}, /* L388 */
-{4.7979413700944722e+00, 2.0720924975847765e-13,
- 2.2204460492503131e-16, -4.1189274213593308e-14,
- 1.6431300764452317e-14}, /* L389 */
-{5.2205804916360297e+00, 2.2604140781368187e-13,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -3.2196467714129540e-14}, /* L390 */
-{4.8414949823386939e+00, 2.1016521856154213e-13,
- 2.2204460492503131e-16, 5.9729998724833422e-14,
- -3.3306690738754696e-16}, /* L391 */
-{5.4956069504022071e+00, 2.3916979507987435e-13,
- 2.2204460492503131e-16, 1.0347278589506459e-13,
- -3.4239278079439828e-13}, /* L392 */
-{3.7468679067287445e+00, 1.6348034037605430e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- -1.3655743202889425e-14}, /* L393 */
-{3.5317716684731328e+00, 1.5448753387659053e-13,
- 2.2204460492503131e-16, -1.2634338020234281e-13,
- 2.3536728122053319e-13}, /* L394 */
-{4.7608212052214807e+00, 2.0877743978076069e-13,
- 2.2204460492503131e-16, -9.4702024000525853e-14,
- 1.5765166949677223e-14}, /* L395 */
-{4.9634481764545315e+00, 2.1821433549007452e-13,
- 2.2204460492503131e-16, 4.4098058538111218e-13,
- -4.6074255521943996e-13}, /* L396 */
-{4.8993078391605653e+00, 2.1593837828959295e-13,
- 2.2204460492503131e-16, -2.3536728122053319e-14,
- -3.1086244689504383e-15}, /* L397 */
-{5.0666485903732950e+00, 2.2387647291566282e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-14,
- -2.6645352591003757e-14}, /* L398 */
-{4.5288807601759888e+00, 2.0061730054976579e-13,
- 2.2204460492503131e-16, -1.7796875084741259e-13,
- -3.1330493754921918e-13}, /* L399 */
-{4.9313139215394433e+00, 2.1899149160731213e-13,
- 2.2204460492503131e-16, -1.4210854715202004e-13,
- 4.4408920985006262e-15}, /* L400 */
-{4.1019858398085169e+00, 1.8261780976303044e-13,
- 2.2204460492503131e-16, 1.8207657603852567e-14,
- 1.4654943925052066e-14}, /* L401 */
-{4.0112460251269297e+00, 1.7902346272080649e-13,
- 2.2204460492503131e-16, -3.7414515929867775e-14,
- 2.2204460492503131e-14}, /* L402 */
-{5.1315625948111121e+00, 2.2959412149248237e-13,
- 2.2204460492503131e-16, -4.9626969200744497e-14,
- -5.0737192225369654e-14}, /* L403 */
-{5.5421320712865736e+00, 2.4857893521357255e-13,
- 2.2204460492503131e-16, -2.1427304375265521e-14,
- -5.5511151231257827e-16}, /* L404 */
-{4.9951093740107906e+00, 2.2459811788166917e-13,
- 2.2204460492503131e-16, -1.5765166949677223e-14,
- -6.4392935428259079e-14}, /* L405 */
-{4.3621105733038812e+00, 1.9662049766111522e-13,
- 2.2204460492503131e-16, -5.4178883601707639e-14,
- -4.8516746176119341e-14}, /* L406 */
-{4.5676111355117310e+00, 2.0639046027781660e-13,
- 2.2204460492503131e-16, -5.1625370645069779e-14,
- -4.8738790781044372e-14}, /* L407 */
-{4.0674407578674723e+00, 1.8424151093654473e-13,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- -4.9149573300155680e-13}, /* L408 */
-{4.2304804500375237e+00, 1.9209633883576771e-13,
- 2.2204460492503131e-16, -1.3655743202889425e-13,
- 6.7945649107059580e-14}, /* L409 */
-{8.2086148828492433e+00, 3.7364555893759643e-13,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 3.6859404417555197e-13}, /* L410 */
-{3.8053890955786795e+00, 1.7363888105137448e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- 2.7311486405778851e-14}, /* L411 */
-{4.2900894645059333e+00, 1.9623191960249642e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-15,
- 9.0372154204487742e-14}, /* L412 */
-{5.8562907267800979e+00, 2.6852131629340192e-13,
- 2.2204460492503131e-16, -3.3051339443090910e-13,
- 1.7741363933510002e-13}, /* L413 */
-{4.0072846000977922e+00, 1.8418599978531347e-13,
- 2.2204460492503131e-16, 8.2600593032111647e-13,
- 2.2892798767770728e-13}, /* L414 */
-{5.2735442773577637e+00, 2.4297230893921551e-13,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- -2.2759572004815709e-14}, /* L415 */
-{4.2716753605568636e+00, 1.9728663147589032e-13,
- 2.2204460492503131e-16, 2.7355895326763857e-13,
- -2.6090241078691179e-14}, /* L416 */
-{3.1846826551209371e+00, 1.4743761767022079e-13,
- 2.2204460492503131e-16, 2.0117241206207837e-13,
- -4.8361314952671819e-13}, /* L417 */
-{3.3680793750683820e+00, 1.5630205463246227e-13,
- 2.2204460492503131e-16, -1.6486811915683575e-13,
- -1.6875389974302379e-14}, /* L418 */
-{4.8092642500287308e+00, 2.2371687835587295e-13,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- 8.7707618945387367e-14}, /* L419 */
-{5.0256431749561346e+00, 2.3434032492275492e-13,
- 2.2204460492503131e-16, 6.8167693711984612e-14,
- 2.2870594307278225e-14}, /* L420 */
-{4.5000429234481318e+00, 2.1033175201523591e-13,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- -5.5511151231257827e-16}, /* L421 */
-{4.9899765066075457e+00, 2.3378521341044234e-13,
- 2.2204460492503131e-16, -8.1268325402561459e-14,
- 4.1966430330830917e-14}, /* L422 */
-{3.9233530255546833e+00, 1.8424844983044864e-13,
- 2.2204460492503131e-16, 2.0028423364237824e-13,
- 7.5273121069585613e-14}, /* L423 */
-{3.8915465532951132e+00, 1.8318679906315083e-13,
- 2.2204460492503131e-16, 2.5668356329333619e-13,
- 1.3211653993039363e-13}, /* L424 */
-{4.3556297812639952e+00, 2.0551615964592429e-13,
- 2.2204460492503131e-16, 6.8167693711984612e-14,
- -3.6637359812630166e-15}, /* L425 */
-{3.5933441340983956e+00, 1.6994738949449584e-13,
- 2.2204460492503131e-16, -1.5876189252139739e-13,
- -2.1638246749944301e-13}, /* L426 */
-{4.0533173509010618e+00, 1.9215184998699897e-13,
- 2.2204460492503131e-16, 4.0634162701280729e-14,
- -9.8143715376863838e-14}, /* L427 */
-{4.3081237447046146e+00, 2.0470951322959507e-13,
- 2.2204460492503131e-16, 6.9277916736609768e-14,
- 1.3322676295501878e-14}, /* L428 */
-{5.5653211498038493e+00, 2.6506574712925612e-13,
- 2.2204460492503131e-16, -6.8056671409522096e-13,
- -4.4853010194856324e-14}, /* L429 */
-{5.4860988405239652e+00, 2.6190161150907443e-13,
- 2.2204460492503131e-16, -4.4075854077618715e-14,
- 2.5313084961453569e-14}, /* L430 */
-{4.5354260915549709e+00, 2.1702084573860247e-13,
- 2.2204460492503131e-16, -1.3579137814190290e-12,
- -1.3615775174002920e-12}, /* L431 */
-{5.6563039523888659e+00, 2.7128299606715700e-13,
- 2.2204460492503131e-16, 7.3718808835110394e-14,
- -1.5321077739827160e-14}, /* L432 */
-{5.7564059464679751e+00, 2.7672308888782027e-13,
- 2.2204460492503131e-16, 6.5503158452884236e-14,
- 6.7501559897209518e-14}, /* L433 */
-{5.5311587494793590e+00, 2.6650903706126883e-13,
- 2.2204460492503131e-16, 5.1070259132757201e-14,
- 3.5282887722587475e-13}, /* L434 */
-{4.1632581018463695e+00, 2.0106138975961585e-13,
- 2.2204460492503131e-16, -5.1181281435219717e-14,
- -1.9872992140790302e-14}, /* L435 */
-{6.2942114131815954e+00, 3.0467295353275858e-13,
- 2.2204460492503131e-16, 7.7426953737358417e-13,
- 9.0816243414337805e-14}, /* L436 */
-{4.8438677133003107e+00, 2.3500645873753001e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -1.3899992268306960e-13}, /* L437 */
-{4.9749332979158005e+00, 2.4191759706582161e-13,
- 2.2204460492503131e-16, -5.8508753397745750e-14,
- 1.3322676295501878e-15}, /* L438 */
-{5.6669105455866235e+00, 2.7619573295112332e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- -8.2045481519799068e-14}, /* L439 */
-{6.3009123736801484e+00, 3.0779545578951684e-13,
- 2.2204460492503131e-16, -2.9676261448230434e-13,
- 5.7509552675583109e-14}, /* L440 */
-{5.6049287457955144e+00, 2.7441937611172307e-13,
- 2.2204460492503131e-16, -3.8302694349567901e-14,
- -1.5909495942878493e-13}, /* L441 */
-{5.2828558201362519e+00, 2.5923707624997405e-13,
- 2.2204460492503131e-16, -7.9714013168086240e-14,
- 9.3258734068513149e-15}, /* L442 */
-{6.6118012153391872e+00, 3.2518432391270835e-13,
- 2.2204460492503131e-16, 2.1982415887578100e-14,
- 3.6637359812630166e-14}, /* L443 */
-{4.9189658382309256e+00, 2.4247270857813419e-13,
- 2.2204460492503131e-16, 2.3470114740575809e-13,
- -1.4133139103478243e-13}, /* L444 */
-{4.6506061573407163e+00, 2.2976065494617615e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- 1.0436096431476471e-14}, /* L445 */
-{3.3778349099024871e+00, 1.6725509865977983e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-15,
- 7.0832228971084987e-14}, /* L446 */
-{5.5313726712515736e+00, 2.7450264283856995e-13,
- 2.2204460492503131e-16, -4.2699177527083521e-13,
- 2.6667557051496260e-13}, /* L447 */
-{5.4732664922095164e+00, 2.7222668563808838e-13,
- 2.2204460492503131e-16, -2.4091839634365897e-14,
- 2.1316282072803006e-14}, /* L448 */
-{5.0668634748051398e+00, 2.5257573810222311e-13,
- 2.2204460492503131e-16, 5.5067062021407764e-14,
- 5.0848214527832170e-14}, /* L449 */
-{5.9967238661349125e+00, 2.9959368319509849e-13,
- 2.2204460492503131e-16, -3.4972025275692431e-14,
- 1.3034018309099338e-13}, /* L450 */
-{3.8129521124572943e+00, 1.9091672687210348e-13,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- 1.2234657731369225e-13}, /* L451 */
-{4.4636764261250086e+00, 2.2399443411202924e-13,
- 2.2204460492503131e-16, -9.2481577951275540e-14,
- 9.1704421834037930e-14}, /* L452 */
-{4.2036824807332192e+00, 2.1141421946424543e-13,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- -4.3853809472693683e-14}, /* L453 */
-{6.6718698067170630e+00, 3.3628655415895992e-13,
- 2.2204460492503131e-16, 1.0880185641326534e-14,
- 2.2426505097428162e-14}, /* L454 */
-{4.0637750258624035e+00, 2.0528023725319144e-13,
- 2.2204460492503131e-16, 3.4194869158454821e-14,
- 3.3750779948604759e-14}, /* L455 */
-{3.7884133285779167e+00, 1.9179102750399579e-13,
- 2.2204460492503131e-16, 2.8843594179761567e-13,
- 3.9124259387790516e-13}, /* L456 */
-{4.6225823855009853e+00, 2.3453461395206432e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-14,
- 8.1046280797636427e-14}, /* L457 */
-{5.1900058365034791e+00, 2.6390001295339971e-13,
- 2.2204460492503131e-16, -2.6867397195928788e-14,
- -8.8817841970012523e-14}, /* L458 */
-{6.9434213493214942e+00, 3.5382807794803739e-13,
- 2.2204460492503131e-16, -2.2915003228263231e-13,
- -1.3777867735598193e-13}, /* L459 */
-{3.7940579285718989e+00, 1.9376167337270545e-13,
- 2.2204460492503131e-16, -3.6837199957062694e-13,
- -2.3603341503530828e-13}, /* L460 */
-{4.2332290986304093e+00, 2.1666002325559930e-13,
- 2.2204460492503131e-16, -4.1855408028368402e-14,
- -3.1530333899354446e-14}, /* L461 */
-{4.6171977205768782e+00, 2.3682444894035370e-13,
- 2.2204460492503131e-16, -6.7723604502134549e-15,
- -6.5059069243034173e-14}, /* L462 */
-{4.9654901276721048e+00, 2.5524027336132349e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- -9.8809849191638932e-15}, /* L463 */
-{4.8906716494417406e+00, 2.5193735986306365e-13,
- 2.2204460492503131e-16, -3.0087043967341742e-14,
- 6.8167693711984612e-14}, /* L464 */
-{4.8204760874113477e+00, 2.4885649096972884e-13,
- 2.2204460492503131e-16, 3.4638958368304884e-14,
- -5.5511151231257827e-16}, /* L465 */
-{5.2001568975887578e+00, 2.6903479444229106e-13,
- 2.2204460492503131e-16, -9.3591800975900696e-14,
- -6.0840221749458578e-14}, /* L466 */
-{6.7655891585220527e+00, 3.5077496463031821e-13,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- -5.9618976422370906e-14}, /* L467 */
-{5.5897969077581431e+00, 2.9043434324194095e-13,
- 2.2204460492503131e-16, 1.0325074129013956e-13,
- -5.5178084323870280e-14}, /* L468 */
-{5.7207368697509278e+00, 2.9787283750692950e-13,
- 2.2204460492503131e-16, 2.0849988402460440e-13,
- 6.4170890823334048e-14}, /* L469 */
-{5.2564331169633727e+00, 2.7428059823364492e-13,
- 2.2204460492503131e-16, -7.5939254884360707e-14,
- -3.2196467714129540e-15}, /* L470 */
-{5.1093905615339485e+00, 2.6717517087604392e-13,
- 2.2204460492503131e-16, 3.2935876248529894e-12,
- -1.0899059432745162e-12}, /* L471 */
-{5.2701773879834288e+00, 2.7616797737550769e-13,
- 2.2204460492503131e-16, -5.5622173533720343e-14,
- -2.5424107263916085e-14}, /* L472 */
-{4.9810200270811755e+00, 2.6156854460168688e-13,
- 2.2204460492503131e-16, -3.8968828164342995e-14,
- 3.9745984281580604e-14}, /* L473 */
-{4.8505209500081383e+00, 2.5525415114913130e-13,
- 2.2204460492503131e-16, 1.8740564655672642e-13,
- 2.0450308113595383e-13}, /* L474 */
-{4.2553037468947856e+00, 2.2440382885235977e-13,
- 2.2204460492503131e-16, -8.3710816056736803e-14,
- 3.6459724128690141e-13}, /* L475 */
-{5.1856455764697369e+00, 2.7404120639396012e-13,
- 2.2204460492503131e-16, -6.4703797875154123e-13,
- 1.1279865930191590e-12}, /* L476 */
-{5.5870553883009535e+00, 2.9587443606260422e-13,
- 2.2204460492503131e-16, -3.4749980670767400e-14,
- 1.0658141036401503e-14}, /* L477 */
-{5.1114504289695146e+00, 2.7125524049154137e-13,
- 2.2204460492503131e-16, -2.7977620220553945e-14,
- -5.0737192225369654e-14}, /* L478 */
-{5.3048522702297776e+00, 2.8210767055725228e-13,
- 2.2204460492503131e-16, -4.3631764867768652e-14,
- 4.5963233219481481e-14}, /* L479 */
-{6.1919861453015788e+00, 3.2997216070640434e-13,
- 2.2204460492503131e-16, -6.5947247662734299e-14,
- 1.2989609388114332e-13}, /* L480 */
-{6.2217329423703367e+00, 3.3224811790688591e-13,
- 2.2204460492503131e-16, 1.0644818360106001e-12,
- -1.3207213100940862e-12}, /* L481 */
-{5.5176874849739708e+00, 2.9526381339906038e-13,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- -8.9039886574937555e-14}, /* L482 */
-{6.3540978753398916e+00, 3.4072744625746054e-13,
- 2.2204460492503131e-16, -1.8851586958135158e-13,
- 2.5979218776228663e-14}, /* L483 */
-{5.9669990646989000e+00, 3.2063240951174521e-13,
- 2.2204460492503131e-16, -5.5955240441107890e-14,
- -6.7612582199672033e-14}, /* L484 */
-{6.3248025968725594e+00, 3.4056091280376677e-13,
- 2.2204460492503131e-16, 9.5701224722688494e-14,
- -8.2933659939499194e-14}, /* L485 */
-{9.0124316436680179e+00, 4.8627768478581856e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- -2.6645352591003757e-14}, /* L486 */
-{4.4398524109244741e+00, 2.4005103460567057e-13,
- 2.2204460492503131e-16, 3.4416913763379853e-14,
- -1.8318679906315083e-14}, /* L487 */
-{6.9078527754736454e+00, 3.7425618160114027e-13,
- 2.2204460492503131e-16, -2.4724666758402236e-13,
- 1.8030021919912542e-13}, /* L488 */
-{5.8029694617773471e+00, 3.1503966102519598e-13,
- 2.2204460492503131e-16, 3.2374103398069565e-13,
- 3.0064839506849239e-13}, /* L489 */
-{4.6571872795048552e+00, 2.5335289421946072e-13,
- 2.2204460492503131e-16, 2.3314683517128287e-14,
- 4.4630965589931293e-14}, /* L490 */
-{3.8371038098098209e+00, 2.0916601783937949e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 1.5765166949677223e-13}, /* L491 */
-{6.6038485595349039e+00, 3.6071839959461727e-13,
- 2.2204460492503131e-16, 6.0558225101203789e-12,
- -2.6111335316159057e-12}, /* L492 */
-{4.1075680211209198e+00, 2.2482146352920118e-13,
- 2.2204460492503131e-16, -1.2134737659152961e-13,
- 1.1546319456101628e-14}, /* L493 */
-{4.9261603482680760e+00, 2.7017277304253184e-13,
- 2.2204460492503131e-16, 3.1485924978369439e-13,
- -3.6259883984257613e-13}, /* L494 */
-{5.5310502324083082e+00, 3.0396171690760809e-13,
- 2.2204460492503131e-16, -2.8754776337791554e-14,
- 3.2640556923979602e-14}, /* L495 */
-{6.5522298368457070e+00, 3.6080860521536806e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- -4.9960036108132044e-15}, /* L496 */
-{6.8390994396592744e+00, 3.7736480607009071e-13,
- 2.2204460492503131e-16, 1.5876189252139739e-13,
- 3.0420110874729289e-14}, /* L497 */
-{4.9247457696351562e+00, 2.7228219678931964e-13,
- 2.2204460492503131e-16, 5.9063864910058328e-14,
- -6.6169292267659330e-14}, /* L498 */
-{4.7209869146754633e+00, 2.6154078902607125e-13,
- 2.2204460492503131e-16, -1.3877787807814457e-14,
- 1.1590728377086634e-13}, /* L499 */
-{5.7892739707168008e+00, 3.2136619754208340e-13,
- 2.2204460492503131e-16, 7.0166095156309893e-14,
- -6.2949645496246376e-14}, /* L500 */
-{5.5020484890138217e+00, 3.0603297673792440e-13,
- 2.2204460492503131e-16, -5.2069459854919842e-14,
- 2.4868995751603507e-14}, /* L501 */
-{5.8988361462490460e+00, 3.2875785427322057e-13,
- 2.2204460492503131e-16, 2.7977620220553945e-14,
- -2.0317081350640365e-14}, /* L502 */
-{6.1342533422927366e+00, 3.4255931424809205e-13,
- 2.2204460492503131e-16, 8.1912254756844050e-13,
- 1.9917401061775308e-13}, /* L503 */
-{6.8217416561632671e+00, 3.8170855365393663e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -2.0761170560490427e-14}, /* L504 */
-{6.3060007435503929e+00, 3.5355052219188110e-13,
- 2.2204460492503131e-16, 1.1302070390684094e-13,
- -1.4832579608992091e-13}, /* L505 */
-{4.9363119069119383e+00, 2.7730595597574847e-13,
- 2.2204460492503131e-16, -1.3355982986240633e-13,
- -2.5757174171303632e-14}, /* L506 */
-{4.5084256463924355e+00, 2.5376922785369516e-13,
- 2.2204460492503131e-16, 1.6995294060961896e-12,
- 8.0158102377936302e-13}, /* L507 */
-{5.3937522354011946e+00, 3.0420110874729289e-13,
- 2.2204460492503131e-16, 2.6842972289387035e-12,
- -4.7740700281906356e-12}, /* L508 */
-{4.7888472499031858e+00, 2.7061686225238191e-13,
- 2.2204460492503131e-16, -1.4110934642985740e-13,
- -2.5535129566378600e-15}, /* L509 */
-{6.3466291644733062e+00, 3.5935143749554754e-13,
- 2.2204460492503131e-16, 6.1506355564233672e-14,
- -3.8857805861880479e-15}, /* L510 */
-{6.8581867472152114e+00, 3.8907765897988611e-13,
- 2.2204460492503131e-16, 7.2386541205560206e-14,
- -1.1801670751765414e-13}, /* L511 */
-{5.2642103686724546e+00, 2.9923286071209532e-13,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- -1.7730261703263750e-13}, /* L512 */
-{5.4827521020410099e+00, 3.1226410346363309e-13,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- -1.8762769116165146e-14}, /* L513 */
-{6.5788565264311503e+00, 3.7542191577699668e-13,
- 2.2204460492503131e-16, 1.2145839889399213e-13,
- -9.2259533346350509e-14}, /* L514 */
-{4.2888758606957653e+00, 2.4522051056408145e-13,
- 2.2204460492503131e-16, -3.8080649744642869e-14,
- -6.4059868520871532e-14}, /* L515 */
-{8.3050695275914741e+00, 4.7577219941530302e-13,
- 2.2204460492503131e-16, 2.9531932455029164e-14,
- -1.2734258092450546e-13}, /* L516 */
-{4.7814388783264699e+00, 2.7444713168733870e-13,
- 2.2204460492503131e-16, -1.0025313912365164e-13,
- -2.2826185386293218e-13}, /* L517 */
-{4.6327293168117691e+00, 2.6642577033442194e-13,
- 2.2204460492503131e-16, -1.4555023852835802e-13,
- -2.9198865547641617e-14}, /* L518 */
-{6.8887391921071686e+00, 3.9693248687910909e-13,
- 2.2204460492503131e-16, 2.9531932455029164e-14,
- -1.0214051826551440e-13}, /* L519 */
-{6.4177985869453060e+00, 3.7050917889303037e-13,
- 2.2204460492503131e-16, 5.1736392947532295e-14,
- -2.8310687127941492e-14}, /* L520 */
-{5.4712178450037579e+00, 3.1646907316940087e-13,
- 2.2204460492503131e-16, -9.5112806519637161e-13,
- 3.3328895199247199e-13}, /* L521 */
-{7.2289386082106963e+00, 4.1894265834230282e-13,
- 2.2204460492503131e-16, 9.3258734068513149e-15,
- 1.3633538742396922e-13}, /* L522 */
-{6.8948483541495440e+00, 4.0034642267983145e-13,
- 2.2204460492503131e-16, 4.7517545453956700e-14,
- 2.4713564528155985e-13}, /* L523 */
-{8.5105096102962037e+00, 4.9510395783158856e-13,
- 2.2204460492503131e-16, -1.6897594434794883e-13,
- 2.4846791291111003e-13}, /* L524 */
-{5.8285806243610949e+00, 3.3972824553529790e-13,
- 2.2204460492503131e-16, 1.5254464358349651e-13,
- 1.9917401061775308e-13}, /* L525 */
-{6.4334702261777226e+00, 3.7569947153315297e-13,
- 2.2204460492503131e-16, -1.0236256287043943e-13,
- -3.2418512319054571e-14}, /* L526 */
-{5.7909246961506593e+00, 3.3881925043388605e-13,
- 2.2204460492503131e-16, -1.8840484727888906e-13,
- -1.3022916078853086e-13}, /* L527 */
-{7.1912992245498684e+00, 4.2155168245017194e-13,
- 2.2204460492503131e-16, 1.2345680033831741e-13,
- 7.5273121069585613e-14}, /* L528 */
-{4.3331826398958366e+00, 2.5449087281970151e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-14,
- -5.9729998724833422e-14}, /* L529 */
-{5.1434043411865540e+00, 3.0264679651281767e-13,
- 2.2204460492503131e-16, 1.2601031329495527e-12,
- 2.1544988015875788e-12}, /* L530 */
-{6.6958674379409047e+00, 3.9473979640547441e-13,
- 2.2204460492503131e-16, 1.1368683772161603e-13,
- 1.0258460747536446e-13}, /* L531 */
-{7.0921164524366826e+00, 4.1888714719107156e-13,
- 2.2204460492503131e-16, -4.1411318818518339e-14,
- 4.2632564145606011e-14}, /* L532 */
-{4.9690509915795653e+00, 2.9404256807197271e-13,
- 2.2204460492503131e-16, 1.0869305455685208e-11,
- 3.4430236439675355e-12}, /* L533 */
-{5.5978552737227307e+00, 3.3187341763607492e-13,
- 2.2204460492503131e-16, -2.6423307986078726e-14,
- 1.3677947663381929e-13}, /* L534 */
-{5.9266448645163132e+00, 3.5202396553302151e-13,
- 2.2204460492503131e-16, 7.7315931434895901e-13,
- -1.5853984791647235e-13}, /* L535 */
-{5.8862616188863335e+00, 3.5027883371618884e-13,
- 2.2204460492503131e-16, 3.8635761256955448e-14,
- -5.1070259132757201e-15}, /* L536 */
-{6.9432139338060024e+00, 4.1394665473148962e-13,
- 2.2204460492503131e-16, 2.7722268924890159e-12,
- -3.1881164375135995e-12}, /* L537 */
-{5.3345809071128789e+00, 3.1863400806741993e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-14,
- -2.0983215165415459e-14}, /* L538 */
-{7.4605869097678958e+00, 4.4644843377739107e-13,
- 2.2204460492503131e-16, 1.2767564783189300e-13,
- 3.2640556923979602e-14}, /* L539 */
-{8.4264021832846634e+00, 5.0517923178006185e-13,
- 2.2204460492503131e-16, 7.3940853440035426e-14,
- 4.8183679268731794e-14}, /* L540 */
-{5.1876237113525638e+00, 3.1158409186105018e-13,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- -1.2589929099249275e-13}, /* L541 */
-{6.5041615531723531e+00, 3.9138137175598331e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-14,
- -1.2434497875801753e-14}, /* L542 */
-{5.5815005185295110e+00, 3.3648084318826932e-13,
- 2.2204460492503131e-16, 8.2767126485805420e-12,
- -7.7062800585281366e-12}, /* L543 */
-{6.3842012488641053e+00, 3.8558045645231687e-13,
- 2.2204460492503131e-16, 8.4554585555451922e-13,
- -4.5818904226280210e-13}, /* L544 */
-{6.9642311710030746e+00, 4.2138514899647816e-13,
- 2.2204460492503131e-16, 2.7755575615628914e-14,
- -1.9551027463649007e-13}, /* L545 */
-{4.6730842958359675e+00, 2.8327340473310869e-13,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -3.1641356201816961e-14}, /* L546 */
-{6.2806314812076351e+00, 3.8141712010997253e-13,
- 2.2204460492503131e-16, -1.3333778525748130e-13,
- -9.9920072216264089e-14}, /* L547 */
-{6.0374182844022162e+00, 3.6731728769723304e-13,
- 2.2204460492503131e-16, -1.3611334281904419e-13,
- 5.6399329650957952e-14}, /* L548 */
-{7.4435454413637387e+00, 4.5369263901307022e-13,
- 2.2204460492503131e-16, 2.4069635173873394e-13,
- -3.5371705564557487e-13}, /* L549 */
-{7.0254656295820750e+00, 4.2899017671516049e-13,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- -5.0293103015519591e-14}, /* L550 */
-{5.0218999376067579e+00, 3.0720564980768472e-13,
- 2.2204460492503131e-16, 9.6367358537463588e-14,
- 2.0206059048177849e-14}, /* L551 */
-{6.2151366172536946e+00, 3.8088976417327558e-13,
- 2.2204460492503131e-16, -2.3669954885008337e-13,
- 5.0559556541429629e-13}, /* L552 */
-{5.9792137733998993e+00, 3.6709524309230801e-13,
- 2.2204460492503131e-16, 3.3373304120232206e-13,
- -3.7947422981687851e-13}, /* L553 */
-{5.8835832897902849e+00, 3.6187719487656977e-13,
- 2.2204460492503131e-16, 1.8540724511240114e-13,
- -9.7255536957163713e-14}, /* L554 */
-{4.5477549227678544e+00, 2.8022029141538951e-13,
- 2.2204460492503131e-16, 3.3328895199247199e-13,
- 6.4881433559094148e-13}, /* L555 */
-{5.2581018209224375e+00, 3.2457370124916451e-13,
- 2.2204460492503131e-16, -3.1641356201816961e-13,
- 3.8991032624835498e-13}, /* L556 */
-{7.8831475360419123e+00, 4.8748852177205038e-13,
- 2.2204460492503131e-16, -9.1815444136500446e-14,
- 5.1292303737682232e-14}, /* L557 */
-{6.2535940957303797e+00, 3.8741232444294837e-13,
- 2.2204460492503131e-16, -1.2212453270876722e-14,
- 2.0428103653102880e-14}, /* L558 */
-{7.4561834989150277e+00, 4.6274095666376525e-13,
- 2.2204460492503131e-16, -1.2789769243681803e-13,
- -7.8936857050848630e-14}, /* L559 */
-{6.9267966427367798e+00, 4.3065551125209822e-13,
- 2.2204460492503131e-16, -5.7454041524351851e-13,
- -8.8262730457699945e-14}, /* L560 */
-{7.6889604375237930e+00, 4.7889470167206127e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-13,
- -7.0832228971084987e-14}, /* L561 */
-{6.3067270320175890e+00, 3.9350467329057892e-13,
- 2.2204460492503131e-16, 2.1493917756743031e-13,
- -2.9831692671677956e-13}, /* L562 */
-{5.9396186072127941e+00, 3.7125857943465235e-13,
- 2.2204460492503131e-16, 8.8595797365087492e-14,
- 2.9753977059954195e-14}, /* L563 */
-{7.4459337333154645e+00, 4.6623815919133449e-13,
- 2.2204460492503131e-16, -4.3964831775156199e-14,
- -1.9573231924141510e-13}, /* L564 */
-{5.6583606971428217e+00, 3.5493483152571059e-13,
- 2.2204460492503131e-16, -2.4757973449140991e-13,
- -1.5842882561400984e-13}, /* L565 */
-{5.4938249220385256e+00, 3.4522384950719243e-13,
- 2.2204460492503131e-16, -1.2090328738167955e-13,
- -6.8656191842819680e-13}, /* L566 */
-{5.5679100190972584e+00, 3.5049740887416192e-13,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- -1.1535217225855376e-13}, /* L567 */
-{6.6604418462553188e+00, 4.2001124800350453e-13,
- 2.2204460492503131e-16, 3.7525538232330291e-14,
- 5.7731597280508140e-15}, /* L568 */
-{7.7029998507896273e+00, 4.8661075169320611e-13,
- 2.2204460492503131e-16, 2.8976820942716586e-13,
- -1.5165646516379638e-13}, /* L569 */
-{6.1710623677078509e+00, 3.9052094891189881e-13,
- 2.2204460492503131e-16, 7.4829031859735551e-14,
- -8.3932860661661834e-14}, /* L570 */
-{6.6033379137549346e+00, 4.1860959143491527e-13,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 8.9261931179862586e-14}, /* L571 */
-{6.4160940388013650e+00, 4.0745185003743245e-13,
- 2.2204460492503131e-16, 1.6031620475587260e-13,
- 3.4861002973229915e-14}, /* L572 */
-{6.4315110196246650e+00, 4.0914494014998581e-13,
- 2.2204460492503131e-16, -1.1948220191015935e-12,
- -1.4843681839238343e-13}, /* L573 */
-{5.8811068396250015e+00, 3.7478353753783722e-13,
- 2.2204460492503131e-16, 1.7519319328584970e-13,
- 6.2128080458023760e-13}, /* L574 */
-{6.8869673873563189e+00, 4.3964831775156199e-13,
- 2.2204460492503131e-16, -5.6621374255882984e-14,
- 1.8651746813702630e-14}, /* L575 */
-{5.7395923887026035e+00, 3.6703973194107675e-13,
- 2.2204460492503131e-16, 1.0125233984581428e-13,
- 3.5327296643572481e-13}, /* L576 */
-{6.0585017595773589e+00, 3.8810621383333910e-13,
- 2.2204460492503131e-16, -3.8746783559417963e-13,
- -5.1936233091964823e-13}, /* L577 */
-{7.9628153311243262e+00, 5.1098014708372830e-13,
- 2.2204460492503131e-16, 1.2647660696529783e-12,
- 8.2200912743246590e-13}, /* L578 */
-{7.9179744956943621e+00, 5.0898174563940302e-13,
- 2.2204460492503131e-16, 8.6597395920762210e-15,
- 2.3692159345500841e-13}, /* L579 */
-{5.4155257854927692e+00, 3.4872105203476167e-13,
- 2.2204460492503131e-16, -3.5638159090467525e-14,
- -1.0358380819752711e-13}, /* L580 */
-{6.5714389392331034e+00, 4.2388315080188477e-13,
- 2.2204460492503131e-16, 1.2212453270876722e-14,
- -1.4654943925052066e-13}, /* L581 */
-{7.0446846539679573e+00, 4.5519144009631418e-13,
- 2.2204460492503131e-16, -1.4055423491754482e-13,
- -1.8096635301390052e-14}, /* L582 */
-{8.1685377589147272e+00, 5.2871595990211517e-13,
- 2.2204460492503131e-16, -2.5646151868841116e-14,
- 1.5853984791647235e-13}, /* L583 */
-{5.7825433697022914e+00, 3.7492231541591536e-13,
- 2.2204460492503131e-16, -1.2035927809961322e-12,
- -2.0050627824730327e-12}, /* L584 */
-{4.4923147798647536e+00, 2.9176661087149114e-13,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- -1.2201351040630470e-13}, /* L585 */
-{9.5806465147719351e+00, 6.2330696160017851e-13,
- 2.2204460492503131e-16, 2.3092638912203256e-14,
- 9.6145313932538556e-14}, /* L586 */
-{5.7917467867396280e+00, 3.7744807279693759e-13,
- 2.2204460492503131e-16, -2.1416202145019270e-13,
- 1.5631940186722204e-13}, /* L587 */
-{7.7670190568012538e+00, 5.0703885534630899e-13,
- 2.2204460492503131e-16, -1.3988810110276972e-14,
- 1.1213252548714081e-13}, /* L588 */
-{6.6180070456913258e+00, 4.3276493499888602e-13,
- 2.2204460492503131e-16, -4.7517545453956700e-14,
- 1.4876988529977098e-14}, /* L589 */
-{5.8936533662549415e+00, 3.8605230123778256e-13,
- 2.2204460492503131e-16, -1.7674750552032492e-13,
- -7.5495165674510645e-14}, /* L590 */
-{6.5023368239275117e+00, 4.2664483057563984e-13,
- 2.2204460492503131e-16, -1.3700152123874432e-13,
- 4.2410519540680980e-14}, /* L591 */
-{7.3657210804103546e+00, 4.8411274988779951e-13,
- 2.2204460492503131e-16, -7.1165295878472534e-14,
- 5.5955240441107890e-14}, /* L592 */
-{5.8473953974839548e+00, 3.8496983378877303e-13,
- 2.2204460492503131e-16, -4.4519943287468777e-14,
- -7.4051875742497941e-14}, /* L593 */
-{7.5475708304155198e+00, 4.9774073751507331e-13,
- 2.2204460492503131e-16, 1.7075230118734908e-13,
- 6.9722005946459831e-14}, /* L594 */
-{6.8479099636569911e+00, 4.5236037138352003e-13,
- 2.2204460492503131e-16, -3.3995029014022293e-13,
- -3.9956926656259384e-13}, /* L595 */
-{5.9471570338771382e+00, 3.9351855107838674e-13,
- 2.2204460492503131e-16, -1.0325074129013956e-13,
- 2.0516921495072893e-13}, /* L596 */
-{6.9899607768386414e+00, 4.6329606817607782e-13,
- 2.2204460492503131e-16, -1.1151080059335072e-12,
- -4.2288395007972213e-13}, /* L597 */
-{7.6521859859511645e+00, 5.0803805606847163e-13,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- -1.0635936575909000e-13}, /* L598 */
-{4.8539308634219367e+00, 3.2279734440976426e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-15,
- -1.8440804439023850e-13}, /* L599 */
-{6.9264692609737128e+00, 4.6139481124640724e-13,
- 2.2204460492503131e-16, 1.7873036384230545e-11,
- 2.0410340084708878e-12}, /* L600 */
-{6.9448944844606597e+00, 4.6339321269073253e-13,
- 2.2204460492503131e-16, 6.0174087934683484e-14,
- -7.5273121069585613e-14}, /* L601 */
-{6.5984323373027527e+00, 4.4100834095672781e-13,
- 2.2204460492503131e-16, 3.5971225997855072e-14,
- -2.1560531138220540e-13}, /* L602 */
-{6.5539075206510562e+00, 4.3876013933186186e-13,
- 2.2204460492503131e-16, -4.2211789619273077e-12,
- 9.6360697199315837e-12}, /* L603 */
-{8.5554770741581159e+00, 5.7370774797504964e-13,
- 2.2204460492503131e-16, 1.7259527140822684e-12,
- -1.0769163338864018e-13}, /* L604 */
-{5.7181908398123387e+00, 3.8408165536907291e-13,
- 2.2204460492503131e-16, -7.7715611723760958e-16,
- 9.6811447747313650e-14}, /* L605 */
-{6.1881285749276334e+00, 4.1633363423443370e-13,
- 2.2204460492503131e-16, 5.0581761001922132e-13,
- -3.6792791036077688e-13}, /* L606 */
-{7.7701934781960462e+00, 5.2363668956445508e-13,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- -1.0247358517290195e-13}, /* L607 */
-{9.2870212311462339e+00, 6.2688743085459464e-13,
- 2.2204460492503131e-16, -1.7541523789077473e-14,
- 6.4614980033184111e-14}, /* L608 */
-{7.0045266504339452e+00, 4.7359338672947615e-13,
- 2.2204460492503131e-16, -7.7271522513910895e-14,
- 1.4810375148499588e-13}, /* L609 */
-{6.8864862746946347e+00, 4.6637693706941263e-13,
- 2.2204460492503131e-16, 2.1094237467877974e-14,
- 8.3710816056736803e-14}, /* L610 */
-{6.5570889049036882e+00, 4.4479697702826115e-13,
- 2.2204460492503131e-16, 9.9920072216264089e-15,
- -2.1094237467877974e-15}, /* L611 */
-{7.4926588800448579e+00, 5.0909276794186553e-13,
- 2.2204460492503131e-16, -5.0626169922907138e-14,
- -2.3314683517128287e-15}, /* L612 */
-{8.4049887907799796e+00, 5.7201465786249628e-13,
- 2.2204460492503131e-16, 8.6708418223224726e-13,
- 8.0380146982861334e-13}, /* L613 */
-{6.2223225205847132e+00, 4.2416070655804106e-13,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -4.1078251911130792e-14}, /* L614 */
-{7.6223697494439033e+00, 5.2044479836865776e-13,
- 2.2204460492503131e-16, 8.9928064994637680e-14,
- -2.0872192862952943e-14}, /* L615 */
-{5.7621844157121007e+00, 3.9407366259069931e-13,
- 2.2204460492503131e-16, -3.8891112552619234e-13,
- -2.5746071941057380e-13}, /* L616 */
-{6.0932024820087722e+00, 4.1738834610782760e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-14,
- -8.2045481519799068e-14}, /* L617 */
-{7.5809181093252436e+00, 5.2013948703688584e-13,
- 2.2204460492503131e-16, -2.2892798767770728e-13,
- 2.7911006839076435e-13}, /* L618 */
-{6.6635807876250439e+00, 4.5793924208226144e-13,
- 2.2204460492503131e-16, 1.7419399256368706e-12,
- 5.2522430848966906e-12}, /* L619 */
-{6.7385186959113232e+00, 4.6383730190058259e-13,
- 2.2204460492503131e-16, 1.0302869668521453e-12,
- 1.1786127629420662e-12}, /* L620 */
-{6.5620071323118818e+00, 4.5241588253475129e-13,
- 2.2204460492503131e-16, -2.0705659409259169e-13,
- -2.1682655670929307e-13}, /* L621 */
-{5.3135132050247753e+00, 3.6692870963861424e-13,
- 2.2204460492503131e-16, 6.9314554096422398e-11,
- -6.0600968687651857e-11}, /* L622 */
-{5.5999285782249046e+00, 3.8732905771610149e-13,
- 2.2204460492503131e-16, -1.7030821197749901e-13,
- 7.5495165674510645e-15}, /* L623 */
-{4.8902320743279795e+00, 3.3878455596436652e-13,
- 2.2204460492503131e-16, 3.2862601528904634e-14,
- 1.4099832412739488e-13}, /* L624 */
-{6.5156102797240916e+00, 4.5211057120297937e-13,
- 2.2204460492503131e-16, -3.8857805861880479e-15,
- 1.2234657731369225e-13}, /* L625 */
-{8.2180640839079615e+00, 5.7115423501841178e-13,
- 2.2204460492503131e-16, -1.7319479184152442e-14,
- 3.1308289294429414e-14}, /* L626 */
-{7.5602192643054202e+00, 5.2627346924793983e-13,
- 2.2204460492503131e-16, -2.7877700148337681e-13,
- 3.0841995624086849e-13}, /* L627 */
-{7.8909360164571707e+00, 5.5017101985299632e-13,
- 2.2204460492503131e-16, 4.7517545453956700e-14,
- 5.1803006329009804e-13}, /* L628 */
-{7.5056755937200688e+00, 5.2414322881944031e-13,
- 2.2204460492503131e-16, 1.7807977314987511e-13,
- 1.4654943925052066e-14}, /* L629 */
-{7.2567574807621984e+00, 5.0756621128300594e-13,
- 2.2204460492503131e-16, 6.3926641757916514e-13,
- 5.6643578716375487e-13}, /* L630 */
-{8.6093638207654113e+00, 6.0312865812761629e-13,
- 2.2204460492503131e-16, -5.4323212594908910e-13,
- -2.6201263381153694e-14}, /* L631 */
-{6.8758019872393783e+00, 4.8244741535086177e-13,
- 2.2204460492503131e-16, -1.5332179970073412e-13,
- -6.5170091545496689e-14}, /* L632 */
-{5.3499294516806719e+00, 3.7597702728930926e-13,
- 2.2204460492503131e-16, -3.0531133177191805e-14,
- 5.9952043329758453e-15}, /* L633 */
-{6.2713032696641440e+00, 4.4142467459096224e-13,
- 2.2204460492503131e-16, 3.9590553058133082e-13,
- 2.8199664825478976e-13}, /* L634 */
-{7.4657598102760137e+00, 5.2632898039917109e-13,
- 2.2204460492503131e-16, -5.7176485768195562e-14,
- -3.9013237085328001e-13}, /* L635 */
-{8.2287865675178953e+00, 5.8103521993757568e-13,
- 2.2204460492503131e-16, 1.4965806371947110e-13,
- -5.6621374255882984e-14}, /* L636 */
-{7.8453812945050334e+00, 5.5483395655642198e-13,
- 2.2204460492503131e-16, -1.5387691121304670e-13,
- 2.8843594179761567e-13}, /* L637 */
-{6.7468758483234765e+00, 4.7789550094989863e-13,
- 2.2204460492503131e-16, 7.7493567118835927e-13,
- 2.9687363678476686e-13}, /* L638 */
-{7.0438295794533934e+00, 4.9971138338378296e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-15,
- 1.2989609388114332e-13}, /* L639 */
-{6.9398546990561476e+00, 4.9310555638726328e-13,
- 2.2204460492503131e-16, -2.5013324744804777e-13,
- -2.2637447472106942e-13}, /* L640 */
-{5.4122550288131555e+00, 3.8516412281808243e-13,
- 2.2204460492503131e-16, -8.2933659939499194e-14,
- -2.9976021664879227e-14}, /* L641 */
-{8.7332692302498049e+00, 6.2247429433170964e-13,
- 2.2204460492503131e-16, 2.1249668691325496e-13,
- 4.7739590058881731e-13}, /* L642 */
-{7.2620643345425373e+00, 5.1841864134871685e-13,
- 2.2204460492503131e-16, 3.8591352335970441e-13,
- -1.5432100042289676e-13}, /* L643 */
-{7.3070767458177572e+00, 5.2244319981298304e-13,
- 2.2204460492503131e-16, 1.7497114868092467e-13,
- -5.0071058410594560e-14}, /* L644 */
-{7.4806319572837952e+00, 5.3568260938163803e-13,
- 2.2204460492503131e-16, -3.4039437935007300e-13,
- -2.8643754035329039e-13}, /* L645 */
-{6.2929665848035894e+00, 4.5133341508574176e-13,
- 2.2204460492503131e-16, -1.6875389974302379e-14,
- -1.6830981053317373e-13}, /* L646 */
-{5.9259898363342520e+00, 4.2567165070561686e-13,
- 2.2204460492503131e-16, 3.4661162828797387e-13,
- -3.5638159090467525e-13}, /* L647 */
-{6.6527882739135373e+00, 4.7861714591590498e-13,
- 2.2204460492503131e-16, 1.1945999744966684e-13,
- 2.4713564528155985e-13}, /* L648 */
-{8.0238955561162797e+00, 5.7814864007355027e-13,
- 2.2204460492503131e-16, 4.0589753780295723e-13,
- 2.7133850721838826e-13}, /* L649 */
-{6.9677033006871492e+00, 5.0282000785273340e-13,
- 2.2204460492503131e-16, -1.4488410471358293e-13,
- -1.7985612998927536e-14}, /* L650 */
-{6.9262782087305421e+00, 5.0059956180348308e-13,
- 2.2204460492503131e-16, -1.8551826741486366e-13,
- 9.2570395793245552e-13}, /* L651 */
-{8.2139700144438308e+00, 5.9457994083800259e-13,
- 2.2204460492503131e-16, 8.0691009429756377e-13,
- 5.8175686490358203e-14}, /* L652 */
-{5.3422748910258617e+00, 3.8730130214048586e-13,
- 2.2204460492503131e-16, 4.9293902293356950e-14,
- 3.8191672047105385e-14}, /* L653 */
-{6.8058211351445594e+00, 4.9416026826065718e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-13,
- 1.9562129693895258e-13}, /* L654 */
-{7.7958138262283141e+00, 5.6690763194922056e-13,
- 2.2204460492503131e-16, 1.2101430968414206e-13,
- 3.4416913763379853e-14}, /* L655 */
-{8.7503949031183659e+00, 6.3729577171045548e-13,
- 2.2204460492503131e-16, 2.3914203950425872e-13,
- -1.1923795284474181e-13}, /* L656 */
-{7.7229954418550602e+00, 5.6332716269480443e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 4.8849813083506888e-14}, /* L657 */
-{8.6652872275158312e+00, 6.3302141306564863e-13,
- 2.2204460492503131e-16, -9.3147711766050634e-14,
- 3.2640556923979602e-14}, /* L658 */
-{7.9385557720600630e+00, 5.8081317533265064e-13,
- 2.2204460492503131e-16, 6.6391336872584361e-14,
- -2.1427304375265521e-14}, /* L659 */
-{7.3109963830930464e+00, 5.3571036495725366e-13,
- 2.2204460492503131e-16, -2.9043434324194095e-13,
- 1.8718360195180139e-13}, /* L660 */
-{8.0658221052291790e+00, 5.9191540557890221e-13,
- 2.2204460492503131e-16, 9.4368957093138306e-14,
- 1.2034817586936697e-13}, /* L661 */
-{5.6102807546998825e+00, 4.1233683134578314e-13,
- 2.2204460492503131e-16, -2.9842794901924208e-13,
- -1.3267165144270621e-13}, /* L662 */
-{8.5460164997008707e+00, 6.2905236575261370e-13,
- 2.2204460492503131e-16, -8.6153306710912148e-14,
- -1.7419399256368706e-13}, /* L663 */
-{7.0519689572647968e+00, 5.1986193128072955e-13,
- 2.2204460492503131e-16, -6.7501559897209518e-14,
- -5.8841820305133297e-14}, /* L664 */
-{7.3473800130659486e+00, 5.4245496983185149e-13,
- 2.2204460492503131e-16, 8.1490370007486490e-14,
- 1.2012613126444194e-13}, /* L665 */
-{7.6713709620328210e+00, 5.6722682106880029e-13,
- 2.2204460492503131e-16, -1.1224354778960333e-13,
- -2.6512125828048738e-13}, /* L666 */
-{6.9837066704182948e+00, 5.1715576265820573e-13,
- 2.2204460492503131e-16, -1.1901590823981678e-13,
- -4.1633363423443370e-14}, /* L667 */
-{8.3024083082129501e+00, 6.1572968945711182e-13,
- 2.2204460492503131e-16, -3.9745984281580604e-13,
- 5.7052140789437544e-12}, /* L668 */
-{5.3723926315160702e+00, 3.9902803283808908e-13,
- 2.2204460492503131e-16, -3.6359804056473877e-13,
- -9.2148511043887993e-15}, /* L669 */
-{5.3380681233959875e+00, 3.9707126475718724e-13,
- 2.2204460492503131e-16, 1.3566925360919413e-13,
- 4.6229686745391518e-13}, /* L670 */
-{7.1229620574884223e+00, 5.3063109461959357e-13,
- 2.2204460492503131e-16, 3.6615155352137663e-13,
- -3.5784708529718046e-12}, /* L671 */
-{6.5625103537142628e+00, 4.8960835385969403e-13,
- 2.2204460492503131e-16, 3.9235281690253032e-13,
- 1.7386092565629951e-13}, /* L672 */
-{9.3764078095649097e+00, 7.0058542300799331e-13,
- 2.2204460492503131e-16, -1.2323475573339238e-14,
- -1.4088730182493236e-13}, /* L673 */
-{8.3479360192574035e+00, 6.2466698480534433e-13,
- 2.2204460492503131e-16, 3.2462921240039577e-13,
- -1.4044321261508230e-13}, /* L674 */
-{7.9089013668170383e+00, 5.9269256169613982e-13,
- 2.2204460492503131e-16, -7.2386541205560206e-14,
- -1.8895995879120164e-13}, /* L675 */
-{6.4567409560717195e+00, 4.8458459467326520e-13,
- 2.2204460492503131e-16, 3.0775382242609339e-13,
- 1.5987211554602254e-14}, /* L676 */
-{5.8618999425987885e+00, 4.4059200732249337e-13,
- 2.2204460492503131e-16, -6.8167693711984612e-14,
- -1.2057022047429200e-13}, /* L677 */
-{9.6032599888748891e+00, 7.2286621133343942e-13,
- 2.2204460492503131e-16, -6.2083671537038754e-13,
- 1.8074430840897548e-13}, /* L678 */
-{6.9661376473465921e+00, 5.2513549064769904e-13,
- 2.2204460492503131e-16, 6.3882232836931507e-13,
- 1.2827516826519059e-12}, /* L679 */
-{7.2823644305667026e+00, 5.4978244179437752e-13,
- 2.2204460492503131e-16, 8.6997076209627267e-13,
- 5.2979842735112470e-13}, /* L680 */
-{6.2753402971150569e+00, 4.7445380957356065e-13,
- 2.2204460492503131e-16, -1.0323963905989331e-12,
- 1.5476508963274682e-13}, /* L681 */
-{4.6825587073538077e+00, 3.5454972291404374e-13,
- 2.2204460492503131e-16, 2.2803980925800715e-13,
- 2.2315482794965646e-13}, /* L682 */
-{7.6061613414367013e+00, 5.7676086129276882e-13,
- 2.2204460492503131e-16, -2.0428103653102880e-14,
- -8.9928064994637680e-15}, /* L683 */
-{6.2747266394336467e+00, 4.7649731382826133e-13,
- 2.2204460492503131e-16, 1.1235457009206584e-13,
- -1.0631495683810499e-12}, /* L684 */
-{6.3967254206221167e+00, 4.8647197381512797e-13,
- 2.2204460492503131e-16, -6.3715699383237734e-13,
- 2.5091040356528538e-14}, /* L685 */
-{9.3039505389499642e+00, 7.0859984546700616e-13,
- 2.2204460492503131e-16, 5.5977444901600393e-13,
- -8.9883656073652674e-13}, /* L686 */
-{7.0633299211487355e+00, 5.3873572269935721e-13,
- 2.2204460492503131e-16, -2.8521629502620272e-13,
- -2.2692958623338200e-13}, /* L687 */
-{8.5923100677731608e+00, 6.5630834100716129e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-13,
- -1.7363888105137448e-13}, /* L688 */
-{7.2465644082783918e+00, 5.5432047840753285e-13,
- 2.2204460492503131e-16, -3.5227376571356217e-13,
- -6.5725203057809267e-14}, /* L689 */
-{7.3638703136678600e+00, 5.6411125770594595e-13,
- 2.2204460492503131e-16, 1.4430678874077785e-12,
- 5.1003645751279691e-13}, /* L690 */
-{7.6128918951305211e+00, 5.8403282210406360e-13,
- 2.2204460492503131e-16, -1.1032286195700181e-12,
- -3.7414515929867775e-13}, /* L691 */
-{7.5368616019402781e+00, 5.7903681849325039e-13,
- 2.2204460492503131e-16, -9.8587804586713901e-14,
- 2.1094237467877974e-14}, /* L692 */
-{8.2158318654939286e+00, 6.3211241796423678e-13,
- 2.2204460492503131e-16, 1.4543921622589551e-13,
- -1.1102230246251565e-15}, /* L693 */
-{9.0925935961520281e+00, 7.0057848411408941e-13,
- 2.2204460492503131e-16, -1.1406431354998858e-12,
- -6.1994853695068741e-13}, /* L694 */
-{7.8928182079322831e+00, 6.0901284015812962e-13,
- 2.2204460492503131e-16, 6.0484950381578528e-13,
- -7.3796524446834155e-13}, /* L695 */
-{8.8606461634106850e+00, 6.8467453928633404e-13,
- 2.2204460492503131e-16, -5.3301807412253766e-13,
- 3.6193270602780103e-14}, /* L696 */
-{7.3074003381191019e+00, 5.6546434201720785e-13,
- 2.2204460492503131e-16, 1.1057821325266559e-13,
- 1.8562928971732617e-13}, /* L697 */
-{7.6171323614344733e+00, 5.9027782661758010e-13,
- 2.2204460492503131e-16, -4.7217785237307908e-13,
- -7.1731509621031364e-13}, /* L698 */
-{7.1344890815968087e+00, 5.5366822238056557e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-14,
- -3.2773783686934621e-13}, /* L699 */
-{7.0628682859894685e+00, 5.4889426337467739e-13,
- 2.2204460492503131e-16, 2.2248869413488137e-13,
- -5.5311311086825299e-13}, /* L700 */
-{1.0278903520944912e+01, 7.9997120039365655e-13,
- 2.2204460492503131e-16, -1.9717560917342780e-13,
- -1.5210055437364645e-13}, /* L701 */
-{5.9750806519976463e+00, 4.6568304767902191e-13,
- 2.2204460492503131e-16, -3.6082248300317588e-14,
- 4.4630965589931293e-14}, /* L702 */
-{7.5551328301684570e+00, 5.8966720395403627e-13,
- 2.2204460492503131e-16, -3.2307490016592055e-14,
- -2.1560531138220540e-13}, /* L703 */
-{7.8451828319419592e+00, 6.1317617650047396e-13,
- 2.2204460492503131e-16, -4.0834002845713258e-13,
- 4.0456527017340704e-13}, /* L704 */
-{6.4780244048208226e+00, 5.0703885534630899e-13,
- 2.2204460492503131e-16, -5.8730798002670781e-14,
- 5.5955240441107890e-14}, /* L705 */
-{7.1041188569447158e+00, 5.5683235800074726e-13,
- 2.2204460492503131e-16, -1.5876189252139739e-14,
- 5.4400928206632670e-14}, /* L706 */
-{5.4993014627089920e+00, 4.3165471197426086e-13,
- 2.2204460492503131e-16, 8.8595797365087492e-14,
- 6.4614980033184111e-14}, /* L707 */
-{9.1098307568258008e+00, 7.1606609530761034e-13,
- 2.2204460492503131e-16, -1.0003109451872660e-13,
- -6.0507154842071031e-14}, /* L708 */
-{6.9492352233786265e+00, 5.4700688423281463e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.9317880628477724e-14}, /* L709 */
-{7.4306455261971527e+00, 5.8572591221661696e-13,
- 2.2204460492503131e-16, -1.1657341758564144e-13,
- -6.9277916736609768e-14}, /* L710 */
-{7.5277896544192453e+00, 5.9421911835499941e-13,
- 2.2204460492503131e-16, 4.1189274213593308e-13,
- -4.7772896749620486e-13}, /* L711 */
-{6.0688297995550533e+00, 4.7972736894053014e-13,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -1.2989609388114332e-14}, /* L712 */
-{7.3275010417146076e+00, 5.8003601921541303e-13,
- 2.2204460492503131e-16, 8.6375351315837179e-14,
- -1.9717560917342780e-13}, /* L713 */
-{6.8298427082367485e+00, 5.4140025795845759e-13,
- 2.2204460492503131e-16, -3.3106850594322168e-13,
- 1.0509371151101732e-12}, /* L714 */
-{7.5370748283595930e+00, 5.9829918797049686e-13,
- 2.2204460492503131e-16, 6.6169292267659330e-14,
- 5.1070259132757201e-14}, /* L715 */
-{5.3107625687704356e+00, 4.2216230511371577e-13,
- 2.2204460492503131e-16, 1.7141843500212417e-13,
- 3.1308289294429414e-14}, /* L716 */
-{7.1039163682886937e+00, 5.6549209759282348e-13,
- 2.2204460492503131e-16, -1.7774670624248756e-13,
- 4.4630965589931293e-14}, /* L717 */
-{6.9937436246054396e+00, 5.5749849181552236e-13,
- 2.2204460492503131e-16, -3.9290792841484290e-13,
- 1.8895995879120164e-13}, /* L718 */
-{7.9539416171411128e+00, 6.3492266999531921e-13,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- 7.7493567118835927e-14}, /* L719 */
-{7.4706715087529227e+00, 5.9717508715806389e-13,
- 2.2204460492503131e-16, -2.0750068330244176e-13,
- 1.4455103780619538e-13}, /* L720 */
-{9.1262279907229882e+00, 7.3052675020335300e-13,
- 2.2204460492503131e-16, -6.9577676953258560e-13,
- -4.8205883729224297e-13}, /* L721 */
-{6.5090130393988090e+00, 5.2174931042259232e-13,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- 7.1276318180935050e-14}, /* L722 */
-{9.7258106418504031e+00, 7.8068107534079445e-13,
- 2.2204460492503131e-16, -3.6970426720017713e-14,
- -1.7374990335383700e-13}, /* L723 */
-{6.2507004695059596e+00, 5.0243142979411459e-13,
- 2.2204460492503131e-16, 2.7511326550211379e-13,
- -1.4122036873231991e-13}, /* L724 */
-{6.8285452562032010e+00, 5.4963672502239547e-13,
- 2.2204460492503131e-16, 1.3433698597964394e-13,
- 8.3488771451811772e-14}, /* L725 */
-{9.7754975165179019e+00, 7.8792528057647360e-13,
- 2.2204460492503131e-16, -3.8724579098925460e-13,
- -2.3203661214665772e-13}, /* L726 */
-{7.5162601390099084e+00, 6.0666055512470507e-13,
- 2.2204460492503131e-16, 1.4210854715202004e-13,
- -1.8535173396116988e-12}, /* L727 */
-{7.0333215360811003e+00, 5.6846194418369578e-13,
- 2.2204460492503131e-16, 1.3278267374516872e-13,
- 1.5254464358349651e-13}, /* L728 */
-{8.1183255655418431e+00, 6.5705774154878327e-13,
- 2.2204460492503131e-16, 2.0228263508670352e-13,
- -5.7842619582970656e-14}, /* L729 */
-{7.1602852694343566e+00, 5.8031357497156932e-13,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -2.3425705819590803e-13}, /* L730 */
-{7.7491572327314513e+00, 6.2889971008672774e-13,
- 2.2204460492503131e-16, -7.4695805096780532e-13,
- 6.0418337000101019e-13}, /* L731 */
-{9.3606705060923083e+00, 7.6072481647315726e-13,
- 2.2204460492503131e-16, -1.8929302569858919e-13,
- -9.4591001698063337e-14}, /* L732 */
-{7.3291384390825653e+00, 5.9643956440424972e-13,
- 2.2204460492503131e-16, -1.7430501486614958e-14,
- 2.7133850721838826e-13}, /* L733 */
-{9.5042299131400352e+00, 7.7450199031936506e-13,
- 2.2204460492503131e-16, 1.6187051699034782e-13,
- -6.4337424277027822e-13}, /* L734 */
-{7.8585157997972646e+00, 6.4126481902349042e-13,
- 2.2204460492503131e-16, -1.2168044349891716e-13,
- -3.3972824553529790e-14}, /* L735 */
-{8.2038172910344347e+00, 6.7035266226866952e-13,
- 2.2204460492503131e-16, -4.2388315080188477e-13,
- 3.6615155352137663e-13}, /* L736 */
-{6.2337276097126253e+00, 5.1006421308841254e-13,
- 2.2204460492503131e-16, 1.7388313011679202e-12,
- -6.0618177144533547e-14}, /* L737 */
-{7.4573288386491230e+00, 6.1101124160245490e-13,
- 2.2204460492503131e-16, -6.1173288656846125e-14,
- 1.7208456881689926e-13}, /* L738 */
-{6.4492659260648102e+00, 5.2913229353634961e-13,
- 2.2204460492503131e-16, 1.2434497875801753e-13,
- 1.7763568394002505e-14}, /* L739 */
-{1.1235152860900687e+01, 9.2303942267335515e-13,
- 2.2204460492503131e-16, 2.3847590568948362e-13,
- 4.2099657093785936e-13}, /* L740 */
-{9.9743747110003778e+00, 8.2056583750045320e-13,
- 2.2204460492503131e-16, 6.5503158452884236e-14,
- 4.3076653355456074e-14}, /* L741 */
-{8.5293261252393666e+00, 7.0263239670964595e-13,
- 2.2204460492503131e-16, -3.9723779821088101e-13,
- 1.4210854715202004e-14}, /* L742 */
-{7.9360825072763221e+00, 6.5464300647022355e-13,
- 2.2204460492503131e-16, 9.7655217246028769e-13,
- -3.9857006584043120e-12}, /* L743 */
-{7.4449042189862968e+00, 6.1495253333987421e-13,
- 2.2204460492503131e-16, 2.7089441800853820e-13,
- 4.9849013805669529e-13}, /* L744 */
-{7.5516897667006395e+00, 6.2461147365411307e-13,
- 2.2204460492503131e-16, -9.1149310321725352e-14,
- -8.4376949871511897e-14}, /* L745 */
-{9.4711945674343347e+00, 7.8442807804890435e-13,
- 2.2204460492503131e-16, 5.5067062021407764e-14,
- 2.5779378631796135e-13}, /* L746 */
-{7.9143364490216470e+00, 6.5636385215839255e-13,
- 2.2204460492503131e-16, 1.1901590823981678e-13,
- -1.5543122344752192e-15}, /* L747 */
-{1.1739991784277363e+01, 9.7494234907458122e-13,
- 2.2204460492503131e-16, -7.0143890695817390e-13,
- 2.9687363678476686e-13}, /* L748 */
-{1.1184930864165894e+01, 9.3008933887972489e-13,
- 2.2204460492503131e-16, 6.5725203057809267e-14,
- -2.2737367544323206e-13}, /* L749 */
-{8.6600136629479803e+00, 7.2108985449403917e-13,
- 2.2204460492503131e-16, 1.1435297153639112e-13,
- 4.3409720262843621e-13}, /* L750 */
-{6.6088652869965623e+00, 5.5103144269708082e-13,
- 2.2204460492503131e-16, 4.4386716524513758e-13,
- -2.8655966488599915e-12}, /* L751 */
-{9.3038710617604785e+00, 7.7676753917899077e-13,
- 2.2204460492503131e-16, -1.8429702208777599e-14,
- 3.2640556923979602e-14}, /* L752 */
-{7.4681392725575098e+00, 6.2433391789795678e-13,
- 2.2204460492503131e-16, 1.0937917238607042e-12,
- -1.7652546091539989e-14}, /* L753 */
-{8.9111546427288726e+00, 7.4595885024564268e-13,
- 2.2204460492503131e-16, 9.9831254374294076e-13,
- -1.0191847366058937e-13}, /* L754 */
-{8.5516691211632256e+00, 7.1681549584923232e-13,
- 2.2204460492503131e-16, 1.0436096431476471e-14,
- -2.9864999362416711e-14}, /* L755 */
-{7.3293766429716447e+00, 6.1517457794479924e-13,
- 2.2204460492503131e-16, -1.8296475445822580e-13,
- 2.7511326550211379e-13}, /* L756 */
-{5.9458482183176145e+00, 4.9971138338378296e-13,
- 2.2204460492503131e-16, 1.2057022047429200e-13,
- 1.7807977314987511e-13}, /* L757 */
-{9.1316107130685378e+00, 7.6846862206991773e-13,
- 2.2204460492503131e-16, -1.1735057370287905e-13,
- -1.4799272918253337e-13}, /* L758 */
-{7.4170077492763280e+00, 6.2500005171273187e-13,
- 2.2204460492503131e-16, 5.4622972811557702e-14,
- -8.3488771451811772e-13}, /* L759 */
-{9.8072523150739457e+00, 8.2750473140436043e-13,
- 2.2204460492503131e-16, 1.5631940186722204e-13,
- -4.9515946898281982e-14}, /* L760 */
-{7.4251102691706894e+00, 6.2733152006444470e-13,
- 2.2204460492503131e-16, 1.7497114868092467e-13,
- -2.6689761511988763e-13}, /* L761 */
-{9.6083648967151305e+00, 8.1285672637321227e-13,
- 2.2204460492503131e-16, -6.3282712403633923e-15,
- 7.3496764230185363e-14}, /* L762 */
-{7.2632814462225914e+00, 6.1527172245945394e-13,
- 2.2204460492503131e-16, 1.7785772854495008e-13,
- -1.2778667013435552e-13}, /* L763 */
-{8.1043976031167251e+00, 6.8742234127228130e-13,
- 2.2204460492503131e-16, -4.1966430330830917e-14,
- 1.6031620475587260e-13}, /* L764 */
-{7.3438024360209262e+00, 6.2372329523441294e-13,
- 2.2204460492503131e-16, 1.7785772854495008e-13,
- -3.2640556923979602e-13}, /* L765 */
-{8.5424416759041826e+00, 7.2647443616347118e-13,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- -9.3036689463588118e-14}, /* L766 */
-{7.8826721497020387e+00, 6.7124084068836964e-13,
- 2.2204460492503131e-16, -7.0610184366159956e-13,
- -3.9057646006313007e-13}, /* L767 */
-{8.1653774659007361e+00, 6.9622085874243567e-13,
- 2.2204460492503131e-16, 4.0856207306205761e-14,
- -4.4975134727565091e-13}, /* L768 */
-{8.7036873339459344e+00, 7.4308614816942509e-13,
- 2.2204460492503131e-16, -2.0461410343841635e-13,
- 3.6126657221302594e-13}, /* L769 */
-{8.8422217426190866e+00, 7.5589534631603783e-13,
- 2.2204460492503131e-16, -3.8202774277351637e-13,
- -1.0831335828243027e-12}, /* L770 */
-{1.3264450239997485e+01, 1.1354112094963398e-12,
- 2.2204460492503131e-16, 6.4392935428259079e-15,
- 1.2900791546144319e-13}, /* L771 */
-{7.4546749737271139e+00, 6.3893335067177759e-13,
- 2.2204460492503131e-16, 2.9309887850104133e-14,
- -1.2545520178264269e-14}, /* L772 */
-{6.6130440686028686e+00, 5.6753213240057221e-13,
- 2.2204460492503131e-16, -1.5486500970496309e-12,
- 1.5996093338799255e-12}, /* L773 */
-{7.9265305935959320e+00, 6.8113570339534135e-13,
- 2.2204460492503131e-16, -2.7389202017502612e-13,
- 7.8159700933611020e-14}, /* L774 */
-{7.2819469726447874e+00, 6.2655436394720709e-13,
- 2.2204460492503131e-16, -1.6375789613221059e-13,
- -3.4416913763379853e-14}, /* L775 */
-{8.5660573291593227e+00, 7.3799300004395718e-13,
- 2.2204460492503131e-16, 1.9162449405030202e-13,
- 1.3877787807814457e-13}, /* L776 */
-{8.0585712726207515e+00, 6.9516614686904177e-13,
- 2.2204460492503131e-16, -1.3311574065255627e-13,
- -4.9960036108132044e-14}, /* L777 */
-{6.7254283485375970e+00, 5.8091031984730535e-13,
- 2.2204460492503131e-16, -3.2618352463487099e-13,
- 1.1812772982011666e-13}, /* L778 */
-{6.7597988549638242e+00, 5.8462956697979962e-13,
- 2.2204460492503131e-16, 3.3173463975799677e-13,
- -3.8224978737844140e-13}, /* L779 */
-{1.0475176783170124e+01, 9.0712160005779197e-13,
- 2.2204460492503131e-16, -1.0258460747536446e-13,
- -1.0480505352461478e-13}, /* L780 */
-{1.0455522257589028e+01, 9.0658036633328720e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-14,
- 3.9079850466805510e-13}, /* L781 */
-{1.1057881896224410e+01, 9.6003760496898849e-13,
- 2.2204460492503131e-16, -2.0761170560490427e-14,
- 7.4606987254810520e-14}, /* L782 */
-{7.8598463724364906e+00, 6.8325900492993696e-13,
- 2.2204460492503131e-16, 3.0353497493251780e-13,
- -5.7509552675583109e-14}, /* L783 */
-{7.1938889008693163e+00, 6.2616578588858829e-13,
- 2.2204460492503131e-16, -7.9825035470548755e-14,
- -2.1083135237631723e-13}, /* L784 */
-{7.7324962760381970e+00, 6.7390537594747002e-13,
- 2.2204460492503131e-16, -4.2665870836344766e-13,
- -7.5495165674510645e-14}, /* L785 */
-{8.9103194013840081e+00, 7.7754469529622838e-13,
- 2.2204460492503131e-16, 5.3290705182007514e-15,
- 6.7501559897209518e-14}, /* L786 */
-{9.4320352113557639e+00, 8.2411855117925370e-13,
- 2.2204460492503131e-16, 1.0769163338864018e-13,
- 6.4837024638109142e-14}, /* L787 */
-{8.4089599673800119e+00, 7.3566153169224435e-13,
- 2.2204460492503131e-16, 7.6827433304060833e-14,
- -2.4380497620768438e-13}, /* L788 */
-{9.8251105581557905e+00, 8.6064488868942135e-13,
- 2.2204460492503131e-16, 3.5238478801602469e-13,
- -5.2069459854919842e-14}, /* L789 */
-{7.5019105699873885e+00, 6.5797367554409902e-13,
- 2.2204460492503131e-16, 1.4388490399142029e-13,
- -1.5210055437364645e-14}, /* L790 */
-{7.5771295271841250e+00, 6.6541216980908757e-13,
- 2.2204460492503131e-16, -4.4741987892393809e-14,
- -4.7295500849031669e-14}, /* L791 */
-{9.5221109826427721e+00, 8.3727469402106180e-13,
- 2.2204460492503131e-16, -1.2403411631112249e-12,
- 1.0578204978628492e-12}, /* L792 */
-{8.9615526002406884e+00, 7.8897999244986750e-13,
- 2.2204460492503131e-16, -2.3170354523927017e-13,
- -2.0972112935169207e-13}, /* L793 */
-{8.9364120839203913e+00, 7.8775874712277982e-13,
- 2.2204460492503131e-16, -1.0591527654923993e-13,
- 1.5298873279334657e-13}, /* L794 */
-{8.9547311090733466e+00, 7.9036777123064894e-13,
- 2.2204460492503131e-16, -1.5365486660812167e-13,
- 1.1479706074624119e-13}, /* L795 */
-{1.0527183694230891e+01, 9.3032526127245774e-13,
- 2.2204460492503131e-16, 5.3734794391857577e-14,
- -2.0228263508670352e-13}, /* L796 */
-{9.0796881017483191e+00, 8.0341289176999453e-13,
- 2.2204460492503131e-16, -3.4638958368304884e-14,
- -1.5309975509580909e-13}, /* L797 */
-{9.7844765899198247e+00, 8.6686213762732223e-13,
- 2.2204460492503131e-16, 1.1279865930191590e-13,
- -3.0087043967341742e-14}, /* L798 */
-{9.4274241352800470e+00, 8.3627549329889916e-13,
- 2.2204460492503131e-16, 9.5345953354808444e-13,
- 1.4854784069484595e-13}, /* L799 */
-{7.8762624264303547e+00, 6.9955152781631114e-13,
- 2.2204460492503131e-16, -8.4365847641265646e-13,
- -1.1046719095020308e-13}, /* L800 */
-{1.0589592237834299e+01, 9.4171892506267341e-13,
- 2.2204460492503131e-16, 7.2053474298172659e-13,
- -4.9893422726654535e-13}, /* L801 */
-{9.6063119140477990e+00, 8.5534357374683623e-13,
- 2.2204460492503131e-16, -1.7441603716861209e-13,
- -1.6153745008296028e-13}, /* L802 */
-{8.4000755193483094e+00, 7.4887318568528372e-13,
- 2.2204460492503131e-16, -1.8329782136561334e-13,
- -6.9833028248922346e-14}, /* L803 */
-{7.9076617297025287e+00, 7.0585204348105890e-13,
- 2.2204460492503131e-16, 2.6401103525586223e-13,
- 2.3536728122053319e-13}, /* L804 */
-{7.8183353164073290e+00, 6.9874661612345790e-13,
- 2.2204460492503131e-16, 8.5709217501062085e-14,
- 1.5321077739827160e-14}, /* L805 */
-{1.0004338829820590e+01, 8.9522660118301900e-13,
- 2.2204460492503131e-16, 2.3558932582545822e-13,
- 7.3496764230185363e-14}, /* L806 */
-{9.3695934689663307e+00, 8.3946738449469649e-13,
- 2.2204460492503131e-16, 7.0832228971084987e-14,
- -4.5297099404706387e-14}, /* L807 */
-{9.4678367196462005e+00, 8.4932061383824475e-13,
- 2.2204460492503131e-16, -1.8651746813702630e-14,
- -2.3869795029440866e-14}, /* L808 */
-{8.9224491820796867e+00, 8.0138673475005362e-13,
- 2.2204460492503131e-16, 6.0840221749458578e-14,
- -1.0547118733938987e-13}, /* L809 */
-{7.8339629769814980e+00, 7.0449202027589308e-13,
- 2.2204460492503131e-16, 1.5387691121304670e-13,
- -5.9396931817445875e-14}, /* L810 */
-{6.5175811829452082e+00, 5.8683613524124212e-13,
- 2.2204460492503131e-16, 2.5890400934258651e-13,
- 1.3145040611561853e-13}, /* L811 */
-{7.7537068143488641e+00, 6.9899641630399856e-13,
- 2.2204460492503131e-16, 2.0650148258027912e-14,
- -1.7985612998927536e-13}, /* L812 */
-{7.5836528011904614e+00, 6.8450800583264026e-13,
- 2.2204460492503131e-16, 5.6177285046032921e-14,
- 1.2567724638756772e-13}, /* L813 */
-{8.3853019273328222e+00, 7.5779660324570841e-13,
- 2.2204460492503131e-16, -2.9065638784686598e-13,
- 5.7664983899030631e-13}, /* L814 */
-{9.6859048520730031e+00, 8.7641005563909857e-13,
- 2.2204460492503131e-16, 7.3274719625260332e-14,
- 7.7715611723760958e-14}, /* L815 */
-{7.0827317627093862e+00, 6.4165339708210922e-13,
- 2.2204460492503131e-16, -2.7566837701442637e-13,
- -1.6386891843467311e-13}, /* L816 */
-{9.4075270822245933e+00, 8.5331047783299141e-13,
- 2.2204460492503131e-16, -7.0721206668622472e-14,
- -1.4099832412739488e-14}, /* L817 */
-{7.0130764680034918e+00, 6.3690025475793277e-13,
- 2.2204460492503131e-16, -4.5297099404706387e-14,
- 1.0658141036401503e-14}, /* L818 */
-{8.0940298640150008e+00, 7.3596684302401627e-13,
- 2.2204460492503131e-16, 4.6251891205884021e-13,
- -1.5731860258938468e-13}, /* L819 */
-{1.0115869618414525e+01, 9.2092999892656735e-13,
- 2.2204460492503131e-16, 2.3936408410918375e-13,
- -1.6253665080512292e-13}, /* L820 */
-{8.6443498136464267e+00, 7.8792528057647360e-13,
- 2.2204460492503131e-16, -2.6867397195928788e-13,
- -7.8825834748386114e-14}, /* L821 */
-{7.1800599898252191e+00, 6.5525362913376739e-13,
- 2.2204460492503131e-16, -1.7708057242771247e-13,
- 2.8399504969911504e-13}, /* L822 */
-{9.6500759783270098e+00, 8.8173912615729932e-13,
- 2.2204460492503131e-16, 5.6465943032435462e-13,
- 4.1744385725905886e-13}, /* L823 */
-{9.6310831561897512e+00, 8.8107299234252423e-13,
- 2.2204460492503131e-16, -1.5465406733028431e-13,
- 2.4824586830618500e-13}, /* L824 */
-{9.5163786504205685e+00, 8.7163609663321040e-13,
- 2.2204460492503131e-16, 1.4410694859634532e-13,
- -1.2334577803585489e-13}, /* L825 */
-{8.8638154372800386e+00, 8.1284978747930836e-13,
- 2.2204460492503131e-16, 2.6689761511988763e-13,
- -6.3415939166588942e-13}, /* L826 */
-{8.5610775939303263e+00, 7.8603790143461083e-13,
- 2.2204460492503131e-16, 8.3710816056736803e-14,
- 3.4150460237469815e-13}, /* L827 */
-{1.2552103136740794e+01, 1.1538686672807330e-12,
- 2.2204460492503131e-16, -1.7842394228750891e-12,
- -1.4739320874923578e-12}, /* L828 */
-{8.8564675313609094e+00, 8.1512574467978993e-13,
- 2.2204460492503131e-16, 2.7458035845029372e-12,
- -2.9775071297422073e-12}, /* L829 */
-{7.0801316522996771e+00, 6.5242256042097324e-13,
- 2.2204460492503131e-16, 1.7674750552032492e-13,
- 1.4210854715202004e-13}, /* L830 */
-{1.1191955082364116e+01, 1.0325629240526268e-12,
- 2.2204460492503131e-16, 2.9718449923166190e-12,
- 1.7561507803520726e-12}, /* L831 */
-{6.8272343290666058e+00, 6.3063443356270454e-13,
- 2.2204460492503131e-16, -1.0547118733938987e-13,
- 3.6859404417555197e-13}, /* L832 */
-{7.1995911907790857e+00, 6.6582850344332201e-13,
- 2.2204460492503131e-16, 7.2608585810485238e-14,
- 2.3092638912203256e-14}, /* L833 */
-{7.6960553075793170e+00, 7.1259664835565673e-13,
- 2.2204460492503131e-16, -4.5152770411505116e-13,
- 7.6272321791748254e-13}, /* L834 */
-{8.1637853351506067e+00, 7.5681128031135358e-13,
- 2.2204460492503131e-16, 2.1960211427085596e-13,
- -1.0347278589506459e-13}, /* L835 */
-{8.3175968547887891e+00, 7.7199358017310260e-13,
- 2.2204460492503131e-16, 5.3734794391857577e-14,
- -1.1457501614131615e-13}, /* L836 */
-{7.8757591400936109e+00, 7.3185901783290319e-13,
- 2.2204460492503131e-16, 2.2648549702353193e-13,
- 9.5479180117763462e-14}, /* L837 */
-{8.3454785605139037e+00, 7.7643447227160323e-13,
- 2.2204460492503131e-16, 1.4299672557172016e-13,
- -2.1982415887578100e-14}, /* L838 */
-{9.1460960746643813e+00, 8.5193657684001778e-13,
- 2.2204460492503131e-16, -8.6597395920762210e-15,
- -2.5979218776228663e-13}, /* L839 */
-{9.0654904931455711e+00, 8.4543483325205671e-13,
- 2.2204460492503131e-16, -7.4662498406041777e-13,
- 4.6251891205884021e-13}, /* L840 */
-{8.9340212296280370e+00, 8.3416606955211137e-13,
- 2.2204460492503131e-16, -4.5952130989235229e-13,
- 2.4713564528155985e-13}, /* L841 */
-{9.0778052959749775e+00, 8.4859896887223840e-13,
- 2.2204460492503131e-16, -2.2670754162845697e-13,
- 5.9285909514983359e-14}, /* L842 */
-{6.6648978224921169e+00, 6.2377880638564420e-13,
- 2.2204460492503131e-16, -4.3964831775156199e-14,
- -1.3311574065255627e-13}, /* L843 */
-{9.2218747389898201e+00, 8.6411433564137496e-13,
- 2.2204460492503131e-16, -3.0531133177191805e-14,
- 3.5971225997855072e-14}, /* L844 */
-{7.2414315431981597e+00, 6.7934546876813329e-13,
- 2.2204460492503131e-16, 9.7921670771938807e-14,
- -2.8266278206956486e-13}, /* L845 */
-{1.0783113939308063e+01, 1.0128009542142991e-12,
- 2.2204460492503131e-16, -4.0079051188968151e-14,
- 5.4845017416482733e-14}, /* L846 */
-{8.0838380195628670e+00, 7.6016970496084468e-13,
- 2.2204460492503131e-16, 2.2493118478905672e-13,
- -1.2123635428906709e-13}, /* L847 */
-{9.2550263941533704e+00, 8.7133078530143848e-13,
- 2.2204460492503131e-16, 9.6744834365836141e-13,
- 6.7479355436717015e-13}, /* L848 */
-{7.3633802862769686e+00, 6.9405592384441661e-13,
- 2.2204460492503131e-16, -3.4861002973229915e-14,
- -1.9761969838327786e-14}, /* L849 */
-{8.7670726554007281e+00, 8.2733819795066665e-13,
- 2.2204460492503131e-16, -1.1068923555512811e-13,
- 3.1086244689504383e-15}, /* L850 */
-{8.5053013154579915e+00, 8.0357942522368830e-13,
- 2.2204460492503131e-16, 8.3133500083931722e-13,
- -8.3377749149349256e-13}, /* L851 */
-{8.7834645619593292e+00, 8.3083540047823590e-13,
- 2.2204460492503131e-16, 1.6209256159527285e-13,
- 4.6407322429331543e-14}, /* L852 */
-{8.5708663945050407e+00, 8.1167711440954804e-13,
- 2.2204460492503131e-16, -1.7751355940731628e-12,
- 7.4962258622690570e-13}, /* L853 */
-{9.3900909272202480e+00, 8.9030172123472084e-13,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- 8.4376949871511897e-14}, /* L854 */
-{9.2368566782892039e+00, 8.7679863369771738e-13,
- 2.2204460492503131e-16, -2.7222668563808838e-13,
- -2.1266322036694874e-12}, /* L855 */
-{8.6851772540675203e+00, 8.2539530765757263e-13,
- 2.2204460492503131e-16, -7.9936057773011271e-15,
- 1.1035616864774056e-13}, /* L856 */
-{9.7447644992368634e+00, 9.2717500344008386e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- 3.9301895071730542e-14}, /* L857 */
-{9.9743747108895935e+00, 9.5012886447420897e-13,
- 2.2204460492503131e-16, 1.9604318168831014e-12,
- 5.6434856787745957e-12}, /* L858 */
-{9.6531002122905321e+00, 9.2059693201917980e-13,
- 2.2204460492503131e-16, 4.7961634663806763e-14,
- -7.3607786532647879e-14}, /* L859 */
-{8.8901303049971965e+00, 8.4882101347716343e-13,
- 2.2204460492503131e-16, -2.6997293289809932e-12,
- -5.0326409706258346e-13}, /* L860 */
-{7.4477469419957423e+00, 7.1193051454088163e-13,
- 2.2204460492503131e-16, 1.0325074129013956e-13,
- -2.0794477251229182e-13}, /* L861 */
-{1.1308602528427313e+01, 1.0822454044046026e-12,
- 2.2204460492503131e-16, 4.9560355819266988e-13,
- 6.3282712403633923e-14}, /* L862 */
-{1.0934837645943642e+01, 1.0476897127631446e-12,
- 2.2204460492503131e-16, 1.8585133432225120e-13,
- 1.6564527527407336e-13}, /* L863 */
-{7.7118177225251010e+00, 7.3974160130774180e-13,
- 2.2204460492503131e-16, 3.9968028886505635e-14,
- 4.9449333516804472e-13}, /* L864 */
-{8.6456783802282420e+00, 8.3028028896592332e-13,
- 2.2204460492503131e-16, -2.1471713296250527e-13,
- 1.0658141036401503e-13}, /* L865 */
-{1.1508101297270503e+01, 1.1064482663414310e-12,
- 2.2204460492503131e-16, -2.6356694604601216e-13,
- -3.7392311469375272e-13}, /* L866 */
-{8.1707164665384315e+00, 7.8648199064446089e-13,
- 2.2204460492503131e-16, 1.5298873279334657e-13,
- 3.6215475063272606e-13}, /* L867 */
-{9.0049825251942153e+00, 8.6778501051654189e-13,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- 2.3936408410918375e-13}, /* L868 */
-{7.3601957319086582e+00, 7.1009864655025012e-13,
- 2.2204460492503131e-16, -1.8052226380405045e-13,
- -9.5590202420225978e-14}, /* L869 */
-{1.1404687533352522e+01, 1.1015702239269842e-12,
- 2.2204460492503131e-16, 1.3049561431444090e-12,
- -1.7373880112359075e-12}, /* L870 */
-{9.1808411207272815e+00, 8.8778984164150643e-13,
- 2.2204460492503131e-16, -8.4043882964124350e-14,
- -1.4932499681208355e-13}, /* L871 */
-{7.0450225828563511e+00, 6.8203775960284929e-13,
- 2.2204460492503131e-16, -7.4495964952348004e-13,
- -8.9150908877400070e-14}, /* L872 */
-{8.4539079540566338e+00, 8.1937234774898116e-13,
- 2.2204460492503131e-16, -1.1313172620930345e-13,
- -3.3750779948604759e-14}, /* L873 */
-{8.0283307441516811e+00, 7.7901574080385672e-13,
- 2.2204460492503131e-16, -7.8370643308289800e-13,
- -7.2830630415410269e-14}, /* L874 */
-{8.2551558813548791e+00, 8.0194184626236620e-13,
- 2.2204460492503131e-16, -5.4634075041803953e-13,
- -1.1024514634527804e-13}, /* L875 */
-{7.8658799899495468e+00, 7.6499917511796411e-13,
- 2.2204460492503131e-16, -6.9011463210699731e-13,
- -1.7931212070720903e-12}, /* L876 */
-{9.9549757972451545e+00, 9.6928021164899292e-13,
- 2.2204460492503131e-16, -1.9195756095768957e-13,
- 1.3036238755148588e-12}, /* L877 */
-{9.5558237323228443e+00, 9.3147711766050634e-13,
- 2.2204460492503131e-16, 2.9642954757491680e-13,
- 3.7814196218732832e-13}, /* L878 */
-{7.0709013719587910e+00, 6.9003830427405433e-13,
- 2.2204460492503131e-16, -3.5527136788005009e-13,
- 1.3655743202889425e-13}, /* L879 */
-{7.2676251024883580e+00, 7.1004313539901887e-13,
- 2.2204460492503131e-16, -3.0219160507272136e-12,
- -1.1097789354153065e-12}, /* L880 */
-{7.3008060700919248e+00, 7.1409544943890069e-13,
- 2.2204460492503131e-16, 1.3218315331187114e-12,
- 2.2692958623338200e-13}, /* L881 */
-{1.0780062359229364e+01, 1.0556000518135988e-12,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- -3.9623859748871837e-13}, /* L882 */
-{1.1245487730750195e+01, 1.1024237078771648e-12,
- 2.2204460492503131e-16, 1.1302070390684094e-13,
- 6.4681593414661620e-13}, /* L883 */
-{1.1114270928719518e+01, 1.0907941216942163e-12,
- 2.2204460492503131e-16, -2.0605739337042905e-13,
- 5.0159876252564572e-13}, /* L884 */
-{1.0774028297686133e+01, 1.0585976539800868e-12,
- 2.2204460492503131e-16, 5.7487348215090606e-13,
- -9.6145313932538556e-14}, /* L885 */
-{9.2838746923733702e+00, 9.1321394890542251e-13,
- 2.2204460492503131e-16, 1.6253665080512292e-13,
- 6.4392935428259079e-14}, /* L886 */
-{8.6950531770943673e+00, 8.5625950774215198e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -1.6264767310758543e-13}, /* L887 */
-{8.1500515689797766e+00, 8.0349442377336544e-13,
- 2.2204460492503131e-16, 3.0864200084579352e-14,
- -6.0618177144533547e-14}, /* L888 */
-{1.0143998006504338e+01, 1.0011991236069662e-12,
- 2.2204460492503131e-16, -5.4622972811557702e-14,
- 1.4876988529977098e-13}, /* L889 */
-{9.9584426777933839e+00, 9.8399066672527624e-13,
- 2.2204460492503131e-16, 5.3734794391857577e-14,
- -1.7030821197749901e-13}, /* L890 */
-{9.3535501106739005e+00, 9.2525986872260546e-13,
- 2.2204460492503131e-16, 4.3365311341858614e-13,
- -1.0377254611171338e-12}, /* L891 */
-{8.8413816621151735e+00, 8.7557738837062971e-13,
- 2.2204460492503131e-16, 1.1923795284474181e-13,
- -2.8310687127941492e-14}, /* L892 */
-{1.1136635711446218e+01, 1.1041167979897182e-12,
- 2.2204460492503131e-16, -3.6970426720017713e-14,
- -3.3306690738754696e-15}, /* L893 */
-{1.0220374066583396e+01, 1.0144107776000055e-12,
- 2.2204460492503131e-16, 2.5845992013273644e-13,
- -7.8970163741587385e-13}, /* L894 */
-{1.1497224843139648e+01, 1.1424194923392861e-12,
- 2.2204460492503131e-16, 1.5609735726229701e-12,
- -4.8550052866858096e-13}, /* L895 */
-{9.4001264377833351e+00, 9.3508534249053810e-13,
- 2.2204460492503131e-16, -3.3562042034418482e-13,
- -2.8987923172962837e-13}, /* L896 */
-{1.0294330622702056e+01, 1.0251799409388695e-12,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- 2.7444713168733870e-13}, /* L897 */
-{1.0422622234490978e+01, 1.0391132398979153e-12,
- 2.2204460492503131e-16, 3.8635761256955448e-14,
- -7.9602990865623724e-14}, /* L898 */
-{8.0931718342821970e+00, 8.0777051714164827e-13,
- 2.2204460492503131e-16, -1.2034817586936697e-13,
- 2.0428103653102880e-13}, /* L899 */
-{7.0200110755208911e+00, 7.0143890695817390e-13,
- 2.2204460492503131e-16, -4.7961634663806763e-14,
- -7.9491968563161208e-14}, /* L900 */
-{1.1487809467341837e+01, 1.1491363416382683e-12,
- 2.2204460492503131e-16, 2.9087843245179101e-13,
- 3.4994229736184934e-13}, /* L901 */
-{1.1414652155317993e+01, 1.1430856261540612e-12,
- 2.2204460492503131e-16, 1.7319479184152442e-13,
- 9.4813046302988369e-14}, /* L902 */
-{1.2522168150547911e+01, 1.2553846850948958e-12,
- 2.2204460492503131e-16, 7.8603790143461083e-14,
- -6.0840221749458578e-14}, /* L903 */
-{1.2310860130891697e+01, 1.2355672041053367e-12,
- 2.2204460492503131e-16, 3.6948222259525210e-13,
- 1.0258460747536446e-13}, /* L904 */
-{8.0784657841171139e+00, 8.1168405330345195e-13,
- 2.2204460492503131e-16, -6.7279515292284486e-13,
- -1.5210055437364645e-14}, /* L905 */
-{9.2185575905365909e+00, 9.2725827016693074e-13,
- 2.2204460492503131e-16, -1.1080025785759062e-13,
- 1.7763568394002505e-15}, /* L906 */
-{1.0620744430059446e+01, 1.0694778396214133e-12,
- 2.2204460492503131e-16, 1.0769163338864018e-13,
- 1.1817213874110166e-12}, /* L907 */
-{1.2152552212688891e+01, 1.2250755965226290e-12,
- 2.2204460492503131e-16, -1.0540457395791236e-12,
- 3.0646596371752821e-12}, /* L908 */
-{9.7362639858235518e+00, 9.8257513236887917e-13,
- 2.2204460492503131e-16, 3.0353497493251780e-13,
- 2.6378899065093719e-13}, /* L909 */
-{1.1767600983396790e+01, 1.1888823259198489e-12,
- 2.2204460492503131e-16, 2.3181456754173269e-13,
- 1.2434497875801753e-13}, /* L910 */
-{8.8117592370897988e+00, 8.9123153301784441e-13,
- 2.2204460492503131e-16, 3.3439917501709715e-12,
- 2.7022828419376310e-12}, /* L911 */
-{7.9884994455750284e+00, 8.0885298459065780e-13,
- 2.2204460492503131e-16, -2.2551960299210805e-12,
- -1.5543122344752192e-14}, /* L912 */
-{1.0911230248629407e+01, 1.1059972382376770e-12,
- 2.2204460492503131e-16, -6.7945649107059580e-14,
- -2.7848834349697427e-12}, /* L913 */
-{1.0536668702546489e+01, 1.0692002838652570e-12,
- 2.2204460492503131e-16, -5.8841820305133297e-14,
- 3.3306690738754696e-15}, /* L914 */
-{1.0859579974759525e+01, 1.1031731084187868e-12,
- 2.2204460492503131e-16, 2.2470914018413168e-13,
- -1.6475709685437323e-13}, /* L915 */
-{1.4791508052074301e+01, 1.5042411760646246e-12,
- 2.2204460492503131e-16, 2.1791457527342573e-12,
- -1.3017809052939810e-11}, /* L916 */
-{1.0936222270511172e+01, 1.1133871602453382e-12,
- 2.2204460492503131e-16, -4.9626969200744497e-14,
- -2.4091839634365897e-13}, /* L917 */
-{9.2935876448666566e+00, 9.4718677345895230e-13,
- 2.2204460492503131e-16, 5.4794613291164751e-11,
- 1.4365686418216228e-10}, /* L918 */
-{9.8067347322160501e+00, 1.0005746231556145e-12,
- 2.2204460492503131e-16, -2.4735768988648488e-13,
- -3.1075142459258132e-13}, /* L919 */
-{9.0054489905626500e+00, 9.1981977590194219e-13,
- 2.2204460492503131e-16, 2.0383694732117874e-13,
- 5.9063864910058328e-14}, /* L920 */
-{9.5496893336698143e+00, 9.7646890573344081e-13,
- 2.2204460492503131e-16, -5.7776006201493146e-13,
- 1.4077627952246985e-12}, /* L921 */
-{9.6090512231675582e+00, 9.8360555811360939e-13,
- 2.2204460492503131e-16, -2.9642954757491680e-14,
- -3.5038638657169940e-13}, /* L922 */
-{1.0225368245226543e+01, 1.0478284906412227e-12,
- 2.2204460492503131e-16, 2.6956215037898801e-12,
- 4.2854608750531042e-12}, /* L923 */
-{1.0079020230657273e+01, 1.0339507028334083e-12,
- 2.2204460492503131e-16, 4.2525982735241996e-12,
- 4.3836045904299681e-12}, /* L924 */
-{8.9943385147546415e+00, 9.2367780091251461e-13,
- 2.2204460492503131e-16, 2.6978419498391304e-13,
- -1.8096635301390052e-14}, /* L925 */
-{1.0424422494196664e+01, 1.0716982856706636e-12,
- 2.2204460492503131e-16, -1.3022916078853086e-13,
- -1.3700152123874432e-13}, /* L926 */
-{1.0250825234278901e+01, 1.0549894291500550e-12,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- -5.3013149425851225e-13}, /* L927 */
-{8.6961344095960857e+00, 8.9594998087250133e-13,
- 2.2204460492503131e-16, 3.5904612616377563e-13,
- -1.6064927166326015e-13}, /* L928 */
-{1.3198083255431015e+01, 1.3612444504929044e-12,
- 2.2204460492503131e-16, 3.5083047578154947e-14,
- -1.0746958878371515e-13}, /* L929 */
-{9.5479989348851610e+00, 9.8583641250371556e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-14,
- 4.7073456244106637e-14}, /* L930 */
-{1.1345882562131946e+01, 1.1727285809115529e-12,
- 2.2204460492503131e-16, 1.8407497748285095e-13,
- -9.1038288019262836e-14}, /* L931 */
-{8.8916449296882281e+00, 9.2004182050686723e-13,
- 2.2204460492503131e-16, 4.7739590058881731e-14,
- -2.2959412149248237e-13}, /* L932 */
-{1.0282438516343662e+01, 1.0650924586741439e-12,
- 2.2204460492503131e-16, -3.4749980670767400e-13,
- 1.4588330543574557e-13}, /* L933 */
-{8.8147890677465277e+00, 9.1404661617389138e-13,
- 2.2204460492503131e-16, -4.9205084451386938e-13,
- 4.9449333516804472e-13}, /* L934 */
-{1.2036382626232148e+01, 1.2494449919131512e-12,
- 2.2204460492503131e-16, -1.9773072068574038e-13,
- -1.5254464358349651e-13}, /* L935 */
-{9.3368202862963940e+00, 9.7025165679553993e-13,
- 2.2204460492503131e-16, 1.4579448759377556e-12,
- -3.9834802123550617e-13}, /* L936 */
-{9.6435584377376546e+00, 1.0031975250512914e-12,
- 2.2204460492503131e-16, -2.7544633240950134e-13,
- 2.8754776337791554e-13}, /* L937 */
-{1.1077309587603191e+01, 1.1535772337367689e-12,
- 2.2204460492503131e-16, 7.2875039336395275e-13,
- -8.6264329013374663e-14}, /* L938 */
-{9.7371692495089679e+00, 1.0150977280964923e-12,
- 2.2204460492503131e-16, -3.4250380309686079e-13,
- 2.3625545964023331e-13}, /* L939 */
-{9.3893765158090154e+00, 9.7988284153416316e-13,
- 2.2204460492503131e-16, 7.7271522513910895e-14,
- 8.1712414612411521e-14}, /* L940 */
-{7.6742947857833341e+00, 8.0174755723305680e-13,
- 2.2204460492503131e-16, -9.0849550105076560e-13,
- -1.2045919817182948e-13}, /* L941 */
-{1.0620505078740063e+01, 1.1107226249862379e-12,
- 2.2204460492503131e-16, 1.5494272531668685e-12,
- 3.0020430585864233e-13}, /* L942 */
-{9.7386155767581144e+00, 1.0195733146645125e-12,
- 2.2204460492503131e-16, -1.6231460620019789e-13,
- -5.5488946770765324e-13}, /* L943 */
-{1.0797156865251148e+01, 1.1315948178491908e-12,
- 2.2204460492503131e-16, 1.7075230118734908e-13,
- -4.2632564145606011e-14}, /* L944 */
-{9.7206502569740287e+00, 1.0198508704206688e-12,
- 2.2204460492503131e-16, -1.1390888232654106e-13,
- 5.9063864910058328e-14}, /* L945 */
-{9.5333000466740430e+00, 1.0012546347581974e-12,
- 2.2204460492503131e-16, 3.4439118223872356e-13,
- -2.0083934515469082e-13}, /* L946 */
-{1.1052800570584452e+01, 1.1620704398751514e-12,
- 2.2204460492503131e-16, -9.0427665355719000e-13,
- -4.2843506520284791e-13}, /* L947 */
-{1.1213082461681493e+01, 1.1801670751765414e-12,
- 2.2204460492503131e-16, -3.3606450955403488e-13,
- -3.1974423109204508e-13}, /* L948 */
-{1.1047288876499129e+01, 1.1639439412292063e-12,
- 2.2204460492503131e-16, 2.6045832157706172e-13,
- 2.8044233602031454e-13}, /* L949 */
-{9.4200019260841117e+00, 9.9353858473705259e-13,
- 2.2204460492503131e-16, -9.3330898565113785e-12,
- 1.4284129434827264e-11}, /* L950 */
-{1.1617247380819979e+01, 1.2265743976058729e-12,
- 2.2204460492503131e-16, 9.2592600253738055e-14,
- -3.8191672047105385e-14}, /* L951 */
-{1.2258931078197527e+01, 1.2956857808887889e-12,
- 2.2204460492503131e-16, 9.5923269327613525e-14,
- 4.3343106881366111e-13}, /* L952 */
-{1.0657399870776539e+01, 1.1275980149605402e-12,
- 2.2204460492503131e-16, 3.5083047578154947e-14,
- 7.8426154459521058e-13}, /* L953 */
-{8.9608246834312464e+00, 9.4908803038862288e-13,
- 2.2204460492503131e-16, 1.2478906796786760e-13,
- -2.3654411762663585e-12}, /* L954 */
-{9.2256563367699940e+00, 9.7816199584599417e-13,
- 2.2204460492503131e-16, -4.6707082645980336e-13,
- 1.1657341758564144e-13}, /* L955 */
-{1.0956592198608931e+01, 1.1629031071436202e-12,
- 2.2204460492503131e-16, -8.8273832687946197e-13,
- 1.8052226380405045e-13}, /* L956 */
-{1.1757578161831949e+01, 1.2492229473082261e-12,
- 2.2204460492503131e-16, -9.9920072216264089e-14,
- -1.6686652060116103e-13}, /* L957 */
-{9.0923818175040498e+00, 9.6705976559974260e-13,
- 2.2204460492503131e-16, 8.6375351315837179e-14,
- 3.9701575360595598e-13}, /* L958 */
-{1.0311524527743922e+01, 1.0978717934762017e-12,
- 2.2204460492503131e-16, 2.5446311724408588e-13,
- -3.1874503036988244e-13}, /* L959 */
-{1.0988023080223266e+01, 1.1711187575258464e-12,
- 2.2204460492503131e-16, 1.0680345496894006e-13,
- 5.0937032369802182e-13}, /* L960 */
-{1.2233613323657762e+01, 1.3052336989005653e-12,
- 2.2204460492503131e-16, -8.3488771451811772e-14,
- 2.6911806116913795e-13}, /* L961 */
-{1.1268713322990372e+01, 1.2035372698449009e-12,
- 2.2204460492503131e-16, -5.9130478291535837e-13,
- -7.0388139761234925e-13}, /* L962 */
-{1.0338527555409900e+01, 1.1053380433168059e-12,
- 2.2204460492503131e-16, -1.9872992140790302e-14,
- 1.1857181902996672e-13}, /* L963 */
-{1.1519322894958071e+01, 1.2328610354828129e-12,
- 2.2204460492503131e-16, -2.2759572004815709e-14,
- -8.5154105988749507e-14}, /* L964 */
-{9.5663231996994273e+00, 1.0249023851827133e-12,
- 2.2204460492503131e-16, -7.8159700933611020e-14,
- 1.1390888232654106e-13}, /* L965 */
-{9.1590339638132416e+00, 9.8228369882491506e-13,
- 2.2204460492503131e-16, -3.2914782011062016e-12,
- -1.2412293415309250e-13}, /* L966 */
-{1.1094107749449963e+01, 1.1910472608178679e-12,
- 2.2204460492503131e-16, -2.4280577548552174e-13,
- -2.0594637106796654e-13}, /* L967 */
-{1.1230374197268963e+01, 1.2069234500700077e-12,
- 2.2204460492503131e-16, -8.2156503822261584e-15,
- -6.0174087934683484e-14}, /* L968 */
-{1.0535089873573991e+01, 1.1333711746885911e-12,
- 2.2204460492503131e-16, 5.7953641885433171e-14,
- 1.3544720900426910e-14}, /* L969 */
-{9.9985845187902402e+00, 1.0767636782205159e-12,
- 2.2204460492503131e-16, -2.9232172238380372e-13,
- -9.0594198809412774e-14}, /* L970 */
-{1.0023302770502697e+01, 1.0805384365042414e-12,
- 2.2204460492503131e-16, -1.1313172620930345e-13,
- 4.7983839124299266e-13}, /* L971 */
-{9.7507735988025832e+00, 1.0522416271641077e-12,
- 2.2204460492503131e-16, -6.2827520963537609e-13,
- 9.0616403269905277e-13}, /* L972 */
-{1.0147997964123117e+01, 1.0962342145148796e-12,
- 2.2204460492503131e-16, -1.2445600106048005e-13,
- -1.0658141036401503e-14}, /* L973 */
-{1.1801337115450147e+01, 1.2761458556553862e-12,
- 2.2204460492503131e-16, -7.8281825466319788e-13,
- -5.1048054672264698e-13}, /* L974 */
-{1.2242310195685720e+01, 1.3251899577682025e-12,
- 2.2204460492503131e-16, 1.4876988529977098e-13,
- 9.2148511043887993e-14}, /* L975 */
-{8.7484649036903601e+00, 9.4796392957618991e-13,
- 2.2204460492503131e-16, -2.4424906541753444e-14,
- -9.2925667161125602e-14}, /* L976 */
-{1.2780245064760541e+01, 1.3862574282930140e-12,
- 2.2204460492503131e-16, -7.1831429693247628e-14,
- 7.5939254884360707e-14}, /* L977 */
-{9.7106359325139380e+00, 1.0543788064865112e-12,
- 2.2204460492503131e-16, -4.3298697960381105e-14,
- 3.9968028886505635e-15}, /* L978 */
-{9.3411663636554341e+00, 1.0152989560197057e-12,
- 2.2204460492503131e-16, -2.7289281945286348e-13,
- -7.7415851507112166e-13}, /* L979 */
-{1.0357655179179771e+01, 1.1269318811457651e-12,
- 2.2204460492503131e-16, 1.7823520437332263e-12,
- -1.9468870959826745e-12}, /* L980 */
-{1.0340471023728368e+01, 1.1262102361797588e-12,
- 2.2204460492503131e-16, -2.7677860003905153e-13,
- 5.0781601146354660e-13}, /* L981 */
-{9.9831995974076477e+00, 1.0884071421912722e-12,
- 2.2204460492503131e-16, -2.8532731732866523e-14,
- -7.2153394370388924e-13}, /* L982 */
-{1.2744661812610040e+01, 1.3908874052503961e-12,
- 2.2204460492503131e-16, -2.5679458559579871e-13,
- 4.6584958113271568e-13}, /* L983 */
-{8.8424814829468907e+00, 9.6600505372634871e-13,
- 2.2204460492503131e-16, -3.1386004906153175e-13,
- 4.5674575233078940e-13}, /* L984 */
-{1.1044672309025497e+01, 1.2078116284897078e-12,
- 2.2204460492503131e-16, -9.3430818637330049e-12,
- 2.1056489885040719e-12}, /* L985 */
-{9.2139978273366214e+00, 1.0086376178719547e-12,
- 2.2204460492503131e-16, 3.1974423109204508e-14,
- 1.4654943925052066e-14}, /* L986 */
-{1.1280144150592756e+01, 1.2360668044664180e-12,
- 2.2204460492503131e-16, -1.1790568521519162e-13,
- 3.6992631180510216e-13}, /* L987 */
-{1.0898281580743671e+01, 1.1954326417651373e-12,
- 2.2204460492503131e-16, -4.4630965589931293e-13,
- -6.2794214272798854e-13}, /* L988 */
-{1.2655715429159192e+01, 1.3896106487720772e-12,
- 2.2204460492503131e-16, 4.8516746176119341e-13,
- -5.9530158580400894e-13}, /* L989 */
-{9.5666686229096189e+00, 1.0514922266224858e-12,
- 2.2204460492503131e-16, -9.4479979395600822e-14,
- -7.0188299616802396e-13}, /* L990 */
-{8.6873125735991703e+00, 9.5580487968760508e-13,
- 2.2204460492503131e-16, 6.3438143627081445e-13,
- 1.0291767438275201e-12}, /* L991 */
-{1.0459679558191787e+01, 1.1519674103510624e-12,
- 2.2204460492503131e-16, 3.7481129311345285e-13,
- 5.7731597280508140e-15}, /* L992 */
-{1.0820243904390228e+01, 1.1928791288084994e-12,
- 2.2204460492503131e-16, -1.8867130080479910e-12,
- 6.0906835130936088e-13}, /* L993 */
-{1.1555680179871297e+01, 1.2752403300009263e-12,
- 2.2204460492503131e-16, -8.5376150593674538e-14,
- -2.6367796834847468e-13}, /* L994 */
-{1.0265328732270897e+01, 1.1339817973521349e-12,
- 2.2204460492503131e-16, -1.1868284133242923e-13,
- -2.4003021792395884e-13}, /* L995 */
-{1.0766442964636441e+01, 1.1905337826689788e-12,
- 2.2204460492503131e-16, -1.4654943925052066e-14,
- -1.7119639039719914e-13}, /* L996 */
-{9.9951750629243374e+00, 1.1063580607206802e-12,
- 2.2204460492503131e-16, 4.0167869030938164e-13,
- -1.7286172493413687e-13}, /* L997 */
-{1.1749626651124208e+01, 1.3018613964632664e-12,
- 2.2204460492503131e-16, 1.0369483049998962e-13,
- 8.0602191587786365e-14}, /* L998 */
-{9.7821591574571816e+00, 1.0849515730271264e-12,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- 2.0428103653102880e-14}, /* L999 */
-{1.1594252370858722e+01, 1.2872203303260221e-12,
- 2.2204460492503131e-16, 5.6843418860808015e-14,
- -1.5809575870662229e-13}, /* L1000 */
-{2.1983378150633460e+01, 4.8812898167938101e-12,
- 2.2204460492503131e-16, -1.4079071242178998e-11,
- 6.2747584905764597e-12}, /* L1001 */
-{2.2941625007894267e+01, 7.6410960891948321e-12,
- 2.2204460492503131e-16, -1.4295231665073516e-11,
- 1.3384848784880887e-12}, /* L1002 */
-{3.6929718638981434e+01, 1.6465689922640081e-11,
- 2.2204460492503131e-16, -4.2110759324032188e-13,
- -9.1197049911784234e-12}, /* L1003 */
-{6.2653900022272765e+01, 3.4779901181281048e-11,
- 2.2204460492503131e-16, -3.7617686743374179e-12,
- -4.5450310182104658e-12}, /* L1004 */
-{5.1859338561015292e+01, 3.4545259014473473e-11,
- 2.2204460492503131e-16, 1.0721423748805137e-11,
- 7.5734973847829679e-12}, /* L1005 */
-{5.2282465988486251e+01, 4.0724510569356553e-11,
- 2.2204460492503131e-16, -2.2302715230182457e-11,
- -1.6463164165259059e-11}, /* L1006 */
-{6.5067961186568311e+01, 5.8037574746094833e-11,
- 2.2204460492503131e-16, 1.3203882431866987e-11,
- 3.1252556098593232e-11}, /* L1007 */
-{8.2040444122482839e+01, 8.1974871335432908e-11,
- 2.2204460492503131e-16, -8.5555562634453963e-11,
- 8.4073792372407752e-10}, /* L1008 */
-{8.6584150016362685e+01, 9.6127716897598248e-11,
- 2.2204460492503131e-16, -5.8477445108451320e-11,
- 1.8993251416077328e-11}, /* L1009 */
-#else /* } { */
-
-
-
-/* Start of SP golden values */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L0 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L3 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L4 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L5 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L6 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L7 */
-{4.7549185156822205e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.9604644775390625e-07}, /* L8 */
-{4.2266038060188293e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 8.3446502685546875e-07}, /* L9 */
-{4.0575435757637024e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 3.5762786865234375e-07}, /* L10 */
-{3.2275927066802979e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L11 */
-{2.9586255550384521e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L12 */
-{7.8410917520523071e-01, 6.0349702835083008e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -7.1525573730468750e-07}, /* L13 */
-{3.5955643653869629e-01, 2.9802322387695312e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -3.5762786865234375e-07}, /* L14 */
-{4.0270313620567322e-01, 3.5762786865234375e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 3.5762786865234375e-07}, /* L15 */
-{2.9888099431991577e-01, 2.8312206268310547e-07,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.1920928955078125e-07}, /* L16 */
-{5.8850812911987305e-01, 5.9232115745544434e-07,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- 3.5762786865234375e-07}, /* L17 */
-{5.0337857007980347e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -4.7683715820312500e-07}, /* L18 */
-{4.5867058634757996e-01, 5.1595270633697510e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.2516975402832031e-06}, /* L19 */
-{4.7820881009101868e-01, 5.6624412536621094e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.0728836059570312e-06}, /* L20 */
-{9.7883027791976929e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 2.3841857910156250e-07}, /* L21 */
-{4.2159116268157959e-01, 5.5134296417236328e-07,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -8.9406967163085938e-07}, /* L22 */
-{5.0135254859924316e-01, 6.8545341491699219e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -1.7881393432617188e-07}, /* L23 */
-{1.0027021169662476e+00, 1.4305114746093750e-06,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- -2.3841857910156250e-07}, /* L24 */
-{7.2194659709930420e-01, 1.0728836059570312e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- 4.7683715820312500e-07}, /* L25 */
-{3.9529633522033691e-01, 6.1094760894775391e-07,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 1.1920928955078125e-07}, /* L26 */
-{5.9419322013854980e-01, 9.5367431640625000e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 0.0000000000000000e+00}, /* L27 */
-{5.9087789058685303e-01, 9.8347663879394531e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -2.9802322387695312e-06}, /* L28 */
-{6.3101136684417725e-01, 1.0877847671508789e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.1920928955078125e-06}, /* L29 */
-{1.1363973617553711e+00, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 2.3841857910156250e-07}, /* L30 */
-{5.0943696498870850e-01, 9.3877315521240234e-07,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -3.1590461730957031e-06}, /* L31 */
-{9.7332048416137695e-01, 1.8514692783355713e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 7.2717666625976562e-06}, /* L32 */
-{8.8116312026977539e-01, 1.7285346984863281e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.0132789611816406e-06}, /* L33 */
-{1.0469392538070679e+00, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.7285346984863281e-06}, /* L34 */
-{6.3979321718215942e-01, 1.3336539268493652e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.4305114746093750e-06}, /* L35 */
-{1.0980664491653442e+00, 2.3543834686279297e-06,
- 1.1920928955078125e-07, 2.6583671569824219e-05,
- -2.1398067474365234e-05}, /* L36 */
-{7.8947657346725464e-01, 1.7397105693817139e-06,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- -1.5497207641601562e-06}, /* L37 */
-{1.1061322689056396e+00, 2.5033950805664062e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 1.1920928955078125e-07}, /* L38 */
-{1.2958996295928955e+00, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.6689300537109375e-06}, /* L39 */
-{6.1920803785324097e-01, 1.4752149581909180e-06,
- 1.1920928955078125e-07, -1.9490718841552734e-05,
- 4.4703483581542969e-05}, /* L40 */
-{9.3974453210830688e-01, 2.2947788238525391e-06,
- 1.1920928955078125e-07, -1.4066696166992188e-05,
- -1.3649463653564453e-05}, /* L41 */
-{5.5696403980255127e-01, 1.3932585716247559e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- 7.5101852416992188e-06}, /* L42 */
-{5.8767557144165039e-01, 1.5050172805786133e-06,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -1.3113021850585938e-06}, /* L43 */
-{9.4389802217483521e-01, 2.4735927581787109e-06,
- 1.1920928955078125e-07, -1.6808509826660156e-05,
- 9.0599060058593750e-06}, /* L44 */
-{9.3407374620437622e-01, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -6.1392784118652344e-06}, /* L45 */
-{1.6670787334442139e+00, 4.5672059059143066e-06,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -2.0265579223632812e-06}, /* L46 */
-{6.6008597612380981e-01, 1.8477439880371094e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 5.9604644775390625e-07}, /* L47 */
-{9.2781543731689453e-01, 2.6524066925048828e-06,
- 1.1920928955078125e-07, -4.8875808715820312e-06,
- -1.0728836059570312e-06}, /* L48 */
-{8.6735057830810547e-01, 2.5331974029541016e-06,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -1.1324882507324219e-06}, /* L49 */
-{8.6625766754150391e-01, 2.5816261768341064e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -3.2186508178710938e-06}, /* L50 */
-{1.0391687154769897e+00, 3.1590461730957031e-06,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -2.1994113922119141e-05}, /* L51 */
-{1.0913528203964233e+00, 3.3825635910034180e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 3.5762786865234375e-07}, /* L52 */
-{1.2523679733276367e+00, 3.9562582969665527e-06,
- 1.1920928955078125e-07, -5.1856040954589844e-06,
- 1.9073486328125000e-06}, /* L53 */
-{6.2963581085205078e-01, 2.0265579223632812e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- 4.7683715820312500e-07}, /* L54 */
-{5.0682407617568970e-01, 1.6614794731140137e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 9.5367431640625000e-07}, /* L55 */
-{1.0089418888092041e+00, 3.3676624298095703e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.0132789611816406e-06}, /* L56 */
-{1.5701940059661865e+00, 5.3346157073974609e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -3.3378601074218750e-06}, /* L57 */
-{1.4263415336608887e+00, 4.9322843551635742e-06,
- 1.1920928955078125e-07, -1.3816356658935547e-04,
- -7.9035758972167969e-05}, /* L58 */
-{1.3898396492004395e+00, 4.8875808715820312e-06,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- -4.9471855163574219e-06}, /* L59 */
-{9.5001077651977539e-01, 3.3974647521972656e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- 1.5497207641601562e-06}, /* L60 */
-{1.0409712791442871e+00, 3.7848949432373047e-06,
- 1.1920928955078125e-07, 1.4543533325195312e-05,
- 2.7179718017578125e-05}, /* L61 */
-{1.2903363704681396e+00, 4.7683715820312500e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -8.3446502685546875e-07}, /* L62 */
-{7.7579402923583984e-01, 2.9131770133972168e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.9073486328125000e-06}, /* L63 */
-{1.9140597581863403e+00, 7.3015689849853516e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -1.1086463928222656e-05}, /* L64 */
-{1.0586640834808350e+00, 4.1015446186065674e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -4.7683715820312500e-07}, /* L65 */
-{1.0454654693603516e+00, 4.1127204895019531e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- 1.9073486328125000e-06}, /* L66 */
-{9.0949100255966187e-01, 3.6321580410003662e-06,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- -4.5299530029296875e-06}, /* L67 */
-{8.6765336990356445e-01, 3.5166740417480469e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-07,
- 1.1920928955078125e-06}, /* L68 */
-{1.6591906547546387e+00, 6.8247318267822266e-06,
- 1.1920928955078125e-07, -6.3300132751464844e-05,
- -1.5711784362792969e-04}, /* L69 */
-{1.5803515911102295e+00, 6.5937638282775879e-06,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- 3.5762786865234375e-07}, /* L70 */
-{1.5871639251708984e+00, 6.7166984081268311e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-07,
- -1.0728836059570312e-06}, /* L71 */
-{1.5208110809326172e+00, 6.5267086029052734e-06,
- 1.1920928955078125e-07, -1.9907951354980469e-05,
- -1.5854835510253906e-05}, /* L72 */
-{1.4109665155410767e+00, 6.1392784118652344e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 4.7683715820312500e-07}, /* L73 */
-{1.6604399681091309e+00, 7.3239207267761230e-06,
- 1.1920928955078125e-07, -8.6426734924316406e-06,
- -1.0132789611816406e-05}, /* L74 */
-{1.6600131988525391e+00, 7.4207782745361328e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 2.3841857910156250e-07}, /* L75 */
-{1.0657552480697632e+00, 4.8279762268066406e-06,
- 1.1920928955078125e-07, -2.7596950531005859e-05,
- -2.5689601898193359e-05}, /* L76 */
-{9.7807997465133667e-01, 4.4889748096466064e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -1.1920928955078125e-07}, /* L77 */
-{1.1570127010345459e+00, 5.3793191909790039e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -2.9563903808593750e-05}, /* L78 */
-{1.4557089805603027e+00, 6.8545341491699219e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 4.7683715820312500e-07}, /* L79 */
-{1.1683254241943359e+00, 5.5730342864990234e-06,
- 1.1920928955078125e-07, -1.6516447067260742e-04,
- -4.8935413360595703e-05}, /* L80 */
-{1.2592644691467285e+00, 6.0796737670898438e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 7.1525573730468750e-07}, /* L81 */
-{1.0975710153579712e+00, 5.3644180297851562e-06,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -3.7550926208496094e-06}, /* L82 */
-{2.2108526229858398e+00, 1.0937452316284180e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- -1.2516975402832031e-06}, /* L83 */
-{2.0297622680664062e+00, 1.0162591934204102e-05,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -4.1723251342773438e-06}, /* L84 */
-{1.5676014423370361e+00, 7.9423189163208008e-06,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 1.5497207641601562e-06}, /* L85 */
-{1.3372215032577515e+00, 6.8545341491699219e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- 4.7683715820312500e-06}, /* L86 */
-{1.4568958282470703e+00, 7.5548887252807617e-06,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 3.9339065551757812e-06}, /* L87 */
-{1.2471650838851929e+00, 6.5416097640991211e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- -2.9802322387695312e-07}, /* L88 */
-{1.0786615610122681e+00, 5.7220458984375000e-06,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- 0.0000000000000000e+00}, /* L89 */
-{1.4416582584381104e+00, 7.7337026596069336e-06,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- 8.8214874267578125e-06}, /* L90 */
-{1.2912023067474365e+00, 7.0035457611083984e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- 1.4543533325195312e-05}, /* L91 */
-{1.4266119003295898e+00, 7.8231096267700195e-06,
- 1.1920928955078125e-07, -1.8596649169921875e-05,
- -5.9604644775390625e-08}, /* L92 */
-{1.0443524122238159e+00, 5.7891011238098145e-06,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- 1.9073486328125000e-06}, /* L93 */
-{8.7233221530914307e-01, 4.8875808715820312e-06,
- 1.1920928955078125e-07, -6.9737434387207031e-06,
- 2.2649765014648438e-06}, /* L94 */
-{1.5466986894607544e+00, 8.7581574916839600e-06,
- 1.1920928955078125e-07, -1.6450881958007812e-05,
- 1.1801719665527344e-05}, /* L95 */
-{1.8489117622375488e+00, 1.0579824447631836e-05,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- 2.3841857910156250e-07}, /* L96 */
-{2.1134092807769775e+00, 1.2218952178955078e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 1.1920928955078125e-06}, /* L97 */
-{1.0867348909378052e+00, 6.3478946685791016e-06,
- 1.1920928955078125e-07, -1.8477439880371094e-06,
- -7.2717666625976562e-06}, /* L98 */
-{1.6565171480178833e+00, 9.7751617431640625e-06,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- 7.2717666625976562e-06}, /* L99 */
-{1.5700103044509888e+00, 9.3579292297363281e-06,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- 1.9073486328125000e-06}, /* L100 */
-{9.6533346176147461e-01, 5.8114528656005859e-06,
- 1.1920928955078125e-07, -1.9669532775878906e-05,
- -3.8146972656250000e-06}, /* L101 */
-{1.4190838336944580e+00, 8.6277723312377930e-06,
- 1.1920928955078125e-07, -9.5367431640625000e-07,
- 2.2649765014648438e-06}, /* L102 */
-{1.1650413274765015e+00, 7.1525573730468750e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- 1.3113021850585938e-06}, /* L103 */
-{1.6706761121749878e+00, 1.0356307029724121e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 3.3378601074218750e-06}, /* L104 */
-{1.8690253496170044e+00, 1.1697411537170410e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- -5.1259994506835938e-06}, /* L105 */
-{1.2451384067535400e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -3.8266181945800781e-05}, /* L106 */
-{1.4018733501434326e+00, 8.9406967163085938e-06,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- 0.0000000000000000e+00}, /* L107 */
-{2.1110765933990479e+00, 1.3589859008789062e-05,
- 1.1920928955078125e-07, -1.6450881958007812e-05,
- -1.9550323486328125e-05}, /* L108 */
-{1.7178971767425537e+00, 1.1160969734191895e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- 2.2649765014648438e-06}, /* L109 */
-{1.3181906938552856e+00, 8.6426734924316406e-06,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 1.3113021850585938e-06}, /* L110 */
-{1.2252202033996582e+00, 8.1062316894531250e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 8.5830688476562500e-06}, /* L111 */
-{1.6874964237213135e+00, 1.1265277862548828e-05,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- 4.7683715820312500e-06}, /* L112 */
-{2.1283390522003174e+00, 1.4334917068481445e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -3.9339065551757812e-06}, /* L113 */
-{1.2017642259597778e+00, 8.1658363342285156e-06,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -2.0265579223632812e-06}, /* L114 */
-{1.8911085128784180e+00, 1.2964010238647461e-05,
- 1.1920928955078125e-07, -5.1081180572509766e-05,
- 1.7404556274414062e-05}, /* L115 */
-{1.6616483926773071e+00, 1.1488795280456543e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -6.9737434387207031e-06}, /* L116 */
-{1.4078015089035034e+00, 9.8198652267456055e-06,
- 1.1920928955078125e-07, 6.8426132202148438e-05,
- 5.9723854064941406e-05}, /* L117 */
-{1.5084152221679688e+00, 1.0609626770019531e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- -5.5551528930664062e-05}, /* L118 */
-{1.5756088495254517e+00, 1.1175870895385742e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -3.0398368835449219e-06}, /* L119 */
-{2.3708157539367676e+00, 1.6957521438598633e-05,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- 2.1457672119140625e-06}, /* L120 */
-{1.5120798349380493e+00, 1.0907649993896484e-05,
- 1.1920928955078125e-07, -8.5651874542236328e-05,
- 2.5272369384765625e-05}, /* L121 */
-{2.7950906753540039e+00, 2.0325183868408203e-05,
- 1.1920928955078125e-07, -5.1856040954589844e-06,
- -7.4505805969238281e-06}, /* L122 */
-{1.3575928211212158e+00, 9.9539756774902344e-06,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- -1.3530254364013672e-05}, /* L123 */
-{1.8224974870681763e+00, 1.3470649719238281e-05,
- 1.1920928955078125e-07, -2.4855136871337891e-05,
- -2.3782253265380859e-05}, /* L124 */
-{1.3239212036132812e+00, 9.8645687103271484e-06,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- -9.1195106506347656e-06}, /* L125 */
-{2.3055584430694580e+00, 1.7315149307250977e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- -6.5565109252929688e-07}, /* L126 */
-{1.6377103328704834e+00, 1.2397766113281250e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -3.2424926757812500e-05}, /* L127 */
-{2.5683627128601074e+00, 1.9595026969909668e-05,
- 1.1920928955078125e-07, 4.4107437133789062e-06,
- -1.2516975402832031e-06}, /* L128 */
-{1.9767295122146606e+00, 1.5199184417724609e-05,
- 1.1920928955078125e-07, -8.9406967163085938e-06,
- -5.4836273193359375e-06}, /* L129 */
-{1.6994286775588989e+00, 1.3168901205062866e-05,
- 1.1920928955078125e-07, 1.6450881958007812e-05,
- 6.3180923461914062e-06}, /* L130 */
-{1.8375978469848633e+00, 1.4349818229675293e-05,
- 1.1920928955078125e-07, -1.6570091247558594e-05,
- -2.0921230316162109e-05}, /* L131 */
-{1.8105823993682861e+00, 1.4245510101318359e-05,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 1.2159347534179688e-05}, /* L132 */
-{2.3307569026947021e+00, 1.8477439880371094e-05,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- -2.1517276763916016e-05}, /* L133 */
-{1.3041013479232788e+00, 1.0415911674499512e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- -4.5299530029296875e-06}, /* L134 */
-{2.1185142993927002e+00, 1.7046928405761719e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- -5.3644180297851562e-06}, /* L135 */
-{1.6652044057846069e+00, 1.3500452041625977e-05,
- 1.1920928955078125e-07, -3.2246112823486328e-05,
- -2.2947788238525391e-05}, /* L136 */
-{3.0401215553283691e+00, 2.4825334548950195e-05,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 1.0609626770019531e-05}, /* L137 */
-{1.8043446540832520e+00, 1.4841556549072266e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -1.1742115020751953e-05}, /* L138 */
-{2.1798567771911621e+00, 1.8060207366943359e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- 3.8146972656250000e-06}, /* L139 */
-{1.5401673316955566e+00, 1.2852251529693604e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- 1.7881393432617188e-06}, /* L140 */
-{2.5070142745971680e+00, 2.1070241928100586e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 1.8954277038574219e-05}, /* L141 */
-{1.6487674713134766e+00, 1.3954937458038330e-05,
- 1.1920928955078125e-07, -9.8347663879394531e-06,
- -5.4240226745605469e-06}, /* L142 */
-{1.4859261512756348e+00, 1.2665987014770508e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 3.9935111999511719e-05}, /* L143 */
-{1.6457158327102661e+00, 1.4126300811767578e-05,
- 1.1920928955078125e-07, -1.6212463378906250e-05,
- 1.3589859008789062e-05}, /* L144 */
-{1.8611181974411011e+00, 1.6085803508758545e-05,
- 1.1920928955078125e-07, -1.1622905731201172e-05,
- -1.1682510375976562e-05}, /* L145 */
-{1.8321113586425781e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- 3.1352043151855469e-05}, /* L146 */
-{2.2074513435363770e+00, 1.9341707229614258e-05,
- 1.1920928955078125e-07, -2.6404857635498047e-05,
- -2.7418136596679688e-06}, /* L147 */
-{2.0101280212402344e+00, 1.7732381820678711e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- -6.9141387939453125e-06}, /* L148 */
-{3.4258801937103271e+00, 3.0428171157836914e-05,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- -1.9788742065429688e-05}, /* L149 */
-{1.8116010427474976e+00, 1.6197562217712402e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 7.6293945312500000e-06}, /* L150 */
-{2.0053453445434570e+00, 1.8049031496047974e-05,
- 1.1920928955078125e-07, -3.2126903533935547e-05,
- -1.7106533050537109e-05}, /* L151 */
-{2.2388551235198975e+00, 2.0284205675125122e-05,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- -1.3589859008789062e-05}, /* L152 */
-{1.6697667837142944e+00, 1.5228986740112305e-05,
- 1.1920928955078125e-07, -1.5079975128173828e-05,
- -4.3272972106933594e-05}, /* L153 */
-{2.2406351566314697e+00, 2.0567327737808228e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- -9.5367431640625000e-06}, /* L154 */
-{2.2467515468597412e+00, 2.0757317543029785e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- 5.1259994506835938e-06}, /* L155 */
-{2.3745467662811279e+00, 2.2079795598983765e-05,
- 1.1920928955078125e-07, 3.7431716918945312e-05,
- -3.6358833312988281e-06}, /* L156 */
-{2.0955083370208740e+00, 1.9609928131103516e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -2.7298927307128906e-05}, /* L157 */
-{1.7495329380035400e+00, 1.6480684280395508e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-05,
- -4.9769878387451172e-05}, /* L158 */
-{2.1758046150207520e+00, 2.0623207092285156e-05,
- 1.1920928955078125e-07, 6.1154365539550781e-05,
- -3.0517578125000000e-05}, /* L159 */
-{2.2445225715637207e+00, 2.1405518054962158e-05,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- -4.5299530029296875e-06}, /* L160 */
-{1.6459550857543945e+00, 1.5795230865478516e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 7.0333480834960938e-06}, /* L161 */
-{2.4256405830383301e+00, 2.3423694074153900e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 4.0531158447265625e-06}, /* L162 */
-{1.8588899374008179e+00, 1.8060207366943359e-05,
- 1.1920928955078125e-07, -1.6927719116210938e-05,
- -7.7486038208007812e-07}, /* L163 */
-{2.1371707916259766e+00, 2.0891427993774414e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -1.3709068298339844e-06}, /* L164 */
-{2.0060150623321533e+00, 1.9729137420654297e-05,
- 1.1920928955078125e-07, -2.3782253265380859e-05,
- 1.1920928955078125e-06}, /* L165 */
-{2.0059118270874023e+00, 1.9848346710205078e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-05,
- -3.5166740417480469e-05}, /* L166 */
-{2.0755820274353027e+00, 2.0660459995269775e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 7.1525573730468750e-07}, /* L167 */
-{3.0146615505218506e+00, 3.0189752578735352e-05,
- 1.1920928955078125e-07, 3.5405158996582031e-05,
- -1.8298625946044922e-05}, /* L168 */
-{3.9156386852264404e+00, 3.9443373680114746e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 1.0251998901367188e-05}, /* L169 */
-{2.4558520317077637e+00, 2.4884939193725586e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-06,
- -5.3048133850097656e-06}, /* L170 */
-{2.8026320934295654e+00, 2.8565526008605957e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -1.0848045349121094e-05}, /* L171 */
-{2.3371465206146240e+00, 2.3961067199707031e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.9073486328125000e-06}, /* L172 */
-{2.1054863929748535e+00, 2.1710991859436035e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- -3.8146972656250000e-06}, /* L173 */
-{2.3062880039215088e+00, 2.3931264877319336e-05,
- 1.1920928955078125e-07, 1.1324882507324219e-04,
- -1.0037422180175781e-04}, /* L174 */
-{2.5199549198150635e+00, 2.6285648345947266e-05,
- 1.1920928955078125e-07, -1.6748905181884766e-05,
- 2.2053718566894531e-05}, /* L175 */
-{1.5906770229339600e+00, 1.6689300537109375e-05,
- 1.1920928955078125e-07, 4.4107437133789062e-05,
- -1.6510486602783203e-05}, /* L176 */
-{2.2541122436523438e+00, 2.3782253265380859e-05,
- 1.1920928955078125e-07, -3.5464763641357422e-05,
- -6.1392784118652344e-06}, /* L177 */
-{1.9265031814575195e+00, 2.0444393157958984e-05,
- 1.1920928955078125e-07, -3.2544136047363281e-05,
- -4.9293041229248047e-05}, /* L178 */
-{2.2580652236938477e+00, 2.4095177650451660e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -5.9962272644042969e-05}, /* L179 */
-{1.8595248460769653e+00, 1.9952654838562012e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 4.0411949157714844e-05}, /* L180 */
-{2.6842482089996338e+00, 2.8960406780242920e-05,
- 1.1920928955078125e-07, -2.8252601623535156e-05,
- -1.4364719390869141e-05}, /* L181 */
-{2.4145283699035645e+00, 2.6196241378784180e-05,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- -1.0728836059570312e-05}, /* L182 */
-{2.0791890621185303e+00, 2.2679567337036133e-05,
- 1.1920928955078125e-07, -7.5697898864746094e-06,
- 1.8835067749023438e-05}, /* L183 */
-{2.7559175491333008e+00, 3.0225142836570740e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -8.3446502685546875e-07}, /* L184 */
-{2.5566635131835938e+00, 2.8196722269058228e-05,
- 1.1920928955078125e-07, -9.7632408142089844e-05,
- 3.1471252441406250e-05}, /* L185 */
-{3.8623738288879395e+00, 4.2855739593505859e-05,
- 1.1920928955078125e-07, 3.3819675445556641e-04,
- 2.2149085998535156e-04}, /* L186 */
-{2.4945464134216309e+00, 2.7805566787719727e-05,
- 1.1920928955078125e-07, -1.3232231140136719e-05,
- -3.5762786865234375e-07}, /* L187 */
-{2.3874394893646240e+00, 2.6755034923553467e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-05,
- 5.8412551879882812e-06}, /* L188 */
-{3.1719310283660889e+00, 3.5732984542846680e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -5.6624412536621094e-06}, /* L189 */
-{2.5210285186767578e+00, 2.8550624847412109e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- 1.0490417480468750e-05}, /* L190 */
-{3.5811295509338379e+00, 4.0769577026367188e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- 1.8119812011718750e-05}, /* L191 */
-{2.6432023048400879e+00, 3.0249357223510742e-05,
- 1.1920928955078125e-07, 1.9669532775878906e-05,
- 7.0333480834960938e-06}, /* L192 */
-{2.3445589542388916e+00, 2.6971101760864258e-05,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- -3.3378601074218750e-06}, /* L193 */
-{1.9561572074890137e+00, 2.2619962692260742e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- 3.5762786865234375e-07}, /* L194 */
-{2.0115103721618652e+00, 2.3379921913146973e-05,
- 1.1920928955078125e-07, 8.1062316894531250e-06,
- 2.4199485778808594e-05}, /* L195 */
-{2.6887228488922119e+00, 3.1411647796630859e-05,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 2.1457672119140625e-06}, /* L196 */
-{2.2429711818695068e+00, 2.6345252990722656e-05,
- 1.1920928955078125e-07, 1.4436244964599609e-04,
- -5.9545040130615234e-05}, /* L197 */
-{2.2017180919647217e+00, 2.5987625122070312e-05,
- 1.1920928955078125e-07, 8.4519386291503906e-05,
- -2.4557113647460938e-05}, /* L198 */
-{2.1833324432373047e+00, 2.5898218154907227e-05,
- 1.1920928955078125e-07, -4.7147274017333984e-05,
- 1.9073486328125000e-05}, /* L199 */
-{2.7066788673400879e+00, 3.2275915145874023e-05,
- 1.1920928955078125e-07, 9.6917152404785156e-05,
- 3.7431716918945312e-05}, /* L200 */
-{2.2679762840270996e+00, 2.7172267436981201e-05,
- 1.1920928955078125e-07, -2.0503997802734375e-05,
- -8.4042549133300781e-06}, /* L201 */
-{2.2597937583923340e+00, 2.7209520339965820e-05,
- 1.1920928955078125e-07, -2.0682811737060547e-05,
- -3.0577182769775391e-05}, /* L202 */
-{2.4088115692138672e+00, 2.9146671295166016e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- -4.5895576477050781e-06}, /* L203 */
-{2.9950757026672363e+00, 3.6418437957763672e-05,
- 1.1920928955078125e-07, -1.2636184692382812e-05,
- -1.7046928405761719e-05}, /* L204 */
-{2.5846471786499023e+00, 3.1664967536926270e-05,
- 1.1920928955078125e-07, 1.7772912979125977e-03,
- -2.7197599411010742e-04}, /* L205 */
-{2.6067717075347900e+00, 3.2007694244384766e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -6.2584877014160156e-06}, /* L206 */
-{2.1771912574768066e+00, 2.6863068342208862e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.3709068298339844e-05}, /* L207 */
-{3.1068594455718994e+00, 3.8519501686096191e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- -6.7353248596191406e-06}, /* L208 */
-{2.5741207599639893e+00, 3.2067298889160156e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- 1.5974044799804688e-05}, /* L209 */
-{3.2612531185150146e+00, 4.0821731090545654e-05,
- 1.1920928955078125e-07, -6.0200691223144531e-06,
- -2.6702880859375000e-05}, /* L210 */
-{3.1061952114105225e+00, 3.9067119359970093e-05,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -3.5762786865234375e-07}, /* L211 */
-{3.9090692996978760e+00, 4.9397349357604980e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -2.5033950805664062e-06}, /* L212 */
-{2.9082803726196289e+00, 3.6925077438354492e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -6.5565109252929688e-07}, /* L213 */
-{2.2300553321838379e+00, 2.8446316719055176e-05,
- 1.1920928955078125e-07, -1.8239021301269531e-05,
- -3.7372112274169922e-05}, /* L214 */
-{3.8737306594848633e+00, 4.9658119678497314e-05,
- 1.1920928955078125e-07, -5.2392482757568359e-05,
- -1.5497207641601562e-05}, /* L215 */
-{2.3996686935424805e+00, 3.0897557735443115e-05,
- 1.1920928955078125e-07, -7.5757503509521484e-05,
- -2.1457672119140625e-05}, /* L216 */
-{3.0302970409393311e+00, 3.9309263229370117e-05,
- 1.1920928955078125e-07, 1.3022422790527344e-03,
- -4.0930509567260742e-04}, /* L217 */
-{2.0802607536315918e+00, 2.7030706405639648e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- 5.8412551879882812e-06}, /* L218 */
-{3.0661604404449463e+00, 4.0024518966674805e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 8.7022781372070312e-06}, /* L219 */
-{2.2863128185272217e+00, 2.9981136322021484e-05,
- 1.1920928955078125e-07, 1.6331672668457031e-05,
- -7.5697898864746094e-06}, /* L220 */
-{3.1289212703704834e+00, 4.1216611862182617e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- 1.0728836059570312e-05}, /* L221 */
-{2.9346113204956055e+00, 3.8832426071166992e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -1.4662742614746094e-05}, /* L222 */
-{2.3267719745635986e+00, 3.0927360057830811e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- 8.1062316894531250e-06}, /* L223 */
-{2.2917885780334473e+00, 3.0666589736938477e-05,
- 1.1920928955078125e-07, -5.5700540542602539e-04,
- -1.0199546813964844e-03}, /* L224 */
-{2.6463797092437744e+00, 3.5494565963745117e-05,
- 1.1920928955078125e-07, -9.2387199401855469e-05,
- 2.7060508728027344e-05}, /* L225 */
-{3.1678485870361328e+00, 4.2676925659179688e-05,
- 1.1920928955078125e-07, -6.3180923461914062e-06,
- -2.4437904357910156e-06}, /* L226 */
-{3.2464599609375000e+00, 4.3928623199462891e-05,
- 1.1920928955078125e-07, -1.5497207641601562e-05,
- 3.7074089050292969e-05}, /* L227 */
-{3.2306761741638184e+00, 4.3913722038269043e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- 2.9206275939941406e-05}, /* L228 */
-{2.3965263366699219e+00, 3.2735988497734070e-05,
- 1.1920928955078125e-07, -2.4777650833129883e-04,
- 1.2147426605224609e-04}, /* L229 */
-{3.2906377315521240e+00, 4.5120716094970703e-05,
- 1.1920928955078125e-07, -3.4153461456298828e-05,
- -2.9683113098144531e-05}, /* L230 */
-{3.3776614665985107e+00, 4.6506524085998535e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- 1.7881393432617188e-06}, /* L231 */
-{2.7369720935821533e+00, 3.7848949432373047e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -1.0132789611816406e-05}, /* L232 */
-{4.4909911155700684e+00, 6.2376260757446289e-05,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- -2.4378299713134766e-05}, /* L233 */
-{2.6878952980041504e+00, 3.7491321563720703e-05,
- 1.1920928955078125e-07, -4.3272972106933594e-05,
- -4.2140483856201172e-05}, /* L234 */
-{2.1084623336791992e+00, 2.9534101486206055e-05,
- 1.1920928955078125e-07, -1.0192394256591797e-05,
- 1.3828277587890625e-05}, /* L235 */
-{2.8241481781005859e+00, 3.9726495742797852e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -3.1590461730957031e-06}, /* L236 */
-{3.9472033977508545e+00, 5.5767595767974854e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- 4.2200088500976562e-05}, /* L237 */
-{2.7856087684631348e+00, 3.9517879486083984e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -2.5153160095214844e-05}, /* L238 */
-{3.1797544956207275e+00, 4.5299530029296875e-05,
- 1.1920928955078125e-07, 4.0054321289062500e-05,
- 4.0769577026367188e-05}, /* L239 */
-{3.2002224922180176e+00, 4.5806169509887695e-05,
- 1.1920928955078125e-07, 3.5643577575683594e-05,
- 1.0037422180175781e-04}, /* L240 */
-{2.9428439140319824e+00, 4.2289495468139648e-05,
- 1.1920928955078125e-07, -5.0783157348632812e-05,
- 3.9577484130859375e-05}, /* L241 */
-{3.3541893959045410e+00, 4.8384070396423340e-05,
- 1.1920928955078125e-07, -2.4616718292236328e-05,
- -5.4121017456054688e-05}, /* L242 */
-{3.0121967792510986e+00, 4.3645501136779785e-05,
- 1.1920928955078125e-07, -2.5999546051025391e-04,
- -1.1211633682250977e-04}, /* L243 */
-{2.7211909294128418e+00, 3.9577484130859375e-05,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- 1.7881393432617188e-06}, /* L244 */
-{2.6671855449676514e+00, 3.8951635360717773e-05,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- 9.5367431640625000e-07}, /* L245 */
-{3.5121285915374756e+00, 5.1498413085937500e-05,
- 1.1920928955078125e-07, 1.6093254089355469e-05,
- 3.4570693969726562e-06}, /* L246 */
-{2.9267933368682861e+00, 4.3094158172607422e-05,
- 1.1920928955078125e-07, -7.1227550506591797e-05,
- -6.4253807067871094e-05}, /* L247 */
-{2.5106649398803711e+00, 3.7118792533874512e-05,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- 1.5211105346679688e-04}, /* L248 */
-{2.4577031135559082e+00, 3.6492943763732910e-05,
- 1.1920928955078125e-07, -4.3272972106933594e-05,
- -3.0696392059326172e-05}, /* L249 */
-{3.2924635410308838e+00, 4.9069523811340332e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-05,
- -1.0550022125244141e-05}, /* L250 */
-{3.1647403240203857e+00, 4.7355890274047852e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 5.3405761718750000e-05}, /* L251 */
-{2.5652899742126465e+00, 3.8534402847290039e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- -7.1525573730468750e-06}, /* L252 */
-{3.0589282512664795e+00, 4.6133995056152344e-05,
- 1.1920928955078125e-07, -1.3053417205810547e-05,
- -6.1035156250000000e-05}, /* L253 */
-{3.4289965629577637e+00, 5.1915645599365234e-05,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- 3.8862228393554688e-05}, /* L254 */
-{3.9899127483367920e+00, 6.0647726058959961e-05,
- 1.1920928955078125e-07, -2.8550624847412109e-05,
- -3.5762786865234375e-07}, /* L255 */
-{2.8133091926574707e+00, 4.2930245399475098e-05,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- -2.7418136596679688e-06}, /* L256 */
-{3.9885497093200684e+00, 6.1154365539550781e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-05,
- -1.2624263763427734e-04}, /* L257 */
-{3.2745540142059326e+00, 5.0365924835205078e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- -7.9214572906494141e-05}, /* L258 */
-{3.7721002101898193e+00, 5.8233737945556641e-05,
- 1.1920928955078125e-07, -7.3909759521484375e-06,
- -5.7220458984375000e-06}, /* L259 */
-{2.6515526771545410e+00, 4.1097402572631836e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-05,
- -3.0398368835449219e-06}, /* L260 */
-{3.4728057384490967e+00, 5.4038457165006548e-05,
- 1.1920928955078125e-07, 3.2305717468261719e-05,
- 5.8412551879882812e-05}, /* L261 */
-{3.1954014301300049e+00, 4.9918889999389648e-05,
- 1.1920928955078125e-07, 2.6404857635498047e-04,
- -4.2200088500976562e-05}, /* L262 */
-{2.8266370296478271e+00, 4.4316053390502930e-05,
- 1.1920928955078125e-07, 8.2850456237792969e-05,
- -9.8943710327148438e-05}, /* L263 */
-{2.8690671920776367e+00, 4.5150518417358398e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- 4.6730041503906250e-05}, /* L264 */
-{2.6714525222778320e+00, 4.2200088500976562e-05,
- 1.1920928955078125e-07, -4.5895576477050781e-05,
- -4.2438507080078125e-05}, /* L265 */
-{2.8428514003753662e+00, 4.5076012611389160e-05,
- 1.1920928955078125e-07, 2.8848648071289062e-05,
- 3.2186508178710938e-05}, /* L266 */
-{4.0063519477844238e+00, 6.3806772232055664e-05,
- 1.1920928955078125e-07, -1.6617774963378906e-04,
- -6.4373016357421875e-05}, /* L267 */
-{3.2946927547454834e+00, 5.2630901336669922e-05,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- -7.8082084655761719e-06}, /* L268 */
-{3.0960786342620850e+00, 4.9680471420288086e-05,
- 1.1920928955078125e-07, 7.1644783020019531e-05,
- -6.1631202697753906e-05}, /* L269 */
-{2.4616773128509521e+00, 3.9622187614440918e-05,
- 1.1920928955078125e-07, -7.1704387664794922e-05,
- -3.8206577301025391e-05}, /* L270 */
-{3.2490193843841553e+00, 5.2481889724731445e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-06,
- -1.1265277862548828e-05}, /* L271 */
-{2.6045920848846436e+00, 4.2229890823364258e-05,
- 1.1920928955078125e-07, -1.6033649444580078e-05,
- 2.0623207092285156e-05}, /* L272 */
-{2.3881592750549316e+00, 3.8862228393554688e-05,
- 1.1920928955078125e-07, -6.3776969909667969e-06,
- 2.3841857910156250e-07}, /* L273 */
-{3.6916511058807373e+00, 6.0304999351501465e-05,
- 1.1920928955078125e-07, -4.5359134674072266e-05,
- -3.9517879486083984e-05}, /* L274 */
-{2.8544161319732666e+00, 4.6789646148681641e-05,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- 1.4305114746093750e-05}, /* L275 */
-{4.3295445442199707e+00, 7.1227550506591797e-05,
- 1.1920928955078125e-07, 2.0265579223632812e-06,
- 8.9406967163085938e-06}, /* L276 */
-{2.2030730247497559e+00, 3.6388635635375977e-05,
- 1.1920928955078125e-07, 1.5389919281005859e-04,
- -1.6170740127563477e-04}, /* L277 */
-{4.3234281539916992e+00, 7.1644783020019531e-05,
- 1.1920928955078125e-07, -2.2590160369873047e-05,
- -4.7683715820312500e-07}, /* L278 */
-{4.7633819580078125e+00, 7.9214572906494141e-05,
- 1.1920928955078125e-07, -1.1861324310302734e-05,
- -4.1127204895019531e-06}, /* L279 */
-{3.1802918910980225e+00, 5.3096562623977661e-05,
- 1.1920928955078125e-07, -1.5914440155029297e-05,
- -1.7881393432617188e-06}, /* L280 */
-{3.4567997455596924e+00, 5.7905912399291992e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- 5.6743621826171875e-05}, /* L281 */
-{3.4324822425842285e+00, 5.7697296142578125e-05,
- 1.1920928955078125e-07, -3.5047531127929688e-05,
- 1.5497207641601562e-05}, /* L282 */
-{5.1921296119689941e+00, 8.7678432464599609e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-06,
- -1.8262863159179688e-04}, /* L283 */
-{2.6907644271850586e+00, 4.5552849769592285e-05,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- 3.6478042602539062e-05}, /* L284 */
-{3.4548406600952148e+00, 5.8695673942565918e-05,
- 1.1920928955078125e-07, -3.4868717193603516e-05,
- -1.7583370208740234e-05}, /* L285 */
-{2.9035649299621582e+00, 4.9501657485961914e-05,
- 1.1920928955078125e-07, -9.4711780548095703e-05,
- -1.3232231140136719e-05}, /* L286 */
-{3.0586924552917480e+00, 5.2325427532196045e-05,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 9.0599060058593750e-06}, /* L287 */
-{3.5607805252075195e+00, 6.1243772506713867e-05,
- 1.1920928955078125e-07, -1.4287233352661133e-04,
- 2.9850006103515625e-04}, /* L288 */
-{5.1356911659240723e+00, 8.8468194007873535e-05,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 4.5299530029296875e-06}, /* L289 */
-{3.6223025321960449e+00, 6.2614679336547852e-05,
- 1.1920928955078125e-07, -9.1791152954101562e-06,
- -5.1259994506835938e-06}, /* L290 */
-{3.7404465675354004e+00, 6.4879655838012695e-05,
- 1.1920928955078125e-07, -3.3438205718994141e-05,
- -2.5629997253417969e-05}, /* L291 */
-{4.8947043418884277e+00, 8.5204839706420898e-05,
- 1.1920928955078125e-07, 6.3300132751464844e-05,
- -9.7453594207763672e-05}, /* L292 */
-{3.4655468463897705e+00, 6.0528516769409180e-05,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- -1.1384487152099609e-05}, /* L293 */
-{3.5683181285858154e+00, 6.2555074691772461e-05,
- 1.1920928955078125e-07, 9.0360641479492188e-05,
- -3.3938884735107422e-04}, /* L294 */
-{3.6346430778503418e+00, 6.4045190811157227e-05,
- 1.1920928955078125e-07, 2.4902820587158203e-04,
- 6.7687034606933594e-04}, /* L295 */
-{3.9862954616546631e+00, 7.0333480834960938e-05,
- 1.1920928955078125e-07, 5.3644180297851562e-06,
- 1.8477439880371094e-05}, /* L296 */
-{3.6915864944458008e+00, 6.5356492996215820e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- -1.1265277862548828e-05}, /* L297 */
-{4.4570188522338867e+00, 7.9184770584106445e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- 6.4134597778320312e-05}, /* L298 */
-{3.4038407802581787e+00, 6.0670077800750732e-05,
- 1.1920928955078125e-07, 4.5061111450195312e-05,
- -5.6445598602294922e-05}, /* L299 */
-{3.7514643669128418e+00, 6.7129731178283691e-05,
- 1.1920928955078125e-07, 3.3497810363769531e-04,
- -3.8534402847290039e-04}, /* L300 */
-{4.8985590934753418e+00, 8.7898224592208862e-05,
- 1.1920928955078125e-07, -8.8691711425781250e-05,
- -1.8298625946044922e-05}, /* L301 */
-{3.0060222148895264e+00, 5.4121017456054688e-05,
- 1.1920928955078125e-07, -8.8810920715332031e-06,
- 2.4318695068359375e-05}, /* L302 */
-{3.1448967456817627e+00, 5.6803226470947266e-05,
- 1.1920928955078125e-07, 2.2411346435546875e-05,
- -3.7848949432373047e-05}, /* L303 */
-{3.0179142951965332e+00, 5.4687261581420898e-05,
- 1.1920928955078125e-07, 2.7060508728027344e-05,
- 1.6689300537109375e-06}, /* L304 */
-{3.2232899665832520e+00, 5.8598816394805908e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- 1.0728836059570312e-06}, /* L305 */
-{3.7025220394134521e+00, 6.7532062530517578e-05,
- 1.1920928955078125e-07, -4.1723251342773438e-06,
- 6.4373016357421875e-06}, /* L306 */
-{3.7982063293457031e+00, 6.9528818130493164e-05,
- 1.1920928955078125e-07, -1.3232231140136719e-05,
- 4.0531158447265625e-05}, /* L307 */
-{3.4702069759368896e+00, 6.3717365264892578e-05,
- 1.1920928955078125e-07, 1.6450881958007812e-05,
- -4.1186809539794922e-05}, /* L308 */
-{3.5174129009246826e+00, 6.4797699451446533e-05,
- 1.1920928955078125e-07, 3.9219856262207031e-05,
- -5.2630901336669922e-05}, /* L309 */
-{3.6881618499755859e+00, 6.8157911300659180e-05,
- 1.1920928955078125e-07, -7.0512294769287109e-05,
- 3.5166740417480469e-05}, /* L310 */
-{3.3597378730773926e+00, 6.2286853790283203e-05,
- 1.1920928955078125e-07, -3.7491321563720703e-05,
- 3.6954879760742188e-06}, /* L311 */
-{4.3004426956176758e+00, 7.9989433288574219e-05,
- 1.1920928955078125e-07, -1.6421079635620117e-04,
- -9.7155570983886719e-06}, /* L312 */
-{4.0768499374389648e+00, 7.6076015830039978e-05,
- 1.1920928955078125e-07, 1.8787384033203125e-04,
- 9.6559524536132812e-05}, /* L313 */
-{3.7974717617034912e+00, 7.1078538894653320e-05,
- 1.1920928955078125e-07, 2.2172927856445312e-05,
- 3.3259391784667969e-05}, /* L314 */
-{4.2243967056274414e+00, 7.9318881034851074e-05,
- 1.1920928955078125e-07, 2.2768974304199219e-05,
- -4.1663646697998047e-05}, /* L315 */
-{5.3682155609130859e+00, 1.0111927986145020e-04,
- 1.1920928955078125e-07, -2.4855136871337891e-05,
- -3.9458274841308594e-05}, /* L316 */
-{4.9082832336425781e+00, 9.2744827270507812e-05,
- 1.1920928955078125e-07, 2.5272369384765625e-05,
- -5.5432319641113281e-06}, /* L317 */
-{2.9920537471771240e+00, 5.6713819503784180e-05,
- 1.1920928955078125e-07, -1.4245510101318359e-05,
- 1.5258789062500000e-05}, /* L318 */
-{3.3885791301727295e+00, 6.4432621002197266e-05,
- 1.1920928955078125e-07, -8.1658363342285156e-06,
- -2.0802021026611328e-05}, /* L319 */
-{3.8027205467224121e+00, 7.2538852691650391e-05,
- 1.1920928955078125e-07, 5.7220458984375000e-06,
- 5.0187110900878906e-05}, /* L320 */
-{2.7722573280334473e+00, 5.3077936172485352e-05,
- 1.1920928955078125e-07, 6.8318843841552734e-04,
- -2.4962425231933594e-04}, /* L321 */
-{3.8224706649780273e+00, 7.3373317718505859e-05,
- 1.1920928955078125e-07, -5.0485134124755859e-05,
- -4.8279762268066406e-05}, /* L322 */
-{4.5435948371887207e+00, 8.7514519691467285e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-05,
- -2.6881694793701172e-05}, /* L323 */
-{4.2382225990295410e+00, 8.1922858953475952e-05,
- 1.1920928955078125e-07, 1.9788742065429688e-04,
- 3.7908554077148438e-05}, /* L324 */
-{4.3274693489074707e+00, 8.3833932876586914e-05,
- 1.1920928955078125e-07, -6.1988830566406250e-06,
- -1.9073486328125000e-06}, /* L325 */
-{4.7026472091674805e+00, 9.1388821601867676e-05,
- 1.1920928955078125e-07, 6.4969062805175781e-05,
- -4.4107437133789062e-05}, /* L326 */
-{4.4588904380798340e+00, 8.6933374404907227e-05,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- -1.8060207366943359e-05}, /* L327 */
-{3.7090687751770020e+00, 7.2531402111053467e-05,
- 1.1920928955078125e-07, -6.6876411437988281e-05,
- -3.1006336212158203e-04}, /* L328 */
-{3.5113313198089600e+00, 6.8858265876770020e-05,
- 1.1920928955078125e-07, 5.1259994506835938e-06,
- -2.4437904357910156e-06}, /* L329 */
-{5.0451388359069824e+00, 9.9241733551025391e-05,
- 1.1920928955078125e-07, -8.2969665527343750e-05,
- 9.4175338745117188e-06}, /* L330 */
-{3.4708690643310547e+00, 6.8482011556625366e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 1.2278556823730469e-05}, /* L331 */
-{3.8523159027099609e+00, 7.6234340667724609e-05,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- 1.9907951354980469e-05}, /* L332 */
-{3.5042610168457031e+00, 6.9677829742431641e-05,
- 1.1920928955078125e-07, 3.4904479980468750e-04,
- 8.2099437713623047e-04}, /* L333 */
-{5.5407176017761230e+00, 1.1035799980163574e-04,
- 1.1920928955078125e-07, 1.5580654144287109e-04,
- 4.5537948608398438e-05}, /* L334 */
-{3.9966633319854736e+00, 7.9810619354248047e-05,
- 1.1920928955078125e-07, -1.0967254638671875e-05,
- 1.1920928955078125e-06}, /* L335 */
-{3.8346590995788574e+00, 7.6800584793090820e-05,
- 1.1920928955078125e-07, -6.9141387939453125e-06,
- 2.1457672119140625e-06}, /* L336 */
-{4.8391766548156738e+00, 9.7423791885375977e-05,
- 1.1920928955078125e-07, -3.6931037902832031e-04,
- 6.6184997558593750e-04}, /* L337 */
-{4.3429594039916992e+00, 8.7499618530273438e-05,
- 1.1920928955078125e-07, 5.5670738220214844e-05,
- 5.7220458984375000e-06}, /* L338 */
-{3.3892314434051514e+00, 6.8500638008117676e-05,
- 1.1920928955078125e-07, -2.9265880584716797e-05,
- 1.8596649169921875e-05}, /* L339 */
-{5.5310215950012207e+00, 1.1214986443519592e-04,
- 1.1920928955078125e-07, 1.2528896331787109e-04,
- 1.8215179443359375e-04}, /* L340 */
-{4.4030752182006836e+00, 8.9496374130249023e-05,
- 1.1920928955078125e-07, 3.2544136047363281e-05,
- 1.7166137695312500e-05}, /* L341 */
-{3.3986732959747314e+00, 6.9290399551391602e-05,
- 1.1920928955078125e-07, -4.5359134674072266e-05,
- 2.4557113647460938e-05}, /* L342 */
-{5.0069704055786133e+00, 1.0237097740173340e-04,
- 1.1920928955078125e-07, 1.9669532775878906e-05,
- 3.8146972656250000e-06}, /* L343 */
-{5.0666346549987793e+00, 1.0389089584350586e-04,
- 1.1920928955078125e-07, -2.5212764739990234e-05,
- -1.7881393432617188e-05}, /* L344 */
-{3.3330473899841309e+00, 6.8545341491699219e-05,
- 1.1920928955078125e-07, -1.0430812835693359e-05,
- -3.4391880035400391e-05}, /* L345 */
-{4.5079722404479980e+00, 9.2975795269012451e-05,
- 1.1920928955078125e-07, 3.7550926208496094e-05,
- 3.5881996154785156e-05}, /* L346 */
-{3.9093413352966309e+00, 8.0868601799011230e-05,
- 1.1920928955078125e-07, 5.4359436035156250e-05,
- 3.7908554077148438e-05}, /* L347 */
-{3.1478652954101562e+00, 6.5386295318603516e-05,
- 1.1920928955078125e-07, 9.7274780273437500e-05,
- -4.7415494918823242e-04}, /* L348 */
-{4.0143284797668457e+00, 8.3528459072113037e-05,
- 1.1920928955078125e-07, 3.0875205993652344e-05,
- -1.2463331222534180e-04}, /* L349 */
-{4.4092125892639160e+00, 9.1999769210815430e-05,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 3.6120414733886719e-05}, /* L350 */
-{3.3387920856475830e+00, 6.9856643676757812e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- -3.6299228668212891e-05}, /* L351 */
-{3.1700742244720459e+00, 6.6518783569335938e-05,
- 1.1920928955078125e-07, -2.4080276489257812e-05,
- -2.1278858184814453e-05}, /* L352 */
-{4.5285348892211914e+00, 9.5322728157043457e-05,
- 1.1920928955078125e-07, -1.9735097885131836e-04,
- -2.1260976791381836e-04}, /* L353 */
-{3.8902375698089600e+00, 8.2105398178100586e-05,
- 1.1920928955078125e-07, -3.4987926483154297e-05,
- -2.2774934768676758e-04}, /* L354 */
-{5.9693474769592285e+00, 1.2639164924621582e-04,
- 1.1920928955078125e-07, 9.7990036010742188e-05,
- 6.6554546356201172e-04}, /* L355 */
-{3.8052601814270020e+00, 8.0764293670654297e-05,
- 1.1920928955078125e-07, 1.0442733764648438e-04,
- 2.7894973754882812e-05}, /* L356 */
-{5.5374474525451660e+00, 1.1783838272094727e-04,
- 1.1920928955078125e-07, -6.9260597229003906e-05,
- -5.9604644775390625e-08}, /* L357 */
-{5.7943048477172852e+00, 1.2364983558654785e-04,
- 1.1920928955078125e-07, -2.8192996978759766e-05,
- -8.1062316894531250e-06}, /* L358 */
-{3.5224900245666504e+00, 7.5377523899078369e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-05,
- -2.9325485229492188e-05}, /* L359 */
-{4.7852396965026855e+00, 1.0269880294799805e-04,
- 1.1920928955078125e-07, -8.2194805145263672e-05,
- 3.0994415283203125e-05}, /* L360 */
-{3.1999924182891846e+00, 6.8858265876770020e-05,
- 1.1920928955078125e-07, 1.5854835510253906e-05,
- -9.0599060058593750e-06}, /* L361 */
-{5.3147287368774414e+00, 1.1467933654785156e-04,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- -1.8000602722167969e-05}, /* L362 */
-{4.5411243438720703e+00, 9.8258256912231445e-05,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- 2.4199485778808594e-05}, /* L363 */
-{6.0253739356994629e+00, 1.3077259063720703e-04,
- 1.1920928955078125e-07, 4.4703483581542969e-05,
- -7.3552131652832031e-05}, /* L364 */
-{4.5652756690979004e+00, 9.9360942840576172e-05,
- 1.1920928955078125e-07, -3.6001205444335938e-05,
- 1.4925003051757812e-04}, /* L365 */
-{3.6036715507507324e+00, 7.8618526458740234e-05,
- 1.1920928955078125e-07, 9.1791152954101562e-06,
- 1.3589859008789062e-05}, /* L366 */
-{3.7273740768432617e+00, 8.1539154052734375e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 3.7431716918945312e-05}, /* L367 */
-{4.2446775436401367e+00, 9.3109905719757080e-05,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- 1.6689300537109375e-06}, /* L368 */
-{4.3426260948181152e+00, 9.5516443252563477e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-05,
- -1.2695789337158203e-05}, /* L369 */
-{4.3134078979492188e+00, 9.5129013061523438e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -1.6331672668457031e-05}, /* L370 */
-{4.0775294303894043e+00, 9.0181827545166016e-05,
- 1.1920928955078125e-07, -5.8531761169433594e-05,
- 3.7789344787597656e-05}, /* L371 */
-{5.4049725532531738e+00, 1.1985003948211670e-04,
- 1.1920928955078125e-07, 1.5616416931152344e-05,
- 2.9444694519042969e-05}, /* L372 */
-{4.2379403114318848e+00, 9.4234943389892578e-05,
- 1.1920928955078125e-07, -2.5629997253417969e-06,
- 3.2544136047363281e-05}, /* L373 */
-{3.4607408046722412e+00, 7.7545642852783203e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-03,
- 2.5917291641235352e-03}, /* L374 */
-{4.7070565223693848e+00, 1.0529160499572754e-04,
- 1.1920928955078125e-07, -5.3703784942626953e-05,
- 1.9395351409912109e-04}, /* L375 */
-{5.0860800743103027e+00, 1.1402368545532227e-04,
- 1.1920928955078125e-07, 3.4677982330322266e-04,
- -1.5020370483398438e-05}, /* L376 */
-{3.8089709281921387e+00, 8.5622072219848633e-05,
- 1.1920928955078125e-07, 2.7537345886230469e-05,
- 2.5868415832519531e-05}, /* L377 */
-{4.2515749931335449e+00, 9.5844268798828125e-05,
- 1.1920928955078125e-07, 1.3089179992675781e-04,
- -1.6510486602783203e-05}, /* L378 */
-{4.0408983230590820e+00, 9.1299414634704590e-05,
- 1.1920928955078125e-07, -5.5491924285888672e-05,
- -5.9783458709716797e-05}, /* L379 */
-{4.4814028739929199e+00, 1.0150671005249023e-04,
- 1.1920928955078125e-07, -1.7225742340087891e-05,
- 9.5367431640625000e-06}, /* L380 */
-{3.7937805652618408e+00, 8.6158514022827148e-05,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -1.5735626220703125e-05}, /* L381 */
-{4.2195396423339844e+00, 9.6119940280914307e-05,
- 1.1920928955078125e-07, -5.3763389587402344e-05,
- 1.5914440155029297e-04}, /* L382 */
-{3.8781976699829102e+00, 8.8542699813842773e-05,
- 1.1920928955078125e-07, -2.1874904632568359e-05,
- 2.3245811462402344e-05}, /* L383 */
-{5.0740528106689453e+00, 1.1619925498962402e-04,
- 1.1920928955078125e-07, -3.2711029052734375e-04,
- 1.1205673217773438e-05}, /* L384 */
-{4.5497961044311523e+00, 1.0441243648529053e-04,
- 1.1920928955078125e-07, -4.3511390686035156e-06,
- 9.5367431640625000e-06}, /* L385 */
-{4.7555971145629883e+00, 1.0946393013000488e-04,
- 1.1920928955078125e-07, 1.3017654418945312e-04,
- 1.9943714141845703e-04}, /* L386 */
-{3.6250836849212646e+00, 8.3625316619873047e-05,
- 1.1920928955078125e-07, -4.7802925109863281e-05,
- -1.9311904907226562e-05}, /* L387 */
-{5.8204035758972168e+00, 1.3461709022521973e-04,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- 1.4781951904296875e-05}, /* L388 */
-{3.6026206016540527e+00, 8.3535909652709961e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- 2.4676322937011719e-05}, /* L389 */
-{5.6130175590515137e+00, 1.3048946857452393e-04,
- 1.1920928955078125e-07, -6.1511993408203125e-05,
- -1.3947486877441406e-05}, /* L390 */
-{3.5651161670684814e+00, 8.3088874816894531e-05,
- 1.1920928955078125e-07, -1.7583370208740234e-05,
- 3.2186508178710938e-06}, /* L391 */
-{3.5756576061248779e+00, 8.3686318248510361e-05,
- 1.1920928955078125e-07, -2.0819902420043945e-04,
- 7.5435638427734375e-04}, /* L392 */
-{3.8484609127044678e+00, 9.0166926383972168e-05,
- 1.1920928955078125e-07, -1.6689300537109375e-05,
- -2.8729438781738281e-05}, /* L393 */
-{3.9579837322235107e+00, 9.2962756752967834e-05,
- 1.1920928955078125e-07, -1.8775463104248047e-05,
- 1.4185905456542969e-04}, /* L394 */
-{5.2872052192687988e+00, 1.2460350990295410e-04,
- 1.1920928955078125e-07, -1.8632411956787109e-04,
- 1.5187263488769531e-04}, /* L395 */
-{3.2937521934509277e+00, 7.7813863754272461e-05,
- 1.1920928955078125e-07, -2.1290779113769531e-04,
- 2.6929378509521484e-04}, /* L396 */
-{5.8030114173889160e+00, 1.3732910156250000e-04,
- 1.1920928955078125e-07, 1.0132789611816406e-05,
- -2.7835369110107422e-05}, /* L397 */
-{4.1490583419799805e+00, 9.8444521427154541e-05,
- 1.1920928955078125e-07, -5.3882598876953125e-05,
- 7.8082084655761719e-05}, /* L398 */
-{4.5905141830444336e+00, 1.0925531387329102e-04,
- 1.1920928955078125e-07, 5.1617622375488281e-05,
- 7.3790550231933594e-05}, /* L399 */
-{5.8524904251098633e+00, 1.3956427574157715e-04,
- 1.1920928955078125e-07, 5.8889389038085938e-05,
- 1.6570091247558594e-05}, /* L400 */
-{3.6343975067138672e+00, 8.6873769760131836e-05,
- 1.1920928955078125e-07, -4.7087669372558594e-05,
- 4.1365623474121094e-05}, /* L401 */
-{5.1688361167907715e+00, 1.2385845184326172e-04,
- 1.1920928955078125e-07, 3.2186508178710938e-06,
- 3.4570693969726562e-06}, /* L402 */
-{5.5612969398498535e+00, 1.3359449803829193e-04,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -6.0796737670898438e-06}, /* L403 */
-{5.2148928642272949e+00, 1.2558698654174805e-04,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- 1.2993812561035156e-05}, /* L404 */
-{4.9660286903381348e+00, 1.1989474296569824e-04,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- 5.9008598327636719e-05}, /* L405 */
-{4.8024926185607910e+00, 1.1622533202171326e-04,
- 1.1920928955078125e-07, -3.5703182220458984e-05,
- 4.0531158447265625e-06}, /* L406 */
-{3.7295167446136475e+00, 9.0479850769042969e-05,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -8.9406967163085938e-07}, /* L407 */
-{5.6095252037048340e+00, 1.3655424118041992e-04,
- 1.1920928955078125e-07, 5.2094459533691406e-05,
- 1.5461444854736328e-04}, /* L408 */
-{5.4967718124389648e+00, 1.3402104377746582e-04,
- 1.1920928955078125e-07, -1.4603137969970703e-05,
- -6.9081783294677734e-05}, /* L409 */
-{6.3083896636962891e+00, 1.5420466661453247e-04,
- 1.1920928955078125e-07, 2.0742416381835938e-05,
- -1.4132261276245117e-04}, /* L410 */
-{4.2645049095153809e+00, 1.0448694229125977e-04,
- 1.1920928955078125e-07, -3.6954879760742188e-05,
- 7.0571899414062500e-05}, /* L411 */
-{4.8736329078674316e+00, 1.1968612670898438e-04,
- 1.1920928955078125e-07, -1.0550022125244141e-05,
- -3.6358833312988281e-06}, /* L412 */
-{5.1146631240844727e+00, 1.2594461441040039e-04,
- 1.1920928955078125e-07, -2.3871660232543945e-04,
- 7.9512596130371094e-05}, /* L413 */
-{4.9308147430419922e+00, 1.2177228927612305e-04,
- 1.1920928955078125e-07, -2.5171041488647461e-04,
- -1.0788440704345703e-04}, /* L414 */
-{4.9413123130798340e+00, 1.2224912643432617e-04,
- 1.1920928955078125e-07, 4.0531158447265625e-06,
- -6.1988830566406250e-06}, /* L415 */
-{5.5262899398803711e+00, 1.3706088066101074e-04,
- 1.1920928955078125e-07, 1.0371208190917969e-04,
- 9.2983245849609375e-06}, /* L416 */
-{4.1554741859436035e+00, 1.0332372039556503e-04,
- 1.1920928955078125e-07, -1.2522935867309570e-04,
- 1.5676021575927734e-04}, /* L417 */
-{5.7199134826660156e+00, 1.4266371726989746e-04,
- 1.1920928955078125e-07, -2.4569034576416016e-04,
- -1.7821788787841797e-05}, /* L418 */
-{4.5091886520385742e+00, 1.1262297630310059e-04,
- 1.1920928955078125e-07, -1.9907951354980469e-05,
- -3.6120414733886719e-05}, /* L419 */
-{5.7672843933105469e+00, 1.4439225196838379e-04,
- 1.1920928955078125e-07, -3.1709671020507812e-05,
- -1.9609928131103516e-05}, /* L420 */
-{6.4943995475769043e+00, 1.6298890113830566e-04,
- 1.1920928955078125e-07, 7.9631805419921875e-05,
- 2.5749206542968750e-05}, /* L421 */
-{4.4240193367004395e+00, 1.1128932237625122e-04,
- 1.1920928955078125e-07, -4.5657157897949219e-05,
- 2.7894973754882812e-05}, /* L422 */
-{4.9000020027160645e+00, 1.2357532978057861e-04,
- 1.1920928955078125e-07, -1.3840198516845703e-04,
- 1.6570091247558594e-05}, /* L423 */
-{4.9009256362915039e+00, 1.2388825416564941e-04,
- 1.1920928955078125e-07, -1.9699335098266602e-04,
- -4.1902065277099609e-05}, /* L424 */
-{4.5620651245117188e+00, 1.1557340621948242e-04,
- 1.1920928955078125e-07, 3.6835670471191406e-05,
- -1.3887882232666016e-05}, /* L425 */
-{5.4333934783935547e+00, 1.3798475265502930e-04,
- 1.1920928955078125e-07, 5.9604644775390625e-05,
- 6.0558319091796875e-05}, /* L426 */
-{4.8036007881164551e+00, 1.2227147817611694e-04,
- 1.1920928955078125e-07, -3.0815601348876953e-05,
- 6.1273574829101562e-05}, /* L427 */
-{4.7169952392578125e+00, 1.2034177780151367e-04,
- 1.1920928955078125e-07, -4.7087669372558594e-06,
- -1.6272068023681641e-05}, /* L428 */
-{4.8233399391174316e+00, 1.2341141700744629e-04,
- 1.1920928955078125e-07, 7.4386596679687500e-05,
- 8.2850456237792969e-05}, /* L429 */
-{6.7834086418151855e+00, 1.7386674880981445e-04,
- 1.1920928955078125e-07, 3.9458274841308594e-05,
- -8.5830688476562500e-06}, /* L430 */
-{4.9041800498962402e+00, 1.2616068124771118e-04,
- 1.1920928955078125e-07, -4.3052434921264648e-04,
- -4.0596723556518555e-04}, /* L431 */
-{5.5431079864501953e+00, 1.4275312423706055e-04,
- 1.1920928955078125e-07, 7.0929527282714844e-05,
- -1.3768672943115234e-05}, /* L432 */
-{4.5884084701538086e+00, 1.1861324310302734e-04,
- 1.1920928955078125e-07, -3.6764144897460938e-04,
- 1.9061565399169922e-04}, /* L433 */
-{3.4099633693695068e+00, 8.8214874267578125e-05,
- 1.1920928955078125e-07, -3.0398368835449219e-06,
- -8.7618827819824219e-06}, /* L434 */
-{5.1639256477355957e+00, 1.3390183448791504e-04,
- 1.1920928955078125e-07, -2.8669834136962891e-05,
- 6.6757202148437500e-06}, /* L435 */
-{4.7931871414184570e+00, 1.2457370758056641e-04,
- 1.1920928955078125e-07, 5.4955482482910156e-05,
- 7.7486038208007812e-06}, /* L436 */
-{4.7301306724548340e+00, 1.2323260307312012e-04,
- 1.1920928955078125e-07, 9.5844268798828125e-05,
- -2.6047229766845703e-05}, /* L437 */
-{4.8976392745971680e+00, 1.2788176536560059e-04,
- 1.1920928955078125e-07, -1.5795230865478516e-04,
- -2.0921230316162109e-05}, /* L438 */
-{5.2720355987548828e+00, 1.3796985149383545e-04,
- 1.1920928955078125e-07, -4.6670436859130859e-05,
- 5.5432319641113281e-05}, /* L439 */
-{5.0466547012329102e+00, 1.3238191604614258e-04,
- 1.1920928955078125e-07, -5.1319599151611328e-05,
- -2.1278858184814453e-05}, /* L440 */
-{4.4025888442993164e+00, 1.1575222015380859e-04,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- -1.2636184692382812e-04}, /* L441 */
-{4.4723958969116211e+00, 1.1783838272094727e-04,
- 1.1920928955078125e-07, -4.5239925384521484e-05,
- 2.5033950805664062e-06}, /* L442 */
-{4.7411189079284668e+00, 1.2519955635070801e-04,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- -1.8119812011718750e-05}, /* L443 */
-{4.4799847602844238e+00, 1.1861324310302734e-04,
- 1.1920928955078125e-07, -1.9311904907226562e-05,
- 4.6372413635253906e-05}, /* L444 */
-{4.6506352424621582e+00, 1.2337043881416321e-04,
- 1.1920928955078125e-07, -5.2392482757568359e-05,
- -2.8610229492187500e-05}, /* L445 */
-{5.7173337936401367e+00, 1.5200302004814148e-04,
- 1.1920928955078125e-07, -4.5299530029296875e-05,
- -5.4955482482910156e-05}, /* L446 */
-{6.7710990905761719e+00, 1.8045306205749512e-04,
- 1.1920928955078125e-07, 1.3089179992675781e-04,
- -2.3710727691650391e-04}, /* L447 */
-{4.3210639953613281e+00, 1.1539459228515625e-04,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- -1.9669532775878906e-06}, /* L448 */
-{4.6492733955383301e+00, 1.2443959712982178e-04,
- 1.1920928955078125e-07, 4.6730041503906250e-05,
- 4.0769577026367188e-05}, /* L449 */
-{6.0502514839172363e+00, 1.6229599714279175e-04,
- 1.1920928955078125e-07, 1.9073486328125000e-05,
- 7.5697898864746094e-05}, /* L450 */
-{3.8663313388824463e+00, 1.0395050048828125e-04,
- 1.1920928955078125e-07, 8.0585479736328125e-05,
- 1.8835067749023438e-05}, /* L451 */
-{6.2990856170654297e+00, 1.6972422599792480e-04,
- 1.1920928955078125e-07, 3.1113624572753906e-05,
- 9.5367431640625000e-07}, /* L452 */
-{4.9766898155212402e+00, 1.3440847396850586e-04,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- 1.2159347534179688e-05}, /* L453 */
-{5.8987503051757812e+00, 1.5971064567565918e-04,
- 1.1920928955078125e-07, -2.3841857910156250e-06,
- -1.7160177230834961e-04}, /* L454 */
-{4.6731977462768555e+00, 1.2677907943725586e-04,
- 1.1920928955078125e-07, -2.3841857910156250e-05,
- -5.7399272918701172e-05}, /* L455 */
-{4.7921600341796875e+00, 1.3029575347900391e-04,
- 1.1920928955078125e-07, -6.0081481933593750e-05,
- -5.7935714721679688e-05}, /* L456 */
-{4.1910967826843262e+00, 1.1419691145420074e-04,
- 1.1920928955078125e-07, -2.5391578674316406e-05,
- -1.8149614334106445e-04}, /* L457 */
-{5.1380434036254883e+00, 1.4032423496246338e-04,
- 1.1920928955078125e-07, 9.3102455139160156e-05,
- 3.3259391784667969e-05}, /* L458 */
-{6.5492949485778809e+00, 1.7920136451721191e-04,
- 1.1920928955078125e-07, -7.0929527282714844e-05,
- -9.7215175628662109e-05}, /* L459 */
-{5.6332507133483887e+00, 1.5452504158020020e-04,
- 1.1920928955078125e-07, 3.3998489379882812e-04,
- 1.1622905731201172e-04}, /* L460 */
-{4.5762581825256348e+00, 1.2581050395965576e-04,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 2.9802322387695312e-06}, /* L461 */
-{4.4334683418273926e+00, 1.2210011482238770e-04,
- 1.1920928955078125e-07, 7.8678131103515625e-06,
- 4.1007995605468750e-05}, /* L462 */
-{7.3508515357971191e+00, 2.0290911197662354e-04,
- 1.1920928955078125e-07, -3.8623809814453125e-05,
- -1.0907649993896484e-05}, /* L463 */
-{3.6928987503051758e+00, 1.0220706462860107e-04,
- 1.1920928955078125e-07, -1.9556283950805664e-04,
- -1.4412403106689453e-04}, /* L464 */
-{5.9219169616699219e+00, 1.6415119171142578e-04,
- 1.1920928955078125e-07, -1.8775463104248047e-05,
- -1.3768672943115234e-05}, /* L465 */
-{5.9144444465637207e+00, 1.6430020332336426e-04,
- 1.1920928955078125e-07, -1.3589859008789062e-05,
- -1.8477439880371094e-05}, /* L466 */
-{6.1911263465881348e+00, 1.7234683036804199e-04,
- 1.1920928955078125e-07, -2.5987625122070312e-05,
- 9.3936920166015625e-05}, /* L467 */
-{6.4790682792663574e+00, 1.8087029457092285e-04,
- 1.1920928955078125e-07, -5.5849552154541016e-05,
- 2.9158592224121094e-04}, /* L468 */
-{7.4850344657897949e+00, 2.0927190780639648e-04,
- 1.1920928955078125e-07, 1.1825561523437500e-04,
- 3.7193298339843750e-05}, /* L469 */
-{4.5422015190124512e+00, 1.2725591659545898e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -2.6106834411621094e-05}, /* L470 */
-{5.7486481666564941e+00, 1.6266107559204102e-04,
- 1.1920928955078125e-07, -2.2810697555541992e-03,
- 8.3255767822265625e-04}, /* L471 */
-{5.3004713058471680e+00, 1.4914572238922119e-04,
- 1.1920928955078125e-07, -2.6285648345947266e-05,
- -3.9041042327880859e-05}, /* L472 */
-{6.7798418998718262e+00, 1.9121170043945312e-04,
- 1.1920928955078125e-07, 1.4996528625488281e-04,
- -5.8710575103759766e-05}, /* L473 */
-{5.2309894561767578e+00, 1.4781951904296875e-04,
- 1.1920928955078125e-07, -7.1823596954345703e-05,
- -1.1342763900756836e-04}, /* L474 */
-{5.3210940361022949e+00, 1.5089660882949829e-04,
- 1.1920928955078125e-07, 2.5629997253417969e-05,
- -2.0939111709594727e-04}, /* L475 */
-{6.0578145980834961e+00, 1.7203390598297119e-04,
- 1.1920928955078125e-07, -2.2065639495849609e-04,
- 4.3463706970214844e-04}, /* L476 */
-{7.5555233955383301e+00, 2.1488592028617859e-04,
- 1.1920928955078125e-07, -1.1295080184936523e-04,
- -2.9385089874267578e-05}, /* L477 */
-{5.4848942756652832e+00, 1.5627779066562653e-04,
- 1.1920928955078125e-07, -1.3649463653564453e-05,
- 2.1219253540039062e-05}, /* L478 */
-{4.4020037651062012e+00, 1.2570619583129883e-04,
- 1.1920928955078125e-07, -7.9989433288574219e-05,
- 3.9696693420410156e-05}, /* L479 */
-{6.1365470886230469e+00, 1.7558038234710693e-04,
- 1.1920928955078125e-07, -6.8604946136474609e-05,
- -1.6570091247558594e-05}, /* L480 */
-{5.6573195457458496e+00, 1.6229599714279175e-04,
- 1.1920928955078125e-07, 4.1866302490234375e-04,
- -4.6926736831665039e-04}, /* L481 */
-{5.2921171188354492e+00, 1.5211105346679688e-04,
- 1.1920928955078125e-07, 5.5789947509765625e-05,
- 1.1694431304931641e-04}, /* L482 */
-{5.8491892814636230e+00, 1.6862899065017700e-04,
- 1.1920928955078125e-07, -3.3354759216308594e-04,
- 9.2983245849609375e-05}, /* L483 */
-{5.0758614540100098e+00, 1.4644861221313477e-04,
- 1.1920928955078125e-07, -3.5881996154785156e-05,
- -1.3470649719238281e-05}, /* L484 */
-{6.6731619834899902e+00, 1.9294023513793945e-04,
- 1.1920928955078125e-07, -4.8279762268066406e-06,
- -4.9650669097900391e-05}, /* L485 */
-{5.5807728767395020e+00, 1.6167759895324707e-04,
- 1.1920928955078125e-07, -2.7954578399658203e-05,
- 2.1457672119140625e-06}, /* L486 */
-{5.3043012619018555e+00, 1.5400350093841553e-04,
- 1.1920928955078125e-07, -5.3226947784423828e-05,
- 1.5020370483398438e-05}, /* L487 */
-{5.2347793579101562e+00, 1.5231966972351074e-04,
- 1.1920928955078125e-07, 2.1612644195556641e-04,
- -2.4217367172241211e-04}, /* L488 */
-{5.9275188446044922e+00, 1.7279386520385742e-04,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- 3.0994415283203125e-05}, /* L489 */
-{4.7745151519775391e+00, 1.3950467109680176e-04,
- 1.1920928955078125e-07, -1.4477968215942383e-04,
- -1.4668703079223633e-04}, /* L490 */
-{3.7013018131256104e+00, 1.0833144187927246e-04,
- 1.1920928955078125e-07, 8.5830688476562500e-06,
- 1.0132789611816406e-05}, /* L491 */
-{5.2267508506774902e+00, 1.5336275100708008e-04,
- 1.1920928955078125e-07, -3.8170814514160156e-04,
- 1.7035007476806641e-04}, /* L492 */
-{7.1574606895446777e+00, 2.1034479141235352e-04,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- 4.1246414184570312e-05}, /* L493 */
-{5.5949034690856934e+00, 1.6480684280395508e-04,
- 1.1920928955078125e-07, 5.3286552429199219e-05,
- -1.4090538024902344e-04}, /* L494 */
-{5.0247888565063477e+00, 1.4826655387878418e-04,
- 1.1920928955078125e-07, 3.6716461181640625e-05,
- 5.1617622375488281e-05}, /* L495 */
-{6.5991225242614746e+00, 1.9510835409164429e-04,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.2113323211669922e-05}, /* L496 */
-{7.3950409889221191e+00, 2.1910667419433594e-04,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 7.9870223999023438e-06}, /* L497 */
-{5.6270971298217773e+00, 1.6705691814422607e-04,
- 1.1920928955078125e-07, -4.4226646423339844e-05,
- -7.8916549682617188e-05}, /* L498 */
-{5.6410298347473145e+00, 1.6780197620391846e-04,
- 1.1920928955078125e-07, -1.4841556549072266e-05,
- 4.8875808715820312e-05}, /* L499 */
-{5.5280261039733887e+00, 1.6477704048156738e-04,
- 1.1920928955078125e-07, 2.0861625671386719e-05,
- -5.4717063903808594e-05}, /* L500 */
-{5.6087503433227539e+00, 1.6760826110839844e-04,
- 1.1920928955078125e-07, -2.2983551025390625e-04,
- 2.3102760314941406e-04}, /* L501 */
-{5.4079442024230957e+00, 1.6199052333831787e-04,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- -2.1928548812866211e-04}, /* L502 */
-{5.7897634506225586e+00, 1.7395615577697754e-04,
- 1.1920928955078125e-07, -9.8377466201782227e-04,
- -1.4424324035644531e-05}, /* L503 */
-{5.5397872924804688e+00, 1.6644597053527832e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-05,
- 7.5101852416992188e-05}, /* L504 */
-{5.4679875373840332e+00, 1.6459822654724121e-04,
- 1.1920928955078125e-07, 1.8596649169921875e-05,
- -2.0921230316162109e-05}, /* L505 */
-{4.4529743194580078e+00, 1.3431906700134277e-04,
- 1.1920928955078125e-07, 7.7843666076660156e-05,
- -1.5497207641601562e-06}, /* L506 */
-{4.9310393333435059e+00, 1.4905072748661041e-04,
- 1.1920928955078125e-07, 1.2123584747314453e-04,
- 6.4849853515625000e-05}, /* L507 */
-{5.3067121505737305e+00, 1.6096234321594238e-04,
- 1.1920928955078125e-07, 5.0497055053710938e-04,
- -8.9317560195922852e-04}, /* L508 */
-{5.0945873260498047e+00, 1.5465915203094482e-04,
- 1.1920928955078125e-07, -1.2797117233276367e-04,
- 6.9022178649902344e-05}, /* L509 */
-{6.1207489967346191e+00, 1.8608523532748222e-04,
- 1.1920928955078125e-07, -1.0043382644653320e-04,
- -4.2557716369628906e-05}, /* L510 */
-{5.9299015998840332e+00, 1.8066167831420898e-04,
- 1.1920928955078125e-07, -9.4175338745117188e-06,
- -2.7239322662353516e-05}, /* L511 */
-{4.7111682891845703e+00, 1.4379620552062988e-04,
- 1.1920928955078125e-07, 3.4809112548828125e-05,
- -7.1942806243896484e-05}, /* L512 */
-{6.2758803367614746e+00, 1.9192695617675781e-04,
- 1.1920928955078125e-07, -2.7954578399658203e-05,
- -4.1723251342773438e-06}, /* L513 */
-{6.1555080413818359e+00, 1.8861889839172363e-04,
- 1.1920928955078125e-07, 4.8279762268066406e-05,
- 1.6689300537109375e-06}, /* L514 */
-{4.9983119964599609e+00, 1.5345215797424316e-04,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 3.8146972656250000e-05}, /* L515 */
-{5.9612245559692383e+00, 1.8347799777984619e-04,
- 1.1920928955078125e-07, -7.9095363616943359e-05,
- 2.0480155944824219e-04}, /* L516 */
-{4.9347491264343262e+00, 1.5208125114440918e-04,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- -1.9669532775878906e-06}, /* L517 */
-{5.6785922050476074e+00, 1.7534196376800537e-04,
- 1.1920928955078125e-07, -8.8214874267578125e-06,
- -1.0311603546142578e-05}, /* L518 */
-{6.8157291412353516e+00, 2.1106004714965820e-04,
- 1.1920928955078125e-07, -5.3107738494873047e-05,
- 9.4532966613769531e-05}, /* L519 */
-{5.7248001098632812e+00, 1.7745792865753174e-04,
- 1.1920928955078125e-07, 4.5895576477050781e-05,
- -3.0040740966796875e-05}, /* L520 */
-{5.8009543418884277e+00, 1.8052756786346436e-04,
- 1.1920928955078125e-07, 2.8479099273681641e-04,
- -1.2654066085815430e-04}, /* L521 */
-{5.2041826248168945e+00, 1.6194581985473633e-04,
- 1.1920928955078125e-07, -6.1213970184326172e-05,
- -1.7583370208740234e-05}, /* L522 */
-{6.6662683486938477e+00, 2.0784139633178711e-04,
- 1.1920928955078125e-07, -5.3942203521728516e-05,
- -1.1903047561645508e-04}, /* L523 */
-{5.3592529296875000e+00, 1.6742944717407227e-04,
- 1.1920928955078125e-07, -3.8743019104003906e-05,
- -1.1682510375976562e-05}, /* L524 */
-{4.9949140548706055e+00, 1.5634298324584961e-04,
- 1.1920928955078125e-07, -6.6936016082763672e-05,
- -4.8577785491943359e-05}, /* L525 */
-{6.3913831710815430e+00, 2.0045042037963867e-04,
- 1.1920928955078125e-07, 7.1167945861816406e-05,
- 7.0691108703613281e-05}, /* L526 */
-{7.3903741836547852e+00, 2.3244414478540421e-04,
- 1.1920928955078125e-07, -2.9462575912475586e-04,
- -1.5681982040405273e-04}, /* L527 */
-{6.2383975982666016e+00, 1.9648671150207520e-04,
- 1.1920928955078125e-07, 1.9490718841552734e-04,
- 1.7750263214111328e-04}, /* L528 */
-{4.9334025382995605e+00, 1.5556812286376953e-04,
- 1.1920928955078125e-07, -4.4703483581542969e-05,
- -1.6450881958007812e-05}, /* L529 */
-{6.5613160133361816e+00, 2.0769238471984863e-04,
- 1.1920928955078125e-07, 8.9991092681884766e-04,
- 1.4561414718627930e-03}, /* L530 */
-{6.7225046157836914e+00, 2.1310895681381226e-04,
- 1.1920928955078125e-07, 9.6750259399414062e-04,
- 7.2360038757324219e-04}, /* L531 */
-{5.1799497604370117e+00, 1.6433000564575195e-04,
- 1.1920928955078125e-07, -5.2392482757568359e-05,
- 9.8943710327148438e-06}, /* L532 */
-{6.1014223098754883e+00, 1.9398331642150879e-04,
- 1.1920928955078125e-07, -3.4421682357788086e-04,
- -6.0796737670898438e-05}, /* L533 */
-{6.9196872711181641e+00, 2.2029876708984375e-04,
- 1.1920928955078125e-07, -7.1465969085693359e-05,
- -1.0716915130615234e-04}, /* L534 */
-{8.4238595962524414e+00, 2.6882067322731018e-04,
- 1.1920928955078125e-07, -1.7005205154418945e-04,
- 8.2731246948242188e-05}, /* L535 */
-{5.3257250785827637e+00, 1.7016381025314331e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- -2.1338462829589844e-05}, /* L536 */
-{7.1372866630554199e+00, 2.2916495800018311e-04,
- 1.1920928955078125e-07, -6.5898895263671875e-04,
- 7.1060657501220703e-04}, /* L537 */
-{5.7486639022827148e+00, 1.8435716629028320e-04,
- 1.1920928955078125e-07, -2.7596950531005859e-05,
- -3.0636787414550781e-05}, /* L538 */
-{6.5129780769348145e+00, 2.0927190780639648e-04,
- 1.1920928955078125e-07, 7.7366828918457031e-05,
- 4.1007995605468750e-05}, /* L539 */
-{7.5873479843139648e+00, 2.4425983428955078e-04,
- 1.1920928955078125e-07, 4.0888786315917969e-05,
- -1.4722347259521484e-05}, /* L540 */
-{5.3238263130187988e+00, 1.7172098159790039e-04,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- 1.0836124420166016e-04}, /* L541 */
-{5.0169763565063477e+00, 1.6209483146667480e-04,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- 1.7881393432617188e-06}, /* L542 */
-{6.2478785514831543e+00, 2.0390748977661133e-04,
- 1.1920928955078125e-07, -2.5333762168884277e-03,
- 2.4464130401611328e-03}, /* L543 */
-{5.4783468246459961e+00, 1.7843395471572876e-04,
- 1.1920928955078125e-07, -2.4759769439697266e-03,
- 1.1228322982788086e-03}, /* L544 */
-{5.5202503204345703e+00, 1.7936527729034424e-04,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- 1.9609928131103516e-04}, /* L545 */
-{4.1962380409240723e+00, 1.3658404350280762e-04,
- 1.1920928955078125e-07, 4.3153762817382812e-05,
- -8.3029270172119141e-05}, /* L546 */
-{7.6260900497436523e+00, 2.4867057800292969e-04,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 4.5299530029296875e-06}, /* L547 */
-{6.6125106811523438e+00, 2.1600723266601562e-04,
- 1.1920928955078125e-07, -1.5914440155029297e-05,
- 1.3113021850585938e-05}, /* L548 */
-{6.5128808021545410e+00, 2.1316111087799072e-04,
- 1.1920928955078125e-07, 6.5445899963378906e-05,
- -1.2439489364624023e-04}, /* L549 */
-{6.1242575645446777e+00, 2.0080804824829102e-04,
- 1.1920928955078125e-07, -1.9788742065429688e-05,
- -2.6226043701171875e-05}, /* L550 */
-{5.4250750541687012e+00, 1.7823278903961182e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-05,
- 1.5401840209960938e-04}, /* L551 */
-{4.9922137260437012e+00, 1.6435235738754272e-04,
- 1.1920928955078125e-07, -9.1552734375000000e-05,
- 2.3698806762695312e-04}, /* L552 */
-{5.5382370948791504e+00, 1.8265843391418457e-04,
- 1.1920928955078125e-07, 2.0182132720947266e-04,
- -1.0895729064941406e-04}, /* L553 */
-{6.2286615371704102e+00, 2.0572543144226074e-04,
- 1.1920928955078125e-07, -7.5221061706542969e-05,
- -5.7101249694824219e-05}, /* L554 */
-{5.0290861129760742e+00, 1.6644597053527832e-04,
- 1.1920928955078125e-07, -1.9013881683349609e-04,
- -2.6863813400268555e-04}, /* L555 */
-{6.9089517593383789e+00, 2.2900104522705078e-04,
- 1.1920928955078125e-07, -9.8943710327148438e-06,
- 5.9962272644042969e-05}, /* L556 */
-{6.5327863693237305e+00, 2.1708011627197266e-04,
- 1.1920928955078125e-07, 2.0241737365722656e-04,
- -2.4747848510742188e-04}, /* L557 */
-{8.6191844940185547e+00, 2.8681755065917969e-04,
- 1.1920928955078125e-07, 1.0633468627929688e-04,
- -8.1896781921386719e-05}, /* L558 */
-{5.3397679328918457e+00, 1.7794966697692871e-04,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- 1.6331672668457031e-05}, /* L559 */
-{6.8938865661621094e+00, 2.3014843463897705e-04,
- 1.1920928955078125e-07, -7.7605247497558594e-05,
- -3.7550926208496094e-05}, /* L560 */
-{5.0948266983032227e+00, 1.7039477825164795e-04,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- 2.7298927307128906e-05}, /* L561 */
-{6.1974897384643555e+00, 2.0766258239746094e-04,
- 1.1920928955078125e-07, -1.5217065811157227e-04,
- 1.7464160919189453e-04}, /* L562 */
-{6.3236570358276367e+00, 2.1225214004516602e-04,
- 1.1920928955078125e-07, 8.8810920715332031e-05,
- -1.5139579772949219e-05}, /* L563 */
-{7.2903270721435547e+00, 2.4533271789550781e-04,
- 1.1920928955078125e-07, 1.9717216491699219e-04,
- 4.7385692596435547e-04}, /* L564 */
-{5.9787135124206543e+00, 2.0138174295425415e-04,
- 1.1920928955078125e-07, 3.5166740417480469e-05,
- 7.9870223999023438e-05}, /* L565 */
-{6.2727866172790527e+00, 2.1171569824218750e-04,
- 1.1920928955078125e-07, 1.4662742614746094e-05,
- -2.1100044250488281e-05}, /* L566 */
-{5.6863842010498047e+00, 1.9237399101257324e-04,
- 1.1920928955078125e-07, -2.4920701980590820e-04,
- 1.0371208190917969e-04}, /* L567 */
-{6.1569628715515137e+00, 2.0846724510192871e-04,
- 1.1920928955078125e-07, 4.4107437133789062e-05,
- 4.3988227844238281e-05}, /* L568 */
-{7.0370154380798340e+00, 2.3868680000305176e-04,
- 1.1920928955078125e-07, 2.9563903808593750e-05,
- -1.0132789611816406e-05}, /* L569 */
-{5.4385423660278320e+00, 1.8480420112609863e-04,
- 1.1920928955078125e-07, -5.1975250244140625e-05,
- -8.3446502685546875e-07}, /* L570 */
-{7.2417812347412109e+00, 2.4649500846862793e-04,
- 1.1920928955078125e-07, -2.8550624847412109e-05,
- -5.9247016906738281e-05}, /* L571 */
-{8.0656738281250000e+00, 2.7501583099365234e-04,
- 1.1920928955078125e-07, 7.1525573730468750e-06,
- 7.5101852416992188e-06}, /* L572 */
-{6.2234597206115723e+00, 2.1263957023620605e-04,
- 1.1920928955078125e-07, 4.1842460632324219e-05,
- 7.6293945312500000e-06}, /* L573 */
-{6.7974262237548828e+00, 2.3262202739715576e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -1.2934207916259766e-05}, /* L574 */
-{8.5480194091796875e+00, 2.9298663139343262e-04,
- 1.1920928955078125e-07, -3.9100646972656250e-05,
- 1.4305114746093750e-05}, /* L575 */
-{5.9073004722595215e+00, 2.0298361778259277e-04,
- 1.1920928955078125e-07, -5.4240226745605469e-05,
- -4.9054622650146484e-05}, /* L576 */
-{5.4148898124694824e+00, 1.8626451492309570e-04,
- 1.1920928955078125e-07, -4.0650367736816406e-05,
- -5.1558017730712891e-05}, /* L577 */
-{6.4574041366577148e+00, 2.2289156913757324e-04,
- 1.1920928955078125e-07, -5.9247016906738281e-04,
- -3.5023689270019531e-04}, /* L578 */
-{6.5184297561645508e+00, 2.2499263286590576e-04,
- 1.1920928955078125e-07, -5.5551528930664062e-05,
- 3.3378601074218750e-06}, /* L579 */
-{6.2333307266235352e+00, 2.1553039550781250e-04,
- 1.1920928955078125e-07, 2.8133392333984375e-05,
- -1.0007619857788086e-04}, /* L580 */
-{6.3168416023254395e+00, 2.1889805793762207e-04,
- 1.1920928955078125e-07, -7.9393386840820312e-05,
- 1.5270709991455078e-04}, /* L581 */
-{8.2362346649169922e+00, 2.8589367866516113e-04,
- 1.1920928955078125e-07, 3.5595893859863281e-04,
- -5.5193901062011719e-05}, /* L582 */
-{6.1915650367736816e+00, 2.1529197692871094e-04,
- 1.1920928955078125e-07, 3.0636787414550781e-04,
- 1.8393993377685547e-04}, /* L583 */
-{5.2736063003540039e+00, 1.8376111984252930e-04,
- 1.1920928955078125e-07, -9.4175338745117188e-05,
- -4.1419267654418945e-04}, /* L584 */
-{6.4567241668701172e+00, 2.2515654563903809e-04,
- 1.1920928955078125e-07, 3.8623809814453125e-05,
- 1.4305114746093750e-05}, /* L585 */
-{7.7315225601196289e+00, 2.7009844779968262e-04,
- 1.1920928955078125e-07, 1.2040138244628906e-04,
- -2.7716159820556641e-05}, /* L586 */
-{5.4229846000671387e+00, 1.8998980522155762e-04,
- 1.1920928955078125e-07, -3.6185979843139648e-04,
- 2.2280216217041016e-04}, /* L587 */
-{5.8230943679809570e+00, 2.0414590835571289e-04,
- 1.1920928955078125e-07, 7.3552131652832031e-05,
- -5.8948993682861328e-05}, /* L588 */
-{5.9573163986206055e+00, 2.0918250083923340e-04,
- 1.1920928955078125e-07, 7.8320503234863281e-05,
- 9.4532966613769531e-05}, /* L589 */
-{7.0638041496276855e+00, 2.4847686290740967e-04,
- 1.1920928955078125e-07, -1.8489360809326172e-04,
- 7.1525573730468750e-07}, /* L590 */
-{5.7252745628356934e+00, 2.0173192024230957e-04,
- 1.1920928955078125e-07, 7.3671340942382812e-05,
- -1.4007091522216797e-05}, /* L591 */
-{6.2417211532592773e+00, 2.2026896476745605e-04,
- 1.1920928955078125e-07, 6.1154365539550781e-05,
- 3.4570693969726562e-05}, /* L592 */
-{7.4669103622436523e+00, 2.6396103203296661e-04,
- 1.1920928955078125e-07, -7.7486038208007812e-06,
- 1.4781951904296875e-05}, /* L593 */
-{7.0960483551025391e+00, 2.5126338005065918e-04,
- 1.1920928955078125e-07, 4.7445297241210938e-05,
- 1.9431114196777344e-05}, /* L594 */
-{5.6424922943115234e+00, 2.0045042037963867e-04,
- 1.1920928955078125e-07, 6.4408779144287109e-04,
- 7.5984001159667969e-04}, /* L595 */
-{4.8968172073364258e+00, 1.7416477203369141e-04,
- 1.1920928955078125e-07, 2.3424625396728516e-04,
- -3.4344196319580078e-04}, /* L596 */
-{5.9397454261779785e+00, 2.1214783191680908e-04,
- 1.1920928955078125e-07, 1.4681816101074219e-03,
- 8.1062316894531250e-04}, /* L597 */
-{5.6753072738647461e+00, 2.0232796669006348e-04,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 5.6743621826171875e-05}, /* L598 */
-{5.6260824203491211e+00, 2.0089745521545410e-04,
- 1.1920928955078125e-07, 1.7523765563964844e-05,
- 2.1934509277343750e-05}, /* L599 */
-{6.6922821998596191e+00, 2.4655461311340332e-04,
- 1.1920928955078125e-07, -1.1625170707702637e-02,
- -1.2531876564025879e-03}, /* L600 */
-{6.5053558349609375e+00, 2.3305416107177734e-04,
- 1.1920928955078125e-07, 3.1948089599609375e-05,
- 7.6293945312500000e-06}, /* L601 */
-{7.0569224357604980e+00, 2.5328993797302246e-04,
- 1.1920928955078125e-07, -2.3007392883300781e-05,
- 2.2864341735839844e-04}, /* L602 */
-{4.5371122360229492e+00, 1.6769766807556152e-04,
- 1.1920928955078125e-07, 2.3924112319946289e-03,
- -5.4965019226074219e-03}, /* L603 */
-{6.7998681068420410e+00, 2.4572014808654785e-04,
- 1.1920928955078125e-07, 1.4474391937255859e-03,
- -1.1771917343139648e-04}, /* L604 */
-{6.5823335647583008e+00, 2.3740530014038086e-04,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -2.1219253540039062e-05}, /* L605 */
-{7.1935143470764160e+00, 2.6038289070129395e-04,
- 1.1920928955078125e-07, 6.0641765594482422e-04,
- -5.4687261581420898e-04}, /* L606 */
-{7.8286204338073730e+00, 2.8327107429504395e-04,
- 1.1920928955078125e-07, 4.9352645874023438e-05,
- 3.5762786865234375e-07}, /* L607 */
-{8.0615482330322266e+00, 2.9224157333374023e-04,
- 1.1920928955078125e-07, 4.9829483032226562e-05,
- -2.0563602447509766e-05}, /* L608 */
-{9.6204042434692383e+00, 3.4928321838378906e-04,
- 1.1920928955078125e-07, 7.9035758972167969e-05,
- -1.3411045074462891e-05}, /* L609 */
-{7.3300986289978027e+00, 2.6655197143554688e-04,
- 1.1920928955078125e-07, 4.0173530578613281e-05,
- 2.2649765014648438e-05}, /* L610 */
-{7.9403738975524902e+00, 2.8921663761138916e-04,
- 1.1920928955078125e-07, -1.4603137969970703e-05,
- 2.3841857910156250e-06}, /* L611 */
-{7.4271435737609863e+00, 2.7120113372802734e-04,
- 1.1920928955078125e-07, 2.7859210968017578e-04,
- 3.3378601074218750e-06}, /* L612 */
-{6.7500357627868652e+00, 2.4700164794921875e-04,
- 1.1920928955078125e-07, -9.3638896942138672e-04,
- -8.2492828369140625e-04}, /* L613 */
-{9.8183164596557617e+00, 3.5950541496276855e-04,
- 1.1920928955078125e-07, -4.0113925933837891e-05,
- -4.2259693145751953e-05}, /* L614 */
-{6.7307910919189453e+00, 2.4677813053131104e-04,
- 1.1920928955078125e-07, 2.4437904357910156e-05,
- -2.5987625122070312e-05}, /* L615 */
-{4.7555990219116211e+00, 1.7473101615905762e-04,
- 1.1920928955078125e-07, -2.5111436843872070e-04,
- -2.6381015777587891e-04}, /* L616 */
-{6.3811101913452148e+00, 2.3475289344787598e-04,
- 1.1920928955078125e-07, -1.7058849334716797e-04,
- -5.4955482482910156e-05}, /* L617 */
-{7.5103497505187988e+00, 2.7687847614288330e-04,
- 1.1920928955078125e-07, 1.2290477752685547e-04,
- -8.9824199676513672e-05}, /* L618 */
-{8.4518814086914062e+00, 3.1214952468872070e-04,
- 1.1920928955078125e-07, 8.5711479187011719e-05,
- 2.5045871734619141e-04}, /* L619 */
-{5.8187646865844727e+00, 2.1523237228393555e-04,
- 1.1920928955078125e-07, 2.2828578948974609e-04,
- 2.9480457305908203e-04}, /* L620 */
-{7.1660003662109375e+00, 2.6533752679824829e-04,
- 1.1920928955078125e-07, -3.8027763366699219e-05,
- -1.2266635894775391e-04}, /* L621 */
-{5.5366930961608887e+00, 2.1879374980926514e-04,
- 1.1920928955078125e-07, -1.7625570297241211e-02,
- 1.5368103981018066e-02}, /* L622 */
-{6.2345371246337891e+00, 2.3172795772552490e-04,
- 1.1920928955078125e-07, -3.7008523941040039e-04,
- 2.0229816436767578e-04}, /* L623 */
-{7.3452577590942383e+00, 2.7322769165039062e-04,
- 1.1920928955078125e-07, -4.9650669097900391e-05,
- 2.1576881408691406e-05}, /* L624 */
-{7.4412226676940918e+00, 2.7725100517272949e-04,
- 1.1920928955078125e-07, 7.4982643127441406e-05,
- 1.7046928405761719e-05}, /* L625 */
-{7.0380654335021973e+00, 2.6267766952514648e-04,
- 1.1920928955078125e-07, 1.2981891632080078e-04,
- -4.5001506805419922e-05}, /* L626 */
-{7.1937332153320312e+00, 2.6947259902954102e-04,
- 1.1920928955078125e-07, 1.1336803436279297e-04,
- -1.7517805099487305e-04}, /* L627 */
-{6.8750634193420410e+00, 2.5749206542968750e-04,
- 1.1920928955078125e-07, 2.1457672119140625e-05,
- -2.2584199905395508e-04}, /* L628 */
-{6.8809895515441895e+00, 2.5838613510131836e-04,
- 1.1920928955078125e-07, 6.8664550781250000e-05,
- -2.0980834960937500e-05}, /* L629 */
-{8.5107498168945312e+00, 3.1990557909011841e-04,
- 1.1920928955078125e-07, 2.4259090423583984e-04,
- 1.7261505126953125e-04}, /* L630 */
-{6.0600571632385254e+00, 2.2795796394348145e-04,
- 1.1920928955078125e-07, 1.4185905456542969e-05,
- -3.6120414733886719e-05}, /* L631 */
-{6.8029623031616211e+00, 2.5655329227447510e-04,
- 1.1920928955078125e-07, 5.6529045104980469e-04,
- -4.7385692596435547e-05}, /* L632 */
-{5.2181282043457031e+00, 1.9690394401550293e-04,
- 1.1920928955078125e-07, 3.0279159545898438e-05,
- 7.0095062255859375e-05}, /* L633 */
-{6.1653513908386230e+00, 2.3306161165237427e-04,
- 1.1920928955078125e-07, -1.2719631195068359e-04,
- -3.2901763916015625e-05}, /* L634 */
-{1.0090007781982422e+01, 3.8199126720428467e-04,
- 1.1920928955078125e-07, 3.7312507629394531e-05,
- 1.2767314910888672e-04}, /* L635 */
-{6.9291019439697266e+00, 2.6278570294380188e-04,
- 1.1920928955078125e-07, 5.9485435485839844e-05,
- -1.1008977890014648e-04}, /* L636 */
-{7.0602102279663086e+00, 2.6810169219970703e-04,
- 1.1920928955078125e-07, -4.6074390411376953e-05,
- -4.3809413909912109e-05}, /* L637 */
-{5.7378449440002441e+00, 2.1827220916748047e-04,
- 1.1920928955078125e-07, 4.6968460083007812e-05,
- 4.3034553527832031e-05}, /* L638 */
-{6.3211236000061035e+00, 2.4092197418212891e-04,
- 1.1920928955078125e-07, 3.6644935607910156e-04,
- -9.3698501586914062e-05}, /* L639 */
-{7.8079681396484375e+00, 2.9809400439262390e-04,
- 1.1920928955078125e-07, -6.8843364715576172e-05,
- -1.3387203216552734e-04}, /* L640 */
-{6.9819111824035645e+00, 2.6679039001464844e-04,
- 1.1920928955078125e-07, 6.3061714172363281e-05,
- -3.5345554351806641e-05}, /* L641 */
-{7.8021092414855957e+00, 2.9870867729187012e-04,
- 1.1920928955078125e-07, 1.8179416656494141e-04,
- 3.9458274841308594e-04}, /* L642 */
-{6.1449055671691895e+00, 2.3555848747491837e-04,
- 1.1920928955078125e-07, 9.8943710327148438e-06,
- 6.9379806518554688e-05}, /* L643 */
-{1.0161928176879883e+01, 3.9014220237731934e-04,
- 1.1920928955078125e-07, -3.8683414459228516e-05,
- 4.2796134948730469e-05}, /* L644 */
-{8.9145879745483398e+00, 3.4275650978088379e-04,
- 1.1920928955078125e-07, -5.4895877838134766e-05,
- -4.2319297790527344e-05}, /* L645 */
-{7.7153244018554688e+00, 2.9712915420532227e-04,
- 1.1920928955078125e-07, 4.7326087951660156e-05,
- -6.8068504333496094e-05}, /* L646 */
-{6.5894141197204590e+00, 2.5421380996704102e-04,
- 1.1920928955078125e-07, 1.1301040649414062e-04,
- -1.0764598846435547e-04}, /* L647 */
-{7.0353183746337891e+00, 2.7181208133697510e-04,
- 1.1920928955078125e-07, 3.7670135498046875e-05,
- -6.5445899963378906e-05}, /* L648 */
-{8.1330633163452148e+00, 3.1466782093048096e-04,
- 1.1920928955078125e-07, 2.8848648071289062e-05,
- 2.3245811462402344e-05}, /* L649 */
-{8.3618154525756836e+00, 3.2401084899902344e-04,
- 1.1920928955078125e-07, 3.7431716918945312e-05,
- -8.1777572631835938e-05}, /* L650 */
-{6.2441129684448242e+00, 2.4238228797912598e-04,
- 1.1920928955078125e-07, 1.8000602722167969e-05,
- -1.7464160919189453e-04}, /* L651 */
-{6.4863290786743164e+00, 2.5215744972229004e-04,
- 1.1920928955078125e-07, 1.9526481628417969e-04,
- 5.4717063903808594e-05}, /* L652 */
-{9.9639158248901367e+00, 3.8787722587585449e-04,
- 1.1920928955078125e-07, 5.3524971008300781e-05,
- 2.5868415832519531e-05}, /* L653 */
-{9.3870038986206055e+00, 3.6612153053283691e-04,
- 1.1920928955078125e-07, -1.0466575622558594e-04,
- -1.2952089309692383e-04}, /* L654 */
-{6.7999768257141113e+00, 2.6577711105346680e-04,
- 1.1920928955078125e-07, 2.5451183319091797e-04,
- 1.3470649719238281e-04}, /* L655 */
-{6.1233639717102051e+00, 2.3949146270751953e-04,
- 1.1920928955078125e-07, 1.1324882507324219e-04,
- 2.3841857910156250e-06}, /* L656 */
-{6.0820579528808594e+00, 2.3822486400604248e-04,
- 1.1920928955078125e-07, -4.8398971557617188e-05,
- 6.0796737670898438e-06}, /* L657 */
-{9.0576658248901367e+00, 3.5536289215087891e-04,
- 1.1920928955078125e-07, -7.5221061706542969e-05,
- -1.7285346984863281e-06}, /* L658 */
-{7.4212503433227539e+00, 2.9158592224121094e-04,
- 1.1920928955078125e-07, -6.3002109527587891e-05,
- -2.9683113098144531e-05}, /* L659 */
-{8.0697708129882812e+00, 3.1752884387969971e-04,
- 1.1920928955078125e-07, 4.0650367736816406e-05,
- -9.5486640930175781e-05}, /* L660 */
-{8.6036615371704102e+00, 3.3923238515853882e-04,
- 1.1920928955078125e-07, 1.0752677917480469e-04,
- -2.2768974304199219e-05}, /* L661 */
-{7.3175549507141113e+00, 2.8893351554870605e-04,
- 1.1920928955078125e-07, -2.6404857635498047e-04,
- -8.4400177001953125e-05}, /* L662 */
-{6.9639835357666016e+00, 2.7562677860260010e-04,
- 1.1920928955078125e-07, 6.4110755920410156e-04,
- 5.0687789916992188e-04}, /* L663 */
-{7.1046333312988281e+00, 2.8124451637268066e-04,
- 1.1920928955078125e-07, -2.9444694519042969e-05,
- -7.5519084930419922e-05}, /* L664 */
-{6.2037110328674316e+00, 2.4593994021415710e-04,
- 1.1920928955078125e-07, 4.6372413635253906e-05,
- -7.0929527282714844e-06}, /* L665 */
-{6.9838414192199707e+00, 2.7740001678466797e-04,
- 1.1920928955078125e-07, 8.9287757873535156e-05,
- 3.3235549926757812e-04}, /* L666 */
-{7.0547490119934082e+00, 2.8049945831298828e-04,
- 1.1920928955078125e-07, 7.6532363891601562e-05,
- 3.9935111999511719e-05}, /* L667 */
-{7.6021246910095215e+00, 3.0377507209777832e-04,
- 1.1920928955078125e-07, 1.5377998352050781e-05,
- 1.2140274047851562e-03}, /* L668 */
-{6.1794114112854004e+00, 2.4646520614624023e-04,
- 1.1920928955078125e-07, 9.8705291748046875e-05,
- 3.3259391784667969e-05}, /* L669 */
-{6.2242946624755859e+00, 2.4864077568054199e-04,
- 1.1920928955078125e-07, 1.7857551574707031e-04,
- 1.3840198516845703e-04}, /* L670 */
-{5.7655587196350098e+00, 2.3227930068969727e-04,
- 1.1920928955078125e-07, 1.0049343109130859e-04,
- -1.5097856521606445e-03}, /* L671 */
-{8.8375940322875977e+00, 3.5402178764343262e-04,
- 1.1920928955078125e-07, 4.1604042053222656e-05,
- -5.6207180023193359e-05}, /* L672 */
-{7.7568073272705078e+00, 3.1130015850067139e-04,
- 1.1920928955078125e-07, 1.7762184143066406e-04,
- -1.9609928131103516e-05}, /* L673 */
-{9.7576847076416016e+00, 3.9217248558998108e-04,
- 1.1920928955078125e-07, -1.4537572860717773e-04,
- 3.0040740966796875e-05}, /* L674 */
-{8.0025911331176758e+00, 3.2210350036621094e-04,
- 1.1920928955078125e-07, -9.9301338195800781e-05,
- 1.8465518951416016e-04}, /* L675 */
-{6.9895982742309570e+00, 2.8181076049804688e-04,
- 1.1920928955078125e-07, 1.7380714416503906e-04,
- -3.7729740142822266e-05}, /* L676 */
-{6.7764139175415039e+00, 2.7349218726158142e-04,
- 1.1920928955078125e-07, -5.0902366638183594e-05,
- -5.1200389862060547e-05}, /* L677 */
-{8.2010126113891602e+00, 3.3193826675415039e-04,
- 1.1920928955078125e-07, -4.7045946121215820e-04,
- 2.1946430206298828e-04}, /* L678 */
-{6.7032175064086914e+00, 2.7168542146682739e-04,
- 1.1920928955078125e-07, 2.4592876434326172e-04,
- 4.0984153747558594e-04}, /* L679 */
-{9.0340356826782227e+00, 3.6758184432983398e-04,
- 1.1920928955078125e-07, 4.5371055603027344e-04,
- 2.2888183593750000e-04}, /* L680 */
-{8.2917566299438477e+00, 3.3694505691528320e-04,
- 1.1920928955078125e-07, 5.8507919311523438e-04,
- 6.0081481933593750e-05}, /* L681 */
-{6.9245390892028809e+00, 2.8151273727416992e-04,
- 1.1920928955078125e-07, 6.6757202148437500e-05,
- 1.5497207641601562e-05}, /* L682 */
-{7.0045652389526367e+00, 2.8522312641143799e-04,
- 1.1920928955078125e-07, -7.9989433288574219e-05,
- 1.9192695617675781e-05}, /* L683 */
-{7.0611886978149414e+00, 2.8792023658752441e-04,
- 1.1920928955078125e-07, -4.8160552978515625e-05,
- -1.1920928955078125e-05}, /* L684 */
-{7.6420421600341797e+00, 3.1211972236633301e-04,
- 1.1920928955078125e-07, -1.7666816711425781e-04,
- -5.8889389038085938e-05}, /* L685 */
-{6.6049008369445801e+00, 2.7024745941162109e-04,
- 1.1920928955078125e-07, -1.5711784362792969e-04,
- 2.9897689819335938e-04}, /* L686 */
-{6.9488863945007324e+00, 2.8499960899353027e-04,
- 1.1920928955078125e-07, 7.9393386840820312e-04,
- -3.0636787414550781e-05}, /* L687 */
-{1.0665770530700684e+01, 4.3746829032897949e-04,
- 1.1920928955078125e-07, -5.7220458984375000e-05,
- -1.0079145431518555e-04}, /* L688 */
-{7.7958474159240723e+00, 3.2046437263488770e-04,
- 1.1920928955078125e-07, 2.7513504028320312e-04,
- 6.6280364990234375e-05}, /* L689 */
-{7.7893686294555664e+00, 3.2049417495727539e-04,
- 1.1920928955078125e-07, 2.3388862609863281e-04,
- 1.8620491027832031e-04}, /* L690 */
-{9.5045824050903320e+00, 3.9159506559371948e-04,
- 1.1920928955078125e-07, 2.5296211242675781e-04,
- 6.9856643676757812e-05}, /* L691 */
-{9.0786542892456055e+00, 3.7458539009094238e-04,
- 1.1920928955078125e-07, -4.6312808990478516e-05,
- 1.0275840759277344e-04}, /* L692 */
-{7.8684535026550293e+00, 3.2514333724975586e-04,
- 1.1920928955078125e-07, 5.7220458984375000e-05,
- 2.7656555175781250e-05}, /* L693 */
-{6.7370467185974121e+00, 2.7900934219360352e-04,
- 1.1920928955078125e-07, -5.7399272918701172e-04,
- -3.8635730743408203e-04}, /* L694 */
-{8.5003919601440430e+00, 3.5217404365539551e-04,
- 1.1920928955078125e-07, 3.8266181945800781e-05,
- 3.5405158996582031e-05}, /* L695 */
-{9.9959678649902344e+00, 4.1472911834716797e-04,
- 1.1920928955078125e-07, -6.5326690673828125e-05,
- 4.1007995605468750e-05}, /* L696 */
-{8.0143957138061523e+00, 3.3304840326309204e-04,
- 1.1920928955078125e-07, -7.7247619628906250e-05,
- -1.8513202667236328e-04}, /* L697 */
-{7.2788882255554199e+00, 3.0304491519927979e-04,
- 1.1920928955078125e-07, 2.7251243591308594e-04,
- 4.3106079101562500e-04}, /* L698 */
-{6.6061153411865234e+00, 2.7544796466827393e-04,
- 1.1920928955078125e-07, -4.8518180847167969e-05,
- -3.0374526977539062e-04}, /* L699 */
-{8.7822275161743164e+00, 3.6653876304626465e-04,
- 1.1920928955078125e-07, -9.5963478088378906e-05,
- 9.7274780273437500e-05}, /* L700 */
-{8.6333055496215820e+00, 3.6082416772842407e-04,
- 1.1920928955078125e-07, 1.4352798461914062e-04,
- 8.7141990661621094e-05}, /* L701 */
-{8.0853452682495117e+00, 3.3844262361526489e-04,
- 1.1920928955078125e-07, 4.9948692321777344e-05,
- 2.0492076873779297e-04}, /* L702 */
-{8.5849742889404297e+00, 3.5996735095977783e-04,
- 1.1920928955078125e-07, -5.4180622100830078e-05,
- 2.7418136596679688e-04}, /* L703 */
-{6.3390564918518066e+00, 2.6606023311614990e-04,
- 1.1920928955078125e-07, -2.1696090698242188e-05,
- 5.8770179748535156e-05}, /* L704 */
-{5.0792293548583984e+00, 2.1347403526306152e-04,
- 1.1920928955078125e-07, -2.3186206817626953e-05,
- -2.5570392608642578e-05}, /* L705 */
-{7.0104937553405762e+00, 2.9507279396057129e-04,
- 1.1920928955078125e-07, -3.8564205169677734e-05,
- 3.5643577575683594e-05}, /* L706 */
-{7.3808908462524414e+00, 3.1113624572753906e-04,
- 1.1920928955078125e-07, 5.1617622375488281e-05,
- -2.6941299438476562e-05}, /* L707 */
-{8.7089757919311523e+00, 3.6770105361938477e-04,
- 1.1920928955078125e-07, 1.6057491302490234e-04,
- 1.0001659393310547e-04}, /* L708 */
-{9.2227993011474609e+00, 3.8978457450866699e-04,
- 1.1920928955078125e-07, -1.1324882507324219e-05,
- -6.4373016357421875e-06}, /* L709 */
-{6.0974440574645996e+00, 2.5814771652221680e-04,
- 1.1920928955078125e-07, 1.6283988952636719e-04,
- 1.8727779388427734e-04}, /* L710 */
-{6.7104215621948242e+00, 2.8456747531890869e-04,
- 1.1920928955078125e-07, 2.9897689819335938e-04,
- -5.5432319641113281e-06}, /* L711 */
-{7.5995836257934570e+00, 3.2255426049232483e-04,
- 1.1920928955078125e-07, 6.2346458435058594e-05,
- 2.9325485229492188e-05}, /* L712 */
-{6.2053794860839844e+00, 2.6383996009826660e-04,
- 1.1920928955078125e-07, -2.0682811737060547e-05,
- 5.5551528930664062e-05}, /* L713 */
-{5.9159865379333496e+00, 2.5341659784317017e-04,
- 1.1920928955078125e-07, 6.1547756195068359e-04,
- -1.6034841537475586e-03}, /* L714 */
-{8.8677330017089844e+00, 3.7811696529388428e-04,
- 1.1920928955078125e-07, 5.0663948059082031e-05,
- -5.5730342864990234e-05}, /* L715 */
-{8.0554504394531250e+00, 3.4391134977340698e-04,
- 1.1920928955078125e-07, -5.4299831390380859e-05,
- -9.4354152679443359e-05}, /* L716 */
-{1.0790423393249512e+01, 4.6125054359436035e-04,
- 1.1920928955078125e-07, 8.6426734924316406e-05,
- -4.7028064727783203e-05}, /* L717 */
-{6.2182388305664062e+00, 2.6617571711540222e-04,
- 1.1920928955078125e-07, 3.4451484680175781e-05,
- -1.6212463378906250e-05}, /* L718 */
-{7.1343040466308594e+00, 3.0592083930969238e-04,
- 1.1920928955078125e-07, 1.0347366333007812e-04,
- 7.2956085205078125e-05}, /* L719 */
-{8.2860698699951172e+00, 3.5569071769714355e-04,
- 1.1920928955078125e-07, -6.4790248870849609e-05,
- -1.8763542175292969e-04}, /* L720 */
-{7.1563701629638672e+00, 3.0827522277832031e-04,
- 1.1920928955078125e-07, -5.4556131362915039e-04,
- -5.7113170623779297e-04}, /* L721 */
-{5.2885499000549316e+00, 2.2763013839721680e-04,
- 1.1920928955078125e-07, -4.7683715820312500e-05,
- 9.2983245849609375e-06}, /* L722 */
-{8.4282093048095703e+00, 3.6332011222839355e-04,
- 1.1920928955078125e-07, 1.3232231140136719e-05,
- -1.2278556823730469e-05}, /* L723 */
-{6.7335762977600098e+00, 2.9063224792480469e-04,
- 1.1920928955078125e-07, -1.6987323760986328e-05,
- 2.9802322387695312e-06}, /* L724 */
-{6.8393588066101074e+00, 2.9566884040832520e-04,
- 1.1920928955078125e-07, -4.4703483581542969e-06,
- 1.3363361358642578e-04}, /* L725 */
-{8.1916122436523438e+00, 3.5479664802551270e-04,
- 1.1920928955078125e-07, -2.8687715530395508e-04,
- -1.0555982589721680e-04}, /* L726 */
-{1.0057626724243164e+01, 4.3618679046630859e-04,
- 1.1920928955078125e-07, 9.0599060058593750e-05,
- 1.3256072998046875e-04}, /* L727 */
-{8.2804508209228516e+00, 3.5938620567321777e-04,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- 1.3113021850585938e-05}, /* L728 */
-{8.9867591857910156e+00, 3.9061903953552246e-04,
- 1.1920928955078125e-07, -1.5974044799804688e-04,
- 7.6770782470703125e-05}, /* L729 */
-{8.9876222610473633e+00, 3.9119273424148560e-04,
- 1.1920928955078125e-07, 7.4028968811035156e-05,
- 3.7908554077148438e-05}, /* L730 */
-{8.2015705108642578e+00, 3.5753846168518066e-04,
- 1.1920928955078125e-07, 3.5119056701660156e-04,
- -1.9150972366333008e-04}, /* L731 */
-{6.7000770568847656e+00, 2.9262900352478027e-04,
- 1.1920928955078125e-07, 2.4139881134033203e-04,
- 9.8347663879394531e-05}, /* L732 */
-{9.7955179214477539e+00, 4.2808055877685547e-04,
- 1.1920928955078125e-07, -1.5318393707275391e-05,
- -1.2934207916259766e-04}, /* L733 */
-{5.7265934944152832e+00, 2.5065243244171143e-04,
- 1.1920928955078125e-07, -1.1503696441650391e-05,
- 3.4308433532714844e-04}, /* L734 */
-{7.8785099983215332e+00, 3.4585595130920410e-04,
- 1.1920928955078125e-07, 4.4322013854980469e-04,
- 5.0961971282958984e-04}, /* L735 */
-{8.3072977066040039e+00, 3.6464631557464600e-04,
- 1.1920928955078125e-07, -1.1330842971801758e-04,
- 7.0571899414062500e-05}, /* L736 */
-{9.4814682006835938e+00, 4.1818618774414062e-04,
- 1.1920928955078125e-07, -1.0137557983398438e-03,
- 1.1575222015380859e-04}, /* L737 */
-{1.1035604476928711e+01, 4.8596411943435669e-04,
- 1.1920928955078125e-07, 7.9393386840820312e-05,
- -2.3007392883300781e-05}, /* L738 */
-{8.7980251312255859e+00, 3.8766860961914062e-04,
- 1.1920928955078125e-07, 8.8095664978027344e-05,
- -5.7041645050048828e-05}, /* L739 */
-{7.5682830810546875e+00, 3.3408403396606445e-04,
- 1.1920928955078125e-07, -1.8030405044555664e-04,
- -2.3674964904785156e-04}, /* L740 */
-{8.8847351074218750e+00, 3.9251148700714111e-04,
- 1.1920928955078125e-07, 9.1910362243652344e-05,
- 7.5340270996093750e-05}, /* L741 */
-{7.2990503311157227e+00, 3.2299757003784180e-04,
- 1.1920928955078125e-07, -1.4030933380126953e-04,
- -7.5340270996093750e-05}, /* L742 */
-{6.4574847221374512e+00, 2.8865039348602295e-04,
- 1.1920928955078125e-07, -9.6201896667480469e-04,
- 3.2831430435180664e-03}, /* L743 */
-{6.7214074134826660e+00, 2.9821693897247314e-04,
- 1.1920928955078125e-07, -1.7935037612915039e-04,
- -1.3703107833862305e-04}, /* L744 */
-{9.5222377777099609e+00, 4.2298436164855957e-04,
- 1.1920928955078125e-07, -1.4030933380126953e-04,
- 3.9100646972656250e-05}, /* L745 */
-{7.9609889984130859e+00, 3.5411864519119263e-04,
- 1.1920928955078125e-07, -5.6684017181396484e-05,
- -1.7893314361572266e-04}, /* L746 */
-{6.9838838577270508e+00, 3.1105428934097290e-04,
- 1.1920928955078125e-07, -2.4676322937011719e-05,
- -1.9609928131103516e-04}, /* L747 */
-{7.3962712287902832e+00, 3.3020973205566406e-04,
- 1.1920928955078125e-07, -3.0791759490966797e-04,
- 2.6309490203857422e-04}, /* L748 */
-{9.0633993148803711e+00, 4.0468573570251465e-04,
- 1.1920928955078125e-07, 1.0490417480468750e-05,
- -6.2465667724609375e-05}, /* L749 */
-{1.0837558746337891e+01, 4.8499554395675659e-04,
- 1.1920928955078125e-07, 1.2314319610595703e-04,
- 2.5510787963867188e-04}, /* L750 */
-{1.0402518272399902e+01, 4.6579353511333466e-04,
- 1.1920928955078125e-07, 1.8239021301269531e-05,
- -1.1014938354492188e-04}, /* L751 */
-{7.7388896942138672e+00, 3.4693628549575806e-04,
- 1.1920928955078125e-07, -8.3804130554199219e-05,
- -1.8954277038574219e-05}, /* L752 */
-{7.5939197540283203e+00, 3.4110248088836670e-04,
- 1.1920928955078125e-07, 2.8228759765625000e-04,
- -4.9948692321777344e-05}, /* L753 */
-{8.7097263336181641e+00, 3.9178133010864258e-04,
- 1.1920928955078125e-07, -5.1170587539672852e-04,
- -1.4674663543701172e-04}, /* L754 */
-{9.0702714920043945e+00, 4.0833652019500732e-04,
- 1.1920928955078125e-07, 4.9591064453125000e-05,
- 1.4781951904296875e-05}, /* L755 */
-{8.1227064132690430e+00, 3.6606192588806152e-04,
- 1.1920928955078125e-07, -8.7976455688476562e-05,
- 1.0490417480468750e-05}, /* L756 */
-{7.6730532646179199e+00, 3.4640729427337646e-04,
- 1.1920928955078125e-07, 2.8252601623535156e-05,
- -3.6835670471191406e-05}, /* L757 */
-{1.0134935379028320e+01, 4.5846402645111084e-04,
- 1.1920928955078125e-07, 1.4901161193847656e-04,
- 1.9538402557373047e-04}, /* L758 */
-{6.9048609733581543e+00, 3.1314790248870850e-04,
- 1.1920928955078125e-07, 1.2874603271484375e-04,
- -6.2829256057739258e-04}, /* L759 */
-{7.7992930412292480e+00, 3.5336613655090332e-04,
- 1.1920928955078125e-07, -3.6776065826416016e-05,
- 5.3644180297851562e-06}, /* L760 */
-{8.5027685165405273e+00, 3.8606673479080200e-04,
- 1.1920928955078125e-07, 1.0454654693603516e-04,
- -1.2439489364624023e-04}, /* L761 */
-{7.6791214942932129e+00, 3.4906715154647827e-04,
- 1.1920928955078125e-07, -4.1508674621582031e-04,
- 6.1392784118652344e-05}, /* L762 */
-{6.8766622543334961e+00, 3.1281914561986923e-04,
- 1.1920928955078125e-07, -5.1379203796386719e-05,
- 2.2649765014648438e-06}, /* L763 */
-{8.6156454086303711e+00, 3.9255619049072266e-04,
- 1.1920928955078125e-07, -5.2154064178466797e-05,
- 6.0558319091796875e-05}, /* L764 */
-{8.3844251632690430e+00, 3.8307532668113708e-04,
- 1.1920928955078125e-07, -7.1823596954345703e-05,
- 2.1934509277343750e-04}, /* L765 */
-{6.3979949951171875e+00, 2.9218196868896484e-04,
- 1.1920928955078125e-07, -1.1163949966430664e-04,
- 5.6862831115722656e-05}, /* L766 */
-{9.9218645095825195e+00, 4.5377016067504883e-04,
- 1.1920928955078125e-07, -1.6385316848754883e-04,
- -1.5318393707275391e-05}, /* L767 */
-{7.8084173202514648e+00, 3.5759806632995605e-04,
- 1.1920928955078125e-07, -5.7876110076904297e-05,
- 2.4807453155517578e-04}, /* L768 */
-{1.1044349670410156e+01, 5.0637871026992798e-04,
- 1.1920928955078125e-07, 8.8334083557128906e-05,
- 1.5461444854736328e-04}, /* L769 */
-{8.1790714263916016e+00, 3.7562102079391479e-04,
- 1.1920928955078125e-07, 1.3315677642822266e-04,
- 2.4938583374023438e-04}, /* L770 */
-{9.6252794265747070e+00, 4.4268369674682617e-04,
- 1.1920928955078125e-07, -3.5345554351806641e-04,
- 1.5604496002197266e-04}, /* L771 */
-{6.8106646537780762e+00, 3.1343102455139160e-04,
- 1.1920928955078125e-07, -2.6822090148925781e-05,
- 1.6450881958007812e-05}, /* L772 */
-{6.2729587554931641e+00, 2.8958916664123535e-04,
- 1.1920928955078125e-07, 7.2836875915527344e-04,
- -7.8749656677246094e-04}, /* L773 */
-{8.6461124420166016e+00, 3.9894878864288330e-04,
- 1.1920928955078125e-07, -2.0742416381835938e-05,
- -6.7949295043945312e-06}, /* L774 */
-{9.8674850463867188e+00, 4.5603513717651367e-04,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- -1.0609626770019531e-05}, /* L775 */
-{7.4345932006835938e+00, 3.4393370151519775e-04,
- 1.1920928955078125e-07, -1.0955333709716797e-04,
- 1.7285346984863281e-05}, /* L776 */
-{7.0629544258117676e+00, 3.2723508775234222e-04,
- 1.1920928955078125e-07, 8.9287757873535156e-05,
- 3.0994415283203125e-06}, /* L777 */
-{8.3878841400146484e+00, 3.8927793502807617e-04,
- 1.1920928955078125e-07, -1.9806623458862305e-04,
- 1.0406970977783203e-04}, /* L778 */
-{8.5910758972167969e+00, 3.9899349212646484e-04,
- 1.1920928955078125e-07, 2.4676322937011719e-05,
- -1.4674663543701172e-04}, /* L779 */
-{9.8810768127441406e+00, 4.5949220657348633e-04,
- 1.1920928955078125e-07, -6.0796737670898438e-06,
- 8.2492828369140625e-05}, /* L780 */
-{8.6952352523803711e+00, 4.0529668331146240e-04,
- 1.1920928955078125e-07, 4.4715404510498047e-04,
- 9.1743469238281250e-04}, /* L781 */
-{7.7183184623718262e+00, 3.6001950502395630e-04,
- 1.1920928955078125e-07, 2.0325183868408203e-04,
- -3.1840801239013672e-04}, /* L782 */
-{7.5804996490478516e+00, 3.5391002893447876e-04,
- 1.1920928955078125e-07, 1.0573863983154297e-04,
- -7.9572200775146484e-05}, /* L783 */
-{6.8012475967407227e+00, 3.1787157058715820e-04,
- 1.1920928955078125e-07, -1.8179416656494141e-05,
- 5.2571296691894531e-05}, /* L784 */
-{8.8549165725708008e+00, 4.1441619396209717e-04,
- 1.1920928955078125e-07, 4.9233436584472656e-05,
- -2.3066997528076172e-05}, /* L785 */
-{6.8329825401306152e+00, 3.2022595405578613e-04,
- 1.1920928955078125e-07, -5.8650970458984375e-05,
- -4.7564506530761719e-05}, /* L786 */
-{7.3620939254760742e+00, 3.4543126821517944e-04,
- 1.1920928955078125e-07, -1.4162063598632812e-04,
- -9.9122524261474609e-05}, /* L787 */
-{8.0195131301879883e+00, 3.7685036659240723e-04,
- 1.1920928955078125e-07, 6.4969062805175781e-05,
- -2.8634071350097656e-04}, /* L788 */
-{9.8849315643310547e+00, 4.6503543853759766e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 3.6239624023437500e-05}, /* L789 */
-{8.1383466720581055e+00, 3.8349255919456482e-04,
- 1.1920928955078125e-07, 2.3734569549560547e-04,
- 6.3419342041015625e-05}, /* L790 */
-{9.7907018661499023e+00, 4.6168267726898193e-04,
- 1.1920928955078125e-07, -4.4107437133789062e-05,
- 6.5207481384277344e-05}, /* L791 */
-{9.1269817352294922e+00, 4.3196603655815125e-04,
- 1.1920928955078125e-07, -6.7645311355590820e-04,
- 2.1386146545410156e-04}, /* L792 */
-{7.6783223152160645e+00, 3.6326050758361816e-04,
- 1.1920928955078125e-07, 1.8489360809326172e-04,
- 7.9631805419921875e-05}, /* L793 */
-{9.3443641662597656e+00, 4.4241547584533691e-04,
- 1.1920928955078125e-07, -5.0187110900878906e-05,
- -1.0228157043457031e-04}, /* L794 */
-{9.5055665969848633e+00, 4.5075267553329468e-04,
- 1.1920928955078125e-07, -2.6655197143554688e-04,
- 4.0817260742187500e-04}, /* L795 */
-{8.1196222305297852e+00, 3.8543343544006348e-04,
- 1.1920928955078125e-07, -1.6868114471435547e-05,
- -1.0025501251220703e-04}, /* L796 */
-{8.9027862548828125e+00, 4.2298436164855957e-04,
- 1.1920928955078125e-07, -5.1498413085937500e-05,
- -3.4749507904052734e-05}, /* L797 */
-{1.0113772392272949e+01, 4.8115849494934082e-04,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- 5.1379203796386719e-05}, /* L798 */
-{7.7061901092529297e+00, 3.6761164665222168e-04,
- 1.1920928955078125e-07, -5.0371885299682617e-04,
- 1.3732910156250000e-04}, /* L799 */
-{7.1807823181152344e+00, 3.4257769584655762e-04,
- 1.1920928955078125e-07, -3.8337707519531250e-04,
- 8.9764595031738281e-05}, /* L800 */
-{1.0569493293762207e+01, 5.0705671310424805e-04,
- 1.1920928955078125e-07, -1.3415813446044922e-03,
- 8.9073181152343750e-04}, /* L801 */
-{8.6481199264526367e+00, 4.1349232196807861e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-05,
- 6.3896179199218750e-05}, /* L802 */
-{8.8410148620605469e+00, 4.2328238487243652e-04,
- 1.1920928955078125e-07, -1.1116266250610352e-04,
- -1.3625621795654297e-04}, /* L803 */
-{7.7730994224548340e+00, 3.7264823913574219e-04,
- 1.1920928955078125e-07, -9.4771385192871094e-06,
- 6.9260597229003906e-05}, /* L804 */
-{9.7848482131958008e+00, 4.6965479850769043e-04,
- 1.1920928955078125e-07, -5.4001808166503906e-05,
- -1.9192695617675781e-05}, /* L805 */
-{9.9374942779541016e+00, 4.7755241394042969e-04,
- 1.1920928955078125e-07, 6.3657760620117188e-05,
- 6.7949295043945312e-05}, /* L806 */
-{8.1404647827148438e+00, 3.9166212081909180e-04,
- 1.1920928955078125e-07, 1.5950202941894531e-04,
- 2.5749206542968750e-05}, /* L807 */
-{7.8507919311523438e+00, 3.7817656993865967e-04,
- 1.1920928955078125e-07, -1.7702579498291016e-05,
- 6.0081481933593750e-05}, /* L808 */
-{9.3072576522827148e+00, 4.4902600347995758e-04,
- 1.1920928955078125e-07, -1.6099214553833008e-04,
- -1.2153387069702148e-04}, /* L809 */
-{6.7192497253417969e+00, 3.2445788383483887e-04,
- 1.1920928955078125e-07, -4.1246414184570312e-05,
- 8.4161758422851562e-05}, /* L810 */
-{9.8024320602416992e+00, 4.7415494918823242e-04,
- 1.1920928955078125e-07, -3.0577182769775391e-05,
- -1.5139579772949219e-04}, /* L811 */
-{8.9261360168457031e+00, 4.3240189552307129e-04,
- 1.1920928955078125e-07, 1.4615058898925781e-04,
- -1.3309717178344727e-04}, /* L812 */
-{8.1681880950927734e+00, 3.9589405059814453e-04,
- 1.1920928955078125e-07, -5.5432319641113281e-06,
- 3.1352043151855469e-05}, /* L813 */
-{8.4278879165649414e+00, 4.0908157825469971e-04,
- 1.1920928955078125e-07, -3.1751394271850586e-04,
- 2.5033950805664062e-04}, /* L814 */
-{1.0482943534851074e+01, 5.0938129425048828e-04,
- 1.1920928955078125e-07, 2.7656555175781250e-05,
- 1.0812282562255859e-04}, /* L815 */
-{1.0743288040161133e+01, 5.2261352539062500e-04,
- 1.1920928955078125e-07, 1.8835067749023438e-05,
- -2.9444694519042969e-05}, /* L816 */
-{9.9636878967285156e+00, 4.8533082008361816e-04,
- 1.1920928955078125e-07, 1.2624263763427734e-04,
- 7.1167945861816406e-05}, /* L817 */
-{9.3847723007202148e+00, 4.5779347419738770e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- -7.0571899414062500e-05}, /* L818 */
-{9.0247249603271484e+00, 4.4091790914535522e-04,
- 1.1920928955078125e-07, -2.9057264328002930e-04,
- 8.2492828369140625e-05}, /* L819 */
-{8.2970867156982422e+00, 4.0563941001892090e-04,
- 1.1920928955078125e-07, -5.1617622375488281e-05,
- 3.2305717468261719e-05}, /* L820 */
-{9.8112707138061523e+00, 4.8026442527770996e-04,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- 4.1723251342773438e-05}, /* L821 */
-{1.1379727363586426e+01, 5.5819749832153320e-04,
- 1.1920928955078125e-07, 1.4245510101318359e-04,
- 2.4235248565673828e-04}, /* L822 */
-{8.1640119552612305e+00, 4.0069222450256348e-04,
- 1.1920928955078125e-07, 6.2823295593261719e-05,
- 2.0790100097656250e-04}, /* L823 */
-{8.2890014648437500e+00, 4.0718913078308105e-04,
- 1.1920928955078125e-07, 9.0956687927246094e-05,
- 1.4376640319824219e-04}, /* L824 */
-{1.0220774650573730e+01, 5.0273537635803223e-04,
- 1.1920928955078125e-07, 1.8596649169921875e-05,
- 1.4305114746093750e-06}, /* L825 */
-{6.7883629798889160e+00, 3.3430755138397217e-04,
- 1.1920928955078125e-07, -2.7000904083251953e-05,
- 1.6987323760986328e-04}, /* L826 */
-{1.2203616142272949e+01, 6.0164043679833412e-04,
- 1.1920928955078125e-07, -5.3584575653076172e-05,
- 1.7166137695312500e-05}, /* L827 */
-{1.2532876014709473e+01, 6.1863288283348083e-04,
- 1.1920928955078125e-07, -5.5611133575439453e-05,
- -4.5895576477050781e-06}, /* L828 */
-{1.0567130088806152e+01, 5.2437186241149902e-04,
- 1.1920928955078125e-07, -1.3938546180725098e-03,
- 1.8682479858398438e-03}, /* L829 */
-{1.0742480278015137e+01, 5.3201615810394287e-04,
- 1.1920928955078125e-07, 1.5747547149658203e-04,
- 1.2862682342529297e-04}, /* L830 */
-{8.5930175781250000e+00, 4.2802095413208008e-04,
- 1.1920928955078125e-07, 2.5243759155273438e-03,
- 1.8072128295898438e-03}, /* L831 */
-{7.2004580497741699e+00, 3.5721063613891602e-04,
- 1.1920928955078125e-07, -1.1068582534790039e-04,
- 7.2717666625976562e-06}, /* L832 */
-{9.2003545761108398e+00, 4.5686960220336914e-04,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -5.0544738769531250e-05}, /* L833 */
-{8.4907684326171875e+00, 4.2299181222915649e-04,
- 1.1920928955078125e-07, 6.2716007232666016e-04,
- -9.7042322158813477e-04}, /* L834 */
-{9.0714015960693359e+00, 4.5192241668701172e-04,
- 1.1920928955078125e-07, 5.6326389312744141e-04,
- -1.3041496276855469e-04}, /* L835 */
-{9.4950408935546875e+00, 4.7326087951660156e-04,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- 2.5510787963867188e-05}, /* L836 */
-{8.6925086975097656e+00, 4.3383240699768066e-04,
- 1.1920928955078125e-07, 3.3855438232421875e-05,
- -8.4638595581054688e-06}, /* L837 */
-{8.0853195190429688e+00, 4.0407478809356689e-04,
- 1.1920928955078125e-07, -1.1140108108520508e-04,
- -1.5455484390258789e-04}, /* L838 */
-{7.8630151748657227e+00, 3.9374083280563354e-04,
- 1.1920928955078125e-07, 2.0706653594970703e-04,
- -2.6410818099975586e-04}, /* L839 */
-{9.0589151382446289e+00, 4.5368075370788574e-04,
- 1.1920928955078125e-07, 3.8146972656250000e-05,
- -9.1612339019775391e-05}, /* L840 */
-{8.3809690475463867e+00, 4.2021274566650391e-04,
- 1.1920928955078125e-07, 7.4505805969238281e-05,
- -2.0444393157958984e-05}, /* L841 */
-{1.0540531158447266e+01, 5.2915140986442566e-04,
- 1.1920928955078125e-07, -1.6343593597412109e-04,
- 3.7431716918945312e-05}, /* L842 */
-{7.4543876647949219e+00, 3.7515163421630859e-04,
- 1.1920928955078125e-07, 7.1609020233154297e-04,
- -9.0414285659790039e-04}, /* L843 */
-{8.5354328155517578e+00, 4.2951107025146484e-04,
- 1.1920928955078125e-07, 2.8491020202636719e-05,
- 3.6716461181640625e-05}, /* L844 */
-{8.4300947189331055e+00, 4.2486935853958130e-04,
- 1.1920928955078125e-07, -1.4597177505493164e-04,
- 4.0876865386962891e-04}, /* L845 */
-{8.2337541580200195e+00, 4.1527301073074341e-04,
- 1.1920928955078125e-07, 6.6518783569335938e-05,
- 2.8014183044433594e-05}, /* L846 */
-{8.3290538787841797e+00, 4.2076408863067627e-04,
- 1.1920928955078125e-07, -7.9035758972167969e-05,
- 1.8060207366943359e-04}, /* L847 */
-{7.5480003356933594e+00, 3.8173794746398926e-04,
- 1.1920928955078125e-07, 2.7430057525634766e-04,
- 1.4173984527587891e-04}, /* L848 */
-{8.8697738647460938e+00, 4.4900178909301758e-04,
- 1.1920928955078125e-07, -8.6843967437744141e-05,
- -1.0097026824951172e-04}, /* L849 */
-{9.8021516799926758e+00, 4.9680471420288086e-04,
- 1.1920928955078125e-07, -5.5015087127685547e-05,
- 5.6624412536621094e-05}, /* L850 */
-{8.9112596511840820e+00, 4.5216083526611328e-04,
- 1.1920928955078125e-07, 2.1719932556152344e-04,
- -2.1177530288696289e-04}, /* L851 */
-{9.5952129364013672e+00, 4.8738718032836914e-04,
- 1.1920928955078125e-07, 7.0810317993164062e-05,
- 7.8797340393066406e-05}, /* L852 */
-{7.8903055191040039e+00, 4.0155649185180664e-04,
- 1.1920928955078125e-07, 6.2775611877441406e-04,
- -1.9526481628417969e-04}, /* L853 */
-{8.9442834854125977e+00, 4.5560300350189209e-04,
- 1.1920928955078125e-07, -4.3690204620361328e-05,
- -3.8206577301025391e-05}, /* L854 */
-{7.5095682144165039e+00, 3.8337707519531250e-04,
- 1.1920928955078125e-07, 1.0418891906738281e-04,
- 1.0583400726318359e-03}, /* L855 */
-{9.4125051498413086e+00, 4.8041343688964844e-04,
- 1.1920928955078125e-07, 1.1074542999267578e-04,
- -4.4405460357666016e-05}, /* L856 */
-{1.0305851936340332e+01, 5.2653253078460693e-04,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- -5.3524971008300781e-05}, /* L857 */
-{9.9415740966796875e+00, 5.0857663154602051e-04,
- 1.1920928955078125e-07, 1.2993812561035156e-05,
- -6.8485736846923828e-05}, /* L858 */
-{8.3125524520874023e+00, 4.2659044265747070e-04,
- 1.1920928955078125e-07, 5.2773952484130859e-04,
- -7.9172849655151367e-04}, /* L859 */
-{1.1204255104064941e+01, 5.8361887931823730e-04,
- 1.1920928955078125e-07, 4.1208267211914062e-03,
- 8.8322162628173828e-04}, /* L860 */
-{9.1590785980224609e+00, 4.7016143798828125e-04,
- 1.1920928955078125e-07, -2.2470951080322266e-05,
- -2.3841857910156250e-06}, /* L861 */
-{9.8174877166748047e+00, 5.0452351570129395e-04,
- 1.1920928955078125e-07, -1.0323524475097656e-04,
- 8.6665153503417969e-05}, /* L862 */
-{8.4300899505615234e+00, 4.3380272109061480e-04,
- 1.1920928955078125e-07, 1.5795230865478516e-04,
- 1.1920928955078125e-07}, /* L863 */
-{8.6896991729736328e+00, 4.4766068458557129e-04,
- 1.1920928955078125e-07, 6.5326690673828125e-05,
- -1.5676021575927734e-05}, /* L864 */
-{8.3439798355102539e+00, 4.3044984340667725e-04,
- 1.1920928955078125e-07, 9.8943710327148438e-05,
- -1.7166137695312500e-04}, /* L865 */
-{9.4180641174316406e+00, 4.8670172691345215e-04,
- 1.1920928955078125e-07, -2.0039081573486328e-04,
- -3.4868717193603516e-05}, /* L866 */
-{7.7439107894897461e+00, 4.0078163146972656e-04,
- 1.1920928955078125e-07, 3.6466121673583984e-04,
- 3.9684772491455078e-04}, /* L867 */
-{9.9742450714111328e+00, 5.1611661911010742e-04,
- 1.1920928955078125e-07, 1.3709068298339844e-04,
- 1.7881393432617188e-05}, /* L868 */
-{1.0208351135253906e+01, 5.2896142005920410e-04,
- 1.1920928955078125e-07, -1.6754865646362305e-04,
- -2.2351741790771484e-05}, /* L869 */
-{9.6849508285522461e+00, 5.0308834761381149e-04,
- 1.1920928955078125e-07, -3.8903951644897461e-04,
- 3.2818317413330078e-04}, /* L870 */
-{9.7295532226562500e+00, 5.0532817840576172e-04,
- 1.1920928955078125e-07, -3.3974647521972656e-06,
- 1.7619132995605469e-04}, /* L871 */
-{7.8352098464965820e+00, 4.0777027606964111e-04,
- 1.1920928955078125e-07, -2.8657913208007812e-04,
- -3.4213066101074219e-05}, /* L872 */
-{8.2493562698364258e+00, 4.2936857789754868e-04,
- 1.1920928955078125e-07, 2.8014183044433594e-05,
- 1.5735626220703125e-05}, /* L873 */
-{9.6728620529174805e+00, 5.0404667854309082e-04,
- 1.1920928955078125e-07, 1.8060207366943359e-04,
- 7.5936317443847656e-05}, /* L874 */
-{1.0594155311584473e+01, 5.5433996021747589e-04,
- 1.1920928955078125e-07, 7.1442127227783203e-04,
- 4.8708915710449219e-04}, /* L875 */
-{7.3986954689025879e+00, 3.8728117942810059e-04,
- 1.1920928955078125e-07, -9.8156929016113281e-04,
- -2.1846294403076172e-03}, /* L876 */
-{1.2028307914733887e+01, 6.2891095876693726e-04,
- 1.1920928955078125e-07, 1.2600421905517578e-04,
- 2.1576881408691406e-05}, /* L877 */
-{9.0621461868286133e+00, 4.7445297241210938e-04,
- 1.1920928955078125e-07, 8.0585479736328125e-05,
- 1.2934207916259766e-04}, /* L878 */
-{9.4628772735595703e+00, 4.9653649330139160e-04,
- 1.1920928955078125e-07, 7.4315071105957031e-04,
- 1.8227100372314453e-04}, /* L879 */
-{7.7804293632507324e+00, 4.1131675243377686e-04,
- 1.1920928955078125e-07, -2.9063820838928223e-03,
- -1.0851025581359863e-03}, /* L880 */
-{9.5321464538574219e+00, 5.0139427185058594e-04,
- 1.1920928955078125e-07, 2.2983551025390625e-04,
- 7.5101852416992188e-05}, /* L881 */
-{8.7506217956542969e+00, 4.6022236347198486e-04,
- 1.1920928955078125e-07, 1.5556812286376953e-04,
- 1.4567375183105469e-04}, /* L882 */
-{1.0025440216064453e+01, 5.2818655967712402e-04,
- 1.1920928955078125e-07, 5.9843063354492188e-05,
- -4.9531459808349609e-04}, /* L883 */
-{9.8794288635253906e+00, 5.2073597908020020e-04,
- 1.1920928955078125e-07, 1.1789798736572266e-04,
- -1.8960237503051758e-04}, /* L884 */
-{7.8264408111572266e+00, 4.1304528713226318e-04,
- 1.1920928955078125e-07, 2.0670890808105469e-04,
- 4.1246414184570312e-05}, /* L885 */
-{1.0312217712402344e+01, 5.4493546485900879e-04,
- 1.1920928955078125e-07, 8.9287757873535156e-05,
- -3.0767917633056641e-04}, /* L886 */
-{1.0027723312377930e+01, 5.3027272224426270e-04,
- 1.1920928955078125e-07, -1.2570619583129883e-04,
- -5.3346157073974609e-05}, /* L887 */
-{8.9498205184936523e+00, 4.7391653060913086e-04,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- -1.1956691741943359e-04}, /* L888 */
-{1.0855107307434082e+01, 5.7531148195266724e-04,
- 1.1920928955078125e-07, 6.6757202148437500e-05,
- -2.0503997802734375e-05}, /* L889 */
-{1.0481481552124023e+01, 5.5629760026931763e-04,
- 1.1920928955078125e-07, -6.0617923736572266e-05,
- 9.6559524536132812e-05}, /* L890 */
-{9.1061229705810547e+00, 4.8390030860900879e-04,
- 1.1920928955078125e-07, 2.5272369384765625e-05,
- -1.4942884445190430e-04}, /* L891 */
-{1.0204853057861328e+01, 5.4278969764709473e-04,
- 1.1920928955078125e-07, -2.7322769165039062e-04,
- 4.8160552978515625e-05}, /* L892 */
-{8.9950323104858398e+00, 4.7889351844787598e-04,
- 1.1920928955078125e-07, 7.6770782470703125e-05,
- 5.0067901611328125e-06}, /* L893 */
-{8.1319837570190430e+00, 4.3380260467529297e-04,
- 1.1920928955078125e-07, -1.2904405593872070e-04,
- 6.2978267669677734e-04}, /* L894 */
-{1.0173254966735840e+01, 5.4356455802917480e-04,
- 1.1920928955078125e-07, 9.0825557708740234e-04,
- -4.1401386260986328e-04}, /* L895 */
-{9.9297447204589844e+00, 5.3039193153381348e-04,
- 1.1920928955078125e-07, -4.8518180847167969e-05,
- 1.1920928955078125e-05}, /* L896 */
-{1.0142393112182617e+01, 5.4265558719635010e-04,
- 1.1920928955078125e-07, 3.0219554901123047e-04,
- 4.2283535003662109e-04}, /* L897 */
-{1.0224027633666992e+01, 5.4752826690673828e-04,
- 1.1920928955078125e-07, 1.2278556823730469e-05,
- -3.7807226181030273e-04}, /* L898 */
-{8.8116769790649414e+00, 4.7311186790466309e-04,
- 1.1920928955078125e-07, -3.3962726593017578e-04,
- -2.0164251327514648e-04}, /* L899 */
-{1.1354292869567871e+01, 6.0933828353881836e-04,
- 1.1920928955078125e-07, -1.9192695617675781e-05,
- -6.9439411163330078e-05}, /* L900 */
-{1.0896154403686523e+01, 5.8621913194656372e-04,
- 1.1920928955078125e-07, 6.9081783294677734e-04,
- 3.3354759216308594e-04}, /* L901 */
-{9.5811986923217773e+00, 5.1528215408325195e-04,
- 1.1920928955078125e-07, -3.4391880035400391e-05,
- 4.5895576477050781e-05}, /* L902 */
-{1.1146021842956543e+01, 6.0030817985534668e-04,
- 1.1920928955078125e-07, 2.1028518676757812e-04,
- -7.1287155151367188e-05}, /* L903 */
-{8.6788101196289062e+00, 4.6783685684204102e-04,
- 1.1920928955078125e-07, 2.0515918731689453e-04,
- 7.3909759521484375e-05}, /* L904 */
-{8.5921926498413086e+00, 4.6461820602416992e-04,
- 1.1920928955078125e-07, -1.2883543968200684e-03,
- -1.2427568435668945e-04}, /* L905 */
-{8.4939489364624023e+00, 4.5879930257797241e-04,
- 1.1920928955078125e-07, 4.1246414184570312e-05,
- -1.2814998626708984e-05}, /* L906 */
-{1.1787450790405273e+01, 6.3760578632354736e-04,
- 1.1920928955078125e-07, -6.5565109252929688e-07,
- 2.2852420806884766e-04}, /* L907 */
-{1.3179844856262207e+01, 7.1705877780914307e-04,
- 1.1920928955078125e-07, 5.5527687072753906e-04,
- -1.5602707862854004e-03}, /* L908 */
-{1.0362262725830078e+01, 5.6158751249313354e-04,
- 1.1920928955078125e-07, -1.0615587234497070e-04,
- -4.8696994781494141e-05}, /* L909 */
-{1.1510843276977539e+01, 6.2486529350280762e-04,
- 1.1920928955078125e-07, 1.3244152069091797e-04,
- 1.3911724090576172e-04}, /* L910 */
-{9.1452360153198242e+00, 4.9859285354614258e-04,
- 1.1920928955078125e-07, -1.3246536254882812e-03,
- -1.1637210845947266e-03}, /* L911 */
-{7.6625580787658691e+00, 4.1878223419189453e-04,
- 1.1920928955078125e-07, 2.0527839660644531e-03,
- -3.9935111999511719e-05}, /* L912 */
-{9.5056152343750000e+00, 5.1741674542427063e-04,
- 1.1920928955078125e-07, -1.9371509552001953e-05,
- 5.5432319641113281e-05}, /* L913 */
-{6.5595908164978027e+00, 3.5750865936279297e-04,
- 1.1920928955078125e-07, -5.4836273193359375e-05,
- -1.0627508163452148e-04}, /* L914 */
-{1.0059088706970215e+01, 5.4885447025299072e-04,
- 1.1920928955078125e-07, 1.4376640319824219e-04,
- -4.2021274566650391e-05}, /* L915 */
-{1.0142908096313477e+01, 5.6873634457588196e-04,
- 1.1920928955078125e-07, 1.1594295501708984e-03,
- -6.8448781967163086e-03}, /* L916 */
-{1.0483978271484375e+01, 5.7320296764373779e-04,
- 1.1920928955078125e-07, -5.1259994506835938e-06,
- -1.1259317398071289e-04}, /* L917 */
-{6.8637399673461914e+00, 4.2021274566650391e-04,
- 1.1920928955078125e-07, -2.5805950164794922e-02,
- -6.7583143711090088e-02}, /* L918 */
-{1.2185496330261230e+01, 6.6886097192764282e-04,
- 1.1920928955078125e-07, -3.4928321838378906e-05,
- 6.4456462860107422e-04}, /* L919 */
-{1.2233646392822266e+01, 6.7143142223358154e-04,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- 1.2326240539550781e-04}, /* L920 */
-{1.3170442581176758e+01, 7.2374939918518066e-04,
- 1.1920928955078125e-07, -1.3434886932373047e-04,
- 2.6845932006835938e-04}, /* L921 */
-{9.4261188507080078e+00, 5.1849335432052612e-04,
- 1.1920928955078125e-07, -4.2694807052612305e-04,
- -7.1722269058227539e-04}, /* L922 */
-{1.1733778953552246e+01, 6.4602494239807129e-04,
- 1.1920928955078125e-07, -2.4253129959106445e-04,
- -3.9511919021606445e-04}, /* L923 */
-{9.1030464172363281e+00, 5.0285458564758301e-04,
- 1.1920928955078125e-07, 1.2797117233276367e-03,
- 1.3979673385620117e-03}, /* L924 */
-{1.1392621994018555e+01, 6.2845647335052490e-04,
- 1.1920928955078125e-07, 1.1217594146728516e-04,
- -7.0929527282714844e-05}, /* L925 */
-{9.3943872451782227e+00, 5.1929056644439697e-04,
- 1.1920928955078125e-07, -3.9207935333251953e-04,
- -7.7319145202636719e-04}, /* L926 */
-{1.0573058128356934e+01, 5.8455765247344971e-04,
- 1.1920928955078125e-07, 1.7619132995605469e-04,
- -3.5047531127929688e-04}, /* L927 */
-{8.7874736785888672e+00, 4.8616528511047363e-04,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- 4.3392181396484375e-05}, /* L928 */
-{1.0296479225158691e+01, 5.7037919759750366e-04,
- 1.1920928955078125e-07, 2.7191638946533203e-04,
- -1.5097856521606445e-04}, /* L929 */
-{9.0902729034423828e+00, 5.0977617502212524e-04,
- 1.1920928955078125e-07, 3.2520294189453125e-04,
- -1.1402368545532227e-04}, /* L930 */
-{9.5255393981933594e+00, 5.2882730960845947e-04,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- -1.0293722152709961e-04}, /* L931 */
-{7.0039806365966797e+00, 3.9994716644287109e-04,
- 1.1920928955078125e-07, -2.5570392608642578e-04,
- 3.7807226181030273e-03}, /* L932 */
-{1.0187489509582520e+01, 5.6668370962142944e-04,
- 1.1920928955078125e-07, 2.9683113098144531e-05,
- 5.6385993957519531e-05}, /* L933 */
-{7.8153548240661621e+00, 4.3529272079467773e-04,
- 1.1920928955078125e-07, -1.5920400619506836e-04,
- 1.9586086273193359e-04}, /* L934 */
-{9.5917797088623047e+00, 5.3465366363525391e-04,
- 1.1920928955078125e-07, -6.1690807342529297e-05,
- -2.5629997253417969e-06}, /* L935 */
-{9.4538898468017578e+00, 5.3317472338676453e-04,
- 1.1920928955078125e-07, -9.6476078033447266e-04,
- 3.0534267425537109e-03}, /* L936 */
-{1.3311546325683594e+01, 7.4370950460433960e-04,
- 1.1920928955078125e-07, -6.0498714447021484e-05,
- 1.6570091247558594e-05}, /* L937 */
-{8.9440031051635742e+00, 5.0088763236999512e-04,
- 1.1920928955078125e-07, 6.2561035156250000e-04,
- -3.5405158996582031e-05}, /* L938 */
-{9.0030832290649414e+00, 5.0456076860427856e-04,
- 1.1920928955078125e-07, 2.5403499603271484e-04,
- 8.9454650878906250e-04}, /* L939 */
-{9.3538589477539062e+00, 5.2461028099060059e-04,
- 1.1920928955078125e-07, -3.0106306076049805e-04,
- -1.8739700317382812e-04}, /* L940 */
-{9.2046861648559570e+00, 5.1662232726812363e-04,
- 1.1920928955078125e-07, 3.2043457031250000e-04,
- -3.6537647247314453e-05}, /* L941 */
-{9.8434581756591797e+00, 5.5298209190368652e-04,
- 1.1920928955078125e-07, 5.4359436035156250e-05,
- 2.2041797637939453e-04}, /* L942 */
-{1.0460096359252930e+01, 5.8874487876892090e-04,
- 1.1920928955078125e-07, -5.3822994232177734e-05,
- -2.4038553237915039e-04}, /* L943 */
-{1.1455904960632324e+01, 6.4471364021301270e-04,
- 1.1920928955078125e-07, -2.7477741241455078e-05,
- 5.6982040405273438e-05}, /* L944 */
-{9.5424175262451172e+00, 5.3769350051879883e-04,
- 1.1920928955078125e-07, -1.5932321548461914e-04,
- 4.3034553527832031e-05}, /* L945 */
-{7.3770170211791992e+00, 4.1612982749938965e-04,
- 1.1920928955078125e-07, -5.7637691497802734e-05,
- 2.0384788513183594e-05}, /* L946 */
-{1.1339417457580566e+01, 6.4063072204589844e-04,
- 1.1920928955078125e-07, 3.4356117248535156e-04,
- 2.7191638946533203e-04}, /* L947 */
-{9.6250896453857422e+00, 5.4407864809036255e-04,
- 1.1920928955078125e-07, -9.6559524536132812e-06,
- 1.3113021850585938e-05}, /* L948 */
-{1.0731884956359863e+01, 6.0723721981048584e-04,
- 1.1920928955078125e-07, -7.5578689575195312e-05,
- -1.0544061660766602e-04}, /* L949 */
-{9.0658407211303711e+00, 5.1362812519073486e-04,
- 1.1920928955078125e-07, -2.1952390670776367e-04,
- 4.7123432159423828e-04}, /* L950 */
-{9.0061922073364258e+00, 5.1075220108032227e-04,
- 1.1920928955078125e-07, -8.0227851867675781e-05,
- -2.7024745941162109e-04}, /* L951 */
-{1.0606670379638672e+01, 6.0208141803741455e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-06,
- -4.5537948608398438e-05}, /* L952 */
-{9.3217401504516602e+00, 5.2991509437561035e-04,
- 1.1920928955078125e-07, -5.8531761169433594e-05,
- 2.3651123046875000e-04}, /* L953 */
-{1.2256339073181152e+01, 6.9776363670825958e-04,
- 1.1920928955078125e-07, -1.1241436004638672e-04,
- 3.7395954132080078e-04}, /* L954 */
-{1.1326392173767090e+01, 6.4510107040405273e-04,
- 1.1920928955078125e-07, 3.1828880310058594e-05,
- 5.8221817016601562e-04}, /* L955 */
-{1.1273021697998047e+01, 6.4358115196228027e-04,
- 1.1920928955078125e-07, -8.8590383529663086e-04,
- 2.1946430206298828e-04}, /* L956 */
-{1.0715250015258789e+01, 6.1142444610595703e-04,
- 1.1920928955078125e-07, -1.4001131057739258e-04,
- -3.6835670471191406e-05}, /* L957 */
-{1.0085085868835449e+01, 5.7616829872131348e-04,
- 1.1920928955078125e-07, -3.0934810638427734e-05,
- 9.1075897216796875e-05}, /* L958 */
-{9.9763650894165039e+00, 5.7068467140197754e-04,
- 1.1920928955078125e-07, 6.8068504333496094e-05,
- 3.2162666320800781e-04}, /* L959 */
-{1.0381855964660645e+01, 5.9464573860168457e-04,
- 1.1920928955078125e-07, -3.9517879486083984e-05,
- 5.4037570953369141e-04}, /* L960 */
-{1.1508152008056641e+01, 6.5937638282775879e-04,
- 1.1920928955078125e-07, -9.1314315795898438e-05,
- 2.1016597747802734e-04}, /* L961 */
-{9.7341852188110352e+00, 5.5855512619018555e-04,
- 1.1920928955078125e-07, -3.2210350036621094e-04,
- -2.7519464492797852e-04}, /* L962 */
-{8.9531869888305664e+00, 5.1404535770416260e-04,
- 1.1920928955078125e-07, -1.0359287261962891e-04,
- -1.9872188568115234e-04}, /* L963 */
-{1.0462536811828613e+01, 6.0136616230010986e-04,
- 1.1920928955078125e-07, 4.6133995056152344e-05,
- -3.0398368835449219e-06}, /* L964 */
-{9.3554477691650391e+00, 5.3861737251281738e-04,
- 1.1920928955078125e-07, -1.5497207641601562e-06,
- -4.9829483032226562e-05}, /* L965 */
-{1.1124286651611328e+01, 6.4320862293243408e-04,
- 1.1920928955078125e-07, 6.1643123626708984e-04,
- -3.2126903533935547e-05}, /* L966 */
-{8.9970512390136719e+00, 5.1872432231903076e-04,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- -2.9563903808593750e-05}, /* L967 */
-{1.0323065757751465e+01, 5.9577822685241699e-04,
- 1.1920928955078125e-07, 1.0931491851806641e-04,
- 1.9907951354980469e-05}, /* L968 */
-{9.5731115341186523e+00, 5.5319070816040039e-04,
- 1.1920928955078125e-07, 1.1074542999267578e-04,
- 2.5033950805664062e-06}, /* L969 */
-{1.0784428596496582e+01, 6.2391161918640137e-04,
- 1.1920928955078125e-07, 1.0919570922851562e-04,
- 2.1529197692871094e-04}, /* L970 */
-{1.1896026611328125e+01, 6.8905949592590332e-04,
- 1.1920928955078125e-07, -1.2791156768798828e-04,
- -2.2602081298828125e-04}, /* L971 */
-{1.2135169982910156e+01, 7.0384144783020020e-04,
- 1.1920928955078125e-07, -2.0962953567504883e-04,
- 2.0158290863037109e-04}, /* L972 */
-{1.0789814949035645e+01, 6.2644481658935547e-04,
- 1.1920928955078125e-07, 1.8596649169921875e-04,
- 8.6069107055664062e-05}, /* L973 */
-{8.9428577423095703e+00, 5.1948428153991699e-04,
- 1.1920928955078125e-07, 2.7513504028320312e-04,
- 8.3327293395996094e-05}, /* L974 */
-{1.1117540359497070e+01, 6.4677000045776367e-04,
- 1.1920928955078125e-07, 4.7099590301513672e-04,
- 1.8084049224853516e-04}, /* L975 */
-{9.4324874877929688e+00, 5.4883956909179688e-04,
- 1.1920928955078125e-07, -5.5849552154541016e-05,
- 3.6597251892089844e-05}, /* L976 */
-{9.9638156890869141e+00, 5.8031082153320312e-04,
- 1.1920928955078125e-07, -1.1563301086425781e-05,
- 3.0159950256347656e-05}, /* L977 */
-{1.1609551429748535e+01, 6.7691504955291748e-04,
- 1.1920928955078125e-07, 2.3722648620605469e-05,
- 7.9989433288574219e-05}, /* L978 */
-{1.0608478546142578e+01, 6.1939656734466553e-04,
- 1.1920928955078125e-07, -8.6903572082519531e-05,
- 4.2033195495605469e-04}, /* L979 */
-{8.4362697601318359e+00, 4.9486756324768066e-04,
- 1.1920928955078125e-07, -1.4864802360534668e-03,
- 1.7452239990234375e-03}, /* L980 */
-{9.7265644073486328e+00, 5.6907534599304199e-04,
- 1.1920928955078125e-07, -1.4030933380126953e-04,
- 2.5689601898193359e-04}, /* L981 */
-{9.4599523544311523e+00, 5.5414438247680664e-04,
- 1.1920928955078125e-07, 1.8525123596191406e-04,
- 5.2011013031005859e-04}, /* L982 */
-{1.2863492012023926e+01, 7.5390934944152832e-04,
- 1.1920928955078125e-07, 2.2768974304199219e-05,
- 4.0650367736816406e-05}, /* L983 */
-{9.7873058319091797e+00, 5.7449936866760254e-04,
- 1.1920928955078125e-07, -1.9872188568115234e-04,
- 3.0755996704101562e-05}, /* L984 */
-{1.0202817916870117e+01, 6.0078501701354980e-04,
- 1.1920928955078125e-07, 1.5604496002197266e-03,
- -5.0497055053710938e-04}, /* L985 */
-{7.9735250473022461e+00, 4.6873092651367188e-04,
- 1.1920928955078125e-07, 6.9737434387207031e-05,
- -4.4763088226318359e-05}, /* L986 */
-{8.5263195037841797e+00, 5.0173699855804443e-04,
- 1.1920928955078125e-07, 7.5578689575195312e-05,
- -5.8054924011230469e-05}, /* L987 */
-{9.1204433441162109e+00, 5.3745508193969727e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- -9.1671943664550781e-05}, /* L988 */
-{9.2427177429199219e+00, 5.4496526718139648e-04,
- 1.1920928955078125e-07, -7.6770782470703125e-05,
- 1.9037723541259766e-04}, /* L989 */
-{8.9276609420776367e+00, 5.2729249000549316e-04,
- 1.1920928955078125e-07, -2.3061037063598633e-04,
- -8.5198879241943359e-04}, /* L990 */
-{8.8264904022216797e+00, 5.2192807197570801e-04,
- 1.1920928955078125e-07, -4.0757656097412109e-04,
- -8.2027912139892578e-04}, /* L991 */
-{1.0676711082458496e+01, 6.3160806894302368e-04,
- 1.1920928955078125e-07, -1.3452768325805664e-04,
- 3.0159950256347656e-05}, /* L992 */
-{1.1839732170104980e+01, 7.0306658744812012e-04,
- 1.1920928955078125e-07, 1.7281770706176758e-03,
- -2.2232532501220703e-04}, /* L993 */
-{1.0783862113952637e+01, 6.4065121114253998e-04,
- 1.1920928955078125e-07, 6.9916248321533203e-04,
- -4.1025876998901367e-04}, /* L994 */
-{1.2578942298889160e+01, 7.4702501296997070e-04,
- 1.1920928955078125e-07, -3.4588575363159180e-04,
- -3.4421682357788086e-04}, /* L995 */
-{8.6372623443603516e+00, 5.1289796829223633e-04,
- 1.1920928955078125e-07, -1.2409687042236328e-04,
- -1.1491775512695312e-04}, /* L996 */
-{1.1118403434753418e+01, 6.6128373146057129e-04,
- 1.1920928955078125e-07, 7.9751014709472656e-05,
- -1.1217594146728516e-04}, /* L997 */
-{1.2720804214477539e+01, 7.5832009315490723e-04,
- 1.1920928955078125e-07, 1.3470649719238281e-04,
- 3.5548210144042969e-04}, /* L998 */
-{1.1835504531860352e+01, 7.0568919181823730e-04,
- 1.1920928955078125e-07, -1.2338161468505859e-04,
- 2.0146369934082031e-05}, /* L999 */
-{9.9209365844726562e+00, 5.9160590171813965e-04,
- 1.1920928955078125e-07, 7.9035758972167969e-05,
- -1.1682510375976562e-05}, /* L1000 */
-{1.6806556701660156e+01, 2.0261406898498535e-03,
- 1.1920928955078125e-07, -3.6427378654479980e-03,
- 1.5962123870849609e-03}, /* L1001 */
-{2.3323837280273438e+01, 4.2076110839843750e-03,
- 1.1920928955078125e-07, 2.6699304580688477e-03,
- 4.3749809265136719e-05}, /* L1002 */
-{3.6291336059570312e+01, 8.7019801139831543e-03,
- 1.1920928955078125e-07, -1.4978647232055664e-04,
- 2.6834011077880859e-04}, /* L1003 */
-{4.5923114776611328e+01, 1.3769924640655518e-02,
- 1.1920928955078125e-07, 1.5914440155029297e-04,
- -6.0558319091796875e-05}, /* L1004 */
-{5.3506553649902344e+01, 1.9319653511047363e-02,
- 1.1920928955078125e-07, 1.2971162796020508e-03,
- 1.5259981155395508e-03}, /* L1005 */
-{5.5544055938720703e+01, 2.4212539196014404e-02,
- 1.1920928955078125e-07, -4.0019154548645020e-03,
- -4.3381452560424805e-03}, /* L1006 */
-{6.1873199462890625e+01, 3.1397029757499695e-02,
- 1.1920928955078125e-07, -7.6299905776977539e-04,
- 1.0329604148864746e-02}, /* L1007 */
-{7.3244987487792969e+01, 4.2697429656982422e-02,
- 1.1920928955078125e-07, -1.8775463104248047e-04,
- -1.4420807361602783e-02}, /* L1008 */
-{8.1817268371582031e+01, 4.9257040023803711e-02,
- 1.1920928955078125e-07, 4.1556358337402344e-03,
- -2.7217864990234375e-03}, /* L1009 */
-#endif /* } */
-
-/* Always the last one. Common to both DP and SP */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1010 */
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SINGDOUB64V9B_SS12_H */
diff --git a/usr/src/cmd/fps/fptest/singdoub64v9b_ss12u1.h b/usr/src/cmd/fps/fptest/singdoub64v9b_ss12u1.h
deleted file mode 100644
index 25ba3537e5..0000000000
--- a/usr/src/cmd/fps/fptest/singdoub64v9b_ss12u1.h
+++ /dev/null
@@ -1,6115 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef LAPACK_V9B_SS13
-#define LAPACK_V9B_SS13
-
-/* 64-bit golden values for V9B/SS13 Lapack */
-
-
-static struct LinpVals LinpValsA[] = {
-
-#ifdef DP /* { */
-
-/* Start of DP golden values */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L0 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L3 */
-{3.8260177822204688e-01, 1.6653345369377348e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L4 */
-{4.0810856343684981e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 0.0000000000000000e+00}, /* L5 */
-{3.4009046953070693e-01, 2.2204460492503131e-16,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 2.6645352591003757e-15}, /* L6 */
-{3.6373773558278227e-01, 2.7755575615628914e-16,
- 2.2204460492503131e-16, -3.3306690738754696e-16,
- 8.8817841970012523e-16}, /* L7 */
-{3.2492063115128750e-01, 2.8449465006019636e-16,
- 2.2204460492503131e-16, -1.7763568394002505e-15,
- -1.1102230246251565e-16}, /* L8 */
-{4.5083838251885799e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- -4.5519144009631418e-15}, /* L9 */
-{4.0575454426697483e-01, 4.4408920985006262e-16,
- 2.2204460492503131e-16, -1.1102230246251565e-16,
- -2.2204460492503131e-16}, /* L10 */
-{5.9941012221257661e-01, 7.2164496600635175e-16,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 2.2204460492503131e-16}, /* L11 */
-{2.9586268852800246e-01, 3.8857805861880479e-16,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 0.0000000000000000e+00}, /* L12 */
-{6.2922387221750764e-01, 9.0205620750793969e-16,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -2.2204460492503131e-16}, /* L13 */
-{5.3933474761500677e-01, 8.3266726846886741e-16,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 0.0000000000000000e+00}, /* L14 */
-{6.7117213036534140e-01, 1.1102230246251565e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -1.1102230246251565e-16}, /* L15 */
-{7.8652984027188344e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 0.0000000000000000e+00}, /* L16 */
-{6.3662650600829918e-01, 1.1934897514720433e-15,
- 2.2204460492503131e-16, -1.1102230246251565e-15,
- -1.3322676295501878e-15}, /* L17 */
-{2.9363780703483666e-01, 5.8286708792820718e-16,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 4.4408920985006262e-16}, /* L18 */
-{8.0143251092966705e-01, 1.6792123247455493e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- 8.8817841970012523e-16}, /* L19 */
-{5.9147043988445613e-01, 1.3045120539345589e-15,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -2.2204460492503131e-16}, /* L20 */
-{5.9684867319455459e-01, 1.3877787807814457e-15,
- 2.2204460492503131e-16, 2.2204460492503131e-15,
- -1.4432899320127035e-15}, /* L21 */
-{4.7856411796145321e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.3314683517128287e-15}, /* L22 */
-{4.5775698239791013e-01, 1.1657341758564144e-15,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -2.9976021664879227e-15}, /* L23 */
-{6.7891536575880340e-01, 1.8041124150158794e-15,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- -2.2204460492503131e-15}, /* L24 */
-{5.8156934716077235e-01, 1.6098233857064770e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- 3.3306690738754696e-15}, /* L25 */
-{6.1704970521036173e-01, 1.7763568394002505e-15,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- -4.2188474935755949e-15}, /* L26 */
-{8.9129401863720303e-01, 2.6645352591003757e-15,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 2.4424906541753444e-15}, /* L27 */
-{8.9527300979183411e-01, 2.7755575615628914e-15,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -1.3322676295501878e-15}, /* L28 */
-{8.1253743509383025e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 6.6613381477509392e-16}, /* L29 */
-{8.6065578674654963e-01, 2.8588242884097781e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 8.8817841970012523e-16}, /* L30 */
-{9.0566972861522066e-01, 3.1086244689504383e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -1.6653345369377348e-15}, /* L31 */
-{7.3636205055376436e-01, 2.6090241078691179e-15,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- 2.1760371282653068e-14}, /* L32 */
-{8.4318439831303504e-01, 3.0808688933348094e-15,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- 1.1102230246251565e-15}, /* L33 */
-{9.7321442476194397e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 2.2204460492503131e-16}, /* L34 */
-{1.4583044708110673e+00, 5.6621374255882984e-15,
- 2.2204460492503131e-16, -3.9968028886505635e-15,
- -4.4408920985006262e-16}, /* L35 */
-{7.3322293824479434e-01, 2.9282132274488504e-15,
- 2.2204460492503131e-16, -1.7652546091539989e-14,
- 1.4654943925052066e-14}, /* L36 */
-{8.4526789345500786e-01, 3.4694469519536142e-15,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- -7.7715611723760958e-16}, /* L37 */
-{3.8846732871836481e-01, 1.6375789613221059e-15,
- 2.2204460492503131e-16, 1.0658141036401503e-14,
- 1.9984014443252818e-15}, /* L38 */
-{9.3664352009106877e-01, 4.0523140398818214e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 1.7763568394002505e-15}, /* L39 */
-{5.5043845221636245e-01, 2.4424906541753444e-15,
- 2.2204460492503131e-16, -9.0261131902025227e-13,
- 2.2069013283498862e-12}, /* L40 */
-{8.0551968617249903e-01, 3.6637359812630166e-15,
- 2.2204460492503131e-16, -2.6312285683616210e-14,
- -2.6645352591003757e-14}, /* L41 */
-{1.0454756316476288e+00, 4.8711035205428743e-15,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- -5.2180482157382357e-15}, /* L42 */
-{9.7752283269141105e-01, 4.6629367034256575e-15,
- 2.2204460492503131e-16, -5.5511151231257827e-16,
- -2.6645352591003757e-15}, /* L43 */
-{8.6148166850218699e-01, 4.2049697057677804e-15,
- 2.2204460492503131e-16, -3.4416913763379853e-15,
- 1.1102230246251565e-15}, /* L44 */
-{1.0563970295090952e+00, 5.2735593669694936e-15,
- 2.2204460492503131e-16, -2.8865798640254070e-15,
- -1.2101430968414206e-14}, /* L45 */
-{1.0211938676275674e+00, 5.2111093218343285e-15,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- -4.1078251911130792e-15}, /* L46 */
-{9.6885685013140577e-01, 5.0515147620444623e-15,
- 2.2204460492503131e-16, -3.8191672047105385e-14,
- 4.4408920985006262e-15}, /* L47 */
-{1.1825826121868439e+00, 6.2970462177958098e-15,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 6.6613381477509392e-15}, /* L48 */
-{1.5740038790865019e+00, 8.5625950774215198e-15,
- 2.2204460492503131e-16, -1.8984813721090177e-14,
- -8.1046280797636427e-15}, /* L49 */
-{9.0001388742580246e-01, 4.9960036108132044e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -3.2196467714129540e-15}, /* L50 */
-{8.5295433775635876e-01, 4.8294701571194310e-15,
- 2.2204460492503131e-16, -1.2212453270876722e-15,
- 3.7969627442180354e-14}, /* L51 */
-{1.3605979174225624e+00, 7.8548278992229825e-15,
- 2.2204460492503131e-16, 3.5527136788005009e-15,
- 3.7747582837255322e-15}, /* L52 */
-{8.8680613645728601e-01, 5.2180482157382357e-15,
- 2.2204460492503131e-16, -2.4424906541753444e-15,
- -3.8857805861880479e-15}, /* L53 */
-{9.6529267247058115e-01, 5.7870375158586285e-15,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -2.3314683517128287e-15}, /* L54 */
-{8.9092283805786343e-01, 5.4400928206632670e-15,
- 2.2204460492503131e-16, 2.8865798640254070e-15,
- 4.4408920985006262e-15}, /* L55 */
-{9.1965704766721101e-01, 5.7176485768195562e-15,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- -1.8873791418627661e-15}, /* L56 */
-{1.0000154304731188e+00, 6.3282712403633923e-15,
- 2.2204460492503131e-16, -2.3314683517128287e-15,
- 7.9936057773011271e-15}, /* L57 */
-{1.2586401107668486e+00, 8.1046280797636427e-15,
- 2.2204460492503131e-16, 3.8968828164342995e-13,
- 2.3470114740575809e-13}, /* L58 */
-{8.8242887032215045e-01, 5.7800986219547212e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -2.3314683517128287e-15}, /* L59 */
-{9.7501504471128808e-01, 6.4948046940571658e-15,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- 8.8817841970012523e-16}, /* L60 */
-{1.3688735810572958e+00, 9.2703622556200571e-15,
- 2.2204460492503131e-16, -7.4606987254810520e-14,
- -1.2134737659152961e-13}, /* L61 */
-{1.0902385968313253e+00, 7.5044137570756675e-15,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 3.7747582837255322e-15}, /* L62 */
-{7.2620168165310051e-01, 5.0792703376600912e-15,
- 2.2204460492503131e-16, -4.8849813083506888e-15,
- 4.4408920985006262e-16}, /* L63 */
-{1.0722821705659045e+00, 7.6189055064901368e-15,
- 2.2204460492503131e-16, -1.5543122344752192e-15,
- 2.2204460492503131e-16}, /* L64 */
-{1.1692488110146999e+00, 8.4376949871511897e-15,
- 2.2204460492503131e-16, -8.8817841970012523e-16,
- -2.7755575615628914e-15}, /* L65 */
-{1.0378948028395030e+00, 7.6050277186823223e-15,
- 2.2204460492503131e-16, -2.0206059048177849e-14,
- 7.3274719625260332e-15}, /* L66 */
-{1.3750212169004810e+00, 1.0227929614359255e-14,
- 2.2204460492503131e-16, -9.7699626167013776e-15,
- 6.6613381477509392e-15}, /* L67 */
-{7.9780642798774548e-01, 6.0229599085914742e-15,
- 2.2204460492503131e-16, -9.7699626167013776e-15,
- -3.8857805861880479e-15}, /* L68 */
-{1.2445844216208166e+00, 9.5340402239685318e-15,
- 2.2204460492503131e-16, 1.8141044222375058e-13,
- 3.5194069880617462e-13}, /* L69 */
-{1.0643021367178127e+00, 8.2711615334574162e-15,
- 2.2204460492503131e-16, -3.2196467714129540e-15,
- -1.5543122344752192e-15}, /* L70 */
-{1.1760744851338045e+00, 9.2703622556200571e-15,
- 2.2204460492503131e-16, -3.2751579226442118e-14,
- -2.0539125955565396e-14}, /* L71 */
-{1.3402984588979951e+00, 1.0713652187632761e-14,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- -1.9984014443252818e-15}, /* L72 */
-{1.0993320314446988e+00, 8.9095397726168812e-15,
- 2.2204460492503131e-16, -2.3869795029440866e-14,
- 7.3274719625260332e-15}, /* L73 */
-{1.4020486609673712e+00, 1.1518563880485999e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- -5.8841820305133297e-15}, /* L74 */
-{1.7035809741547945e+00, 1.4184942283279600e-14,
- 2.2204460492503131e-16, -9.9920072216264089e-16,
- -5.2180482157382357e-15}, /* L75 */
-{1.1513335548210102e+00, 9.7144514654701197e-15,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- -3.2196467714129540e-15}, /* L76 */
-{1.1802130161590194e+00, 1.0089151736281110e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- -1.7763568394002505e-15}, /* L77 */
-{1.0448879177378469e+00, 9.0483176506950258e-15,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 5.4178883601707639e-14}, /* L78 */
-{1.7785084554616846e+00, 1.5598633495983449e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 8.8817841970012523e-16}, /* L79 */
-{1.5640866342229285e+00, 1.3891665595622271e-14,
- 2.2204460492503131e-16, 4.4830805734363821e-13,
- 1.3677947663381929e-13}, /* L80 */
-{1.2407598859573825e+00, 1.1157741397482823e-14,
- 2.2204460492503131e-16, -4.5519144009631418e-15,
- 1.1102230246251565e-15}, /* L81 */
-{2.3414995445223701e+00, 2.1316282072803006e-14,
- 2.2204460492503131e-16, -5.1070259132757201e-15,
- -3.0087043967341742e-14}, /* L82 */
-{1.4909868616993309e+00, 1.3739009929736312e-14,
- 2.2204460492503131e-16, 2.5091040356528538e-14,
- -6.5503158452884236e-15}, /* L83 */
-{1.1250173592822328e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, -4.1744385725905886e-14,
- -3.4416913763379853e-15}, /* L84 */
-{1.9217208290746031e+00, 1.8134799217861541e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-15,
- -2.4424906541753444e-15}, /* L85 */
-{1.6860725281232691e+00, 1.6098233857064770e-14,
- 2.2204460492503131e-16, 8.2156503822261584e-15,
- -6.6613381477509392e-16}, /* L86 */
-{1.0862236572379966e+00, 1.0491607582707729e-14,
- 2.2204460492503131e-16, -2.9087843245179101e-14,
- -1.2212453270876722e-14}, /* L87 */
-{1.6988898506332140e+00, 1.6597834218146090e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- -1.0436096431476471e-14}, /* L88 */
-{1.4101341182513836e+00, 1.3933298959045715e-14,
- 2.2204460492503131e-16, 1.1324274851176597e-14,
- -2.8865798640254070e-15}, /* L89 */
-{9.4445901766904683e-01, 9.4368957093138306e-15,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 4.2188474935755949e-15}, /* L90 */
-{8.8462903464924114e-01, 8.9372953482325102e-15,
- 2.2204460492503131e-16, 2.7311486405778851e-14,
- 4.3076653355456074e-14}, /* L91 */
-{1.4293698816001337e+00, 1.4599432773820809e-14,
- 2.2204460492503131e-16, -9.7699626167013776e-15,
- 6.8833827526759706e-15}, /* L92 */
-{1.4381942346857988e+00, 1.4849232954361469e-14,
- 2.2204460492503131e-16, -1.0547118733938987e-14,
- 2.8865798640254070e-15}, /* L93 */
-{1.4095962184859603e+00, 1.4710455076283324e-14,
- 2.2204460492503131e-16, -1.4765966227514582e-14,
- -7.9936057773011271e-15}, /* L94 */
-{2.8039906346555035e+00, 2.9573565818452607e-14,
- 2.2204460492503131e-16, -1.6431300764452317e-14,
- 5.5511151231257827e-15}, /* L95 */
-{1.6041914197172078e+00, 1.7097434579227411e-14,
- 2.2204460492503131e-16, -1.5987211554602254e-14,
- -2.6645352591003757e-15}, /* L96 */
-{1.8170383466070419e+00, 1.9567680809018384e-14,
- 2.2204460492503131e-16, -1.5321077739827160e-14,
- 5.3290705182007514e-15}, /* L97 */
-{1.3439301759339604e+00, 1.4621984179008507e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- -1.3322676295501878e-15}, /* L98 */
-{1.9242721162132923e+00, 2.1149748619109232e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- 8.8817841970012523e-16}, /* L99 */
-{2.9625457127765391e+00, 3.2890357104520263e-14,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- 5.5511151231257827e-15}, /* L100 */
-{1.2852921095869991e+00, 1.4412082638415313e-14,
- 2.2204460492503131e-16, -2.4535928844215960e-14,
- -1.0103029524088925e-14}, /* L101 */
-{1.3970803808080099e+00, 1.5820678100908481e-14,
- 2.2204460492503131e-16, -7.7715611723760958e-15,
- 6.2172489379008766e-15}, /* L102 */
-{1.6844920115250395e+00, 1.9262369477246466e-14,
- 2.2204460492503131e-16, -2.6756374893466273e-14,
- -6.8833827526759706e-15}, /* L103 */
-{1.3750212169004725e+00, 1.5876189252139739e-14,
- 2.2204460492503131e-16, -1.0547118733938987e-14,
- 1.5765166949677223e-14}, /* L104 */
-{1.3047820378553872e+00, 1.5210055437364645e-14,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- 9.5479180117763462e-15}, /* L105 */
-{1.1226588323233835e+00, 1.3211653993039363e-14,
- 2.2204460492503131e-16, 2.3758772726978350e-14,
- -5.9063864910058328e-14}, /* L106 */
-{1.4112367289854100e+00, 1.6764367671839864e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 1.2656542480726785e-14}, /* L107 */
-{2.4329079107111644e+00, 2.9171109972025988e-14,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- -5.9952043329758453e-15}, /* L108 */
-{1.3486446631150799e+00, 1.6320278461989801e-14,
- 2.2204460492503131e-16, 3.3084646133829665e-14,
- 3.1974423109204508e-14}, /* L109 */
-{1.6272978368607867e+00, 1.9872992140790302e-14,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- 2.2204460492503131e-16}, /* L110 */
-{1.9583635513431428e+00, 2.4133472997789340e-14,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- -2.7755575615628914e-15}, /* L111 */
-{1.4910944365089831e+00, 1.8540724511240114e-14,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- -3.1863400806741993e-14}, /* L112 */
-{1.6593176390593474e+00, 2.0816681711721685e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- 1.0436096431476471e-14}, /* L113 */
-{1.4802859990555859e+00, 1.8735013540549517e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- -1.5543122344752192e-15}, /* L114 */
-{2.1060107571102940e+00, 2.6888213877640510e-14,
- 2.2204460492503131e-16, 3.3528735343679728e-14,
- -1.0325074129013956e-14}, /* L115 */
-{1.2823473731281858e+00, 1.6514567491299204e-14,
- 2.2204460492503131e-16, -9.4368957093138306e-15,
- -2.2537527399890678e-14}, /* L116 */
-{1.6709659543366842e+00, 2.1704860131421810e-14,
- 2.2204460492503131e-16, -1.0558220964185239e-13,
- -1.3256062914024369e-13}, /* L117 */
-{2.0731252091441892e+00, 2.7158830739892892e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- -2.0341506257182118e-12}, /* L118 */
-{1.1575808869552118e+00, 1.5293322164211531e-14,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- -8.4376949871511897e-15}, /* L119 */
-{2.4625379975399899e+00, 3.2807090377673376e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -8.4376949871511897e-15}, /* L120 */
-{1.7438285605758650e+00, 2.3425705819590803e-14,
- 2.2204460492503131e-16, 1.2456702336294256e-13,
- -5.9396931817445875e-14}, /* L121 */
-{2.5451212390319462e+00, 3.4472424914611111e-14,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- 4.4408920985006262e-15}, /* L122 */
-{1.1016430148704714e+00, 1.5043521983670871e-14,
- 2.2204460492503131e-16, -2.9198865547641617e-14,
- -2.6867397195928788e-14}, /* L123 */
-{1.4506272222286285e+00, 1.9970136655445003e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- 1.2434497875801753e-14}, /* L124 */
-{1.5360237012065137e+00, 2.1316282072803006e-14,
- 2.2204460492503131e-16, -6.4726002335646626e-14,
- 3.2862601528904634e-14}, /* L125 */
-{1.6746290145223433e+00, 2.3425705819590803e-14,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 7.7715611723760958e-15}, /* L126 */
-{1.3090753174492020e+00, 1.8457457784393227e-14,
- 2.2204460492503131e-16, -2.3980817331903381e-14,
- -2.6179058920661191e-13}, /* L127 */
-{1.9687803787438483e+00, 2.7977620220553945e-14,
- 2.2204460492503131e-16, -2.7755575615628914e-15,
- -9.9920072216264089e-16}, /* L128 */
-{1.9070061697393341e+00, 2.7311486405778851e-14,
- 2.2204460492503131e-16, 1.7319479184152442e-14,
- 3.4638958368304884e-14}, /* L129 */
-{2.1846490942642083e+00, 3.1530333899354446e-14,
- 2.2204460492503131e-16, -1.4876988529977098e-14,
- 7.9936057773011271e-15}, /* L130 */
-{2.0649173583425950e+00, 3.0031532816110484e-14,
- 2.2204460492503131e-16, -7.0499162063697440e-14,
- 1.4876988529977098e-14}, /* L131 */
-{1.3409297817707460e+00, 1.9650947535865271e-14,
- 2.2204460492503131e-16, 1.7541523789077473e-14,
- -5.8841820305133297e-15}, /* L132 */
-{1.5413771672704086e+00, 2.2759572004815709e-14,
- 2.2204460492503131e-16, -9.1038288019262836e-15,
- 6.8389738316909643e-14}, /* L133 */
-{1.8946187866518844e+00, 2.8185787037671162e-14,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- -6.6613381477509392e-15}, /* L134 */
-{1.6203953734517988e+00, 2.4286128663675299e-14,
- 2.2204460492503131e-16, -4.4408920985006262e-16,
- 3.7747582837255322e-15}, /* L135 */
-{1.5919363286574972e+00, 2.4036328483134639e-14,
- 2.2204460492503131e-16, -1.2878587085651816e-14,
- 1.0436096431476471e-14}, /* L136 */
-{1.9452854906648289e+00, 2.9587443606260422e-14,
- 2.2204460492503131e-16, -5.6621374255882984e-15,
- -1.0325074129013956e-14}, /* L137 */
-{2.2323714025370274e+00, 3.4201808052358729e-14,
- 2.2204460492503131e-16, -5.9063864910058328e-14,
- -3.9634961979118088e-14}, /* L138 */
-{1.8075818482472423e+00, 2.7894353493707058e-14,
- 2.2204460492503131e-16, 7.3274719625260332e-15,
- -9.4368957093138306e-15}, /* L139 */
-{1.5321664988307440e+00, 2.3814283878209608e-14,
- 2.2204460492503131e-16, -2.9942714974140472e-13,
- -3.4139358007223564e-13}, /* L140 */
-{2.6347924285160054e+00, 4.1244785364824565e-14,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- -8.4376949871511897e-15}, /* L141 */
-{1.8521412550311385e+00, 2.9198865547641617e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- 1.0658141036401503e-14}, /* L142 */
-{1.8496788906302410e+00, 2.9365399001335390e-14,
- 2.2204460492503131e-16, -1.6653345369377348e-15,
- -3.2862601528904634e-14}, /* L143 */
-{1.3906464580015256e+00, 2.2232216068118760e-14,
- 2.2204460492503131e-16, -1.1213252548714081e-14,
- 3.4416913763379853e-14}, /* L144 */
-{1.4827815003566338e+00, 2.3869795029440866e-14,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 9.9920072216264089e-15}, /* L145 */
-{1.9366737189468126e+00, 3.1391556021276301e-14,
- 2.2204460492503131e-16, -2.8532731732866523e-14,
- 2.9976021664879227e-14}, /* L146 */
-{1.6802980362370283e+00, 2.7422508708241367e-14,
- 2.2204460492503131e-16, 7.7493567118835927e-14,
- 2.2204460492503131e-16}, /* L147 */
-{1.7094858372276440e+00, 2.8088642523016460e-14,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -1.1324274851176597e-14}, /* L148 */
-{3.3616290519342669e+00, 5.5608295745912528e-14,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- 1.9761969838327786e-14}, /* L149 */
-{2.9133782874447340e+00, 4.8516746176119341e-14,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- 1.0658141036401503e-14}, /* L150 */
-{1.9205594360078899e+00, 3.2196467714129540e-14,
- 2.2204460492503131e-16, 4.5075054799781356e-14,
- 2.9976021664879227e-14}, /* L151 */
-{1.5723926834412174e+00, 2.6534330288541241e-14,
- 2.2204460492503131e-16, -2.1649348980190553e-14,
- 1.7763568394002505e-14}, /* L152 */
-{2.2484007064231508e+00, 3.8191672047105385e-14,
- 2.2204460492503131e-16, -1.1990408665951691e-14,
- -8.4376949871511897e-15}, /* L153 */
-{2.2159432834345298e+00, 3.7886360715333467e-14,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- 5.7731597280508140e-14}, /* L154 */
-{2.4839092950460229e+00, 4.2743586448068527e-14,
- 2.2204460492503131e-16, 1.7763568394002505e-15,
- -3.3639757646142243e-14}, /* L155 */
-{2.8429925859922287e+00, 4.9238391142125693e-14,
- 2.2204460492503131e-16, 9.3702823278363212e-14,
- -4.3298697960381105e-15}, /* L156 */
-{1.7985946317186561e+00, 3.1349922657852858e-14,
- 2.2204460492503131e-16, 3.9079850466805510e-14,
- -4.3187675657918589e-14}, /* L157 */
-{2.2500347185644372e+00, 3.9468428525424315e-14,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- 9.3258734068513149e-15}, /* L158 */
-{2.5189067918509283e+00, 4.4464432136237519e-14,
- 2.2204460492503131e-16, 2.3048229991218250e-13,
- -1.4599432773820809e-13}, /* L159 */
-{2.9300256797347366e+00, 5.2046908449732143e-14,
- 2.2204460492503131e-16, -1.3766765505351941e-14,
- 9.1038288019262836e-15}, /* L160 */
-{2.2018973298304485e+00, 3.9357406222961799e-14,
- 2.2204460492503131e-16, 2.1538326677728037e-14,
- -2.4535928844215960e-14}, /* L161 */
-{2.4784333045366185e+00, 4.4575454438700035e-14,
- 2.2204460492503131e-16, -2.8088642523016460e-14,
- 2.2204460492503131e-16}, /* L162 */
-{2.4478905322621287e+00, 4.4297898682543746e-14,
- 2.2204460492503131e-16, 6.3060667798708891e-14,
- 8.2156503822261584e-15}, /* L163 */
-{1.9390543103075617e+00, 3.5305092183079978e-14,
- 2.2204460492503131e-16, -1.0214051826551440e-14,
- 2.9753977059954195e-14}, /* L164 */
-{2.3926979047394039e+00, 4.3830390705767996e-14,
- 2.2204460492503131e-16, -2.9753977059954195e-14,
- 3.3306690738754696e-15}, /* L165 */
-{1.8870773108172394e+00, 3.4777736246383029e-14,
- 2.2204460492503131e-16, -3.0642155479654321e-14,
- -7.2830630415410269e-14}, /* L166 */
-{3.0988502111965350e+00, 5.7454041524351851e-14,
- 2.2204460492503131e-16, 1.9984014443252818e-15,
- -1.1768364061026659e-14}, /* L167 */
-{2.0774130073509189e+00, 3.8746783559417963e-14,
- 2.2204460492503131e-16, 1.7963408538435033e-13,
- -9.8254737679326354e-14}, /* L168 */
-{1.7840511969681965e+00, 3.3473224192448470e-14,
- 2.2204460492503131e-16, 1.2656542480726785e-14,
- 2.0428103653102880e-14}, /* L169 */
-{1.6103189652471119e+00, 3.0392355299113660e-14,
- 2.2204460492503131e-16, -6.4392935428259079e-15,
- 3.3306690738754696e-15}, /* L170 */
-{1.4590868415381790e+00, 2.7700064464397656e-14,
- 2.2204460492503131e-16, -3.4861002973229915e-14,
- 1.7541523789077473e-14}, /* L171 */
-{2.0625318253507161e+00, 3.9385161798577428e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 5.7731597280508140e-15}, /* L172 */
-{2.4509048700612515e+00, 4.7073456244106637e-14,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- -4.3298697960381105e-15}, /* L173 */
-{2.7672840791527755e+00, 5.3457238635701287e-14,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- -1.2778667013435552e-13}, /* L174 */
-{2.0886036562166272e+00, 4.0578651550049472e-14,
- 2.2204460492503131e-16, -2.6867397195928788e-14,
- -9.6589403142388619e-15}, /* L175 */
-{2.3238994946785558e+00, 4.5408121707168903e-14,
- 2.2204460492503131e-16, 4.7295500849031669e-14,
- -2.7200464103316335e-14}, /* L176 */
-{2.8051280295473875e+00, 5.5122573172639022e-14,
- 2.2204460492503131e-16, -7.3274719625260332e-15,
- 1.1546319456101628e-14}, /* L177 */
-{1.9901992485659987e+00, 3.9329650647346170e-14,
- 2.2204460492503131e-16, -2.2848389846785722e-13,
- -1.6198153929281034e-13}, /* L178 */
-{2.7221090418883036e+00, 5.4095616874860752e-14,
- 2.2204460492503131e-16, -5.9952043329758453e-15,
- 2.7311486405778851e-14}, /* L179 */
-{1.7104430592043798e+00, 3.4180991370647007e-14,
- 2.2204460492503131e-16, -7.4384942649885488e-15,
- -1.2945200467129325e-13}, /* L180 */
-{1.6882166573145112e+00, 3.3924252296202440e-14,
- 2.2204460492503131e-16, -9.8809849191638932e-15,
- -7.3274719625260332e-15}, /* L181 */
-{3.0563658417612878e+00, 6.1756155744774333e-14,
- 2.2204460492503131e-16, -2.2315482794965646e-14,
- 1.5543122344752192e-14}, /* L182 */
-{2.9494990633760696e+00, 5.9924287754142824e-14,
- 2.2204460492503131e-16, -3.7858605139717838e-14,
- 5.5067062021407764e-14}, /* L183 */
-{1.8668766324320636e+00, 3.8136160895874127e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 2.2204460492503131e-14}, /* L184 */
-{3.3041050371670369e+00, 6.7862382380212694e-14,
- 2.2204460492503131e-16, -6.6435745793569367e-13,
- 3.2640556923979602e-13}, /* L185 */
-{2.2150879427681005e+00, 4.5741188614556449e-14,
- 2.2204460492503131e-16, 1.3256062914024369e-13,
- 1.8207657603852567e-14}, /* L186 */
-{2.5762429605903074e+00, 5.3484994211316916e-14,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- -1.3100631690576847e-14}, /* L187 */
-{2.6542962755625545e+00, 5.5400128928795311e-14,
- 2.2204460492503131e-16, -1.7685852782278744e-13,
- -1.5509815654013437e-13}, /* L188 */
-{2.4524187937789370e+00, 5.1458837191376006e-14,
- 2.2204460492503131e-16, -4.8960835385969403e-14,
- -7.4384942649885488e-15}, /* L189 */
-{2.1552964146248783e+00, 4.5463632858400160e-14,
- 2.2204460492503131e-16, -2.9087843245179101e-14,
- 2.4646951146678475e-14}, /* L190 */
-{2.2729408311734809e+00, 4.8197557056539608e-14,
- 2.2204460492503131e-16, -1.2434497875801753e-14,
- -1.1102230246251565e-16}, /* L191 */
-{2.7057709173477096e+00, 5.7676086129276882e-14,
- 2.2204460492503131e-16, -2.1205259770340490e-14,
- 2.5313084961453569e-14}, /* L192 */
-{2.8238777699887536e+00, 6.0507154842071031e-14,
- 2.2204460492503131e-16, 1.1768364061026659e-14,
- -5.2180482157382357e-15}, /* L193 */
-{2.7062273247337711e+00, 5.8286708792820718e-14,
- 2.2204460492503131e-16, 3.2418512319054571e-14,
- 1.7319479184152442e-14}, /* L194 */
-{1.5974605466275047e+00, 3.4583447217073626e-14,
- 2.2204460492503131e-16, -1.5543122344752192e-14,
- 3.7969627442180354e-14}, /* L195 */
-{3.3776031376180593e+00, 7.3496764230185363e-14,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- 3.5749181392930041e-14}, /* L196 */
-{2.8191266216130195e+00, 6.1657276506643655e-14,
- 2.2204460492503131e-16, 1.6919798895287386e-13,
- -3.7081449022480228e-14}, /* L197 */
-{2.3611475441724723e+00, 5.1902926401226068e-14,
- 2.2204460492503131e-16, 3.9745984281580604e-14,
- -3.2529534621517087e-14}, /* L198 */
-{2.1935011829220654e+00, 4.8461235024888083e-14,
- 2.2204460492503131e-16, 5.9507954119908391e-14,
- -1.7208456881689926e-14}, /* L199 */
-{2.5250389619438347e+00, 5.6066262743570405e-14,
- 2.2204460492503131e-16, -1.3200551762793111e-13,
- -4.2410519540680980e-14}, /* L200 */
-{2.3084933320371150e+00, 5.1514348342607263e-14,
- 2.2204460492503131e-16, 2.1760371282653068e-14,
- 4.8849813083506888e-15}, /* L201 */
-{2.1584491469616061e+00, 4.8405723873656825e-14,
- 2.2204460492503131e-16, -8.5709217501062085e-14,
- 5.5511151231257827e-15}, /* L202 */
-{3.3719732126048272e+00, 7.5994766035591965e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 2.4202861936828413e-14}, /* L203 */
-{2.5711181043290647e+00, 5.8231197641589461e-14,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- 1.4654943925052066e-14}, /* L204 */
-{2.2414980014670256e+00, 5.1014747981525943e-14,
- 2.2204460492503131e-16, -2.7233770794055090e-12,
- 4.0367709175370692e-13}, /* L205 */
-{2.6747985543232389e+00, 6.1173288656846125e-14,
- 2.2204460492503131e-16, -4.1855408028368402e-14,
- 1.9184653865522705e-13}, /* L206 */
-{2.4275736899163927e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, 4.5741188614556449e-14,
- 4.7295500849031669e-14}, /* L207 */
-{3.4207258595269141e+00, 7.8992368202079888e-14,
- 2.2204460492503131e-16, 4.8849813083506888e-15,
- 1.0214051826551440e-14}, /* L208 */
-{1.9928537167083293e+00, 4.6240788975637770e-14,
- 2.2204460492503131e-16, -6.2172489379008766e-15,
- 6.8833827526759706e-15}, /* L209 */
-{3.3228191290223670e+00, 7.7469280990172251e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-14,
- 1.1213252548714081e-13}, /* L210 */
-{2.3815533356051382e+00, 5.5788706987414116e-14,
- 2.2204460492503131e-16, -1.1213252548714081e-14,
- -1.6653345369377348e-15}, /* L211 */
-{3.7193970138113874e+00, 8.7541085491693593e-14,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- 1.3544720900426910e-14}, /* L212 */
-{2.9190591262752417e+00, 6.9028116556069108e-14,
- 2.2204460492503131e-16, -2.6645352591003757e-15,
- 7.1054273576010019e-15}, /* L213 */
-{2.7885944305365191e+00, 6.6252558994506217e-14,
- 2.2204460492503131e-16, 6.2172489379008766e-15,
- -8.9928064994637680e-15}, /* L214 */
-{3.2233055503148913e+00, 7.6938455606523348e-14,
- 2.2204460492503131e-16, 7.1276318180935050e-14,
- 8.2156503822261584e-15}, /* L215 */
-{2.0960971580864860e+00, 5.0265347439903962e-14,
- 2.2204460492503131e-16, -4.8405723873656825e-14,
- 1.3100631690576847e-14}, /* L216 */
-{3.6682593670737966e+00, 8.8373752760162461e-14,
- 2.2204460492503131e-16, -1.0820233597996776e-12,
- 3.2818192607919627e-13}, /* L217 */
-{2.3555409337051239e+00, 5.7009952314501788e-14,
- 2.2204460492503131e-16, -9.0483176506950258e-14,
- -1.0935696792557792e-13}, /* L218 */
-{2.7580334246836968e+00, 6.7057470687359455e-14,
- 2.2204460492503131e-16, -8.4376949871511897e-15,
- -4.2188474935755949e-15}, /* L219 */
-{2.5875399263489585e+00, 6.3199445676787036e-14,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- -9.7699626167013776e-15}, /* L220 */
-{2.6776431266172818e+00, 6.5697447482193638e-14,
- 2.2204460492503131e-16, -4.1078251911130792e-15,
- -3.0975222387041867e-14}, /* L221 */
-{2.9465544750369372e+00, 7.2622463598293052e-14,
- 2.2204460492503131e-16, 2.6645352591003757e-15,
- 1.8873791418627661e-14}, /* L222 */
-{2.9103588088650989e+00, 7.2053474298172659e-14,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- -1.0491607582707729e-13}, /* L223 */
-{2.1942302860490086e+00, 5.4567461660326444e-14,
- 2.2204460492503131e-16, -1.2543299732215019e-12,
- -2.3796520309815605e-12}, /* L224 */
-{2.9328230319262962e+00, 7.3260841837452517e-14,
- 2.2204460492503131e-16, 5.5733195836182858e-14,
- 3.3306690738754696e-15}, /* L225 */
-{2.4845516115510300e+00, 6.2339022832702540e-14,
- 2.2204460492503131e-16, -1.7541523789077473e-14,
- -2.4313884239290928e-14}, /* L226 */
-{2.8414535359253952e+00, 7.1609385088322597e-14,
- 2.2204460492503131e-16, 4.5297099404706387e-14,
- -9.8365759981788869e-14}, /* L227 */
-{2.1601210504727981e+00, 5.4678483962788960e-14,
- 2.2204460492503131e-16, 3.8413716652030416e-14,
- 2.5757174171303632e-14}, /* L228 */
-{3.1812717951789433e+00, 8.0879747343942654e-14,
- 2.2204460492503131e-16, -1.7047474543119279e-12,
- 6.3793414994961495e-13}, /* L229 */
-{3.1060261875834261e+00, 7.9311557321659620e-14,
- 2.2204460492503131e-16, 3.7303493627405260e-14,
- 5.1070259132757201e-14}, /* L230 */
-{2.8831613709740678e+00, 7.3940853440035426e-14,
- 2.2204460492503131e-16, -2.7533531010703882e-14,
- -1.0769163338864018e-14}, /* L231 */
-{2.5205130300389698e+00, 6.4920291364956029e-14,
- 2.2204460492503131e-16, 6.3948846218409017e-14,
- 2.5757174171303632e-14}, /* L232 */
-{4.5757143811716361e+00, 1.1836365221284950e-13,
- 2.2204460492503131e-16, -1.8651746813702630e-14,
- 1.3766765505351941e-14}, /* L233 */
-{2.3782418250352051e+00, 6.1783911320389961e-14,
- 2.2204460492503131e-16, 6.4837024638109142e-14,
- -8.7707618945387367e-15}, /* L234 */
-{2.6340831977140020e+00, 6.8722805224297190e-14,
- 2.2204460492503131e-16, -5.1736392947532295e-14,
- -1.9428902930940239e-14}, /* L235 */
-{2.4438936420564654e+00, 6.4032112945255903e-14,
- 2.2204460492503131e-16, -4.3298697960381105e-15,
- -1.0769163338864018e-14}, /* L236 */
-{3.6435161359218013e+00, 9.5867758176382267e-14,
- 2.2204460492503131e-16, 8.8817841970012523e-15,
- 2.6645352591003757e-14}, /* L237 */
-{3.0378620009741142e+00, 8.0269124680398818e-14,
- 2.2204460492503131e-16, 1.9317880628477724e-14,
- -1.4466206010865790e-13}, /* L238 */
-{3.6726508121238957e+00, 9.7449825986473115e-14,
- 2.2204460492503131e-16, -1.4332979247910771e-13,
- 2.7533531010703882e-14}, /* L239 */
-{1.8989876351583057e+00, 5.0598414347291509e-14,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- 7.3052675020335300e-14}, /* L240 */
-{3.4689331945027613e+00, 9.2814644858663087e-14,
- 2.2204460492503131e-16, 8.8373752760162461e-14,
- -7.7937656328685989e-14}, /* L241 */
-{3.7774343197562574e+00, 1.0148826223854712e-13,
- 2.2204460492503131e-16, -1.3256062914024369e-13,
- -2.0405899192610377e-13}, /* L242 */
-{2.6003487659619116e+00, 7.0152217368502079e-14,
- 2.2204460492503131e-16, -1.6106005418237146e-12,
- -5.1847415249994810e-13}, /* L243 */
-{2.8709459387145744e+00, 7.7771122874992216e-14,
- 2.2204460492503131e-16, -1.3655743202889425e-14,
- 1.1324274851176597e-14}, /* L244 */
-{3.5551568977225330e+00, 9.6700425444851135e-14,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- 1.0658141036401503e-14}, /* L245 */
-{4.1484379951128876e+00, 1.1329825966299722e-13,
- 2.2204460492503131e-16, -8.7707618945387367e-15,
- -5.9952043329758453e-15}, /* L246 */
-{3.4089594836366168e+00, 9.3480778673438181e-14,
- 2.2204460492503131e-16, 7.2830630415410269e-14,
- 6.8611782921834674e-14}, /* L247 */
-{2.5645557007292012e+00, 7.0610184366159956e-14,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- -7.2053474298172659e-14}, /* L248 */
-{3.0582801217071753e+00, 8.4543483325205671e-14,
- 2.2204460492503131e-16, -1.6764367671839864e-14,
- -3.0864200084579352e-14}, /* L249 */
-{2.9685458053592919e+00, 8.2392426214994430e-14,
- 2.2204460492503131e-16, -3.2196467714129540e-14,
- -1.9650947535865271e-14}, /* L250 */
-{3.6434825146120655e+00, 1.0152989560197057e-13,
- 2.2204460492503131e-16, 1.7097434579227411e-14,
- 1.5543122344752192e-14}, /* L251 */
-{3.0139353946202108e+00, 8.4321438720280639e-14,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- -1.5543122344752192e-15}, /* L252 */
-{2.8508345028798892e+00, 8.0074835651089415e-14,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- 1.1168843627729075e-13}, /* L253 */
-{3.5039910752784365e+00, 9.8809849191638932e-14,
- 2.2204460492503131e-16, 7.1276318180935050e-14,
- 2.0805579481475434e-13}, /* L254 */
-{3.7103513692402537e+00, 1.0504097591734762e-13,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- -3.1530333899354446e-14}, /* L255 */
-{2.7695739851769900e+00, 7.8714812445923599e-14,
- 2.2204460492503131e-16, 5.1070259132757201e-15,
- 2.5091040356528538e-14}, /* L256 */
-{2.7724163198841438e+00, 7.9103390504542404e-14,
- 2.2204460492503131e-16, 3.5305092183079978e-14,
- 4.8472337255134335e-13}, /* L257 */
-{3.7132355906710761e+00, 1.0635936575909000e-13,
- 2.2204460492503131e-16, 5.7287508070658077e-14,
- -7.7049477908985864e-14}, /* L258 */
-{3.0791980919006119e+00, 8.8540286213856234e-14,
- 2.2204460492503131e-16, 1.7985612998927536e-14,
- -9.6589403142388619e-15}, /* L259 */
-{2.0783974547759732e+00, 5.9993676693181897e-14,
- 2.2204460492503131e-16, 2.9531932455029164e-14,
- -4.1078251911130792e-15}, /* L260 */
-{3.8851174195338651e+00, 1.1257661469699087e-13,
- 2.2204460492503131e-16, 1.6875389974302379e-13,
- 2.6711965972481266e-13}, /* L261 */
-{4.3186496530423506e+00, 1.2561826578938451e-13,
- 2.2204460492503131e-16, -5.1136872514234710e-13,
- 5.1736392947532295e-14}, /* L262 */
-{3.7909330197018480e+00, 1.1068923555512811e-13,
- 2.2204460492503131e-16, -7.8492767840998567e-14,
- 6.5503158452884236e-14}, /* L263 */
-{3.9299848830139119e+00, 1.1518563880485999e-13,
- 2.2204460492503131e-16, -5.8841820305133297e-15,
- -1.4155343563970746e-13}, /* L264 */
-{4.1774229491837191e+00, 1.2290168882600483e-13,
- 2.2204460492503131e-16, -1.5987211554602254e-14,
- 4.0412118096355698e-14}, /* L265 */
-{2.7744789010868378e+00, 8.1934459217336553e-14,
- 2.2204460492503131e-16, 3.9968028886505635e-15,
- 6.4392935428259079e-15}, /* L266 */
-{3.7355445317129057e+00, 1.1073086891855155e-13,
- 2.2204460492503131e-16, -3.0464519795714295e-13,
- -9.8920871494101448e-14}, /* L267 */
-{2.3022743306039679e+00, 6.8500760619372159e-14,
- 2.2204460492503131e-16, -6.5614180755346752e-14,
- 2.1094237467877974e-14}, /* L268 */
-{2.5474370770692856e+00, 7.6078032762438852e-14,
- 2.2204460492503131e-16, -9.7699626167013776e-15,
- 2.1094237467877974e-14}, /* L269 */
-{2.9259710743468554e+00, 8.7707618945387367e-14,
- 2.2204460492503131e-16, -9.2925667161125602e-14,
- -1.9428902930940239e-14}, /* L270 */
-{4.1684222533137527e+00, 1.2541356841921925e-13,
- 2.2204460492503131e-16, 8.5043083686286991e-14,
- 3.7525538232330291e-14}, /* L271 */
-{3.7500578642739915e+00, 1.1324274851176597e-13,
- 2.2204460492503131e-16, -5.9729998724833422e-14,
- -7.8825834748386114e-15}, /* L272 */
-{2.7784311502337311e+00, 8.4210416417818124e-14,
- 2.2204460492503131e-16, -1.0880185641326534e-14,
- 1.4876988529977098e-14}, /* L273 */
-{4.3778047768327930e+00, 1.3317125180378753e-13,
- 2.2204460492503131e-16, -6.0063065632220969e-14,
- -5.9952043329758453e-14}, /* L274 */
-{2.9973189766086441e+00, 9.1510132804728528e-14,
- 2.2204460492503131e-16, -1.7985612998927536e-14,
- -1.6431300764452317e-14}, /* L275 */
-{4.1993401591234125e+00, 1.2867484855405564e-13,
- 2.2204460492503131e-16, -6.5392136150421720e-14,
- -3.1086244689504383e-15}, /* L276 */
-{2.8780058252709164e+00, 8.8506459106074686e-14,
- 2.2204460492503131e-16, 3.7059244561987725e-13,
- -3.6881608878047700e-13}, /* L277 */
-{3.5000540066536838e+00, 1.0802470029602773e-13,
- 2.2204460492503131e-16, -8.5043083686286991e-14,
- 2.6556534749033744e-13}, /* L278 */
-{2.8208320565674430e+00, 8.7374552037999820e-14,
- 2.2204460492503131e-16, -1.4210854715202004e-14,
- 1.3322676295501878e-15}, /* L279 */
-{4.0357765586935717e+00, 1.2545520178264269e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-14,
- 3.7969627442180354e-14}, /* L280 */
-{4.5320984010938821e+00, 1.4138690218601369e-13,
- 2.2204460492503131e-16, -6.4392935428259079e-15,
- -5.5511151231257827e-16}, /* L281 */
-{2.7855039738885403e+00, 8.7208018584306046e-14,
- 2.2204460492503131e-16, -8.9928064994637680e-15,
- 2.0206059048177849e-14}, /* L282 */
-{4.0201592051375776e+00, 1.2630868573282328e-13,
- 2.2204460492503131e-16, 1.8429702208777599e-14,
- 2.8954616482224083e-13}, /* L283 */
-{3.5405475892265676e+00, 1.1163292512605949e-13,
- 2.2204460492503131e-16, -1.2068124277675452e-13,
- -1.0058620603103918e-13}, /* L284 */
-{3.1482941929541530e+00, 9.9614760884492171e-14,
- 2.2204460492503131e-16, 3.3306690738754696e-14,
- -2.2648549702353193e-14}, /* L285 */
-{3.7041655477529858e+00, 1.1761425167122752e-13,
- 2.2204460492503131e-16, 2.5535129566378600e-14,
- -9.8365759981788869e-14}, /* L286 */
-{4.0584249917889874e+00, 1.2931322679321511e-13,
- 2.2204460492503131e-16, -3.3750779948604759e-14,
- -1.7541523789077473e-14}, /* L287 */
-{4.7561497773972219e+00, 1.5207279879803082e-13,
- 2.2204460492503131e-16, 2.6645352591003757e-14,
- 9.9920072216264089e-15}, /* L288 */
-{3.6280836638441429e+00, 1.1640688413194766e-13,
- 2.2204460492503131e-16, -4.1633363423443370e-14,
- -5.1847415249994810e-14}, /* L289 */
-{3.9892856935458521e+00, 1.2843892616132280e-13,
- 2.2204460492503131e-16, -7.3718808835110394e-14,
- -9.9253938401488995e-14}, /* L290 */
-{2.6392159814544351e+00, 8.5265128291212022e-14,
- 2.2204460492503131e-16, 9.2814644858663087e-14,
- 1.2034817586936697e-13}, /* L291 */
-{3.6918377878422501e+00, 1.1968204205459188e-13,
- 2.2204460492503131e-16, -1.0547118733938987e-14,
- -4.8294701571194310e-14}, /* L292 */
-{3.4659237871852957e+00, 1.1274314815068465e-13,
- 2.2204460492503131e-16, -3.3750779948604759e-14,
- -1.6653345369377348e-14}, /* L293 */
-{3.9949596023480041e+00, 1.3039569424222464e-13,
- 2.2204460492503131e-16, 7.5273121069585613e-14,
- -1.9073631563060189e-13}, /* L294 */
-{4.0949784407116701e+00, 1.3411494137471891e-13,
- 2.2204460492503131e-16, -1.3822276656583199e-13,
- -3.7403413699621524e-13}, /* L295 */
-{3.5878931998724704e+00, 1.1790568521519162e-13,
- 2.2204460492503131e-16, 2.2870594307278225e-14,
- -5.0626169922907138e-14}, /* L296 */
-{2.8889334658101604e+00, 9.5257135512838431e-14,
- 2.2204460492503131e-16, 8.0158102377936302e-14,
- 4.9515946898281982e-14}, /* L297 */
-{2.8020566592086511e+00, 9.2703622556200571e-14,
- 2.2204460492503131e-16, 9.7255536957163713e-14,
- 5.1403326040144748e-13}, /* L298 */
-{3.2726257482199399e+00, 1.0863532295957157e-13,
- 2.2204460492503131e-16, 8.4376949871511897e-15,
- -6.0174087934683484e-14}, /* L299 */
-{3.3617185387731494e+00, 1.1196599203344704e-13,
- 2.2204460492503131e-16, 1.1501910535116622e-13,
- -1.1157741397482823e-13}, /* L300 */
-{3.8219028266783948e+00, 1.2771728119531645e-13,
- 2.2204460492503131e-16, 9.0594198809412774e-14,
- 3.4194869158454821e-14}, /* L301 */
-{3.8543641095037744e+00, 1.2922996006636822e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-14,
- -1.4221956945448255e-13}, /* L302 */
-{3.3602003635324427e+00, 1.1303458169464875e-13,
- 2.2204460492503131e-16, 4.3742787170231168e-14,
- -9.4368957093138306e-15}, /* L303 */
-{3.6595959421092354e+00, 1.2351231148954867e-13,
- 2.2204460492503131e-16, -5.3179682879544998e-14,
- 5.1514348342607263e-14}, /* L304 */
-{3.1943115840600873e+00, 1.0816347817410588e-13,
- 2.2204460492503131e-16, -5.7509552675583109e-14,
- -1.5543122344752192e-14}, /* L305 */
-{4.4710657216009277e+00, 1.5189238755652923e-13,
- 2.2204460492503131e-16, 1.1262102361797588e-12,
- 1.9320101074526974e-12}, /* L306 */
-{4.0896396513316224e+00, 1.3938850074168840e-13,
- 2.2204460492503131e-16, -1.5210055437364645e-14,
- -7.9269923958236177e-14}, /* L307 */
-{5.9612324052940657e+00, 2.0384041676813069e-13,
- 2.2204460492503131e-16, -6.3282712403633923e-14,
- 6.0396132539608516e-14}, /* L308 */
-{3.6327421382070098e+00, 1.2462253451417382e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-15,
- -1.8873791418627661e-14}, /* L309 */
-{4.3702287239778652e+00, 1.5040746426109308e-13,
- 2.2204460492503131e-16, 2.6423307986078726e-14,
- 2.2204460492503131e-16}, /* L310 */
-{2.6972884043591026e+00, 9.3130364531290866e-14,
- 2.2204460492503131e-16, -9.2148511043887993e-14,
- -1.6875389974302379e-14}, /* L311 */
-{3.8542261382814735e+00, 1.3350431871117507e-13,
- 2.2204460492503131e-16, 7.7493567118835927e-14,
- -1.4432899320127035e-14}, /* L312 */
-{3.3275273828674061e+00, 1.1562972801471005e-13,
- 2.2204460492503131e-16, -8.3266726846886741e-14,
- -3.7081449022480228e-14}, /* L313 */
-{4.9347895207576640e+00, 1.7202905766566801e-13,
- 2.2204460492503131e-16, -3.5749181392930041e-14,
- 2.3980817331903381e-14}, /* L314 */
-{4.1857788732647982e+00, 1.4638290579682689e-13,
- 2.2204460492503131e-16, -7.4051875742497941e-14,
- 1.0813572259849025e-13}, /* L315 */
-{4.4225365952081974e+00, 1.5515366769136563e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-14,
- -1.4188650254709501e-13}, /* L316 */
-{4.0276646714714666e+00, 1.4174772466901686e-13,
- 2.2204460492503131e-16, -2.0761170560490427e-14,
- 1.1990408665951691e-14}, /* L317 */
-{4.0723898819578377e+00, 1.4377388168895777e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- 1.0436096431476471e-14}, /* L318 */
-{3.4828123613023654e+00, 1.2334577803585489e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-15,
- 1.0524914273446484e-13}, /* L319 */
-{4.0625626862965687e+00, 1.4432899320127035e-13,
- 2.2204460492503131e-16, 1.3544720900426910e-14,
- -6.6946448384896939e-14}, /* L320 */
-{3.4922657244865749e+00, 1.2445600106048005e-13,
- 2.2204460492503131e-16, 1.2634338020234281e-13,
- -6.0951244051921094e-14}, /* L321 */
-{4.3649741848750399e+00, 1.5604184611106575e-13,
- 2.2204460492503131e-16, 9.5479180117763462e-15,
- 8.8151708155237429e-14}, /* L322 */
-{3.6169288750767836e+00, 1.2970180485183391e-13,
- 2.2204460492503131e-16, -7.7715611723760958e-16,
- -1.7097434579227411e-14}, /* L323 */
-{4.6875723303391226e+00, 1.6861512186494565e-13,
- 2.2204460492503131e-16, -1.5620837956475953e-13,
- -2.1538326677728037e-14}, /* L324 */
-{3.7169804308043264e+00, 1.3411494137471891e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 1.7985612998927536e-14}, /* L325 */
-{4.1664753326374369e+00, 1.5079604231971189e-13,
- 2.2204460492503131e-16, 6.1506355564233672e-14,
- -5.0293103015519591e-14}, /* L326 */
-{4.0153524777097829e+00, 1.4577228313328305e-13,
- 2.2204460492503131e-16, 6.8389738316909643e-14,
- -2.2426505097428162e-14}, /* L327 */
-{3.8826818619100782e+00, 1.4138690218601369e-13,
- 2.2204460492503131e-16, -3.0353497493251780e-13,
- -9.7710728397260027e-13}, /* L328 */
-{4.2158705229913114e+00, 1.5398793351550921e-13,
- 2.2204460492503131e-16, -1.5054624213917123e-13,
- 1.6342482922482304e-13}, /* L329 */
-{4.9803798787347473e+00, 1.8246515409714448e-13,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- -3.7747582837255322e-15}, /* L330 */
-{3.8622197158024405e+00, 1.4192813591051845e-13,
- 2.2204460492503131e-16, -2.5313084961453569e-14,
- -6.9499961341534799e-14}, /* L331 */
-{2.6434895848459301e+00, 9.7435948198665301e-14,
- 2.2204460492503131e-16, 1.1746159600534156e-13,
- 2.1094237467877974e-14}, /* L332 */
-{3.5977469555222945e+00, 1.3300818779704571e-13,
- 2.2204460492503131e-16, -5.4289905904170155e-14,
- -3.2196467714129540e-14}, /* L333 */
-{3.8743112785364828e+00, 1.4366285938649526e-13,
- 2.2204460492503131e-16, 2.7311486405778851e-13,
- 5.0404125317982107e-14}, /* L334 */
-{4.4806661526545577e+00, 1.6664447599623600e-13,
- 2.2204460492503131e-16, -2.6212365611399946e-13,
- -1.4832579608992091e-13}, /* L335 */
-{4.1518497783032586e+00, 1.5487611193520934e-13,
- 2.2204460492503131e-16, -1.2101430968414206e-14,
- -1.3544720900426910e-14}, /* L336 */
-{2.8116160841917153e+00, 1.0519363158323358e-13,
- 2.2204460492503131e-16, 1.0591527654923993e-13,
- -2.5746071941057380e-13}, /* L337 */
-{4.6420834627579532e+00, 1.7419399256368706e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 3.0642155479654321e-14}, /* L338 */
-{3.0693688950053040e+00, 1.1551870571224754e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-14,
- -1.1979306435705439e-13}, /* L339 */
-{5.8192074387900297e+00, 2.1965762542208722e-13,
- 2.2204460492503131e-16, 2.6290081223123707e-13,
- 3.9501735216163070e-13}, /* L340 */
-{4.9590208003801601e+00, 1.8773871346411397e-13,
- 2.2204460492503131e-16, 4.8627768478581856e-14,
- 9.1926466438962962e-14}, /* L341 */
-{4.1871991123897319e+00, 1.5898393712632242e-13,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- 9.1482377229112899e-14}, /* L342 */
-{2.9242433724901558e+00, 1.1135536936990320e-13,
- 2.2204460492503131e-16, -1.3455903058456897e-13,
- -5.2846615972157451e-14}, /* L343 */
-{3.0750837864740705e+00, 1.1744077932362984e-13,
- 2.2204460492503131e-16, -6.0840221749458578e-14,
- 6.3948846218409017e-14}, /* L344 */
-{3.3029495160113536e+00, 1.2650991365603659e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -1.6653345369377348e-14}, /* L345 */
-{3.6113273999264486e+00, 1.3872236692691331e-13,
- 2.2204460492503131e-16, -3.1874503036988244e-13,
- -1.4965806371947110e-13}, /* L346 */
-{4.6801874901676896e+00, 1.8030021919912542e-13,
- 2.2204460492503131e-16, 1.4432899320127035e-14,
- -5.6621374255882984e-15}, /* L347 */
-{3.8678757741819410e+00, 1.4943601911454607e-13,
- 2.2204460492503131e-16, -6.6835426082434424e-14,
- 4.1167069753100805e-13}, /* L348 */
-{4.1304362264359300e+00, 1.6003864899971632e-13,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- -2.3714363805993344e-13}, /* L349 */
-{5.2586525708158405e+00, 2.0433654768226006e-13,
- 2.2204460492503131e-16, -4.0634162701280729e-14,
- 2.8643754035329039e-14}, /* L350 */
-{3.5620207747832455e+00, 1.3880563365376020e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- -3.5971225997855072e-14}, /* L351 */
-{4.3773757825724546e+00, 1.7106455141302490e-13,
- 2.2204460492503131e-16, 1.3389289676979388e-13,
- 1.0613732115416497e-13}, /* L352 */
-{2.7580099788377992e+00, 1.0808715034116290e-13,
- 2.2204460492503131e-16, 1.3367085216486885e-13,
- 1.7541523789077473e-14}, /* L353 */
-{4.2133418490128216e+00, 1.6558976412284210e-13,
- 2.2204460492503131e-16, -1.5210055437364645e-14,
- 3.3972824553529790e-14}, /* L354 */
-{3.5732945733826411e+00, 1.4083179067370111e-13,
- 2.2204460492503131e-16, 4.3876013933186186e-13,
- 3.2955860262973147e-12}, /* L355 */
-{3.2921856306561907e+00, 1.3011813848606835e-13,
- 2.2204460492503131e-16, 2.9753977059954195e-13,
- 5.5733195836182858e-14}, /* L356 */
-{5.3040034106458469e+00, 2.1022072971277339e-13,
- 2.2204460492503131e-16, 1.1546319456101628e-14,
- 1.7985612998927536e-14}, /* L357 */
-{3.5915358651695191e+00, 1.4274692539117950e-13,
- 2.2204460492503131e-16, 1.4210854715202004e-14,
- 1.3766765505351941e-14}, /* L358 */
-{3.5947629889288719e+00, 1.4327428132787645e-13,
- 2.2204460492503131e-16, -7.4718009557273035e-14,
- 4.2188474935755949e-14}, /* L359 */
-{5.9612030938742242e+00, 2.3825386108455859e-13,
- 2.2204460492503131e-16, -6.5614180755346752e-14,
- 5.5067062021407764e-14}, /* L360 */
-{4.4187835568296707e+00, 1.7709791966247224e-13,
- 2.2204460492503131e-16, 6.2172489379008766e-14,
- 2.7089441800853820e-14}, /* L361 */
-{3.6879022090647569e+00, 1.4821477378745840e-13,
- 2.2204460492503131e-16, -2.0539125955565396e-14,
- 3.9745984281580604e-14}, /* L362 */
-{3.6047388175569290e+00, 1.4527268277220173e-13,
- 2.2204460492503131e-16, -1.2290168882600483e-13,
- -2.1049828546892968e-13}, /* L363 */
-{5.5007716913857783e+00, 2.2229440510557197e-13,
- 2.2204460492503131e-16, -5.0293103015519591e-14,
- 4.5519144009631418e-14}, /* L364 */
-{4.6014408643245703e+00, 1.8646195698579504e-13,
- 2.2204460492503131e-16, -9.8143715376863838e-14,
- 2.1427304375265521e-13}, /* L365 */
-{3.8129003640029775e+00, 1.5493162308644060e-13,
- 2.2204460492503131e-16, 9.0372154204487742e-14,
- 5.9952043329758453e-14}, /* L366 */
-{3.7275779533709077e+00, 1.5187850976872141e-13,
- 2.2204460492503131e-16, -2.9976021664879227e-15,
- 3.1308289294429414e-14}, /* L367 */
-{3.9334846076349184e+00, 1.6070478281449141e-13,
- 2.2204460492503131e-16, 2.4646951146678475e-14,
- -2.7644553313166398e-14}, /* L368 */
-{4.5000694371284702e+00, 1.8435253323900724e-13,
- 2.2204460492503131e-16, -5.9174887212520844e-14,
- -1.1779466291272911e-13}, /* L369 */
-{4.5852058859376799e+00, 1.8834933612765781e-13,
- 2.2204460492503131e-16, -5.4067861299245124e-14,
- -1.1990408665951691e-14}, /* L370 */
-{3.9731071280783361e+00, 1.6364687382974807e-13,
- 2.2204460492503131e-16, 5.7953641885433171e-14,
- -5.6732396558345499e-14}, /* L371 */
-{6.1761705685796437e+00, 2.5507373990762972e-13,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 6.0396132539608516e-14}, /* L372 */
-{4.7078474421172833e+00, 1.9495516312417749e-13,
- 2.2204460492503131e-16, -8.7707618945387367e-14,
- -1.4865886299730846e-13}, /* L373 */
-{4.6130390947152637e+00, 1.9154122732345513e-13,
- 2.2204460492503131e-16, -1.1246559239452836e-13,
- -5.5955240441107890e-14}, /* L374 */
-{4.7907405889179788e+00, 1.9945156637390937e-13,
- 2.2204460492503131e-16, 3.6415315207705135e-14,
- -1.6231460620019789e-13}, /* L375 */
-{4.7088492543932405e+00, 1.9656498650988397e-13,
- 2.2204460492503131e-16, -4.2588155224621005e-13,
- 1.3100631690576847e-14}, /* L376 */
-{4.7865460060700720e+00, 2.0033974479360950e-13,
- 2.2204460492503131e-16, 2.2870594307278225e-14,
- 1.9761969838327786e-14}, /* L377 */
-{4.4749367741899171e+00, 1.8779422461534523e-13,
- 2.2204460492503131e-16, 2.3425705819590803e-13,
- -5.8064664187895687e-14}, /* L378 */
-{4.5066658449812271e+00, 1.8962609260597674e-13,
- 2.2204460492503131e-16, -5.1736392947532295e-14,
- -3.9857006584043120e-14}, /* L379 */
-{5.6527188017265582e+00, 2.3847590568948362e-13,
- 2.2204460492503131e-16, 5.1514348342607263e-14,
- 3.3972824553529790e-14}, /* L380 */
-{3.5282696651269934e+00, 1.4924173008523667e-13,
- 2.2204460492503131e-16, 1.3988810110276972e-14,
- 1.9539925233402755e-14}, /* L381 */
-{5.2762464031563292e+00, 2.2376545061320030e-13,
- 2.2204460492503131e-16, -1.8762769116165146e-14,
- 5.4400928206632670e-14}, /* L382 */
-{3.7735476086558344e+00, 1.6045498263395075e-13,
- 2.2204460492503131e-16, 1.6697754290362354e-13,
- 7.6827433304060833e-14}, /* L383 */
-{4.2383361889014060e+00, 1.8068879725774423e-13,
- 2.2204460492503131e-16, 2.8976820942716586e-13,
- -4.3964831775156199e-14}, /* L384 */
-{3.3558876561183313e+00, 1.4344081478157023e-13,
- 2.2204460492503131e-16, -2.5535129566378600e-14,
- 2.0206059048177849e-14}, /* L385 */
-{5.9320717123774740e+00, 2.5421331706354522e-13,
- 2.2204460492503131e-16, 6.5503158452884236e-13,
- 9.5856655946136016e-13}, /* L386 */
-{3.2041759006555273e+00, 1.3766765505351941e-13,
- 2.2204460492503131e-16, 6.0618177144533547e-14,
- 4.8849813083506888e-15}, /* L387 */
-{2.9961728581354108e+00, 1.2906342661267445e-13,
- 2.2204460492503131e-16, 1.4210854715202004e-14,
- -6.7168492989821971e-14}, /* L388 */
-{3.8149594766426693e+00, 1.6475709685437323e-13,
- 2.2204460492503131e-16, -6.7612582199672033e-14,
- -6.2505556286396313e-14}, /* L389 */
-{5.6949456148934239e+00, 2.4658053376924727e-13,
- 2.2204460492503131e-16, 7.6605388699135801e-14,
- 6.8389738316909643e-14}, /* L390 */
-{3.3619361617984511e+00, 1.4593881658697683e-13,
- 2.2204460492503131e-16, 3.5083047578154947e-14,
- 5.5955240441107890e-14}, /* L391 */
-{4.5823298060348492e+00, 1.9942381079829374e-13,
- 2.2204460492503131e-16, 2.0539125955565396e-13,
- -7.7415851507112166e-13}, /* L392 */
-{4.3569267051264031e+00, 1.9009793739144243e-13,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- 7.3274719625260332e-15}, /* L393 */
-{3.5114668367467901e+00, 1.5359935545689041e-13,
- 2.2204460492503131e-16, -1.3355982986240633e-13,
- 3.0420110874729289e-14}, /* L394 */
-{5.8239678975141347e+00, 2.5539986792111335e-13,
- 2.2204460492503131e-16, 2.0339285811132868e-13,
- -1.4233059175694507e-13}, /* L395 */
-{3.5300725889300715e+00, 1.5519703577826505e-13,
- 2.2204460492503131e-16, 2.7999824681046448e-13,
- -3.7436720390360279e-13}, /* L396 */
-{5.3006039729013956e+00, 2.3362561885065247e-13,
- 2.2204460492503131e-16, -2.6645352591003757e-14,
- -1.0214051826551440e-14}, /* L397 */
-{4.0634948836006606e+00, 1.7955081865750344e-13,
- 2.2204460492503131e-16, -6.3282712403633923e-14,
- 4.0190073491430667e-14}, /* L398 */
-{4.9250716726849681e+00, 2.1816749795622314e-13,
- 2.2204460492503131e-16, -1.7252865802674933e-13,
- -4.8994142076708158e-13}, /* L399 */
-{4.0388023524696903e+00, 1.7935652962819404e-13,
- 2.2204460492503131e-16, -1.3622436512150671e-13,
- -2.2204460492503131e-14}, /* L400 */
-{4.0948161708129209e+00, 1.8229862064345070e-13,
- 2.2204460492503131e-16, -4.4408920985006262e-15,
- 1.6209256159527285e-14}, /* L401 */
-{3.4204423470072500e+00, 1.5265566588595902e-13,
- 2.2204460492503131e-16, -1.4865886299730846e-13,
- -3.8635761256955448e-14}, /* L402 */
-{4.2047547470537951e+00, 1.8812729152273278e-13,
- 2.2204460492503131e-16, -5.6843418860808015e-14,
- -1.7985612998927536e-14}, /* L403 */
-{4.9356906432090160e+00, 2.2137847111025621e-13,
- 2.2204460492503131e-16, 2.2648549702353193e-14,
- -4.0523140398818214e-14}, /* L404 */
-{3.6728745397139617e+00, 1.6514567491299204e-13,
- 2.2204460492503131e-16, -1.5210055437364645e-14,
- -9.0705221111875289e-14}, /* L405 */
-{5.7106456037293754e+00, 2.5740520825934254e-13,
- 2.2204460492503131e-16, -2.2759572004815709e-14,
- -7.5273121069585613e-14}, /* L406 */
-{4.5406606327450438e+00, 2.0517268439768088e-13,
- 2.2204460492503131e-16, 1.0569323194431490e-13,
- -4.3742787170231168e-14}, /* L407 */
-{6.8180797398126272e+00, 3.0883628987510292e-13,
- 2.2204460492503131e-16, 6.6835426082434424e-14,
- -2.0572432646304151e-13}, /* L408 */
-{4.5782832785419769e+00, 2.0788926136106056e-13,
- 2.2204460492503131e-16, -1.5654144647214707e-14,
- -6.2283511681471282e-14}, /* L409 */
-{6.5378672391802688e+00, 2.9759528175077321e-13,
- 2.2204460492503131e-16, 1.8762769116165146e-13,
- 3.4949820815199928e-13}, /* L410 */
-{6.8796276647996475e+00, 3.1391556021276301e-13,
- 2.2204460492503131e-16, 9.7699626167013776e-15,
- 7.3496764230185363e-14}, /* L411 */
-{4.7991962623446414e+00, 2.1951884754400908e-13,
- 2.2204460492503131e-16, 5.5733195836182858e-14,
- 4.5963233219481481e-14}, /* L412 */
-{4.9649383989915412e+00, 2.2765123119938835e-13,
- 2.2204460492503131e-16, -2.1482815526496779e-13,
- 3.9523939676655573e-14}, /* L413 */
-{6.1099616612194732e+00, 2.8083091407893335e-13,
- 2.2204460492503131e-16, 3.4594549447319878e-13,
- 1.5609735726229701e-13}, /* L414 */
-{6.7193412005537780e+00, 3.0958569041672490e-13,
- 2.2204460492503131e-16, -2.7422508708241367e-14,
- 3.7081449022480228e-14}, /* L415 */
-{3.5348894866075398e+00, 1.6325829577112927e-13,
- 2.2204460492503131e-16, 1.1679546219056647e-13,
- 6.6613381477509392e-15}, /* L416 */
-{5.6703178750180285e+00, 2.6251223417261826e-13,
- 2.2204460492503131e-16, 6.8900440908237215e-13,
- -8.1257223172315207e-13}, /* L417 */
-{4.6029147180674830e+00, 2.1360690993788012e-13,
- 2.2204460492503131e-16, -9.6223029544262317e-13,
- -1.2267964422107980e-13}, /* L418 */
-{4.7816685214150239e+00, 2.2243318298365011e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-14,
- -4.3298697960381105e-14}, /* L419 */
-{4.9369518527870602e+00, 2.3020474415602621e-13,
- 2.2204460492503131e-16, 1.8096635301390052e-13,
- 3.5971225997855072e-14}, /* L420 */
-{5.8682269951850978e+00, 2.7428059823364492e-13,
- 2.2204460492503131e-16, 1.6209256159527285e-14,
- 3.5749181392930041e-14}, /* L421 */
-{5.6795565438470428e+00, 2.6609270342703439e-13,
- 2.2204460492503131e-16, -1.9684254226604025e-13,
- 1.4521717162097048e-13}, /* L422 */
-{3.9988561098035849e+00, 1.8779422461534523e-13,
- 2.2204460492503131e-16, 2.2715163083830703e-13,
- 1.5099033134902129e-14}, /* L423 */
-{4.7016957903000263e+00, 2.2132295995902496e-13,
- 2.2204460492503131e-16, 6.8389738316909643e-14,
- 5.1514348342607263e-14}, /* L424 */
-{4.9633561662689969e+00, 2.3419113870382091e-13,
- 2.2204460492503131e-16, 3.7747582837255322e-15,
- -1.5543122344752192e-14}, /* L425 */
-{3.8627129006434746e+00, 1.8268719870206951e-13,
- 2.2204460492503131e-16, -2.7866597918091429e-14,
- -4.6740389336719090e-14}, /* L426 */
-{4.6888620547007314e+00, 2.2228052731776415e-13,
- 2.2204460492503131e-16, -3.5527136788005009e-15,
- -2.4424906541753444e-14}, /* L427 */
-{4.2652275995602578e+00, 2.0267121314532233e-13,
- 2.2204460492503131e-16, 4.6407322429331543e-14,
- -8.1046280797636427e-14}, /* L428 */
-{5.0105373032567080e+00, 2.3864243914317740e-13,
- 2.2204460492503131e-16, -3.8802294710649221e-13,
- 3.9745984281580604e-14}, /* L429 */
-{4.1128299277090949e+00, 1.9634294190495893e-13,
- 2.2204460492503131e-16, -6.5281113847959205e-14,
- 1.1102230246251565e-13}, /* L430 */
-{4.6961004779885007e+00, 2.2470914018413168e-13,
- 2.2204460492503131e-16, -5.2069459854919842e-14,
- -6.9166894434147252e-14}, /* L431 */
-{3.9988807357282870e+00, 1.9179102750399579e-13,
- 2.2204460492503131e-16, 1.1102230246251565e-14,
- -1.6875389974302379e-14}, /* L432 */
-{5.4902822331073837e+00, 2.6392993693336031e-13,
- 2.2204460492503131e-16, -4.7462034302725442e-13,
- 3.5860203695392556e-13}, /* L433 */
-{5.2051187732038846e+00, 2.5079938126282286e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-14,
- 2.2826185386293218e-13}, /* L434 */
-{5.8701709348763282e+00, 2.8349544933803372e-13,
- 2.2204460492503131e-16, -1.0291767438275201e-13,
- -6.2394533983933798e-14}, /* L435 */
-{5.7400203472427505e+00, 2.7784718970025324e-13,
- 2.2204460492503131e-16, 3.8635761256955448e-13,
- 6.0174087934683484e-14}, /* L436 */
-{6.3956559703342561e+00, 3.1029345759492344e-13,
- 2.2204460492503131e-16, 1.8873791418627661e-13,
- -1.8141044222375058e-13}, /* L437 */
-{5.9812214351582371e+00, 2.9085067687617538e-13,
- 2.2204460492503131e-16, -3.6481928589182644e-13,
- -7.7604589421298442e-14}, /* L438 */
-{5.4658835711519105e+00, 2.6639801475880631e-13,
- 2.2204460492503131e-16, -3.2751579226442118e-14,
- -8.8817841970012523e-14}, /* L439 */
-{3.7221945948830260e+00, 1.8182677585798501e-13,
- 2.2204460492503131e-16, -4.2488235152404741e-13,
- 2.4424906541753444e-14}, /* L440 */
-{4.9609316733542528e+00, 2.4288904221236862e-13,
- 2.2204460492503131e-16, -2.5202062658991053e-14,
- -1.5043521983670871e-13}, /* L441 */
-{5.5639670987881980e+00, 2.7303159733094162e-13,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- 2.0428103653102880e-14}, /* L442 */
-{5.2077246172031204e+00, 2.5612845178102361e-13,
- 2.2204460492503131e-16, -1.3544720900426910e-14,
- 3.8635761256955448e-14}, /* L443 */
-{5.0495977148891908e+00, 2.4891200212096010e-13,
- 2.2204460492503131e-16, 1.3278267374516872e-13,
- -8.1601392309949006e-14}, /* L444 */
-{4.8742037957345268e+00, 2.4080737404119645e-13,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- -5.8841820305133297e-15}, /* L445 */
-{5.2870459459341737e+00, 2.6179058920661191e-13,
- 2.2204460492503131e-16, -1.9984014443252818e-15,
- 8.9039886574937555e-14}, /* L446 */
-{4.4846624635429873e+00, 2.2255808307392044e-13,
- 2.2204460492503131e-16, -9.2703622556200571e-14,
- 3.9968028886505635e-14}, /* L447 */
-{4.1663343832417468e+00, 2.0722312754628547e-13,
- 2.2204460492503131e-16, 1.0214051826551440e-14,
- 1.9984014443252818e-14}, /* L448 */
-{4.0807738908624955e+00, 2.0342061368694431e-13,
- 2.2204460492503131e-16, -5.3623772089395061e-14,
- -6.3726801613483985e-14}, /* L449 */
-{5.8922784254429397e+00, 2.9437563497936026e-13,
- 2.2204460492503131e-16, 1.5765166949677223e-14,
- 1.0746958878371515e-13}, /* L450 */
-{4.2101288499112783e+00, 2.1080359680070160e-13,
- 2.2204460492503131e-16, -5.2291504459844873e-14,
- 8.8151708155237429e-14}, /* L451 */
-{4.9170822995881238e+00, 2.4674706722294104e-13,
- 2.2204460492503131e-16, -5.0071058410594560e-14,
- -3.0642155479654321e-14}, /* L452 */
-{5.6992817353981957e+00, 2.8663182938259979e-13,
- 2.2204460492503131e-16, -4.2188474935755949e-15,
- -1.4765966227514582e-14}, /* L453 */
-{4.3998217031750340e+00, 2.2176704916887502e-13,
- 2.2204460492503131e-16, -6.8833827526759706e-15,
- 1.3988810110276972e-14}, /* L454 */
-{3.9555322351529418e+00, 1.9981238885691255e-13,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- -3.9968028886505635e-15}, /* L455 */
-{4.4364458255968806e+00, 2.2459811788166917e-13,
- 2.2204460492503131e-16, 2.1516122217235534e-13,
- 2.0428103653102880e-13}, /* L456 */
-{5.7637311258744965e+00, 2.9243274468626623e-13,
- 2.2204460492503131e-16, 5.5067062021407764e-14,
- -8.4932061383824475e-14}, /* L457 */
-{6.2183999252689537e+00, 3.1619151741324458e-13,
- 2.2204460492503131e-16, -5.6621374255882984e-14,
- -3.8857805861880479e-15}, /* L458 */
-{6.4918919879658779e+00, 3.3081870576268102e-13,
- 2.2204460492503131e-16, 4.3964831775156199e-14,
- 5.3068660577082483e-14}, /* L459 */
-{5.5163569653182405e+00, 2.8171909249863347e-13,
- 2.2204460492503131e-16, -1.4741541320972829e-12,
- 6.4370730967766576e-13}, /* L460 */
-{4.6958148558768267e+00, 2.4033552925573076e-13,
- 2.2204460492503131e-16, 3.0420110874729289e-14,
- -1.1768364061026659e-14}, /* L461 */
-{5.5422606567947605e+00, 2.8427260545527133e-13,
- 2.2204460492503131e-16, -7.5828232581898192e-14,
- 3.0064839506849239e-13}, /* L462 */
-{7.9186770438068130e+00, 4.0704245529710192e-13,
- 2.2204460492503131e-16, 4.1744385725905886e-14,
- 2.0206059048177849e-14}, /* L463 */
-{4.3330154681851196e+00, 2.2321033910088772e-13,
- 2.2204460492503131e-16, 6.5769611978794273e-13,
- 7.6827433304060833e-13}, /* L464 */
-{5.0817689023215564e+00, 2.6234570071892449e-13,
- 2.2204460492503131e-16, 6.6613381477509392e-16,
- -1.8873791418627661e-15}, /* L465 */
-{6.1062814204428140e+00, 3.1591396165708829e-13,
- 2.2204460492503131e-16, -1.8873791418627661e-15,
- -7.3940853440035426e-14}, /* L466 */
-{4.8565773734848285e+00, 2.5179858198498550e-13,
- 2.2204460492503131e-16, -1.0536016503692736e-13,
- 8.7485574340462335e-14}, /* L467 */
-{5.9017656954216529e+00, 3.0664359940146824e-13,
- 2.2204460492503131e-16, 1.5698553568199713e-13,
- -1.9739765377835283e-13}, /* L468 */
-{5.5426967919935635e+00, 2.8860247525130944e-13,
- 2.2204460492503131e-16, -2.5979218776228663e-14,
- -3.2196467714129540e-15}, /* L469 */
-{4.7149385902403589e+00, 2.4602542225693469e-13,
- 2.2204460492503131e-16, -1.0735856648125264e-13,
- 9.5257135512838431e-14}, /* L470 */
-{6.9780389588025447e+00, 3.6488867483086551e-13,
- 2.2204460492503131e-16, 2.1691537455126308e-12,
- -6.7290617522530738e-13}, /* L471 */
-{7.1300997897814780e+00, 3.7363168114978862e-13,
- 2.2204460492503131e-16, 6.8389738316909643e-14,
- 5.9285909514983359e-14}, /* L472 */
-{6.0666540609903699e+00, 3.1857849691618867e-13,
- 2.2204460492503131e-16, -4.2454928461665986e-13,
- 3.1685765122801968e-13}, /* L473 */
-{7.3562806105741236e+00, 3.8711742145203232e-13,
- 2.2204460492503131e-16, -5.7398530373120593e-14,
- -1.0669243266647754e-13}, /* L474 */
-{5.9968993063800600e+00, 3.1624702856447584e-13,
- 2.2204460492503131e-16, -1.9728663147589032e-13,
- 3.7059244561987725e-13}, /* L475 */
-{6.5032132910670697e+00, 3.4366953727271721e-13,
- 2.2204460492503131e-16, -1.1952661083114435e-12,
- 2.2630786133959191e-12}, /* L476 */
-{6.7832801108031822e+00, 3.5922306795832526e-13,
- 2.2204460492503131e-16, -8.9483975784787617e-14,
- 5.5511151231257827e-14}, /* L477 */
-{5.2803850947349824e+00, 2.8022029141538951e-13,
- 2.2204460492503131e-16, 1.9473311851925246e-13,
- -2.0772272790736679e-13}, /* L478 */
-{4.8758293888716402e+00, 2.5929258740120531e-13,
- 2.2204460492503131e-16, -2.2093438190040615e-14,
- 1.2878587085651816e-14}, /* L479 */
-{4.8417128491172807e+00, 2.5801583092288638e-13,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- 7.4162898044960457e-14}, /* L480 */
-{6.1196009910661093e+00, 3.2679414729841483e-13,
- 2.2204460492503131e-16, 4.0478731477833207e-13,
- -4.1344705437040830e-13}, /* L481 */
-{4.9346943722537233e+00, 2.6406654640709348e-13,
- 2.2204460492503131e-16, -1.1435297153639112e-14,
- -5.5955240441107890e-14}, /* L482 */
-{5.8427058338898181e+00, 3.1330493754921918e-13,
- 2.2204460492503131e-16, -2.2593038551121936e-13,
- 5.1070259132757201e-14}, /* L483 */
-{5.6539795500515018e+00, 3.0381253068867409e-13,
- 2.2204460492503131e-16, 7.7937656328685989e-14,
- -2.4424906541753444e-14}, /* L484 */
-{6.3052147811699006e+00, 3.3950620093037287e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-15,
- -4.6629367034256575e-14}, /* L485 */
-{5.9905406795849077e+00, 3.2322755583180651e-13,
- 2.2204460492503131e-16, 5.7731597280508140e-15,
- -2.2759572004815709e-14}, /* L486 */
-{4.2125658487098612e+00, 2.2776225350185086e-13,
- 2.2204460492503131e-16, 1.7386092565629951e-13,
- -1.0047518372857667e-13}, /* L487 */
-{5.4908310625573691e+00, 2.9748425944831070e-13,
- 2.2204460492503131e-16, 2.5024426975051028e-13,
- -3.2562841312255841e-13}, /* L488 */
-{5.1012756521416138e+00, 2.7694513349274530e-13,
- 2.2204460492503131e-16, 1.9251267247000214e-13,
- 1.7963408538435033e-13}, /* L489 */
-{4.9888230958546691e+00, 2.7139401836961952e-13,
- 2.2204460492503131e-16, -3.0497826486453050e-13,
- -3.2107649872159527e-13}, /* L490 */
-{4.3951539392620198e+00, 2.3958612871410878e-13,
- 2.2204460492503131e-16, 4.2188474935755949e-15,
- 1.3922196728799463e-13}, /* L491 */
-{6.6284931036044803e+00, 3.6206454501197527e-13,
- 2.2204460492503131e-16, -1.3917755836700962e-12,
- 6.5702998597316764e-13}, /* L492 */
-{5.9371763069329377e+00, 3.2496227930778332e-13,
- 2.2204460492503131e-16, -4.5408121707168903e-14,
- 4.7961634663806763e-14}, /* L493 */
-{5.0091570913409829e+00, 2.7472468744349499e-13,
- 2.2204460492503131e-16, 5.2269299999352370e-13,
- -7.3174799553044068e-13}, /* L494 */
-{3.8909462045156582e+00, 2.1382895454280515e-13,
- 2.2204460492503131e-16, -9.0816243414337805e-14,
- 8.5709217501062085e-14}, /* L495 */
-{4.6049456377668729e+00, 2.5357840827133771e-13,
- 2.2204460492503131e-16, -3.2973623831367149e-14,
- -5.1403326040144748e-14}, /* L496 */
-{7.3793460414674348e+00, 4.0717429428127616e-13,
- 2.2204460492503131e-16, 8.9928064994637680e-14,
- 2.4424906541753444e-15}, /* L497 */
-{7.2026289428969541e+00, 3.9822312114523584e-13,
- 2.2204460492503131e-16, -1.1524114995609125e-13,
- -3.3628655415895992e-13}, /* L498 */
-{4.7064577179742040e+00, 2.6073587733321801e-13,
- 2.2204460492503131e-16, 4.6629367034256575e-15,
- 7.7715611723760958e-15}, /* L499 */
-{5.8175554904793847e+00, 3.2293612228784241e-13,
- 2.2204460492503131e-16, -1.3322676295501878e-13,
- 9.4368957093138306e-14}, /* L500 */
-{4.3124163832796452e+00, 2.3986368447026507e-13,
- 2.2204460492503131e-16, 3.5682568011452531e-13,
- -2.3003821070233244e-13}, /* L501 */
-{6.2236649418112178e+00, 3.4686142846851453e-13,
- 2.2204460492503131e-16, 1.1546319456101628e-13,
- 7.6161299489285739e-13}, /* L502 */
-{4.5849716659338560e+00, 2.5604171560722477e-13,
- 2.2204460492503131e-16, -1.0007550343971161e-12,
- 1.9961809982760315e-13}, /* L503 */
-{5.3819957803580101e+00, 3.0114799542957371e-13,
- 2.2204460492503131e-16, -8.1823436914874037e-14,
- -3.8746783559417963e-14}, /* L504 */
-{4.9626710985811560e+00, 2.7823576775887204e-13,
- 2.2204460492503131e-16, -1.6542323066914832e-14,
- -2.3980817331903381e-14}, /* L505 */
-{4.9852254169498611e+00, 2.8005375796169574e-13,
- 2.2204460492503131e-16, 2.3403501359098300e-13,
- -1.7541523789077473e-14}, /* L506 */
-{4.6546301967872390e+00, 2.6199875602372913e-13,
- 2.2204460492503131e-16, 1.5165646516379638e-13,
- 6.6835426082434424e-14}, /* L507 */
-{5.2569399068437530e+00, 2.9648505872614805e-13,
- 2.2204460492503131e-16, 6.6568972556524386e-13,
- -1.0703660180411134e-12}, /* L508 */
-{5.0599696788202966e+00, 2.8593793999220907e-13,
- 2.2204460492503131e-16, -6.9055872131684737e-14,
- 7.7493567118835927e-14}, /* L509 */
-{5.4588755986386763e+00, 3.0908609005564358e-13,
- 2.2204460492503131e-16, -2.5890400934258651e-13,
- 5.0182080713057076e-14}, /* L510 */
-{7.5137702998815419e+00, 4.2627013030482885e-13,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- -8.5598195198599569e-14}, /* L511 */
-{5.7515197043496258e+00, 3.2693292517649297e-13,
- 2.2204460492503131e-16, 8.8817841970012523e-16,
- 1.2390088954816747e-13}, /* L512 */
-{5.3109668377417059e+00, 3.0248026305912390e-13,
- 2.2204460492503131e-16, -1.3078427230084344e-13,
- 1.3100631690576847e-14}, /* L513 */
-{8.3347098504314516e+00, 4.7561954374941706e-13,
- 2.2204460492503131e-16, -1.9928503292021560e-13,
- 2.0428103653102880e-14}, /* L514 */
-{4.9697075974963569e+00, 2.8414770536500100e-13,
- 2.2204460492503131e-16, -3.0753177782116836e-14,
- 2.2204460492503131e-15}, /* L515 */
-{6.7558783941152347e+00, 3.8702374638432957e-13,
- 2.2204460492503131e-16, 1.4743761767022079e-13,
- -1.5343282200319663e-13}, /* L516 */
-{5.1697978082638567e+00, 2.9673832835364067e-13,
- 2.2204460492503131e-16, 2.4424906541753444e-14,
- -2.3181456754173269e-13}, /* L517 */
-{5.8330207858098602e+00, 3.3545388689049105e-13,
- 2.2204460492503131e-16, -3.6970426720017713e-14,
- 8.4376949871511897e-15}, /* L518 */
-{6.9951940806813111e+00, 4.0306646909016308e-13,
- 2.2204460492503131e-16, -2.3536728122053319e-14,
- -1.3766765505351941e-14}, /* L519 */
-{4.8105845127706477e+00, 2.7772228960998291e-13,
- 2.2204460492503131e-16, 1.2878587085651816e-14,
- -5.4733995114020217e-14}, /* L520 */
-{6.0983781434855482e+00, 3.5274561049902786e-13,
- 2.2204460492503131e-16, -1.2988499165089706e-12,
- 5.2136073236397351e-13}, /* L521 */
-{4.9166744237375424e+00, 2.8493873927004643e-13,
- 2.2204460492503131e-16, 7.2386541205560206e-14,
- 1.4677148385544569e-13}, /* L522 */
-{6.0353823710121270e+00, 3.5044189772293066e-13,
- 2.2204460492503131e-16, -4.3742787170231168e-13,
- -5.0726089995123402e-13}, /* L523 */
-{7.6040196304893746e+00, 4.4236836416189362e-13,
- 2.2204460492503131e-16, -8.2345241736447861e-13,
- 3.0286884111774270e-13}, /* L524 */
-{5.7352471437763413e+00, 3.3428815271463463e-13,
- 2.2204460492503131e-16, 1.3966605649784469e-13,
- 1.2123635428906709e-13}, /* L525 */
-{5.6330887352735486e+00, 3.2895908219643388e-13,
- 2.2204460492503131e-16, 1.5543122344752192e-14,
- 5.3512749786932545e-14}, /* L526 */
-{5.0047517290455383e+00, 2.9282132274488504e-13,
- 2.2204460492503131e-16, -1.3278267374516872e-13,
- -1.3633538742396922e-13}, /* L527 */
-{6.4479268396057261e+00, 3.7797542873363454e-13,
- 2.2204460492503131e-16, -7.9269923958236177e-14,
- -3.7303493627405260e-14}, /* L528 */
-{4.7554422853043672e+00, 2.7929047963226594e-13,
- 2.2204460492503131e-16, 1.2545520178264269e-13,
- 6.7279515292284486e-14}, /* L529 */
-{7.0207657936939389e+00, 4.1311398746302075e-13,
- 2.2204460492503131e-16, -8.5487172896137054e-14,
- -1.0047518372857667e-13}, /* L530 */
-{5.2208180297221620e+00, 3.0778157800170902e-13,
- 2.2204460492503131e-16, 4.8021586707136521e-12,
- 3.5007552412480436e-12}, /* L531 */
-{7.2932445893095963e+00, 4.3076653355456074e-13,
- 2.2204460492503131e-16, -1.9317880628477724e-14,
- -1.3555823130673161e-13}, /* L532 */
-{4.4953166607724802e+00, 2.6600943670018751e-13,
- 2.2204460492503131e-16, 4.3032244434471068e-13,
- 2.0916601783937949e-13}, /* L533 */
-{7.3173102337090583e+00, 4.3381270797837601e-13,
- 2.2204460492503131e-16, -1.1046719095020308e-13,
- -2.4791280139879746e-13}, /* L534 */
-{6.7958051143131240e+00, 4.0364933617809129e-13,
- 2.2204460492503131e-16, -1.1546319456101628e-14,
- 7.5051076464660582e-14}, /* L535 */
-{6.8348988431670623e+00, 4.0673020507142610e-13,
- 2.2204460492503131e-16, -5.2069459854919842e-14,
- -6.3504757008558954e-14}, /* L536 */
-{7.1326928175160100e+00, 4.2524317400705058e-13,
- 2.2204460492503131e-16, 1.2607692667643278e-12,
- -1.5206724768290769e-12}, /* L537 */
-{5.8020537636069527e+00, 3.4655611713674261e-13,
- 2.2204460492503131e-16, 1.1590728377086634e-13,
- 7.3274719625260332e-14}, /* L538 */
-{5.5904540891157524e+00, 3.3453795289517529e-13,
- 2.2204460492503131e-16, 6.0396132539608516e-14,
- 7.2608585810485238e-14}, /* L539 */
-{5.5375087365670526e+00, 3.3198443993853743e-13,
- 2.2204460492503131e-16, -2.5535129566378600e-14,
- 3.3084646133829665e-14}, /* L540 */
-{5.5785670268502638e+00, 3.3506530883187224e-13,
- 2.2204460492503131e-16, -1.4321877017664519e-14,
- -3.2784885917180873e-13}, /* L541 */
-{4.4271287559290471e+00, 2.6639801475880631e-13,
- 2.2204460492503131e-16, 3.3306690738754696e-15,
- -9.6145313932538556e-14}, /* L542 */
-{4.3361026053221225e+00, 2.6140201114799311e-13,
- 2.2204460492503131e-16, 3.4952041261249178e-12,
- -3.2902569557791139e-12}, /* L543 */
-{6.7867754133880798e+00, 4.0989434069160779e-13,
- 2.2204460492503131e-16, -3.1863400806741993e-12,
- 1.3513634655737405e-12}, /* L544 */
-{4.8403746091693245e+00, 2.9287683389611630e-13,
- 2.2204460492503131e-16, -9.5479180117763462e-15,
- -3.2895908219643388e-13}, /* L545 */
-{5.1694220752481739e+00, 3.1336044870045043e-13,
- 2.2204460492503131e-16, -4.2299497238218464e-14,
- 9.3480778673438181e-14}, /* L546 */
-{7.8501037928372215e+00, 4.7672976677404222e-13,
- 2.2204460492503131e-16, 1.6675549829869851e-13,
- 1.4166445794216997e-13}, /* L547 */
-{5.9124180871872989e+00, 3.5971225997855072e-13,
- 2.2204460492503131e-16, 3.6859404417555197e-14,
- 1.0946799022804043e-13}, /* L548 */
-{6.2488998862544776e+00, 3.8087762110894374e-13,
- 2.2204460492503131e-16, 5.2402526762307389e-14,
- -8.5043083686286991e-14}, /* L549 */
-{4.9372805168553153e+00, 3.0148106233696126e-13,
- 2.2204460492503131e-16, -9.0039087297100195e-14,
- -3.9079850466805510e-14}, /* L550 */
-{7.0245119900629867e+00, 4.2971182168116684e-13,
- 2.2204460492503131e-16, 9.1260332624187868e-14,
- 9.3036689463588118e-14}, /* L551 */
-{4.8342467574573700e+00, 2.9626301412122302e-13,
- 2.2204460492503131e-16, -1.1912693054227930e-13,
- 3.9368508453208051e-13}, /* L552 */
-{7.7079687612789165e+00, 4.7323256424647298e-13,
- 2.2204460492503131e-16, -6.6835426082434424e-14,
- -9.5035090907913400e-14}, /* L553 */
-{5.6173373823674746e+00, 3.4550140526334872e-13,
- 2.2204460492503131e-16, -9.2814644858663087e-14,
- 5.4178883601707639e-14}, /* L554 */
-{5.8234326110914427e+00, 3.5882408155885059e-13,
- 2.2204460492503131e-16, -3.4749980670767400e-13,
- -4.7417625381740436e-13}, /* L555 */
-{8.7814886747606220e+00, 5.4206639177323268e-13,
- 2.2204460492503131e-16, -6.9944050551384862e-15,
- 2.1249668691325496e-13}, /* L556 */
-{6.0781065374043051e+00, 3.7586600498684675e-13,
- 2.2204460492503131e-16, -2.9254376698872875e-13,
- 6.1062266354383610e-14}, /* L557 */
-{5.1926605222452942e+00, 3.2168712138513911e-13,
- 2.2204460492503131e-16, -1.7852386235972517e-13,
- 2.5179858198498550e-13}, /* L558 */
-{5.3902142286877179e+00, 3.3452407510736748e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-14,
- -4.9182879990894435e-14}, /* L559 */
-{6.3218849740797296e+00, 3.9304670629292104e-13,
- 2.2204460492503131e-16, -3.8002934132919108e-13,
- -8.4821039081361960e-14}, /* L560 */
-{6.2923450433403856e+00, 3.9190872769268026e-13,
- 2.2204460492503131e-16, 1.1701750679549150e-13,
- -1.8096635301390052e-13}, /* L561 */
-{5.3211827724904852e+00, 3.3201219551415306e-13,
- 2.2204460492503131e-16, 1.7763568394002505e-13,
- -2.8821389719269064e-13}, /* L562 */
-{5.1563136413664887e+00, 3.2229774404868294e-13,
- 2.2204460492503131e-16, -2.3969715101657130e-13,
- 2.5557334026871104e-13}, /* L563 */
-{6.9164005397024022e+00, 4.3308065467151380e-13,
- 2.2204460492503131e-16, -2.9487523534044158e-13,
- -6.8389738316909643e-13}, /* L564 */
-{6.5474660821762898e+00, 4.1070619127836494e-13,
- 2.2204460492503131e-16, -2.0550228185811648e-13,
- -4.0178971261184415e-13}, /* L565 */
-{5.9209457372623602e+00, 3.7206349112750559e-13,
- 2.2204460492503131e-16, -1.7541523789077473e-14,
- 6.8167693711984612e-14}, /* L566 */
-{6.5926029937818518e+00, 4.1500136660488351e-13,
- 2.2204460492503131e-16, 2.9487523534044158e-13,
- -8.3488771451811772e-14}, /* L567 */
-{8.6569238693572377e+00, 5.4591053899599729e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-14,
- -1.0769163338864018e-13}, /* L568 */
-{8.2205753598151468e+00, 5.1930681976841697e-13,
- 2.2204460492503131e-16, 2.6956215037898801e-13,
- -1.9251267247000214e-13}, /* L569 */
-{5.4280787393564784e+00, 3.4350300381902343e-13,
- 2.2204460492503131e-16, 1.1746159600534156e-13,
- -1.1324274851176597e-13}, /* L570 */
-{6.3888016733530666e+00, 4.0500935938325711e-13,
- 2.2204460492503131e-16, -1.7097434579227411e-14,
- 1.2367884494324244e-13}, /* L571 */
-{6.7701155763631542e+00, 4.2993386628609187e-13,
- 2.2204460492503131e-16, 1.0325074129013956e-13,
- 3.6859404417555197e-14}, /* L572 */
-{4.7793487271334687e+00, 3.0404151418750303e-13,
- 2.2204460492503131e-16, -1.5620837956475953e-12,
- -3.9357406222961799e-13}, /* L573 */
-{6.7238782041244392e+00, 4.2849057635407917e-13,
- 2.2204460492503131e-16, 1.8673951274195133e-13,
- 1.7585932710062480e-13}, /* L574 */
-{5.6508784806491095e+00, 3.6073921627632899e-13,
- 2.2204460492503131e-16, 4.2410519540680980e-14,
- 8.6597395920762210e-15}, /* L575 */
-{9.2014034059440135e+00, 5.8841820305133297e-13,
- 2.2204460492503131e-16, 2.5512925105886097e-13,
- 3.0087043967341742e-13}, /* L576 */
-{5.0520010381648124e+00, 3.2363001167823313e-13,
- 2.2204460492503131e-16, -2.8343993818680246e-13,
- -4.0045744498229396e-13}, /* L577 */
-{7.3666854978796872e+00, 4.7272602499148775e-13,
- 2.2204460492503131e-16, -1.2102541191438831e-12,
- -6.1606275636449936e-13}, /* L578 */
-{5.7046722127352201e+00, 3.6670666503368921e-13,
- 2.2204460492503131e-16, 3.6193270602780103e-14,
- 1.1945999744966684e-13}, /* L579 */
-{6.1241475931459428e+00, 3.9435121834685560e-13,
- 2.2204460492503131e-16, -4.4408920985006262e-14,
- -1.2967404927621828e-13}, /* L580 */
-{7.0361556793020208e+00, 4.5385917246676399e-13,
- 2.2204460492503131e-16, -1.2023715356690445e-13,
- -3.4749980670767400e-14}, /* L581 */
-{6.5438985868107347e+00, 4.2283320941804980e-13,
- 2.2204460492503131e-16, 9.7921670771938807e-14,
- -1.3222756223285614e-13}, /* L582 */
-{7.4942228013883874e+00, 4.8507031724653871e-13,
- 2.2204460492503131e-16, 1.7608137170554983e-13,
- 2.2803980925800715e-13}, /* L583 */
-{7.4533508002780744e+00, 4.8325232704371501e-13,
- 2.2204460492503131e-16, 8.5087492607271997e-13,
- 1.3287149158713873e-12}, /* L584 */
-{7.5396486474910454e+00, 4.8968468169263701e-13,
- 2.2204460492503131e-16, -1.8807178037150152e-13,
- 4.2144066014770942e-13}, /* L585 */
-{7.5891757960216486e+00, 4.9374393462642274e-13,
- 2.2204460492503131e-16, 1.3322676295501878e-15,
- 1.3211653993039363e-13}, /* L586 */
-{8.6499284681761086e+00, 5.6371574075342323e-13,
- 2.2204460492503131e-16, -4.0301095793893182e-14,
- 1.3122836151069350e-13}, /* L587 */
-{7.0263716297740473e+00, 4.5868864262388342e-13,
- 2.2204460492503131e-16, 5.3734794391857577e-14,
- -2.6645352591003757e-15}, /* L588 */
-{7.1697905987563058e+00, 4.6884718329920361e-13,
- 2.2204460492503131e-16, -1.7164047960704920e-13,
- 5.9952043329758453e-14}, /* L589 */
-{6.7330614702568390e+00, 4.4103609653234344e-13,
- 2.2204460492503131e-16, -9.8587804586713901e-14,
- -7.9047879353311146e-14}, /* L590 */
-{5.0772076719376891e+00, 3.3313629632658603e-13,
- 2.2204460492503131e-16, -9.0705221111875289e-14,
- 9.5701224722688494e-14}, /* L591 */
-{5.2973056548945658e+00, 3.4816594052244909e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-14,
- 4.4408920985006262e-15}, /* L592 */
-{7.9696584422515322e+00, 5.2469140143784898e-13,
- 2.2204460492503131e-16, 5.5511151231257827e-15,
- -6.7057470687359455e-14}, /* L593 */
-{7.2693717383005367e+00, 4.7939430203314259e-13,
- 2.2204460492503131e-16, 1.6653345369377348e-14,
- 5.9507954119908391e-14}, /* L594 */
-{6.6260608741476643e+00, 4.3770542745846797e-13,
- 2.2204460492503131e-16, -4.3232084578903596e-13,
- -3.9113157157544265e-13}, /* L595 */
-{7.4924614853196800e+00, 4.9577009164636365e-13,
- 2.2204460492503131e-16, 7.1653794009307603e-13,
- -7.7438055967604669e-13}, /* L596 */
-{8.3073832908340481e+00, 5.5061510906284639e-13,
- 2.2204460492503131e-16, -1.7337242752546445e-12,
- -9.2392760109305527e-13}, /* L597 */
-{6.8474188299759522e+00, 4.5460857300838597e-13,
- 2.2204460492503131e-16, 9.2592600253738055e-14,
- 7.1276318180935050e-14}, /* L598 */
-{6.6068551649127851e+00, 4.3937076199540570e-13,
- 2.2204460492503131e-16, 1.7452705947107461e-13,
- -2.6623148130511254e-13}, /* L599 */
-{5.7943841415440849e+00, 3.8598291229874349e-13,
- 2.2204460492503131e-16, 2.1194379584699163e-11,
- 2.3312463071079037e-12}, /* L600 */
-{7.3793793629617079e+00, 4.9238391142125693e-13,
- 2.2204460492503131e-16, -7.4829031859735551e-14,
- 1.4033219031261979e-13}, /* L601 */
-{5.6079822696747463e+00, 3.7481129311345285e-13,
- 2.2204460492503131e-16, -7.5495165674510645e-15,
- 9.7277741417656216e-13}, /* L602 */
-{5.6011696992360323e+00, 3.7497782656714662e-13,
- 2.2204460492503131e-16, 1.9650947535865271e-12,
- -4.3345327327415362e-12}, /* L603 */
-{8.2901620860081202e+00, 5.5591642400543151e-13,
- 2.2204460492503131e-16, 2.9327651418498135e-12,
- -1.3200551762793111e-13}, /* L604 */
-{5.8450505440887328e+00, 3.9260261708307098e-13,
- 2.2204460492503131e-16, 2.3581137043038325e-13,
- -3.1175062531474396e-13}, /* L605 */
-{7.0618923296561054e+00, 4.7511994338833574e-13,
- 2.2204460492503131e-16, 3.1068481121110381e-12,
- -2.1924684290297591e-12}, /* L606 */
-{6.5856776060858495e+00, 4.4381165409390633e-13,
- 2.2204460492503131e-16, 1.5920598173124745e-13,
- 4.7739590058881731e-14}, /* L607 */
-{7.4070840546171866e+00, 4.9998893913993925e-13,
- 2.2204460492503131e-16, -3.1086244689504383e-14,
- -4.9071857688431919e-14}, /* L608 */
-{6.1239833892743363e+00, 4.1405767703395213e-13,
- 2.2204460492503131e-16, -1.5232259897857148e-13,
- 3.8635761256955448e-14}, /* L609 */
-{6.5303381718135123e+00, 4.4225734185943111e-13,
- 2.2204460492503131e-16, 3.0864200084579352e-14,
- 2.2204460492503131e-14}, /* L610 */
-{5.9310650039648740e+00, 4.0233094633634892e-13,
- 2.2204460492503131e-16, 1.8696155734687636e-13,
- -6.5281113847959205e-14}, /* L611 */
-{5.6560546752283836e+00, 3.8430369997399794e-13,
- 2.2204460492503131e-16, -1.9440005161186491e-13,
- -1.7763568394002505e-15}, /* L612 */
-{1.0236557748975780e+01, 6.9666494795228573e-13,
- 2.2204460492503131e-16, 5.7331916991643084e-13,
- 7.2897243796887778e-13}, /* L613 */
-{8.6482221134177912e+00, 5.8952842607595812e-13,
- 2.2204460492503131e-16, -1.6320278461989801e-14,
- 3.8191672047105385e-14}, /* L614 */
-{7.8032643437780260e+00, 5.3279602951761262e-13,
- 2.2204460492503131e-16, 5.1603166184577276e-13,
- -2.9565239145767919e-13}, /* L615 */
-{7.1018780877954510e+00, 4.8569481769789036e-13,
- 2.2204460492503131e-16, 5.5333515547317802e-13,
- 4.7761794519374234e-13}, /* L616 */
-{7.7779701319708030e+00, 5.3279602951761262e-13,
- 2.2204460492503131e-16, -4.3098857815948577e-13,
- -1.9484414082171497e-13}, /* L617 */
-{6.7707428828944307e+00, 4.6455200797268503e-13,
- 2.2204460492503131e-16, -2.3869795029440866e-14,
- 1.3655743202889425e-13}, /* L618 */
-{6.0416088856672232e+00, 4.1519565563419292e-13,
- 2.2204460492503131e-16, 3.0397906414236786e-13,
- 6.6080474425689317e-13}, /* L619 */
-{6.4225907781135954e+00, 4.4209080840573733e-13,
- 2.2204460492503131e-16, 8.5642604119584576e-13,
- 1.2507772595427014e-12}, /* L620 */
-{6.5773050630469632e+00, 4.5347059440814519e-13,
- 2.2204460492503131e-16, -3.7014835641002719e-13,
- -2.8765878568037806e-13}, /* L621 */
-{6.6953481831277335e+00, 4.6235237860514644e-13,
- 2.2204460492503131e-16, -3.0169977627281241e-11,
- 2.6100455130517730e-11}, /* L622 */
-{5.1911448273359717e+00, 3.5905479978115551e-13,
- 2.2204460492503131e-16, 8.7108098512089782e-13,
- -5.3523852017178797e-13}, /* L623 */
-{6.1614680543235520e+00, 4.2685299739275706e-13,
- 2.2204460492503131e-16, -6.6613381477509392e-15,
- 1.7874590696465020e-13}, /* L624 */
-{5.7187090224479169e+00, 3.9681452568274267e-13,
- 2.2204460492503131e-16, -1.6653345369377348e-13,
- -2.0539125955565396e-14}, /* L625 */
-{7.5676037924973532e+00, 5.2594734123445619e-13,
- 2.2204460492503131e-16, -1.3411494137471891e-13,
- 1.0147438445073931e-13}, /* L626 */
-{6.4609352333051344e+00, 4.4975134727565091e-13,
- 2.2204460492503131e-16, -3.9923619965520629e-13,
- 2.3669954885008337e-13}, /* L627 */
-{5.8503277014394026e+00, 4.0789593924728251e-13,
- 2.2204460492503131e-16, 6.8833827526759706e-15,
- -1.2956302697375577e-13}, /* L628 */
-{7.2327220628888975e+00, 5.0508208726540715e-13,
- 2.2204460492503131e-16, -1.8729462425426391e-13,
- 6.3060667798708891e-14}, /* L629 */
-{6.8861219753515543e+00, 4.8164250365800854e-13,
- 2.2204460492503131e-16, 1.6937562463681388e-12,
- 1.2156942119645464e-12}, /* L630 */
-{6.1283773391454526e+00, 4.2932324362254803e-13,
- 2.2204460492503131e-16, -4.1833203567875898e-13,
- -4.9182879990894435e-14}, /* L631 */
-{7.7291953431401188e+00, 5.4232660029462920e-13,
- 2.2204460492503131e-16, -1.3478107518949400e-13,
- 6.0174087934683484e-14}, /* L632 */
-{5.7866402512666113e+00, 4.0666775502629093e-13,
- 2.2204460492503131e-16, -1.7985612998927536e-14,
- -3.2862601528904634e-14}, /* L633 */
-{1.0499030759977416e+01, 7.3900607855392764e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-13,
- 7.6827433304060833e-14}, /* L634 */
-{8.4905645767254967e+00, 5.9857674372665315e-13,
- 2.2204460492503131e-16, 1.5987211554602254e-14,
- -2.5368596112684827e-13}, /* L635 */
-{9.0853130761015439e+00, 6.4151461920403108e-13,
- 2.2204460492503131e-16, 7.9047879353311146e-14,
- -6.8389738316909643e-14}, /* L636 */
-{7.2260710552487275e+00, 5.1103565823495956e-13,
- 2.2204460492503131e-16, -1.2645440250480533e-13,
- 4.6784798257704097e-13}, /* L637 */
-{6.0995394038308097e+00, 4.3204329003287967e-13,
- 2.2204460492503131e-16, 6.1994853695068741e-13,
- 2.3780977187470853e-13}, /* L638 */
-{6.5750299352832959e+00, 4.6645326490235561e-13,
- 2.2204460492503131e-16, 4.3098857815948577e-13,
- -9.7699626167013776e-15}, /* L639 */
-{6.5437359100296488e+00, 4.6495966798953958e-13,
- 2.2204460492503131e-16, -8.9817042692175164e-14,
- -6.1062266354383610e-14}, /* L640 */
-{6.0606569878389926e+00, 4.3130776727906550e-13,
- 2.2204460492503131e-16, -4.1078251911130792e-15,
- 2.7533531010703882e-14}, /* L641 */
-{8.4517267299685273e+00, 6.0240701316160994e-13,
- 2.2204460492503131e-16, 9.7055696812731185e-13,
- 1.7643664307342988e-12}, /* L642 */
-{6.2900565801635153e+00, 4.4902970230964456e-13,
- 2.2204460492503131e-16, 1.6253665080512292e-13,
- -2.9753977059954195e-14}, /* L643 */
-{6.0773581907758221e+00, 4.3452047515657455e-13,
- 2.2204460492503131e-16, 1.7097434579227411e-13,
- -7.5384143372048129e-14}, /* L644 */
-{7.7069889035575114e+00, 5.5189186554116532e-13,
- 2.2204460492503131e-16, -9.6811447747313650e-14,
- -2.9976021664879227e-15}, /* L645 */
-{6.7335632551656612e+00, 4.8293313792413528e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-16,
- 1.7230661342182430e-13}, /* L646 */
-{9.4259229084370713e+00, 6.7707645046155562e-13,
- 2.2204460492503131e-16, 3.7947422981687851e-13,
- -2.3803181647963356e-13}, /* L647 */
-{6.6983130371100614e+00, 4.8189230383854920e-13,
- 2.2204460492503131e-16, -2.8532731732866523e-14,
- 3.1086244689504383e-15}, /* L648 */
-{7.7958520530350359e+00, 5.6171733930909795e-13,
- 2.2204460492503131e-16, 1.8496315590255108e-13,
- 1.0214051826551440e-13}, /* L649 */
-{7.0023187399134255e+00, 5.0531800965814000e-13,
- 2.2204460492503131e-16, -1.9417800700693988e-13,
- -4.2144066014770942e-13}, /* L650 */
-{5.9005469437386679e+00, 4.2646441933413826e-13,
- 2.2204460492503131e-16, -6.4837024638109142e-14,
- 4.5563552930616424e-13}, /* L651 */
-{8.8922686306168384e+00, 6.4367955410205013e-13,
- 2.2204460492503131e-16, 4.5119463720766362e-13,
- 1.2922996006636822e-13}, /* L652 */
-{6.9984796479817293e+00, 5.0737192225369654e-13,
- 2.2204460492503131e-16, 1.5054624213917123e-13,
- -3.9857006584043120e-14}, /* L653 */
-{5.8084954026368036e+00, 4.2174597147948134e-13,
- 2.2204460492503131e-16, -8.2156503822261584e-15,
- 8.9928064994637680e-14}, /* L654 */
-{5.8606962693522844e+00, 4.2618686357798197e-13,
- 2.2204460492503131e-16, -4.9649173661237000e-13,
- -2.3547830352299570e-13}, /* L655 */
-{5.5228745671368511e+00, 4.0223380182169421e-13,
- 2.2204460492503131e-16, 1.0902390101819037e-13,
- -9.7699626167013776e-14}, /* L656 */
-{7.4376068637415207e+00, 5.4251048098308274e-13,
- 2.2204460492503131e-16, 6.2172489379008766e-14,
- 6.0618177144533547e-14}, /* L657 */
-{6.6117125590043040e+00, 4.8300252686317435e-13,
- 2.2204460492503131e-16, 1.4432899320127035e-13,
- 8.2822637637036678e-14}, /* L658 */
-{6.9233796635805414e+00, 5.0653925498522767e-13,
- 2.2204460492503131e-16, -9.3036689463588118e-14,
- -1.3877787807814457e-14}, /* L659 */
-{7.8170577875722520e+00, 5.7279181397973389e-13,
- 2.2204460492503131e-16, -2.1660451210436804e-13,
- 1.0902390101819037e-13}, /* L660 */
-{8.5446428304138173e+00, 6.2705396430828841e-13,
- 2.2204460492503131e-16, -8.9706020389712648e-14,
- -9.5923269327613525e-14}, /* L661 */
-{6.1004627969488165e+00, 4.4836356849486947e-13,
- 2.2204460492503131e-16, -1.4943601911454607e-13,
- -1.5543122344752192e-14}, /* L662 */
-{8.4215819142241255e+00, 6.1989302579945615e-13,
- 2.2204460492503131e-16, 8.4754425699884450e-13,
- 7.0743411129114975e-13}, /* L663 */
-{6.2628110856984094e+00, 4.6168624479037135e-13,
- 2.2204460492503131e-16, -9.2148511043887993e-15,
- 4.0190073491430667e-14}, /* L664 */
-{7.3422108319780888e+00, 5.4207333066713659e-13,
- 2.2204460492503131e-16, 9.4813046302988369e-14,
- 6.0174087934683484e-14}, /* L665 */
-{6.2239212309291796e+00, 4.6020132149493520e-13,
- 2.2204460492503131e-16, -1.4954704141700859e-13,
- -5.6454840802189210e-13}, /* L666 */
-{7.1293215928052787e+00, 5.2793880378487756e-13,
- 2.2204460492503131e-16, 4.9604764740251994e-13,
- 1.8962609260597674e-13}, /* L667 */
-{7.9007422554708429e+00, 5.8594101792763809e-13,
- 2.2204460492503131e-16, 1.8096635301390052e-13,
- -2.2015722578316854e-13}, /* L668 */
-{5.5744202297784016e+00, 4.1403339090528846e-13,
- 2.2204460492503131e-16, -2.1860291354869332e-13,
- -8.6264329013374663e-14}, /* L669 */
-{5.5298594707635198e+00, 4.1133763062362050e-13,
- 2.2204460492503131e-16, -7.6938455606523348e-14,
- -3.7359004778636518e-13}, /* L670 */
-{8.0108174076235912e+00, 5.9677263131163727e-13,
- 2.2204460492503131e-16, 2.3581137043038325e-13,
- -2.5732749264761878e-12}, /* L671 */
-{7.0269828127116059e+00, 5.2426119001580673e-13,
- 2.2204460492503131e-16, 7.7049477908985864e-14,
- -1.0302869668521453e-13}, /* L672 */
-{8.6129407803702200e+00, 6.4354077622397199e-13,
- 2.2204460492503131e-16, 3.6415315207705135e-13,
- -1.3722356584366935e-13}, /* L673 */
-{8.5460075483744991e+00, 6.3948846218409017e-13,
- 2.2204460492503131e-16, 1.4144241333724494e-13,
- -7.3496764230185363e-14}, /* L674 */
-{6.7000105706516360e+00, 5.0209836288672705e-13,
- 2.2204460492503131e-16, 6.9277916736609768e-14,
- 1.0724754417879012e-13}, /* L675 */
-{7.0488276890308095e+00, 5.2902127123388709e-13,
- 2.2204460492503131e-16, 2.5091040356528538e-14,
- -2.6700863742235015e-13}, /* L676 */
-{6.9328026661452666e+00, 5.2108317660781722e-13,
- 2.2204460492503131e-16, 8.8151708155237429e-14,
- -8.7485574340462335e-14}, /* L677 */
-{7.0951439374143641e+00, 5.3407278599593155e-13,
- 2.2204460492503131e-16, 4.4408920985006262e-13,
- -5.5511151231257827e-14}, /* L678 */
-{8.4204845663392245e+00, 6.3477001432943325e-13,
- 2.2204460492503131e-16, -4.1189274213593308e-13,
- -5.7376325912628090e-13}, /* L679 */
-{9.6331034335098256e+00, 7.2725159228070879e-13,
- 2.2204460492503131e-16, -5.6732396558345499e-14,
- 1.8207657603852567e-14}, /* L680 */
-{8.9434796021111094e+00, 6.7618133314795159e-13,
- 2.2204460492503131e-16, -3.4439118223872356e-13,
- 6.1062266354383610e-14}, /* L681 */
-{8.1081506221971527e+00, 6.1392557704209594e-13,
- 2.2204460492503131e-16, 3.0087043967341742e-13,
- 3.1175062531474396e-13}, /* L682 */
-{6.9915922898306571e+00, 5.3015924983412788e-13,
- 2.2204460492503131e-16, -3.4094949086238557e-13,
- 1.7763568394002505e-14}, /* L683 */
-{7.8587477789173938e+00, 5.9678650909944508e-13,
- 2.2204460492503131e-16, 2.9198865547641617e-13,
- -1.3200551762793111e-13}, /* L684 */
-{5.4576728441824622e+00, 4.1505687775611477e-13,
- 2.2204460492503131e-16, 3.1130653610489389e-13,
- -1.6409096303959814e-13}, /* L685 */
-{6.9690343187097543e+00, 5.3076987249767171e-13,
- 2.2204460492503131e-16, -1.2079226507921703e-13,
- 1.4233059175694507e-13}, /* L686 */
-{6.4126738727756809e+00, 4.8910875349861271e-13,
- 2.2204460492503131e-16, -1.3078427230084344e-13,
- 1.7985612998927536e-14}, /* L687 */
-{7.7438348919166877e+00, 5.9149907194466778e-13,
- 2.2204460492503131e-16, -1.6853185513809876e-13,
- -5.0837112297585918e-13}, /* L688 */
-{8.7460225069273996e+00, 6.6902039463911933e-13,
- 2.2204460492503131e-16, -4.1144865292608301e-13,
- -2.3758772726978350e-14}, /* L689 */
-{8.7283652200259443e+00, 6.6863875547440443e-13,
- 2.2204460492503131e-16, 4.5428105721612155e-12,
- 1.1601830607332886e-12}, /* L690 */
-{9.2050615561653295e+00, 7.0617817149454254e-13,
- 2.2204460492503131e-16, 9.2770235937678081e-13,
- 3.4305891460917337e-13}, /* L691 */
-{8.2188081258286392e+00, 6.3142893691470192e-13,
- 2.2204460492503131e-16, -4.8516746176119341e-14,
- 1.6475709685437323e-13}, /* L692 */
-{7.9924368521490514e+00, 6.1492477776425858e-13,
- 2.2204460492503131e-16, -1.3322676295501878e-14,
- 7.3274719625260332e-14}, /* L693 */
-{7.7374041381322156e+00, 5.9616200864809343e-13,
- 2.2204460492503131e-16, 4.5901060730102472e-12,
- 2.7537971902802383e-12}, /* L694 */
-{7.7777101126509907e+00, 6.0013105596112837e-13,
- 2.2204460492503131e-16, 6.8767214145282196e-13,
- -9.3591800975900696e-13}, /* L695 */
-{6.9978558681507224e+00, 5.4073412414368249e-13,
- 2.2204460492503131e-16, -8.3877349510430577e-13,
- 9.5479180117763462e-14}, /* L696 */
-{6.1832952647551380e+00, 4.7847836803782684e-13,
- 2.2204460492503131e-16, 2.5979218776228663e-14,
- 3.1086244689504383e-15}, /* L697 */
-{6.2944225382050609e+00, 4.8777648586906253e-13,
- 2.2204460492503131e-16, 7.2386541205560206e-14,
- 3.1974423109204508e-14}, /* L698 */
-{6.2618124544072487e+00, 4.8594461787843102e-13,
- 2.2204460492503131e-16, 3.0953017926549364e-13,
- -4.4653170050423796e-13}, /* L699 */
-{8.5525134933600828e+00, 6.6466276926746559e-13,
- 2.2204460492503131e-16, -1.0214051826551440e-13,
- 2.6534330288541241e-13}, /* L700 */
-{1.0350943577539496e+01, 8.0557782666801359e-13,
- 2.2204460492503131e-16, -3.3240077357277187e-13,
- -9.1260332624187868e-14}, /* L701 */
-{5.5078434475941354e+00, 4.2926773247131678e-13,
- 2.2204460492503131e-16, 8.0824236192711396e-14,
- 5.2868820432649954e-13}, /* L702 */
-{7.8349163441299137e+00, 6.1150390306963232e-13,
- 2.2204460492503131e-16, 7.9714013168086240e-14,
- -3.5804692544161298e-13}, /* L703 */
-{7.4936197772816788e+00, 5.8569815664100133e-13,
- 2.2204460492503131e-16, 1.5076828674409626e-13,
- -1.4310774787418268e-13}, /* L704 */
-{6.7546205858901578e+00, 5.2868820432649954e-13,
- 2.2204460492503131e-16, -1.2312373343092986e-13,
- 1.5387691121304670e-13}, /* L705 */
-{7.5389637356321009e+00, 5.9091620485673957e-13,
- 2.2204460492503131e-16, 3.1752378504279477e-14,
- -7.2608585810485238e-14}, /* L706 */
-{8.6004378971111883e+00, 6.7507111012332643e-13,
- 2.2204460492503131e-16, 1.8163248682867561e-13,
- 7.9958262233503774e-13}, /* L707 */
-{8.1666795512948696e+00, 6.4193095283826551e-13,
- 2.2204460492503131e-16, 9.1038288019262836e-15,
- -6.5170091545496689e-14}, /* L708 */
-{7.0249581919299278e+00, 5.5296739409627094e-13,
- 2.2204460492503131e-16, -2.2204460492503131e-16,
- 4.1966430330830917e-14}, /* L709 */
-{6.2838127309141720e+00, 4.9532600243651359e-13,
- 2.2204460492503131e-16, -3.6026737149086330e-13,
- -3.6848302187308946e-13}, /* L710 */
-{7.7493089912493005e+00, 6.1170513099284562e-13,
- 2.2204460492503131e-16, -6.9610983643997315e-14,
- -1.1876055694415300e-12}, /* L711 */
-{7.7356161371159704e+00, 6.1148308638792059e-13,
- 2.2204460492503131e-16, 1.1723955140041653e-13,
- -4.7262194158292914e-13}, /* L712 */
-{8.2843749216477036e+00, 6.5578098507046434e-13,
- 2.2204460492503131e-16, 1.2012613126444194e-13,
- -7.7826634026223473e-14}, /* L713 */
-{5.5336221757895148e+00, 4.3864911702939935e-13,
- 2.2204460492503131e-16, -4.8250292650209303e-13,
- 1.2008172234345693e-12}, /* L714 */
-{7.6115504703326300e+00, 6.0421112557662582e-13,
- 2.2204460492503131e-16, -9.9920072216264089e-14,
- 1.3744561044859438e-13}, /* L715 */
-{8.4057395187759969e+00, 6.6818772737065046e-13,
- 2.2204460492503131e-16, 8.0824236192711396e-14,
- 8.3044682241961709e-14}, /* L716 */
-{7.3961065084995274e+00, 5.8875126995872051e-13,
- 2.2204460492503131e-16, 7.5051076464660582e-14,
- 1.9095836023552692e-14}, /* L717 */
-{6.5821830867037550e+00, 5.2469140143784898e-13,
- 2.2204460492503131e-16, -3.1108449149996886e-13,
- 2.2959412149248237e-13}, /* L718 */
-{8.7976494851194857e+00, 7.0227157422664277e-13,
- 2.2204460492503131e-16, -8.1379347705023974e-14,
- 9.6811447747313650e-14}, /* L719 */
-{8.4708466978478913e+00, 6.7712502271888297e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- 3.3661962106634746e-13}, /* L720 */
-{1.1503225499560960e+01, 9.2079815994239311e-13,
- 2.2204460492503131e-16, 1.2334577803585489e-12,
- 1.3737899706711687e-12}, /* L721 */
-{5.4653825839906460e+00, 4.3809400551708677e-13,
- 2.2204460492503131e-16, 8.4376949871511897e-14,
- 7.1498362785860081e-14}, /* L722 */
-{6.5083090233911456e+00, 5.2241544423736741e-13,
- 2.2204460492503131e-16, 5.9952043329758453e-15,
- -1.5420997812043424e-13}, /* L723 */
-{5.8280478689837913e+00, 4.6845860524058480e-13,
- 2.2204460492503131e-16, -1.8507417820501360e-13,
- 3.1086244689504383e-13}, /* L724 */
-{7.3427702054282129e+00, 5.9102722715920208e-13,
- 2.2204460492503131e-16, 1.8651746813702630e-14,
- 6.5503158452884236e-14}, /* L725 */
-{7.6088274314888045e+00, 6.1328719880293647e-13,
- 2.2204460492503131e-16, -3.3750779948604759e-13,
- -8.3377749149349256e-14}, /* L726 */
-{7.1224321449377488e+00, 5.7487348215090606e-13,
- 2.2204460492503131e-16, -2.1094237467877974e-15,
- 4.9116266609416925e-13}, /* L727 */
-{8.0061939501100916e+00, 6.4709348990277249e-13,
- 2.2204460492503131e-16, -1.9073631563060189e-13,
- 2.3137047833188262e-13}, /* L728 */
-{8.7458985721268974e+00, 7.0785044492538418e-13,
- 2.2204460492503131e-16, 1.9340085088970227e-13,
- -9.1482377229112899e-14}, /* L729 */
-{7.2287785281826453e+00, 5.8586469009469511e-13,
- 2.2204460492503131e-16, 9.1926466438962962e-14,
- -1.0791367799356522e-13}, /* L730 */
-{8.8379072404787671e+00, 7.1725958505908238e-13,
- 2.2204460492503131e-16, 5.3557158707917552e-13,
- -2.9864999362416711e-13}, /* L731 */
-{6.0538005347254558e+00, 4.9198145557483031e-13,
- 2.2204460492503131e-16, 3.4749980670767400e-13,
- 2.0650148258027912e-14}, /* L732 */
-{6.8258549028931919e+00, 5.5548274313643731e-13,
- 2.2204460492503131e-16, -5.9396931817445875e-14,
- -3.7159164634203989e-13}, /* L733 */
-{6.4216722568547180e+00, 5.2330362265706754e-13,
- 2.2204460492503131e-16, 1.1635137298071641e-13,
- -4.7462034302725442e-13}, /* L734 */
-{1.0262601225346939e+01, 8.3744122747475558e-13,
- 2.2204460492503131e-16, -6.0595972684041044e-13,
- -7.5539574595495651e-13}, /* L735 */
-{1.0395226998437057e+01, 8.4941775835289945e-13,
- 2.2204460492503131e-16, -3.6270986214503864e-13,
- 2.5268676040468563e-13}, /* L736 */
-{7.5413958872491786e+00, 6.1706195708666201e-13,
- 2.2204460492503131e-16, 2.7533531010703882e-13,
- 1.5099033134902129e-14}, /* L737 */
-{7.2007227427401128e+00, 5.8998639307361600e-13,
- 2.2204460492503131e-16, -1.5365486660812167e-13,
- -1.1457501614131615e-13}, /* L738 */
-{9.0822200124200876e+00, 7.4515393855278944e-13,
- 2.2204460492503131e-16, 2.4047430713380891e-13,
- 4.6074255521943996e-13}, /* L739 */
-{8.6040676287455984e+00, 7.0687899977883717e-13,
- 2.2204460492503131e-16, 2.1938006966593093e-13,
- 4.1722181265413383e-13}, /* L740 */
-{6.9959624545842134e+00, 5.7553961596568115e-13,
- 2.2204460492503131e-16, -4.9960036108132044e-15,
- 5.4400928206632670e-14}, /* L741 */
-{8.6270351742669185e+00, 7.1068151363817833e-13,
- 2.2204460492503131e-16, 2.9776181520446698e-13,
- 1.1879386363489175e-13}, /* L742 */
-{7.6675760271790914e+00, 6.3249405712895168e-13,
- 2.2204460492503131e-16, -8.4354745411019394e-13,
- 1.2543299732215019e-12}, /* L743 */
-{9.0858835804938423e+00, 7.5049818790140499e-13,
- 2.2204460492503131e-16, -7.2164496600635175e-14,
- 1.6076029396572267e-13}, /* L744 */
-{9.7399482526783014e+00, 8.0560558224362921e-13,
- 2.2204460492503131e-16, 1.7030821197749901e-13,
- -2.4980018054066022e-14}, /* L745 */
-{8.5598325397587587e+00, 7.0894679016220152e-13,
- 2.2204460492503131e-16, -4.9071857688431919e-14,
- 9.1926466438962962e-14}, /* L746 */
-{1.1687434771339559e+01, 9.6928021164899292e-13,
- 2.2204460492503131e-16, 1.5543122344752192e-15,
- -4.3176573427672338e-13}, /* L747 */
-{6.8028182194832372e+00, 5.6493698608051091e-13,
- 2.2204460492503131e-16, 2.6201263381153694e-14,
- -1.7363888105137448e-13}, /* L748 */
-{7.7927359261637479e+00, 6.4800942389808824e-13,
- 2.2204460492503131e-16, -5.9507954119908391e-14,
- -4.6740389336719090e-14}, /* L749 */
-{7.2618447903933889e+00, 6.0466909257428370e-13,
- 2.2204460492503131e-16, -1.0158540675320182e-13,
- -2.3170354523927017e-13}, /* L750 */
-{7.0465324222738541e+00, 5.8752308573772893e-13,
- 2.2204460492503131e-16, -1.5143442055887135e-13,
- 1.0103029524088925e-12}, /* L751 */
-{7.4288681035552342e+00, 6.2022609270684370e-13,
- 2.2204460492503131e-16, -2.6978419498391304e-14,
- -4.0523140398818214e-14}, /* L752 */
-{6.0969551703366998e+00, 5.0970339060540937e-13,
- 2.2204460492503131e-16, -1.4999113062685865e-13,
- 1.7874590696465020e-13}, /* L753 */
-{9.0424960303177233e+00, 7.5695352763638368e-13,
- 2.2204460492503131e-16, -5.3479443096193791e-13,
- -3.5726976932437537e-13}, /* L754 */
-{7.9940523473722598e+00, 6.7007510651251323e-13,
- 2.2204460492503131e-16, 8.1934459217336553e-14,
- 4.0412118096355698e-14}, /* L755 */
-{6.6620475477928052e+00, 5.5916382635246009e-13,
- 2.2204460492503131e-16, -7.5717210279435676e-14,
- 4.7406523151494184e-13}, /* L756 */
-{7.7549659999264753e+00, 6.5175642660619815e-13,
- 2.2204460492503131e-16, -7.7715611723760958e-15,
- -4.7184478546569153e-14}, /* L757 */
-{9.0560828894288310e+00, 7.6211259525393871e-13,
- 2.2204460492503131e-16, -1.3322676295501878e-15,
- 1.0680345496894006e-13}, /* L758 */
-{6.3583763030377494e+00, 5.3579363168410055e-13,
- 2.2204460492503131e-16, 1.7319479184152442e-13,
- -1.2244649738590851e-12}, /* L759 */
-{8.3960658781100452e+00, 7.0843331201331239e-13,
- 2.2204460492503131e-16, -1.8562928971732617e-13,
- 1.8718360195180139e-13}, /* L760 */
-{8.7283317733465964e+00, 7.3743788853164460e-13,
- 2.2204460492503131e-16, 3.0087043967341742e-13,
- -6.1606275636449936e-13}, /* L761 */
-{6.8687772411105019e+00, 5.8109073108880693e-13,
- 2.2204460492503131e-16, -6.5214500466481695e-13,
- 2.3758772726978350e-13}, /* L762 */
-{8.3381520804556502e+00, 7.0632388826652459e-13,
- 2.2204460492503131e-16, -4.9182879990894435e-14,
- -7.6161299489285739e-14}, /* L763 */
-{7.9737118602828865e+00, 6.7633745826078950e-13,
- 2.2204460492503131e-16, -1.6209256159527285e-13,
- 1.8229862064345070e-13}, /* L764 */
-{7.5882472660224449e+00, 6.4448446579490337e-13,
- 2.2204460492503131e-16, 3.7614356074300304e-13,
- -1.7479351299698465e-12}, /* L765 */
-{7.5969033042218879e+00, 6.4606306415804227e-13,
- 2.2204460492503131e-16, 6.1373128801278654e-13,
- -2.4225066397320916e-13}, /* L766 */
-{9.1678762634182505e+00, 7.8068107534079445e-13,
- 2.2204460492503131e-16, -8.4598994476436928e-13,
- -5.0270898555027088e-13}, /* L767 */
-{7.6718871039843828e+00, 6.5414340610914223e-13,
- 2.2204460492503131e-16, 2.6867397195928788e-13,
- -6.4526162191214098e-13}, /* L768 */
-{9.2566791036726297e+00, 7.9029838229160987e-13,
- 2.2204460492503131e-16, -3.4727776210274897e-13,
- 5.2402526762307389e-13}, /* L769 */
-{8.4545587933612047e+00, 7.2275518903097691e-13,
- 2.2204460492503131e-16, -1.2689849171465539e-13,
- -1.9506618542664000e-13}, /* L770 */
-{7.7814649357450358e+00, 6.6607830362386267e-13,
- 2.2204460492503131e-16, -9.6611607602881122e-13,
- 4.4453329905991268e-13}, /* L771 */
-{6.6179670474313426e+00, 5.6721988217489638e-13,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- -8.8817841970012523e-15}, /* L772 */
-{6.3903318802437727e+00, 5.4841894914225975e-13,
- 2.2204460492503131e-16, -1.2414513861358500e-12,
- 1.2274625760255731e-12}, /* L773 */
-{7.0969104216449486e+00, 6.0984550742659849e-13,
- 2.2204460492503131e-16, -1.0824674490095276e-13,
- 5.5289106626332796e-14}, /* L774 */
-{7.4942053720480040e+00, 6.4481753270229092e-13,
- 2.2204460492503131e-16, 7.9047879353311146e-14,
- 2.6867397195928788e-14}, /* L775 */
-{7.1404751830966342e+00, 6.1517457794479924e-13,
- 2.2204460492503131e-16, -7.1465056095121327e-13,
- -6.4170890823334048e-13}, /* L776 */
-{6.7709244534465682e+00, 5.8408833325529486e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-14,
- -1.2334577803585489e-13}, /* L777 */
-{6.9003964909081583e+00, 5.9602323077001529e-13,
- 2.2204460492503131e-16, -5.9752203185325925e-13,
- 1.5232259897857148e-13}, /* L778 */
-{9.0038652966024024e+00, 7.7871042947208480e-13,
- 2.2204460492503131e-16, 1.2856382625159313e-13,
- -9.4924068605450884e-14}, /* L779 */
-{9.8480924604817446e+00, 8.5281781636581400e-13,
- 2.2204460492503131e-16, 2.6756374893466273e-13,
- -7.6050277186823223e-14}, /* L780 */
-{9.6677489276500168e+00, 8.3827389474322445e-13,
- 2.2204460492503131e-16, -1.2589929099249275e-13,
- -2.5879298704012399e-13}, /* L781 */
-{7.6934264602151936e+00, 6.6793792719010980e-13,
- 2.2204460492503131e-16, -3.9168668308775523e-13,
- 6.2416738444426301e-13}, /* L782 */
-{8.2496937307983238e+00, 7.1714856275661987e-13,
- 2.2204460492503131e-16, -1.3544720900426910e-14,
- -7.9714013168086240e-14}, /* L783 */
-{7.9387880352840954e+00, 6.9100281052669743e-13,
- 2.2204460492503131e-16, 3.8635761256955448e-14,
- -1.0214051826551440e-14}, /* L784 */
-{9.0694410605034239e+00, 7.9042328238188020e-13,
- 2.2204460492503131e-16, -4.3753889400477419e-13,
- 8.7929663550312398e-14}, /* L785 */
-{8.0280024877199399e+00, 7.0055072853847378e-13,
- 2.2204460492503131e-16, 1.0369483049998962e-13,
- 8.7929663550312398e-14}, /* L786 */
-{7.5162126207708928e+00, 6.5672467464139572e-13,
- 2.2204460492503131e-16, -3.2085445411667024e-14,
- -3.3195668436292181e-14}, /* L787 */
-{7.6900105462848316e+00, 6.7276392790027728e-13,
- 2.2204460492503131e-16, 3.2462921240039577e-13,
- -3.3506530883187224e-13}, /* L788 */
-{8.9271370248006132e+00, 7.8198558739472901e-13,
- 2.2204460492503131e-16, -7.0077277314339881e-13,
- 1.9717560917342780e-13}, /* L789 */
-{8.6107730789452379e+00, 7.5522921250126274e-13,
- 2.2204460492503131e-16, -6.2283511681471282e-14,
- 1.7541523789077473e-14}, /* L790 */
-{9.3672714159779389e+00, 8.2261975009600974e-13,
- 2.2204460492503131e-16, -1.9950707752514063e-13,
- -1.0680345496894006e-13}, /* L791 */
-{1.1636381995105930e+01, 1.0231815394945443e-12,
- 2.2204460492503131e-16, 7.9758422089071246e-13,
- -8.6264329013374663e-13}, /* L792 */
-{8.6513377350153711e+00, 7.6166850604408864e-13,
- 2.2204460492503131e-16, -3.4383607072641098e-13,
- -1.8651746813702630e-13}, /* L793 */
-{8.4949756191999839e+00, 7.4884543010966809e-13,
- 2.2204460492503131e-16, -2.1405099914773018e-13,
- 4.6473935810809053e-13}, /* L794 */
-{9.3371216494801264e+00, 8.2411855117925370e-13,
- 2.2204460492503131e-16, -7.5495165674510645e-14,
- 2.6512125828048738e-13}, /* L795 */
-{7.7054141669061869e+00, 6.8095529215383976e-13,
- 2.2204460492503131e-16, -2.8965718712470334e-13,
- 4.5186077102243871e-13}, /* L796 */
-{9.8544697507287324e+00, 8.7196916354059795e-13,
- 2.2204460492503131e-16, -3.0864200084579352e-14,
- -1.2934098236883074e-13}, /* L797 */
-{1.0341181728889325e+01, 9.1618379549629481e-13,
- 2.2204460492503131e-16, -1.5987211554602254e-14,
- -1.4721557306529576e-13}, /* L798 */
-{1.1460124463608130e+01, 1.0165895902858324e-12,
- 2.2204460492503131e-16, -4.7056802898737260e-12,
- -4.7528647684202951e-13}, /* L799 */
-{8.3106381117514339e+00, 7.3813177792203533e-13,
- 2.2204460492503131e-16, -1.1424194923392861e-13,
- -1.5698553568199713e-13}, /* L800 */
-{1.1316341199668525e+01, 1.0063477828836653e-12,
- 2.2204460492503131e-16, -7.4940054162198066e-13,
- 4.8161474808239291e-13}, /* L801 */
-{1.0457934205284054e+01, 9.3117180632873442e-13,
- 2.2204460492503131e-16, -8.7263529735537304e-14,
- 1.2745360322696797e-13}, /* L802 */
-{7.4234239162229985e+00, 6.6180394497905581e-13,
- 2.2204460492503131e-16, -1.6986412276764895e-14,
- -7.0166095156309893e-14}, /* L803 */
-{9.3289948179225330e+00, 8.3272277962009866e-13,
- 2.2204460492503131e-16, 6.1062266354383610e-14,
- 2.3758772726978350e-14}, /* L804 */
-{9.4795180614745913e+00, 8.4721119009145696e-13,
- 2.2204460492503131e-16, -7.8825834748386114e-14,
- -5.5622173533720343e-14}, /* L805 */
-{1.1582369390209212e+01, 1.0364348268510071e-12,
- 2.2204460492503131e-16, -7.2608585810485238e-14,
- 1.5765166949677223e-14}, /* L806 */
-{8.1790711445648014e+00, 7.3280270740383457e-13,
- 2.2204460492503131e-16, 6.7412742055239505e-13,
- -8.4598994476436928e-14}, /* L807 */
-{8.6791597327766912e+00, 7.7857165159400665e-13,
- 2.2204460492503131e-16, -1.0658141036401503e-14,
- 5.1070259132757201e-14}, /* L808 */
-{1.1482249265191783e+01, 1.0313000453621157e-12,
- 2.2204460492503131e-16, 1.3211653993039363e-13,
- 3.1086244689504383e-15}, /* L809 */
-{6.6429117151353250e+00, 5.9738325397518111e-13,
- 2.2204460492503131e-16, 1.9984014443252818e-14,
- -3.8669067947694202e-13}, /* L810 */
-{9.4815192747112285e+00, 8.5370599478551412e-13,
- 2.2204460492503131e-16, 1.8118839761882555e-13,
- 2.8244073746463982e-13}, /* L811 */
-{8.2974268840057537e+00, 7.4801276284119922e-13,
- 2.2204460492503131e-16, -9.5257135512838431e-14,
- 2.9420910152566648e-13}, /* L812 */
-{9.2247993018775283e+00, 8.3263951289325178e-13,
- 2.2204460492503131e-16, 3.3972824553529790e-14,
- -3.4305891460917337e-14}, /* L813 */
-{9.1501987115111945e+00, 8.2692186431643222e-13,
- 2.2204460492503131e-16, 4.8316906031686813e-13,
- -4.2266190547479709e-13}, /* L814 */
-{1.0571182322398188e+01, 9.5651264686580362e-13,
- 2.2204460492503131e-16, 1.4321877017664519e-13,
- -3.4916514124461173e-13}, /* L815 */
-{8.0995838572011785e+00, 7.3377415255038159e-13,
- 2.2204460492503131e-16, 2.5845992013273644e-13,
- -8.0380146982861334e-14}, /* L816 */
-{1.2937596911125187e+01, 1.1735057370287905e-12,
- 2.2204460492503131e-16, -8.3488771451811772e-14,
- 1.4876988529977098e-14}, /* L817 */
-{9.3747091670684828e+00, 8.5137452643380129e-13,
- 2.2204460492503131e-16, -1.6731060981101109e-13,
- 1.6497914145929826e-13}, /* L818 */
-{1.0133105120159168e+01, 9.2137408813641741e-13,
- 2.2204460492503131e-16, -2.7977620220553945e-14,
- 8.5487172896137054e-14}, /* L819 */
-{9.6176981007353373e+00, 8.7557738837062971e-13,
- 2.2204460492503131e-16, 2.6600943670018751e-13,
- -1.1779466291272911e-13}, /* L820 */
-{7.5706574984819293e+00, 6.9005912095576605e-13,
- 2.2204460492503131e-16, -1.0769163338864018e-14,
- 5.0182080713057076e-14}, /* L821 */
-{7.8771413815912839e+00, 7.1886940844478886e-13,
- 2.2204460492503131e-16, 2.4336088699783431e-13,
- 2.2515322939398175e-13}, /* L822 */
-{8.9735864541618575e+00, 8.1992745926129373e-13,
- 2.2204460492503131e-16, 4.9849013805669529e-13,
- 2.6934010577406298e-13}, /* L823 */
-{9.6201608088612041e+00, 8.8007379162036159e-13,
- 2.2204460492503131e-16, 2.1249668691325496e-13,
- 1.4144241333724494e-13}, /* L824 */
-{7.5872846977823265e+00, 6.9494410226411674e-13,
- 2.2204460492503131e-16, 3.1308289294429414e-14,
- -1.7885692926711272e-13}, /* L825 */
-{8.7701409553574123e+00, 8.0425943682627121e-13,
- 2.2204460492503131e-16, -8.9817042692175164e-14,
- -1.1102230246251565e-14}, /* L826 */
-{9.0553961262370191e+00, 8.3142390541746103e-13,
- 2.2204460492503131e-16, 7.7715611723760958e-14,
- -3.0953017926549364e-13}, /* L827 */
-{9.3656548728269193e+00, 8.6095020002119327e-13,
- 2.2204460492503131e-16, -6.0862426209951082e-13,
- -5.3068660577082483e-13}, /* L828 */
-{8.7724052757155917e+00, 8.0738887797693337e-13,
- 2.2204460492503131e-16, 1.8489654252107357e-12,
- -2.0968782266095332e-12}, /* L829 */
-{8.3819409350819853e+00, 7.7238215823172141e-13,
- 2.2204460492503131e-16, -7.1831429693247628e-14,
- 1.1857181902996672e-13}, /* L830 */
-{9.6928552443259086e+00, 8.9425689075994796e-13,
- 2.2204460492503131e-16, 1.6131540547803525e-12,
- 9.0438767585965252e-13}, /* L831 */
-{6.9979076752612190e+00, 6.4639960051238177e-13,
- 2.2204460492503131e-16, 2.6134649999676185e-13,
- 2.1516122217235534e-13}, /* L832 */
-{7.5765425658090262e+00, 7.0068950641655192e-13,
- 2.2204460492503131e-16, 1.6231460620019789e-13,
- 2.3558932582545822e-13}, /* L833 */
-{9.3100416668638211e+00, 8.6203960636410670e-13,
- 2.2204460492503131e-16, -2.0347057372305244e-12,
- 4.3063330679160572e-12}, /* L834 */
-{1.2552115611940454e+01, 1.1636247521096266e-12,
- 2.2204460492503131e-16, 2.5579538487363607e-13,
- -1.7341683644644945e-13}, /* L835 */
-{7.3474996304779925e+00, 6.8195449287600240e-13,
- 2.2204460492503131e-16, 2.3536728122053319e-14,
- 6.7945649107059580e-14}, /* L836 */
-{1.3074692073667933e+01, 1.2149725669985401e-12,
- 2.2204460492503131e-16, 9.6811447747313650e-14,
- 1.8385293287792592e-13}, /* L837 */
-{6.9516816121039309e+00, 6.4676042299538494e-13,
- 2.2204460492503131e-16, -3.5749181392930041e-14,
- -5.8730798002670781e-14}, /* L838 */
-{9.6113083700242505e+00, 8.9526996926991842e-13,
- 2.2204460492503131e-16, -8.0491169285323849e-14,
- -1.2811973704174306e-13}, /* L839 */
-{1.1201208148413031e+01, 1.0446088438698098e-12,
- 2.2204460492503131e-16, -4.7672976677404222e-13,
- 2.1938006966593093e-13}, /* L840 */
-{9.3466259234016533e+00, 8.7269080850660430e-13,
- 2.2204460492503131e-16, -6.1417537722263660e-13,
- 4.3010039973978564e-13}, /* L841 */
-{8.6829115613024843e+00, 8.1168405330345195e-13,
- 2.2204460492503131e-16, 1.5476508963274682e-13,
- -5.0293103015519591e-14}, /* L842 */
-{7.8339388127985128e+00, 7.3319128546245338e-13,
- 2.2204460492503131e-16, 3.7014835641002719e-13,
- -5.4756199574512721e-13}, /* L843 */
-{8.0438515534001027e+00, 7.5373041141801878e-13,
- 2.2204460492503131e-16, 2.3092638912203256e-13,
- -3.2196467714129540e-14}, /* L844 */
-{7.7745684790091882e+00, 7.2936101602749659e-13,
- 2.2204460492503131e-16, 3.8857805861880479e-14,
- -1.1968204205459188e-13}, /* L845 */
-{9.1867757233528238e+00, 8.6286533473867166e-13,
- 2.2204460492503131e-16, 1.3256062914024369e-13,
- 3.9968028886505635e-15}, /* L846 */
-{7.3208498028103328e+00, 6.8842154199444394e-13,
- 2.2204460492503131e-16, 2.1316282072803006e-14,
- 4.7961634663806763e-14}, /* L847 */
-{9.3156102161628223e+00, 8.7703455609045022e-13,
- 2.2204460492503131e-16, -5.5067062021407764e-13,
- -4.8749893011290624e-13}, /* L848 */
-{8.6384117443105168e+00, 8.1423756626008981e-13,
- 2.2204460492503131e-16, -1.1979306435705439e-13,
- -1.9528823003156504e-13}, /* L849 */
-{8.6311900880780392e+00, 8.1451512201624610e-13,
- 2.2204460492503131e-16, -7.6494366396673286e-14,
- -7.2386541205560206e-14}, /* L850 */
-{9.4524238437647128e+00, 8.9306340100847592e-13,
- 2.2204460492503131e-16, 3.5345060211966484e-12,
- -2.3018253969553371e-12}, /* L851 */
-{1.0380884922594200e+01, 9.8193675412971970e-13,
- 2.2204460492503131e-16, -3.0919711235810610e-13,
- -1.5487611193520934e-13}, /* L852 */
-{7.7922162797596206e+00, 7.3793748889272592e-13,
- 2.2204460492503131e-16, 8.5331741672689532e-13,
- -4.5508041779385167e-13}, /* L853 */
-{7.9159960956777988e+00, 7.5053852022222145e-13,
- 2.2204460492503131e-16, -2.1360690993788012e-13,
- -4.1855408028368402e-14}, /* L854 */
-{9.3924124791664294e+00, 8.9156459992523196e-13,
- 2.2204460492503131e-16, 1.0347278589506459e-12,
- 6.9380057254875283e-12}, /* L855 */
-{1.0174081472279928e+01, 9.6689323214604883e-13,
- 2.2204460492503131e-16, 1.2545520178264269e-13,
- -8.8040685852774914e-14}, /* L856 */
-{9.4755108655652815e+00, 9.0155660714685837e-13,
- 2.2204460492503131e-16, -1.2656542480726785e-14,
- 5.1514348342607263e-14}, /* L857 */
-{1.0995646718379708e+01, 1.0474121570069883e-12,
- 2.2204460492503131e-16, 2.8359536941024999e-12,
- 7.0328187717905166e-12}, /* L858 */
-{7.0884861544324318e+00, 6.7601479969425782e-13,
- 2.2204460492503131e-16, 3.2063240951174521e-13,
- -4.4664272280670048e-13}, /* L859 */
-{1.1190715329791459e+01, 1.0684786388992507e-12,
- 2.2204460492503131e-16, -6.4894756235389650e-12,
- -1.3474776849875525e-12}, /* L860 */
-{9.2468206282597958e+00, 8.8390406105531838e-13,
- 2.2204460492503131e-16, -8.8928864272475039e-14,
- 9.0150109599562711e-14}, /* L861 */
-{1.0117185335504043e+01, 9.6822549977559902e-13,
- 2.2204460492503131e-16, 7.9491968563161208e-14,
- 9.3924867883288243e-14}, /* L862 */
-{1.0208011470247856e+01, 9.7805097354353165e-13,
- 2.2204460492503131e-16, -1.3422596367718143e-13,
- -1.6153745008296028e-13}, /* L863 */
-{9.9809185247304129e+00, 9.5740082528550374e-13,
- 2.2204460492503131e-16, 2.0472512574087887e-13,
- -3.3184566206045929e-13}, /* L864 */
-{8.9398984976029592e+00, 8.5853546494263355e-13,
- 2.2204460492503131e-16, 3.1086244689504383e-14,
- -1.6853185513809876e-13}, /* L865 */
-{9.7477059101764763e+00, 9.3719476623732589e-13,
- 2.2204460492503131e-16, -2.5213164889237305e-13,
- -8.4265927569049381e-13}, /* L866 */
-{9.3483423152636096e+00, 8.9983576145868938e-13,
- 2.2204460492503131e-16, 1.9095836023552692e-13,
- -2.3092638912203256e-14}, /* L867 */
-{7.4683297551855281e+00, 7.1970207571325773e-13,
- 2.2204460492503131e-16, 1.5321077739827160e-13,
- -1.4310774787418268e-13}, /* L868 */
-{8.6553646337650854e+00, 8.3505424797181149e-13,
- 2.2204460492503131e-16, 6.2172489379008766e-14,
- 3.3750779948604759e-14}, /* L869 */
-{8.3734327509362476e+00, 8.0878359565161873e-13,
- 2.2204460492503131e-16, 1.7088552795030409e-12,
- -2.3353541322990168e-12}, /* L870 */
-{1.1551395951467281e+01, 1.1170231406509856e-12,
- 2.2204460492503131e-16, -5.6177285046032921e-14,
- -1.8285373215576328e-13}, /* L871 */
-{6.8655498226503484e+00, 6.6466276926746559e-13,
- 2.2204460492503131e-16, 2.9976021664879227e-13,
- 4.5963233219481481e-14}, /* L872 */
-{1.0369432167485062e+01, 1.0050293930419230e-12,
- 2.2204460492503131e-16, -1.8984813721090177e-14,
- -5.1181281435219717e-14}, /* L873 */
-{8.6479684494530975e+00, 8.3914125648121285e-13,
- 2.2204460492503131e-16, -1.1690648449302898e-13,
- -2.8643754035329039e-14}, /* L874 */
-{9.3988719714651765e+00, 9.1304741545172874e-13,
- 2.2204460492503131e-16, 1.7013057629355899e-12,
- 1.4468426456915040e-12}, /* L875 */
-{8.4763261585318315e+00, 8.2436835135979436e-13,
- 2.2204460492503131e-16, 8.4021678503631847e-13,
- 2.2051249715104859e-12}, /* L876 */
-{9.3814287121972892e+00, 9.1343599351034754e-13,
- 2.2204460492503131e-16, -1.6531220836668581e-13,
- 7.0987660194532509e-13}, /* L877 */
-{8.5948313277667729e+00, 8.3780204995775875e-13,
- 2.2204460492503131e-16, -7.0443650912466182e-13,
- -1.0113021531310551e-12}, /* L878 */
-{1.0610084998985544e+01, 1.0354217483410366e-12,
- 2.2204460492503131e-16, -2.3880897259687117e-13,
- 4.3298697960381105e-14}, /* L879 */
-{1.0010527157235810e+01, 9.7802321796791603e-13,
- 2.2204460492503131e-16, -3.0967450825869491e-12,
- -1.2501111257279263e-12}, /* L880 */
-{7.6895694530491729e+00, 7.5212058803231230e-13,
- 2.2204460492503131e-16, -7.1220807029703792e-13,
- -2.2426505097428162e-13}, /* L881 */
-{8.3095369195311957e+00, 8.1368245474777723e-13,
- 2.2204460492503131e-16, 8.7929663550312398e-14,
- 2.4691360067663481e-13}, /* L882 */
-{9.8895965768349257e+00, 9.6950225625391795e-13,
- 2.2204460492503131e-16, -6.0729199446996063e-14,
- -2.6789681584205027e-13}, /* L883 */
-{8.6442444073142859e+00, 8.4837692426731337e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-14,
- 3.7081449022480228e-13}, /* L884 */
-{9.6960604952784930e+00, 9.5268237743084683e-13,
- 2.2204460492503131e-16, -5.0504045390198371e-13,
- 9.7699626167013776e-14}, /* L885 */
-{1.1052006714471835e+01, 1.0871373246068572e-12,
- 2.2204460492503131e-16, -1.3411494137471891e-13,
- 2.4225066397320916e-13}, /* L886 */
-{1.0251425418372760e+01, 1.0095257962916548e-12,
- 2.2204460492503131e-16, 1.0167422459517184e-12,
- 2.0472512574087887e-13}, /* L887 */
-{1.1583351608466337e+01, 1.1419754031294360e-12,
- 2.2204460492503131e-16, 2.0516921495072893e-13,
- -2.3103741142449508e-13}, /* L888 */
-{1.1014640549975708e+01, 1.0871303857129533e-12,
- 2.2204460492503131e-16, -6.7945649107059580e-14,
- -1.5387691121304670e-13}, /* L889 */
-{9.7702401336730880e+00, 9.6539443106280487e-13,
- 2.2204460492503131e-16, 1.8829382497642655e-13,
- -2.0106138975961585e-13}, /* L890 */
-{1.0715785705451658e+01, 1.0600131883364838e-12,
- 2.2204460492503131e-16, -2.9620750296999176e-13,
- 9.5101704289390909e-13}, /* L891 */
-{7.6076353210017702e+00, 7.5339734451063123e-13,
- 2.2204460492503131e-16, 3.8569147875477938e-13,
- -1.8440804439023850e-13}, /* L892 */
-{8.3379190898436502e+00, 8.2664430856027593e-13,
- 2.2204460492503131e-16, -7.1609385088322597e-14,
- 3.1086244689504383e-15}, /* L893 */
-{8.7883597826723321e+00, 8.7227794431932182e-13,
- 2.2204460492503131e-16, 3.1530333899354446e-13,
- -1.1468603844377867e-12}, /* L894 */
-{7.8765487397153047e+00, 7.8265172120950410e-13,
- 2.2204460492503131e-16, -2.1834756225302954e-12,
- 9.0549789888427767e-13}, /* L895 */
-{7.3091633174309161e+00, 7.2708505882701502e-13,
- 2.2204460492503131e-16, -2.8410607200157756e-13,
- -1.5332179970073412e-13}, /* L896 */
-{1.6333359102583998e+01, 1.6265877533783168e-12,
- 2.2204460492503131e-16, -1.4244161405940758e-13,
- -3.3328895199247199e-13}, /* L897 */
-{9.1506269091671584e+00, 9.1229801491010676e-13,
- 2.2204460492503131e-16, -4.4297898682543746e-14,
- 3.1086244689504383e-14}, /* L898 */
-{9.5895590672040569e+00, 9.5712326952934745e-13,
- 2.2204460492503131e-16, -5.4023452378260117e-13,
- -1.0524914273446484e-13}, /* L899 */
-{1.0686127970684332e+01, 1.0677569939332443e-12,
- 2.2204460492503131e-16, 9.5701224722688494e-14,
- 6.7723604502134549e-14}, /* L900 */
-{1.2051073397037014e+01, 1.2054801601379950e-12,
- 2.2204460492503131e-16, 1.4588330543574557e-12,
- 1.1164402735630574e-12}, /* L901 */
-{8.2533389636897816e+00, 8.2650553068219779e-13,
- 2.2204460492503131e-16, -3.3639757646142243e-14,
- 3.4794389591752406e-13}, /* L902 */
-{1.0995587668965866e+01, 1.1023404411503179e-12,
- 2.2204460492503131e-16, 1.1968204205459188e-13,
- -1.2922996006636822e-13}, /* L903 */
-{1.1445814518305125e+01, 1.1487477635796495e-12,
- 2.2204460492503131e-16, 8.8906659811982536e-13,
- 2.1604940059205546e-13}, /* L904 */
-{1.0947703736355882e+01, 1.0999708088821336e-12,
- 2.2204460492503131e-16, 9.6367358537463588e-14,
- 1.0147438445073931e-13}, /* L905 */
-{1.1483461826144907e+01, 1.1550760348200129e-12,
- 2.2204460492503131e-16, -5.7731597280508140e-14,
- -8.8373752760162461e-14}, /* L906 */
-{1.0890590500790017e+01, 1.0966505481491140e-12,
- 2.2204460492503131e-16, 1.0969003483296547e-13,
- 3.6792791036077688e-13}, /* L907 */
-{1.1563894896316020e+01, 1.1657341758564144e-12,
- 2.2204460492503131e-16, -9.9742436532324064e-13,
- 2.8526070394718772e-12}, /* L908 */
-{9.2915438122499463e+00, 9.3769436659840721e-13,
- 2.2204460492503131e-16, -2.3425705819590803e-14,
- 6.4614980033184111e-14}, /* L909 */
-{9.9934223600767460e+00, 1.0096368185941174e-12,
- 2.2204460492503131e-16, -4.4175774149834979e-13,
- -6.3349325785111432e-13}, /* L910 */
-{8.4440308851593695e+00, 8.5403906169290167e-13,
- 2.2204460492503131e-16, 7.0567995891224200e-12,
- 5.3539395139523549e-12}, /* L911 */
-{8.8489722943209141e+00, 8.9597773644811696e-13,
- 2.2204460492503131e-16, 4.5785597535541456e-12,
- 6.2172489379008766e-15}, /* L912 */
-{9.0720296470633119e+00, 9.1956997572140153e-13,
- 2.2204460492503131e-16, 1.1302070390684094e-13,
- 4.7761794519374234e-13}, /* L913 */
-{9.7401685399985833e+00, 9.8837604767254561e-13,
- 2.2204460492503131e-16, 9.4591001698063337e-14,
- -3.2862601528904634e-14}, /* L914 */
-{9.9557534121727329e+00, 1.0113576642822864e-12,
- 2.2204460492503131e-16, 4.6074255521943996e-13,
- -1.2623235789988030e-13}, /* L915 */
-{9.9339676377992436e+00, 1.0102474412576612e-12,
- 2.2204460492503131e-16, -3.8113956435381624e-13,
- 4.3411940708892871e-12}, /* L916 */
-{9.8583852373942786e+00, 1.0036554920489493e-12,
- 2.2204460492503131e-16, 8.7707618945387367e-14,
- 1.6520118606422329e-13}, /* L917 */
-{6.9150435895278655e+00, 7.0476957603204937e-13,
- 2.2204460492503131e-16, 3.7541081354675043e-12,
- 9.8039354412549073e-12}, /* L918 */
-{9.1409284586791273e+00, 9.3264285183636275e-13,
- 2.2204460492503131e-16, -3.5293989952833726e-13,
- 6.0329519158131006e-13}, /* L919 */
-{8.2440347457951333e+00, 8.4204865302694998e-13,
- 2.2204460492503131e-16, -1.9317880628477724e-14,
- 5.9219296133505850e-13}, /* L920 */
-{8.7665719200691949e+00, 8.9639407008235139e-13,
- 2.2204460492503131e-16, 7.6805228843568329e-13,
- -1.5285550603039155e-12}, /* L921 */
-{1.3183046829353204e+01, 1.3494483308562621e-12,
- 2.2204460492503131e-16, -1.7175150190951172e-13,
- -2.4069635173873394e-13}, /* L922 */
-{7.8840861115702161e+00, 8.0790929501972641e-13,
- 2.2204460492503131e-16, 4.6296300126869028e-13,
- 8.7574392182432348e-13}, /* L923 */
-{1.0159648063539786e+01, 1.0422218643668657e-12,
- 2.2204460492503131e-16, 1.7035262089848402e-12,
- 1.9646506643766770e-12}, /* L924 */
-{9.3373627045941827e+00, 9.5890483053917563e-13,
- 2.2204460492503131e-16, -1.4432899320127035e-15,
- 3.0908609005564358e-13}, /* L925 */
-{1.1461141192473828e+01, 1.1782796960346786e-12,
- 2.2204460492503131e-16, -2.9198865547641617e-14,
- -1.6209256159527285e-14}, /* L926 */
-{8.1553526725774024e+00, 8.3932860661661834e-13,
- 2.2204460492503131e-16, 2.7600144392181392e-13,
- -1.5198953207118393e-13}, /* L927 */
-{1.1797432405991961e+01, 1.2154721673596214e-12,
- 2.2204460492503131e-16, 4.4408920985006262e-16,
- 2.7378099787256360e-13}, /* L928 */
-{1.2446601983679299e+01, 1.2837370055862607e-12,
- 2.2204460492503131e-16, 1.2194689702482719e-12,
- -5.8930638147103309e-13}, /* L929 */
-{1.0972597956641225e+01, 1.1329270854787410e-12,
- 2.2204460492503131e-16, -6.4726002335646626e-14,
- -3.8413716652030416e-14}, /* L930 */
-{8.4867212305868307e+00, 8.7720108954414400e-13,
- 2.2204460492503131e-16, 2.1338486533295509e-13,
- 1.6608936448392342e-13}, /* L931 */
-{8.2976257519751879e+00, 8.5857709830605700e-13,
- 2.2204460492503131e-16, -2.8654856265575290e-13,
- 3.1539215683551447e-12}, /* L932 */
-{8.4158760859262802e+00, 8.7174711893567292e-13,
- 2.2204460492503131e-16, -3.3262281817769690e-13,
- -6.9277916736609768e-14}, /* L933 */
-{7.8434277921854898e+00, 8.1332163226477405e-13,
- 2.2204460492503131e-16, -3.5282887722587475e-13,
- 1.7541523789077473e-14}, /* L934 */
-{9.0887843929102257e+00, 9.4346752632645803e-13,
- 2.2204460492503131e-16, -3.2751579226442118e-14,
- -2.2726265314076954e-13}, /* L935 */
-{1.0544354242370568e+01, 1.0957346141537982e-12,
- 2.2204460492503131e-16, -1.5971668432257502e-12,
- 9.5525809484797719e-12}, /* L936 */
-{1.2002153407532481e+01, 1.2485568134934510e-12,
- 2.2204460492503131e-16, -2.7677860003905153e-13,
- 1.9140244944537699e-13}, /* L937 */
-{1.0679121326131190e+01, 1.1121104037670193e-12,
- 2.2204460492503131e-16, 4.5630166312093934e-13,
- -9.1038288019262836e-15}, /* L938 */
-{8.6105034677008874e+00, 8.9764307098505469e-13,
- 2.2204460492503131e-16, -2.7955415760061442e-13,
- 7.9714013168086240e-14}, /* L939 */
-{1.1961986957574991e+01, 1.2483625244641416e-12,
- 2.2204460492503131e-16, 8.3333340228364250e-13,
- 7.0343730840249918e-13}, /* L940 */
-{9.7957115227728142e+00, 1.0233758285238537e-12,
- 2.2204460492503131e-16, 0.0000000000000000e+00,
- 1.8429702208777599e-13}, /* L941 */
-{9.6942828106406189e+00, 1.0138556660876930e-12,
- 2.2204460492503131e-16, 1.2727596754302795e-12,
- 3.7503333771837788e-13}, /* L942 */
-{1.1678438361510514e+01, 1.2226608614440693e-12,
- 2.2204460492503131e-16, 4.9293902293356950e-13,
- -9.4368957093138306e-15}, /* L943 */
-{1.1382962874235105e+01, 1.1929901511109620e-12,
- 2.2204460492503131e-16, -7.1165295878472534e-14,
- -6.9499961341534799e-14}, /* L944 */
-{1.0870122969975602e+01, 1.1404488464705764e-12,
- 2.2204460492503131e-16, -1.3544720900426910e-14,
- -5.6177285046032921e-14}, /* L945 */
-{9.2796002062085865e+00, 9.7460928216719367e-13,
- 2.2204460492503131e-16, -8.7707618945387367e-14,
- 8.5487172896137054e-14}, /* L946 */
-{1.0106126670570916e+01, 1.0625389457175061e-12,
- 2.2204460492503131e-16, 3.6415315207705135e-14,
- 2.8643754035329039e-14}, /* L947 */
-{1.1722839949838484e+01, 1.2338186028415521e-12,
- 2.2204460492503131e-16, -1.5605294834131200e-12,
- -6.5569771834361745e-13}, /* L948 */
-{9.6217090275652115e+00, 1.0137446437852304e-12,
- 2.2204460492503131e-16, -2.0650148258027912e-14,
- -4.3742787170231168e-13}, /* L949 */
-{9.8484230664083778e+00, 1.0387246618392965e-12,
- 2.2204460492503131e-16, -4.6036507939106741e-12,
- 7.0070615976192130e-12}, /* L950 */
-{1.0046794904055520e+01, 1.0607625888781058e-12,
- 2.2204460492503131e-16, -1.5165646516379638e-13,
- -2.0738966099997924e-13}, /* L951 */
-{1.0820380363868004e+01, 1.1436407376663738e-12,
- 2.2204460492503131e-16, 3.6415315207705135e-13,
- 6.2350125062948791e-13}, /* L952 */
-{9.1112295650738790e+00, 9.6400665228202342e-13,
- 2.2204460492503131e-16, 1.9020340857878182e-12,
- -4.5363712786183896e-13}, /* L953 */
-{9.4846062371189124e+00, 1.0045644871503612e-12,
- 2.2204460492503131e-16, -4.2077452633293433e-13,
- 1.4934720127257606e-12}, /* L954 */
-{1.1103667191997831e+01, 1.1772804953125160e-12,
- 2.2204460492503131e-16, 8.0380146982861334e-14,
- 1.3287149158713873e-12}, /* L955 */
-{8.7175750043242175e+00, 9.2525986872260546e-13,
- 2.2204460492503131e-16, -3.1419311596891930e-12,
- 1.1222134332911082e-12}, /* L956 */
-{1.0557473423221234e+01, 1.1217138329300269e-12,
- 2.2204460492503131e-16, -6.6613381477509392e-16,
- 4.1966430330830917e-14}, /* L957 */
-{9.7466095086920035e+00, 1.0366429936681243e-12,
- 2.2204460492503131e-16, -9.4146912488213275e-14,
- 5.9441340738430881e-13}, /* L958 */
-{9.0328485624150652e+00, 9.6173069508154185e-13,
- 2.2204460492503131e-16, -2.6578739209526248e-13,
- -1.8540724511240114e-14}, /* L959 */
-{1.3895315341380449e+01, 1.4809820036987276e-12,
- 2.2204460492503131e-16, 2.5313084961453569e-14,
- -8.1934459217336553e-13}, /* L960 */
-{9.0323849033783770e+00, 9.6368692106135745e-13,
- 2.2204460492503131e-16, -8.1379347705023974e-14,
- -1.5543122344752192e-14}, /* L961 */
-{1.0350833717431327e+01, 1.1055045767704996e-12,
- 2.2204460492503131e-16, 2.2470914018413168e-13,
- 3.4638958368304884e-14}, /* L962 */
-{1.0921406698471406e+01, 1.1676562494677967e-12,
- 2.2204460492503131e-16, -2.1549428907974288e-13,
- -1.4588330543574557e-13}, /* L963 */
-{1.2189317845236090e+01, 1.3045675650857902e-12,
- 2.2204460492503131e-16, -1.8274270985330077e-13,
- -9.3591800975900696e-14}, /* L964 */
-{7.9318669069267802e+00, 8.4979245862371044e-13,
- 2.2204460492503131e-16, -2.4513724383723456e-13,
- -6.4392935428259079e-15}, /* L965 */
-{1.1130954656834399e+01, 1.1937673072281996e-12,
- 2.2204460492503131e-16, 2.9378721677630892e-12,
- 2.2382096176443156e-13}, /* L966 */
-{9.2362997170224350e+00, 9.9159569444395856e-13,
- 2.2204460492503131e-16, -2.5746071941057380e-13,
- -2.8288482667448989e-13}, /* L967 */
-{9.4284626717711593e+00, 1.0132727989997647e-12,
- 2.2204460492503131e-16, -6.6058269965196814e-14,
- -2.2026824808563106e-13}, /* L968 */
-{1.3707054208983855e+01, 1.4746129664566787e-12,
- 2.2204460492503131e-16, -1.5765166949677223e-14,
- -1.6686652060116103e-13}, /* L969 */
-{1.1446909557221781e+01, 1.2327361353925426e-12,
- 2.2204460492503131e-16, 2.9087843245179101e-13,
- -9.3924867883288243e-14}, /* L970 */
-{9.8254557939041192e+00, 1.0592100113671066e-12,
- 2.2204460492503131e-16, -2.3414603589344551e-13,
- -5.8053561957649435e-13}, /* L971 */
-{1.3618315541931494e+01, 1.4696022176963197e-12,
- 2.2204460492503131e-16, -5.4212190292446394e-13,
- 8.7885254629327392e-13}, /* L972 */
-{9.6459423629827103e+00, 1.0419998197619407e-12,
- 2.2204460492503131e-16, 5.7265303610165574e-13,
- 1.1057821325266559e-13}, /* L973 */
-{1.0501157178135733e+01, 1.1355499873744179e-12,
- 2.2204460492503131e-16, -5.5877524829384129e-13,
- -1.0202949596305189e-13}, /* L974 */
-{1.0316412365958021e+01, 1.1167178293192137e-12,
- 2.2204460492503131e-16, -8.0202511298921308e-13,
- -1.6386891843467311e-13}, /* L975 */
-{1.0151641420129716e+01, 1.1000089727986051e-12,
- 2.2204460492503131e-16, 6.5281113847959205e-14,
- -4.3853809472693683e-14}, /* L976 */
-{8.7379751747128793e+00, 9.4779739612249614e-13,
- 2.2204460492503131e-16, 1.3944401189291966e-13,
- -1.5021317523178368e-13}, /* L977 */
-{9.8126298184019856e+00, 1.0654532811571471e-12,
- 2.2204460492503131e-16, -1.7419399256368706e-13,
- 5.8841820305133297e-14}, /* L978 */
-{1.3239532840079457e+01, 1.4390155733678966e-12,
- 2.2204460492503131e-16, 1.7763568394002505e-14,
- -6.1384231031524905e-13}, /* L979 */
-{1.1041838992514464e+01, 1.2013723349468819e-12,
- 2.2204460492503131e-16, -2.6681989950816387e-12,
- 3.2820413053968878e-12}, /* L980 */
-{1.1217127676006534e+01, 1.2216894162975223e-12,
- 2.2204460492503131e-16, 1.1501910535116622e-13,
- 1.3478107518949400e-13}, /* L981 */
-{8.4791259700988419e+00, 9.2442720145413659e-13,
- 2.2204460492503131e-16, -5.9985350020497208e-13,
- -1.2619905120914154e-12}, /* L982 */
-{1.1448628994182879e+01, 1.2494449919131512e-12,
- 2.2204460492503131e-16, -1.1202150318467829e-13,
- 1.7430501486614958e-13}, /* L983 */
-{1.1029981930261446e+01, 1.2049805597769137e-12,
- 2.2204460492503131e-16, -1.2145839889399213e-13,
- 3.9146463848283020e-13}, /* L984 */
-{1.0919799187059123e+01, 1.1941558852868184e-12,
- 2.2204460492503131e-16, -8.9867002728283296e-12,
- 1.9659829320062272e-12}, /* L985 */
-{1.0241064467376354e+01, 1.1210685157969635e-12,
- 2.2204460492503131e-16, 1.0524914273446484e-13,
- 1.5543122344752192e-15}, /* L986 */
-{8.4549156093491824e+00, 9.2648111404969313e-13,
- 2.2204460492503131e-16, 2.2204460492503131e-14,
- 2.9642954757491680e-13}, /* L987 */
-{8.8208520061643405e+00, 9.6755936596082392e-13,
- 2.2204460492503131e-16, -1.5387691121304670e-13,
- -1.0547118733938987e-13}, /* L988 */
-{1.2405652182886818e+01, 1.3621534455943163e-12,
- 2.2204460492503131e-16, 2.3092638912203256e-13,
- -3.3317792969000948e-13}, /* L989 */
-{1.1107578028891034e+01, 1.2208567490290534e-12,
- 2.2204460492503131e-16, 9.7477581562088744e-14,
- 1.2891909761947318e-12}, /* L990 */
-{9.0343106263842223e+00, 9.9398267394690265e-13,
- 2.2204460492503131e-16, 1.0991207943789050e-13,
- -7.0699002208129968e-13}, /* L991 */
-{1.0284024280353442e+01, 1.1326217741469691e-12,
- 2.2204460492503131e-16, 2.0206059048177849e-14,
- -9.2814644858663087e-14}, /* L992 */
-{8.8851981913937248e+00, 9.7954977462677562e-13,
- 2.2204460492503131e-16, 7.1187500338965037e-12,
- -1.6326939800137552e-12}, /* L993 */
-{1.4001260408274808e+01, 1.5451251389464460e-12,
- 2.2204460492503131e-16, -1.1400880239875733e-12,
- 2.9931612743894220e-13}, /* L994 */
-{1.0292841300706829e+01, 1.1370210328820463e-12,
- 2.2204460492503131e-16, 4.5785597535541456e-13,
- 6.2683191970336338e-13}, /* L995 */
-{1.3936749837815491e+01, 1.5411005804821798e-12,
- 2.2204460492503131e-16, 8.9039886574937555e-14,
- -1.4277468096679513e-13}, /* L996 */
-{1.1541251106258247e+01, 1.2774920010727442e-12,
- 2.2204460492503131e-16, -6.0063065632220969e-13,
- 1.4388490399142029e-13}, /* L997 */
-{9.9814649669206350e+00, 1.1059486659803497e-12,
- 2.2204460492503131e-16, -1.7119639039719914e-13,
- 1.5809575870662229e-13}, /* L998 */
-{1.0939629364123027e+01, 1.2133280491433140e-12,
- 2.2204460492503131e-16, -9.5368157815300947e-14,
- 3.7747582837255322e-15}, /* L999 */
-{7.8078765965996340e+00, 8.6684825983951441e-13,
- 2.2204460492503131e-16, 7.5495165674510645e-15,
- 1.6742163211347361e-13}, /* L1000 */
-{2.3549019000387378e+01, 5.2289318708265142e-12,
- 2.2204460492503131e-16, -8.9506180245280120e-12,
- 4.1280312501612570e-12}, /* L1001 */
-{2.6398000009078743e+01, 8.7923002212164647e-12,
- 2.2204460492503131e-16, -1.3117951169761000e-11,
- 4.6029846600958990e-13}, /* L1002 */
-{3.7420692245374873e+01, 1.6684598147520546e-11,
- 2.2204460492503131e-16, 1.1437517599688363e-12,
- -5.7873705827660160e-12}, /* L1003 */
-{5.0393900018547960e+01, 2.7974234040328838e-11,
- 2.2204460492503131e-16, -3.7119196605317484e-12,
- -3.6116665214080967e-12}, /* L1004 */
-{6.4066354190196932e+01, 4.2676764899773900e-11,
- 2.2204460492503131e-16, 1.0669243266647754e-11,
- 7.3929751209789174e-12}, /* L1005 */
-{6.9029432745783822e+01, 5.3769266816772188e-11,
- 2.2204460492503131e-16, -3.2964631024867685e-11,
- -2.3945401217417839e-11}, /* L1006 */
-{6.0884428697543100e+01, 5.4306059649178451e-11,
- 2.2204460492503131e-16, 1.2041700969689373e-11,
- -7.6226802647738623e-12}, /* L1007 */
-{8.9131121164442703e+01, 8.9059880997721663e-11,
- 2.2204460492503131e-16, -8.1148754382809329e-11,
- 8.6431484191962227e-10}, /* L1008 */
-{1.0694525002117500e+02, 1.1873307892429352e-10,
- 2.2204460492503131e-16, -4.3724246445719928e-11,
- 2.0131674105527964e-11}, /* L1009 */
-
-#else /* } { */
-
-/* Start of SP golden values */
-
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1010 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1011 */
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L1012 */
-{6.8018096685409546e-01, 1.1920928955078125e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.1920928955078125e-07}, /* L1013 */
-{8.9273703098297119e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L1014 */
-{7.1418994665145874e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 1.1920928955078125e-07}, /* L1015 */
-{3.6134567856788635e-01, 1.2665987014770508e-07,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 7.1525573730468750e-07}, /* L1016 */
-{4.3648514151573181e-01, 1.7881393432617188e-07,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- 3.5762786865234375e-07}, /* L1017 */
-{4.7549185156822205e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- -5.9604644775390625e-07}, /* L1018 */
-{4.2266038060188293e-01, 2.2351741790771484e-07,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 8.3446502685546875e-07}, /* L1019 */
-{4.0575435757637024e-01, 2.3841857910156250e-07,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 3.5762786865234375e-07}, /* L1020 */
-{3.2275927066802979e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.1920928955078125e-07}, /* L1021 */
-{2.9586255550384521e-01, 2.0861625671386719e-07,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- -2.3841857910156250e-07}, /* L1022 */
-{7.8410917520523071e-01, 6.0349702835083008e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -7.1525573730468750e-07}, /* L1023 */
-{3.5955643653869629e-01, 2.9802322387695312e-07,
- 1.1920928955078125e-07, -3.5762786865234375e-07,
- -3.5762786865234375e-07}, /* L1024 */
-{4.0270313620567322e-01, 3.5762786865234375e-07,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- 3.5762786865234375e-07}, /* L1025 */
-{2.9888099431991577e-01, 2.8312206268310547e-07,
- 1.1920928955078125e-07, -7.1525573730468750e-07,
- -1.1920928955078125e-07}, /* L1026 */
-{5.8850812911987305e-01, 5.9232115745544434e-07,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- 3.5762786865234375e-07}, /* L1027 */
-{5.0337857007980347e-01, 5.3644180297851562e-07,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -4.7683715820312500e-07}, /* L1028 */
-{4.5867058634757996e-01, 5.1595270633697510e-07,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- -1.2516975402832031e-06}, /* L1029 */
-{4.7820881009101868e-01, 5.6624412536621094e-07,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.0728836059570312e-06}, /* L1030 */
-{9.7883027791976929e-01, 1.2218952178955078e-06,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 2.3841857910156250e-07}, /* L1031 */
-{4.2159116268157959e-01, 5.5134296417236328e-07,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- -8.9406967163085938e-07}, /* L1032 */
-{5.0135254859924316e-01, 6.8545341491699219e-07,
- 1.1920928955078125e-07, 1.1920928955078125e-07,
- -1.7881393432617188e-07}, /* L1033 */
-{1.0027021169662476e+00, 1.4305114746093750e-06,
- 1.1920928955078125e-07, -3.6954879760742188e-06,
- -2.3841857910156250e-07}, /* L1034 */
-{7.2194659709930420e-01, 1.0728836059570312e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- 4.7683715820312500e-07}, /* L1035 */
-{3.9529633522033691e-01, 6.1094760894775391e-07,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 1.1920928955078125e-07}, /* L1036 */
-{5.9419322013854980e-01, 9.5367431640625000e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- 0.0000000000000000e+00}, /* L1037 */
-{5.9087789058685303e-01, 9.8347663879394531e-07,
- 1.1920928955078125e-07, 2.2649765014648438e-06,
- -2.9802322387695312e-06}, /* L1038 */
-{6.3101136684417725e-01, 1.0877847671508789e-06,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.1920928955078125e-06}, /* L1039 */
-{1.1363973617553711e+00, 2.0265579223632812e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 2.3841857910156250e-07}, /* L1040 */
-{5.0943696498870850e-01, 9.3877315521240234e-07,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -3.1590461730957031e-06}, /* L1041 */
-{9.7332048416137695e-01, 1.8514692783355713e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 7.2717666625976562e-06}, /* L1042 */
-{8.8116312026977539e-01, 1.7285346984863281e-06,
- 1.1920928955078125e-07, 1.0728836059570312e-06,
- -1.0132789611816406e-06}, /* L1043 */
-{1.0469392538070679e+00, 2.1159648895263672e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- -1.7285346984863281e-06}, /* L1044 */
-{6.3979321718215942e-01, 1.3336539268493652e-06,
- 1.1920928955078125e-07, -1.1920928955078125e-07,
- 1.4305114746093750e-06}, /* L1045 */
-{1.0980664491653442e+00, 2.3543834686279297e-06,
- 1.1920928955078125e-07, 2.6583671569824219e-05,
- -2.1398067474365234e-05}, /* L1046 */
-{7.8947657346725464e-01, 1.7397105693817139e-06,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- -1.5497207641601562e-06}, /* L1047 */
-{1.1061322689056396e+00, 2.5033950805664062e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- 1.1920928955078125e-07}, /* L1048 */
-{1.2958996295928955e+00, 3.0100345611572266e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.6689300537109375e-06}, /* L1049 */
-{6.1920803785324097e-01, 1.4752149581909180e-06,
- 1.1920928955078125e-07, -1.9490718841552734e-05,
- 4.4703483581542969e-05}, /* L1050 */
-{9.3974453210830688e-01, 2.2947788238525391e-06,
- 1.1920928955078125e-07, -1.4066696166992188e-05,
- -1.3649463653564453e-05}, /* L1051 */
-{5.5696403980255127e-01, 1.3932585716247559e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-06,
- 7.5101852416992188e-06}, /* L1052 */
-{5.8767557144165039e-01, 1.5050172805786133e-06,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -1.3113021850585938e-06}, /* L1053 */
-{9.4389802217483521e-01, 2.4735927581787109e-06,
- 1.1920928955078125e-07, -1.6808509826660156e-05,
- 9.0599060058593750e-06}, /* L1054 */
-{9.3407374620437622e-01, 2.5033950805664062e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -6.1392784118652344e-06}, /* L1055 */
-{1.6670787334442139e+00, 4.5672059059143066e-06,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- -2.0265579223632812e-06}, /* L1056 */
-{6.6008597612380981e-01, 1.8477439880371094e-06,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 5.9604644775390625e-07}, /* L1057 */
-{9.2781543731689453e-01, 2.6524066925048828e-06,
- 1.1920928955078125e-07, -4.8875808715820312e-06,
- -1.0728836059570312e-06}, /* L1058 */
-{8.6735057830810547e-01, 2.5331974029541016e-06,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -1.1324882507324219e-06}, /* L1059 */
-{8.6625766754150391e-01, 2.5816261768341064e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-06,
- -3.2186508178710938e-06}, /* L1060 */
-{1.0391687154769897e+00, 3.1590461730957031e-06,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -2.1994113922119141e-05}, /* L1061 */
-{1.0913528203964233e+00, 3.3825635910034180e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 3.5762786865234375e-07}, /* L1062 */
-{1.2523679733276367e+00, 3.9562582969665527e-06,
- 1.1920928955078125e-07, -5.1856040954589844e-06,
- 1.9073486328125000e-06}, /* L1063 */
-{6.2963581085205078e-01, 2.0265579223632812e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- 4.7683715820312500e-07}, /* L1064 */
-{5.0682407617568970e-01, 1.6614794731140137e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-07,
- 9.5367431640625000e-07}, /* L1065 */
-{1.0089418888092041e+00, 3.3676624298095703e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -1.0132789611816406e-06}, /* L1066 */
-{1.5701940059661865e+00, 5.3346157073974609e-06,
- 1.1920928955078125e-07, 1.4305114746093750e-06,
- -3.3378601074218750e-06}, /* L1067 */
-{1.4263415336608887e+00, 4.9322843551635742e-06,
- 1.1920928955078125e-07, -1.3816356658935547e-04,
- -7.9035758972167969e-05}, /* L1068 */
-{1.3898396492004395e+00, 4.8875808715820312e-06,
- 1.1920928955078125e-07, -8.0466270446777344e-06,
- -4.9471855163574219e-06}, /* L1069 */
-{9.5001077651977539e-01, 3.3974647521972656e-06,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- 1.5497207641601562e-06}, /* L1070 */
-{1.0409712791442871e+00, 3.7848949432373047e-06,
- 1.1920928955078125e-07, 1.4543533325195312e-05,
- 2.7179718017578125e-05}, /* L1071 */
-{1.2903363704681396e+00, 4.7683715820312500e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- -8.3446502685546875e-07}, /* L1072 */
-{7.7579402923583984e-01, 2.9131770133972168e-06,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.9073486328125000e-06}, /* L1073 */
-{1.9140597581863403e+00, 7.3015689849853516e-06,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- -1.1086463928222656e-05}, /* L1074 */
-{1.0586640834808350e+00, 4.1015446186065674e-06,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- -4.7683715820312500e-07}, /* L1075 */
-{1.0454654693603516e+00, 4.1127204895019531e-06,
- 1.1920928955078125e-07, -2.4437904357910156e-06,
- 1.9073486328125000e-06}, /* L1076 */
-{9.0949100255966187e-01, 3.6321580410003662e-06,
- 1.1920928955078125e-07, 1.0251998901367188e-05,
- -4.5299530029296875e-06}, /* L1077 */
-{8.6765336990356445e-01, 3.5166740417480469e-06,
- 1.1920928955078125e-07, -1.7881393432617188e-07,
- 1.1920928955078125e-06}, /* L1078 */
-{1.6591906547546387e+00, 6.8247318267822266e-06,
- 1.1920928955078125e-07, -6.3300132751464844e-05,
- -1.5711784362792969e-04}, /* L1079 */
-{1.5803515911102295e+00, 6.5937638282775879e-06,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- 3.5762786865234375e-07}, /* L1080 */
-{1.5871639251708984e+00, 6.7166984081268311e-06,
- 1.1920928955078125e-07, -8.3446502685546875e-07,
- -1.0728836059570312e-06}, /* L1081 */
-{1.5208110809326172e+00, 6.5267086029052734e-06,
- 1.1920928955078125e-07, -1.9907951354980469e-05,
- -1.5854835510253906e-05}, /* L1082 */
-{1.4109665155410767e+00, 6.1392784118652344e-06,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- 4.7683715820312500e-07}, /* L1083 */
-{1.6604399681091309e+00, 7.3239207267761230e-06,
- 1.1920928955078125e-07, -8.6426734924316406e-06,
- -1.0132789611816406e-05}, /* L1084 */
-{1.6600131988525391e+00, 7.4207782745361328e-06,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 2.3841857910156250e-07}, /* L1085 */
-{1.0657552480697632e+00, 4.8279762268066406e-06,
- 1.1920928955078125e-07, -2.7596950531005859e-05,
- -2.5689601898193359e-05}, /* L1086 */
-{9.7807997465133667e-01, 4.4889748096466064e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- -1.1920928955078125e-07}, /* L1087 */
-{1.1570127010345459e+00, 5.3793191909790039e-06,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -2.9563903808593750e-05}, /* L1088 */
-{1.4557089805603027e+00, 6.8545341491699219e-06,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 4.7683715820312500e-07}, /* L1089 */
-{1.1683254241943359e+00, 5.5730342864990234e-06,
- 1.1920928955078125e-07, -1.6516447067260742e-04,
- -4.8935413360595703e-05}, /* L1090 */
-{1.2592644691467285e+00, 6.0796737670898438e-06,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 7.1525573730468750e-07}, /* L1091 */
-{1.0975710153579712e+00, 5.3644180297851562e-06,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -3.7550926208496094e-06}, /* L1092 */
-{2.2108526229858398e+00, 1.0937452316284180e-05,
- 1.1920928955078125e-07, -1.1324882507324219e-06,
- -1.2516975402832031e-06}, /* L1093 */
-{2.0297622680664062e+00, 1.0162591934204102e-05,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -4.1723251342773438e-06}, /* L1094 */
-{1.5676014423370361e+00, 7.9423189163208008e-06,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- 1.5497207641601562e-06}, /* L1095 */
-{1.3372215032577515e+00, 6.8545341491699219e-06,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- 4.7683715820312500e-06}, /* L1096 */
-{1.4568958282470703e+00, 7.5548887252807617e-06,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- 3.9339065551757812e-06}, /* L1097 */
-{1.2471650838851929e+00, 6.5416097640991211e-06,
- 1.1920928955078125e-07, -5.3644180297851562e-07,
- -2.9802322387695312e-07}, /* L1098 */
-{1.0786615610122681e+00, 5.7220458984375000e-06,
- 1.1920928955078125e-07, -2.6822090148925781e-06,
- 0.0000000000000000e+00}, /* L1099 */
-{1.4416582584381104e+00, 7.7337026596069336e-06,
- 1.1920928955078125e-07, 1.7404556274414062e-05,
- 8.8214874267578125e-06}, /* L1100 */
-{1.2912023067474365e+00, 7.0035457611083984e-06,
- 1.1920928955078125e-07, 6.0796737670898438e-06,
- 1.4543533325195312e-05}, /* L1101 */
-{1.4266119003295898e+00, 7.8231096267700195e-06,
- 1.1920928955078125e-07, -1.8596649169921875e-05,
- -5.9604644775390625e-08}, /* L1102 */
-{1.0443524122238159e+00, 5.7891011238098145e-06,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- 1.9073486328125000e-06}, /* L1103 */
-{8.7233221530914307e-01, 4.8875808715820312e-06,
- 1.1920928955078125e-07, -6.9737434387207031e-06,
- 2.2649765014648438e-06}, /* L1104 */
-{1.5466986894607544e+00, 8.7581574916839600e-06,
- 1.1920928955078125e-07, -1.6450881958007812e-05,
- 1.1801719665527344e-05}, /* L1105 */
-{1.8489117622375488e+00, 1.0579824447631836e-05,
- 1.1920928955078125e-07, 1.0013580322265625e-05,
- 2.3841857910156250e-07}, /* L1106 */
-{2.1134092807769775e+00, 1.2218952178955078e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-06,
- 1.1920928955078125e-06}, /* L1107 */
-{1.0867348909378052e+00, 6.3478946685791016e-06,
- 1.1920928955078125e-07, -1.8477439880371094e-06,
- -7.2717666625976562e-06}, /* L1108 */
-{1.6565171480178833e+00, 9.7751617431640625e-06,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- 7.2717666625976562e-06}, /* L1109 */
-{1.5700103044509888e+00, 9.3579292297363281e-06,
- 1.1920928955078125e-07, -3.7550926208496094e-06,
- 1.9073486328125000e-06}, /* L1110 */
-{9.6533346176147461e-01, 5.8114528656005859e-06,
- 1.1920928955078125e-07, -1.9669532775878906e-05,
- -3.8146972656250000e-06}, /* L1111 */
-{1.4190838336944580e+00, 8.6277723312377930e-06,
- 1.1920928955078125e-07, -9.5367431640625000e-07,
- 2.2649765014648438e-06}, /* L1112 */
-{1.1650413274765015e+00, 7.1525573730468750e-06,
- 1.1920928955078125e-07, -4.7683715820312500e-07,
- 1.3113021850585938e-06}, /* L1113 */
-{1.6706761121749878e+00, 1.0356307029724121e-05,
- 1.1920928955078125e-07, 1.1920928955078125e-06,
- 3.3378601074218750e-06}, /* L1114 */
-{1.8690253496170044e+00, 1.1697411537170410e-05,
- 1.1920928955078125e-07, -1.3530254364013672e-05,
- -5.1259994506835938e-06}, /* L1115 */
-{1.2451384067535400e+00, 7.8678131103515625e-06,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -3.8266181945800781e-05}, /* L1116 */
-{1.4018733501434326e+00, 8.9406967163085938e-06,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- 0.0000000000000000e+00}, /* L1117 */
-{2.1110765933990479e+00, 1.3589859008789062e-05,
- 1.1920928955078125e-07, -1.6450881958007812e-05,
- -1.9550323486328125e-05}, /* L1118 */
-{1.7178971767425537e+00, 1.1160969734191895e-05,
- 1.1920928955078125e-07, 5.6028366088867188e-06,
- 2.2649765014648438e-06}, /* L1119 */
-{1.3181906938552856e+00, 8.6426734924316406e-06,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- 1.3113021850585938e-06}, /* L1120 */
-{1.2252202033996582e+00, 8.1062316894531250e-06,
- 1.1920928955078125e-07, 1.7881393432617188e-06,
- 8.5830688476562500e-06}, /* L1121 */
-{1.6874964237213135e+00, 1.1265277862548828e-05,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- 4.7683715820312500e-06}, /* L1122 */
-{2.1283390522003174e+00, 1.4334917068481445e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-06,
- -3.9339065551757812e-06}, /* L1123 */
-{1.2017642259597778e+00, 8.1658363342285156e-06,
- 1.1920928955078125e-07, -1.6689300537109375e-06,
- -2.0265579223632812e-06}, /* L1124 */
-{1.8911085128784180e+00, 1.2964010238647461e-05,
- 1.1920928955078125e-07, -5.1081180572509766e-05,
- 1.7404556274414062e-05}, /* L1125 */
-{1.6616483926773071e+00, 1.1488795280456543e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -6.9737434387207031e-06}, /* L1126 */
-{1.4078015089035034e+00, 9.8198652267456055e-06,
- 1.1920928955078125e-07, 6.8426132202148438e-05,
- 5.9723854064941406e-05}, /* L1127 */
-{1.5084152221679688e+00, 1.0609626770019531e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-07,
- -5.5551528930664062e-05}, /* L1128 */
-{1.5756088495254517e+00, 1.1175870895385742e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -3.0398368835449219e-06}, /* L1129 */
-{2.3708157539367676e+00, 1.6957521438598633e-05,
- 1.1920928955078125e-07, -7.7486038208007812e-07,
- 2.1457672119140625e-06}, /* L1130 */
-{1.5120798349380493e+00, 1.0907649993896484e-05,
- 1.1920928955078125e-07, -8.5651874542236328e-05,
- 2.5272369384765625e-05}, /* L1131 */
-{2.7950906753540039e+00, 2.0325183868408203e-05,
- 1.1920928955078125e-07, -5.1856040954589844e-06,
- -7.4505805969238281e-06}, /* L1132 */
-{1.3575928211212158e+00, 9.9539756774902344e-06,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- -1.3530254364013672e-05}, /* L1133 */
-{1.8224974870681763e+00, 1.3470649719238281e-05,
- 1.1920928955078125e-07, -2.4855136871337891e-05,
- -2.3782253265380859e-05}, /* L1134 */
-{1.3239212036132812e+00, 9.8645687103271484e-06,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- -9.1195106506347656e-06}, /* L1135 */
-{2.3055584430694580e+00, 1.7315149307250977e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- -6.5565109252929688e-07}, /* L1136 */
-{1.6377103328704834e+00, 1.2397766113281250e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -3.2424926757812500e-05}, /* L1137 */
-{2.5683627128601074e+00, 1.9595026969909668e-05,
- 1.1920928955078125e-07, 4.4107437133789062e-06,
- -1.2516975402832031e-06}, /* L1138 */
-{1.9767295122146606e+00, 1.5199184417724609e-05,
- 1.1920928955078125e-07, -8.9406967163085938e-06,
- -5.4836273193359375e-06}, /* L1139 */
-{1.6994286775588989e+00, 1.3168901205062866e-05,
- 1.1920928955078125e-07, 1.6450881958007812e-05,
- 6.3180923461914062e-06}, /* L1140 */
-{1.8375978469848633e+00, 1.4349818229675293e-05,
- 1.1920928955078125e-07, -1.6570091247558594e-05,
- -2.0921230316162109e-05}, /* L1141 */
-{1.8105823993682861e+00, 1.4245510101318359e-05,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 1.2159347534179688e-05}, /* L1142 */
-{2.3307569026947021e+00, 1.8477439880371094e-05,
- 1.1920928955078125e-07, -7.3313713073730469e-06,
- -2.1517276763916016e-05}, /* L1143 */
-{1.3041013479232788e+00, 1.0415911674499512e-05,
- 1.1920928955078125e-07, 3.3378601074218750e-06,
- -4.5299530029296875e-06}, /* L1144 */
-{2.1185142993927002e+00, 1.7046928405761719e-05,
- 1.1920928955078125e-07, -1.9073486328125000e-06,
- -5.3644180297851562e-06}, /* L1145 */
-{1.6652044057846069e+00, 1.3500452041625977e-05,
- 1.1920928955078125e-07, -3.2246112823486328e-05,
- -2.2947788238525391e-05}, /* L1146 */
-{3.0401215553283691e+00, 2.4825334548950195e-05,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 1.0609626770019531e-05}, /* L1147 */
-{1.8043446540832520e+00, 1.4841556549072266e-05,
- 1.1920928955078125e-07, -1.0132789611816406e-05,
- -1.1742115020751953e-05}, /* L1148 */
-{2.1798567771911621e+00, 1.8060207366943359e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- 3.8146972656250000e-06}, /* L1149 */
-{1.5401673316955566e+00, 1.2852251529693604e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- 1.7881393432617188e-06}, /* L1150 */
-{2.5070142745971680e+00, 2.1070241928100586e-05,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 1.8954277038574219e-05}, /* L1151 */
-{1.6487674713134766e+00, 1.3954937458038330e-05,
- 1.1920928955078125e-07, -9.8347663879394531e-06,
- -5.4240226745605469e-06}, /* L1152 */
-{1.4859261512756348e+00, 1.2665987014770508e-05,
- 1.1920928955078125e-07, 2.9802322387695312e-06,
- 3.9935111999511719e-05}, /* L1153 */
-{1.6457158327102661e+00, 1.4126300811767578e-05,
- 1.1920928955078125e-07, -1.6212463378906250e-05,
- 1.3589859008789062e-05}, /* L1154 */
-{1.8611181974411011e+00, 1.6085803508758545e-05,
- 1.1920928955078125e-07, -1.1622905731201172e-05,
- -1.1682510375976562e-05}, /* L1155 */
-{1.8321113586425781e+00, 1.5944242477416992e-05,
- 1.1920928955078125e-07, -2.2232532501220703e-05,
- 3.1352043151855469e-05}, /* L1156 */
-{2.2074513435363770e+00, 1.9341707229614258e-05,
- 1.1920928955078125e-07, -2.6404857635498047e-05,
- -2.7418136596679688e-06}, /* L1157 */
-{2.0101280212402344e+00, 1.7732381820678711e-05,
- 1.1920928955078125e-07, -3.1590461730957031e-06,
- -6.9141387939453125e-06}, /* L1158 */
-{3.4258801937103271e+00, 3.0428171157836914e-05,
- 1.1920928955078125e-07, -1.4126300811767578e-05,
- -1.9788742065429688e-05}, /* L1159 */
-{1.8116010427474976e+00, 1.6197562217712402e-05,
- 1.1920928955078125e-07, -1.6093254089355469e-06,
- 7.6293945312500000e-06}, /* L1160 */
-{2.0053453445434570e+00, 1.8049031496047974e-05,
- 1.1920928955078125e-07, -3.2126903533935547e-05,
- -1.7106533050537109e-05}, /* L1161 */
-{2.2388551235198975e+00, 2.0284205675125122e-05,
- 1.1920928955078125e-07, -4.6491622924804688e-06,
- -1.3589859008789062e-05}, /* L1162 */
-{1.6697667837142944e+00, 1.5228986740112305e-05,
- 1.1920928955078125e-07, -1.5079975128173828e-05,
- -4.3272972106933594e-05}, /* L1163 */
-{2.2406351566314697e+00, 2.0567327737808228e-05,
- 1.1920928955078125e-07, 1.5735626220703125e-05,
- -9.5367431640625000e-06}, /* L1164 */
-{2.2467515468597412e+00, 2.0757317543029785e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-06,
- 5.1259994506835938e-06}, /* L1165 */
-{2.3745467662811279e+00, 2.2079795598983765e-05,
- 1.1920928955078125e-07, 3.7431716918945312e-05,
- -3.6358833312988281e-06}, /* L1166 */
-{2.0955083370208740e+00, 1.9609928131103516e-05,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -2.7298927307128906e-05}, /* L1167 */
-{1.7495329380035400e+00, 1.6480684280395508e-05,
- 1.1920928955078125e-07, -1.4305114746093750e-05,
- -4.9769878387451172e-05}, /* L1168 */
-{2.1758046150207520e+00, 2.0623207092285156e-05,
- 1.1920928955078125e-07, 6.1154365539550781e-05,
- -3.0517578125000000e-05}, /* L1169 */
-{2.2445225715637207e+00, 2.1405518054962158e-05,
- 1.1920928955078125e-07, -8.4638595581054688e-06,
- -4.5299530029296875e-06}, /* L1170 */
-{1.6459550857543945e+00, 1.5795230865478516e-05,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 7.0333480834960938e-06}, /* L1171 */
-{2.4256405830383301e+00, 2.3423694074153900e-05,
- 1.1920928955078125e-07, 3.2901763916015625e-05,
- 4.0531158447265625e-06}, /* L1172 */
-{1.8588899374008179e+00, 1.8060207366943359e-05,
- 1.1920928955078125e-07, -1.6927719116210938e-05,
- -7.7486038208007812e-07}, /* L1173 */
-{2.1371707916259766e+00, 2.0891427993774414e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -1.3709068298339844e-06}, /* L1174 */
-{2.0060150623321533e+00, 1.9729137420654297e-05,
- 1.1920928955078125e-07, -2.3782253265380859e-05,
- 1.1920928955078125e-06}, /* L1175 */
-{2.0059118270874023e+00, 1.9848346710205078e-05,
- 1.1920928955078125e-07, -2.8014183044433594e-05,
- -3.5166740417480469e-05}, /* L1176 */
-{2.0755820274353027e+00, 2.0660459995269775e-05,
- 1.1920928955078125e-07, 4.1723251342773438e-06,
- 7.1525573730468750e-07}, /* L1177 */
-{3.0146615505218506e+00, 3.0189752578735352e-05,
- 1.1920928955078125e-07, 3.5405158996582031e-05,
- -1.8298625946044922e-05}, /* L1178 */
-{3.9156386852264404e+00, 3.9443373680114746e-05,
- 1.1920928955078125e-07, -2.9802322387695312e-07,
- 1.0251998901367188e-05}, /* L1179 */
-{2.4558520317077637e+00, 2.4884939193725586e-05,
- 1.1920928955078125e-07, 8.3446502685546875e-06,
- -5.3048133850097656e-06}, /* L1180 */
-{2.8026320934295654e+00, 2.8565526008605957e-05,
- 1.1920928955078125e-07, -1.9669532775878906e-06,
- -1.0848045349121094e-05}, /* L1181 */
-{2.3371465206146240e+00, 2.3961067199707031e-05,
- 1.1920928955078125e-07, 2.3841857910156250e-07,
- 1.9073486328125000e-06}, /* L1182 */
-{2.1054863929748535e+00, 2.1710991859436035e-05,
- 1.1920928955078125e-07, 4.5299530029296875e-06,
- -3.8146972656250000e-06}, /* L1183 */
-{2.3062880039215088e+00, 2.3931264877319336e-05,
- 1.1920928955078125e-07, 1.1324882507324219e-04,
- -1.0037422180175781e-04}, /* L1184 */
-{2.5199549198150635e+00, 2.6285648345947266e-05,
- 1.1920928955078125e-07, -1.6748905181884766e-05,
- 2.2053718566894531e-05}, /* L1185 */
-{1.5906770229339600e+00, 1.6689300537109375e-05,
- 1.1920928955078125e-07, 4.4107437133789062e-05,
- -1.6510486602783203e-05}, /* L1186 */
-{2.2541122436523438e+00, 2.3782253265380859e-05,
- 1.1920928955078125e-07, -3.5464763641357422e-05,
- -6.1392784118652344e-06}, /* L1187 */
-{1.9265031814575195e+00, 2.0444393157958984e-05,
- 1.1920928955078125e-07, -3.2544136047363281e-05,
- -4.9293041229248047e-05}, /* L1188 */
-{2.2580652236938477e+00, 2.4095177650451660e-05,
- 1.1920928955078125e-07, 1.0728836059570312e-05,
- -5.9962272644042969e-05}, /* L1189 */
-{1.8595248460769653e+00, 1.9952654838562012e-05,
- 1.1920928955078125e-07, -2.0265579223632812e-06,
- 4.0411949157714844e-05}, /* L1190 */
-{2.6842482089996338e+00, 2.8960406780242920e-05,
- 1.1920928955078125e-07, -2.8252601623535156e-05,
- -1.4364719390869141e-05}, /* L1191 */
-{2.4145283699035645e+00, 2.6196241378784180e-05,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- -1.0728836059570312e-05}, /* L1192 */
-{2.0791890621185303e+00, 2.2679567337036133e-05,
- 1.1920928955078125e-07, -7.5697898864746094e-06,
- 1.8835067749023438e-05}, /* L1193 */
-{2.7559175491333008e+00, 3.0225142836570740e-05,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -8.3446502685546875e-07}, /* L1194 */
-{2.5566635131835938e+00, 2.8196722269058228e-05,
- 1.1920928955078125e-07, -9.7632408142089844e-05,
- 3.1471252441406250e-05}, /* L1195 */
-{3.8623738288879395e+00, 4.2855739593505859e-05,
- 1.1920928955078125e-07, 3.3819675445556641e-04,
- 2.2149085998535156e-04}, /* L1196 */
-{2.4945464134216309e+00, 2.7805566787719727e-05,
- 1.1920928955078125e-07, -1.3232231140136719e-05,
- -3.5762786865234375e-07}, /* L1197 */
-{2.3874394893646240e+00, 2.6755034923553467e-05,
- 1.1920928955078125e-07, 2.1457672119140625e-05,
- 5.8412551879882812e-06}, /* L1198 */
-{3.1719310283660889e+00, 3.5732984542846680e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -5.6624412536621094e-06}, /* L1199 */
-{2.5210285186767578e+00, 2.8550624847412109e-05,
- 1.1920928955078125e-07, -4.7683715820312500e-06,
- 1.0490417480468750e-05}, /* L1200 */
-{3.5811295509338379e+00, 4.0769577026367188e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-06,
- 1.8119812011718750e-05}, /* L1201 */
-{2.6432023048400879e+00, 3.0249357223510742e-05,
- 1.1920928955078125e-07, 1.9669532775878906e-05,
- 7.0333480834960938e-06}, /* L1202 */
-{2.3445589542388916e+00, 2.6971101760864258e-05,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- -3.3378601074218750e-06}, /* L1203 */
-{1.9561572074890137e+00, 2.2619962692260742e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- 3.5762786865234375e-07}, /* L1204 */
-{2.0115103721618652e+00, 2.3379921913146973e-05,
- 1.1920928955078125e-07, 8.1062316894531250e-06,
- 2.4199485778808594e-05}, /* L1205 */
-{2.6887228488922119e+00, 3.1411647796630859e-05,
- 1.1920928955078125e-07, -4.1723251342773438e-07,
- 2.1457672119140625e-06}, /* L1206 */
-{2.2429711818695068e+00, 2.6345252990722656e-05,
- 1.1920928955078125e-07, 1.4436244964599609e-04,
- -5.9545040130615234e-05}, /* L1207 */
-{2.2017180919647217e+00, 2.5987625122070312e-05,
- 1.1920928955078125e-07, 8.4519386291503906e-05,
- -2.4557113647460938e-05}, /* L1208 */
-{2.1833324432373047e+00, 2.5898218154907227e-05,
- 1.1920928955078125e-07, -4.7147274017333984e-05,
- 1.9073486328125000e-05}, /* L1209 */
-{2.7066788673400879e+00, 3.2275915145874023e-05,
- 1.1920928955078125e-07, 9.6917152404785156e-05,
- 3.7431716918945312e-05}, /* L1210 */
-{2.2679762840270996e+00, 2.7172267436981201e-05,
- 1.1920928955078125e-07, -2.0503997802734375e-05,
- -8.4042549133300781e-06}, /* L1211 */
-{2.2597937583923340e+00, 2.7209520339965820e-05,
- 1.1920928955078125e-07, -2.0682811737060547e-05,
- -3.0577182769775391e-05}, /* L1212 */
-{2.4088115692138672e+00, 2.9146671295166016e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- -4.5895576477050781e-06}, /* L1213 */
-{2.9950757026672363e+00, 3.6418437957763672e-05,
- 1.1920928955078125e-07, -1.2636184692382812e-05,
- -1.7046928405761719e-05}, /* L1214 */
-{2.5846471786499023e+00, 3.1664967536926270e-05,
- 1.1920928955078125e-07, 1.7772912979125977e-03,
- -2.7197599411010742e-04}, /* L1215 */
-{2.6067717075347900e+00, 3.2007694244384766e-05,
- 1.1920928955078125e-07, 1.5258789062500000e-05,
- -6.2584877014160156e-06}, /* L1216 */
-{2.1771912574768066e+00, 2.6863068342208862e-05,
- 1.1920928955078125e-07, -2.2053718566894531e-06,
- 1.3709068298339844e-05}, /* L1217 */
-{3.1068594455718994e+00, 3.8519501686096191e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- -6.7353248596191406e-06}, /* L1218 */
-{2.5741207599639893e+00, 3.2067298889160156e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- 1.5974044799804688e-05}, /* L1219 */
-{3.2612531185150146e+00, 4.0821731090545654e-05,
- 1.1920928955078125e-07, -6.0200691223144531e-06,
- -2.6702880859375000e-05}, /* L1220 */
-{3.1061952114105225e+00, 3.9067119359970093e-05,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- -3.5762786865234375e-07}, /* L1221 */
-{3.9090692996978760e+00, 4.9397349357604980e-05,
- 1.1920928955078125e-07, -8.5830688476562500e-06,
- -2.5033950805664062e-06}, /* L1222 */
-{2.9082803726196289e+00, 3.6925077438354492e-05,
- 1.1920928955078125e-07, -2.3841857910156250e-07,
- -6.5565109252929688e-07}, /* L1223 */
-{2.2300553321838379e+00, 2.8446316719055176e-05,
- 1.1920928955078125e-07, -1.8239021301269531e-05,
- -3.7372112274169922e-05}, /* L1224 */
-{3.8737306594848633e+00, 4.9658119678497314e-05,
- 1.1920928955078125e-07, -5.2392482757568359e-05,
- -1.5497207641601562e-05}, /* L1225 */
-{2.3996686935424805e+00, 3.0897557735443115e-05,
- 1.1920928955078125e-07, -7.5757503509521484e-05,
- -2.1457672119140625e-05}, /* L1226 */
-{3.0302970409393311e+00, 3.9309263229370117e-05,
- 1.1920928955078125e-07, 1.3022422790527344e-03,
- -4.0930509567260742e-04}, /* L1227 */
-{2.0802607536315918e+00, 2.7030706405639648e-05,
- 1.1920928955078125e-07, 5.4836273193359375e-06,
- 5.8412551879882812e-06}, /* L1228 */
-{3.0661604404449463e+00, 4.0024518966674805e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-06,
- 8.7022781372070312e-06}, /* L1229 */
-{2.2863128185272217e+00, 2.9981136322021484e-05,
- 1.1920928955078125e-07, 1.6331672668457031e-05,
- -7.5697898864746094e-06}, /* L1230 */
-{3.1289212703704834e+00, 4.1216611862182617e-05,
- 1.1920928955078125e-07, 2.6226043701171875e-06,
- 1.0728836059570312e-05}, /* L1231 */
-{2.9346113204956055e+00, 3.8832426071166992e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-06,
- -1.4662742614746094e-05}, /* L1232 */
-{2.3267719745635986e+00, 3.0927360057830811e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- 8.1062316894531250e-06}, /* L1233 */
-{2.2917885780334473e+00, 3.0666589736938477e-05,
- 1.1920928955078125e-07, -5.5700540542602539e-04,
- -1.0199546813964844e-03}, /* L1234 */
-{2.6463797092437744e+00, 3.5494565963745117e-05,
- 1.1920928955078125e-07, -9.2387199401855469e-05,
- 2.7060508728027344e-05}, /* L1235 */
-{3.1678485870361328e+00, 4.2676925659179688e-05,
- 1.1920928955078125e-07, -6.3180923461914062e-06,
- -2.4437904357910156e-06}, /* L1236 */
-{3.2464599609375000e+00, 4.3928623199462891e-05,
- 1.1920928955078125e-07, -1.5497207641601562e-05,
- 3.7074089050292969e-05}, /* L1237 */
-{3.2306761741638184e+00, 4.3913722038269043e-05,
- 1.1920928955078125e-07, -7.1525573730468750e-06,
- 2.9206275939941406e-05}, /* L1238 */
-{2.3965263366699219e+00, 3.2735988497734070e-05,
- 1.1920928955078125e-07, -2.4777650833129883e-04,
- 1.2147426605224609e-04}, /* L1239 */
-{3.2906377315521240e+00, 4.5120716094970703e-05,
- 1.1920928955078125e-07, -3.4153461456298828e-05,
- -2.9683113098144531e-05}, /* L1240 */
-{3.3776614665985107e+00, 4.6506524085998535e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- 1.7881393432617188e-06}, /* L1241 */
-{2.7369720935821533e+00, 3.7848949432373047e-05,
- 1.1920928955078125e-07, -1.0728836059570312e-06,
- -1.0132789611816406e-05}, /* L1242 */
-{4.4909911155700684e+00, 6.2376260757446289e-05,
- 1.1920928955078125e-07, 1.1205673217773438e-05,
- -2.4378299713134766e-05}, /* L1243 */
-{2.6878952980041504e+00, 3.7491321563720703e-05,
- 1.1920928955078125e-07, -4.3272972106933594e-05,
- -4.2140483856201172e-05}, /* L1244 */
-{2.1084623336791992e+00, 2.9534101486206055e-05,
- 1.1920928955078125e-07, -1.0192394256591797e-05,
- 1.3828277587890625e-05}, /* L1245 */
-{2.8241481781005859e+00, 3.9726495742797852e-05,
- 1.1920928955078125e-07, 2.8610229492187500e-06,
- -3.1590461730957031e-06}, /* L1246 */
-{3.9472033977508545e+00, 5.5767595767974854e-05,
- 1.1920928955078125e-07, 8.8214874267578125e-06,
- 4.2200088500976562e-05}, /* L1247 */
-{2.7856087684631348e+00, 3.9517879486083984e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- -2.5153160095214844e-05}, /* L1248 */
-{3.1797544956207275e+00, 4.5299530029296875e-05,
- 1.1920928955078125e-07, 4.0054321289062500e-05,
- 4.0769577026367188e-05}, /* L1249 */
-{3.2002224922180176e+00, 4.5806169509887695e-05,
- 1.1920928955078125e-07, 3.5643577575683594e-05,
- 1.0037422180175781e-04}, /* L1250 */
-{2.9428439140319824e+00, 4.2289495468139648e-05,
- 1.1920928955078125e-07, -5.0783157348632812e-05,
- 3.9577484130859375e-05}, /* L1251 */
-{3.3541893959045410e+00, 4.8384070396423340e-05,
- 1.1920928955078125e-07, -2.4616718292236328e-05,
- -5.4121017456054688e-05}, /* L1252 */
-{3.0121967792510986e+00, 4.3645501136779785e-05,
- 1.1920928955078125e-07, -2.5999546051025391e-04,
- -1.1211633682250977e-04}, /* L1253 */
-{2.7211909294128418e+00, 3.9577484130859375e-05,
- 1.1920928955078125e-07, -1.9967555999755859e-05,
- 1.7881393432617188e-06}, /* L1254 */
-{2.6671855449676514e+00, 3.8951635360717773e-05,
- 1.1920928955078125e-07, 4.1365623474121094e-05,
- 9.5367431640625000e-07}, /* L1255 */
-{3.5121285915374756e+00, 5.1498413085937500e-05,
- 1.1920928955078125e-07, 1.6093254089355469e-05,
- 3.4570693969726562e-06}, /* L1256 */
-{2.9267933368682861e+00, 4.3094158172607422e-05,
- 1.1920928955078125e-07, -7.1227550506591797e-05,
- -6.4253807067871094e-05}, /* L1257 */
-{2.5106649398803711e+00, 3.7118792533874512e-05,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- 1.5211105346679688e-04}, /* L1258 */
-{2.4577031135559082e+00, 3.6492943763732910e-05,
- 1.1920928955078125e-07, -4.3272972106933594e-05,
- -3.0696392059326172e-05}, /* L1259 */
-{3.2924635410308838e+00, 4.9069523811340332e-05,
- 1.1920928955078125e-07, -6.5565109252929688e-05,
- -1.0550022125244141e-05}, /* L1260 */
-{3.1647403240203857e+00, 4.7355890274047852e-05,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- 5.3405761718750000e-05}, /* L1261 */
-{2.5652899742126465e+00, 3.8534402847290039e-05,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- -7.1525573730468750e-06}, /* L1262 */
-{3.0589282512664795e+00, 4.6133995056152344e-05,
- 1.1920928955078125e-07, -1.3053417205810547e-05,
- -6.1035156250000000e-05}, /* L1263 */
-{3.4289965629577637e+00, 5.1915645599365234e-05,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- 3.8862228393554688e-05}, /* L1264 */
-{3.9899127483367920e+00, 6.0647726058959961e-05,
- 1.1920928955078125e-07, -2.8550624847412109e-05,
- -3.5762786865234375e-07}, /* L1265 */
-{2.8133091926574707e+00, 4.2930245399475098e-05,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- -2.7418136596679688e-06}, /* L1266 */
-{3.9885497093200684e+00, 6.1154365539550781e-05,
- 1.1920928955078125e-07, -1.3113021850585938e-05,
- -1.2624263763427734e-04}, /* L1267 */
-{3.0203218460083008e+00, 4.6454370021820068e-05,
- 1.1920928955078125e-07, -1.1920928955078125e-05,
- -7.1287155151367188e-05}, /* L1268 */
-{2.6234917640686035e+00, 4.0501356124877930e-05,
- 1.1920928955078125e-07, -1.1265277862548828e-05,
- -8.7022781372070312e-06}, /* L1269 */
-{3.4784512519836426e+00, 5.3912401199340820e-05,
- 1.1920928955078125e-07, 1.5974044799804688e-05,
- -4.1723251342773438e-06}, /* L1270 */
-{5.2191519737243652e+00, 8.1203877925872803e-05,
- 1.1920928955078125e-07, 3.8146972656250000e-05,
- 3.6478042602539062e-05}, /* L1271 */
-{3.7924778461456299e+00, 5.9247016906738281e-05,
- 1.1920928955078125e-07, 2.7549266815185547e-04,
- -3.7968158721923828e-05}, /* L1272 */
-{3.3542623519897461e+00, 5.2586197853088379e-05,
- 1.1920928955078125e-07, 4.5776367187500000e-05,
- -6.7532062530517578e-05}, /* L1273 */
-{3.5926158428192139e+00, 5.6535005569458008e-05,
- 1.1920928955078125e-07, -5.6028366088867188e-06,
- 2.7656555175781250e-05}, /* L1274 */
-{3.5994863510131836e+00, 5.6862831115722656e-05,
- 1.1920928955078125e-07, -6.7114830017089844e-05,
- -6.7353248596191406e-05}, /* L1275 */
-{3.8888278007507324e+00, 6.1661005020141602e-05,
- 1.1920928955078125e-07, 3.2663345336914062e-05,
- 3.3378601074218750e-05}, /* L1276 */
-{3.9306416511535645e+00, 6.2577426433563232e-05,
- 1.1920928955078125e-07, -8.1419944763183594e-05,
- -2.8014183044433594e-05}, /* L1277 */
-{2.8954002857208252e+00, 4.6253204345703125e-05,
- 1.1920928955078125e-07, 1.6450881958007812e-05,
- -9.8943710327148438e-06}, /* L1278 */
-{2.8672094345092773e+00, 4.5999884605407715e-05,
- 1.1920928955078125e-07, 7.4505805969238281e-05,
- -4.9054622650146484e-05}, /* L1279 */
-{2.3275427818298340e+00, 3.7461519241333008e-05,
- 1.1920928955078125e-07, -5.2809715270996094e-05,
- -3.3557415008544922e-05}, /* L1280 */
-{2.8670883178710938e+00, 4.6312808990478516e-05,
- 1.1920928955078125e-07, -1.8060207366943359e-05,
- -1.4662742614746094e-05}, /* L1281 */
-{3.5310692787170410e+00, 5.7250261306762695e-05,
- 1.1920928955078125e-07, -4.3511390686035156e-06,
- 1.8477439880371094e-05}, /* L1282 */
-{3.8918013572692871e+00, 6.3329935073852539e-05,
- 1.1920928955078125e-07, 7.3909759521484375e-06,
- -1.0848045349121094e-05}, /* L1283 */
-{3.1068062782287598e+00, 5.0749629735946655e-05,
- 1.1920928955078125e-07, -5.3644180297851562e-05,
- -2.7418136596679688e-05}, /* L1284 */
-{2.8671267032623291e+00, 4.6998262405395508e-05,
- 1.1920928955078125e-07, -9.5367431640625000e-07,
- 1.3351440429687500e-05}, /* L1285 */
-{3.5216612815856934e+00, 5.7935714721679688e-05,
- 1.1920928955078125e-07, -1.4781951904296875e-05,
- -8.7022781372070312e-06}, /* L1286 */
-{2.7244505882263184e+00, 4.5001506805419922e-05,
- 1.1920928955078125e-07, 1.8489360809326172e-04,
- -1.6993284225463867e-04}, /* L1287 */
-{3.3593361377716064e+00, 5.5670738220214844e-05,
- 1.1920928955078125e-07, -3.6418437957763672e-05,
- 2.0742416381835938e-05}, /* L1288 */
-{2.6397724151611328e+00, 4.3898820877075195e-05,
- 1.1920928955078125e-07, -1.1086463928222656e-05,
- 8.3446502685546875e-07}, /* L1289 */
-{3.2254927158355713e+00, 5.3852796554565430e-05,
- 1.1920928955078125e-07, -3.0815601348876953e-05,
- 1.1920928955078125e-07}, /* L1290 */
-{3.3631930351257324e+00, 5.6341290473937988e-05,
- 1.1920928955078125e-07, -6.7949295043945312e-06,
- 5.9962272644042969e-05}, /* L1291 */
-{3.4079694747924805e+00, 5.7285651564598083e-05,
- 1.1920928955078125e-07, -3.6001205444335938e-05,
- 2.8610229492187500e-06}, /* L1292 */
-{2.8880021572113037e+00, 4.8749148845672607e-05,
- 1.1920928955078125e-07, -5.7220458984375000e-06,
- -1.2904405593872070e-04}, /* L1293 */
-{3.8768889904022217e+00, 6.5632164478302002e-05,
- 1.1920928955078125e-07, -4.0531158447265625e-06,
- 3.4093856811523438e-05}, /* L1294 */
-{3.2189145088195801e+00, 5.4687261581420898e-05,
- 1.1920928955078125e-07, -2.3305416107177734e-05,
- -1.7583370208740234e-05}, /* L1295 */
-{2.7826395034790039e+00, 4.7439709305763245e-05,
- 1.1920928955078125e-07, -8.6188316345214844e-05,
- -1.3828277587890625e-05}, /* L1296 */
-{2.9319143295288086e+00, 5.0157308578491211e-05,
- 1.1920928955078125e-07, 1.3709068298339844e-05,
- -2.3841857910156250e-07}, /* L1297 */
-{4.1965179443359375e+00, 7.2211027145385742e-05,
- 1.1920928955078125e-07, -2.0766258239746094e-04,
- 3.7491321563720703e-04}, /* L1298 */
-{3.0189342498779297e+00, 5.2005052566528320e-05,
- 1.1920928955078125e-07, 8.4638595581054688e-06,
- 4.5299530029296875e-06}, /* L1299 */
-{2.9598660469055176e+00, 5.1163136959075928e-05,
- 1.1920928955078125e-07, -2.9206275939941406e-06,
- -2.3841857910156250e-06}, /* L1300 */
-{4.8141779899597168e+00, 8.3506107330322266e-05,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- -1.7285346984863281e-06}, /* L1301 */
-{3.1006553173065186e+00, 5.3977011702954769e-05,
- 1.1920928955078125e-07, 7.7128410339355469e-05,
- -1.2838840484619141e-04}, /* L1302 */
-{2.6993238925933838e+00, 4.7147274017333984e-05,
- 1.1920928955078125e-07, 4.4345855712890625e-05,
- -1.0132789611816406e-06}, /* L1303 */
-{4.3526625633239746e+00, 7.6293945312500000e-05,
- 1.1920928955078125e-07, 7.2121620178222656e-05,
- -2.3025274276733398e-04}, /* L1304 */
-{4.0632801055908203e+00, 7.1555376052856445e-05,
- 1.1920928955078125e-07, 1.8525123596191406e-04,
- 4.5967102050781250e-04}, /* L1305 */
-{6.7649230957031250e+00, 1.1935830116271973e-04,
- 1.1920928955078125e-07, 1.1682510375976562e-05,
- 1.9550323486328125e-05}, /* L1306 */
-{4.0029668807983398e+00, 7.0869922637939453e-05,
- 1.1920928955078125e-07, -1.7702579498291016e-05,
- -7.0333480834960938e-06}, /* L1307 */
-{5.3224954605102539e+00, 9.4577670097351074e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-05,
- 1.4436244964599609e-04}, /* L1308 */
-{3.4629216194152832e+00, 6.1720609664916992e-05,
- 1.1920928955078125e-07, 2.2411346435546875e-05,
- -2.9981136322021484e-05}, /* L1309 */
-{3.6836194992065430e+00, 6.5892934799194336e-05,
- 1.1920928955078125e-07, 1.6975402832031250e-04,
- -2.0557641983032227e-04}, /* L1310 */
-{3.7666192054748535e+00, 6.7591667175292969e-05,
- 1.1920928955078125e-07, -1.2642145156860352e-04,
- -3.4868717193603516e-05}, /* L1311 */
-{3.0687901973724365e+00, 5.5253505706787109e-05,
- 1.1920928955078125e-07, -2.9146671295166016e-05,
- 2.9563903808593750e-05}, /* L1312 */
-{2.6712586879730225e+00, 4.8249959945678711e-05,
- 1.1920928955078125e-07, 3.4928321838378906e-05,
- -5.0127506256103516e-05}, /* L1313 */
-{3.4850175380706787e+00, 6.3151121139526367e-05,
- 1.1920928955078125e-07, 2.9563903808593750e-05,
- -3.0398368835449219e-06}, /* L1314 */
-{3.4851601123809814e+00, 6.3360668718814850e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- -9.7155570983886719e-06}, /* L1315 */
-{3.3319339752197266e+00, 6.0796737670898438e-05,
- 1.1920928955078125e-07, 1.0681152343750000e-04,
- 1.6474723815917969e-04}, /* L1316 */
-{5.1887230873107910e+00, 9.4980001449584961e-05,
- 1.1920928955078125e-07, -4.0411949157714844e-05,
- 3.7908554077148438e-05}, /* L1317 */
-{5.3918108940124512e+00, 9.8999589681625366e-05,
- 1.1920928955078125e-07, 2.6702880859375000e-05,
- -4.9293041229248047e-05}, /* L1318 */
-{3.7143328189849854e+00, 6.8426132202148438e-05,
- 1.1920928955078125e-07, 2.7656555175781250e-05,
- -5.5789947509765625e-05}, /* L1319 */
-{3.5686254501342773e+00, 6.5952539443969727e-05,
- 1.1920928955078125e-07, -1.0555982589721680e-04,
- -1.0311603546142578e-05}, /* L1320 */
-{4.0656347274780273e+00, 7.5370073318481445e-05,
- 1.1920928955078125e-07, -2.6106834411621094e-05,
- 2.5153160095214844e-05}, /* L1321 */
-{4.2824273109436035e+00, 7.9661607742309570e-05,
- 1.1920928955078125e-07, -1.9639730453491211e-04,
- -1.2457370758056641e-05}, /* L1322 */
-{3.5407865047454834e+00, 6.6071748733520508e-05,
- 1.1920928955078125e-07, 1.6641616821289062e-04,
- 1.1157989501953125e-04}, /* L1323 */
-{3.4998750686645508e+00, 6.5505504608154297e-05,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- 2.6583671569824219e-05}, /* L1324 */
-{3.6763875484466553e+00, 6.9029629230499268e-05,
- 1.1920928955078125e-07, 4.1007995605468750e-05,
- -2.9802322387695312e-06}, /* L1325 */
-{5.0139293670654297e+00, 9.4443559646606445e-05,
- 1.1920928955078125e-07, -7.1465969085693359e-05,
- -2.9385089874267578e-05}, /* L1326 */
-{4.4658980369567871e+00, 8.4385275840759277e-05,
- 1.1920928955078125e-07, 1.3113021850585938e-05,
- -1.7285346984863281e-06}, /* L1327 */
-{3.1854162216186523e+00, 6.0379505157470703e-05,
- 1.1920928955078125e-07, -1.7583370208740234e-05,
- 1.8835067749023438e-05}, /* L1328 */
-{3.8384883403778076e+00, 7.2985887527465820e-05,
- 1.1920928955078125e-07, 2.1815299987792969e-05,
- -1.2397766113281250e-05}, /* L1329 */
-{3.4356751441955566e+00, 6.5535306930541992e-05,
- 1.1920928955078125e-07, -1.2516975402832031e-06,
- 2.8729438781738281e-05}, /* L1330 */
-{2.9541642665863037e+00, 5.6564807891845703e-05,
- 1.1920928955078125e-07, 7.5137615203857422e-04,
- -2.8008222579956055e-04}, /* L1331 */
-{3.7685103416442871e+00, 7.2330236434936523e-05,
- 1.1920928955078125e-07, -1.6391277313232422e-05,
- -2.3543834686279297e-05}, /* L1332 */
-{3.7530016899108887e+00, 7.2270631790161133e-05,
- 1.1920928955078125e-07, 1.9073486328125000e-06,
- -3.3736228942871094e-05}, /* L1333 */
-{3.2955565452575684e+00, 6.3657760620117188e-05,
- 1.1920928955078125e-07, 2.4437904357910156e-05,
- 1.7166137695312500e-05}, /* L1334 */
-{4.7795829772949219e+00, 9.2595815658569336e-05,
- 1.1920928955078125e-07, -1.2874603271484375e-05,
- -8.3446502685546875e-07}, /* L1335 */
-{3.7617290019989014e+00, 7.3105096817016602e-05,
- 1.1920928955078125e-07, 5.3763389587402344e-05,
- -3.1888484954833984e-05}, /* L1336 */
-{3.8056991100311279e+00, 7.4177980422973633e-05,
- 1.1920928955078125e-07, 3.4570693969726562e-06,
- -1.3113021850585938e-06}, /* L1337 */
-{4.3724923133850098e+00, 8.5502862930297852e-05,
- 1.1920928955078125e-07, -8.7857246398925781e-05,
- -2.7942657470703125e-04}, /* L1338 */
-{3.7000031471252441e+00, 7.2583556175231934e-05,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- -3.5464763641357422e-05}, /* L1339 */
-{3.9001255035400391e+00, 7.6718628406524658e-05,
- 1.1920928955078125e-07, -8.7797641754150391e-05,
- -1.4483928680419922e-05}, /* L1340 */
-{4.4363026618957520e+00, 8.7529420852661133e-05,
- 1.1920928955078125e-07, 7.1525573730468750e-07,
- 3.8146972656250000e-06}, /* L1341 */
-{4.4184427261352539e+00, 8.7440013885498047e-05,
- 1.1920928955078125e-07, 2.4437904357910156e-05,
- 2.3245811462402344e-05}, /* L1342 */
-{3.0645101070404053e+00, 6.0901045799255371e-05,
- 1.1920928955078125e-07, 2.5093555450439453e-04,
- 5.7590007781982422e-04}, /* L1343 */
-{3.2422950267791748e+00, 6.4581632614135742e-05,
- 1.1920928955078125e-07, 1.7821788787841797e-04,
- 5.9723854064941406e-05}, /* L1344 */
-{3.6899039745330811e+00, 7.3730945587158203e-05,
- 1.1920928955078125e-07, 1.9395351409912109e-04,
- 9.5248222351074219e-05}, /* L1345 */
-{3.9974186420440674e+00, 8.0078840255737305e-05,
- 1.1920928955078125e-07, 4.6491622924804688e-05,
- -1.2278556823730469e-05}, /* L1346 */
-{3.4381773471832275e+00, 6.9111585617065430e-05,
- 1.1920928955078125e-07, -9.4294548034667969e-05,
- 1.8656253814697266e-04}, /* L1347 */
-{3.3473718166351318e+00, 6.7442655563354492e-05,
- 1.1920928955078125e-07, 9.3460083007812500e-05,
- 1.1563301086425781e-05}, /* L1348 */
-{4.7897124290466309e+00, 9.6812844276428223e-05,
- 1.1920928955078125e-07, -2.9861927032470703e-05,
- 4.1842460632324219e-05}, /* L1349 */
-{4.7768397331237793e+00, 9.6887350082397461e-05,
- 1.1920928955078125e-07, 1.5878677368164062e-04,
- 2.6476383209228516e-04}, /* L1350 */
-{4.2064580917358398e+00, 8.5502862930297852e-05,
- 1.1920928955078125e-07, 5.4001808166503906e-05,
- 4.6372413635253906e-05}, /* L1351 */
-{3.8003456592559814e+00, 7.7471137046813965e-05,
- 1.1920928955078125e-07, 7.5101852416992188e-06,
- 1.2636184692382812e-05}, /* L1352 */
-{3.1709525585174561e+00, 6.4849853515625000e-05,
- 1.1920928955078125e-07, 1.5330314636230469e-04,
- 4.6968460083007812e-05}, /* L1353 */
-{4.8793897628784180e+00, 1.0005198419094086e-04,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -2.5868415832519531e-05}, /* L1354 */
-{4.4213376045227051e+00, 9.0926885604858398e-05,
- 1.1920928955078125e-07, -1.3351440429687500e-05,
- -6.2227249145507812e-05}, /* L1355 */
-{3.8869545459747314e+00, 8.0168247222900391e-05,
- 1.1920928955078125e-07, 3.6239624023437500e-05,
- 1.4305114746093750e-05}, /* L1356 */
-{4.4384484291076660e+00, 9.1813504695892334e-05,
- 1.1920928955078125e-07, 5.1379203796386719e-05,
- 3.9458274841308594e-05}, /* L1357 */
-{3.3497838973999023e+00, 6.9588422775268555e-05,
- 1.1920928955078125e-07, 1.0526180267333984e-04,
- -4.7951936721801758e-04}, /* L1358 */
-{4.2968616485595703e+00, 8.9406967163085938e-05,
- 1.1920928955078125e-07, -5.0067901611328125e-06,
- -1.2087821960449219e-04}, /* L1359 */
-{3.2734379768371582e+00, 6.8306922912597656e-05,
- 1.1920928955078125e-07, 4.7683715820312500e-05,
- 5.4121017456054688e-05}, /* L1360 */
-{3.7476680278778076e+00, 7.8409910202026367e-05,
- 1.1920928955078125e-07, -5.9604644775390625e-08,
- -2.1874904632568359e-05}, /* L1361 */
-{2.6689467430114746e+00, 5.5998563766479492e-05,
- 1.1920928955078125e-07, 1.8835067749023438e-05,
- 6.7949295043945312e-06}, /* L1362 */
-{4.1301960945129395e+00, 8.6911022663116455e-05,
- 1.1920928955078125e-07, -8.0823898315429688e-05,
- -5.5909156799316406e-05}, /* L1363 */
-{3.7226531505584717e+00, 7.8558921813964844e-05,
- 1.1920928955078125e-07, -8.6426734924316406e-06,
- -1.4024972915649414e-04}, /* L1364 */
-{4.2799062728881836e+00, 9.0651214122772217e-05,
- 1.1920928955078125e-07, 1.0025501251220703e-04,
- 9.7906589508056641e-04}, /* L1365 */
-{4.6442990303039551e+00, 9.8556280136108398e-05,
- 1.1920928955078125e-07, -5.0663948059082031e-06,
- 3.0994415283203125e-06}, /* L1366 */
-{4.7994618415832520e+00, 1.0213255882263184e-04,
- 1.1920928955078125e-07, -4.9412250518798828e-05,
- 1.4543533325195312e-05}, /* L1367 */
-{3.9578948020935059e+00, 8.4459781646728516e-05,
- 1.1920928955078125e-07, -3.6954879760742188e-05,
- -1.0728836059570312e-05}, /* L1368 */
-{4.7142872810363770e+00, 1.0088086128234863e-04,
- 1.1920928955078125e-07, 2.0503997802734375e-05,
- -3.2603740692138672e-05}, /* L1369 */
-{5.0617432594299316e+00, 1.0862946510314941e-04,
- 1.1920928955078125e-07, -1.1181831359863281e-04,
- 4.1246414184570312e-05}, /* L1370 */
-{5.4651422500610352e+00, 1.1759996414184570e-04,
- 1.1920928955078125e-07, -2.6047229766845703e-05,
- 1.0728836059570312e-05}, /* L1371 */
-{4.6017537117004395e+00, 9.9293887615203857e-05,
- 1.1920928955078125e-07, 1.2516975402832031e-05,
- -3.6478042602539062e-05}, /* L1372 */
-{4.5816631317138672e+00, 9.9137425422668457e-05,
- 1.1920928955078125e-07, 3.6954879760742188e-06,
- 2.1100044250488281e-05}, /* L1373 */
-{4.7823390960693359e+00, 1.0377168655395508e-04,
- 1.1920928955078125e-07, -1.3709068298339844e-05,
- -1.1742115020751953e-05}, /* L1374 */
-{4.1994113922119141e+00, 9.1386958956718445e-05,
- 1.1920928955078125e-07, -6.6399574279785156e-05,
- 9.4413757324218750e-05}, /* L1375 */
-{4.8262686729431152e+00, 1.0529160499572754e-04,
- 1.1920928955078125e-07, 2.7537345886230469e-05,
- 7.2717666625976562e-06}, /* L1376 */
-{3.3819701671600342e+00, 7.3999166488647461e-05,
- 1.1920928955078125e-07, 7.6889991760253906e-05,
- 1.5044212341308594e-04}, /* L1377 */
-{3.3624505996704102e+00, 7.3760747909545898e-05,
- 1.1920928955078125e-07, -3.3974647521972656e-05,
- 2.9444694519042969e-05}, /* L1378 */
-{4.9617981910705566e+00, 1.0913610458374023e-04,
- 1.1920928955078125e-07, -1.7285346984863281e-06,
- -2.4974346160888672e-05}, /* L1379 */
-{3.5646283626556396e+00, 7.8618526458740234e-05,
- 1.1920928955078125e-07, 1.1563301086425781e-05,
- -1.9013881683349609e-05}, /* L1380 */
-{3.5102624893188477e+00, 7.7642500400543213e-05,
- 1.1920928955078125e-07, -3.1173229217529297e-05,
- 9.8705291748046875e-05}, /* L1381 */
-{6.0708155632019043e+00, 1.3461709022521973e-04,
- 1.1920928955078125e-07, 5.2452087402343750e-06,
- 2.3245811462402344e-05}, /* L1382 */
-{5.0780024528503418e+00, 1.1290609836578369e-04,
- 1.1920928955078125e-07, -2.0861625671386719e-05,
- -1.4662742614746094e-05}, /* L1383 */
-{4.7435007095336914e+00, 1.0645389556884766e-04,
- 1.1920928955078125e-07, 3.3431053161621094e-03,
- 3.3942461013793945e-03}, /* L1384 */
-{4.6372504234313965e+00, 1.0368227958679199e-04,
- 1.1920928955078125e-07, -3.0100345611572266e-05,
- 8.4877014160156250e-05}, /* L1385 */
-{4.3456716537475586e+00, 9.7418669611215591e-05,
- 1.1920928955078125e-07, 2.8550624847412109e-04,
- 1.4424324035644531e-05}, /* L1386 */
-{4.2961630821228027e+00, 9.6589326858520508e-05,
- 1.1920928955078125e-07, 6.7949295043945312e-05,
- 3.3974647521972656e-05}, /* L1387 */
-{4.9144001007080078e+00, 1.1077523231506348e-04,
- 1.1920928955078125e-07, 1.0597705841064453e-04,
- -6.3776969909667969e-06}, /* L1388 */
-{4.4230256080627441e+00, 9.9927186965942383e-05,
- 1.1920928955078125e-07, 2.7418136596679688e-05,
- -4.2319297790527344e-06}, /* L1389 */
-{4.6450762748718262e+00, 1.0521709918975830e-04,
- 1.1920928955078125e-07, 5.8412551879882812e-05,
- 6.1631202697753906e-05}, /* L1390 */
-{3.1887686252593994e+00, 7.2419643402099609e-05,
- 1.1920928955078125e-07, 1.9311904907226562e-05,
- 1.5497207641601562e-05}, /* L1391 */
-{6.2474112510681152e+00, 1.4239549636840820e-04,
- 1.1920928955078125e-07, -1.8680095672607422e-04,
- 3.9577484130859375e-04}, /* L1392 */
-{4.5461459159851074e+00, 1.0380148887634277e-04,
- 1.1920928955078125e-07, -4.9412250518798828e-05,
- 1.2040138244628906e-05}, /* L1393 */
-{5.0377044677734375e+00, 1.1539459228515625e-04,
- 1.1920928955078125e-07, -4.3505430221557617e-04,
- -8.9287757873535156e-05}, /* L1394 */
-{6.0852775573730469e+00, 1.3966858386993408e-04,
- 1.1920928955078125e-07, 1.6927719116210938e-05,
- 4.3869018554687500e-05}, /* L1395 */
-{4.5087976455688477e+00, 1.0374188423156738e-04,
- 1.1920928955078125e-07, 2.1219253540039062e-05,
- 7.1525573730468750e-06}, /* L1396 */
-{5.5137805938720703e+00, 1.2719631195068359e-04,
- 1.1920928955078125e-07, -1.8596649169921875e-05,
- -1.7404556274414062e-05}, /* L1397 */
-{3.8598725795745850e+00, 8.9272856712341309e-05,
- 1.1920928955078125e-07, 2.0146369934082031e-05,
- -1.8179416656494141e-05}, /* L1398 */
-{3.4021766185760498e+00, 7.8886747360229492e-05,
- 1.1920928955078125e-07, 2.3961067199707031e-05,
- 3.1590461730957031e-05}, /* L1399 */
-{5.9166455268859863e+00, 1.3754516839981079e-04,
- 1.1920928955078125e-07, 1.0609626770019531e-05,
- -1.8179416656494141e-05}, /* L1400 */
-{3.1801805496215820e+00, 7.4118375778198242e-05,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- -7.0929527282714844e-06}, /* L1401 */
-{4.5846505165100098e+00, 1.0737776756286621e-04,
- 1.1920928955078125e-07, -2.8544664382934570e-04,
- 1.0683536529541016e-03}, /* L1402 */
-{6.6109290122985840e+00, 1.5487521886825562e-04,
- 1.1920928955078125e-07, 7.2717666625976562e-06,
- -7.2121620178222656e-06}, /* L1403 */
-{4.8248658180236816e+00, 1.1331588029861450e-04,
- 1.1920928955078125e-07, -1.2457370758056641e-05,
- 2.3961067199707031e-05}, /* L1404 */
-{5.3237805366516113e+00, 1.2554973363876343e-04,
- 1.1920928955078125e-07, -3.0612945556640625e-04,
- 2.4306774139404297e-04}, /* L1405 */
-{4.9872794151306152e+00, 1.1783838272094727e-04,
- 1.1920928955078125e-07, -2.5516748428344727e-04,
- 2.8669834136962891e-04}, /* L1406 */
-{4.0393199920654297e+00, 9.5590949058532715e-05,
- 1.1920928955078125e-07, -1.1384487152099609e-05,
- -4.3869018554687500e-05}, /* L1407 */
-{3.8832790851593018e+00, 9.2133879661560059e-05,
- 1.1920928955078125e-07, -2.1874904632568359e-05,
- 6.3776969909667969e-05}, /* L1408 */
-{5.4100017547607422e+00, 1.2868829071521759e-04,
- 1.1920928955078125e-07, 1.7285346984863281e-05,
- -2.9802322387695312e-05}, /* L1409 */
-{4.4211664199829102e+00, 1.0542571544647217e-04,
- 1.1920928955078125e-07, 5.5551528930664062e-05,
- 3.5881996154785156e-05}, /* L1410 */
-{3.2668707370758057e+00, 7.8089535236358643e-05,
- 1.1920928955078125e-07, 4.8637390136718750e-05,
- -4.0173530578613281e-05}, /* L1411 */
-{6.1488976478576660e+00, 1.4734268188476562e-04,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- 1.5020370483398438e-05}, /* L1412 */
-{5.3101110458374023e+00, 1.2756884098052979e-04,
- 1.1920928955078125e-07, 2.7537345886230469e-05,
- -5.4538249969482422e-05}, /* L1413 */
-{5.2199330329895020e+00, 1.2570619583129883e-04,
- 1.1920928955078125e-07, -1.7344951629638672e-05,
- -2.4914741516113281e-05}, /* L1414 */
-{4.4799566268920898e+00, 1.0815262794494629e-04,
- 1.1920928955078125e-07, 1.3589859008789062e-05,
- 6.7591667175292969e-05}, /* L1415 */
-{5.8589501380920410e+00, 1.4179944992065430e-04,
- 1.1920928955078125e-07, -7.7068805694580078e-05,
- 3.6120414733886719e-05}, /* L1416 */
-{3.6312186717987061e+00, 8.8095664978027344e-05,
- 1.1920928955078125e-07, 2.5153160095214844e-05,
- 7.9870223999023438e-06}, /* L1417 */
-{4.9162602424621582e+00, 1.1957436800003052e-04,
- 1.1920928955078125e-07, -4.2915344238281250e-06,
- -7.6234340667724609e-05}, /* L1418 */
-{4.8697094917297363e+00, 1.1873245239257812e-04,
- 1.1920928955078125e-07, -3.2007694244384766e-05,
- -1.1289119720458984e-04}, /* L1419 */
-{5.6039214134216309e+00, 1.3706088066101074e-04,
- 1.1920928955078125e-07, -8.9526176452636719e-05,
- -1.2260675430297852e-04}, /* L1420 */
-{6.0624976158142090e+00, 1.4853477478027344e-04,
- 1.1920928955078125e-07, -9.6559524536132812e-06,
- 5.6385993957519531e-05}, /* L1421 */
-{5.2167501449584961e+00, 1.2812018394470215e-04,
- 1.1920928955078125e-07, -1.0073184967041016e-05,
- 1.4543533325195312e-05}, /* L1422 */
-{4.6749162673950195e+00, 1.1511531192809343e-04,
- 1.1920928955078125e-07, -2.1779537200927734e-04,
- 9.8466873168945312e-05}, /* L1423 */
-{4.3700361251831055e+00, 1.0785460472106934e-04,
- 1.1920928955078125e-07, 5.8531761169433594e-05,
- -1.4722347259521484e-05}, /* L1424 */
-{4.4332079887390137e+00, 1.0967254638671875e-04,
- 1.1920928955078125e-07, 1.7166137695312500e-05,
- 1.8596649169921875e-05}, /* L1425 */
-{5.1984019279479980e+00, 1.2895464897155762e-04,
- 1.1920928955078125e-07, 1.5163421630859375e-04,
- -6.1392784118652344e-06}, /* L1426 */
-{4.1160373687744141e+00, 1.0234117507934570e-04,
- 1.1920928955078125e-07, -1.2093782424926758e-04,
- 2.0217895507812500e-04}, /* L1427 */
-{4.6941976547241211e+00, 1.1697411537170410e-04,
- 1.1920928955078125e-07, 9.5486640930175781e-05,
- 1.6212463378906250e-05}, /* L1428 */
-{4.7335615158081055e+00, 1.1822581291198730e-04,
- 1.1920928955078125e-07, -2.1815299987792969e-05,
- 6.8664550781250000e-05}, /* L1429 */
-{5.0993728637695312e+00, 1.2767314910888672e-04,
- 1.1920928955078125e-07, -5.8770179748535156e-05,
- -2.1100044250488281e-05}, /* L1430 */
-{6.7603044509887695e+00, 1.6964972019195557e-04,
- 1.1920928955078125e-07, 6.4373016357421875e-06,
- 2.3841857910156250e-07}, /* L1431 */
-{3.6456432342529297e+00, 9.1709196567535400e-05,
- 1.1920928955078125e-07, -3.5166740417480469e-05,
- 2.4676322937011719e-05}, /* L1432 */
-{3.6505048274993896e+00, 9.2049129307270050e-05,
- 1.1920928955078125e-07, -4.0769577026367188e-05,
- 1.8000602722167969e-05}, /* L1433 */
-{4.8351521492004395e+00, 1.2222677469253540e-04,
- 1.1920928955078125e-07, -2.5051832199096680e-04,
- -1.1861324310302734e-05}, /* L1434 */
-{4.3703279495239258e+00, 1.1071562767028809e-04,
- 1.1920928955078125e-07, 4.8398971557617188e-05,
- -2.6881694793701172e-05}, /* L1435 */
-{6.1353759765625000e+00, 1.5580654144287109e-04,
- 1.1920928955078125e-07, -8.7022781372070312e-06,
- -5.8114528656005859e-05}, /* L1436 */
-{5.5625419616699219e+00, 1.4159083366394043e-04,
- 1.1920928955078125e-07, -3.4868717193603516e-05,
- 5.0902366638183594e-05}, /* L1437 */
-{3.5406966209411621e+00, 9.0330839157104492e-05,
- 1.1920928955078125e-07, -3.9935111999511719e-06,
- 4.5299530029296875e-06}, /* L1438 */
-{4.2404432296752930e+00, 1.0858476161956787e-04,
- 1.1920928955078125e-07, 1.5187263488769531e-04,
- 4.1961669921875000e-05}, /* L1439 */
-{4.8489222526550293e+00, 1.2429058551788330e-04,
- 1.1920928955078125e-07, 4.5895576477050781e-05,
- -2.3126602172851562e-05}, /* L1440 */
-{4.3888530731201172e+00, 1.1283159255981445e-04,
- 1.1920928955078125e-07, -2.3812055587768555e-04,
- -1.8435716629028320e-04}, /* L1441 */
-{4.5411114692687988e+00, 1.1694431304931641e-04,
- 1.1920928955078125e-07, 2.1696090698242188e-05,
- -1.0073184967041016e-05}, /* L1442 */
-{4.7393536567687988e+00, 1.2253224849700928e-04,
- 1.1920928955078125e-07, -4.2486190795898438e-04,
- 2.0360946655273438e-04}, /* L1443 */
-{4.0770010948181152e+00, 1.0547041893005371e-04,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -5.7220458984375000e-06}, /* L1444 */
-{5.0433492660522461e+00, 1.3077259063720703e-04,
- 1.1920928955078125e-07, 1.3470649719238281e-05,
- 2.6106834411621094e-05}, /* L1445 */
-{5.1698369979858398e+00, 1.3439357280731201e-04,
- 1.1920928955078125e-07, -1.8024444580078125e-04,
- -2.6166439056396484e-05}, /* L1446 */
-{3.8861188888549805e+00, 1.0123848915100098e-04,
- 1.1920928955078125e-07, 3.3617019653320312e-05,
- 5.4836273193359375e-05}, /* L1447 */
-{4.3704109191894531e+00, 1.1411309242248535e-04,
- 1.1920928955078125e-07, -4.1127204895019531e-05,
- -7.5101852416992188e-06}, /* L1448 */
-{4.8980259895324707e+00, 1.2817978858947754e-04,
- 1.1920928955078125e-07, -4.9412250518798828e-05,
- 2.5391578674316406e-05}, /* L1449 */
-{4.3612704277038574e+00, 1.1438317596912384e-04,
- 1.1920928955078125e-07, 0.0000000000000000e+00,
- 1.4185905456542969e-05}, /* L1450 */
-{5.7527580261230469e+00, 1.5124678611755371e-04,
- 1.1920928955078125e-07, 8.9406967163085938e-06,
- -1.2487173080444336e-04}, /* L1451 */
-{5.5650038719177246e+00, 1.4662742614746094e-04,
- 1.1920928955078125e-07, -4.2080879211425781e-05,
- 3.1709671020507812e-05}, /* L1452 */
-{4.2241549491882324e+00, 1.1154264211654663e-04,
- 1.1920928955078125e-07, 2.3007392883300781e-05,
- 1.7762184143066406e-05}, /* L1453 */
-{4.0936546325683594e+00, 1.0834634304046631e-04,
- 1.1920928955078125e-07, -6.5565109252929688e-06,
- 2.9683113098144531e-05}, /* L1454 */
-{4.0500717163085938e+00, 1.0743737220764160e-04,
- 1.1920928955078125e-07, -4.4107437133789062e-06,
- -3.3736228942871094e-05}, /* L1455 */
-{5.9028835296630859e+00, 1.5693157911300659e-04,
- 1.1920928955078125e-07, 1.1444091796875000e-05,
- 1.7285346984863281e-05}, /* L1456 */
-{6.6958923339843750e+00, 1.7845630645751953e-04,
- 1.1920928955078125e-07, 1.3744831085205078e-04,
- -2.1684169769287109e-04}, /* L1457 */
-{4.7673230171203613e+00, 1.2730807065963745e-04,
- 1.1920928955078125e-07, 1.3828277587890625e-05,
- 2.1934509277343750e-05}, /* L1458 */
-{6.1993622779846191e+00, 1.6592442989349365e-04,
- 1.1920928955078125e-07, 3.0159950256347656e-05,
- 4.1604042053222656e-05}, /* L1459 */
-{4.9040460586547852e+00, 1.3155117630958557e-04,
- 1.1920928955078125e-07, 4.6491622924804688e-05,
- 5.9723854064941406e-05}, /* L1460 */
-{4.4135026931762695e+00, 1.1867284774780273e-04,
- 1.1920928955078125e-07, 6.8306922912597656e-05,
- -2.8371810913085938e-05}, /* L1461 */
-{6.3232822418212891e+00, 1.7037242650985718e-04,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- 1.7881393432617188e-05}, /* L1462 */
-{4.7820315361022949e+00, 1.2913346290588379e-04,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- 3.1590461730957031e-05}, /* L1463 */
-{5.8575887680053711e+00, 1.5854835510253906e-04,
- 1.1920928955078125e-07, 6.6757202148437500e-06,
- -9.7751617431640625e-05}, /* L1464 */
-{4.6069049835205078e+00, 1.2494623661041260e-04,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- -5.0187110900878906e-05}, /* L1465 */
-{3.6946730613708496e+00, 1.0044500231742859e-04,
- 1.1920928955078125e-07, -4.3690204620361328e-05,
- -7.5519084930419922e-05}, /* L1466 */
-{4.4400382041931152e+00, 1.2096762657165527e-04,
- 1.1920928955078125e-07, 2.5391578674316406e-05,
- -7.5161457061767578e-05}, /* L1467 */
-{5.6785926818847656e+00, 1.5506148338317871e-04,
- 1.1920928955078125e-07, 5.2690505981445312e-05,
- 9.2983245849609375e-06}, /* L1468 */
-{5.9646377563476562e+00, 1.6320496797561646e-04,
- 1.1920928955078125e-07, -4.9471855163574219e-05,
- -8.1062316894531250e-05}, /* L1469 */
-{4.9088644981384277e+00, 1.3473629951477051e-04,
- 1.1920928955078125e-07, 6.3097476959228516e-04,
- 8.0823898315429688e-05}, /* L1470 */
-{3.7326440811157227e+00, 1.0259449481964111e-04,
- 1.1920928955078125e-07, -1.1503696441650391e-05,
- 2.7418136596679688e-06}, /* L1471 */
-{4.1820335388183594e+00, 1.1519342660903931e-04,
- 1.1920928955078125e-07, -9.2387199401855469e-06,
- -3.1769275665283203e-05}, /* L1472 */
-{6.7988538742065430e+00, 1.8766522407531738e-04,
- 1.1920928955078125e-07, -1.7344951629638672e-05,
- 3.9458274841308594e-05}, /* L1473 */
-{4.0071740150451660e+00, 1.1090934276580811e-04,
- 1.1920928955078125e-07, 2.1839141845703125e-04,
- 2.2232532501220703e-04}, /* L1474 */
-{5.1238522529602051e+00, 1.4203786849975586e-04,
- 1.1920928955078125e-07, 1.1086463928222656e-05,
- -6.0200691223144531e-06}, /* L1475 */
-{5.8487634658813477e+00, 1.6246736049652100e-04,
- 1.1920928955078125e-07, -4.4465065002441406e-05,
- 1.9788742065429688e-05}, /* L1476 */
-{5.4141168594360352e+00, 1.5072524547576904e-04,
- 1.1920928955078125e-07, 1.3029575347900391e-04,
- -3.1292438507080078e-05}, /* L1477 */
-{4.7024874687194824e+00, 1.3121962547302246e-04,
- 1.1920928955078125e-07, -5.6087970733642578e-05,
- 1.2695789337158203e-04}, /* L1478 */
-{5.0653290748596191e+00, 1.4161411672830582e-04,
- 1.1920928955078125e-07, 7.1167945861816406e-05,
- 3.8862228393554688e-05}, /* L1479 */
-{3.9772584438323975e+00, 1.1143088340759277e-04,
- 1.1920928955078125e-07, 1.7881393432617188e-05,
- -3.5047531127929688e-05}, /* L1480 */
-{5.0348796844482422e+00, 1.4251470565795898e-04,
- 1.1920928955078125e-07, -2.3993849754333496e-03,
- 8.5771083831787109e-04}, /* L1481 */
-{5.5807471275329590e+00, 1.5701353549957275e-04,
- 1.1920928955078125e-07, 2.5629997253417969e-05,
- 2.0623207092285156e-05}, /* L1482 */
-{5.0025205612182617e+00, 1.4105439186096191e-04,
- 1.1920928955078125e-07, -2.1874904632568359e-05,
- 6.1511993408203125e-05}, /* L1483 */
-{7.4436874389648438e+00, 2.1032989025115967e-04,
- 1.1920928955078125e-07, 2.1457672119140625e-05,
- 1.8596649169921875e-05}, /* L1484 */
-{4.9420204162597656e+00, 1.4011561870574951e-04,
- 1.1920928955078125e-07, -7.4684619903564453e-05,
- 1.5759468078613281e-04}, /* L1485 */
-{5.3286194801330566e+00, 1.5120953321456909e-04,
- 1.1920928955078125e-07, -3.9160251617431641e-05,
- 5.3644180297851562e-05}, /* L1486 */
-{4.9017491340637207e+00, 1.3938546180725098e-04,
- 1.1920928955078125e-07, -4.1306018829345703e-05,
- 3.4570693969726562e-06}, /* L1487 */
-{6.1502108573913574e+00, 1.7523765563964844e-04,
- 1.1920928955078125e-07, 2.8967857360839844e-05,
- 1.8119812011718750e-05}, /* L1488 */
-{5.3834056854248047e+00, 1.5372037887573242e-04,
- 1.1920928955078125e-07, 1.9907951354980469e-05,
- -3.3378601074218750e-06}, /* L1489 */
-{6.0058851242065430e+00, 1.7184019088745117e-04,
- 1.1920928955078125e-07, -3.1232833862304688e-05,
- -4.7624111175537109e-05}, /* L1490 */
-{6.1604924201965332e+00, 1.7675757408142090e-04,
- 1.1920928955078125e-07, 4.7647953033447266e-04,
- -5.6785345077514648e-04}, /* L1491 */
-{8.0020484924316406e+00, 2.2995471954345703e-04,
- 1.1920928955078125e-07, 3.5762786865234375e-07,
- 7.2240829467773438e-05}, /* L1492 */
-{4.7145266532897949e+00, 1.3586878776550293e-04,
- 1.1920928955078125e-07, -2.6023387908935547e-04,
- 9.5605850219726562e-05}, /* L1493 */
-{5.4914135932922363e+00, 1.5843100845813751e-04,
- 1.1920928955078125e-07, -3.8325786590576172e-05,
- -1.2159347534179688e-05}, /* L1494 */
-{6.3612146377563477e+00, 1.8393993377685547e-04,
- 1.1920928955078125e-07, 1.9311904907226562e-05,
- -9.0897083282470703e-05}, /* L1495 */
-{7.1484522819519043e+00, 2.0709633827209473e-04,
- 1.1920928955078125e-07, 2.3841857910156250e-06,
- -8.2850456237792969e-06}, /* L1496 */
-{4.1670236587524414e+00, 1.2096762657165527e-04,
- 1.1920928955078125e-07, 2.4914741516113281e-05,
- -4.2498111724853516e-05}, /* L1497 */
-{6.0602579116821289e+00, 1.7634034156799316e-04,
- 1.1920928955078125e-07, 3.1590461730957031e-04,
- -2.3967027664184570e-04}, /* L1498 */
-{4.9270291328430176e+00, 1.4361739158630371e-04,
- 1.1920928955078125e-07, -1.6152858734130859e-05,
- 1.8596649169921875e-05}, /* L1499 */
-{6.3606724739074707e+00, 1.8579498282633722e-04,
- 1.1920928955078125e-07, 4.8637390136718750e-05,
- 7.9512596130371094e-05}, /* L1500 */
-{5.2753887176513672e+00, 1.5440583229064941e-04,
- 1.1920928955078125e-07, -1.5079975128173828e-05,
- -2.3424625396728516e-05}, /* L1501 */
-{7.3513460159301758e+00, 2.1563470363616943e-04,
- 1.1920928955078125e-07, -1.2916326522827148e-04,
- 4.0173530578613281e-05}, /* L1502 */
-{3.9155988693237305e+00, 1.1506676673889160e-04,
- 1.1920928955078125e-07, -1.3768672943115234e-05,
- 3.1232833862304688e-05}, /* L1503 */
-{5.1235876083374023e+00, 1.5094876289367676e-04,
- 1.1920928955078125e-07, 1.2397766113281250e-04,
- -2.0122528076171875e-04}, /* L1504 */
-{5.6760935783386230e+00, 1.6748905181884766e-04,
- 1.1920928955078125e-07, 3.5285949707031250e-05,
- 4.6730041503906250e-05}, /* L1505 */
-{5.1203889846801758e+00, 1.5139579772949219e-04,
- 1.1920928955078125e-07, 9.5367431640625000e-07,
- -1.8715858459472656e-05}, /* L1506 */
-{6.8399348258972168e+00, 2.0264089107513428e-04,
- 1.1920928955078125e-07, -5.3763389587402344e-05,
- -4.9471855163574219e-06}, /* L1507 */
-{5.9234356880187988e+00, 1.7586350440979004e-04,
- 1.1920928955078125e-07, -3.7848949432373047e-05,
- -9.7155570983886719e-05}, /* L1508 */
-{4.6010227203369141e+00, 1.3689696788787842e-04,
- 1.1920928955078125e-07, -2.4139881134033203e-05,
- 3.8146972656250000e-06}, /* L1509 */
-{7.3738422393798828e+00, 2.1979212760925293e-04,
- 1.1920928955078125e-07, -6.5326690673828125e-05,
- -1.6331672668457031e-05}, /* L1510 */
-{5.5350818634033203e+00, 1.6538798809051514e-04,
- 1.1920928955078125e-07, -3.0404329299926758e-04,
- 2.0647048950195312e-04}, /* L1511 */
-{5.2993330955505371e+00, 1.5858560800552368e-04,
- 1.1920928955078125e-07, 3.6954879760742188e-05,
- 9.0122222900390625e-05}, /* L1512 */
-{5.4391717910766602e+00, 1.6328692436218262e-04,
- 1.1920928955078125e-07, -6.0027837753295898e-04,
- -8.7380409240722656e-05}, /* L1513 */
-{5.0555434226989746e+00, 1.5190243721008301e-04,
- 1.1920928955078125e-07, -2.1755695343017578e-05,
- -1.6450881958007812e-05}, /* L1514 */
-{5.5656056404113770e+00, 1.6754865646362305e-04,
- 1.1920928955078125e-07, 1.5020370483398438e-05,
- -8.2910060882568359e-05}, /* L1515 */
-{4.3916397094726562e+00, 1.3250112533569336e-04,
- 1.1920928955078125e-07, -2.6518106460571289e-04,
- 1.9311904907226562e-05}, /* L1516 */
-{5.4428820610046387e+00, 1.6465783119201660e-04,
- 1.1920928955078125e-07, 6.9522857666015625e-04,
- 3.1399726867675781e-04}, /* L1517 */
-{5.6694173812866211e+00, 1.7234683036804199e-04,
- 1.1920928955078125e-07, 1.0383129119873047e-03,
- -1.8698573112487793e-03}, /* L1518 */
-{6.7812099456787109e+00, 2.0582973957061768e-04,
- 1.1920928955078125e-07, -9.0956687927246094e-05,
- 7.0929527282714844e-05}, /* L1519 */
-{5.1436595916748047e+00, 1.5643239021301270e-04,
- 1.1920928955078125e-07, -2.0134449005126953e-04,
- 2.5510787963867188e-05}, /* L1520 */
-{6.1056780815124512e+00, 1.8599629402160645e-04,
- 1.1920928955078125e-07, 6.8306922912597656e-05,
- 2.9921531677246094e-05}, /* L1521 */
-{4.7902460098266602e+00, 1.4621019363403320e-04,
- 1.1920928955078125e-07, -3.4213066101074219e-05,
- 3.3140182495117188e-05}, /* L1522 */
-{6.3455085754394531e+00, 1.9407272338867188e-04,
- 1.1920928955078125e-07, -4.2200088500976562e-05,
- -6.5565109252929688e-07}, /* L1523 */
-{6.3733029365539551e+00, 1.9529461860656738e-04,
- 1.1920928955078125e-07, -1.9907951354980469e-05,
- 1.4424324035644531e-05}, /* L1524 */
-{4.5927534103393555e+00, 1.4099478721618652e-04,
- 1.1920928955078125e-07, -5.5789947509765625e-05,
- 4.9710273742675781e-05}, /* L1525 */
-{4.8711824417114258e+00, 1.4984607696533203e-04,
- 1.1920928955078125e-07, -8.3088874816894531e-05,
- 5.7816505432128906e-05}, /* L1526 */
-{4.6142587661743164e+00, 1.4230608940124512e-04,
- 1.1920928955078125e-07, 2.7179718017578125e-05,
- 6.6399574279785156e-05}, /* L1527 */
-{6.0828628540039062e+00, 1.8784403800964355e-04,
- 1.1920928955078125e-07, -2.3841857910156250e-06,
- -1.7046928405761719e-05}, /* L1528 */
-{5.3480257987976074e+00, 1.6564130783081055e-04,
- 1.1920928955078125e-07, -6.1213970184326172e-05,
- 6.2704086303710938e-05}, /* L1529 */
-{6.4968309402465820e+00, 2.0140409469604492e-04,
- 1.1920928955078125e-07, 2.0265579223632812e-05,
- -6.1094760894775391e-05}, /* L1530 */
-{5.8082156181335449e+00, 1.8048286437988281e-04,
- 1.1920928955078125e-07, -1.3518333435058594e-04,
- 7.6174736022949219e-05}, /* L1531 */
-{4.8875293731689453e+00, 1.5209615230560303e-04,
- 1.1920928955078125e-07, -5.5491924285888672e-05,
- 2.2649765014648438e-06}, /* L1532 */
-{5.4844498634338379e+00, 1.7100572586059570e-04,
- 1.1920928955078125e-07, -1.0466575622558594e-04,
- -2.1237134933471680e-04}, /* L1533 */
-{5.9610209465026855e+00, 1.8626451492309570e-04,
- 1.1920928955078125e-07, 1.3041496276855469e-04,
- -1.2099742889404297e-04}, /* L1534 */
-{6.3852038383483887e+00, 1.9989907741546631e-04,
- 1.1920928955078125e-07, 1.1587142944335938e-04,
- 1.4650821685791016e-04}, /* L1535 */
-{5.1573905944824219e+00, 1.6170740127563477e-04,
- 1.1920928955078125e-07, -5.2452087402343750e-06,
- -1.7404556274414062e-05}, /* L1536 */
-{5.2878279685974121e+00, 1.6614794731140137e-04,
- 1.1920928955078125e-07, -3.0696392059326172e-05,
- -1.9669532775878906e-05}, /* L1537 */
-{4.7292981147766113e+00, 1.4895200729370117e-04,
- 1.1920928955078125e-07, 1.8131732940673828e-04,
- 2.7060508728027344e-04}, /* L1538 */
-{6.5145025253295898e+00, 2.0543485879898071e-04,
- 1.1920928955078125e-07, -1.3470649719238281e-05,
- 8.8691711425781250e-05}, /* L1539 */
-{6.9765748977661133e+00, 2.2053718566894531e-04,
- 1.1920928955078125e-07, 2.3961067199707031e-04,
- 4.4476985931396484e-04}, /* L1540 */
-{6.5441446304321289e+00, 2.0727515220642090e-04,
- 1.1920928955078125e-07, 4.3499469757080078e-04,
- 3.5548210144042969e-04}, /* L1541 */
-{9.2936744689941406e+00, 2.9498338699340820e-04,
- 1.1920928955078125e-07, 1.1360645294189453e-04,
- -7.9751014709472656e-05}, /* L1542 */
-{6.6832408905029297e+00, 2.1445751190185547e-04,
- 1.1920928955078125e-07, -5.4982304573059082e-03,
- -1.7100572586059570e-03}, /* L1543 */
-{1.1340641975402832e+01, 3.6099553108215332e-04,
- 1.1920928955078125e-07, 3.2782554626464844e-05,
- 2.3245811462402344e-05}, /* L1544 */
-{6.6539411544799805e+00, 2.1223723888397217e-04,
- 1.1920928955078125e-07, 5.1259994506835938e-05,
- 1.4948844909667969e-04}, /* L1545 */
-{5.7673397064208984e+00, 1.8435716629028320e-04,
- 1.1920928955078125e-07, -4.8041343688964844e-05,
- 2.5868415832519531e-05}, /* L1546 */
-{6.4843931198120117e+00, 2.0821392536163330e-04,
- 1.1920928955078125e-07, -6.9642066955566406e-04,
- 7.7426433563232422e-04}, /* L1547 */
-{4.9204277992248535e+00, 1.5781819820404053e-04,
- 1.1920928955078125e-07, -2.1934509277343750e-05,
- 2.7298927307128906e-05}, /* L1548 */
-{5.7416129112243652e+00, 1.8447637557983398e-04,
- 1.1920928955078125e-07, -1.0371208190917969e-05,
- 2.1457672119140625e-06}, /* L1549 */
-{6.9889173507690430e+00, 2.2497773170471191e-04,
- 1.1920928955078125e-07, -3.7491321563720703e-05,
- 4.1246414184570312e-05}, /* L1550 */
-{6.9942154884338379e+00, 2.2555887699127197e-04,
- 1.1920928955078125e-07, 2.7775764465332031e-05,
- 6.6757202148437500e-06}, /* L1551 */
-{5.9428272247314453e+00, 1.9200146198272705e-04,
- 1.1920928955078125e-07, -1.2576580047607422e-05,
- 2.3126602172851562e-05}, /* L1552 */
-{5.5200729370117188e+00, 1.8015503883361816e-04,
- 1.1920928955078125e-07, -2.5536417961120605e-03,
- 2.4120807647705078e-03}, /* L1553 */
-{5.9261970520019531e+00, 1.9228458404541016e-04,
- 1.1920928955078125e-07, 4.0280818939208984e-04,
- -2.1648406982421875e-04}, /* L1554 */
-{4.9420609474182129e+00, 1.6057491302490234e-04,
- 1.1920928955078125e-07, 7.2598457336425781e-05,
- -9.4294548034667969e-05}, /* L1555 */
-{5.7787709236145020e+00, 1.8808245658874512e-04,
- 1.1920928955078125e-07, 6.6518783569335938e-05,
- -3.5405158996582031e-05}, /* L1556 */
-{6.7051978111267090e+00, 2.1863728761672974e-04,
- 1.1920928955078125e-07, 3.0994415283203125e-06,
- -7.3313713073730469e-06}, /* L1557 */
-{7.6644401550292969e+00, 2.5036931037902832e-04,
- 1.1920928955078125e-07, 1.7642974853515625e-05,
- -8.9406967163085938e-07}, /* L1558 */
-{5.3232679367065430e+00, 1.7424672842025757e-04,
- 1.1920928955078125e-07, 5.1140785217285156e-05,
- -1.8960237503051758e-04}, /* L1559 */
-{5.1175212860107422e+00, 1.6778707504272461e-04,
- 1.1920928955078125e-07, -5.2273273468017578e-05,
- -2.4735927581787109e-05}, /* L1560 */
-{7.2600560188293457e+00, 2.3847073316574097e-04,
- 1.1920928955078125e-07, -1.1980533599853516e-05,
- -2.9206275939941406e-05}, /* L1561 */
-{4.8857469558715820e+00, 1.6079843044281006e-04,
- 1.1920928955078125e-07, -7.2598457336425781e-05,
- 1.4972686767578125e-04}, /* L1562 */
-{5.7856483459472656e+00, 1.9073486328125000e-04,
- 1.1920928955078125e-07, -8.1121921539306641e-05,
- 4.5895576477050781e-05}, /* L1563 */
-{6.1987195014953613e+00, 2.0474568009376526e-04,
- 1.1920928955078125e-07, 3.4451484680175781e-05,
- -3.4451484680175781e-05}, /* L1564 */
-{5.5280623435974121e+00, 1.8292665481567383e-04,
- 1.1920928955078125e-07, 4.3630599975585938e-05,
- 1.1086463928222656e-04}, /* L1565 */
-{5.2719717025756836e+00, 1.7476081848144531e-04,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 1.2278556823730469e-05}, /* L1566 */
-{5.8493833541870117e+00, 1.9428133964538574e-04,
- 1.1920928955078125e-07, -8.6963176727294922e-05,
- -8.7559223175048828e-05}, /* L1567 */
-{7.4994993209838867e+00, 2.4946220219135284e-04,
- 1.1920928955078125e-07, -3.8743019104003906e-05,
- 6.1750411987304688e-05}, /* L1568 */
-{8.0564422607421875e+00, 2.6848539710044861e-04,
- 1.1920928955078125e-07, 7.8320503234863281e-05,
- 1.3828277587890625e-05}, /* L1569 */
-{8.2448787689208984e+00, 2.7525424957275391e-04,
- 1.1920928955078125e-07, 1.8954277038574219e-04,
- 4.0173530578613281e-05}, /* L1570 */
-{6.3698124885559082e+00, 2.1308660507202148e-04,
- 1.1920928955078125e-07, 8.7261199951171875e-05,
- -1.3130903244018555e-04}, /* L1571 */
-{7.7860383987426758e+00, 2.6084296405315399e-04,
- 1.1920928955078125e-07, -4.9710273742675781e-05,
- 1.8358230590820312e-05}, /* L1572 */
-{6.2749595642089844e+00, 2.1065771579742432e-04,
- 1.1920928955078125e-07, 2.1064281463623047e-04,
- -1.5228986740112305e-04}, /* L1573 */
-{7.0988192558288574e+00, 2.3871660232543945e-04,
- 1.1920928955078125e-07, 5.4597854614257812e-05,
- 1.0812282562255859e-04}, /* L1574 */
-{6.1754641532897949e+00, 2.0840764045715332e-04,
- 1.1920928955078125e-07, 2.3710727691650391e-04,
- 3.8146972656250000e-04}, /* L1575 */
-{6.0608286857604980e+00, 2.0477175712585449e-04,
- 1.1920928955078125e-07, -1.1539459228515625e-04,
- -2.9015541076660156e-04}, /* L1576 */
-{7.0008625984191895e+00, 2.3673474788665771e-04,
- 1.1920928955078125e-07, -1.1914968490600586e-04,
- 1.4185905456542969e-04}, /* L1577 */
-{6.7248425483703613e+00, 2.2769719362258911e-04,
- 1.1920928955078125e-07, 3.3855438232421875e-05,
- 3.6358833312988281e-05}, /* L1578 */
-{6.7595577239990234e+00, 2.2929906845092773e-04,
- 1.1920928955078125e-07, 6.0796737670898438e-05,
- -7.1167945861816406e-05}, /* L1579 */
-{5.9898591041564941e+00, 2.0356476306915283e-04,
- 1.1920928955078125e-07, 6.1988830566406250e-05,
- 5.8412551879882812e-06}, /* L1580 */
-{6.8751063346862793e+00, 2.3401901125907898e-04,
- 1.1920928955078125e-07, -8.5234642028808594e-06,
- 6.5803527832031250e-05}, /* L1581 */
-{7.3971276283264160e+00, 2.5224685668945312e-04,
- 1.1920928955078125e-07, 6.4134597778320312e-05,
- -1.3709068298339844e-05}, /* L1582 */
-{6.3223195075988770e+00, 2.1603703498840332e-04,
- 1.1920928955078125e-07, 8.7261199951171875e-05,
- 1.8715858459472656e-05}, /* L1583 */
-{5.6579871177673340e+00, 1.9365549087524414e-04,
- 1.1920928955078125e-07, -8.6307525634765625e-05,
- -1.8417835235595703e-05}, /* L1584 */
-{7.4046993255615234e+00, 2.5379657745361328e-04,
- 1.1920928955078125e-07, -5.1140785217285156e-05,
- 1.1444091796875000e-05}, /* L1585 */
-{6.0522208213806152e+00, 2.0798295736312866e-04,
- 1.1920928955078125e-07, -3.1769275665283203e-05,
- -8.6307525634765625e-05}, /* L1586 */
-{5.4351930618286133e+00, 1.8714368343353271e-04,
- 1.1920928955078125e-07, 4.3511390686035156e-04,
- 4.6527385711669922e-04}, /* L1587 */
-{9.4351921081542969e+00, 3.2550096511840820e-04,
- 1.1920928955078125e-07, -4.7796964645385742e-04,
- -2.5969743728637695e-04}, /* L1588 */
-{5.0385971069335938e+00, 1.7394125461578369e-04,
- 1.1920928955078125e-07, -3.4928321838378906e-05,
- 3.6716461181640625e-05}, /* L1589 */
-{6.3993549346923828e+00, 2.2125244140625000e-04,
- 1.1920928955078125e-07, -1.0251998901367188e-05,
- 1.3113021850585938e-06}, /* L1590 */
-{7.2028784751892090e+00, 2.4959444999694824e-04,
- 1.1920928955078125e-07, 9.9897384643554688e-05,
- 7.2598457336425781e-05}, /* L1591 */
-{6.3808298110961914e+00, 2.2146757692098618e-04,
- 1.1920928955078125e-07, 3.6787986755371094e-04,
- -6.9081783294677734e-05}, /* L1592 */
-{8.0772647857666016e+00, 2.8081052005290985e-04,
- 1.1920928955078125e-07, 1.6140937805175781e-04,
- 2.1207332611083984e-04}, /* L1593 */
-{6.4131917953491211e+00, 2.2350251674652100e-04,
- 1.1920928955078125e-07, -1.4680624008178711e-04,
- -4.6044588088989258e-04}, /* L1594 */
-{6.4220824241638184e+00, 2.2399425506591797e-04,
- 1.1920928955078125e-07, 5.4955482482910156e-05,
- -1.9073486328125000e-04}, /* L1595 */
-{6.0896100997924805e+00, 2.1272432059049606e-04,
- 1.1920928955078125e-07, 1.1062622070312500e-04,
- 1.3709068298339844e-05}, /* L1596 */
-{6.5197033882141113e+00, 2.2843480110168457e-04,
- 1.1920928955078125e-07, -3.8433074951171875e-04,
- 2.2113323211669922e-04}, /* L1597 */
-{6.2656197547912598e+00, 2.1961331367492676e-04,
- 1.1920928955078125e-07, 5.9604644775390625e-07,
- 7.3909759521484375e-06}, /* L1598 */
-{5.9526052474975586e+00, 2.0903348922729492e-04,
- 1.1920928955078125e-07, 1.2767314910888672e-04,
- 1.3089179992675781e-04}, /* L1599 */
-{5.3630847930908203e+00, 1.8861889839172363e-04,
- 1.1920928955078125e-07, -3.6954879760742188e-05,
- 3.2186508178710938e-06}, /* L1600 */
-{5.8160314559936523e+00, 2.0493566989898682e-04,
- 1.1920928955078125e-07, 8.9287757873535156e-05,
- -5.2988529205322266e-05}, /* L1601 */
-{5.7849211692810059e+00, 2.0414590835571289e-04,
- 1.1920928955078125e-07, 1.9192695617675781e-05,
- 2.9325485229492188e-05}, /* L1602 */
-{7.3695979118347168e+00, 2.6057288050651550e-04,
- 1.1920928955078125e-07, -8.8214874267578125e-05,
- 1.0168552398681641e-04}, /* L1603 */
-{5.8746728897094727e+00, 2.0802021026611328e-04,
- 1.1920928955078125e-07, 1.2874603271484375e-05,
- 3.9339065551757812e-06}, /* L1604 */
-{7.6387066841125488e+00, 2.7126073837280273e-04,
- 1.1920928955078125e-07, 5.3381919860839844e-04,
- 6.3467025756835938e-04}, /* L1605 */
-{6.6640315055847168e+00, 2.3685395717620850e-04,
- 1.1920928955078125e-07, 1.4805793762207031e-04,
- -1.2105703353881836e-04}, /* L1606 */
-{7.4180846214294434e+00, 2.6440620422363281e-04,
- 1.1920928955078125e-07, 7.5030326843261719e-04,
- 3.3307075500488281e-04}, /* L1607 */
-{6.1843800544738770e+00, 2.2045196965336800e-04,
- 1.1920928955078125e-07, 6.1154365539550781e-05,
- -3.1888484954833984e-05}, /* L1608 */
-{8.0226764678955078e+00, 2.8651952743530273e-04,
- 1.1920928955078125e-07, -3.0696392059326172e-05,
- -1.5497207641601562e-05}, /* L1609 */
-{6.4083571434020996e+00, 2.3349747061729431e-04,
- 1.1920928955078125e-07, 7.7294111251831055e-03,
- 8.8059902191162109e-04}, /* L1610 */
-{6.6084260940551758e+00, 2.3680925369262695e-04,
- 1.1920928955078125e-07, 1.3136863708496094e-04,
- 8.0347061157226562e-05}, /* L1611 */
-{5.6835446357727051e+00, 2.0396709442138672e-04,
- 1.1920928955078125e-07, -3.3855438232421875e-05,
- -1.3530254364013672e-05}, /* L1612 */
-{7.0634860992431641e+00, 2.6224553585052490e-04,
- 1.1920928955078125e-07, 2.8293132781982422e-03,
- -6.3961744308471680e-03}, /* L1613 */
-{8.3286542892456055e+00, 3.0000880360603333e-04,
- 1.1920928955078125e-07, -1.8060207366943359e-04,
- 7.6293945312500000e-06}, /* L1614 */
-{6.0193595886230469e+00, 2.1710991859436035e-04,
- 1.1920928955078125e-07, -7.6889991760253906e-06,
- -2.2649765014648438e-06}, /* L1615 */
-{8.2057666778564453e+00, 2.9712915420532227e-04,
- 1.1920928955078125e-07, -9.3710422515869141e-04,
- 6.3157081604003906e-04}, /* L1616 */
-{7.5656437873840332e+00, 2.7377344667911530e-04,
- 1.1920928955078125e-07, 3.9339065551757812e-05,
- 6.0796737670898438e-05}, /* L1617 */
-{8.0642127990722656e+00, 2.9236078262329102e-04,
- 1.1920928955078125e-07, -5.9366226196289062e-05,
- 7.9870223999023438e-06}, /* L1618 */
-{6.5877547264099121e+00, 2.3916363716125488e-04,
- 1.1920928955078125e-07, 8.4757804870605469e-05,
- 2.3603439331054688e-05}, /* L1619 */
-{6.5712537765502930e+00, 2.3898482322692871e-04,
- 1.1920928955078125e-07, -2.0802021026611328e-05,
- 9.9897384643554688e-05}, /* L1620 */
-{8.6658744812011719e+00, 3.1563639640808105e-04,
- 1.1920928955078125e-07, -6.9141387939453125e-06,
- -4.5359134674072266e-05}, /* L1621 */
-{6.7469592094421387e+00, 2.4625658988952637e-04,
- 1.1920928955078125e-07, 1.2993812561035156e-04,
- 4.3511390686035156e-05}, /* L1622 */
-{7.2914371490478516e+00, 2.6673451066017151e-04,
- 1.1920928955078125e-07, -8.1598758697509766e-04,
- -5.4031610488891602e-04}, /* L1623 */
-{9.4930953979492188e+00, 3.4746527671813965e-04,
- 1.1920928955078125e-07, 1.4543533325195312e-05,
- -4.3272972106933594e-05}, /* L1624 */
-{5.7312974929809570e+00, 2.1012010984122753e-04,
- 1.1920928955078125e-07, -5.6982040405273438e-05,
- 9.1195106506347656e-05}, /* L1625 */
-{5.9745678901672363e+00, 2.1940469741821289e-04,
- 1.1920928955078125e-07, -4.5120716094970703e-05,
- -2.6881694793701172e-05}, /* L1626 */
-{4.7506341934204102e+00, 1.7473101615905762e-04,
- 1.1920928955078125e-07, -5.3107738494873047e-05,
- -2.4914741516113281e-05}, /* L1627 */
-{7.3024945259094238e+00, 2.6917457580566406e-04,
- 1.1920928955078125e-07, 1.3470649719238281e-04,
- -1.7821788787841797e-05}, /* L1628 */
-{7.3836154937744141e+00, 2.7278065681457520e-04,
- 1.1920928955078125e-07, 5.6147575378417969e-05,
- 2.3281574249267578e-04}, /* L1629 */
-{6.6289205551147461e+00, 2.4520978331565857e-04,
- 1.1920928955078125e-07, 2.5522708892822266e-04,
- 3.9613246917724609e-04}, /* L1630 */
-{5.9359660148620605e+00, 2.1988153457641602e-04,
- 1.1920928955078125e-07, -2.9522180557250977e-04,
- -2.6547908782958984e-04}, /* L1631 */
-{6.3866081237792969e+00, 2.7644634246826172e-04,
- 1.1920928955078125e-07, 4.7813892364501953e-02,
- -4.1634857654571533e-02}, /* L1632 */
-{6.7924633026123047e+00, 2.5237351655960083e-04,
- 1.1920928955078125e-07, -2.8592348098754883e-04,
- 1.0669231414794922e-04}, /* L1633 */
-{5.8325419425964355e+00, 2.1696090698242188e-04,
- 1.1920928955078125e-07, -2.2530555725097656e-05,
- -3.9517879486083984e-05}, /* L1634 */
-{8.8326196670532227e+00, 3.2913684844970703e-04,
- 1.1920928955078125e-07, -1.5616416931152344e-05,
- 1.9073486328125000e-06}, /* L1635 */
-{7.7967424392700195e+00, 2.9098987579345703e-04,
- 1.1920928955078125e-07, -3.0457973480224609e-05,
- 6.8068504333496094e-05}, /* L1636 */
-{7.0446209907531738e+00, 2.6366114616394043e-04,
- 1.1920928955078125e-07, 5.5193901062011719e-05,
- -1.2505054473876953e-04}, /* L1637 */
-{5.8722696304321289e+00, 2.1991133689880371e-04,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- 2.4461746215820312e-04}, /* L1638 */
-{6.7226681709289551e+00, 2.5242567062377930e-04,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- -1.6927719116210938e-05}, /* L1639 */
-{7.3555049896240234e+00, 2.7644634246826172e-04,
- 1.1920928955078125e-07, 2.7585029602050781e-04,
- 1.1384487152099609e-04}, /* L1640 */
-{7.1646018028259277e+00, 2.6959180831909180e-04,
- 1.1920928955078125e-07, -1.8101930618286133e-04,
- -4.3749809265136719e-05}, /* L1641 */
-{6.6215577125549316e+00, 2.4950504302978516e-04,
- 1.1920928955078125e-07, 1.6331672668457031e-05,
- 5.8174133300781250e-05}, /* L1642 */
-{5.8195476531982422e+00, 2.1961331367492676e-04,
- 1.1920928955078125e-07, 5.7458877563476562e-05,
- 9.1791152954101562e-05}, /* L1643 */
-{6.3836760520935059e+00, 2.4129450321197510e-04,
- 1.1920928955078125e-07, 2.5033950805664062e-06,
- -2.5093555450439453e-05}, /* L1644 */
-{9.0051755905151367e+00, 3.4102797508239746e-04,
- 1.1920928955078125e-07, -3.5703182220458984e-05,
- -2.2363662719726562e-04}, /* L1645 */
-{6.8281569480895996e+00, 2.5889277458190918e-04,
- 1.1920928955078125e-07, 9.7036361694335938e-05,
- -2.4855136871337891e-05}, /* L1646 */
-{8.8414764404296875e+00, 3.3578276634216309e-04,
- 1.1920928955078125e-07, -1.4364719390869141e-05,
- 1.1956691741943359e-04}, /* L1647 */
-{9.4787073135375977e+00, 3.6081671714782715e-04,
- 1.1920928955078125e-07, -2.1374225616455078e-04,
- -8.2969665527343750e-05}, /* L1648 */
-{7.4477825164794922e+00, 2.8382986783981323e-04,
- 1.1920928955078125e-07, -4.5675039291381836e-04,
- 1.7809867858886719e-04}, /* L1649 */
-{7.4903297424316406e+00, 2.8580427169799805e-04,
- 1.1920928955078125e-07, 2.8610229492187500e-05,
- -8.5353851318359375e-05}, /* L1650 */
-{7.1923398971557617e+00, 2.7483701705932617e-04,
- 1.1920928955078125e-07, -5.8114528656005859e-05,
- -5.0842761993408203e-05}, /* L1651 */
-{9.4947175979614258e+00, 3.6343932151794434e-04,
- 1.1920928955078125e-07, -1.2582540512084961e-04,
- -1.3440847396850586e-04}, /* L1652 */
-{5.4654045104980469e+00, 2.0959973335266113e-04,
- 1.1920928955078125e-07, -1.1622905731201172e-05,
- -1.9204616546630859e-04}, /* L1653 */
-{7.8130364418029785e+00, 2.9996037483215332e-04,
- 1.1920928955078125e-07, 1.4662742614746094e-05,
- 0.0000000000000000e+00}, /* L1654 */
-{8.8489961624145508e+00, 3.4028291702270508e-04,
- 1.1920928955078125e-07, -2.6226043701171875e-06,
- -2.9146671295166016e-05}, /* L1655 */
-{6.8574461936950684e+00, 2.6428699493408203e-04,
- 1.1920928955078125e-07, -1.2308359146118164e-04,
- -1.9216537475585938e-04}, /* L1656 */
-{7.4716701507568359e+00, 2.8818845748901367e-04,
- 1.1920928955078125e-07, 7.0571899414062500e-05,
- -8.6009502410888672e-05}, /* L1657 */
-{6.2409458160400391e+00, 2.4127960205078125e-04,
- 1.1920928955078125e-07, -4.3451786041259766e-05,
- -4.4167041778564453e-05}, /* L1658 */
-{5.7782907485961914e+00, 2.2360682487487793e-04,
- 1.1920928955078125e-07, -2.9188394546508789e-04,
- -1.1426210403442383e-04}, /* L1659 */
-{7.1288127899169922e+00, 2.7626752853393555e-04,
- 1.1920928955078125e-07, -5.8948993682861328e-05,
- -1.5914440155029297e-04}, /* L1660 */
-{7.3286099433898926e+00, 2.8458237648010254e-04,
- 1.1920928955078125e-07, -1.0550022125244141e-04,
- 2.7155876159667969e-04}, /* L1661 */
-{8.6960897445678711e+00, 3.3807754516601562e-04,
- 1.1920928955078125e-07, -2.8473138809204102e-04,
- -5.3167343139648438e-05}, /* L1662 */
-{8.4404230117797852e+00, 3.2868376001715660e-04,
- 1.1920928955078125e-07, 1.7619132995605469e-04,
- 1.0645389556884766e-04}, /* L1663 */
-{7.0070075988769531e+00, 2.7343630790710449e-04,
- 1.1920928955078125e-07, -2.8640031814575195e-04,
- -3.0982494354248047e-04}, /* L1664 */
-{7.1653118133544922e+00, 2.8052553534507751e-04,
- 1.1920928955078125e-07, 6.7937374114990234e-04,
- 3.9863586425781250e-04}, /* L1665 */
-{5.4770722389221191e+00, 2.1421909332275391e-04,
- 1.1920928955078125e-07, 1.8715858459472656e-05,
- -6.4015388488769531e-05}, /* L1666 */
-{6.1754908561706543e+00, 2.4187564849853516e-04,
- 1.1920928955078125e-07, -1.0854005813598633e-04,
- 1.5854835510253906e-05}, /* L1667 */
-{8.1684961318969727e+00, 3.2046437263488770e-04,
- 1.1920928955078125e-07, -3.6835670471191406e-05,
- 3.3617019653320312e-05}, /* L1668 */
-{7.9395952224731445e+00, 3.1191110610961914e-04,
- 1.1920928955078125e-07, -6.3598155975341797e-05,
- -5.2452087402343750e-06}, /* L1669 */
-{7.2965555191040039e+00, 2.8708763420581818e-04,
- 1.1920928955078125e-07, 8.9526176452636719e-05,
- -9.6619129180908203e-05}, /* L1670 */
-{6.1464676856994629e+00, 2.4226307868957520e-04,
- 1.1920928955078125e-07, -5.8472156524658203e-05,
- -6.0796737670898438e-06}, /* L1671 */
-{6.9402055740356445e+00, 2.7392804622650146e-04,
- 1.1920928955078125e-07, -1.2093782424926758e-04,
- -4.6730041503906250e-05}, /* L1672 */
-{7.8485608100891113e+00, 3.1125545501708984e-04,
- 1.1920928955078125e-07, 1.1475086212158203e-03,
- 1.1372566223144531e-03}, /* L1673 */
-{8.3945627212524414e+00, 3.3235549926757812e-04,
- 1.1920928955078125e-07, 7.0691108703613281e-05,
- 5.4121017456054688e-05}, /* L1674 */
-{9.3921451568603516e+00, 3.7246942520141602e-04,
- 1.1920928955078125e-07, 2.6106834411621094e-05,
- -4.9412250518798828e-05}, /* L1675 */
-{6.4424710273742676e+00, 2.5579333305358887e-04,
- 1.1920928955078125e-07, -9.2983245849609375e-06,
- -9.1791152954101562e-05}, /* L1676 */
-{6.0105714797973633e+00, 2.3901462554931641e-04,
- 1.1920928955078125e-07, 7.7009201049804688e-05,
- 4.6133995056152344e-05}, /* L1677 */
-{1.0094603538513184e+01, 4.0227174758911133e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- -2.5600194931030273e-04}, /* L1678 */
-{7.4718470573425293e+00, 2.9796361923217773e-04,
- 1.1920928955078125e-07, 4.2915344238281250e-06,
- 8.5830688476562500e-06}, /* L1679 */
-{7.1870899200439453e+00, 2.8711557388305664e-04,
- 1.1920928955078125e-07, 1.5366077423095703e-04,
- 1.6105175018310547e-04}, /* L1680 */
-{8.6702060699462891e+00, 3.5549700260162354e-04,
- 1.1920928955078125e-07, 4.1091442108154297e-04,
- -4.9638748168945312e-03}, /* L1681 */
-{9.6852750778198242e+00, 3.8848072290420532e-04,
- 1.1920928955078125e-07, -3.4344196319580078e-04,
- -5.3715705871582031e-04}, /* L1682 */
-{8.0611362457275391e+00, 3.2350420951843262e-04,
- 1.1920928955078125e-07, 1.0108947753906250e-04,
- 6.6518783569335938e-05}, /* L1683 */
-{8.0878114700317383e+00, 3.2500922679901123e-04,
- 1.1920928955078125e-07, -9.2327594757080078e-05,
- 3.4332275390625000e-05}, /* L1684 */
-{6.6700811386108398e+00, 2.6844441890716553e-04,
- 1.1920928955078125e-07, -6.6220760345458984e-05,
- -1.1324882507324219e-06}, /* L1685 */
-{8.7757596969604492e+00, 3.5375356674194336e-04,
- 1.1920928955078125e-07, -8.9049339294433594e-05,
- 2.2053718566894531e-05}, /* L1686 */
-{7.8898215293884277e+00, 3.1843781471252441e-04,
- 1.1920928955078125e-07, 5.6147575378417969e-05,
- -3.8206577301025391e-05}, /* L1687 */
-{7.8435001373291016e+00, 3.1750649213790894e-04,
- 1.1920928955078125e-07, -4.9018859863281250e-04,
- 2.4139881134033203e-04}, /* L1688 */
-{6.8878722190856934e+00, 2.7962028980255127e-04,
- 1.1920928955078125e-07, 5.3644180297851562e-04,
- 9.1743469238281250e-04}, /* L1689 */
-{8.0054874420166016e+00, 3.2514333724975586e-04,
- 1.1920928955078125e-07, -3.1340122222900391e-04,
- -2.7525424957275391e-04}, /* L1690 */
-{6.1898012161254883e+00, 2.5136768817901611e-04,
- 1.1920928955078125e-07, -2.5087594985961914e-04,
- 6.8426132202148438e-05}, /* L1691 */
-{8.3880691528320312e+00, 3.4102052450180054e-04,
- 1.1920928955078125e-07, 6.9260597229003906e-05,
- 5.9247016906738281e-05}, /* L1692 */
-{7.6392235755920410e+00, 3.1103193759918213e-04,
- 1.1920928955078125e-07, 8.7022781372070312e-06,
- 4.0531158447265625e-06}, /* L1693 */
-{5.9234805107116699e+00, 2.4158135056495667e-04,
- 1.1920928955078125e-07, 7.2479248046875000e-05,
- -1.3524293899536133e-04}, /* L1694 */
-{7.1599431037902832e+00, 2.9253959655761719e-04,
- 1.1920928955078125e-07, 2.6094913482666016e-04,
- -5.3107738494873047e-05}, /* L1695 */
-{6.9457530975341797e+00, 2.8434395790100098e-04,
- 1.1920928955078125e-07, -3.8725137710571289e-04,
- 4.7433376312255859e-04}, /* L1696 */
-{7.5628337860107422e+00, 3.0997209250926971e-04,
- 1.1920928955078125e-07, 3.4880638122558594e-04,
- -1.6421079635620117e-04}, /* L1697 */
-{8.9344701766967773e+00, 3.6644935607910156e-04,
- 1.1920928955078125e-07, -2.6404857635498047e-05,
- 3.8146972656250000e-05}, /* L1698 */
-{8.3928050994873047e+00, 3.4471787512302399e-04,
- 1.1920928955078125e-07, 8.5592269897460938e-05,
- 2.8729438781738281e-05}, /* L1699 */
-{7.4448008537292480e+00, 3.0811131000518799e-04,
- 1.1920928955078125e-07, 4.2700767517089844e-03,
- 1.3093948364257812e-03}, /* L1700 */
-{7.5336132049560547e+00, 3.1045079231262207e-04,
- 1.1920928955078125e-07, -3.9225816726684570e-04,
- -1.7702579498291016e-04}, /* L1701 */
-{8.3356781005859375e+00, 3.4401565790176392e-04,
- 1.1920928955078125e-07, -9.5546245574951172e-05,
- 1.1432170867919922e-04}, /* L1702 */
-{7.3213653564453125e+00, 3.0249357223510742e-04,
- 1.1920928955078125e-07, 7.4625015258789062e-05,
- 3.0994415283203125e-06}, /* L1703 */
-{8.3764381408691406e+00, 3.4719705581665039e-04,
- 1.1920928955078125e-07, 1.1534690856933594e-03,
- 7.1549415588378906e-04}, /* L1704 */
-{8.1920614242553711e+00, 3.3940374851226807e-04,
- 1.1920928955078125e-07, -3.0159950256347656e-05,
- 7.0929527282714844e-05}, /* L1705 */
-{6.5224223136901855e+00, 2.7072429656982422e-04,
- 1.1920928955078125e-07, 5.2893161773681641e-04,
- -6.4909458160400391e-05}, /* L1706 */
-{7.5301632881164551e+00, 3.1288713216781616e-04,
- 1.1920928955078125e-07, -1.6272068023681641e-05,
- -6.8664550781250000e-05}, /* L1707 */
-{6.9484806060791016e+00, 2.8948485851287842e-04,
- 1.1920928955078125e-07, 4.6479701995849609e-04,
- 7.6484680175781250e-04}, /* L1708 */
-{8.4858427047729492e+00, 3.5366415977478027e-04,
- 1.1920928955078125e-07, 1.1384487152099609e-04,
- 5.6028366088867188e-05}, /* L1709 */
-{8.1798229217529297e+00, 3.4136325120925903e-04,
- 1.1920928955078125e-07, -3.2961368560791016e-05,
- -1.5985965728759766e-04}, /* L1710 */
-{8.0417051315307617e+00, 3.3633410930633545e-04,
- 1.1920928955078125e-07, 3.1614303588867188e-04,
- 2.0956993103027344e-04}, /* L1711 */
-{6.3120932579040527e+00, 2.6422739028930664e-04,
- 1.1920928955078125e-07, 2.5510787963867188e-05,
- 2.5308132171630859e-04}, /* L1712 */
-{7.5596413612365723e+00, 3.1697191298007965e-04,
- 1.1920928955078125e-07, -1.7523765563964844e-05,
- 2.9826164245605469e-04}, /* L1713 */
-{8.9704370498657227e+00, 3.7647783756256104e-04,
- 1.1920928955078125e-07, 2.9087066650390625e-05,
- -4.6610832214355469e-05}, /* L1714 */
-{7.8447594642639160e+00, 3.2970309257507324e-04,
- 1.1920928955078125e-07, -1.6093254089355469e-05,
- 6.9141387939453125e-05}, /* L1715 */
-{8.7568292617797852e+00, 3.6856532096862793e-04,
- 1.1920928955078125e-07, -7.0333480834960938e-06,
- 5.1736831665039062e-05}, /* L1716 */
-{7.1848812103271484e+00, 3.0285865068435669e-04,
- 1.1920928955078125e-07, -9.7155570983886719e-06,
- -1.5765428543090820e-04}, /* L1717 */
-{6.2608566284179688e+00, 2.6431679725646973e-04,
- 1.1920928955078125e-07, -5.8889389038085938e-05,
- 1.3959407806396484e-04}, /* L1718 */
-{7.1052174568176270e+00, 3.0028820037841797e-04,
- 1.1920928955078125e-07, -6.5267086029052734e-05,
- 3.0994415283203125e-06}, /* L1719 */
-{8.1239242553710938e+00, 3.4400448203086853e-04,
- 1.1920928955078125e-07, -1.6486644744873047e-04,
- -2.2834539413452148e-04}, /* L1720 */
-{7.3886308670043945e+00, 3.1322240829467773e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- 1.8274784088134766e-04}, /* L1721 */
-{6.5135970115661621e+00, 2.7655065059661865e-04,
- 1.1920928955078125e-07, -1.0621547698974609e-04,
- 1.3160705566406250e-04}, /* L1722 */
-{7.9292917251586914e+00, 3.3712387084960938e-04,
- 1.1920928955078125e-07, -6.6161155700683594e-05,
- 1.1408329010009766e-04}, /* L1723 */
-{6.8155994415283203e+00, 2.9048323631286621e-04,
- 1.1920928955078125e-07, -1.8739700317382812e-04,
- 3.0899047851562500e-04}, /* L1724 */
-{1.2214772224426270e+01, 5.2075088024139404e-04,
- 1.1920928955078125e-07, 1.6331672668457031e-05,
- 1.2993812561035156e-05}, /* L1725 */
-{8.2308912277221680e+00, 3.5136938095092773e-04,
- 1.1920928955078125e-07, -9.0539455413818359e-05,
- -5.1736831665039062e-05}, /* L1726 */
-{7.8772892951965332e+00, 3.3681560307741165e-04,
- 1.1920928955078125e-07, 7.2717666625976562e-05,
- 1.1563301086425781e-05}, /* L1727 */
-{7.1280322074890137e+00, 3.0514597892761230e-04,
- 1.1920928955078125e-07, 9.5725059509277344e-05,
- -7.9214572906494141e-05}, /* L1728 */
-{6.7140235900878906e+00, 2.8777122497558594e-04,
- 1.1920928955078125e-07, -2.1398067474365234e-05,
- 2.8729438781738281e-05}, /* L1729 */
-{9.4931888580322266e+00, 4.0748715400695801e-04,
- 1.1920928955078125e-07, -3.7074089050292969e-05,
- -2.0051002502441406e-04}, /* L1730 */
-{8.0390768051147461e+00, 3.4582614898681641e-04,
- 1.1920928955078125e-07, 2.6059150695800781e-04,
- 1.9061565399169922e-04}, /* L1731 */
-{8.4637918472290039e+00, 3.6428309977054596e-04,
- 1.1920928955078125e-07, 4.8875808715820312e-06,
- -6.5565109252929688e-06}, /* L1732 */
-{6.7536096572875977e+00, 2.9107183218002319e-04,
- 1.1920928955078125e-07, 2.0742416381835938e-05,
- 2.9325485229492188e-05}, /* L1733 */
-{7.7602891921997070e+00, 3.3496320247650146e-04,
- 1.1920928955078125e-07, -4.4286251068115234e-05,
- -1.0490417480468750e-04}, /* L1734 */
-{8.2205200195312500e+00, 3.5539269447326660e-04,
- 1.1920928955078125e-07, 4.4465065002441406e-05,
- -1.1539459228515625e-04}, /* L1735 */
-{9.7931032180786133e+00, 4.2398273944854736e-04,
- 1.1920928955078125e-07, -1.1318922042846680e-04,
- -7.0571899414062500e-05}, /* L1736 */
-{9.1870574951171875e+00, 3.9863586425781250e-04,
- 1.1920928955078125e-07, 1.8012523651123047e-04,
- -4.4214725494384766e-04}, /* L1737 */
-{6.1563978195190430e+00, 2.6717782020568848e-04,
- 1.1920928955078125e-07, -3.3855438232421875e-05,
- 3.3855438232421875e-05}, /* L1738 */
-{6.8462176322937012e+00, 2.9757618904113770e-04,
- 1.1920928955078125e-07, -1.4549493789672852e-04,
- 6.2823295593261719e-05}, /* L1739 */
-{1.1501506805419922e+01, 5.0055235624313354e-04,
- 1.1920928955078125e-07, -3.1471252441406250e-05,
- -6.5267086029052734e-05}, /* L1740 */
-{8.1276788711547852e+00, 3.5434588789939880e-04,
- 1.1920928955078125e-07, -2.8783082962036133e-04,
- 2.7835369110107422e-04}, /* L1741 */
-{8.9012432098388672e+00, 3.8963556289672852e-04,
- 1.1920928955078125e-07, 6.5410137176513672e-04,
- 2.0003318786621094e-04}, /* L1742 */
-{8.9505472183227539e+00, 3.9109587669372559e-04,
- 1.1920928955078125e-07, -9.0599060058593750e-06,
- -3.4928321838378906e-05}, /* L1743 */
-{6.8560595512390137e+00, 3.0006840825080872e-04,
- 1.1920928955078125e-07, 4.6968460083007812e-05,
- -1.9645690917968750e-04}, /* L1744 */
-{7.6387114524841309e+00, 3.3494830131530762e-04,
- 1.1920928955078125e-07, 1.8584728240966797e-04,
- 2.1016597747802734e-04}, /* L1745 */
-{1.3856999397277832e+01, 6.0841441154479980e-04,
- 1.1920928955078125e-07, 1.8370151519775391e-04,
- -1.0305643081665039e-04}, /* L1746 */
-{9.5806503295898438e+00, 4.2113661766052246e-04,
- 1.1920928955078125e-07, 1.6701221466064453e-04,
- -2.7120113372802734e-05}, /* L1747 */
-{9.3762521743774414e+00, 4.1258335113525391e-04,
- 1.1920928955078125e-07, 9.2983245849609375e-06,
- -2.7179718017578125e-05}, /* L1748 */
-{7.1638541221618652e+00, 3.1572580337524414e-04,
- 1.1920928955078125e-07, 9.1433525085449219e-05,
- 6.5803527832031250e-05}, /* L1749 */
-{1.0060608863830566e+01, 4.4420361518859863e-04,
- 1.1920928955078125e-07, 9.4652175903320312e-05,
- 2.0051002502441406e-04}, /* L1750 */
-{1.0392632484436035e+01, 4.5907497406005859e-04,
- 1.1920928955078125e-07, -6.9022178649902344e-05,
- -3.6299228668212891e-05}, /* L1751 */
-{1.0086337089538574e+01, 4.4629722833633423e-04,
- 1.1920928955078125e-07, -1.9544363021850586e-04,
- 2.3961067199707031e-05}, /* L1752 */
-{6.8485445976257324e+00, 3.0413269996643066e-04,
- 1.1920928955078125e-07, 3.1352043151855469e-04,
- -1.0773539543151855e-03}, /* L1753 */
-{7.3182778358459473e+00, 3.2487511634826660e-04,
- 1.1920928955078125e-07, 1.4674663543701172e-04,
- 3.5083293914794922e-04}, /* L1754 */
-{1.1382732391357422e+01, 5.0559639930725098e-04,
- 1.1920928955078125e-07, 1.1527538299560547e-04,
- -1.7821788787841797e-05}, /* L1755 */
-{1.1784219741821289e+01, 5.2417814731597900e-04,
- 1.1920928955078125e-07, -2.4318695068359375e-05,
- 1.4448165893554688e-04}, /* L1756 */
-{1.0092412948608398e+01, 4.4946372509002686e-04,
- 1.1920928955078125e-07, -3.5822391510009766e-05,
- -1.7285346984863281e-06}, /* L1757 */
-{8.1610031127929688e+00, 3.6394596099853516e-04,
- 1.1920928955078125e-07, -3.4093856811523438e-05,
- -9.8705291748046875e-05}, /* L1758 */
-{7.2934813499450684e+00, 3.2569468021392822e-04,
- 1.1920928955078125e-07, -2.9087066650390625e-05,
- 4.2796134948730469e-05}, /* L1759 */
-{8.9696063995361328e+00, 4.0209293365478516e-04,
- 1.1920928955078125e-07, 3.5285949707031250e-05,
- 6.9642066955566406e-04}, /* L1760 */
-{7.7596564292907715e+00, 3.4902349580079317e-04,
- 1.1920928955078125e-07, -3.0612945556640625e-04,
- 1.8527507781982422e-03}, /* L1761 */
-{7.5170044898986816e+00, 3.3697485923767090e-04,
- 1.1920928955078125e-07, -5.7280063629150391e-05,
- 3.1471252441406250e-05}, /* L1762 */
-{7.3801550865173340e+00, 3.3152103424072266e-04,
- 1.1920928955078125e-07, 3.1113624572753906e-04,
- -3.6716461181640625e-05}, /* L1763 */
-{7.7326264381408691e+00, 3.4764409065246582e-04,
- 1.1920928955078125e-07, -1.4668703079223633e-04,
- 1.5175342559814453e-04}, /* L1764 */
-{9.9847259521484375e+00, 4.4937431812286377e-04,
- 1.1920928955078125e-07, 5.2332878112792969e-05,
- 2.6941299438476562e-05}, /* L1765 */
-{7.6198606491088867e+00, 3.4343823790550232e-04,
- 1.1920928955078125e-07, -4.8339366912841797e-05,
- 6.9141387939453125e-05}, /* L1766 */
-{9.3424644470214844e+00, 4.2179226875305176e-04,
- 1.1920928955078125e-07, 9.6797943115234375e-05,
- 8.2492828369140625e-05}, /* L1767 */
-{1.0122292518615723e+01, 4.5834481716156006e-04,
- 1.1920928955078125e-07, 1.8191337585449219e-04,
- 3.9446353912353516e-04}, /* L1768 */
-{7.8261585235595703e+00, 3.5451352596282959e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- -3.4487247467041016e-04}, /* L1769 */
-{6.3397402763366699e+00, 2.8729438781738281e-04,
- 1.1920928955078125e-07, 6.1154365539550781e-05,
- -7.3611736297607422e-05}, /* L1770 */
-{8.0116338729858398e+00, 3.6415457725524902e-04,
- 1.1920928955078125e-07, 2.9325485229492188e-05,
- -2.3478269577026367e-04}, /* L1771 */
-{6.4598374366760254e+00, 2.9349327087402344e-04,
- 1.1920928955078125e-07, -5.3763389587402344e-05,
- 1.1920928955078125e-06}, /* L1772 */
-{7.8836803436279297e+00, 3.5864114761352539e-04,
- 1.1920928955078125e-07, 1.6093254089355469e-05,
- 2.2649765014648438e-06}, /* L1773 */
-{7.3308377265930176e+00, 3.3399462699890137e-04,
- 1.1920928955078125e-07, 9.0599060058593750e-06,
- -5.1498413085937500e-05}, /* L1774 */
-{8.9430446624755859e+00, 4.0802359580993652e-04,
- 1.1920928955078125e-07, -2.8252601623535156e-05,
- 7.9989433288574219e-05}, /* L1775 */
-{7.7559614181518555e+00, 3.5418570041656494e-04,
- 1.1920928955078125e-07, -6.0677528381347656e-05,
- 1.2338161468505859e-04}, /* L1776 */
-{8.5532112121582031e+00, 3.9142370223999023e-04,
- 1.1920928955078125e-07, 3.3950805664062500e-04,
- 2.3829936981201172e-04}, /* L1777 */
-{8.1330900192260742e+00, 3.7238001823425293e-04,
- 1.1920928955078125e-07, 8.1658363342285156e-05,
- -4.2259693145751953e-05}, /* L1778 */
-{7.8867855072021484e+00, 3.6156177520751953e-04,
- 1.1920928955078125e-07, 5.8531761169433594e-05,
- -3.3974647521972656e-05}, /* L1779 */
-{9.2829980850219727e+00, 4.2662024497985840e-04,
- 1.1920928955078125e-07, -7.8797340393066406e-05,
- -2.9522180557250977e-04}, /* L1780 */
-{7.8920426368713379e+00, 3.6305189132690430e-04,
- 1.1920928955078125e-07, -2.1296739578247070e-04,
- 2.3496150970458984e-04}, /* L1781 */
-{5.2652087211608887e+00, 2.4230778217315674e-04,
- 1.1920928955078125e-07, -1.9311904907226562e-05,
- 8.9406967163085938e-06}, /* L1782 */
-{6.5016040802001953e+00, 2.9963254928588867e-04,
- 1.1920928955078125e-07, 1.9443035125732422e-04,
- -1.8566846847534180e-04}, /* L1783 */
-{9.1465921401977539e+00, 4.2220950126647949e-04,
- 1.1920928955078125e-07, -2.5057792663574219e-04,
- 8.3446502685546875e-05}, /* L1784 */
-{7.5987195968627930e+00, 3.5110116004943848e-04,
- 1.1920928955078125e-07, -7.4267387390136719e-05,
- -1.7285346984863281e-05}, /* L1785 */
-{1.1630291938781738e+01, 5.3809583187103271e-04,
- 1.1920928955078125e-07, 2.2125244140625000e-04,
- -6.9677829742431641e-05}, /* L1786 */
-{7.4712214469909668e+00, 3.4604966640472412e-04,
- 1.1920928955078125e-07, -1.1742115020751953e-05,
- -1.1265277862548828e-05}, /* L1787 */
-{9.6669740676879883e+00, 4.4859945774078369e-04,
- 1.1920928955078125e-07, 1.4150142669677734e-04,
- -5.3405761718750000e-05}, /* L1788 */
-{8.1722412109375000e+00, 3.7953257560729980e-04,
- 1.1920928955078125e-07, -3.0994415283203125e-06,
- -8.7618827819824219e-05}, /* L1789 */
-{8.9006671905517578e+00, 4.1392445564270020e-04,
- 1.1920928955078125e-07, -1.6689300537109375e-05,
- -4.3511390686035156e-06}, /* L1790 */
-{7.6381330490112305e+00, 3.5577919334173203e-04,
- 1.1920928955078125e-07, 2.3305416107177734e-04,
- 3.1912326812744141e-04}, /* L1791 */
-{8.4448270797729492e+00, 3.9374083280563354e-04,
- 1.1920928955078125e-07, 1.0299682617187500e-04,
- -8.8632106781005859e-05}, /* L1792 */
-{6.0394244194030762e+00, 2.8195232152938843e-04,
- 1.1920928955078125e-07, -6.4432621002197266e-05,
- -2.7418136596679688e-05}, /* L1793 */
-{8.4957714080810547e+00, 3.9707217365503311e-04,
- 1.1920928955078125e-07, 6.4015388488769531e-05,
- -4.6670436859130859e-05}, /* L1794 */
-{8.2524023056030273e+00, 3.8620829582214355e-04,
- 1.1920928955078125e-07, 4.1007995605468750e-05,
- -2.1517276763916016e-05}, /* L1795 */
-{8.9413251876831055e+00, 4.1896104812622070e-04,
- 1.1920928955078125e-07, -2.0027160644531250e-05,
- -2.0265579223632812e-06}, /* L1796 */
-{7.5875697135925293e+00, 3.5599619150161743e-04,
- 1.1920928955078125e-07, -3.0398368835449219e-06,
- 2.2053718566894531e-05}, /* L1797 */
-{9.3489646911621094e+00, 4.3928623199462891e-04,
- 1.1920928955078125e-07, 7.7486038208007812e-06,
- 5.7220458984375000e-05}, /* L1798 */
-{9.4379720687866211e+00, 4.4991075992584229e-04,
- 1.1920928955078125e-07, -1.2984871864318848e-03,
- 4.7528743743896484e-04}, /* L1799 */
-{8.9030637741088867e+00, 4.1933357715606689e-04,
- 1.1920928955078125e-07, 4.7206878662109375e-05,
- 5.2809715270996094e-05}, /* L1800 */
-{9.6848850250244141e+00, 4.5676529407501221e-04,
- 1.1920928955078125e-07, 1.4591217041015625e-04,
- -3.2186508178710938e-06}, /* L1801 */
-{8.3598384857177734e+00, 3.9549171924591064e-04,
- 1.1920928955078125e-07, 4.7934055328369141e-04,
- -3.0088424682617188e-04}, /* L1802 */
-{8.4960269927978516e+00, 4.0179770439863205e-04,
- 1.1920928955078125e-07, -1.6629695892333984e-05,
- 1.5556812286376953e-04}, /* L1803 */
-{9.2985544204711914e+00, 4.4021688518114388e-04,
- 1.1920928955078125e-07, 1.9252300262451172e-04,
- -2.1517276763916016e-04}, /* L1804 */
-{9.7057590484619141e+00, 4.6023726463317871e-04,
- 1.1920928955078125e-07, 2.8359889984130859e-04,
- -3.3080577850341797e-04}, /* L1805 */
-{7.9213466644287109e+00, 3.7634372711181641e-04,
- 1.1920928955078125e-07, -8.3565711975097656e-05,
- 1.5676021575927734e-04}, /* L1806 */
-{9.6130933761596680e+00, 4.5680999755859375e-04,
- 1.1920928955078125e-07, 5.4717063903808594e-05,
- -3.5881996154785156e-05}, /* L1807 */
-{7.3325204849243164e+00, 3.4882128238677979e-04,
- 1.1920928955078125e-07, -6.3180923461914062e-05,
- 9.5367431640625000e-07}, /* L1808 */
-{1.3709208488464355e+01, 6.5575912594795227e-04,
- 1.1920928955078125e-07, -1.9404292106628418e-03,
- 2.8967857360839844e-05}, /* L1809 */
-{8.5193071365356445e+00, 4.0632486343383789e-04,
- 1.1920928955078125e-07, 1.9073486328125000e-04,
- 2.9683113098144531e-05}, /* L1810 */
-{9.9353561401367188e+00, 4.7567486763000488e-04,
- 1.1920928955078125e-07, -6.5171718597412109e-04,
- 5.9115886688232422e-04}, /* L1811 */
-{8.1408920288085938e+00, 3.8932263851165771e-04,
- 1.1920928955078125e-07, 8.8214874267578125e-05,
- -2.1833181381225586e-04}, /* L1812 */
-{8.4855289459228516e+00, 4.0661357343196869e-04,
- 1.1920928955078125e-07, 3.1280517578125000e-04,
- 3.6406517028808594e-04}, /* L1813 */
-{9.4413423538208008e+00, 4.5257806777954102e-04,
- 1.1920928955078125e-07, 7.8797340393066406e-05,
- -1.3589859008789062e-05}, /* L1814 */
-{8.0692148208618164e+00, 3.8731098175048828e-04,
- 1.1920928955078125e-07, -6.3240528106689453e-05,
- -1.4781951904296875e-05}, /* L1815 */
-{1.0032471656799316e+01, 4.8217177391052246e-04,
- 1.1920928955078125e-07, 7.5101852416992188e-05,
- 7.8201293945312500e-05}, /* L1816 */
-{1.0497788429260254e+01, 5.0520896911621094e-04,
- 1.1920928955078125e-07, 2.0062923431396484e-04,
- -1.1920928955078125e-07}, /* L1817 */
-{8.5386505126953125e+00, 4.1130185127258301e-04,
- 1.1920928955078125e-07, -4.8279762268066406e-05,
- 5.9723854064941406e-05}, /* L1818 */
-{6.9657130241394043e+00, 3.3596158027648926e-04,
- 1.1920928955078125e-07, -5.9485435485839844e-05,
- 8.4638595581054688e-06}, /* L1819 */
-{6.6829357147216797e+00, 3.2269954681396484e-04,
- 1.1920928955078125e-07, 2.9563903808593750e-05,
- 2.8610229492187500e-05}, /* L1820 */
-{9.6015148162841797e+00, 4.6496093273162842e-04,
- 1.1920928955078125e-07, -1.8113851547241211e-04,
- -1.8864870071411133e-04}, /* L1821 */
-{7.5750684738159180e+00, 3.6722421646118164e-04,
- 1.1920928955078125e-07, 1.2636184692382812e-04,
- -3.3521652221679688e-04}, /* L1822 */
-{8.1503810882568359e+00, 3.9502978324890137e-04,
- 1.1920928955078125e-07, 2.3245811462402344e-05,
- 1.1205673217773438e-05}, /* L1823 */
-{9.1790513992309570e+00, 4.4545531272888184e-04,
- 1.1920928955078125e-07, 1.5497207641601562e-05,
- -2.4437904357910156e-05}, /* L1824 */
-{1.0218440055847168e+01, 4.9647688865661621e-04,
- 1.1920928955078125e-07, -1.0848045349121094e-05,
- -1.1682510375976562e-05}, /* L1825 */
-{1.0018550872802734e+01, 4.8764050006866455e-04,
- 1.1920928955078125e-07, 3.7276744842529297e-04,
- -2.6851892471313477e-04}, /* L1826 */
-{1.1475614547729492e+01, 5.5900216102600098e-04,
- 1.1920928955078125e-07, -1.0490417480468750e-05,
- 8.7022781372070312e-06}, /* L1827 */
-{7.5149459838867188e+00, 3.6661699414253235e-04,
- 1.1920928955078125e-07, 2.0074844360351562e-04,
- -1.8823146820068359e-04}, /* L1828 */
-{8.7518529891967773e+00, 4.2748451232910156e-04,
- 1.1920928955078125e-07, -1.0424852371215820e-04,
- -5.0067901611328125e-05}, /* L1829 */
-{9.5794782638549805e+00, 4.6828389167785645e-04,
- 1.1920928955078125e-07, 6.3180923461914062e-06,
- 1.1920928955078125e-05}, /* L1830 */
-{7.7948117256164551e+00, 3.8161873817443848e-04,
- 1.1920928955078125e-07, 5.9127807617187500e-05,
- -2.4259090423583984e-05}, /* L1831 */
-{6.8610491752624512e+00, 3.3641606569290161e-04,
- 1.1920928955078125e-07, -2.8663873672485352e-04,
- -2.2703409194946289e-04}, /* L1832 */
-{1.1438397407531738e+01, 5.6164711713790894e-04,
- 1.1920928955078125e-07, -5.7816505432128906e-04,
- -3.6299228668212891e-04}, /* L1833 */
-{9.0859918594360352e+00, 4.4649466872215271e-04,
- 1.1920928955078125e-07, -2.4306774139404297e-04,
- 2.6357173919677734e-04}, /* L1834 */
-{9.2801256179809570e+00, 4.5673549175262451e-04,
- 1.1920928955078125e-07, 2.9206275939941406e-05,
- -2.4962425231933594e-04}, /* L1835 */
-{7.4274253845214844e+00, 3.6585330963134766e-04,
- 1.1920928955078125e-07, 3.7789344787597656e-05,
- -1.9091367721557617e-04}, /* L1836 */
-{1.1450325012207031e+01, 5.6454539299011230e-04,
- 1.1920928955078125e-07, -3.2007694244384766e-05,
- 6.1988830566406250e-06}, /* L1837 */
-{8.5475053787231445e+00, 4.2253732681274414e-04,
- 1.1920928955078125e-07, 3.9100646972656250e-04,
- 2.8538703918457031e-04}, /* L1838 */
-{7.4893050193786621e+00, 3.7036836147308350e-04,
- 1.1920928955078125e-07, -3.2490491867065430e-04,
- 4.2247772216796875e-04}, /* L1839 */
-{1.1874397277832031e+01, 5.8771669864654541e-04,
- 1.1920928955078125e-07, 1.9013881683349609e-04,
- 1.1134147644042969e-04}, /* L1840 */
-{9.4951753616333008e+00, 4.7510862350463867e-04,
- 1.1920928955078125e-07, -4.7467350959777832e-03,
- -3.1897425651550293e-03}, /* L1841 */
-{6.9518699645996094e+00, 3.4487247467041016e-04,
- 1.1920928955078125e-07, -1.4883279800415039e-04,
- 7.2121620178222656e-05}, /* L1842 */
-{7.0681729316711426e+00, 3.5104155540466309e-04,
- 1.1920928955078125e-07, 2.0813941955566406e-04,
- 1.1444091796875000e-05}, /* L1843 */
-{1.0756000518798828e+01, 5.3673237562179565e-04,
- 1.1920928955078125e-07, 1.0007619857788086e-03,
- -1.9377470016479492e-03}, /* L1844 */
-{8.8895196914672852e+00, 4.4274330139160156e-04,
- 1.1920928955078125e-07, 2.7668476104736328e-04,
- -1.0246038436889648e-04}, /* L1845 */
-{7.7958626747131348e+00, 3.8865208625793457e-04,
- 1.1920928955078125e-07, 2.7418136596679688e-06,
- 1.0967254638671875e-05}, /* L1846 */
-{7.6057376861572266e+00, 3.7956237792968750e-04,
- 1.1920928955078125e-07, 9.7751617431640625e-05,
- 3.9935111999511719e-05}, /* L1847 */
-{6.5784082412719727e+00, 3.2880157232284546e-04,
- 1.1920928955078125e-07, 1.9431114196777344e-05,
- -3.0541419982910156e-04}, /* L1848 */
-{8.9543466567993164e+00, 4.4825673103332520e-04,
- 1.1920928955078125e-07, 2.4735927581787109e-04,
- -2.1570920944213867e-04}, /* L1849 */
-{9.0601425170898438e+00, 4.5377761125564575e-04,
- 1.1920928955078125e-07, 2.7298927307128906e-05,
- -8.4877014160156250e-05}, /* L1850 */
-{1.0608367919921875e+01, 5.3188204765319824e-04,
- 1.1920928955078125e-07, -4.9352645874023438e-05,
- -3.2126903533935547e-05}, /* L1851 */
-{8.4174890518188477e+00, 4.2295455932617188e-04,
- 1.1920928955078125e-07, -2.1207332611083984e-04,
- 5.1617622375488281e-05}, /* L1852 */
-{8.9814271926879883e+00, 4.5187771320343018e-04,
- 1.1920928955078125e-07, -5.4836273193359375e-04,
- 8.9180469512939453e-04}, /* L1853 */
-{8.0059556961059570e+00, 4.0289759635925293e-04,
- 1.1920928955078125e-07, -1.9848346710205078e-05,
- 1.0836124420166016e-04}, /* L1854 */
-{8.2595949172973633e+00, 4.1610747575759888e-04,
- 1.1920928955078125e-07, -8.3506107330322266e-05,
- -1.3887882232666016e-05}, /* L1855 */
-{9.0352134704589844e+00, 4.5570731163024902e-04,
- 1.1920928955078125e-07, -3.3378601074218750e-05,
- 3.0040740966796875e-05}, /* L1856 */
-{8.3262290954589844e+00, 4.2049586772918701e-04,
- 1.1920928955078125e-07, -8.8095664978027344e-05,
- -5.7816505432128906e-06}, /* L1857 */
-{9.2682580947875977e+00, 4.6864151954650879e-04,
- 1.1920928955078125e-07, -2.8300285339355469e-04,
- -8.7916851043701172e-05}, /* L1858 */
-{9.8189849853515625e+00, 4.9709901213645935e-04,
- 1.1920928955078125e-07, -1.1974573135375977e-04,
- -9.4830989837646484e-05}, /* L1859 */
-{1.0359735488891602e+01, 5.2499771118164062e-04,
- 1.1920928955078125e-07, 1.9323825836181641e-04,
- -2.0384788513183594e-05}, /* L1860 */
-{6.5773878097534180e+00, 3.3459067344665527e-04,
- 1.1920928955078125e-07, -1.4141798019409180e-03,
- 8.0692768096923828e-04}, /* L1861 */
-{8.6505784988403320e+00, 4.3940544128417969e-04,
- 1.1920928955078125e-07, 9.0479850769042969e-05,
- 3.2305717468261719e-05}, /* L1862 */
-{6.9849939346313477e+00, 3.5546859726309776e-04,
- 1.1920928955078125e-07, 5.6743621826171875e-04,
- -2.5689601898193359e-04}, /* L1863 */
-{9.3527984619140625e+00, 4.7633051872253418e-04,
- 1.1920928955078125e-07, 4.5061111450195312e-05,
- -8.8810920715332031e-06}, /* L1864 */
-{8.6561861038208008e+00, 4.4298171997070312e-04,
- 1.1920928955078125e-07, -5.4836273193359375e-04,
- -2.4150609970092773e-03}, /* L1865 */
-{8.7005128860473633e+00, 4.4403225183486938e-04,
- 1.1920928955078125e-07, -2.2590160369873047e-05,
- -3.5524368286132812e-05}, /* L1866 */
-{7.5531415939331055e+00, 3.8588047027587891e-04,
- 1.1920928955078125e-07, 2.9802322387695312e-05,
- -6.0737133026123047e-05}, /* L1867 */
-{8.7230911254882812e+00, 4.4808536767959595e-04,
- 1.1920928955078125e-07, -8.9961290359497070e-04,
- -2.3205280303955078e-03}, /* L1868 */
-{8.5916881561279297e+00, 4.4009089469909668e-04,
- 1.1920928955078125e-07, 1.0716915130615234e-04,
- -2.9814243316650391e-04}, /* L1869 */
-{9.1893367767333984e+00, 4.7269463539123535e-04,
- 1.1920928955078125e-07, 8.4483623504638672e-04,
- 2.0468235015869141e-04}, /* L1870 */
-{7.6518578529357910e+00, 3.9274990558624268e-04,
- 1.1920928955078125e-07, 1.4424324035644531e-05,
- -4.1127204895019531e-06}, /* L1871 */
-{1.2129143714904785e+01, 6.2337517738342285e-04,
- 1.1920928955078125e-07, 1.0108947753906250e-04,
- -9.4175338745117188e-06}, /* L1872 */
-{8.4717893600463867e+00, 4.3584406375885010e-04,
- 1.1920928955078125e-07, 2.9087066650390625e-05,
- -5.7816505432128906e-06}, /* L1873 */
-{8.3352432250976562e+00, 4.2951107025146484e-04,
- 1.1920928955078125e-07, -2.9802322387695312e-06,
- -8.1658363342285156e-05}, /* L1874 */
-{9.2474269866943359e+00, 4.7698616981506348e-04,
- 1.1920928955078125e-07, -2.6881694793701172e-05,
- -8.8512897491455078e-05}, /* L1875 */
-{9.2441177368164062e+00, 4.7749280929565430e-04,
- 1.1920928955078125e-07, -1.6427040100097656e-04,
- 1.6307830810546875e-04}, /* L1876 */
-{9.9934844970703125e+00, 5.1665306091308594e-04,
- 1.1920928955078125e-07, 4.7326087951660156e-05,
- 1.1026859283447266e-04}, /* L1877 */
-{1.1417752265930176e+01, 5.9089064598083496e-04,
- 1.1920928955078125e-07, 5.2332878112792969e-05,
- -3.3318996429443359e-05}, /* L1878 */
-{7.9370808601379395e+00, 4.1124224662780762e-04,
- 1.1920928955078125e-07, 1.7428398132324219e-04,
- 6.7710876464843750e-05}, /* L1879 */
-{9.8608522415161133e+00, 5.1711872220039368e-04,
- 1.1920928955078125e-07, -1.4584660530090332e-03,
- 1.9093751907348633e-03}, /* L1880 */
-{8.2230386734008789e+00, 4.2715668678283691e-04,
- 1.1920928955078125e-07, 1.6713142395019531e-04,
- 1.9180774688720703e-04}, /* L1881 */
-{7.4083065986633301e+00, 3.8517266511917114e-04,
- 1.1920928955078125e-07, 2.6941299438476562e-05,
- 8.3327293395996094e-05}, /* L1882 */
-{9.2573480606079102e+00, 4.8185419291257858e-04,
- 1.1920928955078125e-07, -3.5166740417480469e-06,
- 4.1961669921875000e-05}, /* L1883 */
-{1.0731763839721680e+01, 5.5927038192749023e-04,
- 1.1920928955078125e-07, -2.6583671569824219e-04,
- 4.1246414184570312e-05}, /* L1884 */
-{9.9990072250366211e+00, 5.2294135093688965e-04,
- 1.1920928955078125e-07, -7.5775384902954102e-04,
- -6.0123205184936523e-04}, /* L1885 */
-{1.0617819786071777e+01, 5.5624544620513916e-04,
- 1.1920928955078125e-07, -1.2918114662170410e-03,
- -2.8576850891113281e-03}, /* L1886 */
-{7.6358456611633301e+00, 3.9932131767272949e-04,
- 1.1920928955078125e-07, -9.3579292297363281e-06,
- -5.2213668823242188e-05}, /* L1887 */
-{8.3299045562744141e+00, 4.3621659278869629e-04,
- 1.1920928955078125e-07, 1.8310546875000000e-04,
- 1.8501281738281250e-04}, /* L1888 */
-{9.2889890670776367e+00, 4.8676133155822754e-04,
- 1.1920928955078125e-07, -9.2267990112304688e-05,
- 7.0214271545410156e-05}, /* L1889 */
-{7.5539221763610840e+00, 4.0073692798614502e-04,
- 1.1920928955078125e-07, 4.8210620880126953e-03,
- 1.6785860061645508e-03}, /* L1890 */
-{8.1479606628417969e+00, 4.3424963951110840e-04,
- 1.1920928955078125e-07, -1.3075470924377441e-03,
- -2.0909309387207031e-04}, /* L1891 */
-{6.6375904083251953e+00, 3.4964084625244141e-04,
- 1.1920928955078125e-07, 7.8320503234863281e-05,
- 3.7717819213867188e-04}, /* L1892 */
-{9.0733795166015625e+00, 4.7793984413146973e-04,
- 1.1920928955078125e-07, -2.3221969604492188e-04,
- -3.7759542465209961e-04}, /* L1893 */
-{7.9673933982849121e+00, 4.2000412940979004e-04,
- 1.1920928955078125e-07, 6.5565109252929688e-05,
- 8.2015991210937500e-05}, /* L1894 */
-{1.0386767387390137e+01, 5.4809451103210449e-04,
- 1.1920928955078125e-07, -7.5995922088623047e-05,
- -1.5854835510253906e-05}, /* L1895 */
-{1.0470783233642578e+01, 5.5384635925292969e-04,
- 1.1920928955078125e-07, 8.0704689025878906e-05,
- 1.0120868682861328e-04}, /* L1896 */
-{8.9655103683471680e+00, 4.7418475151062012e-04,
- 1.1920928955078125e-07, 1.5819072723388672e-04,
- -1.6987323760986328e-05}, /* L1897 */
-{1.0187598228454590e+01, 5.3933262825012207e-04,
- 1.1920928955078125e-07, 6.5922737121582031e-05,
- 3.7670135498046875e-05}, /* L1898 */
-{1.1103092193603516e+01, 5.8859586715698242e-04,
- 1.1920928955078125e-07, 8.8810920715332031e-05,
- 1.5985965728759766e-04}, /* L1899 */
-{1.1348529815673828e+01, 6.0232728719711304e-04,
- 1.1920928955078125e-07, -3.8623809814453125e-05,
- 9.5129013061523438e-05}, /* L1900 */
-{1.0201865196228027e+01, 5.4249167442321777e-04,
- 1.1920928955078125e-07, -1.1128187179565430e-04,
- 5.1534175872802734e-04}, /* L1901 */
-{1.0959078788757324e+01, 5.8294832706451416e-04,
- 1.1920928955078125e-07, -2.4318695068359375e-04,
- 2.3114681243896484e-04}, /* L1902 */
-{9.6982774734497070e+00, 5.1629543304443359e-04,
- 1.1920928955078125e-07, 1.3113021850585938e-05,
- 2.3484230041503906e-05}, /* L1903 */
-{1.1804619789123535e+01, 6.2921643257141113e-04,
- 1.1920928955078125e-07, -2.6643276214599609e-05,
- 2.1123886108398438e-04}, /* L1904 */
-{1.0200138092041016e+01, 5.4486095905303955e-04,
- 1.1920928955078125e-07, 8.7666511535644531e-04,
- -4.2217969894409180e-04}, /* L1905 */
-{9.2188777923583984e+00, 4.9246102571487427e-04,
- 1.1920928955078125e-07, 2.4676322937011719e-05,
- 2.0623207092285156e-05}, /* L1906 */
-{1.0456287384033203e+01, 5.5949389934539795e-04,
- 1.1920928955078125e-07, -2.7060508728027344e-05,
- -3.4934282302856445e-04}, /* L1907 */
-{9.0423278808593750e+00, 4.8449635505676270e-04,
- 1.1920928955078125e-07, 7.0929527282714844e-05,
- -5.6469440460205078e-04}, /* L1908 */
-{1.1014037132263184e+01, 5.9181451797485352e-04,
- 1.1920928955078125e-07, -5.2487850189208984e-04,
- -6.7114830017089844e-05}, /* L1909 */
-{8.3355932235717773e+00, 4.4730305671691895e-04,
- 1.1920928955078125e-07, -1.0192394256591797e-05,
- 5.1379203796386719e-05}, /* L1910 */
-{1.0213484764099121e+01, 5.4895877838134766e-04,
- 1.1920928955078125e-07, 4.4870376586914062e-04,
- 1.3160705566406250e-04}, /* L1911 */
-{9.5378265380859375e+00, 5.1292777061462402e-04,
- 1.1920928955078125e-07, -7.9393386840820312e-05,
- 7.3909759521484375e-05}, /* L1912 */
-{1.0189579963684082e+01, 5.4869055747985840e-04,
- 1.1920928955078125e-07, -1.3172626495361328e-05,
- 6.8306922912597656e-05}, /* L1913 */
-{1.2732538223266602e+01, 6.8700313568115234e-04,
- 1.1920928955078125e-07, 6.9832801818847656e-04,
- 3.5011768341064453e-04}, /* L1914 */
-{8.5322532653808594e+00, 4.6125426888465881e-04,
- 1.1920928955078125e-07, -1.0893344879150391e-03,
- -1.1384487152099609e-04}, /* L1915 */
-{9.4907054901123047e+00, 5.1279366016387939e-04,
- 1.1920928955078125e-07, 4.0650367736816406e-05,
- -2.2530555725097656e-05}, /* L1916 */
-{7.6368107795715332e+00, 4.1300058364868164e-04,
- 1.1920928955078125e-07, -2.1994113922119141e-05,
- 1.7642974853515625e-05}, /* L1917 */
-{8.9430675506591797e+00, 4.8416852951049805e-04,
- 1.1920928955078125e-07, 1.5139579772949219e-05,
- 3.0755996704101562e-05}, /* L1918 */
-{9.6885662078857422e+00, 5.2526593208312988e-04,
- 1.1920928955078125e-07, 2.2149085998535156e-04,
- 9.6082687377929688e-05}, /* L1919 */
-{1.1273062705993652e+01, 6.1184167861938477e-04,
- 1.1920928955078125e-07, 2.1934509277343750e-05,
- 1.4090538024902344e-04}, /* L1920 */
-{8.2396593093872070e+00, 4.4792890548706055e-04,
- 1.1920928955078125e-07, 2.2864341735839844e-04,
- 2.9540061950683594e-04}, /* L1921 */
-{9.3179578781127930e+00, 5.0947070121765137e-04,
- 1.1920928955078125e-07, 2.4203062057495117e-03,
- -4.7564506530761719e-05}, /* L1922 */
-{9.7452087402343750e+00, 5.3104758262634277e-04,
- 1.1920928955078125e-07, -1.7464160919189453e-05,
- -7.8511238098144531e-04}, /* L1923 */
-{9.1860475540161133e+00, 5.0061941146850586e-04,
- 1.1920928955078125e-07, 4.9591064453125000e-05,
- -8.3684921264648438e-05}, /* L1924 */
-{8.4290475845336914e+00, 4.5995414257049561e-04,
- 1.1920928955078125e-07, 1.5830993652343750e-04,
- -1.2934207916259766e-05}, /* L1925 */
-{9.1229066848754883e+00, 5.0601363182067871e-04,
- 1.1920928955078125e-07, 6.1523914337158203e-04,
- -4.0934681892395020e-03}, /* L1926 */
-{8.0631389617919922e+00, 4.4082850217819214e-04,
- 1.1920928955078125e-07, -4.8696994781494141e-05,
- -3.5107135772705078e-05}, /* L1927 */
-{8.6928014755249023e+00, 4.7783553600311279e-04,
- 1.1920928955078125e-07, -9.1612339019775391e-04,
- -2.5457143783569336e-03}, /* L1928 */
-{9.6367349624633789e+00, 5.2803754806518555e-04,
- 1.1920928955078125e-07, -1.4740228652954102e-04,
- -2.4133920669555664e-04}, /* L1929 */
-{1.1175786018371582e+01, 6.1327219009399414e-04,
- 1.1920928955078125e-07, 2.1827220916748047e-04,
- 2.4306774139404297e-04}, /* L1930 */
-{1.0167559623718262e+01, 5.5964291095733643e-04,
- 1.1920928955078125e-07, -2.8723478317260742e-04,
- 4.0638446807861328e-04}, /* L1931 */
-{1.0183979988098145e+01, 5.5974721908569336e-04,
- 1.1920928955078125e-07, -3.2603740692138672e-05,
- 2.4437904357910156e-05}, /* L1932 */
-{8.8087539672851562e+00, 4.8625469207763672e-04,
- 1.1920928955078125e-07, -1.1152029037475586e-03,
- -1.8329024314880371e-03}, /* L1933 */
-{1.4495589256286621e+01, 8.0052018165588379e-04,
- 1.1920928955078125e-07, -1.2446641921997070e-03,
- -1.2664198875427246e-03}, /* L1934 */
-{1.0585183143615723e+01, 5.8382749557495117e-04,
- 1.1920928955078125e-07, 1.5079975128173828e-04,
- 1.0323524475097656e-04}, /* L1935 */
-{1.0339366912841797e+01, 5.7132169604301453e-04,
- 1.1920928955078125e-07, -4.0733814239501953e-04,
- -4.0030479431152344e-04}, /* L1936 */
-{1.0962856292724609e+01, 6.0608610510826111e-04,
- 1.1920928955078125e-07, -3.0040740966796875e-05,
- -2.4819374084472656e-04}, /* L1937 */
-{1.0381913185119629e+01, 5.7502835988998413e-04,
- 1.1920928955078125e-07, -3.5697221755981445e-04,
- 2.5451183319091797e-04}, /* L1938 */
-{1.1519732475280762e+01, 6.3921511173248291e-04,
- 1.1920928955078125e-07, 1.3747215270996094e-03,
- -7.0559978485107422e-04}, /* L1939 */
-{9.5184192657470703e+00, 5.3052604198455811e-04,
- 1.1920928955078125e-07, -2.7453899383544922e-04,
- 4.1484832763671875e-05}, /* L1940 */
-{8.5668268203735352e+00, 4.7579407691955566e-04,
- 1.1920928955078125e-07, 9.1314315795898438e-05,
- -2.3722648620605469e-04}, /* L1941 */
-{9.4552268981933594e+00, 5.4079294204711914e-04,
- 1.1920928955078125e-07, 4.3010711669921875e-04,
- -4.7474503517150879e-03}, /* L1942 */
-{1.1977722167968750e+01, 6.6637992858886719e-04,
- 1.1920928955078125e-07, 3.5047531127929688e-05,
- 5.1021575927734375e-05}, /* L1943 */
-{1.0210963249206543e+01, 5.6863576173782349e-04,
- 1.1920928955078125e-07, -1.4752149581909180e-04,
- -1.4781951904296875e-05}, /* L1944 */
-{1.2073630332946777e+01, 6.7320466041564941e-04,
- 1.1920928955078125e-07, 5.0902366638183594e-05,
- 7.1763992309570312e-05}, /* L1945 */
-{7.5864367485046387e+00, 4.3940544128417969e-04,
- 1.1920928955078125e-07, 1.1296272277832031e-03,
- -8.2113146781921387e-03}, /* L1946 */
-{9.6716833114624023e+00, 5.4062157869338989e-04,
- 1.1920928955078125e-07, 1.5103816986083984e-04,
- 1.6689300537109375e-05}, /* L1947 */
-{1.0730534553527832e+01, 6.0021877288818359e-04,
- 1.1920928955078125e-07, -2.5868415832519531e-04,
- 4.1961669921875000e-05}, /* L1948 */
-{8.7035503387451172e+00, 4.8764050006866455e-04,
- 1.1920928955078125e-07, 2.2232532501220703e-04,
- 7.4315071105957031e-04}, /* L1949 */
-{8.5631618499755859e+00, 4.8037990927696228e-04,
- 1.1920928955078125e-07, -2.7400255203247070e-04,
- -2.9486417770385742e-04}, /* L1950 */
-{8.8643732070922852e+00, 4.9737095832824707e-04,
- 1.1920928955078125e-07, -1.7321109771728516e-04,
- -2.3066997528076172e-05}, /* L1951 */
-{9.5164451599121094e+00, 5.3486227989196777e-04,
- 1.1920928955078125e-07, 4.4643878936767578e-04,
- 9.8109245300292969e-05}, /* L1952 */
-{1.0712300300598145e+01, 6.0426443815231323e-04,
- 1.1920928955078125e-07, -4.5710802078247070e-04,
- -7.0732831954956055e-04}, /* L1953 */
-{9.5847721099853516e+00, 5.3951144218444824e-04,
- 1.1920928955078125e-07, 3.0636787414550781e-05,
- -4.6730041503906250e-05}, /* L1954 */
-{7.9309968948364258e+00, 4.4685602188110352e-04,
- 1.1920928955078125e-07, 7.5221061706542969e-05,
- 1.0347366333007812e-04}, /* L1955 */
-{6.8448896408081055e+00, 3.8608908653259277e-04,
- 1.1920928955078125e-07, -7.3850154876708984e-05,
- 8.9406967163085938e-06}, /* L1956 */
-{8.9013347625732422e+00, 5.0285458564758301e-04,
- 1.1920928955078125e-07, 3.8087368011474609e-04,
- 3.0231475830078125e-04}, /* L1957 */
-{8.0350475311279297e+00, 4.5436620712280273e-04,
- 1.1920928955078125e-07, -1.4233589172363281e-04,
- -1.1080503463745117e-04}, /* L1958 */
-{1.0773261070251465e+01, 6.0981512069702148e-04,
- 1.1920928955078125e-07, -2.5522708892822266e-04,
- -1.3500452041625977e-04}, /* L1959 */
-{1.1945131301879883e+01, 6.8248808383941650e-04,
- 1.1920928955078125e-07, -4.3541193008422852e-03,
- 6.8250894546508789e-03}, /* L1960 */
-{9.7029876708984375e+00, 5.5011361837387085e-04,
- 1.1920928955078125e-07, 8.7380409240722656e-05,
- -1.8835067749023438e-05}, /* L1961 */
-{9.8058280944824219e+00, 5.5676698684692383e-04,
- 1.1920928955078125e-07, -1.3411045074462891e-05,
- -1.2248754501342773e-04}, /* L1962 */
-{1.3611980438232422e+01, 7.7419006265699863e-04,
- 1.1920928955078125e-07, 3.5655498504638672e-04,
- -2.2375583648681641e-04}, /* L1963 */
-{8.4177064895629883e+00, 4.7904253005981445e-04,
- 1.1920928955078125e-07, 5.0544738769531250e-05,
- -2.1189451217651367e-04}, /* L1964 */
-{1.0175786972045898e+01, 5.7952105998992920e-04,
- 1.1920928955078125e-07, -1.3244152069091797e-04,
- 3.6311149597167969e-04}, /* L1965 */
-{8.3086719512939453e+00, 4.7411024570465088e-04,
- 1.1920928955078125e-07, -6.0033798217773438e-04,
- 2.2900104522705078e-04}, /* L1966 */
-{8.6043062210083008e+00, 4.9097090959548950e-04,
- 1.1920928955078125e-07, 8.3446502685546875e-07,
- -1.5795230865478516e-05}, /* L1967 */
-{1.0641353607177734e+01, 6.0817599296569824e-04,
- 1.1920928955078125e-07, 5.7101249694824219e-05,
- -3.8707256317138672e-04}, /* L1968 */
-{1.0268855094909668e+01, 5.8725476264953613e-04,
- 1.1920928955078125e-07, -2.1457672119140625e-06,
- 2.7763843536376953e-04}, /* L1969 */
-{1.2710402488708496e+01, 7.2799623012542725e-04,
- 1.1920928955078125e-07, 2.2530555725097656e-05,
- -5.0431489944458008e-04}, /* L1970 */
-{1.1090595245361328e+01, 6.3568353652954102e-04,
- 1.1920928955078125e-07, 5.5551528930664062e-05,
- 4.3034553527832031e-05}, /* L1971 */
-{1.1624182701110840e+01, 6.6687166690826416e-04,
- 1.1920928955078125e-07, 1.5711784362792969e-04,
- 2.2065639495849609e-04}, /* L1972 */
-{1.0314638137817383e+01, 5.9263408184051514e-04,
- 1.1920928955078125e-07, 2.4759769439697266e-04,
- 4.5609474182128906e-04}, /* L1973 */
-{1.0397470474243164e+01, 5.9762597084045410e-04,
- 1.1920928955078125e-07, 2.0384788513183594e-05,
- 1.8596649169921875e-05}, /* L1974 */
-{7.9526839256286621e+00, 4.5779347419738770e-04,
- 1.1920928955078125e-07, 1.0085105895996094e-04,
- -7.6770782470703125e-05}, /* L1975 */
-{8.9509191513061523e+00, 5.1692128181457520e-04,
- 1.1920928955078125e-07, 3.5035610198974609e-04,
- 1.5652179718017578e-04}, /* L1976 */
-{9.6313333511352539e+00, 5.5524706840515137e-04,
- 1.1920928955078125e-07, -5.7697296142578125e-05,
- -6.1631202697753906e-05}, /* L1977 */
-{1.0058417320251465e+01, 5.8156251907348633e-04,
- 1.1920928955078125e-07, 3.1507015228271484e-04,
- -2.2852420806884766e-04}, /* L1978 */
-{1.0616869926452637e+01, 6.1337649822235107e-04,
- 1.1920928955078125e-07, 1.8596649169921875e-05,
- -9.7274780273437500e-05}, /* L1979 */
-{9.6551551818847656e+00, 5.5843591690063477e-04,
- 1.1920928955078125e-07, -7.4684619903564453e-05,
- 5.7458877563476562e-05}, /* L1980 */
-{9.6228322982788086e+00, 5.5742263793945312e-04,
- 1.1920928955078125e-07, -1.2600421905517578e-04,
- 2.7525424957275391e-04}, /* L1981 */
-{1.0596381187438965e+01, 6.1428546905517578e-04,
- 1.1920928955078125e-07, -4.6432018280029297e-05,
- 1.3089179992675781e-04}, /* L1982 */
-{1.2365359306335449e+01, 7.1737170219421387e-04,
- 1.1920928955078125e-07, 1.7440319061279297e-04,
- -2.4855136871337891e-05}, /* L1983 */
-{9.0907354354858398e+00, 5.2788853645324707e-04,
- 1.1920928955078125e-07, 9.0479850769042969e-05,
- -1.0967254638671875e-05}, /* L1984 */
-{9.0471115112304688e+00, 5.2592158317565918e-04,
- 1.1920928955078125e-07, 8.5949897766113281e-05,
- 1.7762184143066406e-05}, /* L1985 */
-{1.0919524192810059e+01, 6.3553452491760254e-04,
- 1.1920928955078125e-07, 5.7220458984375000e-05,
- 1.1074542999267578e-04}, /* L1986 */
-{9.3615312576293945e+00, 5.4559111595153809e-04,
- 1.1920928955078125e-07, -1.4656782150268555e-04,
- 2.0146369934082031e-04}, /* L1987 */
-{9.8919372558593750e+00, 5.7685188949108124e-04,
- 1.1920928955078125e-07, 1.1503696441650391e-04,
- -6.2584877014160156e-06}, /* L1988 */
-{9.1773252487182617e+00, 5.3569674491882324e-04,
- 1.1920928955078125e-07, -4.5537948608398438e-05,
- 2.2327899932861328e-04}, /* L1989 */
-{1.0185897827148438e+01, 5.9595331549644470e-04,
- 1.1920928955078125e-07, -6.0927867889404297e-04,
- 6.8533420562744141e-04}, /* L1990 */
-{8.6529941558837891e+00, 5.0607323646545410e-04,
- 1.1920928955078125e-07, -5.1140785217285156e-05,
- 1.9717216491699219e-04}, /* L1991 */
-{9.2955474853515625e+00, 5.4464489221572876e-04,
- 1.1920928955078125e-07, 3.8146972656250000e-06,
- -1.4382600784301758e-04}, /* L1992 */
-{9.4217214584350586e+00, 5.5211782455444336e-04,
- 1.1920928955078125e-07, -6.5863132476806641e-05,
- -4.2617321014404297e-05}, /* L1993 */
-{9.1833600997924805e+00, 5.3887069225311279e-04,
- 1.1920928955078125e-07, -5.1856040954589844e-06,
- -6.4492225646972656e-05}, /* L1994 */
-{1.0723596572875977e+01, 6.3091516494750977e-04,
- 1.1920928955078125e-07, -9.6172094345092773e-04,
- 1.8572807312011719e-04}, /* L1995 */
-{1.4520234107971191e+01, 8.5377693176269531e-04,
- 1.1920928955078125e-07, 1.4865398406982422e-04,
- 7.2598457336425781e-05}, /* L1996 */
-{8.6223506927490234e+00, 5.0773471593856812e-04,
- 1.1920928955078125e-07, 2.6702880859375000e-05,
- -3.0374526977539062e-04}, /* L1997 */
-{1.2070078849792480e+01, 7.1102380752563477e-04,
- 1.1920928955078125e-07, -1.4424324035644531e-05,
- -6.3002109527587891e-05}, /* L1998 */
-{1.1777620315551758e+01, 6.9475173950195312e-04,
- 1.1920928955078125e-07, 7.6770782470703125e-05,
- -1.4966726303100586e-04}, /* L1999 */
-{1.2227584838867188e+01, 7.2187930345535278e-04,
- 1.1920928955078125e-07, 3.4451484680175781e-05,
- 3.6478042602539062e-05}, /* L2000 */
-{8.8412332534790039e+00, 5.2274763584136963e-04,
- 1.1920928955078125e-07, -1.4603137969970703e-04,
- -7.0863962173461914e-04}, /* L2001 */
-{1.3288765907287598e+01, 7.8594684600830078e-04,
- 1.1920928955078125e-07, 1.0967254638671875e-05,
- 8.1181526184082031e-05}, /* L2002 */
-{1.4326131820678711e+01, 8.4811449050903320e-04,
- 1.1920928955078125e-07, -5.1081180572509766e-05,
- 1.9431114196777344e-05}, /* L2003 */
-{1.0843397140502930e+01, 6.4434111118316650e-04,
- 1.1920928955078125e-07, 9.0384483337402344e-04,
- -4.3058395385742188e-04}, /* L2004 */
-{1.0322278022766113e+01, 6.1281025409698486e-04,
- 1.1920928955078125e-07, -2.3847818374633789e-04,
- -3.7145614624023438e-04}, /* L2005 */
-{1.0549732208251953e+01, 6.2641501426696777e-04,
- 1.1920928955078125e-07, 1.6689300537109375e-05,
- -2.9683113098144531e-05}, /* L2006 */
-{1.1172326087951660e+01, 6.6402554512023926e-04,
- 1.1920928955078125e-07, 4.5418739318847656e-05,
- 3.2782554626464844e-05}, /* L2007 */
-{1.0778042793273926e+01, 6.4164400100708008e-04,
- 1.1920928955078125e-07, -6.8366527557373047e-05,
- 1.2004375457763672e-04}, /* L2008 */
-{1.1256361007690430e+01, 6.7144632339477539e-04,
- 1.1920928955078125e-07, -2.4515390396118164e-04,
- -1.3053417205810547e-05}, /* L2009 */
-{8.3230304718017578e+00, 4.9619842320680618e-04,
- 1.1920928955078125e-07, -2.8491020202636719e-05,
- -4.0531158447265625e-05}, /* L2010 */
-{1.9389345169067383e+01, 2.3628771305084229e-03,
- 1.1920928955078125e-07, -8.1286430358886719e-03,
- 3.5625696182250977e-03}, /* L2011 */
-{2.2398042678833008e+01, 4.0780454874038696e-03,
- 1.1920928955078125e-07, -4.2932629585266113e-03,
- 7.0285797119140625e-04}, /* L2012 */
-{3.7127368927001953e+01, 8.9380443096160889e-03,
- 1.1920928955078125e-07, -4.1711330413818359e-04,
- 1.5066862106323242e-03}, /* L2013 */
-{4.4158779144287109e+01, 1.3220252469182014e-02,
- 1.1920928955078125e-07, -1.3178586959838867e-04,
- 5.6421756744384766e-04}, /* L2014 */
-{5.0687767028808594e+01, 1.8235534429550171e-02,
- 1.1920928955078125e-07, 2.0543336868286133e-03,
- 1.3195276260375977e-03}, /* L2015 */
-{6.0456470489501953e+01, 2.5663286447525024e-02,
- 1.1920928955078125e-07, 2.4507045745849609e-03,
- -4.9054622650146484e-05}, /* L2016 */
-{6.7426277160644531e+01, 3.2831013202667236e-02,
- 1.1920928955078125e-07, -7.8994035720825195e-04,
- -4.4494867324829102e-03}, /* L2017 */
-{7.1163208007812500e+01, 4.6596020460128784e-02,
- 1.1920928955078125e-07, -6.0402154922485352e-03,
- 4.1137099266052246e-02}, /* L2018 */
-{9.2498748779296875e+01, 5.6218922138214111e-02,
- 1.1920928955078125e-07, -5.7453513145446777e-03,
- 3.6135911941528320e-03}, /* L2019 */
-#endif /* } */
-
-/* Always the last one. Common to both DP and SP */
-
-{0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00, 0.0000000000000000e+00,
- 0.0000000000000000e+00}, /* L2020 */
-};
-
-#endif /* LAPACK_V9B_SS13 */
diff --git a/usr/src/cmd/fps/fptest/util.c b/usr/src/cmd/fps/fptest/util.c
deleted file mode 100644
index dc05864a3d..0000000000
--- a/usr/src/cmd/fps/fptest/util.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <stdio.h>
-#include <sys/systeminfo.h>
-#include <strings.h>
-#include <netdb.h>
-#include <stdarg.h>
-#include <sys/time.h>
-
-#define FPS_MAX_MSGLEN 4096 /* Max msg length including last null */
-#define FPS_TEST_NAME "fptest" /* Name of test app */
-#define FPS_VER_TEST "1.0" /* Test Version */
-
-void fps_msg(int msg_enable, const char *fmt, ...);
-static const char *msg_get_hostname();
-
-static const char *
-msg_get_hostname(void) {
- static char hname[MAXHOSTNAMELEN+1];
-
- if (hname[0] == 0)
- (void) sysinfo(SI_HOSTNAME, hname, MAXHOSTNAMELEN);
-
- return (hname);
-}
-
-void
-fps_msg(int msg_enable, const char *fmt, ...)
-{
- char msg_buf[FPS_MAX_MSGLEN];
- char *msg_ptr;
- struct tm tms;
- time_t ts;
- va_list ap;
-
- va_start(ap, fmt);
-
- if (!msg_enable) {
- va_end(ap);
- return;
- }
-
- if (NULL == fmt) {
- va_end(ap);
- return;
- }
-
- (void) time(&ts);
- (void) localtime_r(&ts, &tms);
-
- msg_buf[0] = 0;
- (void) strftime(msg_buf, sizeof (msg_buf), "%x %X ", &tms);
-
- msg_ptr = &msg_buf[strlen(msg_buf)];
- (void) snprintf(msg_ptr, sizeof (msg_buf) - strlen(msg_buf) - 1,
- "%s %s(%s).%s: ",
- msg_get_hostname(),
- FPS_TEST_NAME, FPS_VER_TEST,
- "verbose");
-
- msg_ptr = &msg_buf[strlen(msg_buf)];
-
- (void) vsnprintf(msg_ptr,
- sizeof (msg_buf) - strlen(msg_buf) - 1, fmt, ap);
- if (msg_buf[strlen(msg_buf)-1] != '\n')
- (void) strcat(msg_buf, "\n");
-
-
- (void) fputs(msg_buf, stdout);
-
- va_end(ap);
-}
diff --git a/usr/src/cmd/fps/fptest/visfps.il b/usr/src/cmd/fps/fptest/visfps.il
deleted file mode 100644
index 15d1ad5aef..0000000000
--- a/usr/src/cmd/fps/fptest/visfps.il
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-setgsr(unsigned long arg1)
-{
-
- return (0);
-}
-
-#else
-
-.inline setgsr
- rd %gsr,%o1
- wr %o0,%gsr
- mov %o1,%o0
-.end
-
-#endif
-
-#ifdef __lint
-
-/*ARGSUSED*/
-float
-fpackfix(double arg1)
-{
- return (0);
-}
-
-#else
-
-.inline fpackfix
- fpackfix %f0,%f0
-.end
-
-#endif
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-fcmpne16(double arg1, double arg2)
-{
- return (0);
-}
-
-#else
-
-.inline fcmpne16
- fcmpne16 %f0,%f2,%o0
-.end
-
-#endif
-
-#ifdef __lint
-
-/*ARGSUSED*/
-unsigned long
-fcmpgt16(double arg1, double arg2)
-{
- return (0);
-}
-
-#else
-
-.inline fcmpgt16
- fcmpgt16 %f0,%f2,%o0
-.end
-
-#endif
diff --git a/usr/src/cmd/fps/include/fpsapi.h b/usr/src/cmd/fps/include/fpsapi.h
deleted file mode 100644
index 310da4c0b4..0000000000
--- a/usr/src/cmd/fps/include/fpsapi.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _FPSAPI_H
-#define _FPSAPI_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-/*
- * FPS structures and constants.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/types.h>
-
-#define FPS_DOOR_FILE "/var/run/fpsdiagd_door"
-
-/* Message types and associated priorities */
-#define FPS_ERROR 0 /* Goes to syslog(LOG_ERR) */
-#define FPS_WARNING 1 /* Goes to syslog(LOG_WARNING) */
-#define FPS_INFO 2 /* Goes to syslog(LOG_INFO) */
-#define FPS_DEBUG 3 /* Goes to syslog(LOG_DEBUG) */
-
-/* Max Limits */
-
-/* FP-test return codes */
-
-#define FPU_UNSUPPORT -1
-#define FPU_OK 0 /* All tests passed */
-/* Failed a test, FPU will/should be offlined after ereport is sent */
-#define FPU_FOROFFLINE 1
-#define FPU_BIND_FAIL 2 /* Could not bind to CPU ID or bind was lost */
-#define FPU_INVALID_ARG 3 /* Invalid argument passed in */
-#define FPU_SIG_SEGV 4
-#define FPU_SIG_BUS 5
-#define FPU_SIG_FPE 6
-#define FPU_SIG_ILL 7
-#define FPU_SYSCALL_TRYAGAIN 8
-#define FPU_SYSCALL_FAIL 9
-#define FPU_EREPORT_INCOM 10
-#define FPU_EREPORT_FAIL 11
-#define FPU_TIMED_OUT 12
-
-typedef struct fps_event {
- uint32_t version;
- uint32_t type;
- uint32_t length; /* remaining length of data */
- char data[1]; /* Variable sized data */
-}fps_event_t;
-
-typedef struct fps_event_reply {
- int32_t result;
-} fps_event_reply_t;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FPSAPI_H */
diff --git a/usr/src/cmd/krb5/kadmin/gui/native/Kadmin.c b/usr/src/cmd/krb5/kadmin/gui/native/Kadmin.c
index 1d74ae36d9..bcb49d1263 100644
--- a/usr/src/cmd/krb5/kadmin/gui/native/Kadmin.c
+++ b/usr/src/cmd/krb5/kadmin/gui/native/Kadmin.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <jni.h>
#include <kadm5/admin.h>
#include <adm_err.h>
@@ -162,8 +160,8 @@ Java_Kadmin_sessionInit(JNIEnv *env, jobject obj, jstring name,
}
ret = kadm5_init_with_password(ka_name, (char *)cpasswd,
- ka_service, &params, KADM5_STRUCT_VERSION,
- KADM5_API_VERSION_2, NULL, &server_handle);
+ ka_service, &params, KADM5_STRUCT_VERSION, KADM5_API_VERSION_2,
+ NULL, &server_handle);
/* Release string arguments and variables */
if (cname)
@@ -297,7 +295,9 @@ Java_Kadmin_getEncList(JNIEnv *env,
handle_error(env, errno);
return (NULL);
}
- for (i = 0; i < num_keysalts; grp[i] = i++);
+ for (i = 0; i < num_keysalts; i++)
+ grp[i] = i;
+
for (i = 0; i < num_keysalts; i++) {
if (grp[i] != i)
continue;
@@ -548,7 +548,7 @@ Java_Kadmin_savePrincipal(JNIEnv *env, jobject obj, jobject prin)
memset((char *)&pr_rec, 0, sizeof (pr_rec));
memset((char *)&params, 0, sizeof (params));
ret = Principal_to_kadmin(env, prin, 0, &kprin, &pr_rec, &mask,
- &pw, &comments, &params);
+ &pw, &comments, &params);
if (ret) {
handle_error(env, ret);
return (JNI_FALSE);
@@ -615,7 +615,7 @@ Java_Kadmin_createPrincipal(JNIEnv *env, jobject obj, jobject prin)
memset((char *)&pr_rec, 0, sizeof (pr_rec));
memset((char *)&params, 0, sizeof (params));
ret = Principal_to_kadmin(env, prin, 1, &kprin, &pr_rec, &mask,
- &pw, &comments, &params);
+ &pw, &comments, &params);
if (ret) {
handle_error(env, ret);
return (JNI_FALSE);
@@ -626,7 +626,7 @@ Java_Kadmin_createPrincipal(JNIEnv *env, jobject obj, jobject prin)
*/
if (params.mask & KADM5_CONFIG_ENCTYPES) {
ret = kadm5_create_principal_3(server_handle, &pr_rec, mask,
- params.num_keysalts, params.keysalts, pw);
+ params.num_keysalts, params.keysalts, pw);
if (params.keysalts != NULL)
free(params.keysalts);
} else
@@ -1068,7 +1068,7 @@ Principal_to_kadmin(JNIEnv *env, jobject prin, int new, krb5_principal *kprin,
if (b == JNI_TRUE) {
f = (*env)->GetFieldID(env, prcl, "Comments",
- "Ljava/lang/String;");
+ "Ljava/lang/String;");
if (!f)
return (KADM_JNI_FIELD);
obj = (*env)->GetObjectField(env, prin, f);
@@ -1101,7 +1101,7 @@ Principal_to_kadmin(JNIEnv *env, jobject prin, int new, krb5_principal *kprin,
* Get the Principal.flags field id
*/
flagsID = (*env)->GetFieldID(env, prcl, "flags",
- "LFlags;");
+ "LFlags;");
if (!f)
return (KADM_JNI_FIELD);
@@ -1197,7 +1197,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!obj)
return (KADM_JNI_OFIELD);
(*env)->CallVoidMethod(env, obj, mid,
- (jlong) (p->princ_expire_time * 1000LL));
+ (jlong) (p->princ_expire_time * 1000LL));
f = (*env)->GetFieldID(env, prcl, "EncTypes", "Ljava/lang/String;");
if (!f)
@@ -1270,7 +1270,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!obj)
return (KADM_JNI_OFIELD);
(*env)->CallVoidMethod(env, obj, mid,
- (jlong) (p->last_pwd_change * 1000LL));
+ (jlong) (p->last_pwd_change * 1000LL));
f = (*env)->GetFieldID(env, prcl, "PwExpireTime", "Ljava/util/Date;");
if (!f)
@@ -1282,7 +1282,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!obj)
return (KADM_JNI_OFIELD);
(*env)->CallVoidMethod(env, obj, mid,
- (jlong) (p->pw_expiration * 1000LL));
+ (jlong) (p->pw_expiration * 1000LL));
f = (*env)->GetFieldID(env, prcl, "MaxLife", "Ljava/lang/Integer;");
if (!f)
@@ -1302,7 +1302,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!mid)
return (KADM_JNI_METHOD);
obj = (*env)->NewObject(env, intclass, mid,
- (jint) p->max_renewable_life);
+ (jint) p->max_renewable_life);
if (!obj)
return (KADM_JNI_OBJECT);
(*env)->SetObjectField(env, prin, f, obj);
@@ -1317,7 +1317,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!obj)
return (KADM_JNI_OFIELD);
(*env)->CallVoidMethod(env, obj, mid,
- (jlong) (p->mod_date * 1000LL));
+ (jlong) (p->mod_date * 1000LL));
ret = krb5_init_context(&context);
if (ret)
@@ -1344,7 +1344,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!obj)
return (KADM_JNI_OFIELD);
(*env)->CallVoidMethod(env, obj, mid,
- (jlong) (p->last_success * 1000LL));
+ (jlong) (p->last_success * 1000LL));
f = (*env)->GetFieldID(env, prcl, "LastFailure", "Ljava/util/Date;");
if (!f)
@@ -1356,7 +1356,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!obj)
return (KADM_JNI_OFIELD);
(*env)->CallVoidMethod(env, obj, mid,
- (jlong) (p->last_failed * 1000LL));
+ (jlong) (p->last_failed * 1000LL));
f = (*env)->GetFieldID(env, prcl, "NumFailures", "Ljava/lang/Integer;");
if (!f)
@@ -1365,7 +1365,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
if (!mid)
return (KADM_JNI_METHOD);
obj = (*env)->NewObject(env, intclass, mid,
- (jint) p->fail_auth_count);
+ (jint) p->fail_auth_count);
if (!obj)
return (KADM_JNI_OBJECT);
(*env)->SetObjectField(env, prin, f, obj);
@@ -1410,7 +1410,7 @@ kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
* Get the Principal.flags field id
*/
flagsID = (*env)->GetFieldID(env, prcl, "flags",
- "LFlags;");
+ "LFlags;");
if (!f)
return (KADM_JNI_FIELD);
@@ -1515,7 +1515,7 @@ Policy_to_kadmin(JNIEnv *env, jobject pol, int new,
*mask |= KADM5_PW_MIN_LENGTH;
f = (*env)->GetFieldID(env, pocl, "PwMinClasses",
- "Ljava/lang/Integer;");
+ "Ljava/lang/Integer;");
if (!f)
return (KADM_JNI_FIELD);
obj = (*env)->GetObjectField(env, pol, f);
@@ -1602,7 +1602,7 @@ kadmin_to_Policy(kadm5_policy_ent_rec *p, JNIEnv *env, jobject pol)
(*env)->SetObjectField(env, pol, f, obj);
f = (*env)->GetFieldID(env, pocl, "PwMinClasses",
- "Ljava/lang/Integer;");
+ "Ljava/lang/Integer;");
if (!f)
return (KADM_JNI_FIELD);
mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
@@ -1789,5 +1789,5 @@ handle_error(JNIEnv *env, int error)
}
}
(*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/Exception"),
- (const char *)s);
+ (const char *)s);
}
diff --git a/usr/src/cmd/krb5/krb5kdc/Makefile b/usr/src/cmd/krb5/krb5kdc/Makefile
index c8c1836129..72d02fb2d2 100644
--- a/usr/src/cmd/krb5/krb5kdc/Makefile
+++ b/usr/src/cmd/krb5/krb5kdc/Makefile
@@ -2,8 +2,6 @@
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# ident "%Z%%M% %I% %E% SMI"
-#
PROG= krb5kdc
MANIFEST= krb5kdc.xml
@@ -42,6 +40,9 @@ POFILES = generic.po
ROOTMANIFESTDIR= $(ROOTSVCNETWORKSECURITY)
CFLAGS += $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
+# The SET macros in network.c will be mis-optimized if GCC believes it
+# may rely on undefined signed overflow behaviour.
+$(__GNUC4)CFLAGS += -_gcc=-fno-strict-overflow
CPPFLAGS += \
-I$(SRC)/lib/gss_mechs/mech_krb5/include \
diff --git a/usr/src/cmd/lms/Makefile b/usr/src/cmd/lms/Makefile
index c9c71e012b..04e3c6bc63 100644
--- a/usr/src/cmd/lms/Makefile
+++ b/usr/src/cmd/lms/Makefile
@@ -50,8 +50,7 @@ TOOLS_DIR=tools
CPPFLAGS= -DBSD_COMP -D_REMOTE_SUPPORT \
-I. -I$(SYNCLIB_HDRDIR) -I$(HECI_DIR) -I$(TOOLS_DIR)
CCFLAGS += -compat=5 -features=zla
-CCNEEDED= -lCrun -lCstd
-$(__GNUC)CCNEEDED = -L$(SFWLIBDIR) -R$(SFWLIBDIR) -lstdc++ -lgcc_s
+$(__SUNC)CCNEEDED= -lCrun -lCstd
LDFLAGS += $(ZIGNORE) -norunpath
LDLIBS += -lsocket -lnsl
diff --git a/usr/src/cmd/mdb/common/libstandctf/mapfile b/usr/src/cmd/mdb/common/libstandctf/mapfile
index e72c2ddbcf..2ea8c788c0 100644
--- a/usr/src/cmd/mdb/common/libstandctf/mapfile
+++ b/usr/src/cmd/mdb/common/libstandctf/mapfile
@@ -70,6 +70,7 @@ SYMBOL_SCOPE {
ctf_member_iter;
ctf_open;
ctf_parent_name;
+ ctf_parent_label;
ctf_setmodel;
ctf_setspecific;
ctf_type_align;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
index 59ff29e706..fdebfb5c90 100644
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
@@ -133,7 +133,7 @@
newSVnv((NVTYPE) (V / 1000000000.0))
#define SAVE_FNP(H, F, K) \
- hv_store(H, K, sizeof (K) - 1, newSViv((IVTYPE) &F), 0)
+ hv_store(H, K, sizeof (K) - 1, newSViv((IVTYPE)(uintptr_t)&F), 0)
#define SAVE_STRING(H, S, K, SS) \
hv_store(H, #K, sizeof (#K) - 1, \
newSVpvn(S->K, SS ? strlen(S->K) : sizeof(S->K)), 0)
diff --git a/usr/src/cmd/vi/port/Makefile b/usr/src/cmd/vi/port/Makefile
index ab4eca4f3c..8bb0e5f1b5 100644
--- a/usr/src/cmd/vi/port/Makefile
+++ b/usr/src/cmd/vi/port/Makefile
@@ -65,6 +65,9 @@ $(XPG6) := CFLAGS += -DXPG4 -DXPG6 -I$(SRC)/lib/libc/inc
CPPFLAGS += -DUSG -DSTDIO -DVMUNIX -DTABS=8 -DSINGLE -DTAG_STACK
+# vi intentionally uses foo[-1] as a sentinal value to q*column()
+$(__GNUC4)CERRWARN += -_gcc=-Wno-array-bounds
+
# vi maintains its own versions of various routines from libc and libcurses,
# so localize all symbols to avoid name space collisions.
LDFLAGS += $(MAPFILE.NGB:%=-M%)
diff --git a/usr/src/cmd/vi/port/ex_cmdsub.c b/usr/src/cmd/vi/port/ex_cmdsub.c
index 4e7e4b0005..7f122a7111 100644
--- a/usr/src/cmd/vi/port/ex_cmdsub.c
+++ b/usr/src/cmd/vi/port/ex_cmdsub.c
@@ -1734,7 +1734,7 @@ unsigned char *prompt;
/* In ex mode, let the system hassle with setting no echo */
if (!inopen)
- return (unsigned char *)getpass(prompt);
+ return (unsigned char *)getpass((const char *)prompt);
viprintf("%s", prompt); flush();
for (p=pbuf; (c = getkey())!='\n' && c!=EOF && c!='\r';) {
if (p < &pbuf[8])
diff --git a/usr/src/common/ctf/ctf_open.c b/usr/src/common/ctf/ctf_open.c
index e49a4cb329..e494ac3156 100644
--- a/usr/src/common/ctf/ctf_open.c
+++ b/usr/src/common/ctf/ctf_open.c
@@ -889,6 +889,16 @@ ctf_parent_name(ctf_file_t *fp)
}
/*
+ * Return the label of the parent CTF container, if one exists. Otherwise
+ * return NULL.
+ */
+const char *
+ctf_parent_label(ctf_file_t *fp)
+{
+ return (fp->ctf_parlabel);
+}
+
+/*
* Import the types from the specified parent container by storing a pointer
* to it in ctf_parent and incrementing its reference count. Only one parent
* is allowed: if a parent already exists, it is replaced by the new parent.
diff --git a/usr/src/common/openssl/crypto/asn1/asn1.h b/usr/src/common/openssl/crypto/asn1/asn1.h
index 8781bef3bb..bc77e0544d 100644
--- a/usr/src/common/openssl/crypto/asn1/asn1.h
+++ b/usr/src/common/openssl/crypto/asn1/asn1.h
@@ -321,6 +321,17 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
#define I2D_OF(type) int (*)(type *,unsigned char **)
#define I2D_OF_const(type) int (*)(const type *,unsigned char **)
+#define CHECKED_D2I_OF(type, d2i) \
+ ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0)))
+#define CHECKED_I2D_OF(type, i2d) \
+ ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0)))
+#define CHECKED_NEW_OF(type, xnew) \
+ ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0)))
+#define CHECKED_PTR_OF(type, p) \
+ ((void*) (1 ? p : (type*)0))
+#define CHECKED_PPTR_OF(type, p) \
+ ((void**) (1 ? p : (type**)0))
+
#define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long)
#define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **)
#define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type)
@@ -901,22 +912,38 @@ int ASN1_object_size(int constructed, int length, int tag);
/* Used to implement other functions */
void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x);
#define ASN1_dup_of(type,i2d,d2i,x) \
- ((type *(*)(I2D_OF(type),D2I_OF(type),type *))openssl_fcast(ASN1_dup))(i2d,d2i,x)
+ ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \
+ CHECKED_D2I_OF(type, d2i), \
+ CHECKED_PTR_OF(type, x)))
+
#define ASN1_dup_of_const(type,i2d,d2i,x) \
- ((type *(*)(I2D_OF_const(type),D2I_OF(type),type *))openssl_fcast(ASN1_dup))(i2d,d2i,x)
+ ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \
+ CHECKED_D2I_OF(type, d2i), \
+ CHECKED_PTR_OF(const type, x)))
void *ASN1_item_dup(const ASN1_ITEM *it, void *x);
#ifndef OPENSSL_NO_FP_API
void *ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x);
-#define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \
- ((type *(*)(type *(*)(void),D2I_OF(type),FILE *,type **))openssl_fcast(ASN1_d2i_fp))(xnew,d2i,in,x)
+
+#define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \
+ ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \
+ CHECKED_D2I_OF(type, d2i), \
+ in, \
+ CHECKED_PPTR_OF(type, x)))
+
void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
int ASN1_i2d_fp(i2d_of_void *i2d,FILE *out,void *x);
#define ASN1_i2d_fp_of(type,i2d,out,x) \
- ((int (*)(I2D_OF(type),FILE *,type *))openssl_fcast(ASN1_i2d_fp))(i2d,out,x)
-#define ASN1_i2d_fp_of_const(type,i2d,out,x) \
- ((int (*)(I2D_OF_const(type),FILE *,type *))openssl_fcast(ASN1_i2d_fp))(i2d,out,x)
+ (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \
+ out, \
+ CHECKED_PTR_OF(type, x)))
+
+#define ASN1_i2d_fp_of_const(type,i2d,out,x) \
+ (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \
+ out, \
+ CHECKED_PTR_OF(const type, x)))
+
int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x);
int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
#endif
@@ -926,13 +953,24 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);
#ifndef OPENSSL_NO_BIO
void *ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x);
#define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \
- ((type *(*)(type *(*)(void),D2I_OF(type),BIO *,type **))openssl_fcast(ASN1_d2i_bio))(xnew,d2i,in,x)
+ ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \
+ CHECKED_D2I_OF(type, d2i), \
+ in, \
+ CHECKED_PPTR_OF(type, x)))
+
void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, unsigned char *x);
#define ASN1_i2d_bio_of(type,i2d,out,x) \
- ((int (*)(I2D_OF(type),BIO *,type *))openssl_fcast(ASN1_i2d_bio))(i2d,out,x)
+ (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \
+ out, \
+ CHECKED_PTR_OF(type, x)))
+
#define ASN1_i2d_bio_of_const(type,i2d,out,x) \
- ((int (*)(I2D_OF_const(type),BIO *,const type *))openssl_fcast(ASN1_i2d_bio))(i2d,out,x)
+ (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \
+ out, \
+ CHECKED_PTR_OF(const type, x)))
+
+
int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x);
int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a);
int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a);
@@ -976,7 +1014,10 @@ void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d,
ASN1_OCTET_STRING **oct);
#define ASN1_pack_string_of(type,obj,i2d,oct) \
- ((ASN1_STRING *(*)(type *,I2D_OF(type),ASN1_OCTET_STRING **))openssl_fcast(ASN1_pack_string))(obj,i2d,oct)
+ (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \
+ CHECKED_I2D_OF(type, i2d), \
+ oct))
+
ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
void ASN1_STRING_set_default_mask(unsigned long mask);
diff --git a/usr/src/common/openssl/crypto/pem/pem.h b/usr/src/common/openssl/crypto/pem/pem.h
index 7db6b423d0..9a50472ef8 100644
--- a/usr/src/common/openssl/crypto/pem/pem.h
+++ b/usr/src/common/openssl/crypto/pem/pem.h
@@ -220,19 +220,19 @@ typedef struct pem_ctx_st
#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \
type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\
{ \
-return(((type *(*)(D2I_OF(type),char *,FILE *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read))(d2i_##asn1, str,fp,x,cb,u)); \
+return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \
} \
#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \
int PEM_write_##name(FILE *fp, type *x) \
{ \
-return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
+return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \
}
#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \
int PEM_write_##name(FILE *fp, const type *x) \
{ \
-return(((int (*)(I2D_OF_const(type),const char *,FILE *, const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
+return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \
}
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
@@ -240,7 +240,7 @@ int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, \
void *u) \
{ \
- return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
+ return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \
}
#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \
@@ -248,7 +248,7 @@ int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, \
void *u) \
{ \
- return(((int (*)(I2D_OF_const(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
+ return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \
}
#endif
@@ -256,33 +256,33 @@ int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
#define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\
{ \
-return(((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read_bio))(d2i_##asn1, str,bp,x,cb,u)); \
+return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \
}
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, type *x) \
{ \
-return(((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
+return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \
}
#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, const type *x) \
{ \
-return(((int (*)(I2D_OF_const(type),const char *,BIO *,const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
+return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \
}
#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
{ \
- return(((int (*)(I2D_OF(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
+ return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \
}
#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
{ \
- return(((int (*)(I2D_OF_const(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
+ return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \
}
#define IMPLEMENT_PEM_write(name, type, str, asn1) \
@@ -547,7 +547,7 @@ void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp,
void **x, pem_password_cb *cb, void *u);
#define PEM_ASN1_read_bio_of(type,d2i,name,bp,x,cb,u) \
((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read_bio))(d2i,name,bp,x,cb,u)
-int PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp,char *x,
+int PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp,void *x,
const EVP_CIPHER *enc,unsigned char *kstr,int klen,
pem_password_cb *cb, void *u);
#define PEM_ASN1_write_bio_of(type,i2d,name,bp,x,enc,kstr,klen,cb,u) \
@@ -565,7 +565,7 @@ int PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len);
void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x,
pem_password_cb *cb, void *u);
int PEM_ASN1_write(i2d_of_void *i2d,const char *name,FILE *fp,
- char *x,const EVP_CIPHER *enc,unsigned char *kstr,
+ void *x,const EVP_CIPHER *enc,unsigned char *kstr,
int klen,pem_password_cb *callback, void *u);
STACK_OF(X509_INFO) * PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk,
pem_password_cb *cb, void *u);
diff --git a/usr/src/common/openssl/crypto/pem/pem_lib.c b/usr/src/common/openssl/crypto/pem/pem_lib.c
index 7cfc2f3e0a..47f6d4e379 100644
--- a/usr/src/common/openssl/crypto/pem/pem_lib.c
+++ b/usr/src/common/openssl/crypto/pem/pem_lib.c
@@ -261,7 +261,7 @@ err:
#ifndef OPENSSL_NO_FP_API
int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,
- char *x, const EVP_CIPHER *enc, unsigned char *kstr,
+ void *x, const EVP_CIPHER *enc, unsigned char *kstr,
int klen, pem_password_cb *callback, void *u)
{
BIO *b;
@@ -280,7 +280,7 @@ int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,
#endif
int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,
- char *x, const EVP_CIPHER *enc, unsigned char *kstr,
+ void *x, const EVP_CIPHER *enc, unsigned char *kstr,
int klen, pem_password_cb *callback, void *u)
{
EVP_CIPHER_CTX ctx;
diff --git a/usr/src/grub/grub-0.97/Makefile.solaris.defs b/usr/src/grub/grub-0.97/Makefile.solaris.defs
index ddca919245..9a9455ea76 100644
--- a/usr/src/grub/grub-0.97/Makefile.solaris.defs
+++ b/usr/src/grub/grub-0.97/Makefile.solaris.defs
@@ -2,8 +2,6 @@
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# ident "%Z%%M% %I% %E% SMI"
-#
include $(SRC)/Makefile.master
.KEEP_STATE:
@@ -44,11 +42,11 @@ OPTION_DOCS = $(POUND_SIGN)
OPTION_FS = $(POUND_SIGN)
-BASE_CFLAGS = -B$(GNU_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS)
-BASE_CCASFLAGS = -B$(GNU_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS)
+BASE_CFLAGS = -B$(GCC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS)
+BASE_CCASFLAGS = -B$(GCC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS)
BASE_LDFLAGS =
-CC = $(GNU_ROOT)/bin/gcc
+CC = $(GCC_ROOT)/bin/gcc
CFLAGS = $(BASE_CFLAGS)
CCDEPMODE = depmode=none
diff --git a/usr/src/lib/libbc/libc/sys/common/uname.c b/usr/src/lib/libbc/libc/sys/common/uname.c
index ef09e18f63..ca035f85c7 100644
--- a/usr/src/lib/libbc/libc/sys/common/uname.c
+++ b/usr/src/lib/libbc/libc/sys/common/uname.c
@@ -24,23 +24,21 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <errno.h>
#include <string.h>
#include <sys/utsname.h>
#include <sys/syscall.h>
-/*
+/*
* utsname structure has a different format in SVr4/SunOS 5.0.
* The data needs to be mapped before returning to the user.
*/
-/*
+/*
* The following values and structure are from the SVR4 utsname.h.
*/
#define NEW_SYS_NMLN 257
-#define SYS_NMLN 9
+#define SYS_NMLN 9
#define SYS_NDLN 65
struct n_utsname {
@@ -51,14 +49,14 @@ struct n_utsname {
char machine[NEW_SYS_NMLN];
};
-int uname( uts )
-register struct utsname *uts; /* where to put results */
+int
+uname(struct utsname *uts)
{
- return(bc_uname(uts));
+ return (bc_uname(uts));
}
-int bc_uname( uts )
-struct utsname *uts;
+int
+bc_uname(struct utsname *uts)
{
struct n_utsname n_uts;
int ret;
@@ -67,9 +65,13 @@ struct utsname *uts;
memcpy(uts->sysname, n_uts.sysname, SYS_NMLN);
if (strlen(n_uts.sysname) > SYS_NMLN)
uts->sysname[SYS_NMLN-1] = '\0';
- memcpy(uts->nodename, n_uts.nodename, SYS_NDLN);
- if (strlen(n_uts.nodename) > SYS_NDLN)
- uts->nodename[SYS_NDLN-1] = '\0';
+
+ memcpy(uts->nodename, n_uts.nodename, SYS_NMLN);
+ memcpy(uts->nodeext, n_uts.nodename + SYS_NMLN,
+ SYS_NDLN - SYS_NMLN);
+ if (strlen(n_uts.nodename + SYS_NMLN) > SYS_NDLN - SYS_NMLN)
+ uts->nodeext[SYS_NDLN - SYS_NMLN - 1] = '\0';
+
memcpy(uts->release, n_uts.release, SYS_NMLN);
if (strlen(n_uts.release) > SYS_NMLN)
uts->release[SYS_NMLN-1] = '\0';
@@ -81,5 +83,5 @@ struct utsname *uts;
uts->machine[SYS_NMLN-1] = '\0';
}
- return(ret);
+ return (ret);
}
diff --git a/usr/src/lib/libc/Makefile b/usr/src/lib/libc/Makefile
index b75390cbcc..93934954dd 100644
--- a/usr/src/lib/libc/Makefile
+++ b/usr/src/lib/libc/Makefile
@@ -127,7 +127,7 @@ $(ROOTVARIANTDIR64)/$(VAR1_DYNLIB64) := FILEMODE= 755
.KEEP_STATE:
-all: lib32 $(BUILD64) .WAIT lib64 .WAIT etc THIRDPARTYLICENSE
+all: all_h lib32 $(BUILD64) .WAIT lib64 .WAIT etc THIRDPARTYLICENSE
THIRDPARTYLICENSE: extract-copyright
$(RM) $@
diff --git a/usr/src/lib/libc/inc/base_inlines.h b/usr/src/lib/libc/inc/base_inlines.h
index 1753a3e044..c9bf36a90c 100644
--- a/usr/src/lib/libc/inc/base_inlines.h
+++ b/usr/src/lib/libc/inc/base_inlines.h
@@ -27,8 +27,7 @@
#ifndef _BASE_INLINES_H
#define _BASE_INLINES_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#if !defined(__lint) && defined(__GNUC__)
@@ -41,7 +40,7 @@
*/
#if defined(__sparc)
-extern __inline__ double
+extern __GNU_INLINE double
__mul_set(double x, double y, int *pe)
{
double __result;
@@ -49,19 +48,19 @@ __mul_set(double x, double y, int *pe)
uint32_t *__addr = &__fsr;
__asm__ __volatile__(
- "fmuld %4, %5, %0\n\t"
- "st %%fsr, %3\n\t"
- "ld %3, %2\n\t"
- "and %2, 1, %2\n\t"
- "st %2, %1"
- : "=&e" (__result), "=m" (*pe), "=r" (__fsr), "=m" (*__addr)
- : "e" (x), "e" (y));
+ "fmuld %4, %5, %0\n\t"
+ "st %%fsr, %3\n\t"
+ "ld %3, %2\n\t"
+ "and %2, 1, %2\n\t"
+ "st %2, %1"
+ : "=&e" (__result), "=m" (*pe), "=r" (__fsr), "=m" (*__addr)
+ : "e" (x), "e" (y));
return (__result);
}
#endif /* __sparc */
#if defined(__sparc)
-extern __inline__ double
+extern __GNU_INLINE double
__div_set(double x, double y, int *pe)
{
double __result;
@@ -69,37 +68,37 @@ __div_set(double x, double y, int *pe)
uint32_t *__addr = &__fsr;
__asm__ __volatile__(
- "fdivd %4, %5, %0\n\t"
- "st %%fsr, %3\n\t"
- "ld %3, %2\n\t"
- "and %2, 1, %2\n\t"
- "st %2, %1"
- : "=&e" (__result), "=m" (*pe), "=r" (__fsr), "=m" (*__addr)
- : "e" (x), "e" (y));
+ "fdivd %4, %5, %0\n\t"
+ "st %%fsr, %3\n\t"
+ "ld %3, %2\n\t"
+ "and %2, 1, %2\n\t"
+ "st %2, %1"
+ : "=&e" (__result), "=m" (*pe), "=r" (__fsr), "=m" (*__addr)
+ : "e" (x), "e" (y));
return (__result);
}
#endif /* __sparc */
#if defined(__sparc)
-extern __inline__ double
+extern __GNU_INLINE double
__dabs(double *x)
{
double __result;
__asm__ __volatile__(
#if defined(__sparcv9)
- "fabsd %1, %0"
+ "fabsd %1, %0"
#else
- "fabss %1, %0"
+ "fabss %1, %0"
#endif
- : "=e" (__result)
- : "0" (*x));
+ : "=e" (__result)
+ : "0" (*x));
return (__result);
}
#endif /* __sparc */
#if defined(__sparc)
-extern __inline__ void
+extern __GNU_INLINE void
__get_ieee_flags(__ieee_flags_type *b)
{
uint32_t __fsr;
@@ -109,16 +108,16 @@ __get_ieee_flags(__ieee_flags_type *b)
* needed; however, it warns as it does so. Add them here for now.
*/
__asm__ __volatile__(
- "st %%fsr, %0\n\t"
- "st %%g0, %1\n\t"
- "ld %1, %%fsr\n\t"
- "nop; nop; nop"
- : "=m" (*b), "=m" (__fsr));
+ "st %%fsr, %0\n\t"
+ "st %%g0, %1\n\t"
+ "ld %1, %%fsr\n\t"
+ "nop; nop; nop"
+ : "=m" (*b), "=m" (__fsr));
}
#endif /* __sparc */
#if defined(__sparc)
-extern __inline__ void
+extern __GNU_INLINE void
__set_ieee_flags(__ieee_flags_type *b)
{
/*
@@ -126,10 +125,10 @@ __set_ieee_flags(__ieee_flags_type *b)
* needed; however, it warns as it does so. Add them here for now.
*/
__asm__ __volatile__(
- "ld %0, %%fsr\n\t"
- "nop; nop; nop"
- : /* no outputs */
- : "m" (*b));
+ "ld %0, %%fsr\n\t"
+ "nop; nop; nop"
+ : /* no outputs */
+ : "m" (*b));
}
#endif /* __sparc */
diff --git a/usr/src/lib/libc/inc/thr_inlines.h b/usr/src/lib/libc/inc/thr_inlines.h
index 55bd645428..7376109aa5 100644
--- a/usr/src/lib/libc/inc/thr_inlines.h
+++ b/usr/src/lib/libc/inc/thr_inlines.h
@@ -27,54 +27,56 @@
#ifndef _THR_INLINES_H
#define _THR_INLINES_H
-#pragma ident "%Z%%M% %I% %E% SMI"
+#include <sys/ccompile.h>
#if !defined(__lint) && defined(__GNUC__)
/* inlines for gcc */
-extern __inline__ ulwp_t *
+extern __GNU_INLINE ulwp_t *
_curthread(void)
{
-#if defined(__amd64)
ulwp_t *__value;
- __asm__ __volatile__("movq %%fs:0, %0" : "=r" (__value));
+ __asm__ __volatile__(
+#if defined(__amd64)
+ "movq %%fs:0, %0\n\t"
#elif defined(__i386)
- ulwp_t *__value;
- __asm__ __volatile__("movl %%gs:0, %0" : "=r" (__value));
+ "movl %%gs:0, %0\n\t"
#elif defined(__sparc)
- register ulwp_t *__value __asm__("g7");
+ ".register %%g7, #scratch\n\t"
+ "mov %%g7, %0\n\t"
#else
#error "port me"
#endif
+ : "=r" (__value));
return (__value);
}
-extern __inline__ ulwp_t *
+extern __GNU_INLINE ulwp_t *
__curthread(void)
{
ulwp_t *__value;
__asm__ __volatile__(
#if defined(__amd64)
- "movq %%fs:0, %0\n\t"
+ "movq %%fs:0, %0\n\t"
#elif defined(__i386)
- "movl %%gs:0, %0\n\t"
+ "movl %%gs:0, %0\n\t"
#elif defined(__sparcv9)
- ".register %%g7, #scratch\n\t"
- "ldx [%%g7 + 80], %0\n\t"
+ ".register %%g7, #scratch\n\t"
+ "ldx [%%g7 + 80], %0\n\t"
#elif defined(__sparc)
- ".register %%g7, #scratch\n\t"
- "ld [%%g7 + 80], %0\n\t"
+ ".register %%g7, #scratch\n\t"
+ "ld [%%g7 + 80], %0\n\t"
#else
#error "port me"
#endif
- "1:"
- : "=r" (__value)
- : : "cc");
+ "1:"
+ : "=r" (__value)
+ : : "cc");
return (__value);
}
-extern __inline__ greg_t
+extern __GNU_INLINE greg_t
stkptr(void)
{
#if defined(__amd64)
@@ -89,207 +91,207 @@ stkptr(void)
return (__value);
}
-extern __inline__ hrtime_t
+extern __GNU_INLINE hrtime_t
gethrtime(void) /* note: caller-saved registers are trashed */
{
#if defined(__amd64)
hrtime_t __value;
__asm__ __volatile__(
- "movl $3, %%eax\n\t"
- "int $0xd2"
- : "=a" (__value)
- : : "rcx", "rdx", "rsi", "rdi", "r8", "r9", "r10", "r11", "cc");
+ "movl $3, %%eax\n\t"
+ "int $0xd2"
+ : "=a" (__value)
+ : : "rcx", "rdx", "rsi", "rdi", "r8", "r9", "r10", "r11", "cc");
#elif defined(__i386)
hrtime_t __value;
__asm__ __volatile__(
- "movl $3, %%eax\n\t"
- "int $0xd2"
- : "=A" (__value)
- : : "ecx", "cc");
+ "movl $3, %%eax\n\t"
+ "int $0xd2"
+ : "=A" (__value)
+ : : "ecx", "cc");
#elif defined(__sparcv9)
register hrtime_t __value __asm__("o0");
__asm__ __volatile__(
- "ta 0x24\n\t"
- "sllx %%o0, 32, %0\n\t"
- "or %%o1, %0, %0"
- : "=r" (__value)
- : : "o1", "o2", "o3", "o4", "o5", "cc");
+ "ta 0x24\n\t"
+ "sllx %%o0, 32, %0\n\t"
+ "or %%o1, %0, %0"
+ : "=r" (__value)
+ : : "o1", "o2", "o3", "o4", "o5", "cc");
#elif defined(__sparc)
register hrtime_t __value __asm__("o0");
__asm__ __volatile__(
- "ta 0x24"
- : "=r" (__value)
- : : "o2", "o3", "o4", "o5", "cc");
+ "ta 0x24"
+ : "=r" (__value)
+ : : "o2", "o3", "o4", "o5", "cc");
#else
#error "port me"
#endif
return (__value);
}
-extern __inline__ int
+extern __GNU_INLINE int
set_lock_byte(volatile uint8_t *__lockp)
{
int __value;
#if defined(__x86)
__asm__ __volatile__(
- "movl $1, %0\n\t"
- "xchgb %%dl, %1"
- : "+d" (__value), "+m" (*__lockp));
+ "movl $1, %0\n\t"
+ "xchgb %%dl, %1"
+ : "+d" (__value), "+m" (*__lockp));
#elif defined(__sparc)
__asm__ __volatile__(
- "ldstub %1, %0\n\t"
- "membar #LoadLoad"
- : "=r" (__value), "+m" (*__lockp));
+ "ldstub %1, %0\n\t"
+ "membar #LoadLoad"
+ : "=r" (__value), "+m" (*__lockp));
#else
#error "port me"
#endif
return (__value);
}
-extern __inline__ uint32_t
+extern __GNU_INLINE uint32_t
atomic_swap_32(volatile uint32_t *__memory, uint32_t __value)
{
#if defined(__x86)
__asm__ __volatile__(
- "xchgl %0, %1"
- : "+q" (__value), "+m" (*__memory));
+ "xchgl %0, %1"
+ : "+q" (__value), "+m" (*__memory));
return (__value);
#elif defined(__sparc)
uint32_t __tmp1, __tmp2;
__asm__ __volatile__(
- "ld [%3], %0\n\t"
- "1:\n\t"
- "mov %4, %1\n\t"
- "cas [%3], %0, %1\n\t"
- "cmp %0, %1\n\t"
- "bne,a,pn %%icc, 1b\n\t"
- " mov %1, %0"
- : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
- : "r" (__memory), "r" (__value)
- : "cc");
+ "ld [%3], %0\n\t"
+ "1:\n\t"
+ "mov %4, %1\n\t"
+ "cas [%3], %0, %1\n\t"
+ "cmp %0, %1\n\t"
+ "bne,a,pn %%icc, 1b\n\t"
+ " mov %1, %0"
+ : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
+ : "r" (__memory), "r" (__value)
+ : "cc");
return (__tmp2);
#else
#error "port me"
#endif
}
-extern __inline__ uint32_t
+extern __GNU_INLINE uint32_t
atomic_cas_32(volatile uint32_t *__memory, uint32_t __cmp, uint32_t __newvalue)
{
uint32_t __oldvalue;
#if defined(__x86)
__asm__ __volatile__(
- "lock; cmpxchgl %3, %0"
- : "=m" (*__memory), "=a" (__oldvalue)
- : "a" (__cmp), "r" (__newvalue));
+ "lock; cmpxchgl %3, %0"
+ : "=m" (*__memory), "=a" (__oldvalue)
+ : "a" (__cmp), "r" (__newvalue));
#elif defined(__sparc)
__asm__ __volatile__(
- "cas [%2], %3, %1"
- : "=m" (*__memory), "=&r" (__oldvalue)
- : "r" (__memory), "r" (__cmp), "1" (__newvalue));
+ "cas [%2], %3, %1"
+ : "=m" (*__memory), "=&r" (__oldvalue)
+ : "r" (__memory), "r" (__cmp), "1" (__newvalue));
#else
#error "port me"
#endif
return (__oldvalue);
}
-extern __inline__ void
+extern __GNU_INLINE void
atomic_inc_32(volatile uint32_t *__memory)
{
#if defined(__x86)
__asm__ __volatile__(
- "lock; incl %0"
- : "+m" (*__memory));
+ "lock; incl %0"
+ : "+m" (*__memory));
#elif defined(__sparc)
uint32_t __tmp1, __tmp2;
__asm__ __volatile__(
- "ld [%3], %0\n\t"
- "1:\n\t"
- "add %0, 1, %1\n\t"
- "cas [%3], %0, %1\n\t"
- "cmp %0, %1\n\t"
- "bne,a,pn %%icc, 1b\n\t"
- " mov %1, %0"
- : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
- : "r" (__memory)
- : "cc");
+ "ld [%3], %0\n\t"
+ "1:\n\t"
+ "add %0, 1, %1\n\t"
+ "cas [%3], %0, %1\n\t"
+ "cmp %0, %1\n\t"
+ "bne,a,pn %%icc, 1b\n\t"
+ " mov %1, %0"
+ : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
+ : "r" (__memory)
+ : "cc");
#else
#error "port me"
#endif
}
-extern __inline__ void
+extern __GNU_INLINE void
atomic_dec_32(volatile uint32_t *__memory)
{
#if defined(__x86)
__asm__ __volatile__(
- "lock; decl %0"
- : "+m" (*__memory));
+ "lock; decl %0"
+ : "+m" (*__memory));
#elif defined(__sparc)
uint32_t __tmp1, __tmp2;
__asm__ __volatile__(
- "ld [%3], %0\n\t"
- "1:\n\t"
- "sub %0, 1, %1\n\t"
- "cas [%3], %0, %1\n\t"
- "cmp %0, %1\n\t"
- "bne,a,pn %%icc, 1b\n\t"
- " mov %1, %0"
- : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
- : "r" (__memory)
- : "cc");
+ "ld [%3], %0\n\t"
+ "1:\n\t"
+ "sub %0, 1, %1\n\t"
+ "cas [%3], %0, %1\n\t"
+ "cmp %0, %1\n\t"
+ "bne,a,pn %%icc, 1b\n\t"
+ " mov %1, %0"
+ : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
+ : "r" (__memory)
+ : "cc");
#else
#error "port me"
#endif
}
-extern __inline__ void
+extern __GNU_INLINE void
atomic_and_32(volatile uint32_t *__memory, uint32_t __bits)
{
#if defined(__x86)
__asm__ __volatile__(
- "lock; andl %1, %0"
- : "+m" (*__memory)
- : "r" (__bits));
+ "lock; andl %1, %0"
+ : "+m" (*__memory)
+ : "r" (__bits));
#elif defined(__sparc)
uint32_t __tmp1, __tmp2;
__asm__ __volatile__(
- "ld [%3], %0\n\t"
- "1:\n\t"
- "and %0, %4, %1\n\t"
- "cas [%3], %0, %1\n\t"
- "cmp %0, %1\n\t"
- "bne,a,pn %%icc, 1b\n\t"
- " mov %1, %0"
- : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
- : "r" (__memory), "r" (__bits)
- : "cc");
+ "ld [%3], %0\n\t"
+ "1:\n\t"
+ "and %0, %4, %1\n\t"
+ "cas [%3], %0, %1\n\t"
+ "cmp %0, %1\n\t"
+ "bne,a,pn %%icc, 1b\n\t"
+ " mov %1, %0"
+ : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
+ : "r" (__memory), "r" (__bits)
+ : "cc");
#else
#error "port me"
#endif
}
-extern __inline__ void
+extern __GNU_INLINE void
atomic_or_32(volatile uint32_t *__memory, uint32_t __bits)
{
#if defined(__x86)
__asm__ __volatile__(
- "lock; orl %1, %0"
- : "+m" (*__memory)
- : "r" (__bits));
+ "lock; orl %1, %0"
+ : "+m" (*__memory)
+ : "r" (__bits));
#elif defined(__sparc)
uint32_t __tmp1, __tmp2;
__asm__ __volatile__(
- "ld [%3], %0\n\t"
- "1:\n\t"
- "or %0, %4, %1\n\t"
- "cas [%3], %0, %1\n\t"
- "cmp %0, %1\n\t"
- "bne,a,pn %%icc, 1b\n\t"
- " mov %1, %0"
- : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
- : "r" (__memory), "r" (__bits)
- : "cc");
+ "ld [%3], %0\n\t"
+ "1:\n\t"
+ "or %0, %4, %1\n\t"
+ "cas [%3], %0, %1\n\t"
+ "cmp %0, %1\n\t"
+ "bne,a,pn %%icc, 1b\n\t"
+ " mov %1, %0"
+ : "=&r" (__tmp1), "=&r" (__tmp2), "=m" (*__memory)
+ : "r" (__memory), "r" (__bits)
+ : "cc");
#else
#error "port me"
#endif
@@ -297,14 +299,14 @@ atomic_or_32(volatile uint32_t *__memory, uint32_t __bits)
#if defined(__sparc) /* only needed on sparc */
-extern __inline__ ulong_t
+extern __GNU_INLINE ulong_t
caller(void)
{
register ulong_t __value __asm__("i7");
return (__value);
}
-extern __inline__ ulong_t
+extern __GNU_INLINE ulong_t
getfp(void)
{
register ulong_t __value __asm__("fp");
@@ -315,7 +317,7 @@ getfp(void)
#if defined(__x86) /* only needed on x86 */
-extern __inline__ void
+extern __GNU_INLINE void
ht_pause(void)
{
__asm__ __volatile__("rep; nop");
diff --git a/usr/src/cmd/fps/fptest/fpstestmsg.h b/usr/src/lib/libc/port/fp/floatundidf.c
index afd7fa231e..276c1b12c7 100644
--- a/usr/src/cmd/fps/fptest/fpstestmsg.h
+++ b/usr/src/lib/libc/port/fp/floatundidf.c
@@ -2,8 +2,9 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -18,29 +19,29 @@
*
* CDDL HEADER END
*/
-
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#ifndef _FPSTESTMSG_H
-#define _FPSTESTMSG_H
+#include "quadint.h"
-#pragma ident "%Z%%M% %I% %E% SMI"
+#pragma weak __floatundidf = ___floatundidf
-#ifdef __cplusplus
-extern "C" {
-#endif
+/*
+ * Convert an unsigned longlong_t to a double-precision floating point value.
+ */
+double
+___floatundidf(u_longlong_t a)
+{
+ union uu aa;
+ double d;
-#define FPSM_01 "\nFPU System (Reliability) Test for CPU=%d Stress Level=%d"
-#define FPSM_02 "\nLapack %s precision test. CPU=%d"
-#define FPSM_03 "\n%s on architecture = %s"
-#define FPSM_04 "\nPASS limit (modulo): Low=%d Med=%d High=%d"
-#define FPSM_05 "\nLapack Stress Level=%d"
+ aa.q = a;
+ d = aa.ul[H];
+ d *= (1 << HALF_BITS);
+ d *= (1 << HALF_BITS);
+ d += aa.ul[L];
-#ifdef __cplusplus
+ return (d);
}
-#endif
-
-#endif /* _FPSTESTMSG_H */
diff --git a/usr/src/cmd/fps/fptest/iflush.s b/usr/src/lib/libc/port/fp/floatundisf.c
index 2d443c524d..0afb7f8e88 100644
--- a/usr/src/cmd/fps/fptest/iflush.s
+++ b/usr/src/lib/libc/port/fp/floatundisf.c
@@ -2,8 +2,9 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -18,40 +19,29 @@
*
* CDDL HEADER END
*/
-
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <sys/asm_linkage.h>
-
-#define NOP_4 nop;nop;nop;nop
-#define NOP_16 NOP_4;NOP_4;NOP_4;NOP_4
-#define NOP_64 NOP_16;NOP_16;NOP_16;NOP_16
-#define NOP_256 NOP_64;NOP_64;NOP_64;NOP_64
-#define NOP_1K NOP_256;NOP_256;NOP_256;NOP_256
-#define NOP_4K NOP_1K;NOP_1K;NOP_1K;NOP_1K
-#define NOP_16K NOP_4K;NOP_4K;NOP_4K;NOP_4K
+#include "quadint.h"
-/* flushes the icache using a series of nops */
+#pragma weak __floatundisf = ___floatundisf
-#ifdef __lint
-
-void
-iflush(void)
+/*
+ * Convert an unsigned longlong_t to a single-precision floating point value.
+ */
+float
+___floatundisf(u_longlong_t a)
{
-}
+ union uu aa;
+ double d;
-#else
+ aa.q = a;
+ d = aa.ul[H];
+ d *= (1 << HALF_BITS);
+ d *= (1 << HALF_BITS);
+ d += aa.ul[L];
-ENTRY(iflush)
- NOP_4K
- NOP_4K
- retl
- nop
-SET_SIZE(iflush)
-
-#endif
+ return ((float)d);
+}
diff --git a/usr/src/lib/libc/port/mapfile-vers b/usr/src/lib/libc/port/mapfile-vers
index 59999885a5..c2313fc09e 100644
--- a/usr/src/lib/libc/port/mapfile-vers
+++ b/usr/src/lib/libc/port/mapfile-vers
@@ -2984,6 +2984,8 @@ $if sparc32
__cmpdi2;
__floatdidf;
__floatdisf;
+ __floatundidf;
+ __floatundisf;
__lshrdi3;
__muldi3;
__ucmpdi2;
diff --git a/usr/src/lib/libc/sparc/Makefile.com b/usr/src/lib/libc/sparc/Makefile.com
index 045b78ba86..97aa14a7d6 100644
--- a/usr/src/lib/libc/sparc/Makefile.com
+++ b/usr/src/lib/libc/sparc/Makefile.com
@@ -372,6 +372,8 @@ PORTFP= \
divdi3.o \
floatdidf.o \
floatdisf.o \
+ floatundidf.o \
+ floatundisf.o \
lshrdi3.o \
moddi3.o \
muldi3.o \
@@ -1202,8 +1204,9 @@ TIL= \
$(TIL:%=pics/%) := CFLAGS += $(LIBCBASE)/threads/sparc.il
-# This hack is needed until the sparc gcc is fixed for TLS
-pics/tls_data.o := CC = env 'CW_NO_SHADOW=1' $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
+# This hack is needed because sparc GCC3 generates DWARF data about TLS which
+# The Sun assembler cannot process
+$(__GNUC3)pics/tls_data.o := CC = env 'CW_NO_SHADOW=1' $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
# special kludge for inlines with 'cas':
pics/rwlock.o pics/synch.o pics/lwp.o pics/door_calls.o := \
diff --git a/usr/src/lib/libc/sparc/crt/_rtld.c b/usr/src/lib/libc/sparc/crt/_rtld.c
index 132aad09c0..caa2919674 100644
--- a/usr/src/lib/libc/sparc/crt/_rtld.c
+++ b/usr/src/lib/libc/sparc/crt/_rtld.c
@@ -62,6 +62,15 @@
#define SYSCONFIG (*(funcs[SYSCONFIG_F]))
/*
+ * GCC will not emit unused static functions unless specifically told it must
+ */
+#ifdef __GNUC__
+#define __USED __attribute__((used))
+#else
+#define __USED
+#endif
+
+/*
* Alias ld.so entry point -- receives a bootstrap structure and a vector
* of strings. The vector is "well-known" to us, and consists of pointers
* to string constants. This aliasing bootstrap requires no relocation in
@@ -70,7 +79,7 @@
* order to maintain the "no bootstrapping" requirement -- it calls only
* local functions, uses no intrinsics, etc.
*/
-static void *
+static void * __USED
__rtld(Elf32_Boot *ebp, const char *strings[], int (*funcs[])())
{
int i, p; /* working */
diff --git a/usr/src/lib/libc/sparcv9/Makefile.com b/usr/src/lib/libc/sparcv9/Makefile.com
index 226547fa6d..462d07e8a2 100644
--- a/usr/src/lib/libc/sparcv9/Makefile.com
+++ b/usr/src/lib/libc/sparcv9/Makefile.com
@@ -1136,8 +1136,9 @@ TIL= \
$(TIL:%=pics/%) := CFLAGS64 += $(LIBCBASE)/threads/sparcv9.il
-# This hack is needed until the sparc gcc is fixed for TLS
-pics/tls_data.o := CC = env 'CW_NO_SHADOW=1' $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
+# This hack is needed because sparc GCC3 generates DWARF data about TLS which
+# The Sun assembler cannot process
+$(__GNUC3)pics/tls_data.o := CC = env 'CW_NO_SHADOW=1' $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
# Files in fp, port/fp subdirectories that need base.il inline template
IL= \
diff --git a/usr/src/lib/libc_db/common/thread_db.c b/usr/src/lib/libc_db/common/thread_db.c
index 78989e1152..77c44b2782 100644
--- a/usr/src/lib/libc_db/common/thread_db.c
+++ b/usr/src/lib/libc_db/common/thread_db.c
@@ -824,7 +824,8 @@ __td_ta_tsd_iter(td_thragent_t *ta_p, td_key_iter_f *cb, void *cbdata_p)
else {
for (key = 1; key < numkeys; key++) {
destruct32 = destructors32[key];
- if (destruct32 != (caddr32_t)TSD_UNALLOCATED &&
+ if ((destruct32 !=
+ (caddr32_t)(uintptr_t)TSD_UNALLOCATED) &&
(*cb)(key, (PFrV)(uintptr_t)destruct32,
cbdata_p))
break;
diff --git a/usr/src/lib/libctf/common/mapfile-vers b/usr/src/lib/libctf/common/mapfile-vers
index c218edc37c..031748c497 100644
--- a/usr/src/lib/libctf/common/mapfile-vers
+++ b/usr/src/lib/libctf/common/mapfile-vers
@@ -68,6 +68,7 @@ SYMBOL_VERSION SUNWprivate_1.2 {
ctf_member_info;
ctf_parent_file;
ctf_parent_name;
+ ctf_parent_label;
ctf_set_array;
ctf_type_align;
ctf_type_cmp;
diff --git a/usr/src/lib/libdns_sd/java/com/apple/dnssd/DNSSDRecordRegistrar.java b/usr/src/lib/libdns_sd/java/com/apple/dnssd/DNSSDRecordRegistrar.java
index 366d83476b..6983e279fa 100644
--- a/usr/src/lib/libdns_sd/java/com/apple/dnssd/DNSSDRecordRegistrar.java
+++ b/usr/src/lib/libdns_sd/java/com/apple/dnssd/DNSSDRecordRegistrar.java
@@ -5,9 +5,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -25,9 +25,6 @@ Re-licensed mDNSResponder daemon source code under Apache License, Version 2.0
Revision 1.1 2006/06/20 23:00:12 rpantos
<rdar://problem/3839132> Java needs to implement DNSServiceRegisterRecord equivalent
-
-ident "%Z%%M% %I% %E% SMI"
-
*/
@@ -38,7 +35,7 @@ package com.apple.dnssd;
public interface DNSSDRecordRegistrar extends DNSSDService
{
- /** Register an independent {@link DNSRecord}.<P>
+ /** Register an independent {@link DNSRecord}.<P>
@param flags
Possible values are SHARED or UNIQUE (see flag type definitions for details).
<P>
@@ -55,25 +52,22 @@ public interface DNSSDRecordRegistrar extends DNSSDService
as defined in nameser.h.
<P>
@param rrclass
- The class of the resource record, as defined in nameser.h
+ The class of the resource record, as defined in nameser.h
(usually 1 for the Internet class).
<P>
- @param rData
+ @param rdata
The new rdata as it is to appear in the DNS record.
<P>
@param ttl
The time to live of the resource record, in seconds. Pass 0 to use a default value.
<P>
- @param listener
- This object will get called when the service is registered.
- <P>
@return A {@link DNSSDService} that can be used to abort the record registration.
@throws SecurityException If a security manager is present and denies <tt>RuntimePermission("getDNSSDInstance")</tt>.
@see RuntimePermission
*/
- public DNSRecord registerRecord( int flags, int ifIndex, String fullname, int rrtype,
+ public DNSRecord registerRecord( int flags, int ifIndex, String fullname, int rrtype,
int rrclass, byte[] rdata, int ttl)
throws DNSSDException;
-}
+}
diff --git a/usr/src/lib/libdtrace/common/dt_module.c b/usr/src/lib/libdtrace/common/dt_module.c
index 1490f775c3..c74fb527a0 100644
--- a/usr/src/lib/libdtrace/common/dt_module.c
+++ b/usr/src/lib/libdtrace/common/dt_module.c
@@ -646,6 +646,17 @@ dt_module_getctf(dtrace_hdl_t *dtp, dt_module_t *dmp)
goto err;
}
+ /*
+ * If the label we claim the parent must have does not match
+ * its actual topmost label (XXX: Should check all?), ignore
+ * the CTF entirely rather than acquiring possibly bad type
+ * references.
+ */
+ if (strcmp(ctf_label_topmost(pfp), ctf_parent_label(dmp->dm_ctfp)) != 0) {
+ (void) dt_set_errno(dtp, EDT_NOCTF);
+ goto err;
+ }
+
if (ctf_import(dmp->dm_ctfp, pfp) == CTF_ERR) {
dtp->dt_ctferr = ctf_errno(dmp->dm_ctfp);
(void) dt_set_errno(dtp, EDT_CTF);
diff --git a/usr/src/lib/libkmsagent/Makefile.com b/usr/src/lib/libkmsagent/Makefile.com
index cba1111887..4b1fe9dd12 100644
--- a/usr/src/lib/libkmsagent/Makefile.com
+++ b/usr/src/lib/libkmsagent/Makefile.com
@@ -85,8 +85,7 @@ CCOBJS = $(LIB_CPP_OBJECTS:%.o=pics/%.o) \
LIBS = $(DYNLIB)
-CCNEEDED = -lCstd -lCrun
-$(__GNUC)CCNEEDED = -L$(SFWLIBDIR) -R$(SFWLIBDIR) -lstdc++ -lgcc_s
+$(__SUNC)CCNEEDED = -lCstd -lCrun
LDLIBS += $(CCNEEDED) -lpam -lc -lsoftcrypto -lcrypto -lssl -lsocket
LDLIBS64 += $(CCNEEDED) -lpam -lc -lsoftcrypto -lcrypto -lssl -lsocket
diff --git a/usr/src/lib/libkmsagent/amd64/Makefile b/usr/src/lib/libkmsagent/amd64/Makefile
index 1268f351e4..c1ec486658 100644
--- a/usr/src/lib/libkmsagent/amd64/Makefile
+++ b/usr/src/lib/libkmsagent/amd64/Makefile
@@ -31,13 +31,6 @@ include $(SRC)/lib/Makefile.lib.64
# CCNEEDED must be modified for 64-bit because the default only includes
# -lCrun
#
-CCNEEDED = -lCstd -lCrun
-
-#
-# If linking with gcc, we must fix the CCNEEDED and LDLIBS64
-# to get a clean link without duplicates.
-#
-$(__GNUC)CCNEEDED = -L$(SFWLIBDIR) -R$(SFWLIBDIR) -lstdc++ -lgcc_s
-$(__GNUC)LDLIBS64 += $(CCNEEDED)
+$(__SUNC)CCNEEDED = -lCstd -lCrun
install: all $(ROOTLIBS64) $(ROOTLINKS64)
diff --git a/usr/src/lib/libkmsagent/common/KMSAgent.cpp b/usr/src/lib/libkmsagent/common/KMSAgent.cpp
index 3d34ea571f..bb95e737c6 100644
--- a/usr/src/lib/libkmsagent/common/KMSAgent.cpp
+++ b/usr/src/lib/libkmsagent/common/KMSAgent.cpp
@@ -1518,8 +1518,9 @@ KMS_AGENT_STATUS KMSAgent_CreateKey (
CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
struct KMS_Agent::KMS_Agent__DataUnit
- stDataUnit = {"", "", "", "",
- (KMS_Agent::KMS_Agent__DataUnitState) 0};
+ stDataUnit = {(char *)"", (char *)"", (char *)"",
+ (char *)"",
+ (KMS_Agent::KMS_Agent__DataUnitState) 0};
struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
struct KMS_Agent::KMS_Agent__CreateKeyResponse oResponse;
@@ -2120,7 +2121,8 @@ KMS_AGENT_STATUS KMSAgent_DisassociateDataUnitKeys (
CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {"", "", "", "",
+ struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {(char *)"",
+ (char *)"", (char *)"", (char *)"",
(KMS_Agent::KMS_Agent__DataUnitState) 0};
struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
@@ -2262,7 +2264,8 @@ KMS_AGENT_STATUS KMSAgent_RetrieveKey (
RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
}
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {"", "", "", "",
+ struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {
+ (char *)"", (char *)"", (char *)"", (char *)"",
(KMS_Agent::KMS_Agent__DataUnitState) 0};
struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
@@ -3146,7 +3149,8 @@ KMS_AGENT_STATUS KMSAgent_RetrieveDataUnitKeys (
// prepare args to soap transaction
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {"", "", "", "",
+ struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {
+ (char *)"", (char *)"", (char *)"", (char *)"",
(KMS_Agent::KMS_Agent__DataUnitState) 0};
struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
@@ -3380,7 +3384,8 @@ KMS_AGENT_STATUS KMSAgent_RetrieveProtectAndProcessKey (
CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit ={"", "", "", "",
+ struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {
+ (char *)"", (char *)"", (char *)"", (char *)"",
(KMS_Agent::KMS_Agent__DataUnitState) 0};
struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
diff --git a/usr/src/lib/libkmsagent/sparcv9/Makefile b/usr/src/lib/libkmsagent/sparcv9/Makefile
index 1268f351e4..c1ec486658 100644
--- a/usr/src/lib/libkmsagent/sparcv9/Makefile
+++ b/usr/src/lib/libkmsagent/sparcv9/Makefile
@@ -31,13 +31,6 @@ include $(SRC)/lib/Makefile.lib.64
# CCNEEDED must be modified for 64-bit because the default only includes
# -lCrun
#
-CCNEEDED = -lCstd -lCrun
-
-#
-# If linking with gcc, we must fix the CCNEEDED and LDLIBS64
-# to get a clean link without duplicates.
-#
-$(__GNUC)CCNEEDED = -L$(SFWLIBDIR) -R$(SFWLIBDIR) -lstdc++ -lgcc_s
-$(__GNUC)LDLIBS64 += $(CCNEEDED)
+$(__SUNC)CCNEEDED = -lCstd -lCrun
install: all $(ROOTLIBS64) $(ROOTLINKS64)
diff --git a/usr/src/lib/libnisdb/db_dictionary.cc b/usr/src/lib/libnisdb/db_dictionary.cc
index d618529a28..a642bb3f09 100644
--- a/usr/src/lib/libnisdb/db_dictionary.cc
+++ b/usr/src/lib/libnisdb/db_dictionary.cc
@@ -26,8 +26,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include "db_headers.h"
#include "db_entry.h"
#include "db_dictionary.h"
@@ -1509,7 +1507,7 @@ db_dictionary::find_table(char *tab, db_table_desc **where,
db *res;
int lstat;
db_status dstat;
- char *myself = "db_dictionary::find_table";
+ const char *myself = "db_dictionary::find_table";
res = find_table_noLDAP(tab, where, searchDeferred, doLoad);
/* If found, or shouldn't try LDAP, we're done */
@@ -1992,9 +1990,9 @@ DECLMUTEXLOCK(db_standby_list);
static int
close_standby_list()
{
- db *database;
- int i, ret;
- char *myself = "close_standby_list";
+ db *database;
+ int i, ret;
+ const char *myself = "close_standby_list";
MUTEXLOCK(db_standby_list, "close_standby_list");
@@ -2046,8 +2044,8 @@ close_standby_list()
int
add_to_standby_list(db* database)
{
- int i;
- char *myself = "add_to_standby_list";
+ int i;
+ const char *myself = "add_to_standby_list";
MUTEXLOCK(db_standby_list, "add_to_standby_list");
@@ -2239,7 +2237,7 @@ db_dictionary::defer(char *table) {
WRITELOCK(this, DB_LOCK_ERROR, "w db_dictionary::defer");
db_table_desc *tbl = find_table_desc(table);
int res;
- char *myself = "db_dictionary::defer";
+ const char *myself = "db_dictionary::defer";
if (tbl != NULL) {
db_table_desc *clone, *savenext = tbl->next;
diff --git a/usr/src/lib/libnisdb/db_mindex.cc b/usr/src/lib/libnisdb/db_mindex.cc
index 9feb47045e..c3e8c22ea7 100644
--- a/usr/src/lib/libnisdb/db_mindex.cc
+++ b/usr/src/lib/libnisdb/db_mindex.cc
@@ -924,7 +924,7 @@ db_mindex::add(db_query *q, entry_object * obj)
bool_t valid;
db_index_entry *rp = NULL;
db_status rstat;
- char *myself = "db_mindex::add";
+ const char *myself = "db_mindex::add";
/*
* The argument q is only NULL when we know that there are
diff --git a/usr/src/lib/libnisdb/db_mindex2.cc b/usr/src/lib/libnisdb/db_mindex2.cc
index eb2553d7eb..bf3d8a82ee 100644
--- a/usr/src/lib/libnisdb/db_mindex2.cc
+++ b/usr/src/lib/libnisdb/db_mindex2.cc
@@ -149,9 +149,9 @@ extern void db_free_result(db_result *);
zotypes
updateMappingObj(__nis_table_mapping_t *t, char **objNameP,
bool_t *isMasterP) {
- zotypes type = NIS_BOGUS_OBJ;
- char *objName = 0;
- char *myself = "updateMappingObj";
+ zotypes type = NIS_BOGUS_OBJ;
+ char *objName = 0;
+ const char *myself = "updateMappingObj";
if (t != 0)
objName = t->objName;
@@ -216,7 +216,7 @@ mappingFromObj(nis_object *obj, int *statP) {
__nis_table_mapping_t *t;
__nis_buffer_t b = {0, 0};
char *objPath;
- char *myself = "mappingFromObj";
+ const char *myself = "mappingFromObj";
if (obj == 0 || obj->zo_data.zo_type == NIS_ENTRY_OBJ)
return (0);
@@ -252,7 +252,7 @@ selectMapping(db_table *table, nis_object *obj, db_query *qin,
bool_t doLDAP, asObj;
int stat = LDAP_SUCCESS;
char *objPath = 0, buf[MAXPATHLEN+NIS_MAXNAMELEN+1];
- char *myself = "db_mindex::selectMapping";
+ const char *myself = "db_mindex::selectMapping";
/*
* If 'table' is NULL, we try to find a mapping for 'obj'.
@@ -454,7 +454,7 @@ db_mindex::updateTableEntry(entry_object *e, int replace, char *tableName,
db_result *dbres;
db_query *qi;
nis_object *oldObj = 0;
- char *myself = "db_mindex::updateTableEntry";
+ const char *myself = "db_mindex::updateTableEntry";
if (table == 0 || e == 0)
return (LDAP_PARAM_ERROR);
@@ -688,7 +688,7 @@ static __nis_table_mapping_t *
findDirEntryMapping(__nis_table_mapping_t *t, entry_object *e, char **name) {
__nis_table_mapping_t *x;
char *entryName;
- char *myself = "findDirEntryMapping";
+ const char *myself = "findDirEntryMapping";
__nis_buffer_t b = {0, 0};
if (e == 0 || e->en_cols.en_cols_len != 2 ||
@@ -735,7 +735,7 @@ db_mindex::queryLDAP(db_query *qin, char *dbId, int doAsynch) {
nis_attr attr;
nis_object *dirObj;
db_status dstat;
- char *myself = "db_mindex::queryLDAP";
+ const char *myself = "db_mindex::queryLDAP";
if (!useLDAPrespository || table == 0)
return (LDAP_SUCCESS);
@@ -1173,7 +1173,7 @@ db_mindex::storeObjLDAP(__nis_table_mapping_t *t, nis_object *o) {
int numEa, doUnlock = 0;
db *dbase = 0;
db_mindex *dbm = 0;
- char *myself = "db_mindex::storeObjLDAP";
+ const char *myself = "db_mindex::storeObjLDAP";
if (t == 0 || o == 0)
return (LDAP_SUCCESS);
@@ -1287,7 +1287,7 @@ db_mindex::storeLDAP(db_query *qin, entry_object *obj, nis_object *o,
db_query *q, *qo, **qa;
__nis_rule_value_t *rv = 0;
int stat;
- char *myself = "db_mindex::storeLDAP";
+ const char *myself = "db_mindex::storeLDAP";
if (!useLDAPrespository || table == 0)
return (LDAP_SUCCESS);
diff --git a/usr/src/lib/libnisdb/db_mindex3.cc b/usr/src/lib/libnisdb/db_mindex3.cc
index 85c63c40d8..2c4485576c 100644
--- a/usr/src/lib/libnisdb/db_mindex3.cc
+++ b/usr/src/lib/libnisdb/db_mindex3.cc
@@ -99,7 +99,7 @@ db_mindex::entriesFromLDAP(__nis_table_mapping_t *t, db_query *qin, db_query *q,
__entries_from_ldap_arg_t *arg;
int stat;
db_status dstat;
- char *myself = "db_mindex::entriesFromLDAP";
+ const char *myself = "db_mindex::entriesFromLDAP";
arg = (__entries_from_ldap_arg_t *)am(myself, sizeof (*arg));
if (arg == 0) {
@@ -282,7 +282,7 @@ entriesFromLDAPthread(void *voidarg) {
/* Lock to prevent removal */
(void) __nis_lock_db_table(arg->tableName, 1, 0,
- "entriesFromLDAPthread");
+ (char *)"entriesFromLDAPthread");
/*
* It's possible that the db_mindex for the table has changed,
@@ -314,7 +314,7 @@ entriesFromLDAPthread(void *voidarg) {
stat = entriesFromLDAPreal(arg);
(void) __nis_ulock_db_table(arg->tableName, 1, 0,
- "entriesFromLDAPthread");
+ (char *)"entriesFromLDAPthread");
freeQuery(arg->q);
if (arg->dirObj != 0)
@@ -343,7 +343,7 @@ entriesFromLDAPreal(__entries_from_ldap_arg_t *arg) {
bool_t doEnum;
db_status dstat;
struct timeval start;
- char *myself =
+ const char *myself =
"db_mindex::entriesFromLDAPreal";
if (arg == 0)
@@ -708,9 +708,9 @@ entriesFromLDAPreal(__entries_from_ldap_arg_t *arg) {
o.zo_ttl = to->zo_ttl;
} else {
tc = 0;
- o.zo_owner = "";
- o.zo_group = "";
- o.zo_domain = "";
+ o.zo_owner = (char *)"";
+ o.zo_group = (char *)"";
+ o.zo_domain = (char *)"";
}
o.zo_data.zo_type = NIS_ENTRY_OBJ;
diff --git a/usr/src/lib/libnisdb/db_table.cc b/usr/src/lib/libnisdb/db_table.cc
index 8ac3bf0c3f..29710d6d10 100644
--- a/usr/src/lib/libnisdb/db_table.cc
+++ b/usr/src/lib/libnisdb/db_table.cc
@@ -26,8 +26,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdio.h>
#include <malloc.h>
#include <string.h>
@@ -398,7 +396,7 @@ db_table::allocateExpire(long oldSize, long newSize) {
db_status
db_table::allocateEnumArray(long oldSize, long newSize) {
entry_object **newEnumArray;
- char *myself = "db_table::allocateEnumArray";
+ char *myself = (char *)"db_table::allocateEnumArray";
if (enumCount.flag > 0) {
if (enumIndex.ptr == 0) {
@@ -558,7 +556,7 @@ db_table::get_entry(entryp where)
void
db_table::setEntryExp(entryp where, entry_obj *obj, int initialLoad) {
nis_object *o;
- char *myself = "db_table::setEntryExp";
+ char *myself = (char *)"db_table::setEntryExp";
/*
* If we don't know what type of object this is yet, we
@@ -601,7 +599,7 @@ db_table::setEntryExp(entryp where, entry_obj *obj, int initialLoad) {
if (o != 0) {
__nis_buffer_t b = {0, 0};
- bp2buf(myself, &b, "%s.%s",
+ bp2buf(myself, &b, (char *)"%s.%s",
o->zo_name, o->zo_domain);
t = getObjMapping(b.buf, 0, 1, 0, 0);
sfree(b.buf);
@@ -766,7 +764,7 @@ bool_t
db_table::configure(char *tablePath) {
long i;
struct timeval now;
- char *myself = "db_table::configure";
+ char *myself = (char *)"db_table::configure";
(void) gettimeofday(&now, NULL);
@@ -951,7 +949,7 @@ db_table::dupEntry(entry_object *obj, entryp loc) {
*/
void
db_table::setEnumMode(long enumNum) {
- char *myself = "setEnumMode";
+ const char *myself = "setEnumMode";
enumMode.flag++;
if (enumMode.flag == 1) {
@@ -969,7 +967,7 @@ db_table::setEnumMode(long enumNum) {
if (stat != DB_SUCCESS) {
enumMode.flag = 0;
enumCount.flag = 0;
- logmsg(MSG_NOTIMECHECK, LOG_ERR,
+ logmsg(MSG_NOTIMECHECK, LOG_ERR, (char *)
"%s: No memory for enum check array; entry removal disabled",
myself);
}
diff --git a/usr/src/lib/libnisdb/ldap_glob.c b/usr/src/lib/libnisdb/ldap_glob.c
index e422336b77..7943ec685f 100644
--- a/usr/src/lib/libnisdb/ldap_glob.c
+++ b/usr/src/lib/libnisdb/ldap_glob.c
@@ -24,8 +24,6 @@
* All rights reserved.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include "ldap_glob.h"
/* These are the local versions we use if the app doesn't provide overrides */
@@ -71,12 +69,12 @@ __local_addUpdate(log_entry_t type, char *name, int numAttr, nis_attr *attr,
}
int
-__local_lockTransLog(char *msg, int wr, int trylock) {
+__local_lockTransLog(const char *msg, int wr, int trylock) {
return (0);
}
void
-__local_unlockTransLog(char *msg, int wr) {
+__local_unlockTransLog(const char *msg, int wr) {
}
int
diff --git a/usr/src/lib/libnisdb/ldap_glob.h b/usr/src/lib/libnisdb/ldap_glob.h
index 38a2ed67c2..3f6ca0288b 100644
--- a/usr/src/lib/libnisdb/ldap_glob.h
+++ b/usr/src/lib/libnisdb/ldap_glob.h
@@ -24,8 +24,6 @@
* All rights reserved.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#ifndef _LDAP_GLOB_H
#define _LDAP_GLOB_H
@@ -61,8 +59,8 @@ extern int endTransaction(int xid, nis_object *dirObj);
extern int addUpdate(log_entry_t type, char *name,
int numAttr, nis_attr *attr, nis_object *obj,
nis_object *oldDir, uint32_t ttime);
-extern int lockTransLog(char *msg, int wr, int trylock);
-extern void unlockTransLog(char *msg, int wr);
+extern int lockTransLog(const char *msg, int wr, int trylock);
+extern void unlockTransLog(const char *msg, int wr);
extern int __nis_lock_db_table(nis_name name, int readwrite,
int *trylock, char *msg);
extern int __nis_ulock_db_table(nis_name name, int readwrite,
diff --git a/usr/src/lib/libnisdb/ldap_util.c b/usr/src/lib/libnisdb/ldap_util.c
index 9dfc04085f..6fc00d7493 100644
--- a/usr/src/lib/libnisdb/ldap_util.c
+++ b/usr/src/lib/libnisdb/ldap_util.c
@@ -24,8 +24,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
@@ -49,7 +47,7 @@ static pthread_key_t tsdKey;
* Log a message to the appropriate place.
*/
void
-logmsg(int msgtype, int priority, char *fmt, ...) {
+logmsg(int msgtype, int priority, const char *fmt, ...) {
va_list ap;
struct timeval tp;
@@ -199,7 +197,7 @@ logError(int priority) {
* zero bytes is legal, and returns a NULL pointer.
*/
void *
-am(char *msg, int size) {
+am(const char *msg, int size) {
void *p;
if (size > 0) {
@@ -227,7 +225,7 @@ am(char *msg, int size) {
* on a NULL pointer.
*/
int
-slen(char *str) {
+slen(const char *str) {
return ((str != 0) ? strlen(str) : 0);
}
@@ -236,7 +234,7 @@ slen(char *str) {
* like strdup(), but don't die if 'str' is a NULL pointer.
*/
char *
-sdup(char *msg, int allocate, char *str) {
+sdup(const char *msg, int allocate, char *str) {
char *s;
if (!allocate)
@@ -259,7 +257,7 @@ sdup(char *msg, int allocate, char *str) {
* NULL pointer or two. If deallocate!=0, free() the input strings.
*/
char *
-scat(char *msg, int deallocate, char *s1, char *s2) {
+scat(const char *msg, int deallocate, char *s1, char *s2) {
char *n;
int l1 = 0, l2 = 0;
@@ -437,7 +435,7 @@ scasecmp(char *s, __nis_single_value_t *v) {
* result to '*buf'.
*/
int
-vp2buf(char *msg, char **buf, int buflen, char *fmt, va_list ap) {
+vp2buf(const char *msg, char **buf, int buflen, const char *fmt, va_list ap) {
char *newbuf = am(msg, STDBUFSIZE);
int size = 0;
@@ -482,7 +480,7 @@ p2buf(char *msg, char *fmt, ...) {
/* sprintf to the specified __nis_buffer_t */
void
-bp2buf(char *msg, __nis_buffer_t *b, char *fmt, ...) {
+bp2buf(const char *msg, __nis_buffer_t *b, const char *fmt, ...) {
va_list ap;
va_start(ap, fmt);
@@ -492,7 +490,7 @@ bp2buf(char *msg, __nis_buffer_t *b, char *fmt, ...) {
/* Copy 'buf' to the specified __nis_buffer_t */
void
-bc2buf(char *msg, void *buf, int len, __nis_buffer_t *b) {
+bc2buf(const char *msg, void *buf, int len, __nis_buffer_t *b) {
void *new;
/*
@@ -517,7 +515,7 @@ bc2buf(char *msg, void *buf, int len, __nis_buffer_t *b) {
/* Like bc2buf(), but remove any trailing NUL bytes */
void
-sbc2buf(char *msg, void *buf, int len, __nis_buffer_t *b) {
+sbc2buf(const char *msg, void *buf, int len, __nis_buffer_t *b) {
if (buf == 0 || len <= 0 || b == 0)
return;
/* Snip off trailing NULs */
diff --git a/usr/src/lib/libnisdb/ldap_util.h b/usr/src/lib/libnisdb/ldap_util.h
index 9f72f8f46b..4df2439f31 100644
--- a/usr/src/lib/libnisdb/ldap_util.h
+++ b/usr/src/lib/libnisdb/ldap_util.h
@@ -24,8 +24,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdarg.h>
#include <syslog.h>
@@ -83,26 +81,27 @@ typedef struct {
extern unsigned long numMisaligned;
/* Exported functions */
-void logmsg(int msgtype, int priority, char *fmt, ...);
+void logmsg(int msgtype, int priority, const char *fmt, ...);
void reportError(int error, char *fmt, ...);
int getError(char **message);
void clearError(void);
void logError(int priority);
-void *am(char *msg, int size);
-int slen(char *str);
-char *sdup(char *msg, int allocate, char *str);
-char *scat(char *msg, int deallocate, char *s1, char *s2);
+void *am(const char *msg, int size);
+int slen(const char *str);
+char *sdup(const char *msg, int allocate, char *str);
+char *scat(const char *msg, int deallocate, char *s1, char *s2);
void sfree(void *ptr);
char lastChar(__nis_single_value_t *v);
void *appendString2SingleVal(char *str, __nis_single_value_t *v,
int *newLen);
int scmp(char *s, __nis_single_value_t *v);
int scasecmp(char *s, __nis_single_value_t *v);
-int vp2buf(char *msg, char **buf, int buflen, char *fmt, va_list ap);
+int vp2buf(const char *msg, char **buf, int buflen, const char *fmt,
+ va_list ap);
void p2buf(char *msg, char *fmt, ...);
-void bp2buf(char *msg, __nis_buffer_t *b, char *fmt, ...);
-void bc2buf(char *msg, void *buf, int len, __nis_buffer_t *b);
-void sbc2buf(char *msg, void *buf, int len, __nis_buffer_t *b);
+void bp2buf(const char *msg, __nis_buffer_t *b, const char *fmt, ...);
+void bc2buf(const char *msg, void *buf, int len, __nis_buffer_t *b);
+void sbc2buf(const char *msg, void *buf, int len, __nis_buffer_t *b);
void c2buf(char *msg, void *buf, int len);
void sc2buf(char *msg, void *buf, int len);
void printbuf(void);
diff --git a/usr/src/lib/libnisdb/nis_db.cc b/usr/src/lib/libnisdb/nis_db.cc
index 9bd80cd86f..9d5b62deb3 100644
--- a/usr/src/lib/libnisdb/nis_db.cc
+++ b/usr/src/lib/libnisdb/nis_db.cc
@@ -61,11 +61,11 @@ db_status db_table_exists(char *table_name);
* 'tbl_prototype' is used to create a table that holds a directory.
*/
static table_col cols[2] = {
- {"object", TA_BINARY+TA_XDR, 0},
- {"name", TA_CASE+TA_SEARCHABLE, 0}
+ {(char *)"object", TA_BINARY+TA_XDR, 0},
+ {(char *)"name", TA_CASE+TA_SEARCHABLE, 0}
};
-table_obj tbl_prototype = { "DIRECTORY", 2, ' ', {2, &cols[0]}, NULL };
+table_obj tbl_prototype = { (char *)"DIRECTORY", 2, ' ', {2, &cols[0]}, NULL };
}
/*
@@ -148,10 +148,10 @@ db_in_dict_file(char *name)
}
-char
+const char
*db_perror(db_status dbstat)
{
- char *str = NULL;
+ const char *str = NULL;
switch (dbstat) {
case DB_SUCCESS:
@@ -451,7 +451,7 @@ db_list_entries(char *table_name, int numattrs, nis_attr *attrname) {
char *
entryName(char *msg, char *objName, char **tableP) {
char *name, *table, *dir;
- char *myself = "entryName";
+ char *myself = (char *)"entryName";
if (msg == 0)
msg = myself;
@@ -505,7 +505,7 @@ dbFindObject(char *objName, db_status *statP) {
db_mindex *mindex;
nis_object *o;
int lstat;
- char *myself = "dbFindObject";
+ const char *myself = "dbFindObject";
if (objName == 0)
RETSTAT(0, DB_BADQUERY);
@@ -527,7 +527,7 @@ dbFindObject(char *objName, db_status *statP) {
/* If not the root dir, find the directory where the entry lives */
sfree(table);
- name = entryName(myself, objName, &table);
+ name = entryName((char *)myself, objName, &table);
if (name == 0 || table == 0) {
sfree(name);
RETSTAT(0, DB_MEMORY_LIMIT);
@@ -548,7 +548,7 @@ dbFindObject(char *objName, db_status *statP) {
RETSTAT(0, DB_LOCK_ERROR);
}
- attr.zattr_ndx = "name";
+ attr.zattr_ndx = (char *)"name";
attr.zattr_val.zattr_val_val = name;
attr.zattr_val.zattr_val_len = slen(name) + 1;
@@ -611,7 +611,7 @@ nis_object *
ldapFindObj(__nis_table_mapping_t *t, char *objName, int *statP) {
nis_object *o;
int stat;
- char *myself = "ldapFindObj";
+ const char *myself = "ldapFindObj";
if (t == 0) {
char *table, tbuf[MAXPATHLEN + NIS_MAXNAMELEN + 1];
@@ -656,7 +656,7 @@ findObj(char *name, db_status *statP, int *lstatP) {
nis_object *o;
db_status stat = DB_SUCCESS;
int lstat = LDAP_SUCCESS;
- char *myself = "findObj";
+ const char *myself = "findObj";
o = dbFindObject(name, &stat);
@@ -695,7 +695,7 @@ dbDeleteObj(char *objName) {
db_status stat;
nisdb_obj_del_t *nod, *tmp;
int xid;
- char *myself = "dbDeleteObj";
+ const char *myself = "dbDeleteObj";
if (objName == 0)
return (DB_SUCCESS);
@@ -737,7 +737,7 @@ dbDeleteObj(char *objName) {
nod->objType = o->zo_data.zo_type;
nis_destroy_object(o);
- nod->objName = sdup(myself, T, objName);
+ nod->objName = sdup((char *)myself, T, objName);
if (nod->objName == 0) {
sfree(nod);
return (DB_MEMORY_LIMIT);
@@ -772,7 +772,7 @@ dbTouchObj(char *objName) {
nis_attr attr;
db_query *query;
db_status stat;
- char *myself = "dbTouchObj";
+ const char *myself = "dbTouchObj";
table = internalTableName(objName);
if (table == 0)
@@ -789,7 +789,7 @@ dbTouchObj(char *objName) {
sfree(table);
table = 0;
- ent = entryName(myself, objName, &table);
+ ent = entryName((char *)myself, objName, &table);
if (ent == 0 || table == 0) {
sfree(ent);
return (DB_MEMORY_LIMIT);
@@ -804,7 +804,7 @@ dbTouchObj(char *objName) {
return (DB_BADTABLE);
}
- attr.zattr_ndx = "name";
+ attr.zattr_ndx = (char *)"name";
attr.zattr_val.zattr_val_val = ent;
attr.zattr_val.zattr_val_len = slen(ent) + 1;
@@ -833,7 +833,7 @@ dbCreateTable(char *intName, nis_object *obj) {
table_col tc[NIS_MAXCOLUMNS+1];
table_obj tobj, *t;
int i;
- char *myself = "dbCreateTable";
+ const char *myself = "dbCreateTable";
if (intName == 0 || obj == 0)
return (DB_BADTABLE);
@@ -879,7 +879,7 @@ dbRefreshObj(char *name, nis_object *o) {
db_status stat;
char *ent, *table, *objTable;
int rstat, isDir = 0, isTable = 0;
- char *myself = "refreshObj";
+ const char *myself = "refreshObj";
if (o == 0)
/* Delete it */
@@ -973,7 +973,7 @@ dbRefreshObj(char *name, nis_object *o) {
if (strcmp(ROOTDIRFILE, objTable) == 0) {
sfree(objTable);
- rstat = update_root_object(ROOTOBJFILE, o);
+ rstat = update_root_object((char *)ROOTOBJFILE, o);
if (rstat == 1)
stat = DB_SUCCESS;
else
@@ -989,7 +989,7 @@ dbRefreshObj(char *name, nis_object *o) {
int lstat;
/* Find parent */
- ent = entryName(myself, objName, &table);
+ ent = entryName((char *)myself, objName, &table);
if (ent == 0 || table == 0) {
sfree(b.buf);
sfree(objTable);
@@ -1018,7 +1018,7 @@ dbRefreshObj(char *name, nis_object *o) {
}
/* Construct suitable nis_attr and entry_object */
- attr.zattr_ndx = "name";
+ attr.zattr_ndx = (char *)"name";
attr.zattr_val.zattr_val_val = ent;
attr.zattr_val.zattr_val_len = slen(ent) + 1;
@@ -1026,7 +1026,7 @@ dbRefreshObj(char *name, nis_object *o) {
ec[1].ec_value.ec_value_val = ent;
ec[1].ec_value.ec_value_len = attr.zattr_val.zattr_val_len;
- eo.en_type = "IN_DIRECTORY";
+ eo.en_type = (char *)"IN_DIRECTORY";
eo.en_cols.en_cols_val = ec;
eo.en_cols.en_cols_len = 2;
@@ -1224,7 +1224,7 @@ dbCreateFromLDAP(char *intName, int *ldapStat) {
int lstat, doDestroy;
nis_object *obj = 0;
db_status dstat;
- char *myself = "dbCreateFromLDAP";
+ const char *myself = "dbCreateFromLDAP";
if (!useLDAPrespository) {
if (ldapStat != 0)
@@ -1279,7 +1279,7 @@ loadAllLDAP(int fromLDAP, void *cookie, db_status *dstatP) {
db *dbase;
db_table_desc *tbl = 0;
db_mindex *mindex;
- char *myself = "loadAllLDAP";
+ const char *myself = "loadAllLDAP";
/*
* If the 'cookie' and '*cookie' are non-NULL, start scanning
@@ -1416,7 +1416,8 @@ loadAllLDAP(int fromLDAP, void *cookie, db_status *dstatP) {
ent = 0;
} else {
objPath = 0;
- ent = entryName(myself, t->objName, &objPath);
+ ent = entryName((char *)myself, t->objName,
+ &objPath);
if (ent == 0 || objPath == 0) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"%s: Error deriving entry/DB-table names for %s:%s; skipping up-load",
@@ -1474,7 +1475,7 @@ loadAllLDAP(int fromLDAP, void *cookie, db_status *dstatP) {
nis_attr attr;
db_query *q;
- attr.zattr_ndx = "name";
+ attr.zattr_ndx = (char *)"name";
attr.zattr_val.zattr_val_val = ent;
attr.zattr_val.zattr_val_len = slen(ent) + 1;
diff --git a/usr/src/lib/libnisdb/nis_parse_ldap_yp_util.c b/usr/src/lib/libnisdb/nis_parse_ldap_yp_util.c
index b59dff72d6..70c2741ec6 100644
--- a/usr/src/lib/libnisdb/nis_parse_ldap_yp_util.c
+++ b/usr/src/lib/libnisdb/nis_parse_ldap_yp_util.c
@@ -24,8 +24,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -174,7 +172,7 @@ merge_table_mapping(
}
if (out->commentChar == DEFAULT_COMMENT_CHAR &&
- in->commentChar != DEFAULT_COMMENT_CHAR)
+ in->commentChar != DEFAULT_COMMENT_CHAR)
out->commentChar = in->commentChar;
if (out->usedns_flag == 0)
@@ -183,8 +181,8 @@ merge_table_mapping(
if (out->securemap_flag == 0)
out->securemap_flag = in->securemap_flag;
- if (out->separatorStr == DEFAULT_SEP_STRING &&
- in->separatorStr != DEFAULT_SEP_STRING) {
+ if ((strcmp(out->separatorStr, DEFAULT_SEP_STRING) == 0) &&
+ (strcmp(in->separatorStr, DEFAULT_SEP_STRING) != 0)) {
out->separatorStr = s_strdup(in->separatorStr);
if (!out->separatorStr)
return (2);
@@ -193,8 +191,8 @@ merge_table_mapping(
if (!out->numSplits && !out->e && in->e) {
out->numSplits = in->numSplits;
out->e = (__nis_mapping_element_t *)
- s_calloc(1, (in->numSplits+1) *
- sizeof (__nis_mapping_element_t));
+ s_calloc(1, (in->numSplits+1) *
+ sizeof (__nis_mapping_element_t));
if (!out->e)
return (2);
for (i = 0; i <= in->numSplits; i++) {
@@ -209,20 +207,20 @@ merge_table_mapping(
}
if (out->initTtlLo == (time_t)NO_VALUE_SET &&
- in->initTtlLo != (time_t)NO_VALUE_SET)
+ in->initTtlLo != (time_t)NO_VALUE_SET)
out->initTtlLo = in->initTtlLo;
if (out->initTtlHi == (time_t)NO_VALUE_SET &&
- in->initTtlHi != (time_t)NO_VALUE_SET)
+ in->initTtlHi != (time_t)NO_VALUE_SET)
out->initTtlHi = in->initTtlHi;
if (out->ttl == (time_t)NO_VALUE_SET &&
- in->ttl != (time_t)NO_VALUE_SET)
+ in->ttl != (time_t)NO_VALUE_SET)
out->ttl = in->ttl;
if (!out->numRulesFromLDAP && in->numRulesFromLDAP) {
out->ruleFromLDAP = dup_mapping_rules(in->ruleFromLDAP,
- in->numRulesFromLDAP);
+ in->numRulesFromLDAP);
if (!out->ruleFromLDAP)
return (1);
out->numRulesFromLDAP = in->numRulesFromLDAP;
@@ -231,7 +229,7 @@ merge_table_mapping(
for (i = 0; i < in->numRulesFromLDAP; i++) {
if (append_mapping_rule(in->ruleFromLDAP[i], out, 0)) {
for (i = out->numRulesFromLDAP;
- i > orig_num_rules; i--) {
+ i > orig_num_rules; i--) {
free_mapping_rule(out->ruleFromLDAP[i]);
out->ruleFromLDAP[i] = NULL;
}
@@ -243,7 +241,7 @@ merge_table_mapping(
if (!out->numRulesToLDAP && in->numRulesToLDAP) {
out->ruleToLDAP = dup_mapping_rules(in->ruleToLDAP,
- in->numRulesToLDAP);
+ in->numRulesToLDAP);
if (!out->ruleToLDAP)
return (1);
out->numRulesToLDAP = in->numRulesToLDAP;
@@ -252,7 +250,7 @@ merge_table_mapping(
for (i = 0; i < in->numRulesToLDAP; i++) {
if (append_mapping_rule(in->ruleToLDAP[i], out, 1)) {
for (i = out->numRulesToLDAP;
- i > orig_num_rules; i--) {
+ i > orig_num_rules; i--) {
free_mapping_rule(out->ruleToLDAP[i]);
out->ruleToLDAP[i] = NULL;
}
@@ -262,7 +260,7 @@ merge_table_mapping(
}
if (!out->objectDN && in->objectDN) {
out->objectDN = (__nis_object_dn_t *)
- s_calloc(1, sizeof (__nis_object_dn_t));
+ s_calloc(1, sizeof (__nis_object_dn_t));
if (!out->objectDN)
return (2);
if (copy_object_dn(in->objectDN, out->objectDN)) {
@@ -274,9 +272,9 @@ merge_table_mapping(
if (!out->objName && in->objName) {
if (!strchr(in->objName, SPACE_CHAR)) {
- /* objName has no space- a single map dbIdMapping */
+ /* objName has no space- a single map dbIdMapping */
out->objName = s_strndup(in->objName,
- strlen(in->objName));
+ strlen(in->objName));
if (!out->objName)
return (2);
}
@@ -306,9 +304,7 @@ merge_table_mapping(
*/
static int
-copy_object_dn(
- __nis_object_dn_t *in,
- __nis_object_dn_t *newdn)
+copy_object_dn(__nis_object_dn_t *in, __nis_object_dn_t *newdn)
{
if (in == NULL) {
p_error = parse_no_object_dn;
@@ -319,16 +315,14 @@ copy_object_dn(
newdn->read.base = NULL;
} else {
newdn->read.base = s_strndup(
- in->read.base,
- strlen(in->read.base));
+ in->read.base, strlen(in->read.base));
if (newdn->read.base == NULL)
return (2);
}
newdn->read.scope = in->read.scope;
if (in->read.attrs) {
newdn->read.attrs = s_strndup(
- in->read.attrs,
- strlen(in->read.attrs));
+ in->read.attrs, strlen(in->read.attrs));
if (newdn->read.attrs == NULL) {
return (2);
}
@@ -338,8 +332,7 @@ copy_object_dn(
newdn->read.element = in->read.element;
if (in->write.base != NULL) {
newdn->write.base = s_strndup(
- in->write.base,
- strlen(in->write.base));
+ in->write.base, strlen(in->write.base));
if (newdn->write.base == NULL)
return (2);
} else {
@@ -348,8 +341,7 @@ copy_object_dn(
newdn->write.scope = in->write.scope;
if (in->write.attrs != NULL) {
newdn->write.attrs = s_strndup(
- in->write.attrs,
- strlen(in->write.attrs));
+ in->write.attrs, strlen(in->write.attrs));
if (newdn->write.attrs == NULL) {
return (2);
}
@@ -359,7 +351,7 @@ copy_object_dn(
newdn->write.element = in->write.element;
if (in->dbIdName) {
newdn->dbIdName = s_strndup(in->dbIdName,
- strlen(in->dbIdName));
+ strlen(in->dbIdName));
if (newdn->dbIdName == NULL)
return (2);
}
@@ -369,14 +361,14 @@ copy_object_dn(
if (in->dbId && in->numDbIds > 0) {
newdn->dbId = dup_mapping_rules(in->dbId,
- in->numDbIds);
+ in->numDbIds);
if (!newdn->dbId)
return (1);
newdn->numDbIds = in->numDbIds;
}
if (in->next != NULL) {
newdn->next = (__nis_object_dn_t *)s_calloc(1,
- sizeof (__nis_object_dn_t));
+ sizeof (__nis_object_dn_t));
if (newdn->next == NULL)
return (1);
newdn = newdn->next;
@@ -417,8 +409,8 @@ free_yp_domain_context(__yp_domain_context_t *domains)
for (i = 0; i < domains->numYppasswdd; i++) {
if (domains->yppasswddDomainLabels[i] != NULL) {
free(domains->yppasswddDomainLabels[i]);
- domains->yppasswddDomainLabels[i]
- = NULL;
+ domains->yppasswddDomainLabels[i] =
+ NULL;
}
}
domains->yppasswddDomainLabels = NULL;
@@ -437,8 +429,7 @@ free_yp_domain_context(__yp_domain_context_t *domains)
* RETURN VALUE: 0 on success, > 0 on failure.
*/
int
-second_parser_pass(
- __nis_table_mapping_t **table_mapping)
+second_parser_pass(__nis_table_mapping_t **table_mapping)
{
__nis_table_mapping_t *t, *t2;
__nis_table_mapping_t *t_new = NULL, *tg;
@@ -466,7 +457,7 @@ second_parser_pass(
if (!t->dbId) {
p_error = parse_bad_map_error;
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "%s: no dbId field", myself);
+ "%s: no dbId field", myself);
return (1);
}
tg = NULL;
@@ -476,24 +467,25 @@ second_parser_pass(
if (objName == NULL) {
p_error = parse_no_mem_error;
logmsg(MSG_NOMEM, LOG_ERR,
- "%s: Cannot allocate memory for objName", myself);
+ "%s: Cannot allocate memory for objName",
+ myself);
return (1);
}
objs = (char *)strtok_r(objName, " ", &lasts);
/* Get the generic mapping */
if (dom != NULL) {
tg = find_table_mapping(t->dbId, dom - t->dbId,
- *table_mapping);
+ *table_mapping);
}
} else {
objs = NULL;
if (dom == NULL) {
t->objName = s_strndup(t->dbId,
- strlen(t->dbId));
+ strlen(t->dbId));
if (!t->objName) {
logmsg(MSG_NOMEM, LOG_ERR,
-"%s: Cannot allocate memory for t->objName",
- myself);
+ "%s: Cannot allocate memory for "
+ "t->objName", myself);
objs = NULL;
return (2);
}
@@ -502,39 +494,39 @@ second_parser_pass(
/* Get the generic mapping */
tg = find_table_mapping(t->dbId, dom - t->dbId,
- *table_mapping);
+ *table_mapping);
if (tg == NULL || tg->objName == NULL) {
/* If not found, use dbId for objName */
t->objName = s_strndup(t->dbId,
- strlen(t->dbId));
+ strlen(t->dbId));
if (t->objName == NULL) {
logmsg(MSG_NOMEM, LOG_ERR,
-"%s: Cannot allocate memory for t->objName",
- myself);
+ "%s: Cannot allocate memory for t->objName",
+ myself);
return (2);
}
} else {
dom++;
tobj = s_strndup(tg->objName,
- strlen(tg->objName));
+ strlen(tg->objName));
if (tobj == NULL) {
logmsg(MSG_NOMEM, LOG_ERR,
-"%s: Cannot allocate memory for t->objName",
- myself);
+ "%s: Cannot allocate memory for t->objName",
+ myself);
return (2);
}
alias = (char *)strtok_r(tobj, " ",
- &lasts);
+ &lasts);
/* Loop 'breaks' on errors */
while (alias) {
tmp = NULL;
dupalias = s_strndup(alias,
- strlen(alias));
+ strlen(alias));
if (!dupalias)
break;
if (getfullmapname(&dupalias,
- dom)) {
+ dom)) {
i = 1;
break;
}
@@ -542,41 +534,43 @@ second_parser_pass(
t->objName = dupalias;
else {
len = strlen(t->objName)
- + strlen(dupalias) + 2;
+ + strlen(dupalias) +
+ 2;
tmp = s_calloc(1, len);
if (tmp == NULL)
break;
snprintf(tmp, len,
- "%s %s",
- t->objName,
- dupalias);
+ "%s %s",
+ t->objName,
+ dupalias);
free(dupalias);
dupalias = NULL;
free(t->objName);
t->objName = tmp;
}
alias = (char *)strtok_r(NULL,
- " ", &lasts);
+ " ", &lasts);
}
if (tobj)
free(tobj);
if (alias ||
- (objName = s_strdup(t->objName))
- == NULL) {
+ (objName = s_strdup(t->objName))
+ == NULL) {
if (i)
logmsg(MSG_NOTIMECHECK,
- LOG_ERR,
-"%s: getfullmapname failed for %s for domain \"%s\"",
- myself, dupalias, dom);
+ LOG_ERR,
+ "%s: getfullmapname failed for %s for domain \"%s\"",
+ myself, dupalias,
+ dom);
else {
p_error =
- parse_no_mem_error;
+ parse_no_mem_error;
logmsg(MSG_NOMEM,
- LOG_ERR,
-"%s: Cannot allocate memory",
- myself);
+ LOG_ERR,
+ "%s: Cannot allocate memory",
+ myself);
}
if (dupalias)
free(dupalias);
@@ -586,7 +580,7 @@ second_parser_pass(
}
objs = (char *)strtok_r(objName, " ",
- &lasts);
+ &lasts);
}
}
}
@@ -594,8 +588,8 @@ second_parser_pass(
if (tg != NULL) {
if (merge_table_mapping(tg, t)) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
-"Error merging information from the %s to the %s mapping structure",
- tg->dbId, t->dbId);
+ "Error merging information from the %s to the %s mapping structure",
+ tg->dbId, t->dbId);
objs = NULL;
if (objName)
free(objName);
@@ -609,14 +603,14 @@ second_parser_pass(
* Also skip it if t->objName is null.
*/
if (objs && strncasecmp(objs, t->objName,
- strlen(t->objName))) {
+ strlen(t->objName))) {
t2 = find_table_mapping(objs, strlen(objs),
- *table_mapping);
+ *table_mapping);
if (t2) {
if (merge_table_mapping(t, t2)) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
-"Error merging information from the %s to the %s mapping structure",
- t->dbId, t2->dbId);
+ "Error merging information from the %s to the %s mapping structure",
+ t->dbId, t2->dbId);
objs = NULL;
if (objName)
free(objName);
@@ -635,8 +629,8 @@ second_parser_pass(
prev->next = t;
} else {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
-"Error creating a new mapping structure %s",
- objs);
+ "Error creating a new mapping structure %s",
+ objs);
objs = NULL;
if (objName)
free(objName);
@@ -644,14 +638,14 @@ second_parser_pass(
}
}
while ((objs = (char *)strtok_r(NULL, " ", &lasts))
- != NULL) {
+ != NULL) {
t2 = find_table_mapping(objs, strlen(objs),
- *table_mapping);
+ *table_mapping);
if (t2) {
if (merge_table_mapping(t, t2)) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
-"Error merging information from the %s to the %s mapping structure",
- t->dbId, t2->dbId);
+ "Error merging information from the %s to the %s mapping structure",
+ t->dbId, t2->dbId);
objs = NULL;
if (objName)
free(objName);
@@ -674,8 +668,8 @@ second_parser_pass(
prev->next = t;
} else {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
-"Error creating a new mapping structure %s",
- objs);
+ "Error creating a new mapping structure %s",
+ objs);
objs = NULL;
if (objName)
free(objName);
@@ -705,7 +699,7 @@ new_merged_mapping(const char *match,
__nis_table_mapping_t *outtable = NULL;
outtable = (__nis_table_mapping_t *)
- s_calloc(1, sizeof (__nis_table_mapping_t));
+ s_calloc(1, sizeof (__nis_table_mapping_t));
if (outtable == NULL)
return (NULL);
initialize_table_mapping(outtable);
@@ -750,13 +744,13 @@ final_parser_pass(
if (!ypDomains->numDomains) {
p_error = parse_internal_error;
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "%s:No domains specified.", myself);
+ "%s:No domains specified.", myself);
return (-1);
}
} else {
p_error = parse_internal_error;
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "%s:No domain structure supplied.", myself);
+ "%s:No domain structure supplied.", myself);
return (-1);
}
prev = NULL;
@@ -779,7 +773,7 @@ final_parser_pass(
t->objName = s_strndup(t->dbId, strlen(t->dbId));
if (!t->objName) {
logmsg(MSG_NOMEM, LOG_ERR,
- "%s:Could not allocate.", myself);
+ "%s:Could not allocate.", myself);
return (-1);
}
}
@@ -788,23 +782,24 @@ final_parser_pass(
if (i == 1) {
/* modify existing table_mapping's */
nm = checkfullmapname(t->dbId,
- ypDomains->domainLabels[0],
- table_mapping, &returned_map);
+ ypDomains->domainLabels[0],
+ table_mapping, &returned_map);
if (nm == 1) {
/* delete this mapping structure */
logmsg(MSG_NOTIMECHECK,
- LOG_WARNING,
- "Mapping structure %s,%s "
- "already exists.",
- t->dbId,
- ypDomains->domainLabels[0]);
+ LOG_WARNING,
+ "Mapping structure %s,%s "
+ "already exists.",
+ t->dbId,
+ ypDomains->domainLabels[0]);
if (merge_table_mapping(t,
- returned_map)) {
+ returned_map)) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Error merging information "
"from the %s to the %s "
"mapping structure.",
- t->dbId, returned_map->dbId);
+ t->dbId,
+ returned_map->dbId);
return (-1);
}
if (del_tbl_flag == 0)
@@ -812,15 +807,16 @@ final_parser_pass(
} else if (nm == -1) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Error searching for %s,%s structure",
- t->dbId, ypDomains->domainLabels[0]);
+ t->dbId,
+ ypDomains->domainLabels[0]);
return (-1);
} else if (nm == 0 || nm == 2) {
if ((append_domainContext(&t,
- ypDomains->domainLabels[0],
- ypDomains->domains[0])) != 0) {
+ ypDomains->domainLabels[0],
+ ypDomains->domains[0])) != 0) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Error appending domainContext %s",
- ypDomains->domainLabels[0]);
+ ypDomains->domainLabels[0]);
return (-1);
}
del_tbl_flag = 0;
@@ -828,12 +824,13 @@ final_parser_pass(
} else { /* if (i > 1) */
/* need to create new table_mapping's */
nm = checkfullmapname(t->dbId,
- ypDomains->domainLabels[i - 1],
- table_mapping, &returned_map);
+ ypDomains->domainLabels[i - 1],
+ table_mapping, &returned_map);
if (nm == -1) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Error searching for %s,%s structure",
- t->dbId, ypDomains->domainLabels[i - 1]);
+ t->dbId,
+ ypDomains->domainLabels[i - 1]);
return (-1);
} else if (nm == 0) {
t1 = new_merged_mapping(t->dbId, t);
@@ -854,7 +851,7 @@ final_parser_pass(
prev = prev->next;
} else {
t1->next =
- *table_mapping;
+ *table_mapping;
*table_mapping = t1;
prev = t1;
}
@@ -863,14 +860,14 @@ final_parser_pass(
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"%s:Could not create new table -"
" check all instances of %s for errors",
- myself, t->dbId);
+ myself, t->dbId);
return (-1);
}
} else if (nm == 1) {
logmsg(MSG_NOTIMECHECK, LOG_WARNING,
"Mapping structure %s,%s already exists.",
- t->dbId,
- ypDomains->domainLabels[i - 1]);
+ t->dbId,
+ ypDomains->domainLabels[i - 1]);
/*
* We should be deleting this, but can't
* really do it here, because we need to
@@ -878,19 +875,18 @@ final_parser_pass(
* too. So we will just flag it for now.
*/
if (merge_table_mapping(t,
- returned_map)) {
+ returned_map)) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Error merging information from the %s to the %s mapping structure.",
- t->dbId,
- returned_map->dbId);
+ t->dbId,
+ returned_map->dbId);
return (-1);
}
del_tbl_flag = 1;
} else if (nm == 2) {
if ((append_domainContext(&t,
- ypDomains->domainLabels[i - 1],
- ypDomains->domains[i - 1]))
- != 0) {
+ ypDomains->domainLabels[i - 1],
+ ypDomains->domains[i - 1])) != 0) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Error appending domainContext %s",
ypDomains->domainLabels[i - 1]);
@@ -908,21 +904,21 @@ final_parser_pass(
*/
if (nm == 1 && returned_map && returned_map->objectDN) {
r = make_fqdn(
- returned_map->objectDN,
- ypDomains->domains[i - 1]);
+ returned_map->objectDN,
+ ypDomains->domains[i - 1]);
if (r == TRUE &&
- returned_map->objectDN->write.base) {
+ returned_map->objectDN->write.base) {
r = make_full_dn(
- &returned_map->objectDN->write.base,
- ypDomains->domains[i - 1]);
+ &returned_map->objectDN->write.base,
+ ypDomains->domains[i - 1]);
}
if (r == FALSE) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "Error appending domainContext "
- "%s to %s",
- ypDomains->domainLabels[i - 1],
- returned_map->dbId);
+ "Error appending domainContext "
+ "%s to %s",
+ ypDomains->domainLabels[i - 1],
+ returned_map->dbId);
return (-2);
}
}
@@ -949,15 +945,15 @@ final_parser_pass(
for (t = *table_mapping; t != NULL; t = t->next) {
if (!t->dbId) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "%s:Fatal error: structure with no dbId found.",
- myself);
- return (-2);
+ "%s:Fatal error: structure with no dbId found.",
+ myself);
+ return (-2);
}
append_dot(&t->dbId);
if (!t->objectDN) {
p_error = parse_internal_error;
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "%s:No objectDN for %s.", myself, t->dbId);
+ "%s:No objectDN for %s.", myself, t->dbId);
return (-1);
}
}
@@ -987,9 +983,9 @@ append_mapping_rule(__nis_mapping_rule_t *src_rule,
return (1);
}
rules = (__nis_mapping_rule_t **)
- s_realloc(dst->ruleFromLDAP,
- (dst->numRulesFromLDAP + 1) *
- sizeof (__nis_mapping_rule_t *));
+ s_realloc(dst->ruleFromLDAP,
+ (dst->numRulesFromLDAP + 1) *
+ sizeof (__nis_mapping_rule_t *));
if (rules == NULL)
return (2);
dst->ruleFromLDAP = rules;
@@ -1005,9 +1001,9 @@ append_mapping_rule(__nis_mapping_rule_t *src_rule,
return (1);
}
rules = (__nis_mapping_rule_t **)
- s_realloc(dst->ruleToLDAP,
- (dst->numRulesToLDAP + 1) *
- sizeof (__nis_mapping_rule_t *));
+ s_realloc(dst->ruleToLDAP,
+ (dst->numRulesToLDAP + 1) *
+ sizeof (__nis_mapping_rule_t *));
if (rules == NULL)
return (2);
dst->ruleToLDAP = rules;
@@ -1052,12 +1048,12 @@ check_domain_specific_order(const char *sd,
if (ypDomains) {
if (!ypDomains->numDomains) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "%s:No domains specified.", myself);
+ "%s:No domains specified.", myself);
return (-1);
}
} else {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
- "%s:No domain structure supplied.", myself);
+ "%s:No domain structure supplied.", myself);
return (-1);
}
@@ -1065,43 +1061,43 @@ check_domain_specific_order(const char *sd,
for (t = table_mapping; t != NULL; t = t->next) {
len = strlen(sd);
if ((strcasecmp(t->dbId, sd) == 0) && (len ==
- strlen(t->dbId)))
+ strlen(t->dbId)))
/* prevent from matching against itself */
continue;
dbId = s_strndup(t->dbId, strlen(t->dbId));
if (dbId == NULL) {
logmsg(MSG_NOMEM, LOG_ERR,
- "%s:Memory allocation error.", myself);
+ "%s:Memory allocation error.", myself);
return (-1);
}
if (getfullmapname(&dbId,
- ypDomains->domainLabels[i])) {
+ ypDomains->domainLabels[i])) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Error getting fully qualified name for %s",
- dbId);
+ dbId);
free(dbId);
return (-1);
}
if ((strcasecmp(dbId, sd) == 0) && (len ==
- strlen(dbId))) {
+ strlen(dbId))) {
match = 0;
switch (attrib_num) {
case key_yp_map_flags:
if (t->usedns_flag != 0 ||
- t->securemap_flag != 0)
+ t->securemap_flag != 0)
match = 1;
type = YP_MAP_FLAGS;
break;
case key_yp_comment_char:
if (t->commentChar !=
- DEFAULT_COMMENT_CHAR)
+ DEFAULT_COMMENT_CHAR)
match = 1;
type = YP_COMMENT_CHAR;
break;
case key_yp_repeated_field_separators:
- if (t->separatorStr !=
- DEFAULT_SEP_STRING)
+ if (strcmp(t->separatorStr,
+ DEFAULT_SEP_STRING) != 0)
match = 1;
type =
YP_REPEATED_FIELD_SEPARATORS;
@@ -1122,7 +1118,7 @@ check_domain_specific_order(const char *sd,
break;
case key_yp_entry_ttl:
if (t->initTtlLo !=
- (time_t)NO_VALUE_SET)
+ (time_t)NO_VALUE_SET)
match = 1;
type = YP_ENTRY_TTL;
break;
@@ -1149,7 +1145,7 @@ check_domain_specific_order(const char *sd,
if (match) {
logmsg(MSG_NOTIMECHECK, LOG_ERR,
"Relative attribute '%s' of type '%s' found before fully qualified one '%s'",
- t->dbId, type, sd);
+ t->dbId, type, sd);
free(dbId);
dbId = NULL;
return (1);
@@ -1173,7 +1169,7 @@ getfullmapname(char **mapname, const char *domainname)
int domainlen = strlen(domainname);
if (!maplen || !domainlen ||
- maps[maplen - 1] == PERIOD_CHAR)
+ maps[maplen - 1] == PERIOD_CHAR)
return (1);
else if (strchr(maps, COMMA_CHAR)) {
/* map already has a domain part, do nothing */
@@ -1184,7 +1180,7 @@ getfullmapname(char **mapname, const char *domainname)
maps = realloc(maps, (maplen + domainlen + 1));
if (maps != NULL) {
if (strlcat(maps, domainname, (maplen + domainlen + 1))
- >= (maplen + domainlen + 1))
+ >= (maplen + domainlen + 1))
return (1);
*mapname = maps;
return (0);
@@ -1317,11 +1313,11 @@ char *DomainLabel, char *Domain)
if (tmp_map->objectDN == NULL) {
/* Allocate memory to objectDN */
tmp_map->objectDN = (__nis_object_dn_t *)
- s_calloc(1, sizeof (__nis_object_dn_t));
+ s_calloc(1, sizeof (__nis_object_dn_t));
if (tmp_map->objectDN == NULL) {
logmsg(MSG_NOMEM, LOG_ERR,
"%s: Cannot allocate memory for objectDN",
- myself);
+ myself);
return (2);
}
tmp_map->objectDN->read.base = NULL;
diff --git a/usr/src/lib/libtsol/common/call_labeld.c b/usr/src/lib/libtsol/common/call_labeld.c
index 8ae29742be..1685f222f6 100644
--- a/usr/src/lib/libtsol/common/call_labeld.c
+++ b/usr/src/lib/libtsol/common/call_labeld.c
@@ -24,8 +24,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <door.h>
#include <errno.h>
#include <fcntl.h>
@@ -139,14 +137,14 @@ try_again:
if ((doorfd = dup(doorfd)) < 0) {
perror("couldn't dup");
while (i--)
- (void) close(tbc[i]);
+ (void) close(tbc[i]);
doorfd = -1;
(void) mutex_unlock(&_door_lock);
return (NOSERVER);
}
}
while (i--)
- (void) close(tbc[i]);
+ (void) close(tbc[i]);
/*
* mark this door descriptor as close on exec
@@ -193,7 +191,7 @@ try_again:
(void) printf("\t\t id = %llx\n", real_door.di_uniquifier);
#endif /* DEBUG */
if ((real_door.di_attributes & DOOR_REVOKED) ||
- (real_door.di_data != (door_ptr_t)COOKIE)) {
+ (real_door.di_data != (door_ptr_t)(uintptr_t)COOKIE)) {
#ifdef DEBUG
(void) printf("real door revoked\n");
#endif /* DEBUG */
@@ -204,8 +202,8 @@ try_again:
}
} else {
if ((door_info(doorfd, &my_door) < 0) ||
- (my_door.di_data != (door_ptr_t)COOKIE) ||
- (my_door.di_uniquifier != real_door.di_uniquifier)) {
+ (my_door.di_data != (door_ptr_t)(uintptr_t)COOKIE) ||
+ (my_door.di_uniquifier != real_door.di_uniquifier)) {
perror("my door door_info");
/*
* don't close it - someone else has clobbered fd
diff --git a/usr/src/lib/lvm/libmeta/common/meta_metad_subr.c b/usr/src/lib/lvm/libmeta/common/meta_metad_subr.c
index aa352a266d..f39f2fa14c 100644
--- a/usr/src/lib/lvm/libmeta/common/meta_metad_subr.c
+++ b/usr/src/lib/lvm/libmeta/common/meta_metad_subr.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* Just in case we're not in a build environment, make sure that
* TEXT_DOMAIN gets set to something.
@@ -242,20 +240,19 @@ get_db_rec(
reqp->ur_type2 = type2;
switch (cmd) {
- case MD_UR_GET_NEXT:
- reqp->ur_cmd = MD_DB_GETNEXTREC;
- reqp->ur_recid = *idp;
- if (metaioctl(ureq, reqp, &reqp->ur_mde, NULL)
- != 0) {
- (void) mdstealerror(ep, &reqp->ur_mde);
- Free(reqp);
- return (NULL);
- }
- *idp = reqp->ur_recid;
- break;
- case MD_UR_GET_WKEY:
- reqp->ur_recid = *idp;
- break;
+ case MD_UR_GET_NEXT:
+ reqp->ur_cmd = MD_DB_GETNEXTREC;
+ reqp->ur_recid = *idp;
+ if (metaioctl(ureq, reqp, &reqp->ur_mde, NULL) != 0) {
+ (void) mdstealerror(ep, &reqp->ur_mde);
+ Free(reqp);
+ return (NULL);
+ }
+ *idp = reqp->ur_recid;
+ break;
+ case MD_UR_GET_WKEY:
+ reqp->ur_recid = *idp;
+ break;
}
if (*idp <= 0) {
@@ -283,17 +280,17 @@ get_db_rec(
}
switch (reqp->ur_type) {
- case MDDB_USER:
- switch (reqp->ur_type2) {
- case MDDB_UR_SR:
- if (ckncvt_set_record(reqp, ep)) {
- Free((void *)(uintptr_t)reqp->ur_data);
- Free(reqp);
- return (NULL);
- }
- break;
- }
- break;
+ case MDDB_USER:
+ switch (reqp->ur_type2) {
+ case MDDB_UR_SR:
+ if (ckncvt_set_record(reqp, ep)) {
+ Free((void *)(uintptr_t)reqp->ur_data);
+ Free(reqp);
+ return (NULL);
+ }
+ break;
+ }
+ break;
}
return (reqp);
@@ -337,9 +334,9 @@ get_ur_rec(
static int
sr_hosts(md_set_record *sr)
{
- int i,
- nid = 0,
- self_in_set = FALSE;
+ int i;
+ int nid = 0;
+ int self_in_set = FALSE;
md_error_t xep = mdnullerror;
md_mnnode_record *nr;
md_mnset_record *mnsr;
@@ -483,7 +480,7 @@ sr_drvs(md_set_record *sr)
nm.setno = MD_LOCAL_SET;
nm.side = nr->nr_nodeid;
nm.key = dr->dr_key;
- nm.devname = (uint64_t)device_name;
+ nm.devname = (uintptr_t)device_name;
if (metaioctl(MD_IOCGET_NM, &nm, &nm.mde,
NULL) != 0) {
@@ -530,7 +527,7 @@ sr_drvs(md_set_record *sr)
nm.setno = MD_LOCAL_SET;
nm.side = i + SKEW;
nm.key = dr->dr_key;
- nm.devname = (uint64_t)device_name;
+ nm.devname = (uintptr_t)device_name;
if (metaioctl(MD_IOCGET_NM, &nm, &nm.mde,
NULL) != 0) {
@@ -690,7 +687,7 @@ sr_sidenms(void)
continue;
add_key_to_lst(&use, i + SKEW,
- dr->dr_key);
+ dr->dr_key);
}
}
}
@@ -915,7 +912,7 @@ set_snarf(md_error_t *ep)
/* Go get the set records */
id = 0;
while ((sr = get_ur_rec(MD_LOCAL_SET, MD_UR_GET_NEXT, MDDB_UR_SR,
- &id, ep)) != NULL) {
+ &id, ep)) != NULL) {
sr->sr_next = NULL;
sr->sr_drivechain = NULL;
@@ -967,7 +964,7 @@ set_snarf(md_error_t *ep)
mnsr->sr_nodechain = NULL;
p = &mnsr->sr_noderec;
while ((nr = get_ur_rec(MD_LOCAL_SET, MD_UR_GET_WKEY,
- MDDB_UR_NR, p, ep)) != NULL) {
+ MDDB_UR_NR, p, ep)) != NULL) {
nr->nr_next = NULL;
if (md_in_daemon)
@@ -1049,7 +1046,7 @@ set_snarf(md_error_t *ep)
p = NULL;
mnnr_cache_add((struct md_mnset_record *)sr,
- nr);
+ nr);
if ((md_in_daemon) &&
(strcmp(nr->nr_nodename, mynode()) == 0)) {
@@ -1059,7 +1056,7 @@ set_snarf(md_error_t *ep)
if (metaioctl(MD_MN_SET_NODEID, &snp,
&snp.sn_mde, NULL) != 0) {
(void) mdstealerror(ep,
- &snp.sn_mde);
+ &snp.sn_mde);
}
}
@@ -1079,7 +1076,7 @@ set_snarf(md_error_t *ep)
/* Go get the drive records */
p = &sr->sr_driverec;
while ((dr = get_ur_rec(MD_LOCAL_SET, MD_UR_GET_WKEY,
- MDDB_UR_DR, p, ep)) != NULL) {
+ MDDB_UR_DR, p, ep)) != NULL) {
dr->dr_next = NULL;
if (md_in_daemon)
@@ -1360,19 +1357,19 @@ metad_isautotakebyname(char *setname)
md_error_t error = mdnullerror;
md_set_record *sr;
- if (md_in_daemon)
- assert(setsnarfdone != 0);
- else if (set_snarf(&error)) {
- mdclrerror(&error);
- return (0);
+ if (md_in_daemon) {
+ assert(setsnarfdone != 0);
+ } else if (set_snarf(&error)) {
+ mdclrerror(&error);
+ return (0);
}
for (sr = setrecords; sr != NULL; sr = sr->sr_next) {
- if (strcmp(setname, sr->sr_setname) == 0) {
- if (sr->sr_flags & MD_SR_AUTO_TAKE)
- return (1);
- return (0);
- }
+ if (strcmp(setname, sr->sr_setname) == 0) {
+ if (sr->sr_flags & MD_SR_AUTO_TAKE)
+ return (1);
+ return (0);
+ }
}
return (0);
@@ -1384,19 +1381,19 @@ metad_isautotakebynum(set_t setno)
md_error_t error = mdnullerror;
md_set_record *sr;
- if (md_in_daemon)
- assert(setsnarfdone != 0);
- else if (set_snarf(&error)) {
- mdclrerror(&error);
- return (0);
+ if (md_in_daemon) {
+ assert(setsnarfdone != 0);
+ } else if (set_snarf(&error)) {
+ mdclrerror(&error);
+ return (0);
}
for (sr = setrecords; sr != NULL; sr = sr->sr_next) {
- if (setno == sr->sr_setno) {
- if (sr->sr_flags & MD_SR_AUTO_TAKE)
- return (1);
- return (0);
- }
+ if (setno == sr->sr_setno) {
+ if (sr->sr_flags & MD_SR_AUTO_TAKE)
+ return (1);
+ return (0);
+ }
}
return (0);
diff --git a/usr/src/lib/lvm/libmeta/common/meta_namespace.c b/usr/src/lib/lvm/libmeta/common/meta_namespace.c
index 9d2d16bd3f..365ddd11d8 100644
--- a/usr/src/lib/lvm/libmeta/common/meta_namespace.c
+++ b/usr/src/lib/lvm/libmeta/common/meta_namespace.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* namespace utilities
*/
@@ -63,7 +61,7 @@ meta_getnmentbykey(
nm.setno = setno;
nm.side = sideno;
nm.key = key;
- nm.devname = (uint64_t)device_name;
+ nm.devname = (uintptr_t)device_name;
if (metaioctl(MD_IOCGET_NM, &nm, &nm.mde, NULL) != 0) {
(void) mdstealerror(ep, &nm.mde);
@@ -189,7 +187,7 @@ meta_getdidminorbykey(
nm.setno = setno;
nm.side = sideno;
nm.key = key;
- nm.minorname = (uint64_t)minorname;
+ nm.minorname = (uintptr_t)minorname;
if (metaioctl(MD_IOCGET_DIDMIN, &nm, &nm.mde, NULL) != 0) {
(void) mdstealerror(ep, &nm.mde);
@@ -356,7 +354,7 @@ meta_getnmentbydev(
nm.key = MD_KEYWILD;
nm.major = meta_getmajor(dev);
nm.mnum = meta_getminor(dev);
- nm.devname = (uint64_t)device_name;
+ nm.devname = (uintptr_t)device_name;
if (metaioctl(MD_IOCGET_NM, &nm, &nm.mde, NULL) != 0) {
(void) mdstealerror(ep, &nm.mde);
@@ -750,16 +748,16 @@ add_self_name(
* The valid qualified name
*/
if (metaislocalset(sp)) {
- len = strlen(p) + strlen("/dev/md/dsk/") + 1;
- devname = Malloc(len);
- (void) strcpy(devname, "/dev/md/dsk/");
- (void) strcat(devname, p);
+ len = strlen(p) + strlen("/dev/md/dsk/") + 1;
+ devname = Malloc(len);
+ (void) strcpy(devname, "/dev/md/dsk/");
+ (void) strcat(devname, p);
} else {
- len = strlen(sp->setname) + strlen(p) +
- strlen("/dev/md//dsk/") + 1;
- devname = Malloc(len);
- (void) snprintf(devname, len, "/dev/md/%s/dsk/%s",
- sp->setname, p);
+ len = strlen(sp->setname) + strlen(p) +
+ strlen("/dev/md//dsk/") + 1;
+ devname = Malloc(len);
+ (void) snprintf(devname, len, "/dev/md/%s/dsk/%s",
+ sp->setname, p);
}
/*
@@ -771,11 +769,11 @@ add_self_name(
}
if (metaislocalset(sp)) {
- if ((key = add_name(sp, myside, MD_KEYWILD, drvname,
- minor, devname, NULL, NULL, ep)) == MD_KEYBAD) {
+ if ((key = add_name(sp, myside, MD_KEYWILD, drvname,
+ minor, devname, NULL, NULL, ep)) == MD_KEYBAD) {
Free(devname);
return (-1);
- }
+ }
} else {
/*
* Add myside first and use the returned key to add other sides
@@ -795,28 +793,29 @@ add_self_name(
}
if (MD_MNSET_DESC(sd)) {
- for (mnside = sd->sd_nodelist; mnside != NULL;
- mnside = mnside->nd_next) {
- if (mnside->nd_nodeid == myside)
- continue;
- if (add_name(sp, mnside->nd_nodeid, key, drvname,
- minor, devname, NULL, NULL, ep) == -1) {
- Free(devname);
- return (-1);
+ for (mnside = sd->sd_nodelist; mnside != NULL;
+ mnside = mnside->nd_next) {
+ if (mnside->nd_nodeid == myside)
+ continue;
+ if (add_name(sp, mnside->nd_nodeid, key,
+ drvname, minor, devname, NULL, NULL,
+ ep) == -1) {
+ Free(devname);
+ return (-1);
+ }
}
- }
} else {
- for (side = 0; side < MD_MAXSIDES; side++) {
- if (sd->sd_nodes[side][0] == '\0')
- continue;
- if (side == myside)
- continue;
- if (add_name(sp, side, key, drvname, minor, devname,
- NULL, NULL, ep) == -1) {
- Free(devname);
- return (-1);
+ for (side = 0; side < MD_MAXSIDES; side++) {
+ if (sd->sd_nodes[side][0] == '\0')
+ continue;
+ if (side == myside)
+ continue;
+ if (add_name(sp, side, key, drvname, minor,
+ devname, NULL, NULL, ep) == -1) {
+ Free(devname);
+ return (-1);
+ }
}
- }
}
}
@@ -859,25 +858,26 @@ del_self_name(
}
if (MD_MNSET_DESC(sd)) {
- for (mnside = sd->sd_nodelist; mnside != NULL;
- mnside = mnside->nd_next) {
- if (mnside->nd_nodeid == myside)
- continue;
- if ((rval = del_name(sp, mnside->nd_nodeid, key,
- ep)) == -1) {
- goto out;
+ for (mnside = sd->sd_nodelist; mnside != NULL;
+ mnside = mnside->nd_next) {
+ if (mnside->nd_nodeid == myside)
+ continue;
+ if ((rval = del_name(sp, mnside->nd_nodeid, key,
+ ep)) == -1) {
+ goto out;
+ }
}
- }
} else {
- for (side = 0; side < MD_MAXSIDES; side++) {
- if (sd->sd_nodes[side][0] == '\0')
- continue;
- if (side == myside)
- continue;
- if ((rval = del_name(sp, side, key, ep)) == -1) {
- goto out;
+ for (side = 0; side < MD_MAXSIDES; side++) {
+ if (sd->sd_nodes[side][0] == '\0')
+ continue;
+ if (side == myside)
+ continue;
+ if ((rval = del_name(sp, side, key,
+ ep)) == -1) {
+ goto out;
+ }
}
- }
}
/*
diff --git a/usr/src/lib/scsi/libses/Makefile.defs b/usr/src/lib/scsi/libses/Makefile.defs
index 9e6d61f601..c4772bd68f 100644
--- a/usr/src/lib/scsi/libses/Makefile.defs
+++ b/usr/src/lib/scsi/libses/Makefile.defs
@@ -50,10 +50,10 @@ CLEANFILES += \
../common/ses_errno.c
#
-# On SPARC, gcc emits DWARF assembler directives for TLS data that are not
+# On SPARC, gcc 3.4 emits DWARF assembler directives for TLS data that are not
# understood by the Sun assembler. Until this problem is fixed, we turn down
# the amount of generated debugging information, which seems to do the trick.
#
-$(SPARC_BLD)CTF_FLAGS += -_gcc=-g1
+$(__GNUC3)$(SPARC_BLD)CTF_FLAGS += -_gcc=-g1
$(LINTLIB) := SRCS = $(SRCDIR)/$(LINTSRC)
diff --git a/usr/src/lib/scsi/libsmp/Makefile.com b/usr/src/lib/scsi/libsmp/Makefile.com
index 946ce85129..4316313877 100644
--- a/usr/src/lib/scsi/libsmp/Makefile.com
+++ b/usr/src/lib/scsi/libsmp/Makefile.com
@@ -51,11 +51,11 @@ CLEANFILES += \
../common/smp_errno.c
#
-# On SPARC, gcc emits DWARF assembler directives for TLS data that are not
+# On SPARC, gcc 3.4 emits DWARF assembler directives for TLS data that are not
# understood by the Sun assembler. Until this problem is fixed, we turn down
# the amount of generated debugging information, which seems to do the trick.
#
-$(SPARC_BLD)CTF_FLAGS += -_gcc=-g1
+$(__GNUC3)$(SPARC_BLD)CTF_FLAGS += -_gcc=-g1
$(LINTLIB) := SRCS = $(SRCDIR)/$(LINTSRC)
diff --git a/usr/src/lib/sun_fc/Makefile.com b/usr/src/lib/sun_fc/Makefile.com
index c8dcbe5b80..205fe56f71 100644
--- a/usr/src/lib/sun_fc/Makefile.com
+++ b/usr/src/lib/sun_fc/Makefile.com
@@ -140,9 +140,8 @@ CPPFLAGS += $(INCS) -DBUILD_TIME='"Wed Sep 24 12:00:00 2008"'
LDLIBS += -ldevinfo
LDLIBS += -lsysevent
LDLIBS += -lnvpair
-CCRUNLIBS = -lCstd -lCrun
-$(__GNUC)CCRUNLIBS = -lstdc++ -lgcc_s
-LDLIBS += $(CCRUNLIBS)
+$(__SUNC)CCNEEDED = -lCstd -lCrun
+LDLIBS += $(CCNEEDED)
LDLIBS += -lc
$(LINTLIB) := SRCS= $(SRCDIR)/$(LINTSRC)
diff --git a/usr/src/lib/sun_fc/amd64/Makefile b/usr/src/lib/sun_fc/amd64/Makefile
index d985c6f969..9cd01791ef 100644
--- a/usr/src/lib/sun_fc/amd64/Makefile
+++ b/usr/src/lib/sun_fc/amd64/Makefile
@@ -27,6 +27,8 @@
include ../Makefile.com
include ../../Makefile.lib.64
+$(__SUNC)CCNEEDED = -lCrun -lCstd
+
.KEEP_STATE:
all: $(LIBS)
diff --git a/usr/src/lib/sun_fc/sparcv9/Makefile b/usr/src/lib/sun_fc/sparcv9/Makefile
index d985c6f969..9cd01791ef 100644
--- a/usr/src/lib/sun_fc/sparcv9/Makefile
+++ b/usr/src/lib/sun_fc/sparcv9/Makefile
@@ -27,6 +27,8 @@
include ../Makefile.com
include ../../Makefile.lib.64
+$(__SUNC)CCNEEDED = -lCrun -lCstd
+
.KEEP_STATE:
all: $(LIBS)
diff --git a/usr/src/man/man1m/Makefile b/usr/src/man/man1m/Makefile
index abe1aeaede..cd1ec0efb3 100644
--- a/usr/src/man/man1m/Makefile
+++ b/usr/src/man/man1m/Makefile
@@ -619,7 +619,6 @@ sparc_MANFILES = cvcd.1m \
dcs.1m \
drd.1m \
efdaemon.1m \
- fpsd.1m \
ldmad.1m \
monitor.1m \
obpsym.1m \
diff --git a/usr/src/man/man1m/fpsd.1m b/usr/src/man/man1m/fpsd.1m
deleted file mode 100644
index cd214345e9..0000000000
--- a/usr/src/man/man1m/fpsd.1m
+++ /dev/null
@@ -1,103 +0,0 @@
-'\" te
-.\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH FPSD 1M "Aug 7, 2008"
-.SH NAME
-fpsd \- Fp-scrubber daemon
-.SH SYNOPSIS
-.LP
-.nf
-\fB/usr/lib/fps/fpsd\fR
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-\fBfpsd\fR is a user-level daemon that periodically runs non-intrusive tests to
-validate proper functioning of FPU (Floating Point Unit) hardware in the
-system. A fault management action is initiated by means of \fBfmd\fR(1M), in
-case an error is detected by the test.
-.SH EXIT STATUS
-.sp
-.LP
-The following exit values are returned:
-.sp
-.ne 2
-.na
-\fB\fB0\fR\fR
-.ad
-.sp .6
-.RS 4n
-Successful completion.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBnon-zero\fR\fR
-.ad
-.sp .6
-.RS 4n
-An error occurred.
-.RE
-
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Uncommitted
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBsvcs\fR(1), \fBfmd\fR(1M), \fBsvcadm\fR(1M), \fBsvccfg\fR(1M),
-\fBattributes\fR(5), \fBsmf\fR(5)
-.SH NOTES
-.sp
-.LP
-The \fBfpsd\fR service is managed by the service management facility,
-\fBsmf\fR(5), under the service identifier:
-.sp
-.in +2
-.nf
-svc:/system/fpsd:default
-.fi
-.in -2
-.sp
-
-.sp
-.LP
-You can use \fBsvccfg\fR(1M) to change the default \fBfpsd\fR behavior:
-.sp
-.in +2
-.nf
-Property Name Type Description
-------------- ---- -----------
-config/exclude_cpus astring comma delimited list of
- CPU IDs to be excluded
- from proactive testing.
-.fi
-.in -2
-.sp
-
-.sp
-.LP
-Administrative actions on this service, such as enabling, disabling, or
-requesting restart, can be performed using \fBsvcadm\fR(1M). The service's
-status can be queried using the \fBsvcs\fR(1) command.
-.sp
-.LP
-Disabling the service can increase system's vulnerability to silent data
-corruption, if a fault were to develop in an FPU within the system.
diff --git a/usr/src/pkg/manifests/developer-build-onbld.mf b/usr/src/pkg/manifests/developer-build-onbld.mf
index 888ac7c569..acfefd75cf 100644
--- a/usr/src/pkg/manifests/developer-build-onbld.mf
+++ b/usr/src/pkg/manifests/developer-build-onbld.mf
@@ -68,6 +68,7 @@ file path=opt/onbld/bin/$(ARCH)/ctfconvert mode=0555
file path=opt/onbld/bin/$(ARCH)/ctfdump mode=0555
file path=opt/onbld/bin/$(ARCH)/ctfmerge mode=0555
file path=opt/onbld/bin/$(ARCH)/ctfstabs mode=0555
+file path=opt/onbld/bin/$(ARCH)/ctfstrip mode=0555
file path=opt/onbld/bin/$(ARCH)/cw mode=0555
$(i386_ONLY)file path=opt/onbld/bin/$(ARCH)/elfextract mode=0555
file path=opt/onbld/bin/$(ARCH)/findunref mode=0555
diff --git a/usr/src/pkg/manifests/service-fault-management.mf b/usr/src/pkg/manifests/service-fault-management.mf
index a3ae7d36d2..c30ff1be3d 100644
--- a/usr/src/pkg/manifests/service-fault-management.mf
+++ b/usr/src/pkg/manifests/service-fault-management.mf
@@ -783,10 +783,6 @@ $(sparc_ONLY)file \
$(sparc_ONLY)file \
path=usr/platform/sun4u/lib/fm/fmd/plugins/datapath-retire.so mode=0555
$(sparc_ONLY)file \
- path=usr/platform/sun4u/lib/fm/fmd/plugins/fps-transport.conf
-$(sparc_ONLY)file path=usr/platform/sun4u/lib/fm/fmd/plugins/fps-transport.so \
- mode=0555
-$(sparc_ONLY)file \
path=usr/platform/sun4u/lib/fm/topo/maps/sun4u-hc-topology.xml mode=0444
$(sparc_ONLY)file path=usr/platform/sun4u/lib/fm/topo/plugins/chip.so \
mode=0555
diff --git a/usr/src/pkg/manifests/system-floating-point-scrubber.mf b/usr/src/pkg/manifests/system-floating-point-scrubber.mf
index b37ceaa73e..5eb3c9ce34 100644
--- a/usr/src/pkg/manifests/system-floating-point-scrubber.mf
+++ b/usr/src/pkg/manifests/system-floating-point-scrubber.mf
@@ -29,41 +29,6 @@
# information about overriding the defaults.
#
<include global_zone_only_component>
-set name=pkg.fmri value=pkg:/system/floating-point-scrubber@$(PKGVERS)
-set name=pkg.description value="FP Scrubber configuration files"
-set name=pkg.summary value="FP Scrubber configuration files"
-set name=info.classification \
- value="org.opensolaris.category.2008:System/Administration and Configuration"
+set name=pkg.fmri value=pkg:/system/floating-point-scrubber@0.5.11,5.11-0.148
+set name=pkg.obsolete value=true
set name=variant.arch value=sparc
-dir path=lib
-dir path=lib/svc
-dir path=lib/svc/manifest group=sys
-dir path=lib/svc/manifest/system group=sys
-dir path=usr group=sys
-dir path=usr/lib
-dir path=usr/lib/fps
-dir path=usr/lib/fps/sun4u
-dir path=usr/lib/fps/sun4u/UltraSPARC-III
-dir path=usr/lib/fps/sun4u/UltraSPARC-III+
-dir path=usr/lib/fps/sun4u/UltraSPARC-IIIi
-dir path=usr/lib/fps/sun4u/UltraSPARC-IV
-dir path=usr/lib/fps/sun4u/UltraSPARC-IV+
-dir path=usr/share/man/man1m
-file path=lib/svc/manifest/system/fpsd.xml group=sys mode=0444
-file path=usr/lib/fps/fpsd mode=0555
-file path=usr/lib/fps/sun4u/UltraSPARC-III/fptest mode=0555
-file path=usr/share/man/man1m/fpsd.1m
-legacy pkg=SUNWfsr desc="FP Scrubber configuration files (ROOT)" \
- name="FP Scrubber configuration files (ROOT)"
-legacy pkg=SUNWfsu desc="FP Scrubber daemon and test" \
- name="FP Scrubber daemon and test"
-license cr_Sun license=cr_Sun
-license lic_CDDL license=lic_CDDL
-link path=usr/lib/fps/sun4u/UltraSPARC-III+/fptest \
- target=../UltraSPARC-III/fptest
-link path=usr/lib/fps/sun4u/UltraSPARC-IIIi/fptest \
- target=../UltraSPARC-III/fptest
-link path=usr/lib/fps/sun4u/UltraSPARC-IV+/fptest \
- target=../UltraSPARC-III/fptest
-link path=usr/lib/fps/sun4u/UltraSPARC-IV/fptest \
- target=../UltraSPARC-III/fptest
diff --git a/usr/src/psm/stand/boot/sparc/common/bootops.c b/usr/src/psm/stand/boot/sparc/common/bootops.c
index 10d7b87003..fa18e68b71 100644
--- a/usr/src/psm/stand/boot/sparc/common/bootops.c
+++ b/usr/src/psm/stand/boot/sparc/common/bootops.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/bootconf.h>
#include <sys/param.h>
@@ -58,7 +56,7 @@ setup_bootops(void)
{
bootops.bsys_version = BO_VERSION;
bootops.bsys_1275_call = (uint64_t)boot_fail;
- bootops.bsys_printf = (uint32_t)boot_fail;
+ bootops.bsys_printf = (uint32_t)(uintptr_t)boot_fail;
if (!memlistpage) /* paranoia runs rampant */
prom_panic("\nMemlistpage not setup yet.");
diff --git a/usr/src/psm/stand/bootblks/ufs/i386/Makefile b/usr/src/psm/stand/bootblks/ufs/i386/Makefile
index 875f8da20f..f41d526d30 100644
--- a/usr/src/psm/stand/bootblks/ufs/i386/Makefile
+++ b/usr/src/psm/stand/bootblks/ufs/i386/Makefile
@@ -23,8 +23,6 @@
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# ident "%Z%%M% %I% %E% SMI"
-#
# psm/stand/bootblks/ufs/i386/Makefile
#
.KEEP_STATE:
@@ -34,8 +32,8 @@ BASEDIR = ../..
include $(BASEDIR)/ufs/Makefile.ufs
-CC = $(GNU_ROOT)/bin/gcc
-ASFLAGS = -B$(GNU_ROOT)/bin/ -fno-builtin -nostdinc
+CC = $(GCC_ROOT)/bin/gcc
+ASFLAGS = -B$(GCC_ROOT)/bin/ -fno-builtin -nostdinc
CPPFLAGS =
LD = $(GNU_ROOT)/bin/gld
diff --git a/usr/src/stand/lib/fs/hsfs/hsfsops.c b/usr/src/stand/lib/fs/hsfs/hsfsops.c
index 0c515740f5..fa3387209c 100644
--- a/usr/src/stand/lib/fs/hsfs/hsfsops.c
+++ b/usr/src/stand/lib/fs/hsfs/hsfsops.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/param.h>
#include <sys/vnode.h>
#include <sys/fs/ufs_fsdir.h>
@@ -1004,7 +1002,7 @@ boot_hsfs_getdents(int fd, struct dirent *dep, unsigned size)
struct hs_direct *hdp;
unsigned long oldoff, oldblok;
-#define SLOP (sizeof (struct dirent) - (int)&((struct dirent *)0)->d_name[1])
+#define SLOP (sizeof (struct dirent) - offsetof(struct direct, d_name[1]))
if (!(dir.fi = find_fp(fd)) ||
((dir.fi->fi_inode->i_smode & IFMT) != IFDIR)) {
@@ -1028,6 +1026,7 @@ boot_hsfs_getdents(int fd, struct dirent *dep, unsigned size)
* alignment.
*/
n = strlen(hdp->hs_ufs_dir.d_name);
+
n = roundup((sizeof (struct dirent) + ((n > SLOP) ? n : 0)),
sizeof (off_t));
diff --git a/usr/src/stand/lib/fs/ufs/ufsops.c b/usr/src/stand/lib/fs/ufs/ufsops.c
index 21befe74b4..47b07a1744 100644
--- a/usr/src/stand/lib/fs/ufs/ufsops.c
+++ b/usr/src/stand/lib/fs/ufs/ufsops.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/param.h>
#include <sys/vnode.h>
#include <sys/fs/ufs_fsdir.h>
@@ -863,7 +861,7 @@ boot_ufs_getdents(int fd, struct dirent *dep, unsigned size)
fileid_t *fp;
unsigned long oldoff, oldblok;
-#define SLOP (sizeof (struct dirent) - (int)&((struct dirent *)0)->d_name[1])
+#define SLOP (sizeof (struct dirent) - offsetof(struct dirent, d_name[1]))
if (fp = find_fp(fd)) {
/*
diff --git a/usr/src/tools/ctf/Makefile b/usr/src/tools/ctf/Makefile
index 3128f64e1f..0746c4943f 100644
--- a/usr/src/tools/ctf/Makefile
+++ b/usr/src/tools/ctf/Makefile
@@ -23,11 +23,10 @@
# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#ident "%Z%%M% %I% %E% SMI"
include ../Makefile.tools
-SUBDIRS = cvt dump stabs scripts
+SUBDIRS = cvt dump stabs scripts ctfstrip
.PARALLEL: $(SUBDIRS)
diff --git a/usr/src/tools/ctf/common/ctf_headers.h b/usr/src/tools/ctf/common/ctf_headers.h
index b00b8fd9a6..268ae79077 100644
--- a/usr/src/tools/ctf/common/ctf_headers.h
+++ b/usr/src/tools/ctf/common/ctf_headers.h
@@ -27,8 +27,6 @@
#ifndef _CTF_HEADERS_H
#define _CTF_HEADERS_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* Because the ON tools are executed on the system where they are built,
* the tools need to include the headers installed on the build system,
@@ -69,4 +67,15 @@
#include <uts/common/sys/ctf_api.h>
#include <lib/libctf/common/libctf.h>
+/*
+ * XXX: This is hack to deal with GCC 4.x removing __builtin_stdarg_start
+ *
+ * We need to build on systems that don't have the fixed va_impl.h on the
+ * system, to achieve that, we stub it out here and in all similar places to
+ * give us a leg up.
+ */
+#if __GNUC__ >= 4
+#define __builtin_stdarg_start(list, name) __builtin_va_start(list, name)
+#endif
+
#endif /* _CTF_HEADERS_H */
diff --git a/usr/src/tools/ctf/common/utils.h b/usr/src/tools/ctf/common/utils.h
index 9b07361a53..4ae2dd0917 100644
--- a/usr/src/tools/ctf/common/utils.h
+++ b/usr/src/tools/ctf/common/utils.h
@@ -27,9 +27,8 @@
#ifndef _UTILS_H
#define _UTILS_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdarg.h>
+#include <ctf_headers.h>
#ifdef __cplusplus
extern "C" {
diff --git a/usr/src/tools/ctf/ctfstrip/Makefile b/usr/src/tools/ctf/ctfstrip/Makefile
new file mode 100644
index 0000000000..d28a9e925e
--- /dev/null
+++ b/usr/src/tools/ctf/ctfstrip/Makefile
@@ -0,0 +1,45 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+.KEEP_STATE:
+
+PROG = ctfstrip
+SRCS = \
+ ctfstrip.c
+
+CFLAGS += $(CCVERBOSE)
+include $(SRC)/tools/Makefile.tools
+
+OBJS = $(SRCS:%.c=%.o)
+LINTFILES = $(SRCS:%.c=%.ln)
+
+LINTFLAGS = -mnux -L$(ROOT)/usr/lib
+
+.NO_PARALLEL:
+.PARALLEL: $(OBJS) $(LINTFILES)
+
+all: $(PROG)
+
+$(PROG): $(OBJS)
+ $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
+ $(POST_PROCESS)
+
+$(ROOTONBLDMACHPROG): $(PROG)
+
+install: $(ROOTONBLDMACHPROG)
+
+clean:
+ $(RM) $(OBJS) $(LINTFILES)
+
+lint: $(LINTFILES)
+ $(LINT) $(LINTFLAGS) $(LINTFILES) $(LDLIBS)
+
+include $(SRC)/tools/Makefile.targ
diff --git a/usr/src/tools/ctf/ctfstrip/ctfstrip.c b/usr/src/tools/ctf/ctfstrip/ctfstrip.c
new file mode 100644
index 0000000000..a14e8d5957
--- /dev/null
+++ b/usr/src/tools/ctf/ctfstrip/ctfstrip.c
@@ -0,0 +1,155 @@
+/*
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source. A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ */
+
+/*
+ * Copyright 2011 Jason King. All rights reserved.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <fcntl.h>
+#include <err.h>
+#include <spawn.h>
+
+#define MCS "/usr/bin/mcs"
+
+#define ELFLEN 4
+static const char elf_signature[] = "\177ELF";
+static posix_spawnattr_t attr;
+static const char *cmd[] = { MCS, "-d", "-n", ".SUNW_ctf", NULL, NULL };
+
+extern char **environ;
+
+static boolean_t check_file(const char *, mode_t *);
+static boolean_t fix_file(const char *, mode_t);
+static void usage(const char *);
+
+int
+main(int argc, const char **argv)
+{
+ const char **p;
+ int rc = 0;
+ mode_t mode;
+
+ if (argc < 2)
+ usage(argv[0]);
+
+ rc = posix_spawnattr_init(&attr);
+ if (rc != 0) {
+ errx(EXIT_FAILURE, "Spawn attribute initialization failed: %s",
+ strerror(rc));
+ }
+
+ for (p = argv + 1; *p != NULL; p++) {
+ if (!check_file(*p, &mode))
+ continue;
+ if (!fix_file(*p, mode))
+ rc = 1;
+ }
+
+ return (rc);
+}
+
+static boolean_t
+check_file(const char *filename, mode_t *mode)
+{
+ char elfbuf[4];
+ struct stat sb;
+ int fd;
+
+ fd = open(filename, O_RDONLY);
+ if (fd == -1) {
+ warn("Unable to open %s", filename);
+ return (B_FALSE);
+ }
+
+ if (fstat(fd, &sb) == -1) {
+ warn("stat(2) failed on %s", filename);
+ (void) close(fd);
+ return (B_FALSE);
+ }
+
+ if (!S_ISREG(sb.st_mode)) {
+ warnx("%s is not a regular file", filename);
+ (void) close(fd);
+ return (B_FALSE);
+ }
+
+ if (sb.st_size < ELFLEN) {
+ warnx("%s is not an ELF file", filename);
+ (void) close(fd);
+ return (B_FALSE);
+ }
+
+ if (read(fd, elfbuf, ELFLEN) != ELFLEN) {
+ warn("Error reading %s", filename);
+ (void) close(fd);
+ return (B_FALSE);
+ }
+
+ if (strncmp(elfbuf, elf_signature, ELFLEN) != 0) {
+ warnx("%s is not an ELF file", filename);
+ (void) close(fd);
+ return (B_FALSE);
+ }
+
+ *mode = sb.st_mode & S_IAMB;
+ (void) close(fd);
+ return (B_TRUE);
+}
+
+static boolean_t
+fix_file(const char *filename, mode_t mode)
+{
+ pid_t pid;
+ int i, rc;
+ int stat = 0;
+
+ if ((mode & S_IWUSR) == 0) {
+ if (chmod(filename, mode | S_IWUSR) == -1) {
+ warn("failed to make %s writable", filename);
+ return (B_FALSE);
+ }
+ }
+
+ cmd[4] = filename;
+ if ((rc = posix_spawn(&pid, MCS, NULL, &attr, (char *const *)cmd, environ)) != 0) {
+ warnx("could not exec mcs: %s", strerror(rc));
+ return (B_FALSE);
+ }
+
+ waitpid(pid, &stat, 0);
+ if (!WIFEXITED(stat) || WEXITSTATUS(stat) != 0) {
+ warnx("Removing CTF information from %s failed", filename);
+ return (B_FALSE);
+ }
+
+ if ((mode & S_IWUSR) == 0) {
+ if (chmod(filename, mode) == -1) {
+ warn("could not reset permissions of %s", filename);
+ return (B_FALSE);
+ }
+ }
+
+ return (B_TRUE);
+}
+
+static void
+usage(const char *name)
+{
+ (void) fprintf(stderr, "Usage: %s file...\n", name);
+ exit(EXIT_FAILURE);
+}
diff --git a/usr/src/tools/ctf/cvt/ctftools.h b/usr/src/tools/ctf/cvt/ctftools.h
index 991f3bc921..f586236ccf 100644
--- a/usr/src/tools/ctf/cvt/ctftools.h
+++ b/usr/src/tools/ctf/cvt/ctftools.h
@@ -26,8 +26,6 @@
#ifndef _CTFTOOLS_H
#define _CTFTOOLS_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* Functions and data structures used in the manipulation of stabs and CTF data
*/
@@ -43,6 +41,17 @@
extern "C" {
#endif
+/*
+ * XXX: This is hack to deal with GCC 4.x removing __builtin_stdarg_start
+ *
+ * We need to build on systems that don't have the fixed va_impl.h on the
+ * system, to achieve that, we stub it out here and in all similar places to
+ * give us a leg up.
+ */
+#if __GNUC__ >= 4
+#define __builtin_stdarg_start(list, name) __builtin_va_start(list, name)
+#endif
+
#include "list.h"
#include "hash.h"
diff --git a/usr/src/tools/ctf/dwarf/Makefile.com b/usr/src/tools/ctf/dwarf/Makefile.com
index fc3a5f38a9..4c25cdda1d 100644
--- a/usr/src/tools/ctf/dwarf/Makefile.com
+++ b/usr/src/tools/ctf/dwarf/Makefile.com
@@ -9,23 +9,32 @@ include ../../Makefile.ctf
LIBRARY= libdwarf.a
VERS= .1
-OBJECTS= dwarf_abbrev.o \
+OBJECTS=dwarf_abbrev.o \
dwarf_addr_finder.o \
dwarf_alloc.o \
dwarf_arange.o \
dwarf_die_deliv.o \
+ dwarf_elf_access.o \
dwarf_error.o \
dwarf_form.o \
dwarf_frame.o \
+ dwarf_frame2.o \
+ dwarf_frame3.o \
dwarf_funcs.o \
dwarf_global.o \
+ dwarf_harmless.o \
dwarf_init_finish.o \
dwarf_leb.o \
dwarf_line.o \
+ dwarf_line2.o \
dwarf_loc.o \
dwarf_macro.o \
+ dwarf_names.o \
+ dwarf_original_elf_init.o \
dwarf_print_lines.o \
+ dwarf_pubtypes.o \
dwarf_query.o \
+ dwarf_ranges.o \
dwarf_sort_line.o \
dwarf_string.o \
dwarf_stubs.o \
@@ -33,6 +42,7 @@ OBJECTS= dwarf_abbrev.o \
dwarf_util.o \
dwarf_vars.o \
dwarf_weaks.o \
+ malloc_check.o \
pro_alloc.o \
pro_arange.o \
pro_die.o \
@@ -55,17 +65,15 @@ OBJECTS= dwarf_abbrev.o \
pro_vars.o \
pro_weaks.o
-
include $(SRC)/lib/Makefile.lib
SRCS= $(PICS:%.o=../common/%.c)
-
FILEMODE = 0755
SRCDIR = ../common/
-CPPFLAGS += -I$(SRCDIR)
+CPPFLAGS += -I$(SRCDIR) -DELF_TARGET_ALL=1
LDLIBS = -lelf -lc
diff --git a/usr/src/tools/ctf/dwarf/common/config.h b/usr/src/tools/ctf/dwarf/common/config.h
index 03a76150a0..42b286cfda 100644
--- a/usr/src/tools/ctf/dwarf/common/config.h
+++ b/usr/src/tools/ctf/dwarf/common/config.h
@@ -1,76 +1,27 @@
-/* config.h. Generated by configure. */
+/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.in by autoheader. */
-/*
- Copyright (C) 2000,2003,2004 Silicon Graphics, Inc. All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of version 2.1 of the GNU Lesser General Public License
- as published by the Free Software Foundation.
-
- This program is distributed in the hope that it would be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- Further, this software is distributed without any warranty that it is
- free of the rightful claim of any third person regarding infringement
- or the like. Any license provided herein, whether implied or
- otherwise, applies only to this software file. Patent licenses, if
- any, provided herein do not apply to combinations of this program with
- other software, or any other product whatsoever.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
- USA.
-
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
- Mountain View, CA 94043, or:
-
- http://www.sgi.com
-
- For further information regarding this notice, see:
-
- http://oss.sgi.com/projects/GenInfo/NoticeExplan
-
-*/
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+/* Define to 1 if you have the <alloca.h> header file. */
+#define HAVE_ALLOCA_H 1
+/* Define 1 if want to allow producer to build with 32/64bit section offsets
+ per dwarf3 */
+#define HAVE_DWARF2_99_EXTENSION 1
-/* Define to 1 if the elf64_getshdr function is in libelf.a */
-#define HAVE_ELF64_GETSHDR 1
-
-/* Define to 1 if the elf64_getehdr function is in libelf.a */
+/* Define to 1 if the elf64_getehdr function is in libelf.a. */
#define HAVE_ELF64_GETEHDR 1
+/* Define to 1 if the elf64_getshdr function is in libelf.a. */
+#define HAVE_ELF64_GETSHDR 1
-/* see if __uint32_t is predefined in the compiler */
-/* #undef HAVE___UINT32_T */
-
-/* see if __uint64_t is predefined in the compiler */
-/* #undef HAVE___UINT64_T */
-
-/* Define 1 if sys/types.h defines __uint32_t */
-/* #undef HAVE___UINT32_T_IN_SYS_TYPES_H */
-
-/* Define 1 if R_IA_64_DIR32LSB is defined (might be enum value) */
-/* #undef HAVE_R_IA_64_DIR32LSB */
-
-/* Define 1 if sys/ia64/elf.h exists*/
-/* #undef HAVE_SYS_IA64_ELF_H */
-
-/* Define 1 if want to build with 32/64bit section offsets for ia64 */
-/* per the dwarf2 committee proposal adopted Dec 1999 */
-/* #undef HAVE_DWARF2_99_EXTENSION */
-
-/* Define 1 if want only 32bit section offsets per pure dwarf2.0.0 spec */
-/* Only one of HAVE_OLD_DWARF2_32BIT_OFFSET or HAVE_DWARF2_99_EXTENSION */
-/* may be defined */
-/* #undef HAVE_OLD_DWARF2_32BIT_OFFSET */
-
+/* Define 1 if Elf64_Rela defined. */
+#define HAVE_ELF64_RELA 1
-/* Define to 1 if you have the <alloca.h> header file. */
-#define HAVE_ALLOCA_H 1
+/* Define 1 if Elf64_Sym defined. */
+#define HAVE_ELF64_SYM 1
/* Define to 1 if you have the <elfaccess.h> header file. */
/* #undef HAVE_ELFACCESS_H */
@@ -87,11 +38,26 @@
/* Define to 1 if you have the <libelf/libelf.h> header file. */
/* #undef HAVE_LIBELF_LIBELF_H */
+/* Define 1 if off64 is defined via libelf with GNU_SOURCE. */
+#define HAVE_LIBELF_OFF64_OK 1
+
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
-/* Define to 1 if you have the <sgidefs.h> header file. */
-/* #undef HAVE_SGIDEFS_H */
+/* Define 1 if need nonstandard printf format for 64bit */
+/* #undef HAVE_NONSTANDARD_PRINTF_64_FORMAT */
+
+/* Define 1 to default to old DW_FRAME_CFA_COL */
+/* #undef HAVE_OLD_FRAME_CFA_COL */
+
+/* Define 1 if plain libelf builds. */
+#define HAVE_RAW_LIBELF_OK 1
+
+/* Define 1 if R_IA_64_DIR32LSB is defined (might be enum value). */
+/* #undef HAVE_R_IA_64_DIR32LSB */
+
+/* Define 1 if want producer to build with IRIX offset sizes */
+/* #undef HAVE_SGI_IRIX_OFFSETS */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
@@ -99,6 +65,9 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
+/* Define 1 if want producer to build with only 32bit section offsets */
+/* #undef HAVE_STRICT_DWARF2_32BIT_OFFSET */
+
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
@@ -117,6 +86,27 @@
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
+/* Define 1 if want to allow Windows full path detection */
+/* #undef HAVE_WINDOWS_PATH */
+
+/* See if __uint32_t is predefined in the compiler. */
+/* #undef HAVE___UINT32_T */
+
+/* Define 1 if __uint32_t is in sgidefs.h. */
+/* #undef HAVE___UINT32_T_IN_SGIDEFS_H */
+
+/* Define 1 if sys/types.h defines __uint32_t. */
+/* #undef HAVE___UINT32_T_IN_SYS_TYPES_H */
+
+/* See if __uint64_t is predefined in the compiler. */
+/* #undef HAVE___UINT64_T */
+
+/* Define 1 if is in sgidefs.h. */
+/* #undef HAVE___UINT64_T_IN_SGIDEFS_H */
+
+/* Define 1 if sys/types.h defines __uint64_t. */
+/* #undef HAVE___UINT64_T_IN_SYS_TYPES_H */
+
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
@@ -129,16 +119,25 @@
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
/* Define to the version of this package. */
#define PACKAGE_VERSION ""
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
-/* Define to 1 if your processor stores words with the most significant byte
- first (like Motorola and SPARC, unlike Intel and VAX). */
-#if defined(__sparc)
-#define WORDS_BIGENDIAN 1
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
#else
-#undef WORDS_BIGENDIAN
+# if defined(__sparc)
+# define WORDS_BIGENDIAN 1
+# else
+# undef WORDS_BIGENDIAN
+# endif
#endif
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf.h b/usr/src/tools/ctf/dwarf/common/dwarf.h
index 1b96ec9d69..b064c4d86b 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf.h
@@ -1,10 +1,7 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2001,2003,2004,2005,2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2007-2010 David Anderson. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -21,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -45,533 +42,814 @@ extern "C" {
#endif
/*
- dwarf.h DWARF debugging information values
- $Revision: 1.29 $ $Date: 2003/02/05 22:57:01 $
+ dwarf.h DWARF debugging information values
+ $Revision: 1.41 $ $Date: 2006/04/17 00:09:56 $
- The comment "DWARF3" appears where there are
- new entries from DWARF3.
+ The comment "DWARF3" appears where there are
+ new entries from DWARF3 as of 2004, "DWARF3f"
+ where there are new entries as of the November 2005
+ public review document and other comments apply
+ where extension entries appear.
-*/
+ Extensions part of DWARF4 are marked DWARF4.
+
+ A few extension names have omitted the 'vendor id'
+ (See chapter 7, "Vendor Extensibility"). Please
+ always use a 'vendor id' string in extension names.
+ Vendors should use a vendor string in names and
+ whereever possible avoid duplicating values used by
+ other vendor extensions
-#define DW_TAG_array_type 0x01
-#define DW_TAG_class_type 0x02
-#define DW_TAG_entry_point 0x03
-#define DW_TAG_enumeration_type 0x04
-#define DW_TAG_formal_parameter 0x05
-#define DW_TAG_imported_declaration 0x08
-#define DW_TAG_label 0x0a
-#define DW_TAG_lexical_block 0x0b
-#define DW_TAG_member 0x0d
-#define DW_TAG_pointer_type 0x0f
-#define DW_TAG_reference_type 0x10
-#define DW_TAG_compile_unit 0x11
-#define DW_TAG_string_type 0x12
-#define DW_TAG_structure_type 0x13
-#define DW_TAG_subroutine_type 0x15
-#define DW_TAG_typedef 0x16
-#define DW_TAG_union_type 0x17
-#define DW_TAG_unspecified_parameters 0x18
-#define DW_TAG_variant 0x19
-#define DW_TAG_common_block 0x1a
-#define DW_TAG_common_inclusion 0x1b
-#define DW_TAG_inheritance 0x1c
-#define DW_TAG_inlined_subroutine 0x1d
-#define DW_TAG_module 0x1e
-#define DW_TAG_ptr_to_member_type 0x1f
-#define DW_TAG_set_type 0x20
-#define DW_TAG_subrange_type 0x21
-#define DW_TAG_with_stmt 0x22
-#define DW_TAG_access_declaration 0x23
-#define DW_TAG_base_type 0x24
-#define DW_TAG_catch_block 0x25
-#define DW_TAG_const_type 0x26
-#define DW_TAG_constant 0x27
-#define DW_TAG_enumerator 0x28
-#define DW_TAG_file_type 0x29
-#define DW_TAG_friend 0x2a
-#define DW_TAG_namelist 0x2b
- /* Previous releases of this header had the following
- misspelled with a trailing 's' */
-#define DW_TAG_namelist_item 0x2c /* DWARF3/2 spelling */
-#define DW_TAG_namelist_items 0x2c /* SGI misspelling/typo */
-#define DW_TAG_packed_type 0x2d
-#define DW_TAG_subprogram 0x2e
- /* The DWARF2 document had two spellings of the following
- two TAGs, DWARF3 specifies the longer spelling. */
-#define DW_TAG_template_type_parameter 0x2f /* DWARF3/2 spelling*/
-#define DW_TAG_template_type_param 0x2f /* DWARF2 spelling*/
-#define DW_TAG_template_value_parameter 0x30 /* DWARF3/2 spelling*/
-#define DW_TAG_template_value_param 0x30 /* DWARF2 spelling*/
-#define DW_TAG_thrown_type 0x31
-#define DW_TAG_try_block 0x32
-#define DW_TAG_variant_part 0x33
-#define DW_TAG_variable 0x34
-#define DW_TAG_volatile_type 0x35
-#define DW_TAG_dwarf_procedure 0x36 /* DWARF3 */
-#define DW_TAG_restrict_type 0x37 /* DWARF3 */
-#define DW_TAG_interface_type 0x38 /* DWARF3 */
-#define DW_TAG_namespace 0x39 /* DWARF3 */
-#define DW_TAG_imported_module 0x3a /* DWARF3 */
-#define DW_TAG_unspecified_type 0x3b /* DWARF3 */
-#define DW_TAG_partial_unit 0x3c /* DWARF3 */
-#define DW_TAG_imported_unit 0x3d /* DWARF3 */
-#define DW_TAG_mutable_type 0x3e /* DWARF3 */
-#define DW_TAG_lo_user 0x4080
-#define DW_TAG_MIPS_loop 0x4081
-#define DW_TAG_hi_user 0xffff
-
-/* The following 3 are GNU extensions
- The TAG names are as if the extensions were dwarf standard,
- not extensions.
*/
-#define DW_TAG_format_label 0x4101 /* for FORTRAN 77, Fortran 90 */
-#define DW_TAG_function_template 0x4102 /* for C++ */
-#define DW_TAG_class_template 0x4103 /* for C++ */
-/* The following are SUN extensions */
-#define DW_TAG_SUN_function_template 0x4201
-#define DW_TAG_SUN_class_template 0x4202
-#define DW_TAG_SUN_struct_template 0x4203
-#define DW_TAG_SUN_union_template 0x4204
-#define DW_TAG_SUN_virtual_inheritance 0x4205
-#define DW_TAG_SUN_codeflags 0x4206
-#define DW_TAG_SUN_memop_info 0x4207
-#define DW_TAG_SUN_omp_child_func 0x4208
-
+
+#define DW_TAG_array_type 0x01
+#define DW_TAG_class_type 0x02
+#define DW_TAG_entry_point 0x03
+#define DW_TAG_enumeration_type 0x04
+#define DW_TAG_formal_parameter 0x05
+#define DW_TAG_imported_declaration 0x08
+#define DW_TAG_label 0x0a
+#define DW_TAG_lexical_block 0x0b
+#define DW_TAG_member 0x0d
+#define DW_TAG_pointer_type 0x0f
+#define DW_TAG_reference_type 0x10
+#define DW_TAG_compile_unit 0x11
+#define DW_TAG_string_type 0x12
+#define DW_TAG_structure_type 0x13
+#define DW_TAG_subroutine_type 0x15
+#define DW_TAG_typedef 0x16
+#define DW_TAG_union_type 0x17
+#define DW_TAG_unspecified_parameters 0x18
+#define DW_TAG_variant 0x19
+#define DW_TAG_common_block 0x1a
+#define DW_TAG_common_inclusion 0x1b
+#define DW_TAG_inheritance 0x1c
+#define DW_TAG_inlined_subroutine 0x1d
+#define DW_TAG_module 0x1e
+#define DW_TAG_ptr_to_member_type 0x1f
+#define DW_TAG_set_type 0x20
+#define DW_TAG_subrange_type 0x21
+#define DW_TAG_with_stmt 0x22
+#define DW_TAG_access_declaration 0x23
+#define DW_TAG_base_type 0x24
+#define DW_TAG_catch_block 0x25
+#define DW_TAG_const_type 0x26
+#define DW_TAG_constant 0x27
+#define DW_TAG_enumerator 0x28
+#define DW_TAG_file_type 0x29
+#define DW_TAG_friend 0x2a
+#define DW_TAG_namelist 0x2b
+ /* Early releases of this header had the following
+ misspelled with a trailing 's' */
+#define DW_TAG_namelist_item 0x2c /* DWARF3/2 spelling */
+#define DW_TAG_namelist_items 0x2c /* SGI misspelling/typo */
+#define DW_TAG_packed_type 0x2d
+#define DW_TAG_subprogram 0x2e
+ /* The DWARF2 document had two spellings of the following
+ two TAGs, DWARF3 specifies the longer spelling. */
+#define DW_TAG_template_type_parameter 0x2f /* DWARF3/2 spelling*/
+#define DW_TAG_template_type_param 0x2f /* DWARF2 spelling*/
+#define DW_TAG_template_value_parameter 0x30 /* DWARF3/2 spelling*/
+#define DW_TAG_template_value_param 0x30 /* DWARF2 spelling*/
+#define DW_TAG_thrown_type 0x31
+#define DW_TAG_try_block 0x32
+#define DW_TAG_variant_part 0x33
+#define DW_TAG_variable 0x34
+#define DW_TAG_volatile_type 0x35
+#define DW_TAG_dwarf_procedure 0x36 /* DWARF3 */
+#define DW_TAG_restrict_type 0x37 /* DWARF3 */
+#define DW_TAG_interface_type 0x38 /* DWARF3 */
+#define DW_TAG_namespace 0x39 /* DWARF3 */
+#define DW_TAG_imported_module 0x3a /* DWARF3 */
+#define DW_TAG_unspecified_type 0x3b /* DWARF3 */
+#define DW_TAG_partial_unit 0x3c /* DWARF3 */
+#define DW_TAG_imported_unit 0x3d /* DWARF3 */
+ /* Do not use DW_TAG_mutable_type */
+#define DW_TAG_mutable_type 0x3e /* Withdrawn from DWARF3 by DWARF3f. */
+#define DW_TAG_condition 0x3f /* DWARF3f */
+#define DW_TAG_shared_type 0x40 /* DWARF3f */
+#define DW_TAG_type_unit 0x41 /* DWARF4 */
+#define DW_TAG_rvalue_reference_type 0x42 /* DWARF4 */
+#define DW_TAG_template_alias 0x43 /* DWARF4 */
+#define DW_TAG_lo_user 0x4080
+
+#define DW_TAG_MIPS_loop 0x4081
+
+/* HP extensions: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz */
+#define DW_TAG_HP_array_descriptor 0x4090 /* HP */
+
+/* GNU extensions. The first 3 missing the GNU_. */
+#define DW_TAG_format_label 0x4101 /* GNU. Fortran. */
+#define DW_TAG_function_template 0x4102 /* GNU. For C++ */
+#define DW_TAG_class_template 0x4103 /* GNU. For C++ */
+#define DW_TAG_GNU_BINCL 0x4104 /* GNU */
+#define DW_TAG_GNU_EINCL 0x4105 /* GNU */
+
+
+/* GNU extension. http://gcc.gnu.org/wiki/TemplateParmsDwarf */
+#define DW_TAG_GNU_template_template_parameter 0x4106 /* GNU */
+#define DW_TAG_GNU_template_template_param 0x4106 /* GNU */
+#define DW_TAG_GNU_template_parameter_pack 0x4107 /* GNU */
+#define DW_TAG_GNU_formal_parameter_pack 0x4108 /* GNU */
+
+/* ALTIUM extensions */
+ /* DSP-C/Starcore __circ qualifier */
+#define DW_TAG_ALTIUM_circ_type 0x5101 /* ALTIUM */
+ /* Starcore __mwa_circ qualifier */
+#define DW_TAG_ALTIUM_mwa_circ_type 0x5102 /* ALTIUM */
+ /* Starcore __rev_carry qualifier */
+#define DW_TAG_ALTIUM_rev_carry_type 0x5103 /* ALTIUM */
+ /* M16 __rom qualifier */
+#define DW_TAG_ALTIUM_rom 0x5111 /* ALTIUM */
+
/* The following 3 are extensions to support UPC */
#define DW_TAG_upc_shared_type 0x8765 /* UPC */
#define DW_TAG_upc_strict_type 0x8766 /* UPC */
#define DW_TAG_upc_relaxed_type 0x8767 /* UPC */
-#define DW_children_no 0
-#define DW_children_yes 1
-
-
-
-#define DW_FORM_addr 0x01
-#define DW_FORM_block2 0x03
-#define DW_FORM_block4 0x04
-#define DW_FORM_data2 0x05
-#define DW_FORM_data4 0x06
-#define DW_FORM_data8 0x07
-#define DW_FORM_string 0x08
-#define DW_FORM_block 0x09
-#define DW_FORM_block1 0x0a
-#define DW_FORM_data1 0x0b
-#define DW_FORM_flag 0x0c
-#define DW_FORM_sdata 0x0d
-#define DW_FORM_strp 0x0e
-#define DW_FORM_udata 0x0f
-#define DW_FORM_ref_addr 0x10
-#define DW_FORM_ref1 0x11
-#define DW_FORM_ref2 0x12
-#define DW_FORM_ref4 0x13
-#define DW_FORM_ref8 0x14
-#define DW_FORM_ref_udata 0x15
-#define DW_FORM_indirect 0x16
-
-#define DW_AT_sibling 0x01
-#define DW_AT_location 0x02
-#define DW_AT_name 0x03
-#define DW_AT_ordering 0x09
-#define DW_AT_subscr_data 0x0a
-#define DW_AT_byte_size 0x0b
-#define DW_AT_bit_offset 0x0c
-#define DW_AT_bit_size 0x0d
-#define DW_AT_element_list 0x0f
-#define DW_AT_stmt_list 0x10
-#define DW_AT_low_pc 0x11
-#define DW_AT_high_pc 0x12
-#define DW_AT_language 0x13
-#define DW_AT_member 0x14
-#define DW_AT_discr 0x15
-#define DW_AT_discr_value 0x16
-#define DW_AT_visibility 0x17
-#define DW_AT_import 0x18
-#define DW_AT_string_length 0x19
-#define DW_AT_common_reference 0x1a
-#define DW_AT_comp_dir 0x1b
-#define DW_AT_const_value 0x1c
-#define DW_AT_containing_type 0x1d
-#define DW_AT_default_value 0x1e
-#define DW_AT_inline 0x20
-#define DW_AT_is_optional 0x21
-#define DW_AT_lower_bound 0x22
-#define DW_AT_producer 0x25
-#define DW_AT_prototyped 0x27
-#define DW_AT_return_addr 0x2a
-#define DW_AT_start_scope 0x2c
-#define DW_AT_stride_size 0x2e
-#define DW_AT_upper_bound 0x2f
-#define DW_AT_abstract_origin 0x31
-#define DW_AT_accessibility 0x32
-#define DW_AT_address_class 0x33
-#define DW_AT_artificial 0x34
-#define DW_AT_base_types 0x35
-#define DW_AT_calling_convention 0x36
-#define DW_AT_count 0x37
-#define DW_AT_data_member_location 0x38
-#define DW_AT_decl_column 0x39
-#define DW_AT_decl_file 0x3a
-#define DW_AT_decl_line 0x3b
-#define DW_AT_declaration 0x3c
-#define DW_AT_discr_list 0x3d
-#define DW_AT_encoding 0x3e
-#define DW_AT_external 0x3f
-#define DW_AT_frame_base 0x40
-#define DW_AT_friend 0x41
-#define DW_AT_identifier_case 0x42
-#define DW_AT_macro_info 0x43
-#define DW_AT_namelist_item 0x44
-#define DW_AT_priority 0x45
-#define DW_AT_segment 0x46
-#define DW_AT_specification 0x47
-#define DW_AT_static_link 0x48
-#define DW_AT_type 0x49
-#define DW_AT_use_location 0x4a
-#define DW_AT_variable_parameter 0x4b
-#define DW_AT_virtuality 0x4c
-#define DW_AT_vtable_elem_location 0x4d
-#define DW_AT_allocated 0x4e /* DWARF3 */
-#define DW_AT_associated 0x4f /* DWARF3 */
-#define DW_AT_data_location 0x50 /* DWARF3 */
-#define DW_AT_stride 0x51 /* DWARF3 */
-#define DW_AT_entry_pc 0x52 /* DWARF3 */
-#define DW_AT_use_UTF8 0x53 /* DWARF3 */
-#define DW_AT_extension 0x54 /* DWARF3 */
-#define DW_AT_ranges 0x55 /* DWARF3 */
-#define DW_AT_trampoline 0x56 /* DWARF3 */
-#define DW_AT_call_column 0x57 /* DWARF3 */
-#define DW_AT_call_file 0x58 /* DWARF3 */
-#define DW_AT_call_line 0x59 /* DWARF3 */
-#define DW_AT_description 0x5a /* DWARF3 */
-#define DW_AT_lo_user 0x2000
-#define DW_AT_MIPS_fde 0x2001
-#define DW_AT_MIPS_loop_begin 0x2002
-#define DW_AT_MIPS_tail_loop_begin 0x2003
-#define DW_AT_MIPS_epilog_begin 0x2004
-#define DW_AT_MIPS_loop_unroll_factor 0x2005
-#define DW_AT_MIPS_software_pipeline_depth 0x2006
-#define DW_AT_MIPS_linkage_name 0x2007
-#define DW_AT_MIPS_stride 0x2008
-#define DW_AT_MIPS_abstract_name 0x2009
-#define DW_AT_MIPS_clone_origin 0x200a
-#define DW_AT_MIPS_has_inlines 0x200b
-#define DW_AT_MIPS_stride_byte 0x200c
-#define DW_AT_MIPS_stride_elem 0x200d
-#define DW_AT_MIPS_ptr_dopetype 0x200e
-#define DW_AT_MIPS_allocatable_dopetype 0x200f
-#define DW_AT_MIPS_assumed_shape_dopetype 0x2010
-#define DW_AT_MIPS_assumed_size 0x2011
-
-
-/* GNU extensions, currently not used in dwarf2 by egcs
- Mostly dwarf1 extensions not needed in dwarf2?
-*/
-#define DW_AT_sf_names 0x2101
-#define DW_AT_src_info 0x2102
-#define DW_AT_mac_info 0x2103
-#define DW_AT_src_coords 0x2104
-#define DW_AT_body_begin 0x2105
-#define DW_AT_body_end 0x2106
-/* UPC extension */
-#define DW_AT_upc_threads_scaled 0x3210 /* UPC */
+/* PGI (STMicroelectronics) extensions. */
+#define DW_TAG_PGI_kanji_type 0xa000 /* PGI */
+#define DW_TAG_PGI_interface_block 0xa020 /* PGI */
+/* The following are SUN extensions */
+#define DW_TAG_SUN_function_template 0x4201 /* SUN */
+#define DW_TAG_SUN_class_template 0x4202 /* SUN */
+#define DW_TAG_SUN_struct_template 0x4203 /* SUN */
+#define DW_TAG_SUN_union_template 0x4204 /* SUN */
+#define DW_TAG_SUN_indirect_inheritance 0x4205 /* SUN */
+#define DW_TAG_SUN_codeflags 0x4206 /* SUN */
+#define DW_TAG_SUN_memop_info 0x4207 /* SUN */
+#define DW_TAG_SUN_omp_child_func 0x4208 /* SUN */
+#define DW_TAG_SUN_rtti_descriptor 0x4209 /* SUN */
+#define DW_TAG_SUN_dtor_info 0x420a /* SUN */
+#define DW_TAG_SUN_dtor 0x420b /* SUN */
+#define DW_TAG_SUN_f90_interface 0x420c /* SUN */
+#define DW_TAG_SUN_fortran_vax_structure 0x420d /* SUN */
+#define DW_TAG_SUN_hi 0x42ff /* SUN */
+
+
+#define DW_TAG_hi_user 0xffff
+
+#define DW_children_no 0
+#define DW_children_yes 1
+
+
+
+#define DW_FORM_addr 0x01
+#define DW_FORM_block2 0x03
+#define DW_FORM_block4 0x04
+#define DW_FORM_data2 0x05
+#define DW_FORM_data4 0x06
+#define DW_FORM_data8 0x07
+#define DW_FORM_string 0x08
+#define DW_FORM_block 0x09
+#define DW_FORM_block1 0x0a
+#define DW_FORM_data1 0x0b
+#define DW_FORM_flag 0x0c
+#define DW_FORM_sdata 0x0d
+#define DW_FORM_strp 0x0e
+#define DW_FORM_udata 0x0f
+#define DW_FORM_ref_addr 0x10
+#define DW_FORM_ref1 0x11
+#define DW_FORM_ref2 0x12
+#define DW_FORM_ref4 0x13
+#define DW_FORM_ref8 0x14
+#define DW_FORM_ref_udata 0x15
+#define DW_FORM_indirect 0x16
+#define DW_FORM_sec_offset 0x17 /* DWARF4 */
+#define DW_FORM_exprloc 0x18 /* DWARF4 */
+#define DW_FORM_flag_present 0x19 /* DWARF4 */
+/* 0x1a thru 0x1f were left unused accidentally. Reserved for future use. */
+#define DW_FORM_ref_sig8 0x20 /* DWARF4 */
+
+#define DW_AT_sibling 0x01
+#define DW_AT_location 0x02
+#define DW_AT_name 0x03
+#define DW_AT_ordering 0x09
+#define DW_AT_subscr_data 0x0a
+#define DW_AT_byte_size 0x0b
+#define DW_AT_bit_offset 0x0c
+#define DW_AT_bit_size 0x0d
+#define DW_AT_element_list 0x0f
+#define DW_AT_stmt_list 0x10
+#define DW_AT_low_pc 0x11
+#define DW_AT_high_pc 0x12
+#define DW_AT_language 0x13
+#define DW_AT_member 0x14
+#define DW_AT_discr 0x15
+#define DW_AT_discr_value 0x16
+#define DW_AT_visibility 0x17
+#define DW_AT_import 0x18
+#define DW_AT_string_length 0x19
+#define DW_AT_common_reference 0x1a
+#define DW_AT_comp_dir 0x1b
+#define DW_AT_const_value 0x1c
+#define DW_AT_containing_type 0x1d
+#define DW_AT_default_value 0x1e
+#define DW_AT_inline 0x20
+#define DW_AT_is_optional 0x21
+#define DW_AT_lower_bound 0x22
+#define DW_AT_producer 0x25
+#define DW_AT_prototyped 0x27
+#define DW_AT_return_addr 0x2a
+#define DW_AT_start_scope 0x2c
+#define DW_AT_bit_stride 0x2e /* DWARF3 name */
+#define DW_AT_stride_size 0x2e /* DWARF2 name */
+#define DW_AT_upper_bound 0x2f
+#define DW_AT_abstract_origin 0x31
+#define DW_AT_accessibility 0x32
+#define DW_AT_address_class 0x33
+#define DW_AT_artificial 0x34
+#define DW_AT_base_types 0x35
+#define DW_AT_calling_convention 0x36
+#define DW_AT_count 0x37
+#define DW_AT_data_member_location 0x38
+#define DW_AT_decl_column 0x39
+#define DW_AT_decl_file 0x3a
+#define DW_AT_decl_line 0x3b
+#define DW_AT_declaration 0x3c
+#define DW_AT_discr_list 0x3d
+#define DW_AT_encoding 0x3e
+#define DW_AT_external 0x3f
+#define DW_AT_frame_base 0x40
+#define DW_AT_friend 0x41
+#define DW_AT_identifier_case 0x42
+#define DW_AT_macro_info 0x43
+#define DW_AT_namelist_item 0x44
+#define DW_AT_priority 0x45
+#define DW_AT_segment 0x46
+#define DW_AT_specification 0x47
+#define DW_AT_static_link 0x48
+#define DW_AT_type 0x49
+#define DW_AT_use_location 0x4a
+#define DW_AT_variable_parameter 0x4b
+#define DW_AT_virtuality 0x4c
+#define DW_AT_vtable_elem_location 0x4d
+#define DW_AT_allocated 0x4e /* DWARF3 */
+#define DW_AT_associated 0x4f /* DWARF3 */
+#define DW_AT_data_location 0x50 /* DWARF3 */
+#define DW_AT_byte_stride 0x51 /* DWARF3f */
+#define DW_AT_stride 0x51 /* DWARF3 (do not use) */
+#define DW_AT_entry_pc 0x52 /* DWARF3 */
+#define DW_AT_use_UTF8 0x53 /* DWARF3 */
+#define DW_AT_extension 0x54 /* DWARF3 */
+#define DW_AT_ranges 0x55 /* DWARF3 */
+#define DW_AT_trampoline 0x56 /* DWARF3 */
+#define DW_AT_call_column 0x57 /* DWARF3 */
+#define DW_AT_call_file 0x58 /* DWARF3 */
+#define DW_AT_call_line 0x59 /* DWARF3 */
+#define DW_AT_description 0x5a /* DWARF3 */
+#define DW_AT_binary_scale 0x5b /* DWARF3f */
+#define DW_AT_decimal_scale 0x5c /* DWARF3f */
+#define DW_AT_small 0x5d /* DWARF3f */
+#define DW_AT_decimal_sign 0x5e /* DWARF3f */
+#define DW_AT_digit_count 0x5f /* DWARF3f */
+#define DW_AT_picture_string 0x60 /* DWARF3f */
+#define DW_AT_mutable 0x61 /* DWARF3f */
+#define DW_AT_threads_scaled 0x62 /* DWARF3f */
+#define DW_AT_explicit 0x63 /* DWARF3f */
+#define DW_AT_object_pointer 0x64 /* DWARF3f */
+#define DW_AT_endianity 0x65 /* DWARF3f */
+#define DW_AT_elemental 0x66 /* DWARF3f */
+#define DW_AT_pure 0x67 /* DWARF3f */
+#define DW_AT_recursive 0x68 /* DWARF3f */
+#define DW_AT_signature 0x69 /* DWARF4 */
+#define DW_AT_main_subprogram 0x6a /* DWARF4 */
+#define DW_AT_data_bit_offset 0x6b /* DWARF4 */
+#define DW_AT_const_expr 0x6c /* DWARF4 */
+#define DW_AT_enum_class 0x6d /* DWARF4 */
+#define DW_AT_linkage_name 0x6e /* DWARF4 */
+
+/* In extensions, we attempt to include the vendor extension
+ in the name even when the vendor leaves it out. */
+
+/* HP extensions. */
+#define DW_AT_HP_block_index 0x2000 /* HP */
+
+/* Follows extension so dwarfdump prints the most-likely-useful name. */
+#define DW_AT_lo_user 0x2000
+
+#define DW_AT_MIPS_fde 0x2001 /* MIPS/SGI */
+#define DW_AT_MIPS_loop_begin 0x2002 /* MIPS/SGI */
+#define DW_AT_MIPS_tail_loop_begin 0x2003 /* MIPS/SGI */
+#define DW_AT_MIPS_epilog_begin 0x2004 /* MIPS/SGI */
+#define DW_AT_MIPS_loop_unroll_factor 0x2005 /* MIPS/SGI */
+#define DW_AT_MIPS_software_pipeline_depth 0x2006 /* MIPS/SGI */
+#define DW_AT_MIPS_linkage_name 0x2007 /* MIPS/SGI, GNU, and others.*/
+#define DW_AT_MIPS_stride 0x2008 /* MIPS/SGI */
+#define DW_AT_MIPS_abstract_name 0x2009 /* MIPS/SGI */
+#define DW_AT_MIPS_clone_origin 0x200a /* MIPS/SGI */
+#define DW_AT_MIPS_has_inlines 0x200b /* MIPS/SGI */
+#define DW_AT_MIPS_stride_byte 0x200c /* MIPS/SGI */
+#define DW_AT_MIPS_stride_elem 0x200d /* MIPS/SGI */
+#define DW_AT_MIPS_ptr_dopetype 0x200e /* MIPS/SGI */
+#define DW_AT_MIPS_allocatable_dopetype 0x200f /* MIPS/SGI */
+#define DW_AT_MIPS_assumed_shape_dopetype 0x2010 /* MIPS/SGI */
+#define DW_AT_MIPS_assumed_size 0x2011 /* MIPS/SGI */
+
+/* HP extensions. */
+#define DW_AT_HP_unmodifiable 0x2001 /* conflict: MIPS */
+#define DW_AT_HP_actuals_stmt_list 0x2010 /* conflict: MIPS */
+#define DW_AT_HP_proc_per_section 0x2011 /* conflict: MIPS */
+#define DW_AT_HP_raw_data_ptr 0x2012 /* HP */
+#define DW_AT_HP_pass_by_reference 0x2013 /* HP */
+#define DW_AT_HP_opt_level 0x2014 /* HP */
+#define DW_AT_HP_prof_version_id 0x2015 /* HP */
+#define DW_AT_HP_opt_flags 0x2016 /* HP */
+#define DW_AT_HP_cold_region_low_pc 0x2017 /* HP */
+#define DW_AT_HP_cold_region_high_pc 0x2018 /* HP */
+#define DW_AT_HP_all_variables_modifiable 0x2019 /* HP */
+#define DW_AT_HP_linkage_name 0x201a /* HP */
+#define DW_AT_HP_prof_flags 0x201b /* HP */
+
+#define DW_AT_CPQ_discontig_ranges 0x2001 /* COMPAQ/HP */
+#define DW_AT_CPQ_semantic_events 0x2002 /* COMPAQ/HP */
+#define DW_AT_CPQ_split_lifetimes_var 0x2003 /* COMPAQ/HP */
+#define DW_AT_CPQ_split_lifetimes_rtn 0x2004 /* COMPAQ/HP */
+#define DW_AT_CPQ_prologue_length 0x2005 /* COMPAQ/HP */
+
+#define DW_AT_INTEL_other_endian 0x2026 /* Intel, 1 if byte swapped. */
+
+/* GNU extensions. */
+#define DW_AT_sf_names 0x2101 /* GNU */
+#define DW_AT_src_info 0x2102 /* GNU */
+#define DW_AT_mac_info 0x2103 /* GNU */
+#define DW_AT_src_coords 0x2104 /* GNU */
+#define DW_AT_body_begin 0x2105 /* GNU */
+#define DW_AT_body_end 0x2106 /* GNU */
+#define DW_AT_GNU_vector 0x2107 /* GNU */
+#define DW_AT_GNU_template_name 0x2108 /* GNU */
+
+/* ALTIUM extension: ALTIUM Compliant location lists (flag) */
+#define DW_AT_ALTIUM_loclist 0x2300 /* ALTIUM */
/* Sun extensions */
-#define DW_AT_SUN_template 0x2201
-#define DW_AT_SUN_alignment 0x2202
-#define DW_AT_SUN_vtable 0x2203
-#define DW_AT_SUN_count_guarantee 0x2204
-#define DW_AT_SUN_command_line 0x2205
-#define DW_AT_SUN_vbase 0x2206
-#define DW_AT_SUN_compile_options 0x2207
-#define DW_AT_SUN_language 0x2208
-#define DW_AT_SUN_browser_file 0x2209
-#define DW_AT_SUN_vtable_abi 0x2210
-#define DW_AT_SUN_func_offsets 0x2211
-#define DW_AT_SUN_cf_kind 0x2212
-#define DW_AT_SUN_vtable_index 0x2213
-#define DW_AT_SUN_omp_tpriv_addr 0x2214
-#define DW_AT_SUN_omp_child_func 0x2215
-#define DW_AT_SUN_func_offset 0x2216
-#define DW_AT_SUN_memop_type_ref 0x2217
-#define DW_AT_SUN_profile_id 0x2218
-#define DW_AT_SUN_memop_signature 0x2219
-#define DW_AT_SUN_obj_dir 0x2220
-#define DW_AT_SUN_obj_file 0x2221
-#define DW_AT_SUN_original_name 0x2222
-
+#define DW_AT_SUN_template 0x2201 /* SUN */
+#define DW_AT_VMS_rtnbeg_pd_address 0x2201 /* VMS */
+#define DW_AT_SUN_alignment 0x2202 /* SUN */
+#define DW_AT_SUN_vtable 0x2203 /* SUN */
+#define DW_AT_SUN_count_guarantee 0x2204 /* SUN */
+#define DW_AT_SUN_command_line 0x2205 /* SUN */
+#define DW_AT_SUN_vbase 0x2206 /* SUN */
+#define DW_AT_SUN_compile_options 0x2207 /* SUN */
+#define DW_AT_SUN_language 0x2208 /* SUN */
+#define DW_AT_SUN_browser_file 0x2209 /* SUN */
+#define DW_AT_SUN_vtable_abi 0x2210 /* SUN */
+#define DW_AT_SUN_func_offsets 0x2211 /* SUN */
+#define DW_AT_SUN_cf_kind 0x2212 /* SUN */
+#define DW_AT_SUN_vtable_index 0x2213 /* SUN */
+#define DW_AT_SUN_omp_tpriv_addr 0x2214 /* SUN */
+#define DW_AT_SUN_omp_child_func 0x2215 /* SUN */
+#define DW_AT_SUN_func_offset 0x2216 /* SUN */
+#define DW_AT_SUN_memop_type_ref 0x2217 /* SUN */
+#define DW_AT_SUN_profile_id 0x2218 /* SUN */
+#define DW_AT_SUN_memop_signature 0x2219 /* SUN */
+#define DW_AT_SUN_obj_dir 0x2220 /* SUN */
+#define DW_AT_SUN_obj_file 0x2221 /* SUN */
+#define DW_AT_SUN_original_name 0x2222 /* SUN */
+#define DW_AT_SUN_hwcprof_signature 0x2223 /* SUN */
+#define DW_AT_SUN_amd64_parmdump 0x2224 /* SUN */
+#define DW_AT_SUN_part_link_name 0x2225 /* SUN */
+#define DW_AT_SUN_link_name 0x2226 /* SUN */
+#define DW_AT_SUN_pass_with_const 0x2227 /* SUN */
+#define DW_AT_SUN_return_with_const 0x2228 /* SUN */
+#define DW_AT_SUN_import_by_name 0x2229 /* SUN */
+#define DW_AT_SUN_f90_pointer 0x222a /* SUN */
+#define DW_AT_SUN_pass_by_ref 0x222b /* SUN */
+#define DW_AT_SUN_f90_allocatable 0x222c /* SUN */
+#define DW_AT_SUN_f90_assumed_shape_array 0x222d /* SUN */
+#define DW_AT_SUN_c_vla 0x222e /* SUN */
+#define DW_AT_SUN_return_value_ptr 0x2230 /* SUN */
+#define DW_AT_SUN_dtor_start 0x2231 /* SUN */
+#define DW_AT_SUN_dtor_length 0x2232 /* SUN */
+#define DW_AT_SUN_dtor_state_initial 0x2233 /* SUN */
+#define DW_AT_SUN_dtor_state_final 0x2234 /* SUN */
+#define DW_AT_SUN_dtor_state_deltas 0x2235 /* SUN */
+#define DW_AT_SUN_import_by_lname 0x2236 /* SUN */
+#define DW_AT_SUN_f90_use_only 0x2237 /* SUN */
+#define DW_AT_SUN_namelist_spec 0x2238 /* SUN */
+#define DW_AT_SUN_is_omp_child_func 0x2239 /* SUN */
+#define DW_AT_SUN_fortran_main_alias 0x223a /* SUN */
+#define DW_AT_SUN_fortran_based 0x223b /* SUN */
-#define DW_AT_hi_user 0x3fff
-
-#define DW_OP_addr 0x03
-#define DW_OP_deref 0x06
-#define DW_OP_const1u 0x08
-#define DW_OP_const1s 0x09
-#define DW_OP_const2u 0x0a
-#define DW_OP_const2s 0x0b
-#define DW_OP_const4u 0x0c
-#define DW_OP_const4s 0x0d
-#define DW_OP_const8u 0x0e
-#define DW_OP_const8s 0x0f
-#define DW_OP_constu 0x10
-#define DW_OP_consts 0x11
-#define DW_OP_dup 0x12
-#define DW_OP_drop 0x13
-#define DW_OP_over 0x14
-#define DW_OP_pick 0x15
-#define DW_OP_swap 0x16
-#define DW_OP_rot 0x17
-#define DW_OP_xderef 0x18
-#define DW_OP_abs 0x19
-#define DW_OP_and 0x1a
-#define DW_OP_div 0x1b
-#define DW_OP_minus 0x1c
-#define DW_OP_mod 0x1d
-#define DW_OP_mul 0x1e
-#define DW_OP_neg 0x1f
-#define DW_OP_not 0x20
-#define DW_OP_or 0x21
-#define DW_OP_plus 0x22
-#define DW_OP_plus_uconst 0x23
-#define DW_OP_shl 0x24
-#define DW_OP_shr 0x25
-#define DW_OP_shra 0x26
-#define DW_OP_xor 0x27
-#define DW_OP_bra 0x28
-#define DW_OP_eq 0x29
-#define DW_OP_ge 0x2a
-#define DW_OP_gt 0x2b
-#define DW_OP_le 0x2c
-#define DW_OP_lt 0x2d
-#define DW_OP_ne 0x2e
-#define DW_OP_skip 0x2f
-#define DW_OP_lit0 0x30
-#define DW_OP_lit1 0x31
-#define DW_OP_lit2 0x32
-#define DW_OP_lit3 0x33
-#define DW_OP_lit4 0x34
-#define DW_OP_lit5 0x35
-#define DW_OP_lit6 0x36
-#define DW_OP_lit7 0x37
-#define DW_OP_lit8 0x38
-#define DW_OP_lit9 0x39
-#define DW_OP_lit10 0x3a
-#define DW_OP_lit11 0x3b
-#define DW_OP_lit12 0x3c
-#define DW_OP_lit13 0x3d
-#define DW_OP_lit14 0x3e
-#define DW_OP_lit15 0x3f
-#define DW_OP_lit16 0x40
-#define DW_OP_lit17 0x41
-#define DW_OP_lit18 0x42
-#define DW_OP_lit19 0x43
-#define DW_OP_lit20 0x44
-#define DW_OP_lit21 0x45
-#define DW_OP_lit22 0x46
-#define DW_OP_lit23 0x47
-#define DW_OP_lit24 0x48
-#define DW_OP_lit25 0x49
-#define DW_OP_lit26 0x4a
-#define DW_OP_lit27 0x4b
-#define DW_OP_lit28 0x4c
-#define DW_OP_lit29 0x4d
-#define DW_OP_lit30 0x4e
-#define DW_OP_lit31 0x4f
-#define DW_OP_reg0 0x50
-#define DW_OP_reg1 0x51
-#define DW_OP_reg2 0x52
-#define DW_OP_reg3 0x53
-#define DW_OP_reg4 0x54
-#define DW_OP_reg5 0x55
-#define DW_OP_reg6 0x56
-#define DW_OP_reg7 0x57
-#define DW_OP_reg8 0x58
-#define DW_OP_reg9 0x59
-#define DW_OP_reg10 0x5a
-#define DW_OP_reg11 0x5b
-#define DW_OP_reg12 0x5c
-#define DW_OP_reg13 0x5d
-#define DW_OP_reg14 0x5e
-#define DW_OP_reg15 0x5f
-#define DW_OP_reg16 0x60
-#define DW_OP_reg17 0x61
-#define DW_OP_reg18 0x62
-#define DW_OP_reg19 0x63
-#define DW_OP_reg20 0x64
-#define DW_OP_reg21 0x65
-#define DW_OP_reg22 0x66
-#define DW_OP_reg23 0x67
-#define DW_OP_reg24 0x68
-#define DW_OP_reg25 0x69
-#define DW_OP_reg26 0x6a
-#define DW_OP_reg27 0x6b
-#define DW_OP_reg28 0x6c
-#define DW_OP_reg29 0x6d
-#define DW_OP_reg30 0x6e
-#define DW_OP_reg31 0x6f
-#define DW_OP_breg0 0x70
-#define DW_OP_breg1 0x71
-#define DW_OP_breg2 0x72
-#define DW_OP_breg3 0x73
-#define DW_OP_breg4 0x74
-#define DW_OP_breg5 0x75
-#define DW_OP_breg6 0x76
-#define DW_OP_breg7 0x77
-#define DW_OP_breg8 0x78
-#define DW_OP_breg9 0x79
-#define DW_OP_breg10 0x7a
-#define DW_OP_breg11 0x7b
-#define DW_OP_breg12 0x7c
-#define DW_OP_breg13 0x7d
-#define DW_OP_breg14 0x7e
-#define DW_OP_breg15 0x7f
-#define DW_OP_breg16 0x80
-#define DW_OP_breg17 0x81
-#define DW_OP_breg18 0x82
-#define DW_OP_breg19 0x83
-#define DW_OP_breg20 0x84
-#define DW_OP_breg21 0x85
-#define DW_OP_breg22 0x86
-#define DW_OP_breg23 0x87
-#define DW_OP_breg24 0x88
-#define DW_OP_breg25 0x89
-#define DW_OP_breg26 0x8a
-#define DW_OP_breg27 0x8b
-#define DW_OP_breg28 0x8c
-#define DW_OP_breg29 0x8d
-#define DW_OP_breg30 0x8e
-#define DW_OP_breg31 0x8f
-#define DW_OP_regx 0x90
-#define DW_OP_fbreg 0x91
-#define DW_OP_bregx 0x92
-#define DW_OP_piece 0x93
-#define DW_OP_deref_size 0x94
-#define DW_OP_xderef_size 0x95
-#define DW_OP_nop 0x96
-#define DW_OP_push_object_address 0x97 /* DWARF3 */
-#define DW_OP_call2 0x98 /* DWARF3 */
-#define DW_OP_call4 0x99 /* DWARF3 */
-#define DW_OP_call_ref 0x9a /* DWARF3 */
-#define DW_OP_lo_user 0xe0
-#define DW_OP_hi_user 0xff
-
-#define DW_ATE_address 0x1
-#define DW_ATE_boolean 0x2
-#define DW_ATE_complex_float 0x3
-#define DW_ATE_float 0x4
-#define DW_ATE_signed 0x5
-#define DW_ATE_signed_char 0x6
-#define DW_ATE_unsigned 0x7
-#define DW_ATE_unsigned_char 0x8
-#define DW_ATE_imaginary_float 0x9 /* DWARF3 */
-#define DW_ATE_lo_user 0x80
+/* UPC extension */
+#define DW_AT_upc_threads_scaled 0x3210 /* UPC */
+
+/* PGI (STMicroelectronics) extensions. */
+#define DW_AT_PGI_lbase 0x3a00 /* PGI. Block, constant, reference. This attribute is an ASTPLAB extension used to describe the array local base. */
+#define DW_AT_PGI_soffset 0x3a01 /* PGI. Block, constant, reference. ASTPLAB adds this attribute to describe the section offset, or the offset to the first element in the dimension. */
+#define DW_AT_PGI_lstride 0x3a02 /* PGI. Block, constant, reference. ASTPLAB adds this attribute to describe the linear stride or the distance between elements in the dimension. */
+
+/* Apple Extensions for closures */
+#define DW_AT_APPLE_closure 0x3fe4 /* Apple */
+/* Apple Extensions for Objective-C runtime info */
+#define DW_AT_APPLE_major_runtime_vers 0x3fe5 /* Apple */
+#define DW_AT_APPLE_runtime_class 0x3fe6 /* Apple */
+
+
+#define DW_AT_hi_user 0x3fff
+
+#define DW_OP_addr 0x03
+#define DW_OP_deref 0x06
+#define DW_OP_const1u 0x08
+#define DW_OP_const1s 0x09
+#define DW_OP_const2u 0x0a
+#define DW_OP_const2s 0x0b
+#define DW_OP_const4u 0x0c
+#define DW_OP_const4s 0x0d
+#define DW_OP_const8u 0x0e
+#define DW_OP_const8s 0x0f
+#define DW_OP_constu 0x10
+#define DW_OP_consts 0x11
+#define DW_OP_dup 0x12
+#define DW_OP_drop 0x13
+#define DW_OP_over 0x14
+#define DW_OP_pick 0x15
+#define DW_OP_swap 0x16
+#define DW_OP_rot 0x17
+#define DW_OP_xderef 0x18
+#define DW_OP_abs 0x19
+#define DW_OP_and 0x1a
+#define DW_OP_div 0x1b
+#define DW_OP_minus 0x1c
+#define DW_OP_mod 0x1d
+#define DW_OP_mul 0x1e
+#define DW_OP_neg 0x1f
+#define DW_OP_not 0x20
+#define DW_OP_or 0x21
+#define DW_OP_plus 0x22
+#define DW_OP_plus_uconst 0x23
+#define DW_OP_shl 0x24
+#define DW_OP_shr 0x25
+#define DW_OP_shra 0x26
+#define DW_OP_xor 0x27
+#define DW_OP_bra 0x28
+#define DW_OP_eq 0x29
+#define DW_OP_ge 0x2a
+#define DW_OP_gt 0x2b
+#define DW_OP_le 0x2c
+#define DW_OP_lt 0x2d
+#define DW_OP_ne 0x2e
+#define DW_OP_skip 0x2f
+#define DW_OP_lit0 0x30
+#define DW_OP_lit1 0x31
+#define DW_OP_lit2 0x32
+#define DW_OP_lit3 0x33
+#define DW_OP_lit4 0x34
+#define DW_OP_lit5 0x35
+#define DW_OP_lit6 0x36
+#define DW_OP_lit7 0x37
+#define DW_OP_lit8 0x38
+#define DW_OP_lit9 0x39
+#define DW_OP_lit10 0x3a
+#define DW_OP_lit11 0x3b
+#define DW_OP_lit12 0x3c
+#define DW_OP_lit13 0x3d
+#define DW_OP_lit14 0x3e
+#define DW_OP_lit15 0x3f
+#define DW_OP_lit16 0x40
+#define DW_OP_lit17 0x41
+#define DW_OP_lit18 0x42
+#define DW_OP_lit19 0x43
+#define DW_OP_lit20 0x44
+#define DW_OP_lit21 0x45
+#define DW_OP_lit22 0x46
+#define DW_OP_lit23 0x47
+#define DW_OP_lit24 0x48
+#define DW_OP_lit25 0x49
+#define DW_OP_lit26 0x4a
+#define DW_OP_lit27 0x4b
+#define DW_OP_lit28 0x4c
+#define DW_OP_lit29 0x4d
+#define DW_OP_lit30 0x4e
+#define DW_OP_lit31 0x4f
+#define DW_OP_reg0 0x50
+#define DW_OP_reg1 0x51
+#define DW_OP_reg2 0x52
+#define DW_OP_reg3 0x53
+#define DW_OP_reg4 0x54
+#define DW_OP_reg5 0x55
+#define DW_OP_reg6 0x56
+#define DW_OP_reg7 0x57
+#define DW_OP_reg8 0x58
+#define DW_OP_reg9 0x59
+#define DW_OP_reg10 0x5a
+#define DW_OP_reg11 0x5b
+#define DW_OP_reg12 0x5c
+#define DW_OP_reg13 0x5d
+#define DW_OP_reg14 0x5e
+#define DW_OP_reg15 0x5f
+#define DW_OP_reg16 0x60
+#define DW_OP_reg17 0x61
+#define DW_OP_reg18 0x62
+#define DW_OP_reg19 0x63
+#define DW_OP_reg20 0x64
+#define DW_OP_reg21 0x65
+#define DW_OP_reg22 0x66
+#define DW_OP_reg23 0x67
+#define DW_OP_reg24 0x68
+#define DW_OP_reg25 0x69
+#define DW_OP_reg26 0x6a
+#define DW_OP_reg27 0x6b
+#define DW_OP_reg28 0x6c
+#define DW_OP_reg29 0x6d
+#define DW_OP_reg30 0x6e
+#define DW_OP_reg31 0x6f
+#define DW_OP_breg0 0x70
+#define DW_OP_breg1 0x71
+#define DW_OP_breg2 0x72
+#define DW_OP_breg3 0x73
+#define DW_OP_breg4 0x74
+#define DW_OP_breg5 0x75
+#define DW_OP_breg6 0x76
+#define DW_OP_breg7 0x77
+#define DW_OP_breg8 0x78
+#define DW_OP_breg9 0x79
+#define DW_OP_breg10 0x7a
+#define DW_OP_breg11 0x7b
+#define DW_OP_breg12 0x7c
+#define DW_OP_breg13 0x7d
+#define DW_OP_breg14 0x7e
+#define DW_OP_breg15 0x7f
+#define DW_OP_breg16 0x80
+#define DW_OP_breg17 0x81
+#define DW_OP_breg18 0x82
+#define DW_OP_breg19 0x83
+#define DW_OP_breg20 0x84
+#define DW_OP_breg21 0x85
+#define DW_OP_breg22 0x86
+#define DW_OP_breg23 0x87
+#define DW_OP_breg24 0x88
+#define DW_OP_breg25 0x89
+#define DW_OP_breg26 0x8a
+#define DW_OP_breg27 0x8b
+#define DW_OP_breg28 0x8c
+#define DW_OP_breg29 0x8d
+#define DW_OP_breg30 0x8e
+#define DW_OP_breg31 0x8f
+#define DW_OP_regx 0x90
+#define DW_OP_fbreg 0x91
+#define DW_OP_bregx 0x92
+#define DW_OP_piece 0x93
+#define DW_OP_deref_size 0x94
+#define DW_OP_xderef_size 0x95
+#define DW_OP_nop 0x96
+#define DW_OP_push_object_address 0x97 /* DWARF3 */
+#define DW_OP_call2 0x98 /* DWARF3 */
+#define DW_OP_call4 0x99 /* DWARF3 */
+#define DW_OP_call_ref 0x9a /* DWARF3 */
+#define DW_OP_form_tls_address 0x9b /* DWARF3f */
+#define DW_OP_call_frame_cfa 0x9c /* DWARF3f */
+#define DW_OP_bit_piece 0x9d /* DWARF3f */
+#define DW_OP_implicit_value 0x9e /* DWARF4 */
+#define DW_OP_stack_value 0x9f /* DWARF4 */
+
+
+ /* GNU extensions. */
+#define DW_OP_GNU_push_tls_address 0xe0 /* GNU */
+
+/* Follows extension so dwarfdump prints the most-likely-useful name. */
+#define DW_OP_lo_user 0xe0
+
+ /* HP extensions. */
+#define DW_OP_HP_unknown 0xe0 /* HP conflict: GNU */
+#define DW_OP_HP_is_value 0xe1 /* HP */
+#define DW_OP_HP_fltconst4 0xe2 /* HP */
+#define DW_OP_HP_fltconst8 0xe3 /* HP */
+#define DW_OP_HP_mod_range 0xe4 /* HP */
+#define DW_OP_HP_unmod_range 0xe5 /* HP */
+#define DW_OP_HP_tls 0xe6 /* HP */
+
+#define DW_OP_INTEL_bit_piece 0xe8 /* Intel: made obsolete by DW_OP_bit_piece above. */
+
+
+ /* Apple extension. */
+#define DW_OP_APPLE_uninit 0xf0 /* Apple */
+
+#define DW_OP_hi_user 0xff
+
+#define DW_ATE_address 0x1
+#define DW_ATE_boolean 0x2
+#define DW_ATE_complex_float 0x3
+#define DW_ATE_float 0x4
+#define DW_ATE_signed 0x5
+#define DW_ATE_signed_char 0x6
+#define DW_ATE_unsigned 0x7
+#define DW_ATE_unsigned_char 0x8
+#define DW_ATE_imaginary_float 0x9 /* DWARF3 */
+#define DW_ATE_packed_decimal 0xa /* DWARF3f */
+#define DW_ATE_numeric_string 0xb /* DWARF3f */
+#define DW_ATE_edited 0xc /* DWARF3f */
+#define DW_ATE_signed_fixed 0xd /* DWARF3f */
+#define DW_ATE_unsigned_fixed 0xe /* DWARF3f */
+#define DW_ATE_decimal_float 0xf /* DWARF3f */
+
+
+/* ALTIUM extensions. x80, x81 */
+#define DW_ATE_ALTIUM_fract 0x80 /* ALTIUM __fract type */
+
+/* Follows extension so dwarfdump prints the most-likely-useful name. */
+#define DW_ATE_lo_user 0x80
+
+/* Shown here to help dwarfdump build script. */
+#define DW_ATE_ALTIUM_accum 0x81 /* ALTIUM __accum type */
+
+/* HP Floating point extensions. */
+#define DW_ATE_HP_float80 0x80 /* (80 bit). HP */
+
+
+#define DW_ATE_HP_complex_float80 0x81 /* Complex (80 bit). HP */
+#define DW_ATE_HP_float128 0x82 /* (128 bit). HP */
+#define DW_ATE_HP_complex_float128 0x83 /* Complex (128 bit). HP */
+#define DW_ATE_HP_floathpintel 0x84 /* (82 bit IA64). HP */
+#define DW_ATE_HP_imaginary_float80 0x85 /* HP */
+#define DW_ATE_HP_imaginary_float128 0x86 /* HP */
/* Sun extensions */
#define DW_ATE_SUN_interval_float 0x91
#define DW_ATE_SUN_imaginary_float 0x92 /* Obsolete: See DW_ATE_imaginary_float */
-#define DW_ATE_hi_user 0xff
+#define DW_ATE_hi_user 0xff
+
-/* for use with DW_TAG_SUN_codeflags
+/* Decimal Sign codes. */
+#define DW_DS_unsigned 0x01 /* DWARF3f */
+#define DW_DS_leading_overpunch 0x02 /* DWARF3f */
+#define DW_DS_trailing_overpunch 0x03 /* DWARF3f */
+#define DW_DS_leading_separate 0x04 /* DWARF3f */
+
+#define DW_DS_trailing_separate 0x05 /* DWARF3f */
+
+/* Endian code name. */
+#define DW_END_default 0x00 /* DWARF3f */
+#define DW_END_big 0x01 /* DWARF3f */
+#define DW_END_little 0x02 /* DWARF3f */
+
+#define DW_END_lo_user 0x40 /* DWARF3f */
+#define DW_END_hi_user 0xff /* DWARF3f */
+
+/* For use with DW_TAG_SUN_codeflags
* If DW_TAG_SUN_codeflags is accepted as a dwarf standard, then
* standard dwarf ATCF entries start at 0x01
*/
-#define DW_ATCF_lo_user 0x40
-#define DW_ATCF_SUN_mop_bitfield 0x41
-#define DW_ATCF_SUN_mop_spill 0x42
-#define DW_ATCF_SUN_mop_scopy 0x43
-#define DW_ATCF_SUN_func_start 0x44
-#define DW_ATCF_SUN_end_ctors 0x45
-#define DW_ATCF_SUN_branch_target 0x46
-#define DW_ATCF_SUN_mop_stack_probe 0x47
-#define DW_ATCF_hi_user 0xff
-
-#define DW_ACCESS_public 1
-#define DW_ACCESS_protected 2
-#define DW_ACCESS_private 3
-
-#define DW_VIS_local 1
-#define DW_VIS_exported 2
-#define DW_VIS_qualified 3
-
-#define DW_VIRTUALITY_none 0
-#define DW_VIRTUALITY_virtual 1
-#define DW_VIRTUALITY_pure_virtual 2
-
-#define DW_LANG_C89 0x0001
-#define DW_LANG_C 0x0002
-#define DW_LANG_Ada83 0x0003
-#define DW_LANG_C_plus_plus 0x0004
-#define DW_LANG_Cobol74 0x0005
-#define DW_LANG_Cobol85 0x0006
-#define DW_LANG_Fortran77 0x0007
-#define DW_LANG_Fortran90 0x0008
-#define DW_LANG_Pascal83 0x0009
-#define DW_LANG_Modula2 0x000a
-#define DW_LANG_Java 0x000b /* DWARF3 */
-#define DW_LANG_C99 0x000c /* DWARF3 */
-#define DW_LANG_Ada95 0x000d /* DWARF3 */
-#define DW_LANG_Fortran95 0x000e /* DWARF3 */
-#define DW_LANG_PLI 0x000f /* DWARF3 */
-#define DW_LANG_lo_user 0x8000
-#define DW_LANG_Mips_Assembler 0x8001
-#define DW_LANG_Upc 0x8765 /* UPC */
+#define DW_ATCF_lo_user 0x40 /* SUN */
+#define DW_ATCF_SUN_mop_bitfield 0x41 /* SUN */
+#define DW_ATCF_SUN_mop_spill 0x42 /* SUN */
+#define DW_ATCF_SUN_mop_scopy 0x43 /* SUN */
+#define DW_ATCF_SUN_func_start 0x44 /* SUN */
+#define DW_ATCF_SUN_end_ctors 0x45 /* SUN */
+#define DW_ATCF_SUN_branch_target 0x46 /* SUN */
+#define DW_ATCF_SUN_mop_stack_probe 0x47 /* SUN */
+#define DW_ATCF_SUN_func_epilog 0x48 /* SUN */
+#define DW_ATCF_hi_user 0xff /* SUN */
+
+/* Accessibility code name. */
+#define DW_ACCESS_public 0x01
+#define DW_ACCESS_protected 0x02
+#define DW_ACCESS_private 0x03
+
+/* Visibility code name. */
+#define DW_VIS_local 0x01
+#define DW_VIS_exported 0x02
+#define DW_VIS_qualified 0x03
+
+/* Virtuality code name. */
+#define DW_VIRTUALITY_none 0x00
+#define DW_VIRTUALITY_virtual 0x01
+#define DW_VIRTUALITY_pure_virtual 0x02
+
+#define DW_LANG_C89 0x0001
+#define DW_LANG_C 0x0002
+#define DW_LANG_Ada83 0x0003
+#define DW_LANG_C_plus_plus 0x0004
+#define DW_LANG_Cobol74 0x0005
+#define DW_LANG_Cobol85 0x0006
+#define DW_LANG_Fortran77 0x0007
+#define DW_LANG_Fortran90 0x0008
+#define DW_LANG_Pascal83 0x0009
+#define DW_LANG_Modula2 0x000a
+#define DW_LANG_Java 0x000b /* DWARF3 */
+#define DW_LANG_C99 0x000c /* DWARF3 */
+#define DW_LANG_Ada95 0x000d /* DWARF3 */
+#define DW_LANG_Fortran95 0x000e /* DWARF3 */
+#define DW_LANG_PLI 0x000f /* DWARF3 */
+#define DW_LANG_ObjC 0x0010 /* DWARF3f */
+#define DW_LANG_ObjC_plus_plus 0x0011 /* DWARF3f */
+#define DW_LANG_UPC 0x0012 /* DWARF3f */
+#define DW_LANG_D 0x0013 /* DWARF3f */
+#define DW_LANG_Python 0x0014 /* DWARF4 */
+/* The following 2 are not yet formally approved October 2010, but
+ it seems extremely likely they will be approved as the committee
+ chair agrees these should be ok and no one on the committee
+ has objected. */
+#define DW_LANG_OpenCL 0x0015 /* Provisionally DWARF5 */
+#define DW_LANG_Go 0x0016 /* Provisionally DWARF5 */
+#define DW_LANG_lo_user 0x8000
+#define DW_LANG_Mips_Assembler 0x8001 /* MIPS */
+#define DW_LANG_Upc 0x8765 /* UPC, use
+ DW_LANG_UPC instead. */
+/* ALTIUM extension */
+#define DW_LANG_ALTIUM_Assembler 0x9101 /* ALTIUM */
/* Sun extensions */
-#define DW_LANG_SUN_Assembler 0x9001
-
-#define DW_LANG_hi_user 0xffff
-
-
-#define DW_ID_case_sensitive 0
-#define DW_ID_up_case 1
-#define DW_ID_down_case 2
-#define DW_ID_case_insensitive 3
-
-#define DW_CC_normal 0x1
-#define DW_CC_program 0x2
-#define DW_CC_nocall 0x3
-#define DW_CC_lo_user 0x40
-#define DW_CC_hi_user 0xff
-
-#define DW_INL_not_inlined 0
-#define DW_INL_inlined 1
-#define DW_INL_declared_not_inlined 2
-#define DW_INL_declared_inlined 3
-
-#define DW_ORD_row_major 0
-#define DW_ORD_col_major 1
-
-#define DW_DSC_label 0
-#define DW_DSC_range 1
-
-#define DW_LNS_copy 1
-#define DW_LNS_advance_pc 2
-#define DW_LNS_advance_line 3
-#define DW_LNS_set_file 4
-#define DW_LNS_set_column 5
-#define DW_LNS_negate_stmt 6
-#define DW_LNS_set_basic_block 7
-#define DW_LNS_const_add_pc 8
-#define DW_LNS_fixed_advance_pc 9
-#define DW_LNS_set_prologue_end 10 /* DWARF3 */
-#define DW_LNS_set_epilogue_begin 11 /* DWARF3 */
-#define DW_LNS_set_isa 12 /* DWARF3 */
-
-#define DW_LNE_end_sequence 1
-#define DW_LNE_set_address 2
-#define DW_LNE_define_file 3
-#define DW_LNE_lo_user 128 /* DWARF3 */
-#define DW_LNE_hi_user 255 /* DWARF3 */
-
-#define DW_MACINFO_define 1
-#define DW_MACINFO_undef 2
-#define DW_MACINFO_start_file 3
-#define DW_MACINFO_end_file 4
-#define DW_MACINFO_vendor_ext 255
-
+#define DW_LANG_SUN_Assembler 0x9001 /* SUN */
+
+#define DW_LANG_hi_user 0xffff
+
+/* Identifier case name. */
+#define DW_ID_case_sensitive 0x00
+#define DW_ID_up_case 0x01
+#define DW_ID_down_case 0x02
+#define DW_ID_case_insensitive 0x03
+
+/* Calling Convention Name. */
+#define DW_CC_normal 0x01
+#define DW_CC_program 0x02
+#define DW_CC_nocall 0x03
+#define DW_CC_lo_user 0x40
+
+/* ALTIUM extensions. */
+/* Function is an interrupt handler, return address on system stack. */
+#define DW_CC_ALTIUM_interrupt 0x65 /* ALTIUM*/
+
+/* Near function model, return address on system stack. */
+#define DW_CC_ALTIUM_near_system_stack 0x66 /*ALTIUM */
+
+/* Near function model, return address on user stack. */
+#define DW_CC_ALTIUM_near_user_stack 0x67 /* ALTIUM */
+
+/* Huge function model, return address on user stack. */
+#define DW_CC_ALTIUM_huge_user_stack 0x68 /* ALTIUM */
+
+
+#define DW_CC_hi_user 0xff
+
+/* Inline Code Name. */
+#define DW_INL_not_inlined 0x00
+#define DW_INL_inlined 0x01
+#define DW_INL_declared_not_inlined 0x02
+#define DW_INL_declared_inlined 0x03
+
+/* Ordering Name. */
+#define DW_ORD_row_major 0x00
+#define DW_ORD_col_major 0x01
+
+/* Discriminant Descriptor Name. */
+#define DW_DSC_label 0x00
+#define DW_DSC_range 0x01
+
+/* Line number standard opcode name. */
+#define DW_LNS_copy 0x01
+#define DW_LNS_advance_pc 0x02
+#define DW_LNS_advance_line 0x03
+#define DW_LNS_set_file 0x04
+#define DW_LNS_set_column 0x05
+#define DW_LNS_negate_stmt 0x06
+#define DW_LNS_set_basic_block 0x07
+#define DW_LNS_const_add_pc 0x08
+#define DW_LNS_fixed_advance_pc 0x09
+#define DW_LNS_set_prologue_end 0x0a /* DWARF3 */
+#define DW_LNS_set_epilogue_begin 0x0b /* DWARF3 */
+#define DW_LNS_set_isa 0x0c /* DWARF3 */
+
+/* Line number extended opcode name. */
+#define DW_LNE_end_sequence 0x01
+#define DW_LNE_set_address 0x02
+#define DW_LNE_define_file 0x03
+#define DW_LNE_set_discriminator 0x04 /* DWARF4 */
+
+/* HP extensions. */
+#define DW_LNE_HP_negate_is_UV_update 0x11 /* 17 HP */
+#define DW_LNE_HP_push_context 0x12 /* 18 HP */
+#define DW_LNE_HP_pop_context 0x13 /* 19 HP */
+#define DW_LNE_HP_set_file_line_column 0x14 /* 20 HP */
+#define DW_LNE_HP_set_routine_name 0x15 /* 21 HP */
+#define DW_LNE_HP_set_sequence 0x16 /* 22 HP */
+#define DW_LNE_HP_negate_post_semantics 0x17 /* 23 HP */
+#define DW_LNE_HP_negate_function_exit 0x18 /* 24 HP */
+#define DW_LNE_HP_negate_front_end_logical 0x19 /* 25 HP */
+#define DW_LNE_HP_define_proc 0x20 /* 32 HP */
+
+#define DW_LNE_lo_user 0x80 /* DWARF3 */
+#define DW_LNE_hi_user 0xff /* DWARF3 */
+
+/* These are known values for DW_LNS_set_isa. */
+#define DW_ISA_UNKNOWN 0
+/* The following two are ARM specific. */
+#define DW_ISA_ARM_thumb 1 /* ARM ISA */
+#define DW_ISA_ARM_arm 2 /* ARM ISA */
+
+/* Macro information. */
+#define DW_MACINFO_define 0x01
+#define DW_MACINFO_undef 0x02
+#define DW_MACINFO_start_file 0x03
+#define DW_MACINFO_end_file 0x04
+#define DW_MACINFO_vendor_ext 0xff
+
+/* CFA operator compaction (a space saving measure, see
+ the DWARF standard) means DW_CFA_extended and DW_CFA_nop
+ have the same value here. */
#define DW_CFA_advance_loc 0x40
#define DW_CFA_offset 0x80
#define DW_CFA_restore 0xc0
@@ -587,76 +865,116 @@ extern "C" {
#define DW_CFA_undefined 0x07
#define DW_CFA_same_value 0x08
#define DW_CFA_register 0x09
-#define DW_CFA_remember_state 0x0a
+#define DW_CFA_remember_state 0x0a
#define DW_CFA_restore_state 0x0b
#define DW_CFA_def_cfa 0x0c
#define DW_CFA_def_cfa_register 0x0d
#define DW_CFA_def_cfa_offset 0x0e
#define DW_CFA_def_cfa_expression 0x0f /* DWARF3 */
#define DW_CFA_expression 0x10 /* DWARF3 */
-#define DW_CFA_cfa_offset_extended_sf 0x11 /* DWARF3 */
+#define DW_CFA_offset_extended_sf 0x11 /* DWARF3 */
#define DW_CFA_def_cfa_sf 0x12 /* DWARF3 */
#define DW_CFA_def_cfa_offset_sf 0x13 /* DWARF3 */
+#define DW_CFA_val_offset 0x14 /* DWARF3f */
+#define DW_CFA_val_offset_sf 0x15 /* DWARF3f */
+#define DW_CFA_val_expression 0x16 /* DWARF3f */
-#define DW_CFA_low_user 0x1c
-#define DW_CFA_MIPS_advance_loc8 0x1d
+#define DW_CFA_lo_user 0x1c
+#define DW_CFA_low_user 0x1c /* Incorrect spelling, do not use. */
-/* the following two from egcs-1.1.2 */
-#define DW_CFA_GNU_window_save 0x2d
-#define DW_CFA_GNU_args_size 0x2e
+/* SGI/MIPS extension. */
+#define DW_CFA_MIPS_advance_loc8 0x1d /* MIPS */
+
+/* GNU extensions. */
+#define DW_CFA_GNU_window_save 0x2d /* GNU */
+#define DW_CFA_GNU_args_size 0x2e /* GNU */
+#define DW_CFA_GNU_negative_offset_extended 0x2f /* GNU */
#define DW_CFA_high_user 0x3f
+/* GNU exception header encoding. See the Generic
+ Elf Specification of the Linux Standard Base (LSB).
+ http://refspecs.freestandards.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/dwarfext.html
+ The upper 4 bits indicate how the value is to be applied.
+ The lower 4 bits indicate the format of the data.
+*/
+#define DW_EH_PE_absptr 0x00 /* GNU */
+#define DW_EH_PE_uleb128 0x01 /* GNU */
+#define DW_EH_PE_udata2 0x02 /* GNU */
+#define DW_EH_PE_udata4 0x03 /* GNU */
+#define DW_EH_PE_udata8 0x04 /* GNU */
+#define DW_EH_PE_sleb128 0x09 /* GNU */
+#define DW_EH_PE_sdata2 0x0A /* GNU */
+#define DW_EH_PE_sdata4 0x0B /* GNU */
+#define DW_EH_PE_sdata8 0x0C /* GNU */
+
+#define DW_EH_PE_pcrel 0x10 /* GNU */
+#define DW_EH_PE_textrel 0x20 /* GNU */
+#define DW_EH_PE_datarel 0x30 /* GNU */
+#define DW_EH_PE_funcrel 0x40 /* GNU */
+#define DW_EH_PE_aligned 0x50 /* GNU */
+
+#define DW_EH_PE_omit 0xff /* GNU. Means no value present. */
+
/* Mapping from machine registers and pseudo-regs into the .debug_frame table.
DW_FRAME entries are machine specific. These describe
- MIPS/SGI R3000, R4K, R4400.
- And (simultaneously) a mapping from hardware register number to
- the number used in the table to identify that register.
+ MIPS/SGI R3000, R4K, R4400 and all later MIPS/SGI IRIX machines.
+ They describe a mapping from hardware register number to
+ the number used in the table to identify that register.
- The CFA (Canonical Frame Address) described in DWARF is called
+ The CFA (Canonical Frame Address) described in DWARF is called
the Virtual Frame Pointer on MIPS/SGI machines.
- Rule describes:
+ The DW_FRAME* names here are MIPS/SGI specfic.
+ Libdwarf interfaces defined in 2008 make the
+ frame definitions
+ here (and the fixed table sizes they imply) obsolete.
+ They are left here for compatibility.
*/
-#define DW_FRAME_CFA_COL 0 /* column used for CFA */
-#define DW_FRAME_REG1 1 /* integer reg 1 */
-#define DW_FRAME_REG2 2 /* integer reg 2 */
-#define DW_FRAME_REG3 3 /* integer reg 3 */
-#define DW_FRAME_REG4 4 /* integer reg 4 */
-#define DW_FRAME_REG5 5 /* integer reg 5 */
-#define DW_FRAME_REG6 6 /* integer reg 6 */
-#define DW_FRAME_REG7 7 /* integer reg 7 */
-#define DW_FRAME_REG8 8 /* integer reg 8 */
-#define DW_FRAME_REG9 9 /* integer reg 9 */
-#define DW_FRAME_REG10 10 /* integer reg 10 */
-#define DW_FRAME_REG11 11 /* integer reg 11 */
-#define DW_FRAME_REG12 12 /* integer reg 12 */
-#define DW_FRAME_REG13 13 /* integer reg 13 */
-#define DW_FRAME_REG14 14 /* integer reg 14 */
-#define DW_FRAME_REG15 15 /* integer reg 15 */
-#define DW_FRAME_REG16 16 /* integer reg 16 */
-#define DW_FRAME_REG17 17 /* integer reg 17 */
-#define DW_FRAME_REG18 18 /* integer reg 18 */
-#define DW_FRAME_REG19 19 /* integer reg 19 */
-#define DW_FRAME_REG20 20 /* integer reg 20 */
-#define DW_FRAME_REG21 21 /* integer reg 21 */
-#define DW_FRAME_REG22 22 /* integer reg 22 */
-#define DW_FRAME_REG23 23 /* integer reg 23 */
-#define DW_FRAME_REG24 24 /* integer reg 24 */
-#define DW_FRAME_REG25 25 /* integer reg 25 */
-#define DW_FRAME_REG26 26 /* integer reg 26 */
-#define DW_FRAME_REG27 27 /* integer reg 27 */
-#define DW_FRAME_REG28 28 /* integer reg 28 */
-#define DW_FRAME_REG29 29 /* integer reg 29 */
-#define DW_FRAME_REG30 30 /* integer reg 30 */
-#define DW_FRAME_REG31 31 /* integer reg 31, aka ra */
-
- /* MIPS1, 2 have only some of these 64-bit registers.
- ** MIPS1 save/restore takes 2 instructions per 64-bit reg, and
- ** in that case, the register is considered stored after the second
- ** swc1.
- */
+/* Default column used for CFA in the libdwarf reader client.
+ Assumes reg 0 never appears as
+ a register in DWARF information. Usable for MIPS,
+ but never a good idea, really. */
+#define DW_FRAME_CFA_COL 0
+
+#define DW_FRAME_REG1 1 /* integer reg 1 */
+#define DW_FRAME_REG2 2 /* integer reg 2 */
+#define DW_FRAME_REG3 3 /* integer reg 3 */
+#define DW_FRAME_REG4 4 /* integer reg 4 */
+#define DW_FRAME_REG5 5 /* integer reg 5 */
+#define DW_FRAME_REG6 6 /* integer reg 6 */
+#define DW_FRAME_REG7 7 /* integer reg 7 */
+#define DW_FRAME_REG8 8 /* integer reg 8 */
+#define DW_FRAME_REG9 9 /* integer reg 9 */
+#define DW_FRAME_REG10 10 /* integer reg 10 */
+#define DW_FRAME_REG11 11 /* integer reg 11 */
+#define DW_FRAME_REG12 12 /* integer reg 12 */
+#define DW_FRAME_REG13 13 /* integer reg 13 */
+#define DW_FRAME_REG14 14 /* integer reg 14 */
+#define DW_FRAME_REG15 15 /* integer reg 15 */
+#define DW_FRAME_REG16 16 /* integer reg 16 */
+#define DW_FRAME_REG17 17 /* integer reg 17 */
+#define DW_FRAME_REG18 18 /* integer reg 18 */
+#define DW_FRAME_REG19 19 /* integer reg 19 */
+#define DW_FRAME_REG20 20 /* integer reg 20 */
+#define DW_FRAME_REG21 21 /* integer reg 21 */
+#define DW_FRAME_REG22 22 /* integer reg 22 */
+#define DW_FRAME_REG23 23 /* integer reg 23 */
+#define DW_FRAME_REG24 24 /* integer reg 24 */
+#define DW_FRAME_REG25 25 /* integer reg 25 */
+#define DW_FRAME_REG26 26 /* integer reg 26 */
+#define DW_FRAME_REG27 27 /* integer reg 27 */
+#define DW_FRAME_REG28 28 /* integer reg 28 */
+#define DW_FRAME_REG29 29 /* integer reg 29 */
+#define DW_FRAME_REG30 30 /* integer reg 30 */
+#define DW_FRAME_REG31 31 /* integer reg 31, aka ra */
+
+ /* MIPS1, 2 have only some of these 64-bit registers.
+ ** MIPS1 save/restore takes 2 instructions per 64-bit reg, and
+ ** in that case, the register is considered stored after the second
+ ** swc1.
+ */
#define DW_FRAME_FREG0 32 /* 64-bit floating point reg 0 */
#define DW_FRAME_FREG1 33 /* 64-bit floating point reg 1 */
#define DW_FRAME_FREG2 34 /* 64-bit floating point reg 2 */
@@ -690,19 +1008,58 @@ extern "C" {
#define DW_FRAME_FREG30 62 /* 64-bit floating point reg 30 */
#define DW_FRAME_FREG31 63 /* 64-bit floating point reg 31 */
-#define DW_FRAME_RA_COL 64 /* column recording ra */
+/* ***IMPORTANT NOTE, TARGET DEPENDENCY ****
+ The following 4 #defines are dependent on
+ the target cpu(s) that you apply libdwarf to.
+ Ensure that DW_FRAME_UNDEFINED_VAL and DW_FRAME_SAME_VAL
+ do not conflict with the range [0-DW_FRAME_STATIC_LINK].
+ The value 63 works for MIPS cpus at least up to the R16000.
-#define DW_FRAME_STATIC_LINK 65 /* column recording static link*/
- /* applicable to up-level */
- /* addressing, as in mp code, */
- /* pascal, etc */
+ For a cpu with more than 63 real registers
+ DW_FRAME_HIGHEST_NORMAL_REGISTER
+ must be increased for things to work properly!
+ Also ensure that DW_FRAME_UNDEFINED_VAL DW_FRAME_SAME_VAL
+ are not in the range [0-DW_FRAME_STATIC_LINK]
-/* This is the number of columns in the Frame Table. This constant should
- be kept in sync with DW_REG_TABLE_SIZE defined in libdwarf.h */
-#define DW_FRAME_LAST_REG_NUM (DW_FRAME_STATIC_LINK + 1)
+ Having DW_FRAME_HIGHEST_NORMAL_REGISTER be higher than
+ is strictly needed is safe.
+
+*/
+
+#ifndef DW_FRAME_HIGHEST_NORMAL_REGISTER
+#define DW_FRAME_HIGHEST_NORMAL_REGISTER 63
+#endif
+/* This is the number of columns in the Frame Table.
+ This constant should
+ be kept in sync with DW_REG_TABLE_SIZE defined in libdwarf.h
+ It must also be large enough to be beyond the highest
+ compiler-defined-register (meaning DW_FRAME_RA_COL DW_FRAME_STATIC_LINK
+ in the MIPS/IRIX case */
+#ifndef DW_FRAME_LAST_REG_NUM
+#define DW_FRAME_LAST_REG_NUM (DW_FRAME_HIGHEST_NORMAL_REGISTER + 3)
+#endif
-/*
+/* Column recording ra (return address from a function call).
+ This is common to many architectures, but as a 'simple register'
+ is not necessarily adequate for all architectures.
+ For MIPS/IRIX this register number is actually recorded on disk
+ in the .debug_frame section.
+ */
+#define DW_FRAME_RA_COL (DW_FRAME_HIGHEST_NORMAL_REGISTER + 1)
+
+/* Column recording static link applicable to up-level
+ addressing, as in IRIX mp code, pascal, etc.
+ This is common to many architectures but
+ is not necessarily adequate for all architectures.
+ For MIPS/IRIX this register number is actually recorded on disk
+ in the .debug_frame section.
+*/
+#define DW_FRAME_STATIC_LINK (DW_FRAME_HIGHEST_NORMAL_REGISTER + 2)
+
+
+
+/*
DW_FRAME_UNDEFINED_VAL and DW_FRAME_SAME_VAL are
never on disk, just generated by libdwarf. See libdwarf.h
for their values.
@@ -710,10 +1067,10 @@ extern "C" {
-#define DW_CHILDREN_no 0x00
-#define DW_CHILDREN_yes 0x01
+#define DW_CHILDREN_no 0x00
+#define DW_CHILDREN_yes 0x01
-#define DW_ADDR_none 0
+#define DW_ADDR_none 0
#ifdef __cplusplus
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.c b/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.c
index da051e6225..c2ae361f33 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000,2001 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,12 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the above address.
+*/
+
@@ -42,68 +49,69 @@
int
dwarf_get_abbrev(Dwarf_Debug dbg,
- Dwarf_Unsigned offset,
- Dwarf_Abbrev * returned_abbrev,
- Dwarf_Unsigned * length,
- Dwarf_Unsigned * abbr_count, Dwarf_Error * error)
+ Dwarf_Unsigned offset,
+ Dwarf_Abbrev * returned_abbrev,
+ Dwarf_Unsigned * length,
+ Dwarf_Unsigned * abbr_count, Dwarf_Error * error)
{
- Dwarf_Small *abbrev_ptr;
- Dwarf_Small *abbrev_section_end;
- Dwarf_Half attr;
- Dwarf_Half attr_form;
- Dwarf_Abbrev ret_abbrev;
+ Dwarf_Small *abbrev_ptr = 0;
+ Dwarf_Small *abbrev_section_end = 0;
+ Dwarf_Half attr = 0;
+ Dwarf_Half attr_form = 0;
+ Dwarf_Abbrev ret_abbrev = 0;
Dwarf_Unsigned labbr_count = 0;
- Dwarf_Unsigned utmp;
+ Dwarf_Unsigned utmp = 0;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- if (dbg->de_debug_abbrev == 0) {
- /* Loads abbrev section (and .debug_info as we do those
- together). */
- int res = _dwarf_load_debug_info(dbg, error);
-
- if (res != DW_DLV_OK) {
- return res;
- }
+ if (dbg->de_debug_abbrev.dss_data == 0) {
+ /* Loads abbrev section (and .debug_info as we do those
+ together). */
+ int res = _dwarf_load_debug_info(dbg, error);
+
+ if (res != DW_DLV_OK) {
+ return res;
+ }
}
- if (offset >= dbg->de_debug_abbrev_size) {
- return (DW_DLV_NO_ENTRY);
+ if (offset >= dbg->de_debug_abbrev.dss_size) {
+ return (DW_DLV_NO_ENTRY);
}
ret_abbrev = (Dwarf_Abbrev) _dwarf_get_alloc(dbg, DW_DLA_ABBREV, 1);
if (ret_abbrev == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
ret_abbrev->ab_dbg = dbg;
if (returned_abbrev == 0 || abbr_count == 0) {
- _dwarf_error(dbg, error, DW_DLE_DWARF_ABBREV_NULL);
- return (DW_DLV_ERROR);
+ dwarf_dealloc(dbg, ret_abbrev, DW_DLA_ABBREV);
+ _dwarf_error(dbg, error, DW_DLE_DWARF_ABBREV_NULL);
+ return (DW_DLV_ERROR);
}
*abbr_count = 0;
if (length != NULL)
- *length = 1;
+ *length = 1;
- abbrev_ptr = dbg->de_debug_abbrev + offset;
+ abbrev_ptr = dbg->de_debug_abbrev.dss_data + offset;
abbrev_section_end =
- dbg->de_debug_abbrev + dbg->de_debug_abbrev_size;
+ dbg->de_debug_abbrev.dss_data + dbg->de_debug_abbrev.dss_size;
DECODE_LEB128_UWORD(abbrev_ptr, utmp);
ret_abbrev->ab_code = (Dwarf_Word) utmp;
if (ret_abbrev->ab_code == 0) {
- *returned_abbrev = ret_abbrev;
- *abbr_count = 0;
- if (length) {
- *length = 1;
- }
- return (DW_DLV_OK);
+ *returned_abbrev = ret_abbrev;
+ *abbr_count = 0;
+ if (length) {
+ *length = 1;
+ }
+ return (DW_DLV_OK);
}
DECODE_LEB128_UWORD(abbrev_ptr, utmp);
@@ -112,26 +120,27 @@ dwarf_get_abbrev(Dwarf_Debug dbg,
ret_abbrev->ab_abbrev_ptr = abbrev_ptr;
do {
- Dwarf_Unsigned utmp2;
+ Dwarf_Unsigned utmp2;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp2)
- attr = (Dwarf_Half) utmp2;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp2)
- attr_form = (Dwarf_Half) utmp2;
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp2);
+ attr = (Dwarf_Half) utmp2;
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp2);
+ attr_form = (Dwarf_Half) utmp2;
- if (attr != 0)
- (labbr_count)++;
+ if (attr != 0)
+ (labbr_count)++;
} while (abbrev_ptr < abbrev_section_end &&
- (attr != 0 || attr_form != 0));
+ (attr != 0 || attr_form != 0));
if (abbrev_ptr > abbrev_section_end) {
- _dwarf_error(dbg, error, DW_DLE_ABBREV_DECODE_ERROR);
- return (DW_DLV_ERROR);
+ dwarf_dealloc(dbg, ret_abbrev, DW_DLA_ABBREV);
+ _dwarf_error(dbg, error, DW_DLE_ABBREV_DECODE_ERROR);
+ return (DW_DLV_ERROR);
}
if (length != NULL)
- *length = abbrev_ptr - dbg->de_debug_abbrev - offset;
+ *length = abbrev_ptr - dbg->de_debug_abbrev.dss_data - offset;
*returned_abbrev = ret_abbrev;
*abbr_count = labbr_count;
@@ -140,25 +149,27 @@ dwarf_get_abbrev(Dwarf_Debug dbg,
int
dwarf_get_abbrev_code(Dwarf_Abbrev abbrev,
- Dwarf_Unsigned * returned_code,
- Dwarf_Error * error)
+ Dwarf_Unsigned * returned_code,
+ Dwarf_Error * error)
{
if (abbrev == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
+ return (DW_DLV_ERROR);
}
*returned_code = abbrev->ab_code;
return (DW_DLV_OK);
}
+/* DWARF defines DW_TAG_hi_user as 0xffff so no tag should be
+ over 16 bits. */
int
dwarf_get_abbrev_tag(Dwarf_Abbrev abbrev,
- Dwarf_Half * returned_tag, Dwarf_Error * error)
+ Dwarf_Half * returned_tag, Dwarf_Error * error)
{
if (abbrev == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
+ return (DW_DLV_ERROR);
}
*returned_tag = abbrev->ab_tag;
@@ -168,12 +179,12 @@ dwarf_get_abbrev_tag(Dwarf_Abbrev abbrev,
int
dwarf_get_abbrev_children_flag(Dwarf_Abbrev abbrev,
- Dwarf_Signed * returned_flag,
- Dwarf_Error * error)
+ Dwarf_Signed * returned_flag,
+ Dwarf_Error * error)
{
if (abbrev == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
+ return (DW_DLV_ERROR);
}
*returned_flag = abbrev->ab_has_child;
@@ -183,65 +194,65 @@ dwarf_get_abbrev_children_flag(Dwarf_Abbrev abbrev,
int
dwarf_get_abbrev_entry(Dwarf_Abbrev abbrev,
- Dwarf_Signed index,
- Dwarf_Half * returned_attr_num,
- Dwarf_Signed * form,
- Dwarf_Off * offset, Dwarf_Error * error)
+ Dwarf_Signed index,
+ Dwarf_Half * returned_attr_num,
+ Dwarf_Signed * form,
+ Dwarf_Off * offset, Dwarf_Error * error)
{
- Dwarf_Byte_Ptr abbrev_ptr;
- Dwarf_Byte_Ptr abbrev_end;
- Dwarf_Byte_Ptr mark_abbrev_ptr;
- Dwarf_Half attr;
- Dwarf_Half attr_form;
+ Dwarf_Byte_Ptr abbrev_ptr = 0;
+ Dwarf_Byte_Ptr abbrev_end = 0;
+ Dwarf_Byte_Ptr mark_abbrev_ptr = 0;
+ Dwarf_Half attr = 0;
+ Dwarf_Half attr_form = 0;
if (index < 0)
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
if (abbrev == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_ABBREV_NULL);
+ return (DW_DLV_ERROR);
}
if (abbrev->ab_code == 0) {
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
}
if (abbrev->ab_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
abbrev_ptr = abbrev->ab_abbrev_ptr;
abbrev_end =
- abbrev->ab_dbg->de_debug_abbrev +
- abbrev->ab_dbg->de_debug_abbrev_size;
+ abbrev->ab_dbg->de_debug_abbrev.dss_data +
+ abbrev->ab_dbg->de_debug_abbrev.dss_size;
for (attr = 1, attr_form = 1;
- index >= 0 && abbrev_ptr < abbrev_end && (attr != 0 ||
- attr_form != 0);
- index--) {
- Dwarf_Unsigned utmp4;
-
- mark_abbrev_ptr = abbrev_ptr;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp4)
- attr = (Dwarf_Half) utmp4;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp4)
- attr_form = (Dwarf_Half) utmp4;
+ index >= 0 && abbrev_ptr < abbrev_end && (attr != 0 ||
+ attr_form != 0);
+ index--) {
+ Dwarf_Unsigned utmp4;
+
+ mark_abbrev_ptr = abbrev_ptr;
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp4);
+ attr = (Dwarf_Half) utmp4;
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp4);
+ attr_form = (Dwarf_Half) utmp4;
}
if (abbrev_ptr >= abbrev_end) {
- _dwarf_error(abbrev->ab_dbg, error, DW_DLE_ABBREV_DECODE_ERROR);
- return (DW_DLV_ERROR);
+ _dwarf_error(abbrev->ab_dbg, error, DW_DLE_ABBREV_DECODE_ERROR);
+ return (DW_DLV_ERROR);
}
if (index >= 0) {
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
}
if (form != NULL)
- *form = attr_form;
+ *form = attr_form;
if (offset != NULL)
- *offset = mark_abbrev_ptr - abbrev->ab_dbg->de_debug_abbrev;
+ *offset = mark_abbrev_ptr - abbrev->ab_dbg->de_debug_abbrev.dss_data;
*returned_attr_num = (attr);
return DW_DLV_OK;
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.h b/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.h
index f9ea435000..b525924c83 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_abbrev.h
@@ -1,6 +1,7 @@
/*
Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2008-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -36,9 +37,18 @@
+/* In a given CU, one of these is (eventually) set up
+ for every abbreviation we need to find (and for all.
+ those ealier in the abbreviations for that CU).
+ So we don't want elements needlessly big.
+*/
struct Dwarf_Abbrev_s {
+ /* No TAG should exceed DW_TAG_hi_user, 0xffff, but
+ we do allow a larger value here. */
+ Dwarf_Word ab_tag;
+ /* Abbreviations are numbered (normally sequentially from
+ 1 and so 16 bits is not enough! */
Dwarf_Word ab_code;
- Dwarf_Half ab_tag;
Dwarf_Small ab_has_child;
Dwarf_Byte_Ptr ab_abbrev_ptr;
Dwarf_Debug ab_dbg;
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_addr_finder.c b/usr/src/tools/ctf/dwarf/common/dwarf_addr_finder.c
index ba04a84916..2fadefc1ea 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_addr_finder.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_addr_finder.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,7 +32,9 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
-
+/* This code used by SGI-IRIX rqs processing, not needed by
+ any other system or application.
+*/
#include "config.h"
#include "libdwarfdefs.h"
@@ -53,7 +55,7 @@
typedef unsigned long long ull;
static int do_this_die_and_dealloc(Dwarf_Debug dbg, Dwarf_Die die,
- int *errval);
+ int *errval);
static int
handle_debug_info(Dwarf_Debug dbg, int *errval);
static int
@@ -70,7 +72,7 @@ static Dwarf_addr_callback_func send_addr_note;
int
_dwarf_addr_finder(dwarf_elf_handle elf_file_ptr,
- Dwarf_addr_callback_func cb_func, int *dwerr)
+ Dwarf_addr_callback_func cb_func, int *dwerr)
{
Dwarf_Error err = 0;
@@ -80,14 +82,14 @@ _dwarf_addr_finder(dwarf_elf_handle elf_file_ptr,
int sections_found = 0;
res = dwarf_elf_init(elf_file_ptr, DW_DLC_READ, /* errhand */ 0,
- /* errarg */ 0, &dbg, &err);
+ /* errarg */ 0, &dbg, &err);
if (res == DW_DLV_ERROR) {
- int errv = (int) dwarf_errno(err);
+ int errv = (int) dwarf_errno(err);
- return errv;
+ return errv;
}
if (res == DW_DLV_NO_ENTRY) {
- return res;
+ return res;
}
send_addr_note = cb_func;
@@ -95,58 +97,58 @@ _dwarf_addr_finder(dwarf_elf_handle elf_file_ptr,
res = handle_debug_info(dbg, &errval);
switch (res) {
case DW_DLV_OK:
- ++sections_found;
- break;
+ ++sections_found;
+ break;
case DW_DLV_NO_ENTRY:
- break;
+ break;
default:
case DW_DLV_ERROR:
- dwarf_finish(dbg, &err);
- *dwerr = errval;
- return res;
+ dwarf_finish(dbg, &err);
+ *dwerr = errval;
+ return res;
}
res = handle_debug_aranges(dbg, cb_func, &errval);
switch (res) {
case DW_DLV_OK:
- ++sections_found;
- break;
+ ++sections_found;
+ break;
case DW_DLV_NO_ENTRY:
- break;
+ break;
default:
case DW_DLV_ERROR:
- dwarf_finish(dbg, &err);
- *dwerr = errval;
- return res;
+ dwarf_finish(dbg, &err);
+ *dwerr = errval;
+ return res;
}
res = handle_debug_frame(dbg, cb_func, &errval);
switch (res) {
case DW_DLV_OK:
- ++sections_found;
- break;
+ ++sections_found;
+ break;
case DW_DLV_NO_ENTRY:
- break;
+ break;
default:
case DW_DLV_ERROR:
- dwarf_finish(dbg, &err);
- *dwerr = errval;
- return res;
+ dwarf_finish(dbg, &err);
+ *dwerr = errval;
+ return res;
}
- res = handle_debug_loc(); /* does nothing */
+ res = handle_debug_loc(); /* does nothing */
switch (res) {
case DW_DLV_OK:
- ++sections_found;
- break;
+ ++sections_found;
+ break;
case DW_DLV_NO_ENTRY:
- break;
+ break;
default:
case DW_DLV_ERROR:
- /* IMPOSSIBLE : handle_debug_loc cannot return this */
- dwarf_finish(dbg, &err);
- *dwerr = errval;
- return res;
+ /* IMPOSSIBLE : handle_debug_loc cannot return this */
+ dwarf_finish(dbg, &err);
+ *dwerr = errval;
+ return res;
}
@@ -154,18 +156,18 @@ _dwarf_addr_finder(dwarf_elf_handle elf_file_ptr,
*dwerr = 0;
res = dwarf_finish(dbg, &err);
if (res == DW_DLV_ERROR) {
- *dwerr = (int) dwarf_errno(err);
- return DW_DLV_ERROR;
+ *dwerr = (int) dwarf_errno(err);
+ return DW_DLV_ERROR;
}
if (sections_found == 0) {
- return DW_DLV_NO_ENTRY;
+ return DW_DLV_NO_ENTRY;
}
return DW_DLV_OK;
}
/*
- Return DW_DLV_OK, ERROR, or NO_ENTRY.
+ Return DW_DLV_OK, ERROR, or NO_ENTRY.
*/
static int
handle_debug_info(Dwarf_Debug dbg, int *errval)
@@ -184,43 +186,43 @@ handle_debug_info(Dwarf_Debug dbg, int *errval)
for (nres = dwarf_next_cu_header(dbg, &hdr_length, &version_stamp,
- &abbrev_offset,
- &addr_size, &nxtoff, &err);
- terminate_now == 0 && nres == DW_DLV_OK;
- nres = dwarf_next_cu_header(dbg, &hdr_length, &version_stamp,
- &abbrev_offset,
- &addr_size, &nxtoff, &err)
- ) {
-
- Dwarf_Die curdie = 0;
-
- /* try to get the compilation unit die */
- sibres = dwarf_siblingof(dbg, curdie, &sibdie, &err);
- if (sibres == DW_DLV_OK) {
- res = do_this_die_and_dealloc(dbg, sibdie, errval);
- switch (res) {
- case DW_DLV_OK:
- break;
- case DW_DLV_NO_ENTRY:
- break;
- default:
- case DW_DLV_ERROR:
- return DW_DLV_ERROR;
- }
- } else if (sibres == DW_DLV_ERROR) {
- *errval = (int) dwarf_errno(err);
- return DW_DLV_ERROR;
- } else {
- /* NO ENTRY! */
- /* impossible? */
- }
+ &abbrev_offset,
+ &addr_size, &nxtoff, &err);
+ terminate_now == 0 && nres == DW_DLV_OK;
+ nres = dwarf_next_cu_header(dbg, &hdr_length, &version_stamp,
+ &abbrev_offset,
+ &addr_size, &nxtoff, &err)
+ ) {
+
+ Dwarf_Die curdie = 0;
+
+ /* try to get the compilation unit die */
+ sibres = dwarf_siblingof(dbg, curdie, &sibdie, &err);
+ if (sibres == DW_DLV_OK) {
+ res = do_this_die_and_dealloc(dbg, sibdie, errval);
+ switch (res) {
+ case DW_DLV_OK:
+ break;
+ case DW_DLV_NO_ENTRY:
+ break;
+ default:
+ case DW_DLV_ERROR:
+ return DW_DLV_ERROR;
+ }
+ } else if (sibres == DW_DLV_ERROR) {
+ *errval = (int) dwarf_errno(err);
+ return DW_DLV_ERROR;
+ } else {
+ /* NO ENTRY! */
+ /* impossible? */
+ }
}
if (nres == DW_DLV_ERROR) {
- int localerr = (int) dwarf_errno(err);
+ int localerr = (int) dwarf_errno(err);
- *errval = localerr;
- return DW_DLV_ERROR;
+ *errval = localerr;
+ return DW_DLV_ERROR;
}
return DW_DLV_OK;
}
@@ -244,11 +246,11 @@ static int
};
/*
- Return DW_DLV_OK if handling this went ok.
+ Return DW_DLV_OK if handling this went ok.
*/
static int
handle_attr_addr(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Half attrnum,
- Dwarf_Error * perr)
+ Dwarf_Error * perr)
{
int res = DW_DLV_OK;
Dwarf_Off offset;
@@ -260,52 +262,52 @@ handle_attr_addr(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Half attrnum,
ares = dwarf_attr(die, attrnum, &attr, perr);
if (ares == DW_DLV_OK) {
- int formres = dwarf_whatform(attr, &form, perr);
-
- switch (formres) {
- case DW_DLV_OK:
- break;
- case DW_DLV_ERROR:
- case DW_DLV_NO_ENTRY: /* impossible. */
- return formres;
-
- }
-
- switch (form) {
- case DW_FORM_ref_addr:
- case DW_FORM_addr:
- res = dwarf_attr_offset(die, attr, &offset, perr);
- if (res == DW_DLV_OK) {
- ares = dwarf_formaddr(attr, &addr, perr);
- if (ares == DW_DLV_OK) {
- send_addr_note(DW_SECTION_INFO, offset, addr);
- } else if (ares == DW_DLV_ERROR) {
- return ares;
- } /* no entry: ok. */
- } else {
- res = DW_DLV_ERROR; /* NO_ENTRY is impossible. */
- }
- break;
-
- default:
- /* surprising! An error? */
-
- ; /* do nothing */
- }
- dwarf_dealloc(dbg, attr, DW_DLA_ATTR);
+ int formres = dwarf_whatform(attr, &form, perr);
+
+ switch (formres) {
+ case DW_DLV_OK:
+ break;
+ case DW_DLV_ERROR:
+ case DW_DLV_NO_ENTRY: /* impossible. */
+ return formres;
+
+ }
+
+ switch (form) {
+ case DW_FORM_ref_addr:
+ case DW_FORM_addr:
+ res = dwarf_attr_offset(die, attr, &offset, perr);
+ if (res == DW_DLV_OK) {
+ ares = dwarf_formaddr(attr, &addr, perr);
+ if (ares == DW_DLV_OK) {
+ send_addr_note(DW_SECTION_INFO, offset, addr);
+ } else if (ares == DW_DLV_ERROR) {
+ return ares;
+ } /* no entry: ok. */
+ } else {
+ res = DW_DLV_ERROR; /* NO_ENTRY is impossible. */
+ }
+ break;
+
+ default:
+ /* surprising! An error? */
+
+ ; /* do nothing */
+ }
+ dwarf_dealloc(dbg, attr, DW_DLA_ATTR);
} else {
- res = ares;
+ res = ares;
}
return res;
}
/*
- Return DW_DLV_OK if handling this went ok.
+ Return DW_DLV_OK if handling this went ok.
*/
static int
handle_attr_locdesc(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Half attrnum,
- Dwarf_Error * perr)
+ Dwarf_Error * perr)
{
int retval = DW_DLV_OK;
Dwarf_Attribute attr;
@@ -320,74 +322,73 @@ handle_attr_locdesc(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Half attrnum,
ares = dwarf_attr(die, attrnum, &attr, perr);
if (ares == DW_DLV_OK) {
- Dwarf_Half form;
- int fres = dwarf_whatform(attr, &form, perr);
-
- if (fres == DW_DLV_OK) {
- switch (form) {
- case DW_FORM_block1:
- case DW_FORM_block2:
- case DW_FORM_block4:
- /* must be location description */
- res = dwarf_attr_offset(die, attr, &offset, perr);
- llbuf = 0;
- if (res == DW_DLV_OK) {
- Dwarf_Signed count;
- int lres =
- dwarf_loclist(attr, &llbuf, &count, perr);
- if (lres != DW_DLV_OK) {
- return lres;
- }
- if (count != 1) {
- /* this cannot happen! */
- /* perr? */
- _dwarf_error(dbg, perr,
- DW_DLE_LOCDESC_COUNT_WRONG);
- retval = DW_DLV_ERROR;
- return retval;
- }
- for (i = 0; i < count; ++i) {
- unsigned int ents = llbuf[i].ld_cents;
-
- locp = llbuf[i].ld_s;
- for (entindx = 0; entindx < ents; entindx++) {
- Dwarf_Loc *llocp;
-
- llocp = locp + entindx;
- if (llocp->lr_atom == DW_OP_addr) {
- send_addr_note(DW_SECTION_INFO, offset +
- llocp->lr_offset + 1
- /* The offset is the
- offset of the atom,
- ** and we know the
- addr is 1 past it. */
- , llocp->lr_number);
- }
- }
- }
-
-
- if (count > 0) {
- for (i = 0; i < count; ++i) {
- dwarf_dealloc(dbg, llbuf[i].ld_s,
- DW_DLA_LOC_BLOCK);
- }
- dwarf_dealloc(dbg, llbuf, DW_DLA_LOCDESC);
- }
- } else {
- retval = res;
- }
- break;
-
- default:
- /* must be a const offset in debug_loc */
- ; /* do nothing */
- }
- dwarf_dealloc(dbg, attr, DW_DLA_ATTR);
- } /* else error or no entry */
- retval = fres;
+ Dwarf_Half form;
+ int fres = dwarf_whatform(attr, &form, perr);
+
+ if (fres == DW_DLV_OK) {
+ switch (form) {
+ case DW_FORM_block1:
+ case DW_FORM_block2:
+ case DW_FORM_block4:
+ /* must be location description */
+ res = dwarf_attr_offset(die, attr, &offset, perr);
+ llbuf = 0;
+ if (res == DW_DLV_OK) {
+ Dwarf_Signed count;
+ int lres = dwarf_loclist(attr, &llbuf, &count, perr);
+ if (lres != DW_DLV_OK) {
+ return lres;
+ }
+ if (count != 1) {
+ /* this cannot happen! */
+ /* perr? */
+ _dwarf_error(dbg, perr,
+ DW_DLE_LOCDESC_COUNT_WRONG);
+ retval = DW_DLV_ERROR;
+ return retval;
+ }
+ for (i = 0; i < count; ++i) {
+ unsigned int ents = llbuf[i].ld_cents;
+
+ locp = llbuf[i].ld_s;
+ for (entindx = 0; entindx < ents; entindx++) {
+ Dwarf_Loc *llocp;
+
+ llocp = locp + entindx;
+ if (llocp->lr_atom == DW_OP_addr) {
+ send_addr_note(DW_SECTION_INFO, offset +
+ llocp->lr_offset + 1
+ /* The offset is the
+ offset of the atom,
+ ** and we know the
+ addr is 1 past it. */
+ , llocp->lr_number);
+ }
+ }
+ }
+
+
+ if (count > 0) {
+ for (i = 0; i < count; ++i) {
+ dwarf_dealloc(dbg, llbuf[i].ld_s,
+ DW_DLA_LOC_BLOCK);
+ }
+ dwarf_dealloc(dbg, llbuf, DW_DLA_LOCDESC);
+ }
+ } else {
+ retval = res;
+ }
+ break;
+
+ default:
+ /* must be a const offset in debug_loc */
+ ; /* do nothing */
+ }
+ dwarf_dealloc(dbg, attr, DW_DLA_ATTR);
+ } /* else error or no entry */
+ retval = fres;
} else {
- retval = ares;
+ retval = ares;
}
return retval;
}
@@ -411,88 +412,86 @@ process_this_die_attrs(Dwarf_Debug dbg, Dwarf_Die newdie, int *errval)
int doffres = dwarf_dieoffset(newdie, &doff, &err);
if (doffres != DW_DLV_OK) {
- if (doffres == DW_DLV_ERROR) {
- *errval = (int) dwarf_errno(err);
- }
- return doffres;
+ if (doffres == DW_DLV_ERROR) {
+ *errval = (int) dwarf_errno(err);
+ }
+ return doffres;
}
tres = dwarf_tag(newdie, &ltag, &err);
if (tres != DW_DLV_OK) {
- return tres;
+ return tres;
}
if (DW_TAG_compile_unit == ltag) {
- /* because of the way the dwarf_line code works, we ** do lines
- only per compile unit. ** This may turn out to be wrong if
- we have lines ** left unconnected to a CU. ** of course such
- lines will not, at present, be ** used by gnome ** This is
- not ideal as coded due to the dwarf_line.c issue. */
- int lres;
-
- lres = handle_debug_line(dbg, newdie, send_addr_note, errval);
- if (lres == DW_DLV_ERROR) {
- return lres;
- }
+ /* because of the way the dwarf_line code works, we do lines
+ only per compile unit. This may turn out to be wrong if
+ we have lines left unconnected to a CU. of course such
+ lines will not, at present, be used by gnome. This is
+ not ideal as coded due to the dwarf_line.c issue. */
+ int lres = handle_debug_line(dbg, newdie, send_addr_note, errval);
+ if (lres == DW_DLV_ERROR) {
+ return lres;
+ }
}
for (i = 0; i < sizeof(might_have_addr) / sizeof(int); i++) {
- int resattr;
- Dwarf_Bool hasattr;
-
- newattrnum = might_have_addr[i];
- err = 0;
- resattr = dwarf_hasattr(newdie, newattrnum, &hasattr, &err);
- if (DW_DLV_OK == resattr) {
- if (hasattr) {
- res = handle_attr_addr(dbg, newdie, newattrnum, &err);
- if (res != DW_DLV_OK) {
- *errval = (int) dwarf_errno(err);
- return DW_DLV_ERROR;
- }
- }
- } else {
- if (resattr == DW_DLV_ERROR) {
- *errval = (int) dwarf_errno(err);
- return resattr;
- }
- }
+ int resattr;
+ Dwarf_Bool hasattr;
+
+ newattrnum = might_have_addr[i];
+ err = 0;
+ resattr = dwarf_hasattr(newdie, newattrnum, &hasattr, &err);
+ if (DW_DLV_OK == resattr) {
+ if (hasattr) {
+ res = handle_attr_addr(dbg, newdie, newattrnum, &err);
+ if (res != DW_DLV_OK) {
+ *errval = (int) dwarf_errno(err);
+ return DW_DLV_ERROR;
+ }
+ }
+ } else {
+ if (resattr == DW_DLV_ERROR) {
+ *errval = (int) dwarf_errno(err);
+ return resattr;
+ }
+ }
}
for (i = 0; i < sizeof(might_have_locdesc) / sizeof(int); i++) {
- int resattr;
- Dwarf_Bool hasattr;
-
- newattrnum = might_have_locdesc[i];
- err = 0;
- resattr = dwarf_hasattr(newdie, newattrnum, &hasattr, &err);
- if (DW_DLV_OK == resattr) {
- if (hasattr) {
- res =
- handle_attr_locdesc(dbg, newdie, newattrnum, &err);
- if (res != DW_DLV_OK) {
- *errval = (int) dwarf_errno(err);
- return DW_DLV_ERROR;
- }
- }
- } else {
- if (resattr == DW_DLV_ERROR) {
- *errval = (int) dwarf_errno(err);
- return resattr;
- }
- }
+ int resattr;
+ Dwarf_Bool hasattr;
+
+ newattrnum = might_have_locdesc[i];
+ err = 0;
+ resattr = dwarf_hasattr(newdie, newattrnum, &hasattr, &err);
+ if (DW_DLV_OK == resattr) {
+ if (hasattr) {
+ res =
+ handle_attr_locdesc(dbg, newdie, newattrnum, &err);
+ if (res != DW_DLV_OK) {
+ *errval = (int) dwarf_errno(err);
+ return DW_DLV_ERROR;
+ }
+ }
+ } else {
+ if (resattr == DW_DLV_ERROR) {
+ *errval = (int) dwarf_errno(err);
+ return resattr;
+ }
+ }
}
return DW_DLV_OK;
}
/*
- Handle siblings as a list,
- Do children by recursing.
- Effectively this is walking the tree preorder.
+ Handle siblings as a list,
+ Do children by recursing.
+ Effectively this is walking the tree preorder.
- This dealloc's any die passed to it, so the
- caller should not do that dealloc.
- It seems more logical to have the one causing
- the alloc to do the dealloc, but that way this
- routine became a mess.
+ This dealloc's any die passed to it, so the
+ caller should not do that dealloc.
+ It seems more logical to have the one causing
+ the alloc to do the dealloc, but that way this
+ routine became a mess.
*/
static int
@@ -508,69 +507,69 @@ do_this_die_and_dealloc(Dwarf_Debug dbg, Dwarf_Die die, int *errval)
Dwarf_Die sibdie;
while (sibres == DW_DLV_OK) {
- Dwarf_Die ch_die;
-
-
- res = process_this_die_attrs(dbg, newdie, errval);
- switch (res) {
- case DW_DLV_OK:
- break;
- case DW_DLV_NO_ENTRY:
- break;
- default:
- case DW_DLV_ERROR:
- if (prevdie) {
- dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
- prevdie = 0;
- }
- return DW_DLV_ERROR;
- }
-
- tres = dwarf_child(newdie, &ch_die, &err);
-
- if (tres == DW_DLV_OK) {
- res = do_this_die_and_dealloc(dbg, ch_die, errval);
- switch (res) {
- case DW_DLV_OK:
- break;
- case DW_DLV_NO_ENTRY:
- break;
- default:
- case DW_DLV_ERROR:
- if (prevdie) {
- dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
- prevdie = 0;
- }
- return DW_DLV_ERROR;
- }
- } else if (tres == DW_DLV_ERROR) {
- /* An error! */
- *errval = (int) dwarf_errno(err);
- if (prevdie) {
- dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
- prevdie = 0;
- }
- dwarf_dealloc(dbg, err, DW_DLA_ERROR);
- return DW_DLV_ERROR;
- } /* else was NO ENTRY */
- prevdie = newdie;
- sibdie = 0;
- sibres = dwarf_siblingof(dbg, newdie, &sibdie, &err);
- if (prevdie) {
- dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
- prevdie = 0;
- }
- newdie = sibdie;
+ Dwarf_Die ch_die;
+
+
+ res = process_this_die_attrs(dbg, newdie, errval);
+ switch (res) {
+ case DW_DLV_OK:
+ break;
+ case DW_DLV_NO_ENTRY:
+ break;
+ default:
+ case DW_DLV_ERROR:
+ if (prevdie) {
+ dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
+ prevdie = 0;
+ }
+ return DW_DLV_ERROR;
+ }
+
+ tres = dwarf_child(newdie, &ch_die, &err);
+
+ if (tres == DW_DLV_OK) {
+ res = do_this_die_and_dealloc(dbg, ch_die, errval);
+ switch (res) {
+ case DW_DLV_OK:
+ break;
+ case DW_DLV_NO_ENTRY:
+ break;
+ default:
+ case DW_DLV_ERROR:
+ if (prevdie) {
+ dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
+ prevdie = 0;
+ }
+ return DW_DLV_ERROR;
+ }
+ } else if (tres == DW_DLV_ERROR) {
+ /* An error! */
+ *errval = (int) dwarf_errno(err);
+ if (prevdie) {
+ dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
+ prevdie = 0;
+ }
+ dwarf_dealloc(dbg, err, DW_DLA_ERROR);
+ return DW_DLV_ERROR;
+ } /* else was NO ENTRY */
+ prevdie = newdie;
+ sibdie = 0;
+ sibres = dwarf_siblingof(dbg, newdie, &sibdie, &err);
+ if (prevdie) {
+ dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
+ prevdie = 0;
+ }
+ newdie = sibdie;
}
if (sibres == DW_DLV_NO_ENTRY) {
- return DW_DLV_OK;
+ return DW_DLV_OK;
}
/* error. */
*errval = (int) dwarf_errno(err);
if (prevdie) {
- dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
- prevdie = 0;
+ dwarf_dealloc(dbg, prevdie, DW_DLA_DIE);
+ prevdie = 0;
}
dwarf_dealloc(dbg, err, DW_DLA_ERROR);
return DW_DLV_ERROR;
@@ -580,7 +579,7 @@ do_this_die_and_dealloc(Dwarf_Debug dbg, Dwarf_Die die, int *errval)
static int
handle_debug_frame(Dwarf_Debug dbg, Dwarf_addr_callback_func cb_func,
- int *errval)
+ int *errval)
{
int retval = DW_DLV_OK;
int res;
@@ -591,26 +590,26 @@ handle_debug_frame(Dwarf_Debug dbg, Dwarf_addr_callback_func cb_func,
int i;
res =
- _dwarf_frame_address_offsets(dbg, &addrlist, &offsetlist,
- &count, &err);
+ _dwarf_frame_address_offsets(dbg, &addrlist, &offsetlist,
+ &count, &err);
if (res == DW_DLV_OK) {
- for (i = 0; i < count; i++) {
- cb_func(DW_SECTION_FRAME, offsetlist[i], addrlist[i]);
- }
- dwarf_dealloc(dbg, offsetlist, DW_DLA_ADDR);
- dwarf_dealloc(dbg, addrlist, DW_DLA_ADDR);
+ for (i = 0; i < count; i++) {
+ cb_func(DW_SECTION_FRAME, offsetlist[i], addrlist[i]);
+ }
+ dwarf_dealloc(dbg, offsetlist, DW_DLA_ADDR);
+ dwarf_dealloc(dbg, addrlist, DW_DLA_ADDR);
} else if (res == DW_DLV_NO_ENTRY) {
- retval = res;
+ retval = res;
} else {
- *errval = (int) dwarf_errno(err);
- retval = DW_DLV_ERROR;
+ *errval = (int) dwarf_errno(err);
+ retval = DW_DLV_ERROR;
}
return retval;
}
static int
handle_debug_aranges(Dwarf_Debug dbg, Dwarf_addr_callback_func cb_func,
- int *errval)
+ int *errval)
{
int retval = DW_DLV_OK;
Dwarf_Error err;
@@ -620,30 +619,30 @@ handle_debug_aranges(Dwarf_Debug dbg, Dwarf_addr_callback_func cb_func,
Dwarf_Off *offsets;
retval =
- _dwarf_get_aranges_addr_offsets(dbg, &aranges, &offsets, &count,
- &err);
+ _dwarf_get_aranges_addr_offsets(dbg, &aranges, &offsets, &count,
+ &err);
if (retval == DW_DLV_OK) {
- if (count == 0) {
- retval = DW_DLV_NO_ENTRY;
- } else {
- for (indx = 0; indx < count; indx++) {
- cb_func(DW_SECTION_ARANGES, offsets[indx],
- aranges[indx]);
- }
- }
- dwarf_dealloc(dbg, aranges, DW_DLA_ADDR);
- dwarf_dealloc(dbg, offsets, DW_DLA_ADDR);
+ if (count == 0) {
+ retval = DW_DLV_NO_ENTRY;
+ } else {
+ for (indx = 0; indx < count; indx++) {
+ cb_func(DW_SECTION_ARANGES, offsets[indx],
+ aranges[indx]);
+ }
+ }
+ dwarf_dealloc(dbg, aranges, DW_DLA_ADDR);
+ dwarf_dealloc(dbg, offsets, DW_DLA_ADDR);
} else if (retval == DW_DLV_NO_ENTRY) {
- ; /* do nothing */
+ ; /* do nothing */
} else {
- *errval = (int) dwarf_errno(err);
- retval = DW_DLV_ERROR;
+ *errval = (int) dwarf_errno(err);
+ retval = DW_DLV_ERROR;
}
return retval;
}
static int
handle_debug_line(Dwarf_Debug dbg, Dwarf_Die cu_die,
- Dwarf_addr_callback_func cb_func, int *errval)
+ Dwarf_addr_callback_func cb_func, int *errval)
{
int retval = DW_DLV_OK;
int res;
@@ -654,28 +653,28 @@ handle_debug_line(Dwarf_Debug dbg, Dwarf_Die cu_die,
Dwarf_Unsigned i;
res =
- _dwarf_line_address_offsets(dbg, cu_die, &addrlist, &offsetlist,
- &count, &err);
+ _dwarf_line_address_offsets(dbg, cu_die, &addrlist, &offsetlist,
+ &count, &err);
if (res == DW_DLV_OK) {
- for (i = 0; i < count; i++) {
- cb_func(DW_SECTION_LINE, offsetlist[i], addrlist[i]);
+ for (i = 0; i < count; i++) {
+ cb_func(DW_SECTION_LINE, offsetlist[i], addrlist[i]);
- }
- dwarf_dealloc(dbg, offsetlist, DW_DLA_ADDR);
- dwarf_dealloc(dbg, addrlist, DW_DLA_ADDR);
+ }
+ dwarf_dealloc(dbg, offsetlist, DW_DLA_ADDR);
+ dwarf_dealloc(dbg, addrlist, DW_DLA_ADDR);
} else if (res == DW_DLV_NO_ENTRY) {
- retval = res;
+ retval = res;
} else {
- *errval = (int) dwarf_errno(err);
- retval = DW_DLV_ERROR;
+ *errval = (int) dwarf_errno(err);
+ retval = DW_DLV_ERROR;
}
return retval;
}
/*
- We need to add support for this. Currently we do not
- generate this section.
- FIX!
+ We need to add support for this. Currently we do not
+ generate this section.
+ FIX!
*/
static int
handle_debug_loc(void)
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_alloc.c b/usr/src/tools/ctf/dwarf/common/dwarf_alloc.c
index ae94c8b355..ddb423e841 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_alloc.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_alloc.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,8 +33,14 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+#undef DEBUG
#include "config.h"
#include "dwarf_incl.h"
@@ -41,7 +48,7 @@
#include <stdlib.h>
#include <stdio.h>
-#include <malloc.h>
+#include "malloc_check.h"
/*
These files are included to get the sizes
@@ -61,15 +68,17 @@
#include "dwarf_vars.h"
#include "dwarf_weaks.h"
+
static void _dwarf_free_special_error(Dwarf_Ptr space);
+
#ifdef DWARF_SIMPLE_MALLOC
static void _dwarf_simple_malloc_add_to_list(Dwarf_Debug dbg,
- Dwarf_Ptr addr,
- unsigned long size,
- short alloc_type);
-static void _dwarf_simple_malloc_delete_from_list(Dwarf_Debug dbg,
- Dwarf_Ptr space,
- short alloc_type);
+ Dwarf_Ptr addr,
+ unsigned long size,
+ short alloc_type);
+static void _dwarf_simple_malloc_delete_from_list(Dwarf_Debug dbg,
+ Dwarf_Ptr space,
+ short alloc_type);
void _dwarf_simple_malloc_botch(int err);
#endif /* DWARF_SIMPLE_MALLOC */
@@ -83,40 +92,49 @@ void _dwarf_simple_malloc_botch(int err);
be a multiple of the size of a pointer. This is done
so that every struct returned by _dwarf_get_alloc()
can be preceded by a pointer to the chunk it came from.
- Before, it checks if the size of struct is less than
+ Before allocating, it checks if the size of struct is less than
the size of a pointer. If yes, it returns the size
of 2 pointers. The returned size should be at least
the size of 2 pointers, since the first points to the
chunk the struct was allocated from, and the second
is used to link the free list.
- If this is n32, we want the sizes to be 64-bit aligned
- so that longlong in the structure we return to user
- is aligned properly. Thus the _dw_fac of 2
+ We want DW_RESERVE to be at least the size of
+ a long long and at least the size of a pointer because
+ our struct has a long long and we want that aligned right.
+ Now Standard C defines long long as 8 bytes, so lets
+ make that standard. It will become unworkable when
+ long long or pointer grows beyound 8 bytes.
+ Unclear what to do with wierd requirements, like
+ 36 bit pointers.
- Only long longs need to be properly aligned: we don't
- have long double and don't align for that.
*/
-#if _MIPS_SIM == _MIPS_SIM_NABI32
-#define _DW_FAC 2
-#define _DW_PS sizeof(void *)
-#else
-#define _DW_FAC 1
-#define _DW_PS sizeof(void *)
-#endif
-#define _DW_RESERVE (_DW_FAC * _DW_PS)
+#define DW_RESERVE 8
-/* Round size up to the next multiple of _DW_RESERVE bytes
+/* Round size up to the next multiple of DW_RESERVE bytes
*/
#define ROUND_SIZE(inputsize) \
- (((inputsize) % (_DW_RESERVE)) == 0 ? \
+ (((inputsize) % (DW_RESERVE)) == 0 ? \
(inputsize): \
((inputsize) + \
- (_DW_RESERVE) - ((inputsize) % (_DW_RESERVE)) ))
+ (DW_RESERVE) - ((inputsize) % (DW_RESERVE)) ))
+
+#define ROUND_SIZE_WITH_POINTER(i_size) (ROUND_SIZE(i_size) + DW_RESERVE)
-#define ROUND_SIZE_WITH_POINTER(i_size) (ROUND_SIZE(i_size) + _DW_RESERVE)
+/* SMALL_ALLOC is for trivia where allocation is a waste.
+ Things that should be removed, really. */
+#define SMALL_ALLOC 2
+
+/* BASE_ALLOC is where a basic allocation makes sense, but 'not too large'.
+ No thorough evaluation of this value has been done, though
+ it was found wasteful of memory to have BASE_ALLOC be as large as
+ BIG_ALLOC. */
#define BASE_ALLOC 64
+
+/* BIG_ALLOC is where a larger-than-BASE_ALLOC
+ allocation makes sense, but still 'not too large'.
+ No thorough evaluation of this value has been done. */
#define BIG_ALLOC 128
/* This translates into de_alloc_hdr index
@@ -126,110 +144,126 @@ void _dwarf_simple_malloc_botch(int err);
** so that is not an option.
*/
struct ial_s {
- int ia_al_num; /* Index into de_alloc_hdr table. */
+ int ia_al_num; /* Index into de_alloc_hdr table. */
/* In bytes, one struct instance. This does not account for extra
- space needed per block, but that (_DW_RESERVE) will be added in
- later where it is needed (_DW_RESERVE space never added in
- here). */
+ space needed per block, but that (DW_RESERVE) will be added in
+ later where it is needed (DW_RESERVE space never added in here).
+ */
int ia_struct_size;
/* Number of instances per alloc block. MUST be > 0. */
int ia_base_count;
+
+ int (*specialconstructor) (Dwarf_Debug, void *);
+ void (*specialdestructor) (void *);
};
static const
struct ial_s index_into_allocated[ALLOC_AREA_INDEX_TABLE_MAX] = {
- {0, 1, 1}, /* none */
- {0, 1, 1,}, /* 1 DW_DLA_STRING */
- {1, sizeof(Dwarf_Loc), BASE_ALLOC}
- , /* 2 DW_DLA_LOC */
- {2, sizeof(Dwarf_Locdesc), BASE_ALLOC}
- , /* 3 DW_DLA_LOCDESC */
- {0, 1, 1}
- , /* not used *//* 4 DW_DLA_ELLIST */
- {0, 1, 1}
- , /* not used *//* 5 DW_DLA_BOUNDS */
- {3, sizeof(Dwarf_Block), BASE_ALLOC}
- , /* 6 DW_DLA_BLOCK */
- {0, 1, 1}
- , /* the actual dwarf_debug structure *//* 7 DW_DLA_DEBUG */
- {4, sizeof(struct Dwarf_Die_s), BIG_ALLOC}, /* 8 DW_DLA_DIE */
- {5, sizeof(struct Dwarf_Line_s), BIG_ALLOC}, /* 9
- DW_DLA_LINE */
- {6, sizeof(struct Dwarf_Attribute_s), BIG_ALLOC * 2},
+ {0, 1, 1, 0, 0}, /* none */
+ {0, 1, 1, 0, 0}, /* 1 DW_DLA_STRING */
+ {1, sizeof(Dwarf_Loc), BASE_ALLOC, 0, 0}
+ , /* 2 DW_DLA_LOC */
+ {2, sizeof(Dwarf_Locdesc), BASE_ALLOC, 0, 0}
+ , /* 3 DW_DLA_LOCDESC */
+ {0, 1, 1, 0, 0}
+ , /* not used *//* 4 DW_DLA_ELLIST */
+ {0, 1, 1, 0, 0}
+ , /* not used *//* 5 DW_DLA_BOUNDS */
+ {3, sizeof(Dwarf_Block), BASE_ALLOC, 0, 0}
+ , /* 6 DW_DLA_BLOCK */
+ {0, 1, 1, 0, 0}
+ , /* the actual dwarf_debug structure *//* 7 DW_DLA_DEBUG */
+ {4, sizeof(struct Dwarf_Die_s), BIG_ALLOC, 0, 0}, /* 8 DW_DLA_DIE
+ */
+ {5, sizeof(struct Dwarf_Line_s), BIG_ALLOC, 0, 0}, /* 9
+ DW_DLA_LINE */
+ {6, sizeof(struct Dwarf_Attribute_s), BIG_ALLOC * 2, 0, 0},
/* 10 DW_DLA_ATTR */
- {0, 1, 1}, /* not used *//* 11 DW_DLA_TYPE */
- {0, 1, 1}, /* not used *//* 12 DW_DLA_SUBSCR */
- {7, sizeof(struct Dwarf_Global_s), BIG_ALLOC}, /* 13
- DW_DLA_GLOBAL
- */
- {8, sizeof(struct Dwarf_Error_s), BASE_ALLOC}, /* 14
- DW_DLA_ERROR
- */
- {0, 1, 1}, /* 15 DW_DLA_LIST */
- {0, 1, 1}, /* not used *//* 16 DW_DLA_LINEBUF */
- {9, sizeof(struct Dwarf_Arange_s), BASE_ALLOC}, /* 17
- DW_DLA_ARANGE
- */
- {10, sizeof(struct Dwarf_Abbrev_s), BIG_ALLOC}, /* 18
- DW_DLA_ABBREV
- */
- {11, sizeof(Dwarf_Frame_Op), BIG_ALLOC}
- , /* 19 DW_DLA_FRAME_OP */
- {12, sizeof(struct Dwarf_Cie_s), BASE_ALLOC}, /* 20
- DW_DLA_CIE */
- {13, sizeof(struct Dwarf_Fde_s), BASE_ALLOC}, /* 21
- DW_DLA_FDE */
- {0, 1, 1}, /* 22 DW_DLA_LOC_BLOCK */
- {0, 1, 1}, /* 23 DW_DLA_FRAME_BLOCK */
- {14, sizeof(struct Dwarf_Global_s), BIG_ALLOC}, /* 24
- DW_DLA_FUNC */
- {15, sizeof(struct Dwarf_Global_s), BIG_ALLOC}, /* 25
- DW_DLA_TYPENAME
- */
- {16, sizeof(struct Dwarf_Global_s), BIG_ALLOC}, /* 26
- DW_DLA_VAR */
- {17, sizeof(struct Dwarf_Global_s), BASE_ALLOC}, /* 27
- DW_DLA_WEAK */
- {0, 1, 1}, /* 28 DW_DLA_ADDR */
- {18, sizeof(struct Dwarf_Abbrev_List_s), BIG_ALLOC},
- /* 29 DW_DLA_ABBREV_LIST */
- {19, sizeof(struct Dwarf_Chain_s), BIG_ALLOC}, /* 30
- DW_DLA_CHAIN
- */
- {20, sizeof(struct Dwarf_CU_Context_s), BASE_ALLOC},
- /* 31 DW_DLA_CU_CONTEXT */
- {21, sizeof(struct Dwarf_Frame_s), BASE_ALLOC}, /* 32
- DW_DLA_FRAME
- */
- {22, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC},
- /* 33 DW_DLA_GLOBAL_CONTEXT */
- {23, sizeof(struct Dwarf_File_Entry_s), BASE_ALLOC},
- /* 34 DW_DLA_FILE_ENTRY */
- {24, sizeof(struct Dwarf_Line_Context_s), BASE_ALLOC},
- /* 35 DW_DLA_LINE_CONTEXT */
- {25, sizeof(struct Dwarf_Loc_Chain_s), BASE_ALLOC},
- /* 36 DW_DLA_LOC_CHAIN */
- {26, ABBREV_HASH_TABLE_SIZE * 2 * sizeof(Dwarf_Abbrev_List),
- BASE_ALLOC}
- ,
- /* 37 DW_DLA_HASH_TABLE */
+ {0, 1, 1, 0, 0}, /* not used *//* 11 DW_DLA_TYPE */
+ {0, 1, 1, 0, 0}, /* not used *//* 12 DW_DLA_SUBSCR */
+ {7, sizeof(struct Dwarf_Global_s), BASE_ALLOC, 0, 0}, /* 13
+ DW_DLA_GLOBAL
+ */
+ {8, sizeof(struct Dwarf_Error_s), BASE_ALLOC, 0, 0}, /* 14
+ DW_DLA_ERROR
+ */
+ {0, 1, 1, 0, 0}, /* 15 DW_DLA_LIST */
+ {0, 1, 1, 0, 0}, /* not used *//* 16 DW_DLA_LINEBUF */
+ {9, sizeof(struct Dwarf_Arange_s), BASE_ALLOC, 0, 0}, /* 17
+ DW_DLA_ARANGE
+ */
+ {10, sizeof(struct Dwarf_Abbrev_s), BIG_ALLOC, 0, 0}, /* 18
+ DW_DLA_ABBREV
+ */
+ {11, sizeof(Dwarf_Frame_Op), BIG_ALLOC, 0, 0}
+ , /* 19 DW_DLA_FRAME_OP */
+ {12, sizeof(struct Dwarf_Cie_s), BASE_ALLOC, 0, 0}, /* 20
+ DW_DLA_CIE */
+ {13, sizeof(struct Dwarf_Fde_s), BASE_ALLOC, 0, 0}, /* 21 DW_DLA_FDE */
+ {0, 1, 1, 0, 0}, /* 22 DW_DLA_LOC_BLOCK */
+ {0, 1, 1, 0, 0}, /* 23 DW_DLA_FRAME_BLOCK */
+ {14, sizeof(struct Dwarf_Global_s), BASE_ALLOC, 0, 0}, /* 24 DW_DLA_FUNC
+ UNUSED */
+ {15, sizeof(struct Dwarf_Global_s), BASE_ALLOC, 0, 0}, /* 25
+ DW_DLA_TYPENAME
+ UNUSED */
+ {16, sizeof(struct Dwarf_Global_s), BASE_ALLOC, 0, 0}, /* 26 DW_DLA_VAR
+ UNUSED */
+ {17, sizeof(struct Dwarf_Global_s), BASE_ALLOC, 0, 0}, /* 27 DW_DLA_WEAK
+ UNUSED */
+ {0, 1, 1, 0, 0}, /* 28 DW_DLA_ADDR */
+ {0, 1,1,0,0 }, /* 29 DW_DLA_RANGES */
+
+ /* The following DW_DLA data types
+ are known only inside libdwarf. */
+
+ {18, sizeof(struct Dwarf_Abbrev_List_s), BIG_ALLOC, 0, 0},
+ /* 30 DW_DLA_ABBREV_LIST */
+
+ {19, sizeof(struct Dwarf_Chain_s), BIG_ALLOC, 0, 0}, /* 31 DW_DLA_CHAIN */
+ {20, sizeof(struct Dwarf_CU_Context_s), BASE_ALLOC, 0, 0},
+ /* 32 DW_DLA_CU_CONTEXT */
+ {21, sizeof(struct Dwarf_Frame_s), BASE_ALLOC,
+ _dwarf_frame_constructor,
+ _dwarf_frame_destructor}, /* 33 DW_DLA_FRAME */
+ {22, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC, 0, 0},
+ /* 34 DW_DLA_GLOBAL_CONTEXT */
+ {23, sizeof(struct Dwarf_File_Entry_s), BASE_ALLOC, 0, 0}, /* 34 */
+ /* 35 DW_DLA_FILE_ENTRY */
+ {24, sizeof(struct Dwarf_Line_Context_s), BASE_ALLOC, 0, 0},
+ /* 36 DW_DLA_LINE_CONTEXT */
+ {25, sizeof(struct Dwarf_Loc_Chain_s), BASE_ALLOC, 0, 0}, /* 36 */
+ /* 37 DW_DLA_LOC_CHAIN */
+
+ {26, sizeof(struct Dwarf_Hash_Table_s),BASE_ALLOC, 0, 0}, /* 37 */
+ /* 38 DW_DLA_HASH_TABLE */
/* The following really use Global struct: used to be unique struct
per type, but now merged (11/99). The opaque types
- are visible in the interface. The types are left in existence,
- with unchanged numbers.
+ are visible in the interface. The types for
+ DW_DLA_FUNC,
+ DW_DLA_TYPENAME, DW_DLA_VAR, DW_DLA_WEAK also use
+ the global types.
+
*/
- {27, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC},
- /* 38 DW_DLA_FUNC_CONTEXT */
- {28, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC},
- /* 39 DW_DLA_TYPENAME_CONTEXT */
- {29, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC},
- /* 40 DW_DLA_VAR_CONTEXT */
- {30, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC},
- /* 41 DW_DLA_WEAK_CONTEXT */
+ {27, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC, 0, 0},
+ /* 39 DW_DLA_FUNC_CONTEXT */
+ {28, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC, 0, 0},
+ /* 40 DW_DLA_TYPENAME_CONTEXT */
+ {29, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC, 0, 0},
+ /* 41 DW_DLA_VAR_CONTEXT */
+ {30, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC, 0, 0},
+ /* 42 DW_DLA_WEAK_CONTEXT */
+ {31, sizeof(struct Dwarf_Global_Context_s), BASE_ALLOC, 0, 0},
+ /* 43 DW_DLA_PUBTYPES_CONTEXT DWARF3 */
+
+ {0,1,1,0,0 },
+ /* 44 DW_DLA_HASH_TABLE_ENTRY */
+
+
};
#ifndef DWARF_SIMPLE_MALLOC
@@ -285,126 +319,126 @@ _dwarf_find_memory(Dwarf_Alloc_Hdr alloc_hdr)
/*
Check the alloc_area from which the last allocation was made
- (most recent new block). If that is not successful, then
- search the list of alloc_area's from alloc_header. */
+ (most recent new block). If that is not successful, then search
+ the list of alloc_area's from alloc_header. */
alloc_area = alloc_hdr->ah_last_alloc_area;
if (alloc_area == NULL || alloc_area->aa_free_structs_in_chunk == 0)
- for (alloc_area = alloc_hdr->ah_alloc_area_head;
- alloc_area != NULL; alloc_area = alloc_area->aa_next) {
+ for (alloc_area = alloc_hdr->ah_alloc_area_head;
+ alloc_area != NULL; alloc_area = alloc_area->aa_next) {
- if (alloc_area->aa_free_structs_in_chunk > 0) {
- break; /* found a free entry! */
- }
+ if (alloc_area->aa_free_structs_in_chunk > 0) {
+ break; /* found a free entry! */
+ }
- }
+ }
if (alloc_area != NULL) {
- alloc_area->aa_free_structs_in_chunk--;
-
- if (alloc_area->aa_free_list != NULL) {
- ret_mem = alloc_area->aa_free_list;
-
- /*
- Update the free list. The initial part of the struct is
- used to hold a pointer to the next struct on the free
- list. In this way, the free list chain is maintained at
- 0 memory cost. */
- alloc_area->aa_free_list =
- ((Dwarf_Free_List) ret_mem)->fl_next;
- } else if (alloc_area->aa_blob_start < alloc_area->aa_blob_end) {
- ret_mem = alloc_area->aa_blob_start;
-
- /*
- Store pointer to chunk this struct belongs to in the
- first few bytes. Return pointer to bytes after this
- pointer storage. */
- *(Dwarf_Alloc_Area *) ret_mem = alloc_area;
- ret_mem += _DW_RESERVE;
-
- alloc_area->aa_blob_start += alloc_hdr->ah_bytes_one_struct;
- } else {
- /* else fall thru , though it should be impossible to fall
- thru. And represents a disastrous programming error if
- we get here. */
+ alloc_area->aa_free_structs_in_chunk--;
+
+ if (alloc_area->aa_free_list != NULL) {
+ ret_mem = alloc_area->aa_free_list;
+
+ /*
+ Update the free list. The initial part of the struct is
+ used to hold a pointer to the next struct on the free
+ list. In this way, the free list chain is maintained at
+ 0 memory cost. */
+ alloc_area->aa_free_list =
+ ((Dwarf_Free_List) ret_mem)->fl_next;
+ } else if (alloc_area->aa_blob_start < alloc_area->aa_blob_end) {
+ ret_mem = alloc_area->aa_blob_start;
+
+ /*
+ Store pointer to chunk this struct belongs to in the
+ first few bytes. Return pointer to bytes after this
+ pointer storage. */
+ *(Dwarf_Alloc_Area *) ret_mem = alloc_area;
+ ret_mem += DW_RESERVE;
+
+ alloc_area->aa_blob_start += alloc_hdr->ah_bytes_one_struct;
+ } else {
+ /* else fall thru , though it should be impossible to fall
+ thru. And represents a disastrous programming error if
+ we get here. */
#ifdef DEBUG
- fprintf(stderr, "libdwarf Internal error start %x end %x\n",
- (int) alloc_area->aa_blob_start,
- (int) alloc_area->aa_blob_end);
+ fprintf(stderr, "libdwarf Internal error start %x end %x\n",
+ (int) alloc_area->aa_blob_start,
+ (int) alloc_area->aa_blob_end);
#endif
- }
+ }
}
/* New memory has to malloc'ed since there are no free structs. */
if (ret_mem == 0) {
- Dwarf_Word rounded_area_hdr_size;
-
- alloc_hdr->ah_chunks_allocated++;
-
- { /* this nonsense avoids a warning */
- /* CONSTCOND would be better */
- unsigned long v = sizeof(struct Dwarf_Alloc_Area_s);
-
- rounded_area_hdr_size = ROUND_SIZE(v);
- }
-
- /*
- Allocate memory to contain the required number of structs
- and the Dwarf_Alloc_Area_s to control it. */
- mem_block_size = alloc_hdr->ah_bytes_malloc_per_chunk +
- rounded_area_hdr_size;
-
- mem_block = malloc(mem_block_size);
- if (mem_block == NULL) {
- return (NULL);
- }
-
-
- /*
- Attach the Dwarf_Alloc_Area_s struct to the list of chunks
- malloc'ed for this struct type. Also initialize the fields
- of the Dwarf_Alloc_Area_s. */
- alloc_area = (Dwarf_Alloc_Area) mem_block;
- alloc_area->aa_prev = 0;
- if (alloc_hdr->ah_alloc_area_head != NULL) {
- alloc_hdr->ah_alloc_area_head->aa_prev = alloc_area;
- }
- alloc_area->aa_free_list = 0;
- alloc_area->aa_next = alloc_hdr->ah_alloc_area_head;
- alloc_hdr->ah_alloc_area_head = alloc_area;
-
- alloc_area->aa_alloc_hdr = alloc_hdr;
- alloc_area->aa_free_structs_in_chunk =
- (Dwarf_Sword) alloc_hdr->ah_structs_per_chunk - 1;
- if (alloc_area->aa_free_structs_in_chunk < 1) {
- /* If we get here, there is a disastrous programming error
- somewhere. */
+ Dwarf_Word rounded_area_hdr_size;
+
+ alloc_hdr->ah_chunks_allocated++;
+
+ { /* this nonsense avoids a warning */
+ /* CONSTCOND would be better */
+ unsigned long v = sizeof(struct Dwarf_Alloc_Area_s);
+
+ rounded_area_hdr_size = ROUND_SIZE(v);
+ }
+
+ /*
+ Allocate memory to contain the required number of structs
+ and the Dwarf_Alloc_Area_s to control it. */
+ mem_block_size = alloc_hdr->ah_bytes_malloc_per_chunk +
+ rounded_area_hdr_size;
+
+ mem_block = malloc(mem_block_size);
+ if (mem_block == NULL) {
+ return (NULL);
+ }
+
+
+ /*
+ Attach the Dwarf_Alloc_Area_s struct to the list of chunks
+ malloc'ed for this struct type. Also initialize the fields
+ of the Dwarf_Alloc_Area_s. */
+ alloc_area = (Dwarf_Alloc_Area) mem_block;
+ alloc_area->aa_prev = 0;
+ if (alloc_hdr->ah_alloc_area_head != NULL) {
+ alloc_hdr->ah_alloc_area_head->aa_prev = alloc_area;
+ }
+ alloc_area->aa_free_list = 0;
+ alloc_area->aa_next = alloc_hdr->ah_alloc_area_head;
+ alloc_hdr->ah_alloc_area_head = alloc_area;
+
+ alloc_area->aa_alloc_hdr = alloc_hdr;
+ alloc_area->aa_free_structs_in_chunk =
+ (Dwarf_Sword) alloc_hdr->ah_structs_per_chunk - 1;
+ if (alloc_area->aa_free_structs_in_chunk < 1) {
+ /* If we get here, there is a disastrous programming error
+ somewhere. */
#ifdef DEBUG
- fprintf(stderr,
- "libdwarf Internal error: free structs in chunk %d\n",
- (int) alloc_area->aa_free_structs_in_chunk);
+ fprintf(stderr,
+ "libdwarf Internal error: free structs in chunk %d\n",
+ (int) alloc_area->aa_free_structs_in_chunk);
#endif
- return NULL;
- }
-
- /*
- The struct returned begins immediately after the
- Dwarf_Alloc_Area_s struct. */
- ret_mem = mem_block + rounded_area_hdr_size;
- alloc_area->aa_blob_start =
- ret_mem + alloc_hdr->ah_bytes_one_struct;
- alloc_area->aa_blob_end = mem_block + mem_block_size;
-
- /*
- Store pointer to chunk this struct belongs to in the first
- few bytes. Return pointer to bytes after this pointer
- storage. */
- *(Dwarf_Alloc_Area *) ret_mem = alloc_area;
- ret_mem += _DW_RESERVE;
+ return NULL;
+ }
+
+ /*
+ The struct returned begins immediately after the
+ Dwarf_Alloc_Area_s struct. */
+ ret_mem = mem_block + rounded_area_hdr_size;
+ alloc_area->aa_blob_start =
+ ret_mem + alloc_hdr->ah_bytes_one_struct;
+ alloc_area->aa_blob_end = mem_block + mem_block_size;
+
+ /*
+ Store pointer to chunk this struct belongs to in the first
+ few bytes. Return pointer to bytes after this pointer
+ storage. */
+ *(Dwarf_Alloc_Area *) ret_mem = alloc_area;
+ ret_mem += DW_RESERVE;
}
alloc_hdr->ah_last_alloc_area = alloc_area;
alloc_hdr->ah_struct_user_holds++;
- memset(ret_mem,0, alloc_hdr->ah_bytes_one_struct - _DW_RESERVE);
+ memset(ret_mem, 0, alloc_hdr->ah_bytes_one_struct - DW_RESERVE);
return (ret_mem);
}
@@ -420,16 +454,17 @@ _dwarf_find_memory(Dwarf_Alloc_Hdr alloc_hdr)
contain, i.e it the length of the string
plus 1 for the terminating null. For lists
of pointers, count is equal to the number of
- pointers. For DW_DLA_FRAME_BLOCK, and
+ pointers. For DW_DLA_FRAME_BLOCK, DW_DLA_RANGES, and
DW_DLA_LOC_BLOCK allocation types also, count
is the count of the number of structs needed.
This function cannot be used to allocate a
Dwarf_Debug_s struct.
+
*/
Dwarf_Ptr
_dwarf_get_alloc(Dwarf_Debug dbg,
- Dwarf_Small alloc_type, Dwarf_Unsigned count)
+ Dwarf_Small alloc_type, Dwarf_Unsigned count)
{
Dwarf_Alloc_Hdr alloc_hdr;
@@ -440,12 +475,12 @@ _dwarf_get_alloc(Dwarf_Debug dbg,
unsigned int type = alloc_type;
if (dbg == NULL) {
- return (NULL);
+ return (NULL);
}
if (type >= ALLOC_AREA_INDEX_TABLE_MAX) {
- /* internal error */
- return NULL;
+ /* internal error */
+ return NULL;
}
index = index_into_allocated[type].ia_al_num;
/* zero also illegal but not tested for */
@@ -456,71 +491,109 @@ _dwarf_get_alloc(Dwarf_Debug dbg,
special code here.. */
if (index == 0) {
- if (alloc_type == DW_DLA_STRING) {
- size = count;
- } else if (alloc_type == DW_DLA_LIST) {
- size = count * sizeof(Dwarf_Ptr);
- } else if (alloc_type == DW_DLA_FRAME_BLOCK) {
- size = count * sizeof(Dwarf_Frame_Op);
- } else if (alloc_type == DW_DLA_LOC_BLOCK) {
- size = count * sizeof(Dwarf_Loc);
- } else if (alloc_type == DW_DLA_ADDR) {
- size = count *
- (sizeof(Dwarf_Addr) > sizeof(Dwarf_Off) ?
- sizeof(Dwarf_Addr) : sizeof(Dwarf_Off));
- } else if (alloc_type == DW_DLA_ERROR) {
- return _dwarf_special_no_dbg_error_malloc();
- } else {
- /* If we get here, there is a disastrous programming error
- somewhere. */
+ if (alloc_type == DW_DLA_STRING) {
+ size = count;
+ } else if (alloc_type == DW_DLA_LIST) {
+ size = count * sizeof(Dwarf_Ptr);
+ } else if (alloc_type == DW_DLA_FRAME_BLOCK) {
+ size = count * sizeof(Dwarf_Frame_Op);
+ } else if (alloc_type == DW_DLA_LOC_BLOCK) {
+ size = count * sizeof(Dwarf_Loc);
+ } else if (alloc_type == DW_DLA_HASH_TABLE_ENTRY) {
+ size = count * sizeof(struct Dwarf_Hash_Table_Entry_s);
+ } else if (alloc_type == DW_DLA_ADDR) {
+ size = count *
+ (sizeof(Dwarf_Addr) > sizeof(Dwarf_Off) ?
+ sizeof(Dwarf_Addr) : sizeof(Dwarf_Off));
+ } else if (alloc_type == DW_DLA_RANGES) {
+ size = count * sizeof(Dwarf_Ranges);
+ } else if (alloc_type == DW_DLA_ERROR) {
+ void *m = _dwarf_special_no_dbg_error_malloc();
+
+ dwarf_malloc_check_alloc_data(m, DW_DLA_ERROR);
+ return m;
+
+ } else {
+ /* If we get here, there is a disastrous programming error
+ somewhere. */
#ifdef DEBUG
- fprintf(stderr,
- "libdwarf Internal error: type %d unexpected\n",
- (int) type);
+ fprintf(stderr,
+ "libdwarf Internal error: type %d unexpected\n",
+ (int) type);
#endif
- }
+ }
} else {
- alloc_hdr = &dbg->de_alloc_hdr[index];
- if (alloc_hdr->ah_bytes_one_struct > 0) {
+ alloc_hdr = &dbg->de_alloc_hdr[index];
+ if (alloc_hdr->ah_bytes_one_struct > 0) {
#ifdef DWARF_SIMPLE_MALLOC
- size = alloc_hdr->ah_bytes_one_struct;
+ size = alloc_hdr->ah_bytes_one_struct;
#else
- return (_dwarf_find_memory(alloc_hdr));
+ {
+ void *m = _dwarf_find_memory(alloc_hdr);
+
+ dwarf_malloc_check_alloc_data(m, type);
+ if (index_into_allocated[type].specialconstructor) {
+ int res =
+ index_into_allocated[type].
+ specialconstructor(dbg, m);
+ if (res != DW_DLV_OK) {
+ /* We leak what we allocated in
+ _dwarf_find_memory when constructor fails. */
+ return NULL;
+ }
+ }
+ return m;
+ }
#endif
- } else {
- /* Special case: should not really happen at all. */
- if (type == DW_DLA_ERROR) {
- /* dwarf_init failure. Because dbg is incomplete we
- won't use it to record the malloc. */
- return _dwarf_special_no_dbg_error_malloc();
- } else {
- /* If we get here, there is a disastrous programming
- error somewhere. */
+ } else {
+ /* Special case: should not really happen at all. */
+ if (type == DW_DLA_ERROR) {
+ /* dwarf_init failure. Because dbg is incomplete we
+ won't use it to record the malloc. */
+ void *m = _dwarf_special_no_dbg_error_malloc();
+
+ dwarf_malloc_check_alloc_data(m, DW_DLA_ERROR);
+ return m;
+ } else {
+ /* If we get here, there is a disastrous programming
+ error somewhere. */
#ifdef DWARF_SIMPLE_MALLOC
- _dwarf_simple_malloc_botch(3);
+ _dwarf_simple_malloc_botch(3);
#endif
#ifdef DEBUG
- fprintf(stderr,
- "libdwarf Internal error: Type %d unexpected\n",
- (int) type);
+ fprintf(stderr,
+ "libdwarf Internal error: Type %d unexpected\n",
+ (int) type);
#endif
- }
- }
+ }
+ }
}
ret_mem = malloc(size);
#ifdef DWARF_SIMPLE_MALLOC
- _dwarf_simple_malloc_add_to_list(dbg,ret_mem,(unsigned long)size,
- alloc_type);
+ _dwarf_simple_malloc_add_to_list(dbg, ret_mem, (unsigned long) size,
+ type);
#endif
if (ret_mem != NULL)
- memset(ret_mem,0, size);
+ memset(ret_mem, 0, size);
+
+ dwarf_malloc_check_alloc_data(ret_mem, type);
+ if (index_into_allocated[type].specialconstructor) {
+ int res =
+ index_into_allocated[type].specialconstructor(dbg, ret_mem);
+ if (res != DW_DLV_OK) {
+ /* We leak what we allocated in _dwarf_find_memory when
+ constructor fails. */
+ return NULL;
+ }
+ }
return (ret_mem);
}
+
/*
This function is used to deallocate a region of memory
that was obtained by a call to _dwarf_get_alloc. Note
@@ -531,7 +604,7 @@ _dwarf_get_alloc(Dwarf_Debug dbg,
that the space was allocated by a direct call to malloc,
and so a straight free() is done. This is also the case
for variable length blocks such as DW_DLA_FRAME_BLOCK
- and DW_DLA_LOC_BLOCK.
+ and DW_DLA_LOC_BLOCK and DW_DLA_RANGES.
For strings, the pointer might point to a string in
.debug_info or .debug_string. After this is checked,
@@ -551,7 +624,7 @@ _dwarf_get_alloc(Dwarf_Debug dbg,
*/
void
dwarf_dealloc(Dwarf_Debug dbg,
- Dwarf_Ptr space, Dwarf_Unsigned alloc_type)
+ Dwarf_Ptr space, Dwarf_Unsigned alloc_type)
{
Dwarf_Alloc_Hdr alloc_hdr;
Dwarf_Alloc_Area alloc_area;
@@ -559,145 +632,167 @@ dwarf_dealloc(Dwarf_Debug dbg,
unsigned int index;
if (space == NULL) {
- return;
+ return;
}
- if (alloc_type == DW_DLA_ERROR) {
- /* Get pointer to Dwarf_Alloc_Area this struct came from. See
- dwarf_alloc.h ROUND_SIZE_WITH_POINTER stuff */
- alloc_area =
- *(Dwarf_Alloc_Area *) ((char *) space - _DW_RESERVE);
- if (alloc_area == 0) {
- /* This is the special case of a failed dwarf_init(). Also
- (and more signficantly) there are a variety of other
- situations where libdwarf does not *know* what dbg is
- involved (because of a libdwarf-caller-error) so
- libdwarf uses NULL as the dbg. Those too wind up here. */
- _dwarf_free_special_error(space);
- return;
- }
+ if (type == DW_DLA_ERROR) {
+ /* Get pointer to Dwarf_Alloc_Area this struct came from. See
+ dwarf_alloc.h ROUND_SIZE_WITH_POINTER stuff */
+ alloc_area =
+ *(Dwarf_Alloc_Area *) ((char *) space - DW_RESERVE);
+ if (alloc_area == 0) {
+ /* This is the special case of a failed dwarf_init(). Also
+ (and more signficantly) there are a variety of other
+ situations where libdwarf does not *know* what dbg is
+ involved (because of a libdwarf-caller-error) so
+ libdwarf uses NULL as the dbg. Those too wind up here. */
+ _dwarf_free_special_error(space);
+ dwarf_malloc_check_dealloc_data(space, type);
+ return;
+ }
}
if (dbg == NULL) {
- /* App error, or an app that failed to succeed in a
- dwarf_init() call. */
- return;
+ /* App error, or an app that failed to succeed in a
+ dwarf_init() call. */
+ return;
}
if (type >= ALLOC_AREA_INDEX_TABLE_MAX) {
- /* internal or user app error */
- return;
+ /* internal or user app error */
+ return;
}
- index = index_into_allocated[alloc_type].ia_al_num;
+ index = index_into_allocated[type].ia_al_num;
/*
A string pointer may point into .debug_info or .debug_string.
Otherwise, they are directly malloc'ed. */
+ dwarf_malloc_check_dealloc_data(space, type);
if (index == 0) {
- if (alloc_type == DW_DLA_STRING) {
- if ((Dwarf_Small *) space >= dbg->de_debug_info &&
- (Dwarf_Small *) space <
- dbg->de_debug_info + dbg->de_debug_info_size)
- return;
-
- if (dbg->de_debug_line != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_line &&
- (Dwarf_Small *) space <
- dbg->de_debug_line + dbg->de_debug_line_size)
- return;
-
- if (dbg->de_debug_pubnames != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_pubnames &&
- (Dwarf_Small *) space <
- dbg->de_debug_pubnames + dbg->de_debug_pubnames_size)
- return;
-
- if (dbg->de_debug_frame != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_frame &&
- (Dwarf_Small *) space <
- dbg->de_debug_frame + dbg->de_debug_frame_size)
- return;
-
- if (dbg->de_debug_str != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_str &&
- (Dwarf_Small *) space <
- dbg->de_debug_str + dbg->de_debug_str_size)
- return;
-
- if (dbg->de_debug_funcnames != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_funcnames &&
- (Dwarf_Small *) space <
- dbg->de_debug_funcnames + dbg->de_debug_funcnames_size)
- return;
-
- if (dbg->de_debug_typenames != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_typenames &&
- (Dwarf_Small *) space <
- dbg->de_debug_typenames + dbg->de_debug_typenames_size)
- return;
-
- if (dbg->de_debug_varnames != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_varnames &&
- (Dwarf_Small *) space <
- dbg->de_debug_varnames + dbg->de_debug_varnames_size)
- return;
-
- if (dbg->de_debug_weaknames != NULL &&
- (Dwarf_Small *) space >= dbg->de_debug_weaknames &&
- (Dwarf_Small *) space <
- dbg->de_debug_weaknames + dbg->de_debug_weaknames_size)
- return;
-
- free(space);
- return;
- }
-
- if (alloc_type == DW_DLA_LIST ||
- alloc_type == DW_DLA_FRAME_BLOCK ||
- alloc_type == DW_DLA_LOC_BLOCK ||
- alloc_type == DW_DLA_ADDR) {
-
- free(space);
- return;
- }
- /* else is an alloc type that is not used */
- /* app or internal error */
+ if (type == DW_DLA_STRING) {
+ if ((Dwarf_Small *) space >= dbg->de_debug_info.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_info.dss_data + dbg->de_debug_info.dss_size)
+ return;
+
+ if (dbg->de_debug_line.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_line.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_line.dss_data + dbg->de_debug_line.dss_size)
+ return;
+
+ if (dbg->de_debug_pubnames.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_pubnames.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_pubnames.dss_data +
+ dbg->de_debug_pubnames.dss_size)
+ return;
+
+ if (dbg->de_debug_frame.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_frame.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_frame.dss_data + dbg->de_debug_frame.dss_size)
+ return;
+
+ if (dbg->de_debug_str.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_str.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_str.dss_data + dbg->de_debug_str.dss_size)
+ return;
+
+ if (dbg->de_debug_funcnames.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_funcnames.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_funcnames.dss_data +
+ dbg->de_debug_funcnames.dss_size)
+ return;
+
+ if (dbg->de_debug_typenames.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_typenames.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_typenames.dss_data +
+ dbg->de_debug_typenames.dss_size)
+ return;
+ if (dbg->de_debug_pubtypes.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_pubtypes.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_pubtypes.dss_data +
+ dbg->de_debug_pubtypes.dss_size)
+ return;
+
+ if (dbg->de_debug_varnames.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_varnames.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_varnames.dss_data +
+ dbg->de_debug_varnames.dss_size)
+ return;
+
+ if (dbg->de_debug_weaknames.dss_data != NULL &&
+ (Dwarf_Small *) space >= dbg->de_debug_weaknames.dss_data &&
+ (Dwarf_Small *) space <
+ dbg->de_debug_weaknames.dss_data +
+ dbg->de_debug_weaknames.dss_size)
+ return;
+
+#ifdef DWARF_SIMPLE_MALLOC
+ _dwarf_simple_malloc_delete_from_list(dbg, space, type);
+#endif
+ free(space);
+ return;
+ }
+
+ if (type == DW_DLA_LIST ||
+ type == DW_DLA_FRAME_BLOCK ||
+ type == DW_DLA_LOC_BLOCK || type == DW_DLA_ADDR ||
+ type == DW_DLA_RANGES ||
+ type == DW_DLA_HASH_TABLE_ENTRY) {
+
+#ifdef DWARF_SIMPLE_MALLOC
+ _dwarf_simple_malloc_delete_from_list(dbg, space, type);
+#endif
+ free(space);
+ return;
+ }
+ /* else is an alloc type that is not used */
+ /* app or internal error */
#ifdef DWARF_SIMPLE_MALLOC
_dwarf_simple_malloc_botch(4);
#endif
- return;
+ return;
}
-
+ if (index_into_allocated[type].specialdestructor) {
+ index_into_allocated[type].specialdestructor(space);
+ }
#ifdef DWARF_SIMPLE_MALLOC
- _dwarf_simple_malloc_delete_from_list(dbg, space, alloc_type);
+ _dwarf_simple_malloc_delete_from_list(dbg, space, type);
free(space);
-#else /* !DWARF_SIMPLE_MALLOC */
+#else /* !DWARF_SIMPLE_MALLOC */
alloc_hdr = &dbg->de_alloc_hdr[index];
/* Get pointer to Dwarf_Alloc_Area this struct came from. See
dwarf_alloc.h ROUND_SIZE_WITH_POINTER stuff */
- alloc_area = *(Dwarf_Alloc_Area *) ((char *) space - _DW_RESERVE);
+ alloc_area = *(Dwarf_Alloc_Area *) ((char *) space - DW_RESERVE);
- /* ASSERT: alloc_area != NULL
- If NULL we could abort, let it coredump below,
- or return, pretending all is well. We go
- on, letting program crash. Is caller error. */
+ /* ASSERT: alloc_area != NULL If NULL we could abort, let it
+ coredump below, or return, pretending all is well. We go on,
+ letting program crash. Is caller error. */
/*
Check that the alloc_hdr field of the alloc_area we have is
pointing to the right alloc_hdr. This is used to catch use of
incorrect deallocation code by the user. */
if (alloc_area->aa_alloc_hdr != alloc_hdr) {
- /* If we get here, the user has called dwarf_dealloc wrongly or
- there is some other disastrous error. By leaking mem here we
- try to be safe... */
+ /* If we get here, the user has called dwarf_dealloc wrongly or
+ there is some other disastrous error. By leaking mem here we
+ try to be safe... */
#ifdef DEBUG
- fprintf(stderr,
- "libdwarf Internal error: type %d hdr mismatch %x %x area ptr %x\n",
- (int) alloc_type,
- (int) alloc_area->aa_alloc_hdr,
- (int) alloc_hdr, (int) alloc_area);
+ fprintf(stderr,
+ "libdwarf Internal error: type %d hdr mismatch %lx %lx "
+ "area ptr %lx\n",
+ (int) type,
+ (long) alloc_area->aa_alloc_hdr,
+ (long) alloc_hdr, (long) alloc_area);
#endif
- return;
+ return;
}
alloc_hdr->ah_struct_user_holds--;
@@ -706,29 +801,29 @@ dwarf_dealloc(Dwarf_Debug dbg,
/*
Give chunk back to malloc only when every struct is freed */
if (alloc_area->aa_free_structs_in_chunk ==
- alloc_hdr->ah_structs_per_chunk) {
- if (alloc_area->aa_prev != NULL) {
- alloc_area->aa_prev->aa_next = alloc_area->aa_next;
- } else {
- alloc_hdr->ah_alloc_area_head = alloc_area->aa_next;
- }
-
- if (alloc_area->aa_next != NULL) {
- alloc_area->aa_next->aa_prev = alloc_area->aa_prev;
- }
-
- alloc_hdr->ah_chunks_allocated--;
-
- if (alloc_area == alloc_hdr->ah_last_alloc_area) {
- alloc_hdr->ah_last_alloc_area = NULL;
- }
- memset(alloc_area,0, sizeof(*alloc_area));
- free(alloc_area);
+ alloc_hdr->ah_structs_per_chunk) {
+ if (alloc_area->aa_prev != NULL) {
+ alloc_area->aa_prev->aa_next = alloc_area->aa_next;
+ } else {
+ alloc_hdr->ah_alloc_area_head = alloc_area->aa_next;
+ }
+
+ if (alloc_area->aa_next != NULL) {
+ alloc_area->aa_next->aa_prev = alloc_area->aa_prev;
+ }
+
+ alloc_hdr->ah_chunks_allocated--;
+
+ if (alloc_area == alloc_hdr->ah_last_alloc_area) {
+ alloc_hdr->ah_last_alloc_area = NULL;
+ }
+ memset(alloc_area, 0, sizeof(*alloc_area));
+ free(alloc_area);
}
else {
- ((Dwarf_Free_List) space)->fl_next = alloc_area->aa_free_list;
- alloc_area->aa_free_list = space;
+ ((Dwarf_Free_List) space)->fl_next = alloc_area->aa_free_list;
+ alloc_area->aa_free_list = space;
}
#endif /* !DWARF_SIMPLE_MALLOC */
}
@@ -746,10 +841,9 @@ _dwarf_get_debug(void
dbg = (Dwarf_Debug) malloc(sizeof(struct Dwarf_Debug_s));
if (dbg == NULL)
- return (NULL);
+ return (NULL);
else
- memset(dbg,0, sizeof(struct Dwarf_Debug_s));
-
+ memset(dbg, 0, sizeof(struct Dwarf_Debug_s));
return (dbg);
}
@@ -758,7 +852,7 @@ _dwarf_get_debug(void
Sets up the Dwarf_Debug_s struct for all the
allocation types currently defined.
Allocation types DW_DLA_STRING, DW_DLA_LIST,
- DW_DLA_FRAME_BLOCK, DW_DLA_LOC_BLOCK are
+ DW_DLA_FRAME_BLOCK, DW_DLA_LOC_BLOCK, DW_DLA_RANGES are
malloc'ed directly.
This routine should be called after _dwarf_setup(),
@@ -781,13 +875,6 @@ _dwarf_get_debug(void
need to be initialized.
Being an internal routine, assume proper dbg.
-
-
-
-
-*/
-/*
-** Set up all the Dwarf_Alloc_Hdr records.
*/
Dwarf_Debug
@@ -796,19 +883,19 @@ _dwarf_setup_debug(Dwarf_Debug dbg)
int i;
for (i = 1; i <= MAX_DW_DLA; i++) {
- const struct ial_s *ialp = &index_into_allocated[i];
- unsigned int hdr_index = ialp->ia_al_num;
- Dwarf_Word str_size = ialp->ia_struct_size;
- Dwarf_Word str_count = ialp->ia_base_count;
- Dwarf_Word rnded_size = ROUND_SIZE_WITH_POINTER(str_size);
+ const struct ial_s *ialp = &index_into_allocated[i];
+ unsigned int hdr_index = ialp->ia_al_num;
+ Dwarf_Word str_size = ialp->ia_struct_size;
+ Dwarf_Word str_count = ialp->ia_base_count;
+ Dwarf_Word rnded_size = ROUND_SIZE_WITH_POINTER(str_size);
- Dwarf_Alloc_Hdr alloc_hdr = &dbg->de_alloc_hdr[hdr_index];
+ Dwarf_Alloc_Hdr alloc_hdr = &dbg->de_alloc_hdr[hdr_index];
- alloc_hdr->ah_bytes_one_struct = (Dwarf_Half) rnded_size;
+ alloc_hdr->ah_bytes_one_struct = (Dwarf_Half) rnded_size;
- /* ah_structs_per_chunk must be >0 else we are in trouble */
- alloc_hdr->ah_structs_per_chunk = str_count;
- alloc_hdr->ah_bytes_malloc_per_chunk = rnded_size * str_count;
+ /* ah_structs_per_chunk must be >0 else we are in trouble */
+ alloc_hdr->ah_structs_per_chunk = str_count;
+ alloc_hdr->ah_bytes_malloc_per_chunk = rnded_size * str_count;
}
return (dbg);
}
@@ -824,86 +911,89 @@ dwarf_print_memory_stats(Dwarf_Debug dbg)
Dwarf_Shalf i;
/*
- Alloc types start at 1, not 0. Hence, the first NULL string,
- and also a size of MAX_DW_DLA + 1. */
+ Alloc types start at 1, not 0. Hence, the first NULL string, and
+ also a size of MAX_DW_DLA + 1. */
char *alloc_type_name[MAX_DW_DLA + 1] = {
- "",
- "DW_DLA_STRING",
- "DW_DLA_LOC",
- "DW_DLA_LOCDESC",
- "DW_DLA_ELLIST",
- "DW_DLA_BOUNDS",
- "DW_DLA_BLOCK",
- "DW_DLA_DEBUG",
- "DW_DLA_DIE",
- "DW_DLA_LINE",
- "DW_DLA_ATTR",
- "DW_DLA_TYPE",
- "DW_DLA_SUBSCR",
- "DW_DLA_GLOBAL",
- "DW_DLA_ERROR",
- "DW_DLA_LIST",
- "DW_DLA_LINEBUF",
- "DW_DLA_ARANGE",
- "DW_DLA_ABBREV",
- "DW_DLA_FRAME_OP",
- "DW_DLA_CIE",
- "DW_DLA_FDE",
- "DW_DLA_LOC_BLOCK",
- "DW_DLA_FRAME_BLOCK",
- "DW_DLA_FUNC",
- "DW_DLA_TYPENAME",
- "DW_DLA_VAR",
- "DW_DLA_WEAK",
- "DW_DLA_ADDR",
- "DW_DLA_ABBREV_LIST",
- "DW_DLA_CHAIN",
- "DW_DLA_CU_CONTEXT",
- "DW_DLA_FRAME",
- "DW_DLA_GLOBAL_CONTEXT",
- "DW_DLA_FILE_ENTRY",
- "DW_DLA_LINE_CONTEXT",
- "DW_DLA_LOC_CHAIN",
- "DW_DLA_HASH_TABLE",
- "DW_DLA_FUNC_CONTEXT",
- "DW_DLA_TYPENAME_CONTEXT",
- "DW_DLA_VAR_CONTEXT",
- "DW_DLA_WEAK_CONTEXT"
+ "",
+ "DW_DLA_STRING",
+ "DW_DLA_LOC",
+ "DW_DLA_LOCDESC",
+ "DW_DLA_ELLIST",
+ "DW_DLA_BOUNDS",
+ "DW_DLA_BLOCK",
+ "DW_DLA_DEBUG",
+ "DW_DLA_DIE",
+ "DW_DLA_LINE",
+ "DW_DLA_ATTR",
+ "DW_DLA_TYPE",
+ "DW_DLA_SUBSCR",
+ "DW_DLA_GLOBAL",
+ "DW_DLA_ERROR",
+ "DW_DLA_LIST",
+ "DW_DLA_LINEBUF",
+ "DW_DLA_ARANGE",
+ "DW_DLA_ABBREV",
+ "DW_DLA_FRAME_OP",
+ "DW_DLA_CIE",
+ "DW_DLA_FDE",
+ "DW_DLA_LOC_BLOCK",
+ "DW_DLA_FRAME_BLOCK",
+ "DW_DLA_FUNC",
+ "DW_DLA_TYPENAME",
+ "DW_DLA_VAR",
+ "DW_DLA_WEAK",
+ "DW_DLA_ADDR",
+ "DW_DLA_RANGES",
+ "DW_DLA_ABBREV_LIST",
+ "DW_DLA_CHAIN",
+ "DW_DLA_CU_CONTEXT",
+ "DW_DLA_FRAME",
+ "DW_DLA_GLOBAL_CONTEXT",
+ "DW_DLA_FILE_ENTRY",
+ "DW_DLA_LINE_CONTEXT",
+ "DW_DLA_LOC_CHAIN",
+ "DW_DLA_HASH_TABLE",
+ "DW_DLA_FUNC_CONTEXT",
+ "DW_DLA_TYPENAME_CONTEXT",
+ "DW_DLA_VAR_CONTEXT",
+ "DW_DLA_WEAK_CONTEXT",
+ "DW_DLA_PUBTYPES_CONTEXT",
+ "DW_DLA_HASH_TABLE_ENTRY",
};
if (dbg == NULL)
- return;
+ return;
printf("Size of Dwarf_Debug %4ld bytes\n",
- (long) sizeof(*dbg));
+ (long) sizeof(*dbg));
printf("Size of Dwarf_Alloc_Hdr_s %4ld bytes\n",
- (long) sizeof(struct Dwarf_Alloc_Hdr_s));
+ (long) sizeof(struct Dwarf_Alloc_Hdr_s));
printf("size of Dwarf_Alloc_Area_s %4ld bytes\n",
- (long) sizeof(struct Dwarf_Alloc_Area_s));
+ (long) sizeof(struct Dwarf_Alloc_Area_s));
printf(" Alloc Type Curr Structs byt str\n");
printf(" ---------- ---- ------- per per\n");
for (i = 1; i <= MAX_DW_DLA; i++) {
- int indx = index_into_allocated[i].ia_al_num;
-
- alloc_hdr = &dbg->de_alloc_hdr[indx];
- if (alloc_hdr->ah_bytes_one_struct != 1) {
- printf("%2d %-25s %6d %8d %6d %6d\n",
- (int) i,
- alloc_type_name[i],
- (int) alloc_hdr->ah_chunks_allocated,
- (int) alloc_hdr->ah_struct_user_holds,
- (int) alloc_hdr->ah_bytes_malloc_per_chunk,
- (int) alloc_hdr->ah_structs_per_chunk);
- }
+ int indx = index_into_allocated[i].ia_al_num;
+
+ alloc_hdr = &dbg->de_alloc_hdr[indx];
+ if (alloc_hdr->ah_bytes_one_struct != 1) {
+ printf("%2d %-25s %6d %8d %6d %6d\n",
+ (int) i,
+ alloc_type_name[i],
+ (int) alloc_hdr->ah_chunks_allocated,
+ (int) alloc_hdr->ah_struct_user_holds,
+ (int) alloc_hdr->ah_bytes_malloc_per_chunk,
+ (int) alloc_hdr->ah_structs_per_chunk);
+ }
}
}
#ifndef DWARF_SIMPLE_MALLOC
/*
- This function is used to recursively
- free the chunks still allocated, and
+ This recursively frees
+ the chunks still allocated, and
forward chained through the aa_next
pointer.
*/
@@ -911,7 +1001,7 @@ static void
_dwarf_recursive_free(Dwarf_Alloc_Area alloc_area)
{
if (alloc_area->aa_next != NULL) {
- _dwarf_recursive_free(alloc_area->aa_next);
+ _dwarf_recursive_free(alloc_area->aa_next);
}
alloc_area->aa_next = 0;
@@ -920,6 +1010,18 @@ _dwarf_recursive_free(Dwarf_Alloc_Area alloc_area)
}
#endif
+/* In the 'rela' relocation case we might have malloc'd
+ space to ensure it is read-write. In that case, free the space. */
+static void
+rela_free(struct Dwarf_Section_s * sec)
+{
+ if (sec->dss_data_was_malloc) {
+ free(sec->dss_data);
+ }
+ sec->dss_data = 0;
+ sec->dss_data_was_malloc = 0;
+}
+
/*
Used to free all space allocated for this Dwarf_Debug.
The caller should assume that the Dwarf_Debug pointer
@@ -932,46 +1034,80 @@ _dwarf_free_all_of_one_debug(Dwarf_Debug dbg)
{
Dwarf_Alloc_Hdr alloc_hdr;
Dwarf_Shalf i;
+ Dwarf_CU_Context context = 0;
+ Dwarf_CU_Context nextcontext = 0;
if (dbg == NULL)
- return (DW_DLV_ERROR);
+ return (DW_DLV_ERROR);
+
+ /* To do complete validation that we have no surprising missing or
+ erroneous deallocs it is advisable to do the dwarf_deallocs here
+ that are not things the user can otherwise request.
+ Housecleaning. */
+
+ for (context = dbg->de_cu_context_list;
+ context; context = nextcontext) {
+ Dwarf_Hash_Table hash_table = context->cc_abbrev_hash_table;
+ _dwarf_free_abbrev_hash_table_contents(dbg,hash_table);
+ nextcontext = context->cc_next;
+ dwarf_dealloc(dbg, hash_table, DW_DLA_HASH_TABLE);
+ dwarf_dealloc(dbg, context, DW_DLA_CU_CONTEXT);
+ }
+ /* Housecleaning done. Now really free all the space. */
#ifdef DWARF_SIMPLE_MALLOC
- if(dbg->de_simple_malloc_base) {
- struct simple_malloc_record_s *smp = dbg->de_simple_malloc_base;
- while( smp)
- {
- int i;
- struct simple_malloc_record_s *prev_smp = 0;
-
- for(i = 0; i < smp->sr_used; ++i) {
- struct simple_malloc_entry_s *cur;
- cur = &smp->sr_entry[i];
- if(cur->se_addr != 0) {
- free(cur->se_addr);
- cur->se_addr = 0;
- }
- }
- prev_smp = smp;
- smp = smp->sr_next;
- free(prev_smp);
- }
- dbg->de_simple_malloc_base = 0;
- dbg->de_simple_malloc_current = 0;
+ if (dbg->de_simple_malloc_base) {
+ struct simple_malloc_record_s *smp = dbg->de_simple_malloc_base;
+
+ while (smp) {
+ int i;
+ struct simple_malloc_record_s *prev_smp = 0;
+
+ for (i = 0; i < smp->sr_used; ++i) {
+ struct simple_malloc_entry_s *cur;
+
+ cur = &smp->sr_entry[i];
+ if (cur->se_addr != 0) {
+ free(cur->se_addr);
+ cur->se_addr = 0;
+ }
+ }
+ prev_smp = smp;
+ smp = smp->sr_next;
+ free(prev_smp);
+ }
+ dbg->de_simple_malloc_base = 0;
}
#else
for (i = 1; i < ALLOC_AREA_REAL_TABLE_MAX; i++) {
- int indx = i;
+ int indx = i;
- alloc_hdr = &dbg->de_alloc_hdr[indx];
- if (alloc_hdr->ah_alloc_area_head != NULL) {
- _dwarf_recursive_free(alloc_hdr->ah_alloc_area_head);
- }
+ alloc_hdr = &dbg->de_alloc_hdr[indx];
+ if (alloc_hdr->ah_alloc_area_head != NULL) {
+ _dwarf_recursive_free(alloc_hdr->ah_alloc_area_head);
+ }
}
#endif
-
- memset(dbg,0, sizeof(*dbg)); /* prevent accidental use later */
+ rela_free(&dbg->de_debug_info);
+ rela_free(&dbg->de_debug_abbrev);
+ rela_free(&dbg->de_debug_line);
+ rela_free(&dbg->de_debug_loc);
+ rela_free(&dbg->de_debug_aranges);
+ rela_free(&dbg->de_debug_macinfo);
+ rela_free(&dbg->de_debug_pubnames);
+ rela_free(&dbg->de_debug_str);
+ rela_free(&dbg->de_debug_frame);
+ rela_free(&dbg->de_debug_frame_eh_gnu);
+ rela_free(&dbg->de_debug_pubtypes);
+ rela_free(&dbg->de_debug_funcnames);
+ rela_free(&dbg->de_debug_typenames);
+ rela_free(&dbg->de_debug_varnames);
+ rela_free(&dbg->de_debug_weaknames);
+ rela_free(&dbg->de_debug_ranges);
+ dwarf_harmless_cleanout(&dbg->de_harmless_errors);
+
+ memset(dbg, 0, sizeof(*dbg)); /* Prevent accidental use later. */
free(dbg);
return (DW_DLV_OK);
}
@@ -989,21 +1125,21 @@ _dwarf_special_no_dbg_error_malloc(void)
{
/* the union unused things are to guarantee proper alignment */
union u {
- Dwarf_Alloc_Area ptr_not_used;
- struct Dwarf_Error_s base_not_used;
- char data_space[sizeof(struct Dwarf_Error_s) +
- (_DW_RESERVE * 2)];
+ Dwarf_Alloc_Area ptr_not_used;
+ struct Dwarf_Error_s base_not_used;
+ char data_space[sizeof(struct Dwarf_Error_s) +
+ (DW_RESERVE * 2)];
};
char *mem;
mem = malloc(sizeof(union u));
if (mem == 0) {
- return 0;
+ return 0;
}
- memset(mem,0, sizeof(union u));
- mem += _DW_RESERVE;
+ memset(mem, 0, sizeof(union u));
+ mem += DW_RESERVE;
return (struct Dwarf_Error_s *) mem;
}
@@ -1014,7 +1150,7 @@ _dwarf_free_special_error(Dwarf_Ptr space)
{
char *mem = (char *) space;
- mem -= _DW_RESERVE;
+ mem -= DW_RESERVE;
free(mem);
}
@@ -1025,56 +1161,57 @@ _dwarf_free_special_error(Dwarf_Ptr space)
void
_dwarf_simple_malloc_botch(int err)
{
+ fprintf(stderr,"simple malloc botch %d\n",err);
}
-static void
+static void
_dwarf_simple_malloc_add_to_list(Dwarf_Debug dbg,
- Dwarf_Ptr addr,
- unsigned long size,
- short alloc_type)
+ Dwarf_Ptr addr,
+ unsigned long size, short alloc_type)
{
- struct simple_malloc_record_s *cur;
- struct simple_malloc_entry_s *newentry;
- if (!dbg->de_simple_malloc_current) {
- /* First entry to this routine. */
- dbg->de_simple_malloc_current =
- malloc(sizeof(struct simple_malloc_record_s));
- if(!dbg->de_simple_malloc_current) {
- return; /* no memory, give up */
- }
- memset(dbg->de_simple_malloc_current,
- 0,
- sizeof(struct simple_malloc_record_s));
- dbg->de_simple_malloc_base = dbg->de_simple_malloc_current;
- }
- cur = dbg->de_simple_malloc_current;
-
- if(cur->sr_used >= DSM_BLOCK_COUNT) {
- /* better not be > than as that means chaos */
-
- /* Create a new block to link at the head. */
-
- struct simple_malloc_record_s *newblock =
- malloc(sizeof(struct simple_malloc_record_s));
- if(!newblock) {
- return; /* Can do nothing, out of memory */
- }
- memset(newblock,0, sizeof(struct simple_malloc_record_s));
- /* Link the new block at the head of the chain,
- and make it 'current'
- */
- dbg->de_simple_malloc_current = newblock;
- newblock->sr_next = cur;
- cur = newblock;
- }
- newentry = &cur->sr_entry[cur->sr_used];
- newentry->se_addr = addr;
- newentry->se_size = size;
- newentry->se_type = alloc_type;
- ++cur->sr_used;
+ struct simple_malloc_record_s *cur;
+ struct simple_malloc_entry_s *newentry;
+
+ if (!dbg->de_simple_malloc_base) {
+ /* First entry to this routine. */
+ dbg->de_simple_malloc_base =
+ malloc(sizeof(struct simple_malloc_record_s));
+ if (!dbg->de_simple_malloc_base) {
+ _dwarf_simple_malloc_botch(7);
+ return; /* no memory, give up */
+ }
+ memset(dbg->de_simple_malloc_base,
+ 0, sizeof(struct simple_malloc_record_s));
+ }
+ cur = dbg->de_simple_malloc_base;
+
+ if (cur->sr_used >= DSM_BLOCK_COUNT) {
+ /* Better not be > than as that means chaos */
+
+ /* Create a new block to link at the head. */
+
+ struct simple_malloc_record_s *newblock =
+ malloc(sizeof(struct simple_malloc_record_s));
+ if (!newblock) {
+ _dwarf_simple_malloc_botch(8);
+ return; /* Can do nothing, out of memory */
+ }
+ memset(newblock, 0, sizeof(struct simple_malloc_record_s));
+ /* Link the new block at the head of the chain, and make it
+ 'current' */
+ dbg->de_simple_malloc_base = newblock;
+ newblock->sr_next = cur;
+ cur = newblock;
+ }
+ newentry = &cur->sr_entry[cur->sr_used];
+ newentry->se_addr = addr;
+ newentry->se_size = size;
+ newentry->se_type = alloc_type;
+ ++cur->sr_used;
}
+
/*
- DWARF_SIMPLE_MALLOC is for testing the hypothesis that the existing
- complex malloc scheme in libdwarf is pointless complexity.
+ DWARF_SIMPLE_MALLOC: testing the hypothesis that the existing
+ malloc scheme here (see _dwarf_get_alloc()) is pointless complexity.
DWARF_SIMPLE_MALLOC also makes it easy for a malloc-tracing
tool to verify libdwarf malloc has no botches (though of course
@@ -1086,37 +1223,36 @@ _dwarf_simple_malloc_add_to_list(Dwarf_Debug dbg,
*/
static void
-_dwarf_simple_malloc_delete_from_list(Dwarf_Debug dbg,
- Dwarf_Ptr space,
- short alloc_type)
+_dwarf_simple_malloc_delete_from_list(Dwarf_Debug dbg,
+ Dwarf_Ptr space, short alloc_type)
{
- if(space == 0) {
- _dwarf_simple_malloc_botch(6);
+ if (space == 0) {
+ _dwarf_simple_malloc_botch(6);
}
- if(dbg->de_simple_malloc_base) {
+ if (dbg->de_simple_malloc_base) {
struct simple_malloc_record_s *smp = dbg->de_simple_malloc_base;
- while( smp)
- {
+
+ while (smp) {
int i;
- for(i = 0; i < smp->sr_used; ++i) {
+ for (i = 0; i < smp->sr_used; ++i) {
struct simple_malloc_entry_s *cur;
+
cur = &smp->sr_entry[i];
- if(cur->se_addr == space) {
- if(cur->se_type != alloc_type ) {
- _dwarf_simple_malloc_botch(0);
- }
- cur->se_addr = 0;
- return;
+ if (cur->se_addr == space) {
+ if (cur->se_type != alloc_type) {
+ _dwarf_simple_malloc_botch(0);
+ }
+ cur->se_addr = 0;
+ return;
}
}
smp = smp->sr_next;
}
}
- /* Never found the space */
+ /* Never found the space. */
_dwarf_simple_malloc_botch(1);
return;
}
#endif
-
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_alloc.h b/usr/src/tools/ctf/dwarf/common/dwarf_alloc.h
index 4240d69d35..3a61c692c6 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_alloc.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_alloc.h
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2008-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -33,7 +34,7 @@
*/
-
+/* #define DWARF_SIMPLE_MALLOC 1 */
Dwarf_Ptr _dwarf_get_alloc(Dwarf_Debug, Dwarf_Small, Dwarf_Unsigned);
Dwarf_Debug _dwarf_get_debug(void);
@@ -43,8 +44,17 @@ int _dwarf_free_all_of_one_debug(Dwarf_Debug);
typedef struct Dwarf_Alloc_Area_s *Dwarf_Alloc_Area;
typedef struct Dwarf_Free_List_s *Dwarf_Free_List;
-#define ALLOC_AREA_INDEX_TABLE_MAX 42
-#define ALLOC_AREA_REAL_TABLE_MAX 31
+/* ALLOC_AREA_INDEX_TABLE_MAX is the size of the
+ struct ial_s index_into_allocated array in dwarf_alloc.c
+*/
+#define ALLOC_AREA_INDEX_TABLE_MAX 45
+/* ALLOC_AREA_REAL_TABLE_MAX is the size of the array needed
+ to hold pointers to dwarf alloc chunk areas.
+ It's smaller as some of the index_into_allocated
+ entries (they look like {0,1,1,0,0} )
+ are treated specially and don't use 'chunks'.
+*/
+#define ALLOC_AREA_REAL_TABLE_MAX 32
/*
This struct is used to chain all the deallocated
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_arange.c b/usr/src/tools/ctf/dwarf/common/dwarf_arange.c
index f14f5daedc..e7ad8acc5e 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_arange.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_arange.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,13 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
@@ -40,218 +48,273 @@
#include "dwarf_incl.h"
#include <stdio.h>
#include "dwarf_arange.h"
+#include "dwarf_global.h" /* for _dwarf_fixup_* */
-/*
- This function returns the count of the number of
- aranges in the .debug_aranges section. It sets
- aranges to point to a block of Dwarf_Arange's
- describing the arange's. It returns DW_DLV_ERROR
- on error.
-
- Must be identical in most aspects to
- dwarf_get_aranges_addr_offsets!
+/* Common code for two user-visible routines to share.
+ Errors here result in memory leaks, but errors here
+ are serious (making aranges unusable) so we assume
+ callers will not repeat the error often or mind the leaks.
*/
-int
-dwarf_get_aranges(Dwarf_Debug dbg,
- Dwarf_Arange ** aranges,
- Dwarf_Signed * returned_count, Dwarf_Error * error)
+static int
+dwarf_get_aranges_list(Dwarf_Debug dbg,
+ Dwarf_Chain * chain_out,
+ Dwarf_Signed * chain_count_out,
+ Dwarf_Error * error)
{
- /* Sweeps the .debug_aranges section. */
- Dwarf_Small *arange_ptr;
+ /* Sweeps through the arange. */
+ Dwarf_Small *arange_ptr = 0;
+ Dwarf_Small *arange_ptr_start = 0;
- /*
- Start of arange header. Used for rounding offset of arange_ptr
+ /* Start of arange header. Used for rounding offset of arange_ptr
to twice the tuple size. Libdwarf requirement. */
- Dwarf_Small *header_ptr;
-
+ Dwarf_Small *header_ptr = 0;
/* Version of .debug_aranges header. */
- Dwarf_Half version;
+ Dwarf_Half version = 0;
/* Offset of current set of aranges into .debug_info. */
- Dwarf_Off info_offset;
+ Dwarf_Off info_offset = 0;
/* Size in bytes of addresses in target. */
- Dwarf_Small address_size;
+ Dwarf_Small address_size = 0;
/* Size in bytes of segment offsets in target. */
- Dwarf_Small segment_size;
-
- Dwarf_Small remainder;
+ Dwarf_Small segment_size = 0;
/* Count of total number of aranges. */
Dwarf_Unsigned arange_count = 0;
- /* Start address of arange. */
- Dwarf_Addr range_address;
+ Dwarf_Arange arange = 0;
- /* Length of arange. */
- Dwarf_Unsigned range_length;
+ /* Used to chain Dwarf_Aranges structs. */
+ Dwarf_Chain curr_chain = NULL;
+ Dwarf_Chain prev_chain = NULL;
+ Dwarf_Chain head_chain = NULL;
- Dwarf_Arange arange, *arange_block;
+ arange_ptr = dbg->de_debug_aranges.dss_data;
+ arange_ptr_start = arange_ptr;
+ do {
+ /* Length of current set of aranges. */
+ Dwarf_Unsigned length = 0;
+ Dwarf_Small remainder = 0;
+ Dwarf_Small *arange_ptr_past_end = 0;
+ Dwarf_Unsigned range_entry_size = 0;
- Dwarf_Unsigned i;
+ int local_length_size;
+
+ /*REFERENCED*/ /* Not used in this instance of the macro */
+ int local_extension_size = 0;
+
+ header_ptr = arange_ptr;
+
+ /* READ_AREA_LENGTH updates arange_ptr for consumed bytes */
+ READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
+ arange_ptr, local_length_size,
+ local_extension_size);
+ arange_ptr_past_end = arange_ptr + length;
- /* Used to chain Dwarf_Aranges structs. */
- Dwarf_Chain curr_chain, prev_chain, head_chain = NULL;
- int res;
+ READ_UNALIGNED(dbg, version, Dwarf_Half,
+ arange_ptr, sizeof(Dwarf_Half));
+ arange_ptr += sizeof(Dwarf_Half);
+ length = length - sizeof(Dwarf_Half);
+ if (version != CURRENT_VERSION_STAMP) {
+ _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
+ return (DW_DLV_ERROR);
+ }
+
+ READ_UNALIGNED(dbg, info_offset, Dwarf_Off,
+ arange_ptr, local_length_size);
+ arange_ptr += local_length_size;
+ length = length - local_length_size;
+ if (info_offset >= dbg->de_debug_info.dss_size) {
+ FIX_UP_OFFSET_IRIX_BUG(dbg, info_offset,
+ "arange info offset.a");
+ if (info_offset >= dbg->de_debug_info.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_ARANGE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+ }
+
+ address_size = *(Dwarf_Small *) arange_ptr;
+ /* It is not an error if the sizes differ.
+ Unusual, but not an error. */
+ arange_ptr = arange_ptr + sizeof(Dwarf_Small);
+ length = length - sizeof(Dwarf_Small);
+
+ segment_size = *(Dwarf_Small *) arange_ptr;
+ arange_ptr = arange_ptr + sizeof(Dwarf_Small);
+ length = length - sizeof(Dwarf_Small);
+ if (segment_size != 0) {
+ _dwarf_error(dbg, error, DW_DLE_SEGMENT_SIZE_BAD);
+ return (DW_DLV_ERROR);
+ }
+
+ range_entry_size = 2*address_size + segment_size;
+ /* Round arange_ptr offset to next multiple of address_size. */
+ remainder = (Dwarf_Unsigned) (arange_ptr - header_ptr) %
+ (range_entry_size);
+ if (remainder != 0) {
+ arange_ptr = arange_ptr + (2 * address_size) - remainder;
+ length = length - ((2 * address_size) - remainder);
+ }
+ do {
+ Dwarf_Addr range_address = 0;
+ Dwarf_Unsigned segment_selector = 0;
+ Dwarf_Unsigned range_length = 0;
+ /* For segmented address spaces, the first field to
+ read is a segment selector (new in DWARF4) */
+ if(version == 4 && segment_size != 0) {
+ READ_UNALIGNED(dbg, segment_selector, Dwarf_Unsigned,
+ arange_ptr, segment_size);
+ arange_ptr += address_size;
+ length = length - address_size;
+ }
+
+ READ_UNALIGNED(dbg, range_address, Dwarf_Addr,
+ arange_ptr, address_size);
+ arange_ptr += address_size;
+ length = length - address_size;
+
+ READ_UNALIGNED(dbg, range_length, Dwarf_Unsigned,
+ arange_ptr, address_size);
+ arange_ptr += address_size;
+ length = length - address_size;
+
+ { /* We used to suppress all-zero entries, but
+ now we return all aranges entries so we show
+ the entire content. March 31, 2010. */
+
+ arange = (Dwarf_Arange)
+ _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
+ if (arange == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ arange->ar_segment_selector = segment_selector;
+ arange->ar_segment_selector_size = segment_size;
+ arange->ar_address = range_address;
+ arange->ar_length = range_length;
+ arange->ar_info_offset = info_offset;
+ arange->ar_dbg = dbg;
+ arange_count++;
+
+ curr_chain = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_chain == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ curr_chain->ch_item = arange;
+ if (head_chain == NULL)
+ head_chain = prev_chain = curr_chain;
+ else {
+ prev_chain->ch_next = curr_chain;
+ prev_chain = curr_chain;
+ }
+ }
+ /* The current set of ranges is terminated by
+ range_address 0 and range_length 0, but that
+ does not necessarily terminate the ranges for this CU!
+ There can be multiple sets in that DWARF
+ does not explicitly forbid multiple sets.
+ DWARF2,3,4 section 7.20
+ We stop short to avoid overrun of the end of the CU.
+ */
+
+ } while (arange_ptr_past_end >= (arange_ptr + range_entry_size));
+
+ /* A compiler could emit some padding bytes here. dwarf2/3
+ (dwarf4 sec 7.20) does not clearly make extra padding
+ bytes illegal. */
+ if (arange_ptr_past_end < arange_ptr) {
+ char buf[200];
+ Dwarf_Unsigned pad_count = arange_ptr - arange_ptr_past_end;
+ Dwarf_Unsigned offset = arange_ptr - arange_ptr_start;
+ snprintf(buf,sizeof(buf),"DW_DLE_ARANGE_LENGTH_BAD."
+ " 0x%" DW_PR_DUx
+ " pad bytes at offset 0x%" DW_PR_DUx
+ " in .debug_aranges",
+ pad_count, offset);
+ dwarf_insert_harmless_error(dbg,buf);
+ }
+ /* For most compilers, arange_ptr == arange_ptr_past_end at
+ this point. But not if there were padding bytes */
+ arange_ptr = arange_ptr_past_end;
+ } while (arange_ptr <
+ dbg->de_debug_aranges.dss_data + dbg->de_debug_aranges.dss_size);
+
+ if (arange_ptr !=
+ dbg->de_debug_aranges.dss_data + dbg->de_debug_aranges.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_ARANGE_DECODE_ERROR);
+ return (DW_DLV_ERROR);
+ }
+ *chain_out = head_chain;
+ *chain_count_out = arange_count;
+ return DW_DLV_OK;
+}
+
+/*
+ This function returns the count of the number of
+ aranges in the .debug_aranges section. It sets
+ aranges to point to a block of Dwarf_Arange's
+ describing the arange's. It returns DW_DLV_ERROR
+ on error.
+
+ Must be identical in most aspects to
+ dwarf_get_aranges_addr_offsets!
+
+*/
+int
+dwarf_get_aranges(Dwarf_Debug dbg,
+ Dwarf_Arange ** aranges,
+ Dwarf_Signed * returned_count, Dwarf_Error * error)
+{
+ /* Count of total number of aranges. */
+ Dwarf_Signed arange_count = 0;
+
+ Dwarf_Arange *arange_block = 0;
+
+ /* Used to chain Dwarf_Aranges structs. */
+ Dwarf_Chain curr_chain = NULL;
+ Dwarf_Chain prev_chain = NULL;
+ Dwarf_Chain head_chain = NULL;
+ Dwarf_Unsigned i = 0;
+ int res = DW_DLV_ERROR;
/* ***** BEGIN CODE ***** */
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_aranges_index,
- &dbg->de_debug_aranges,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_aranges, error);
if (res != DW_DLV_OK) {
return res;
}
- arange_ptr = dbg->de_debug_aranges;
- do {
- /* Length of current set of aranges. */
- Dwarf_Unsigned length;
- Dwarf_Small *arange_ptr_past_end = 0;
-
- int local_length_size;
- /*REFERENCED*/ /* Not used in this instance of the macro */
- int local_extension_size;
-
- header_ptr = arange_ptr;
-
- /* READ_AREA_LENGTH updates arange_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- arange_ptr, local_length_size,
- local_extension_size);
- arange_ptr_past_end = arange_ptr + length;
-
-
- READ_UNALIGNED(dbg, version, Dwarf_Half,
- arange_ptr, sizeof(Dwarf_Half));
- arange_ptr += sizeof(Dwarf_Half);
- length = length - sizeof(Dwarf_Half);
- if (version != CURRENT_VERSION_STAMP) {
- _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
- return (DW_DLV_ERROR);
- }
-
- READ_UNALIGNED(dbg, info_offset, Dwarf_Off,
- arange_ptr, local_length_size);
- arange_ptr += local_length_size;
- length = length - local_length_size;
- if (info_offset >= dbg->de_debug_info_size) {
- _dwarf_error(dbg, error, DW_DLE_ARANGE_OFFSET_BAD);
- return (DW_DLV_ERROR);
- }
-
- address_size = *(Dwarf_Small *) arange_ptr;
- if (address_size != dbg->de_pointer_size) {
- /* Internal error of some kind */
- _dwarf_error(dbg, error, DW_DLE_BADBITC);
- return (DW_DLV_ERROR);
- }
- arange_ptr = arange_ptr + sizeof(Dwarf_Small);
- length = length - sizeof(Dwarf_Small);
-
- segment_size = *(Dwarf_Small *) arange_ptr;
- arange_ptr = arange_ptr + sizeof(Dwarf_Small);
- length = length - sizeof(Dwarf_Small);
- if (segment_size != 0) {
- _dwarf_error(dbg, error, DW_DLE_SEGMENT_SIZE_BAD);
- return (DW_DLV_ERROR);
- }
-
- /* Round arange_ptr offset to next multiple of address_size. */
- remainder = (Dwarf_Unsigned) (arange_ptr - header_ptr) %
- (2 * address_size);
- if (remainder != 0) {
- arange_ptr = arange_ptr + (2 * address_size) - remainder;
- length = length - ((2 * address_size) - remainder);
- }
-
- do {
- READ_UNALIGNED(dbg, range_address, Dwarf_Addr,
- arange_ptr, address_size);
- arange_ptr += address_size;
- length = length - address_size;
-
- READ_UNALIGNED(dbg, range_length, Dwarf_Unsigned,
- arange_ptr, address_size);
- arange_ptr += address_size;
- length = length - address_size;
-
- if (range_address != 0 || range_length != 0) {
-
- arange = (Dwarf_Arange)
- _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
- if (arange == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- arange->ar_address = range_address;
- arange->ar_length = range_length;
- arange->ar_info_offset = info_offset;
- arange->ar_dbg = dbg;
- arange_count++;
-
- curr_chain = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_chain == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_chain->ch_item = arange;
- if (head_chain == NULL)
- head_chain = prev_chain = curr_chain;
- else {
- prev_chain->ch_next = curr_chain;
- prev_chain = curr_chain;
- }
- }
- } while (range_address != 0 || range_length != 0);
-
- /* A compiler could emit some padding bytes here.
- dwarf2/3 (dwarf3 draft8 sec 7.20) does not clearly make
- extra padding bytes illegal. */
- if(arange_ptr_past_end < arange_ptr) {
- _dwarf_error(dbg, error, DW_DLE_ARANGE_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
- /* For most compilers, arange_ptr == arange_ptr_past_end
- at this point. But not if there were padding bytes */
- arange_ptr = arange_ptr_past_end;
-
- } while (arange_ptr <
- dbg->de_debug_aranges + dbg->de_debug_aranges_size);
-
- if (arange_ptr !=
- dbg->de_debug_aranges + dbg->de_debug_aranges_size) {
- _dwarf_error(dbg, error, DW_DLE_ARANGE_DECODE_ERROR);
- return (DW_DLV_ERROR);
+ res = dwarf_get_aranges_list(dbg,&head_chain,&arange_count,error);
+ if(res != DW_DLV_OK) {
+ return res;
}
arange_block = (Dwarf_Arange *)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, arange_count);
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, arange_count);
if (arange_block == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
curr_chain = head_chain;
for (i = 0; i < arange_count; i++) {
- *(arange_block + i) = curr_chain->ch_item;
- prev_chain = curr_chain;
- curr_chain = curr_chain->ch_next;
- dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
+ *(arange_block + i) = curr_chain->ch_item;
+ prev_chain = curr_chain;
+ curr_chain = curr_chain->ch_next;
+ dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
}
*aranges = arange_block;
@@ -268,216 +331,71 @@ dwarf_get_aranges(Dwarf_Debug dbg,
an array is set to the address itself(aranges) and
the section offset (offsets).
Must be identical in most aspects to
- dwarf_get_aranges!
+ dwarf_get_aranges!
*/
int
_dwarf_get_aranges_addr_offsets(Dwarf_Debug dbg,
- Dwarf_Addr ** addrs,
- Dwarf_Off ** offsets,
- Dwarf_Signed * count,
- Dwarf_Error * error)
+ Dwarf_Addr ** addrs,
+ Dwarf_Off ** offsets,
+ Dwarf_Signed * count,
+ Dwarf_Error * error)
{
- /* Sweeps the .debug_aranges section. */
- Dwarf_Small *arange_ptr;
- Dwarf_Small *arange_start_ptr;
-
- /*
- Start of arange header. Used for rounding offset of arange_ptr
- to twice the tuple size. Libdwarf requirement. */
- Dwarf_Small *header_ptr;
-
- /* Length of current set of aranges. */
- Dwarf_Unsigned length;
-
- /* Version of .debug_aranges header. */
- Dwarf_Half version;
-
- /* Offset of current set of aranges into .debug_info. */
- Dwarf_Off info_offset;
-
- /* Size in bytes of addresses in target. */
- Dwarf_Small address_size;
-
- /* Size in bytes of segment offsets in target. */
- Dwarf_Small segment_size;
-
- Dwarf_Small remainder;
-
- /* Count of total number of aranges. */
- Dwarf_Unsigned arange_count = 0;
-
- /* Start address of arange. */
- Dwarf_Addr range_address;
-
- /* Length of arange. */
- Dwarf_Unsigned range_length;
-
- Dwarf_Arange arange;
-
- Dwarf_Unsigned i;
+ Dwarf_Unsigned i = 0;
/* Used to chain Dwarf_Aranges structs. */
- Dwarf_Chain curr_chain, prev_chain, head_chain = NULL;
+ Dwarf_Chain curr_chain = NULL;
+ Dwarf_Chain prev_chain = NULL;
+ Dwarf_Chain head_chain = NULL;
- Dwarf_Addr *arange_addrs;
- Dwarf_Off *arange_offsets;
+ Dwarf_Signed arange_count = 0;
+ Dwarf_Addr *arange_addrs = 0;
+ Dwarf_Off *arange_offsets = 0;
- int res;
+ int res = DW_DLV_ERROR;
/* ***** BEGIN CODE ***** */
if (error != NULL)
- *error = NULL;
+ *error = NULL;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_aranges_index,
- &dbg->de_debug_aranges,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_aranges,error);
if (res != DW_DLV_OK) {
return res;
}
- arange_ptr = dbg->de_debug_aranges;
- do {
- int local_length_size;
- /*REFERENCED*/ /* not used in this instance of the macro */
- int local_extension_size;
-
- header_ptr = arange_ptr;
-
-
- /* READ_AREA_LENGTH updates arange_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- arange_ptr, local_length_size,
- local_extension_size);
-
-
- READ_UNALIGNED(dbg, version, Dwarf_Half,
- arange_ptr, sizeof(Dwarf_Half));
- arange_ptr += sizeof(Dwarf_Half);
- length = length - sizeof(Dwarf_Half);
- if (version != CURRENT_VERSION_STAMP) {
- _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
- return (DW_DLV_ERROR);
- }
-
- READ_UNALIGNED(dbg, info_offset, Dwarf_Off,
- arange_ptr, local_length_size);
- arange_ptr += local_length_size;
- length = length - local_length_size;
- if (info_offset >= dbg->de_debug_info_size) {
- _dwarf_error(dbg, error, DW_DLE_ARANGE_OFFSET_BAD);
- return (DW_DLV_ERROR);
- }
-
- address_size = *(Dwarf_Small *) arange_ptr;
- arange_ptr = arange_ptr + sizeof(Dwarf_Small);
- length = length - sizeof(Dwarf_Small);
-
- segment_size = *(Dwarf_Small *) arange_ptr;
- arange_ptr = arange_ptr + sizeof(Dwarf_Small);
- length = length - sizeof(Dwarf_Small);
- if (segment_size != 0) {
- _dwarf_error(dbg, error, DW_DLE_SEGMENT_SIZE_BAD);
- return (DW_DLV_ERROR);
- }
-
- /* Round arange_ptr offset to next multiple of address_size. */
- remainder = (Dwarf_Unsigned) (arange_ptr - header_ptr) %
- (2 * address_size);
- if (remainder != 0) {
- arange_ptr = arange_ptr + (2 * address_size) - remainder;
- length = length - ((2 * address_size) - remainder);
- }
-
- do {
- arange_start_ptr = arange_ptr;
- READ_UNALIGNED(dbg, range_address, Dwarf_Addr,
- arange_ptr, dbg->de_pointer_size);
- arange_ptr += dbg->de_pointer_size;
- length = length - dbg->de_pointer_size;
-
- READ_UNALIGNED(dbg, range_length, Dwarf_Unsigned,
- arange_ptr, local_length_size);
- arange_ptr += local_length_size;
- length = length - local_length_size;
-
- if (range_address != 0 || range_length != 0) {
-
- arange = (Dwarf_Arange)
- _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
- if (arange == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- arange->ar_address = range_address;
- arange->ar_length = range_length;
- arange->ar_info_offset =
- arange_start_ptr - dbg->de_debug_aranges;
- arange->ar_dbg = dbg;
- arange_count++;
-
- curr_chain = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_chain == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_chain->ch_item = arange;
- if (head_chain == NULL)
- head_chain = prev_chain = curr_chain;
- else {
- prev_chain->ch_next = curr_chain;
- prev_chain = curr_chain;
- }
- }
- } while (range_address != 0 || range_length != 0);
-
- if (length != 0) {
- _dwarf_error(dbg, error, DW_DLE_ARANGE_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
-
- } while (arange_ptr <
- dbg->de_debug_aranges + dbg->de_debug_aranges_size);
-
- if (arange_ptr !=
- dbg->de_debug_aranges + dbg->de_debug_aranges_size) {
- _dwarf_error(dbg, error, DW_DLE_ARANGE_DECODE_ERROR);
- return (DW_DLV_ERROR);
+ res = dwarf_get_aranges_list(dbg,&head_chain,&arange_count,error);
+ if(res != DW_DLV_OK) {
+ return res;
}
arange_addrs = (Dwarf_Addr *)
- _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
+ _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
if (arange_addrs == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
arange_offsets = (Dwarf_Off *)
- _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
+ _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
if (arange_offsets == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
curr_chain = head_chain;
for (i = 0; i < arange_count; i++) {
- Dwarf_Arange ar = curr_chain->ch_item;
-
- arange_addrs[i] = ar->ar_address;
- arange_offsets[i] = ar->ar_info_offset;
- prev_chain = curr_chain;
- curr_chain = curr_chain->ch_next;
- dwarf_dealloc(dbg, ar, DW_DLA_ARANGE);
- dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
+ Dwarf_Arange ar = curr_chain->ch_item;
+
+ arange_addrs[i] = ar->ar_address;
+ arange_offsets[i] = ar->ar_info_offset;
+ prev_chain = curr_chain;
+ curr_chain = curr_chain->ch_next;
+ dwarf_dealloc(dbg, ar, DW_DLA_ARANGE);
+ dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
}
*count = arange_count;
*offsets = arange_offsets;
@@ -497,26 +415,25 @@ _dwarf_get_aranges_addr_offsets(Dwarf_Debug dbg,
*/
int
dwarf_get_arange(Dwarf_Arange * aranges,
- Dwarf_Unsigned arange_count,
- Dwarf_Addr address,
- Dwarf_Arange * returned_arange, Dwarf_Error * error)
+ Dwarf_Unsigned arange_count,
+ Dwarf_Addr address,
+ Dwarf_Arange * returned_arange, Dwarf_Error * error)
{
- Dwarf_Arange curr_arange;
- Dwarf_Unsigned i;
+ Dwarf_Arange curr_arange = 0;
+ Dwarf_Unsigned i = 0;
if (aranges == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ARANGES_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ARANGES_NULL);
+ return (DW_DLV_ERROR);
}
-
for (i = 0; i < arange_count; i++) {
- curr_arange = *(aranges + i);
- if (address >= curr_arange->ar_address &&
- address <
- curr_arange->ar_address + curr_arange->ar_length) {
- *returned_arange = curr_arange;
- return (DW_DLV_OK);
- }
+ curr_arange = *(aranges + i);
+ if (address >= curr_arange->ar_address &&
+ address <
+ curr_arange->ar_address + curr_arange->ar_length) {
+ *returned_arange = curr_arange;
+ return (DW_DLV_OK);
+ }
}
return (DW_DLV_NO_ENTRY);
@@ -532,29 +449,25 @@ dwarf_get_arange(Dwarf_Arange * aranges,
*/
int
dwarf_get_cu_die_offset(Dwarf_Arange arange,
- Dwarf_Off * returned_offset,
- Dwarf_Error * error)
+ Dwarf_Off * returned_offset,
+ Dwarf_Error * error)
{
- Dwarf_Debug dbg;
- Dwarf_Off offset;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Off offset = 0;
if (arange == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ARANGE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ARANGE_NULL);
+ return (DW_DLV_ERROR);
}
-
-
dbg = arange->ar_dbg;
-
-
offset = arange->ar_info_offset;
- if(!dbg->de_debug_info) {
- int res = _dwarf_load_debug_info(dbg,error);
- if(res != DW_DLV_OK) {
- return res;
+ if (!dbg->de_debug_info.dss_data) {
+ int res = _dwarf_load_debug_info(dbg, error);
+
+ if (res != DW_DLV_OK) {
+ return res;
}
}
-
*returned_offset = offset + _dwarf_length_of_cu_header(dbg, offset);
return DW_DLV_OK;
}
@@ -564,24 +477,37 @@ dwarf_get_cu_die_offset(Dwarf_Arange arange,
and returns the offset of the CU header
in the compilation-unit that the
arange belongs to. Returns DW_DLV_ERROR
- on error.
+ on error.
+ Ensures .debug_info loaded so
+ the cu_offset is meaningful.
*/
int
dwarf_get_arange_cu_header_offset(Dwarf_Arange arange,
- Dwarf_Off * cu_header_offset_returned,
- Dwarf_Error * error)
+ Dwarf_Off * cu_header_offset_returned,
+ Dwarf_Error * error)
{
+ Dwarf_Debug dbg = 0;
if (arange == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ARANGE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ARANGE_NULL);
+ return (DW_DLV_ERROR);
+ }
+ dbg = arange->ar_dbg;
+ /* Like dwarf_get_arange_info this ensures debug_info loaded:
+ the cu_header is in debug_info and will be used else
+ we would not call dwarf_get_arange_cu_header_offset. */
+ if (!dbg->de_debug_info.dss_data) {
+ int res = _dwarf_load_debug_info(dbg, error);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
}
-
*cu_header_offset_returned = arange->ar_info_offset;
return DW_DLV_OK;
}
+
/*
This function takes a Dwarf_Arange, and returns
true if it is not NULL. It also stores the start
@@ -589,35 +515,79 @@ dwarf_get_arange_cu_header_offset(Dwarf_Arange arange,
range in *length, and the offset of the first die
in the compilation-unit in *cu_die_offset. It
returns false on error.
+ If cu_die_offset returned ensures .debug_info loaded so
+ the cu_die_offset is meaningful.
*/
int
dwarf_get_arange_info(Dwarf_Arange arange,
- Dwarf_Addr * start,
- Dwarf_Unsigned * length,
- Dwarf_Off * cu_die_offset, Dwarf_Error * error)
+ Dwarf_Addr * start,
+ Dwarf_Unsigned * length,
+ Dwarf_Off * cu_die_offset, Dwarf_Error * error)
{
if (arange == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ARANGE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ARANGE_NULL);
+ return (DW_DLV_ERROR);
}
if (start != NULL)
- *start = arange->ar_address;
+ *start = arange->ar_address;
if (length != NULL)
- *length = arange->ar_length;
+ *length = arange->ar_length;
if (cu_die_offset != NULL) {
- Dwarf_Debug dbg = arange->ar_dbg;
- Dwarf_Off offset = arange->ar_info_offset;
-
- if(!dbg->de_debug_info) {
- int res = _dwarf_load_debug_info(dbg,error);
- if(res != DW_DLV_OK) {
- return res;
- }
+ Dwarf_Debug dbg = arange->ar_dbg;
+ Dwarf_Off offset = arange->ar_info_offset;
+
+ if (!dbg->de_debug_info.dss_data) {
+ int res = _dwarf_load_debug_info(dbg, error);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
}
-
- *cu_die_offset =
- offset + _dwarf_length_of_cu_header(dbg, offset);
+ *cu_die_offset =
+ offset + _dwarf_length_of_cu_header(dbg, offset);
}
return (DW_DLV_OK);
}
+
+
+/* New for DWARF4, entries may have segment information.
+ *segment is only meaningful if *segment_entry_size is non-zero. */
+int
+dwarf_get_arange_info_b(Dwarf_Arange arange,
+ Dwarf_Unsigned* segment,
+ Dwarf_Unsigned* segment_entry_size,
+ Dwarf_Addr * start,
+ Dwarf_Unsigned* length,
+ Dwarf_Off * cu_die_offset,
+ Dwarf_Error * error)
+{
+ if (arange == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ARANGE_NULL);
+ return (DW_DLV_ERROR);
+ }
+
+ if(segment != NULL) {
+ *segment = arange->ar_segment_selector;
+ }
+ if(segment_entry_size != NULL) {
+ *segment_entry_size = arange->ar_segment_selector_size;
+ }
+ if (start != NULL)
+ *start = arange->ar_address;
+ if (length != NULL)
+ *length = arange->ar_length;
+ if (cu_die_offset != NULL) {
+ Dwarf_Debug dbg = arange->ar_dbg;
+ Dwarf_Off offset = arange->ar_info_offset;
+
+ if (!dbg->de_debug_info.dss_data) {
+ int res = _dwarf_load_debug_info(dbg, error);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ *cu_die_offset =
+ offset + _dwarf_length_of_cu_header(dbg, offset);
+ }
+ return (DW_DLV_OK);
+}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_arange.h b/usr/src/tools/ctf/dwarf/common/dwarf_arange.h
index 3ea1fe1416..d6c537c452 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_arange.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_arange.h
@@ -1,6 +1,7 @@
/*
Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -38,12 +39,17 @@
/* This structure is used to read an arange into. */
struct Dwarf_Arange_s {
+ /* The segment selector. Only non-zero if Dwarf4, only
+ meaningful if ar_segment_selector_size non-zero */
+ Dwarf_Unsigned ar_segment_selector;
+
/* Starting address of the arange, ie low-pc. */
Dwarf_Addr ar_address;
/* Length of the arange. */
Dwarf_Unsigned ar_length;
+
/*
Offset into .debug_info of the start of the compilation-unit
containing this set of aranges. */
@@ -51,6 +57,8 @@ struct Dwarf_Arange_s {
/* Corresponding Dwarf_Debug. */
Dwarf_Debug ar_dbg;
+
+ Dwarf_Half ar_segment_selector_size;
};
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_base_types.h b/usr/src/tools/ctf/dwarf/common/dwarf_base_types.h
index a956c3c57b..00e2700a81 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_base_types.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_base_types.h
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2008-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -42,30 +43,44 @@
/* to identify a cie */
#define DW_CIE_ID ~(0x0)
-#define DW_CIE_VERSION 1
-#define ABBREV_HASH_TABLE_SIZE 10
+#define DW_CIE_VERSION 1 /* DWARF2 */
+#define DW_CIE_VERSION3 3 /* DWARF3 */
+#define DW_CIE_VERSION4 4 /* DWARF4 */
+
+#define DW_CU_VERSION2 2
+#define DW_CU_VERSION3 3
+#define DW_CU_VERSION4 4
+
+/* DWARF2,3 and 4 */
+#define DW_ARANGES_VERSION2 2
+
+#define DW_LINE_VERSION2 2
+#define DW_LINE_VERSION3 3
+#define DW_LINE_VERSION4 4
/*
These are allocation type codes for structs that
are internal to the Libdwarf Consumer library.
*/
-#define DW_DLA_ABBREV_LIST DW_DLA_ADDR + 1
-#define DW_DLA_CHAIN DW_DLA_ADDR + 2
-#define DW_DLA_CU_CONTEXT DW_DLA_ADDR + 3
-#define DW_DLA_FRAME DW_DLA_ADDR + 4
-#define DW_DLA_GLOBAL_CONTEXT DW_DLA_ADDR + 5
-#define DW_DLA_FILE_ENTRY DW_DLA_ADDR + 6
-#define DW_DLA_LINE_CONTEXT DW_DLA_ADDR + 7
-#define DW_DLA_LOC_CHAIN DW_DLA_ADDR + 8
-#define DW_DLA_HASH_TABLE DW_DLA_ADDR + 9
-#define DW_DLA_FUNC_CONTEXT DW_DLA_ADDR + 10
-#define DW_DLA_TYPENAME_CONTEXT DW_DLA_ADDR + 11
-#define DW_DLA_VAR_CONTEXT DW_DLA_ADDR + 12
-#define DW_DLA_WEAK_CONTEXT DW_DLA_ADDR + 13
+#define DW_DLA_ABBREV_LIST DW_DLA_RANGES + 1
+#define DW_DLA_CHAIN DW_DLA_RANGES + 2
+#define DW_DLA_CU_CONTEXT DW_DLA_RANGES + 3
+#define DW_DLA_FRAME DW_DLA_RANGES + 4
+#define DW_DLA_GLOBAL_CONTEXT DW_DLA_RANGES + 5
+#define DW_DLA_FILE_ENTRY DW_DLA_RANGES + 6
+#define DW_DLA_LINE_CONTEXT DW_DLA_RANGES + 7
+#define DW_DLA_LOC_CHAIN DW_DLA_RANGES + 8
+#define DW_DLA_HASH_TABLE DW_DLA_RANGES + 9
+#define DW_DLA_FUNC_CONTEXT DW_DLA_RANGES + 10
+#define DW_DLA_TYPENAME_CONTEXT DW_DLA_RANGES + 11
+#define DW_DLA_VAR_CONTEXT DW_DLA_RANGES + 12
+#define DW_DLA_WEAK_CONTEXT DW_DLA_RANGES + 13
+#define DW_DLA_PUBTYPES_CONTEXT DW_DLA_RANGES + 14 /* DWARF3 */
+#define DW_DLA_HASH_TABLE_ENTRY DW_DLA_RANGES + 15
/* Maximum number of allocation types for allocation routines. */
-#define MAX_DW_DLA DW_DLA_WEAK_CONTEXT
+#define MAX_DW_DLA DW_DLA_HASH_TABLE_ENTRY
/*Dwarf_Word is unsigned word usable for index, count in memory */
/*Dwarf_Sword is signed word usable for index, count in memory */
@@ -94,14 +109,15 @@ typedef __int32_t Dwarf_sfixed;
This is not a very portable assumption.
The following should be used instead for 64 bit integers.
*/
-typedef __uint32_t Dwarf_ufixed64;
-typedef __int32_t Dwarf_sfixed64;
+typedef __uint64_t Dwarf_ufixed64;
+typedef __int64_t Dwarf_sfixed64;
typedef struct Dwarf_Abbrev_List_s *Dwarf_Abbrev_List;
typedef struct Dwarf_File_Entry_s *Dwarf_File_Entry;
typedef struct Dwarf_CU_Context_s *Dwarf_CU_Context;
typedef struct Dwarf_Hash_Table_s *Dwarf_Hash_Table;
+typedef struct Dwarf_Hash_Table_Entry_s *Dwarf_Hash_Table_Entry;
typedef struct Dwarf_Alloc_Hdr_s *Dwarf_Alloc_Hdr;
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.c b/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.c
index e87a3640a2..4ba9f2aded 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000,2001,2002,2003 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,12 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
@@ -61,44 +68,44 @@
static Dwarf_CU_Context
_dwarf_find_CU_Context(Dwarf_Debug dbg, Dwarf_Off offset)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
if (offset >= dbg->de_info_last_offset)
- return (NULL);
+ return (NULL);
if (dbg->de_cu_context != NULL &&
- dbg->de_cu_context->cc_next != NULL &&
- dbg->de_cu_context->cc_next->cc_debug_info_offset == offset) {
+ dbg->de_cu_context->cc_next != NULL &&
+ dbg->de_cu_context->cc_next->cc_debug_info_offset == offset) {
- return (dbg->de_cu_context->cc_next);
+ return (dbg->de_cu_context->cc_next);
}
if (dbg->de_cu_context != NULL &&
- dbg->de_cu_context->cc_debug_info_offset <= offset) {
+ dbg->de_cu_context->cc_debug_info_offset <= offset) {
- for (cu_context = dbg->de_cu_context;
- cu_context != NULL; cu_context = cu_context->cc_next) {
+ for (cu_context = dbg->de_cu_context;
+ cu_context != NULL; cu_context = cu_context->cc_next) {
- if (offset >= cu_context->cc_debug_info_offset &&
- offset < cu_context->cc_debug_info_offset +
- cu_context->cc_length + cu_context->cc_length_size
- + cu_context->cc_extension_size) {
+ if (offset >= cu_context->cc_debug_info_offset &&
+ offset < cu_context->cc_debug_info_offset +
+ cu_context->cc_length + cu_context->cc_length_size
+ + cu_context->cc_extension_size) {
- return (cu_context);
- }
- }
+ return (cu_context);
+ }
+ }
}
for (cu_context = dbg->de_cu_context_list;
- cu_context != NULL; cu_context = cu_context->cc_next) {
+ cu_context != NULL; cu_context = cu_context->cc_next) {
- if (offset >= cu_context->cc_debug_info_offset &&
- offset < cu_context->cc_debug_info_offset +
- cu_context->cc_length + cu_context->cc_length_size
- + cu_context->cc_extension_size) {
+ if (offset >= cu_context->cc_debug_info_offset &&
+ offset < cu_context->cc_debug_info_offset +
+ cu_context->cc_length + cu_context->cc_length_size
+ + cu_context->cc_extension_size) {
- return (cu_context);
- }
+ return (cu_context);
+ }
}
return (NULL);
@@ -112,17 +119,17 @@ _dwarf_find_CU_Context(Dwarf_Debug dbg, Dwarf_Off offset)
static Dwarf_CU_Context
_dwarf_find_offdie_CU_Context(Dwarf_Debug dbg, Dwarf_Off offset)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
for (cu_context = dbg->de_offdie_cu_context;
- cu_context != NULL; cu_context = cu_context->cc_next)
+ cu_context != NULL; cu_context = cu_context->cc_next)
- if (offset >= cu_context->cc_debug_info_offset &&
- offset < cu_context->cc_debug_info_offset +
- cu_context->cc_length + cu_context->cc_length_size
- + cu_context->cc_extension_size)
+ if (offset >= cu_context->cc_debug_info_offset &&
+ offset < cu_context->cc_debug_info_offset +
+ cu_context->cc_length + cu_context->cc_length_size
+ + cu_context->cc_extension_size)
- return (cu_context);
+ return (cu_context);
return (NULL);
}
@@ -144,28 +151,28 @@ _dwarf_find_offdie_CU_Context(Dwarf_Debug dbg, Dwarf_Off offset)
*/
static Dwarf_CU_Context
_dwarf_make_CU_Context(Dwarf_Debug dbg,
- Dwarf_Off offset, Dwarf_Error * error)
+ Dwarf_Off offset, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
- Dwarf_Unsigned length;
- Dwarf_Signed abbrev_offset;
- Dwarf_Byte_Ptr cu_ptr;
+ Dwarf_CU_Context cu_context = 0;
+ Dwarf_Unsigned length = 0;
+ Dwarf_Signed abbrev_offset = 0;
+ Dwarf_Byte_Ptr cu_ptr = 0;
int local_extension_size = 0;
- int local_length_size;
+ int local_length_size = 0;
cu_context =
- (Dwarf_CU_Context) _dwarf_get_alloc(dbg, DW_DLA_CU_CONTEXT, 1);
+ (Dwarf_CU_Context) _dwarf_get_alloc(dbg, DW_DLA_CU_CONTEXT, 1);
if (cu_context == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (NULL);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (NULL);
}
cu_context->cc_dbg = dbg;
- cu_ptr = (Dwarf_Byte_Ptr) (dbg->de_debug_info + offset);
+ cu_ptr = (Dwarf_Byte_Ptr) (dbg->de_debug_info.dss_data + offset);
/* READ_AREA_LENGTH updates cu_ptr for consumed bytes */
READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- cu_ptr, local_length_size, local_extension_size);
+ cu_ptr, local_length_size, local_extension_size);
cu_context->cc_length_size = local_length_size;
cu_context->cc_extension_size = local_extension_size;
@@ -173,58 +180,58 @@ _dwarf_make_CU_Context(Dwarf_Debug dbg,
cu_context->cc_length = (Dwarf_Word) length;
READ_UNALIGNED(dbg, cu_context->cc_version_stamp, Dwarf_Half,
- cu_ptr, sizeof(Dwarf_Half));
+ cu_ptr, sizeof(Dwarf_Half));
cu_ptr += sizeof(Dwarf_Half);
READ_UNALIGNED(dbg, abbrev_offset, Dwarf_Signed,
- cu_ptr, local_length_size);
+ cu_ptr, local_length_size);
cu_ptr += local_length_size;
cu_context->cc_abbrev_offset = (Dwarf_Sword) abbrev_offset;
cu_context->cc_address_size = *(Dwarf_Small *) cu_ptr;
if ((length < CU_VERSION_STAMP_SIZE + local_length_size +
- CU_ADDRESS_SIZE_SIZE) ||
- (offset + length + local_length_size +
- local_extension_size > dbg->de_debug_info_size)) {
+ CU_ADDRESS_SIZE_SIZE) ||
+ (offset + length + local_length_size +
+ local_extension_size > dbg->de_debug_info.dss_size)) {
- _dwarf_error(dbg, error, DW_DLE_CU_LENGTH_ERROR);
- return (NULL);
+ dwarf_dealloc(dbg, cu_context, DW_DLA_CU_CONTEXT);
+ _dwarf_error(dbg, error, DW_DLE_CU_LENGTH_ERROR);
+ return (NULL);
}
- if (cu_context->cc_address_size != dbg->de_pointer_size) {
- _dwarf_error(dbg, error, DW_DLE_CU_ADDRESS_SIZE_BAD);
- return (NULL);
+ if (cu_context->cc_version_stamp != CURRENT_VERSION_STAMP
+ && cu_context->cc_version_stamp != CURRENT_VERSION_STAMP3
+ && cu_context->cc_version_stamp != CURRENT_VERSION_STAMP4) {
+ dwarf_dealloc(dbg, cu_context, DW_DLA_CU_CONTEXT);
+ _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
+ return (NULL);
}
- if (cu_context->cc_version_stamp != CURRENT_VERSION_STAMP) {
- _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
- return (NULL);
- }
-
- if (abbrev_offset >= dbg->de_debug_abbrev_size) {
- _dwarf_error(dbg, error, DW_DLE_ABBREV_OFFSET_ERROR);
- return (NULL);
+ if (abbrev_offset >= dbg->de_debug_abbrev.dss_size) {
+ dwarf_dealloc(dbg, cu_context, DW_DLA_CU_CONTEXT);
+ _dwarf_error(dbg, error, DW_DLE_ABBREV_OFFSET_ERROR);
+ return (NULL);
}
cu_context->cc_abbrev_hash_table =
- (Dwarf_Hash_Table) _dwarf_get_alloc(dbg, DW_DLA_HASH_TABLE, 1);
+ (Dwarf_Hash_Table) _dwarf_get_alloc(dbg, DW_DLA_HASH_TABLE, 1);
if (cu_context->cc_abbrev_hash_table == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (NULL);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (NULL);
}
cu_context->cc_debug_info_offset = (Dwarf_Word) offset;
dbg->de_info_last_offset =
- (Dwarf_Word) (offset + length +
- local_extension_size + local_length_size);
+ (Dwarf_Word) (offset + length +
+ local_extension_size + local_length_size);
if (dbg->de_cu_context_list == NULL) {
- dbg->de_cu_context_list = cu_context;
- dbg->de_cu_context_list_end = cu_context;
+ dbg->de_cu_context_list = cu_context;
+ dbg->de_cu_context_list_end = cu_context;
} else {
- dbg->de_cu_context_list_end->cc_next = cu_context;
- dbg->de_cu_context_list_end = cu_context;
+ dbg->de_cu_context_list_end->cc_next = cu_context;
+ dbg->de_cu_context_list_end = cu_context;
}
return (cu_context);
@@ -233,50 +240,72 @@ _dwarf_make_CU_Context(Dwarf_Debug dbg,
/*
Returns offset of next compilation-unit thru next_cu_offset
- pointer.
+ pointer.
It basically sequentially moves from one
cu to the next. The current cu is recorded
internally by libdwarf.
+
+ The _b form is new for DWARF4 adding new returned fields.
*/
int
dwarf_next_cu_header(Dwarf_Debug dbg,
- Dwarf_Unsigned * cu_header_length,
- Dwarf_Half * version_stamp,
- Dwarf_Unsigned * abbrev_offset,
- Dwarf_Half * address_size,
- Dwarf_Unsigned * next_cu_offset,
- Dwarf_Error * error)
+ Dwarf_Unsigned * cu_header_length,
+ Dwarf_Half * version_stamp,
+ Dwarf_Unsigned * abbrev_offset,
+ Dwarf_Half * address_size,
+ Dwarf_Unsigned * next_cu_offset,
+ Dwarf_Error * error)
+{
+ return dwarf_next_cu_header_b(dbg,
+ cu_header_length,
+ version_stamp,
+ abbrev_offset,
+ address_size,
+ 0,0,
+ next_cu_offset,
+ error);
+}
+int
+dwarf_next_cu_header_b(Dwarf_Debug dbg,
+ Dwarf_Unsigned * cu_header_length,
+ Dwarf_Half * version_stamp,
+ Dwarf_Unsigned * abbrev_offset,
+ Dwarf_Half * address_size,
+ Dwarf_Half * offset_size,
+ Dwarf_Half * extension_size,
+ Dwarf_Unsigned * next_cu_offset,
+ Dwarf_Error * error)
{
/* Offset for current and new CU. */
- Dwarf_Unsigned new_offset;
+ Dwarf_Unsigned new_offset = 0;
/* CU Context for current CU. */
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
/* ***** BEGIN CODE ***** */
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
/*
Get offset into .debug_info of next CU. If dbg has no context,
this has to be the first one. */
if (dbg->de_cu_context == NULL) {
- new_offset = 0;
- if (!dbg->de_debug_info) {
- int res = _dwarf_load_debug_info(dbg, error);
+ new_offset = 0;
+ if (!dbg->de_debug_info.dss_data) {
+ int res = _dwarf_load_debug_info(dbg, error);
- if (res != DW_DLV_OK) {
- return res;
- }
- }
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ }
} else {
- new_offset = dbg->de_cu_context->cc_debug_info_offset +
- dbg->de_cu_context->cc_length +
- dbg->de_cu_context->cc_length_size +
- dbg->de_cu_context->cc_extension_size;
+ new_offset = dbg->de_cu_context->cc_debug_info_offset +
+ dbg->de_cu_context->cc_length +
+ dbg->de_cu_context->cc_length_size +
+ dbg->de_cu_context->cc_extension_size;
}
/*
@@ -285,9 +314,9 @@ dwarf_next_cu_header(Dwarf_Debug dbg,
of debug_info section, and reset de_cu_debug_info_offset to
enable looping back through the cu's. */
if ((new_offset + _dwarf_length_of_cu_header_simple(dbg)) >=
- dbg->de_debug_info_size) {
- dbg->de_cu_context = NULL;
- return (DW_DLV_NO_ENTRY);
+ dbg->de_debug_info.dss_size) {
+ dbg->de_cu_context = NULL;
+ return (DW_DLV_NO_ENTRY);
}
/* Check if this CU has been read before. */
@@ -295,32 +324,36 @@ dwarf_next_cu_header(Dwarf_Debug dbg,
/* If not, make CU Context for it. */
if (cu_context == NULL) {
- cu_context = _dwarf_make_CU_Context(dbg, new_offset, error);
- if (cu_context == NULL) {
- /* Error if CU Context could not be made. Since
- _dwarf_make_CU_Context has already registered an error
- we do not do that here: we let the lower error pass
- thru. */
- return (DW_DLV_ERROR);
- }
+ cu_context = _dwarf_make_CU_Context(dbg, new_offset, error);
+ if (cu_context == NULL) {
+ /* Error if CU Context could not be made. Since
+ _dwarf_make_CU_Context has already registered an error
+ we do not do that here: we let the lower error pass
+ thru. */
+ return (DW_DLV_ERROR);
+ }
}
dbg->de_cu_context = cu_context;
if (cu_header_length != NULL)
- *cu_header_length = cu_context->cc_length;
+ *cu_header_length = cu_context->cc_length;
if (version_stamp != NULL)
- *version_stamp = cu_context->cc_version_stamp;
+ *version_stamp = cu_context->cc_version_stamp;
if (abbrev_offset != NULL)
- *abbrev_offset = cu_context->cc_abbrev_offset;
+ *abbrev_offset = cu_context->cc_abbrev_offset;
if (address_size != NULL)
- *address_size = cu_context->cc_address_size;
+ *address_size = cu_context->cc_address_size;
+ if (offset_size != NULL)
+ *offset_size = cu_context->cc_length_size;
+ if (extension_size != NULL)
+ *extension_size = cu_context->cc_extension_size;
new_offset = new_offset + cu_context->cc_length +
- cu_context->cc_length_size + cu_context->cc_extension_size;
+ cu_context->cc_length_size + cu_context->cc_extension_size;
*next_cu_offset = new_offset;
return (DW_DLV_OK);
}
@@ -351,36 +384,40 @@ dwarf_next_cu_header(Dwarf_Debug dbg,
However, in case want_AT_child is true and the die
has a DW_AT_sibling attribute *has_die_child is set
false to indicate that the children are being skipped.
+
+ die_info_end points to the last byte+1 of the cu.
+
*/
static Dwarf_Byte_Ptr
_dwarf_next_die_info_ptr(Dwarf_Byte_Ptr die_info_ptr,
- Dwarf_CU_Context cu_context,
- Dwarf_Byte_Ptr die_info_end,
- Dwarf_Byte_Ptr cu_info_start,
- Dwarf_Bool want_AT_sibling,
- Dwarf_Bool * has_die_child)
+ Dwarf_CU_Context cu_context,
+ Dwarf_Byte_Ptr die_info_end,
+ Dwarf_Byte_Ptr cu_info_start,
+ Dwarf_Bool want_AT_sibling,
+ Dwarf_Bool * has_die_child)
{
- Dwarf_Byte_Ptr info_ptr;
- Dwarf_Byte_Ptr abbrev_ptr;
- Dwarf_Word abbrev_code;
+ Dwarf_Byte_Ptr info_ptr = 0;
+ Dwarf_Byte_Ptr abbrev_ptr = 0;
+ Dwarf_Word abbrev_code = 0;
Dwarf_Abbrev_List abbrev_list;
- Dwarf_Half attr;
- Dwarf_Half attr_form;
- Dwarf_Unsigned offset;
- Dwarf_Word leb128_length;
- Dwarf_Unsigned utmp;
- Dwarf_Debug dbg;
+ Dwarf_Half attr = 0;
+ Dwarf_Half attr_form = 0;
+ Dwarf_Unsigned offset = 0;
+ Dwarf_Word leb128_length = 0;
+ Dwarf_Unsigned utmp = 0;
+ Dwarf_Debug dbg = 0;
info_ptr = die_info_ptr;
- DECODE_LEB128_UWORD(info_ptr, utmp)
- abbrev_code = (Dwarf_Word) utmp;
+ DECODE_LEB128_UWORD(info_ptr, utmp);
+ abbrev_code = (Dwarf_Word) utmp;
if (abbrev_code == 0) {
- return NULL;
+ return NULL;
}
+
abbrev_list = _dwarf_get_abbrev_for_code(cu_context, abbrev_code);
if (abbrev_list == NULL) {
- return (NULL);
+ return (NULL);
}
dbg = cu_context->cc_dbg;
@@ -388,65 +425,90 @@ _dwarf_next_die_info_ptr(Dwarf_Byte_Ptr die_info_ptr,
abbrev_ptr = abbrev_list->ab_abbrev_ptr;
do {
- Dwarf_Unsigned utmp2;
-
- DECODE_LEB128_UWORD(abbrev_ptr, utmp2)
- attr = (Dwarf_Half) utmp2;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp2)
- attr_form = (Dwarf_Half) utmp2;
- if (attr_form == DW_FORM_indirect) {
- Dwarf_Unsigned utmp6;
-
- /* READ_UNALIGNED does update info_ptr */
- DECODE_LEB128_UWORD(info_ptr, utmp6)
- attr_form = (Dwarf_Half) utmp6;
-
- }
-
- if (want_AT_sibling && attr == DW_AT_sibling) {
- switch (attr_form) {
- case DW_FORM_ref1:
- offset = *(Dwarf_Small *) info_ptr;
- break;
- case DW_FORM_ref2:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- info_ptr, sizeof(Dwarf_Half));
- break;
- case DW_FORM_ref4:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- info_ptr, sizeof(Dwarf_ufixed));
- break;
- case DW_FORM_ref8:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- info_ptr, sizeof(Dwarf_Unsigned));
- break;
- case DW_FORM_ref_udata:
- offset =
- _dwarf_decode_u_leb128(info_ptr, &leb128_length);
- break;
- default:
- return (NULL);
- }
-
- /* Reset *has_die_child to indicate children skipped. */
- *has_die_child = false;
-
- if (cu_info_start + offset > die_info_end) {
- return (NULL);
- } else {
- return (cu_info_start + offset);
- }
- }
-
- if (attr_form != 0) {
- info_ptr += _dwarf_get_size_of_val(cu_context->cc_dbg,
- attr_form, info_ptr,
- cu_context->
- cc_length_size);
- if (info_ptr > die_info_end) {
- return (NULL);
- }
- }
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp2);
+ attr = (Dwarf_Half) utmp2;
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp2);
+ attr_form = (Dwarf_Half) utmp2;
+ if (attr_form == DW_FORM_indirect) {
+ Dwarf_Unsigned utmp6;
+
+ /* DECODE_LEB128_UWORD updates info_ptr */
+ DECODE_LEB128_UWORD(info_ptr, utmp6);
+ attr_form = (Dwarf_Half) utmp6;
+
+ }
+
+ if (want_AT_sibling && attr == DW_AT_sibling) {
+ switch (attr_form) {
+ case DW_FORM_ref1:
+ offset = *(Dwarf_Small *) info_ptr;
+ break;
+ case DW_FORM_ref2:
+ /* READ_UNALIGNED does not update info_ptr */
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ info_ptr, sizeof(Dwarf_Half));
+ break;
+ case DW_FORM_ref4:
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ info_ptr, sizeof(Dwarf_ufixed));
+ break;
+ case DW_FORM_ref8:
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ info_ptr, sizeof(Dwarf_Unsigned));
+ break;
+ case DW_FORM_ref_udata:
+ offset =
+ _dwarf_decode_u_leb128(info_ptr, &leb128_length);
+ break;
+ case DW_FORM_ref_addr:
+ /* Very unusual. The FORM is intended to refer to
+ a different CU, but a different CU cannot
+ be a sibling, can it?
+ We could ignore this and treat as if no DW_AT_sibling
+ present. Or derive the offset from it and if
+ it is in the same CU use it directly.
+ The offset here is *supposed* to be a global offset,
+ so adding cu_info_start is wrong to any offset
+ we find here unless cu_info_start
+ is zero! Lets pretend there is no DW_AT_sibling
+ attribute. */
+ goto no_sibling_attr;
+ default:
+ return (NULL);
+ }
+
+ /* Reset *has_die_child to indicate children skipped. */
+ *has_die_child = false;
+
+ /* A value beyond die_info_end indicates an error. Exactly
+ at die_info_end means 1-past-cu-end and simply means we
+ are at the end, do not return NULL. Higher level code
+ will detect that we are at the end. */
+ if (cu_info_start + offset > die_info_end) {
+ /* Error case, bad DWARF. */
+ return (NULL);
+ }
+ /* At or before end-of-cu */
+ return (cu_info_start + offset);
+ }
+
+ no_sibling_attr:
+ if (attr_form != 0) {
+ info_ptr += _dwarf_get_size_of_val(cu_context->cc_dbg,
+ attr_form,
+ cu_context->cc_address_size,
+ info_ptr,
+ cu_context->cc_length_size);
+ /* It is ok for info_ptr == die_info_end, as we will test
+ later before using a too-large info_ptr */
+ if (info_ptr > die_info_end) {
+ /* More than one-past-end indicates a bug somewhere,
+ likely bad dwarf generation. */
+ return (NULL);
+ }
+ }
} while (attr != 0 || attr_form != 0);
return (info_ptr);
@@ -477,119 +539,136 @@ _dwarf_next_die_info_ptr(Dwarf_Byte_Ptr die_info_ptr,
*/
int
dwarf_siblingof(Dwarf_Debug dbg,
- Dwarf_Die die,
- Dwarf_Die * caller_ret_die, Dwarf_Error * error)
+ Dwarf_Die die,
+ Dwarf_Die * caller_ret_die, Dwarf_Error * error)
{
- Dwarf_Die ret_die;
- Dwarf_Byte_Ptr die_info_ptr;
+ Dwarf_Die ret_die = 0;
+ Dwarf_Byte_Ptr die_info_ptr = 0;
Dwarf_Byte_Ptr cu_info_start = 0;
+
+ /* die_info_end points 1-past end of die (once set) */
Dwarf_Byte_Ptr die_info_end = 0;
- Dwarf_Half abbrev_code;
- Dwarf_Unsigned utmp;
+ Dwarf_Word abbrev_code = 0;
+ Dwarf_Unsigned utmp = 0;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
if (die == NULL) {
- /* Find root die of cu */
- /* die_info_end is untouched here, need not be set in this
- branch. */
- Dwarf_Off off2;
-
- /* If we've not loaded debug_info, de_cu_context will be NULL,
- so no need to laod */
-
- if (dbg->de_cu_context == NULL) {
- _dwarf_error(dbg, error, DW_DLE_DBG_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
- }
-
- off2 = dbg->de_cu_context->cc_debug_info_offset;
- die_info_ptr = dbg->de_debug_info +
- off2 + _dwarf_length_of_cu_header(dbg, off2);
+ /* Find root die of cu */
+ /* die_info_end is untouched here, need not be set in this
+ branch. */
+ Dwarf_Off off2;
+
+ /* If we've not loaded debug_info, de_cu_context will be NULL,
+ so no need to laod */
+
+ if (dbg->de_cu_context == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_DBG_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
+ }
+
+ off2 = dbg->de_cu_context->cc_debug_info_offset;
+ die_info_ptr = dbg->de_debug_info.dss_data +
+ off2 + _dwarf_length_of_cu_header(dbg, off2);
} else {
- /* Find sibling die. */
- Dwarf_Bool has_child;
- Dwarf_Sword child_depth;
-
- /* We cannot have a legal die unless debug_info was loaded, so
- no need to load debug_info here. */
- CHECK_DIE(die, DW_DLV_ERROR)
-
- die_info_ptr = die->di_debug_info_ptr;
- if (*die_info_ptr == 0) {
- return (DW_DLV_NO_ENTRY);
- }
- cu_info_start = dbg->de_debug_info +
- die->di_cu_context->cc_debug_info_offset;
- die_info_end = cu_info_start + die->di_cu_context->cc_length +
- die->di_cu_context->cc_length_size +
- die->di_cu_context->cc_extension_size;
-
- if ((*die_info_ptr) == 0) {
- return (DW_DLV_NO_ENTRY);
- }
- child_depth = 0;
- do {
- die_info_ptr = _dwarf_next_die_info_ptr(die_info_ptr,
- die->di_cu_context,
- die_info_end,
- cu_info_start, true,
- &has_child);
- if (die_info_ptr == NULL) {
- _dwarf_error(dbg, error, DW_DLE_NEXT_DIE_PTR_NULL);
- return (DW_DLV_ERROR);
- }
-
- if ((*die_info_ptr) == 0 && has_child) {
- die_info_ptr++;
- has_child = false;
- }
-
- if ((*die_info_ptr) == 0)
- for (; child_depth > 0 && *die_info_ptr == 0;
- child_depth--, die_info_ptr++);
- else
- child_depth = has_child ? child_depth + 1 : child_depth;
-
- } while (child_depth != 0);
- }
-
+ /* Find sibling die. */
+ Dwarf_Bool has_child = false;
+ Dwarf_Sword child_depth = 0;
+
+ /* We cannot have a legal die unless debug_info was loaded, so
+ no need to load debug_info here. */
+ CHECK_DIE(die, DW_DLV_ERROR);
+
+ die_info_ptr = die->di_debug_info_ptr;
+ if (*die_info_ptr == 0) {
+ return (DW_DLV_NO_ENTRY);
+ }
+ cu_info_start = dbg->de_debug_info.dss_data +
+ die->di_cu_context->cc_debug_info_offset;
+ die_info_end = cu_info_start + die->di_cu_context->cc_length +
+ die->di_cu_context->cc_length_size +
+ die->di_cu_context->cc_extension_size;
+
+ if ((*die_info_ptr) == 0) {
+ return (DW_DLV_NO_ENTRY);
+ }
+ child_depth = 0;
+ do {
+ die_info_ptr = _dwarf_next_die_info_ptr(die_info_ptr,
+ die->di_cu_context,
+ die_info_end,
+ cu_info_start, true,
+ &has_child);
+ if (die_info_ptr == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_NEXT_DIE_PTR_NULL);
+ return (DW_DLV_ERROR);
+ }
+
+ /* die_info_end is one past end. Do not read it!
+ A test for ``!= die_info_end'' would work as well,
+ but perhaps < reads more like the meaning. */
+ if(die_info_ptr < die_info_end) {
+ if ((*die_info_ptr) == 0 && has_child) {
+ die_info_ptr++;
+ has_child = false;
+ }
+ }
+
+ /* die_info_ptr can be one-past-end. */
+ if ((die_info_ptr == die_info_end) ||
+ ((*die_info_ptr) == 0)) {
+ for (; child_depth > 0 && *die_info_ptr == 0;
+ child_depth--, die_info_ptr++);
+ } else {
+ child_depth = has_child ? child_depth + 1 : child_depth;
+ }
+
+ } while (child_depth != 0);
+ }
+
+ /* die_info_ptr > die_info_end is really a bug (possibly in dwarf
+ generation)(but we are past end, no more DIEs here), whereas
+ die_info_ptr == die_info_end means 'one past end, no more DIEs
+ here'. */
if (die != NULL && die_info_ptr >= die_info_end) {
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
}
if ((*die_info_ptr) == 0) {
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
}
ret_die = (Dwarf_Die) _dwarf_get_alloc(dbg, DW_DLA_DIE, 1);
if (ret_die == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
ret_die->di_debug_info_ptr = die_info_ptr;
ret_die->di_cu_context =
- die == NULL ? dbg->de_cu_context : die->di_cu_context;
+ die == NULL ? dbg->de_cu_context : die->di_cu_context;
- DECODE_LEB128_UWORD(die_info_ptr, utmp)
- abbrev_code = (Dwarf_Half) utmp;
+ DECODE_LEB128_UWORD(die_info_ptr, utmp);
+ abbrev_code = (Dwarf_Word) utmp;
if (abbrev_code == 0) {
- /* Zero means a null DIE */
- return (DW_DLV_NO_ENTRY);
+ /* Zero means a null DIE */
+ dwarf_dealloc(dbg, ret_die, DW_DLA_DIE);
+ return (DW_DLV_NO_ENTRY);
}
+ ret_die->di_abbrev_code = abbrev_code;
ret_die->di_abbrev_list =
- _dwarf_get_abbrev_for_code(ret_die->di_cu_context, abbrev_code);
+ _dwarf_get_abbrev_for_code(ret_die->di_cu_context, abbrev_code);
if (ret_die->di_abbrev_list == NULL || (die == NULL &&
- ret_die->di_abbrev_list->
- ab_tag !=
- DW_TAG_compile_unit)) {
- _dwarf_error(dbg, error, DW_DLE_FIRST_DIE_NOT_CU);
- return (DW_DLV_ERROR);
+ ret_die->di_abbrev_list->
+ ab_tag !=
+ DW_TAG_compile_unit)) {
+ dwarf_dealloc(dbg, ret_die, DW_DLA_DIE);
+ _dwarf_error(dbg, error, DW_DLE_FIRST_DIE_NOT_CU);
+ return (DW_DLV_ERROR);
}
*caller_ret_die = ret_die;
@@ -599,64 +678,69 @@ dwarf_siblingof(Dwarf_Debug dbg,
int
dwarf_child(Dwarf_Die die,
- Dwarf_Die * caller_ret_die, Dwarf_Error * error)
+ Dwarf_Die * caller_ret_die, Dwarf_Error * error)
{
- Dwarf_Byte_Ptr die_info_ptr;
- Dwarf_Byte_Ptr die_info_end;
- Dwarf_Die ret_die;
- Dwarf_Bool has_die_child;
+ Dwarf_Byte_Ptr die_info_ptr = 0;
+
+ /* die_info_end points one-past-end of die area. */
+ Dwarf_Byte_Ptr die_info_end = 0;
+ Dwarf_Die ret_die = 0;
+ Dwarf_Bool has_die_child = 0;
Dwarf_Debug dbg;
- Dwarf_Half abbrev_code;
- Dwarf_Unsigned utmp;
+ Dwarf_Word abbrev_code = 0;
+ Dwarf_Unsigned utmp = 0;
- CHECK_DIE(die, DW_DLV_ERROR)
- dbg = die->di_cu_context->cc_dbg;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ dbg = die->di_cu_context->cc_dbg;
die_info_ptr = die->di_debug_info_ptr;
/* NULL die has no child. */
if ((*die_info_ptr) == 0)
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
- die_info_end = dbg->de_debug_info +
- die->di_cu_context->cc_debug_info_offset +
- die->di_cu_context->cc_length +
- die->di_cu_context->cc_length_size +
- die->di_cu_context->cc_extension_size;
+ die_info_end = dbg->de_debug_info.dss_data +
+ die->di_cu_context->cc_debug_info_offset +
+ die->di_cu_context->cc_length +
+ die->di_cu_context->cc_length_size +
+ die->di_cu_context->cc_extension_size;
die_info_ptr =
- _dwarf_next_die_info_ptr(die_info_ptr, die->di_cu_context,
- die_info_end, NULL, false,
- &has_die_child);
+ _dwarf_next_die_info_ptr(die_info_ptr, die->di_cu_context,
+ die_info_end, NULL, false,
+ &has_die_child);
if (die_info_ptr == NULL) {
- _dwarf_error(dbg, error, DW_DLE_NEXT_DIE_PTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_NEXT_DIE_PTR_NULL);
+ return (DW_DLV_ERROR);
}
if (!has_die_child)
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
ret_die = (Dwarf_Die) _dwarf_get_alloc(dbg, DW_DLA_DIE, 1);
if (ret_die == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
ret_die->di_debug_info_ptr = die_info_ptr;
ret_die->di_cu_context = die->di_cu_context;
- DECODE_LEB128_UWORD(die_info_ptr, utmp)
- abbrev_code = (Dwarf_Half) utmp;
+ DECODE_LEB128_UWORD(die_info_ptr, utmp);
+ abbrev_code = (Dwarf_Word) utmp;
if (abbrev_code == 0) {
- /* We have arrived at a null DIE, at the end of a CU or the end
- of a list of siblings. */
- *caller_ret_die = 0;
- return DW_DLV_NO_ENTRY;
+ /* We have arrived at a null DIE, at the end of a CU or the end
+ of a list of siblings. */
+ *caller_ret_die = 0;
+ dwarf_dealloc(dbg, ret_die, DW_DLA_DIE);
+ return DW_DLV_NO_ENTRY;
}
+ ret_die->di_abbrev_code = abbrev_code;
ret_die->di_abbrev_list =
- _dwarf_get_abbrev_for_code(die->di_cu_context, abbrev_code);
+ _dwarf_get_abbrev_for_code(die->di_cu_context, abbrev_code);
if (ret_die->di_abbrev_list == NULL) {
- _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
+ dwarf_dealloc(dbg, ret_die, DW_DLA_DIE);
+ _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
}
*caller_ret_die = ret_die;
@@ -664,100 +748,106 @@ dwarf_child(Dwarf_Die die,
}
/*
- Given a die offset, this returns
- a pointer to a DIE thru *new_die.
- It is up to the caller to do a
- dwarf_dealloc(dbg,*new_die,DW_DLE_DIE);
+ Given a (global, not cu_relative) die offset, this returns
+ a pointer to a DIE thru *new_die.
+ It is up to the caller to do a
+ dwarf_dealloc(dbg,*new_die,DW_DLE_DIE);
*/
int
dwarf_offdie(Dwarf_Debug dbg,
- Dwarf_Off offset, Dwarf_Die * new_die, Dwarf_Error * error)
+ Dwarf_Off offset, Dwarf_Die * new_die, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
Dwarf_Off new_cu_offset = 0;
- Dwarf_Die die;
- Dwarf_Byte_Ptr info_ptr;
- Dwarf_Half abbrev_code;
- Dwarf_Unsigned utmp;
+ Dwarf_Die die = 0;
+ Dwarf_Byte_Ptr info_ptr = 0;
+ Dwarf_Unsigned abbrev_code = 0;
+ Dwarf_Unsigned utmp = 0;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = _dwarf_find_CU_Context(dbg, offset);
if (cu_context == NULL)
- cu_context = _dwarf_find_offdie_CU_Context(dbg, offset);
+ cu_context = _dwarf_find_offdie_CU_Context(dbg, offset);
if (cu_context == NULL) {
- int res = _dwarf_load_debug_info(dbg, error);
-
- if (res != DW_DLV_OK) {
- return res;
- }
-
- if (dbg->de_cu_context_list_end != NULL)
- new_cu_offset =
- dbg->de_cu_context_list_end->cc_debug_info_offset +
- dbg->de_cu_context_list_end->cc_length +
- dbg->de_cu_context_list_end->cc_length_size +
- dbg->de_cu_context_list_end->cc_extension_size;
-
- do {
- if ((new_cu_offset +
- _dwarf_length_of_cu_header_simple(dbg)) >=
- dbg->de_debug_info_size) {
- _dwarf_error(dbg, error, DW_DLE_OFFSET_BAD);
- return (DW_DLV_ERROR);
- }
-
- cu_context =
- _dwarf_make_CU_Context(dbg, new_cu_offset, error);
- if (cu_context == NULL) {
- /* Error if CU Context could not be made. Since
- _dwarf_make_CU_Context has already registered an
- error we do not do that here: we let the lower error
- pass thru. */
-
- return (DW_DLV_ERROR);
- }
-
- if (dbg->de_offdie_cu_context == NULL) {
- dbg->de_offdie_cu_context = cu_context;
- dbg->de_offdie_cu_context_end = cu_context;
- } else {
- dbg->de_offdie_cu_context_end->cc_next = cu_context;
- dbg->de_offdie_cu_context_end = cu_context;
- }
-
- new_cu_offset = new_cu_offset + cu_context->cc_length +
- cu_context->cc_length_size;
-
- } while (offset >= new_cu_offset);
+ int res = _dwarf_load_debug_info(dbg, error);
+
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+
+ if (dbg->de_offdie_cu_context_end != NULL) {
+ Dwarf_CU_Context lcu_context =
+ dbg->de_offdie_cu_context_end;
+ new_cu_offset =
+ lcu_context->cc_debug_info_offset +
+ lcu_context->cc_length +
+ lcu_context->cc_length_size +
+ lcu_context->cc_extension_size;
+ }
+
+
+ do {
+ if ((new_cu_offset +
+ _dwarf_length_of_cu_header_simple(dbg)) >=
+ dbg->de_debug_info.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+
+ cu_context =
+ _dwarf_make_CU_Context(dbg, new_cu_offset, error);
+ if (cu_context == NULL) {
+ /* Error if CU Context could not be made. Since
+ _dwarf_make_CU_Context has already registered an
+ error we do not do that here: we let the lower error
+ pass thru. */
+
+ return (DW_DLV_ERROR);
+ }
+
+ if (dbg->de_offdie_cu_context == NULL) {
+ dbg->de_offdie_cu_context = cu_context;
+ dbg->de_offdie_cu_context_end = cu_context;
+ } else {
+ dbg->de_offdie_cu_context_end->cc_next = cu_context;
+ dbg->de_offdie_cu_context_end = cu_context;
+ }
+
+ new_cu_offset = new_cu_offset + cu_context->cc_length +
+ cu_context->cc_length_size;
+
+ } while (offset >= new_cu_offset);
}
die = (Dwarf_Die) _dwarf_get_alloc(dbg, DW_DLA_DIE, 1);
if (die == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
die->di_cu_context = cu_context;
- info_ptr = dbg->de_debug_info + offset;
+ info_ptr = dbg->de_debug_info.dss_data + offset;
die->di_debug_info_ptr = info_ptr;
- DECODE_LEB128_UWORD(info_ptr, utmp)
- abbrev_code = (Dwarf_Half) utmp;
+ DECODE_LEB128_UWORD(info_ptr, utmp);
+ abbrev_code = utmp;
if (abbrev_code == 0) {
- /* we are at a null DIE (or there is a bug). */
- *new_die = 0;
- return DW_DLV_NO_ENTRY;
+ /* we are at a null DIE (or there is a bug). */
+ *new_die = 0;
+ dwarf_dealloc(dbg, die, DW_DLA_DIE);
+ return DW_DLV_NO_ENTRY;
}
-
+ die->di_abbrev_code = abbrev_code;
die->di_abbrev_list =
- _dwarf_get_abbrev_for_code(cu_context, abbrev_code);
+ _dwarf_get_abbrev_for_code(cu_context, abbrev_code);
if (die->di_abbrev_list == NULL) {
- _dwarf_error(dbg, error, DW_DLE_DIE_ABBREV_LIST_NULL);
- return (DW_DLV_ERROR);
+ dwarf_dealloc(dbg, die, DW_DLA_DIE);
+ _dwarf_error(dbg, error, DW_DLE_DIE_ABBREV_LIST_NULL);
+ return (DW_DLV_ERROR);
}
*new_die = die;
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.h b/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.h
index 58548f7897..f1ecb153ba 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_die_deliv.h
@@ -1,6 +1,7 @@
/*
Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2008-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -43,7 +44,7 @@
*/
struct Dwarf_Abbrev_List_s {
- Dwarf_Word ab_code;
+ Dwarf_Unsigned ab_code;
Dwarf_Half ab_tag;
Dwarf_Half ab_has_child;
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_elf_access.c b/usr/src/tools/ctf/dwarf/common/dwarf_elf_access.c
new file mode 100644
index 0000000000..6caa64a758
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_elf_access.c
@@ -0,0 +1,976 @@
+/*
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2007-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2008-2010 Arxan Technologies, Inc. All Rights Reserved.
+ Portions Copyright 2009-2010 David Anderson. All rights reserved.
+ Portions Copyright 2009-2010 Novell Inc. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+#include "config.h"
+#include "dwarf_incl.h"
+#include "dwarf_elf_access.h"
+
+#ifdef HAVE_ELF_H
+#include <elf.h>
+#endif
+#ifdef HAVE_LIBELF_H
+#include <libelf.h>
+#else
+#ifdef HAVE_LIBELF_LIBELF_H
+#include <libelf/libelf.h>
+#endif
+#endif
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define FALSE 0
+#define TRUE 1
+
+#ifndef EM_MIPS
+/* This is the standard elf value EM_MIPS. */
+#define EM_MIPS 8
+#endif
+
+
+#ifdef HAVE_ELF64_GETEHDR
+extern Elf64_Ehdr *elf64_getehdr(Elf *);
+#endif
+#ifdef HAVE_ELF64_GETSHDR
+extern Elf64_Shdr *elf64_getshdr(Elf_Scn *);
+#endif
+#ifdef WORDS_BIGENDIAN
+#define WRITE_UNALIGNED(dbg,dest,source, srclength,len_out) \
+ { \
+ dbg->de_copy_word(dest, \
+ ((char *)source) +srclength-len_out, \
+ len_out) ; \
+ }
+
+
+#else /* LITTLE ENDIAN */
+
+#define WRITE_UNALIGNED(dbg,dest,source, srclength,len_out) \
+ { \
+ dbg->de_copy_word( (dest) , \
+ ((char *)source) , \
+ len_out) ; \
+ }
+#endif
+
+
+
+typedef struct {
+ dwarf_elf_handle elf;
+ int is_64bit;
+ Dwarf_Small length_size;
+ Dwarf_Small pointer_size;
+ Dwarf_Unsigned section_count;
+ Dwarf_Endianness endianness;
+ Dwarf_Small machine;
+ int libdwarf_owns_elf;
+ Elf32_Ehdr *ehdr32;
+
+#ifdef HAVE_ELF64_GETEHDR
+ Elf64_Ehdr *ehdr64;
+#endif
+ /* Elf symtab and its strtab. Initialized at first
+ call to do relocations, the actual data is in the Dwarf_Debug
+ struct, not allocated locally here. */
+ struct Dwarf_Section_s *symtab;
+ struct Dwarf_Section_s *strtab;
+
+} dwarf_elf_object_access_internals_t;
+
+struct Dwarf_Elf_Rela {
+ Dwarf_ufixed64 r_offset;
+ /*Dwarf_ufixed64 r_info; */
+ Dwarf_ufixed64 r_type;
+ Dwarf_ufixed64 r_symidx;
+ Dwarf_ufixed64 r_addend;
+};
+
+
+static int dwarf_elf_object_access_load_section(void* obj_in,
+ Dwarf_Half section_index,
+ Dwarf_Small** section_data,
+ int* error);
+
+/*
+ dwarf_elf_object_access_internals_init()
+ */
+static int
+dwarf_elf_object_access_internals_init(void* obj_in,
+ dwarf_elf_handle elf,
+ int* error)
+{
+ dwarf_elf_object_access_internals_t*obj =
+ (dwarf_elf_object_access_internals_t*)obj_in;
+ char *ehdr_ident = 0;
+ Dwarf_Half machine = 0;
+ obj->elf = elf;
+
+ if ((ehdr_ident = elf_getident(elf, NULL)) == NULL) {
+ *error = DW_DLE_ELF_GETIDENT_ERROR;
+ return DW_DLV_ERROR;
+ }
+
+ obj->is_64bit = (ehdr_ident[EI_CLASS] == ELFCLASS64);
+
+
+ if(ehdr_ident[EI_DATA] == ELFDATA2LSB){
+ obj->endianness = DW_OBJECT_LSB;
+ }
+ else if(ehdr_ident[EI_DATA] == ELFDATA2MSB){
+ obj->endianness = DW_OBJECT_MSB;
+ }
+
+ if (obj->is_64bit) {
+#ifdef HAVE_ELF64_GETEHDR
+ obj->ehdr64 = elf64_getehdr(elf);
+ if (obj->ehdr64 == NULL) {
+ *error = DW_DLE_ELF_GETEHDR_ERROR;
+ return DW_DLV_ERROR;
+ }
+ obj->section_count = obj->ehdr64->e_shnum;
+ machine = obj->ehdr64->e_machine;
+ obj->machine = machine;
+#else
+ *error = DW_DLE_NO_ELF64_SUPPORT;
+ return DW_DLV_ERROR;
+#endif
+ }
+ else {
+ obj->ehdr32 = elf32_getehdr(elf);
+ if (obj->ehdr32 == NULL) {
+ *error = DW_DLE_ELF_GETEHDR_ERROR;
+ return DW_DLV_ERROR;
+ }
+ obj->section_count = obj->ehdr32->e_shnum;
+ machine = obj->ehdr32->e_machine;
+ obj->machine = machine;
+ }
+
+ /* The following length_size is Not Too Significant. Only used
+ one calculation, and an approximate one at that. */
+ obj->length_size = obj->is_64bit ? 8 : 4;
+ obj->pointer_size = obj->is_64bit ? 8 : 4;
+
+ if (obj->is_64bit && machine != EM_MIPS) {
+ /* MIPS/IRIX makes pointer size and length size 8 for -64.
+ Other platforms make length 4 always. */
+ /* 4 here supports 32bit-offset dwarf2, as emitted by cygnus
+ tools, and the dwarfv2.1 64bit extension setting.
+ This is not the same as the size-of-an-offset, which
+ is 4 in 32bit dwarf and 8 in 64bit dwarf. */
+ obj->length_size = 4;
+ }
+ return DW_DLV_OK;
+}
+
+/*
+ dwarf_elf_object_access_get_byte_order
+ */
+static
+Dwarf_Endianness
+dwarf_elf_object_access_get_byte_order(void* obj_in)
+{
+ dwarf_elf_object_access_internals_t*obj =
+ (dwarf_elf_object_access_internals_t*)obj_in;
+ return obj->endianness;
+}
+
+/*
+ dwarf_elf_object_access_get_section_count()
+ */
+static
+Dwarf_Unsigned
+dwarf_elf_object_access_get_section_count(void * obj_in)
+{
+ dwarf_elf_object_access_internals_t*obj =
+ (dwarf_elf_object_access_internals_t*)obj_in;
+ return obj->section_count;
+}
+
+
+/*
+ dwarf_elf_object_access_get_section()
+ */
+static
+int
+dwarf_elf_object_access_get_section_info(
+ void* obj_in,
+ Dwarf_Half section_index,
+ Dwarf_Obj_Access_Section* ret_scn,
+ int* error)
+{
+ dwarf_elf_object_access_internals_t*obj =
+ (dwarf_elf_object_access_internals_t*)obj_in;
+
+ Elf32_Shdr *shdr32 = 0;
+
+#ifdef HAVE_ELF64_GETSHDR
+ Elf64_Shdr *shdr64 = 0;
+#endif
+ Elf_Scn *scn = 0;
+
+
+ scn = elf_getscn(obj->elf, section_index);
+ if (scn == NULL) {
+ *error = DW_DLE_MDE;
+ return DW_DLV_ERROR;
+ }
+ if (obj->is_64bit) {
+#ifdef HAVE_ELF64_GETSHDR
+ shdr64 = elf64_getshdr(scn);
+ if (shdr64 == NULL) {
+ *error = DW_DLE_ELF_GETSHDR_ERROR;
+ return DW_DLV_ERROR;
+ }
+
+ ret_scn->size = shdr64->sh_size;
+ ret_scn->addr = shdr64->sh_addr;
+ ret_scn->link = shdr64->sh_link;
+
+ ret_scn->name = elf_strptr(obj->elf, obj->ehdr64->e_shstrndx,
+ shdr64->sh_name);
+ if(ret_scn->name == NULL) {
+ *error = DW_DLE_ELF_STRPTR_ERROR;
+ return DW_DLV_ERROR;
+ }
+ return DW_DLV_OK;
+#else
+ *error = DW_DLE_MISSING_ELF64_SUPPORT;
+ return DW_DLV_ERROR;
+#endif /* HAVE_ELF64_GETSHDR */
+ }
+ if ((shdr32 = elf32_getshdr(scn)) == NULL) {
+ *error = DW_DLE_ELF_GETSHDR_ERROR;
+ return DW_DLV_ERROR;
+ }
+
+ ret_scn->size = shdr32->sh_size;
+ ret_scn->addr = shdr32->sh_addr;
+ ret_scn->link = shdr32->sh_link;
+
+ ret_scn->name = elf_strptr(obj->elf, obj->ehdr32->e_shstrndx,
+ shdr32->sh_name);
+ if (ret_scn->name == NULL) {
+ *error = DW_DLE_ELF_STRPTR_ERROR;
+ return DW_DLV_ERROR;
+ }
+ return DW_DLV_OK;
+}
+
+/*
+ dwarf_elf_object_access_get_length_size
+ */
+static
+Dwarf_Small
+dwarf_elf_object_access_get_length_size(void* obj_in)
+{
+ dwarf_elf_object_access_internals_t*obj =
+ (dwarf_elf_object_access_internals_t*)obj_in;
+ return obj->length_size;
+}
+
+/*
+ dwarf_elf_object_access_get_pointer_size
+ */
+static
+Dwarf_Small
+dwarf_elf_object_access_get_pointer_size(void* obj_in)
+{
+ dwarf_elf_object_access_internals_t*obj =
+ (dwarf_elf_object_access_internals_t*)obj_in;
+ return obj->pointer_size;
+}
+
+#define MATCH_REL_SEC(i_,s_,r_) \
+if(i_ == s_.dss_index) { \
+ *r_ = &s_; \
+ return DW_DLV_OK; \
+}
+
+static int
+find_section_to_relocate(Dwarf_Debug dbg,Dwarf_Half section_index,
+ struct Dwarf_Section_s **relocatablesec, int *error)
+{
+ MATCH_REL_SEC(section_index,dbg->de_debug_info,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_abbrev,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_line,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_loc,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_aranges,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_macinfo,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_pubnames,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_ranges,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_frame,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_frame_eh_gnu,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_pubtypes,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_funcnames,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_typenames,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_varnames,relocatablesec);
+ MATCH_REL_SEC(section_index,dbg->de_debug_weaknames,relocatablesec);
+ /* dbg-> de_debug_str,syms); */
+ /* de_elf_symtab,syms); */
+ /* de_elf_strtab,syms); */
+ *error = DW_DLE_RELOC_SECTION_MISMATCH;
+ return DW_DLV_ERROR;
+
+}
+#undef MATCH_REL_SEC
+
+static void
+get_rela_elf32(Dwarf_Small *data, unsigned int i,
+ int endianness,
+ int machine, struct Dwarf_Elf_Rela *relap)
+{
+ Elf32_Rela *relp = (Elf32_Rela*)(data + (i * sizeof(Elf32_Rela)));
+ relap->r_offset = relp->r_offset;
+ /*
+ relap->r_info = relp->r_info;
+ */
+ relap->r_type = ELF32_R_TYPE(relp->r_info);
+ relap->r_symidx = ELF32_R_SYM(relp->r_info);
+ relap->r_addend = relp->r_addend;
+}
+
+static void
+get_rela_elf64(Dwarf_Small *data, unsigned int i,
+ int endianness,
+ int machine,struct Dwarf_Elf_Rela *relap)
+{
+#ifdef HAVE_ELF64_RELA
+ Elf64_Rela * relp = (Elf64_Rela*)(data + (i * sizeof(Elf64_Rela)));
+ relap->r_offset = relp->r_offset;
+ /*
+ relap->r_info = relp->r_info;
+ */
+ if(machine == EM_MIPS && endianness == DW_OBJECT_LSB ) {
+ /* This is really wierd. Treat this very specially.
+ The Elf64 LE MIPS object used for
+ testing (that has rela) wants the
+ values as sym ssym type3 type2 type, treating
+ each value as independent value. But libelf xlate
+ treats it as something else so we fudge here.
+ It is unclear
+ how to precisely characterize where these relocations
+ were used.
+ SGI MIPS on IRIX never used .rela relocations.
+ The BE 64bit elf MIPS test object with rela uses traditional
+ elf relocation layouts, not this special case. */
+#define ELF64MIPS_REL_SYM(i) ((i) & 0xffffffff)
+#define ELF64MIPS_REL_TYPE(i) ((i >> 56) &0xff)
+ /* We ignore the special TYPE2 and TYPE3, they should be
+ value R_MIPS_NONE in rela. */
+ relap->r_type = ELF64MIPS_REL_TYPE(relp->r_info);
+ relap->r_symidx = ELF64MIPS_REL_SYM(relp->r_info);
+#undef MIPS64SYM
+#undef MIPS64TYPE
+ } else
+ {
+ relap->r_type = ELF64_R_TYPE(relp->r_info);
+ relap->r_symidx = ELF64_R_SYM(relp->r_info);
+ }
+ relap->r_addend = relp->r_addend;
+#endif
+}
+
+static void
+get_relocations_array(Dwarf_Bool is_64bit,
+ int endianness,
+ int machine,
+ Dwarf_Small *data,
+ unsigned int num_relocations,
+ struct Dwarf_Elf_Rela *relap)
+{
+ unsigned int i = 0;
+ void (*get_relocations)(Dwarf_Small *data, unsigned int i,
+ int endianness,
+ int machine,
+ struct Dwarf_Elf_Rela *relap);
+
+ /* Handle 32/64 bit issue
+ */
+ if (is_64bit) {
+ get_relocations = get_rela_elf64;
+ } else {
+ get_relocations = get_rela_elf32;
+ }
+
+ for (i=0; i < num_relocations; i++) {
+ get_relocations(data, i,endianness,machine, &(relap[i]));
+ }
+
+}
+
+static int
+get_relocation_entries(Dwarf_Bool is_64bit,
+ int endianness,
+ int machine,
+ Dwarf_Small *relocation_section,
+ Dwarf_Unsigned relocation_section_size,
+ struct Dwarf_Elf_Rela **relas,
+ unsigned int *nrelas,
+ int *error)
+{
+ unsigned int relocation_size = 0;
+
+ if (is_64bit) {
+#ifdef HAVE_ELF64_RELA
+ relocation_size = sizeof(Elf64_Rela);
+#else
+ *error = DW_DLE_MISSING_ELF64_SUPPORT;
+ return DW_DLV_ERROR;
+#endif
+ } else {
+ relocation_size = sizeof(Elf32_Rela);
+ }
+
+ if (relocation_section == NULL) {
+ *error = DW_DLE_RELOC_SECTION_PTR_NULL;
+ return(DW_DLV_ERROR);
+ }
+
+ if ((relocation_section_size != 0)) {
+ size_t bytescount = 0;
+ if(relocation_section_size%relocation_size) {
+ *error = DW_DLE_RELOC_SECTION_LENGTH_ODD;
+ return DW_DLV_ERROR;
+ }
+ *nrelas = relocation_section_size/relocation_size;
+ bytescount = (*nrelas) * sizeof(struct Dwarf_Elf_Rela);
+ *relas = malloc(bytescount);
+ if (!*relas) {
+ *error = DW_DLE_MAF;
+ return(DW_DLV_ERROR);
+ }
+ memset(*relas,0,bytescount);
+ get_relocations_array(is_64bit,endianness,machine, relocation_section,
+ *nrelas, *relas);
+ }
+ return(DW_DLV_OK);
+}
+
+static Dwarf_Bool
+is_32bit_abs_reloc(unsigned int type, Dwarf_Half machine)
+{
+ Dwarf_Bool r = 0;
+ switch (machine) {
+#if defined(EM_MIPS) && defined (R_MIPS_32)
+ case EM_MIPS:
+ r = (type == R_MIPS_32);
+ break;
+#endif
+#if defined(EM_SPARC32PLUS) && defined (R_SPARC_UA32)
+ case EM_SPARC32PLUS:
+ r = (type == R_SPARC_UA32);
+ break;
+#endif
+#if defined(EM_SPARCV9) && defined (R_SPARC_UA32)
+ case EM_SPARCV9:
+ r = (type == R_SPARC_UA32);
+ break;
+#endif
+#if defined(EM_SPARC) && defined (R_SPARC_UA32)
+ case EM_SPARC:
+ r = (type == R_SPARC_UA32);
+ break;
+#endif
+#if defined(EM_386) && defined (R_386_32)
+ case EM_386:
+ r = (type == R_386_32);
+ break;
+#endif
+#if defined(EM_IA_64) && defined (R_IA64_SECREL32LSB)
+ case EM_IA_64:
+ r = (type == R_IA64_SECREL32LSB);
+ break;
+#endif
+#if defined(EM_PPC64) && defined (R_PPC64_ADDR32)
+ case EM_PPC64:
+ r = (type == R_PPC64_ADDR32);
+ break;
+#endif
+#if defined(EM_PPC) && defined (R_PPC_ADDR32)
+ case EM_PPC:
+ r = (type == R_PPC_ADDR32);
+ break;
+#endif
+#if defined(EM_S390) && defined (R_390_32)
+ case EM_S390:
+ r = (type == R_390_32);
+ break;
+#endif
+#if defined(EM_X86_64) && defined (R_X86_64_32)
+ case EM_X86_64:
+ r = (type == R_X86_64_32);
+ break;
+#endif
+ }
+ return r;
+}
+
+static Dwarf_Bool
+is_64bit_abs_reloc(unsigned int type, Dwarf_Half machine)
+{
+ Dwarf_Bool r = 0;
+ switch (machine) {
+#if defined(EM_MIPS) && defined (R_MIPS_64)
+ case EM_MIPS:
+ r = (type == R_MIPS_64);
+ break;
+#endif
+#if defined(EM_SPARC32PLUS) && defined (R_SPARC_UA64)
+ case EM_SPARC32PLUS:
+ r = (type == R_SPARC_UA64);
+ break;
+#endif
+#if defined(EM_SPARCV9) && defined (R_SPARC_UA64)
+ case EM_SPARCV9:
+ r = (type == R_SPARC_UA64);
+ break;
+#endif
+#if defined(EM_SPARC) && defined (R_SPARC_UA64)
+ case EM_SPARC:
+ r = (type == R_SPARC_UA64);
+ break;
+#endif
+#if defined(EM_IA_64) && defined (R_IA64_SECREL32LSB)
+ case EM_IA_64:
+ r = (type == R_IA64_DIR64LSB);
+ break;
+#endif
+#if defined(EM_PPC64) && defined (R_PPC64_ADDR64)
+ case EM_PPC64:
+ r = (type == R_PPC64_ADDR64);
+ break;
+#endif
+#if defined(EM_S390) && defined (R_390_64)
+ case EM_S390:
+ r = (type == R_390_64);
+ break;
+#endif
+#if defined(EM_X86_64) && defined (R_X86_64_64)
+ case EM_X86_64:
+ r = (type == R_X86_64_64);
+ break;
+#endif
+ }
+ return r;
+}
+
+
+static void
+update_entry(Dwarf_Debug dbg,
+ Dwarf_Bool is_64bit, Dwarf_Endianness endianess,
+ Dwarf_Half machine, struct Dwarf_Elf_Rela *rela,
+ Dwarf_Small *target_section, Dwarf_Small *section_data)
+{
+ unsigned int type = 0;
+ unsigned int sym_idx = 0;
+#ifdef HAVE_ELF64_SYM
+ Elf64_Sym sym_buf;
+ Elf64_Sym *sym = 0;
+#else
+ Elf32_Sym sym_buf;
+ Elf32_Sym *sym = 0;
+#endif
+ Elf32_Sym *sym32 = 0;
+ Dwarf_ufixed64 offset = 0;
+ Dwarf_sfixed64 addend = 0;
+ Dwarf_Unsigned reloc_size = 0;
+
+
+ /* Dwarf_Elf_Rela dereferencing */
+ offset = rela->r_offset;
+ addend = rela->r_addend;
+ type = rela->r_type;
+ sym_idx = rela->r_symidx;
+
+ if (is_64bit) {
+#ifdef HAVE_ELF64_SYM
+ sym = &((Elf64_Sym*)section_data)[sym_idx];
+#endif
+ } else {
+ sym32 = &((Elf32_Sym*)section_data)[sym_idx];
+
+ /* Convert Elf32_Sym struct to Elf64_Sym struct. We point at
+ * an Elf64_Sym local variable (sym_buf) to allow us to use the
+ * same pointer (sym) for both 32-bit and 64-bit instances.
+ */
+ sym = &sym_buf;
+ sym->st_name = sym32->st_name;
+ sym->st_info = sym32->st_info;
+ sym->st_other = sym32->st_other;
+ sym->st_shndx = sym32->st_shndx;
+ sym->st_value = sym32->st_value;
+ sym->st_size = sym32->st_size;
+ }
+
+ /* Determine relocation size */
+ if (is_32bit_abs_reloc(type, machine)) {
+ reloc_size = 4;
+ } else if (is_64bit_abs_reloc(type, machine)) {
+ reloc_size = 8;
+ } else {
+ return;
+ }
+
+
+ {
+ /* Assuming we do not need to do a READ_UNALIGNED here
+ at target_section + offset and add its value to
+ outval. Some ABIs say no read (for example MIPS),
+ but if some do then which ones? */
+ Dwarf_Unsigned outval = sym->st_value + addend;
+ WRITE_UNALIGNED(dbg,target_section + offset,
+ &outval,sizeof(outval),reloc_size);
+ }
+}
+
+
+
+static int
+apply_rela_entries(Dwarf_Debug dbg,
+ Dwarf_Bool is_64bit,
+ Dwarf_Endianness endianess,
+ Dwarf_Half machine,
+ Dwarf_Small *target_section,
+ Dwarf_Small *symtab_section,
+ struct Dwarf_Elf_Rela *relas, unsigned int nrelas,
+ int *error)
+{
+ if ((target_section != NULL) && (relas != NULL)) {
+ unsigned int i;
+ for (i = 0; i < nrelas; i++) {
+ update_entry(dbg, is_64bit,
+ endianess,
+ machine,
+ &(relas)[i],
+ target_section,
+ symtab_section);
+ }
+ }
+ return DW_DLV_OK;
+}
+
+
+static int
+loop_through_relocations(
+ Dwarf_Debug dbg,
+ dwarf_elf_object_access_internals_t* obj,
+ struct Dwarf_Section_s *relocatablesec,
+ int *error)
+{
+ Dwarf_Small *target_section = 0;
+ Dwarf_Small *symtab_section = obj->symtab->dss_data;
+ Dwarf_Small *relocation_section = relocatablesec->dss_reloc_data;
+ Dwarf_Unsigned relocation_section_size =
+ relocatablesec->dss_reloc_size;
+ int ret = DW_DLV_ERROR;
+ struct Dwarf_Elf_Rela *relas = 0;
+ unsigned int nrelas = 0;
+ Dwarf_Small *mspace = 0;
+
+ ret = get_relocation_entries(obj->is_64bit,
+ obj->endianness,
+ obj->machine,
+ relocation_section,
+ relocation_section_size,
+ &relas, &nrelas, error);
+ if(ret != DW_DLV_OK) {
+ free(relas);
+ return ret;
+ }
+
+ /* Some systems read Elf in read-only memory via mmap or the like.
+ So the only safe thing is to copy the current data into
+ malloc space and refer to the malloc space instead of the
+ space returned by the elf library */
+ mspace = malloc(relocatablesec->dss_size);
+ if(!mspace) {
+ *error = DW_DLE_RELOC_SECTION_MALLOC_FAIL;
+ return DW_DLV_ERROR;
+ }
+ memcpy(mspace,relocatablesec->dss_data,relocatablesec->dss_size);
+ relocatablesec->dss_data = mspace;
+ target_section = relocatablesec->dss_data;
+ relocatablesec->dss_data_was_malloc = 1;
+
+ ret = apply_rela_entries(
+ dbg,
+ obj->is_64bit,
+ obj->endianness, obj->machine,
+ target_section,
+ symtab_section,
+ relas, nrelas, error);
+
+ free(relas);
+
+ return ret;
+}
+
+/*
+ Find the section data in dbg and find all the relevant
+ sections. Then do relocations.
+*/
+static int
+dwarf_elf_object_relocate_a_section(void* obj_in,
+ Dwarf_Half section_index,
+ Dwarf_Debug dbg,
+ int* error)
+{
+ int res = DW_DLV_ERROR;
+ dwarf_elf_object_access_internals_t*obj = 0;
+ struct Dwarf_Section_s * relocatablesec = 0;
+ if (section_index == 0) {
+ return DW_DLV_NO_ENTRY;
+ }
+ obj = (dwarf_elf_object_access_internals_t*)obj_in;
+
+ /* The section to relocate must already be loaded into memory. */
+ res = find_section_to_relocate(dbg, section_index,&relocatablesec,error);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+
+ /* Sun and possibly others do not always set sh_link in .debug_* sections.
+ So we cannot do full consistency checks. */
+ if(relocatablesec->dss_reloc_index == 0 ) {
+ /* Something is wrong. */
+ *error = DW_DLE_RELOC_SECTION_MISSING_INDEX;
+ return DW_DLV_ERROR;
+ }
+ /* Now load the relocations themselves. */
+ res = dwarf_elf_object_access_load_section(obj_in,
+ relocatablesec->dss_reloc_index,
+ &relocatablesec->dss_reloc_data, error);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+
+ /* Now get the symtab. */
+ if (!obj->symtab) {
+ obj->symtab = &dbg->de_elf_symtab;
+ obj->strtab = &dbg->de_elf_strtab;
+ }
+ if( obj->symtab->dss_index != relocatablesec->dss_reloc_link) {
+ /* Something is wrong. */
+ *error = DW_DLE_RELOC_MISMATCH_RELOC_INDEX;
+ return DW_DLV_ERROR;
+ }
+ if( obj->strtab->dss_index != obj->symtab->dss_link) {
+ /* Something is wrong. */
+ *error = DW_DLE_RELOC_MISMATCH_STRTAB_INDEX;
+ return DW_DLV_ERROR;
+ }
+ if(!obj->symtab->dss_data) {
+ /* Now load the symtab */
+ res = dwarf_elf_object_access_load_section(obj_in,
+ obj->symtab->dss_index,
+ &obj->symtab->dss_data, error);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ if(! obj->strtab->dss_data) {
+ /* Now load the strtab */
+ res = dwarf_elf_object_access_load_section(obj_in,
+ obj->strtab->dss_index,
+ &obj->strtab->dss_data,error);
+ if(res != DW_DLV_OK){
+ return res;
+ }
+ }
+
+ /* We have all the data we need in memory. */
+ res = loop_through_relocations(dbg,obj,relocatablesec,error);
+
+ return res;
+}
+
+/*
+ dwarf_elf_object_access_load_section
+ */
+static int
+dwarf_elf_object_access_load_section(void* obj_in,
+ Dwarf_Half section_index,
+ Dwarf_Small** section_data,
+ int* error)
+{
+ dwarf_elf_object_access_internals_t*obj =
+ (dwarf_elf_object_access_internals_t*)obj_in;
+ if (section_index == 0) {
+ return DW_DLV_NO_ENTRY;
+ }
+
+ {
+ Elf_Scn *scn = 0;
+ Elf_Data *data = 0;
+
+ scn = elf_getscn(obj->elf, section_index);
+ if (scn == NULL) {
+ *error = DW_DLE_MDE;
+ return DW_DLV_ERROR;
+ }
+
+ /*
+ When using libelf as a producer, section data may be stored
+ in multiple buffers. In libdwarf however, we only use libelf
+ as a consumer (there is a dwarf producer API, but it doesn't
+ use libelf). Because of this, this single call to elf_getdata
+ will retrieve the entire section in a single contiguous
+ buffer. */
+ data = elf_getdata(scn, NULL);
+ if (data == NULL) {
+ *error = DW_DLE_MDE;
+ return DW_DLV_ERROR;
+ }
+ *section_data = data->d_buf;
+ }
+ return DW_DLV_OK;
+}
+
+
+/* dwarf_elf_access method table. */
+static const struct Dwarf_Obj_Access_Methods_s dwarf_elf_object_access_methods =
+{
+ dwarf_elf_object_access_get_section_info,
+ dwarf_elf_object_access_get_byte_order,
+ dwarf_elf_object_access_get_length_size,
+ dwarf_elf_object_access_get_pointer_size,
+ dwarf_elf_object_access_get_section_count,
+ dwarf_elf_object_access_load_section,
+ dwarf_elf_object_relocate_a_section
+};
+
+
+/*
+ Interface for the ELF object file implementation.
+ */
+int
+dwarf_elf_object_access_init(dwarf_elf_handle elf,
+ int libdwarf_owns_elf,
+ Dwarf_Obj_Access_Interface** ret_obj,
+ int *err)
+{
+ int res = 0;
+ dwarf_elf_object_access_internals_t *internals = 0;
+ Dwarf_Obj_Access_Interface *intfc = 0;
+
+ internals = malloc(sizeof(dwarf_elf_object_access_internals_t));
+ if(!internals) {
+ /* Impossible case, we hope. Give up. */
+ return DW_DLV_ERROR;
+ }
+ memset(internals,0,sizeof(*internals));
+ res = dwarf_elf_object_access_internals_init(internals, elf, err);
+ if(res != DW_DLV_OK){
+ free(internals);
+ return DW_DLV_ERROR;
+ }
+ internals->libdwarf_owns_elf = libdwarf_owns_elf;
+
+ intfc = malloc(sizeof(Dwarf_Obj_Access_Interface));
+ if(!intfc) {
+ /* Impossible case, we hope. Give up. */
+ free(internals);
+ return DW_DLV_ERROR;
+ }
+ /* Initialize the interface struct */
+ intfc->object = internals;
+ intfc->methods = &dwarf_elf_object_access_methods;
+
+ *ret_obj = intfc;
+ return DW_DLV_OK;
+}
+
+
+
+/*
+ Clean up the Dwarf_Obj_Access_Interface returned by elf_access_init.
+ */
+void
+dwarf_elf_object_access_finish(Dwarf_Obj_Access_Interface* obj)
+{
+ if(!obj) {
+ return;
+ }
+ if(obj->object) {
+ dwarf_elf_object_access_internals_t *internals =
+ (dwarf_elf_object_access_internals_t *)obj->object;
+ if(internals->libdwarf_owns_elf){
+ elf_end(internals->elf);
+ }
+ }
+ free(obj->object);
+ free(obj);
+}
+
+/*
+ This function returns the Elf * pointer
+ associated with a Dwarf_Debug.
+
+ This function only makes sense if ELF is implied.
+ */
+int
+dwarf_get_elf(Dwarf_Debug dbg, dwarf_elf_handle * elf,
+ Dwarf_Error * error)
+{
+ struct Dwarf_Obj_Access_Interface_s * obj = 0;
+ if (dbg == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
+ }
+
+ obj = dbg->de_obj_file;
+ if(obj) {
+ dwarf_elf_object_access_internals_t *internals =
+ (dwarf_elf_object_access_internals_t*)obj->object;
+ if(internals->elf == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_FNO);
+ return (DW_DLV_ERROR);
+ }
+ *elf = internals->elf;
+ return DW_DLV_OK;
+
+ }
+ _dwarf_error(dbg, error, DW_DLE_FNO);
+ return DW_DLV_ERROR;
+}
+
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_elf_access.h b/usr/src/tools/ctf/dwarf/common/dwarf_elf_access.h
new file mode 100644
index 0000000000..fd52c17938
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_elf_access.h
@@ -0,0 +1,55 @@
+#ifndef _DWARF_ELF_PORT_H
+#define _DWARF_ELF_PORT_H
+/*
+
+ Copyright (C) 2008-2010 David Anderson. All rights reserved.
+ Portions Copyright 2008-2010 Arxan Technologies, Inc. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+
+
+/* ELF (usually libelf) object access for the generic object file interface */
+
+int
+dwarf_elf_object_access_init(dwarf_elf_handle elf ,
+ int libdwarf_owns_elf,
+ Dwarf_Obj_Access_Interface** ret_obj,
+ int *err );
+
+void
+dwarf_elf_object_access_finish(Dwarf_Obj_Access_Interface* obj );
+
+/* End ELF object access for the generic object file interface */
+
+
+#endif
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_error.c b/usr/src/tools/ctf/dwarf/common/dwarf_error.c
index fd0c922d3e..7327529820 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_error.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_error.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2008-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -79,52 +80,52 @@ const char *_dwarf_errmsgs[] = {
"DW_DLE_DBG_ALLOC 23 Unable to malloc a Dwarf_Debug structure",
"DW_DLE_FSTAT_ERROR 24 The file fd passed to dwarf_init "
- "cannot be fstat()ed",
+ "cannot be fstat()ed",
"DW_DLE_FSTAT_MODE_ERROR 25 The file mode bits do not "
- "indicate that the file being opened via "
- "dwarf_init() is a normal file",
+ "indicate that the file being opened via "
+ "dwarf_init() is a normal file",
"DW_DLE_INIT_ACCESS_WRONG 26 A call to dwarf_init had an "
- "access of other than DW_DLC_READ",
+ "access of other than DW_DLC_READ",
"DW_DLE_ELF_BEGIN_ERROR 27 a call to "
- "elf_begin(... ELF_C_READ_MMAP... ) failed",
+ "elf_begin(... ELF_C_READ_MMAP... ) failed",
"DW_DLE_ELF_GETEHDR_ERROR 28 a call to "
- "elf32_getehdr() or elf64_getehdr() failed",
+ "elf32_getehdr() or elf64_getehdr() failed",
"DW_DLE_ELF_GETSHDR_ERROR 29 a call to "
- "elf32_getshdr() or elf64_getshdr() failed",
+ "elf32_getshdr() or elf64_getshdr() failed",
"DW_DLE_ELF_STRPTR_ERROR 30 a call to "
- "elf_strptr() failed trying to get a section name",
+ "elf_strptr() failed trying to get a section name",
"DW_DLE_DEBUG_INFO_DUPLICATE 31 Only one .debug_info "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_INFO_NULL 32 .debug_info section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_ABBREV_DUPLICATE 33 Only one .debug_abbrev "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_ABBREV_NULL 34 .debug_abbrev section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_ARANGES_DUPLICATE 35 Only one .debug_aranges "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_ARANGES_NULL 36 .debug_aranges section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_LINE_DUPLICATE 37 Only one .debug_line "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_LINE_NULL (38) .debug_line section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_LOC_DUPLICATE (39) Only one .debug_loc "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_LOC_NULL (40) .debug_loc section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_MACINFO_DUPLICATE (41) Only one .debug_macinfo "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_MACINFO_NULL (42) .debug_macinfo section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_PUBNAMES_DUPLICATE (43) Only one .debug_pubnames "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_PUBNAMES_NULL (44) .debug_pubnames section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_STR_DUPLICATE (45) Only one .debug_str "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_STR_NULL (46) .debug_str section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_CU_LENGTH_ERROR (47)",
"DW_DLE_VERSION_STAMP_ERROR (48)",
"DW_DLE_ABBREV_OFFSET_ERROR (49)",
@@ -186,9 +187,9 @@ const char *_dwarf_errmsgs[] = {
"DW_DLE_FIRST_DIE_NOT_CU",
"DW_DLE_NEXT_DIE_PTR_NULL",
"DW_DLE_DEBUG_FRAME_DUPLICATE Only one .debug_frame "
- "section is allowed",
+ "section is allowed",
"DW_DLE_DEBUG_FRAME_NULL .debug_frame section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_ABBREV_DECODE_ERROR",
"DW_DLE_DWARF_ABBREV_NULL",
"DW_DLE_ATTR_NULL",
@@ -234,28 +235,28 @@ const char *_dwarf_errmsgs[] = {
"DW_DLE_DIE_ABBREV_LIST_NULL",
"DW_DLE_DEBUG_FUNCNAMES_DUPLICATE",
"DW_DLE_DEBUG_FUNCNAMES_NULL .debug_funcnames section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR",
"DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD",
"DW_DLE_FUNC_NULL",
"DW_DLE_FUNC_CONTEXT_NULL",
"DW_DLE_DEBUG_TYPENAMES_DUPLICATE",
"DW_DLE_DEBUG_TYPENAMES_NULL .debug_typenames section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR",
"DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD",
"DW_DLE_TYPE_NULL",
"DW_DLE_TYPE_CONTEXT_NULL",
"DW_DLE_DEBUG_VARNAMES_DUPLICATE",
"DW_DLE_DEBUG_VARNAMES_NULL .debug_varnames section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_VARNAMES_VERSION_ERROR",
"DW_DLE_DEBUG_VARNAMES_LENGTH_BAD",
"DW_DLE_VAR_NULL",
"DW_DLE_VAR_CONTEXT_NULL",
"DW_DLE_DEBUG_WEAKNAMES_DUPLICATE",
"DW_DLE_DEBUG_WEAKNAMES_NULL .debug_weaknames section present but "
- "elf_getdata() failed or section is zero-length",
+ "elf_getdata() failed or section is zero-length",
"DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR",
"DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD",
@@ -279,9 +280,40 @@ const char *_dwarf_errmsgs[] = {
"DW_DLE_DF_POP_EMPTY_STACK(191)",
"DW_DLE_DF_ALLOC_FAIL(192)",
"DW_DLE_DF_FRAME_DECODING_ERROR(193)",
-
-
-
+ "DW_DLE_DEBUG_LOC_SECTION_SHORT(194)",
+ "DW_DLE_FRAME_AUGMENTATION_UNKNOWN(195)",
+ "DW_DLE_PUBTYPE_CONTEXT(196)",
+ "DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD(197)",
+ "DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR(198)",
+ "DW_DLE_DEBUG_PUBTYPES_DUPLICATE(199)",
+ "DW_DLE_FRAME_CIE_DECODE_ERROR(200)",
+ "DW_DLE_FRAME_REGISTER_UNREPRESENTABLE(201)",
+ "DW_DLE_FRAME_REGISTER_COUNT_MISMATCH(202)",
+ "DW_DLE_LINK_LOOP(203)",
+ "DW_DLE_STRP_OFFSET_BAD(204)",
+ "DW_DLE_DEBUG_RANGES_DUPLICATE(205)",
+ "DW_DLE_DEBUG_RANGES_OFFSET_BAD(206)",
+ "DW_DLE_DEBUG_RANGES_MISSING_END(207)",
+ "DW_DLE_DEBUG_RANGES_OUT_OF_MEM(208)",
+ "DW_DLE_DEBUG_SYMTAB_ERR(209)",
+ "DW_DLE_DEBUG_STRTAB_ERR(210)",
+ "DW_DLE_RELOC_MISMATCH_INDEX(211)",
+ "DW_DLE_RELOC_MISMATCH_RELOC_INDEX(212)",
+ "DW_DLE_RELOC_MISMATCH_STRTAB_INDEX(213)",
+ "DW_DLE_RELOC_SECTION_MISMATCH(214)",
+ "DW_DLE_RELOC_SECTION_MISSING_INDEX(215)",
+ "DW_DLE_RELOC_SECTION_LENGTH_ODD(216)",
+ "DW_DLE_RELOC_SECTION_PTR_NULL(217)",
+ "DW_DLE_RELOC_SECTION_MALLOC_FAIL(218)",
+ "DW_DLE_NO_ELF64_SUPPORT(219)",
+ "DW_DLE_MISSING_ELF64_SUPPORT(220)",
+ "DW_DLE_ORPHAN_FDE(221)",
+ "DW_DLE_DUPLICATE_INST_BLOCK(222)",
+ "DW_DLE_BAD_REF_SIG8_FORM(223)",
+ "DW_DLE_ATTR_EXPRLOC_FORM_BAD(224)",
+ "DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD(225)",
+ "DW_DLE_NOT_REF_FORM(226)",
+ "DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE(227)"
};
@@ -304,48 +336,48 @@ _dwarf_error(Dwarf_Debug dbg, Dwarf_Error * error, Dwarf_Sword errval)
want to report the upper-level error, not this one. */
if (error != NULL) {
- /*
- If dbg is NULL, use the alternate error struct. However,
- this will overwrite the earlier error. */
- if (dbg != NULL) {
- errptr =
- (Dwarf_Error) _dwarf_get_alloc(dbg, DW_DLA_ERROR, 1);
- if (errptr == NULL) {
- fprintf(stderr,
- "Could not allocate Dwarf_Error structure, "
- "abort() in libdwarf.\n");
- abort();
- }
- } else {
- /* We have no dbg to work with. dwarf_init failed. We hack
- up a special area. */
- errptr = _dwarf_special_no_dbg_error_malloc();
- if (errptr == NULL) {
- fprintf(stderr,
- "Could not allocate Dwarf_Error structure, "
- "abort() in libdwarf..\n");
- abort();
- }
- }
-
- errptr->er_errval = errval;
- *error = errptr;
- return;
+ /*
+ If dbg is NULL, use the alternate error struct. However,
+ this will overwrite the earlier error. */
+ if (dbg != NULL) {
+ errptr =
+ (Dwarf_Error) _dwarf_get_alloc(dbg, DW_DLA_ERROR, 1);
+ if (errptr == NULL) {
+ fprintf(stderr,
+ "Could not allocate Dwarf_Error structure, "
+ "abort() in libdwarf.\n");
+ abort();
+ }
+ } else {
+ /* We have no dbg to work with. dwarf_init failed. We hack
+ up a special area. */
+ errptr = _dwarf_special_no_dbg_error_malloc();
+ if (errptr == NULL) {
+ fprintf(stderr,
+ "Could not allocate Dwarf_Error structure, "
+ "abort() in libdwarf..\n");
+ abort();
+ }
+ }
+
+ errptr->er_errval = errval;
+ *error = errptr;
+ return;
}
if (dbg != NULL && dbg->de_errhand != NULL) {
- errptr = (Dwarf_Error) _dwarf_get_alloc(dbg, DW_DLA_ERROR, 1);
- if (errptr == NULL) {
- fprintf(stderr, "Could not allocate Dwarf_Error structure,"
- " abort() in libdwarf.\n");
- abort();
- }
- errptr->er_errval = errval;
- dbg->de_errhand(errptr, dbg->de_errarg);
- return;
+ errptr = (Dwarf_Error) _dwarf_get_alloc(dbg, DW_DLA_ERROR, 1);
+ if (errptr == NULL) {
+ fprintf(stderr, "Could not allocate Dwarf_Error structure,"
+ " abort() in libdwarf.\n");
+ abort();
+ }
+ errptr->er_errval = errval;
+ dbg->de_errhand(errptr, dbg->de_errarg);
+ return;
}
fprintf(stderr,
- "abort() in libdwarf. No error argument, no handler.\n");
+ "abort() in libdwarf. No error argument, no handler.\n");
abort();
}
@@ -354,7 +386,7 @@ Dwarf_Unsigned
dwarf_errno(Dwarf_Error error)
{
if (error == NULL) {
- return (0);
+ return (0);
}
return (error->er_errval);
@@ -367,11 +399,11 @@ char *
dwarf_errmsg(Dwarf_Error error)
{
if (error == NULL) {
- return "Dwarf_Error is NULL";
+ return "Dwarf_Error is NULL";
}
if (error->er_errval > (sizeof(_dwarf_errmsgs) / sizeof(char *))) {
- return "Dwarf_Error value out of range";
+ return "Dwarf_Error value out of range";
}
return ((char *) _dwarf_errmsgs[error->er_errval]);
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_error.h b/usr/src/tools/ctf/dwarf/common/dwarf_error.h
index 49096785e7..27acf70db0 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_error.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_error.h
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_form.c b/usr/src/tools/ctf/dwarf/common/dwarf_form.c
index 2bdf7ebedf..fcdd64230c 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_form.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_form.c
@@ -1,6 +1,8 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004,2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2007-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2008-2010 David Anderson. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +21,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -41,25 +43,25 @@
int
dwarf_hasform(Dwarf_Attribute attr,
- Dwarf_Half form,
- Dwarf_Bool * return_bool, Dwarf_Error * error)
+ Dwarf_Half form,
+ Dwarf_Bool * return_bool, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
*return_bool = (attr->ar_attribute_form == form);
@@ -71,38 +73,133 @@ dwarf_hasform(Dwarf_Attribute attr,
*/
int
dwarf_whatform_direct(Dwarf_Attribute attr,
- Dwarf_Half * return_form, Dwarf_Error * error)
+ Dwarf_Half * return_form, Dwarf_Error * error)
{
int res = dwarf_whatform(attr, return_form, error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
*return_form = attr->ar_attribute_form_direct;
return (DW_DLV_OK);
}
+void *
+dwarf_uncompress_integer_block(
+ Dwarf_Debug dbg,
+ Dwarf_Bool unit_is_signed,
+ Dwarf_Small unit_length_in_bits,
+ void* input_block,
+ Dwarf_Unsigned input_length_in_bytes,
+ Dwarf_Unsigned* output_length_in_units_ptr,
+ Dwarf_Error* error
+)
+{
+ Dwarf_Unsigned output_length_in_units = 0;
+ void * output_block = 0;
+ int i = 0;
+ char * ptr = 0;
+ int remain = 0;
+ Dwarf_sfixed * array = 0;
+
+ if (dbg == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return((void *)DW_DLV_BADADDR);
+ }
+
+ if (unit_is_signed == false ||
+ unit_length_in_bits != 32 ||
+ input_block == NULL ||
+ input_length_in_bytes == 0 ||
+ output_length_in_units_ptr == NULL) {
+
+ _dwarf_error(NULL, error, DW_DLE_BADBITC);
+ return ((void *) DW_DLV_BADADDR);
+ }
+
+ /* At this point we assume the format is: signed 32 bit */
+
+ /* first uncompress everything to find the total size. */
+
+ output_length_in_units = 0;
+ remain = input_length_in_bytes;
+ ptr = input_block;
+ while (remain > 0) {
+ Dwarf_Signed num;
+ Dwarf_Word len;
+ num = _dwarf_decode_s_leb128((unsigned char *)ptr, &len);
+ ptr += len;
+ remain -= len;
+ output_length_in_units++;
+ }
+
+ if (remain != 0) {
+ _dwarf_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return((void *)DW_DLV_BADADDR);
+ }
+
+ /* then alloc */
+
+ output_block = (void *)
+ _dwarf_get_alloc(dbg,
+ DW_DLA_STRING,
+ output_length_in_units * (unit_length_in_bits / 8));
+ if (output_block == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((void*)DW_DLV_BADADDR);
+ }
+
+ /* then uncompress again and copy into new buffer */
+
+ array = (Dwarf_sfixed *) output_block;
+ remain = input_length_in_bytes;
+ ptr = input_block;
+ for (i=0; i<output_length_in_units && remain>0; i++) {
+ Dwarf_Signed num;
+ Dwarf_Word len;
+ num = _dwarf_decode_s_leb128((unsigned char *)ptr, &len);
+ ptr += len;
+ remain -= len;
+ array[i] = num;
+ }
+
+ if (remain != 0) {
+ dwarf_dealloc(dbg, (unsigned char *)output_block, DW_DLA_STRING);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+
+ *output_length_in_units_ptr = output_length_in_units;
+ return output_block;
+}
+
+void
+dwarf_dealloc_uncompressed_block(Dwarf_Debug dbg, void * space)
+{
+ dwarf_dealloc(dbg, space, DW_DLA_STRING);
+}
+
int
dwarf_whatform(Dwarf_Attribute attr,
- Dwarf_Half * return_form, Dwarf_Error * error)
+ Dwarf_Half * return_form, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
*return_form = attr->ar_attribute_form;
@@ -117,24 +214,24 @@ dwarf_whatform(Dwarf_Attribute attr,
*/
int
dwarf_whatattr(Dwarf_Attribute attr,
- Dwarf_Half * return_attr, Dwarf_Error * error)
+ Dwarf_Half * return_attr, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
*return_attr = (attr->ar_attribute);
@@ -143,216 +240,325 @@ dwarf_whatattr(Dwarf_Attribute attr,
/*
+ A global offset cannot be returned by this interface:
+ see dwarf_global_formref().
+
DW_FORM_ref_addr is considered an incorrect form
- for this call because this function returns an
- offset within the local CU thru the pointer.
+ for this call because DW_FORM_ref_addr is a global-offset into
+ the debug_info section.
+
+ For the same reason DW_FORM_data4/data8 are not returned
+ from this function.
+
+ For the same reason DW_FORM_sec_offset is not returned
+ from this function, DW_FORM_sec_offset is a global offset
+ (to various sections, not a CU relative offset.
+
+ DW_FORM_ref_addr has a value which was documented in
+ DWARF2 as address-size but which was always an offset
+ so should have always been offset size (wording
+ corrected in DWARF3).
- DW_FORM_ref_addr has a value which is an address-size value which
- is a global-offset into the debug_info section.
- A DW_FORM_ref_addr cannot be returned by this interface:
- see dwarf_global_formref();
*/
int
dwarf_formref(Dwarf_Attribute attr,
- Dwarf_Off * ret_offset, Dwarf_Error * error)
+ Dwarf_Off * ret_offset, Dwarf_Error * error)
{
- Dwarf_Debug dbg;
- Dwarf_Unsigned offset;
- Dwarf_CU_Context cu_context;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Unsigned offset = 0;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
dbg = cu_context->cc_dbg;
switch (attr->ar_attribute_form) {
case DW_FORM_ref1:
- offset = *(Dwarf_Small *) attr->ar_debug_info_ptr;
- break;
+ offset = *(Dwarf_Small *) attr->ar_debug_info_ptr;
+ break;
case DW_FORM_ref2:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
- break;
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
+ break;
case DW_FORM_ref4:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
- break;
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
+ break;
case DW_FORM_ref8:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_Unsigned));
- break;
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Unsigned));
+ break;
case DW_FORM_ref_udata:
- offset = _dwarf_decode_u_leb128(attr->ar_debug_info_ptr, NULL);
- break;
+ offset = _dwarf_decode_u_leb128(attr->ar_debug_info_ptr, NULL);
+ break;
default:
- _dwarf_error(dbg, error, DW_DLE_BAD_REF_FORM);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_BAD_REF_FORM);
+ return (DW_DLV_ERROR);
}
/* Check that offset is within current cu portion of .debug_info. */
-
if (offset >= cu_context->cc_length +
- cu_context->cc_length_size + cu_context->cc_extension_size) {
- _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_OFFSET_BAD);
- return (DW_DLV_ERROR);
+ cu_context->cc_length_size + cu_context->cc_extension_size) {
+ _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_OFFSET_BAD);
+ return (DW_DLV_ERROR);
}
*ret_offset = (offset);
return DW_DLV_OK;
}
+/* dwarf_formsig8 returns in the caller-provided 8 byte area
+ the 8 bytes of a DW_FORM_ref_sig8 (copying the bytes
+ directly to the caller). Not a string, an 8 byte
+ MD5 hash. This function is new in DWARF4 libdwarf.
+*/
+int dwarf_formsig8(Dwarf_Attribute attr,
+ Dwarf_Sig8 * returned_sig_bytes,
+ Dwarf_Error* error)
+{
+ Dwarf_Debug dbg = 0;
+ Dwarf_Unsigned field_end_offset = 0;
+ Dwarf_CU_Context cu_context = 0;
+
+
+ if (attr == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
+ }
+
+ cu_context = attr->ar_cu_context;
+ if (cu_context == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
+ }
+
+ if (cu_context->cc_dbg == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
+ }
+ dbg = cu_context->cc_dbg;
+
+ if(attr->ar_attribute_form != DW_FORM_ref_sig8 ) {
+ _dwarf_error(dbg, error, DW_DLE_BAD_REF_SIG8_FORM);
+ return (DW_DLV_ERROR);
+ }
+
+ field_end_offset = attr->ar_debug_info_ptr + sizeof(Dwarf_Sig8) -
+ (dbg->de_debug_info.dss_data + cu_context->cc_debug_info_offset);
+ /* Check that offset is within current cu portion of .debug_info. */
+ if (field_end_offset > cu_context->cc_length +
+ cu_context->cc_length_size + cu_context->cc_extension_size) {
+ _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+
+ memcpy(returned_sig_bytes, attr->ar_debug_info_ptr,
+ sizeof(Dwarf_Sig8));
+ return DW_DLV_OK;
+}
+
+
/*
- Since this returns section-relative debug_info offsets,
- this can represent all REFERENCE forms correctly
- and allows all forms.
+ Since this returns section-relative debug_info offsets,
+ this can represent all REFERENCE forms correctly
+ and allows all applicable forms.
+
+ DW_FORM_ref_addr has a value which was documented in
+ DWARF2 as address-size but which was always an offset
+ so should have always been offset size (wording
+ corrected in DWARF3).
+
+ See the DWARF4 document for the 3 cases fitting
+ reference forms. The caller must determine which section the
+ reference 'points' to. The function added in November 2009,
+ dwarf_get_form_class(), helps in this regard.
*/
int
dwarf_global_formref(Dwarf_Attribute attr,
- Dwarf_Off * ret_offset, Dwarf_Error * error)
+ Dwarf_Off * ret_offset, Dwarf_Error * error)
{
- Dwarf_Debug dbg;
- Dwarf_Unsigned offset;
- Dwarf_Addr ref_addr;
- Dwarf_CU_Context cu_context;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Unsigned offset = 0;
+ Dwarf_Addr ref_addr = 0;
+ Dwarf_CU_Context cu_context = 0;
+ Dwarf_Half context_version = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
+ context_version = cu_context->cc_version_stamp;
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
dbg = cu_context->cc_dbg;
switch (attr->ar_attribute_form) {
case DW_FORM_ref1:
- offset = *(Dwarf_Small *) attr->ar_debug_info_ptr;
- goto fixoffset;
+ offset = *(Dwarf_Small *) attr->ar_debug_info_ptr;
+ goto fixoffset;
case DW_FORM_ref2:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
- goto fixoffset;
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
+ goto fixoffset;
case DW_FORM_ref4:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
- goto fixoffset;
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
+ goto fixoffset;
case DW_FORM_ref8:
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_Unsigned));
- goto fixoffset;
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Unsigned));
+ goto fixoffset;
case DW_FORM_ref_udata:
- offset = _dwarf_decode_u_leb128(attr->ar_debug_info_ptr, NULL);
-
- fixoffset: /* we have a local offset, make it
- global */
-
- /* check legality of offset */
- if (offset >= cu_context->cc_length +
- cu_context->cc_length_size +
- cu_context->cc_extension_size) {
- _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_OFFSET_BAD);
- return (DW_DLV_ERROR);
- }
-
- /* globalize the offset */
- offset += cu_context->cc_debug_info_offset;
- break;
-
+ offset = _dwarf_decode_u_leb128(attr->ar_debug_info_ptr, NULL);
+
+ fixoffset: /* we have a local offset, make it
+ global */
+
+ /* check legality of offset */
+ if (offset >= cu_context->cc_length +
+ cu_context->cc_length_size +
+ cu_context->cc_extension_size) {
+ _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+
+ /* globalize the offset */
+ offset += cu_context->cc_debug_info_offset;
+ break;
+ /* The DWARF2 document did not make clear that
+ DW_FORM_data4( and 8) were references with
+ global offsets to some section.
+ That was first clearly documented in DWARF3.
+ In DWARF4 these two forms are no longer references. */
+ case DW_FORM_data4:
+ if(context_version == DW_CU_VERSION4) {
+ _dwarf_error(dbg, error, DW_DLE_NOT_REF_FORM);
+ return (DW_DLV_ERROR);
+ }
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
+ /* The offset is global. */
+ break;
+ case DW_FORM_data8:
+ if(context_version == DW_CU_VERSION4) {
+ _dwarf_error(dbg, error, DW_DLE_NOT_REF_FORM);
+ return (DW_DLV_ERROR);
+ }
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Unsigned));
+ /* The offset is global. */
+ break;
case DW_FORM_ref_addr:
- /* This offset is defined to be debug_info global already, so
- use this value unaltered. */
- READ_UNALIGNED(dbg, ref_addr, Dwarf_Addr,
- attr->ar_debug_info_ptr,
- cu_context->cc_length_size);
- offset = ref_addr;
- break;
+ case DW_FORM_sec_offset:
+ {
+ /* DW_FORM_sec_offset first exists in DWARF4.*/
+ /* It is up to the caller to know what the offset
+ of DW_FORM_sec_offset refers to,
+ the offset is not going to refer to .debug_info! */
+ unsigned length_size = cu_context->cc_length_size;
+ if(length_size == 4) {
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
+ } else if (length_size == 8) {
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Unsigned));
+ } else {
+ _dwarf_error(dbg, error, DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD);
+ return (DW_DLV_ERROR);
+ }
+ }
+ break;
+
default:
- _dwarf_error(dbg, error, DW_DLE_BAD_REF_FORM);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_BAD_REF_FORM);
+ return (DW_DLV_ERROR);
}
- /* Check that offset is within current cu portion of .debug_info. */
-
- *ret_offset = (offset);
+ /* We do not know what section the offset refers to, so
+ we have no way to check it for correctness. */
+ *ret_offset = offset;
return DW_DLV_OK;
}
int
dwarf_formaddr(Dwarf_Attribute attr,
- Dwarf_Addr * return_addr, Dwarf_Error * error)
+ Dwarf_Addr * return_addr, Dwarf_Error * error)
{
- Dwarf_Debug dbg;
- Dwarf_Addr ret_addr;
- Dwarf_CU_Context cu_context;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Addr ret_addr = 0;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
dbg = cu_context->cc_dbg;
if (attr->ar_attribute_form == DW_FORM_addr
- /* || attr->ar_attribute_form == DW_FORM_ref_addr Allowance of
- DW_FORM_ref_addr was a mistake. The value returned in that
- case is NOT an address it is a global debug_info offset (ie,
- not CU-relative offset within the CU in debug_info). The
- Dwarf document refers to it as an address (misleadingly) in
- sec 6.5.4 where it describes the reference form. It is
- address-sized so that the linker can easily update it, but
- it is a reference inside the debug_info section. No longer
- allowed. */
- ) {
-
- READ_UNALIGNED(dbg, ret_addr, Dwarf_Addr,
- attr->ar_debug_info_ptr, dbg->de_pointer_size);
- *return_addr = ret_addr;
- return (DW_DLV_OK);
+ /* || attr->ar_attribute_form == DW_FORM_ref_addr Allowance of
+ DW_FORM_ref_addr was a mistake. The value returned in that
+ case is NOT an address it is a global debug_info offset (ie,
+ not CU-relative offset within the CU in debug_info). The
+ Dwarf document refers to it as an address (misleadingly) in
+ sec 6.5.4 where it describes the reference form. It is
+ address-sized so that the linker can easily update it, but
+ it is a reference inside the debug_info section. No longer
+ allowed. */
+ ) {
+
+ READ_UNALIGNED(dbg, ret_addr, Dwarf_Addr,
+ attr->ar_debug_info_ptr,
+ cu_context->cc_address_size);
+ *return_addr = ret_addr;
+ return (DW_DLV_OK);
}
_dwarf_error(dbg, error, DW_DLE_ATTR_FORM_BAD);
@@ -362,29 +568,35 @@ dwarf_formaddr(Dwarf_Attribute attr,
int
dwarf_formflag(Dwarf_Attribute attr,
- Dwarf_Bool * ret_bool, Dwarf_Error * error)
+ Dwarf_Bool * ret_bool, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
+ }
+ if (attr->ar_attribute_form == DW_FORM_flag_present) {
+ /* Implicit means we don't read any data at all. Just
+ the existence of the Form does it. DWARF4. */
+ *ret_bool = 1;
+ return (DW_DLV_OK);
}
if (attr->ar_attribute_form == DW_FORM_flag) {
- *ret_bool = (*(Dwarf_Small *) attr->ar_debug_info_ptr != 0);
- return (DW_DLV_OK);
+ *ret_bool = (*(Dwarf_Small *) attr->ar_debug_info_ptr != 0);
+ return (DW_DLV_OK);
}
_dwarf_error(cu_context->cc_dbg, error, DW_DLE_ATTR_FORM_BAD);
return (DW_DLV_ERROR);
@@ -393,74 +605,77 @@ dwarf_formflag(Dwarf_Attribute attr,
int
dwarf_formudata(Dwarf_Attribute attr,
- Dwarf_Unsigned * return_uval, Dwarf_Error * error)
+ Dwarf_Unsigned * return_uval, Dwarf_Error * error)
{
- Dwarf_Unsigned ret_value;
- Dwarf_Debug dbg;
- Dwarf_CU_Context cu_context;
+ Dwarf_Unsigned ret_value = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
dbg = cu_context->cc_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
switch (attr->ar_attribute_form) {
case DW_FORM_data1:
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_Small));
- *return_uval = ret_value;
- return DW_DLV_OK;
-
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Small));
+ *return_uval = ret_value;
+ return DW_DLV_OK;
+
+ /* READ_UNALIGNED does the right thing as it reads
+ the right number bits and generates host order.
+ So we can just assign to *return_uval. */
case DW_FORM_data2:{
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
- *return_uval = ret_value;
- return DW_DLV_OK;
- }
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
+ *return_uval = ret_value;
+ return DW_DLV_OK;
+ }
case DW_FORM_data4:{
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- attr->ar_debug_info_ptr,
- sizeof(Dwarf_ufixed));
- *return_uval = ret_value;
- return DW_DLV_OK;
- }
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr,
+ sizeof(Dwarf_ufixed));
+ *return_uval = ret_value;
+ return DW_DLV_OK;
+ }
case DW_FORM_data8:{
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- attr->ar_debug_info_ptr,
- sizeof(Dwarf_Unsigned));
- *return_uval = ret_value;
- return DW_DLV_OK;
- }
-
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr,
+ sizeof(Dwarf_Unsigned));
+ *return_uval = ret_value;
+ return DW_DLV_OK;
+ }
+ break;
case DW_FORM_udata:
- ret_value =
- (_dwarf_decode_u_leb128(attr->ar_debug_info_ptr, NULL));
- *return_uval = ret_value;
- return DW_DLV_OK;
+ ret_value =
+ (_dwarf_decode_u_leb128(attr->ar_debug_info_ptr, NULL));
+ *return_uval = ret_value;
+ return DW_DLV_OK;
- /* see bug 583450. We do not allow reading sdata from a udata
- value. Caller can retry, calling sdata */
+ /* see bug 583450. We do not allow reading sdata from a udata
+ value. Caller can retry, calling sdata */
default:
- break;
+ break;
}
_dwarf_error(dbg, error, DW_DLE_ATTR_FORM_BAD);
return (DW_DLV_ERROR);
@@ -469,73 +684,76 @@ dwarf_formudata(Dwarf_Attribute attr,
int
dwarf_formsdata(Dwarf_Attribute attr,
- Dwarf_Signed * return_sval, Dwarf_Error * error)
+ Dwarf_Signed * return_sval, Dwarf_Error * error)
{
- Dwarf_Signed ret_value;
- Dwarf_Debug dbg;
- Dwarf_CU_Context cu_context;
+ Dwarf_Signed ret_value = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_CU_Context cu_context = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
dbg = cu_context->cc_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
switch (attr->ar_attribute_form) {
case DW_FORM_data1:
- *return_sval = (*(Dwarf_Sbyte *) attr->ar_debug_info_ptr);
- return DW_DLV_OK;
+ *return_sval = (*(Dwarf_Sbyte *) attr->ar_debug_info_ptr);
+ return DW_DLV_OK;
+ /* READ_UNALIGNED does not sign extend.
+ So we have to use a cast to get the
+ value sign extended in the right way for each case. */
case DW_FORM_data2:{
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- attr->ar_debug_info_ptr,
- sizeof(Dwarf_Shalf));
- *return_sval = (Dwarf_Shalf) ret_value;
- return DW_DLV_OK;
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Signed,
+ attr->ar_debug_info_ptr,
+ sizeof(Dwarf_Shalf));
+ *return_sval = (Dwarf_Shalf) ret_value;
+ return DW_DLV_OK;
- }
+ }
case DW_FORM_data4:{
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- attr->ar_debug_info_ptr,
- sizeof(Dwarf_sfixed));
- *return_sval = (Dwarf_Sword) ret_value;
- return DW_DLV_OK;
- }
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Signed,
+ attr->ar_debug_info_ptr,
+ sizeof(Dwarf_sfixed));
+ *return_sval = (Dwarf_sfixed) ret_value;
+ return DW_DLV_OK;
+ }
case DW_FORM_data8:{
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- attr->ar_debug_info_ptr,
- sizeof(Dwarf_Signed));
- *return_sval = (Dwarf_Signed) ret_value;
- return DW_DLV_OK;
- }
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Signed,
+ attr->ar_debug_info_ptr,
+ sizeof(Dwarf_Signed));
+ *return_sval = (Dwarf_Signed) ret_value;
+ return DW_DLV_OK;
+ }
case DW_FORM_sdata:
- ret_value =
- (_dwarf_decode_s_leb128(attr->ar_debug_info_ptr, NULL));
- *return_sval = ret_value;
- return DW_DLV_OK;
+ ret_value =
+ (_dwarf_decode_s_leb128(attr->ar_debug_info_ptr, NULL));
+ *return_sval = ret_value;
+ return DW_DLV_OK;
- /* see bug 583450. We do not allow reading sdata from a udata
- value. Caller can retry, calling sdata */
+ /* see bug 583450. We do not allow reading sdata from a udata
+ value. Caller can retry, calling sdata */
default:
- break;
+ break;
}
_dwarf_error(dbg, error, DW_DLE_ATTR_FORM_BAD);
return (DW_DLV_ERROR);
@@ -544,81 +762,81 @@ dwarf_formsdata(Dwarf_Attribute attr,
int
dwarf_formblock(Dwarf_Attribute attr,
- Dwarf_Block ** return_block, Dwarf_Error * error)
+ Dwarf_Block ** return_block, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
- Dwarf_Debug dbg;
- Dwarf_Unsigned length;
- Dwarf_Small *data;
- Dwarf_Word leb128_length;
- Dwarf_Block *ret_block;
+ Dwarf_CU_Context cu_context = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Unsigned length = 0;
+ Dwarf_Small *data = 0;
+ Dwarf_Word leb128_length = 0;
+ Dwarf_Block *ret_block = 0;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
dbg = cu_context->cc_dbg;
switch (attr->ar_attribute_form) {
case DW_FORM_block1:
- length = *(Dwarf_Small *) attr->ar_debug_info_ptr;
- data = attr->ar_debug_info_ptr + sizeof(Dwarf_Small);
- break;
+ length = *(Dwarf_Small *) attr->ar_debug_info_ptr;
+ data = attr->ar_debug_info_ptr + sizeof(Dwarf_Small);
+ break;
case DW_FORM_block2:
- READ_UNALIGNED(dbg, length, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
- data = attr->ar_debug_info_ptr + sizeof(Dwarf_Half);
- break;
+ READ_UNALIGNED(dbg, length, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_Half));
+ data = attr->ar_debug_info_ptr + sizeof(Dwarf_Half);
+ break;
case DW_FORM_block4:
- READ_UNALIGNED(dbg, length, Dwarf_Unsigned,
- attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
- data = attr->ar_debug_info_ptr + sizeof(Dwarf_ufixed);
- break;
+ READ_UNALIGNED(dbg, length, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr, sizeof(Dwarf_ufixed));
+ data = attr->ar_debug_info_ptr + sizeof(Dwarf_ufixed);
+ break;
case DW_FORM_block:
- length = _dwarf_decode_u_leb128(attr->ar_debug_info_ptr,
- &leb128_length);
- data = attr->ar_debug_info_ptr + leb128_length;
- break;
+ length = _dwarf_decode_u_leb128(attr->ar_debug_info_ptr,
+ &leb128_length);
+ data = attr->ar_debug_info_ptr + leb128_length;
+ break;
default:
- _dwarf_error(cu_context->cc_dbg, error, DW_DLE_ATTR_FORM_BAD);
- return (DW_DLV_ERROR);
+ _dwarf_error(cu_context->cc_dbg, error, DW_DLE_ATTR_FORM_BAD);
+ return (DW_DLV_ERROR);
}
/* Check that block lies within current cu in .debug_info. */
if (attr->ar_debug_info_ptr + length >=
- dbg->de_debug_info + cu_context->cc_debug_info_offset +
- cu_context->cc_length + cu_context->cc_length_size +
- cu_context->cc_extension_size) {
- _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_SIZE_BAD);
- return (DW_DLV_ERROR);
+ dbg->de_debug_info.dss_data + cu_context->cc_debug_info_offset +
+ cu_context->cc_length + cu_context->cc_length_size +
+ cu_context->cc_extension_size) {
+ _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_SIZE_BAD);
+ return (DW_DLV_ERROR);
}
ret_block = (Dwarf_Block *) _dwarf_get_alloc(dbg, DW_DLA_BLOCK, 1);
if (ret_block == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
ret_block->bl_len = length;
ret_block->bl_data = (Dwarf_Ptr) data;
ret_block->bl_from_loclist = 0;
- ret_block->bl_section_offset = data - dbg->de_debug_info;
+ ret_block->bl_section_offset = data - dbg->de_debug_info.dss_data;
*return_block = ret_block;
@@ -626,69 +844,120 @@ dwarf_formblock(Dwarf_Attribute attr,
}
+/* Contrary to long standing documentation,
+ The string pointer returned thru return_str must
+ never have dwarf_dealloc() applied to it.
+ Documentation fixed July 2005.
+*/
int
dwarf_formstring(Dwarf_Attribute attr,
- char **return_str, Dwarf_Error * error)
+ char **return_str, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
- Dwarf_Debug dbg;
- Dwarf_Unsigned offset;
- int res;
+ Dwarf_CU_Context cu_context = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Unsigned offset = 0;
+ int res = DW_DLV_ERROR;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
cu_context = attr->ar_cu_context;
if (cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
if (cu_context->cc_dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
dbg = cu_context->cc_dbg;
if (attr->ar_attribute_form == DW_FORM_string) {
- void *begin = attr->ar_debug_info_ptr;
+ void *begin = attr->ar_debug_info_ptr;
- if (0 == dbg->de_assume_string_in_bounds) {
- /* Check that string lies within current cu in .debug_info.
- */
- void *end = dbg->de_debug_info +
- cu_context->cc_debug_info_offset +
- cu_context->cc_length + cu_context->cc_length_size +
- cu_context->cc_extension_size;
- if (0 == _dwarf_string_valid(begin, end)) {
- _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_SIZE_BAD);
- return (DW_DLV_ERROR);
- }
- }
- *return_str = (char *) (begin);
- return DW_DLV_OK;
+ if (0 == dbg->de_assume_string_in_bounds) {
+ /* Check that string lies within current cu in .debug_info.
+ */
+ void *end = dbg->de_debug_info.dss_data +
+ cu_context->cc_debug_info_offset +
+ cu_context->cc_length + cu_context->cc_length_size +
+ cu_context->cc_extension_size;
+ if (0 == _dwarf_string_valid(begin, end)) {
+ _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_SIZE_BAD);
+ return (DW_DLV_ERROR);
+ }
+ }
+ *return_str = (char *) (begin);
+ return DW_DLV_OK;
}
if (attr->ar_attribute_form == DW_FORM_strp) {
- READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
- attr->ar_debug_info_ptr,
- cu_context->cc_length_size);
+ READ_UNALIGNED(dbg, offset, Dwarf_Unsigned,
+ attr->ar_debug_info_ptr,
+ cu_context->cc_length_size);
+
+ res = _dwarf_load_section(dbg, &dbg->de_debug_str,error);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ if (0 == dbg->de_assume_string_in_bounds) {
+ /* Check that string lies within current cu in .debug_info.
+ */
+ void *end = dbg->de_debug_str.dss_data +
+ dbg->de_debug_str.dss_size;
+ void*begin = dbg->de_debug_str.dss_data + offset;
+ if (0 == _dwarf_string_valid(begin, end)) {
+ _dwarf_error(dbg, error, DW_DLE_STRP_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+ }
+ *return_str = (char *) (dbg->de_debug_str.dss_data + offset);
+ return DW_DLV_OK;
+ }
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_str_index,
- &dbg->de_debug_str, error);
- if (res != DW_DLV_OK) {
- return res;
- }
+ _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_BAD);
+ return (DW_DLV_ERROR);
+}
- *return_str = (char *) (dbg->de_debug_str + offset);
- return DW_DLV_OK;
+int
+dwarf_formexprloc(Dwarf_Attribute attr,
+ Dwarf_Unsigned * return_exprlen,
+ Dwarf_Ptr * block_ptr,
+ Dwarf_Error * error)
+{
+ Dwarf_Debug dbg = 0;
+ Dwarf_CU_Context cu_context = 0;
+
+ if (attr == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
- _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_BAD);
+ cu_context = attr->ar_cu_context;
+ if (cu_context == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
+ }
+
+ dbg = cu_context->cc_dbg;
+ if (dbg == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
+ }
+
+ if (attr->ar_attribute_form == DW_FORM_exprloc ) {
+ Dwarf_Unsigned exprlen =
+ (_dwarf_decode_u_leb128(attr->ar_debug_info_ptr, NULL));
+ Dwarf_Small * addr = attr->ar_debug_info_ptr;
+ *return_exprlen = exprlen;
+ *block_ptr = addr + exprlen;
+ return DW_DLV_OK;
+
+ }
+ _dwarf_error(dbg, error, DW_DLE_ATTR_EXPRLOC_FORM_BAD);
return (DW_DLV_ERROR);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_frame.c b/usr/src/tools/ctf/dwarf/common/dwarf_frame.c
index be671d6639..3a825ee925 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_frame.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_frame.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,13 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
@@ -39,22 +47,42 @@
#include "dwarf_incl.h"
#include <stdio.h>
#include <stdlib.h>
+#include <sys/types.h>
#include "dwarf_frame.h"
-#include "dwarf_arange.h" /* using Arange as a way to build a
- list */
+#include "dwarf_arange.h" /* Using Arange as a way to build a
+ list */
+
+#define FDE_NULL_CHECKS_AND_SET_DBG(fde,dbg ) \
+ do { \
+ if ((fde) == NULL) { \
+ _dwarf_error(NULL, error, DW_DLE_FDE_NULL); \
+ return (DW_DLV_ERROR); \
+ } \
+ (dbg)= (fde)->fd_dbg; \
+ if ((dbg) == NULL) { \
+ _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);\
+ return (DW_DLV_ERROR); \
+ } } while (0)
+
+
+#define MIN(a,b) (((a) < (b))? a:b)
+
+static void _dwarf_init_regrule_table(struct Dwarf_Reg_Rule_s *t1reg,
+ int last_reg_num,
+ int initial_value);
+static int dwarf_initialize_fde_table(Dwarf_Debug dbg,
+ struct Dwarf_Frame_s *fde_table,
+ unsigned table_real_data_size,
+ Dwarf_Error * error);
+static void dwarf_free_fde_table(struct Dwarf_Frame_s *fde_table);
+
+#if 0
+/* Only used for debugging libdwarf. */
+static void dump_frame_rule(char *msg,
+ struct Dwarf_Reg_Rule_s *reg_rule);
+#endif
-static int
- __dwarf_get_fde_list_internal(Dwarf_Debug dbg,
- Dwarf_Cie ** cie_data,
- Dwarf_Signed * cie_element_count,
- Dwarf_Fde ** fde_data,
- Dwarf_Signed * fde_element_count,
- Dwarf_Small * section_ptr,
- Dwarf_Unsigned section_length,
- Dwarf_Unsigned cie_id_value,
- int use_gnu_cie_calc,
- Dwarf_Error * error);
/*
This function is the heart of the debug_frame stuff. Don't even
@@ -76,13 +104,13 @@ static int
If successful, returns DW_DLV_OK
- And sets returned_count thru the pointer
- if make_instr is true.
- If make_instr is false returned_count
- should NOT be used by the caller (returned_count
- is set to 0 thru the pointer by this routine...)
+ And sets returned_count thru the pointer
+ if make_instr is true.
+ If make_instr is false returned_count
+ should NOT be used by the caller (returned_count
+ is set to 0 thru the pointer by this routine...)
If unsuccessful, returns DW_DLV_ERROR
- and sets returned_error to the error code
+ and sets returned_error to the error code
It does not do a whole lot of input validation being a private
function. Please make sure inputs are valid.
@@ -104,57 +132,78 @@ static int
(3) This function is also used to create the initial table row
defined by a Cie. In this case, the Dwarf_Cie pointer cie, is
NULL. For an FDE, however, cie points to the associated Cie.
+
+ make_instr - make list of frame instr? 0/1
+ ret_frame_instr - Ptr to list of ptrs to frame instrs
+ search_pc - Search for a pc value? 0/1
+ search_pc_val - Search for this pc value
+ initial_loc - Initial code location value.
+ start_instr_ptr - Ptr to start of frame instrs.
+ final_instr_ptr - Ptr just past frame instrs.
+ table - Ptr to struct with last row.
+ cie - Ptr to Cie used by the Fde.
+ Different cies may have distinct address-sizes, so the cie
+ is used, not de_pointer_size.
+
*/
-static int
-_dwarf_exec_frame_instr(Dwarf_Bool make_instr, /* Make list of frame
- instr? */
- Dwarf_Frame_Op ** ret_frame_instr, /* Ptr
- to
- list
- of
- ptrs
- to
- fr
- instrs
- */
- Dwarf_Bool search_pc, /* Search for a pc
- value? */
- Dwarf_Addr search_pc_val, /* Search for
- this pc
- value */
- Dwarf_Addr loc, /* initial location value */
- Dwarf_Small * start_instr_ptr, /* Ptr to start
- of frame
- instrs. */
- Dwarf_Small * final_instr_ptr, /* Ptr just
- past frame
- instrs. */
- Dwarf_Frame table, /* Ptr to struct with
- last row. */
- Dwarf_Cie cie, /* Ptr to Cie used by the Fde.
- */
- Dwarf_Debug dbg, /* Associated
- Dwarf_Debug */
- Dwarf_Sword * returned_count,
- int *returned_error)
+
+int
+_dwarf_exec_frame_instr(Dwarf_Bool make_instr,
+ Dwarf_Frame_Op ** ret_frame_instr,
+ Dwarf_Bool search_pc,
+ Dwarf_Addr search_pc_val,
+ Dwarf_Addr initial_loc,
+ Dwarf_Small * start_instr_ptr,
+ Dwarf_Small * final_instr_ptr,
+ Dwarf_Frame table,
+ Dwarf_Cie cie,
+ Dwarf_Debug dbg,
+ Dwarf_Half reg_num_of_cfa,
+ Dwarf_Sword * returned_count,
+ int *returned_error)
{
+#define ERROR_IF_REG_NUM_TOO_HIGH(macreg,machigh_reg) \
+ do { \
+ if ((macreg) >= (machigh_reg) || (macreg) < 0) { \
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_REG_NUM_TOO_HIGH); \
+ } \
+ } /*CONSTCOND */ while(0)
+#define SIMPLE_ERROR_RETURN(code) \
+ free(localregtab); \
+ *returned_error = code; \
+ return DW_DLV_ERROR
+
/* Sweeps the frame instructions. */
Dwarf_Small *instr_ptr;
- /* Obvious from the documents. */
- Dwarf_Small instr, opcode;
- Dwarf_Small reg_no, reg_noA, reg_noB;
+ /* Register numbers not limited to just 255, thus not using
+ Dwarf_Small. */
+ typedef int reg_num_type;
+
Dwarf_Unsigned factored_N_value;
- Dwarf_Addr new_loc; /* must be min de_pointer_size bytes */
- Dwarf_Unsigned adv_loc; /* must be min de_pointer_size bytes
- and must be at least sizeof
- Dwarf_ufixed */
+ Dwarf_Signed signed_factored_N_value;
+ Dwarf_Addr current_loc = initial_loc; /* code location/
+ pc-value
+ corresponding to the
+ frame instructions.
+ Starts at zero when
+ the caller has no
+ value to pass in. */
- struct Dwarf_Reg_Rule_s reg[DW_FRAME_LAST_REG_NUM];
+ /* Must be min de_pointer_size bytes and must be at least sizeof
+ Dwarf_ufixed */
+ Dwarf_Unsigned adv_loc = 0;
+
+ int reg_count = dbg->de_frame_reg_rules_entry_count;
+ struct Dwarf_Reg_Rule_s *localregtab = calloc(reg_count,
+ sizeof(struct
+ Dwarf_Reg_Rule_s));
+
+ struct Dwarf_Reg_Rule_s cfa_reg;
/* This is used to end executing frame instructions. */
- /* Becomes true when search_pc is true and loc */
+ /* Becomes true when search_pc is true and current_loc */
/* is greater than search_pc_val. */
Dwarf_Bool search_over = false;
@@ -166,6 +215,9 @@ _dwarf_exec_frame_instr(Dwarf_Bool make_instr, /* Make list of frame
/* an leb128 encoded number. */
Dwarf_Word leb128_length;
+ Dwarf_Half address_size = (cie)? cie->ci_address_size:
+ dbg->de_pointer_size;
+
/* Counts the number of frame instructions executed. */
Dwarf_Word instr_count = 0;
@@ -174,7 +226,10 @@ _dwarf_exec_frame_instr(Dwarf_Bool make_instr, /* Make list of frame
instruction. */
Dwarf_Small fp_base_op = 0;
Dwarf_Small fp_extended_op;
- Dwarf_Half fp_register;
+ reg_num_type fp_register;
+
+ /* The value in fp_offset may be signed, though we call it
+ unsigned. This works ok for 2-s complement arithmetic. */
Dwarf_Unsigned fp_offset;
Dwarf_Off fp_instr_offset;
@@ -182,16 +237,16 @@ _dwarf_exec_frame_instr(Dwarf_Bool make_instr, /* Make list of frame
Stack_table points to the row (Dwarf_Frame ie) being pushed or
popped by a remember or restore instruction. Top_stack points to
the top of the stack of rows. */
- Dwarf_Frame stack_table;
+ Dwarf_Frame stack_table = NULL;
Dwarf_Frame top_stack = NULL;
/*
These are used only when make_instr is true. Curr_instr is a
pointer to the current frame instruction executed.
- Curr_instr_ptr, head_instr_list, and curr_instr_list are used
- to form a chain of Dwarf_Frame_Op structs. Dealloc_instr_ptr
- is used to deallocate the structs used to form the chain.
- Head_instr_block points to a contiguous list of pointers to the
+ Curr_instr_ptr, head_instr_list, and curr_instr_list are used to
+ form a chain of Dwarf_Frame_Op structs. Dealloc_instr_ptr is
+ used to deallocate the structs used to form the chain.
+ Head_instr_block points to a contiguous list of pointers to the
Dwarf_Frame_Op structs executed. */
Dwarf_Frame_Op *curr_instr;
Dwarf_Chain curr_instr_item, dealloc_instr_item;
@@ -217,606 +272,812 @@ _dwarf_exec_frame_instr(Dwarf_Bool make_instr, /* Make list of frame
/* Initialize first row from associated Cie. Using temp regs
explicity */
- struct Dwarf_Reg_Rule_s *t1reg;
- struct Dwarf_Reg_Rule_s *t1end;
- struct Dwarf_Reg_Rule_s *t2reg;
-
-
- t1reg = reg;
- t1end = t1reg + DW_FRAME_LAST_REG_NUM;
- if (cie != NULL && cie->ci_initial_table != NULL) {
- t2reg = cie->ci_initial_table->fr_reg;
- for (; t1reg < t1end; t1reg++, t2reg++) {
- *t1reg = *t2reg;
- }
- } else { /* initialize with same_value */
- for (; t1reg < t1end; t1reg++) {
- t1reg->ru_is_off = 0;
- t1reg->ru_register = DW_FRAME_SAME_VAL;
- t1reg->ru_offset = 0;
- }
+
+ if (localregtab == 0) {
+ SIMPLE_ERROR_RETURN(DW_DLE_ALLOC_FAIL);
+ }
+ {
+ struct Dwarf_Reg_Rule_s *t1reg = localregtab;
+ struct Dwarf_Reg_Rule_s *t1end = t1reg + reg_count;
+
+ if (cie != NULL && cie->ci_initial_table != NULL) {
+ struct Dwarf_Reg_Rule_s *t2reg =
+ cie->ci_initial_table->fr_reg;
+
+ if (reg_count != cie->ci_initial_table->fr_reg_count) {
+ /* Should never happen, it makes no sense to have the
+ table sizes change. There is no real allowance for
+ the set of registers to change dynamically in a
+ single Dwarf_Debug (except the size can be set near
+ initial Dwarf_Debug creation time). */
+ SIMPLE_ERROR_RETURN
+ (DW_DLE_FRAME_REGISTER_COUNT_MISMATCH);
+ }
+
+ for (; t1reg < t1end; t1reg++, t2reg++) {
+ *t1reg = *t2reg;
+ }
+ cfa_reg = cie->ci_initial_table->fr_cfa_rule;
+ } else {
+ _dwarf_init_regrule_table(t1reg,
+ reg_count,
+ dbg->de_frame_rule_initial_value);
+ _dwarf_init_regrule_table(&cfa_reg, 1,
+ dbg->de_frame_rule_initial_value);
+ }
}
/*
The idea here is that the code_alignment_factor and
data_alignment_factor which are needed for certain instructions
- are valid only when the Cie has a proper augmentation string.
- So if the augmentation is not right, only Frame instruction can
- be read. */
+ are valid only when the Cie has a proper augmentation string. So
+ if the augmentation is not right, only Frame instruction can be
+ read. */
if (cie != NULL && cie->ci_augmentation != NULL) {
- code_alignment_factor = cie->ci_code_alignment_factor;
- data_alignment_factor = cie->ci_data_alignment_factor;
- } else
- need_augmentation = !make_instr;
+ code_alignment_factor = cie->ci_code_alignment_factor;
+ data_alignment_factor = cie->ci_data_alignment_factor;
+ } else {
+ need_augmentation = !make_instr;
+ }
instr_ptr = start_instr_ptr;
while ((instr_ptr < final_instr_ptr) && (!search_over)) {
+ Dwarf_Small instr = 0;
+ Dwarf_Small opcode = 0;
+ reg_num_type reg_no = 0;
+
+ fp_instr_offset = instr_ptr - start_instr_ptr;
+ instr = *(Dwarf_Small *) instr_ptr;
+ instr_ptr += sizeof(Dwarf_Small);
+
+ fp_base_op = (instr & 0xc0) >> 6;
+ if ((instr & 0xc0) == 0x00) {
+ opcode = instr; /* is really extended op */
+ fp_extended_op = (instr & (~(0xc0))) & 0xff;
+ } else {
+ opcode = instr & 0xc0; /* is base op */
+ fp_extended_op = 0;
+ }
+
+ fp_register = 0;
+ fp_offset = 0;
+ switch (opcode) {
+ case DW_CFA_advance_loc:
+ {
+ /* base op */
+ fp_offset = adv_pc = instr & DW_FRAME_INSTR_OFFSET_MASK;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ adv_pc = adv_pc * code_alignment_factor;
+
+ search_over = search_pc &&
+ (current_loc + adv_pc > search_pc_val);
+ /* If gone past pc needed, retain old pc. */
+ if (!search_over) {
+ current_loc = current_loc + adv_pc;
+ }
+ break;
+ }
+
+ case DW_CFA_offset:
+ { /* base op */
+ reg_no =
+ (reg_num_type) (instr & DW_FRAME_INSTR_OFFSET_MASK);
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ factored_N_value =
+ _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
+ instr_ptr = instr_ptr + leb128_length;
+
+ fp_register = reg_no;
+ fp_offset = factored_N_value;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+
+ localregtab[reg_no].ru_is_off = 1;
+ localregtab[reg_no].ru_value_type = DW_EXPR_OFFSET;
+ localregtab[reg_no].ru_register = reg_num_of_cfa;
+ localregtab[reg_no].ru_offset_or_block_len =
+ factored_N_value * data_alignment_factor;
+
+ break;
+ }
+
+ case DW_CFA_restore:
+ { /* base op */
+ reg_no = (instr & DW_FRAME_INSTR_OFFSET_MASK);
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ fp_register = reg_no;
+
+ if (cie != NULL && cie->ci_initial_table != NULL)
+ localregtab[reg_no] =
+ cie->ci_initial_table->fr_reg[reg_no];
+ else if (!make_instr) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_MAKE_INSTR_NO_INIT);
+ }
+
+ break;
+ }
+ case DW_CFA_set_loc:
+ {
+ Dwarf_Addr new_loc = 0;
+
+ READ_UNALIGNED(dbg, new_loc, Dwarf_Addr,
+ instr_ptr, address_size);
+ instr_ptr += address_size;
+ if (new_loc != 0 && current_loc != 0) {
+ /* Pre-relocation or before current_loc is set the
+ test comparing new_loc and current_loc makes no
+ sense. Testing for non-zero (above) is a way
+ (fallible) to check that current_loc, new_loc
+ are already relocated. */
+ if (new_loc <= current_loc) {
+ /* Within a frame, address must increase.
+ Seemingly it has not. Seems to be an error. */
+
+ SIMPLE_ERROR_RETURN
+ (DW_DLE_DF_NEW_LOC_LESS_OLD_LOC);
+ }
+ }
+
+ search_over = search_pc && (new_loc > search_pc_val);
+
+ /* If gone past pc needed, retain old pc. */
+ if (!search_over) {
+ current_loc = new_loc;
+ }
+ fp_offset = new_loc;
+ break;
+ }
+
+ case DW_CFA_advance_loc1:
+ {
+ fp_offset = adv_loc = *(Dwarf_Small *) instr_ptr;
+ instr_ptr += sizeof(Dwarf_Small);
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ adv_loc *= code_alignment_factor;
+
+ search_over = search_pc &&
+ (current_loc + adv_loc > search_pc_val);
+
+ /* If gone past pc needed, retain old pc. */
+ if (!search_over) {
+ current_loc = current_loc + adv_loc;
+ }
+ break;
+ }
+
+ case DW_CFA_advance_loc2:
+ {
+ READ_UNALIGNED(dbg, adv_loc, Dwarf_Unsigned,
+ instr_ptr, sizeof(Dwarf_Half));
+ instr_ptr += sizeof(Dwarf_Half);
+ fp_offset = adv_loc;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ adv_loc *= code_alignment_factor;
+
+ search_over = search_pc &&
+ (current_loc + adv_loc > search_pc_val);
+
+ /* If gone past pc needed, retain old pc. */
+ if (!search_over) {
+ current_loc = current_loc + adv_loc;
+ }
+ break;
+ }
+
+ case DW_CFA_advance_loc4:
+ {
+ READ_UNALIGNED(dbg, adv_loc, Dwarf_Unsigned,
+ instr_ptr, sizeof(Dwarf_ufixed));
+ instr_ptr += sizeof(Dwarf_ufixed);
+ fp_offset = adv_loc;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ adv_loc *= code_alignment_factor;
+
+ search_over = search_pc &&
+ (current_loc + adv_loc > search_pc_val);
+
+ /* If gone past pc needed, retain old pc. */
+ if (!search_over) {
+ current_loc = current_loc + adv_loc;
+ }
+ break;
+ }
+
+ case DW_CFA_offset_extended:
+ {
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);;
+ factored_N_value =
+ _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ localregtab[reg_no].ru_is_off = 1;
+ localregtab[reg_no].ru_value_type = DW_EXPR_OFFSET;
+ localregtab[reg_no].ru_register = reg_num_of_cfa;
+ localregtab[reg_no].ru_offset_or_block_len = factored_N_value *
+ data_alignment_factor;
+
+ fp_register = reg_no;
+ fp_offset = factored_N_value;
+ break;
+ }
+
+ case DW_CFA_restore_extended:
+ {
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ if (cie != NULL && cie->ci_initial_table != NULL) {
+ localregtab[reg_no] = cie->ci_initial_table->fr_reg[reg_no];
+ } else {
+ if (!make_instr) {
+ SIMPLE_ERROR_RETURN
+ (DW_DLE_DF_MAKE_INSTR_NO_INIT);
+ }
+ }
+
+ fp_register = reg_no;
+ break;
+ }
+
+ case DW_CFA_undefined:
+ {
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ localregtab[reg_no].ru_is_off = 0;
+ localregtab[reg_no].ru_value_type = DW_EXPR_OFFSET;
+ localregtab[reg_no].ru_register =
+ dbg->de_frame_undefined_value_number;
+ localregtab[reg_no].ru_offset_or_block_len = 0;
+
+ fp_register = reg_no;
+ break;
+ }
+
+ case DW_CFA_same_value:
+ {
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ localregtab[reg_no].ru_is_off = 0;
+ localregtab[reg_no].ru_value_type = DW_EXPR_OFFSET;
+ localregtab[reg_no].ru_register =
+ dbg->de_frame_same_value_number;
+ localregtab[reg_no].ru_offset_or_block_len = 0;
+ fp_register = reg_no;
+ break;
+ }
+
+ case DW_CFA_register:
+ {
+ Dwarf_Unsigned lreg;
+ reg_num_type reg_noA = 0;
+ reg_num_type reg_noB = 0;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_noA = (reg_num_type) lreg;
+
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_noA, reg_count);
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_noB = (reg_num_type) lreg;
+
+ if (reg_noB > reg_count) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_REG_NUM_TOO_HIGH);
+ }
+
+
+ localregtab[reg_noA].ru_is_off = 0;
+ localregtab[reg_noA].ru_value_type = DW_EXPR_OFFSET;
+ localregtab[reg_noA].ru_register = reg_noB;
+ localregtab[reg_noA].ru_offset_or_block_len = 0;
+
+ fp_register = reg_noA;
+ fp_offset = reg_noB;
+ break;
+ }
+
+ case DW_CFA_remember_state:
+ {
+ stack_table = (Dwarf_Frame)
+ _dwarf_get_alloc(dbg, DW_DLA_FRAME, 1);
+ if (stack_table == NULL) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_ALLOC_FAIL);
+ }
+
+ for (i = 0; i < reg_count; i++)
+ stack_table->fr_reg[i] = localregtab[i];
+ stack_table->fr_cfa_rule = cfa_reg;
+
+ if (top_stack != NULL)
+ stack_table->fr_next = top_stack;
+ top_stack = stack_table;
+
+ break;
+ }
+
+ case DW_CFA_restore_state:
+ {
+ if (top_stack == NULL) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_POP_EMPTY_STACK);
+ }
+ stack_table = top_stack;
+ top_stack = stack_table->fr_next;
+
+ for (i = 0; i < reg_count; i++)
+ localregtab[i] = stack_table->fr_reg[i];
+ cfa_reg = stack_table->fr_cfa_rule;
+
+ dwarf_dealloc(dbg, stack_table, DW_DLA_FRAME);
+ break;
+ }
+
+ case DW_CFA_def_cfa:
+ {
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ factored_N_value =
+ _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ cfa_reg.ru_is_off = 1;
+ cfa_reg.ru_value_type = DW_EXPR_OFFSET;
+ cfa_reg.ru_register = reg_no;
+ cfa_reg.ru_offset_or_block_len = factored_N_value;
+
+ fp_register = reg_no;
+ fp_offset = factored_N_value;
+ break;
+ }
+
+ case DW_CFA_def_cfa_register:
+ {
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ cfa_reg.ru_register = reg_no;
+ /* Do NOT set ru_offset_or_block_len or ru_is_off here.
+ See dwarf2/3 spec. */
+ fp_register = reg_no;
+ break;
+ }
+
+ case DW_CFA_def_cfa_offset:
+ {
+ factored_N_value =
+ _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ /* Do set ru_is_off here, as here factored_N_value
+ counts. */
+ cfa_reg.ru_is_off = 1;
+ cfa_reg.ru_value_type = DW_EXPR_OFFSET;
+ cfa_reg.ru_offset_or_block_len = factored_N_value;
+
+ fp_offset = factored_N_value;
+ break;
+ }
+ case DW_CFA_nop:
+ {
+ break;
+ }
+ /* DWARF3 ops begin here. */
+ case DW_CFA_def_cfa_expression:
+ {
+ /* A single DW_FORM_block representing a dwarf
+ expression. The form block establishes the way to
+ compute the CFA. */
+ Dwarf_Unsigned block_len = 0;
+
+ DECODE_LEB128_UWORD(instr_ptr, block_len);
+ cfa_reg.ru_is_off = 0; /* arbitrary */
+ cfa_reg.ru_value_type = DW_EXPR_EXPRESSION;
+ cfa_reg.ru_offset_or_block_len = block_len;
+ cfa_reg.ru_block = instr_ptr;
+ fp_offset = (Dwarf_Unsigned)(uintptr_t)instr_ptr;
+ instr_ptr += block_len;
+ }
+ break;
+ case DW_CFA_expression:
+ {
+ /* An unsigned leb128 value is the first operand (a
+ register number). The second operand is single
+ DW_FORM_block representing a dwarf expression. The
+ evaluator pushes the CFA on the evaluation stack
+ then evaluates the expression to compute the value
+ of the register contents. */
+ Dwarf_Unsigned lreg = 0;
+ Dwarf_Unsigned block_len = 0;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+ DECODE_LEB128_UWORD(instr_ptr, block_len);
+ localregtab[lreg].ru_is_off = 0; /* arbitrary */
+ localregtab[lreg].ru_value_type = DW_EXPR_EXPRESSION;
+ localregtab[lreg].ru_offset_or_block_len = block_len;
+ localregtab[lreg].ru_block = instr_ptr;
+ fp_offset = (Dwarf_Unsigned)(uintptr_t)instr_ptr;
+ fp_register = reg_no;
+ instr_ptr += block_len;
+ }
+ break;
+ case DW_CFA_offset_extended_sf:
+ {
+ /* The first operand is an unsigned leb128 register
+ number. The second is a signed factored offset.
+ Identical to DW_CFA_offset_extended except the
+ secondoperand is signed */
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+ signed_factored_N_value =
+ _dwarf_decode_s_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ localregtab[reg_no].ru_is_off = 1;
+ localregtab[reg_no].ru_value_type = DW_EXPR_OFFSET;
+ localregtab[reg_no].ru_register = reg_num_of_cfa;
+ localregtab[reg_no].ru_offset_or_block_len =
+ signed_factored_N_value * data_alignment_factor;
+
+ fp_register = reg_no;
+ fp_offset = signed_factored_N_value;
+ }
+ break;
+ case DW_CFA_def_cfa_sf:
+ {
+ /* The first operand is an unsigned leb128 register
+ number. The second is a signed leb128 factored
+ offset. Identical to DW_CFA_def_cfa except that the
+ second operand is signed and factored. */
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ signed_factored_N_value =
+ _dwarf_decode_s_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ cfa_reg.ru_is_off = 1;
+ cfa_reg.ru_value_type = DW_EXPR_OFFSET;
+ cfa_reg.ru_register = reg_no;
+ cfa_reg.ru_offset_or_block_len =
+ signed_factored_N_value * data_alignment_factor;
+
+ fp_register = reg_no;
+ fp_offset = signed_factored_N_value;
+ }
+ break;
+ case DW_CFA_def_cfa_offset_sf:
+ {
+ /* The operand is a signed leb128 operand representing
+ a factored offset. Identical to
+ DW_CFA_def_cfa_offset excep the operand is signed
+ and factored. */
+
+ signed_factored_N_value =
+ _dwarf_decode_s_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ /* Do set ru_is_off here, as here factored_N_value
+ counts. */
+ cfa_reg.ru_is_off = 1;
+ cfa_reg.ru_value_type = DW_EXPR_OFFSET;
+ cfa_reg.ru_offset_or_block_len =
+ signed_factored_N_value * data_alignment_factor;
+
+ fp_offset = signed_factored_N_value;
+ }
+ break;
+ case DW_CFA_val_offset:
+ {
+ /* The first operand is an unsigned leb128 register
+ number. The second is a factored unsigned offset.
+ Makes the register be a val_offset(N) rule with N =
+ factored_offset*data_alignment_factor. */
+
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+
+ factored_N_value =
+ _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ /* Do set ru_is_off here, as here factored_N_value
+ counts. */
+ localregtab[reg_no].ru_is_off = 1;
+ localregtab[reg_no].ru_register = reg_num_of_cfa;
+ localregtab[reg_no].ru_value_type = DW_EXPR_VAL_OFFSET;
+ localregtab[reg_no].ru_offset_or_block_len =
+ factored_N_value * data_alignment_factor;
+
+ fp_offset = factored_N_value;
+ break;
+ }
+ case DW_CFA_val_offset_sf:
+ {
+ /* The first operand is an unsigned leb128 register
+ number. The second is a factored signed offset.
+ Makes the register be a val_offset(N) rule with N =
+ factored_offset*data_alignment_factor. */
+ Dwarf_Unsigned lreg;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+ signed_factored_N_value =
+ _dwarf_decode_s_leb128(instr_ptr, &leb128_length);
+ instr_ptr += leb128_length;
+
+ if (need_augmentation) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_NO_CIE_AUGMENTATION);
+ }
+ /* Do set ru_is_off here, as here factored_N_value
+ counts. */
+ localregtab[reg_no].ru_is_off = 1;
+ localregtab[reg_no].ru_value_type = DW_EXPR_VAL_OFFSET;
+ localregtab[reg_no].ru_offset_or_block_len =
+ signed_factored_N_value * data_alignment_factor;
+
+ fp_offset = signed_factored_N_value;
+
+ }
+ break;
+ case DW_CFA_val_expression:
+ {
+ /* The first operand is an unsigned leb128 register
+ number. The second is a DW_FORM_block representing a
+ DWARF expression. The rule for the register number
+ becomes a val_expression(E) rule. */
+ Dwarf_Unsigned lreg = 0;
+ Dwarf_Unsigned block_len = 0;
+
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
+ ERROR_IF_REG_NUM_TOO_HIGH(reg_no, reg_count);
+ DECODE_LEB128_UWORD(instr_ptr, block_len);
+ localregtab[lreg].ru_is_off = 0; /* arbitrary */
+ localregtab[lreg].ru_value_type = DW_EXPR_VAL_EXPRESSION;
+ localregtab[lreg].ru_offset_or_block_len = block_len;
+ localregtab[lreg].ru_block = instr_ptr;
+ fp_offset = (Dwarf_Unsigned)(uintptr_t)instr_ptr;
+
+ instr_ptr += block_len;
+ fp_register = reg_no;
+
+ }
+ break;
+
+ /* END DWARF3 new ops. */
- fp_instr_offset = instr_ptr - start_instr_ptr;
- instr = *(Dwarf_Small *) instr_ptr;
- instr_ptr += sizeof(Dwarf_Small);
-
- fp_base_op = (instr & 0xc0) >> 6;
- if ((instr & 0xc0) == 0x00) {
- opcode = instr; /* is really extended op */
- fp_extended_op = (instr & (~(0xc0))) & 0xff;
- } else {
- opcode = instr & 0xc0; /* is base op */
- fp_extended_op = 0;
- }
-
- fp_register = 0;
- fp_offset = 0;
- switch (opcode) {
-
- case DW_CFA_advance_loc:{
- /* base op */
- fp_offset = adv_pc = instr & DW_FRAME_INSTR_OFFSET_MASK;
-
- if (need_augmentation) {
-
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
- adv_pc = adv_pc * code_alignment_factor;
-
- search_over = search_pc &&
- (loc + adv_pc > search_pc_val);
- /* If gone past pc needed, retain old pc. */
- if (!search_over)
- loc = loc + adv_pc;
- break;
- }
-
- case DW_CFA_offset:{ /* base op */
- reg_no = (instr & DW_FRAME_INSTR_OFFSET_MASK);
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = DW_DLE_DF_REG_NUM_TOO_HIGH;
- return DW_DLV_ERROR;
- }
-
- factored_N_value =
- _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
- instr_ptr = instr_ptr + leb128_length;
-
- fp_register = reg_no;
- fp_offset = factored_N_value;
-
- if (need_augmentation) {
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
-
- reg[reg_no].ru_is_off = 1;
- reg[reg_no].ru_register = DW_FRAME_CFA_COL;
- reg[reg_no].ru_offset = factored_N_value *
- data_alignment_factor;
-
- break;
- }
-
- case DW_CFA_restore:{ /* base op */
- reg_no = (instr & DW_FRAME_INSTR_OFFSET_MASK);
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
-
- fp_register = reg_no;
-
- if (cie != NULL && cie->ci_initial_table != NULL)
- reg[reg_no] = cie->ci_initial_table->fr_reg[reg_no];
- else if (!make_instr) {
- *returned_error = (DW_DLE_DF_MAKE_INSTR_NO_INIT);
- return DW_DLV_ERROR;
- }
-
- break;
- }
- case DW_CFA_set_loc:{
- READ_UNALIGNED(dbg, new_loc, Dwarf_Addr,
- instr_ptr, dbg->de_pointer_size);
- instr_ptr += dbg->de_pointer_size;
- if (new_loc <= loc) {
- *returned_error = (DW_DLE_DF_NEW_LOC_LESS_OLD_LOC);
- return DW_DLV_ERROR;
- }
-
- search_over = search_pc && (new_loc > search_pc_val);
-
- /* If gone past pc needed, retain old pc. */
- if (!search_over)
- loc = new_loc;
- fp_offset = new_loc;
- break;
- }
-
- case DW_CFA_advance_loc1:{
- fp_offset = adv_loc = *(Dwarf_Small *) instr_ptr;
- instr_ptr += sizeof(Dwarf_Small);
-
- if (need_augmentation) {
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
- adv_loc *= code_alignment_factor;
-
- search_over = search_pc &&
- (loc + adv_loc > search_pc_val);
-
- /* If gone past pc needed, retain old pc. */
- if (!search_over)
- loc = loc + adv_loc;
- break;
- }
-
- case DW_CFA_advance_loc2:{
- READ_UNALIGNED(dbg, adv_loc, Dwarf_Unsigned,
- instr_ptr, sizeof(Dwarf_Half));
- instr_ptr += sizeof(Dwarf_Half);
- fp_offset = adv_loc;
-
- if (need_augmentation) {
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
- adv_loc *= code_alignment_factor;
-
- search_over = search_pc &&
- (loc + adv_loc > search_pc_val);
-
- /* If gone past pc needed, retain old pc. */
- if (!search_over)
- loc = loc + adv_loc;
- break;
- }
-
- case DW_CFA_advance_loc4:{
- READ_UNALIGNED(dbg, adv_loc, Dwarf_Unsigned,
- instr_ptr, sizeof(Dwarf_ufixed));
- instr_ptr += sizeof(Dwarf_ufixed);
- fp_offset = adv_loc;
-
- if (need_augmentation) {
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
- adv_loc *= code_alignment_factor;
-
- search_over = search_pc &&
- (loc + adv_loc > search_pc_val);
-
- /* If gone past pc needed, retain old pc. */
- if (!search_over)
- loc = loc + adv_loc;
- break;
- }
-
- case DW_CFA_offset_extended:{
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_no = (Dwarf_Small) lreg;
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
- factored_N_value =
- _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
- instr_ptr += leb128_length;
-
- if (need_augmentation) {
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
- reg[reg_no].ru_is_off = 1;
- reg[reg_no].ru_register = DW_FRAME_CFA_COL;
- reg[reg_no].ru_offset = factored_N_value *
- data_alignment_factor;
-
- fp_register = reg_no;
- fp_offset = factored_N_value;
- break;
- }
-
- case DW_CFA_restore_extended:{
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_no = (Dwarf_Small) lreg;
-
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
-
- if (cie != NULL && cie->ci_initial_table != NULL) {
- reg[reg_no] = cie->ci_initial_table->fr_reg[reg_no];
- } else {
- if (!make_instr) {
- *returned_error =
- (DW_DLE_DF_MAKE_INSTR_NO_INIT);
- return DW_DLV_ERROR;
- }
- }
-
- fp_register = reg_no;
- break;
- }
-
- case DW_CFA_undefined:{
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_no = (Dwarf_Small) lreg;
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
-
- reg[reg_no].ru_is_off = 0;
- reg[reg_no].ru_register = DW_FRAME_UNDEFINED_VAL;
- reg[reg_no].ru_offset = 0;
-
- fp_register = reg_no;
- break;
- }
-
- case DW_CFA_same_value:{
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_no = (Dwarf_Small) lreg;
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
-
- reg[reg_no].ru_is_off = 0;
- reg[reg_no].ru_register = DW_FRAME_SAME_VAL;
- reg[reg_no].ru_offset = 0;
- fp_register = reg_no;
- break;
- }
-
- case DW_CFA_register:{
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_noA = (Dwarf_Small) lreg;
-
- if (reg_noA > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_noB = (Dwarf_Small) lreg;
-
- if (reg_noB > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
-
-
- reg[reg_noA].ru_is_off = 0;
- reg[reg_noA].ru_register = reg_noB;
-
- reg[reg_noA].ru_offset = 0;
-
- fp_register = reg_noA;
- fp_offset = reg_noB;
- break;
- }
-
- case DW_CFA_remember_state:{
- stack_table = (Dwarf_Frame)
- _dwarf_get_alloc(dbg, DW_DLA_FRAME, 1);
- if (stack_table == NULL) {
- *returned_error = (DW_DLE_DF_ALLOC_FAIL);
- return DW_DLV_ERROR;
- }
-
- for (i = 0; i < DW_FRAME_LAST_REG_NUM; i++)
- stack_table->fr_reg[i] = reg[i];
-
- if (top_stack != NULL)
- stack_table->fr_next = top_stack;
- top_stack = stack_table;
-
- break;
- }
-
- case DW_CFA_restore_state:{
- if (top_stack == NULL) {
- *returned_error = (DW_DLE_DF_POP_EMPTY_STACK);
- return DW_DLV_ERROR;
- }
- stack_table = top_stack;
- top_stack = stack_table->fr_next;
-
- for (i = 0; i < DW_FRAME_LAST_REG_NUM; i++)
- reg[i] = stack_table->fr_reg[i];
-
- dwarf_dealloc(dbg, stack_table, DW_DLA_FRAME);
- break;
- }
-
- case DW_CFA_def_cfa:{
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_no = (Dwarf_Small) lreg;
-
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return (DW_DLV_ERROR);
- }
-
- factored_N_value =
- _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
- instr_ptr += leb128_length;
-
- if (need_augmentation) {
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
- reg[DW_FRAME_CFA_COL].ru_is_off = 1;
- reg[DW_FRAME_CFA_COL].ru_register = reg_no;
- reg[DW_FRAME_CFA_COL].ru_offset = factored_N_value;
-
- fp_register = reg_no;
- fp_offset = factored_N_value;
- break;
- }
-
- case DW_CFA_def_cfa_register:{
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_no = (Dwarf_Small) lreg;
-
- if (reg_no > DW_FRAME_LAST_REG_NUM) {
- *returned_error = (DW_DLE_DF_REG_NUM_TOO_HIGH);
- return DW_DLV_ERROR;
- }
-
- reg[DW_FRAME_CFA_COL].ru_is_off = 0;
- reg[DW_FRAME_CFA_COL].ru_register = reg_no;
- reg[DW_FRAME_CFA_COL].ru_offset = 0;
- fp_register = reg_no;
- break;
- }
-
- case DW_CFA_def_cfa_offset:{
- factored_N_value =
- _dwarf_decode_u_leb128(instr_ptr, &leb128_length);
- instr_ptr += leb128_length;
-
- if (need_augmentation) {
- *returned_error = (DW_DLE_DF_NO_CIE_AUGMENTATION);
- return DW_DLV_ERROR;
- }
- reg[DW_FRAME_CFA_COL].ru_offset = factored_N_value;
-
- fp_offset = factored_N_value;
- break;
- }
-
- case DW_CFA_nop:{
- break;
- }
-
#ifdef DW_CFA_GNU_window_save
- case DW_CFA_GNU_window_save:{
- /* no information: this just tells unwinder to restore
- the window registers from the previous frame's
- window save area */
- break;
- }
+ case DW_CFA_GNU_window_save:
+ {
+ /* no information: this just tells unwinder to restore
+ the window registers from the previous frame's
+ window save area */
+ break;
+ }
#endif
#ifdef DW_CFA_GNU_args_size
- /* single uleb128 is the current arg area size in bytes. No
- register exists yet to save this in */
- case DW_CFA_GNU_args_size:{
- Dwarf_Unsigned lreg;
+ /* single uleb128 is the current arg area size in bytes. No
+ register exists yet to save this in */
+ case DW_CFA_GNU_args_size:
+ {
+ Dwarf_Unsigned lreg;
- DECODE_LEB128_UWORD(instr_ptr, lreg)
- reg_no = (Dwarf_Small) lreg;
+ DECODE_LEB128_UWORD(instr_ptr, lreg);
+ reg_no = (reg_num_type) lreg;
- break;
- }
+ break;
+ }
#endif
- }
-
- if (make_instr) {
- instr_count++;
-
- curr_instr = (Dwarf_Frame_Op *)
- _dwarf_get_alloc(dbg, DW_DLA_FRAME_OP, 1);
- if (curr_instr == NULL) {
- *returned_error = (DW_DLE_DF_ALLOC_FAIL);
- return DW_DLV_ERROR;
- }
-
- curr_instr->fp_base_op = fp_base_op;
- curr_instr->fp_extended_op = fp_extended_op;
- curr_instr->fp_register = fp_register;
- curr_instr->fp_offset = fp_offset;
- curr_instr->fp_instr_offset = fp_instr_offset;
-
- curr_instr_item = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_instr_item == NULL) {
- *returned_error = (DW_DLE_DF_ALLOC_FAIL);
- return DW_DLV_ERROR;
- }
-
- curr_instr_item->ch_item = curr_instr;
- if (head_instr_chain == NULL)
- head_instr_chain = tail_instr_chain = curr_instr_item;
- else {
- tail_instr_chain->ch_next = curr_instr_item;
- tail_instr_chain = curr_instr_item;
- }
- }
+ default:
+ /* ERROR, we have an opcode we know nothing about. Memory
+ leak here, but an error like this is not supposed to
+ happen so we ignore the leak. These used to be ignored,
+ now we notice and report. */
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_FRAME_DECODING_ERROR);
+
+ }
+
+ if (make_instr) {
+ instr_count++;
+
+ curr_instr = (Dwarf_Frame_Op *)
+ _dwarf_get_alloc(dbg, DW_DLA_FRAME_OP, 1);
+ if (curr_instr == NULL) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_ALLOC_FAIL);
+ }
+
+ curr_instr->fp_base_op = fp_base_op;
+ curr_instr->fp_extended_op = fp_extended_op;
+ curr_instr->fp_register = fp_register;
+ curr_instr->fp_offset = fp_offset;
+ curr_instr->fp_instr_offset = fp_instr_offset;
+
+ curr_instr_item = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_instr_item == NULL) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_ALLOC_FAIL);
+ }
+
+ curr_instr_item->ch_item = curr_instr;
+ if (head_instr_chain == NULL)
+ head_instr_chain = tail_instr_chain = curr_instr_item;
+ else {
+ tail_instr_chain->ch_next = curr_instr_item;
+ tail_instr_chain = curr_instr_item;
+ }
+ }
}
/*
- If frame instruction decoding was right we would stop exactly
- at final_instr_ptr. */
+ If frame instruction decoding was right we would stop exactly at
+ final_instr_ptr. */
if (instr_ptr > final_instr_ptr) {
- *returned_error = (DW_DLE_DF_FRAME_DECODING_ERROR);
- return DW_DLV_ERROR;
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_FRAME_DECODING_ERROR);
}
- /* Create the last row generated. */
+ /* Fill in the actual output table, the space the caller passed in. */
if (table != NULL) {
- t1reg = reg;
- t1end = t1reg + DW_FRAME_LAST_REG_NUM;
- table->fr_loc = loc;
- t2reg = table->fr_reg;
- for (; t1reg < t1end; t1reg++, t2reg++) {
- *t2reg = *t1reg;
- }
+
+ struct Dwarf_Reg_Rule_s *t2reg = table->fr_reg;
+ struct Dwarf_Reg_Rule_s *t3reg = localregtab;
+ struct Dwarf_Reg_Rule_s *t3end = t3reg + reg_count;
+
+ table->fr_loc = current_loc;
+ for (; t3reg < t3end; t3reg++, t2reg++) {
+ *t2reg = *t3reg;
+ }
+
+ /* CONSTCOND */
+ /* Do not update the main table with the cfa_reg.
+ Just leave cfa_reg as cfa_reg. */
+ table->fr_cfa_rule = cfa_reg;
}
/* Dealloc anything remaining on stack. */
for (; top_stack != NULL;) {
- stack_table = top_stack;
- top_stack = top_stack->fr_next;
- dwarf_dealloc(dbg, stack_table, DW_DLA_FRAME);
+ stack_table = top_stack;
+ top_stack = top_stack->fr_next;
+ dwarf_dealloc(dbg, stack_table, DW_DLA_FRAME);
}
if (make_instr) {
- /* Allocate list of pointers to Dwarf_Frame_Op's. */
- head_instr_block = (Dwarf_Frame_Op *)
- _dwarf_get_alloc(dbg, DW_DLA_FRAME_BLOCK, instr_count);
- if (head_instr_block == NULL) {
- *returned_error = DW_DLE_DF_ALLOC_FAIL;
- return DW_DLV_ERROR;
- }
-
- /*
- Store pointers to Dwarf_Frame_Op's in this list and
- deallocate the structs that chain the Dwarf_Frame_Op's. */
- curr_instr_item = head_instr_chain;
- for (i = 0; i < instr_count; i++) {
- *(head_instr_block + i) =
- *(Dwarf_Frame_Op *) curr_instr_item->ch_item;
- dealloc_instr_item = curr_instr_item;
- curr_instr_item = curr_instr_item->ch_next;
- dwarf_dealloc(dbg, dealloc_instr_item->ch_item,
- DW_DLA_FRAME_OP);
- dwarf_dealloc(dbg, dealloc_instr_item, DW_DLA_CHAIN);
- }
- *ret_frame_instr = head_instr_block;
-
- *returned_count = (Dwarf_Sword) instr_count;
+ /* Allocate list of pointers to Dwarf_Frame_Op's. */
+ head_instr_block = (Dwarf_Frame_Op *)
+ _dwarf_get_alloc(dbg, DW_DLA_FRAME_BLOCK, instr_count);
+ if (head_instr_block == NULL) {
+ SIMPLE_ERROR_RETURN(DW_DLE_DF_ALLOC_FAIL);
+ }
+
+ /*
+ Store pointers to Dwarf_Frame_Op's in this list and
+ deallocate the structs that chain the Dwarf_Frame_Op's. */
+ curr_instr_item = head_instr_chain;
+ for (i = 0; i < instr_count; i++) {
+ *(head_instr_block + i) =
+ *(Dwarf_Frame_Op *) curr_instr_item->ch_item;
+ dealloc_instr_item = curr_instr_item;
+ curr_instr_item = curr_instr_item->ch_next;
+ dwarf_dealloc(dbg, dealloc_instr_item->ch_item,
+ DW_DLA_FRAME_OP);
+ dwarf_dealloc(dbg, dealloc_instr_item, DW_DLA_CHAIN);
+ }
+ *ret_frame_instr = head_instr_block;
+
+ *returned_count = (Dwarf_Sword) instr_count;
} else {
- *returned_count = 0;
+ *returned_count = 0;
}
+ free(localregtab);
return DW_DLV_OK;
+#undef ERROR_IF_REG_NUM_TOO_HIGH
+#undef SIMPLE_ERROR_RETURN
}
-static int
-qsort_compare(const void *elem1, const void *elem2)
+/* Depending on version, either read the return address register
+ as a ubyte or as an leb number.
+ The form of this value changed for DWARF3.
+*/
+Dwarf_Unsigned
+_dwarf_get_return_address_reg(Dwarf_Small * frame_ptr,
+ int version, unsigned long *size)
{
- Dwarf_Fde fde1 = *(Dwarf_Fde *) elem1;
- Dwarf_Fde fde2 = *(Dwarf_Fde *) elem2;
- Dwarf_Addr addr1 = fde1->fd_initial_location;
- Dwarf_Addr addr2 = fde2->fd_initial_location;
+ Dwarf_Unsigned uvalue = 0;
+ Dwarf_Word leb128_length = 0;
- if (addr1 < addr2) {
- return -1;
- } else if (addr1 > addr2) {
- return 1;
+ if (version == 1) {
+ *size = 1;
+ uvalue = *(unsigned char *) frame_ptr;
+ return uvalue;
}
- return 0;
+ uvalue = _dwarf_decode_u_leb128(frame_ptr, &leb128_length);
+ *size = leb128_length;
+ return uvalue;
}
-/*
- * This function expects as input a pointer to Dwarf_Debug (dbg) and a
- * a pointer to Cie. It finds the augmentation string and returns after
- * setting *augmentation to point to it.
- */
-static int
-get_augmentation_string(Dwarf_Debug dbg,
- Dwarf_Small * cie_ptr,
- Dwarf_Unsigned cie_id_value,
- Dwarf_Small ** augmentation,
- Dwarf_Error * error)
-{
- Dwarf_Unsigned cie_id; /* must be min de_length_size bytes in
- size */
- Dwarf_Small version;
- int local_length_size;
- Dwarf_Unsigned length;
- /*REFERENCED*/ /* Not used in this instance of the macro */
- int local_extension_size;
-
-
- /* READ_AREA_LENGTH updates cie_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- cie_ptr, local_length_size, local_extension_size);
-
-
-
- /* Read the Cie Id field. */
- READ_UNALIGNED(dbg, cie_id, Dwarf_Unsigned,
- cie_ptr, local_length_size);
- SIGN_EXTEND(cie_id, local_length_size);
- if (cie_id != cie_id_value) {
- /* egcs-1.1.2 .eh_frame uses 0 as the distinguishing id. sgi
- uses -1 in .debug_frame. .eh_frame not quite identical to
- .debug_frame */
- _dwarf_error(dbg, error, DW_DLE_FRAME_VERSION_BAD);
- return (DW_DLV_ERROR);
- }
- cie_ptr += local_length_size;
-
-
- /* Read the version. */
- version = *(Dwarf_Small *) cie_ptr;
- cie_ptr++;
- if (version != DW_CIE_VERSION) {
- _dwarf_error(dbg, error, DW_DLE_FRAME_VERSION_BAD);
- return (DW_DLV_ERROR);
- }
-
- /* At this point, cie_ptr is pointing at the augmentation string. */
- *augmentation = cie_ptr;
- return DW_DLV_OK;
-}
+/* Trivial consumer function.
+*/
int
dwarf_get_cie_of_fde(Dwarf_Fde fde,
- Dwarf_Cie * cie_returned, Dwarf_Error * error)
+ Dwarf_Cie * cie_returned, Dwarf_Error * error)
{
if (fde == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
+ return (DW_DLV_ERROR);
}
*cie_returned = fde->fd_cie;
@@ -824,12 +1085,28 @@ dwarf_get_cie_of_fde(Dwarf_Fde fde,
}
+int dwarf_get_cie_index(
+ Dwarf_Cie cie,
+ Dwarf_Signed* index,
+ Dwarf_Error* error )
+{
+ if( cie == NULL )
+ {
+ _dwarf_error(NULL, error, DW_DLE_CIE_NULL);
+ return (DW_DLV_ERROR);
+ }
+
+ *index = cie->ci_index;
+ return (DW_DLV_OK);
+}
+
+
/*
For g++ .eh_frame fde and cie.
the cie id is different as the
definition of the cie_id in an fde
- is the distance back from the address of the
- value to the cie.
+ is the distance back from the address of the
+ value to the cie.
Or 0 if this is a true cie.
Non standard dwarf, designed this way to be
convenient at run time for an allocated
@@ -837,35 +1114,28 @@ dwarf_get_cie_of_fde(Dwarf_Fde fde,
*/
int
dwarf_get_fde_list_eh(Dwarf_Debug dbg,
- Dwarf_Cie ** cie_data,
- Dwarf_Signed * cie_element_count,
- Dwarf_Fde ** fde_data,
- Dwarf_Signed * fde_element_count,
- Dwarf_Error * error)
+ Dwarf_Cie ** cie_data,
+ Dwarf_Signed * cie_element_count,
+ Dwarf_Fde ** fde_data,
+ Dwarf_Signed * fde_element_count,
+ Dwarf_Error * error)
{
- int res;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_frame_eh_gnu_index,
- &dbg->de_debug_frame_eh_gnu,
- error);
-
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_frame_eh_gnu,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- res =
- __dwarf_get_fde_list_internal(dbg,
- cie_data,
- cie_element_count,
- fde_data,
- fde_element_count,
- dbg->de_debug_frame_eh_gnu,
- dbg->de_debug_frame_size_eh_gnu,
- /* cie_id_value */ 0,
- /* use_gnu_cie_calc= */ 1,
- error);
+ res = _dwarf_get_fde_list_internal(dbg,
+ cie_data,
+ cie_element_count,
+ fde_data,
+ fde_element_count,
+ dbg->de_debug_frame_eh_gnu.dss_data,
+ dbg->de_debug_frame_eh_gnu.dss_index,
+ dbg->de_debug_frame_eh_gnu.dss_size,
+ /* cie_id_value */ 0,
+ /* use_gnu_cie_calc= */ 1,
+ error);
return res;
}
@@ -879,1154 +1149,819 @@ dwarf_get_fde_list_eh(Dwarf_Debug dbg,
*/
int
dwarf_get_fde_list(Dwarf_Debug dbg,
- Dwarf_Cie ** cie_data,
- Dwarf_Signed * cie_element_count,
- Dwarf_Fde ** fde_data,
- Dwarf_Signed * fde_element_count,
- Dwarf_Error * error)
+ Dwarf_Cie ** cie_data,
+ Dwarf_Signed * cie_element_count,
+ Dwarf_Fde ** fde_data,
+ Dwarf_Signed * fde_element_count,
+ Dwarf_Error * error)
{
- int res;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_frame_index,
- &dbg->de_debug_frame,
- error);
-
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_frame,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- res =
- __dwarf_get_fde_list_internal(dbg, cie_data,
- cie_element_count,
- fde_data,
- fde_element_count,
- dbg->de_debug_frame,
- dbg->de_debug_frame_size,
- DW_CIE_ID,
- /* use_gnu_cie_calc= */ 0,
- error);
+ res = _dwarf_get_fde_list_internal(dbg, cie_data,
+ cie_element_count,
+ fde_data,
+ fde_element_count,
+ dbg->de_debug_frame.dss_data,
+ dbg->de_debug_frame.dss_index,
+ dbg->de_debug_frame.dss_size,
+ DW_CIE_ID,
+ /* use_gnu_cie_calc= */ 0,
+ error);
+
return res;
}
-static int
-__dwarf_get_fde_list_internal(Dwarf_Debug dbg,
- Dwarf_Cie ** cie_data,
- Dwarf_Signed * cie_element_count,
- Dwarf_Fde ** fde_data,
- Dwarf_Signed * fde_element_count,
- Dwarf_Small * section_ptr,
- Dwarf_Unsigned section_length,
- Dwarf_Unsigned cie_id_value,
- int use_gnu_cie_calc, Dwarf_Error * error)
-{
- /* Scans the debug_frame section. */
- Dwarf_Small *frame_ptr = 0;
-
- /* Points to the start of the current Fde or Cie. */
- Dwarf_Small *start_frame_ptr = 0;
-
- /* Points to the start of the augmented entries of Fde or Cie. */
- Dwarf_Small *saved_frame_ptr = 0;
-
- /* Fields for the current Cie being read. */
- Dwarf_Unsigned length = 0; /* READ_UNALIGNED needs min
- de_length_size byte dest */
- Dwarf_Unsigned cie_base_offset = 0; /* needs to be min
- de_length_size byte dest */
- Dwarf_Unsigned cie_id;
- Dwarf_Small version = 0;
- Dwarf_Small *augmentation = 0;
- Dwarf_Word code_alignment_factor = 4;
- Dwarf_Sword data_alignment_factor = -1;
- Dwarf_Small return_address_register = 31;
- Dwarf_Word length_of_augmented_fields = 0;
-
- /*
- New_cie points to the Cie being read, and head_cie_ptr and
- cur_cie_ptr are used for chaining them up in sequence. */
- Dwarf_Cie new_cie;
- Dwarf_Cie head_cie_ptr = NULL;
- Dwarf_Cie cur_cie_ptr;
- Dwarf_Word cie_count = 0;
-
- /*
- Points to a list of contiguous pointers to Dwarf_Cie
- structures. */
- Dwarf_Cie *cie_list_ptr;
-
- /* Fields for the current Fde being read. */
- Dwarf_Addr initial_location; /* must be min de_pointer_size
- bytes in size */
- Dwarf_Addr address_range; /* must be min de_pointer_size bytes in
- size */
-
- /*
- New_fde points to the current Fde being read, and head_fde_ptr
- and cur_fde_ptr are used to chain them up. */
- Dwarf_Fde new_fde;
- Dwarf_Fde head_fde_ptr = NULL;
- Dwarf_Fde cur_fde_ptr;
- Dwarf_Word fde_count = 0;
-
- /*
- Points to a list of contiguous pointers to Dwarf_Fde
- structures. */
- Dwarf_Fde *fde_list_ptr;
-
- /*
- Is used to check the offset field in the Fde by checking for a
- Cie at this address. */
- Dwarf_Small *fde_cie_ptr;
-
- Dwarf_Word leb128_length;
- Dwarf_Word i, j;
- int res;
- Dwarf_Word last_cie_index;
-
-
- Dwarf_Small *prev_augmentation_cie_ptr = 0;
- Dwarf_Small *prev_augmentation_ptr = 0;
-
-
- frame_ptr = section_ptr;
-
- if (frame_ptr == 0) {
- return DW_DLV_NO_ENTRY;
- }
-
- while (frame_ptr < section_ptr + section_length) {
- Dwarf_Small *cie_ptr_addr = 0;
- int local_extension_size = 0;
- int local_length_size = 0;
-
- start_frame_ptr = frame_ptr;
-
- /* READ_AREA_LENGTH updates frame_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- frame_ptr, local_length_size,
- local_extension_size);
-
-
- if (length % local_length_size != 0) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_FRAME_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
-
- if (length == 0) {
- /* nul bytes at end of section, seen at end of egcs
- eh_frame sections (in a.out). Take this as meaning no
- more CIE/FDE data. We should be very close to end of
- section. */
- break;
- }
-
- cie_ptr_addr = frame_ptr;
- READ_UNALIGNED(dbg, cie_id, Dwarf_Unsigned,
- frame_ptr, local_length_size);
- SIGN_EXTEND(cie_id, local_length_size);
- cie_base_offset = cie_id; /* if this is a CIE, this is
- ignored. If it is an FDE,
- this is the section offset
- that allows us to get to the
- cie of this fde. Save it for
- the fde part of the 'if'
- below */
-
- frame_ptr += local_length_size;
-
- if (cie_id == cie_id_value) {
- /* egcs-1.1.2 .eh_frame uses 0 as the distinguishing id.
- sgi uses -1 (in .debug_frame). .eh_frame not quite
- identical to .debug_frame */
-
-
-
- /* this is a CIE, Common Information Entry: See the dwarf
- spec, section 6.4.1 */
- version = *(Dwarf_Small *) frame_ptr;
- frame_ptr++;
- if (version != DW_CIE_VERSION) {
- _dwarf_error(dbg, error, DW_DLE_FRAME_VERSION_BAD);
- return (DW_DLV_ERROR);
- }
-
- augmentation = frame_ptr;
- frame_ptr = frame_ptr + strlen((char *) frame_ptr) + 1;
- if ((strcmp((char *) augmentation,
- DW_DEBUG_FRAME_AUGMENTER_STRING) == 0) ||
- (strcmp((char *) augmentation, DW_EMPTY_STRING) == 0)) {
-
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(frame_ptr, lreg)
- code_alignment_factor = (Dwarf_Word) lreg;
-
-
- data_alignment_factor =
- (Dwarf_Sword) _dwarf_decode_s_leb128(frame_ptr,
- &leb128_length);
-
- frame_ptr = frame_ptr + leb128_length;
-
- return_address_register = *(Dwarf_Small *) frame_ptr;
- if (return_address_register > DW_FRAME_LAST_REG_NUM) {
- _dwarf_error(dbg, error,
- DW_DLE_CIE_RET_ADDR_REG_ERROR);
- return (DW_DLV_ERROR);
- }
- frame_ptr++;
- } else if (augmentation[0] == 'z') {
- /* The augmentation starts with a known prefix. See the
- dwarf_frame.h for details on the layout. */
-
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(frame_ptr, lreg)
- code_alignment_factor = (Dwarf_Word) lreg;
-
-
- data_alignment_factor =
- (Dwarf_Sword) _dwarf_decode_s_leb128(frame_ptr,
- &leb128_length);
- frame_ptr = frame_ptr + leb128_length;
-
- return_address_register = *(Dwarf_Small *) frame_ptr;
- if (return_address_register > DW_FRAME_LAST_REG_NUM) {
- _dwarf_error(dbg, error,
- DW_DLE_CIE_RET_ADDR_REG_ERROR);
- return (DW_DLV_ERROR);
- }
- frame_ptr++;
-
- /* Decode the length of augmented fields. */
- DECODE_LEB128_UWORD(frame_ptr, lreg)
- length_of_augmented_fields = (Dwarf_Word) lreg;
-
-
- /* set the frame_ptr to point at the instruction start.
- */
- frame_ptr += length_of_augmented_fields;
- } else if (0 == strcmp((const char *) augmentation, "eh")) {
-
- /*REFERENCED*/ /* Not used in this instance of the macro */
- Dwarf_Unsigned exception_table_addr;
-
- /* this is per egcs-1.1.2 as on RH 6.0 */
- READ_UNALIGNED(dbg, exception_table_addr,
- Dwarf_Unsigned, frame_ptr,
- local_length_size);
- frame_ptr += local_length_size;
-
- code_alignment_factor =
- (Dwarf_Word) _dwarf_decode_s_leb128(frame_ptr,
- &leb128_length);
- frame_ptr = frame_ptr + leb128_length;
-
-
- data_alignment_factor =
- (Dwarf_Sword) _dwarf_decode_s_leb128(frame_ptr,
- &leb128_length);
-
- frame_ptr = frame_ptr + leb128_length;
-
- return_address_register = *(Dwarf_Small *) frame_ptr;
- if (return_address_register > DW_FRAME_LAST_REG_NUM) {
- _dwarf_error(dbg, error,
- DW_DLE_CIE_RET_ADDR_REG_ERROR);
- return (DW_DLV_ERROR);
- }
- frame_ptr++;
-
- } else {
- /* We do not understand the augmentation string. No
- assumption can be made about any fields other than
- what we have already read. */
- frame_ptr = start_frame_ptr + length + local_length_size
- + local_extension_size;
- /* FIX -- What are the values of data_alignment_factor,
- code_alignement_factor, return_address_register and
- instruction start? They were clearly uninitalized in
- the previous version and I am leaving them the same
- way. */
- }
-
- new_cie = (Dwarf_Cie) _dwarf_get_alloc(dbg, DW_DLA_CIE, 1);
- if (new_cie == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- new_cie->ci_initial_table = NULL;
- new_cie->ci_length = (Dwarf_Word) length;
- new_cie->ci_length_size = local_length_size;
- new_cie->ci_extension_size = local_extension_size;
- new_cie->ci_augmentation = (char *) augmentation;
-
- new_cie->ci_data_alignment_factor =
- (Dwarf_Sbyte) data_alignment_factor;
- new_cie->ci_code_alignment_factor =
- (Dwarf_Small) code_alignment_factor;
- new_cie->ci_return_address_register =
- return_address_register;
- new_cie->ci_cie_start = start_frame_ptr;
- new_cie->ci_cie_instr_start = frame_ptr;
- new_cie->ci_dbg = dbg;
-
- cie_count++;
- if (head_cie_ptr == NULL)
- head_cie_ptr = cur_cie_ptr = new_cie;
- else {
- cur_cie_ptr->ci_next = new_cie;
- cur_cie_ptr = new_cie;
- }
- } else {
-
-
-
- /* this is an FDE, Frame Description Entry, see the Dwarf
- Spec, section 6.4.1 */
- Dwarf_Small *cieptr;
-
- Dwarf_Small *initloc = frame_ptr;
- Dwarf_Signed offset_into_exception_tables
- /* must be min dwarf_sfixed in size */
- = (Dwarf_Signed) DW_DLX_NO_EH_OFFSET;
-
- READ_UNALIGNED(dbg, initial_location, Dwarf_Addr,
- frame_ptr, dbg->de_pointer_size);
- frame_ptr += dbg->de_pointer_size;
-
- READ_UNALIGNED(dbg, address_range, Dwarf_Addr,
- frame_ptr, dbg->de_pointer_size);
- frame_ptr += dbg->de_pointer_size;
- /* Get the augmentation string from Cie to identify the
- layout of this Fde. */
- if (use_gnu_cie_calc) {
- /* cie_id value is offset, in section, of the cie_id
- itself, to use vm ptr of the value, less the value,
- to get to the cie itself. In addition, munge
- cie_base_offset to look *as if* it was from real
- dwarf. */
- cieptr = cie_ptr_addr - cie_base_offset;
- cie_base_offset = cieptr - section_ptr;
- } else {
- /* Traditional dwarf section offset is in cie_id */
- cieptr =
- (Dwarf_Small *) (section_ptr + cie_base_offset);
- }
-
-
- if (prev_augmentation_cie_ptr == cieptr &&
- prev_augmentation_ptr != NULL) {
- augmentation = prev_augmentation_ptr;
- } else {
- res = get_augmentation_string(dbg,
- cieptr,
- cie_id_value,
- &augmentation, error);
- if (res != DW_DLV_OK) {
- return res;
- }
- prev_augmentation_cie_ptr = cieptr;
- prev_augmentation_ptr = augmentation;
- }
- if ((strcmp((char *) augmentation,
- DW_DEBUG_FRAME_AUGMENTER_STRING) == 0) ||
- (strcmp((char *) augmentation, DW_EMPTY_STRING) == 0)) {
- /* We are pointing at the start of instructions. Do
- nothing. */
- } else if (augmentation[0] == 'z') {
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(frame_ptr, lreg)
- length_of_augmented_fields = (Dwarf_Word) lreg;
-
- saved_frame_ptr = frame_ptr;
- if (strcmp((char *) augmentation,
- DW_CIE_AUGMENTER_STRING_V0) == 0) {
- /* The first word is an offset into execption
- tables. */
- /* ?? THis presumes that the offset is always 32
- bits */
- READ_UNALIGNED(dbg, offset_into_exception_tables,
- Dwarf_Addr, frame_ptr,
- sizeof(Dwarf_sfixed));
- SIGN_EXTEND(offset_into_exception_tables,
- sizeof(Dwarf_sfixed));
- frame_ptr += local_length_size;
- }
- frame_ptr =
- saved_frame_ptr + length_of_augmented_fields;
- } else if (strcmp((const char *) augmentation, "eh") == 0) {
- /* gnu eh fde case. we do not need to do anything */
- /*REFERENCED*/ /* Not used in this instance of the macro */
- Dwarf_Unsigned exception_table_addr;
-
- READ_UNALIGNED(dbg, exception_table_addr,
- Dwarf_Unsigned, frame_ptr,
- dbg->de_pointer_size);
- frame_ptr += dbg->de_pointer_size;
- } else {
- /* We do not understand the augmentation string. No
- assumption can be made about if the instructions is
- present. */
- /* FIX -- The old code assumed that the instruction
- table starts at the location pointed to by
- frame_ptr, clearly incorrect. */
- }
- new_fde = (Dwarf_Fde) _dwarf_get_alloc(dbg, DW_DLA_FDE, 1);
- if (new_fde == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- new_fde->fd_length = (Dwarf_Word) length;
- new_fde->fd_length_size = local_length_size;
- new_fde->fd_extension_size = local_extension_size;
- new_fde->fd_cie_offset = cie_base_offset;
- new_fde->fd_initial_location = initial_location;
- new_fde->fd_initial_loc_pos = initloc;
- new_fde->fd_address_range = address_range;
- new_fde->fd_fde_start = start_frame_ptr;
- new_fde->fd_fde_instr_start = frame_ptr;
- new_fde->fd_dbg = dbg;
- new_fde->fd_offset_into_exception_tables =
- offset_into_exception_tables;
-
- fde_count++;
- if (head_fde_ptr == NULL)
- head_fde_ptr = cur_fde_ptr = new_fde;
- else {
- cur_fde_ptr->fd_next = new_fde;
- cur_fde_ptr = new_fde;
- }
- }
-
- /* Skip over instructions to start of next frame. */
- frame_ptr = start_frame_ptr + length + local_length_size +
- local_extension_size;
- }
-
- if (cie_count > 0) {
- cie_list_ptr = (Dwarf_Cie *)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, cie_count);
- } else {
- return (DW_DLV_NO_ENTRY);
- }
- if (cie_list_ptr == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- /* Return arguments. */
- *cie_data = cie_list_ptr;
- *cie_element_count = cie_count;
- dbg->de_cie_data = cie_list_ptr;
- dbg->de_cie_count = cie_count;
-
- cur_cie_ptr = head_cie_ptr;
- for (i = 0; i < cie_count; i++) {
- *(cie_list_ptr + i) = cur_cie_ptr;
- cur_cie_ptr = cur_cie_ptr->ci_next;
- }
-
- if (fde_count > 0) {
- fde_list_ptr = (Dwarf_Fde *)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, fde_count);
- } else {
- return (DW_DLV_NO_ENTRY);
- }
- if (fde_list_ptr == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- /* Return arguments. */
- *fde_data = fde_list_ptr;
- *fde_element_count = fde_count;
- dbg->de_fde_data = fde_list_ptr;
- dbg->de_fde_count = fde_count;
- last_cie_index = 0;
-
- cur_fde_ptr = head_fde_ptr;
- for (i = 0; i < fde_count; i++) {
- Dwarf_Sword new_cie_index = (Dwarf_Sword) cie_count;
-
- *(fde_list_ptr + i) = cur_fde_ptr;
-
- fde_cie_ptr = (Dwarf_Small *) (section_ptr +
- cur_fde_ptr->fd_cie_offset);
-
-
- /* we assume that the next fde has the same cie as the ** last
- fde and resume the search where we left off */
- for (j = last_cie_index; j < cie_count; j++) {
- Dwarf_Cie ciep = (Dwarf_Cie) * (cie_list_ptr + j);
-
- if (ciep->ci_cie_start == fde_cie_ptr) {
- new_cie_index = (Dwarf_Sword) j;
- break;
- }
- }
- /* did not find it above, start from 0 and try again */
- if (new_cie_index == cie_count) {
- for (j = 0; j < last_cie_index; ++j) {
- Dwarf_Cie ciep = (Dwarf_Cie) * (cie_list_ptr + j);
-
- if (ciep->ci_cie_start == fde_cie_ptr) {
- new_cie_index = (Dwarf_Sword) j;
- break;
- }
- }
- }
- j = new_cie_index;
- last_cie_index = new_cie_index;
- if (j == cie_count) {
- _dwarf_error(dbg, error, DW_DLE_NO_CIE_FOR_FDE);
- return (DW_DLV_ERROR);
- } else {
- cur_fde_ptr->fd_cie_index = (Dwarf_Sword) j;
- cur_fde_ptr->fd_cie = *(cie_list_ptr + j);
- }
-
- cur_fde_ptr = cur_fde_ptr->fd_next;
- }
-
- /* sort the list by the address, so that dwarf_get_fde_at_pc() can
- binary search this list. */
- qsort((void *) fde_list_ptr, fde_count, sizeof(Dwarf_Ptr),
- qsort_compare);
-
- return (DW_DLV_OK);
-}
/*
Only works on dwarf sections, not eh_frame
+ Given a Dwarf_Die, see if it has a
+ DW_AT_MIPS_fde attribute and if so use that
+ to get an fde offset.
+ Then create a Dwarf_Fde to return thru the ret_fde pointer.
+ Also creates a cie (pointed at from the Dwarf_Fde).
*/
int
dwarf_get_fde_for_die(Dwarf_Debug dbg,
- Dwarf_Die die,
- Dwarf_Fde * ret_fde, Dwarf_Error * error)
+ Dwarf_Die die,
+ Dwarf_Fde * ret_fde, Dwarf_Error * error)
{
Dwarf_Attribute attr;
- Dwarf_Unsigned fde_offset;
- Dwarf_Signed signdval;
- Dwarf_Unsigned length; /* must be min de_length_size bytes */
- Dwarf_Signed signed_offset; /* must be min de_length_size bytes */
- Dwarf_Addr initial_location; /* must be min de_pointer_size
- bytes */
- Dwarf_Addr address_range; /* must be min de_pointer_size bytes */
- Dwarf_Fde new_fde;
- unsigned char *fde_ptr;
- Dwarf_Small *saved_fde_ptr;
- unsigned char *cie_ptr;
- unsigned char *start_cie_ptr;
- Dwarf_Cie new_cie;
+ Dwarf_Unsigned fde_offset = 0;
+ Dwarf_Signed signdval = 0;
+ Dwarf_Fde new_fde = 0;
+ unsigned char *fde_ptr = 0;
+ unsigned char *cie_ptr = 0;
+ Dwarf_Unsigned cie_id = 0;
/* Fields for the current Cie being read. */
- Dwarf_Small version;
- Dwarf_Small *augmentation;
- Dwarf_Word code_alignment_factor;
- Dwarf_Sword data_alignment_factor;
- Dwarf_Small return_address_register;
- Dwarf_Word length_of_augmented_fields;
- Dwarf_Signed offset_into_exception_tables =
- (Dwarf_Signed) DW_DLX_NO_EH_OFFSET;
- int res;
- int resattr;
- int sdatares;
- int fde_local_extension_size = 0;
- int fde_local_length_size = 0;
- int cie_local_extension_size = 0;
- int cie_local_length_size = 0;
+ int res = 0;
+ int resattr = 0;
+ int sdatares = 0;
-
- Dwarf_Word leb128_length;
+ struct cie_fde_prefix_s prefix;
+ struct cie_fde_prefix_s prefix_c;
if (die == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DIE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DIE_NULL);
+ return (DW_DLV_ERROR);
}
resattr = dwarf_attr(die, DW_AT_MIPS_fde, &attr, error);
if (resattr != DW_DLV_OK) {
- return resattr;
+ return resattr;
}
/* why is this formsdata? FIX */
sdatares = dwarf_formsdata(attr, &signdval, error);
if (sdatares != DW_DLV_OK) {
- return sdatares;
+ return sdatares;
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_frame_index,
- &dbg->de_debug_frame,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_frame,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
fde_offset = signdval;
- fde_ptr = (dbg->de_debug_frame + fde_offset);
-
- /* READ_AREA_LENGTH updates fde_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- fde_ptr, fde_local_length_size,
- fde_local_extension_size);
-
-
- if (length % fde_local_length_size != 0) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_FRAME_LENGTH_BAD);
- return (DW_DLV_ERROR);
+ fde_ptr = (dbg->de_debug_frame.dss_data + fde_offset);
+
+
+ /* First read in the 'common prefix' to figure out what * we are to
+ do with this entry. */
+ memset(&prefix_c, 0, sizeof(prefix_c));
+ memset(&prefix, 0, sizeof(prefix));
+ res = dwarf_read_cie_fde_prefix(dbg, fde_ptr,
+ dbg->de_debug_frame.dss_data,
+ dbg->de_debug_frame.dss_index,
+ dbg->de_debug_frame.dss_size,
+ &prefix,
+ error);
+ if (res == DW_DLV_ERROR) {
+ return res;
}
-
- READ_UNALIGNED(dbg, signed_offset, Dwarf_Signed,
- fde_ptr, fde_local_length_size);
- SIGN_EXTEND(signed_offset, fde_local_length_size);
- fde_ptr += fde_local_length_size;
-
- READ_UNALIGNED(dbg, initial_location, Dwarf_Addr,
- fde_ptr, dbg->de_pointer_size);
- fde_ptr += dbg->de_pointer_size;
-
- READ_UNALIGNED(dbg, address_range, Dwarf_Addr,
- fde_ptr, dbg->de_pointer_size);
- fde_ptr += dbg->de_pointer_size;
-
- res = get_augmentation_string(dbg,
- (Dwarf_Small *) (dbg->de_debug_frame +
- signed_offset),
- DW_CIE_ID, &augmentation, error);
- if (res != DW_DLV_OK) {
- return res;
- }
-
- if ((strcmp((char *) augmentation, DW_DEBUG_FRAME_AUGMENTER_STRING)
- == 0) ||
- (strcmp((char *) augmentation, DW_EMPTY_STRING) == 0)) {
- /* Do nothing. The fde_ptr is pointing at start of
- instructions. */
- } else if (augmentation[0] == 'z') {
- /* The augmentation starts with a known prefix. See the
- dwarf_frame.h for details on the layout. */
-
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(fde_ptr, lreg)
- length_of_augmented_fields = (Dwarf_Word) lreg;
-
- saved_fde_ptr = fde_ptr;
- if (strcmp((char *) augmentation, DW_CIE_AUGMENTER_STRING_V0) ==
- 0) {
- /* The first word is an offset into execption tables. */
- READ_UNALIGNED(dbg, offset_into_exception_tables,
- Dwarf_Signed, fde_ptr, sizeof(Dwarf_sfixed));
- SIGN_EXTEND(offset_into_exception_tables,
- sizeof(Dwarf_sfixed));
- fde_ptr += sizeof(Dwarf_sfixed);
- }
- fde_ptr = saved_fde_ptr + length_of_augmented_fields;
- } else {
- /* We do not understand the augmentation string. No assumption
- can be made about if the instructions is present. */
- /* FIX -- The old code assumed that the instruction table
- starts at location pointed to by fde_ptr, clearly incorrect.
- */
- }
-
- new_fde = (Dwarf_Fde) _dwarf_get_alloc(dbg, DW_DLA_FDE, 1);
- if (new_fde == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- new_fde->fd_length = (Dwarf_Word) length;
- new_fde->fd_length_size = fde_local_length_size;
- new_fde->fd_extension_size = fde_local_extension_size;
- new_fde->fd_cie_offset = signed_offset;
- new_fde->fd_initial_location = initial_location;
- new_fde->fd_address_range = address_range;
- new_fde->fd_fde_start = dbg->de_debug_frame + fde_offset;
- new_fde->fd_fde_instr_start = (Dwarf_Small *) fde_ptr;
- new_fde->fd_dbg = dbg;
- new_fde->fd_offset_into_exception_tables =
- offset_into_exception_tables;
+ if (res == DW_DLV_NO_ENTRY)
+ return res;
+ fde_ptr = prefix.cf_addr_after_prefix;
+ cie_id = prefix.cf_cie_id;
+ /* Pass NULL, not section pointer, for 3rd argument.
+ de_debug_frame.dss_data has no eh_frame relevance. */
+ res = dwarf_create_fde_from_after_start(dbg, &prefix,
+ (Dwarf_Small *) NULL,
+ fde_ptr,
+ /* use_gnu_cie_calc= */ 0,
+ /* Dwarf_Cie = */ 0,
+ &new_fde, error);
+ if (res == DW_DLV_ERROR) {
+ return res;
+ } else if (res == DW_DLV_NO_ENTRY) {
+ return res;
+ }
+ /* DW_DLV_OK */
/* now read the cie corresponding to the fde */
- cie_ptr = (dbg->de_debug_frame + signed_offset);
- start_cie_ptr = cie_ptr;
-
- /* READ_AREA_LENGTH updates cie_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- cie_ptr, cie_local_length_size,
- cie_local_extension_size);
-
-
- if (length % cie_local_length_size != 0) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_FRAME_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
-
- READ_UNALIGNED(dbg, signed_offset, Dwarf_Signed,
- cie_ptr, cie_local_length_size);
- SIGN_EXTEND(signed_offset, cie_local_length_size);
- cie_ptr += cie_local_length_size;
-
- if (signed_offset == DW_CIE_ID) {
-
- version = *(Dwarf_Small *) cie_ptr;
- cie_ptr++;
- if (version != DW_CIE_VERSION) {
- _dwarf_error(dbg, error, DW_DLE_FRAME_VERSION_BAD);
- return (DW_DLV_ERROR);
- }
-
- augmentation = cie_ptr;
- cie_ptr = cie_ptr + strlen((char *) cie_ptr) + 1;
- if ((strcmp((char *) augmentation,
- DW_DEBUG_FRAME_AUGMENTER_STRING) == 0) ||
- (strcmp((char *) augmentation, DW_EMPTY_STRING) == 0)) {
-
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(cie_ptr, lreg)
- code_alignment_factor = (Dwarf_Word) lreg;
-
-
- data_alignment_factor = (Dwarf_Sword)
- _dwarf_decode_s_leb128(cie_ptr, &leb128_length);
- cie_ptr = cie_ptr + leb128_length;
-
- return_address_register = *(Dwarf_Small *) cie_ptr;
- if (return_address_register > DW_FRAME_LAST_REG_NUM) {
- _dwarf_error(dbg, error, DW_DLE_CIE_RET_ADDR_REG_ERROR);
- return (DW_DLV_ERROR);
- }
- cie_ptr++;
- } else if (augmentation[0] == 'z') {
- /* The augmentation starts with a known prefix. We can
- asssume that the first field is the length of the
- augmented fields. */
-
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(cie_ptr, lreg)
- code_alignment_factor = (Dwarf_Word) lreg;
- data_alignment_factor = (Dwarf_Sword)
- _dwarf_decode_s_leb128(cie_ptr, &leb128_length);
- cie_ptr = cie_ptr + leb128_length;
-
- return_address_register = *(Dwarf_Small *) cie_ptr;
- if (return_address_register > DW_FRAME_LAST_REG_NUM) {
- _dwarf_error(dbg, error, DW_DLE_CIE_RET_ADDR_REG_ERROR);
- return (DW_DLV_ERROR);
- }
- cie_ptr++;
- /* Decode the length of augmented fields. */
- DECODE_LEB128_UWORD(cie_ptr, lreg)
- length_of_augmented_fields = (Dwarf_Word) lreg;
-
- /* set the cie_ptr to point at the instruction start. */
- cie_ptr += length_of_augmented_fields;
- } else if (strcmp((const char *) augmentation, "eh") == 0) {
- Dwarf_Unsigned lreg;
-
- DECODE_LEB128_UWORD(cie_ptr, lreg)
- code_alignment_factor = (Dwarf_Word) lreg;
-
-
- data_alignment_factor = (Dwarf_Sword)
- _dwarf_decode_s_leb128(cie_ptr, &leb128_length);
- cie_ptr = cie_ptr + leb128_length;
-
- return_address_register = *(Dwarf_Small *) cie_ptr;
- if (return_address_register > DW_FRAME_LAST_REG_NUM) {
- _dwarf_error(dbg, error, DW_DLE_CIE_RET_ADDR_REG_ERROR);
- return (DW_DLV_ERROR);
- }
- cie_ptr++;
-
- } else {
- /* We do not understand the augmentation string. No
- assumption can be made about any fields other than what
- we have already read. */
- cie_ptr = start_cie_ptr + length + cie_local_length_size
- + cie_local_extension_size;
- /* FIX -- What are the values of data_alignment_factor,
- code_alignement_factor, return_address_register and
- instruction start? They were clearly uninitalized in
- the previous version and I am leaving them the same way.
- */
- }
-
- new_cie = (Dwarf_Cie) _dwarf_get_alloc(dbg, DW_DLA_CIE, 1);
- if (new_cie == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- new_cie->ci_initial_table = NULL;
- new_cie->ci_length = (Dwarf_Word) length;
- new_cie->ci_length_size = cie_local_length_size;
- new_cie->ci_extension_size = cie_local_extension_size;
- new_cie->ci_augmentation = (char *) augmentation;
- new_cie->ci_data_alignment_factor =
- (Dwarf_Sbyte) data_alignment_factor;
- new_cie->ci_code_alignment_factor =
- (Dwarf_Small) code_alignment_factor;
- new_cie->ci_return_address_register = return_address_register;
- new_cie->ci_cie_start = start_cie_ptr;
- new_cie->ci_cie_instr_start = cie_ptr;
- new_cie->ci_dbg = dbg;
+ cie_ptr = new_fde->fd_section_ptr + cie_id;
+ res = dwarf_read_cie_fde_prefix(dbg, cie_ptr,
+ dbg->de_debug_frame.dss_data,
+ dbg->de_debug_frame.dss_index,
+ dbg->de_debug_frame.dss_size,
+ &prefix_c, error);
+ if (res == DW_DLV_ERROR) {
+ return res;
+ }
+ if (res == DW_DLV_NO_ENTRY)
+ return res;
+
+ cie_ptr = prefix_c.cf_addr_after_prefix;
+ cie_id = prefix_c.cf_cie_id;
+
+ if (cie_id == DW_CIE_ID) {
+ int res2 = 0;
+ Dwarf_Cie new_cie = 0;
+
+ /* Pass NULL, not section pointer, for 3rd argument.
+ de_debug_frame.dss_data has no eh_frame relevance. */
+ res2 = dwarf_create_cie_from_after_start(dbg,
+ &prefix_c,
+ (Dwarf_Small *) NULL,
+ cie_ptr,
+ /* cie_count= */ 0,
+ /* use_gnu_cie_calc= */
+ 0, &new_cie, error);
+ if (res2 == DW_DLV_ERROR) {
+ dwarf_dealloc(dbg, new_fde, DW_DLA_FDE);
+ return res;
+ } else if (res2 == DW_DLV_NO_ENTRY) {
+ dwarf_dealloc(dbg, new_fde, DW_DLA_FDE);
+ return res;
+ }
+ new_fde->fd_cie = new_cie;
} else {
- _dwarf_error(dbg, error, DW_DLE_NO_CIE_FOR_FDE);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_NO_CIE_FOR_FDE);
+ return (DW_DLV_ERROR);
}
- new_fde->fd_cie = new_cie;
*ret_fde = new_fde;
return DW_DLV_OK;
}
-
+/* A dwarf consumer operation, see the consumer library documentation.
+*/
int
dwarf_get_fde_range(Dwarf_Fde fde,
- Dwarf_Addr * low_pc,
- Dwarf_Unsigned * func_length,
- Dwarf_Ptr * fde_bytes,
- Dwarf_Unsigned * fde_byte_length,
- Dwarf_Off * cie_offset,
- Dwarf_Signed * cie_index,
- Dwarf_Off * fde_offset, Dwarf_Error * error)
+ Dwarf_Addr * low_pc,
+ Dwarf_Unsigned * func_length,
+ Dwarf_Ptr * fde_bytes,
+ Dwarf_Unsigned * fde_byte_length,
+ Dwarf_Off * cie_offset,
+ Dwarf_Signed * cie_index,
+ Dwarf_Off * fde_offset, Dwarf_Error * error)
{
- int res;
Dwarf_Debug dbg;
if (fde == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
+ return (DW_DLV_ERROR);
}
dbg = fde->fd_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_frame_index,
- &dbg->de_debug_frame,
- error);
- if (res != DW_DLV_OK) {
- return res;
- }
+
+ /* We have always already done the section load here, so no need to
+ load the section. We did the section load in order to create the
+ Dwarf_Fde pointer passed in here. */
+
if (low_pc != NULL)
- *low_pc = fde->fd_initial_location;
+ *low_pc = fde->fd_initial_location;
if (func_length != NULL)
- *func_length = fde->fd_address_range;
+ *func_length = fde->fd_address_range;
if (fde_bytes != NULL)
- *fde_bytes = fde->fd_fde_start;
+ *fde_bytes = fde->fd_fde_start;
if (fde_byte_length != NULL)
- *fde_byte_length = fde->fd_length;
+ *fde_byte_length = fde->fd_length;
if (cie_offset != NULL)
- *cie_offset = fde->fd_cie_offset;
+ *cie_offset = fde->fd_cie_offset;
if (cie_index != NULL)
- *cie_index = fde->fd_cie_index;
+ *cie_index = fde->fd_cie_index;
if (fde_offset != NULL)
- *fde_offset = fde->fd_fde_start - dbg->de_debug_frame;
+ *fde_offset = fde->fd_fde_start - fde->fd_section_ptr;
return DW_DLV_OK;
}
+/* IRIX specific function. The exception tables
+ have C++ destructor information and are
+ at present undocumented. */
int
dwarf_get_fde_exception_info(Dwarf_Fde fde,
- Dwarf_Signed *
- offset_into_exception_tables,
- Dwarf_Error * error)
+ Dwarf_Signed *
+ offset_into_exception_tables,
+ Dwarf_Error * error)
{
Dwarf_Debug dbg;
dbg = fde->fd_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
*offset_into_exception_tables =
- fde->fd_offset_into_exception_tables;
+ fde->fd_offset_into_exception_tables;
return DW_DLV_OK;
}
+/* A consumer code function.
+ Given a CIE pointer, return the normal CIE data thru
+ pointers.
+ Special augmentation data is not returned here.
+*/
int
dwarf_get_cie_info(Dwarf_Cie cie,
- Dwarf_Unsigned * bytes_in_cie,
- Dwarf_Small * version,
- char **augmenter,
- Dwarf_Unsigned * code_alignment_factor,
- Dwarf_Signed * data_alignment_factor,
- Dwarf_Half * return_address_register,
- Dwarf_Ptr * initial_instructions,
- Dwarf_Unsigned * initial_instructions_length,
- Dwarf_Error * error)
+ Dwarf_Unsigned * bytes_in_cie,
+ Dwarf_Small * ptr_to_version,
+ char **augmenter,
+ Dwarf_Unsigned * code_alignment_factor,
+ Dwarf_Signed * data_alignment_factor,
+ Dwarf_Half * return_address_register,
+ Dwarf_Ptr * initial_instructions,
+ Dwarf_Unsigned * initial_instructions_length,
+ Dwarf_Error * error)
{
Dwarf_Debug dbg;
if (cie == NULL) {
- _dwarf_error(NULL, error, DW_DLE_CIE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_CIE_NULL);
+ return (DW_DLV_ERROR);
}
dbg = cie->ci_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_CIE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_CIE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- if (version != NULL)
- *version = DW_CIE_VERSION;
+ if (ptr_to_version != NULL)
+ *ptr_to_version = cie->ci_cie_version_number;
if (augmenter != NULL)
- *augmenter = cie->ci_augmentation;
+ *augmenter = cie->ci_augmentation;
if (code_alignment_factor != NULL)
- *code_alignment_factor = cie->ci_code_alignment_factor;
+ *code_alignment_factor = cie->ci_code_alignment_factor;
if (data_alignment_factor != NULL)
- *data_alignment_factor = cie->ci_data_alignment_factor;
+ *data_alignment_factor = cie->ci_data_alignment_factor;
if (return_address_register != NULL)
- *return_address_register = cie->ci_return_address_register;
+ *return_address_register = cie->ci_return_address_register;
if (initial_instructions != NULL)
- *initial_instructions = cie->ci_cie_instr_start;
+ *initial_instructions = cie->ci_cie_instr_start;
if (initial_instructions_length != NULL) {
- *initial_instructions_length = cie->ci_length +
- cie->ci_length_size +
- cie->ci_extension_size -
- (cie->ci_cie_instr_start - cie->ci_cie_start);
+ *initial_instructions_length = cie->ci_length +
+ cie->ci_length_size +
+ cie->ci_extension_size -
+ (cie->ci_cie_instr_start - cie->ci_cie_start);
}
*bytes_in_cie = (cie->ci_length);
return (DW_DLV_OK);
}
+/* Return the register rules for all registers at a given pc.
+*/
static int
_dwarf_get_fde_info_for_a_pc_row(Dwarf_Fde fde,
- Dwarf_Addr pc_requested,
- Dwarf_Frame table, Dwarf_Error * error)
-/* Return the register rules for all registers at a given pc. */
+ Dwarf_Addr pc_requested,
+ Dwarf_Frame table,
+ Dwarf_Half cfa_reg_col_num,
+ Dwarf_Error * error)
{
- Dwarf_Debug dbg;
- Dwarf_Cie cie;
- Dwarf_Sword i;
- int dw_err;
- Dwarf_Sword icount;
- int res;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Cie cie = 0;
+ int dw_err = 0;
+ Dwarf_Sword icount = 0;
+ int res = 0;
if (fde == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
+ return (DW_DLV_ERROR);
}
dbg = fde->fd_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
if (pc_requested < fde->fd_initial_location ||
- pc_requested >=
- fde->fd_initial_location + fde->fd_address_range) {
- _dwarf_error(dbg, error, DW_DLE_PC_NOT_IN_FDE_RANGE);
- return (DW_DLV_ERROR);
+ pc_requested >=
+ fde->fd_initial_location + fde->fd_address_range) {
+ _dwarf_error(dbg, error, DW_DLE_PC_NOT_IN_FDE_RANGE);
+ return (DW_DLV_ERROR);
}
cie = fde->fd_cie;
if (cie->ci_initial_table == NULL) {
- cie->ci_initial_table = _dwarf_get_alloc(dbg, DW_DLA_FRAME, 1);
- if (cie->ci_initial_table == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- for (i = 0; i < DW_FRAME_LAST_REG_NUM; i++) {
- cie->ci_initial_table->fr_reg[i].ru_is_off = 0;
- cie->ci_initial_table->fr_reg[i].ru_register =
- DW_FRAME_SAME_VAL;
- cie->ci_initial_table->fr_reg[i].ru_offset = 0;
- }
-
- res = _dwarf_exec_frame_instr( /* make_instr= */ false,
- /* ret_frame_instr= */ NULL,
- /* search_pc */ false,
- /* search_pc_val */ 0,
- /* location */ 0,
- cie->ci_cie_instr_start,
- cie->ci_cie_instr_start +
- (cie->ci_length +
- cie->ci_length_size +
- cie->ci_extension_size -
- (cie->ci_cie_instr_start -
- cie->ci_cie_start)),
- cie->ci_initial_table, cie, dbg,
- &icount, &dw_err);
- if (res == DW_DLV_ERROR) {
- _dwarf_error(dbg, error, dw_err);
- return (res);
- } else if (res == DW_DLV_NO_ENTRY) {
- return res;
- }
- }
-
- res = _dwarf_exec_frame_instr( /* make_instr= */ false,
- /* ret_frame_instr= */ NULL,
- /* search_pc */ true,
- /* search_pc_val */ pc_requested,
- fde->fd_initial_location,
- fde->fd_fde_instr_start,
- fde->fd_fde_start + fde->fd_length +
- fde->fd_length_size +
- fde->fd_extension_size,
- table, cie, dbg, &icount, &dw_err);
+ cie->ci_initial_table = _dwarf_get_alloc(dbg, DW_DLA_FRAME, 1);
+
+ if (cie->ci_initial_table == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ _dwarf_init_regrule_table(cie->ci_initial_table->fr_reg,
+ dbg->de_frame_reg_rules_entry_count,
+ dbg->de_frame_rule_initial_value);
+ _dwarf_init_regrule_table(&cie->ci_initial_table->fr_cfa_rule,
+ 1, dbg->de_frame_rule_initial_value);
+ res = _dwarf_exec_frame_instr( /* make_instr= */ false,
+ /* ret_frame_instr= */ NULL,
+ /* search_pc */ false,
+ /* search_pc_val */ 0,
+ /* location */ 0,
+ cie->ci_cie_instr_start,
+ cie->ci_cie_instr_start + (cie->ci_length +
+ cie->ci_length_size +
+ cie->ci_extension_size -
+ (cie->ci_cie_instr_start -
+ cie->ci_cie_start)),
+ cie->ci_initial_table, cie, dbg,
+ cfa_reg_col_num, &icount,
+ &dw_err);
+ if (res == DW_DLV_ERROR) {
+ _dwarf_error(dbg, error, dw_err);
+ return (res);
+ } else if (res == DW_DLV_NO_ENTRY) {
+ return res;
+ }
+ }
+
+ {
+ Dwarf_Small *instr_end = fde->fd_fde_instr_start +
+ fde->fd_length +
+ fde->fd_length_size +
+ fde->fd_extension_size - (fde->fd_fde_instr_start -
+ fde->fd_fde_start);
+
+ res = _dwarf_exec_frame_instr( /* make_instr= */ false,
+ /* ret_frame_instr= */ NULL,
+ /* search_pc */ true,
+ /* search_pc_val */ pc_requested,
+ fde->fd_initial_location,
+ fde->fd_fde_instr_start,
+ instr_end,
+ table,
+ cie, dbg,
+ cfa_reg_col_num, &icount,
+ &dw_err);
+ }
if (res == DW_DLV_ERROR) {
- _dwarf_error(dbg, error, dw_err);
- return (res);
+ _dwarf_error(dbg, error, dw_err);
+ return (res);
} else if (res == DW_DLV_NO_ENTRY) {
- return res;
+ return res;
}
return DW_DLV_OK;
}
+/* A consumer call for efficiently getting the register info
+ for all registers in one call.
+
+ The output table rules array is size DW_REG_TABLE_SIZE.
+ The frame info rules array in fde_table is of size
+ DW_REG_TABLE_SIZE too.
+
+ This interface really only works well with MIPS/IRIX
+ where DW_FRAME_CFA_COL is zero (in that case it's safe).
+
+ It is also restricted to the case where
+ DW_REG_TABLE_SIZE == DW_FRAME_LAST_REG_NUM ==
+ dbg->de_frame_reg_rules_entry_count (true for MIPS/IRIX).
+ If this condition is not met calling this routine can result in
+ incorrect output or in memory corruption.
+
+ It is much better to use dwarf_get_fde_info_for_all_regs3()
+ instead of this interface.
+*/
int
dwarf_get_fde_info_for_all_regs(Dwarf_Fde fde,
- Dwarf_Addr pc_requested,
- Dwarf_Regtable * reg_table,
- Dwarf_Addr * row_pc,
- Dwarf_Error * error)
+ Dwarf_Addr pc_requested,
+ Dwarf_Regtable * reg_table,
+ Dwarf_Addr * row_pc,
+ Dwarf_Error * error)
{
+ /* Table size: DW_REG_TABLE_SIZE */
struct Dwarf_Frame_s fde_table;
- Dwarf_Sword i;
- int res;
+ Dwarf_Sword i = 0;
+ struct Dwarf_Reg_Rule_s *rule = NULL;
+ struct Dwarf_Regtable_Entry_s *out_rule = NULL;
+ int res = 0;
+ Dwarf_Debug dbg = 0;
+
+ /* For this interface the size is fixed at compile time. */
+ int output_table_real_data_size = DW_REG_TABLE_SIZE;
+
+ FDE_NULL_CHECKS_AND_SET_DBG(fde, dbg);
+
+ res = dwarf_initialize_fde_table(dbg, &fde_table,
+ output_table_real_data_size,
+ error);
+ if (res != DW_DLV_OK)
+ return res;
/* _dwarf_get_fde_info_for_a_pc_row will perform more sanity checks
*/
res = _dwarf_get_fde_info_for_a_pc_row(fde, pc_requested,
- &fde_table, error);
+ &fde_table, dbg->de_frame_cfa_col_number, error);
if (res != DW_DLV_OK) {
- return res;
+ dwarf_free_fde_table(&fde_table);
+ return res;
}
- for (i = 0; i < DW_REG_TABLE_SIZE; i++) {
- reg_table->rules[i].dw_offset_relevant =
- fde_table.fr_reg[i].ru_is_off;
- reg_table->rules[i].dw_regnum = fde_table.fr_reg[i].ru_register;
- reg_table->rules[i].dw_offset = fde_table.fr_reg[i].ru_offset;
+ out_rule = &reg_table->rules[0];
+ rule = &fde_table.fr_reg[0];
+ for (i = 0; i < output_table_real_data_size;
+ i++, ++out_rule, ++rule) {
+ out_rule->dw_offset_relevant = rule->ru_is_off;
+ out_rule->dw_value_type = rule->ru_value_type;
+ out_rule->dw_regnum = rule->ru_register;
+ out_rule->dw_offset = rule->ru_offset_or_block_len;
+ }
+ for (; i < DW_REG_TABLE_SIZE; ++i, ++out_rule) {
+ out_rule->dw_offset_relevant = 0;
+ out_rule->dw_value_type = DW_EXPR_OFFSET;
+ out_rule->dw_regnum = dbg->de_frame_undefined_value_number;
+ out_rule->dw_offset = 0;
+ }
+
+ /* The test is just in case it's not inside the table. For non-MIPS
+ it could be outside the table and that is just fine, it was
+ really a mistake to put it in the table in 1993. */
+ /* CONSTCOND */
+ if (dbg->de_frame_cfa_col_number < DW_REG_TABLE_SIZE) {
+ out_rule = &reg_table->rules[dbg->de_frame_cfa_col_number];
+ out_rule->dw_offset_relevant = fde_table.fr_cfa_rule.ru_is_off;
+ out_rule->dw_value_type = fde_table.fr_cfa_rule.ru_value_type;
+ out_rule->dw_regnum = fde_table.fr_cfa_rule.ru_register;
+ out_rule->dw_offset =
+ fde_table.fr_cfa_rule.ru_offset_or_block_len;
}
if (row_pc != NULL)
- *row_pc = fde_table.fr_loc;
+ *row_pc = fde_table.fr_loc;
+ dwarf_free_fde_table(&fde_table);
+ return DW_DLV_OK;
+}
+
+/* A consumer call for efficiently getting the register info
+ for all registers in one call.
+
+ The output table rules array is size output_table_real_data_size.
+ (normally DW_REG_TABLE_SIZE).
+ The frame info rules array in fde_table is normally of size
+ DW_FRAME_LAST_REG_NUM.
+*/
+int
+dwarf_get_fde_info_for_all_regs3(Dwarf_Fde fde,
+ Dwarf_Addr pc_requested,
+ Dwarf_Regtable3 * reg_table,
+ Dwarf_Addr * row_pc,
+ Dwarf_Error * error)
+{
+
+ struct Dwarf_Frame_s fde_table;
+ Dwarf_Sword i = 0;
+ int res = 0;
+ struct Dwarf_Reg_Rule_s *rule = NULL;
+ struct Dwarf_Regtable_Entry3_s *out_rule = NULL;
+ Dwarf_Debug dbg = 0;
+ int output_table_real_data_size = reg_table->rt3_reg_table_size;
+
+ FDE_NULL_CHECKS_AND_SET_DBG(fde, dbg);
+
+ output_table_real_data_size =
+ MIN(output_table_real_data_size,
+ dbg->de_frame_reg_rules_entry_count);
+
+ res = dwarf_initialize_fde_table(dbg, &fde_table,
+ output_table_real_data_size,
+ error);
+
+ /* _dwarf_get_fde_info_for_a_pc_row will perform more sanity checks
+ */
+ res = _dwarf_get_fde_info_for_a_pc_row(fde, pc_requested,
+ &fde_table,
+ dbg->de_frame_cfa_col_number,
+ error);
+ if (res != DW_DLV_OK) {
+ dwarf_free_fde_table(&fde_table);
+ return res;
+ }
+
+ out_rule = &reg_table->rt3_rules[0];
+ rule = &fde_table.fr_reg[0];
+ for (i = 0; i < output_table_real_data_size;
+ i++, ++out_rule, ++rule) {
+ out_rule->dw_offset_relevant = rule->ru_is_off;
+ out_rule->dw_value_type = rule->ru_value_type;
+ out_rule->dw_regnum = rule->ru_register;
+ out_rule->dw_offset_or_block_len = rule->ru_offset_or_block_len;
+ out_rule->dw_block_ptr = rule->ru_block;
+ }
+ for (; i < reg_table->rt3_reg_table_size; i++, ++out_rule) {
+ out_rule->dw_offset_relevant = 0;
+ out_rule->dw_value_type = DW_EXPR_OFFSET;
+ out_rule->dw_regnum = dbg->de_frame_undefined_value_number;
+ out_rule->dw_offset_or_block_len = 0;
+ out_rule->dw_block_ptr = 0;
+ }
+ reg_table->rt3_cfa_rule.dw_offset_relevant =
+ fde_table.fr_cfa_rule.ru_is_off;
+ reg_table->rt3_cfa_rule.dw_value_type =
+ fde_table.fr_cfa_rule.ru_value_type;
+ reg_table->rt3_cfa_rule.dw_regnum =
+ fde_table.fr_cfa_rule.ru_register;
+ reg_table->rt3_cfa_rule.dw_offset_or_block_len =
+ fde_table.fr_cfa_rule.ru_offset_or_block_len;
+ reg_table->rt3_cfa_rule.dw_block_ptr =
+ fde_table.fr_cfa_rule.ru_block;
+ if (row_pc != NULL)
+ *row_pc = fde_table.fr_loc;
+
+ dwarf_free_fde_table(&fde_table);
return DW_DLV_OK;
}
+/* Gets the register info for a single register at a given PC value
+ for the FDE specified.
+
+ This is the old MIPS interface and should no longer be used.
+ Use dwarf_get_fde_info_for_reg3() instead.
+*/
int
dwarf_get_fde_info_for_reg(Dwarf_Fde fde,
- Dwarf_Half table_column,
- Dwarf_Addr pc_requested,
- Dwarf_Signed * offset_relevant,
- Dwarf_Signed * register_num,
- Dwarf_Signed * offset,
- Dwarf_Addr * row_pc, Dwarf_Error * error)
+ Dwarf_Half table_column,
+ Dwarf_Addr pc_requested,
+ Dwarf_Signed * offset_relevant,
+ Dwarf_Signed * register_num,
+ Dwarf_Signed * offset,
+ Dwarf_Addr * row_pc, Dwarf_Error * error)
{
struct Dwarf_Frame_s fde_table;
- int res;
+ int res = DW_DLV_ERROR;
+ Dwarf_Debug dbg = 0;
+ int output_table_real_data_size = 0;
+ FDE_NULL_CHECKS_AND_SET_DBG(fde, dbg);
+ output_table_real_data_size = dbg->de_frame_reg_rules_entry_count;
- if (table_column > DW_FRAME_LAST_REG_NUM) {
- _dwarf_error(NULL, error, DW_DLE_FRAME_TABLE_COL_BAD);
- return (DW_DLV_ERROR);
+ res = dwarf_initialize_fde_table(dbg, &fde_table,
+ output_table_real_data_size,
+ error);
+ if (res != DW_DLV_OK)
+ return res;
+
+ if (table_column >= output_table_real_data_size) {
+ dwarf_free_fde_table(&fde_table);
+ _dwarf_error(dbg, error, DW_DLE_FRAME_TABLE_COL_BAD);
+ return (DW_DLV_ERROR);
}
/* _dwarf_get_fde_info_for_a_pc_row will perform more sanity checks
*/
res =
- _dwarf_get_fde_info_for_a_pc_row(fde, pc_requested, &fde_table,
- error);
+ _dwarf_get_fde_info_for_a_pc_row(fde, pc_requested, &fde_table,
+ dbg->de_frame_cfa_col_number, error);
if (res != DW_DLV_OK) {
- return res;
+ dwarf_free_fde_table(&fde_table);
+ return res;
}
- if (register_num != NULL)
- *register_num = fde_table.fr_reg[table_column].ru_register;
- if (offset != NULL)
- *offset = fde_table.fr_reg[table_column].ru_offset;
- if (row_pc != NULL)
- *row_pc = fde_table.fr_loc;
+ if (fde_table.fr_reg[table_column].ru_value_type != DW_EXPR_OFFSET) {
+ /* The problem here is that this interface cannot deal with
+ other sorts of (newer) dwarf frame values. Code must
+ use dwarf_get_fde_info_for_reg3() to get these
+ values correctly. We error rather than return
+ misleading incomplete data. */
+ dwarf_free_fde_table(&fde_table);
+ _dwarf_error(NULL, error,
+ DW_DLE_FRAME_REGISTER_UNREPRESENTABLE);
+ return (DW_DLV_ERROR);
+ }
+ if(table_column == dbg->de_frame_cfa_col_number) {
+ if (register_num != NULL)
+ *register_num = fde_table.fr_cfa_rule.ru_register;
+ if (offset != NULL)
+ *offset = fde_table.fr_cfa_rule.ru_offset_or_block_len;
+ if (row_pc != NULL)
+ *row_pc = fde_table.fr_loc;
+ *offset_relevant = fde_table.fr_cfa_rule.ru_is_off;
+
+ } else {
+ if (register_num != NULL)
+ *register_num = fde_table.fr_reg[table_column].ru_register;
+ if (offset != NULL)
+ *offset = fde_table.fr_reg[table_column].ru_offset_or_block_len;
+ if (row_pc != NULL)
+ *row_pc = fde_table.fr_loc;
+
+ *offset_relevant = fde_table.fr_reg[table_column].ru_is_off;
+ }
+ dwarf_free_fde_table(&fde_table);
+ return DW_DLV_OK;
+}
+
+/* In this interface, table_column of DW_FRAME_CFA_COL
+ is not meaningful.
+ Use dwarf_get_fde_info_for_cfa_reg3() to get the CFA.
+ Call dwarf_set_frame_cfa_value() to set the correct column
+ after calling dwarf_init()
+ (DW_FRAME_CFA_COL3 is a sensible column to use).
+*/
+int
+dwarf_get_fde_info_for_reg3(Dwarf_Fde fde,
+ Dwarf_Half table_column,
+ Dwarf_Addr pc_requested,
+ Dwarf_Small * value_type,
+ Dwarf_Signed * offset_relevant,
+ Dwarf_Signed * register_num,
+ Dwarf_Signed * offset_or_block_len,
+ Dwarf_Ptr * block_ptr,
+ Dwarf_Addr * row_pc_out,
+ Dwarf_Error * error)
+{
+ struct Dwarf_Frame_s fde_table;
+ int res = DW_DLV_ERROR;
+
+ Dwarf_Debug dbg = 0;
+ int table_real_data_size = 0;
+
+ FDE_NULL_CHECKS_AND_SET_DBG(fde, dbg);
+ table_real_data_size = dbg->de_frame_reg_rules_entry_count;
+ res = dwarf_initialize_fde_table(dbg, &fde_table,
+ table_real_data_size, error);
+ if (res != DW_DLV_OK)
+ return res;
+ if (table_column >= table_real_data_size) {
+ dwarf_free_fde_table(&fde_table);
+ _dwarf_error(dbg, error, DW_DLE_FRAME_TABLE_COL_BAD);
+ return (DW_DLV_ERROR);
+ }
+
+ /* _dwarf_get_fde_info_for_a_pc_row will perform more sanity checks
+ */
+ res = _dwarf_get_fde_info_for_a_pc_row(fde, pc_requested, &fde_table,
+ dbg->de_frame_cfa_col_number,
+ error);
+ if (res != DW_DLV_OK) {
+ dwarf_free_fde_table(&fde_table);
+ return res;
+ }
+ if (register_num != NULL)
+ *register_num = fde_table.fr_reg[table_column].ru_register;
+ if (offset_or_block_len != NULL)
+ *offset_or_block_len =
+ fde_table.fr_reg[table_column].ru_offset_or_block_len;
+ if (row_pc_out != NULL)
+ *row_pc_out = fde_table.fr_loc;
+ if (block_ptr)
+ *block_ptr = fde_table.fr_reg[table_column].ru_block;
+
+ /* Without value_type the data cannot be understood, so we insist
+ on it being present, we don't test it. */
+ *value_type = fde_table.fr_reg[table_column].ru_value_type;
*offset_relevant = (fde_table.fr_reg[table_column].ru_is_off);
+ dwarf_free_fde_table(&fde_table);
return DW_DLV_OK;
+
}
+/* For latest DWARF, this is the preferred interface.
+ It more portably deals with the CFA by not
+ making the CFA a column number, which means
+ DW_FRAME_CFA_COL3 becomes, like DW_CFA_SAME_VALUE,
+ a special value, not something one uses as an index.
+
+ Call dwarf_set_frame_cfa_value() to set the correct column
+ after calling dwarf_init()
+ (DW_FRAME_CFA_COL3 is a sensible column to use, and
+ is the default unless '--enable-oldframecol'
+ is used to configure libdwarf). */
+int
+dwarf_get_fde_info_for_cfa_reg3(Dwarf_Fde fde,
+ Dwarf_Addr pc_requested,
+ Dwarf_Small * value_type,
+ Dwarf_Signed * offset_relevant,
+ Dwarf_Signed * register_num,
+ Dwarf_Signed * offset_or_block_len,
+ Dwarf_Ptr * block_ptr,
+ Dwarf_Addr * row_pc_out,
+ Dwarf_Error * error)
+{
+ struct Dwarf_Frame_s fde_table;
+ int res = DW_DLV_ERROR;
+ Dwarf_Debug dbg = 0;
+
+ int table_real_data_size = 0;
+
+ FDE_NULL_CHECKS_AND_SET_DBG(fde, dbg);
+
+ table_real_data_size = dbg->de_frame_reg_rules_entry_count;
+ res = dwarf_initialize_fde_table(dbg, &fde_table,
+ table_real_data_size, error);
+ if (res != DW_DLV_OK)
+ return res;
+ res = _dwarf_get_fde_info_for_a_pc_row(fde, pc_requested, &fde_table,
+ dbg->de_frame_cfa_col_number,error);
+ if (res != DW_DLV_OK) {
+ dwarf_free_fde_table(&fde_table);
+ return res;
+ }
+
+ if (register_num != NULL)
+ *register_num = fde_table.fr_cfa_rule.ru_register;
+ if (offset_or_block_len != NULL)
+ *offset_or_block_len =
+ fde_table.fr_cfa_rule.ru_offset_or_block_len;
+ if (row_pc_out != NULL)
+ *row_pc_out = fde_table.fr_loc;
+ if (block_ptr)
+ *block_ptr = fde_table.fr_cfa_rule.ru_block;
+
+ /* Without value_type the data cannot be understood, so we insist
+ on it being present, we don't test it. */
+ *value_type = fde_table.fr_cfa_rule.ru_value_type;
+ *offset_relevant = fde_table.fr_cfa_rule.ru_is_off;
+ dwarf_free_fde_table(&fde_table);
+ return DW_DLV_OK;
+}
+
+
+
/*
- Return pointer to the instructions in the dwarf
- fde.
+ Return pointer to the instructions in the dwarf
+ fde.
*/
int
dwarf_get_fde_instr_bytes(Dwarf_Fde inFde, Dwarf_Ptr * outinstraddr,
- Dwarf_Unsigned * outaddrlen,
- Dwarf_Error * error)
+ Dwarf_Unsigned * outaddrlen,
+ Dwarf_Error * error)
{
- Dwarf_Unsigned len;
- unsigned char *instrs;
- Dwarf_Debug dbg;
+ Dwarf_Unsigned len = 0;
+ unsigned char *instrs = 0;
+ Dwarf_Debug dbg = 0;
if (inFde == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_FDE_NULL);
+ return (DW_DLV_ERROR);
}
dbg = inFde->fd_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_FDE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- instrs = inFde->fd_fde_instr_start,
- len = (inFde->fd_fde_start + inFde->fd_length +
- inFde->fd_length_size + inFde->fd_extension_size)
- - instrs;
+ instrs = inFde->fd_fde_instr_start;
+
+ len = (inFde->fd_fde_start + inFde->fd_length +
+ inFde->fd_length_size + inFde->fd_extension_size) - instrs;
*outinstraddr = instrs;
*outaddrlen = len;
return DW_DLV_OK;
}
+/* Allows getting an fde from its table via an index.
+ With more error checking than simply indexing oneself.
+*/
int
dwarf_get_fde_n(Dwarf_Fde * fde_data,
- Dwarf_Unsigned fde_index,
- Dwarf_Fde * returned_fde, Dwarf_Error * error)
+ Dwarf_Unsigned fde_index,
+ Dwarf_Fde * returned_fde, Dwarf_Error * error)
{
- Dwarf_Debug dbg;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Signed fdecount = 0;
if (fde_data == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_PTR_NULL);
- return (DW_DLV_ERROR);
- }
-
- if (*fde_data == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
- return (DW_DLV_ERROR);
- }
-
- dbg = (*fde_data)->fd_dbg;
- if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_FDE_PTR_NULL);
+ return (DW_DLV_ERROR);
}
- if (fde_index >= dbg->de_fde_count) {
- return (DW_DLV_NO_ENTRY);
+ FDE_NULL_CHECKS_AND_SET_DBG(*fde_data, dbg);
+ /* Assumes fde_data table has at least one entry. */
+ fdecount = fde_data[0]->fd_is_eh?
+ dbg->de_fde_count_eh:dbg->de_fde_count;
+ if (fde_index >= fdecount) {
+ return (DW_DLV_NO_ENTRY);
}
*returned_fde = (*(fde_data + fde_index));
return DW_DLV_OK;
@@ -2040,87 +1975,101 @@ dwarf_get_fde_n(Dwarf_Fde * fde_data,
*/
int
dwarf_get_fde_at_pc(Dwarf_Fde * fde_data,
- Dwarf_Addr pc_of_interest,
- Dwarf_Fde * returned_fde,
- Dwarf_Addr * lopc,
- Dwarf_Addr * hipc, Dwarf_Error * error)
+ Dwarf_Addr pc_of_interest,
+ Dwarf_Fde * returned_fde,
+ Dwarf_Addr * lopc,
+ Dwarf_Addr * hipc, Dwarf_Error * error)
{
- Dwarf_Debug dbg;
+ Dwarf_Debug dbg = NULL;
Dwarf_Fde fde = NULL;
+ Dwarf_Fde entryfde = NULL;
+ Dwarf_Signed fdecount = 0;
if (fde_data == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_PTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_PTR_NULL);
+ return (DW_DLV_ERROR);
}
- if (*fde_data == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
- return (DW_DLV_ERROR);
- }
+ /* Assumes fde_data table has at least one entry. */
+ entryfde = *fde_data;
+ FDE_NULL_CHECKS_AND_SET_DBG(entryfde, dbg);
- dbg = (*fde_data)->fd_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FDE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
+ fdecount = entryfde->fd_is_eh?
+ dbg->de_fde_count_eh:dbg->de_fde_count;
{
- /* The fde's are sorted by their addresses. Binary search to
- find correct fde. */
- int low = 0;
- int high = dbg->de_fde_count - 1;
- int middle = 0;
- Dwarf_Fde cur_fde;
-
- while (low <= high) {
- middle = (low + high) / 2;
- cur_fde = fde_data[middle];
- if (pc_of_interest < cur_fde->fd_initial_location) {
- high = middle - 1;
- } else if (pc_of_interest >=
- (cur_fde->fd_initial_location +
- cur_fde->fd_address_range)) {
- low = middle + 1;
- } else {
- fde = fde_data[middle];
- break;
- }
- }
+ /* The fde's are sorted by their addresses. Binary search to
+ find correct fde. */
+ Dwarf_Signed low = 0;
+ Dwarf_Signed high = fdecount - 1L;
+ Dwarf_Signed middle = 0;
+ Dwarf_Fde cur_fde;
+
+ while (low <= high) {
+ middle = (low + high) / 2;
+ cur_fde = fde_data[middle];
+ if (pc_of_interest < cur_fde->fd_initial_location) {
+ high = middle - 1;
+ } else if (pc_of_interest >=
+ (cur_fde->fd_initial_location +
+ cur_fde->fd_address_range)) {
+ low = middle + 1;
+ } else {
+ fde = fde_data[middle];
+ break;
+ }
+ }
}
if (fde) {
- if (lopc != NULL)
- *lopc = fde->fd_initial_location;
- if (hipc != NULL)
- *hipc = fde->fd_initial_location +
- fde->fd_address_range - 1;
- *returned_fde = fde;
- return (DW_DLV_OK);
+ if (lopc != NULL)
+ *lopc = fde->fd_initial_location;
+ if (hipc != NULL)
+ *hipc =
+ fde->fd_initial_location + fde->fd_address_range - 1;
+ *returned_fde = fde;
+ return (DW_DLV_OK);
}
return (DW_DLV_NO_ENTRY);
}
+/* Expands a single frame instruction block
+ from a specific cie
+ into a n array of Dwarf_Frame_Op-s.
+ This depends on having the cfa column set sensibly.
+
+ Call dwarf_set_frame_cfa_value() to set the correct column
+ after calling dwarf_init() unless you are using
+ the old MIPS frame interfaces (in which case the default
+ will be ok). (DW_FRAME_CFA_COL3 is a sensible column to use ).
+*/
int
-dwarf_expand_frame_instructions(Dwarf_Debug dbg,
- Dwarf_Ptr instruction,
- Dwarf_Unsigned i_length,
- Dwarf_Frame_Op ** returned_op_list,
- Dwarf_Signed * returned_op_count,
- Dwarf_Error * error)
+dwarf_expand_frame_instructions(Dwarf_Cie cie,
+ Dwarf_Ptr instruction,
+ Dwarf_Unsigned i_length,
+ Dwarf_Frame_Op ** returned_op_list,
+ Dwarf_Signed * returned_op_count,
+ Dwarf_Error * error)
{
Dwarf_Sword instr_count;
- int res;
+ int res = DW_DLV_ERROR;
int dw_err;
+ Dwarf_Debug dbg = 0;
- if (dbg == 0) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ if (cie == 0) {
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
+ dbg = cie->ci_dbg;
if (returned_op_list == 0 || returned_op_count == 0) {
- _dwarf_error(dbg, error, DW_DLE_RET_OP_LIST_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_RET_OP_LIST_NULL);
+ return (DW_DLV_ERROR);
}
/* The cast to Dwarf_Ptr may get a compiler warning, but it is safe
@@ -2128,20 +2077,22 @@ dwarf_expand_frame_instructions(Dwarf_Debug dbg,
caller has made a big mistake if the result is not a valid
pointer. */
res = _dwarf_exec_frame_instr( /* make_instr= */ true,
- returned_op_list,
- /* search_pc */ false,
- /* search_pc_val */ 0,
- /* location */ 0,
- instruction,
- (Dwarf_Ptr)((char *)instruction + i_length),
- /* Dwarf_Frame */ NULL,
- /* cie_ptr */ NULL,
- dbg, &instr_count, &dw_err);
+ returned_op_list,
+ /* search_pc */ false,
+ /* search_pc_val */ 0,
+ /* location */ 0,
+ instruction,
+ (Dwarf_Ptr)((char *)instruction + i_length),
+ /* Dwarf_Frame */ NULL,
+ cie,
+ dbg,
+ dbg->de_frame_cfa_col_number, &instr_count,
+ &dw_err);
if (res != DW_DLV_OK) {
- if (res == DW_DLV_ERROR) {
- _dwarf_error(dbg, error, dw_err);
- }
- return (res);
+ if (res == DW_DLV_ERROR) {
+ _dwarf_error(dbg, error, dw_err);
+ }
+ return (res);
}
*returned_op_count = instr_count;
@@ -2149,269 +2100,32 @@ dwarf_expand_frame_instructions(Dwarf_Debug dbg,
}
-
-/*
- Used by rqs. Returns DW_DLV_OK if returns the arrays.
- Returns DW_DLV_NO_ENTRY if no section. ?? (How do I tell?)
- Returns DW_DLV_ERROR if there is an error.
-
+/* Used by dwarfdump -v to print offsets, for debugging
+ dwarf info.
+ The dwarf_ version is preferred over the obsolete _dwarf version.
+ _dwarf version kept for compatibility.
*/
+/* ARGSUSED 4 */
int
-_dwarf_frame_address_offsets(Dwarf_Debug dbg, Dwarf_Addr ** addrlist,
- Dwarf_Off ** offsetlist,
- Dwarf_Signed * returncount,
- Dwarf_Error * err)
+_dwarf_fde_section_offset(Dwarf_Debug dbg, Dwarf_Fde in_fde,
+ Dwarf_Off * fde_off, Dwarf_Off * cie_off,
+ Dwarf_Error * err)
{
- int retval = DW_DLV_OK;
- int res;
- Dwarf_Cie *cie_data;
- Dwarf_Signed cie_count;
- Dwarf_Fde *fde_data;
- Dwarf_Signed fde_count;
- Dwarf_Signed i;
- Dwarf_Frame_Op *frame_inst;
- Dwarf_Fde fdep;
- Dwarf_Cie ciep;
- Dwarf_Chain curr_chain = 0;
- Dwarf_Chain head_chain = 0;
- Dwarf_Chain prev_chain = 0;
- Dwarf_Arange arange;
- Dwarf_Unsigned arange_count = 0;
- Dwarf_Addr *arange_addrs = 0;
- Dwarf_Off *arange_offsets = 0;
-
- res = dwarf_get_fde_list(dbg, &cie_data, &cie_count,
- &fde_data, &fde_count, err);
- if (res != DW_DLV_OK) {
- return res;
- }
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_frame_index,
- &dbg->de_debug_frame,
- err);
- if (res != DW_DLV_OK) {
- return res;
- }
-
- for (i = 0; i < cie_count; i++) {
- Dwarf_Off instoff = 0;
- Dwarf_Signed initial_instructions_length = 0;
- Dwarf_Small *instr_end = 0;
- Dwarf_Sword icount = 0;
- int j;
- int dw_err;
-
- ciep = cie_data[i];
- instoff = ciep->ci_cie_instr_start - dbg->de_debug_frame;
- initial_instructions_length = ciep->ci_length +
- ciep->ci_length_size + ciep->ci_extension_size -
- (ciep->ci_cie_instr_start - ciep->ci_cie_start);
- instr_end = ciep->ci_cie_instr_start +
- initial_instructions_length;
- res = _dwarf_exec_frame_instr( /* make_instr */ true,
- &frame_inst,
- /* search_pc= */ false,
- /* search_pc_val= */ 0,
- /* location */ 0,
- ciep->ci_cie_instr_start,
- instr_end,
- /* Dwarf_frame= */ 0,
- /* cie= */ 0,
- dbg, &icount, &dw_err);
- if (res == DW_DLV_ERROR) {
- _dwarf_error(dbg, err, dw_err);
- return (res);
- } else if (res == DW_DLV_NO_ENTRY) {
- continue;
- }
-
- for (j = 0; j < icount; ++j) {
- Dwarf_Frame_Op *finst = frame_inst + j;
-
- if (finst->fp_base_op == 0 && finst->fp_extended_op == 1) {
- /* is DW_CFA_set_loc */
- Dwarf_Addr add = (Dwarf_Addr) finst->fp_offset;
- Dwarf_Off off = finst->fp_instr_offset + instoff;
-
- arange = (Dwarf_Arange)
- _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
- if (arange == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- arange->ar_address = add;
- arange->ar_info_offset = off;
- arange_count++;
- curr_chain = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_chain == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- curr_chain->ch_item = arange;
- if (head_chain == NULL)
- head_chain = prev_chain = curr_chain;
- else {
- prev_chain->ch_next = curr_chain;
- prev_chain = curr_chain;
- }
- }
- }
- dwarf_dealloc(dbg, frame_inst, DW_DLA_FRAME_BLOCK);
-
- }
- for (i = 0; i < fde_count; i++) {
- Dwarf_Small *instr_end = 0;
- Dwarf_Sword icount = 0;
- Dwarf_Signed instructions_length = 0;
- Dwarf_Off instoff = 0;
- Dwarf_Off off = 0;
- Dwarf_Addr addr = 0;
- int j;
- int dw_err;
-
- fdep = fde_data[i];
- off = fdep->fd_initial_loc_pos - dbg->de_debug_frame;
- addr = fdep->fd_initial_location;
- arange = (Dwarf_Arange)
- _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
- if (arange == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- arange->ar_address = addr;
- arange->ar_info_offset = off;
- arange_count++;
- curr_chain = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_chain == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- curr_chain->ch_item = arange;
- if (head_chain == NULL)
- head_chain = prev_chain = curr_chain;
- else {
- prev_chain->ch_next = curr_chain;
- prev_chain = curr_chain;
- }
-
-
- instoff = fdep->fd_fde_instr_start - dbg->de_debug_frame;
- instructions_length = fdep->fd_length +
- fdep->fd_length_size + fdep->fd_extension_size -
- (fdep->fd_fde_instr_start - fdep->fd_fde_start);
- instr_end = fdep->fd_fde_instr_start + instructions_length;
- res = _dwarf_exec_frame_instr( /* make_instr */ true,
- &frame_inst,
- /* search_pc= */ false,
- /* search_pc_val= */ 0,
- /* location */ 0,
- fdep->fd_fde_instr_start,
- instr_end,
- /* Dwarf_frame= */ 0,
- /* cie= */ 0,
- dbg, &icount, &dw_err);
- if (res == DW_DLV_ERROR) {
- _dwarf_error(dbg, err, dw_err);
- return (res);
- } else if (res == DW_DLV_NO_ENTRY) {
- continue;
- }
-
- for (j = 0; j < icount; ++j) {
- Dwarf_Frame_Op *finst2 = frame_inst + j;
-
- if (finst2->fp_base_op == 0 && finst2->fp_extended_op == 1) {
- /* is DW_CFA_set_loc */
- Dwarf_Addr add = (Dwarf_Addr) finst2->fp_offset;
- Dwarf_Off off = finst2->fp_instr_offset + instoff;
-
- arange = (Dwarf_Arange)
- _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
- if (arange == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- arange->ar_address = add;
- arange->ar_info_offset = off;
- arange_count++;
- curr_chain = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_chain == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- curr_chain->ch_item = arange;
- if (head_chain == NULL)
- head_chain = prev_chain = curr_chain;
- else {
- prev_chain->ch_next = curr_chain;
- prev_chain = curr_chain;
- }
-
- }
- }
- dwarf_dealloc(dbg, frame_inst, DW_DLA_FRAME_BLOCK);
-
- }
- dwarf_dealloc(dbg, fde_data, DW_DLA_LIST);
- dwarf_dealloc(dbg, cie_data, DW_DLA_LIST);
- arange_addrs = (Dwarf_Addr *)
- _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
- if (arange_addrs == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- arange_offsets = (Dwarf_Off *)
- _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
- if (arange_offsets == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_chain = head_chain;
- for (i = 0; i < arange_count; i++) {
- Dwarf_Arange ar = curr_chain->ch_item;
-
- arange_addrs[i] = ar->ar_address;
- arange_offsets[i] = ar->ar_info_offset;
- prev_chain = curr_chain;
- curr_chain = curr_chain->ch_next;
- dwarf_dealloc(dbg, ar, DW_DLA_ARANGE);
- dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
- }
- *returncount = arange_count;
- *offsetlist = arange_offsets;
- *addrlist = arange_addrs;
- return retval;
+ return dwarf_fde_section_offset(dbg,in_fde,fde_off,
+ cie_off,err);
}
-
-/* Used by dwarfdump -v to print offsets, for debugging
- dwarf info
-*/
/* ARGSUSED 4 */
int
-_dwarf_fde_section_offset(Dwarf_Debug dbg, Dwarf_Fde in_fde,
- Dwarf_Off * fde_off, Dwarf_Off * cie_off,
- Dwarf_Error * err)
+dwarf_fde_section_offset(Dwarf_Debug dbg, Dwarf_Fde in_fde,
+ Dwarf_Off * fde_off, Dwarf_Off * cie_off,
+ Dwarf_Error * err)
{
- int res;
- char *start;
- char *loc;
+ char *start = 0;
+ char *loc = 0;
+
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_frame_index,
- &dbg->de_debug_frame,
- err);
- if (res != DW_DLV_OK) {
- return res;
- }
- start = (char *) dbg->de_debug_frame;
+ start = (char *) in_fde->fd_section_ptr;
loc = (char *) in_fde->fd_fde_start;
*fde_off = (loc - start);
@@ -2420,29 +2134,309 @@ _dwarf_fde_section_offset(Dwarf_Debug dbg, Dwarf_Fde in_fde,
}
/* Used by dwarfdump -v to print offsets, for debugging
- dwarf info
+ dwarf info.
+ The dwarf_ version is preferred over the obsolete _dwarf version.
+ _dwarf version kept for compatibility.
*/
/* ARGSUSED 4 */
int
_dwarf_cie_section_offset(Dwarf_Debug dbg, Dwarf_Cie in_cie,
- Dwarf_Off * cie_off, Dwarf_Error * err)
+ Dwarf_Off * cie_off, Dwarf_Error * err)
{
- int res;
- char *start;
- char *loc;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_frame_index,
- &dbg->de_debug_frame,
- err);
- if (res != DW_DLV_OK) {
- return res;
- }
+ return dwarf_cie_section_offset(dbg,in_cie,cie_off,err);
+}
+/* ARGSUSED 4 */
+int
+dwarf_cie_section_offset(Dwarf_Debug dbg, Dwarf_Cie in_cie,
+ Dwarf_Off * cie_off, Dwarf_Error * err)
+{
+ char *start = 0;
+ char *loc = 0;
- start = (char *) dbg->de_debug_frame;
+ start = (char *) in_cie->ci_section_ptr;
loc = (char *) in_cie->ci_cie_start;
*cie_off = (loc - start);
return DW_DLV_OK;
}
+
+/* Returns a pointer to target-specific augmentation data thru augdata
+ and returns the length of the data thru augdata_len.
+
+ It's up to the consumer code to know how to interpret the bytes
+ of target-specific data (endian issues apply too, these
+ are just raw bytes pointed to).
+ See Linux Standard Base Core Specification version 3.0 for
+ the details on .eh_frame info.
+
+ Returns DW_DLV_ERROR if fde is NULL or some other serious
+ error.
+ Returns DW_DLV_NO_ENTRY if there is no target-specific
+ augmentation data.
+
+ The bytes pointed to are in the Dwarf_Cie, and as long as that
+ is valid the bytes are there. No 'dealloc' call is needed
+ for the bytes.
+*/
+int
+dwarf_get_cie_augmentation_data(Dwarf_Cie cie,
+ Dwarf_Small ** augdata,
+ Dwarf_Unsigned * augdata_len,
+ Dwarf_Error * error)
+{
+ if (cie == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_CIE_NULL);
+ return (DW_DLV_ERROR);
+ }
+ if (cie->ci_gnu_eh_augmentation_len == 0) {
+ return DW_DLV_NO_ENTRY;
+ }
+ *augdata = (Dwarf_Small *) (cie->ci_gnu_eh_augmentation_bytes);
+ *augdata_len = cie->ci_gnu_eh_augmentation_len;
+ return DW_DLV_OK;
+}
+
+
+/* Returns a pointer to target-specific augmentation data thru augdata
+ and returns the length of the data thru augdata_len.
+
+ It's up to the consumer code to know how to interpret the bytes
+ of target-specific data (endian issues apply too, these
+ are just raw bytes pointed to).
+ See Linux Standard Base Core Specification version 3.0 for
+ the details on .eh_frame info.
+
+ Returns DW_DLV_ERROR if fde is NULL or some other serious
+ error.
+ Returns DW_DLV_NO_ENTRY if there is no target-specific
+ augmentation data.
+
+ The bytes pointed to are in the Dwarf_Fde, and as long as that
+ is valid the bytes are there. No 'dealloc' call is needed
+ for the bytes.
+
+*/
+int
+dwarf_get_fde_augmentation_data(Dwarf_Fde fde,
+ Dwarf_Small * *augdata,
+ Dwarf_Unsigned * augdata_len,
+ Dwarf_Error * error)
+{
+ Dwarf_Cie cie = 0;
+
+ if (fde == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_FDE_NULL);
+ return (DW_DLV_ERROR);
+ }
+ cie = fde->fd_cie;
+ if (cie == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_CIE_NULL);
+ return (DW_DLV_ERROR);
+ }
+ if (cie->ci_gnu_eh_augmentation_len == 0) {
+ return DW_DLV_NO_ENTRY;
+ }
+ *augdata = (Dwarf_Small *) fde->fd_gnu_eh_augmentation_bytes;
+ *augdata_len = fde->fd_gnu_eh_augmentation_len;
+ return DW_DLV_OK;
+}
+
+
+/* Initialize with same_value , a value which makes sense
+ for IRIX/MIPS.
+ The correct value to use is ABI dependent.
+ For register-windows machines most
+ or all registers should get DW_FRAME_UNDEFINED_VAL as the
+ correct initial value.
+ Some think DW_FRAME_UNDEFINED_VAL is always the
+ right value.
+
+ For some ABIs a setting which varies by register
+ would be more appropriate.
+
+ FIXME. */
+
+static void
+_dwarf_init_regrule_table(struct Dwarf_Reg_Rule_s *t1reg,
+ int last_reg_num, int initial_value)
+{
+ struct Dwarf_Reg_Rule_s *t1end = t1reg + last_reg_num;
+
+ for (; t1reg < t1end; t1reg++) {
+ t1reg->ru_is_off = 0;
+ t1reg->ru_value_type = DW_EXPR_OFFSET;
+ t1reg->ru_register = initial_value;
+ t1reg->ru_offset_or_block_len = 0;
+ t1reg->ru_block = 0;
+ }
+}
+
+#if 0
+/* Used solely for debugging libdwarf. */
+static void
+dump_frame_rule(char *msg, struct Dwarf_Reg_Rule_s *reg_rule)
+{
+ printf
+ ("%s type %s (" DW_PR_DUx "), is_off "
+ DW_PR_DUu " reg " DW_PR_DUu " offset " DW_PR_DUx " blockp "
+ DW_PR_DUx "\n",
+ msg,
+ (reg_rule->ru_value_type == DW_EXPR_OFFSET) ?
+ "DW_EXPR_OFFSET" :
+ (reg_rule->ru_value_type == DW_EXPR_VAL_OFFSET) ?
+ "DW_EXPR_VAL_OFFSET" :
+ (reg_rule->ru_value_type == DW_EXPR_VAL_EXPRESSION) ?
+ "DW_EXPR_VAL_EXPRESSION" :
+ (reg_rule->ru_value_type == DW_EXPR_EXPRESSION) ?
+ "DW_EXPR_EXPRESSION" : "Unknown",
+ (Dwarf_Unsigned) reg_rule->ru_value_type,
+ (Dwarf_Unsigned) reg_rule->ru_is_off,
+ (Dwarf_Unsigned) reg_rule->ru_register,
+ (Dwarf_Unsigned) reg_rule->ru_offset_or_block_len,
+ (Dwarf_Unsigned) reg_rule->ru_block);
+ return;
+}
+#endif
+
+/* This allows consumers to set the 'initial value' so that
+ an ISA/ABI specific default can be used, dynamically,
+ at run time. Useful for dwarfdump and non-MIPS architectures..
+ The value defaults to one of
+ DW_FRAME_SAME_VALUE or DW_FRAME_UNKNOWN_VALUE
+ but dwarfdump can dump multiple ISA/ABI objects so
+ we may want to get this set to what the ABI says is correct.
+
+ Returns the value that was present before we changed it here.
+*/
+Dwarf_Half
+dwarf_set_frame_rule_initial_value(Dwarf_Debug dbg, Dwarf_Half value)
+{
+ Dwarf_Half orig = dbg->de_frame_rule_initial_value;
+ dbg->de_frame_rule_initial_value = value;
+ return orig;
+}
+
+/* The following spelling for backwards compatibility. */
+Dwarf_Half
+dwarf_set_frame_rule_inital_value(Dwarf_Debug dbg, Dwarf_Half value)
+{
+ return dwarf_set_frame_rule_initial_value(dbg,value);
+}
+
+/* This allows consumers to set the array size of the reg rules
+ table so that
+ an ISA/ABI specific value can be used, dynamically,
+ at run time. Useful for non-MIPS archtectures.
+ The value defaults to DW_FRAME_LAST_REG_NUM.
+ but dwarfdump can dump multiple ISA/ABI objects so
+ consumers want to get this set to what the ABI says is correct.
+
+ Returns the value that was present before we changed it here.
+*/
+
+Dwarf_Half
+dwarf_set_frame_rule_table_size(Dwarf_Debug dbg, Dwarf_Half value)
+{
+ Dwarf_Half orig = dbg->de_frame_reg_rules_entry_count;
+ dbg->de_frame_reg_rules_entry_count = value;
+ return orig;
+}
+/* This allows consumers to set the CFA register value
+ * so that an ISA/ABI specific value can be used, dynamically,
+ * at run time. Useful for non-MIPS archtectures.
+ * The value defaults to DW_FRAME_CFA_COL3 and should be
+ * higher than any real register in the ABI.
+ * Dwarfdump can dump multiple ISA/ABI objects so
+ * consumers want to get this set to what the ABI says is correct.
+
+ * Returns the value that was present before we changed it here.
+ * */
+
+Dwarf_Half
+dwarf_set_frame_cfa_value(Dwarf_Debug dbg, Dwarf_Half value)
+{
+ Dwarf_Half orig = dbg->de_frame_cfa_col_number;
+ dbg->de_frame_cfa_col_number = value;
+ return orig;
+}
+/* Similar to above, but for the other crucial fields for frames. */
+Dwarf_Half
+dwarf_set_frame_same_value(Dwarf_Debug dbg, Dwarf_Half value)
+{
+ Dwarf_Half orig = dbg->de_frame_same_value_number;
+ dbg->de_frame_same_value_number = value;
+ return orig;
+}
+Dwarf_Half
+dwarf_set_frame_undefined_value(Dwarf_Debug dbg, Dwarf_Half value)
+{
+ Dwarf_Half orig = dbg->de_frame_same_value_number;
+ dbg->de_frame_undefined_value_number = value;
+ return orig;
+}
+
+
+
+
+
+static int
+dwarf_initialize_fde_table(Dwarf_Debug dbg,
+ struct Dwarf_Frame_s *fde_table,
+ unsigned table_real_data_size,
+ Dwarf_Error * error)
+{
+ unsigned entry_size = sizeof(struct Dwarf_Frame_s);
+
+ fde_table->fr_loc = 0;
+ fde_table->fr_reg_count = table_real_data_size;
+ fde_table->fr_next = 0;
+
+ fde_table->fr_reg = (struct Dwarf_Reg_Rule_s *)
+ calloc(entry_size, table_real_data_size);
+ if (fde_table->fr_reg == 0) {
+ _dwarf_error(dbg, error, DW_DLE_DF_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ return DW_DLV_OK;
+
+}
+static void
+dwarf_free_fde_table(struct Dwarf_Frame_s *fde_table)
+{
+ free(fde_table->fr_reg);
+ fde_table->fr_reg_count = 0;
+ fde_table->fr_reg = 0;
+}
+
+
+/* Return DW_DLV_OK if we succeed. else return DW_DLV_ERROR.
+*/
+int
+_dwarf_frame_constructor(Dwarf_Debug dbg, void *frame)
+{
+ struct Dwarf_Frame_s *fp = frame;
+
+ if (!dbg) {
+ return DW_DLV_ERROR;
+ }
+
+ fp->fr_reg = calloc(dbg->de_frame_reg_rules_entry_count,
+ sizeof(struct Dwarf_Reg_Rule_s));
+ if (!fp->fr_reg) {
+ return DW_DLV_ERROR;
+ }
+ fp->fr_reg_count = dbg->de_frame_reg_rules_entry_count;
+ return DW_DLV_OK;
+}
+
+void
+_dwarf_frame_destructor(void *frame)
+{
+ struct Dwarf_Frame_s *fp = frame;
+
+ if (fp->fr_reg) {
+ free(fp->fr_reg);
+ }
+ fp->fr_reg = 0;
+ fp->fr_reg_count = 0;
+}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_frame.h b/usr/src/tools/ctf/dwarf/common/dwarf_frame.h
index 5338ce678c..ceb686335b 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_frame.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_frame.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000, 2004, 2006 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -62,25 +62,38 @@
* is an LEB128 data item that denotes the size (in bytes) of
* the augmented fields (not including the size of
* "length_of_augmented_fields" itself).
- * This implementation of libdwarf will assume that the length of
- * augmented fields follow the augmenter string when the augmentation
- * starts with the string "z". It will skip over any augmented fields
- * that it does not understand to the start of initial instructions
- * (in case of CIE) or the instruction table (in case of FDE).
- *
- * Future sgi versions of cie or fde should use "z1", "z2" as the
- * augmenter strings and it should guarantee that all the above fields
- * are laid out in the same fashion. Older libraries will continue to be able
- * to read all the old data, skipping over newly added data items.
+
+ * Handling of cie augmentation strings is necessarly a heuristic.
+ * See dwarf_frame.c for the currently known augmentation strings.
+
+
+ ---START SGI-ONLY COMMENT:
+ * SGI-IRIX versions of cie or fde were intended to use "z1", "z2" as the
+ * augmenter strings if required for new augmentation.
+ * However, that never happened (as of March 2005).
*
- * The fde's augmented by the string "z" have a new field (signed constant, 4
- byte field)
- * called offset_into_exception_tables, following the length_of_augmented field.
- * This field contains an offset into the "_MIPS_eh_region", which describes
- * the exception handling tables.
+ * The fde's augmented by the string "z" have a new field
+ * (signed constant, 4 byte field)
+ * called offset_into_exception_tables, following the
+ * length_of_augmented field. This field contains an offset
+ * into the "_MIPS_eh_region", which describes
+ * the IRIX CC exception handling tables.
+ ---END SGI-ONLY COMMENT
+
+
+ * GNU .eh_frame has an augmentation string of z[RLP]* (gcc 3.4)
+ * The similarity to IRIX 'z' (and proposed but never
+ * implemented IRIX z1, z2 etc) was confusing things.
+ * If the section is .eh_frame then 'z' means GNU exception
+ * information 'Augmentation Data' not IRIX 'z'.
+ * See The Linux Standard Base Core Specification version 3.0
*/
-#define DW_DEBUG_FRAME_VERSION 1
+#define DW_DEBUG_FRAME_VERSION 1 /* DWARF2 */
+#define DW_DEBUG_FRAME_VERSION3 3 /* DWARF3 */
+#define DW_DEBUG_FRAME_VERSION4 4 /* DWARF4 */
+/* The following is SGI/IRIX specific, and probably no longer
+ in use anywhere. */
#define DW_DEBUG_FRAME_AUGMENTER_STRING "mti v1"
/* The value of the offset field for Cie's. */
@@ -101,8 +114,9 @@ struct Dwarf_Reg_Rule_s {
/*
Is a flag indicating whether the rule includes the offset
- field, ie whether the ru_offset field is valid or not. It is
- important, since reg+offset (offset of 0) is different from
+ field, ie whether the ru_offset field is valid or not.
+ Applies only if DW_EXPR_OFFSET or DW_EXPR_VAL_OFFSET.
+ It is important, since reg+offset (offset of 0) is different from
just 'register' since the former means 'read memory at address
given by the sum of register contents plus offset to get the
value'. whereas the latter means 'the value is in the register'.
@@ -113,13 +127,27 @@ struct Dwarf_Reg_Rule_s {
DW_FRAME_CFA_COL.
*/
- Dwarf_Sbyte ru_is_off;
+ Dwarf_Sbyte ru_is_off;
+
+ /* DW_EXPR_OFFSET (0, DWARF2)
+ DW_EXPR_VAL_OFFSET 1 (dwarf2/3)
+ DW_EXPR_EXPRESSION 2 (dwarf2/3)
+ DW_EXPR_VAL_EXPRESSION 3 (dwarf2/3)
+ See dwarf_frame.h. */
+ Dwarf_Sbyte ru_value_type;
/* Register involved in this rule. */
Dwarf_Half ru_register;
- /* Offset to add to register, if indicated by ru_is_offset. */
- Dwarf_Addr ru_offset;
+ /* Offset to add to register, if indicated by ru_is_offset
+ and if DW_EXPR_OFFSET or DW_EXPR_VAL_OFFSET.
+ If DW_EXPR_EXPRESSION or DW_EXPR_VAL_EXPRESSION
+ this is DW_FORM_block block-length, not offset. */
+ Dwarf_Unsigned ru_offset_or_block_len;
+
+ /* For DW_EXPR_EXPRESSION DW_EXPR_VAL_EXPRESSION these is set,
+ else 0. */
+ Dwarf_Small *ru_block;
};
typedef struct Dwarf_Frame_s *Dwarf_Frame;
@@ -128,6 +156,9 @@ typedef struct Dwarf_Frame_s *Dwarf_Frame;
This structure represents a row of the frame table.
Fr_loc is the pc value for this row, and Fr_reg
contains the rule for each column.
+
+ Entry DW_FRAME_CFA_COL of fr_reg was the tradional MIPS
+ way of setting CFA. cfa_rule is the new one.
*/
struct Dwarf_Frame_s {
@@ -135,7 +166,12 @@ struct Dwarf_Frame_s {
Dwarf_Addr fr_loc;
/* Rules for all the registers in this row. */
- struct Dwarf_Reg_Rule_s fr_reg[DW_FRAME_LAST_REG_NUM];
+ struct Dwarf_Reg_Rule_s fr_cfa_rule;
+
+ /* fr_reg_count is the the number of
+ entries of the fr_reg array. */
+ unsigned long fr_reg_count;
+ struct Dwarf_Reg_Rule_s *fr_reg;
Dwarf_Frame fr_next;
};
@@ -148,6 +184,39 @@ struct Dwarf_Frame_Op_List_s {
Dwarf_Frame_Op_List fl_next;
};
+/* See dwarf_frame.c for the heuristics used to set the
+ Dwarf_Cie ci_augmentation_type.
+
+ This succinctly helps interpret the size and meaning of .debug_frame
+ and (for gcc) .eh_frame.
+
+ In the case of gcc .eh_frame (gcc 3.3, 3.4)
+ z may be followed by one or more of
+ L R P.
+
+*/
+enum Dwarf_augmentation_type {
+ aug_empty_string, /* Default empty augmentation string. */
+ aug_irix_exception_table, /* IRIX plain "z",
+ for exception handling, IRIX CC compiler.
+ Proposed z1 z2 ... never implemented. */
+ aug_gcc_eh_z, /* gcc z augmentation, (including
+ L R P variations). gcc 3.3 3.4 exception
+ handling in eh_frame. */
+ aug_irix_mti_v1, /* IRIX "mti v1" augmentation string. Probably
+ never in any released SGI-IRIX compiler. */
+ aug_eh, /* For gcc .eh_frame, "eh" is the string.,
+ gcc 1,2, egcs. Older values. */
+ aug_armcc, /* "armcc+" meaning the cfa calculation
+ is corrected to be standard (output by
+ Arm C RVCT 3.0 SP1 and later). See
+ http://sourceware.org/ml/gdb-patches/2006-12/msg00249.html
+ for details. */
+ aug_unknown, /* Unknown augmentation, we cannot do much. */
+ aug_past_last
+};
+
+
/*
This structure contains all the pertinent info for a Cie. Most
of the fields are taken straight from the definition of a Cie.
@@ -158,7 +227,7 @@ struct Dwarf_Frame_Op_List_s {
row generated by the instructions for this Cie.
*/
struct Dwarf_Cie_s {
- Dwarf_Word ci_length;
+ Dwarf_Unsigned ci_length;
char *ci_augmentation;
Dwarf_Small ci_code_alignment_factor;
Dwarf_Sbyte ci_data_alignment_factor;
@@ -170,6 +239,38 @@ struct Dwarf_Cie_s {
Dwarf_Cie ci_next;
Dwarf_Small ci_length_size;
Dwarf_Small ci_extension_size;
+ Dwarf_Half ci_cie_version_number;
+ enum Dwarf_augmentation_type ci_augmentation_type;
+
+ /* The following 2 for GNU .eh_frame exception handling
+ Augmentation Data. Set if ci_augmentation_type
+ is aug_gcc_eh_z. Zero if unused. */
+ Dwarf_Unsigned ci_gnu_eh_augmentation_len;
+ Dwarf_Ptr ci_gnu_eh_augmentation_bytes;
+
+ /* These are extracted from the gnu eh_frame
+ augmentation if the
+ augmentation begins with 'z'. See Linux LSB documents.
+ Otherwize these are zero. */
+ unsigned char ci_gnu_personality_handler_encoding;
+ unsigned char ci_gnu_lsda_encoding;
+ unsigned char ci_gnu_fde_begin_encoding;
+
+ /* If 'P' augmentation present, is handler addr. Else
+ is zero. */
+ Dwarf_Addr ci_gnu_personality_handler_addr;
+
+
+ /* In creating list of cie's (which will become an array)
+ record the position so fde can get it on fde creation. */
+ Dwarf_Unsigned ci_index;
+ Dwarf_Small * ci_section_ptr;
+ /* DWARF4 adds address size and segment size to the CIE: the .debug_info
+ section may not always be present to allow libdwarf to
+ find address_size from the compilation-unit. */
+ Dwarf_Half ci_address_size;
+ Dwarf_Half ci_segment_size;
+
};
/*
@@ -183,9 +284,9 @@ struct Dwarf_Cie_s {
points to the associated Dwarf_Debug structure.
*/
struct Dwarf_Fde_s {
- Dwarf_Word fd_length;
+ Dwarf_Unsigned fd_length;
Dwarf_Addr fd_cie_offset;
- Dwarf_Sword fd_cie_index;
+ Dwarf_Unsigned fd_cie_index;
Dwarf_Cie fd_cie;
Dwarf_Addr fd_initial_location;
Dwarf_Small *fd_initial_loc_pos;
@@ -193,10 +294,31 @@ struct Dwarf_Fde_s {
Dwarf_Small *fd_fde_start;
Dwarf_Small *fd_fde_instr_start;
Dwarf_Debug fd_dbg;
+
+ /* fd_offset_into_exception_tables is SGI/IRIX exception table
+ offset. Unused and zero if not IRIX .debug_frame. */
Dwarf_Signed fd_offset_into_exception_tables;
+
Dwarf_Fde fd_next;
Dwarf_Small fd_length_size;
Dwarf_Small fd_extension_size;
+ /* So we know from an fde which 'count' of fde-s in
+ Dwarf_Debug applies: eh or standard. */
+ Dwarf_Small fd_is_eh;
+ /* The following 2 for GNU .eh_frame exception handling
+ Augmentation Data. Set if CIE ci_augmentation_type
+ is aug_gcc_eh_z. Zero if unused. */
+ Dwarf_Unsigned fd_gnu_eh_augmentation_len;
+ Dwarf_Ptr fd_gnu_eh_augmentation_bytes;
+ Dwarf_Addr fd_gnu_eh_lsda; /* If 'L' augmentation letter
+ present: is address of the
+ Language Specific Data Area (LSDA). If not 'L" is zero. */
+
+ /* The following 3 are about the Elf section the FDEs come from. */
+ Dwarf_Small * fd_section_ptr;
+ Dwarf_Unsigned fd_section_length;
+ Dwarf_Unsigned fd_section_index;
+
};
@@ -205,3 +327,95 @@ int
Dwarf_Off ** offsetlist,
Dwarf_Signed * returncount,
Dwarf_Error * err);
+
+int
+_dwarf_get_fde_list_internal(Dwarf_Debug dbg,
+ Dwarf_Cie ** cie_data,
+ Dwarf_Signed * cie_element_count,
+ Dwarf_Fde ** fde_data,
+ Dwarf_Signed * fde_element_count,
+ Dwarf_Small * section_ptr,
+ Dwarf_Unsigned section_index,
+ Dwarf_Unsigned section_length,
+ Dwarf_Unsigned cie_id_value,
+ int use_gnu_cie_calc, /* If non-zero,
+ this is gcc eh_frame. */
+ Dwarf_Error * error);
+
+enum Dwarf_augmentation_type
+_dwarf_get_augmentation_type(Dwarf_Debug dbg,
+ Dwarf_Small *augmentation_string,
+ int is_gcc_eh_frame);
+
+Dwarf_Unsigned _dwarf_get_return_address_reg(Dwarf_Small *frame_ptr,
+ int version,
+ unsigned long *size);
+
+/* Temporary recording of crucial cie/fde prefix data.
+ * Vastly simplifies some argument lists.
+ */
+struct cie_fde_prefix_s {
+ /* cf_start_addr is a pointer to the first byte of this fde/cie
+ we are reading now. */
+ Dwarf_Small * cf_start_addr;
+ Dwarf_Small * cf_addr_after_prefix;
+ Dwarf_Unsigned cf_length;
+ int cf_local_length_size;
+ int cf_local_extension_size;
+ Dwarf_Unsigned cf_cie_id;
+ Dwarf_Small * cf_cie_id_addr; /* used for eh_frame calculations. */
+
+ /* Simplifies passing around these values to create fde having
+ these here. */
+ /* cf_section_ptr is a pointer to the first byte
+ of the object section the prefix is read from. */
+ Dwarf_Small * cf_section_ptr;
+ Dwarf_Unsigned cf_section_index;
+ Dwarf_Unsigned cf_section_length;
+};
+
+int
+_dwarf_exec_frame_instr(Dwarf_Bool make_instr,
+ Dwarf_Frame_Op ** ret_frame_instr,
+ Dwarf_Bool search_pc,
+ Dwarf_Addr search_pc_val,
+ Dwarf_Addr initial_loc,
+ Dwarf_Small * start_instr_ptr,
+ Dwarf_Small * final_instr_ptr,
+ Dwarf_Frame table,
+ Dwarf_Cie cie,
+ Dwarf_Debug dbg,
+ Dwarf_Half reg_num_of_cfa,
+ Dwarf_Sword * returned_count,
+ int *returned_error);
+
+
+int dwarf_read_cie_fde_prefix(Dwarf_Debug dbg,
+ Dwarf_Small *frame_ptr_in,
+ Dwarf_Small *section_ptr_in,
+ Dwarf_Unsigned section_index_in,
+ Dwarf_Unsigned section_length_in,
+ struct cie_fde_prefix_s *prefix_out,
+ Dwarf_Error *error);
+
+int dwarf_create_fde_from_after_start(Dwarf_Debug dbg,
+ struct cie_fde_prefix_s * prefix,
+ Dwarf_Small *section_pointer,
+ Dwarf_Small *frame_ptr,
+ int use_gnu_cie_calc,
+ Dwarf_Cie cie_ptr_in,
+ Dwarf_Fde *fde_ptr_out,
+ Dwarf_Error *error);
+
+int dwarf_create_cie_from_after_start(Dwarf_Debug dbg,
+ struct cie_fde_prefix_s *prefix,
+ Dwarf_Small* section_pointer,
+ Dwarf_Small* frame_ptr,
+ Dwarf_Unsigned cie_count,
+ int use_gnu_cie_calc,
+ Dwarf_Cie *cie_ptr_out,
+ Dwarf_Error *error);
+
+
+int _dwarf_frame_constructor(Dwarf_Debug dbg,void * );
+void _dwarf_frame_destructor (void *);
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_frame2.c b/usr/src/tools/ctf/dwarf/common/dwarf_frame2.c
new file mode 100644
index 0000000000..01b9ec497b
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_frame2.c
@@ -0,0 +1,1540 @@
+/*
+
+ Copyright (C) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
+/*
+ This implements _dwarf_get_fde_list_internal()
+ and related helper functions for reading cie/fde data.
+*/
+
+
+
+#include "config.h"
+#include "dwarf_incl.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include "dwarf_frame.h"
+#include "dwarf_arange.h" /* using Arange as a way to build a
+ list */
+
+
+static int dwarf_find_existing_cie_ptr(Dwarf_Small * cie_ptr,
+ Dwarf_Cie cur_cie_ptr,
+ Dwarf_Cie * cie_ptr_to_use_out,
+ Dwarf_Cie head_cie_ptr);
+static void dealloc_fde_cie_list_internal(Dwarf_Fde head_fde_ptr,
+ Dwarf_Cie head_cie_ptr);
+static int dwarf_create_cie_from_start(Dwarf_Debug dbg,
+ Dwarf_Small * cie_ptr_val,
+ Dwarf_Small * section_ptr,
+ Dwarf_Unsigned section_index,
+ Dwarf_Unsigned section_length,
+ Dwarf_Small * frame_ptr_end,
+ Dwarf_Unsigned cie_id_value,
+ Dwarf_Unsigned cie_count,
+ int use_gnu_cie_calc,
+ Dwarf_Cie * cie_ptr_to_use_out,
+ Dwarf_Error * error);
+
+static Dwarf_Small *get_cieptr_given_offset(Dwarf_Unsigned cie_id_value,
+ int use_gnu_cie_calc,
+ Dwarf_Small * section_ptr,
+ Dwarf_Small * cie_id_addr);
+static int get_gcc_eh_augmentation(Dwarf_Debug dbg,
+ Dwarf_Small * frame_ptr,
+ unsigned long
+ *size_of_augmentation_data,
+ enum Dwarf_augmentation_type augtype,
+ Dwarf_Small * section_pointer,
+ Dwarf_Small * fde_eh_encoding_out,
+ char *augmentation);
+
+static int
+ gnu_aug_encodings(Dwarf_Debug dbg, char *augmentation,
+ Dwarf_Small * aug_data, Dwarf_Unsigned aug_data_len,
+ Dwarf_Half address_size,
+ unsigned char *pers_hand_enc_out,
+ unsigned char *lsda_enc_out,
+ unsigned char *fde_begin_enc_out,
+ Dwarf_Addr * gnu_pers_addr_out);
+
+
+static int read_encoded_ptr(Dwarf_Debug dbg,
+ Dwarf_Small * section_pointer,
+ Dwarf_Small * input_field,
+ int gnu_encoding,
+ Dwarf_Half address_size,
+ Dwarf_Unsigned * addr,
+ Dwarf_Small ** input_field_out);
+
+
+
+static int qsort_compare(const void *elem1, const void *elem2);
+
+
+/* Adds 'newone' to the end of the list starting at 'head'
+ and makes the new one 'cur'rent. */
+static void
+chain_up_fde(Dwarf_Fde newone, Dwarf_Fde * head, Dwarf_Fde * cur)
+{
+ if (*head == NULL)
+ *head = newone;
+ else {
+ (*cur)->fd_next = newone;
+ }
+ *cur = newone;
+
+}
+
+/* Adds 'newone' to the end of the list starting at 'head'
+ and makes the new one 'cur'rent. */
+static void
+chain_up_cie(Dwarf_Cie newone, Dwarf_Cie * head, Dwarf_Cie * cur)
+{
+ if (*head == NULL) {
+ *head = newone;
+ } else {
+ (*cur)->ci_next = newone;
+ }
+ *cur = newone;
+}
+
+/* The size of the length field plus the
+ value of length must be an integral
+ multiple of the address size. Dwarf4 standard.
+
+ A constant that gives the number of bytes of the CIE
+ structure, not including the length field itself
+ (where length mod <size of an address> == 0)
+ (see Section 7.2.2). Dwarf3 standard.
+
+ A uword constant that gives the number of bytes of
+ the CIE structure, not including the
+ length field, itself (length mod <addressing unit size> == 0).
+ Dwarf2 standard.*/
+static void
+validate_length(Dwarf_Debug dbg,
+ Dwarf_Cie cieptr, Dwarf_Unsigned length,
+ Dwarf_Unsigned length_size,
+ Dwarf_Unsigned extension_size,
+ Dwarf_Small * section_ptr,
+ Dwarf_Small * ciefde_start,
+ const char * cieorfde)
+{
+ Dwarf_Unsigned address_size = cieptr->ci_address_size;
+ Dwarf_Unsigned length_field_summed = length_size + extension_size;
+ Dwarf_Unsigned total_len = length + length_field_summed;
+ Dwarf_Unsigned mod = total_len % address_size;
+
+ if (mod != 0) {
+ char msg[DW_HARMLESS_ERROR_MSG_STRING_SIZE];
+ Dwarf_Unsigned sectionoffset = ciefde_start - section_ptr;
+ snprintf(msg,sizeof(msg),
+ "DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE"
+ " len=0x%" DW_PR_DUx
+ ", len size=0x%" DW_PR_DUx
+ ", extn size=0x%" DW_PR_DUx
+ ", totl length=0x%" DW_PR_DUx
+ ", addr size=0x%" DW_PR_DUx
+ ", mod=0x%" DW_PR_DUx " must be zero"
+ " in %s"
+ ", offset 0x%" DW_PR_DUx ".",
+ length,
+ length_size,
+ extension_size,
+ total_len,address_size, mod,
+ cieorfde,
+ sectionoffset);
+ dwarf_insert_harmless_error(dbg,msg);
+ }
+ return;
+}
+
+
+#if 0
+/* For debugging only. */
+static void
+print_prefix(struct cie_fde_prefix_s *prefix, int line)
+{
+ printf("prefix-print, prefix at 0x%lx, line %d\n",
+ (long) prefix, line);
+ printf(" start addr 0x%lx after prefix 0x%lx\n",
+ (long) prefix->cf_start_addr,
+ (long) prefix->cf_addr_after_prefix);
+ printf(" length 0x%" DW_PR_DUx ", len size %d ext size %d\n",
+ (Dwarf_Unsigned) prefix->cf_length,
+ prefix->cf_local_length_size,
+ prefix->cf_local_extension_size);
+ printf(" cie_id 0x%" DW_PR_DUx " cie_id cie_id_addr 0x%lx\n",
+ (Dwarf_Unsigned) prefix->cf_cie_id,
+ (long) prefix->cf_cie_id_addr);
+ printf
+ (" sec ptr 0x%lx sec index %" DW_PR_DSd " sec len 0x%" DW_PR_DUx " sec past end 0x%lx\n",
+ (long) prefix->cf_section_ptr,
+ (Dwarf_Signed) prefix->cf_section_index,
+ (Dwarf_Unsigned) prefix->cf_section_length,
+ (long) prefix->cf_section_ptr + prefix->cf_section_length);
+}
+#endif
+
+
+
+/* Internal function called from various places to create
+ lists of CIEs and FDEs. Not directly called
+ by consumer code */
+int
+_dwarf_get_fde_list_internal(Dwarf_Debug dbg, Dwarf_Cie ** cie_data,
+ Dwarf_Signed * cie_element_count,
+ Dwarf_Fde ** fde_data,
+ Dwarf_Signed * fde_element_count,
+ Dwarf_Small * section_ptr,
+ Dwarf_Unsigned section_index,
+ Dwarf_Unsigned section_length,
+ Dwarf_Unsigned cie_id_value,
+ int use_gnu_cie_calc, Dwarf_Error * error)
+{
+ /* Scans the debug_frame section. */
+ Dwarf_Small *frame_ptr = section_ptr;
+ Dwarf_Small *frame_ptr_end = section_ptr + section_length;
+
+
+
+ /*
+ New_cie points to the Cie being read, and head_cie_ptr and
+ cur_cie_ptr are used for chaining them up in sequence.
+ In case cie's are reused aggressively we need tail_cie_ptr
+ to add to the chain. If we re-use an early cie
+ later on, that does not mean we chain a new cie to the early one,
+ we always chain it to the tail. */
+ Dwarf_Cie head_cie_ptr = NULL;
+ Dwarf_Cie cur_cie_ptr = NULL;
+ Dwarf_Cie tail_cie_ptr = NULL;
+ Dwarf_Word cie_count = 0;
+
+ /*
+ Points to a list of contiguous pointers to Dwarf_Cie structures.
+ */
+ Dwarf_Cie *cie_list_ptr = 0;
+
+
+ /*
+ New_fde points to the Fde being created, and head_fde_ptr and
+ cur_fde_ptr are used to chain them up. */
+ Dwarf_Fde head_fde_ptr = NULL;
+ Dwarf_Fde cur_fde_ptr = NULL;
+ Dwarf_Word fde_count = 0;
+
+ /*
+ Points to a list of contiguous pointers to Dwarf_Fde structures.
+ */
+ Dwarf_Fde *fde_list_ptr = NULL;
+
+ Dwarf_Word i = 0;
+ int res = DW_DLV_ERROR;
+
+ if (frame_ptr == 0) {
+ return DW_DLV_NO_ENTRY;
+ }
+
+ /* We create the fde and cie arrays. Processing each CIE as we come
+ to it or as an FDE refers to it. We cannot process 'late' CIEs
+ late as GNU .eh_frame complexities mean we need the whole CIE
+ before we can process the FDE correctly. */
+ while (frame_ptr < frame_ptr_end) {
+
+ struct cie_fde_prefix_s prefix;
+
+ /* First read in the 'common prefix' to figure out what we are
+ to do with this entry. */
+ memset(&prefix, 0, sizeof(prefix));
+ res = dwarf_read_cie_fde_prefix(dbg,
+ frame_ptr, section_ptr,
+ section_index,
+ section_length, &prefix, error);
+ if (res == DW_DLV_ERROR) {
+ dealloc_fde_cie_list_internal(head_fde_ptr, head_cie_ptr);
+ return res;
+ }
+ if (res == DW_DLV_NO_ENTRY)
+ break;
+ frame_ptr = prefix.cf_addr_after_prefix;
+ if (frame_ptr >= frame_ptr_end) {
+ dealloc_fde_cie_list_internal(head_fde_ptr, head_cie_ptr);
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_FRAME_LENGTH_BAD);
+ return DW_DLV_ERROR;
+
+ }
+
+ if (prefix.cf_cie_id == cie_id_value) {
+ /* This is a CIE. */
+ Dwarf_Cie cie_ptr_to_use = 0;
+
+ int res = dwarf_find_existing_cie_ptr(prefix.cf_start_addr,
+ cur_cie_ptr,
+ &cie_ptr_to_use,
+ head_cie_ptr);
+
+ if (res == DW_DLV_OK) {
+ cur_cie_ptr = cie_ptr_to_use;
+ /* Ok. Seen already. */
+ } else if (res == DW_DLV_NO_ENTRY) {
+ /* CIE before its FDE in this case. */
+ res = dwarf_create_cie_from_after_start(dbg,
+ &prefix,
+ section_ptr,
+ frame_ptr,
+ cie_count,
+ use_gnu_cie_calc,
+ &cie_ptr_to_use,
+ error);
+ /* ASSERT: res==DW_DLV_NO_ENTRY impossible. */
+ if (res == DW_DLV_ERROR) {
+ dealloc_fde_cie_list_internal(head_fde_ptr,
+ head_cie_ptr);
+ return res;
+ }
+ /* ASSERT res != DW_DLV_NO_ENTRY */
+ cie_count++;
+ chain_up_cie(cie_ptr_to_use, &head_cie_ptr,
+ &tail_cie_ptr);
+ cur_cie_ptr = tail_cie_ptr;
+ } else { /* res == DW_DLV_ERROR */
+
+ dealloc_fde_cie_list_internal(head_fde_ptr,
+ head_cie_ptr);
+ return res;
+ }
+ frame_ptr = cie_ptr_to_use->ci_cie_start +
+ cie_ptr_to_use->ci_length +
+ cie_ptr_to_use->ci_length_size +
+ cie_ptr_to_use->ci_extension_size;
+ continue;
+ } else {
+ /* this is an FDE, Frame Description Entry, see the Dwarf
+ Spec, section 6.4.1 */
+ int res = DW_DLV_ERROR;
+ Dwarf_Cie cie_ptr_to_use = 0;
+ Dwarf_Fde fde_ptr_to_use = 0;
+
+ /* Do not call this twice on one prefix, as
+ prefix.cf_cie_id_addr is altered as a side effect. */
+ Dwarf_Small *cieptr_val =
+ get_cieptr_given_offset(prefix.cf_cie_id,
+ use_gnu_cie_calc,
+ section_ptr,
+ prefix.cf_cie_id_addr);
+
+ res = dwarf_find_existing_cie_ptr(cieptr_val,
+ cur_cie_ptr,
+ &cie_ptr_to_use,
+ head_cie_ptr);
+ if (res == DW_DLV_OK) {
+ cur_cie_ptr = cie_ptr_to_use;
+ /* Ok. Seen CIE already. */
+ } else if (res == DW_DLV_NO_ENTRY) {
+ res = dwarf_create_cie_from_start(dbg,
+ cieptr_val,
+ section_ptr,
+ section_index,
+ section_length,
+ frame_ptr_end,
+ cie_id_value,
+ cie_count,
+ use_gnu_cie_calc,
+ &cie_ptr_to_use,
+ error);
+ if (res == DW_DLV_ERROR) {
+ dealloc_fde_cie_list_internal(head_fde_ptr,
+ head_cie_ptr);
+ return res;
+ } else if (res == DW_DLV_NO_ENTRY) {
+ return res;
+ }
+ ++cie_count;
+ chain_up_cie(cie_ptr_to_use, &head_cie_ptr,
+ &tail_cie_ptr);
+ cur_cie_ptr = tail_cie_ptr;
+
+ } else {
+ /* DW_DLV_ERROR */
+ return res;
+ }
+
+ res = dwarf_create_fde_from_after_start(dbg,
+ &prefix,
+ section_ptr,
+ frame_ptr,
+ use_gnu_cie_calc,
+ cie_ptr_to_use,
+ &fde_ptr_to_use,
+ error);
+ if (res == DW_DLV_ERROR) {
+ return res;
+ }
+ chain_up_fde(fde_ptr_to_use, &head_fde_ptr, &cur_fde_ptr);
+ fde_count++;
+ /* ASSERT: DW_DLV_OK. */
+ frame_ptr = fde_ptr_to_use->fd_fde_start +
+ fde_ptr_to_use->fd_length +
+ fde_ptr_to_use->fd_length_size +
+ fde_ptr_to_use->fd_extension_size;
+ continue;
+
+ }
+
+ }
+
+ /* Now build list of CIEs from the list. If there are no CIEs
+ there should be no FDEs. */
+ if (cie_count > 0) {
+ cie_list_ptr = (Dwarf_Cie *)
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, cie_count);
+ } else {
+ if(fde_count > 0) {
+ dealloc_fde_cie_list_internal(head_fde_ptr, head_cie_ptr);
+ _dwarf_error(dbg, error, DW_DLE_ORPHAN_FDE);
+ return DW_DLV_ERROR;
+ }
+ dealloc_fde_cie_list_internal(head_fde_ptr, head_cie_ptr);
+ return DW_DLV_NO_ENTRY;
+ }
+ if (cie_list_ptr == NULL) {
+ dealloc_fde_cie_list_internal(head_fde_ptr, head_cie_ptr);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return DW_DLV_ERROR;
+ }
+ cur_cie_ptr = head_cie_ptr;
+ for (i = 0; i < cie_count; i++) {
+ *(cie_list_ptr + i) = cur_cie_ptr;
+ cur_cie_ptr = cur_cie_ptr->ci_next;
+ }
+
+
+
+ /* Now build array of FDEs from the list.
+ With orphan CIEs (meaning no FDEs) lets not return DW_DLV_NO_ENTRY */
+ if (fde_count > 0) {
+ fde_list_ptr = (Dwarf_Fde *)
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, fde_count);
+ }
+
+ /* It is ok if fde_list_ptr is NULL, we just have no fdes. */
+ cur_fde_ptr = head_fde_ptr;
+ for (i = 0; i < fde_count; i++) {
+ *(fde_list_ptr + i) = cur_fde_ptr;
+ cur_fde_ptr = cur_fde_ptr->fd_next;
+ }
+
+
+ /* Return arguments. */
+ *cie_data = cie_list_ptr;
+ *cie_element_count = cie_count;
+
+ *fde_data = fde_list_ptr;
+ *fde_element_count = fde_count;
+ if(use_gnu_cie_calc) {
+ dbg->de_fde_data_eh = fde_list_ptr;
+ dbg->de_fde_count_eh = fde_count;
+ dbg->de_cie_data_eh = cie_list_ptr;
+ dbg->de_cie_count_eh = cie_count;
+ } else {
+ dbg->de_fde_data = fde_list_ptr;
+ dbg->de_fde_count = fde_count;
+ dbg->de_cie_data = cie_list_ptr;
+ dbg->de_cie_count = cie_count;
+ }
+
+ /* Sort the list by the address so that dwarf_get_fde_at_pc() can
+ binary search this list. */
+ if(fde_count > 0) {
+ qsort((void *) fde_list_ptr, fde_count, sizeof(Dwarf_Ptr),
+ qsort_compare);
+ }
+
+ return (DW_DLV_OK);
+}
+
+/* Internal function, not called by consumer code.
+ 'prefix' has accumulated the info up thru the cie-id
+ and now we consume the rest and build a Dwarf_Cie_s structure.
+*/
+int
+dwarf_create_cie_from_after_start(Dwarf_Debug dbg,
+ struct cie_fde_prefix_s *prefix,
+ Dwarf_Small * section_pointer,
+ Dwarf_Small * frame_ptr,
+ Dwarf_Unsigned cie_count,
+ int use_gnu_cie_calc,
+ Dwarf_Cie * cie_ptr_out,
+ Dwarf_Error * error)
+{
+ Dwarf_Cie new_cie = 0;
+
+ /* egcs-1.1.2 .eh_frame uses 0 as the distinguishing id. sgi uses
+ -1 (in .debug_frame). .eh_frame not quite identical to
+ .debug_frame */
+ /* We here default the address size as it is not present
+ in DWARF2 or DWARF3 cie data, below we set it right if
+ it is present. */
+ Dwarf_Half address_size = dbg->de_pointer_size;
+ Dwarf_Small eh_fde_encoding = 0;
+ Dwarf_Small *augmentation = 0;
+ Dwarf_Half segment_size = 0;
+ Dwarf_Sword data_alignment_factor = -1;
+ Dwarf_Word code_alignment_factor = 4;
+ Dwarf_Unsigned return_address_register = 31;
+ int local_length_size = 0;
+ Dwarf_Word leb128_length = 0;
+ Dwarf_Unsigned cie_aug_data_len = 0;
+ Dwarf_Small *cie_aug_data = 0;
+ Dwarf_Addr gnu_personality_handler_addr = 0;
+ unsigned char gnu_personality_handler_encoding = 0;
+ unsigned char gnu_lsda_encoding = 0;
+ unsigned char gnu_fde_begin_encoding = 0;
+
+
+ enum Dwarf_augmentation_type augt = aug_unknown;
+
+
+ /* this is a CIE, Common Information Entry: See the dwarf spec,
+ section 6.4.1 */
+ Dwarf_Small version = *(Dwarf_Small *) frame_ptr;
+
+ frame_ptr++;
+ if (version != DW_CIE_VERSION && version != DW_CIE_VERSION3 &&
+ version != DW_CIE_VERSION4) {
+ _dwarf_error(dbg, error, DW_DLE_FRAME_VERSION_BAD);
+ return (DW_DLV_ERROR);
+ }
+
+ augmentation = frame_ptr;
+ frame_ptr = frame_ptr + strlen((char *) frame_ptr) + 1;
+ augt = _dwarf_get_augmentation_type(dbg,
+ augmentation, use_gnu_cie_calc);
+ if (augt == aug_eh) {
+ /* REFERENCED *//* Not used in this instance */
+ Dwarf_Unsigned exception_table_addr;
+
+ /* this is per egcs-1.1.2 as on RH 6.0 */
+ READ_UNALIGNED(dbg, exception_table_addr,
+ Dwarf_Unsigned, frame_ptr, local_length_size);
+ frame_ptr += local_length_size;
+ }
+ {
+ Dwarf_Unsigned lreg = 0;
+ unsigned long size = 0;
+
+ if( version == DW_CIE_VERSION4) {
+ address_size = *((unsigned char *)frame_ptr);
+ ++frame_ptr;
+ segment_size = *((unsigned char *)frame_ptr);
+ ++frame_ptr;
+ }
+
+ DECODE_LEB128_UWORD(frame_ptr, lreg);
+ code_alignment_factor = (Dwarf_Word) lreg;
+
+ data_alignment_factor =
+ (Dwarf_Sword) _dwarf_decode_s_leb128(frame_ptr,
+ &leb128_length);
+
+ frame_ptr = frame_ptr + leb128_length;
+
+ return_address_register =
+ _dwarf_get_return_address_reg(frame_ptr, version, &size);
+ if (return_address_register > dbg->de_frame_reg_rules_entry_count) {
+ _dwarf_error(dbg, error, DW_DLE_CIE_RET_ADDR_REG_ERROR);
+ return (DW_DLV_ERROR);
+ }
+ frame_ptr += size;
+ }
+ switch (augt) {
+ case aug_empty_string:
+ break;
+ case aug_irix_mti_v1:
+ break;
+ case aug_irix_exception_table:{
+ Dwarf_Unsigned lreg = 0;
+ Dwarf_Word length_of_augmented_fields;
+
+ /* Decode the length of augmented fields. */
+ DECODE_LEB128_UWORD(frame_ptr, lreg);
+ length_of_augmented_fields = (Dwarf_Word) lreg;
+
+
+ /* set the frame_ptr to point at the instruction start. */
+ frame_ptr += length_of_augmented_fields;
+ }
+ break;
+
+ case aug_eh:{
+
+ int err = 0;
+ unsigned long increment = 0;
+
+ if (!use_gnu_cie_calc) {
+ /* This should be impossible. */
+ _dwarf_error(dbg, error,
+ DW_DLE_FRAME_AUGMENTATION_UNKNOWN);
+ return DW_DLV_ERROR;
+ }
+
+ err = get_gcc_eh_augmentation(dbg, frame_ptr, &increment,
+ augt,
+ prefix->cf_section_ptr,
+ &eh_fde_encoding,
+ (char *) augmentation);
+ if (err == DW_DLV_ERROR) {
+ _dwarf_error(dbg, error,
+ DW_DLE_FRAME_AUGMENTATION_UNKNOWN);
+ return DW_DLV_ERROR;
+ }
+ frame_ptr += increment;
+ break;
+ }
+ case aug_gcc_eh_z:{
+ /* Here we have Augmentation Data Length (uleb128) followed
+ by Augmentation Data bytes. */
+ int res = DW_DLV_ERROR;
+ Dwarf_Unsigned adlen = 0;
+
+ DECODE_LEB128_UWORD(frame_ptr, adlen);
+ cie_aug_data_len = adlen;
+ cie_aug_data = frame_ptr;
+ res = gnu_aug_encodings(dbg,
+ (char *) augmentation,
+ cie_aug_data,
+ cie_aug_data_len,
+ address_size,
+ &gnu_personality_handler_encoding,
+ &gnu_lsda_encoding,
+ &gnu_fde_begin_encoding,
+ &gnu_personality_handler_addr);
+ if (res != DW_DLV_OK) {
+ _dwarf_error(dbg, error,
+ DW_DLE_FRAME_AUGMENTATION_UNKNOWN);
+ return res;
+ }
+
+
+ frame_ptr += adlen;
+ break;
+ }
+ case aug_armcc:
+ break;
+ default:{
+ /* We do not understand the augmentation string. No
+ assumption can be made about any fields other than what
+ we have already read. */
+ frame_ptr = prefix->cf_start_addr +
+ prefix->cf_length + prefix->cf_local_length_size
+ + prefix->cf_local_extension_size;
+ /* FIX -- What are the values of data_alignment_factor,
+ code_alignement_factor, return_address_register and
+ instruction start? They were clearly uninitalized in the
+ previous version and I am leaving them the same way. */
+ break;
+ }
+ } /* End switch on augmentation type. */
+
+ new_cie = (Dwarf_Cie) _dwarf_get_alloc(dbg, DW_DLA_CIE, 1);
+ if (new_cie == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ new_cie->ci_cie_version_number = version;
+ new_cie->ci_initial_table = NULL;
+ new_cie->ci_length = (Dwarf_Word) prefix->cf_length;
+ new_cie->ci_length_size = prefix->cf_local_length_size;
+ new_cie->ci_extension_size = prefix->cf_local_extension_size;
+ new_cie->ci_augmentation = (char *) augmentation;
+
+ new_cie->ci_data_alignment_factor =
+ (Dwarf_Sbyte) data_alignment_factor;
+ new_cie->ci_code_alignment_factor =
+ (Dwarf_Small) code_alignment_factor;
+ new_cie->ci_return_address_register = return_address_register;
+ new_cie->ci_cie_start = prefix->cf_start_addr;
+ new_cie->ci_cie_instr_start = frame_ptr;
+ new_cie->ci_dbg = dbg;
+ new_cie->ci_augmentation_type = augt;
+ new_cie->ci_gnu_eh_augmentation_len = cie_aug_data_len;
+ new_cie->ci_gnu_eh_augmentation_bytes = cie_aug_data;
+ new_cie->ci_gnu_personality_handler_encoding =
+ gnu_personality_handler_encoding;
+ new_cie->ci_gnu_personality_handler_addr =
+ gnu_personality_handler_addr;
+ new_cie->ci_gnu_lsda_encoding = gnu_lsda_encoding;
+ new_cie->ci_gnu_fde_begin_encoding = gnu_fde_begin_encoding;
+
+ new_cie->ci_index = cie_count;
+ new_cie->ci_section_ptr = prefix->cf_section_ptr;
+ /* The Following new in DWARF4 */
+ new_cie->ci_address_size = address_size;
+ new_cie->ci_segment_size = segment_size;
+ validate_length(dbg,new_cie,new_cie->ci_length,
+ new_cie->ci_length_size, new_cie->ci_extension_size,
+ new_cie->ci_section_ptr,
+ new_cie->ci_cie_start,"cie");
+
+ *cie_ptr_out = new_cie;
+ return DW_DLV_OK;
+
+}
+
+
+/* Internal function, not called by consumer code.
+ 'prefix' has accumulated the info up thru the cie-id
+ and now we consume the rest and build a Dwarf_Fde_s structure.
+*/
+
+int
+dwarf_create_fde_from_after_start(Dwarf_Debug dbg,
+ struct cie_fde_prefix_s *prefix,
+ Dwarf_Small * section_pointer,
+ Dwarf_Small * frame_ptr,
+ int use_gnu_cie_calc,
+ Dwarf_Cie cie_ptr_in,
+ Dwarf_Fde * fde_ptr_out,
+ Dwarf_Error * error)
+{
+ Dwarf_Fde new_fde = 0;
+ Dwarf_Cie cieptr = cie_ptr_in;
+ Dwarf_Small *saved_frame_ptr = 0;
+
+ Dwarf_Small *initloc = frame_ptr;
+ Dwarf_Signed offset_into_exception_tables
+ /* must be min dwarf_sfixed in size */
+ = (Dwarf_Signed) DW_DLX_NO_EH_OFFSET;
+ Dwarf_Small *fde_aug_data = 0;
+ Dwarf_Unsigned fde_aug_data_len = 0;
+ Dwarf_Addr cie_base_offset = prefix->cf_cie_id;
+ Dwarf_Addr initial_location = 0; /* must be min de_pointer_size
+ bytes in size */
+ Dwarf_Addr address_range = 0; /* must be min de_pointer_size
+ bytes in size */
+ Dwarf_Half address_size = cie_ptr_in->ci_address_size;
+
+ enum Dwarf_augmentation_type augt = cieptr->ci_augmentation_type;
+
+ if (augt == aug_gcc_eh_z) {
+ /* If z augmentation this is eh_frame, and initial_location and
+ address_range in the FDE are read according to the CIE
+ augmentation string instructions. */
+
+ {
+ Dwarf_Small *fp_updated = 0;
+ int res = read_encoded_ptr(dbg,
+ section_pointer,
+ frame_ptr,
+ cieptr-> ci_gnu_fde_begin_encoding,
+ address_size,
+ &initial_location,
+ &fp_updated);
+ if (res != DW_DLV_OK) {
+ _dwarf_error(dbg, error,
+ DW_DLE_FRAME_AUGMENTATION_UNKNOWN);
+ return DW_DLV_ERROR;
+ }
+ frame_ptr = fp_updated;
+ /* For the address-range it makes no sense to be
+ pc-relative, so we turn it off with a section_pointer of
+ NULL. Masking off DW_EH_PE_pcrel from the
+ ci_gnu_fde_begin_encoding in this call would also work
+ to turn off DW_EH_PE_pcrel. */
+ res = read_encoded_ptr(dbg, (Dwarf_Small *) NULL,
+ frame_ptr,
+ cieptr->ci_gnu_fde_begin_encoding,
+ address_size,
+ &address_range, &fp_updated);
+ if (res != DW_DLV_OK) {
+ _dwarf_error(dbg, error,
+ DW_DLE_FRAME_AUGMENTATION_UNKNOWN);
+ return DW_DLV_ERROR;
+ }
+ frame_ptr = fp_updated;
+ }
+ {
+ Dwarf_Unsigned adlen = 0;
+
+ DECODE_LEB128_UWORD(frame_ptr, adlen);
+ fde_aug_data_len = adlen;
+ fde_aug_data = frame_ptr;
+ frame_ptr += adlen;
+ }
+
+ } else {
+ READ_UNALIGNED(dbg, initial_location, Dwarf_Addr,
+ frame_ptr, address_size);
+ frame_ptr += address_size;
+
+ READ_UNALIGNED(dbg, address_range, Dwarf_Addr,
+ frame_ptr, address_size);
+ frame_ptr += address_size;
+ }
+
+
+
+
+
+ switch (augt) {
+ case aug_irix_mti_v1:
+ case aug_empty_string:
+ break;
+ case aug_irix_exception_table:{
+ Dwarf_Unsigned lreg = 0;
+ Dwarf_Word length_of_augmented_fields = 0;
+
+ DECODE_LEB128_UWORD(frame_ptr, lreg);
+ length_of_augmented_fields = (Dwarf_Word) lreg;
+
+ saved_frame_ptr = frame_ptr;
+ /* The first word is an offset into exception tables.
+ Defined as a 32bit offset even for CC -64. */
+ READ_UNALIGNED(dbg, offset_into_exception_tables,
+ Dwarf_Addr, frame_ptr, sizeof(Dwarf_sfixed));
+ SIGN_EXTEND(offset_into_exception_tables,
+ sizeof(Dwarf_sfixed));
+ frame_ptr = saved_frame_ptr + length_of_augmented_fields;
+ }
+ break;
+ case aug_eh:{
+ Dwarf_Unsigned eh_table_value = 0;
+
+ if (!use_gnu_cie_calc) {
+ /* This should be impossible. */
+ _dwarf_error(dbg, error,
+ DW_DLE_FRAME_AUGMENTATION_UNKNOWN);
+ return DW_DLV_ERROR;
+ }
+
+ /* gnu eh fde case. we do not need to do anything */
+ /*REFERENCED*/ /* Not used in this instance of the
+ macro */
+ READ_UNALIGNED(dbg, eh_table_value,
+ Dwarf_Unsigned, frame_ptr,
+ address_size);
+ frame_ptr += address_size;
+ }
+ break;
+
+ case aug_gcc_eh_z:{
+ /* The Augmentation Data Length is here, followed by the
+ Augmentation Data bytes themselves. */
+ }
+ break;
+ case aug_armcc:
+ break;
+ case aug_past_last:
+ break;
+ case aug_unknown:
+ _dwarf_error(dbg, error, DW_DLE_FRAME_AUGMENTATION_UNKNOWN);
+ return DW_DLV_ERROR;
+ } /* End switch on augmentation type */
+ new_fde = (Dwarf_Fde) _dwarf_get_alloc(dbg, DW_DLA_FDE, 1);
+ if (new_fde == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ new_fde->fd_length = prefix->cf_length;
+ new_fde->fd_length_size = prefix->cf_local_length_size;
+ new_fde->fd_extension_size = prefix->cf_local_extension_size;
+ new_fde->fd_is_eh = use_gnu_cie_calc;
+ new_fde->fd_cie_offset = cie_base_offset;
+ new_fde->fd_cie_index = cieptr->ci_index;
+ new_fde->fd_cie = cieptr;
+ new_fde->fd_initial_location = initial_location;
+ new_fde->fd_initial_loc_pos = initloc;
+ new_fde->fd_address_range = address_range;
+ new_fde->fd_fde_start = prefix->cf_start_addr;
+ new_fde->fd_fde_instr_start = frame_ptr;
+ new_fde->fd_dbg = dbg;
+ new_fde->fd_offset_into_exception_tables =
+ offset_into_exception_tables;
+
+ new_fde->fd_section_ptr = prefix->cf_section_ptr;
+ new_fde->fd_section_index = prefix->cf_section_index;
+ new_fde->fd_section_length = prefix->cf_section_length;
+
+ new_fde->fd_gnu_eh_augmentation_bytes = fde_aug_data;
+ new_fde->fd_gnu_eh_augmentation_len = fde_aug_data_len;
+ validate_length(dbg,cieptr,new_fde->fd_length,
+ new_fde->fd_length_size, new_fde->fd_extension_size,
+ new_fde->fd_section_ptr,new_fde->fd_fde_start,"fde");
+
+
+ *fde_ptr_out = new_fde;
+ return DW_DLV_OK;
+}
+
+/* called by qsort to compare FDE entries.
+ Consumer code expects the array of FDE pointers to be in address order.
+*/
+static int
+qsort_compare(const void *elem1, const void *elem2)
+{
+ Dwarf_Fde fde1 = *(Dwarf_Fde *) elem1;
+ Dwarf_Fde fde2 = *(Dwarf_Fde *) elem2;
+ Dwarf_Addr addr1 = fde1->fd_initial_location;
+ Dwarf_Addr addr2 = fde2->fd_initial_location;
+
+ if (addr1 < addr2) {
+ return -1;
+ } else if (addr1 > addr2) {
+ return 1;
+ }
+ return 0;
+}
+
+
+/* Read in the common cie/fde prefix, including reading
+ * the cie-value which shows which this is: cie or fde.
+ * */
+int
+dwarf_read_cie_fde_prefix(Dwarf_Debug dbg,
+ Dwarf_Small * frame_ptr_in,
+ Dwarf_Small * section_ptr_in,
+ Dwarf_Unsigned section_index_in,
+ Dwarf_Unsigned section_length_in,
+ struct cie_fde_prefix_s *data_out,
+ Dwarf_Error * error)
+{
+ Dwarf_Unsigned length = 0;
+ int local_length_size = 0;
+ int local_extension_size = 0;
+ Dwarf_Small *frame_ptr = frame_ptr_in;
+ Dwarf_Small *cie_ptr_addr = 0;
+ Dwarf_Unsigned cie_id = 0;
+
+ /* READ_AREA_LENGTH updates frame_ptr for consumed bytes */
+ READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
+ frame_ptr, local_length_size,
+ local_extension_size);
+
+ if (length == 0) {
+ /* nul bytes at end of section, seen at end of egcs eh_frame
+ sections (in a.out). Take this as meaning no more CIE/FDE
+ data. We should be very close to end of section. */
+ return DW_DLV_NO_ENTRY;
+ }
+
+ cie_ptr_addr = frame_ptr;
+ READ_UNALIGNED(dbg, cie_id, Dwarf_Unsigned,
+ frame_ptr, local_length_size);
+ SIGN_EXTEND(cie_id, local_length_size);
+ frame_ptr += local_length_size;
+
+ data_out->cf_start_addr = frame_ptr_in;
+ data_out->cf_addr_after_prefix = frame_ptr;
+
+ data_out->cf_length = length;
+ data_out->cf_local_length_size = local_length_size;
+ data_out->cf_local_extension_size = local_extension_size;
+ data_out->cf_cie_id = cie_id;
+ data_out->cf_cie_id_addr = cie_ptr_addr;
+ data_out->cf_section_ptr = section_ptr_in;
+ data_out->cf_section_index = section_index_in;
+ data_out->cf_section_length = section_length_in;
+ return DW_DLV_OK;
+}
+
+/* On various errors previously-allocated CIEs and FDEs
+ must be cleaned up.
+ This helps avoid leaks in case of errors.
+*/
+static void
+dealloc_fde_cie_list_internal(Dwarf_Fde head_fde_ptr,
+ Dwarf_Cie head_cie_ptr)
+{
+ Dwarf_Fde curfde = 0;
+ Dwarf_Cie curcie = 0;
+ Dwarf_Fde nextfde = 0;
+ Dwarf_Cie nextcie = 0;
+
+ for (curfde = head_fde_ptr; curfde; curfde = nextfde) {
+ nextfde = curfde->fd_next;
+ dwarf_dealloc(curfde->fd_dbg, curfde, DW_DLA_FDE);
+ }
+ for (curcie = head_cie_ptr; curcie; curcie = nextcie) {
+ Dwarf_Frame frame = curcie->ci_initial_table;
+
+ nextcie = curcie->ci_next;
+ if (frame)
+ dwarf_dealloc(curcie->ci_dbg, frame, DW_DLA_FRAME);
+ dwarf_dealloc(curcie->ci_dbg, curcie, DW_DLA_CIE);
+ }
+}
+
+/* Find the cie whose id value is given: the id
+ * value is, per DWARF2/3, an offset in the section.
+ * For .debug_frame, zero is a legal offset. For
+ * GNU .eh_frame it is not a legal offset.
+ * 'cie_ptr' is a pointer into our section, not an offset. */
+static int
+dwarf_find_existing_cie_ptr(Dwarf_Small * cie_ptr,
+ Dwarf_Cie cur_cie_ptr,
+ Dwarf_Cie * cie_ptr_to_use_out,
+ Dwarf_Cie head_cie_ptr)
+{
+ Dwarf_Cie next = 0;
+
+ if (cur_cie_ptr && cie_ptr == cur_cie_ptr->ci_cie_start) {
+ /* Usually, we use the same cie again and again. */
+ *cie_ptr_to_use_out = cur_cie_ptr;
+ return DW_DLV_OK;
+ }
+ for (next = head_cie_ptr; next; next = next->ci_next) {
+ if (cie_ptr == next->ci_cie_start) {
+ *cie_ptr_to_use_out = next;
+ return DW_DLV_OK;
+ }
+ }
+ return DW_DLV_NO_ENTRY;
+}
+
+
+/* We have a valid cie_ptr_val that has not been
+ * turned into an internal Cie yet. Do so now.
+ * Returns DW_DLV_OK or DW_DLV_ERROR, never
+ * DW_DLV_NO_ENTRY.
+
+ 'section_ptr' - Points to first byte of section data.
+ 'section_length' - Length of the section, in bytes.
+ 'frame_ptr_end' - Points 1-past last byte of section data.
+ * */
+static int
+dwarf_create_cie_from_start(Dwarf_Debug dbg,
+ Dwarf_Small * cie_ptr_val,
+ Dwarf_Small * section_ptr,
+ Dwarf_Unsigned section_index,
+ Dwarf_Unsigned section_length,
+ Dwarf_Small * frame_ptr_end,
+ Dwarf_Unsigned cie_id_value,
+ Dwarf_Unsigned cie_count,
+ int use_gnu_cie_calc,
+ Dwarf_Cie * cie_ptr_to_use_out,
+ Dwarf_Error * error)
+{
+ struct cie_fde_prefix_s prefix;
+ int res = DW_DLV_ERROR;
+ Dwarf_Small *frame_ptr = cie_ptr_val;
+
+ if (frame_ptr < section_ptr || frame_ptr > frame_ptr_end) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_FRAME_LENGTH_BAD);
+ return DW_DLV_ERROR;
+ }
+ /* First read in the 'common prefix' to figure out what * we are to
+ do with this entry. If it is not a cie * we are in big trouble. */
+ memset(&prefix, 0, sizeof(prefix));
+ res = dwarf_read_cie_fde_prefix(dbg, frame_ptr, section_ptr,
+ section_index, section_length,
+ &prefix, error);
+ if (res == DW_DLV_ERROR) {
+ return res;
+ }
+ if (res == DW_DLV_NO_ENTRY) {
+ /* error. */
+ _dwarf_error(dbg, error, DW_DLE_FRAME_CIE_DECODE_ERROR);
+ return DW_DLV_ERROR;
+
+ }
+
+ if (prefix.cf_cie_id != cie_id_value) {
+ _dwarf_error(dbg, error, DW_DLE_FRAME_CIE_DECODE_ERROR);
+ return DW_DLV_ERROR;
+ }
+ frame_ptr = prefix.cf_addr_after_prefix;
+ res = dwarf_create_cie_from_after_start(dbg,
+ &prefix,
+ section_ptr,
+ frame_ptr,
+ cie_count,
+ use_gnu_cie_calc,
+ cie_ptr_to_use_out, error);
+ return res;
+
+}
+
+
+/* This is for gnu eh frames, the 'z' case.
+ We find the letter involved
+ Return the augmentation character and, if applicable,
+ the personality routine address.
+
+ personality_routine_out -
+ if 'P' is augchar, is personality handler addr.
+ Otherwise is not set.
+ aug_data - if 'P' points to data space of the
+ aug_data_len - length of areas aug_data points to.
+
+*/
+#if 0
+/* For debugging only. */
+void
+dump_bytes(Dwarf_Small * start, long len)
+{
+ Dwarf_Small *end = start + len;
+ Dwarf_Small *cur = start;
+
+ for (; cur < end; cur++) {
+ printf(" byte %d, data %02x\n", (int) (cur - start), *cur);
+ }
+
+}
+#endif
+static int
+gnu_aug_encodings(Dwarf_Debug dbg, char *augmentation,
+ Dwarf_Small * aug_data, Dwarf_Unsigned aug_data_len,
+ Dwarf_Half address_size,
+ unsigned char *pers_hand_enc_out,
+ unsigned char *lsda_enc_out,
+ unsigned char *fde_begin_enc_out,
+ Dwarf_Addr * gnu_pers_addr_out)
+{
+ char *nc = 0;
+ Dwarf_Small *cur_aug_p = aug_data;
+ Dwarf_Small *end_aug_p = aug_data + aug_data_len;
+
+ for (nc = augmentation; *nc; ++nc) {
+ char c = *nc;
+
+ switch (c) {
+ case 'z':
+ /* Means that the augmentation data is present. */
+ continue;
+
+ case 'S':
+ /* Indicates this is a signal stack frame. Debuggers have to do
+ special handling. We don't need to do more than print this flag at
+ the right time, though (see dwarfdump where it prints the augmentation
+ string).
+ A signal stack frame (in some OS's) can only be
+ unwound (backtraced) by knowing it is a signal stack frame
+ (perhaps by noticing the name of the function for the stack frame
+ if the name can be found somehow) and figuring
+ out (or knowing) how the kernel and libc pushed a structure
+ onto the stack and loading registers from that structure.
+ Totally different from normal stack unwinding.
+ This flag gives an unwinder a big leg up by decoupling the
+ 'hint: this is a stack frame' from knowledge like
+ the function name (the name might be unavailable at unwind time).
+ */
+ break;
+
+ case 'L':
+ if (cur_aug_p > end_aug_p) {
+ return DW_DLV_ERROR;
+ }
+ *lsda_enc_out = *(unsigned char *) cur_aug_p;
+ ++cur_aug_p;
+ break;
+ case 'R':
+ /* Followed by a one byte argument giving the
+ pointer encoding for the address pointers in the fde. */
+ if (cur_aug_p >= end_aug_p) {
+ return DW_DLV_ERROR;
+ }
+ *fde_begin_enc_out = *(unsigned char *) cur_aug_p;
+ ++cur_aug_p;
+ break;
+ case 'P':{
+ int res = DW_DLV_ERROR;
+ Dwarf_Small *updated_aug_p = 0;
+ unsigned char encoding = 0;
+
+ if (cur_aug_p >= end_aug_p) {
+ return DW_DLV_ERROR;
+ }
+ encoding = *(unsigned char *) cur_aug_p;
+ *pers_hand_enc_out = encoding;
+ ++cur_aug_p;
+ if (cur_aug_p > end_aug_p) {
+ return DW_DLV_ERROR;
+ }
+ /* DW_EH_PE_pcrel makes no sense here, so we turn it
+ off via a section pointer of NULL. */
+ res = read_encoded_ptr(dbg,
+ (Dwarf_Small *) NULL,
+ cur_aug_p,
+ encoding,
+ address_size,
+ gnu_pers_addr_out,
+ &updated_aug_p);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ cur_aug_p = updated_aug_p;
+ if (cur_aug_p > end_aug_p) {
+ return DW_DLV_ERROR;
+ }
+ }
+ break;
+ default:
+ return DW_DLV_ERROR;
+
+ }
+ }
+
+ return DW_DLV_OK;
+}
+
+/* Given augmentation character (the encoding) giving the
+address format, read the address from input_field
+and return an incremented value 1 past the input bytes of the
+address.
+Push the address read back thru the *addr pointer.
+See LSB (Linux Standar Base) exception handling documents.
+*/
+static int
+read_encoded_ptr(Dwarf_Debug dbg,
+ Dwarf_Small * section_pointer,
+ Dwarf_Small * input_field,
+ int gnu_encoding,
+ Dwarf_Half address_size,
+ Dwarf_Unsigned * addr,
+ Dwarf_Small ** input_field_updated)
+{
+ Dwarf_Word length = 0;
+ int value_type = gnu_encoding & 0xf;
+ Dwarf_Small *input_field_original = input_field;
+
+ if (gnu_encoding == 0xff) {
+ /* There is no data here. */
+
+ *addr = 0;
+ *input_field_updated = input_field;
+ /* Should we return DW_DLV_NO_ENTRY? */
+ return DW_DLV_OK;
+ }
+ switch (value_type) {
+ case DW_EH_PE_absptr:{
+ /* value_type is zero. Treat as pointer size of the object.
+ */
+ Dwarf_Unsigned ret_value = 0;
+
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ input_field, address_size);
+ *addr = ret_value;
+ *input_field_updated = input_field + address_size;
+ }
+ break;
+ case DW_EH_PE_uleb128:{
+ Dwarf_Unsigned val = _dwarf_decode_u_leb128(input_field,
+ &length);
+
+ *addr = val;
+ *input_field_updated = input_field + length;
+ }
+ break;
+ case DW_EH_PE_udata2:{
+ Dwarf_Unsigned ret_value = 0;
+
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ input_field, 2);
+ *addr = ret_value;
+ *input_field_updated = input_field + 2;
+ }
+ break;
+
+ case DW_EH_PE_udata4:{
+
+ Dwarf_Unsigned ret_value = 0;
+
+ /* ASSERT: sizeof(Dwarf_ufixed) == 4 */
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ input_field, sizeof(Dwarf_ufixed));
+ *addr = ret_value;
+ *input_field_updated = input_field + sizeof(Dwarf_ufixed);
+ }
+ break;
+
+ case DW_EH_PE_udata8:{
+ Dwarf_Unsigned ret_value = 0;
+
+ /* ASSERT: sizeof(Dwarf_Unsigned) == 8 */
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ input_field, sizeof(Dwarf_Unsigned));
+ *addr = ret_value;
+ *input_field_updated = input_field + sizeof(Dwarf_Unsigned);
+ }
+ break;
+
+ case DW_EH_PE_sleb128:{
+ Dwarf_Signed val = _dwarf_decode_s_leb128(input_field,
+ &length);
+
+ *addr = (Dwarf_Unsigned) val;
+ *input_field_updated = input_field + length;
+ }
+ break;
+ case DW_EH_PE_sdata2:{
+ Dwarf_Unsigned val = 0;
+
+ READ_UNALIGNED(dbg, val, Dwarf_Unsigned, input_field, 2);
+ SIGN_EXTEND(val, 2);
+ *addr = (Dwarf_Unsigned) val;
+ *input_field_updated = input_field + 2;
+ }
+ break;
+
+ case DW_EH_PE_sdata4:{
+ Dwarf_Unsigned val = 0;
+
+ /* ASSERT: sizeof(Dwarf_ufixed) == 4 */
+ READ_UNALIGNED(dbg, val,
+ Dwarf_Unsigned, input_field,
+ sizeof(Dwarf_ufixed));
+ SIGN_EXTEND(val, sizeof(Dwarf_ufixed));
+ *addr = (Dwarf_Unsigned) val;
+ *input_field_updated = input_field + sizeof(Dwarf_ufixed);
+ }
+ break;
+ case DW_EH_PE_sdata8:{
+ Dwarf_Unsigned val = 0;
+
+ /* ASSERT: sizeof(Dwarf_Unsigned) == 8 */
+ READ_UNALIGNED(dbg, val,
+ Dwarf_Unsigned, input_field,
+ sizeof(Dwarf_Unsigned));
+ *addr = (Dwarf_Unsigned) val;
+ *input_field_updated = input_field + sizeof(Dwarf_Unsigned);
+ }
+ break;
+ default:
+ return DW_DLV_ERROR;
+
+ };
+ /* The ELF ABI for gnu does not document the meaning of
+ DW_EH_PE_pcrel, which is awkward. It apparently means the value
+ we got above is pc-relative (meaning section-relative), so we
+ adjust the value. Section_pointer may be null if it is known
+ DW_EH_PE_pcrel cannot apply, such as for .debug_frame or for an
+ address-range value. */
+ if (section_pointer && ((gnu_encoding & 0x70) == DW_EH_PE_pcrel)) {
+ /* Address (*addr) above is pc relative with respect to a
+ section. Add to the offset the base address (from elf) of
+ section and the distance of the field we are reading from
+ the section-beginning to get the actual address. */
+ /* ASSERT: input_field_original >= section_pointer */
+ Dwarf_Unsigned distance =
+ input_field_original - section_pointer;
+ *addr += dbg->de_debug_frame_eh_gnu.dss_addr + distance;
+ }
+
+ return DW_DLV_OK;
+}
+
+
+
+
+/*
+ All augmentation string checking done here now.
+
+ For .eh_frame, gcc from 3.3 uses the z style, earlier used
+ only "eh" as augmentation. We don't yet handle
+ decoding .eh_frame with the z style extensions like L P.
+
+ These are nasty heuristics, but then that's life
+ as augmentations are implementation specific.
+*/
+/* ARGSUSED */
+enum Dwarf_augmentation_type
+_dwarf_get_augmentation_type(Dwarf_Debug dbg,
+ Dwarf_Small * augmentation_string,
+ int is_gcc_eh_frame)
+{
+ enum Dwarf_augmentation_type t = aug_unknown;
+ char *ag_string = (char *) augmentation_string;
+
+ if (ag_string[0] == 0) {
+ /* Empty string. We'll just guess that we know what this means:
+ standard dwarf2/3 with no implementation-defined fields. */
+ t = aug_empty_string;
+ } else if (strcmp(ag_string, DW_DEBUG_FRAME_AUGMENTER_STRING) == 0) {
+ /* The string is "mti v1". Used internally at SGI, probably
+ never shipped. Replaced by "z". Treat like 'nothing
+ special'. */
+ t = aug_irix_mti_v1;
+ } else if (ag_string[0] == 'z') {
+ /* If it's IRIX cc, z means aug_irix_exception_table. z1 z2
+ were designed as for IRIX CC, but never implemented */
+ /* If it's gcc, z may be any of several things. "z" or z
+ followed optionally followed by one or more of L R P, each
+ of which means a value may be present. Should be in eh_frame
+ only, I think. */
+ if (is_gcc_eh_frame) {
+ t = aug_gcc_eh_z;
+ } else if (ag_string[1] == 0) {
+ /* This is the normal IRIX C++ case, where there is an
+ offset into a table in each fde. The table being for
+ IRIX CC exception handling. */
+ /* DW_CIE_AUGMENTER_STRING_V0 "z" */
+ t = aug_irix_exception_table;
+ } /* Else unknown. */
+ } else if (strncmp(ag_string, "eh", 2) == 0) {
+ /* gcc .eh_frame augmentation for egcs and gcc 2.x, at least
+ for x86. */
+ t = aug_eh;
+ } else if (strcmp(ag_string, "armcc+") == 0) {
+ /* Arm uses this string to mean a bug in
+ in Arm compilers was fixed, changing to the standard
+ calculation of the CFA. See
+ http://sourceware.org/ml/gdb-patches/2006-12/msg00249.html
+ for details. */
+ t = aug_armcc;
+ } else {
+
+ }
+ return t;
+}
+
+/* Using augmentation, and version
+ read in the augmentation data for GNU eh.
+
+ Return DW_DLV_OK if we succeeded,
+ DW_DLV_ERR if we fail.
+
+ On success, update 'size_of_augmentation_data' with
+ the length of the fields that are part of augmentation (so the
+ caller can increment frame_ptr appropriately).
+
+ 'frame_ptr' points within section.
+ 'section_pointer' points to section base address in memory.
+*/
+/* ARGSUSED */
+static int
+get_gcc_eh_augmentation(Dwarf_Debug dbg, Dwarf_Small * frame_ptr,
+ unsigned long *size_of_augmentation_data,
+ enum Dwarf_augmentation_type augtype,
+ Dwarf_Small * section_pointer,
+ Dwarf_Small * fde_eh_encoding_out,
+ char *augmentation)
+{
+ char *suffix = 0;
+ unsigned long augdata_size = 0;
+
+ if (augtype == aug_gcc_eh_z) {
+ /* Has leading 'z'. */
+ Dwarf_Word leb128_length = 0;
+
+ /* Dwarf_Unsigned eh_value = */
+ _dwarf_decode_u_leb128(frame_ptr, &leb128_length);
+ augdata_size += leb128_length;
+ frame_ptr += leb128_length;
+ suffix = augmentation + 1;
+ } else {
+ /* Prefix is 'eh'. As in gcc 3.2. No suffix present
+ apparently. */
+ suffix = augmentation + 2;
+ }
+ for (; *suffix; ++suffix) {
+ /* We have no idea what this is as yet. Some extensions beyond
+ dwarf exist which we do not yet handle. */
+ return DW_DLV_ERROR;
+
+ }
+
+ *size_of_augmentation_data = augdata_size;
+ return DW_DLV_OK;
+}
+
+
+/* Make the 'cie_id_addr' consistent across .debug_frame and .eh_frame.
+ Calculate a pointer into section bytes given a cie_id, which is
+ trivial for .debug_frame, but a bit more work for .eh_frame.
+*/
+static Dwarf_Small *
+get_cieptr_given_offset(Dwarf_Unsigned cie_id_value,
+ int use_gnu_cie_calc,
+ Dwarf_Small * section_ptr,
+ Dwarf_Small * cie_id_addr)
+{
+ Dwarf_Small *cieptr = 0;
+
+ if (use_gnu_cie_calc) {
+ /* cie_id value is offset, in section, of the cie_id itself, to
+ use vm ptr of the value, less the value, to get to the cie
+ itself. In addition, munge *cie_id_addr to look *as if* it
+ was from real dwarf. */
+ cieptr = (Dwarf_Small *)(uintptr_t)
+ ((Dwarf_Unsigned)(uintptr_t)cie_id_addr) -
+ ((Dwarf_Unsigned) cie_id_value);
+ } else {
+ /* Traditional dwarf section offset is in cie_id */
+ cieptr = (section_ptr + cie_id_value);
+ }
+ return cieptr;
+}
+
+/* To properly release all spaced used.
+ Earlier approaches (before July 15, 2005)
+ letting client do the dealloc directly left
+ some data allocated.
+ This is directly called by consumer code.
+*/
+void
+dwarf_fde_cie_list_dealloc(Dwarf_Debug dbg,
+ Dwarf_Cie * cie_data,
+ Dwarf_Signed cie_element_count,
+ Dwarf_Fde * fde_data,
+ Dwarf_Signed fde_element_count)
+{
+ Dwarf_Signed i = 0;
+
+ for (i = 0; i < cie_element_count; ++i) {
+ Dwarf_Frame frame = cie_data[i]->ci_initial_table;
+
+ if (frame)
+ dwarf_dealloc(dbg, frame, DW_DLA_FRAME);
+ dwarf_dealloc(dbg, cie_data[i], DW_DLA_CIE);
+ }
+ for (i = 0; i < fde_element_count; ++i) {
+ dwarf_dealloc(dbg, fde_data[i], DW_DLA_FDE);
+ }
+ if (cie_data)
+ dwarf_dealloc(dbg, cie_data, DW_DLA_LIST);
+ if (fde_data)
+ dwarf_dealloc(dbg, fde_data, DW_DLA_LIST);
+
+}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_frame3.c b/usr/src/tools/ctf/dwarf/common/dwarf_frame3.c
new file mode 100644
index 0000000000..7bd8ec86d5
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_frame3.c
@@ -0,0 +1,290 @@
+/*
+
+ Copyright (C) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+
+
+#include "config.h"
+#include "dwarf_incl.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "dwarf_frame.h"
+#include "dwarf_arange.h" /* using Arange as a way to build a list */
+
+/*
+ Used by rqs (an IRIX application).
+ Not needed except for that one application.
+ Should be moved to its own source file since
+ it is so rarely needed.
+ Returns DW_DLV_OK if returns the arrays.
+ Returns DW_DLV_NO_ENTRY if no section. ?? (How do I tell?)
+ Returns DW_DLV_ERROR if there is an error.
+
+ Uses DW_FRAME_CFA_COL because IRIX is only DWARF2
+ and that is what IRIX compilers and compatible
+ compilers support on IRIX.
+*/
+int
+_dwarf_frame_address_offsets(Dwarf_Debug dbg, Dwarf_Addr ** addrlist,
+ Dwarf_Off ** offsetlist,
+ Dwarf_Signed * returncount,
+ Dwarf_Error * err)
+{
+ int retval = DW_DLV_OK;
+ int res = DW_DLV_ERROR;
+ Dwarf_Cie *cie_data;
+ Dwarf_Signed cie_count;
+ Dwarf_Fde *fde_data;
+ Dwarf_Signed fde_count;
+ Dwarf_Signed i;
+ Dwarf_Frame_Op *frame_inst;
+ Dwarf_Fde fdep;
+ Dwarf_Cie ciep;
+ Dwarf_Chain curr_chain = 0;
+ Dwarf_Chain head_chain = 0;
+ Dwarf_Chain prev_chain = 0;
+ Dwarf_Arange arange;
+ Dwarf_Unsigned arange_count = 0;
+ Dwarf_Addr *arange_addrs = 0;
+ Dwarf_Off *arange_offsets = 0;
+
+ res = dwarf_get_fde_list(dbg, &cie_data, &cie_count,
+ &fde_data, &fde_count, err);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+
+ res = _dwarf_load_section(dbg, &dbg->de_debug_frame, err);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+
+ for (i = 0; i < cie_count; i++) {
+ Dwarf_Off instoff = 0;
+ Dwarf_Signed initial_instructions_length = 0;
+ Dwarf_Small *instr_end = 0;
+ Dwarf_Sword icount = 0;
+ int j = 0;
+ int dw_err;
+
+ ciep = cie_data[i];
+ instoff = ciep->ci_cie_instr_start - dbg->de_debug_frame.dss_data;
+ initial_instructions_length = ciep->ci_length +
+ ciep->ci_length_size + ciep->ci_extension_size -
+ (ciep->ci_cie_instr_start - ciep->ci_cie_start);
+ instr_end = ciep->ci_cie_instr_start +
+ initial_instructions_length;
+ res = _dwarf_exec_frame_instr( /* make_instr */ true,
+ &frame_inst,
+ /* search_pc= */ false,
+ /* search_pc_val= */ 0,
+ /* location */ 0,
+ ciep->ci_cie_instr_start,
+ instr_end,
+ /* Dwarf_frame= */ 0,
+ /* cie= */ 0,
+ dbg,
+ DW_FRAME_CFA_COL,
+ &icount, &dw_err);
+ if (res == DW_DLV_ERROR) {
+ _dwarf_error(dbg, err, dw_err);
+ return (res);
+ } else if (res == DW_DLV_NO_ENTRY) {
+ continue;
+ }
+
+ for (j = 0; j < icount; ++j) {
+ Dwarf_Frame_Op *finst = frame_inst + j;
+
+ if (finst->fp_base_op == 0 && finst->fp_extended_op == 1) {
+ /* is DW_CFA_set_loc */
+ Dwarf_Addr add = (Dwarf_Addr) finst->fp_offset;
+ Dwarf_Off off = finst->fp_instr_offset + instoff;
+
+ arange = (Dwarf_Arange)
+ _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
+ if (arange == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ arange->ar_address = add;
+ arange->ar_info_offset = off;
+ arange_count++;
+ curr_chain = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_chain == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ curr_chain->ch_item = arange;
+ if (head_chain == NULL)
+ head_chain = prev_chain = curr_chain;
+ else {
+ prev_chain->ch_next = curr_chain;
+ prev_chain = curr_chain;
+ }
+ }
+ }
+ dwarf_dealloc(dbg, frame_inst, DW_DLA_FRAME_BLOCK);
+
+ }
+ for (i = 0; i < fde_count; i++) {
+ Dwarf_Small *instr_end = 0;
+ Dwarf_Sword icount = 0;
+ Dwarf_Signed instructions_length = 0;
+ Dwarf_Off instoff = 0;
+ Dwarf_Off off = 0;
+ Dwarf_Addr addr = 0;
+ int j = 0;
+ int dw_err;
+
+ fdep = fde_data[i];
+ off = fdep->fd_initial_loc_pos - dbg->de_debug_frame.dss_data;
+ addr = fdep->fd_initial_location;
+ arange = (Dwarf_Arange)
+ _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
+ if (arange == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ arange->ar_address = addr;
+ arange->ar_info_offset = off;
+ arange_count++;
+ curr_chain = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_chain == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ curr_chain->ch_item = arange;
+ if (head_chain == NULL)
+ head_chain = prev_chain = curr_chain;
+ else {
+ prev_chain->ch_next = curr_chain;
+ prev_chain = curr_chain;
+ }
+
+
+ instoff = fdep->fd_fde_instr_start - dbg->de_debug_frame.dss_data;
+ instructions_length = fdep->fd_length +
+ fdep->fd_length_size + fdep->fd_extension_size -
+ (fdep->fd_fde_instr_start - fdep->fd_fde_start);
+ instr_end = fdep->fd_fde_instr_start + instructions_length;
+ res = _dwarf_exec_frame_instr( /* make_instr */ true,
+ &frame_inst,
+ /* search_pc= */ false,
+ /* search_pc_val= */ 0,
+ /* location */ 0,
+ fdep->fd_fde_instr_start,
+ instr_end,
+ /* Dwarf_frame= */ 0,
+ /* cie= */ 0,
+ dbg,
+ DW_FRAME_CFA_COL,
+ &icount, &dw_err);
+ if (res == DW_DLV_ERROR) {
+ _dwarf_error(dbg, err, dw_err);
+ return (res);
+ } else if (res == DW_DLV_NO_ENTRY) {
+ continue;
+ }
+
+ for (j = 0; j < icount; ++j) {
+ Dwarf_Frame_Op *finst2 = frame_inst + j;
+
+ if (finst2->fp_base_op == 0 && finst2->fp_extended_op == 1) {
+ /* is DW_CFA_set_loc */
+ Dwarf_Addr add = (Dwarf_Addr) finst2->fp_offset;
+ Dwarf_Off off = finst2->fp_instr_offset + instoff;
+
+ arange = (Dwarf_Arange)
+ _dwarf_get_alloc(dbg, DW_DLA_ARANGE, 1);
+ if (arange == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ arange->ar_address = add;
+ arange->ar_info_offset = off;
+ arange_count++;
+ curr_chain = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_chain == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ curr_chain->ch_item = arange;
+ if (head_chain == NULL)
+ head_chain = prev_chain = curr_chain;
+ else {
+ prev_chain->ch_next = curr_chain;
+ prev_chain = curr_chain;
+ }
+
+ }
+ }
+ dwarf_dealloc(dbg, frame_inst, DW_DLA_FRAME_BLOCK);
+
+ }
+ dwarf_dealloc(dbg, fde_data, DW_DLA_LIST);
+ dwarf_dealloc(dbg, cie_data, DW_DLA_LIST);
+ arange_addrs = (Dwarf_Addr *)
+ _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
+ if (arange_addrs == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ arange_offsets = (Dwarf_Off *)
+ _dwarf_get_alloc(dbg, DW_DLA_ADDR, arange_count);
+ if (arange_offsets == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ curr_chain = head_chain;
+ for (i = 0; i < arange_count; i++) {
+ Dwarf_Arange ar = curr_chain->ch_item;
+
+ arange_addrs[i] = ar->ar_address;
+ arange_offsets[i] = ar->ar_info_offset;
+ prev_chain = curr_chain;
+ curr_chain = curr_chain->ch_next;
+ dwarf_dealloc(dbg, ar, DW_DLA_ARANGE);
+ dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
+ }
+ *returncount = arange_count;
+ *offsetlist = arange_offsets;
+ *addrlist = arange_addrs;
+ return retval;
+}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_funcs.c b/usr/src/tools/ctf/dwarf/common/dwarf_funcs.c
index a7f3fee702..8d725ae33f 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_funcs.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_funcs.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -43,44 +44,52 @@
int
dwarf_get_funcs(Dwarf_Debug dbg,
- Dwarf_Func ** funcs,
- Dwarf_Signed * ret_func_count, Dwarf_Error * error)
+ Dwarf_Func ** funcs,
+ Dwarf_Signed * ret_func_count, Dwarf_Error * error)
{
- int res;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_funcnames_index,
- &dbg->de_debug_funcnames,
- error);
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_funcnames,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- return _dwarf_internal_get_pubnames_like_data(dbg, dbg->de_debug_funcnames, dbg->de_debug_funcnames_size, (Dwarf_Global **) funcs, /* type
- punning,
- Dwarf_Type
- is never
- a
- completed
- type */
- ret_func_count,
- error,
- DW_DLA_FUNC_CONTEXT,
- DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD,
- DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR);
+ return _dwarf_internal_get_pubnames_like_data(dbg,
+ dbg->de_debug_funcnames.dss_data,
+ dbg->de_debug_funcnames.dss_size,
+ (Dwarf_Global **) funcs, /* Type punning for sections with identical format. */
+ ret_func_count,
+ error,
+ DW_DLA_FUNC_CONTEXT,
+ DW_DLA_FUNC,
+ DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD,
+ DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR);
+}
+
+/* Deallocating fully requires deallocating the list
+ and all entries. But some internal data is
+ not exposed, so we need a function with internal knowledge.
+*/
+void
+dwarf_funcs_dealloc(Dwarf_Debug dbg, Dwarf_Func * dwgl,
+ Dwarf_Signed count)
+{
+ _dwarf_internal_globals_dealloc(dbg, (Dwarf_Global *) dwgl,
+ count,
+ DW_DLA_FUNC_CONTEXT,
+ DW_DLA_FUNC, DW_DLA_LIST);
+ return;
}
+
int
dwarf_funcname(Dwarf_Func func_in, char **ret_name, Dwarf_Error * error)
{
Dwarf_Global func = (Dwarf_Global) func_in;
if (func == NULL) {
- _dwarf_error(NULL, error, DW_DLE_FUNC_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_FUNC_NULL);
+ return (DW_DLV_ERROR);
}
*ret_name = (char *) (func->gl_name);
@@ -89,7 +98,7 @@ dwarf_funcname(Dwarf_Func func_in, char **ret_name, Dwarf_Error * error)
int
dwarf_func_die_offset(Dwarf_Func func_in,
- Dwarf_Off * return_offset, Dwarf_Error * error)
+ Dwarf_Off * return_offset, Dwarf_Error * error)
{
Dwarf_Global func = (Dwarf_Global) func_in;
@@ -99,7 +108,7 @@ dwarf_func_die_offset(Dwarf_Func func_in,
int
dwarf_func_cu_offset(Dwarf_Func func_in,
- Dwarf_Off * return_offset, Dwarf_Error * error)
+ Dwarf_Off * return_offset, Dwarf_Error * error)
{
Dwarf_Global func = (Dwarf_Global) func_in;
@@ -109,13 +118,13 @@ dwarf_func_cu_offset(Dwarf_Func func_in,
int
dwarf_func_name_offsets(Dwarf_Func func_in,
- char **ret_func_name,
- Dwarf_Off * die_offset,
- Dwarf_Off * cu_die_offset, Dwarf_Error * error)
+ char **ret_func_name,
+ Dwarf_Off * die_offset,
+ Dwarf_Off * cu_die_offset, Dwarf_Error * error)
{
Dwarf_Global func = (Dwarf_Global) func_in;
return dwarf_global_name_offsets(func,
- ret_func_name,
- die_offset, cu_die_offset, error);
+ ret_func_name,
+ die_offset, cu_die_offset, error);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_funcs.h b/usr/src/tools/ctf/dwarf/common/dwarf_funcs.h
index e3ca667307..bf91c32157 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_funcs.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_funcs.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000, 2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_global.c b/usr/src/tools/ctf/dwarf/common/dwarf_global.c
index 6ba561ef5b..d1c090fa43 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_global.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_global.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,12 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
@@ -40,35 +47,106 @@
#include <stdio.h>
#include "dwarf_global.h"
+
+#ifdef __sgi /* __sgi should only be defined for IRIX/MIPS. */
+/* The 'fixup' here intended for IRIX targets only.
+ With a 2+GB Elf64 IRIX executable (under 4GB in size),
+ some DIE offsets wrongly
+ got the 32bit upper bit sign extended. For the cu-header
+ offset in the .debug_pubnames section and in the
+ .debug_aranges section.
+ the 'varp' here is a pointer to an offset into .debug_info.
+ We fix up the offset here if it seems advisable..
+
+ As of June 2005 we have identified a series of mistakes
+ in ldx64 that can cause this (64 bit values getting passed
+ thru 32-bit signed knothole).
+*/
+void
+_dwarf_fix_up_offset_irix(Dwarf_Debug dbg,
+ Dwarf_Unsigned * varp, char *caller_site_name)
+{
+
+ Dwarf_Unsigned var = *varp;
+
+#define UPPER33 0xffffffff80000000LL
+#define LOWER32 0xffffffffLL
+ /* Restrict the hack to the known case. Upper 32 bits erroneously
+ sign extended from lower 32 upper bit. */
+ if ((var & UPPER33) == UPPER33) {
+ var &= LOWER32;
+ /* Apply the fix. Dreadful hack. */
+ *varp = var;
+ }
+#undef UPPER33
+#undef LOWER32
+ return;
+}
+#endif
+
+
int
dwarf_get_globals(Dwarf_Debug dbg,
- Dwarf_Global ** globals,
- Dwarf_Signed * return_count, Dwarf_Error * error)
+ Dwarf_Global ** globals,
+ Dwarf_Signed * return_count, Dwarf_Error * error)
{
- int res;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_pubnames_index,
- &dbg->de_debug_pubnames,
- error);
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_pubnames,error);
if (res != DW_DLV_OK) {
return res;
}
+ return _dwarf_internal_get_pubnames_like_data(dbg,
+ dbg->de_debug_pubnames.dss_data,
+ dbg->de_debug_pubnames.dss_size,
+ globals,
+ return_count,
+ error,
+ DW_DLA_GLOBAL_CONTEXT,
+ DW_DLA_GLOBAL,
+ DW_DLE_PUBNAMES_LENGTH_BAD,
+ DW_DLE_PUBNAMES_VERSION_ERROR);
+}
- return _dwarf_internal_get_pubnames_like_data(dbg,
- dbg->
- de_debug_pubnames,
- dbg->
- de_debug_pubnames_size,
- globals, return_count,
- error,
- DW_DLA_GLOBAL_CONTEXT,
- DW_DLE_PUBNAMES_LENGTH_BAD,
- DW_DLE_PUBNAMES_VERSION_ERROR);
+/* Deallocating fully requires deallocating the list
+ and all entries. But some internal data is
+ not exposed, so we need a function with internal knowledge.
+*/
+
+void
+dwarf_globals_dealloc(Dwarf_Debug dbg, Dwarf_Global * dwgl,
+ Dwarf_Signed count)
+{
+ _dwarf_internal_globals_dealloc(dbg, dwgl,
+ count,
+ DW_DLA_GLOBAL_CONTEXT,
+ DW_DLA_GLOBAL, DW_DLA_LIST);
+ return;
+}
+
+void
+_dwarf_internal_globals_dealloc(Dwarf_Debug dbg, Dwarf_Global * dwgl,
+ Dwarf_Signed count,
+ int context_code,
+ int global_code, int list_code)
+{
+ Dwarf_Signed i;
+ struct Dwarf_Global_Context_s *gcp = 0;
+ struct Dwarf_Global_Context_s *lastgcp = 0;
+
+ for (i = 0; i < count; i++) {
+ Dwarf_Global dgb = dwgl[i];
+ gcp = dgb->gl_context;
+
+ if (lastgcp != gcp) {
+ lastgcp = gcp;
+ dwarf_dealloc(dbg, gcp, context_code);
+ }
+ dwarf_dealloc(dbg, dgb, global_code);
+ }
+ dwarf_dealloc(dbg, dwgl, list_code);
+ return;
}
@@ -76,212 +154,221 @@ dwarf_get_globals(Dwarf_Debug dbg,
*/
int
_dwarf_internal_get_pubnames_like_data(Dwarf_Debug dbg,
- Dwarf_Small * section_data_ptr,
- Dwarf_Unsigned section_length,
- Dwarf_Global ** globals,
- Dwarf_Signed * return_count,
- Dwarf_Error * error,
- int allocation_code,
- int length_err_num,
- int version_err_num)
+ Dwarf_Small * section_data_ptr,
+ Dwarf_Unsigned section_length,
+ Dwarf_Global ** globals,
+ Dwarf_Signed * return_count,
+ Dwarf_Error * error,
+ int context_code,
+ int global_code,
+ int length_err_num,
+ int version_err_num)
{
- Dwarf_Small *pubnames_like_ptr;
+ Dwarf_Small *pubnames_like_ptr = 0;
- /*
- Points to the context for the current set of global names, and
+ /* Points to the context for the current set of global names, and
contains information to identify the compilation-unit that the
set refers to. */
- Dwarf_Global_Context pubnames_context;
+ Dwarf_Global_Context pubnames_context = 0;
- Dwarf_Half version;
+ Dwarf_Half version = 0;
/*
Offset from the start of compilation-unit for the current
global. */
- Dwarf_Off die_offset_in_cu;
+ Dwarf_Off die_offset_in_cu = 0;
Dwarf_Unsigned global_count = 0;
/* Points to the current global read. */
- Dwarf_Global global;
+ Dwarf_Global global = 0;
- /*
- Used to chain the Dwarf_Global_s structs for creating contiguous
+ /* Used to chain the Dwarf_Global_s structs for creating contiguous
list of pointers to the structs. */
- Dwarf_Chain curr_chain, prev_chain, head_chain = NULL;
+ Dwarf_Chain curr_chain = 0;
+ Dwarf_Chain prev_chain = 0;
+ Dwarf_Chain head_chain = 0;
/* Points to contiguous block of Dwarf_Global's to be returned. */
- Dwarf_Global *ret_globals;
+ Dwarf_Global *ret_globals = 0;
/* Temporary counter. */
- Dwarf_Unsigned i;
+ Dwarf_Unsigned i = 0;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
/* We will eventually need the .debug_info data. Load it now. */
- if(!dbg->de_debug_info) {
- int res = _dwarf_load_debug_info(dbg,error);
- if(res != DW_DLV_OK) {
- return res;
+ if (!dbg->de_debug_info.dss_data) {
+ int res = _dwarf_load_debug_info(dbg, error);
+
+ if (res != DW_DLV_OK) {
+ return res;
}
}
if (section_data_ptr == NULL) {
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
}
pubnames_like_ptr = section_data_ptr;
do {
- Dwarf_Unsigned length;
- int local_extension_size;
- int local_length_size;
-
- /* Some compilers emit padding at the end of each cu's
- area. pubnames_ptr_past_end_cu records the true
- area end for this cu's data. Essentially the
- length in the header and the 0 terminator of the
- data are redundant information. The dwarf2/3
- spec does not mention what to do if the length
- is past the 0 terminator. So we take any bytes
- left after the 0 as padding and ignore them. */
+ Dwarf_Unsigned length = 0;
+ int local_extension_size = 0;
+ int local_length_size = 0;
+
+ /* Some compilers emit padding at the end of each cu's area.
+ pubnames_ptr_past_end_cu records the true area end for this
+ cu's data. Essentially the length in the header and the 0
+ terminator of the data are redundant information. The
+ dwarf2/3 spec does not mention what to do if the length is
+ past the 0 terminator. So we take any bytes left after the 0
+ as padding and ignore them. */
Dwarf_Small *pubnames_ptr_past_end_cu = 0;
-
-
- pubnames_context = (Dwarf_Global_Context)
- _dwarf_get_alloc(dbg, allocation_code, 1);
- if (pubnames_context == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- /* READ_AREA_LENGTH updates pubnames_like_ptr for consumed
- bytes */
- READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- pubnames_like_ptr, local_length_size,
- local_extension_size);
- pubnames_context->pu_length_size = local_length_size;
- pubnames_context->pu_extension_size = local_extension_size;
- pubnames_context->pu_dbg = dbg;
-
- pubnames_ptr_past_end_cu = pubnames_like_ptr + length;
-
- READ_UNALIGNED(dbg, version, Dwarf_Half,
- pubnames_like_ptr, sizeof(Dwarf_Half));
- pubnames_like_ptr += sizeof(Dwarf_Half);
- if (version != CURRENT_VERSION_STAMP) {
- _dwarf_error(dbg, error, version_err_num);
- return (DW_DLV_ERROR);
- }
-
- /* offset of CU header in debug section */
- READ_UNALIGNED(dbg, pubnames_context->pu_offset_of_cu_header,
- Dwarf_Off, pubnames_like_ptr,
- pubnames_context->pu_length_size);
- pubnames_like_ptr += pubnames_context->pu_length_size;
-
-
- READ_UNALIGNED(dbg, pubnames_context->pu_info_length,
- Dwarf_Unsigned, pubnames_like_ptr,
- pubnames_context->pu_length_size);
- pubnames_like_ptr += pubnames_context->pu_length_size;
-
- if (pubnames_like_ptr > (section_data_ptr + section_length)) {
- _dwarf_error(dbg, error, length_err_num);
- return (DW_DLV_ERROR);
- }
-
- /* read initial offset (of DIE within CU) of a pubname, final
- entry is not a pair, just a zero offset */
- READ_UNALIGNED(dbg, die_offset_in_cu, Dwarf_Off,
- pubnames_like_ptr,
- pubnames_context->pu_length_size);
- pubnames_like_ptr += pubnames_context->pu_length_size;
-
- /* loop thru pairs. DIE off with CU followed by string */
- while (die_offset_in_cu != 0) {
-
- /* Already read offset, pubnames_like_ptr now points to the
- string */
- global =
- (Dwarf_Global) _dwarf_get_alloc(dbg, DW_DLA_GLOBAL, 1);
- if (global == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- global_count++;
-
- global->gl_context = pubnames_context;
-
- global->gl_named_die_offset_within_cu = die_offset_in_cu;
-
- global->gl_name = pubnames_like_ptr;
-
- pubnames_like_ptr = pubnames_like_ptr +
- strlen((char *) pubnames_like_ptr) + 1;
-
-
- /* finish off current entry chain */
- curr_chain =
- (Dwarf_Chain) _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_chain == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- /* Put current global on singly_linked list. */
- curr_chain->ch_item = (Dwarf_Global) global;
-
- if (head_chain == NULL)
- head_chain = prev_chain = curr_chain;
- else {
- prev_chain->ch_next = curr_chain;
- prev_chain = curr_chain;
- }
-
- /* read offset for the *next* entry */
- READ_UNALIGNED(dbg, die_offset_in_cu, Dwarf_Off,
- pubnames_like_ptr,
- pubnames_context->pu_length_size);
-
- pubnames_like_ptr += pubnames_context->pu_length_size;
- if (pubnames_like_ptr > (section_data_ptr + section_length)) {
- _dwarf_error(dbg, error, length_err_num);
- return (DW_DLV_ERROR);
- }
- }
- /* ASSERT: die_offset_in_cu == 0 */
- if(pubnames_like_ptr > pubnames_ptr_past_end_cu) {
- /* This is some kind of error. This simply cannot happen.
- The encoding is wrong or the length in the header
- for this cu's contribution is wrong. */
- _dwarf_error(dbg, error, length_err_num);
- return (DW_DLV_ERROR);
-
+
+
+ pubnames_context = (Dwarf_Global_Context)
+ _dwarf_get_alloc(dbg, context_code, 1);
+ if (pubnames_context == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ /* READ_AREA_LENGTH updates pubnames_like_ptr for consumed
+ bytes. */
+ READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
+ pubnames_like_ptr, local_length_size,
+ local_extension_size);
+ pubnames_context->pu_length_size = local_length_size;
+ pubnames_context->pu_extension_size = local_extension_size;
+ pubnames_context->pu_dbg = dbg;
+
+ pubnames_ptr_past_end_cu = pubnames_like_ptr + length;
+
+ READ_UNALIGNED(dbg, version, Dwarf_Half,
+ pubnames_like_ptr, sizeof(Dwarf_Half));
+ pubnames_like_ptr += sizeof(Dwarf_Half);
+ if (version != CURRENT_VERSION_STAMP) {
+ _dwarf_error(dbg, error, version_err_num);
+ return (DW_DLV_ERROR);
+ }
+
+ /* Offset of CU header in debug section. */
+ READ_UNALIGNED(dbg, pubnames_context->pu_offset_of_cu_header,
+ Dwarf_Off, pubnames_like_ptr,
+ pubnames_context->pu_length_size);
+ pubnames_like_ptr += pubnames_context->pu_length_size;
+
+ FIX_UP_OFFSET_IRIX_BUG(dbg,
+ pubnames_context->pu_offset_of_cu_header,
+ "pubnames cu header offset");
+
+
+ READ_UNALIGNED(dbg, pubnames_context->pu_info_length,
+ Dwarf_Unsigned, pubnames_like_ptr,
+ pubnames_context->pu_length_size);
+ pubnames_like_ptr += pubnames_context->pu_length_size;
+
+ if (pubnames_like_ptr > (section_data_ptr + section_length)) {
+ _dwarf_error(dbg, error, length_err_num);
+ return (DW_DLV_ERROR);
}
- /* If there is some kind of padding at the end of
- the section, as emitted by some compilers,
- skip over that padding and simply ignore the bytes
- thus passed-over. With most compilers,
- pubnames_like_ptr == pubnames_ptr_past_end_cu
- at this point */
- pubnames_like_ptr = pubnames_ptr_past_end_cu;
+
+ /* Read initial offset (of DIE within CU) of a pubname, final
+ entry is not a pair, just a zero offset. */
+ READ_UNALIGNED(dbg, die_offset_in_cu, Dwarf_Off,
+ pubnames_like_ptr,
+ pubnames_context->pu_length_size);
+ pubnames_like_ptr += pubnames_context->pu_length_size;
+ FIX_UP_OFFSET_IRIX_BUG(dbg,
+ die_offset_in_cu, "offset of die in cu");
+
+ /* Loop thru pairs. DIE off with CU followed by string. */
+ while (die_offset_in_cu != 0) {
+
+ /* Already read offset, pubnames_like_ptr now points to the
+ string. */
+ global =
+ (Dwarf_Global) _dwarf_get_alloc(dbg, global_code, 1);
+ if (global == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ global_count++;
+
+ global->gl_context = pubnames_context;
+
+ global->gl_named_die_offset_within_cu = die_offset_in_cu;
+
+ global->gl_name = pubnames_like_ptr;
+
+ pubnames_like_ptr = pubnames_like_ptr +
+ strlen((char *) pubnames_like_ptr) + 1;
+
+
+ /* finish off current entry chain */
+ curr_chain =
+ (Dwarf_Chain) _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_chain == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ /* Put current global on singly_linked list. */
+ curr_chain->ch_item = (Dwarf_Global) global;
+
+ if (head_chain == NULL)
+ head_chain = prev_chain = curr_chain;
+ else {
+ prev_chain->ch_next = curr_chain;
+ prev_chain = curr_chain;
+ }
+
+ /* read offset for the *next* entry */
+ READ_UNALIGNED(dbg, die_offset_in_cu, Dwarf_Off,
+ pubnames_like_ptr,
+ pubnames_context->pu_length_size);
+
+ pubnames_like_ptr += pubnames_context->pu_length_size;
+ FIX_UP_OFFSET_IRIX_BUG(dbg,
+ die_offset_in_cu,
+ "offset of next die in cu");
+
+ if (pubnames_like_ptr > (section_data_ptr + section_length)) {
+ _dwarf_error(dbg, error, length_err_num);
+ return (DW_DLV_ERROR);
+ }
+ }
+ /* ASSERT: die_offset_in_cu == 0 */
+ if (pubnames_like_ptr > pubnames_ptr_past_end_cu) {
+ /* This is some kind of error. This simply cannot happen.
+ The encoding is wrong or the length in the header for
+ this cu's contribution is wrong. */
+ _dwarf_error(dbg, error, length_err_num);
+ return (DW_DLV_ERROR);
+ }
+ /* If there is some kind of padding at the end of the section,
+ as emitted by some compilers, skip over that padding and
+ simply ignore the bytes thus passed-over. With most
+ compilers, pubnames_like_ptr == pubnames_ptr_past_end_cu at
+ this point */
+ pubnames_like_ptr = pubnames_ptr_past_end_cu;
} while (pubnames_like_ptr < (section_data_ptr + section_length));
/* Points to contiguous block of Dwarf_Global's. */
ret_globals = (Dwarf_Global *)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, global_count);
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, global_count);
if (ret_globals == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
/*
@@ -289,29 +376,30 @@ _dwarf_internal_get_pubnames_like_data(Dwarf_Debug dbg,
and deallocate the chain. */
curr_chain = head_chain;
for (i = 0; i < global_count; i++) {
- *(ret_globals + i) = curr_chain->ch_item;
- prev_chain = curr_chain;
- curr_chain = curr_chain->ch_next;
- dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
+ *(ret_globals + i) = curr_chain->ch_item;
+ prev_chain = curr_chain;
+ curr_chain = curr_chain->ch_next;
+ dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
}
*globals = ret_globals;
- *return_count = (global_count);
+ *return_count = (Dwarf_Signed) global_count;
return DW_DLV_OK;
}
+
/*
- Given a pubnames entry (or other like section entry)
- return thru the ret_name pointer
- a pointer to the string which is the entry name.
-
+ Given a pubnames entry (or other like section entry)
+ return thru the ret_name pointer
+ a pointer to the string which is the entry name.
+
*/
int
dwarf_globname(Dwarf_Global glob, char **ret_name, Dwarf_Error * error)
{
if (glob == NULL) {
- _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
+ return (DW_DLV_ERROR);
}
*ret_name = (char *) (glob->gl_name);
@@ -320,40 +408,40 @@ dwarf_globname(Dwarf_Global glob, char **ret_name, Dwarf_Error * error)
/*
- Given a pubnames entry (or other like section entry)
- return thru the ret_off pointer the
- global offset of the DIE for this entry.
- The global offset is the offset within the .debug_info
- section as a whole.
+ Given a pubnames entry (or other like section entry)
+ return thru the ret_off pointer the
+ global offset of the DIE for this entry.
+ The global offset is the offset within the .debug_info
+ section as a whole.
*/
int
dwarf_global_die_offset(Dwarf_Global global,
- Dwarf_Off * ret_off, Dwarf_Error * error)
+ Dwarf_Off * ret_off, Dwarf_Error * error)
{
if (global == NULL) {
- _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
+ return (DW_DLV_ERROR);
}
if (global->gl_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_GLOBAL_CONTEXT_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_GLOBAL_CONTEXT_NULL);
+ return (DW_DLV_ERROR);
}
*ret_off = (global->gl_named_die_offset_within_cu +
- global->gl_context->pu_offset_of_cu_header);
+ global->gl_context->pu_offset_of_cu_header);
return DW_DLV_OK;
}
/*
- Given a pubnames entry (or other like section entry)
- return thru the ret_off pointer the
- offset of the compilation unit header of the
+ Given a pubnames entry (or other like section entry)
+ return thru the ret_off pointer the
+ offset of the compilation unit header of the
compilation unit the global is part of.
- In early versions of this, the value returned was
+ In early versions of this, the value returned was
the offset of the compilation unit die, and
- other cu-local die offsets were faked so adding this to
+ other cu-local die offsets were faked so adding this to
such a cu-local offset got a true section offset.
Now things do as they say (adding *cu_header_offset to
a cu-local offset gets the section offset).
@@ -361,21 +449,21 @@ dwarf_global_die_offset(Dwarf_Global global,
*/
int
dwarf_global_cu_offset(Dwarf_Global global,
- Dwarf_Off * cu_header_offset,
- Dwarf_Error * error)
+ Dwarf_Off * cu_header_offset,
+ Dwarf_Error * error)
{
- Dwarf_Global_Context con;
+ Dwarf_Global_Context con = 0;
if (global == NULL) {
- _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
+ return (DW_DLV_ERROR);
}
con = global->gl_context;
if (con == NULL) {
- _dwarf_error(NULL, error, DW_DLE_GLOBAL_CONTEXT_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_GLOBAL_CONTEXT_NULL);
+ return (DW_DLV_ERROR);
}
/* In early libdwarf, this incorrectly returned the offset of the
@@ -388,77 +476,132 @@ dwarf_global_cu_offset(Dwarf_Global global,
/*
Give back the pubnames entry (or any other like section)
name, symbol DIE offset, and the cu-DIE offset.
+
+ Various errors are possible.
+
+ The string pointer returned thru ret_name is not
+ dwarf_get_alloc()ed, so no dwarf_dealloc()
+ DW_DLA_STRING should be applied to it.
+
*/
int
dwarf_global_name_offsets(Dwarf_Global global,
- char **ret_name,
- Dwarf_Off * die_offset,
- Dwarf_Off * cu_die_offset,
- Dwarf_Error * error)
+ char **ret_name,
+ Dwarf_Off * die_offset,
+ Dwarf_Off * cu_die_offset,
+ Dwarf_Error * error)
{
- Dwarf_Global_Context con;
- Dwarf_Debug dbg;
- Dwarf_Off off;
+ Dwarf_Global_Context con = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Off off = 0;
if (global == NULL) {
- _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_GLOBAL_NULL);
+ return (DW_DLV_ERROR);
}
con = global->gl_context;
if (con == NULL) {
- _dwarf_error(NULL, error, DW_DLE_GLOBAL_CONTEXT_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_GLOBAL_CONTEXT_NULL);
+ return (DW_DLV_ERROR);
}
off = con->pu_offset_of_cu_header;
- if (die_offset != NULL) {
- *die_offset = global->gl_named_die_offset_within_cu + off;
- }
-
+ /* The offset had better not be too close to the end. If it is,
+ _dwarf_length_of_cu_header() will step off the end and therefore
+ must not be used. 10 is a meaningless heuristic, but no CU
+ header is that small so it is safe. An erroneous offset is due
+ to a bug in the tool chain. A bug like this has been seen on
+ IRIX with MIPSpro 7.3.1.3 and an executable > 2GB in size and
+ with 2 million pubnames entries. */
+#define MIN_CU_HDR_SIZE 10
dbg = con->pu_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
+ }
+ if (dbg->de_debug_info.dss_size &&
+ ((off + MIN_CU_HDR_SIZE) >= dbg->de_debug_info.dss_size)) {
+ _dwarf_error(NULL, error, DW_DLE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
}
+#undef MIN_CU_HDR_SIZE
+ if (die_offset != NULL) {
+ *die_offset = global->gl_named_die_offset_within_cu + off;
+ }
+
+ *ret_name = (char *) global->gl_name;
if (cu_die_offset != NULL) {
- int res = _dwarf_load_debug_info(dbg,error);
- if(res != DW_DLV_OK) {
- return res;
- }
- *cu_die_offset = off + _dwarf_length_of_cu_header(dbg, off);
+ int res = _dwarf_load_debug_info(dbg, error);
+
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ /* The offset had better not be too close to the end. If it is,
+ _dwarf_length_of_cu_header() will step off the end and
+ therefore must not be used. 10 is a meaningless heuristic,
+ but no CU header is that small so it is safe. */
+ if ((off + 10) >= dbg->de_debug_info.dss_size) {
+ _dwarf_error(NULL, error, DW_DLE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+ *cu_die_offset = off + _dwarf_length_of_cu_header(dbg, off);
}
- *ret_name = (char *) global->gl_name;
return DW_DLV_OK;
}
/*
- We have the offset to a CU header.
- Return thru outFileOffset the offset of the CU DIE.
-
- New June, 2001.
- Used by SGI debuggers.
- No error is possible.
+ We have the offset to a CU header.
+ Return thru outFileOffset the offset of the CU DIE.
+
+ New June, 2001.
+ Used by SGI debuggers.
+ No error is possible.
+
+ See also dwarf_CU_dieoffset_given_die().
*/
/* ARGSUSED */
int
dwarf_get_cu_die_offset_given_cu_header_offset(Dwarf_Debug dbg,
- Dwarf_Off
- in_cu_header_offset,
- Dwarf_Off *
- out_cu_die_offset,
- Dwarf_Error * err)
+ Dwarf_Off in_cu_header_offset,
+ Dwarf_Off * out_cu_die_offset,
+ Dwarf_Error * err)
{
Dwarf_Off len =
- _dwarf_length_of_cu_header(dbg, in_cu_header_offset);
+ _dwarf_length_of_cu_header(dbg, in_cu_header_offset);
Dwarf_Off newoff = in_cu_header_offset + len;
*out_cu_die_offset = newoff;
return DW_DLV_OK;
}
+/* dwarf_CU_dieoffset_given_die returns
+ the global debug_info section offset of the CU die
+ that is the CU containing the given (passed-in) die.
+ This information makes it possible for a consumer to
+ find and print context information for any die.
+
+ Use dwarf_offdie() passing in the offset this returns
+ to get a die pointer to the CU die.
+ */
+int
+dwarf_CU_dieoffset_given_die(Dwarf_Die die,
+ Dwarf_Off* return_offset,
+ Dwarf_Error* error)
+{
+ Dwarf_Off dieoff = 0;
+ Dwarf_CU_Context cucontext = 0;
+
+ CHECK_DIE(die, DW_DLV_ERROR);
+ cucontext = die->di_cu_context;
+ dieoff = cucontext->cc_debug_info_offset;
+ /* The following call cannot fail, so no error check. */
+ dwarf_get_cu_die_offset_given_cu_header_offset(
+ cucontext->cc_dbg, dieoff, return_offset,error);
+ return DW_DLV_OK;
+}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_global.h b/usr/src/tools/ctf/dwarf/common/dwarf_global.h
index a0c7382bf8..c2bc2cdcc3 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_global.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_global.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004,2005 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -43,24 +43,25 @@ typedef struct Dwarf_Global_Context_s *Dwarf_Global_Context;
Essentially, they contain the context for a set of pubnames
belonging to a compilation-unit.
-
This is also used for the sgi-specific
weaknames, typenames, varnames, funcnames data:
the structs for those are incomplete and
instances of this are used instead.
+ Also used for DWARF3 .debug_pubtypes.
+
*/
struct Dwarf_Global_Context_s {
- /*
- Length in .debug_pubnames of a set of pubnames for a
+ /* Length in .debug_pubnames (etc) of a set of names for a
compilation-unit. Dwarf_Word pu_length; The value is not made
available outside libdwarf and not used inside, so no need to
record it. */
- /* for this context, size of a length. 4 or 8 */
+ /* For this context, size of a length. 4 or 8 */
unsigned char pu_length_size;
- /* for this CU, size of the extension 0 except for dwarf2 extension
+
+ /* For this CU, size of the extension 0 except for dwarf2 extension
64bit, in which case is 4. */
unsigned char pu_extension_size;
@@ -99,6 +100,25 @@ int _dwarf_internal_get_pubnames_like_data(Dwarf_Debug dbg,
Dwarf_Global ** globals,
Dwarf_Signed * return_count,
Dwarf_Error * error,
- int allocation_code,
+ int context_code,
+ int global_code,
int length_err_num,
int version_err_num);
+
+void
+_dwarf_internal_globals_dealloc( Dwarf_Debug dbg, Dwarf_Global *dwgl,
+ Dwarf_Signed count,
+ int context_code,
+ int global_code,
+ int list_code);
+
+
+#ifdef __sgi /* __sgi should only be defined for IRIX/MIPS. */
+void _dwarf_fix_up_offset_irix(Dwarf_Debug dbg,
+ Dwarf_Unsigned *varp,
+ char *caller_site_name);
+#define FIX_UP_OFFSET_IRIX_BUG(ldbg,var,name) _dwarf_fix_up_offset_irix(ldbg,&var,name)
+#else
+#define FIX_UP_OFFSET_IRIX_BUG(ldbg,var,name)
+#endif
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_harmless.c b/usr/src/tools/ctf/dwarf/common/dwarf_harmless.c
new file mode 100644
index 0000000000..16dbe4bc97
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_harmless.c
@@ -0,0 +1,226 @@
+/*
+
+ Copyright (C) 2010 David Anderson. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+*/
+
+/*
+ This implements _dwarf_insert_harmless_error
+ and related helper functions for recording
+ compiler errors that need not make the input
+ unusable.
+
+ Applications can use dwarf_get_harmless_error_list to
+ find (and possibly print) a warning about such errors.
+
+ The initial error reported here is
+ DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE which was a
+ bug in a specific compiler.
+
+ It is a fixed length circular list to constrain
+ the space used for errors.
+
+ The assumption is that these errors are exceedingly
+ rare, and indicate a broken compiler (the one that
+ produced the object getting the error(s)).
+
+ dh_maxcount is recorded internally as 1 greater than
+ requested. Hiding the fact we always leave one
+ slot unused (at least). So a user request for
+ N slots really gives the user N usable slots.
+*/
+
+
+
+#include "config.h"
+#include "dwarf_incl.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "dwarf_frame.h"
+#include "dwarf_harmless.h"
+
+
+/* The pointers returned here through errmsg_ptrs_array
+ become invalidated by any call to libdwarf. Any call.
+*/
+int dwarf_get_harmless_error_list(Dwarf_Debug dbg,
+ unsigned count,
+ const char ** errmsg_ptrs_array,
+ unsigned * errs_count)
+{
+ struct Dwarf_Harmless_s *dhp = &dbg->de_harmless_errors;
+ if(!dhp->dh_errors) {
+ dhp->dh_errs_count = 0;
+ return DW_DLV_NO_ENTRY;
+ }
+ if(dhp->dh_errs_count == 0) {
+ return DW_DLV_NO_ENTRY;
+ }
+ if(errs_count) {
+ *errs_count = dhp->dh_errs_count;
+ }
+ if(count) {
+ /* NULL terminate the array of pointers */
+ --count;
+ errmsg_ptrs_array[count] = 0;
+
+ if(dhp->dh_next_to_use != dhp->dh_first) {
+ unsigned i = 0;
+ unsigned cur = dhp->dh_first;
+ for(i = 0; cur != dhp->dh_next_to_use; ++i) {
+ if(i >= count ) {
+ /* All output spaces are used. */
+ break;
+ }
+ errmsg_ptrs_array[i] = dhp->dh_errors[cur];
+ cur = (cur +1) % dhp->dh_maxcount;
+ }
+ errmsg_ptrs_array[i] = 0;
+ }
+ }
+ dhp->dh_next_to_use = 0;
+ dhp->dh_first = 0;
+ dhp->dh_errs_count = 0;
+ return DW_DLV_OK;
+}
+
+/* strncpy does not null-terminate, this does it. */
+static void
+safe_strncpy(char *targ, char *src, unsigned spaceavail)
+{
+ unsigned goodcount = spaceavail-1;
+ if(spaceavail < 1) {
+ return; /* impossible */
+ }
+ strncpy(targ,src,goodcount);
+ targ[goodcount] = 0;
+}
+
+/* Insertion made public is only for testing the harmless error code,
+ it is not necessarily useful for libdwarf client code aside
+ from code testing libdwarf. */
+void dwarf_insert_harmless_error(Dwarf_Debug dbg,
+ char *newerror)
+{
+ struct Dwarf_Harmless_s *dhp = &dbg->de_harmless_errors;
+ unsigned next = 0;
+ unsigned cur = dhp->dh_next_to_use;
+ char *msgspace;
+ if(!dhp->dh_errors) {
+ dhp->dh_errs_count++;
+ return;
+ }
+ msgspace = dhp->dh_errors[cur];
+ safe_strncpy(msgspace, newerror,DW_HARMLESS_ERROR_MSG_STRING_SIZE);
+ next = (cur+1) % dhp->dh_maxcount;
+ dhp->dh_errs_count++;
+ dhp->dh_next_to_use = next;
+ if (dhp->dh_next_to_use == dhp->dh_first) {
+ /* Array is full set full invariant. */
+ dhp->dh_first = (dhp->dh_first+1) % dhp->dh_maxcount;
+ }
+}
+
+/* The size of the circular list of strings may be set
+ and reset as desired. Returns the previous size of
+ the list. If the list is shortened excess error entries
+ are simply dropped.
+ If the reallocation fails the list size is left unchanged.
+ Do not make this a long list!
+
+ Remember the maxcount we record is 1 > the user count,
+ so we adjust it so it looks like the user count.
+*/
+unsigned dwarf_set_harmless_error_list_size(Dwarf_Debug dbg,
+ unsigned maxcount )
+{
+ struct Dwarf_Harmless_s *dhp = &dbg->de_harmless_errors;
+ unsigned prevcount = dhp->dh_maxcount;
+ if(maxcount != 0) {
+ ++maxcount;
+ if(maxcount != dhp->dh_maxcount) {
+ /* Assign transfers 'ownership' of the malloc areas
+ to oldarray. */
+ struct Dwarf_Harmless_s oldarray = *dhp;
+ /* Do not double increment the max, the init() func
+ increments it too. */
+ dwarf_harmless_init(dhp,maxcount-1);
+ if(oldarray.dh_next_to_use != oldarray.dh_first) {
+ unsigned i = 0;
+ for(i = oldarray.dh_first; i != oldarray.dh_next_to_use;
+ i = (i+1)%oldarray.dh_maxcount) {
+ dwarf_insert_harmless_error(dbg,oldarray.dh_errors[i]);
+ }
+ if( oldarray.dh_errs_count > dhp->dh_errs_count) {
+ dhp->dh_errs_count = oldarray.dh_errs_count;
+ }
+ }
+ dwarf_harmless_cleanout(&oldarray);
+ }
+ }
+ return prevcount-1;
+}
+
+void
+dwarf_harmless_init(struct Dwarf_Harmless_s *dhp,unsigned size)
+{
+ unsigned i = 0;
+ memset(dhp,0,sizeof(*dhp));
+ dhp->dh_maxcount = size +1;
+ dhp->dh_errors = (char **)malloc(sizeof( char *) *dhp->dh_maxcount);
+ if (!dhp->dh_errors) {
+ dhp->dh_maxcount = 0;
+ return;
+ }
+
+ for(i = 0; i < dhp->dh_maxcount; ++i) {
+ char *newstr =
+ (char *)malloc(DW_HARMLESS_ERROR_MSG_STRING_SIZE);
+ dhp->dh_errors[i] = newstr;
+ if(!newstr) {
+ dhp->dh_maxcount = 0;
+ /* Let it leak, the leak is a constrained amount. */
+ dhp->dh_errors = 0;
+ return;
+ }
+ /* We make the string content well-defined by an initial
+ NUL byte, but this is not really necessary. */
+ newstr[0] = 0;
+ }
+}
+
+void
+dwarf_harmless_cleanout(struct Dwarf_Harmless_s *dhp)
+{
+ unsigned i = 0;
+ if(!dhp->dh_errors) {
+ return;
+ }
+ for(i = 0; i < dhp->dh_maxcount; ++i) {
+ free(dhp->dh_errors[i]);
+ }
+ free(dhp->dh_errors);
+ dhp->dh_errors = 0;
+ dhp->dh_maxcount = 0;
+}
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_harmless.h b/usr/src/tools/ctf/dwarf/common/dwarf_harmless.h
new file mode 100644
index 0000000000..3d4d910ce9
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_harmless.h
@@ -0,0 +1,31 @@
+/*
+
+ Copyright (C) 2010 David Anderson. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+*/
+
+
+
+void dwarf_harmless_init(struct Dwarf_Harmless_s *dhp,unsigned size);
+void dwarf_harmless_cleanout(struct Dwarf_Harmless_s *dhp);
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_incl.h b/usr/src/tools/ctf/dwarf/common/dwarf_incl.h
index 1b6dfc52a8..df2fbf334c 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_incl.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_incl.h
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000, 2002, 2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2008-2010 David Anderson. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -37,6 +38,14 @@
#ifndef DWARF_INCL_H
#define DWARF_INCL_H
+#if (!defined(HAVE_RAW_LIBELF_OK) && defined(HAVE_LIBELF_OFF64_OK) )
+/* At a certain point libelf.h requires _GNU_SOURCE.
+ here we assume the criteria in configure determine that
+ usefully.
+*/
+#define _GNU_SOURCE 1
+#endif
+
#include "libdwarfdefs.h"
#include <string.h>
@@ -46,8 +55,8 @@
#endif
#include <limits.h>
-#include <libdwarf.h>
#include <dwarf.h>
+#include <libdwarf.h>
#include "dwarf_base_types.h"
#include "dwarf_alloc.h"
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_init_finish.c b/usr/src/tools/ctf/dwarf/common/dwarf_init_finish.c
index 9b6321f4f3..1ab9d5fd38 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_init_finish.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_init_finish.c
@@ -1,6 +1,8 @@
/*
- Copyright (C) 2000,2002,2003 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2003,2004,2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2008-2010 Arxan Technologies, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +21,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -33,53 +35,24 @@
*/
-
-
#include "config.h"
#include "dwarf_incl.h"
-#ifdef HAVE_ELF_H
-#include <elf.h>
-#endif
-#ifdef __SGI_FAST_LIBELF
-#include <libelf_sgi.h>
-#else
-#ifdef HAVE_LIBELF_H
-#include <libelf.h>
-#else
-#ifdef HAVE_LIBELF_LIBELF_H
-#include <libelf/libelf.h>
-#endif
-#endif
-#endif /* !defined(__SGI_FAST_LIBELF) */
-
-#include <gelf.h>
-#include <strings.h>
-#include <sys/elf_386.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <string.h>
#include <stdlib.h>
-#include <malloc.h>
#include "dwarf_incl.h"
+#include "malloc_check.h"
#define DWARF_DBG_ERROR(dbg,errval,retval) \
_dwarf_error(dbg, error, errval); return(retval);
-#define FALSE 0
-#define TRUE 1
+#define FALSE 0
+#define TRUE 1
-#ifdef __SGI_FAST_LIBELF
-#else
-#ifdef HAVE_ELF64_GETEHDR
-extern Elf64_Ehdr *elf64_getehdr(Elf *);
-#endif
-#ifdef HAVE_ELF64_GETSHDR
-extern Elf64_Shdr *elf64_getshdr(Elf_Scn *);
-#endif
-#endif /* !defined(__SGI_FAST_LIBELF) */
/* This static is copied to the dbg on dbg init
@@ -90,7 +63,18 @@ extern Elf64_Shdr *elf64_getshdr(Elf_Scn *);
Value non-zero means do not do the check.
*/
static Dwarf_Small _dwarf_assume_string_bad;
+static Dwarf_Small _dwarf_apply_relocs = 1;
+/* Call this after calling dwarf_init but before doing anything else.
+ * It applies to all objects, not just the current object.
+ */
+int
+dwarf_set_reloc_application(int apply)
+{
+ int oldval = _dwarf_apply_relocs;
+ _dwarf_apply_relocs = apply;
+ return oldval;
+}
int
dwarf_set_stringcheck(int newval)
@@ -101,24 +85,46 @@ dwarf_set_stringcheck(int newval)
return oldval;
}
-#ifdef __SGI_FAST_LIBELF
-/*
- This function translates an elf_sgi error code into a libdwarf
- code.
- */
+/* Unifies the basic duplicate/empty testing and section
+ * data setting to one place. */
static int
-_dwarf_error_code_from_elf_sgi_error_code(enum elf_sgi_error_type val)
+get_basic_section_data(Dwarf_Debug dbg,
+ struct Dwarf_Section_s *secdata,
+ struct Dwarf_Obj_Access_Section_s *doas,
+ Dwarf_Half section_index,
+ Dwarf_Error* error,
+ int duperr, int emptyerr )
{
- switch (val) {
- case ELF_SGI_ERROR_OK: return DW_DLE_NE;
- case ELF_SGI_ERROR_BAD_ALLOC: return DW_DLE_MAF;
- case ELF_SGI_ERROR_FORMAT: return DW_DLE_MDE;
- case ELF_SGI_ERROR_ERRNO: return DW_DLE_IOF;
- case ELF_SGI_ERROR_TOO_BIG: return DW_DLE_MOF;
- default: return DW_DLE_LEE;
+ if (secdata->dss_index != 0) {
+ DWARF_DBG_ERROR(dbg, duperr, DW_DLV_ERROR);
}
+ if (doas->size == 0) {
+ if (emptyerr == 0 ) {
+ /* Allow empty section. */
+ return DW_DLV_OK;
+ }
+ /* Know no reason to allow section */
+ DWARF_DBG_ERROR(dbg, emptyerr, DW_DLV_ERROR);
+ }
+ secdata->dss_index = section_index;
+ secdata->dss_size = doas->size;
+ secdata->dss_addr = doas->addr;
+ secdata->dss_link = doas->link;
+ return DW_DLV_OK;
+}
+
+
+static void
+add_rela_data( struct Dwarf_Section_s *secdata,
+ struct Dwarf_Obj_Access_Section_s *doas,
+ Dwarf_Half section_index)
+{
+ secdata->dss_reloc_index = section_index;
+ secdata->dss_reloc_size = doas->size;
+ secdata->dss_reloc_addr = doas->addr;
+ secdata->dss_reloc_symtab = doas->link;
+ secdata->dss_reloc_link = doas->link;
}
-#endif
/*
Given an Elf ptr, set up dbg with pointers
@@ -138,672 +144,434 @@ _dwarf_error_code_from_elf_sgi_error_code(enum elf_sgi_error_type val)
DW_DLV_NO_ENTRY or DW_DLV_OK or DW_DLV_ERROR
*/
static int
-_dwarf_setup(Dwarf_Debug dbg, dwarf_elf_handle elf, Dwarf_Error * error)
+_dwarf_setup(Dwarf_Debug dbg, Dwarf_Error * error)
{
-#ifdef __SGI_FAST_LIBELF
- Elf64_Ehdr ehdr;
- Elf64_Shdr shdr;
- enum elf_sgi_error_type sres;
- unsigned char const* ehdr_ident;
-#else
- Elf32_Ehdr *ehdr32;
+ const char *scn_name = 0;
+ int foundDwarf = 0;
+ struct Dwarf_Obj_Access_Interface_s * obj = 0;
-#ifdef HAVE_ELF64_GETEHDR
- Elf64_Ehdr *ehdr64;
-#endif
- Elf32_Shdr *shdr32;
+ Dwarf_Endianness endianness;
-#ifdef HAVE_ELF64_GETSHDR
- Elf64_Shdr *shdr64;
-#endif
- Elf_Scn *scn;
- char *ehdr_ident;
-#endif /* !defined(__SGI_FAST_LIBELF) */
- Dwarf_Half machine;
- char *scn_name;
- int is_64bit;
- int foundDwarf;
-
- Dwarf_Unsigned section_size;
- Dwarf_Unsigned section_count;
- Dwarf_Half section_index;
+ Dwarf_Unsigned section_size = 0;
+ Dwarf_Unsigned section_count = 0;
+ Dwarf_Half section_index = 0;
+ Dwarf_Addr section_addr = 0;
foundDwarf = FALSE;
- dbg->de_elf = elf;
dbg->de_assume_string_in_bounds = _dwarf_assume_string_bad;
-#ifdef __SGI_FAST_LIBELF
- sres = elf_sgi_ehdr(elf, &ehdr);
- if (sres != ELF_SGI_ERROR_OK) {
- DWARF_DBG_ERROR(dbg, _dwarf_error_code_from_elf_sgi_error_code(sres),
- DW_DLV_ERROR);
- }
- ehdr_ident = ehdr.e_ident;
- section_count = ehdr.e_shnum;
- machine = ehdr.e_machine;
-#else
- if ((ehdr_ident = elf_getident(elf, NULL)) == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_GETIDENT_ERROR, DW_DLV_ERROR);
- }
-#endif
-
- is_64bit = (ehdr_ident[EI_CLASS] == ELFCLASS64);
-
-
dbg->de_same_endian = 1;
dbg->de_copy_word = memcpy;
+ obj = dbg->de_obj_file;
+ endianness = obj->methods->get_byte_order(obj->object);
#ifdef WORDS_BIGENDIAN
dbg->de_big_endian_object = 1;
- if (ehdr_ident[EI_DATA] == ELFDATA2LSB) {
- dbg->de_same_endian = 0;
- dbg->de_big_endian_object = 0;
- dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
+ if (endianness == DW_OBJECT_LSB ) {
+ dbg->de_same_endian = 0;
+ dbg->de_big_endian_object = 0;
+ dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
}
#else /* little endian */
dbg->de_big_endian_object = 0;
- if (ehdr_ident[EI_DATA] == ELFDATA2MSB) {
- dbg->de_same_endian = 0;
+ if (endianness == DW_OBJECT_MSB ) {
+ dbg->de_same_endian = 0;
dbg->de_big_endian_object = 1;
- dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
+ dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
}
#endif /* !WORDS_BIGENDIAN */
- /* The following de_length_size is Not Too Significant.
- Only used one calculation, and an appoximate one at that. */
- dbg->de_length_size = is_64bit ? 8 : 4;
- dbg->de_pointer_size = is_64bit ? 8 : 4;
+ /* The following de_length_size is Not Too Significant. Only used
+ one calculation, and an approximate one at that. */
+ dbg->de_length_size = obj->methods->get_length_size(obj->object);
+ dbg->de_pointer_size = obj->methods->get_pointer_size(obj->object);
-#ifdef __SGI_FAST_LIBELF
- /* We've already loaded the ELF header, so there's nothing to do here */
-#else
-#ifdef HAVE_ELF64_GETEHDR
- if (is_64bit) {
- ehdr64 = elf64_getehdr(elf);
- if (ehdr64 == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_GETEHDR_ERROR,
- DW_DLV_ERROR);
- }
- section_count = ehdr64->e_shnum;
- machine = ehdr64->e_machine;
- } else
-#endif
- {
- ehdr32 = elf32_getehdr(elf);
- if (ehdr32 == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_GETEHDR_ERROR,
- DW_DLV_ERROR);
- }
- section_count = ehdr32->e_shnum;
- machine = ehdr32->e_machine;
- }
-#endif /* !defined(__SGI_FAST_LIBELF) */
+ section_count = obj->methods->get_section_count(obj->object);
- dbg->de_nelfsecs = section_count;
+ /* We can skip index 0 when considering ELF files, but not other
+ object types. */
+ for (section_index = 0; section_index < section_count;
+ ++section_index) {
+
+ struct Dwarf_Obj_Access_Section_s doas;
+ int res = DW_DLV_ERROR;
+ int err;
- if (is_64bit && machine != EM_MIPS) {
- /* MIPS/IRIX makes pointer size and length size 8 for -64.
- Other platforms make length 4 always. */
- /* 4 here supports 32bit-offset dwarf2, as emitted by
- cygnus tools, and the dwarfv2.1 64bit extension setting. */
- dbg->de_length_size = 4;
- }
+ res = obj->methods->get_section_info(obj->object,
+ section_index,
+ &doas, &err);
+ if(res == DW_DLV_ERROR){
+ DWARF_DBG_ERROR(dbg, err, DW_DLV_ERROR);
+ }
+
+ section_addr = doas.addr;
+ section_size = doas.size;
+ scn_name = doas.name;
+
+ if (strncmp(scn_name, ".debug_", 7)
+ && strcmp(scn_name, ".eh_frame")
+ && strcmp(scn_name, ".symtab")
+ && strcmp(scn_name, ".strtab")
+ && strncmp(scn_name, ".rela.",6)) {
+ continue;
+ }
+ else if (strcmp(scn_name, ".debug_info") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_info, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_INFO_DUPLICATE,DW_DLE_DEBUG_INFO_NULL);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ foundDwarf = TRUE;
+ }
+ else if (strcmp(scn_name, ".debug_abbrev") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_abbrev, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_ABBREV_DUPLICATE,DW_DLE_DEBUG_ABBREV_NULL);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_aranges") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_aranges, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_ARANGES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
- /* We start at index 1 to skip the initial empty section. */
- for (section_index = 1; section_index < section_count; ++section_index) {
-
-#ifdef __SGI_FAST_LIBELF
- sres = elf_sgi_shdr(elf, section_index, &shdr);
- if (sres != ELF_SGI_ERROR_OK) {
- DWARF_DBG_ERROR(dbg, _dwarf_error_code_from_elf_sgi_error_code(sres),
- DW_DLV_ERROR);
- }
-
- section_size = shdr.sh_size;
-
- sres = elf_sgi_string(elf, ehdr.e_shstrndx, shdr.sh_name, (char const** )&scn_name);
- if (sres != ELF_SGI_ERROR_OK) {
- DWARF_DBG_ERROR(dbg, _dwarf_error_code_from_elf_sgi_error_code(sres),
- DW_DLV_ERROR);
- }
-#else /* !defined(__SGI_FAST_LIBELF) */
- scn = elf_getscn(elf, section_index);
- if (scn == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_MDE,
- DW_DLV_ERROR);
- }
-
-#ifdef HAVE_ELF64_GETSHDR
- if (is_64bit) {
- shdr64 = elf64_getshdr(scn);
- if (shdr64 == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_GETSHDR_ERROR,
- DW_DLV_ERROR);
- }
-
- section_size = shdr64->sh_size;
-
- if ((scn_name = elf_strptr(elf, ehdr64->e_shstrndx,
- shdr64->sh_name))
- == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_STRPTR_ERROR,
- DW_DLV_ERROR);
- }
- } else
-#endif /* HAVE_ELF64_GETSHDR */
- {
- if ((shdr32 = elf32_getshdr(scn)) == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_GETSHDR_ERROR, 0);
- }
-
- section_size = shdr32->sh_size;
-
- if ((scn_name = elf_strptr(elf, ehdr32->e_shstrndx,
- shdr32->sh_name)) == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_STRPTR_ERROR,
- DW_DLV_ERROR);
- }
- }
-#endif /* !defined(__SGI_FAST_LIBELF) */
-
- if (strncmp(scn_name, ".debug_", 7)
- && strcmp(scn_name, ".eh_frame")
- )
- continue;
-
- else if (strcmp(scn_name, ".debug_info") == 0) {
- if (dbg->de_debug_info != NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_DEBUG_INFO_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* Know no reason to allow empty debug_info section */
- DWARF_DBG_ERROR(dbg, DW_DLE_DEBUG_INFO_NULL,
- DW_DLV_ERROR);
- }
- foundDwarf = TRUE;
- dbg->de_debug_info_index = section_index;
- dbg->de_debug_info_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_abbrev") == 0) {
- if (dbg->de_debug_abbrev != NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_DEBUG_ABBREV_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* Know no reason to allow empty debug_abbrev section */
- DWARF_DBG_ERROR(dbg, DW_DLE_DEBUG_ABBREV_NULL,
- DW_DLV_ERROR);
- }
- dbg->de_debug_abbrev_index = section_index;
- dbg->de_debug_abbrev_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_aranges") == 0) {
- if (dbg->de_debug_aranges_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_ARANGES_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_aranges_index = section_index;
- dbg->de_debug_aranges_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_line") == 0) {
- if (dbg->de_debug_line_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_LINE_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_line_index = section_index;
- dbg->de_debug_line_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_frame") == 0) {
- if (dbg->de_debug_frame_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_FRAME_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_frame_index = section_index;
- dbg->de_debug_frame_size = section_size;
- foundDwarf = TRUE;
- } else if (strcmp(scn_name, ".eh_frame") == 0) {
- /* gnu egcs-1.1.2 data */
- if (dbg->de_debug_frame_eh_gnu_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_FRAME_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_frame_eh_gnu_index = section_index;
- dbg->de_debug_frame_size_eh_gnu = section_size;
- foundDwarf = TRUE;
- }
-
- else if (strcmp(scn_name, ".debug_loc") == 0) {
- if (dbg->de_debug_loc_index != 0) {
- DWARF_DBG_ERROR(dbg, DW_DLE_DEBUG_LOC_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_loc_index = section_index;
- dbg->de_debug_loc_size = section_size;
- }
-
-
- else if (strcmp(scn_name, ".debug_pubnames") == 0) {
- if (dbg->de_debug_pubnames_index != 0) {
- DWARF_DBG_ERROR(dbg, DW_DLE_DEBUG_PUBNAMES_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_pubnames_index = section_index;
- dbg->de_debug_pubnames_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_str") == 0) {
- if (dbg->de_debug_str_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_STR_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_str_index = section_index;
- dbg->de_debug_str_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_funcnames") == 0) {
- if (dbg->de_debug_funcnames_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_FUNCNAMES_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_funcnames_index = section_index;
- dbg->de_debug_funcnames_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_typenames") == 0) {
- if (dbg->de_debug_typenames_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_TYPENAMES_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_typenames_index = section_index;
- dbg->de_debug_typenames_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_varnames") == 0) {
- if (dbg->de_debug_varnames_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_VARNAMES_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_varnames_index = section_index;
- dbg->de_debug_varnames_size = section_size;
- }
-
- else if (strcmp(scn_name, ".debug_weaknames") == 0) {
- if (dbg->de_debug_weaknames_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_WEAKNAMES_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_weaknames_index = section_index;
- dbg->de_debug_weaknames_size = section_size;
- } else if (strcmp(scn_name, ".debug_macinfo") == 0) {
- if (dbg->de_debug_macinfo_index != 0) {
- DWARF_DBG_ERROR(dbg,
- DW_DLE_DEBUG_MACINFO_DUPLICATE,
- DW_DLV_ERROR);
- }
- if (section_size == 0) {
- /* a zero size section is just empty. Ok, no error */
- continue;
- }
- dbg->de_debug_macinfo_index = section_index;
- dbg->de_debug_macinfo_size = section_size;
- }
+ else if (strcmp(scn_name, ".debug_line") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_line, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_LINE_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_frame") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_frame, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_FRAME_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ foundDwarf = TRUE;
+ } else if (strcmp(scn_name, ".eh_frame") == 0) {
+ /* gnu egcs-1.1.2 data */
+ res = get_basic_section_data(dbg,&dbg->de_debug_frame_eh_gnu, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_FRAME_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ foundDwarf = TRUE;
+ }
+ else if (strcmp(scn_name, ".debug_loc") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_loc, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_LOC_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_pubnames") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_pubnames, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_PUBNAMES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+
+ else if (strcmp(scn_name, ".debug_str") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_str, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_STR_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_funcnames") == 0) {
+ /* SGI IRIX-only. */
+ res = get_basic_section_data(dbg,&dbg->de_debug_funcnames, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_FUNCNAMES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_typenames") == 0) {
+ /* SGI IRIX-only, created years before DWARF3. Content
+ essentially identical to .debug_pubtypes. */
+ res = get_basic_section_data(dbg,&dbg->de_debug_typenames, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_TYPENAMES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ } else if (strcmp(scn_name, ".debug_pubtypes") == 0) {
+ /* Section new in DWARF3. */
+ res = get_basic_section_data(dbg,&dbg->de_debug_pubtypes, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_PUBTYPES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_varnames") == 0) {
+ /* SGI IRIX-only. */
+ res = get_basic_section_data(dbg,&dbg->de_debug_varnames, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_VARNAMES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_weaknames") == 0) {
+ /* SGI IRIX-only. */
+ res = get_basic_section_data(dbg,&dbg->de_debug_weaknames, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_WEAKNAMES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ } else if (strcmp(scn_name, ".debug_macinfo") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_macinfo, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_MACINFO_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".debug_ranges") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_debug_ranges, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_RANGES_DUPLICATE,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ foundDwarf = TRUE;
+ }
+ else if (strcmp(scn_name, ".symtab") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_elf_symtab, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_SYMTAB_ERR,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strcmp(scn_name, ".strtab") == 0) {
+ res = get_basic_section_data(dbg,&dbg->de_elf_strtab, &doas,
+ section_index,error,
+ DW_DLE_DEBUG_STRTAB_ERR,0);
+ if(res != DW_DLV_OK) {
+ return res;
+ }
+ }
+ else if (strncmp(scn_name, ".rela.debug_",12) == 0) {
+ const char *rcn_name = scn_name + 5;
+ if (strcmp(rcn_name, ".debug_info") == 0) {
+ add_rela_data(&dbg->de_debug_info,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_abbrev") == 0) {
+ add_rela_data(&dbg->de_debug_abbrev,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_aranges") == 0) {
+ add_rela_data(&dbg->de_debug_aranges,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_line") == 0) {
+ add_rela_data(&dbg->de_debug_line,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_frame") == 0) {
+ add_rela_data(&dbg->de_debug_frame,&doas,section_index);
+ } else if (strcmp(rcn_name, ".eh_frame") == 0) {
+ add_rela_data(&dbg->de_debug_frame_eh_gnu,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_loc") == 0) {
+ add_rela_data(&dbg->de_debug_loc,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_pubnames") == 0) {
+ add_rela_data(&dbg->de_debug_pubnames,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_str") == 0) {
+ add_rela_data(&dbg->de_debug_str,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_funcnames") == 0) {
+ add_rela_data(&dbg->de_debug_funcnames,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_typenames") == 0) {
+ add_rela_data(&dbg->de_debug_typenames,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_pubtypes") == 0) {
+ add_rela_data(&dbg->de_debug_pubtypes,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_varnames") == 0) {
+ add_rela_data(&dbg->de_debug_varnames,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_weaknames") == 0) {
+ add_rela_data(&dbg->de_debug_weaknames,&doas,section_index);
+ } else if (strcmp(rcn_name, ".debug_macinfo") == 0) {
+ add_rela_data(&dbg->de_debug_macinfo,&doas,section_index);
+ }
+ }
}
if (foundDwarf) {
- return DW_DLV_OK;
+ return DW_DLV_OK;
}
-
- return (DW_DLV_NO_ENTRY);
+ return DW_DLV_NO_ENTRY;
}
/*
- The basic dwarf initializer function for consumers.
- Return NULL on error.
+ Use a Dwarf_Obj_Access_Interface to kick things off. All other
+ init routines eventually use this one.
+ The returned Dwarf_Debug contains a copy of *obj
+ the callers copy of *obj may be freed whenever the caller
+ wishes.
*/
-int
-dwarf_init(int fd,
- Dwarf_Unsigned access,
- Dwarf_Handler errhand,
- Dwarf_Ptr errarg, Dwarf_Debug * ret_dbg, Dwarf_Error * error)
+int
+dwarf_object_init(Dwarf_Obj_Access_Interface* obj, Dwarf_Handler errhand,
+ Dwarf_Ptr errarg, Dwarf_Debug* ret_dbg,
+ Dwarf_Error* error)
{
- Dwarf_Debug dbg;
- struct stat fstat_buf;
- dwarf_elf_handle elf;
- int res;
-#ifdef __SGI_FAST_LIBELF
- enum elf_sgi_error_type sres;
-#else
- Elf_Cmd what_kind_of_elf_read;
-#endif
+ Dwarf_Debug dbg = 0;
+ int setup_result = DW_DLV_OK;
dbg = _dwarf_get_debug();
if (dbg == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC, DW_DLV_ERROR);
+ DWARF_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC, DW_DLV_ERROR);
}
dbg->de_errhand = errhand;
dbg->de_errarg = errarg;
-
- if (fstat(fd, &fstat_buf) != 0) {
- DWARF_DBG_ERROR(dbg, DW_DLE_FSTAT_ERROR, DW_DLV_ERROR);
- }
- if (!S_ISREG(fstat_buf.st_mode)) {
- DWARF_DBG_ERROR(dbg, DW_DLE_FSTAT_MODE_ERROR, DW_DLV_ERROR);
- }
-
- if (access != DW_DLC_READ) {
- DWARF_DBG_ERROR(dbg, DW_DLE_INIT_ACCESS_WRONG, DW_DLV_ERROR);
- }
- dbg->de_access = access;
-
-#ifdef __SGI_FAST_LIBELF
- elf = elf_sgi_new();
- if (elf == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_MAF, DW_DLV_ERROR);
- }
-
- sres = elf_sgi_begin_fd(elf, fd, 0);
- if (sres != ELF_SGI_ERROR_OK) {
- DWARF_DBG_ERROR(dbg, _dwarf_error_code_from_elf_sgi_error_code(sres),
- DW_DLV_ERROR);
- }
+ dbg->de_frame_rule_initial_value = DW_FRAME_REG_INITIAL_VALUE;
+ dbg->de_frame_reg_rules_entry_count = DW_FRAME_LAST_REG_NUM;
+#ifdef HAVE_OLD_FRAME_CFA_COL
+ /* DW_FRAME_CFA_COL is really only suitable for old libdwarf frame
+ interfaces and its value of 0 there is only usable where
+ (as in MIPS) register 0 has no value other than 0 so
+ we can use the frame table column 0 for the CFA value
+ (and rely on client software to know when 'register 0'
+ is the cfa and when to just use a value 0 for register 0).
+ */
+ dbg->de_frame_cfa_col_number = DW_FRAME_CFA_COL;
#else
- elf_version(EV_CURRENT);
- /* changed to mmap request per bug 281217. 6/95 */
-#ifdef HAVE_ELF_C_READ_MMAP
- /* ELF_C_READ_MMAP is an SGI IRIX specific enum value from IRIX
- libelf.h meaning read but use mmap */
- what_kind_of_elf_read = ELF_C_READ_MMAP;
-#else
- /* ELF_C_READ is a portable value */
- what_kind_of_elf_read = ELF_C_READ;
+ dbg->de_frame_cfa_col_number = DW_FRAME_CFA_COL3;
#endif
-
- if ((elf = elf_begin(fd, what_kind_of_elf_read, 0)) == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_ELF_BEGIN_ERROR, DW_DLV_ERROR);
+ dbg->de_frame_same_value_number = DW_FRAME_SAME_VAL;
+ dbg->de_frame_undefined_value_number = DW_FRAME_UNDEFINED_VAL;
+
+ dbg->de_obj_file = obj;
+
+ setup_result = _dwarf_setup(dbg, error);
+ if (setup_result != DW_DLV_OK) {
+ /* The status we want to return here is of _dwarf_setup,
+ not of the _dwarf_free_all_of_one_debug(dbg) call.
+ So use a local status variable for the free. */
+ int freeresult = _dwarf_free_all_of_one_debug(dbg);
+ if (freeresult == DW_DLV_ERROR) {
+ DWARF_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC, DW_DLV_ERROR);
+ }
+ dwarf_malloc_check_complete("After Final free");
+ return setup_result;
}
-#endif /* !defined(__SGI_FAST_LIBELF) */
- dbg->de_elf_must_close = 1;
- if ((res = _dwarf_setup(dbg, elf, error)) != DW_DLV_OK) {
- free(dbg);
- return (res);
- }
+ dwarf_harmless_init(&dbg->de_harmless_errors,
+ DW_HARMLESS_ERROR_CIRCULAR_LIST_DEFAULT_SIZE);
- /* call cannot fail: no malloc or free involved */
+ /* This call cannot fail: allocates nothing, releases nothing */
_dwarf_setup_debug(dbg);
- *ret_dbg = dbg;
- return (DW_DLV_OK);
-}
-
-
-/*
- The alternate dwarf setup call for consumers
-*/
-int
-dwarf_elf_init(dwarf_elf_handle elf_file_pointer,
- Dwarf_Unsigned access,
- Dwarf_Handler errhand,
- Dwarf_Ptr errarg,
- Dwarf_Debug * ret_dbg, Dwarf_Error * error)
-{
- Dwarf_Debug dbg;
- int res;
-
- dbg = _dwarf_get_debug();
- if (dbg == NULL) {
- DWARF_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC, DW_DLV_ERROR);
- }
- dbg->de_errhand = errhand;
- dbg->de_errarg = errarg;
-
- if (access != DW_DLC_READ) {
- DWARF_DBG_ERROR(dbg, DW_DLE_INIT_ACCESS_WRONG, DW_DLV_ERROR);
- }
- dbg->de_access = access;
-
- dbg->de_elf_must_close = 0;
- if ((res = _dwarf_setup(dbg, elf_file_pointer, error)) != DW_DLV_OK) {
- free(dbg);
- return (res);
- }
-
- /* this call cannot fail: allocates nothing, releases nothing */
- _dwarf_setup_debug(dbg);
*ret_dbg = dbg;
- return (DW_DLV_OK);
+ return DW_DLV_OK;
}
/*
- Frees all memory that was not previously freed
- by dwarf_dealloc.
- Aside from certain categories.
-*/
-int
-dwarf_finish(Dwarf_Debug dbg, Dwarf_Error * error)
+ A finish routine that is completely unaware of ELF.
+
+ Frees all memory that was not previously freed by
+ dwarf_dealloc.
+ Aside frmo certain categories.
+ */
+int
+dwarf_object_finish(Dwarf_Debug dbg, Dwarf_Error * error)
{
int res = DW_DLV_OK;
- if(dbg->de_elf_must_close) {
- /* Must do this *before* _dwarf_free_all_of_one_debug()
- as that zeroes out dbg contents
- */
-#ifdef __SGI_FAST_LIBELF
- elf_sgi_free(dbg->de_elf);
-#else
- elf_end(dbg->de_elf);
-#endif
- }
res = _dwarf_free_all_of_one_debug(dbg);
if (res == DW_DLV_ERROR) {
- DWARF_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC, DW_DLV_ERROR);
- }
-
- return res;
-
-
-}
-
-
-/*
- This function returns the Elf * pointer
- associated with a Dwarf_Debug.
-*/
-int
-dwarf_get_elf(Dwarf_Debug dbg, dwarf_elf_handle* elf, Dwarf_Error * error)
-{
- if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ DWARF_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC, DW_DLV_ERROR);
}
+ dwarf_malloc_check_complete("After Final free");
- *elf = dbg->de_elf;
- return (DW_DLV_OK);
+ return res;
}
-#if defined(__i386)
-static Dwarf_Small *
-_dwarf_reloc_section(Dwarf_Debug dbg, Dwarf_Half scnidx, Elf_Data *scndata,
- Dwarf_Error *error)
-{
- Elf_Data *reldata;
- GElf_Rela rela;
- Elf_Scn *scn;
- GElf_Shdr shdr;
- char *newdata;
- int ridx, rscnidx;
-
- for (rscnidx = 0; rscnidx < dbg->de_nelfsecs; rscnidx++) {
- if ((scn = elf_getscn(dbg->de_elf, rscnidx)) == NULL ||
- gelf_getshdr(scn, &shdr) == NULL) {
- _dwarf_error(dbg, error, DW_DLE_LEE);
- return (NULL);
- }
-
- if (shdr.sh_type == SHT_RELA &&
- shdr.sh_info == scnidx)
- break;
- }
-
- if (rscnidx == dbg->de_nelfsecs)
- return (scndata->d_buf);
-
- if ((reldata = elf_getdata(scn, NULL)) == NULL) {
- _dwarf_error(dbg, error, DW_DLE_LEE);
- return (NULL);
- }
-
- if ((newdata = malloc(scndata->d_size)) == NULL) {
- _dwarf_error(dbg, error, DW_DLE_MAF);
- return (NULL);
- }
-
- bcopy(scndata->d_buf, newdata, scndata->d_size);
-
- for (ridx = 0; ridx < shdr.sh_size / sizeof (GElf_Rela); ridx++) {
- if (gelf_getrela(reldata, ridx, &rela) == NULL)
- continue;
-
- if (GELF_R_TYPE(rela.r_info) != R_386_32 &&
- GELF_R_TYPE(rela.r_info) != R_386_GOTPC) {
- fprintf(stderr, "achtung: tell simmonmt@eng about "
- "unexpected reloc type %d\n",
- GELF_R_TYPE(rela.r_info));
- continue;
- }
-
- *(uint32_t *)(newdata + rela.r_offset) = rela.r_addend;
- }
-
- return ((Dwarf_Small *)newdata);
-}
-#endif
/*
- Load the ELF section with the specified index and set the
- pointer pointed to by section_data to the memory where it
- was loaded.
+ Load the ELF section with the specified index and set the
+ pointer pointed to by section_data to the memory where it
+ was loaded.
*/
int
_dwarf_load_section(Dwarf_Debug dbg,
- Dwarf_Half section_index,
- Dwarf_Small ** section_data,
- Dwarf_Error * error)
+ struct Dwarf_Section_s *section,
+ Dwarf_Error * error)
{
- if (section_index == 0) {
- return DW_DLV_NO_ENTRY;
- }
+ int res = DW_DLV_ERROR;
+ int err = 0;
+ struct Dwarf_Obj_Access_Interface_s *o = 0;
/* check to see if the section is already loaded */
- if (*section_data != NULL) {
- return DW_DLV_OK;
+ if (section->dss_data != NULL) {
+ return DW_DLV_OK;
}
-
- {
-#ifdef __SGI_FAST_LIBELF
- enum elf_sgi_error_type sres;
-
- sres = elf_sgi_section(dbg->de_elf,
- section_index,
- (void**) section_data);
- if (sres != ELF_SGI_ERROR_OK) {
- DWARF_DBG_ERROR(dbg, _dwarf_error_code_from_elf_sgi_error_code(sres),
- DW_DLV_ERROR);
- }
-#else
- Elf_Scn* scn;
- Elf_Data* data;
-
- scn = elf_getscn(dbg->de_elf, section_index);
- if (scn == NULL) {
- _dwarf_error(dbg, error, DW_DLE_MDE);
- return DW_DLV_ERROR;
- }
-
- /*
- When using libelf as a producer, section data may be stored
- in multiple buffers. In libdwarf however, we only use libelf
- as a consumer (there is a dwarf producer API, but it doesn't
- use libelf). Because of this, this single call to elf_getdata
- will retrieve the entire section in a single contiguous buffer.
- */
- data = elf_getdata(scn, NULL);
- if (data == NULL) {
- _dwarf_error(dbg, error, DW_DLE_MDE);
- return DW_DLV_ERROR;
- }
-
-#if defined(__i386)
- if ((*section_data = _dwarf_reloc_section(dbg, section_index, data,
- error)) == NULL)
- return (DW_DLV_ERROR); /* _dwarf_error is set for us */
-#else
- *section_data = data->d_buf;
-#endif
-
-#endif /* !defined(__SGI_FAST_LIBELF) */
+ o = dbg->de_obj_file;
+ res = o->methods->load_section(
+ o->object, section->dss_index,
+ &section->dss_data, &err);
+ if(res == DW_DLV_ERROR){
+ DWARF_DBG_ERROR(dbg, err, DW_DLV_ERROR);
}
+ if(_dwarf_apply_relocs == 0) {
+ return res;
+ }
+ if(section->dss_reloc_size == 0) {
+ return res;
+ }
+ if(!o->methods->relocate_a_section) {
+ return res;
+ }
+ /*apply relocations */
+ res = o->methods->relocate_a_section( o->object, section->dss_index,
+ dbg, &err);
+ if(res == DW_DLV_ERROR) {
+ DWARF_DBG_ERROR(dbg, err, DW_DLV_ERROR);
+ }
+ return res;
+}
+/* This is a hack so clients can verify offsets.
+ Added April 2005 so that debugger can detect broken offsets
+ (which happened in an IRIX -64 executable larger than 2GB
+ using MIPSpro 7.3.1.3 compilers. A couple .debug_pubnames
+ offsets were wrong.).
+*/
+int
+dwarf_get_section_max_offsets(Dwarf_Debug dbg,
+ Dwarf_Unsigned * debug_info_size,
+ Dwarf_Unsigned * debug_abbrev_size,
+ Dwarf_Unsigned * debug_line_size,
+ Dwarf_Unsigned * debug_loc_size,
+ Dwarf_Unsigned * debug_aranges_size,
+ Dwarf_Unsigned * debug_macinfo_size,
+ Dwarf_Unsigned * debug_pubnames_size,
+ Dwarf_Unsigned * debug_str_size,
+ Dwarf_Unsigned * debug_frame_size,
+ Dwarf_Unsigned * debug_ranges_size,
+ Dwarf_Unsigned * debug_typenames_size)
+{
+ *debug_info_size = dbg->de_debug_info.dss_size;
+ *debug_abbrev_size = dbg->de_debug_abbrev.dss_size;
+ *debug_line_size = dbg->de_debug_line.dss_size;
+ *debug_loc_size = dbg->de_debug_loc.dss_size;
+ *debug_aranges_size = dbg->de_debug_aranges.dss_size;
+ *debug_macinfo_size = dbg->de_debug_macinfo.dss_size;
+ *debug_pubnames_size = dbg->de_debug_pubnames.dss_size;
+ *debug_str_size = dbg->de_debug_str.dss_size;
+ *debug_frame_size = dbg->de_debug_frame.dss_size;
+ *debug_ranges_size = dbg->de_debug_ranges.dss_size;
+ *debug_typenames_size = dbg->de_debug_typenames.dss_size;
return DW_DLV_OK;
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_leb.c b/usr/src/tools/ctf/dwarf/common/dwarf_leb.c
index f759642f56..b3b5d262f5 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_leb.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_leb.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -57,55 +57,55 @@ _dwarf_decode_u_leb128(Dwarf_Small * leb128, Dwarf_Word * leb128_length)
word_number is assumed big enough that the shift has a defined
result. */
if ((*leb128 & 0x80) == 0) {
- if (leb128_length != NULL)
- *leb128_length = 1;
- return (*leb128);
+ if (leb128_length != NULL)
+ *leb128_length = 1;
+ return (*leb128);
} else if ((*(leb128 + 1) & 0x80) == 0) {
- if (leb128_length != NULL)
- *leb128_length = 2;
+ if (leb128_length != NULL)
+ *leb128_length = 2;
- word_number = *leb128 & 0x7f;
- word_number |= (*(leb128 + 1) & 0x7f) << 7;
- return (word_number);
+ word_number = *leb128 & 0x7f;
+ word_number |= (*(leb128 + 1) & 0x7f) << 7;
+ return (word_number);
} else if ((*(leb128 + 2) & 0x80) == 0) {
- if (leb128_length != NULL)
- *leb128_length = 3;
+ if (leb128_length != NULL)
+ *leb128_length = 3;
- word_number = *leb128 & 0x7f;
- word_number |= (*(leb128 + 1) & 0x7f) << 7;
- word_number |= (*(leb128 + 2) & 0x7f) << 14;
- return (word_number);
+ word_number = *leb128 & 0x7f;
+ word_number |= (*(leb128 + 1) & 0x7f) << 7;
+ word_number |= (*(leb128 + 2) & 0x7f) << 14;
+ return (word_number);
} else if ((*(leb128 + 3) & 0x80) == 0) {
- if (leb128_length != NULL)
- *leb128_length = 4;
-
- word_number = *leb128 & 0x7f;
- word_number |= (*(leb128 + 1) & 0x7f) << 7;
- word_number |= (*(leb128 + 2) & 0x7f) << 14;
- word_number |= (*(leb128 + 3) & 0x7f) << 21;
- return (word_number);
+ if (leb128_length != NULL)
+ *leb128_length = 4;
+
+ word_number = *leb128 & 0x7f;
+ word_number |= (*(leb128 + 1) & 0x7f) << 7;
+ word_number |= (*(leb128 + 2) & 0x7f) << 14;
+ word_number |= (*(leb128 + 3) & 0x7f) << 21;
+ return (word_number);
}
- /* The rest handles long numbers Because the 'number' may be
- larger than the default int/unsigned, we must cast the 'byte'
- before the shift for the shift to have a defined result. */
+ /* The rest handles long numbers Because the 'number' may be larger
+ than the default int/unsigned, we must cast the 'byte' before
+ the shift for the shift to have a defined result. */
number = 0;
shift = 0;
byte_length = 1;
byte = *(leb128);
for (;;) {
- number |= ((Dwarf_Unsigned) (byte & 0x7f)) << shift;
-
- if ((byte & 0x80) == 0) {
- if (leb128_length != NULL)
- *leb128_length = byte_length;
- return (number);
- }
- shift += 7;
-
- byte_length++;
- ++leb128;
- byte = *leb128;
+ number |= ((Dwarf_Unsigned) (byte & 0x7f)) << shift;
+
+ if ((byte & 0x80) == 0) {
+ if (leb128_length != NULL)
+ *leb128_length = byte_length;
+ return (number);
+ }
+ shift += 7;
+
+ byte_length++;
+ ++leb128;
+ byte = *leb128;
}
}
@@ -127,23 +127,23 @@ _dwarf_decode_s_leb128(Dwarf_Small * leb128, Dwarf_Word * leb128_length)
turning the leb into a Dwarf_Signed. */
for (;;) {
- sign = byte & 0x40;
- number |= ((Dwarf_Signed) ((byte & 0x7f))) << shift;
- shift += 7;
-
- if ((byte & 0x80) == 0) {
- break;
- }
- ++leb128;
- byte = *leb128;
- byte_length++;
+ sign = byte & 0x40;
+ number |= ((Dwarf_Signed) ((byte & 0x7f))) << shift;
+ shift += 7;
+
+ if ((byte & 0x80) == 0) {
+ break;
+ }
+ ++leb128;
+ byte = *leb128;
+ byte_length++;
}
if ((shift < sizeof(Dwarf_Signed) * BITSINBYTE) && sign) {
- number |= -((Dwarf_Signed) 1 << shift);
+ number |= -((Dwarf_Signed) 1 << shift);
}
if (leb128_length != NULL)
- *leb128_length = byte_length;
+ *leb128_length = byte_length;
return (number);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_line.c b/usr/src/tools/ctf/dwarf/common/dwarf_line.c
index 6e5556ef85..e7e15e7c1a 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_line.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_line.c
@@ -1,6 +1,6 @@
/*
-
- Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,17 +32,62 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
#include "config.h"
#include "dwarf_incl.h"
#include <stdio.h>
+#include <stdlib.h>
#include "dwarf_line.h"
-#ifdef HAVE_ALLOCA_H
-#include <alloca.h>
+
+static int
+is_path_separator(Dwarf_Small s)
+{
+ if(s == '/') {
+ return 1;
+ }
+#ifdef HAVE_WINDOWS_PATH
+ if(s == '\\') {
+ return 1;
+ }
#endif
+ return 0;
+}
+/* Return 0 if false, 1 if true.
+ If HAVE_WINDOWS_PATH is defined we
+ attempt to handle windows full paths:
+ \\something or C:cwdpath.c
+*/
+static int
+file_name_is_full_path(Dwarf_Small *fname)
+{
+ Dwarf_Small firstc = *fname;
+ if(is_path_separator(firstc)) {
+ /* Full path. */
+ return 1;
+ }
+ if(!firstc) {
+ return 0;
+ }
+#ifdef HAVE_WINDOWS_PATH
+ if((firstc >= 'A' && firstc <= 'Z') ||
+ (firstc >= 'a' && firstc <= 'z')) {
+ Dwarf_Small secondc = fname[1];
+ if (secondc == ':') {
+ return 1;
+ }
+ }
+#endif
+ return 0;
+}
/*
Although source files is supposed to return the
@@ -53,27 +98,14 @@
*/
int
dwarf_srcfiles(Dwarf_Die die,
- char ***srcfiles,
- Dwarf_Signed * srcfilecount, Dwarf_Error * error)
+ char ***srcfiles,
+ Dwarf_Signed * srcfilecount, Dwarf_Error * error)
{
- /*
- This pointer is used to scan the portion of the .debug_line
+ /* This pointer is used to scan the portion of the .debug_line
section for the current cu. */
Dwarf_Small *line_ptr;
- /*
- This points to the last byte of the .debug_line portion for the
- current cu. */
- Dwarf_Small *line_ptr_end;
-
- /*
- This points to the end of the statement program prologue for the
- current cu, and serves to check that the prologue was correctly
- decoded. */
- Dwarf_Small *check_line_ptr;
-
- /*
- Pointer to a DW_AT_stmt_list attribute in case it exists in the
+ /* Pointer to a DW_AT_stmt_list attribute in case it exists in the
die. */
Dwarf_Attribute stmt_list_attr;
@@ -83,100 +115,69 @@ dwarf_srcfiles(Dwarf_Die die,
/* Pointer to name of compilation directory. */
Dwarf_Small *comp_dir = 0;
- /*
- Offset into .debug_line specified by a DW_AT_stmt_list
+ /* Offset into .debug_line specified by a DW_AT_stmt_list
attribute. */
Dwarf_Unsigned line_offset = 0;
- /* Some of the fields of the statement program header. */
- Dwarf_Unsigned total_length = 0;
- Dwarf_Half version = 0;
- Dwarf_Unsigned prologue_length = 0;
- Dwarf_Small special_opcode_base= 0;
-
- /* File name excluding included directory. */
- char *file_name = 0;
-
- /* Name of directory that the file is in. */
- char *dir_name = 0;
-
- /* Name concatenating both directory and file name. */
- char *full_name = 0;
-
- /*
- This is the directory index for the file. The compilation
- directory is 0, and the first included directory is 1. */
- Dwarf_Sword dir_index = 0;
-
- Dwarf_Small *include_directories = 0;
-
- Dwarf_Sword i = 0;
- Dwarf_Sword file_count = 0;
- Dwarf_Sword directories_count = 0;
-
- /*
- This is the current opcode read from the statement program. */
-
- Dwarf_Word leb128_length;
-
- /* This is the length of an extended opcode instr. */
-
- /*
- This points to a block of char *'s, each of which points to a
+ /* This points to a block of char *'s, each of which points to a
file name. */
char **ret_files = 0;
/* The Dwarf_Debug this die belongs to. */
- Dwarf_Debug dbg;
+ Dwarf_Debug dbg = 0;
/* Used to chain the file names. */
- Dwarf_Chain curr_chain, prev_chain, head_chain = NULL;
- int resattr;
- int lres;
-
- int local_length_size = 0;
- /*REFERENCED*/ /* Not used in this instance of the macro */
- int local_extension_size = 0;
-
- int res;
+ Dwarf_Chain curr_chain = NULL;
+ Dwarf_Chain prev_chain = NULL;
+ Dwarf_Chain head_chain = NULL;
+ Dwarf_Half attrform = 0;
+ int resattr = DW_DLV_ERROR;
+ int lres = DW_DLV_ERROR;
+ struct Line_Table_Prefix_s line_prefix;
+ int i = 0;
+ int res = DW_DLV_ERROR;
/* ***** BEGIN CODE ***** */
-
/* Reset error. */
if (error != NULL)
- *error = NULL;
+ *error = NULL;
- CHECK_DIE(die, DW_DLV_ERROR)
- dbg = die->di_cu_context->cc_dbg;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ dbg = die->di_cu_context->cc_dbg;
resattr = dwarf_attr(die, DW_AT_stmt_list, &stmt_list_attr, error);
if (resattr != DW_DLV_OK) {
- return resattr;
+ return resattr;
}
-
- if (dbg->de_debug_line_index == 0) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_LINE_NULL);
- return (DW_DLV_ERROR);
+
+ if (dbg->de_debug_line.dss_index == 0) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_LINE_NULL);
+ return (DW_DLV_ERROR);
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_line_index,
- &dbg->de_debug_line,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_line,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- lres = dwarf_formudata(stmt_list_attr, &line_offset, error);
+ lres = dwarf_whatform(stmt_list_attr,&attrform,error);
+ if (lres != DW_DLV_OK) {
+ return lres;
+ }
+ if (attrform != DW_FORM_data4 && attrform != DW_FORM_data8 &&
+ attrform != DW_FORM_sec_offset ) {
+ _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+ lres = dwarf_global_formref(stmt_list_attr, &line_offset, error);
if (lres != DW_DLV_OK) {
- return lres;
+ return lres;
}
- if (line_offset >= dbg->de_debug_line_size) {
- _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
- return (DW_DLV_ERROR);
+ if (line_offset >= dbg->de_debug_line.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
}
- line_ptr = dbg->de_debug_line + line_offset;
+ line_ptr = dbg->de_debug_line.dss_data + line_offset;
dwarf_dealloc(dbg, stmt_list_attr, DW_DLA_ATTR);
/*
@@ -184,920 +185,849 @@ dwarf_srcfiles(Dwarf_Die die,
the compilation directory. */
resattr = dwarf_attr(die, DW_AT_comp_dir, &comp_dir_attr, error);
if (resattr == DW_DLV_ERROR) {
- return resattr;
+ return resattr;
}
if (resattr == DW_DLV_OK) {
- int cres;
- char *cdir;
-
- cres = dwarf_formstring(comp_dir_attr, &cdir, error);
- if (cres == DW_DLV_ERROR) {
- return cres;
- } else if (cres == DW_DLV_OK) {
- comp_dir = (Dwarf_Small *) cdir;
- }
+ int cres = DW_DLV_ERROR;
+ char *cdir = 0;
+
+ cres = dwarf_formstring(comp_dir_attr, &cdir, error);
+ if (cres == DW_DLV_ERROR) {
+ return cres;
+ } else if (cres == DW_DLV_OK) {
+ comp_dir = (Dwarf_Small *) cdir;
+ }
}
if (resattr == DW_DLV_OK) {
- dwarf_dealloc(dbg, comp_dir_attr, DW_DLA_ATTR);
+ dwarf_dealloc(dbg, comp_dir_attr, DW_DLA_ATTR);
}
-
- /*
- Following is a straightforward decoding of the statement
- program prologue information. */
- /* READ_AREA_LENGTH updates line_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, total_length, Dwarf_Unsigned,
- line_ptr, local_length_size, local_extension_size);
-
-
- line_ptr_end = line_ptr + total_length;
- if (line_ptr_end > dbg->de_debug_line + dbg->de_debug_line_size) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_LINE_LENGTH_BAD);
- return (DW_DLV_ERROR);
+ dwarf_init_line_table_prefix(&line_prefix);
+ {
+ Dwarf_Small *line_ptr_out = 0;
+ int dres = dwarf_read_line_table_prefix(dbg,
+ line_ptr,
+ dbg->de_debug_line.dss_size,
+ &line_ptr_out,
+ &line_prefix,
+ NULL, NULL,error,
+ 0);
+
+ if (dres == DW_DLV_ERROR) {
+ dwarf_free_line_table_prefix(&line_prefix);
+ return dres;
+ }
+ if (dres == DW_DLV_NO_ENTRY) {
+ dwarf_free_line_table_prefix(&line_prefix);
+ return dres;
+ }
+
+ line_ptr = line_ptr_out;
}
- READ_UNALIGNED(dbg, version, Dwarf_Half,
- line_ptr, sizeof(Dwarf_Half));
- line_ptr += sizeof(Dwarf_Half);
- if (version != CURRENT_VERSION_STAMP) {
- _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
- return (DW_DLV_ERROR);
+ for (i = 0; i < line_prefix.pf_files_count; ++i) {
+ struct Line_Table_File_Entry_s *fe =
+ line_prefix.pf_line_table_file_entries + i;
+ char *file_name = (char *) fe->lte_filename;
+ char *dir_name = 0;
+ char *full_name = 0;
+ Dwarf_Unsigned dir_index = fe->lte_directory_index;
+
+ if (dir_index == 0) {
+ dir_name = (char *) comp_dir;
+ } else {
+ dir_name =
+ (char *) line_prefix.pf_include_directories[
+ fe->lte_directory_index - 1];
+ }
+
+ /* dir_name can be NULL if there is no DW_AT_comp_dir */
+ if(dir_name == 0 || file_name_is_full_path((unsigned char *)file_name)) {
+ /* This is safe because dwarf_dealloc is careful to not
+ dealloc strings which are part of the raw .debug_* data.
+ */
+ full_name = file_name;
+ } else {
+ full_name = (char *) _dwarf_get_alloc(dbg, DW_DLA_STRING,
+ strlen(dir_name) + 1 +
+ strlen(file_name) +
+ 1);
+ if (full_name == NULL) {
+ dwarf_free_line_table_prefix(&line_prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ /* This is not careful to avoid // in the output, Nothing
+ forces a 'canonical' name format here. Unclear if this
+ needs to be fixed. */
+ strcpy(full_name, dir_name);
+ strcat(full_name, "/");
+ strcat(full_name, file_name);
+ }
+ curr_chain =
+ (Dwarf_Chain) _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_chain == NULL) {
+ dwarf_free_line_table_prefix(&line_prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ curr_chain->ch_item = full_name;
+ if (head_chain == NULL)
+ head_chain = prev_chain = curr_chain;
+ else {
+ prev_chain->ch_next = curr_chain;
+ prev_chain = curr_chain;
+ }
}
- READ_UNALIGNED(dbg, prologue_length, Dwarf_Unsigned,
- line_ptr, local_length_size);
- line_ptr += local_length_size;
- check_line_ptr = line_ptr;
-
- /* Skip over minimum instruction length. */
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- /* Skip over default_is_stmt. */
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- /* Skip over line_base. */
- line_ptr = line_ptr + sizeof(Dwarf_Sbyte);
-
- /* Skip over line_ptr. */
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- special_opcode_base = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- for (i = 1; i < special_opcode_base; i++) {
- /* Skip over opcode lengths for standard opcodes. */
- line_ptr = line_ptr + sizeof(Dwarf_Small);
+ curr_chain = (Dwarf_Chain) _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (curr_chain == NULL) {
+ dwarf_free_line_table_prefix(&line_prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
- directories_count = 0;
- include_directories = line_ptr;
- while ((*(char *) line_ptr) != '\0') {
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
- directories_count++;
- }
- line_ptr++;
- file_count = 0;
- while (*(char *) line_ptr != '\0') {
- Dwarf_Unsigned utmp;
-
- file_name = (char *) line_ptr;
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
-
- DECODE_LEB128_UWORD(line_ptr, utmp)
- dir_index = (Dwarf_Sword) utmp;
- if (dir_index > directories_count) {
- _dwarf_error(dbg, error, DW_DLE_DIR_INDEX_BAD);
- return (DW_DLV_ERROR);
- }
-
- if (dir_index == 0)
- dir_name = (char *) comp_dir;
- else {
- dir_name = (char *) include_directories;
- for (i = 1; i < dir_index; i++)
- /* FIX: this is probably very slow: redoing strlen!
- davea 9/94 */
- dir_name = dir_name + strlen(dir_name) + 1;
- }
-
- /* dir_name can be NULL if there is no DW_AT_comp_dir */
- if ((*file_name) == '/' || dir_name == 0)
- full_name = file_name;
- else {
- full_name = (char *) _dwarf_get_alloc(dbg, DW_DLA_STRING,
- strlen(dir_name) + 1 +
- strlen(file_name) +
- 1);
- if (full_name == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- strcpy(full_name, dir_name);
- strcat(full_name, "/");
- strcat(full_name, file_name);
- }
-
- /* Skip over time of last modification. */
- _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- /* Skip over file length. */
- _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- curr_chain =
- (Dwarf_Chain) _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (curr_chain == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_chain->ch_item = full_name;
-
- if (head_chain == NULL)
- head_chain = prev_chain = curr_chain;
- else {
- prev_chain->ch_next = curr_chain;
- prev_chain = curr_chain;
- }
-
- file_count++;
- }
- line_ptr++;
- if (line_ptr != check_line_ptr + prologue_length) {
- _dwarf_error(dbg, error, DW_DLE_LINE_PROLOG_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
- if (file_count == 0) {
- *srcfiles = NULL;
- *srcfilecount = 0;
- return (DW_DLV_NO_ENTRY);
+ if (line_prefix.pf_files_count == 0) {
+ *srcfiles = NULL;
+ *srcfilecount = 0;
+ dwarf_free_line_table_prefix(&line_prefix);
+ return (DW_DLV_NO_ENTRY);
}
ret_files = (char **)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, file_count);
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, line_prefix.pf_files_count);
if (ret_files == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ dwarf_free_line_table_prefix(&line_prefix);
+ return (DW_DLV_ERROR);
}
curr_chain = head_chain;
- for (i = 0; i < file_count; i++) {
- *(ret_files + i) = curr_chain->ch_item;
- prev_chain = curr_chain;
- curr_chain = curr_chain->ch_next;
- dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
+ for (i = 0; i < line_prefix.pf_files_count; i++) {
+ *(ret_files + i) = curr_chain->ch_item;
+ prev_chain = curr_chain;
+ curr_chain = curr_chain->ch_next;
+ dwarf_dealloc(dbg, prev_chain, DW_DLA_CHAIN);
}
*srcfiles = ret_files;
- *srcfilecount = file_count;
+ *srcfilecount = line_prefix.pf_files_count;
+ dwarf_free_line_table_prefix(&line_prefix);
return (DW_DLV_OK);
}
/*
- return DW_DLV_OK if ok. else DW_DLV_NO_ENTRY or DW_DLV_ERROR
+ return DW_DLV_OK if ok. else DW_DLV_NO_ENTRY or DW_DLV_ERROR
*/
int
_dwarf_internal_srclines(Dwarf_Die die,
- Dwarf_Line ** linebuf,
- Dwarf_Signed * count,
- Dwarf_Bool doaddrs,
- Dwarf_Bool dolines, Dwarf_Error * error)
+ Dwarf_Line ** linebuf,
+ Dwarf_Signed * count,
+ Dwarf_Bool doaddrs,
+ Dwarf_Bool dolines, Dwarf_Error * error)
{
- /*
- This pointer is used to scan the portion of the .debug_line
+ /* This pointer is used to scan the portion of the .debug_line
section for the current cu. */
- Dwarf_Small *line_ptr;
+ Dwarf_Small *line_ptr = 0;
- /*
- This points to the last byte of the .debug_line portion for the
+ /* This points to the last byte of the .debug_line portion for the
current cu. */
- Dwarf_Small *line_ptr_end;
-
- /*
- This points to the end of the statement program prologue for the
- current cu, and serves to check that the prologue was correctly
- decoded. */
- Dwarf_Small *check_line_ptr;
+ Dwarf_Small *line_ptr_end = 0;
- /*
- Pointer to a DW_AT_stmt_list attribute in case it exists in the
+ /* Pointer to a DW_AT_stmt_list attribute in case it exists in the
die. */
- Dwarf_Attribute stmt_list_attr;
+ Dwarf_Attribute stmt_list_attr = 0;
/* Pointer to DW_AT_comp_dir attribute in die. */
- Dwarf_Attribute comp_dir_attr;
+ Dwarf_Attribute comp_dir_attr = 0;
/* Pointer to name of compilation directory. */
Dwarf_Small *comp_dir = NULL;
- /*
- Offset into .debug_line specified by a DW_AT_stmt_list
+ /* Offset into .debug_line specified by a DW_AT_stmt_list
attribute. */
- Dwarf_Unsigned line_offset;
-
- /* These are the fields of the statement program header. */
- Dwarf_Unsigned total_length;
- Dwarf_Half version;
- Dwarf_Unsigned prologue_length;
- Dwarf_Small minimum_instruction_length;
- Dwarf_Small default_is_stmt;
- Dwarf_Sbyte line_base;
- Dwarf_Small line_range;
- Dwarf_Small special_opcode_base;
-
- Dwarf_Small *opcode_length;
- Dwarf_Small *include_directories;
- Dwarf_File_Entry file_entries;
+ Dwarf_Unsigned line_offset = 0;
- /* These are the state machine state variables. */
- Dwarf_Addr address;
- Dwarf_Word file;
- Dwarf_Word line;
- Dwarf_Word column;
- Dwarf_Bool is_stmt;
- Dwarf_Bool basic_block;
- Dwarf_Bool end_sequence;
+ Dwarf_File_Entry file_entries = 0;
- /*
- These pointers are used to build the list of files names by
- this cu. cur_file_entry points to the file name being added,
- and prev_file_entry to the previous one. */
+ /* These are the state machine state variables. */
+ Dwarf_Addr address = 0;
+ Dwarf_Word file = 1;
+ Dwarf_Word line = 1;
+ Dwarf_Word column = 0;
+
+ /* Phony init. See below for true initialization. */
+ Dwarf_Bool is_stmt = false;
+
+ Dwarf_Bool basic_block = false;
+ Dwarf_Bool prologue_end = false;
+ Dwarf_Bool epilogue_begin = false;
+ Dwarf_Small isa = 0;
+ Dwarf_Bool end_sequence = false;
+
+ /* These pointers are used to build the list of files names by this
+ cu. cur_file_entry points to the file name being added, and
+ prev_file_entry to the previous one. */
Dwarf_File_Entry cur_file_entry, prev_file_entry;
- Dwarf_Sword i, file_entry_count, include_directories_count;
+ Dwarf_Sword i = 0;
+ Dwarf_Sword file_entry_count = 0;
- /*
- This is the current opcode read from the statement program. */
- Dwarf_Small opcode;
+ /* This is the current opcode read from the statement program. */
+ Dwarf_Small opcode = 0;
- /*
- Pointer to a Dwarf_Line_Context_s structure that contains the
+ /* Pointer to a Dwarf_Line_Context_s structure that contains the
context such as file names and include directories for the set
of lines being generated. */
- Dwarf_Line_Context line_context;
+ Dwarf_Line_Context line_context = 0;
- /*
- This is a pointer to the current line being added to the line
+ /* This is a pointer to the current line being added to the line
matrix. */
- Dwarf_Line curr_line;
+ Dwarf_Line curr_line = 0;
- /*
- These variables are used to decode leb128 numbers. Leb128_num
+ /* These variables are used to decode leb128 numbers. Leb128_num
holds the decoded number, and leb128_length is its length in
bytes. */
- Dwarf_Word leb128_num;
- Dwarf_Word leb128_length;
- Dwarf_Sword advance_line;
+ Dwarf_Word leb128_num = 0;
+ Dwarf_Word leb128_length = 0;
+ Dwarf_Sword advance_line = 0;
- /*
- This is the operand of the latest fixed_advance_pc extended
+ /* This is the operand of the latest fixed_advance_pc extended
opcode. */
- Dwarf_Half fixed_advance_pc;
+ Dwarf_Half fixed_advance_pc = 0;
- /*
- Counts the number of lines in the line matrix. */
+ /* Counts the number of lines in the line matrix. */
Dwarf_Sword line_count = 0;
/* This is the length of an extended opcode instr. */
- Dwarf_Word instr_length;
- Dwarf_Small ext_opcode;
+ Dwarf_Word instr_length = 0;
+ Dwarf_Small ext_opcode = 0;
+ struct Line_Table_Prefix_s prefix;
- /*
- Used to chain together pointers to line table entries that are
+ /* Used to chain together pointers to line table entries that are
later used to create a block of Dwarf_Line entries. */
- Dwarf_Chain chain_line, head_chain = NULL, curr_chain;
+ Dwarf_Chain chain_line = NULL;
+ Dwarf_Chain head_chain = NULL;
+ Dwarf_Chain curr_chain = NULL;
- /*
- This points to a block of Dwarf_Lines, a pointer to which is
+ /* This points to a block of Dwarf_Lines, a pointer to which is
returned in linebuf. */
- Dwarf_Line *block_line;
+ Dwarf_Line *block_line = 0;
/* The Dwarf_Debug this die belongs to. */
- Dwarf_Debug dbg;
- int resattr;
- int lres;
- int local_length_size = 0;
- /*REFERENCED*/ /* Not used in this instance of the macro */
- int local_extension_size = 0;
+ Dwarf_Debug dbg = 0;
+ int resattr = DW_DLV_ERROR;
+ int lres = DW_DLV_ERROR;
+ Dwarf_Half address_size = 0;
- int res;
+ int res = DW_DLV_ERROR;
/* ***** BEGIN CODE ***** */
-
if (error != NULL)
- *error = NULL;
+ *error = NULL;
- CHECK_DIE(die, DW_DLV_ERROR)
- dbg = die->di_cu_context->cc_dbg;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ dbg = die->di_cu_context->cc_dbg;
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_line_index,
- &dbg->de_debug_line,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_line,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
-
+ address_size = _dwarf_get_address_size(dbg, die);
resattr = dwarf_attr(die, DW_AT_stmt_list, &stmt_list_attr, error);
if (resattr != DW_DLV_OK) {
- return resattr;
+ return resattr;
}
-
-
lres = dwarf_formudata(stmt_list_attr, &line_offset, error);
if (lres != DW_DLV_OK) {
- return lres;
+ return lres;
}
- if (line_offset >= dbg->de_debug_line_size) {
- _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
- return (DW_DLV_ERROR);
+ if (line_offset >= dbg->de_debug_line.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
}
- line_ptr = dbg->de_debug_line + line_offset;
+ line_ptr = dbg->de_debug_line.dss_data + line_offset;
dwarf_dealloc(dbg, stmt_list_attr, DW_DLA_ATTR);
- /*
- If die has DW_AT_comp_dir attribute, get the string that names
+ /* If die has DW_AT_comp_dir attribute, get the string that names
the compilation directory. */
resattr = dwarf_attr(die, DW_AT_comp_dir, &comp_dir_attr, error);
if (resattr == DW_DLV_ERROR) {
- return resattr;
+ return resattr;
}
if (resattr == DW_DLV_OK) {
- int cres;
- char *cdir;
-
- cres = dwarf_formstring(comp_dir_attr, &cdir, error);
- if (cres == DW_DLV_ERROR) {
- return cres;
- } else if (cres == DW_DLV_OK) {
- comp_dir = (Dwarf_Small *) cdir;
- }
+ int cres = DW_DLV_ERROR;
+ char *cdir = 0;
+
+ cres = dwarf_formstring(comp_dir_attr, &cdir, error);
+ if (cres == DW_DLV_ERROR) {
+ return cres;
+ } else if (cres == DW_DLV_OK) {
+ comp_dir = (Dwarf_Small *) cdir;
+ }
}
if (resattr == DW_DLV_OK) {
- dwarf_dealloc(dbg, comp_dir_attr, DW_DLA_ATTR);
- }
-
- /*
- Following is a straightforward decoding of the statement
- program prologue information. */
- /* READ_AREA_LENGTH updates line_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, total_length, Dwarf_Unsigned,
- line_ptr, local_length_size, local_extension_size);
-
- line_ptr_end = line_ptr + total_length;
- if (line_ptr_end > dbg->de_debug_line + dbg->de_debug_line_size) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_LINE_LENGTH_BAD);
- return (DW_DLV_ERROR);
+ dwarf_dealloc(dbg, comp_dir_attr, DW_DLA_ATTR);
}
-
- READ_UNALIGNED(dbg, version, Dwarf_Half,
- line_ptr, sizeof(Dwarf_Half));
- line_ptr += sizeof(Dwarf_Half);
- if (version != CURRENT_VERSION_STAMP) {
- _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
- return (DW_DLV_ERROR);
+ dwarf_init_line_table_prefix(&prefix);
+
+ {
+ Dwarf_Small *newlinep = 0;
+ int res = dwarf_read_line_table_prefix(dbg,
+ line_ptr,
+ dbg->de_debug_line.dss_size,
+ &newlinep,
+ &prefix,
+ NULL,NULL,
+ error,
+ 0);
+
+ if (res == DW_DLV_ERROR) {
+ dwarf_free_line_table_prefix(&prefix);
+ return res;
+ }
+ if (res == DW_DLV_NO_ENTRY) {
+ dwarf_free_line_table_prefix(&prefix);
+ return res;
+ }
+ line_ptr_end = prefix.pf_line_ptr_end;
+ line_ptr = newlinep;
}
- READ_UNALIGNED(dbg, prologue_length, Dwarf_Unsigned,
- line_ptr, local_length_size);
- line_ptr += local_length_size;
- check_line_ptr = line_ptr;
-
- minimum_instruction_length = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- default_is_stmt = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- line_base = *(Dwarf_Sbyte *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Sbyte);
- line_range = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- special_opcode_base = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- opcode_length = (Dwarf_Small *)
- alloca(sizeof(Dwarf_Small) * special_opcode_base);
- for (i = 1; i < special_opcode_base; i++) {
- opcode_length[i] = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
+ /* Set up context structure for this set of lines. */
+ line_context = (Dwarf_Line_Context)
+ _dwarf_get_alloc(dbg, DW_DLA_LINE_CONTEXT, 1);
+ if (line_context == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
- include_directories_count = 0;
- include_directories = line_ptr;
- while ((*(char *) line_ptr) != '\0') {
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
- include_directories_count++;
- }
- line_ptr++;
-
- file_entry_count = 0;
+ /* Fill out a Dwarf_File_Entry list as we use that to implement the
+ define_file operation. */
file_entries = prev_file_entry = NULL;
- while (*(char *) line_ptr != '\0') {
-
- cur_file_entry = (Dwarf_File_Entry)
- _dwarf_get_alloc(dbg, DW_DLA_FILE_ENTRY, 1);
- if (cur_file_entry == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- cur_file_entry->fi_file_name = (Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
-
- cur_file_entry->fi_dir_index =
- (Dwarf_Sword) _dwarf_decode_u_leb128(line_ptr,
- &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- cur_file_entry->fi_time_last_mod =
- _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- cur_file_entry->fi_file_length =
- _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- if (file_entries == NULL)
- file_entries = cur_file_entry;
- else
- prev_file_entry->fi_next = cur_file_entry;
- prev_file_entry = cur_file_entry;
-
- file_entry_count++;
+ for (i = 0; i < prefix.pf_files_count; ++i) {
+ struct Line_Table_File_Entry_s *pfxfile =
+ prefix.pf_line_table_file_entries + i;
+
+ cur_file_entry = (Dwarf_File_Entry)
+ _dwarf_get_alloc(dbg, DW_DLA_FILE_ENTRY, 1);
+ if (cur_file_entry == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ cur_file_entry->fi_file_name = pfxfile->lte_filename;
+ cur_file_entry->fi_dir_index = pfxfile->lte_directory_index;
+ cur_file_entry->fi_time_last_mod =
+ pfxfile->lte_last_modification_time;
+
+ cur_file_entry->fi_file_length = pfxfile->lte_length_of_file;
+
+ if (file_entries == NULL)
+ file_entries = cur_file_entry;
+ else
+ prev_file_entry->fi_next = cur_file_entry;
+ prev_file_entry = cur_file_entry;
+
+ file_entry_count++;
}
- line_ptr++;
- if (line_ptr != check_line_ptr + prologue_length) {
- _dwarf_error(dbg, error, DW_DLE_LINE_PROLOG_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
- /* Set up context structure for this set of lines. */
- line_context = (Dwarf_Line_Context)
- _dwarf_get_alloc(dbg, DW_DLA_LINE_CONTEXT, 1);
- if (line_context == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
+ /* Initialize the one state machine variable that depends on the
+ prefix. */
+ is_stmt = prefix.pf_default_is_stmt;
- /* Initialize the state machine. */
- address = 0;
- file = 1;
- line = 1;
- column = 0;
- is_stmt = default_is_stmt;
- basic_block = false;
- end_sequence = false;
/* Start of statement program. */
while (line_ptr < line_ptr_end) {
- int type;
-
- opcode = *(Dwarf_Small *) line_ptr;
- line_ptr++;
-
-
- /* 'type' is the output */
- WHAT_IS_OPCODE(type, opcode, special_opcode_base,
- opcode_length, line_ptr);
-
-
-
- if (type == LOP_DISCARD) {
- /* do nothing, necessary ops done */
- } else if (type == LOP_SPECIAL) {
- /* This op code is a special op in the object, no matter
- that it might fall into the standard op range in this
- compile Thatis, these are special opcodes between
- special_opcode_base and MAX_LINE_OP_CODE. (including
- special_opcode_base and MAX_LINE_OP_CODE) */
-
- opcode = opcode - special_opcode_base;
- address = address + minimum_instruction_length *
- (opcode / line_range);
- line = line + line_base + opcode % line_range;
-
- if (dolines) {
- curr_line =
- (Dwarf_Line) _dwarf_get_alloc(dbg, DW_DLA_LINE, 1);
- if (curr_line == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_line->li_address = address;
- curr_line->li_addr_line.li_l_data.li_file =
- (Dwarf_Sword) file;
- curr_line->li_addr_line.li_l_data.li_line =
- (Dwarf_Sword) line;
- curr_line->li_addr_line.li_l_data.li_column =
- (Dwarf_Half) column;
- curr_line->li_addr_line.li_l_data.li_is_stmt = is_stmt;
- curr_line->li_addr_line.li_l_data.li_basic_block =
- basic_block;
- curr_line->li_addr_line.li_l_data.li_end_sequence =
- end_sequence;
- curr_line->li_context = line_context;
- line_count++;
-
- chain_line = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (chain_line == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- chain_line->ch_item = curr_line;
-
- if (head_chain == NULL)
- head_chain = curr_chain = chain_line;
- else {
- curr_chain->ch_next = chain_line;
- curr_chain = chain_line;
- }
- }
-
- basic_block = false;
- } else if (type == LOP_STANDARD) {
- switch (opcode) {
-
- case DW_LNS_copy:{
- if (opcode_length[DW_LNS_copy] != 0) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- if (dolines) {
-
- curr_line =
- (Dwarf_Line) _dwarf_get_alloc(dbg,
- DW_DLA_LINE,
- 1);
- if (curr_line == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_line->li_address = address;
- curr_line->li_addr_line.li_l_data.li_file =
- (Dwarf_Sword) file;
- curr_line->li_addr_line.li_l_data.li_line =
- (Dwarf_Sword) line;
- curr_line->li_addr_line.li_l_data.li_column =
- (Dwarf_Half) column;
- curr_line->li_addr_line.li_l_data.li_is_stmt =
- is_stmt;
- curr_line->li_addr_line.li_l_data.
- li_basic_block = basic_block;
- curr_line->li_addr_line.li_l_data.
- li_end_sequence = end_sequence;
- curr_line->li_context = line_context;
- line_count++;
-
- chain_line = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (chain_line == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- chain_line->ch_item = curr_line;
- if (head_chain == NULL)
- head_chain = curr_chain = chain_line;
- else {
- curr_chain->ch_next = chain_line;
- curr_chain = chain_line;
- }
- }
-
- basic_block = false;
- break;
- }
-
- case DW_LNS_advance_pc:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_advance_pc] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- leb128_num = (Dwarf_Word) utmp2;
- address =
- address +
- minimum_instruction_length * leb128_num;
- break;
- }
-
- case DW_LNS_advance_line:{
- Dwarf_Signed stmp;
-
- if (opcode_length[DW_LNS_advance_line] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_SWORD(line_ptr, stmp)
- advance_line = (Dwarf_Sword) stmp;
- line = line + advance_line;
- break;
- }
-
- case DW_LNS_set_file:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_set_file] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- file = (Dwarf_Word) utmp2;
- break;
- }
-
- case DW_LNS_set_column:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_set_column] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- column = (Dwarf_Word) utmp2;
- break;
- }
-
- case DW_LNS_negate_stmt:{
- if (opcode_length[DW_LNS_negate_stmt] != 0) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- is_stmt = !is_stmt;
- break;
- }
-
- case DW_LNS_set_basic_block:{
- if (opcode_length[DW_LNS_set_basic_block] != 0) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- basic_block = true;
- break;
- }
-
- case DW_LNS_const_add_pc:{
- opcode = MAX_LINE_OP_CODE - special_opcode_base;
- address = address + minimum_instruction_length *
- (opcode / line_range);
-
- break;
- }
-
- case DW_LNS_fixed_advance_pc:{
- if (opcode_length[DW_LNS_fixed_advance_pc] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- READ_UNALIGNED(dbg, fixed_advance_pc, Dwarf_Half,
- line_ptr, sizeof(Dwarf_Half));
- line_ptr += sizeof(Dwarf_Half);
- address = address + fixed_advance_pc;
- break;
- }
- }
-
- } else if (type == LOP_EXTENDED) {
- Dwarf_Unsigned utmp3;
-
- DECODE_LEB128_UWORD(line_ptr, utmp3)
- instr_length = (Dwarf_Word) utmp3;
- /* Dwarf_Small is a ubyte and the extended opcode
- is a ubyte, though not stated as clearly in
- the 2.0.0 spec as one might hope.
- */
- ext_opcode = *(Dwarf_Small *) line_ptr;
- line_ptr++;
- switch (ext_opcode) {
-
- case DW_LNE_end_sequence:{
- end_sequence = true;
-
- if (dolines) {
- curr_line = (Dwarf_Line)
- _dwarf_get_alloc(dbg, DW_DLA_LINE, 1);
- if (curr_line == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_line->li_address = address;
- curr_line->li_addr_line.li_l_data.li_file =
- (Dwarf_Sword) file;
- curr_line->li_addr_line.li_l_data.li_line =
- (Dwarf_Sword) line;
- curr_line->li_addr_line.li_l_data.li_column =
- (Dwarf_Half) column;
- curr_line->li_addr_line.li_l_data.li_is_stmt =
- default_is_stmt;
- curr_line->li_addr_line.li_l_data.
- li_basic_block = basic_block;
- curr_line->li_addr_line.li_l_data.
- li_end_sequence = end_sequence;
- curr_line->li_context = line_context;
- line_count++;
-
- chain_line = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (chain_line == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- chain_line->ch_item = curr_line;
-
- if (head_chain == NULL)
- head_chain = curr_chain = chain_line;
- else {
- curr_chain->ch_next = chain_line;
- curr_chain = chain_line;
- }
- }
-
- address = 0;
- file = 1;
- line = 1;
- column = 0;
- is_stmt = default_is_stmt;
- basic_block = false;
- end_sequence = false;
-
- break;
- }
-
- case DW_LNE_set_address:{
- if (instr_length - 1 == dbg->de_pointer_size) {
- READ_UNALIGNED(dbg, address, Dwarf_Addr,
- line_ptr, dbg->de_pointer_size);
- if (doaddrs) {
- curr_line =
- (Dwarf_Line) _dwarf_get_alloc(dbg,
- DW_DLA_LINE,
- 1);
- if (curr_line == NULL) {
- _dwarf_error(dbg, error,
- DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- curr_line->li_address = address;
- curr_line->li_addr_line.li_offset =
- line_ptr - dbg->de_debug_line;
-
- line_count++;
-
- chain_line = (Dwarf_Chain)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (chain_line == NULL) {
- _dwarf_error(dbg, error,
- DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- chain_line->ch_item = curr_line;
-
- if (head_chain == NULL)
- head_chain = curr_chain = chain_line;
- else {
- curr_chain->ch_next = chain_line;
- curr_chain = chain_line;
- }
- }
-
- line_ptr += dbg->de_pointer_size;
- } else {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_SET_ADDR_ERROR);
- return (DW_DLV_ERROR);
- }
-
- break;
- }
-
- case DW_LNE_define_file:{
-
- if (dolines) {
- cur_file_entry = (Dwarf_File_Entry)
- _dwarf_get_alloc(dbg, DW_DLA_FILE_ENTRY, 1);
- if (cur_file_entry == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- cur_file_entry->fi_file_name =
- (Dwarf_Small *) line_ptr;
- line_ptr =
- line_ptr + strlen((char *) line_ptr) + 1;
-
- cur_file_entry->fi_dir_index =
- (Dwarf_Sword)
- _dwarf_decode_u_leb128(line_ptr,
- &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- cur_file_entry->fi_time_last_mod =
- _dwarf_decode_u_leb128(line_ptr,
- &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- cur_file_entry->fi_file_length =
- _dwarf_decode_u_leb128(line_ptr,
- &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- if (file_entries == NULL)
- file_entries = cur_file_entry;
- else
- prev_file_entry->fi_next = cur_file_entry;
- prev_file_entry = cur_file_entry;
-
- file_entry_count++;
- }
- break;
- }
-
- default:{
- _dwarf_error(dbg, error,
- DW_DLE_LINE_EXT_OPCODE_BAD);
- return (DW_DLV_ERROR);
- }
- }
-
- }
+ int type;
+
+ opcode = *(Dwarf_Small *) line_ptr;
+ line_ptr++;
+
+
+ /* 'type' is the output */
+ WHAT_IS_OPCODE(type, opcode, prefix.pf_opcode_base,
+ prefix.pf_opcode_length_table, line_ptr,
+ prefix.pf_std_op_count);
+
+ if (type == LOP_DISCARD) {
+ int oc;
+ int opcnt = prefix.pf_opcode_length_table[opcode];
+
+ for (oc = 0; oc < opcnt; oc++) {
+ /*
+ ** Read and discard operands we don't
+ ** understand.
+ ** arbitrary choice of unsigned read.
+ ** signed read would work as well.
+ */
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ }
+ } else if (type == LOP_SPECIAL) {
+ /* This op code is a special op in the object, no matter
+ that it might fall into the standard op range in this
+ compile. That is, these are special opcodes between
+ opcode_base and MAX_LINE_OP_CODE. (including
+ opcode_base and MAX_LINE_OP_CODE) */
+
+ opcode = opcode - prefix.pf_opcode_base;
+ address = address + prefix.pf_minimum_instruction_length *
+ (opcode / prefix.pf_line_range);
+ line =
+ line + prefix.pf_line_base +
+ opcode % prefix.pf_line_range;
+
+ if (dolines) {
+ curr_line =
+ (Dwarf_Line) _dwarf_get_alloc(dbg, DW_DLA_LINE, 1);
+ if (curr_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ curr_line->li_address = address;
+ curr_line->li_addr_line.li_l_data.li_file =
+ (Dwarf_Sword) file;
+ curr_line->li_addr_line.li_l_data.li_line =
+ (Dwarf_Sword) line;
+ curr_line->li_addr_line.li_l_data.li_column =
+ (Dwarf_Half) column;
+ curr_line->li_addr_line.li_l_data.li_is_stmt = is_stmt;
+ curr_line->li_addr_line.li_l_data.li_basic_block =
+ basic_block;
+ curr_line->li_addr_line.li_l_data.li_end_sequence =
+ curr_line->li_addr_line.li_l_data.
+ li_epilogue_begin = epilogue_begin;
+ curr_line->li_addr_line.li_l_data.li_prologue_end =
+ prologue_end;
+ curr_line->li_addr_line.li_l_data.li_isa = isa;
+ curr_line->li_context = line_context;
+ line_count++;
+
+ chain_line = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (chain_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ chain_line->ch_item = curr_line;
+
+ if (head_chain == NULL)
+ head_chain = curr_chain = chain_line;
+ else {
+ curr_chain->ch_next = chain_line;
+ curr_chain = chain_line;
+ }
+ }
+
+ basic_block = false;
+ } else if (type == LOP_STANDARD) {
+ switch (opcode) {
+
+ case DW_LNS_copy:{
+ if (dolines) {
+
+ curr_line =
+ (Dwarf_Line) _dwarf_get_alloc(dbg,
+ DW_DLA_LINE,
+ 1);
+ if (curr_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ curr_line->li_address = address;
+ curr_line->li_addr_line.li_l_data.li_file =
+ (Dwarf_Sword) file;
+ curr_line->li_addr_line.li_l_data.li_line =
+ (Dwarf_Sword) line;
+ curr_line->li_addr_line.li_l_data.li_column =
+ (Dwarf_Half) column;
+ curr_line->li_addr_line.li_l_data.li_is_stmt =
+ is_stmt;
+ curr_line->li_addr_line.li_l_data.
+ li_basic_block = basic_block;
+ curr_line->li_addr_line.li_l_data.
+ li_end_sequence = end_sequence;
+ curr_line->li_context = line_context;
+ curr_line->li_addr_line.li_l_data.
+ li_epilogue_begin = epilogue_begin;
+ curr_line->li_addr_line.li_l_data.
+ li_prologue_end = prologue_end;
+ curr_line->li_addr_line.li_l_data.li_isa = isa;
+ line_count++;
+
+ chain_line = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (chain_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ chain_line->ch_item = curr_line;
+ if (head_chain == NULL)
+ head_chain = curr_chain = chain_line;
+ else {
+ curr_chain->ch_next = chain_line;
+ curr_chain = chain_line;
+ }
+ }
+
+ basic_block = false;
+ prologue_end = false;
+ epilogue_begin = false;
+ break;
+ }
+
+ case DW_LNS_advance_pc:{
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ leb128_num = (Dwarf_Word) utmp2;
+ address =
+ address +
+ prefix.pf_minimum_instruction_length *
+ leb128_num;
+ break;
+ }
+
+ case DW_LNS_advance_line:{
+ Dwarf_Signed stmp;
+
+ DECODE_LEB128_SWORD(line_ptr, stmp);
+ advance_line = (Dwarf_Sword) stmp;
+ line = line + advance_line;
+ break;
+ }
+
+ case DW_LNS_set_file:{
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ file = (Dwarf_Word) utmp2;
+ break;
+ }
+
+ case DW_LNS_set_column:{
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ column = (Dwarf_Word) utmp2;
+ break;
+ }
+
+ case DW_LNS_negate_stmt:{
+
+ is_stmt = !is_stmt;
+ break;
+ }
+
+ case DW_LNS_set_basic_block:{
+
+ basic_block = true;
+ break;
+ }
+
+ case DW_LNS_const_add_pc:{
+ opcode = MAX_LINE_OP_CODE - prefix.pf_opcode_base;
+ address = address +
+ prefix.pf_minimum_instruction_length * (opcode /
+ prefix.
+ pf_line_range);
+ break;
+ }
+
+ case DW_LNS_fixed_advance_pc:{
+
+ READ_UNALIGNED(dbg, fixed_advance_pc, Dwarf_Half,
+ line_ptr, sizeof(Dwarf_Half));
+ line_ptr += sizeof(Dwarf_Half);
+ address = address + fixed_advance_pc;
+ break;
+ }
+
+ /* New in DWARF3 */
+ case DW_LNS_set_prologue_end:{
+
+ prologue_end = true;
+ break;
+
+
+ }
+ /* New in DWARF3 */
+ case DW_LNS_set_epilogue_begin:{
+ epilogue_begin = true;
+ break;
+ }
+
+ /* New in DWARF3 */
+ case DW_LNS_set_isa:{
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ isa = utmp2;
+ if (isa != utmp2) {
+ /* The value of the isa did not fit in our
+ local so we record it wrong. declare an
+ error. */
+ dwarf_free_line_table_prefix(&prefix);
+
+ _dwarf_error(dbg, error,
+ DW_DLE_LINE_NUM_OPERANDS_BAD);
+ return (DW_DLV_ERROR);
+ }
+ break;
+ }
+ }
+
+ } else if (type == LOP_EXTENDED) {
+ Dwarf_Unsigned utmp3;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp3);
+ instr_length = (Dwarf_Word) utmp3;
+ /* Dwarf_Small is a ubyte and the extended opcode is a
+ ubyte, though not stated as clearly in the 2.0.0 spec as
+ one might hope. */
+ ext_opcode = *(Dwarf_Small *) line_ptr;
+ line_ptr++;
+ switch (ext_opcode) {
+
+ case DW_LNE_end_sequence:{
+ end_sequence = true;
+
+ if (dolines) {
+ curr_line = (Dwarf_Line)
+ _dwarf_get_alloc(dbg, DW_DLA_LINE, 1);
+ if (curr_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ curr_line->li_address = address;
+ curr_line->li_addr_line.li_l_data.li_file =
+ (Dwarf_Sword) file;
+ curr_line->li_addr_line.li_l_data.li_line =
+ (Dwarf_Sword) line;
+ curr_line->li_addr_line.li_l_data.li_column =
+ (Dwarf_Half) column;
+ curr_line->li_addr_line.li_l_data.li_is_stmt =
+ prefix.pf_default_is_stmt;
+ curr_line->li_addr_line.li_l_data.
+ li_basic_block = basic_block;
+ curr_line->li_addr_line.li_l_data.
+ li_end_sequence = end_sequence;
+ curr_line->li_context = line_context;
+ curr_line->li_addr_line.li_l_data.
+ li_epilogue_begin = epilogue_begin;
+ curr_line->li_addr_line.li_l_data.
+ li_prologue_end = prologue_end;
+ curr_line->li_addr_line.li_l_data.li_isa = isa;
+ line_count++;
+
+ chain_line = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (chain_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ chain_line->ch_item = curr_line;
+
+ if (head_chain == NULL)
+ head_chain = curr_chain = chain_line;
+ else {
+ curr_chain->ch_next = chain_line;
+ curr_chain = chain_line;
+ }
+ }
+
+ address = 0;
+ file = 1;
+ line = 1;
+ column = 0;
+ is_stmt = prefix.pf_default_is_stmt;
+ basic_block = false;
+ end_sequence = false;
+ prologue_end = false;
+ epilogue_begin = false;
+
+
+ break;
+ }
+
+ case DW_LNE_set_address:{
+ {
+ READ_UNALIGNED(dbg, address, Dwarf_Addr,
+ line_ptr, address_size);
+ if (doaddrs) {
+ curr_line =
+ (Dwarf_Line) _dwarf_get_alloc(dbg,
+ DW_DLA_LINE,
+ 1);
+ if (curr_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error,
+ DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ curr_line->li_address = address;
+ curr_line->li_addr_line.li_offset =
+ line_ptr - dbg->de_debug_line.dss_data;
+
+ line_count++;
+
+ chain_line = (Dwarf_Chain)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (chain_line == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error,
+ DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ chain_line->ch_item = curr_line;
+
+ if (head_chain == NULL)
+ head_chain = curr_chain = chain_line;
+ else {
+ curr_chain->ch_next = chain_line;
+ curr_chain = chain_line;
+ }
+ }
+
+ line_ptr += address_size;
+ }
+
+ break;
+ }
+
+ case DW_LNE_define_file:{
+
+ if (dolines) {
+ cur_file_entry = (Dwarf_File_Entry)
+ _dwarf_get_alloc(dbg, DW_DLA_FILE_ENTRY, 1);
+ if (cur_file_entry == NULL) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ cur_file_entry->fi_file_name =
+ (Dwarf_Small *) line_ptr;
+ line_ptr =
+ line_ptr + strlen((char *) line_ptr) + 1;
+
+ cur_file_entry->fi_dir_index = (Dwarf_Sword)
+ _dwarf_decode_u_leb128(line_ptr,
+ &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+
+ cur_file_entry->fi_time_last_mod =
+ _dwarf_decode_u_leb128(line_ptr,
+ &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+
+ cur_file_entry->fi_file_length =
+ _dwarf_decode_u_leb128(line_ptr,
+ &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+
+ if (file_entries == NULL)
+ file_entries = cur_file_entry;
+ else
+ prev_file_entry->fi_next = cur_file_entry;
+ prev_file_entry = cur_file_entry;
+
+ file_entry_count++;
+ }
+ break;
+ }
+
+ default:{
+ /* This is an extended op code we do not know about,
+ other than we know now many bytes it is
+ and the op code and the bytes of operand. */
+ Dwarf_Unsigned remaining_bytes = instr_length -1;
+ if(instr_length < 1 || remaining_bytes > DW_LNE_LEN_MAX) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error,
+ DW_DLE_LINE_EXT_OPCODE_BAD);
+ return (DW_DLV_ERROR);
+ }
+ line_ptr += remaining_bytes;
+ break;
+ }
+ }
+
+ }
}
block_line = (Dwarf_Line *)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, line_count);
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, line_count);
if (block_line == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
curr_chain = head_chain;
for (i = 0; i < line_count; i++) {
- *(block_line + i) = curr_chain->ch_item;
- head_chain = curr_chain;
- curr_chain = curr_chain->ch_next;
- dwarf_dealloc(dbg, head_chain, DW_DLA_CHAIN);
+ *(block_line + i) = curr_chain->ch_item;
+ head_chain = curr_chain;
+ curr_chain = curr_chain->ch_next;
+ dwarf_dealloc(dbg, head_chain, DW_DLA_CHAIN);
}
line_context->lc_file_entries = file_entries;
line_context->lc_file_entry_count = file_entry_count;
- line_context->lc_include_directories = include_directories;
line_context->lc_include_directories_count =
- include_directories_count;
+ prefix.pf_include_directories_count;
+ if (prefix.pf_include_directories_count > 0) {
+ /* This gets a pointer to the *first* include dir. The others
+ follow directly with the standard DWARF2/3 NUL byte
+ following the last. */
+ line_context->lc_include_directories =
+ prefix.pf_include_directories[0];
+ }
+
line_context->lc_line_count = line_count;
line_context->lc_compilation_directory = comp_dir;
+ line_context->lc_version_number = prefix.pf_version;
line_context->lc_dbg = dbg;
*count = line_count;
*linebuf = block_line;
+ dwarf_free_line_table_prefix(&prefix);
return (DW_DLV_OK);
}
int
dwarf_srclines(Dwarf_Die die,
- Dwarf_Line ** linebuf,
- Dwarf_Signed * linecount, Dwarf_Error * error)
+ Dwarf_Line ** linebuf,
+ Dwarf_Signed * linecount, Dwarf_Error * error)
{
- Dwarf_Signed count;
- int res;
-
- res = _dwarf_internal_srclines(die, linebuf,
- &count, /* addrlist= */ false,
- /* linelist= */ true, error);
+ Dwarf_Signed count = 0;
+ int res = _dwarf_internal_srclines(die, linebuf, &count,
+ /* addrlist= */ false,
+ /* linelist= */ true, error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
*linecount = count;
return res;
@@ -1105,28 +1035,46 @@ dwarf_srclines(Dwarf_Die die,
-
+/* Every line table entry (except DW_DLE_end_sequence,
+ which is returned using dwarf_lineendsequence())
+ potentially has the begin-statement
+ flag marked 'on'. This returns thru *return_bool,
+ the begin-statement flag.
+*/
int
dwarf_linebeginstatement(Dwarf_Line line,
- Dwarf_Bool * return_bool, Dwarf_Error * error)
+ Dwarf_Bool * return_bool, Dwarf_Error * error)
{
if (line == NULL || return_bool == 0) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
}
*return_bool = (line->li_addr_line.li_l_data.li_is_stmt);
return DW_DLV_OK;
}
+/* At the end of any contiguous line-table there may be
+ a DW_LNE_end_sequence operator.
+ This returns non-zero thru *return_bool
+ if and only if this 'line' entry was a DW_LNE_end_sequence.
+
+ Within a compilation unit or function there may be multiple
+ line tables, each ending with a DW_LNE_end_sequence.
+ Each table describes a contiguous region.
+ Because compilers may split function code up in arbitrary ways
+ compilers may need to emit multiple contigous regions (ie
+ line tables) for a single function.
+ See the DWARF3 spec section 6.2.
+*/
int
dwarf_lineendsequence(Dwarf_Line line,
- Dwarf_Bool * return_bool, Dwarf_Error * error)
+ Dwarf_Bool * return_bool, Dwarf_Error * error)
{
if (line == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
}
*return_bool = (line->li_addr_line.li_l_data.li_end_sequence);
@@ -1134,27 +1082,64 @@ dwarf_lineendsequence(Dwarf_Line line,
}
+/* Each 'line' entry has a line-number.
+ If the entry is a DW_LNE_end_sequence the line-number is
+ meaningless (see dwarf_lineendsequence(), just above).
+*/
int
dwarf_lineno(Dwarf_Line line,
- Dwarf_Unsigned * ret_lineno, Dwarf_Error * error)
+ Dwarf_Unsigned * ret_lineno, Dwarf_Error * error)
{
if (line == NULL || ret_lineno == 0) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
}
*ret_lineno = (line->li_addr_line.li_l_data.li_line);
return DW_DLV_OK;
}
+/* Each 'line' entry has a file-number, and index into the file table.
+ If the entry is a DW_LNE_end_sequence the index is
+ meaningless (see dwarf_lineendsequence(), just above).
+ The file number returned is an index into the file table
+ produced by dwarf_srcfiles(), but care is required: the
+ li_file begins with 1 for real files, so that the li_file returned here
+ is 1 greater than its index into the dwarf_srcfiles() output array.
+ And entries from DW_LNE_define_file don't appear in
+ the dwarf_srcfiles() output so file indexes from here may exceed
+ the size of the dwarf_srcfiles() output array size.
+*/
+int
+dwarf_line_srcfileno(Dwarf_Line line,
+ Dwarf_Unsigned * ret_fileno, Dwarf_Error * error)
+{
+ if (line == NULL || ret_fileno == 0) {
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
+ }
+ /* li_file must be <= line->li_context->lc_file_entry_count else it
+ is trash. li_file 0 means not attributable to any source file
+ per dwarf2/3 spec. */
+
+ *ret_fileno = (line->li_addr_line.li_l_data.li_file);
+ return DW_DLV_OK;
+}
+
+/* Each 'line' entry has a line-address.
+ If the entry is a DW_LNE_end_sequence the adddress
+ is one-beyond the last address this contigous region
+ covers, so the address is not inside the region,
+ but is just outside it.
+*/
int
dwarf_lineaddr(Dwarf_Line line,
- Dwarf_Addr * ret_lineaddr, Dwarf_Error * error)
+ Dwarf_Addr * ret_lineaddr, Dwarf_Error * error)
{
if (line == NULL || ret_lineaddr == 0) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
}
*ret_lineaddr = (line->li_address);
@@ -1162,18 +1147,27 @@ dwarf_lineaddr(Dwarf_Line line,
}
+/* Each 'line' entry has a column-within-line (offset
+ within the line) where the
+ source text begins.
+ If the entry is a DW_LNE_end_sequence the line-number is
+ meaningless (see dwarf_lineendsequence(), just above).
+ Lines of text begin at column 1. The value 0
+ means the line begins at the left edge of the line.
+ (See the DWARF3 spec, section 6.2.2).
+*/
int
dwarf_lineoff(Dwarf_Line line,
- Dwarf_Signed * ret_lineoff, Dwarf_Error * error)
+ Dwarf_Signed * ret_lineoff, Dwarf_Error * error)
{
if (line == NULL || ret_lineoff == 0) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
}
*ret_lineoff =
- (line->li_addr_line.li_l_data.li_column ==
- 0 ? -1 : line->li_addr_line.li_l_data.li_column);
+ (line->li_addr_line.li_l_data.li_column ==
+ 0 ? -1 : line->li_addr_line.li_l_data.li_column);
return DW_DLV_OK;
}
@@ -1181,135 +1175,149 @@ dwarf_lineoff(Dwarf_Line line,
int
dwarf_linesrc(Dwarf_Line line, char **ret_linesrc, Dwarf_Error * error)
{
- Dwarf_Signed i;
+ Dwarf_Signed i = 0;
Dwarf_File_Entry file_entry;
- Dwarf_Small *name_buffer;
- Dwarf_Small *include_directories;
- Dwarf_Debug dbg;
- unsigned int comp_dir_len;
+ Dwarf_Small *name_buffer = 0;
+ Dwarf_Small *include_directories = 0;
+ Dwarf_Small include_direc_full_path = 0;
+ Dwarf_Small file_name_full_path = 0;
+ Dwarf_Debug dbg = 0;
+ unsigned int comp_dir_len = 0;
if (line == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
}
if (line->li_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_LINE_CONTEXT_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_LINE_CONTEXT_NULL);
+ return (DW_DLV_ERROR);
}
dbg = line->li_context->lc_dbg;
if (line->li_addr_line.li_l_data.li_file >
- line->li_context->lc_file_entry_count) {
- _dwarf_error(dbg, error, DW_DLE_LINE_FILE_NUM_BAD);
- return (DW_DLV_ERROR);
+ line->li_context->lc_file_entry_count) {
+ _dwarf_error(dbg, error, DW_DLE_LINE_FILE_NUM_BAD);
+ return (DW_DLV_ERROR);
}
+ if (line->li_addr_line.li_l_data.li_file == 0) {
+ /* No file name known: see dwarf2/3 spec. */
+ _dwarf_error(dbg, error, DW_DLE_NO_FILE_NAME);
+ return (DW_DLV_ERROR);
+ }
file_entry = line->li_context->lc_file_entries;
+ /* ASSERT: li_file > 0, dwarf correctness issue, see line table
+ definition of dwarf2/3 spec. */
+ /* Example: if li_file is 2 and lc_file_entry_count is 3,
+ file_entry is file 3 (1 based), aka 2( 0 based) file_entry->next
+ is file 2 (1 based), aka 1( 0 based) file_entry->next->next is
+ file 1 (1 based), aka 0( 0 based) file_entry->next->next->next
+ is NULL.
+
+ and this loop finds the file_entry we need (2 (1 based) in this
+ case). Because lc_file_entries are in reverse order and
+ effectively zero based as a count whereas li_file is 1 based. */
for (i = line->li_addr_line.li_l_data.li_file - 1; i > 0; i--)
- file_entry = file_entry->fi_next;
+ file_entry = file_entry->fi_next;
if (file_entry->fi_file_name == NULL) {
- _dwarf_error(dbg, error, DW_DLE_NO_FILE_NAME);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_NO_FILE_NAME);
+ return (DW_DLV_ERROR);
}
- if (*(char *) file_entry->fi_file_name == '/') {
- *ret_linesrc = ((char *) file_entry->fi_file_name);
- return DW_DLV_OK;
+ file_name_full_path = file_name_is_full_path(file_entry->fi_file_name);
+ if (file_name_full_path) {
+ *ret_linesrc = ((char *) file_entry->fi_file_name);
+ return DW_DLV_OK;
}
if (file_entry->fi_dir_index == 0) {
- /* dir_index of 0 means that the compilation was in the
- 'current directory of compilation' */
- if (line->li_context->lc_compilation_directory == NULL) {
- /* we don't actually *have* a current directory of
- compilation: DW_AT_comp_dir was not present Rather than
- emitting DW_DLE_NO_COMP_DIR lets just make an empty name
- here. In other words, do the best we can with what we do
- have instead of reporting an error. _dwarf_error(dbg,
- error, DW_DLE_NO_COMP_DIR); return(DW_DLV_ERROR); */
- comp_dir_len = 0;
- } else {
- comp_dir_len = strlen((char *)
- (line->li_context->
- lc_compilation_directory));
- }
-
- name_buffer =
- _dwarf_get_alloc(line->li_context->lc_dbg, DW_DLA_STRING,
- comp_dir_len + 1 +
- strlen((char *) file_entry->fi_file_name) +
- 1);
- if (name_buffer == NULL) {
- _dwarf_error(line->li_context->lc_dbg, error,
- DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- if (comp_dir_len > 0) {
- /* if comp_dir_len is 0 we do not want to put a / in front
- of the fi_file_name as we just don't know anything. */
- strcpy((char *) name_buffer,
- (char *) (line->li_context->
- lc_compilation_directory));
- strcat((char *) name_buffer, "/");
- }
- strcat((char *) name_buffer, (char *) file_entry->fi_file_name);
- *ret_linesrc = ((char *) name_buffer);
- return DW_DLV_OK;
+ /* dir_index of 0 means that the compilation was in the
+ 'current directory of compilation' */
+ if (line->li_context->lc_compilation_directory == NULL) {
+ /* we don't actually *have* a current directory of
+ compilation: DW_AT_comp_dir was not present Rather than
+ emitting DW_DLE_NO_COMP_DIR lets just make an empty name
+ here. In other words, do the best we can with what we do
+ have instead of reporting an error. _dwarf_error(dbg,
+ error, DW_DLE_NO_COMP_DIR); return(DW_DLV_ERROR); */
+ comp_dir_len = 0;
+ } else {
+ comp_dir_len = strlen((char *)
+ (line->li_context->
+ lc_compilation_directory));
+ }
+
+ name_buffer =
+ _dwarf_get_alloc(line->li_context->lc_dbg, DW_DLA_STRING,
+ comp_dir_len + 1 +
+ strlen((char *) file_entry->fi_file_name) +
+ 1);
+ if (name_buffer == NULL) {
+ _dwarf_error(line->li_context->lc_dbg, error,
+ DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ if (comp_dir_len > 0) {
+ /* if comp_dir_len is 0 we do not want to put a / in front
+ of the fi_file_name as we just don't know anything. */
+ strcpy((char *) name_buffer,
+ (char *) (line->li_context->
+ lc_compilation_directory));
+ strcat((char *) name_buffer, "/");
+ }
+ strcat((char *) name_buffer, (char *) file_entry->fi_file_name);
+ *ret_linesrc = ((char *) name_buffer);
+ return DW_DLV_OK;
}
if (file_entry->fi_dir_index >
- line->li_context->lc_include_directories_count) {
- _dwarf_error(dbg, error, DW_DLE_INCL_DIR_NUM_BAD);
- return (DW_DLV_ERROR);
+ line->li_context->lc_include_directories_count) {
+ _dwarf_error(dbg, error, DW_DLE_INCL_DIR_NUM_BAD);
+ return (DW_DLV_ERROR);
}
include_directories = line->li_context->lc_include_directories;
for (i = file_entry->fi_dir_index - 1; i > 0; i--)
- include_directories += strlen((char *) include_directories) + 1;
+ include_directories += strlen((char *) include_directories) + 1;
if (line->li_context->lc_compilation_directory) {
- comp_dir_len = strlen((char *)
- (line->li_context->
- lc_compilation_directory));
+ comp_dir_len = strlen((char *)
+ (line->li_context->lc_compilation_directory));
} else {
- /* No DW_AT_comp_dir present. Do the best we can without it. */
- comp_dir_len = 0;
+ /* No DW_AT_comp_dir present. Do the best we can without it. */
+ comp_dir_len = 0;
}
+ include_direc_full_path = file_name_is_full_path(include_directories);
name_buffer = _dwarf_get_alloc(dbg, DW_DLA_STRING,
- (*include_directories == '/' ?
- 0 : comp_dir_len + 1) +
- strlen((char *) include_directories)
- + 1 +
- strlen((char *) file_entry->
- fi_file_name) + 1);
+ (include_direc_full_path ? 0 : comp_dir_len + 1) +
+ strlen((char *)include_directories) + 1 +
+ strlen((char *)file_entry->fi_file_name) + 1);
if (name_buffer == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- if (*include_directories != '/') {
- if (comp_dir_len > 0) {
- strcpy((char *) name_buffer,
- (char *) line->li_context->lc_compilation_directory);
- /* Who provides the / needed after the compilation
- directory? */
- if (name_buffer[comp_dir_len - 1] != '/') {
- /* Here we provide the / separator */
- name_buffer[comp_dir_len] = '/'; /* overwrite
- previous nul
- terminator
- with needed
- / */
- name_buffer[comp_dir_len + 1] = 0;
- }
- }
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ if (!include_direc_full_path) {
+ if (comp_dir_len > 0) {
+ strcpy((char *)name_buffer,
+ (char *)line->li_context->lc_compilation_directory);
+ /* Who provides the / needed after the compilation
+ directory? */
+ if (!is_path_separator(name_buffer[comp_dir_len - 1])) {
+ /* Here we provide the / separator. It
+ should work ok for Windows */
+ /* Overwrite previous nul terminator with needed / */
+ name_buffer[comp_dir_len] = '/';
+ name_buffer[comp_dir_len + 1] = 0;
+ }
+ }
} else {
- strcpy((char *) name_buffer, "");
+ strcpy((char *) name_buffer, "");
}
strcat((char *) name_buffer, (char *) include_directories);
strcat((char *) name_buffer, "/");
@@ -1318,23 +1326,25 @@ dwarf_linesrc(Dwarf_Line line, char **ret_linesrc, Dwarf_Error * error)
return DW_DLV_OK;
}
-
+/* Every line table entry potentially has the basic-block-start
+ flag marked 'on'. This returns thru *return_bool,
+ the basic-block-start flag.
+*/
int
dwarf_lineblock(Dwarf_Line line,
- Dwarf_Bool * return_bool, Dwarf_Error * error)
+ Dwarf_Bool * return_bool, Dwarf_Error * error)
{
if (line == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DWARF_LINE_NULL);
+ return (DW_DLV_ERROR);
}
-
*return_bool = (line->li_addr_line.li_l_data.li_basic_block);
return DW_DLV_OK;
}
-#if 0 /* Ignore this. This needs major
- re-work. */
+#if 0 /* Ignore this. This needs major
+ re-work. */
/*
This routine works by looking for exact matches between
the current line address and pc, and crossovers from
@@ -1346,10 +1356,10 @@ dwarf_lineblock(Dwarf_Line line,
*/
int
dwarf_pclines(Dwarf_Debug dbg,
- Dwarf_Addr pc,
- Dwarf_Line ** linebuf,
- Dwarf_Signed slide,
- Dwarf_Signed * linecount, Dwarf_Error * error)
+ Dwarf_Addr pc,
+ Dwarf_Line ** linebuf,
+ Dwarf_Signed slide,
+ Dwarf_Signed * linecount, Dwarf_Error * error)
{
/*
Scans the line matrix for the current cu to which a pointer
@@ -1359,29 +1369,29 @@ dwarf_pclines(Dwarf_Debug dbg,
/*
These flags are for efficiency reasons. Check_line is true
- initially, but set false when the address of the current line
- is greater than pc. It is set true only when the address of the
- current line falls below pc. This assumes that addresses
- within the same segment increase, and we are only interested in
- the switch from a less than pc address to a greater than.
- First_line is set true initially, but set false after the first
- line is scanned. This is to prevent looking at the address of
- previous line when slide is DW_DLS_BACKWARD, and the first line
- is being scanned. */
+ initially, but set false when the address of the current line is
+ greater than pc. It is set true only when the address of the
+ current line falls below pc. This assumes that addresses within
+ the same segment increase, and we are only interested in the
+ switch from a less than pc address to a greater than. First_line
+ is set true initially, but set false after the first line is
+ scanned. This is to prevent looking at the address of previous
+ line when slide is DW_DLS_BACKWARD, and the first line is being
+ scanned. */
Dwarf_Bool check_line, first_line;
/*
- Diff tracks the smallest difference a line address and the
- input pc value. */
+ Diff tracks the smallest difference a line address and the input
+ pc value. */
Dwarf_Signed diff, i;
/*
For the slide = DW_DLS_BACKWARD case, pc_less is the value of
the address of the line immediately preceding the first line
- that has value greater than pc. For the slide = DW_DLS_FORWARD
+ that has value greater than pc. For the slide = DW_DLS_FORWARD
case, pc_more is the values of address for the first line that
- is greater than pc. Diff is the difference between either of
- the these values and pc. */
+ is greater than pc. Diff is the difference between either of the
+ these values and pc. */
Dwarf_Addr pc_less, pc_more;
/*
@@ -1404,88 +1414,88 @@ dwarf_pclines(Dwarf_Debug dbg,
for (i = 0; i < dbg->de_cu_line_count; i++) {
- line = *(dbg->de_cu_line_ptr + i);
- prev_line = first_line ? NULL : *(dbg->de_cu_line_ptr + i - 1);
-
- if (line->li_address == pc) {
- chain_ptr = (struct chain *)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (chain_ptr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- chain_ptr->line = line;
- chain_ptr->diff = diff = 0;
- chain_ptr->next = chain_head;
- chain_head = chain_ptr;
- } else
- /*
- Look for crossover from less than pc address to greater
- than. */
- if (check_line && line->li_address > pc &&
- (first_line ? 0 : prev_line->li_address) < pc)
-
- if (slide == DW_DLS_BACKWARD && !first_line) {
- pc_less = prev_line->li_address;
- if (pc - pc_less <= diff) {
- chain_ptr = (struct chain *)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (chain_ptr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- chain_ptr->line = prev_line;
- chain_ptr->diff = diff = pc - pc_less;
- chain_ptr->next = chain_head;
- chain_head = chain_ptr;
- }
- check_line = false;
- } else if (slide == DW_DLS_FORWARD) {
- pc_more = line->li_address;
- if (pc_more - pc <= diff) {
- chain_ptr = (struct chain *)
- _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
- if (chain_ptr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- chain_ptr->line = line;
- chain_ptr->diff = diff = pc_more - pc;
- chain_ptr->next = chain_head;
- chain_head = chain_ptr;
- }
- check_line = false;
- } else
- /* Check addresses only when they go */
- /* below pc. */
- if (line->li_address < pc)
- check_line = true;
-
- first_line = false;
+ line = *(dbg->de_cu_line_ptr + i);
+ prev_line = first_line ? NULL : *(dbg->de_cu_line_ptr + i - 1);
+
+ if (line->li_address == pc) {
+ chain_ptr = (struct chain *)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (chain_ptr == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ chain_ptr->line = line;
+ chain_ptr->diff = diff = 0;
+ chain_ptr->next = chain_head;
+ chain_head = chain_ptr;
+ } else
+ /*
+ Look for crossover from less than pc address to greater
+ than. */
+ if (check_line && line->li_address > pc &&
+ (first_line ? 0 : prev_line->li_address) < pc)
+
+ if (slide == DW_DLS_BACKWARD && !first_line) {
+ pc_less = prev_line->li_address;
+ if (pc - pc_less <= diff) {
+ chain_ptr = (struct chain *)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (chain_ptr == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ chain_ptr->line = prev_line;
+ chain_ptr->diff = diff = pc - pc_less;
+ chain_ptr->next = chain_head;
+ chain_head = chain_ptr;
+ }
+ check_line = false;
+ } else if (slide == DW_DLS_FORWARD) {
+ pc_more = line->li_address;
+ if (pc_more - pc <= diff) {
+ chain_ptr = (struct chain *)
+ _dwarf_get_alloc(dbg, DW_DLA_CHAIN, 1);
+ if (chain_ptr == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ chain_ptr->line = line;
+ chain_ptr->diff = diff = pc_more - pc;
+ chain_ptr->next = chain_head;
+ chain_head = chain_ptr;
+ }
+ check_line = false;
+ } else
+ /* Check addresses only when they go */
+ /* below pc. */
+ if (line->li_address < pc)
+ check_line = true;
+
+ first_line = false;
}
chain_count = 0;
for (chain_ptr = chain_head; chain_ptr != NULL;
- chain_ptr = chain_ptr->next)
- if (chain_ptr->diff == diff)
- chain_count++;
+ chain_ptr = chain_ptr->next)
+ if (chain_ptr->diff == diff)
+ chain_count++;
pc_line_buf = pc_line = (Dwarf_Line)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, chain_count);
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, chain_count);
for (chain_ptr = chain_head; chain_ptr != NULL;
- chain_ptr = chain_ptr->next)
- if (chain_ptr->diff == diff) {
- *pc_line = chain_ptr->line;
- pc_line++;
- }
+ chain_ptr = chain_ptr->next)
+ if (chain_ptr->diff == diff) {
+ *pc_line = chain_ptr->line;
+ pc_line++;
+ }
for (chain_ptr = chain_head; chain_ptr != NULL;) {
- chain_head = chain_ptr;
- chain_ptr = chain_ptr->next;
- dwarf_dealloc(dbg, chain_head, DW_DLA_CHAIN);
+ chain_head = chain_ptr;
+ chain_ptr = chain_ptr->next;
+ dwarf_dealloc(dbg, chain_head, DW_DLA_CHAIN);
}
*linebuf = pc_line_buf;
@@ -1494,55 +1504,448 @@ dwarf_pclines(Dwarf_Debug dbg,
#endif
+
/*
- Return DW_DLV_OK or, if error,
- DW_DLV_ERROR.
+ It's impossible for callers of dwarf_srclines() to get to and
+ free all the resources (in particular, the li_context and its
+ lc_file_entries).
+ So this function, new July 2005, does it.
+*/
+
+void
+dwarf_srclines_dealloc(Dwarf_Debug dbg, Dwarf_Line * linebuf,
+ Dwarf_Signed count)
+{
+
+ Dwarf_Signed i = 0;
+ struct Dwarf_Line_Context_s *context = 0;
+
+ if (count > 0) {
+ /* All these entries share a single context */
+ context = linebuf[0]->li_context;
+ }
+ for (i = 0; i < count; ++i) {
+ dwarf_dealloc(dbg, linebuf[i], DW_DLA_LINE);
+ }
+ dwarf_dealloc(dbg, linebuf, DW_DLA_LIST);
- Thru pointers, return 2 arrays and a count
- for rqs.
+ if (context) {
+ Dwarf_File_Entry fe = context->lc_file_entries;
+
+ while (fe) {
+ Dwarf_File_Entry fenext = fe->fi_next;
+
+ dwarf_dealloc(dbg, fe, DW_DLA_FILE_ENTRY);
+ fe = fenext;
+ }
+ dwarf_dealloc(dbg, context, DW_DLA_LINE_CONTEXT);
+ }
+
+ return;
+}
+
+/* Operand counts per standard operand.
+ The initial zero is for DW_LNS_copy.
+ This is an economical way to verify we understand the table
+ of standard-opcode-lengths in the line table prologue. */
+#define STANDARD_OPERAND_COUNT_DWARF2 9
+#define STANDARD_OPERAND_COUNT_DWARF3 12
+static unsigned char
+ dwarf_standard_opcode_operand_count[STANDARD_OPERAND_COUNT_DWARF3] = {
+ /* DWARF2 */
+ 0,
+ 1, 1, 1, 1,
+ 0, 0, 0,
+ 1,
+ /* Following are new for DWARF3. */
+ 0, 0, 1
+};
+
+/* We have a normal standard opcode base, but
+ an arm compiler emitted a non-standard table!
+ This could lead to problems...
+ ARM C/C++ Compiler, RVCT4.0 [Build 4
+ 00] seems to get the table wrong . */
+static unsigned char
+dwarf_arm_standard_opcode_operand_count[STANDARD_OPERAND_COUNT_DWARF3] = {
+ /* DWARF2 */
+ 0,
+ 1, 1, 1, 1,
+ 0, 0, 0,
+ 0, /* <<< --- this is wrong */
+ /* Following are new for DWARF3. */
+ 0, 0, 1
+};
+
+static void
+print_header_issue(Dwarf_Debug dbg,
+ char *specific_msg,
+ Dwarf_Small *data_start,
+ int *err_count_out)
+{
+ if(!err_count_out)
+ return;
+ printf("*** DWARF CHECK: "
+ "line table header: %s",
+ specific_msg);
+ if( data_start >= dbg->de_debug_line.dss_data &&
+ (data_start < (dbg->de_debug_line.dss_data +
+ dbg->de_debug_line.dss_size))) {
+ Dwarf_Unsigned off = data_start - dbg->de_debug_line.dss_data;
+ printf(" at .debug_line section offset 0x%" DW_PR_DUx
+ " ( %" DW_PR_DUu " ) ",
+ off,off);
+ } else {
+ printf(" (unknown section location) ");
+ }
+ printf("***\n");
+ *err_count_out += 1;
+}
+
+
+
+/* Common line table prefix reading code.
+ Returns DW_DLV_OK, DW_DLV_ERROR.
+ DW_DLV_NO_ENTRY cannot be returned, but callers should
+ assume it is possible.
+
+ The prefix_out area must be initialized properly before calling this.
+
+ Has the side effect of allocating arrays which
+ must be freed (see the Line_Table_Prefix_s struct which
+ holds the pointers to space we allocate here).
+
+ bogus_bytes_ptr and bogus_bytes are output values which
+ let a print-program notify the user of some surprising bytes
+ after a line table header and before the line table instructions.
+ These can be ignored unless one is printing.
+ And are ignored if NULL passed as the pointer.
+*/
+
+/* err_count_out may be NULL, in which case we
+ make no attempt to count checking-type errors.
+ Checking-type errors do not stop us, we just report them.
*/
int
-_dwarf_line_address_offsets(Dwarf_Debug dbg,
- Dwarf_Die die,
- Dwarf_Addr ** addrs,
- Dwarf_Off ** offs,
- Dwarf_Unsigned * returncount,
- Dwarf_Error * err)
+dwarf_read_line_table_prefix(Dwarf_Debug dbg,
+ Dwarf_Small * data_start,
+ Dwarf_Unsigned data_length,
+ Dwarf_Small ** updated_data_start_out,
+ struct Line_Table_Prefix_s *prefix_out,
+ Dwarf_Small ** bogus_bytes_ptr,
+ Dwarf_Unsigned *bogus_bytes,
+ Dwarf_Error * err,
+ int *err_count_out)
{
- Dwarf_Addr *laddrs;
- Dwarf_Off *loffsets;
- Dwarf_Signed lcount;
- Dwarf_Signed i;
- int res;
- Dwarf_Line *linebuf;
-
- res = _dwarf_internal_srclines(die, &linebuf,
- &lcount, /* addrlist= */ true,
- /* linelist= */ false, err);
- if (res != DW_DLV_OK) {
- return res;
+ Dwarf_Small *line_ptr = data_start;
+ Dwarf_Unsigned total_length = 0;
+ int local_length_size = 0;
+ int local_extension_size = 0;
+ Dwarf_Unsigned prologue_length = 0;
+ Dwarf_Half version = 0;
+ Dwarf_Unsigned directories_count = 0;
+ Dwarf_Unsigned directories_malloc = 0;
+ Dwarf_Unsigned files_count = 0;
+ Dwarf_Unsigned files_malloc = 0;
+ Dwarf_Small *line_ptr_end = 0;
+ Dwarf_Small *lp_begin = 0;
+ if(bogus_bytes_ptr) *bogus_bytes_ptr = 0;
+ if(bogus_bytes) *bogus_bytes= 0;
+
+ prefix_out->pf_line_ptr_start = line_ptr;
+ /* READ_AREA_LENGTH updates line_ptr for consumed bytes */
+ READ_AREA_LENGTH(dbg, total_length, Dwarf_Unsigned,
+ line_ptr, local_length_size, local_extension_size);
+
+
+ line_ptr_end = line_ptr + total_length;
+ prefix_out->pf_line_ptr_end = line_ptr_end;
+ prefix_out->pf_length_field_length = local_length_size +
+ local_extension_size;
+ /* ASSERT: prefix_out->pf_length_field_length == line_ptr
+ -prefix_out->pf_line_ptr_start; */
+ if (line_ptr_end > dbg->de_debug_line.dss_data +
+ dbg->de_debug_line.dss_size) {
+ _dwarf_error(dbg, err, DW_DLE_DEBUG_LINE_LENGTH_BAD);
+ return (DW_DLV_ERROR);
+ }
+ if (line_ptr_end > data_start + data_length) {
+ _dwarf_error(dbg, err, DW_DLE_DEBUG_LINE_LENGTH_BAD);
+ return (DW_DLV_ERROR);
+ }
+ prefix_out->pf_total_length = total_length;
+
+ READ_UNALIGNED(dbg, version, Dwarf_Half,
+ line_ptr, sizeof(Dwarf_Half));
+ prefix_out->pf_version = version;
+ line_ptr += sizeof(Dwarf_Half);
+ if (version != CURRENT_VERSION_STAMP &&
+ version != CURRENT_VERSION_STAMP3) {
+ _dwarf_error(dbg, err, DW_DLE_VERSION_STAMP_ERROR);
+ return (DW_DLV_ERROR);
+ }
+
+ READ_UNALIGNED(dbg, prologue_length, Dwarf_Unsigned,
+ line_ptr, local_length_size);
+ prefix_out->pf_prologue_length = prologue_length;
+ line_ptr += local_length_size;
+ prefix_out->pf_line_prologue_start = line_ptr;
+
+ prefix_out->pf_minimum_instruction_length =
+ *(unsigned char *) line_ptr;
+ line_ptr = line_ptr + sizeof(Dwarf_Small);
+
+ prefix_out->pf_default_is_stmt = *(unsigned char *) line_ptr;
+ line_ptr = line_ptr + sizeof(Dwarf_Small);
+
+ prefix_out->pf_line_base = *(signed char *) line_ptr;
+ line_ptr = line_ptr + sizeof(Dwarf_Sbyte);
+
+ prefix_out->pf_line_range = *(unsigned char *) line_ptr;
+ line_ptr = line_ptr + sizeof(Dwarf_Small);
+
+ prefix_out->pf_opcode_base = *(unsigned char *) line_ptr;
+ line_ptr = line_ptr + sizeof(Dwarf_Small);
+
+ /* Set up the array of standard opcode lengths. */
+ /* We think this works ok even for cross-endian processing of
+ objects. It might be wrong, we might need to specially process
+ the array of ubyte into host order. */
+ prefix_out->pf_opcode_length_table = line_ptr;
+
+ /* pf_opcode_base is one greater than the size of the array. */
+ line_ptr += prefix_out->pf_opcode_base - 1;
+
+ {
+ /* Determine (as best we can) whether the
+ pf_opcode_length_table holds 9 or 12 standard-conforming
+ entries. gcc4 upped to DWARF3's 12 without updating the
+ version number. */
+ int operand_ck_fail = true;
+
+ if (prefix_out->pf_opcode_base >= STANDARD_OPERAND_COUNT_DWARF3) {
+ int mismatch = memcmp(dwarf_standard_opcode_operand_count,
+ prefix_out->pf_opcode_length_table,
+ STANDARD_OPERAND_COUNT_DWARF3);
+ if(mismatch) {
+ if(err_count_out) {
+ print_header_issue(dbg,"standard-operands did not match",
+ data_start,err_count_out);
+ }
+ mismatch = memcmp(dwarf_arm_standard_opcode_operand_count,
+ prefix_out->pf_opcode_length_table,
+ STANDARD_OPERAND_COUNT_DWARF3);
+ if(!mismatch && err_count_out) {
+ print_header_issue(dbg,"arm (incorrect) operands in use",
+ data_start,err_count_out);
+ }
+ }
+ if (!mismatch) {
+ if (version == 2) {
+ if(err_count_out) {
+ print_header_issue(dbg,
+ "standard DWARF3 operands matched, but is DWARF2 linetable",
+ data_start,err_count_out);
+ }
+ }
+ operand_ck_fail = false;
+ prefix_out->pf_std_op_count =
+ STANDARD_OPERAND_COUNT_DWARF3;
+ }
+ }
+ if (operand_ck_fail) {
+ if (prefix_out->pf_opcode_base >=
+ STANDARD_OPERAND_COUNT_DWARF2) {
+
+ int mismatch =
+ memcmp(dwarf_standard_opcode_operand_count,
+ prefix_out->pf_opcode_length_table,
+ STANDARD_OPERAND_COUNT_DWARF2);
+ if(mismatch) {
+ if(err_count_out) {
+ print_header_issue(dbg,"standard-operands-lengths did not match",
+ data_start,err_count_out);
+ }
+ mismatch = memcmp(dwarf_arm_standard_opcode_operand_count,
+ prefix_out->pf_opcode_length_table,
+ STANDARD_OPERAND_COUNT_DWARF2);
+ if(!mismatch && err_count_out) {
+ print_header_issue(dbg,"arm (incorrect) operand in use",
+ data_start,err_count_out);
+ }
+ }
+
+ if (!mismatch) {
+ operand_ck_fail = false;
+ prefix_out->pf_std_op_count =
+ STANDARD_OPERAND_COUNT_DWARF2;
+ }
+ }
+ }
+ if (operand_ck_fail) {
+ /* Here we are not sure what the pf_std_op_count is. */
+ _dwarf_error(dbg, err, DW_DLE_LINE_NUM_OPERANDS_BAD);
+ return (DW_DLV_ERROR);
+ }
}
- laddrs = (Dwarf_Addr *)
- _dwarf_get_alloc(dbg, DW_DLA_ADDR, lcount);
- if (laddrs == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ /* At this point we no longer need to check operand counts. */
+
+
+ directories_count = 0;
+ directories_malloc = 5;
+ prefix_out->pf_include_directories = malloc(sizeof(Dwarf_Small *) *
+ directories_malloc);
+ if (prefix_out->pf_include_directories == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
- loffsets = (Dwarf_Off *)
- _dwarf_get_alloc(dbg, DW_DLA_ADDR, lcount);
- if (loffsets == NULL) {
- _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ memset(prefix_out->pf_include_directories, 0,
+ sizeof(Dwarf_Small *) * directories_malloc);
+
+ while ((*(char *) line_ptr) != '\0') {
+ if (directories_count >= directories_malloc) {
+ Dwarf_Unsigned expand = 2 * directories_malloc;
+ Dwarf_Unsigned bytesalloc = sizeof(Dwarf_Small *) * expand;
+ Dwarf_Small **newdirs =
+ realloc(prefix_out->pf_include_directories,
+ bytesalloc);
+
+ if (!newdirs) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ /* Doubled size, zero out second half. */
+ memset(newdirs + directories_malloc, 0,
+ sizeof(Dwarf_Small *) * directories_malloc);
+ directories_malloc = expand;
+ prefix_out->pf_include_directories = newdirs;
+ }
+ prefix_out->pf_include_directories[directories_count] =
+ line_ptr;
+ line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
+ directories_count++;
}
+ prefix_out->pf_include_directories_count = directories_count;
+ line_ptr++;
- for (i = 0; i < lcount; i++) {
- laddrs[i] = linebuf[i]->li_address;
- loffsets[i] = linebuf[i]->li_addr_line.li_offset;
- dwarf_dealloc(dbg, linebuf[i], DW_DLA_LINE);
+ files_count = 0;
+ files_malloc = 5;
+ prefix_out->pf_line_table_file_entries =
+ malloc(sizeof(struct Line_Table_File_Entry_s) * files_malloc);
+ if (prefix_out->pf_line_table_file_entries == NULL) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
- dwarf_dealloc(dbg, linebuf, DW_DLA_LIST);
- *returncount = lcount;
- *offs = loffsets;
- *addrs = laddrs;
+ memset(prefix_out->pf_line_table_file_entries, 0,
+ sizeof(struct Line_Table_File_Entry_s) * files_malloc);
+
+ while (*(char *) line_ptr != '\0') {
+ Dwarf_Unsigned utmp;
+ Dwarf_Unsigned dir_index = 0;
+ Dwarf_Unsigned lastmod = 0;
+ Dwarf_Unsigned file_length = 0;
+ struct Line_Table_File_Entry_s *curline;
+ Dwarf_Word leb128_length = 0;
+
+
+ if (files_count >= files_malloc) {
+ Dwarf_Unsigned expand = 2 * files_malloc;
+ struct Line_Table_File_Entry_s *newfiles =
+ realloc(prefix_out->pf_line_table_file_entries,
+ sizeof(struct Line_Table_File_Entry_s) *
+ expand);
+ if (!newfiles) {
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ memset(newfiles + files_malloc, 0,
+ sizeof(struct Line_Table_File_Entry_s) *
+ files_malloc);
+ files_malloc = expand;
+ prefix_out->pf_line_table_file_entries = newfiles;
+ }
+ curline = prefix_out->pf_line_table_file_entries + files_count;
+
+ curline->lte_filename = line_ptr;
+ line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp);
+ dir_index = (Dwarf_Sword) utmp;
+ if (dir_index > directories_count) {
+ _dwarf_error(dbg, err, DW_DLE_DIR_INDEX_BAD);
+ return (DW_DLV_ERROR);
+ }
+ curline->lte_directory_index = dir_index;
+
+ lastmod = _dwarf_decode_u_leb128(line_ptr, &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+ curline->lte_last_modification_time = lastmod;
+
+ /* Skip over file length. */
+ file_length = _dwarf_decode_u_leb128(line_ptr, &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+ curline->lte_length_of_file = file_length;
+
+ ++files_count;
+
+ }
+ prefix_out->pf_files_count = files_count;
+ /* Skip trailing nul byte */
+ ++line_ptr;
+
+
+ lp_begin = prefix_out->pf_line_prologue_start +
+ prefix_out->pf_prologue_length;
+ if (line_ptr != lp_begin) {
+ if(line_ptr > lp_begin) {
+ _dwarf_error(dbg, err, DW_DLE_LINE_PROLOG_LENGTH_BAD);
+ return (DW_DLV_ERROR);
+ } else {
+ /* Bug in compiler. These
+ * bytes are really part of the instruction
+ * stream. The prefix_out->pf_prologue_length is
+ * wrong (12 too high). */
+ if(bogus_bytes_ptr) {
+ *bogus_bytes_ptr = line_ptr;
+ }
+ if(bogus_bytes) {
+ /* How far off things are. We expect the
+ value 12 ! */
+ *bogus_bytes = (lp_begin - line_ptr);
+ }
+ }
+ /* Ignore the lp_begin calc. Assume line_ptr right.
+ Making up for compiler bug. */
+ lp_begin = line_ptr;
+
+ }
+
+ *updated_data_start_out = lp_begin;
return DW_DLV_OK;
}
+
+
+/* Initialize the Line_Table_Prefix_s struct.
+ memset is not guaranteed a portable initializer, but works
+ fine for current architectures. AFAIK.
+*/
+void
+dwarf_init_line_table_prefix(struct Line_Table_Prefix_s *pf)
+{
+ memset(pf, 0, sizeof(*pf));
+}
+
+/* Free any malloc'd area. of the Line_Table_Prefix_s struct. */
+void
+dwarf_free_line_table_prefix(struct Line_Table_Prefix_s *pf)
+{
+ if (pf->pf_include_directories) {
+ free(pf->pf_include_directories);
+ pf->pf_include_directories = 0;
+ }
+ if (pf->pf_line_table_file_entries) {
+ free(pf->pf_line_table_file_entries);
+ pf->pf_line_table_file_entries = 0;
+ }
+ return;
+}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_line.h b/usr/src/tools/ctf/dwarf/common/dwarf_line.h
index b824dcb774..66d6062754 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_line.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_line.h
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000, 2004, 2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -44,6 +45,12 @@
*/
#define MAX_LINE_DIFF UINT_MAX
+/* This is for a sanity check on line
+ table extended opcodes.
+ It is entirely arbitrary, and 100 is surely too small if
+ someone was inserting strings in the opcode. */
+#define DW_LNE_LEN_MAX 100
+
/*
This structure is used to build a list of all the
@@ -82,7 +89,11 @@ typedef struct Dwarf_Line_Context_s *Dwarf_Line_Context;
struct Dwarf_Line_Context_s {
/*
Points to a chain of entries providing info about source files
- for the current set of Dwarf_Line structures. */
+ for the current set of Dwarf_Line structures. File number
+ 'li_file 1' is last on the list, the first list entry is the
+ file numbered lc_file_entry_count. The numbering of the file
+ names matches the dwarf2/3 line table specification file table
+ and DW_LNE_define_file numbering rules. */
Dwarf_File_Entry lc_file_entries;
/*
Count of number of source files for this set of Dwarf_Line
@@ -103,6 +114,9 @@ struct Dwarf_Line_Context_s {
Dwarf_Small *lc_compilation_directory;
Dwarf_Debug lc_dbg;
+
+ Dwarf_Half lc_version_number; /* DWARF2/3 version number, 2
+ for DWARF2, 3 for DWARF3. */
};
@@ -124,12 +138,27 @@ struct Dwarf_Line_s {
union addr_or_line_s {
struct li_inner_s {
Dwarf_Sword li_file; /* int identifying src file */
+ /* li_file is a number 1-N, indexing into a conceptual
+ source file table as described in dwarf2/3 spec line
+ table doc. (see Dwarf_File_Entry lc_file_entries; and
+ Dwarf_Sword lc_file_entry_count;) */
+
Dwarf_Sword li_line; /* source file line number. */
Dwarf_Half li_column; /* source file column number */
- Dwarf_Small li_is_stmt; /* indicate start of stmt */
- Dwarf_Small li_basic_block; /* indicate start basic block */
- Dwarf_Small li_end_sequence; /* first post sequence
- instr */
+ Dwarf_Small li_isa;
+
+ /* To save space, use bit flags. */
+ /* indicate start of stmt */
+ unsigned char li_is_stmt:1;
+
+ /* indicate start basic block */
+ unsigned char li_basic_block:1;
+
+ /* first post sequence instr */
+ unsigned char li_end_sequence:1;
+
+ unsigned char li_prologue_end:1;
+ unsigned char li_epilogue_begin:1;
} li_l_data;
Dwarf_Off li_offset; /* for rqs */
} li_addr_line;
@@ -137,13 +166,18 @@ struct Dwarf_Line_s {
};
-int
- _dwarf_line_address_offsets(Dwarf_Debug dbg,
- Dwarf_Die die,
- Dwarf_Addr ** addrs,
- Dwarf_Off ** offs,
- Dwarf_Unsigned * returncount,
- Dwarf_Error * err);
+int _dwarf_line_address_offsets(Dwarf_Debug dbg,
+ Dwarf_Die die,
+ Dwarf_Addr ** addrs,
+ Dwarf_Off ** offs,
+ Dwarf_Unsigned * returncount,
+ Dwarf_Error * err);
+int _dwarf_internal_srclines(Dwarf_Die die,
+ Dwarf_Line ** linebuf,
+ Dwarf_Signed * count,
+ Dwarf_Bool doaddrs,
+ Dwarf_Bool dolines, Dwarf_Error * error);
+
/* The LOP, WHAT_IS_OPCODE stuff is here so it can
@@ -152,27 +186,27 @@ int
a macro.
Handling the line section where the header and the
- file being process do not match (unusual, but
+ file being processed do not match (unusual, but
planned for in the design of .debug_line)
is too tricky to recode this several times and keep
it right.
+
+ As it is the code starting up line-reading is duplicated
+ and that is just wrong to do. FIXME!
*/
#define LOP_EXTENDED 1
#define LOP_DISCARD 2
#define LOP_STANDARD 3
#define LOP_SPECIAL 4
-#define HIGHEST_STANDARD_OPCODE DW_LNS_fixed_advance_pc
-
-#define WHAT_IS_OPCODE(type,opcode,base,opcode_length,line_ptr) \
- if( opcode < base ) { \
+#define WHAT_IS_OPCODE(type,opcode,base,opcode_length,line_ptr,highest_std) \
+ if( (opcode) < (base) ) { \
/* we know we must treat as a standard op \
or a special case. \
*/ \
- if(opcode == DW_EXTENDED_OPCODE) { \
+ if((opcode) == DW_EXTENDED_OPCODE) { \
type = LOP_EXTENDED; \
- } else if( (HIGHEST_STANDARD_OPCODE+1) >= \
- base) { \
+ } else if( ((highest_std)+1) >= (base)) { \
/* == Standard case: compile of \
dwarf_line.c and object \
have same standard op codes set. \
@@ -196,23 +230,6 @@ int
** out-of-date dwarf reader to read newer \
** line table data transparently. \
*/ \
- int opcnt = opcode_length[opcode]; \
- int oc; \
- for(oc = 0; oc < opcnt; oc++) \
- { \
- /* \
- ** Read and discard operands we don't \
- ** understand. \
- ** arbitrary choice of unsigned read. \
- ** signed read would work as well. \
- */ \
- Dwarf_Unsigned utmp2; \
- DECODE_LEB128_UWORD(line_ptr, utmp2) \
- } \
- /* Done processing this, do not \
- do the switch , nor do \
- special op code processing. \
- */ \
type = LOP_DISCARD; \
} \
\
@@ -228,3 +245,87 @@ int
*/
#define MAX_LINE_OP_CODE 255
+
+
+/* The following structs (Line_Table_File_Entry_s,Line_Table_Prefix_s)
+ and functions allow refactoring common code into a single
+ reader routine.
+*/
+/* There can be zero of more of these needed for 1 line prologue. */
+struct Line_Table_File_Entry_s {
+ Dwarf_Small *lte_filename;
+ Dwarf_Unsigned lte_directory_index;
+ Dwarf_Unsigned lte_last_modification_time;
+ Dwarf_Unsigned lte_length_of_file;
+};
+
+/* Data picked up from the line table prologue for a single
+CU. */
+struct Line_Table_Prefix_s {
+
+ /* pf_total_length is the value of the length field for the line
+ table of this CU. So it does not count the length of itself (the
+ length value) for consistency with the say lenghts recorded in
+ DWARF2/3. */
+ Dwarf_Unsigned pf_total_length;
+
+ /* Length of the initial length field itself. */
+ Dwarf_Half pf_length_field_length;
+
+ /* The version is 2 for DWARF2, 3 for DWARF3 */
+ Dwarf_Half pf_version;
+
+ Dwarf_Unsigned pf_prologue_length;
+ Dwarf_Small pf_minimum_instruction_length;
+
+ /* Start and end of this CU line area. pf_line_ptr_start +
+ pf_total_length + pf_length_field_length == pf_line_ptr_end.
+ Meaning pf_line_ptr_start is before the length info. */
+ Dwarf_Small *pf_line_ptr_start;
+ Dwarf_Small *pf_line_ptr_end;
+
+ /* Used to check that decoding of the line prologue is done right. */
+ Dwarf_Small *pf_line_prologue_start;
+
+ Dwarf_Small pf_default_is_stmt;
+ Dwarf_Sbyte pf_line_base;
+ Dwarf_Small pf_line_range;
+
+ /* Highest std opcode (+1). */
+ Dwarf_Small pf_opcode_base;
+
+ /* pf_opcode_base -1 entries (each a count, normally the value of
+ each entry is 0 or 1). */
+ Dwarf_Small *pf_opcode_length_table;
+
+ Dwarf_Unsigned pf_include_directories_count;
+ /* Array of pointers to dir strings. pf_include_directories_count
+ entriesin the array. */
+ Dwarf_Small **pf_include_directories;
+
+ /* Count of entries in line_table_file_entries array. */
+ Dwarf_Unsigned pf_files_count;
+ struct Line_Table_File_Entry_s *pf_line_table_file_entries;
+
+ /* The number to treat as standard ops. This is a special
+ accomodation of gcc using the new standard opcodes but not
+ updating the version number. It's legal dwarf2, but much better
+ for the user to understand as dwarf3 when 'it looks ok'. */
+ Dwarf_Bool pf_std_op_count;
+
+};
+
+void dwarf_init_line_table_prefix(struct Line_Table_Prefix_s *pf);
+void dwarf_free_line_table_prefix(struct Line_Table_Prefix_s *pf);
+
+int dwarf_read_line_table_prefix(Dwarf_Debug dbg,
+ Dwarf_Small * data_start,
+ Dwarf_Unsigned data_length,
+ Dwarf_Small ** updated_data_start_out,
+ struct Line_Table_Prefix_s *prefix_out,
+ /* The following 2 arguments are solely for warning users
+ * when there is a surprising 'gap' in the .debug_line info. */
+ Dwarf_Small ** bogus_bytes_ptr,
+ Dwarf_Unsigned * bogus_bytes_count,
+ Dwarf_Error * err,
+ int * err_count_out);
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_line2.c b/usr/src/tools/ctf/dwarf/common/dwarf_line2.c
new file mode 100644
index 0000000000..634b848167
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_line2.c
@@ -0,0 +1,110 @@
+/*
+
+ Copyright (C) 2000,2002,2004,2005,2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2008-2010 David Anderson, Inc. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+/* This source file used for SGI-IRIX rqs processing.
+ Unused otherwise.
+*/
+
+
+#include "config.h"
+#include "dwarf_incl.h"
+#include <stdio.h>
+#include "dwarf_line.h"
+
+/*
+ Return DW_DLV_OK or, if error,
+ DW_DLV_ERROR.
+
+ Thru pointers, return 2 arrays and a count
+ for rqs.
+*/
+int
+_dwarf_line_address_offsets(Dwarf_Debug dbg,
+ Dwarf_Die die,
+ Dwarf_Addr ** addrs,
+ Dwarf_Off ** offs,
+ Dwarf_Unsigned * returncount,
+ Dwarf_Error * err)
+{
+ Dwarf_Addr *laddrs;
+ Dwarf_Off *loffsets;
+ Dwarf_Signed lcount;
+ Dwarf_Signed i;
+ int res;
+ Dwarf_Line *linebuf;
+
+ res = _dwarf_internal_srclines(die, &linebuf, &lcount, /* addrlist=
+ */ true,
+ /* linelist= */ false, err);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ laddrs = (Dwarf_Addr *)
+ _dwarf_get_alloc(dbg, DW_DLA_ADDR, lcount);
+ if (laddrs == NULL) {
+ dwarf_srclines_dealloc(dbg, linebuf, lcount);
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ loffsets = (Dwarf_Off *)
+ _dwarf_get_alloc(dbg, DW_DLA_ADDR, lcount);
+ if (loffsets == NULL) {
+ dwarf_srclines_dealloc(dbg, linebuf, lcount);
+ /* We already allocated what laddrs points at, so we'e better
+ deallocate that space since we are not going to return the
+ pointer to the caller. */
+ dwarf_dealloc(dbg, laddrs, DW_DLA_ADDR);
+ _dwarf_error(dbg, err, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ for (i = 0; i < lcount; i++) {
+ laddrs[i] = linebuf[i]->li_address;
+ loffsets[i] = linebuf[i]->li_addr_line.li_offset;
+ }
+ dwarf_srclines_dealloc(dbg, linebuf, lcount);
+ *returncount = lcount;
+ *offs = loffsets;
+ *addrs = laddrs;
+ return DW_DLV_OK;
+}
+
+/*
+ It's impossible for callers of dwarf_srclines() to get to and
+ free all the resources (in particular, the li_context and its
+ lc_file_entries).
+ So this function, new July 2005, does it.
+*/
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_loc.c b/usr/src/tools/ctf/dwarf/common/dwarf_loc.c
index b8f75b90e2..f28b27b630 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_loc.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_loc.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000,2003 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,13 +33,20 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
#include "config.h"
#include "dwarf_incl.h"
#include "dwarf_loc.h"
-
+#include <stdio.h> /* for debugging only. */
+#include <sys/types.h>
/*
Given a Dwarf_Block that represents a location expression,
@@ -54,39 +62,43 @@
*/
static Dwarf_Locdesc *
_dwarf_get_locdesc(Dwarf_Debug dbg,
- Dwarf_Block * loc_block,
- Dwarf_Addr lowpc,
- Dwarf_Addr highpc, Dwarf_Error * error)
+ Dwarf_Block * loc_block,
+ Dwarf_Half address_size,
+ Dwarf_Addr lowpc,
+ Dwarf_Addr highpc,
+ Dwarf_Error * error)
{
/* Size of the block containing the location expression. */
- Dwarf_Unsigned loc_len;
+ Dwarf_Unsigned loc_len = 0;
/* Sweeps the block containing the location expression. */
- Dwarf_Small *loc_ptr;
+ Dwarf_Small *loc_ptr = 0;
/* Current location operator. */
- Dwarf_Small atom;
+ Dwarf_Small atom = 0;
/* Offset of current operator from start of block. */
- Dwarf_Unsigned offset;
+ Dwarf_Unsigned offset = 0;
/* Operands of current location operator. */
Dwarf_Unsigned operand1, operand2;
/* Used to chain the Dwarf_Loc_Chain_s structs. */
- Dwarf_Loc_Chain curr_loc, prev_loc, head_loc = NULL;
+ Dwarf_Loc_Chain curr_loc = NULL;
+ Dwarf_Loc_Chain prev_loc = NULL;
+ Dwarf_Loc_Chain head_loc = NULL;
/* Count of the number of location operators. */
- Dwarf_Unsigned op_count;
+ Dwarf_Unsigned op_count = 0;
/* Contiguous block of Dwarf_Loc's for Dwarf_Locdesc. */
- Dwarf_Loc *block_loc;
+ Dwarf_Loc *block_loc = 0;
/* Dwarf_Locdesc pointer to be returned. */
- Dwarf_Locdesc *locdesc;
+ Dwarf_Locdesc *locdesc = 0;
- Dwarf_Word leb128_length;
- Dwarf_Unsigned i;
+ Dwarf_Word leb128_length = 0;
+ Dwarf_Unsigned i = 0;
/* ***** BEGIN CODE ***** */
@@ -97,341 +109,396 @@ _dwarf_get_locdesc(Dwarf_Debug dbg,
op_count = 0;
while (offset < loc_len) {
- operand1 = 0;
- operand2 = 0;
- op_count++;
-
- atom = *(Dwarf_Small *) loc_ptr;
- loc_ptr++;
- offset++;
-
- curr_loc =
- (Dwarf_Loc_Chain) _dwarf_get_alloc(dbg, DW_DLA_LOC_CHAIN,
- 1);
- if (curr_loc == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (NULL);
- }
- curr_loc->lc_offset = offset;
- curr_loc->lc_atom = atom;
- switch (atom) {
-
- case DW_OP_reg0:
- case DW_OP_reg1:
- case DW_OP_reg2:
- case DW_OP_reg3:
- case DW_OP_reg4:
- case DW_OP_reg5:
- case DW_OP_reg6:
- case DW_OP_reg7:
- case DW_OP_reg8:
- case DW_OP_reg9:
- case DW_OP_reg10:
- case DW_OP_reg11:
- case DW_OP_reg12:
- case DW_OP_reg13:
- case DW_OP_reg14:
- case DW_OP_reg15:
- case DW_OP_reg16:
- case DW_OP_reg17:
- case DW_OP_reg18:
- case DW_OP_reg19:
- case DW_OP_reg20:
- case DW_OP_reg21:
- case DW_OP_reg22:
- case DW_OP_reg23:
- case DW_OP_reg24:
- case DW_OP_reg25:
- case DW_OP_reg26:
- case DW_OP_reg27:
- case DW_OP_reg28:
- case DW_OP_reg29:
- case DW_OP_reg30:
- case DW_OP_reg31:
- break;
-
- case DW_OP_regx:
- operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_lit0:
- case DW_OP_lit1:
- case DW_OP_lit2:
- case DW_OP_lit3:
- case DW_OP_lit4:
- case DW_OP_lit5:
- case DW_OP_lit6:
- case DW_OP_lit7:
- case DW_OP_lit8:
- case DW_OP_lit9:
- case DW_OP_lit10:
- case DW_OP_lit11:
- case DW_OP_lit12:
- case DW_OP_lit13:
- case DW_OP_lit14:
- case DW_OP_lit15:
- case DW_OP_lit16:
- case DW_OP_lit17:
- case DW_OP_lit18:
- case DW_OP_lit19:
- case DW_OP_lit20:
- case DW_OP_lit21:
- case DW_OP_lit22:
- case DW_OP_lit23:
- case DW_OP_lit24:
- case DW_OP_lit25:
- case DW_OP_lit26:
- case DW_OP_lit27:
- case DW_OP_lit28:
- case DW_OP_lit29:
- case DW_OP_lit30:
- case DW_OP_lit31:
- operand1 = atom - DW_OP_lit0;
- break;
-
- case DW_OP_addr:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned,
- loc_ptr, dbg->de_pointer_size);
- loc_ptr += dbg->de_pointer_size;
- offset += dbg->de_pointer_size;
- break;
-
- case DW_OP_const1u:
- operand1 = *(Dwarf_Small *) loc_ptr;
- loc_ptr = loc_ptr + 1;
- offset = offset + 1;
- break;
-
- case DW_OP_const1s:
- operand1 = *(Dwarf_Sbyte *) loc_ptr;
- loc_ptr = loc_ptr + 1;
- offset = offset + 1;
- break;
-
- case DW_OP_const2u:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 2);
- loc_ptr = loc_ptr + 2;
- offset = offset + 2;
- break;
-
- case DW_OP_const2s:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 2);
- loc_ptr = loc_ptr + 2;
- offset = offset + 2;
- break;
-
- case DW_OP_const4u:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 4);
- loc_ptr = loc_ptr + 4;
- offset = offset + 4;
- break;
-
- case DW_OP_const4s:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 4);
- loc_ptr = loc_ptr + 4;
- offset = offset + 4;
- break;
-
- case DW_OP_const8u:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 8);
- loc_ptr = loc_ptr + 8;
- offset = offset + 8;
- break;
-
- case DW_OP_const8s:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 8);
- loc_ptr = loc_ptr + 8;
- offset = offset + 8;
- break;
-
- case DW_OP_constu:
- operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_consts:
- operand1 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_fbreg:
- operand1 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_breg0:
- case DW_OP_breg1:
- case DW_OP_breg2:
- case DW_OP_breg3:
- case DW_OP_breg4:
- case DW_OP_breg5:
- case DW_OP_breg6:
- case DW_OP_breg7:
- case DW_OP_breg8:
- case DW_OP_breg9:
- case DW_OP_breg10:
- case DW_OP_breg11:
- case DW_OP_breg12:
- case DW_OP_breg13:
- case DW_OP_breg14:
- case DW_OP_breg15:
- case DW_OP_breg16:
- case DW_OP_breg17:
- case DW_OP_breg18:
- case DW_OP_breg19:
- case DW_OP_breg20:
- case DW_OP_breg21:
- case DW_OP_breg22:
- case DW_OP_breg23:
- case DW_OP_breg24:
- case DW_OP_breg25:
- case DW_OP_breg26:
- case DW_OP_breg27:
- case DW_OP_breg28:
- case DW_OP_breg29:
- case DW_OP_breg30:
- case DW_OP_breg31:
- operand1 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_bregx:
- /* uleb reg num followed by sleb offset */
- operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
-
- operand2 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_dup:
- case DW_OP_drop:
- break;
-
- case DW_OP_pick:
- operand1 = *(Dwarf_Small *) loc_ptr;
- loc_ptr = loc_ptr + 1;
- offset = offset + 1;
- break;
-
- case DW_OP_over:
- case DW_OP_swap:
- case DW_OP_rot:
- case DW_OP_deref:
- break;
-
- case DW_OP_deref_size:
- operand1 = *(Dwarf_Small *) loc_ptr;
- loc_ptr = loc_ptr + 1;
- offset = offset + 1;
- break;
-
- case DW_OP_xderef:
- break;
-
- case DW_OP_xderef_size:
- operand1 = *(Dwarf_Small *) loc_ptr;
- loc_ptr = loc_ptr + 1;
- offset = offset + 1;
- break;
-
- case DW_OP_abs:
- case DW_OP_and:
- case DW_OP_div:
- case DW_OP_minus:
- case DW_OP_mod:
- case DW_OP_mul:
- case DW_OP_neg:
- case DW_OP_not:
- case DW_OP_or:
- case DW_OP_plus:
- break;
-
- case DW_OP_plus_uconst:
- operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_shl:
- case DW_OP_shr:
- case DW_OP_shra:
- case DW_OP_xor:
- break;
-
- case DW_OP_le:
- case DW_OP_ge:
- case DW_OP_eq:
- case DW_OP_lt:
- case DW_OP_gt:
- case DW_OP_ne:
- break;
-
- case DW_OP_skip:
- case DW_OP_bra:
- READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 2);
- loc_ptr = loc_ptr + 2;
- offset = offset + 2;
- break;
-
- case DW_OP_piece:
- operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
- loc_ptr = loc_ptr + leb128_length;
- offset = offset + leb128_length;
- break;
-
- case DW_OP_nop:
- break;
-
- default:
- _dwarf_error(dbg, error, DW_DLE_LOC_EXPR_BAD);
- return (NULL);
- }
-
-
- curr_loc->lc_number = operand1;
- curr_loc->lc_number2 = operand2;
-
- if (head_loc == NULL)
- head_loc = prev_loc = curr_loc;
- else {
- prev_loc->lc_next = curr_loc;
- prev_loc = curr_loc;
- }
+ operand1 = 0;
+ operand2 = 0;
+ op_count++;
+
+ atom = *(Dwarf_Small *) loc_ptr;
+ loc_ptr++;
+ offset++;
+
+ curr_loc =
+ (Dwarf_Loc_Chain) _dwarf_get_alloc(dbg, DW_DLA_LOC_CHAIN,
+ 1);
+ if (curr_loc == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (NULL);
+ }
+ curr_loc->lc_offset = offset;
+ curr_loc->lc_atom = atom;
+ switch (atom) {
+
+ case DW_OP_reg0:
+ case DW_OP_reg1:
+ case DW_OP_reg2:
+ case DW_OP_reg3:
+ case DW_OP_reg4:
+ case DW_OP_reg5:
+ case DW_OP_reg6:
+ case DW_OP_reg7:
+ case DW_OP_reg8:
+ case DW_OP_reg9:
+ case DW_OP_reg10:
+ case DW_OP_reg11:
+ case DW_OP_reg12:
+ case DW_OP_reg13:
+ case DW_OP_reg14:
+ case DW_OP_reg15:
+ case DW_OP_reg16:
+ case DW_OP_reg17:
+ case DW_OP_reg18:
+ case DW_OP_reg19:
+ case DW_OP_reg20:
+ case DW_OP_reg21:
+ case DW_OP_reg22:
+ case DW_OP_reg23:
+ case DW_OP_reg24:
+ case DW_OP_reg25:
+ case DW_OP_reg26:
+ case DW_OP_reg27:
+ case DW_OP_reg28:
+ case DW_OP_reg29:
+ case DW_OP_reg30:
+ case DW_OP_reg31:
+ break;
+
+ case DW_OP_regx:
+ operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_lit0:
+ case DW_OP_lit1:
+ case DW_OP_lit2:
+ case DW_OP_lit3:
+ case DW_OP_lit4:
+ case DW_OP_lit5:
+ case DW_OP_lit6:
+ case DW_OP_lit7:
+ case DW_OP_lit8:
+ case DW_OP_lit9:
+ case DW_OP_lit10:
+ case DW_OP_lit11:
+ case DW_OP_lit12:
+ case DW_OP_lit13:
+ case DW_OP_lit14:
+ case DW_OP_lit15:
+ case DW_OP_lit16:
+ case DW_OP_lit17:
+ case DW_OP_lit18:
+ case DW_OP_lit19:
+ case DW_OP_lit20:
+ case DW_OP_lit21:
+ case DW_OP_lit22:
+ case DW_OP_lit23:
+ case DW_OP_lit24:
+ case DW_OP_lit25:
+ case DW_OP_lit26:
+ case DW_OP_lit27:
+ case DW_OP_lit28:
+ case DW_OP_lit29:
+ case DW_OP_lit30:
+ case DW_OP_lit31:
+ operand1 = atom - DW_OP_lit0;
+ break;
+
+ case DW_OP_addr:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned,
+ loc_ptr, address_size);
+ loc_ptr += address_size;
+ offset += address_size;
+ break;
+
+ case DW_OP_const1u:
+ operand1 = *(Dwarf_Small *) loc_ptr;
+ loc_ptr = loc_ptr + 1;
+ offset = offset + 1;
+ break;
+
+ case DW_OP_const1s:
+ operand1 = *(Dwarf_Sbyte *) loc_ptr;
+ SIGN_EXTEND(operand1,1);
+ loc_ptr = loc_ptr + 1;
+ offset = offset + 1;
+ break;
+
+ case DW_OP_const2u:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 2);
+ loc_ptr = loc_ptr + 2;
+ offset = offset + 2;
+ break;
+
+ case DW_OP_const2s:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 2);
+ SIGN_EXTEND(operand1,2);
+ loc_ptr = loc_ptr + 2;
+ offset = offset + 2;
+ break;
+
+ case DW_OP_const4u:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 4);
+ loc_ptr = loc_ptr + 4;
+ offset = offset + 4;
+ break;
+
+ case DW_OP_const4s:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 4);
+ SIGN_EXTEND(operand1,4);
+ loc_ptr = loc_ptr + 4;
+ offset = offset + 4;
+ break;
+
+ case DW_OP_const8u:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 8);
+ loc_ptr = loc_ptr + 8;
+ offset = offset + 8;
+ break;
+
+ case DW_OP_const8s:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 8);
+ loc_ptr = loc_ptr + 8;
+ offset = offset + 8;
+ break;
+
+ case DW_OP_constu:
+ operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_consts:
+ operand1 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_fbreg:
+ operand1 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_breg0:
+ case DW_OP_breg1:
+ case DW_OP_breg2:
+ case DW_OP_breg3:
+ case DW_OP_breg4:
+ case DW_OP_breg5:
+ case DW_OP_breg6:
+ case DW_OP_breg7:
+ case DW_OP_breg8:
+ case DW_OP_breg9:
+ case DW_OP_breg10:
+ case DW_OP_breg11:
+ case DW_OP_breg12:
+ case DW_OP_breg13:
+ case DW_OP_breg14:
+ case DW_OP_breg15:
+ case DW_OP_breg16:
+ case DW_OP_breg17:
+ case DW_OP_breg18:
+ case DW_OP_breg19:
+ case DW_OP_breg20:
+ case DW_OP_breg21:
+ case DW_OP_breg22:
+ case DW_OP_breg23:
+ case DW_OP_breg24:
+ case DW_OP_breg25:
+ case DW_OP_breg26:
+ case DW_OP_breg27:
+ case DW_OP_breg28:
+ case DW_OP_breg29:
+ case DW_OP_breg30:
+ case DW_OP_breg31:
+ operand1 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_bregx:
+ /* uleb reg num followed by sleb offset */
+ operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+
+ operand2 = _dwarf_decode_s_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_dup:
+ case DW_OP_drop:
+ break;
+
+ case DW_OP_pick:
+ operand1 = *(Dwarf_Small *) loc_ptr;
+ loc_ptr = loc_ptr + 1;
+ offset = offset + 1;
+ break;
+
+ case DW_OP_over:
+ case DW_OP_swap:
+ case DW_OP_rot:
+ case DW_OP_deref:
+ break;
+
+ case DW_OP_deref_size:
+ operand1 = *(Dwarf_Small *) loc_ptr;
+ loc_ptr = loc_ptr + 1;
+ offset = offset + 1;
+ break;
+
+ case DW_OP_xderef:
+ break;
+
+ case DW_OP_xderef_size:
+ operand1 = *(Dwarf_Small *) loc_ptr;
+ loc_ptr = loc_ptr + 1;
+ offset = offset + 1;
+ break;
+
+ case DW_OP_abs:
+ case DW_OP_and:
+ case DW_OP_div:
+ case DW_OP_minus:
+ case DW_OP_mod:
+ case DW_OP_mul:
+ case DW_OP_neg:
+ case DW_OP_not:
+ case DW_OP_or:
+ case DW_OP_plus:
+ break;
+
+ case DW_OP_plus_uconst:
+ operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_shl:
+ case DW_OP_shr:
+ case DW_OP_shra:
+ case DW_OP_xor:
+ break;
+
+ case DW_OP_le:
+ case DW_OP_ge:
+ case DW_OP_eq:
+ case DW_OP_lt:
+ case DW_OP_gt:
+ case DW_OP_ne:
+ break;
+
+ case DW_OP_skip:
+ case DW_OP_bra:
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 2);
+ loc_ptr = loc_ptr + 2;
+ offset = offset + 2;
+ break;
+
+ case DW_OP_piece:
+ operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+
+ case DW_OP_nop:
+ break;
+ case DW_OP_push_object_address: /* DWARF3 */
+ break;
+ case DW_OP_call2: /* DWARF3 */
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 2);
+ loc_ptr = loc_ptr + 2;
+ offset = offset + 2;
+ break;
+
+ case DW_OP_call4: /* DWARF3 */
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr, 4);
+ loc_ptr = loc_ptr + 4;
+ offset = offset + 4;
+ break;
+ case DW_OP_call_ref: /* DWARF3 */
+ READ_UNALIGNED(dbg, operand1, Dwarf_Unsigned, loc_ptr,
+ dbg->de_length_size);
+ loc_ptr = loc_ptr + dbg->de_length_size;
+ offset = offset + dbg->de_length_size;
+ break;
+
+ case DW_OP_form_tls_address: /* DWARF3f */
+ break;
+ case DW_OP_call_frame_cfa: /* DWARF3f */
+ break;
+ case DW_OP_bit_piece: /* DWARF3f */
+ /* uleb size in bits followed by uleb offset in bits */
+ operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+
+ operand2 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+ break;
+ case DW_OP_implicit_value: /* DWARF4 */
+ /* uleb length of value bytes followed by that
+ number of bytes of the value. */
+ operand1 = _dwarf_decode_u_leb128(loc_ptr, &leb128_length);
+ loc_ptr = loc_ptr + leb128_length;
+ offset = offset + leb128_length;
+
+ /* Second operand is block of 'operand1' bytes of stuff. */
+ /* This using the second operand as a pointer
+ is quite ugly. */
+ /* This gets an ugly compiler warning. Sorry. */
+ operand2 = (Dwarf_Unsigned)(uintptr_t)loc_ptr;
+ offset = offset + operand1;
+ loc_ptr = loc_ptr + operand1;
+ break;
+ case DW_OP_stack_value: /* DWARF4 */
+ break;
+
+
+ default:
+ _dwarf_error(dbg, error, DW_DLE_LOC_EXPR_BAD);
+ return (NULL);
+ }
+
+
+ curr_loc->lc_number = operand1;
+ curr_loc->lc_number2 = operand2;
+
+ if (head_loc == NULL)
+ head_loc = prev_loc = curr_loc;
+ else {
+ prev_loc->lc_next = curr_loc;
+ prev_loc = curr_loc;
+ }
}
block_loc =
- (Dwarf_Loc *) _dwarf_get_alloc(dbg, DW_DLA_LOC_BLOCK, op_count);
+ (Dwarf_Loc *) _dwarf_get_alloc(dbg, DW_DLA_LOC_BLOCK, op_count);
if (block_loc == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (NULL);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (NULL);
}
curr_loc = head_loc;
for (i = 0; i < op_count; i++) {
- (block_loc + i)->lr_atom = curr_loc->lc_atom;
- (block_loc + i)->lr_number = curr_loc->lc_number;
- (block_loc + i)->lr_number2 = curr_loc->lc_number2;
- (block_loc + i)->lr_offset = curr_loc->lc_offset;
-
- prev_loc = curr_loc;
- curr_loc = curr_loc->lc_next;
- dwarf_dealloc(dbg, prev_loc, DW_DLA_LOC_CHAIN);
+ (block_loc + i)->lr_atom = curr_loc->lc_atom;
+ (block_loc + i)->lr_number = curr_loc->lc_number;
+ (block_loc + i)->lr_number2 = curr_loc->lc_number2;
+ (block_loc + i)->lr_offset = curr_loc->lc_offset;
+
+ prev_loc = curr_loc;
+ curr_loc = curr_loc->lc_next;
+ dwarf_dealloc(dbg, prev_loc, DW_DLA_LOC_CHAIN);
}
locdesc =
- (Dwarf_Locdesc *) _dwarf_get_alloc(dbg, DW_DLA_LOCDESC, 1);
+ (Dwarf_Locdesc *) _dwarf_get_alloc(dbg, DW_DLA_LOCDESC, 1);
if (locdesc == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (NULL);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (NULL);
}
locdesc->ld_cents = op_count;
@@ -453,52 +520,53 @@ _dwarf_get_locdesc(Dwarf_Debug dbg,
static int
_dwarf_read_loc_section(Dwarf_Debug dbg,
- Dwarf_Block * return_block,
- Dwarf_Addr * lowpc, Dwarf_Addr * hipc,
- Dwarf_Off sec_offset, Dwarf_Error * error)
+ Dwarf_Block * return_block,
+ Dwarf_Addr * lowpc, Dwarf_Addr * hipc,
+ Dwarf_Off sec_offset,
+ Dwarf_Half address_size,
+ Dwarf_Error * error)
{
- Dwarf_Small *beg = dbg->de_debug_loc + sec_offset;
- int address_size = dbg->de_pointer_size;
+ Dwarf_Small *beg = dbg->de_debug_loc.dss_data + sec_offset;
Dwarf_Addr start_addr = 0;
Dwarf_Addr end_addr = 0;
Dwarf_Half exprblock_size = 0;
Dwarf_Unsigned exprblock_off =
- 2 * address_size + sizeof(Dwarf_Half);
+ 2 * address_size + sizeof(Dwarf_Half);
- if (sec_offset >= dbg->de_debug_loc_size) {
- /* We're at the end. No more present. */
- return DW_DLV_NO_ENTRY;
+ if (sec_offset >= dbg->de_debug_loc.dss_size) {
+ /* We're at the end. No more present. */
+ return DW_DLV_NO_ENTRY;
}
/* If it goes past end, error */
- if (exprblock_off > dbg->de_debug_loc_size) {
- _dwarf_error(NULL, error, DW_DLE_DEBUG_LOC_SECTION_SHORT);
- return DW_DLV_ERROR;
+ if (exprblock_off > dbg->de_debug_loc.dss_size) {
+ _dwarf_error(NULL, error, DW_DLE_DEBUG_LOC_SECTION_SHORT);
+ return DW_DLV_ERROR;
}
READ_UNALIGNED(dbg, start_addr, Dwarf_Addr, beg, address_size);
READ_UNALIGNED(dbg, end_addr, Dwarf_Addr,
- beg + address_size, address_size);
+ beg + address_size, address_size);
if (start_addr == 0 && end_addr == 0) {
- /* If start_addr and end_addr are 0, it's the end and no
- exprblock_size field follows. */
- exprblock_size = 0;
- exprblock_off -= sizeof(Dwarf_Half);
+ /* If start_addr and end_addr are 0, it's the end and no
+ exprblock_size field follows. */
+ exprblock_size = 0;
+ exprblock_off -= sizeof(Dwarf_Half);
} else if (start_addr == MAX_ADDR) {
- /* end address is a base address, no exprblock_size field here
- either */
- exprblock_size = 0;
- exprblock_off -= sizeof(Dwarf_Half);
+ /* end address is a base address, no exprblock_size field here
+ either */
+ exprblock_size = 0;
+ exprblock_off -= sizeof(Dwarf_Half);
} else {
- READ_UNALIGNED(dbg, exprblock_size, Dwarf_Half,
- beg + 2 * address_size, sizeof(Dwarf_Half));
- /* exprblock_size can be zero, means no expression */
- if ((exprblock_off + exprblock_size) > dbg->de_debug_loc_size) {
- _dwarf_error(NULL, error, DW_DLE_DEBUG_LOC_SECTION_SHORT);
- return DW_DLV_ERROR;
- }
+ READ_UNALIGNED(dbg, exprblock_size, Dwarf_Half,
+ beg + 2 * address_size, sizeof(Dwarf_Half));
+ /* exprblock_size can be zero, means no expression */
+ if ((exprblock_off + exprblock_size) > dbg->de_debug_loc.dss_size) {
+ _dwarf_error(NULL, error, DW_DLE_DEBUG_LOC_SECTION_SHORT);
+ return DW_DLV_ERROR;
+ }
}
#undef MAX_ADDR
*lowpc = start_addr;
@@ -508,37 +576,37 @@ _dwarf_read_loc_section(Dwarf_Debug dbg,
return_block->bl_from_loclist = 1;
return_block->bl_data = beg + exprblock_off;
return_block->bl_section_offset =
- ((Dwarf_Small *) return_block->bl_data) - dbg->de_debug_loc;
+ ((Dwarf_Small *) return_block->bl_data) - dbg->de_debug_loc.dss_data;
return DW_DLV_OK;
}
static int
_dwarf_get_loclist_count(Dwarf_Debug dbg,
- Dwarf_Off loclist_offset,
- int *loclist_count, Dwarf_Error * error)
+ Dwarf_Off loclist_offset,
+ Dwarf_Half address_size,
+ int *loclist_count, Dwarf_Error * error)
{
int count = 0;
Dwarf_Off offset = loclist_offset;
for (;;) {
- Dwarf_Block b;
- Dwarf_Addr lowpc;
- Dwarf_Addr highpc;
- int res = _dwarf_read_loc_section(dbg, &b,
-
- &lowpc, &highpc,
- offset, error);
-
- if (res != DW_DLV_OK) {
- return res;
- }
- offset = b.bl_len + b.bl_section_offset;
- if (lowpc == 0 && highpc == 0) {
- break;
- }
- count++;
+ Dwarf_Block b;
+ Dwarf_Addr lowpc;
+ Dwarf_Addr highpc;
+ int res = _dwarf_read_loc_section(dbg, &b,
+ &lowpc, &highpc,
+ offset, address_size,error);
+
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ offset = b.bl_len + b.bl_section_offset;
+ if (lowpc == 0 && highpc == 0) {
+ break;
+ }
+ count++;
}
*loclist_count = count;
return DW_DLV_OK;
@@ -548,35 +616,36 @@ _dwarf_get_loclist_count(Dwarf_Debug dbg,
*/
static int
_dwarf_setup_loc(Dwarf_Attribute attr,
- Dwarf_Debug * dbg_ret,
- Dwarf_Half * form_ret, Dwarf_Error * error)
+ Dwarf_Debug * dbg_ret,
+ Dwarf_CU_Context *cucontext_ret,
+ Dwarf_Half * form_ret, Dwarf_Error * error)
{
Dwarf_Debug dbg = 0;
Dwarf_Half form = 0;
- int blkres;
+ int blkres = DW_DLV_ERROR;
if (attr == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NULL);
+ return (DW_DLV_ERROR);
}
if (attr->ar_cu_context == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_NO_CU_CONTEXT);
+ return (DW_DLV_ERROR);
}
+ *cucontext_ret = attr->ar_cu_context;
dbg = attr->ar_cu_context->cc_dbg;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_ATTR_DBG_NULL);
+ return (DW_DLV_ERROR);
}
*dbg_ret = dbg;
blkres = dwarf_whatform(attr, &form, error);
if (blkres != DW_DLV_OK) {
- _dwarf_error(dbg, error, DW_DLE_LOC_EXPR_BAD);
- return blkres;
+ _dwarf_error(dbg, error, DW_DLE_LOC_EXPR_BAD);
+ return blkres;
}
*form_ret = form;
-
return DW_DLV_OK;
}
@@ -584,24 +653,20 @@ _dwarf_setup_loc(Dwarf_Attribute attr,
*/
static int
_dwarf_get_loclist_header_start(Dwarf_Debug dbg,
- Dwarf_Attribute attr,
- Dwarf_Unsigned * loclist_offset,
- Dwarf_Error * error)
+ Dwarf_Attribute attr,
+ Dwarf_Unsigned * loclist_offset,
+ Dwarf_Error * error)
{
- int secload = 0;
int blkres = dwarf_formudata(attr, loclist_offset, error);
-
if (blkres != DW_DLV_OK) {
- return (blkres);
+ return (blkres);
}
- if (!dbg->de_debug_loc) {
- secload = _dwarf_load_section(dbg,
- dbg->de_debug_loc_index,
- &dbg->de_debug_loc, error);
- if (secload != DW_DLV_OK) {
- return secload;
- }
+ if (!dbg->de_debug_loc.dss_data) {
+ int secload = _dwarf_load_section(dbg, &dbg->de_debug_loc,error);
+ if (secload != DW_DLV_OK) {
+ return secload;
+ }
}
return DW_DLV_OK;
}
@@ -614,23 +679,22 @@ static void
_dwarf_cleanup_llbuf(Dwarf_Debug dbg, Dwarf_Locdesc ** llbuf, int count)
{
int i;
-
for (i = 0; i < count; ++i) {
- dwarf_dealloc(dbg, llbuf[i]->ld_s, DW_DLA_LOC_BLOCK);
- dwarf_dealloc(dbg, llbuf[i], DW_DLA_LOCDESC);
+ dwarf_dealloc(dbg, llbuf[i]->ld_s, DW_DLA_LOC_BLOCK);
+ dwarf_dealloc(dbg, llbuf[i], DW_DLA_LOCDESC);
}
dwarf_dealloc(dbg, llbuf, DW_DLA_LIST);
}
/*
- Handles simple location entries and loclists.
- Returns all the Locdesc's thru llbuf.
-
+ Handles simple location entries and loclists.
+ Returns all the Locdesc's thru llbuf.
+
*/
int
dwarf_loclist_n(Dwarf_Attribute attr,
- Dwarf_Locdesc *** llbuf_out,
- Dwarf_Signed * listlen_out, Dwarf_Error * error)
+ Dwarf_Locdesc *** llbuf_out,
+ Dwarf_Signed * listlen_out, Dwarf_Error * error)
{
Dwarf_Debug dbg;
@@ -650,110 +714,123 @@ dwarf_loclist_n(Dwarf_Attribute attr,
Dwarf_Addr highpc = 0;
Dwarf_Signed listlen = 0;
Dwarf_Locdesc **llbuf = 0;
+ Dwarf_CU_Context cucontext = 0;
+ unsigned address_size = 0;
- int blkres;
- int setup_res;
+ int blkres = DW_DLV_ERROR;
+ int setup_res = DW_DLV_ERROR;
/* ***** BEGIN CODE ***** */
- setup_res = _dwarf_setup_loc(attr, &dbg, &form, error);
+ setup_res = _dwarf_setup_loc(attr, &dbg,&cucontext, &form, error);
if (setup_res != DW_DLV_OK) {
- return setup_res;
+ return setup_res;
}
+ address_size = cucontext->cc_address_size;
/* If this is a form_block then it's a location expression. If it's
DW_FORM_data4 or DW_FORM_data8 it's a loclist offset */
- if (form == DW_FORM_data4 || form == DW_FORM_data8) {
-
- /* A reference to .debug_loc, with an offset in .debug_loc of a
- loclist */
- Dwarf_Unsigned loclist_offset = 0;
- int off_res;
- int count_res;
- int loclist_count;
- int lli;
-
- off_res = _dwarf_get_loclist_header_start(dbg,
- attr, &loclist_offset,
- error);
- if (off_res != DW_DLV_OK) {
- return off_res;
- }
- count_res = _dwarf_get_loclist_count(dbg, loclist_offset,
- &loclist_count, error);
- listlen = loclist_count;
- if (count_res != DW_DLV_OK) {
- return count_res;
- }
- if (loclist_count == 0) {
- return DW_DLV_NO_ENTRY;
- }
-
- llbuf = (Dwarf_Locdesc **)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, loclist_count);
- if (!llbuf) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- for (lli = 0; lli < loclist_count; ++lli) {
- blkres = _dwarf_read_loc_section(dbg, &loc_block,
- &lowpc,
- &highpc,
- loclist_offset, error);
- if (blkres != DW_DLV_OK) {
- _dwarf_cleanup_llbuf(dbg, llbuf, lli);
- return (blkres);
- }
- locdesc = _dwarf_get_locdesc(dbg, &loc_block,
- lowpc, highpc, error);
- if (locdesc == NULL) {
- _dwarf_cleanup_llbuf(dbg, llbuf, lli);
- /* low level error already set: let it be passed back */
- return (DW_DLV_ERROR);
- }
- llbuf[lli] = locdesc;
-
- /* Now get to next loclist entry offset. */
- loclist_offset = loc_block.bl_section_offset +
- loc_block.bl_len;
- }
+ if (((cucontext->cc_version_stamp == CURRENT_VERSION_STAMP ||
+ cucontext->cc_version_stamp == CURRENT_VERSION_STAMP3) &&
+ (form == DW_FORM_data4 || form == DW_FORM_data8)) ||
+ (cucontext->cc_version_stamp == CURRENT_VERSION_STAMP4 &&
+ form == DW_FORM_sec_offset))
+ {
+
+
+ /* A reference to .debug_loc, with an offset in .debug_loc of a
+ loclist */
+ Dwarf_Unsigned loclist_offset = 0;
+ int off_res = DW_DLV_ERROR;
+ int count_res = DW_DLV_ERROR;
+ int loclist_count;
+ int lli;
+
+ off_res = _dwarf_get_loclist_header_start(dbg,
+ attr, &loclist_offset,
+ error);
+ if (off_res != DW_DLV_OK) {
+ return off_res;
+ }
+ count_res = _dwarf_get_loclist_count(dbg, loclist_offset,
+ address_size,
+ &loclist_count, error);
+ listlen = loclist_count;
+ if (count_res != DW_DLV_OK) {
+ return count_res;
+ }
+ if (loclist_count == 0) {
+ return DW_DLV_NO_ENTRY;
+ }
+
+ llbuf = (Dwarf_Locdesc **)
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, loclist_count);
+ if (!llbuf) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ for (lli = 0; lli < loclist_count; ++lli) {
+ blkres = _dwarf_read_loc_section(dbg, &loc_block,
+ &lowpc,
+ &highpc,
+ loclist_offset,
+ address_size,
+ error);
+ if (blkres != DW_DLV_OK) {
+ _dwarf_cleanup_llbuf(dbg, llbuf, lli);
+ return (blkres);
+ }
+ locdesc = _dwarf_get_locdesc(dbg, &loc_block,
+ address_size,
+ lowpc, highpc, error);
+ if (locdesc == NULL) {
+ _dwarf_cleanup_llbuf(dbg, llbuf, lli);
+ /* low level error already set: let it be passed back */
+ return (DW_DLV_ERROR);
+ }
+ llbuf[lli] = locdesc;
+
+ /* Now get to next loclist entry offset. */
+ loclist_offset = loc_block.bl_section_offset +
+ loc_block.bl_len;
+ }
} else {
- Dwarf_Block *tblock = 0;
-
- blkres = dwarf_formblock(loc_attr, &tblock, error);
- if (blkres != DW_DLV_OK) {
- return (blkres);
- }
- loc_block = *tblock;
- /* We copied tblock contents to the stack var, so can dealloc
- tblock now. Avoids leaks. */
- dwarf_dealloc(dbg, tblock, DW_DLA_BLOCK);
- listlen = 1; /* One by definition of a location
- entry. */
- lowpc = 0; /* HACK */
- highpc = (Dwarf_Unsigned) (-1LL); /* HACK */
-
- /* An empty location description (block length 0) means the
- code generator emitted no variable, the variable was not
- generated, it was unused or perhaps never tested after being
- set. Dwarf2, section 2.4.1 In other words, it is not an
- error, and we don't test for block length 0 specially here. */
- locdesc = _dwarf_get_locdesc(dbg, &loc_block,
- lowpc, highpc, error);
- if (locdesc == NULL) {
- /* low level error already set: let it be passed back */
- return (DW_DLV_ERROR);
- }
- llbuf = (Dwarf_Locdesc **)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, listlen);
- if (!llbuf) {
- /* Free the locdesc we allocated but won't use. */
- dwarf_dealloc(dbg, locdesc, DW_DLA_LOCDESC);
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
- llbuf[0] = locdesc;
+ Dwarf_Block *tblock = 0;
+
+ blkres = dwarf_formblock(loc_attr, &tblock, error);
+ if (blkres != DW_DLV_OK) {
+ return (blkres);
+ }
+ loc_block = *tblock;
+ /* We copied tblock contents to the stack var, so can dealloc
+ tblock now. Avoids leaks. */
+ dwarf_dealloc(dbg, tblock, DW_DLA_BLOCK);
+ listlen = 1; /* One by definition of a location entry. */
+ lowpc = 0; /* HACK */
+ highpc = (Dwarf_Unsigned) (-1LL); /* HACK */
+
+ /* An empty location description (block length 0) means the
+ code generator emitted no variable, the variable was not
+ generated, it was unused or perhaps never tested after being
+ set. Dwarf2, section 2.4.1 In other words, it is not an
+ error, and we don't test for block length 0 specially here. */
+ locdesc = _dwarf_get_locdesc(dbg, &loc_block,
+ address_size,
+ lowpc, highpc, error);
+ if (locdesc == NULL) {
+ /* low level error already set: let it be passed back */
+ return (DW_DLV_ERROR);
+ }
+ llbuf = (Dwarf_Locdesc **)
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, listlen);
+ if (!llbuf) {
+ /* Free the locdesc we allocated but won't use. */
+ dwarf_dealloc(dbg, locdesc, DW_DLA_LOCDESC);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+ llbuf[0] = locdesc;
}
*llbuf_out = llbuf;
@@ -761,27 +838,27 @@ dwarf_loclist_n(Dwarf_Attribute attr,
return (DW_DLV_OK);
}
+
/*
- Handles only a location expression.
- If called on a loclist, just returns one of those.
- Cannot not handle a real loclist.
- It returns the location expression as a loclist with
- a single entry.
- See dwarf_loclist_n() which handles any number
+ Handles only a location expression.
+ If called on a loclist, just returns one of those.
+ Cannot not handle a real loclist.
+ It returns the location expression as a loclist with
+ a single entry.
+ See dwarf_loclist_n() which handles any number
of location list entries.
- This is the original definition, and it simply
- does not work for loclists. Kept for compatibility.
+ This is the original definition, and it simply
+ does not work for loclists. Kept for compatibility.
*/
int
dwarf_loclist(Dwarf_Attribute attr,
- Dwarf_Locdesc ** llbuf,
- Dwarf_Signed * listlen, Dwarf_Error * error)
+ Dwarf_Locdesc ** llbuf,
+ Dwarf_Signed * listlen, Dwarf_Error * error)
{
Dwarf_Debug dbg;
- /*
- Dwarf_Attribute that describes the DW_AT_location in die, if
+ /* Dwarf_Attribute that describes the DW_AT_location in die, if
present. */
Dwarf_Attribute loc_attr = attr;
@@ -794,68 +871,151 @@ dwarf_loclist(Dwarf_Attribute attr,
Dwarf_Half form = 0;
Dwarf_Addr lowpc = 0;
Dwarf_Addr highpc = 0;
+ Dwarf_CU_Context cucontext = 0;
+ unsigned address_size = 0;
- int blkres;
- int setup_res;
+ int blkres = DW_DLV_ERROR;
+ int setup_res = DW_DLV_ERROR;
/* ***** BEGIN CODE ***** */
- setup_res = _dwarf_setup_loc(attr, &dbg, &form, error);
+ setup_res = _dwarf_setup_loc(attr, &dbg, &cucontext, &form, error);
if (setup_res != DW_DLV_OK) {
- return setup_res;
+ return setup_res;
}
+ address_size = cucontext->cc_address_size;
/* If this is a form_block then it's a location expression. If it's
DW_FORM_data4 or DW_FORM_data8 it's a loclist offset */
- if (form == DW_FORM_data4 || form == DW_FORM_data8) {
+ if (((cucontext->cc_version_stamp == CURRENT_VERSION_STAMP ||
+ cucontext->cc_version_stamp == CURRENT_VERSION_STAMP3) &&
+ (form == DW_FORM_data4 || form == DW_FORM_data8)) ||
+ (cucontext->cc_version_stamp == CURRENT_VERSION_STAMP4 &&
+ form == DW_FORM_sec_offset))
+ {
+
+ /* A reference to .debug_loc, with an offset in .debug_loc of a
+ loclist */
+ Dwarf_Unsigned loclist_offset = 0;
+ int off_res = DW_DLV_ERROR;
+
+ off_res = _dwarf_get_loclist_header_start(dbg,
+ attr, &loclist_offset,
+ error);
+ if (off_res != DW_DLV_OK) {
+ return off_res;
+ }
+
+ /* With dwarf_loclist, just read a single entry */
+ blkres = _dwarf_read_loc_section(dbg, &loc_block,
+ &lowpc,
+ &highpc,
+ loclist_offset,
+ address_size,
+ error);
+ if (blkres != DW_DLV_OK) {
+ return (blkres);
+ }
+ } else {
+ Dwarf_Block *tblock = 0;
+
+ blkres = dwarf_formblock(loc_attr, &tblock, error);
+ if (blkres != DW_DLV_OK) {
+ return (blkres);
+ }
+ loc_block = *tblock;
+ /* We copied tblock contents to the stack var, so can dealloc
+ tblock now. Avoids leaks. */
+ dwarf_dealloc(dbg, tblock, DW_DLA_BLOCK);
+ lowpc = 0; /* HACK */
+ highpc = (Dwarf_Unsigned) (-1LL); /* HACK */
+ }
- /* A reference to .debug_loc, with an offset in .debug_loc of a
- loclist */
- Dwarf_Unsigned loclist_offset = 0;
- int off_res;
+ /* An empty location description (block length 0) means the code
+ generator emitted no variable, the variable was not generated,
+ it was unused or perhaps never tested after being set. Dwarf2,
+ section 2.4.1 In other words, it is not an error, and we don't
+ test for block length 0 specially here.
+ See *dwarf_loclist_n() which handles the general case, this case
+ handles only a single location expression. */
+ locdesc = _dwarf_get_locdesc(dbg, &loc_block,
+ address_size,
+ lowpc, highpc, error);
+ if (locdesc == NULL) {
+ /* low level error already set: let it be passed back */
+ return (DW_DLV_ERROR);
+ }
- off_res = _dwarf_get_loclist_header_start(dbg,
- attr, &loclist_offset,
- error);
- if (off_res != DW_DLV_OK) {
- return off_res;
- }
+ *llbuf = locdesc;
+ *listlen = 1;
+ return (DW_DLV_OK);
+}
- /* With dwarf_loclist, just read a single entry */
- blkres = _dwarf_read_loc_section(dbg, &loc_block,
- &lowpc,
- &highpc,
- loclist_offset, error);
- if (blkres != DW_DLV_OK) {
- return (blkres);
- }
+/*
+ Handles only a location expression.
+ It returns the location expression as a loclist with
+ a single entry.
+
+ Usable to access dwarf expressions from any source, but
+ specifically from
+ DW_CFA_def_cfa_expression
+ DW_CFA_expression
+ DW_CFA_val_expression
+
+ expression_in must point to a valid dwarf expression
+ set of bytes of length expression_length. Not
+ a DW_FORM_block*, just the expression bytes.
+
+ If the address_size != de_pointer_size this will not work
+ right. FIXME.
+*/
+int
+dwarf_loclist_from_expr(Dwarf_Debug dbg,
+ Dwarf_Ptr expression_in,
+ Dwarf_Unsigned expression_length,
+ Dwarf_Locdesc ** llbuf,
+ Dwarf_Signed * listlen, Dwarf_Error * error)
+{
+ int res = 0;
+ Dwarf_Half addr_size = dbg->de_pointer_size;
+ res = dwarf_loclist_from_expr_a(dbg,expression_in,
+ expression_length, addr_size,llbuf,listlen,error);
+ return res;
+}
+/* New April 27 2009. Adding addr_size argument for the rare
+ * cases where an object has CUs with a different address_size. */
+int
+dwarf_loclist_from_expr_a(Dwarf_Debug dbg,
+ Dwarf_Ptr expression_in,
+ Dwarf_Unsigned expression_length,
+ Dwarf_Half addr_size,
+ Dwarf_Locdesc ** llbuf,
+ Dwarf_Signed * listlen, Dwarf_Error * error)
+{
+ /* Dwarf_Block that describes a single location expression. */
+ Dwarf_Block loc_block;
+ /* A pointer to the current Dwarf_Locdesc read. */
+ Dwarf_Locdesc *locdesc = 0;
+ Dwarf_Addr lowpc = 0;
+ Dwarf_Addr highpc = (Dwarf_Unsigned) (-1LL);
- } else {
- Dwarf_Block *tblock = 0;
-
- blkres = dwarf_formblock(loc_attr, &tblock, error);
- if (blkres != DW_DLV_OK) {
- return (blkres);
- }
- loc_block = *tblock;
- /* We copied tblock contents to the stack var, so can dealloc
- tblock now. Avoids leaks. */
- dwarf_dealloc(dbg, tblock, DW_DLA_BLOCK);
- lowpc = 0; /* HACK */
- highpc = (Dwarf_Unsigned) (-1LL); /* HACK */
- }
+ memset(&loc_block,0,sizeof(loc_block));
+ loc_block.bl_len = expression_length;
+ loc_block.bl_data = expression_in;
+ loc_block.bl_from_loclist = 0; /* Not from loclist. */
+ loc_block.bl_section_offset = 0; /* Fake. Not meaningful. */
/* An empty location description (block length 0) means the code
- generator emitted no variable, the variable was not generated,
- it was unused or perhaps never tested after being set. Dwarf2,
- section 2.4.1 In other words, it is not an error, and we don't
- test for block length 0 specially here. FIXME: doing this once
- is wrong, needs to handle low/hi pc sets. */
- locdesc = _dwarf_get_locdesc(dbg, &loc_block, lowpc, highpc, error);
+ generator emitted no variable, the variable was not generated,
+ it was unused or perhaps never tested after being set. Dwarf2,
+ section 2.4.1 In other words, it is not an error, and we don't
+ test for block length 0 specially here. */
+ locdesc = _dwarf_get_locdesc(dbg, &loc_block,
+ addr_size,lowpc, highpc, error);
if (locdesc == NULL) {
- /* low level error already set: let it be passed back */
- return (DW_DLV_ERROR);
+ /* low level error already set: let it be passed back */
+ return (DW_DLV_ERROR);
}
*llbuf = locdesc;
@@ -866,47 +1026,48 @@ dwarf_loclist(Dwarf_Attribute attr,
/* Usable to read a single loclist or to read a block of them
or to read an entire section's loclists.
+ It's broken because it's not safe to read a loclist entry
+ when we do not know the address size (in any object where
+ address size can vary by compilation unit).
*/
/*ARGSUSED*/ int
dwarf_get_loclist_entry(Dwarf_Debug dbg,
- Dwarf_Unsigned offset,
- Dwarf_Addr * hipc_offset,
- Dwarf_Addr * lopc_offset,
- Dwarf_Ptr * data,
- Dwarf_Unsigned * entry_len,
- Dwarf_Unsigned * next_entry,
- Dwarf_Error * error)
+ Dwarf_Unsigned offset,
+ Dwarf_Addr * hipc_offset,
+ Dwarf_Addr * lopc_offset,
+ Dwarf_Ptr * data,
+ Dwarf_Unsigned * entry_len,
+ Dwarf_Unsigned * next_entry,
+ Dwarf_Error * error)
{
Dwarf_Block b;
- Dwarf_Addr lowpc;
- Dwarf_Addr highpc;
- int res;
-
- if (!dbg->de_debug_loc) {
- int secload = _dwarf_load_section(dbg,
- dbg->de_debug_loc_index,
- &dbg->de_debug_loc,
- error);
-
- if (secload != DW_DLV_OK) {
- return secload;
- }
+ Dwarf_Addr lowpc = 0;
+ Dwarf_Addr highpc = 0;
+ Dwarf_Half address_size = 0;
+ int res = DW_DLV_ERROR;
+
+ if (!dbg->de_debug_loc.dss_data) {
+ int secload = _dwarf_load_section(dbg, &dbg->de_debug_loc,error);
+ if (secload != DW_DLV_OK) {
+ return secload;
+ }
}
+ /* FIXME: address_size is not necessarily the same in every frame. */
+ address_size = dbg->de_pointer_size;
res = _dwarf_read_loc_section(dbg,
- &b, &lowpc, &highpc, offset, error);
+ &b, &lowpc, &highpc, offset,
+ address_size,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
*hipc_offset = highpc;
*lopc_offset = lowpc;
*entry_len = b.bl_len;
*data = b.bl_data;
*next_entry = b.bl_len + b.bl_section_offset;
-
return DW_DLV_OK;
+}
-
-}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_loc.h b/usr/src/tools/ctf/dwarf/common/dwarf_loc.h
index c79921f64c..685d199f29 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_loc.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_loc.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000, 2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_macro.c b/usr/src/tools/ctf/dwarf/common/dwarf_macro.c
index 5c8aace1ec..e1ff976d8c 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_macro.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_macro.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,12 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
@@ -39,6 +46,9 @@
#include "dwarf_incl.h"
#include <stdio.h>
#include <limits.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
#include "dwarf_macro.h"
@@ -47,11 +57,11 @@
#define SPACE ' '
/*
- Given the dwarf macro string, return a pointer to
- the value. Returns pointer to 0 byte at end of string
- if no value found (meaning the value is the empty string).
+ Given the dwarf macro string, return a pointer to
+ the value. Returns pointer to 0 byte at end of string
+ if no value found (meaning the value is the empty string).
- Only understands well-formed dwarf macinfo strings.
+ Only understands well-formed dwarf macinfo strings.
*/
char *
dwarf_find_macro_value_start(char *str)
@@ -60,21 +70,21 @@ dwarf_find_macro_value_start(char *str)
int funclike = 0;
for (lcp = str; *lcp; ++lcp) {
- switch (*lcp) {
- case LEFTPAREN:
- funclike = 1;
- break;
- case RIGHTPAREN:
- /* lcp+1 must be a space, and following char is the value */
- return lcp + 2;
- case SPACE:
- /* we allow extraneous spaces inside macro parameter **
- list, just in case... This is not really needed. */
- if (!funclike) {
- return lcp + 1;
- }
- break;
- }
+ switch (*lcp) {
+ case LEFTPAREN:
+ funclike = 1;
+ break;
+ case RIGHTPAREN:
+ /* lcp+1 must be a space, and following char is the value */
+ return lcp + 2;
+ case SPACE:
+ /* we allow extraneous spaces inside macro parameter **
+ list, just in case... This is not really needed. */
+ if (!funclike) {
+ return lcp + 1;
+ }
+ break;
+ }
}
/* never found value: returns pointer to the 0 byte at end of
string */
@@ -91,211 +101,248 @@ dwarf_find_macro_value_start(char *str)
STARTERMAX is set so that the array need not be expanded for
most files: it is the initial include file depth.
*/
-static Dwarf_Signed *st_base;
-static long max;
-static long next_to_use;
-static int was_fault = 0;
+struct macro_stack_s {
+ Dwarf_Signed *st_base;
+ long max;
+ long next_to_use;
+ int was_fault;
+};
+
+static void _dwarf_reset_index_macro_stack(struct macro_stack_s *ms);
+static void
+free_macro_stack(Dwarf_Debug dbg, struct macro_stack_s *ms)
+{
+ dwarf_dealloc(dbg,ms->st_base,DW_DLA_STRING);
+ _dwarf_reset_index_macro_stack(ms);
+}
#define STARTERMAX 10
static void
-_dwarf_reset_index_stack(void)
+_dwarf_reset_index_macro_stack(struct macro_stack_s *ms)
{
- next_to_use = 0;
- was_fault = 0;
+ ms->st_base = 0;
+ ms->max = 0;
+ ms->next_to_use = 0;
+ ms->was_fault = 0;
}
static int
-_dwarf_mac_push_index(Dwarf_Debug dbg, Dwarf_Signed indx)
+_dwarf_macro_stack_push_index(Dwarf_Debug dbg, Dwarf_Signed indx,
+ struct macro_stack_s *ms)
{
Dwarf_Signed *newbase;
- if (next_to_use >= max) {
- long new_size;
-
- if (max == 0) {
- max = STARTERMAX;
- }
- new_size = max * 2;
- newbase =
- _dwarf_get_alloc(dbg, DW_DLA_STRING,
- new_size * sizeof(Dwarf_Signed));
- if (newbase == 0) {
- /* just leave the old array in place */
- was_fault = 1;
- return DW_DLV_ERROR;
- }
- memcpy(newbase, st_base, next_to_use * sizeof(Dwarf_Signed));
- dwarf_dealloc(dbg, st_base, DW_DLA_STRING);
- st_base = newbase;
- max = new_size;
+ if (ms->next_to_use >= ms->max) {
+ long new_size;
+
+ if (ms->max == 0) {
+ ms->max = STARTERMAX;
+ }
+ new_size = ms->max * 2;
+ newbase =
+ _dwarf_get_alloc(dbg, DW_DLA_STRING,
+ new_size * sizeof(Dwarf_Signed));
+ if (newbase == 0) {
+ /* just leave the old array in place */
+ ms->was_fault = 1;
+ return DW_DLV_ERROR;
+ }
+ if(ms->st_base) {
+ memcpy(newbase, ms->st_base,
+ ms->next_to_use * sizeof(Dwarf_Signed));
+ dwarf_dealloc(dbg, ms->st_base, DW_DLA_STRING);
+ }
+ ms->st_base = newbase;
+ ms->max = new_size;
}
- st_base[next_to_use] = indx;
- ++next_to_use;
+ ms->st_base[ms->next_to_use] = indx;
+ ++ms->next_to_use;
return DW_DLV_OK;
}
+
static Dwarf_Signed
-_dwarf_mac_pop_index(void)
+_dwarf_macro_stack_pop_index(struct macro_stack_s *ms)
{
- if (was_fault) {
- return -1;
+ if (ms->was_fault) {
+ return -1;
}
- if (next_to_use > 0) {
- next_to_use--;
- return (*(st_base + next_to_use));
+ if (ms->next_to_use > 0) {
+ ms->next_to_use--;
+ return (ms->st_base[ms->next_to_use]);
+ } else {
+ ms->was_fault = 1;
}
return -1;
}
/* starting at macro_offset in .debug_macinfo,
- if maximum_count is 0, treat as if it is infinite.
- get macro data up thru
- maximum_count entries or the end of a compilation
- unit's entries (whichever comes first).
+ if maximum_count is 0, treat as if it is infinite.
+ get macro data up thru
+ maximum_count entries or the end of a compilation
+ unit's entries (whichever comes first).
*/
int
dwarf_get_macro_details(Dwarf_Debug dbg,
- Dwarf_Off macro_offset,
- Dwarf_Unsigned maximum_count,
- Dwarf_Signed * entry_count,
- Dwarf_Macro_Details ** details,
- Dwarf_Error * error)
+ Dwarf_Off macro_offset,
+ Dwarf_Unsigned maximum_count,
+ Dwarf_Signed * entry_count,
+ Dwarf_Macro_Details ** details,
+ Dwarf_Error * error)
{
- Dwarf_Small *macro_base;
- Dwarf_Small *pnext;
- Dwarf_Unsigned endloc;
- unsigned char uc;
- unsigned long depth;
-
- int res;
-
+ Dwarf_Small *macro_base = 0;
+ Dwarf_Small *pnext = 0;
+ Dwarf_Unsigned endloc = 0;
+ unsigned char uc = 0;
+ unsigned long depth = 0;
+ /* By section 6.3.2 Dwarf3 draft 8/9,
+ the base file should appear as
+ DW_MACINFO_start_file. See
+ http://gcc.gnu.org/ml/gcc-bugs/2005-02/msg03442.html
+ on "[Bug debug/20253] New: [3.4/4.0 regression]:
+ Macro debug info broken due to lexer change" for how
+ gcc is broken in some versions. We no longer use
+ depth as a stopping point, it's not needed as a
+ stopping point anyway. */
+ int res = 0;
/* count space used by strings */
unsigned long str_space = 0;
int done = 0;
- unsigned long space_needed;
- unsigned long string_offset;
- Dwarf_Small *return_data;
- Dwarf_Small *pdata;
+ unsigned long space_needed = 0;
+ unsigned long string_offset = 0;
+ Dwarf_Small *return_data = 0;
+ Dwarf_Small *pdata = 0;
unsigned long final_count = 0;
Dwarf_Signed fileindex = -1;
- Dwarf_Small *latest_str_loc;
+ Dwarf_Small *latest_str_loc = 0;
+ struct macro_stack_s msdata;
- unsigned long count;
+ unsigned long count = 0;
unsigned long max_count = (unsigned long) maximum_count;
- _dwarf_reset_index_stack();
+ _dwarf_reset_index_macro_stack(&msdata);
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ free_macro_stack(dbg,&msdata);
+ return (DW_DLV_ERROR);
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_macinfo_index,
- &dbg->de_debug_macinfo,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_macinfo,error);
if (res != DW_DLV_OK) {
- return res;
+ free_macro_stack(dbg,&msdata);
+ return res;
}
- macro_base = dbg->de_debug_macinfo;
+ macro_base = dbg->de_debug_macinfo.dss_data;
if (macro_base == NULL) {
- return (DW_DLV_NO_ENTRY);
+ free_macro_stack(dbg,&msdata);
+ return (DW_DLV_NO_ENTRY);
}
- if (macro_offset >= dbg->de_debug_macinfo_size) {
- return (DW_DLV_NO_ENTRY);
+ if (macro_offset >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ return (DW_DLV_NO_ENTRY);
}
pnext = macro_base + macro_offset;
if (maximum_count == 0) {
- max_count = ULONG_MAX;
+ max_count = ULONG_MAX;
}
/* how many entries and how much space will they take? */
endloc = (pnext - macro_base);
- if (endloc >= dbg->de_debug_macinfo_size) {
- if (endloc == dbg->de_debug_macinfo_size) {
- /* normal: found last entry */
- return DW_DLV_NO_ENTRY;
- }
- _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_LENGTH_BAD);
- return (DW_DLV_ERROR);
+ if (endloc >= dbg->de_debug_macinfo.dss_size) {
+ if (endloc == dbg->de_debug_macinfo.dss_size) {
+ /* normal: found last entry */
+ free_macro_stack(dbg,&msdata);
+ return DW_DLV_NO_ENTRY;
+ }
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_LENGTH_BAD);
+ free_macro_stack(dbg,&msdata);
+ return (DW_DLV_ERROR);
}
for (count = 0; !done && count < max_count; ++count) {
- unsigned long slen;
- Dwarf_Word len;
-
- uc = *pnext;
- ++pnext; /* get past the type code */
- switch (uc) {
- case DW_MACINFO_define:
- case DW_MACINFO_undef:
- /* line, string */
- case DW_MACINFO_vendor_ext:
- /* number, string */
- (void) _dwarf_decode_u_leb128(pnext, &len);
-
- pnext += len;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- slen = strlen((char *) pnext) + 1;
- pnext += slen;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- str_space += slen;
- break;
- case DW_MACINFO_start_file:
- /* line, file index */
- (void) _dwarf_decode_u_leb128(pnext, &len);
- pnext += len;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- (void) _dwarf_decode_u_leb128(pnext, &len);
- pnext += len;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- ++depth;
- break;
-
- case DW_MACINFO_end_file:
- if (--depth == 0) {
- done = 1;
- }
- break; /* no string or number here */
- case 0:
- /* end of cu's entries */
- done = 1;
- break;
- default:
- _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- /* bogus macinfo! */
- }
-
- endloc = (pnext - macro_base);
- if (endloc == dbg->de_debug_macinfo_size) {
- done = 1;
- } else if (endloc > dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
+ unsigned long slen;
+ Dwarf_Word len;
+
+ uc = *pnext;
+ ++pnext; /* get past the type code */
+ switch (uc) {
+ case DW_MACINFO_define:
+ case DW_MACINFO_undef:
+ /* line, string */
+ case DW_MACINFO_vendor_ext:
+ /* number, string */
+ (void) _dwarf_decode_u_leb128(pnext, &len);
+
+ pnext += len;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ slen = strlen((char *) pnext) + 1;
+ pnext += slen;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ str_space += slen;
+ break;
+ case DW_MACINFO_start_file:
+ /* line, file index */
+ (void) _dwarf_decode_u_leb128(pnext, &len);
+ pnext += len;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ (void) _dwarf_decode_u_leb128(pnext, &len);
+ pnext += len;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ ++depth;
+ break;
+
+ case DW_MACINFO_end_file:
+ if (--depth == 0) {
+ /* done = 1; no, do not stop here, at least one gcc had
+ the wrong depth settings in the gcc 3.4 timeframe. */
+ }
+ break; /* no string or number here */
+ case 0:
+ /* end of cu's entries */
+ done = 1;
+ break;
+ default:
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ /* bogus macinfo! */
+ }
+
+ endloc = (pnext - macro_base);
+ if (endloc == dbg->de_debug_macinfo.dss_size) {
+ done = 1;
+ } else if (endloc > dbg->de_debug_macinfo.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_LENGTH_BAD);
+ free_macro_stack(dbg,&msdata);
+ return (DW_DLV_ERROR);
+ }
}
if (count == 0) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_INTERNAL_ERR);
- return (DW_DLV_ERROR);
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_INTERNAL_ERR);
+ return (DW_DLV_ERROR);
}
/* we have 'count' array entries to allocate and str_space bytes of
@@ -306,104 +353,115 @@ dwarf_get_macro_details(Dwarf_Debug dbg,
/* extra 2 not really needed */
space_needed = string_offset + str_space + 2;
return_data = pdata =
- _dwarf_get_alloc(dbg, DW_DLA_STRING, space_needed);
+ _dwarf_get_alloc(dbg, DW_DLA_STRING, space_needed);
latest_str_loc = pdata + string_offset;
if (pdata == 0) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_MALLOC_SPACE);
- return (DW_DLV_ERROR);
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_MALLOC_SPACE);
+ return (DW_DLV_ERROR);
}
pnext = macro_base + macro_offset;
done = 0;
-
+
+ /* A series ends with a type code of 0. */
+
for (final_count = 0; !done && final_count < count; ++final_count) {
- unsigned long slen;
- Dwarf_Word len;
- Dwarf_Unsigned v1;
- Dwarf_Macro_Details *pdmd = (Dwarf_Macro_Details *) (pdata +
- final_count
- *
- sizeof
- (Dwarf_Macro_Details));
-
- endloc = (pnext - macro_base);
- if (endloc > dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
- uc = *pnext;
- pdmd->dmd_offset = (pnext - macro_base);
- pdmd->dmd_type = uc;
- pdmd->dmd_fileindex = fileindex;
- pdmd->dmd_lineno = 0;
- pdmd->dmd_macro = 0;
- ++pnext; /* get past the type code */
- switch (uc) {
- case DW_MACINFO_define:
- case DW_MACINFO_undef:
- /* line, string */
- case DW_MACINFO_vendor_ext:
- /* number, string */
- v1 = _dwarf_decode_u_leb128(pnext, &len);
- pdmd->dmd_lineno = v1;
-
- pnext += len;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- slen = strlen((char *) pnext) + 1;
- strcpy((char *) latest_str_loc, (char *) pnext);
- pdmd->dmd_macro = (char *) latest_str_loc;
- latest_str_loc += slen;
- pnext += slen;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- str_space += slen;
- break;
- case DW_MACINFO_start_file:
- /* line, file index */
- v1 = _dwarf_decode_u_leb128(pnext, &len);
- pdmd->dmd_lineno = v1;
- pnext += len;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- v1 = _dwarf_decode_u_leb128(pnext, &len);
- pdmd->dmd_fileindex = v1;
- (void) _dwarf_mac_push_index(dbg, fileindex);
- /* we ignore the error, we just let fileindex ** be -1 when
- we pop this one */
- fileindex = v1;
- pnext += len;
- if (((pnext - macro_base)) >= dbg->de_debug_macinfo_size) {
- _dwarf_error(dbg, error,
- DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- }
- break;
-
- case DW_MACINFO_end_file:
- fileindex = _dwarf_mac_pop_index();
- break; /* no string or number here */
- case 0:
- /* end of cu's entries */
- done = 1;
- break;
- default:
- _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_INCONSISTENT);
- return (DW_DLV_ERROR);
- /* bogus macinfo! */
- }
+ unsigned long slen;
+ Dwarf_Word len;
+ Dwarf_Unsigned v1;
+ Dwarf_Macro_Details *pdmd = (Dwarf_Macro_Details *) (pdata +
+ (final_count * sizeof (Dwarf_Macro_Details)));
+
+ endloc = (pnext - macro_base);
+ if (endloc > dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_LENGTH_BAD);
+ return (DW_DLV_ERROR);
+ }
+ uc = *pnext;
+ pdmd->dmd_offset = (pnext - macro_base);
+ pdmd->dmd_type = uc;
+ pdmd->dmd_fileindex = fileindex;
+ pdmd->dmd_lineno = 0;
+ pdmd->dmd_macro = 0;
+ ++pnext; /* get past the type code */
+ switch (uc) {
+ case DW_MACINFO_define:
+ case DW_MACINFO_undef:
+ /* line, string */
+ case DW_MACINFO_vendor_ext:
+ /* number, string */
+ v1 = _dwarf_decode_u_leb128(pnext, &len);
+ pdmd->dmd_lineno = v1;
+
+ pnext += len;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ dwarf_dealloc(dbg, return_data, DW_DLA_STRING);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ slen = strlen((char *) pnext) + 1;
+ strcpy((char *) latest_str_loc, (char *) pnext);
+ pdmd->dmd_macro = (char *) latest_str_loc;
+ latest_str_loc += slen;
+ pnext += slen;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ dwarf_dealloc(dbg, return_data, DW_DLA_STRING);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ break;
+ case DW_MACINFO_start_file:
+ /* Line, file index */
+ v1 = _dwarf_decode_u_leb128(pnext, &len);
+ pdmd->dmd_lineno = v1;
+ pnext += len;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ dwarf_dealloc(dbg, return_data, DW_DLA_STRING);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ v1 = _dwarf_decode_u_leb128(pnext, &len);
+ pdmd->dmd_fileindex = v1;
+ (void) _dwarf_macro_stack_push_index(dbg, fileindex,
+ &msdata);
+ /* We ignore the error, we just let fileindex ** be -1 when
+ we pop this one. */
+ fileindex = v1;
+ pnext += len;
+ if (((pnext - macro_base)) >= dbg->de_debug_macinfo.dss_size) {
+ free_macro_stack(dbg,&msdata);
+ dwarf_dealloc(dbg, return_data, DW_DLA_STRING);
+ _dwarf_error(dbg, error,
+ DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
+ break;
+
+ case DW_MACINFO_end_file:
+ fileindex = _dwarf_macro_stack_pop_index(&msdata);
+ break; /* no string or number here */
+ case 0:
+ /* Type code of 0 means the end of cu's entries. */
+ done = 1;
+ break;
+ default:
+ /* Bogus macinfo! */
+ dwarf_dealloc(dbg, return_data, DW_DLA_STRING);
+ free_macro_stack(dbg,&msdata);
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_MACRO_INCONSISTENT);
+ return (DW_DLV_ERROR);
+ }
}
*entry_count = count;
*details = (Dwarf_Macro_Details *) return_data;
-
+ free_macro_stack(dbg,&msdata);
return DW_DLV_OK;
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_macro.h b/usr/src/tools/ctf/dwarf/common/dwarf_macro.h
index a54923dd67..31ea2e6e67 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_macro.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_macro.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000, 2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -39,6 +39,6 @@
dwarf_macro.h
- $Revision: 1.3 $ $Date: 2001/09/18 19:23:55 $
+ $Revision: 1.4 $ $Date: 2004/10/28 22:19:14 $
*/
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_names.c b/usr/src/tools/ctf/dwarf/common/dwarf_names.c
new file mode 100644
index 0000000000..417e025690
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_names.c
@@ -0,0 +1,2408 @@
+/* Generated routines, do not edit. */
+/* Generated on May 22 2011 03:05:33 */
+
+/* BEGIN FILE */
+
+#include "dwarf.h"
+
+#include "libdwarf.h"
+
+/* ARGSUSED */
+int
+dwarf_get_TAG_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_TAG_array_type:
+ *s_out = "DW_TAG_array_type";
+ return DW_DLV_OK;
+ case DW_TAG_class_type:
+ *s_out = "DW_TAG_class_type";
+ return DW_DLV_OK;
+ case DW_TAG_entry_point:
+ *s_out = "DW_TAG_entry_point";
+ return DW_DLV_OK;
+ case DW_TAG_enumeration_type:
+ *s_out = "DW_TAG_enumeration_type";
+ return DW_DLV_OK;
+ case DW_TAG_formal_parameter:
+ *s_out = "DW_TAG_formal_parameter";
+ return DW_DLV_OK;
+ case DW_TAG_imported_declaration:
+ *s_out = "DW_TAG_imported_declaration";
+ return DW_DLV_OK;
+ case DW_TAG_label:
+ *s_out = "DW_TAG_label";
+ return DW_DLV_OK;
+ case DW_TAG_lexical_block:
+ *s_out = "DW_TAG_lexical_block";
+ return DW_DLV_OK;
+ case DW_TAG_member:
+ *s_out = "DW_TAG_member";
+ return DW_DLV_OK;
+ case DW_TAG_pointer_type:
+ *s_out = "DW_TAG_pointer_type";
+ return DW_DLV_OK;
+ case DW_TAG_reference_type:
+ *s_out = "DW_TAG_reference_type";
+ return DW_DLV_OK;
+ case DW_TAG_compile_unit:
+ *s_out = "DW_TAG_compile_unit";
+ return DW_DLV_OK;
+ case DW_TAG_string_type:
+ *s_out = "DW_TAG_string_type";
+ return DW_DLV_OK;
+ case DW_TAG_structure_type:
+ *s_out = "DW_TAG_structure_type";
+ return DW_DLV_OK;
+ case DW_TAG_subroutine_type:
+ *s_out = "DW_TAG_subroutine_type";
+ return DW_DLV_OK;
+ case DW_TAG_typedef:
+ *s_out = "DW_TAG_typedef";
+ return DW_DLV_OK;
+ case DW_TAG_union_type:
+ *s_out = "DW_TAG_union_type";
+ return DW_DLV_OK;
+ case DW_TAG_unspecified_parameters:
+ *s_out = "DW_TAG_unspecified_parameters";
+ return DW_DLV_OK;
+ case DW_TAG_variant:
+ *s_out = "DW_TAG_variant";
+ return DW_DLV_OK;
+ case DW_TAG_common_block:
+ *s_out = "DW_TAG_common_block";
+ return DW_DLV_OK;
+ case DW_TAG_common_inclusion:
+ *s_out = "DW_TAG_common_inclusion";
+ return DW_DLV_OK;
+ case DW_TAG_inheritance:
+ *s_out = "DW_TAG_inheritance";
+ return DW_DLV_OK;
+ case DW_TAG_inlined_subroutine:
+ *s_out = "DW_TAG_inlined_subroutine";
+ return DW_DLV_OK;
+ case DW_TAG_module:
+ *s_out = "DW_TAG_module";
+ return DW_DLV_OK;
+ case DW_TAG_ptr_to_member_type:
+ *s_out = "DW_TAG_ptr_to_member_type";
+ return DW_DLV_OK;
+ case DW_TAG_set_type:
+ *s_out = "DW_TAG_set_type";
+ return DW_DLV_OK;
+ case DW_TAG_subrange_type:
+ *s_out = "DW_TAG_subrange_type";
+ return DW_DLV_OK;
+ case DW_TAG_with_stmt:
+ *s_out = "DW_TAG_with_stmt";
+ return DW_DLV_OK;
+ case DW_TAG_access_declaration:
+ *s_out = "DW_TAG_access_declaration";
+ return DW_DLV_OK;
+ case DW_TAG_base_type:
+ *s_out = "DW_TAG_base_type";
+ return DW_DLV_OK;
+ case DW_TAG_catch_block:
+ *s_out = "DW_TAG_catch_block";
+ return DW_DLV_OK;
+ case DW_TAG_const_type:
+ *s_out = "DW_TAG_const_type";
+ return DW_DLV_OK;
+ case DW_TAG_constant:
+ *s_out = "DW_TAG_constant";
+ return DW_DLV_OK;
+ case DW_TAG_enumerator:
+ *s_out = "DW_TAG_enumerator";
+ return DW_DLV_OK;
+ case DW_TAG_file_type:
+ *s_out = "DW_TAG_file_type";
+ return DW_DLV_OK;
+ case DW_TAG_friend:
+ *s_out = "DW_TAG_friend";
+ return DW_DLV_OK;
+ case DW_TAG_namelist:
+ *s_out = "DW_TAG_namelist";
+ return DW_DLV_OK;
+ case DW_TAG_namelist_item:
+ *s_out = "DW_TAG_namelist_item";
+ return DW_DLV_OK;
+ case DW_TAG_packed_type:
+ *s_out = "DW_TAG_packed_type";
+ return DW_DLV_OK;
+ case DW_TAG_subprogram:
+ *s_out = "DW_TAG_subprogram";
+ return DW_DLV_OK;
+ case DW_TAG_template_type_parameter:
+ *s_out = "DW_TAG_template_type_parameter";
+ return DW_DLV_OK;
+ case DW_TAG_template_value_parameter:
+ *s_out = "DW_TAG_template_value_parameter";
+ return DW_DLV_OK;
+ case DW_TAG_thrown_type:
+ *s_out = "DW_TAG_thrown_type";
+ return DW_DLV_OK;
+ case DW_TAG_try_block:
+ *s_out = "DW_TAG_try_block";
+ return DW_DLV_OK;
+ case DW_TAG_variant_part:
+ *s_out = "DW_TAG_variant_part";
+ return DW_DLV_OK;
+ case DW_TAG_variable:
+ *s_out = "DW_TAG_variable";
+ return DW_DLV_OK;
+ case DW_TAG_volatile_type:
+ *s_out = "DW_TAG_volatile_type";
+ return DW_DLV_OK;
+ case DW_TAG_dwarf_procedure:
+ *s_out = "DW_TAG_dwarf_procedure";
+ return DW_DLV_OK;
+ case DW_TAG_restrict_type:
+ *s_out = "DW_TAG_restrict_type";
+ return DW_DLV_OK;
+ case DW_TAG_interface_type:
+ *s_out = "DW_TAG_interface_type";
+ return DW_DLV_OK;
+ case DW_TAG_namespace:
+ *s_out = "DW_TAG_namespace";
+ return DW_DLV_OK;
+ case DW_TAG_imported_module:
+ *s_out = "DW_TAG_imported_module";
+ return DW_DLV_OK;
+ case DW_TAG_unspecified_type:
+ *s_out = "DW_TAG_unspecified_type";
+ return DW_DLV_OK;
+ case DW_TAG_partial_unit:
+ *s_out = "DW_TAG_partial_unit";
+ return DW_DLV_OK;
+ case DW_TAG_imported_unit:
+ *s_out = "DW_TAG_imported_unit";
+ return DW_DLV_OK;
+ case DW_TAG_mutable_type:
+ *s_out = "DW_TAG_mutable_type";
+ return DW_DLV_OK;
+ case DW_TAG_condition:
+ *s_out = "DW_TAG_condition";
+ return DW_DLV_OK;
+ case DW_TAG_shared_type:
+ *s_out = "DW_TAG_shared_type";
+ return DW_DLV_OK;
+ case DW_TAG_type_unit:
+ *s_out = "DW_TAG_type_unit";
+ return DW_DLV_OK;
+ case DW_TAG_rvalue_reference_type:
+ *s_out = "DW_TAG_rvalue_reference_type";
+ return DW_DLV_OK;
+ case DW_TAG_template_alias:
+ *s_out = "DW_TAG_template_alias";
+ return DW_DLV_OK;
+ case DW_TAG_lo_user:
+ *s_out = "DW_TAG_lo_user";
+ return DW_DLV_OK;
+ case DW_TAG_MIPS_loop:
+ *s_out = "DW_TAG_MIPS_loop";
+ return DW_DLV_OK;
+ case DW_TAG_HP_array_descriptor:
+ *s_out = "DW_TAG_HP_array_descriptor";
+ return DW_DLV_OK;
+ case DW_TAG_format_label:
+ *s_out = "DW_TAG_format_label";
+ return DW_DLV_OK;
+ case DW_TAG_function_template:
+ *s_out = "DW_TAG_function_template";
+ return DW_DLV_OK;
+ case DW_TAG_class_template:
+ *s_out = "DW_TAG_class_template";
+ return DW_DLV_OK;
+ case DW_TAG_GNU_BINCL:
+ *s_out = "DW_TAG_GNU_BINCL";
+ return DW_DLV_OK;
+ case DW_TAG_GNU_EINCL:
+ *s_out = "DW_TAG_GNU_EINCL";
+ return DW_DLV_OK;
+ case DW_TAG_GNU_template_template_parameter:
+ *s_out = "DW_TAG_GNU_template_template_parameter";
+ return DW_DLV_OK;
+ case DW_TAG_GNU_template_parameter_pack:
+ *s_out = "DW_TAG_GNU_template_parameter_pack";
+ return DW_DLV_OK;
+ case DW_TAG_GNU_formal_parameter_pack:
+ *s_out = "DW_TAG_GNU_formal_parameter_pack";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_function_template:
+ *s_out = "DW_TAG_SUN_function_template";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_class_template:
+ *s_out = "DW_TAG_SUN_class_template";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_struct_template:
+ *s_out = "DW_TAG_SUN_struct_template";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_union_template:
+ *s_out = "DW_TAG_SUN_union_template";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_indirect_inheritance:
+ *s_out = "DW_TAG_SUN_indirect_inheritance";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_codeflags:
+ *s_out = "DW_TAG_SUN_codeflags";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_memop_info:
+ *s_out = "DW_TAG_SUN_memop_info";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_omp_child_func:
+ *s_out = "DW_TAG_SUN_omp_child_func";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_rtti_descriptor:
+ *s_out = "DW_TAG_SUN_rtti_descriptor";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_dtor_info:
+ *s_out = "DW_TAG_SUN_dtor_info";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_dtor:
+ *s_out = "DW_TAG_SUN_dtor";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_f90_interface:
+ *s_out = "DW_TAG_SUN_f90_interface";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_fortran_vax_structure:
+ *s_out = "DW_TAG_SUN_fortran_vax_structure";
+ return DW_DLV_OK;
+ case DW_TAG_SUN_hi:
+ *s_out = "DW_TAG_SUN_hi";
+ return DW_DLV_OK;
+ case DW_TAG_ALTIUM_circ_type:
+ *s_out = "DW_TAG_ALTIUM_circ_type";
+ return DW_DLV_OK;
+ case DW_TAG_ALTIUM_mwa_circ_type:
+ *s_out = "DW_TAG_ALTIUM_mwa_circ_type";
+ return DW_DLV_OK;
+ case DW_TAG_ALTIUM_rev_carry_type:
+ *s_out = "DW_TAG_ALTIUM_rev_carry_type";
+ return DW_DLV_OK;
+ case DW_TAG_ALTIUM_rom:
+ *s_out = "DW_TAG_ALTIUM_rom";
+ return DW_DLV_OK;
+ case DW_TAG_upc_shared_type:
+ *s_out = "DW_TAG_upc_shared_type";
+ return DW_DLV_OK;
+ case DW_TAG_upc_strict_type:
+ *s_out = "DW_TAG_upc_strict_type";
+ return DW_DLV_OK;
+ case DW_TAG_upc_relaxed_type:
+ *s_out = "DW_TAG_upc_relaxed_type";
+ return DW_DLV_OK;
+ case DW_TAG_PGI_kanji_type:
+ *s_out = "DW_TAG_PGI_kanji_type";
+ return DW_DLV_OK;
+ case DW_TAG_PGI_interface_block:
+ *s_out = "DW_TAG_PGI_interface_block";
+ return DW_DLV_OK;
+ case DW_TAG_hi_user:
+ *s_out = "DW_TAG_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_children_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_children_no:
+ *s_out = "DW_children_no";
+ return DW_DLV_OK;
+ case DW_children_yes:
+ *s_out = "DW_children_yes";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_FORM_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_FORM_addr:
+ *s_out = "DW_FORM_addr";
+ return DW_DLV_OK;
+ case DW_FORM_block2:
+ *s_out = "DW_FORM_block2";
+ return DW_DLV_OK;
+ case DW_FORM_block4:
+ *s_out = "DW_FORM_block4";
+ return DW_DLV_OK;
+ case DW_FORM_data2:
+ *s_out = "DW_FORM_data2";
+ return DW_DLV_OK;
+ case DW_FORM_data4:
+ *s_out = "DW_FORM_data4";
+ return DW_DLV_OK;
+ case DW_FORM_data8:
+ *s_out = "DW_FORM_data8";
+ return DW_DLV_OK;
+ case DW_FORM_string:
+ *s_out = "DW_FORM_string";
+ return DW_DLV_OK;
+ case DW_FORM_block:
+ *s_out = "DW_FORM_block";
+ return DW_DLV_OK;
+ case DW_FORM_block1:
+ *s_out = "DW_FORM_block1";
+ return DW_DLV_OK;
+ case DW_FORM_data1:
+ *s_out = "DW_FORM_data1";
+ return DW_DLV_OK;
+ case DW_FORM_flag:
+ *s_out = "DW_FORM_flag";
+ return DW_DLV_OK;
+ case DW_FORM_sdata:
+ *s_out = "DW_FORM_sdata";
+ return DW_DLV_OK;
+ case DW_FORM_strp:
+ *s_out = "DW_FORM_strp";
+ return DW_DLV_OK;
+ case DW_FORM_udata:
+ *s_out = "DW_FORM_udata";
+ return DW_DLV_OK;
+ case DW_FORM_ref_addr:
+ *s_out = "DW_FORM_ref_addr";
+ return DW_DLV_OK;
+ case DW_FORM_ref1:
+ *s_out = "DW_FORM_ref1";
+ return DW_DLV_OK;
+ case DW_FORM_ref2:
+ *s_out = "DW_FORM_ref2";
+ return DW_DLV_OK;
+ case DW_FORM_ref4:
+ *s_out = "DW_FORM_ref4";
+ return DW_DLV_OK;
+ case DW_FORM_ref8:
+ *s_out = "DW_FORM_ref8";
+ return DW_DLV_OK;
+ case DW_FORM_ref_udata:
+ *s_out = "DW_FORM_ref_udata";
+ return DW_DLV_OK;
+ case DW_FORM_indirect:
+ *s_out = "DW_FORM_indirect";
+ return DW_DLV_OK;
+ case DW_FORM_sec_offset:
+ *s_out = "DW_FORM_sec_offset";
+ return DW_DLV_OK;
+ case DW_FORM_exprloc:
+ *s_out = "DW_FORM_exprloc";
+ return DW_DLV_OK;
+ case DW_FORM_flag_present:
+ *s_out = "DW_FORM_flag_present";
+ return DW_DLV_OK;
+ case DW_FORM_ref_sig8:
+ *s_out = "DW_FORM_ref_sig8";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_AT_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_AT_sibling:
+ *s_out = "DW_AT_sibling";
+ return DW_DLV_OK;
+ case DW_AT_location:
+ *s_out = "DW_AT_location";
+ return DW_DLV_OK;
+ case DW_AT_name:
+ *s_out = "DW_AT_name";
+ return DW_DLV_OK;
+ case DW_AT_ordering:
+ *s_out = "DW_AT_ordering";
+ return DW_DLV_OK;
+ case DW_AT_subscr_data:
+ *s_out = "DW_AT_subscr_data";
+ return DW_DLV_OK;
+ case DW_AT_byte_size:
+ *s_out = "DW_AT_byte_size";
+ return DW_DLV_OK;
+ case DW_AT_bit_offset:
+ *s_out = "DW_AT_bit_offset";
+ return DW_DLV_OK;
+ case DW_AT_bit_size:
+ *s_out = "DW_AT_bit_size";
+ return DW_DLV_OK;
+ case DW_AT_element_list:
+ *s_out = "DW_AT_element_list";
+ return DW_DLV_OK;
+ case DW_AT_stmt_list:
+ *s_out = "DW_AT_stmt_list";
+ return DW_DLV_OK;
+ case DW_AT_low_pc:
+ *s_out = "DW_AT_low_pc";
+ return DW_DLV_OK;
+ case DW_AT_high_pc:
+ *s_out = "DW_AT_high_pc";
+ return DW_DLV_OK;
+ case DW_AT_language:
+ *s_out = "DW_AT_language";
+ return DW_DLV_OK;
+ case DW_AT_member:
+ *s_out = "DW_AT_member";
+ return DW_DLV_OK;
+ case DW_AT_discr:
+ *s_out = "DW_AT_discr";
+ return DW_DLV_OK;
+ case DW_AT_discr_value:
+ *s_out = "DW_AT_discr_value";
+ return DW_DLV_OK;
+ case DW_AT_visibility:
+ *s_out = "DW_AT_visibility";
+ return DW_DLV_OK;
+ case DW_AT_import:
+ *s_out = "DW_AT_import";
+ return DW_DLV_OK;
+ case DW_AT_string_length:
+ *s_out = "DW_AT_string_length";
+ return DW_DLV_OK;
+ case DW_AT_common_reference:
+ *s_out = "DW_AT_common_reference";
+ return DW_DLV_OK;
+ case DW_AT_comp_dir:
+ *s_out = "DW_AT_comp_dir";
+ return DW_DLV_OK;
+ case DW_AT_const_value:
+ *s_out = "DW_AT_const_value";
+ return DW_DLV_OK;
+ case DW_AT_containing_type:
+ *s_out = "DW_AT_containing_type";
+ return DW_DLV_OK;
+ case DW_AT_default_value:
+ *s_out = "DW_AT_default_value";
+ return DW_DLV_OK;
+ case DW_AT_inline:
+ *s_out = "DW_AT_inline";
+ return DW_DLV_OK;
+ case DW_AT_is_optional:
+ *s_out = "DW_AT_is_optional";
+ return DW_DLV_OK;
+ case DW_AT_lower_bound:
+ *s_out = "DW_AT_lower_bound";
+ return DW_DLV_OK;
+ case DW_AT_producer:
+ *s_out = "DW_AT_producer";
+ return DW_DLV_OK;
+ case DW_AT_prototyped:
+ *s_out = "DW_AT_prototyped";
+ return DW_DLV_OK;
+ case DW_AT_return_addr:
+ *s_out = "DW_AT_return_addr";
+ return DW_DLV_OK;
+ case DW_AT_start_scope:
+ *s_out = "DW_AT_start_scope";
+ return DW_DLV_OK;
+ case DW_AT_bit_stride:
+ *s_out = "DW_AT_bit_stride";
+ return DW_DLV_OK;
+ case DW_AT_upper_bound:
+ *s_out = "DW_AT_upper_bound";
+ return DW_DLV_OK;
+ case DW_AT_abstract_origin:
+ *s_out = "DW_AT_abstract_origin";
+ return DW_DLV_OK;
+ case DW_AT_accessibility:
+ *s_out = "DW_AT_accessibility";
+ return DW_DLV_OK;
+ case DW_AT_address_class:
+ *s_out = "DW_AT_address_class";
+ return DW_DLV_OK;
+ case DW_AT_artificial:
+ *s_out = "DW_AT_artificial";
+ return DW_DLV_OK;
+ case DW_AT_base_types:
+ *s_out = "DW_AT_base_types";
+ return DW_DLV_OK;
+ case DW_AT_calling_convention:
+ *s_out = "DW_AT_calling_convention";
+ return DW_DLV_OK;
+ case DW_AT_count:
+ *s_out = "DW_AT_count";
+ return DW_DLV_OK;
+ case DW_AT_data_member_location:
+ *s_out = "DW_AT_data_member_location";
+ return DW_DLV_OK;
+ case DW_AT_decl_column:
+ *s_out = "DW_AT_decl_column";
+ return DW_DLV_OK;
+ case DW_AT_decl_file:
+ *s_out = "DW_AT_decl_file";
+ return DW_DLV_OK;
+ case DW_AT_decl_line:
+ *s_out = "DW_AT_decl_line";
+ return DW_DLV_OK;
+ case DW_AT_declaration:
+ *s_out = "DW_AT_declaration";
+ return DW_DLV_OK;
+ case DW_AT_discr_list:
+ *s_out = "DW_AT_discr_list";
+ return DW_DLV_OK;
+ case DW_AT_encoding:
+ *s_out = "DW_AT_encoding";
+ return DW_DLV_OK;
+ case DW_AT_external:
+ *s_out = "DW_AT_external";
+ return DW_DLV_OK;
+ case DW_AT_frame_base:
+ *s_out = "DW_AT_frame_base";
+ return DW_DLV_OK;
+ case DW_AT_friend:
+ *s_out = "DW_AT_friend";
+ return DW_DLV_OK;
+ case DW_AT_identifier_case:
+ *s_out = "DW_AT_identifier_case";
+ return DW_DLV_OK;
+ case DW_AT_macro_info:
+ *s_out = "DW_AT_macro_info";
+ return DW_DLV_OK;
+ case DW_AT_namelist_item:
+ *s_out = "DW_AT_namelist_item";
+ return DW_DLV_OK;
+ case DW_AT_priority:
+ *s_out = "DW_AT_priority";
+ return DW_DLV_OK;
+ case DW_AT_segment:
+ *s_out = "DW_AT_segment";
+ return DW_DLV_OK;
+ case DW_AT_specification:
+ *s_out = "DW_AT_specification";
+ return DW_DLV_OK;
+ case DW_AT_static_link:
+ *s_out = "DW_AT_static_link";
+ return DW_DLV_OK;
+ case DW_AT_type:
+ *s_out = "DW_AT_type";
+ return DW_DLV_OK;
+ case DW_AT_use_location:
+ *s_out = "DW_AT_use_location";
+ return DW_DLV_OK;
+ case DW_AT_variable_parameter:
+ *s_out = "DW_AT_variable_parameter";
+ return DW_DLV_OK;
+ case DW_AT_virtuality:
+ *s_out = "DW_AT_virtuality";
+ return DW_DLV_OK;
+ case DW_AT_vtable_elem_location:
+ *s_out = "DW_AT_vtable_elem_location";
+ return DW_DLV_OK;
+ case DW_AT_allocated:
+ *s_out = "DW_AT_allocated";
+ return DW_DLV_OK;
+ case DW_AT_associated:
+ *s_out = "DW_AT_associated";
+ return DW_DLV_OK;
+ case DW_AT_data_location:
+ *s_out = "DW_AT_data_location";
+ return DW_DLV_OK;
+ case DW_AT_stride:
+ *s_out = "DW_AT_stride";
+ return DW_DLV_OK;
+ case DW_AT_entry_pc:
+ *s_out = "DW_AT_entry_pc";
+ return DW_DLV_OK;
+ case DW_AT_use_UTF8:
+ *s_out = "DW_AT_use_UTF8";
+ return DW_DLV_OK;
+ case DW_AT_extension:
+ *s_out = "DW_AT_extension";
+ return DW_DLV_OK;
+ case DW_AT_ranges:
+ *s_out = "DW_AT_ranges";
+ return DW_DLV_OK;
+ case DW_AT_trampoline:
+ *s_out = "DW_AT_trampoline";
+ return DW_DLV_OK;
+ case DW_AT_call_column:
+ *s_out = "DW_AT_call_column";
+ return DW_DLV_OK;
+ case DW_AT_call_file:
+ *s_out = "DW_AT_call_file";
+ return DW_DLV_OK;
+ case DW_AT_call_line:
+ *s_out = "DW_AT_call_line";
+ return DW_DLV_OK;
+ case DW_AT_description:
+ *s_out = "DW_AT_description";
+ return DW_DLV_OK;
+ case DW_AT_binary_scale:
+ *s_out = "DW_AT_binary_scale";
+ return DW_DLV_OK;
+ case DW_AT_decimal_scale:
+ *s_out = "DW_AT_decimal_scale";
+ return DW_DLV_OK;
+ case DW_AT_small:
+ *s_out = "DW_AT_small";
+ return DW_DLV_OK;
+ case DW_AT_decimal_sign:
+ *s_out = "DW_AT_decimal_sign";
+ return DW_DLV_OK;
+ case DW_AT_digit_count:
+ *s_out = "DW_AT_digit_count";
+ return DW_DLV_OK;
+ case DW_AT_picture_string:
+ *s_out = "DW_AT_picture_string";
+ return DW_DLV_OK;
+ case DW_AT_mutable:
+ *s_out = "DW_AT_mutable";
+ return DW_DLV_OK;
+ case DW_AT_threads_scaled:
+ *s_out = "DW_AT_threads_scaled";
+ return DW_DLV_OK;
+ case DW_AT_explicit:
+ *s_out = "DW_AT_explicit";
+ return DW_DLV_OK;
+ case DW_AT_object_pointer:
+ *s_out = "DW_AT_object_pointer";
+ return DW_DLV_OK;
+ case DW_AT_endianity:
+ *s_out = "DW_AT_endianity";
+ return DW_DLV_OK;
+ case DW_AT_elemental:
+ *s_out = "DW_AT_elemental";
+ return DW_DLV_OK;
+ case DW_AT_pure:
+ *s_out = "DW_AT_pure";
+ return DW_DLV_OK;
+ case DW_AT_recursive:
+ *s_out = "DW_AT_recursive";
+ return DW_DLV_OK;
+ case DW_AT_signature:
+ *s_out = "DW_AT_signature";
+ return DW_DLV_OK;
+ case DW_AT_main_subprogram:
+ *s_out = "DW_AT_main_subprogram";
+ return DW_DLV_OK;
+ case DW_AT_data_bit_offset:
+ *s_out = "DW_AT_data_bit_offset";
+ return DW_DLV_OK;
+ case DW_AT_const_expr:
+ *s_out = "DW_AT_const_expr";
+ return DW_DLV_OK;
+ case DW_AT_enum_class:
+ *s_out = "DW_AT_enum_class";
+ return DW_DLV_OK;
+ case DW_AT_linkage_name:
+ *s_out = "DW_AT_linkage_name";
+ return DW_DLV_OK;
+ case DW_AT_lo_user:
+ *s_out = "DW_AT_lo_user";
+ return DW_DLV_OK;
+ case DW_AT_HP_unmodifiable:
+ *s_out = "DW_AT_HP_unmodifiable";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_loop_begin:
+ *s_out = "DW_AT_MIPS_loop_begin";
+ return DW_DLV_OK;
+ case DW_AT_CPQ_split_lifetimes_var:
+ *s_out = "DW_AT_CPQ_split_lifetimes_var";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_epilog_begin:
+ *s_out = "DW_AT_MIPS_epilog_begin";
+ return DW_DLV_OK;
+ case DW_AT_CPQ_prologue_length:
+ *s_out = "DW_AT_CPQ_prologue_length";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_software_pipeline_depth:
+ *s_out = "DW_AT_MIPS_software_pipeline_depth";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_linkage_name:
+ *s_out = "DW_AT_MIPS_linkage_name";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_stride:
+ *s_out = "DW_AT_MIPS_stride";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_abstract_name:
+ *s_out = "DW_AT_MIPS_abstract_name";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_clone_origin:
+ *s_out = "DW_AT_MIPS_clone_origin";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_has_inlines:
+ *s_out = "DW_AT_MIPS_has_inlines";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_stride_byte:
+ *s_out = "DW_AT_MIPS_stride_byte";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_stride_elem:
+ *s_out = "DW_AT_MIPS_stride_elem";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_ptr_dopetype:
+ *s_out = "DW_AT_MIPS_ptr_dopetype";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_allocatable_dopetype:
+ *s_out = "DW_AT_MIPS_allocatable_dopetype";
+ return DW_DLV_OK;
+ case DW_AT_MIPS_assumed_shape_dopetype:
+ *s_out = "DW_AT_MIPS_assumed_shape_dopetype";
+ return DW_DLV_OK;
+ case DW_AT_HP_proc_per_section:
+ *s_out = "DW_AT_HP_proc_per_section";
+ return DW_DLV_OK;
+ case DW_AT_HP_raw_data_ptr:
+ *s_out = "DW_AT_HP_raw_data_ptr";
+ return DW_DLV_OK;
+ case DW_AT_HP_pass_by_reference:
+ *s_out = "DW_AT_HP_pass_by_reference";
+ return DW_DLV_OK;
+ case DW_AT_HP_opt_level:
+ *s_out = "DW_AT_HP_opt_level";
+ return DW_DLV_OK;
+ case DW_AT_HP_prof_version_id:
+ *s_out = "DW_AT_HP_prof_version_id";
+ return DW_DLV_OK;
+ case DW_AT_HP_opt_flags:
+ *s_out = "DW_AT_HP_opt_flags";
+ return DW_DLV_OK;
+ case DW_AT_HP_cold_region_low_pc:
+ *s_out = "DW_AT_HP_cold_region_low_pc";
+ return DW_DLV_OK;
+ case DW_AT_HP_cold_region_high_pc:
+ *s_out = "DW_AT_HP_cold_region_high_pc";
+ return DW_DLV_OK;
+ case DW_AT_HP_all_variables_modifiable:
+ *s_out = "DW_AT_HP_all_variables_modifiable";
+ return DW_DLV_OK;
+ case DW_AT_HP_linkage_name:
+ *s_out = "DW_AT_HP_linkage_name";
+ return DW_DLV_OK;
+ case DW_AT_HP_prof_flags:
+ *s_out = "DW_AT_HP_prof_flags";
+ return DW_DLV_OK;
+ case DW_AT_INTEL_other_endian:
+ *s_out = "DW_AT_INTEL_other_endian";
+ return DW_DLV_OK;
+ case DW_AT_sf_names:
+ *s_out = "DW_AT_sf_names";
+ return DW_DLV_OK;
+ case DW_AT_src_info:
+ *s_out = "DW_AT_src_info";
+ return DW_DLV_OK;
+ case DW_AT_mac_info:
+ *s_out = "DW_AT_mac_info";
+ return DW_DLV_OK;
+ case DW_AT_src_coords:
+ *s_out = "DW_AT_src_coords";
+ return DW_DLV_OK;
+ case DW_AT_body_begin:
+ *s_out = "DW_AT_body_begin";
+ return DW_DLV_OK;
+ case DW_AT_body_end:
+ *s_out = "DW_AT_body_end";
+ return DW_DLV_OK;
+ case DW_AT_GNU_vector:
+ *s_out = "DW_AT_GNU_vector";
+ return DW_DLV_OK;
+ case DW_AT_GNU_template_name:
+ *s_out = "DW_AT_GNU_template_name";
+ return DW_DLV_OK;
+ case DW_AT_VMS_rtnbeg_pd_address:
+ *s_out = "DW_AT_VMS_rtnbeg_pd_address";
+ return DW_DLV_OK;
+ case DW_AT_SUN_alignment:
+ *s_out = "DW_AT_SUN_alignment";
+ return DW_DLV_OK;
+ case DW_AT_SUN_vtable:
+ *s_out = "DW_AT_SUN_vtable";
+ return DW_DLV_OK;
+ case DW_AT_SUN_count_guarantee:
+ *s_out = "DW_AT_SUN_count_guarantee";
+ return DW_DLV_OK;
+ case DW_AT_SUN_command_line:
+ *s_out = "DW_AT_SUN_command_line";
+ return DW_DLV_OK;
+ case DW_AT_SUN_vbase:
+ *s_out = "DW_AT_SUN_vbase";
+ return DW_DLV_OK;
+ case DW_AT_SUN_compile_options:
+ *s_out = "DW_AT_SUN_compile_options";
+ return DW_DLV_OK;
+ case DW_AT_SUN_language:
+ *s_out = "DW_AT_SUN_language";
+ return DW_DLV_OK;
+ case DW_AT_SUN_browser_file:
+ *s_out = "DW_AT_SUN_browser_file";
+ return DW_DLV_OK;
+ case DW_AT_SUN_vtable_abi:
+ *s_out = "DW_AT_SUN_vtable_abi";
+ return DW_DLV_OK;
+ case DW_AT_SUN_func_offsets:
+ *s_out = "DW_AT_SUN_func_offsets";
+ return DW_DLV_OK;
+ case DW_AT_SUN_cf_kind:
+ *s_out = "DW_AT_SUN_cf_kind";
+ return DW_DLV_OK;
+ case DW_AT_SUN_vtable_index:
+ *s_out = "DW_AT_SUN_vtable_index";
+ return DW_DLV_OK;
+ case DW_AT_SUN_omp_tpriv_addr:
+ *s_out = "DW_AT_SUN_omp_tpriv_addr";
+ return DW_DLV_OK;
+ case DW_AT_SUN_omp_child_func:
+ *s_out = "DW_AT_SUN_omp_child_func";
+ return DW_DLV_OK;
+ case DW_AT_SUN_func_offset:
+ *s_out = "DW_AT_SUN_func_offset";
+ return DW_DLV_OK;
+ case DW_AT_SUN_memop_type_ref:
+ *s_out = "DW_AT_SUN_memop_type_ref";
+ return DW_DLV_OK;
+ case DW_AT_SUN_profile_id:
+ *s_out = "DW_AT_SUN_profile_id";
+ return DW_DLV_OK;
+ case DW_AT_SUN_memop_signature:
+ *s_out = "DW_AT_SUN_memop_signature";
+ return DW_DLV_OK;
+ case DW_AT_SUN_obj_dir:
+ *s_out = "DW_AT_SUN_obj_dir";
+ return DW_DLV_OK;
+ case DW_AT_SUN_obj_file:
+ *s_out = "DW_AT_SUN_obj_file";
+ return DW_DLV_OK;
+ case DW_AT_SUN_original_name:
+ *s_out = "DW_AT_SUN_original_name";
+ return DW_DLV_OK;
+ case DW_AT_SUN_hwcprof_signature:
+ *s_out = "DW_AT_SUN_hwcprof_signature";
+ return DW_DLV_OK;
+ case DW_AT_SUN_amd64_parmdump:
+ *s_out = "DW_AT_SUN_amd64_parmdump";
+ return DW_DLV_OK;
+ case DW_AT_SUN_part_link_name:
+ *s_out = "DW_AT_SUN_part_link_name";
+ return DW_DLV_OK;
+ case DW_AT_SUN_link_name:
+ *s_out = "DW_AT_SUN_link_name";
+ return DW_DLV_OK;
+ case DW_AT_SUN_pass_with_const:
+ *s_out = "DW_AT_SUN_pass_with_const";
+ return DW_DLV_OK;
+ case DW_AT_SUN_return_with_const:
+ *s_out = "DW_AT_SUN_return_with_const";
+ return DW_DLV_OK;
+ case DW_AT_SUN_import_by_name:
+ *s_out = "DW_AT_SUN_import_by_name";
+ return DW_DLV_OK;
+ case DW_AT_SUN_f90_pointer:
+ *s_out = "DW_AT_SUN_f90_pointer";
+ return DW_DLV_OK;
+ case DW_AT_SUN_pass_by_ref:
+ *s_out = "DW_AT_SUN_pass_by_ref";
+ return DW_DLV_OK;
+ case DW_AT_SUN_f90_allocatable:
+ *s_out = "DW_AT_SUN_f90_allocatable";
+ return DW_DLV_OK;
+ case DW_AT_SUN_f90_assumed_shape_array:
+ *s_out = "DW_AT_SUN_f90_assumed_shape_array";
+ return DW_DLV_OK;
+ case DW_AT_SUN_c_vla:
+ *s_out = "DW_AT_SUN_c_vla";
+ return DW_DLV_OK;
+ case DW_AT_SUN_return_value_ptr:
+ *s_out = "DW_AT_SUN_return_value_ptr";
+ return DW_DLV_OK;
+ case DW_AT_SUN_dtor_start:
+ *s_out = "DW_AT_SUN_dtor_start";
+ return DW_DLV_OK;
+ case DW_AT_SUN_dtor_length:
+ *s_out = "DW_AT_SUN_dtor_length";
+ return DW_DLV_OK;
+ case DW_AT_SUN_dtor_state_initial:
+ *s_out = "DW_AT_SUN_dtor_state_initial";
+ return DW_DLV_OK;
+ case DW_AT_SUN_dtor_state_final:
+ *s_out = "DW_AT_SUN_dtor_state_final";
+ return DW_DLV_OK;
+ case DW_AT_SUN_dtor_state_deltas:
+ *s_out = "DW_AT_SUN_dtor_state_deltas";
+ return DW_DLV_OK;
+ case DW_AT_SUN_import_by_lname:
+ *s_out = "DW_AT_SUN_import_by_lname";
+ return DW_DLV_OK;
+ case DW_AT_SUN_f90_use_only:
+ *s_out = "DW_AT_SUN_f90_use_only";
+ return DW_DLV_OK;
+ case DW_AT_SUN_namelist_spec:
+ *s_out = "DW_AT_SUN_namelist_spec";
+ return DW_DLV_OK;
+ case DW_AT_SUN_is_omp_child_func:
+ *s_out = "DW_AT_SUN_is_omp_child_func";
+ return DW_DLV_OK;
+ case DW_AT_SUN_fortran_main_alias:
+ *s_out = "DW_AT_SUN_fortran_main_alias";
+ return DW_DLV_OK;
+ case DW_AT_SUN_fortran_based:
+ *s_out = "DW_AT_SUN_fortran_based";
+ return DW_DLV_OK;
+ case DW_AT_ALTIUM_loclist:
+ *s_out = "DW_AT_ALTIUM_loclist";
+ return DW_DLV_OK;
+ case DW_AT_upc_threads_scaled:
+ *s_out = "DW_AT_upc_threads_scaled";
+ return DW_DLV_OK;
+ case DW_AT_PGI_lbase:
+ *s_out = "DW_AT_PGI_lbase";
+ return DW_DLV_OK;
+ case DW_AT_PGI_soffset:
+ *s_out = "DW_AT_PGI_soffset";
+ return DW_DLV_OK;
+ case DW_AT_PGI_lstride:
+ *s_out = "DW_AT_PGI_lstride";
+ return DW_DLV_OK;
+ case DW_AT_APPLE_closure:
+ *s_out = "DW_AT_APPLE_closure";
+ return DW_DLV_OK;
+ case DW_AT_APPLE_major_runtime_vers:
+ *s_out = "DW_AT_APPLE_major_runtime_vers";
+ return DW_DLV_OK;
+ case DW_AT_APPLE_runtime_class:
+ *s_out = "DW_AT_APPLE_runtime_class";
+ return DW_DLV_OK;
+ case DW_AT_hi_user:
+ *s_out = "DW_AT_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_OP_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_OP_addr:
+ *s_out = "DW_OP_addr";
+ return DW_DLV_OK;
+ case DW_OP_deref:
+ *s_out = "DW_OP_deref";
+ return DW_DLV_OK;
+ case DW_OP_const1u:
+ *s_out = "DW_OP_const1u";
+ return DW_DLV_OK;
+ case DW_OP_const1s:
+ *s_out = "DW_OP_const1s";
+ return DW_DLV_OK;
+ case DW_OP_const2u:
+ *s_out = "DW_OP_const2u";
+ return DW_DLV_OK;
+ case DW_OP_const2s:
+ *s_out = "DW_OP_const2s";
+ return DW_DLV_OK;
+ case DW_OP_const4u:
+ *s_out = "DW_OP_const4u";
+ return DW_DLV_OK;
+ case DW_OP_const4s:
+ *s_out = "DW_OP_const4s";
+ return DW_DLV_OK;
+ case DW_OP_const8u:
+ *s_out = "DW_OP_const8u";
+ return DW_DLV_OK;
+ case DW_OP_const8s:
+ *s_out = "DW_OP_const8s";
+ return DW_DLV_OK;
+ case DW_OP_constu:
+ *s_out = "DW_OP_constu";
+ return DW_DLV_OK;
+ case DW_OP_consts:
+ *s_out = "DW_OP_consts";
+ return DW_DLV_OK;
+ case DW_OP_dup:
+ *s_out = "DW_OP_dup";
+ return DW_DLV_OK;
+ case DW_OP_drop:
+ *s_out = "DW_OP_drop";
+ return DW_DLV_OK;
+ case DW_OP_over:
+ *s_out = "DW_OP_over";
+ return DW_DLV_OK;
+ case DW_OP_pick:
+ *s_out = "DW_OP_pick";
+ return DW_DLV_OK;
+ case DW_OP_swap:
+ *s_out = "DW_OP_swap";
+ return DW_DLV_OK;
+ case DW_OP_rot:
+ *s_out = "DW_OP_rot";
+ return DW_DLV_OK;
+ case DW_OP_xderef:
+ *s_out = "DW_OP_xderef";
+ return DW_DLV_OK;
+ case DW_OP_abs:
+ *s_out = "DW_OP_abs";
+ return DW_DLV_OK;
+ case DW_OP_and:
+ *s_out = "DW_OP_and";
+ return DW_DLV_OK;
+ case DW_OP_div:
+ *s_out = "DW_OP_div";
+ return DW_DLV_OK;
+ case DW_OP_minus:
+ *s_out = "DW_OP_minus";
+ return DW_DLV_OK;
+ case DW_OP_mod:
+ *s_out = "DW_OP_mod";
+ return DW_DLV_OK;
+ case DW_OP_mul:
+ *s_out = "DW_OP_mul";
+ return DW_DLV_OK;
+ case DW_OP_neg:
+ *s_out = "DW_OP_neg";
+ return DW_DLV_OK;
+ case DW_OP_not:
+ *s_out = "DW_OP_not";
+ return DW_DLV_OK;
+ case DW_OP_or:
+ *s_out = "DW_OP_or";
+ return DW_DLV_OK;
+ case DW_OP_plus:
+ *s_out = "DW_OP_plus";
+ return DW_DLV_OK;
+ case DW_OP_plus_uconst:
+ *s_out = "DW_OP_plus_uconst";
+ return DW_DLV_OK;
+ case DW_OP_shl:
+ *s_out = "DW_OP_shl";
+ return DW_DLV_OK;
+ case DW_OP_shr:
+ *s_out = "DW_OP_shr";
+ return DW_DLV_OK;
+ case DW_OP_shra:
+ *s_out = "DW_OP_shra";
+ return DW_DLV_OK;
+ case DW_OP_xor:
+ *s_out = "DW_OP_xor";
+ return DW_DLV_OK;
+ case DW_OP_bra:
+ *s_out = "DW_OP_bra";
+ return DW_DLV_OK;
+ case DW_OP_eq:
+ *s_out = "DW_OP_eq";
+ return DW_DLV_OK;
+ case DW_OP_ge:
+ *s_out = "DW_OP_ge";
+ return DW_DLV_OK;
+ case DW_OP_gt:
+ *s_out = "DW_OP_gt";
+ return DW_DLV_OK;
+ case DW_OP_le:
+ *s_out = "DW_OP_le";
+ return DW_DLV_OK;
+ case DW_OP_lt:
+ *s_out = "DW_OP_lt";
+ return DW_DLV_OK;
+ case DW_OP_ne:
+ *s_out = "DW_OP_ne";
+ return DW_DLV_OK;
+ case DW_OP_skip:
+ *s_out = "DW_OP_skip";
+ return DW_DLV_OK;
+ case DW_OP_lit0:
+ *s_out = "DW_OP_lit0";
+ return DW_DLV_OK;
+ case DW_OP_lit1:
+ *s_out = "DW_OP_lit1";
+ return DW_DLV_OK;
+ case DW_OP_lit2:
+ *s_out = "DW_OP_lit2";
+ return DW_DLV_OK;
+ case DW_OP_lit3:
+ *s_out = "DW_OP_lit3";
+ return DW_DLV_OK;
+ case DW_OP_lit4:
+ *s_out = "DW_OP_lit4";
+ return DW_DLV_OK;
+ case DW_OP_lit5:
+ *s_out = "DW_OP_lit5";
+ return DW_DLV_OK;
+ case DW_OP_lit6:
+ *s_out = "DW_OP_lit6";
+ return DW_DLV_OK;
+ case DW_OP_lit7:
+ *s_out = "DW_OP_lit7";
+ return DW_DLV_OK;
+ case DW_OP_lit8:
+ *s_out = "DW_OP_lit8";
+ return DW_DLV_OK;
+ case DW_OP_lit9:
+ *s_out = "DW_OP_lit9";
+ return DW_DLV_OK;
+ case DW_OP_lit10:
+ *s_out = "DW_OP_lit10";
+ return DW_DLV_OK;
+ case DW_OP_lit11:
+ *s_out = "DW_OP_lit11";
+ return DW_DLV_OK;
+ case DW_OP_lit12:
+ *s_out = "DW_OP_lit12";
+ return DW_DLV_OK;
+ case DW_OP_lit13:
+ *s_out = "DW_OP_lit13";
+ return DW_DLV_OK;
+ case DW_OP_lit14:
+ *s_out = "DW_OP_lit14";
+ return DW_DLV_OK;
+ case DW_OP_lit15:
+ *s_out = "DW_OP_lit15";
+ return DW_DLV_OK;
+ case DW_OP_lit16:
+ *s_out = "DW_OP_lit16";
+ return DW_DLV_OK;
+ case DW_OP_lit17:
+ *s_out = "DW_OP_lit17";
+ return DW_DLV_OK;
+ case DW_OP_lit18:
+ *s_out = "DW_OP_lit18";
+ return DW_DLV_OK;
+ case DW_OP_lit19:
+ *s_out = "DW_OP_lit19";
+ return DW_DLV_OK;
+ case DW_OP_lit20:
+ *s_out = "DW_OP_lit20";
+ return DW_DLV_OK;
+ case DW_OP_lit21:
+ *s_out = "DW_OP_lit21";
+ return DW_DLV_OK;
+ case DW_OP_lit22:
+ *s_out = "DW_OP_lit22";
+ return DW_DLV_OK;
+ case DW_OP_lit23:
+ *s_out = "DW_OP_lit23";
+ return DW_DLV_OK;
+ case DW_OP_lit24:
+ *s_out = "DW_OP_lit24";
+ return DW_DLV_OK;
+ case DW_OP_lit25:
+ *s_out = "DW_OP_lit25";
+ return DW_DLV_OK;
+ case DW_OP_lit26:
+ *s_out = "DW_OP_lit26";
+ return DW_DLV_OK;
+ case DW_OP_lit27:
+ *s_out = "DW_OP_lit27";
+ return DW_DLV_OK;
+ case DW_OP_lit28:
+ *s_out = "DW_OP_lit28";
+ return DW_DLV_OK;
+ case DW_OP_lit29:
+ *s_out = "DW_OP_lit29";
+ return DW_DLV_OK;
+ case DW_OP_lit30:
+ *s_out = "DW_OP_lit30";
+ return DW_DLV_OK;
+ case DW_OP_lit31:
+ *s_out = "DW_OP_lit31";
+ return DW_DLV_OK;
+ case DW_OP_reg0:
+ *s_out = "DW_OP_reg0";
+ return DW_DLV_OK;
+ case DW_OP_reg1:
+ *s_out = "DW_OP_reg1";
+ return DW_DLV_OK;
+ case DW_OP_reg2:
+ *s_out = "DW_OP_reg2";
+ return DW_DLV_OK;
+ case DW_OP_reg3:
+ *s_out = "DW_OP_reg3";
+ return DW_DLV_OK;
+ case DW_OP_reg4:
+ *s_out = "DW_OP_reg4";
+ return DW_DLV_OK;
+ case DW_OP_reg5:
+ *s_out = "DW_OP_reg5";
+ return DW_DLV_OK;
+ case DW_OP_reg6:
+ *s_out = "DW_OP_reg6";
+ return DW_DLV_OK;
+ case DW_OP_reg7:
+ *s_out = "DW_OP_reg7";
+ return DW_DLV_OK;
+ case DW_OP_reg8:
+ *s_out = "DW_OP_reg8";
+ return DW_DLV_OK;
+ case DW_OP_reg9:
+ *s_out = "DW_OP_reg9";
+ return DW_DLV_OK;
+ case DW_OP_reg10:
+ *s_out = "DW_OP_reg10";
+ return DW_DLV_OK;
+ case DW_OP_reg11:
+ *s_out = "DW_OP_reg11";
+ return DW_DLV_OK;
+ case DW_OP_reg12:
+ *s_out = "DW_OP_reg12";
+ return DW_DLV_OK;
+ case DW_OP_reg13:
+ *s_out = "DW_OP_reg13";
+ return DW_DLV_OK;
+ case DW_OP_reg14:
+ *s_out = "DW_OP_reg14";
+ return DW_DLV_OK;
+ case DW_OP_reg15:
+ *s_out = "DW_OP_reg15";
+ return DW_DLV_OK;
+ case DW_OP_reg16:
+ *s_out = "DW_OP_reg16";
+ return DW_DLV_OK;
+ case DW_OP_reg17:
+ *s_out = "DW_OP_reg17";
+ return DW_DLV_OK;
+ case DW_OP_reg18:
+ *s_out = "DW_OP_reg18";
+ return DW_DLV_OK;
+ case DW_OP_reg19:
+ *s_out = "DW_OP_reg19";
+ return DW_DLV_OK;
+ case DW_OP_reg20:
+ *s_out = "DW_OP_reg20";
+ return DW_DLV_OK;
+ case DW_OP_reg21:
+ *s_out = "DW_OP_reg21";
+ return DW_DLV_OK;
+ case DW_OP_reg22:
+ *s_out = "DW_OP_reg22";
+ return DW_DLV_OK;
+ case DW_OP_reg23:
+ *s_out = "DW_OP_reg23";
+ return DW_DLV_OK;
+ case DW_OP_reg24:
+ *s_out = "DW_OP_reg24";
+ return DW_DLV_OK;
+ case DW_OP_reg25:
+ *s_out = "DW_OP_reg25";
+ return DW_DLV_OK;
+ case DW_OP_reg26:
+ *s_out = "DW_OP_reg26";
+ return DW_DLV_OK;
+ case DW_OP_reg27:
+ *s_out = "DW_OP_reg27";
+ return DW_DLV_OK;
+ case DW_OP_reg28:
+ *s_out = "DW_OP_reg28";
+ return DW_DLV_OK;
+ case DW_OP_reg29:
+ *s_out = "DW_OP_reg29";
+ return DW_DLV_OK;
+ case DW_OP_reg30:
+ *s_out = "DW_OP_reg30";
+ return DW_DLV_OK;
+ case DW_OP_reg31:
+ *s_out = "DW_OP_reg31";
+ return DW_DLV_OK;
+ case DW_OP_breg0:
+ *s_out = "DW_OP_breg0";
+ return DW_DLV_OK;
+ case DW_OP_breg1:
+ *s_out = "DW_OP_breg1";
+ return DW_DLV_OK;
+ case DW_OP_breg2:
+ *s_out = "DW_OP_breg2";
+ return DW_DLV_OK;
+ case DW_OP_breg3:
+ *s_out = "DW_OP_breg3";
+ return DW_DLV_OK;
+ case DW_OP_breg4:
+ *s_out = "DW_OP_breg4";
+ return DW_DLV_OK;
+ case DW_OP_breg5:
+ *s_out = "DW_OP_breg5";
+ return DW_DLV_OK;
+ case DW_OP_breg6:
+ *s_out = "DW_OP_breg6";
+ return DW_DLV_OK;
+ case DW_OP_breg7:
+ *s_out = "DW_OP_breg7";
+ return DW_DLV_OK;
+ case DW_OP_breg8:
+ *s_out = "DW_OP_breg8";
+ return DW_DLV_OK;
+ case DW_OP_breg9:
+ *s_out = "DW_OP_breg9";
+ return DW_DLV_OK;
+ case DW_OP_breg10:
+ *s_out = "DW_OP_breg10";
+ return DW_DLV_OK;
+ case DW_OP_breg11:
+ *s_out = "DW_OP_breg11";
+ return DW_DLV_OK;
+ case DW_OP_breg12:
+ *s_out = "DW_OP_breg12";
+ return DW_DLV_OK;
+ case DW_OP_breg13:
+ *s_out = "DW_OP_breg13";
+ return DW_DLV_OK;
+ case DW_OP_breg14:
+ *s_out = "DW_OP_breg14";
+ return DW_DLV_OK;
+ case DW_OP_breg15:
+ *s_out = "DW_OP_breg15";
+ return DW_DLV_OK;
+ case DW_OP_breg16:
+ *s_out = "DW_OP_breg16";
+ return DW_DLV_OK;
+ case DW_OP_breg17:
+ *s_out = "DW_OP_breg17";
+ return DW_DLV_OK;
+ case DW_OP_breg18:
+ *s_out = "DW_OP_breg18";
+ return DW_DLV_OK;
+ case DW_OP_breg19:
+ *s_out = "DW_OP_breg19";
+ return DW_DLV_OK;
+ case DW_OP_breg20:
+ *s_out = "DW_OP_breg20";
+ return DW_DLV_OK;
+ case DW_OP_breg21:
+ *s_out = "DW_OP_breg21";
+ return DW_DLV_OK;
+ case DW_OP_breg22:
+ *s_out = "DW_OP_breg22";
+ return DW_DLV_OK;
+ case DW_OP_breg23:
+ *s_out = "DW_OP_breg23";
+ return DW_DLV_OK;
+ case DW_OP_breg24:
+ *s_out = "DW_OP_breg24";
+ return DW_DLV_OK;
+ case DW_OP_breg25:
+ *s_out = "DW_OP_breg25";
+ return DW_DLV_OK;
+ case DW_OP_breg26:
+ *s_out = "DW_OP_breg26";
+ return DW_DLV_OK;
+ case DW_OP_breg27:
+ *s_out = "DW_OP_breg27";
+ return DW_DLV_OK;
+ case DW_OP_breg28:
+ *s_out = "DW_OP_breg28";
+ return DW_DLV_OK;
+ case DW_OP_breg29:
+ *s_out = "DW_OP_breg29";
+ return DW_DLV_OK;
+ case DW_OP_breg30:
+ *s_out = "DW_OP_breg30";
+ return DW_DLV_OK;
+ case DW_OP_breg31:
+ *s_out = "DW_OP_breg31";
+ return DW_DLV_OK;
+ case DW_OP_regx:
+ *s_out = "DW_OP_regx";
+ return DW_DLV_OK;
+ case DW_OP_fbreg:
+ *s_out = "DW_OP_fbreg";
+ return DW_DLV_OK;
+ case DW_OP_bregx:
+ *s_out = "DW_OP_bregx";
+ return DW_DLV_OK;
+ case DW_OP_piece:
+ *s_out = "DW_OP_piece";
+ return DW_DLV_OK;
+ case DW_OP_deref_size:
+ *s_out = "DW_OP_deref_size";
+ return DW_DLV_OK;
+ case DW_OP_xderef_size:
+ *s_out = "DW_OP_xderef_size";
+ return DW_DLV_OK;
+ case DW_OP_nop:
+ *s_out = "DW_OP_nop";
+ return DW_DLV_OK;
+ case DW_OP_push_object_address:
+ *s_out = "DW_OP_push_object_address";
+ return DW_DLV_OK;
+ case DW_OP_call2:
+ *s_out = "DW_OP_call2";
+ return DW_DLV_OK;
+ case DW_OP_call4:
+ *s_out = "DW_OP_call4";
+ return DW_DLV_OK;
+ case DW_OP_call_ref:
+ *s_out = "DW_OP_call_ref";
+ return DW_DLV_OK;
+ case DW_OP_form_tls_address:
+ *s_out = "DW_OP_form_tls_address";
+ return DW_DLV_OK;
+ case DW_OP_call_frame_cfa:
+ *s_out = "DW_OP_call_frame_cfa";
+ return DW_DLV_OK;
+ case DW_OP_bit_piece:
+ *s_out = "DW_OP_bit_piece";
+ return DW_DLV_OK;
+ case DW_OP_implicit_value:
+ *s_out = "DW_OP_implicit_value";
+ return DW_DLV_OK;
+ case DW_OP_stack_value:
+ *s_out = "DW_OP_stack_value";
+ return DW_DLV_OK;
+ case DW_OP_lo_user:
+ *s_out = "DW_OP_lo_user";
+ return DW_DLV_OK;
+ case DW_OP_HP_is_value:
+ *s_out = "DW_OP_HP_is_value";
+ return DW_DLV_OK;
+ case DW_OP_HP_fltconst4:
+ *s_out = "DW_OP_HP_fltconst4";
+ return DW_DLV_OK;
+ case DW_OP_HP_fltconst8:
+ *s_out = "DW_OP_HP_fltconst8";
+ return DW_DLV_OK;
+ case DW_OP_HP_mod_range:
+ *s_out = "DW_OP_HP_mod_range";
+ return DW_DLV_OK;
+ case DW_OP_HP_unmod_range:
+ *s_out = "DW_OP_HP_unmod_range";
+ return DW_DLV_OK;
+ case DW_OP_HP_tls:
+ *s_out = "DW_OP_HP_tls";
+ return DW_DLV_OK;
+ case DW_OP_INTEL_bit_piece:
+ *s_out = "DW_OP_INTEL_bit_piece";
+ return DW_DLV_OK;
+ case DW_OP_APPLE_uninit:
+ *s_out = "DW_OP_APPLE_uninit";
+ return DW_DLV_OK;
+ case DW_OP_hi_user:
+ *s_out = "DW_OP_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_ATE_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_ATE_address:
+ *s_out = "DW_ATE_address";
+ return DW_DLV_OK;
+ case DW_ATE_boolean:
+ *s_out = "DW_ATE_boolean";
+ return DW_DLV_OK;
+ case DW_ATE_complex_float:
+ *s_out = "DW_ATE_complex_float";
+ return DW_DLV_OK;
+ case DW_ATE_float:
+ *s_out = "DW_ATE_float";
+ return DW_DLV_OK;
+ case DW_ATE_signed:
+ *s_out = "DW_ATE_signed";
+ return DW_DLV_OK;
+ case DW_ATE_signed_char:
+ *s_out = "DW_ATE_signed_char";
+ return DW_DLV_OK;
+ case DW_ATE_unsigned:
+ *s_out = "DW_ATE_unsigned";
+ return DW_DLV_OK;
+ case DW_ATE_unsigned_char:
+ *s_out = "DW_ATE_unsigned_char";
+ return DW_DLV_OK;
+ case DW_ATE_imaginary_float:
+ *s_out = "DW_ATE_imaginary_float";
+ return DW_DLV_OK;
+ case DW_ATE_packed_decimal:
+ *s_out = "DW_ATE_packed_decimal";
+ return DW_DLV_OK;
+ case DW_ATE_numeric_string:
+ *s_out = "DW_ATE_numeric_string";
+ return DW_DLV_OK;
+ case DW_ATE_edited:
+ *s_out = "DW_ATE_edited";
+ return DW_DLV_OK;
+ case DW_ATE_signed_fixed:
+ *s_out = "DW_ATE_signed_fixed";
+ return DW_DLV_OK;
+ case DW_ATE_unsigned_fixed:
+ *s_out = "DW_ATE_unsigned_fixed";
+ return DW_DLV_OK;
+ case DW_ATE_decimal_float:
+ *s_out = "DW_ATE_decimal_float";
+ return DW_DLV_OK;
+ case DW_ATE_HP_float80:
+ *s_out = "DW_ATE_HP_float80";
+ return DW_DLV_OK;
+ case DW_ATE_HP_complex_float80:
+ *s_out = "DW_ATE_HP_complex_float80";
+ return DW_DLV_OK;
+ case DW_ATE_HP_float128:
+ *s_out = "DW_ATE_HP_float128";
+ return DW_DLV_OK;
+ case DW_ATE_HP_complex_float128:
+ *s_out = "DW_ATE_HP_complex_float128";
+ return DW_DLV_OK;
+ case DW_ATE_HP_floathpintel:
+ *s_out = "DW_ATE_HP_floathpintel";
+ return DW_DLV_OK;
+ case DW_ATE_HP_imaginary_float80:
+ *s_out = "DW_ATE_HP_imaginary_float80";
+ return DW_DLV_OK;
+ case DW_ATE_HP_imaginary_float128:
+ *s_out = "DW_ATE_HP_imaginary_float128";
+ return DW_DLV_OK;
+ case DW_ATE_SUN_interval_float:
+ *s_out = "DW_ATE_SUN_interval_float";
+ return DW_DLV_OK;
+ case DW_ATE_SUN_imaginary_float:
+ *s_out = "DW_ATE_SUN_imaginary_float";
+ return DW_DLV_OK;
+ case DW_ATE_hi_user:
+ *s_out = "DW_ATE_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_DS_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_DS_unsigned:
+ *s_out = "DW_DS_unsigned";
+ return DW_DLV_OK;
+ case DW_DS_leading_overpunch:
+ *s_out = "DW_DS_leading_overpunch";
+ return DW_DLV_OK;
+ case DW_DS_trailing_overpunch:
+ *s_out = "DW_DS_trailing_overpunch";
+ return DW_DLV_OK;
+ case DW_DS_leading_separate:
+ *s_out = "DW_DS_leading_separate";
+ return DW_DLV_OK;
+ case DW_DS_trailing_separate:
+ *s_out = "DW_DS_trailing_separate";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_END_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_END_default:
+ *s_out = "DW_END_default";
+ return DW_DLV_OK;
+ case DW_END_big:
+ *s_out = "DW_END_big";
+ return DW_DLV_OK;
+ case DW_END_little:
+ *s_out = "DW_END_little";
+ return DW_DLV_OK;
+ case DW_END_lo_user:
+ *s_out = "DW_END_lo_user";
+ return DW_DLV_OK;
+ case DW_END_hi_user:
+ *s_out = "DW_END_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_ATCF_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_ATCF_lo_user:
+ *s_out = "DW_ATCF_lo_user";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_mop_bitfield:
+ *s_out = "DW_ATCF_SUN_mop_bitfield";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_mop_spill:
+ *s_out = "DW_ATCF_SUN_mop_spill";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_mop_scopy:
+ *s_out = "DW_ATCF_SUN_mop_scopy";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_func_start:
+ *s_out = "DW_ATCF_SUN_func_start";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_end_ctors:
+ *s_out = "DW_ATCF_SUN_end_ctors";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_branch_target:
+ *s_out = "DW_ATCF_SUN_branch_target";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_mop_stack_probe:
+ *s_out = "DW_ATCF_SUN_mop_stack_probe";
+ return DW_DLV_OK;
+ case DW_ATCF_SUN_func_epilog:
+ *s_out = "DW_ATCF_SUN_func_epilog";
+ return DW_DLV_OK;
+ case DW_ATCF_hi_user:
+ *s_out = "DW_ATCF_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_ACCESS_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_ACCESS_public:
+ *s_out = "DW_ACCESS_public";
+ return DW_DLV_OK;
+ case DW_ACCESS_protected:
+ *s_out = "DW_ACCESS_protected";
+ return DW_DLV_OK;
+ case DW_ACCESS_private:
+ *s_out = "DW_ACCESS_private";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_VIS_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_VIS_local:
+ *s_out = "DW_VIS_local";
+ return DW_DLV_OK;
+ case DW_VIS_exported:
+ *s_out = "DW_VIS_exported";
+ return DW_DLV_OK;
+ case DW_VIS_qualified:
+ *s_out = "DW_VIS_qualified";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_VIRTUALITY_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_VIRTUALITY_none:
+ *s_out = "DW_VIRTUALITY_none";
+ return DW_DLV_OK;
+ case DW_VIRTUALITY_virtual:
+ *s_out = "DW_VIRTUALITY_virtual";
+ return DW_DLV_OK;
+ case DW_VIRTUALITY_pure_virtual:
+ *s_out = "DW_VIRTUALITY_pure_virtual";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_LANG_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_LANG_C89:
+ *s_out = "DW_LANG_C89";
+ return DW_DLV_OK;
+ case DW_LANG_C:
+ *s_out = "DW_LANG_C";
+ return DW_DLV_OK;
+ case DW_LANG_Ada83:
+ *s_out = "DW_LANG_Ada83";
+ return DW_DLV_OK;
+ case DW_LANG_C_plus_plus:
+ *s_out = "DW_LANG_C_plus_plus";
+ return DW_DLV_OK;
+ case DW_LANG_Cobol74:
+ *s_out = "DW_LANG_Cobol74";
+ return DW_DLV_OK;
+ case DW_LANG_Cobol85:
+ *s_out = "DW_LANG_Cobol85";
+ return DW_DLV_OK;
+ case DW_LANG_Fortran77:
+ *s_out = "DW_LANG_Fortran77";
+ return DW_DLV_OK;
+ case DW_LANG_Fortran90:
+ *s_out = "DW_LANG_Fortran90";
+ return DW_DLV_OK;
+ case DW_LANG_Pascal83:
+ *s_out = "DW_LANG_Pascal83";
+ return DW_DLV_OK;
+ case DW_LANG_Modula2:
+ *s_out = "DW_LANG_Modula2";
+ return DW_DLV_OK;
+ case DW_LANG_Java:
+ *s_out = "DW_LANG_Java";
+ return DW_DLV_OK;
+ case DW_LANG_C99:
+ *s_out = "DW_LANG_C99";
+ return DW_DLV_OK;
+ case DW_LANG_Ada95:
+ *s_out = "DW_LANG_Ada95";
+ return DW_DLV_OK;
+ case DW_LANG_Fortran95:
+ *s_out = "DW_LANG_Fortran95";
+ return DW_DLV_OK;
+ case DW_LANG_PLI:
+ *s_out = "DW_LANG_PLI";
+ return DW_DLV_OK;
+ case DW_LANG_ObjC:
+ *s_out = "DW_LANG_ObjC";
+ return DW_DLV_OK;
+ case DW_LANG_ObjC_plus_plus:
+ *s_out = "DW_LANG_ObjC_plus_plus";
+ return DW_DLV_OK;
+ case DW_LANG_UPC:
+ *s_out = "DW_LANG_UPC";
+ return DW_DLV_OK;
+ case DW_LANG_D:
+ *s_out = "DW_LANG_D";
+ return DW_DLV_OK;
+ case DW_LANG_Python:
+ *s_out = "DW_LANG_Python";
+ return DW_DLV_OK;
+ case DW_LANG_OpenCL:
+ *s_out = "DW_LANG_OpenCL";
+ return DW_DLV_OK;
+ case DW_LANG_Go:
+ *s_out = "DW_LANG_Go";
+ return DW_DLV_OK;
+ case DW_LANG_lo_user:
+ *s_out = "DW_LANG_lo_user";
+ return DW_DLV_OK;
+ case DW_LANG_Mips_Assembler:
+ *s_out = "DW_LANG_Mips_Assembler";
+ return DW_DLV_OK;
+ case DW_LANG_Upc:
+ *s_out = "DW_LANG_Upc";
+ return DW_DLV_OK;
+ case DW_LANG_SUN_Assembler:
+ *s_out = "DW_LANG_SUN_Assembler";
+ return DW_DLV_OK;
+ case DW_LANG_ALTIUM_Assembler:
+ *s_out = "DW_LANG_ALTIUM_Assembler";
+ return DW_DLV_OK;
+ case DW_LANG_hi_user:
+ *s_out = "DW_LANG_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_ID_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_ID_case_sensitive:
+ *s_out = "DW_ID_case_sensitive";
+ return DW_DLV_OK;
+ case DW_ID_up_case:
+ *s_out = "DW_ID_up_case";
+ return DW_DLV_OK;
+ case DW_ID_down_case:
+ *s_out = "DW_ID_down_case";
+ return DW_DLV_OK;
+ case DW_ID_case_insensitive:
+ *s_out = "DW_ID_case_insensitive";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_CC_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_CC_normal:
+ *s_out = "DW_CC_normal";
+ return DW_DLV_OK;
+ case DW_CC_program:
+ *s_out = "DW_CC_program";
+ return DW_DLV_OK;
+ case DW_CC_nocall:
+ *s_out = "DW_CC_nocall";
+ return DW_DLV_OK;
+ case DW_CC_lo_user:
+ *s_out = "DW_CC_lo_user";
+ return DW_DLV_OK;
+ case DW_CC_ALTIUM_interrupt:
+ *s_out = "DW_CC_ALTIUM_interrupt";
+ return DW_DLV_OK;
+ case DW_CC_ALTIUM_near_system_stack:
+ *s_out = "DW_CC_ALTIUM_near_system_stack";
+ return DW_DLV_OK;
+ case DW_CC_ALTIUM_near_user_stack:
+ *s_out = "DW_CC_ALTIUM_near_user_stack";
+ return DW_DLV_OK;
+ case DW_CC_ALTIUM_huge_user_stack:
+ *s_out = "DW_CC_ALTIUM_huge_user_stack";
+ return DW_DLV_OK;
+ case DW_CC_hi_user:
+ *s_out = "DW_CC_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_INL_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_INL_not_inlined:
+ *s_out = "DW_INL_not_inlined";
+ return DW_DLV_OK;
+ case DW_INL_inlined:
+ *s_out = "DW_INL_inlined";
+ return DW_DLV_OK;
+ case DW_INL_declared_not_inlined:
+ *s_out = "DW_INL_declared_not_inlined";
+ return DW_DLV_OK;
+ case DW_INL_declared_inlined:
+ *s_out = "DW_INL_declared_inlined";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_ORD_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_ORD_row_major:
+ *s_out = "DW_ORD_row_major";
+ return DW_DLV_OK;
+ case DW_ORD_col_major:
+ *s_out = "DW_ORD_col_major";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_DSC_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_DSC_label:
+ *s_out = "DW_DSC_label";
+ return DW_DLV_OK;
+ case DW_DSC_range:
+ *s_out = "DW_DSC_range";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_LNS_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_LNS_copy:
+ *s_out = "DW_LNS_copy";
+ return DW_DLV_OK;
+ case DW_LNS_advance_pc:
+ *s_out = "DW_LNS_advance_pc";
+ return DW_DLV_OK;
+ case DW_LNS_advance_line:
+ *s_out = "DW_LNS_advance_line";
+ return DW_DLV_OK;
+ case DW_LNS_set_file:
+ *s_out = "DW_LNS_set_file";
+ return DW_DLV_OK;
+ case DW_LNS_set_column:
+ *s_out = "DW_LNS_set_column";
+ return DW_DLV_OK;
+ case DW_LNS_negate_stmt:
+ *s_out = "DW_LNS_negate_stmt";
+ return DW_DLV_OK;
+ case DW_LNS_set_basic_block:
+ *s_out = "DW_LNS_set_basic_block";
+ return DW_DLV_OK;
+ case DW_LNS_const_add_pc:
+ *s_out = "DW_LNS_const_add_pc";
+ return DW_DLV_OK;
+ case DW_LNS_fixed_advance_pc:
+ *s_out = "DW_LNS_fixed_advance_pc";
+ return DW_DLV_OK;
+ case DW_LNS_set_prologue_end:
+ *s_out = "DW_LNS_set_prologue_end";
+ return DW_DLV_OK;
+ case DW_LNS_set_epilogue_begin:
+ *s_out = "DW_LNS_set_epilogue_begin";
+ return DW_DLV_OK;
+ case DW_LNS_set_isa:
+ *s_out = "DW_LNS_set_isa";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_LNE_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_LNE_end_sequence:
+ *s_out = "DW_LNE_end_sequence";
+ return DW_DLV_OK;
+ case DW_LNE_set_address:
+ *s_out = "DW_LNE_set_address";
+ return DW_DLV_OK;
+ case DW_LNE_define_file:
+ *s_out = "DW_LNE_define_file";
+ return DW_DLV_OK;
+ case DW_LNE_set_discriminator:
+ *s_out = "DW_LNE_set_discriminator";
+ return DW_DLV_OK;
+ case DW_LNE_HP_negate_is_UV_update:
+ *s_out = "DW_LNE_HP_negate_is_UV_update";
+ return DW_DLV_OK;
+ case DW_LNE_HP_push_context:
+ *s_out = "DW_LNE_HP_push_context";
+ return DW_DLV_OK;
+ case DW_LNE_HP_pop_context:
+ *s_out = "DW_LNE_HP_pop_context";
+ return DW_DLV_OK;
+ case DW_LNE_HP_set_file_line_column:
+ *s_out = "DW_LNE_HP_set_file_line_column";
+ return DW_DLV_OK;
+ case DW_LNE_HP_set_routine_name:
+ *s_out = "DW_LNE_HP_set_routine_name";
+ return DW_DLV_OK;
+ case DW_LNE_HP_set_sequence:
+ *s_out = "DW_LNE_HP_set_sequence";
+ return DW_DLV_OK;
+ case DW_LNE_HP_negate_post_semantics:
+ *s_out = "DW_LNE_HP_negate_post_semantics";
+ return DW_DLV_OK;
+ case DW_LNE_HP_negate_function_exit:
+ *s_out = "DW_LNE_HP_negate_function_exit";
+ return DW_DLV_OK;
+ case DW_LNE_HP_negate_front_end_logical:
+ *s_out = "DW_LNE_HP_negate_front_end_logical";
+ return DW_DLV_OK;
+ case DW_LNE_HP_define_proc:
+ *s_out = "DW_LNE_HP_define_proc";
+ return DW_DLV_OK;
+ case DW_LNE_lo_user:
+ *s_out = "DW_LNE_lo_user";
+ return DW_DLV_OK;
+ case DW_LNE_hi_user:
+ *s_out = "DW_LNE_hi_user";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_ISA_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_ISA_UNKNOWN:
+ *s_out = "DW_ISA_UNKNOWN";
+ return DW_DLV_OK;
+ case DW_ISA_ARM_thumb:
+ *s_out = "DW_ISA_ARM_thumb";
+ return DW_DLV_OK;
+ case DW_ISA_ARM_arm:
+ *s_out = "DW_ISA_ARM_arm";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_MACINFO_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_MACINFO_define:
+ *s_out = "DW_MACINFO_define";
+ return DW_DLV_OK;
+ case DW_MACINFO_undef:
+ *s_out = "DW_MACINFO_undef";
+ return DW_DLV_OK;
+ case DW_MACINFO_start_file:
+ *s_out = "DW_MACINFO_start_file";
+ return DW_DLV_OK;
+ case DW_MACINFO_end_file:
+ *s_out = "DW_MACINFO_end_file";
+ return DW_DLV_OK;
+ case DW_MACINFO_vendor_ext:
+ *s_out = "DW_MACINFO_vendor_ext";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_CFA_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_CFA_extended:
+ *s_out = "DW_CFA_extended";
+ return DW_DLV_OK;
+ case DW_CFA_set_loc:
+ *s_out = "DW_CFA_set_loc";
+ return DW_DLV_OK;
+ case DW_CFA_advance_loc1:
+ *s_out = "DW_CFA_advance_loc1";
+ return DW_DLV_OK;
+ case DW_CFA_advance_loc2:
+ *s_out = "DW_CFA_advance_loc2";
+ return DW_DLV_OK;
+ case DW_CFA_advance_loc4:
+ *s_out = "DW_CFA_advance_loc4";
+ return DW_DLV_OK;
+ case DW_CFA_offset_extended:
+ *s_out = "DW_CFA_offset_extended";
+ return DW_DLV_OK;
+ case DW_CFA_restore_extended:
+ *s_out = "DW_CFA_restore_extended";
+ return DW_DLV_OK;
+ case DW_CFA_undefined:
+ *s_out = "DW_CFA_undefined";
+ return DW_DLV_OK;
+ case DW_CFA_same_value:
+ *s_out = "DW_CFA_same_value";
+ return DW_DLV_OK;
+ case DW_CFA_register:
+ *s_out = "DW_CFA_register";
+ return DW_DLV_OK;
+ case DW_CFA_remember_state:
+ *s_out = "DW_CFA_remember_state";
+ return DW_DLV_OK;
+ case DW_CFA_restore_state:
+ *s_out = "DW_CFA_restore_state";
+ return DW_DLV_OK;
+ case DW_CFA_def_cfa:
+ *s_out = "DW_CFA_def_cfa";
+ return DW_DLV_OK;
+ case DW_CFA_def_cfa_register:
+ *s_out = "DW_CFA_def_cfa_register";
+ return DW_DLV_OK;
+ case DW_CFA_def_cfa_offset:
+ *s_out = "DW_CFA_def_cfa_offset";
+ return DW_DLV_OK;
+ case DW_CFA_def_cfa_expression:
+ *s_out = "DW_CFA_def_cfa_expression";
+ return DW_DLV_OK;
+ case DW_CFA_expression:
+ *s_out = "DW_CFA_expression";
+ return DW_DLV_OK;
+ case DW_CFA_offset_extended_sf:
+ *s_out = "DW_CFA_offset_extended_sf";
+ return DW_DLV_OK;
+ case DW_CFA_def_cfa_sf:
+ *s_out = "DW_CFA_def_cfa_sf";
+ return DW_DLV_OK;
+ case DW_CFA_def_cfa_offset_sf:
+ *s_out = "DW_CFA_def_cfa_offset_sf";
+ return DW_DLV_OK;
+ case DW_CFA_val_offset:
+ *s_out = "DW_CFA_val_offset";
+ return DW_DLV_OK;
+ case DW_CFA_val_offset_sf:
+ *s_out = "DW_CFA_val_offset_sf";
+ return DW_DLV_OK;
+ case DW_CFA_val_expression:
+ *s_out = "DW_CFA_val_expression";
+ return DW_DLV_OK;
+ case DW_CFA_lo_user:
+ *s_out = "DW_CFA_lo_user";
+ return DW_DLV_OK;
+ case DW_CFA_MIPS_advance_loc8:
+ *s_out = "DW_CFA_MIPS_advance_loc8";
+ return DW_DLV_OK;
+ case DW_CFA_GNU_window_save:
+ *s_out = "DW_CFA_GNU_window_save";
+ return DW_DLV_OK;
+ case DW_CFA_GNU_args_size:
+ *s_out = "DW_CFA_GNU_args_size";
+ return DW_DLV_OK;
+ case DW_CFA_GNU_negative_offset_extended:
+ *s_out = "DW_CFA_GNU_negative_offset_extended";
+ return DW_DLV_OK;
+ case DW_CFA_high_user:
+ *s_out = "DW_CFA_high_user";
+ return DW_DLV_OK;
+ case DW_CFA_advance_loc:
+ *s_out = "DW_CFA_advance_loc";
+ return DW_DLV_OK;
+ case DW_CFA_offset:
+ *s_out = "DW_CFA_offset";
+ return DW_DLV_OK;
+ case DW_CFA_restore:
+ *s_out = "DW_CFA_restore";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_EH_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_EH_PE_absptr:
+ *s_out = "DW_EH_PE_absptr";
+ return DW_DLV_OK;
+ case DW_EH_PE_uleb128:
+ *s_out = "DW_EH_PE_uleb128";
+ return DW_DLV_OK;
+ case DW_EH_PE_udata2:
+ *s_out = "DW_EH_PE_udata2";
+ return DW_DLV_OK;
+ case DW_EH_PE_udata4:
+ *s_out = "DW_EH_PE_udata4";
+ return DW_DLV_OK;
+ case DW_EH_PE_udata8:
+ *s_out = "DW_EH_PE_udata8";
+ return DW_DLV_OK;
+ case DW_EH_PE_sleb128:
+ *s_out = "DW_EH_PE_sleb128";
+ return DW_DLV_OK;
+ case DW_EH_PE_sdata2:
+ *s_out = "DW_EH_PE_sdata2";
+ return DW_DLV_OK;
+ case DW_EH_PE_sdata4:
+ *s_out = "DW_EH_PE_sdata4";
+ return DW_DLV_OK;
+ case DW_EH_PE_sdata8:
+ *s_out = "DW_EH_PE_sdata8";
+ return DW_DLV_OK;
+ case DW_EH_PE_pcrel:
+ *s_out = "DW_EH_PE_pcrel";
+ return DW_DLV_OK;
+ case DW_EH_PE_textrel:
+ *s_out = "DW_EH_PE_textrel";
+ return DW_DLV_OK;
+ case DW_EH_PE_datarel:
+ *s_out = "DW_EH_PE_datarel";
+ return DW_DLV_OK;
+ case DW_EH_PE_funcrel:
+ *s_out = "DW_EH_PE_funcrel";
+ return DW_DLV_OK;
+ case DW_EH_PE_aligned:
+ *s_out = "DW_EH_PE_aligned";
+ return DW_DLV_OK;
+ case DW_EH_PE_omit:
+ *s_out = "DW_EH_PE_omit";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_FRAME_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_FRAME_CFA_COL:
+ *s_out = "DW_FRAME_CFA_COL";
+ return DW_DLV_OK;
+ case DW_FRAME_REG1:
+ *s_out = "DW_FRAME_REG1";
+ return DW_DLV_OK;
+ case DW_FRAME_REG2:
+ *s_out = "DW_FRAME_REG2";
+ return DW_DLV_OK;
+ case DW_FRAME_REG3:
+ *s_out = "DW_FRAME_REG3";
+ return DW_DLV_OK;
+ case DW_FRAME_REG4:
+ *s_out = "DW_FRAME_REG4";
+ return DW_DLV_OK;
+ case DW_FRAME_REG5:
+ *s_out = "DW_FRAME_REG5";
+ return DW_DLV_OK;
+ case DW_FRAME_REG6:
+ *s_out = "DW_FRAME_REG6";
+ return DW_DLV_OK;
+ case DW_FRAME_REG7:
+ *s_out = "DW_FRAME_REG7";
+ return DW_DLV_OK;
+ case DW_FRAME_REG8:
+ *s_out = "DW_FRAME_REG8";
+ return DW_DLV_OK;
+ case DW_FRAME_REG9:
+ *s_out = "DW_FRAME_REG9";
+ return DW_DLV_OK;
+ case DW_FRAME_REG10:
+ *s_out = "DW_FRAME_REG10";
+ return DW_DLV_OK;
+ case DW_FRAME_REG11:
+ *s_out = "DW_FRAME_REG11";
+ return DW_DLV_OK;
+ case DW_FRAME_REG12:
+ *s_out = "DW_FRAME_REG12";
+ return DW_DLV_OK;
+ case DW_FRAME_REG13:
+ *s_out = "DW_FRAME_REG13";
+ return DW_DLV_OK;
+ case DW_FRAME_REG14:
+ *s_out = "DW_FRAME_REG14";
+ return DW_DLV_OK;
+ case DW_FRAME_REG15:
+ *s_out = "DW_FRAME_REG15";
+ return DW_DLV_OK;
+ case DW_FRAME_REG16:
+ *s_out = "DW_FRAME_REG16";
+ return DW_DLV_OK;
+ case DW_FRAME_REG17:
+ *s_out = "DW_FRAME_REG17";
+ return DW_DLV_OK;
+ case DW_FRAME_REG18:
+ *s_out = "DW_FRAME_REG18";
+ return DW_DLV_OK;
+ case DW_FRAME_REG19:
+ *s_out = "DW_FRAME_REG19";
+ return DW_DLV_OK;
+ case DW_FRAME_REG20:
+ *s_out = "DW_FRAME_REG20";
+ return DW_DLV_OK;
+ case DW_FRAME_REG21:
+ *s_out = "DW_FRAME_REG21";
+ return DW_DLV_OK;
+ case DW_FRAME_REG22:
+ *s_out = "DW_FRAME_REG22";
+ return DW_DLV_OK;
+ case DW_FRAME_REG23:
+ *s_out = "DW_FRAME_REG23";
+ return DW_DLV_OK;
+ case DW_FRAME_REG24:
+ *s_out = "DW_FRAME_REG24";
+ return DW_DLV_OK;
+ case DW_FRAME_REG25:
+ *s_out = "DW_FRAME_REG25";
+ return DW_DLV_OK;
+ case DW_FRAME_REG26:
+ *s_out = "DW_FRAME_REG26";
+ return DW_DLV_OK;
+ case DW_FRAME_REG27:
+ *s_out = "DW_FRAME_REG27";
+ return DW_DLV_OK;
+ case DW_FRAME_REG28:
+ *s_out = "DW_FRAME_REG28";
+ return DW_DLV_OK;
+ case DW_FRAME_REG29:
+ *s_out = "DW_FRAME_REG29";
+ return DW_DLV_OK;
+ case DW_FRAME_REG30:
+ *s_out = "DW_FRAME_REG30";
+ return DW_DLV_OK;
+ case DW_FRAME_REG31:
+ *s_out = "DW_FRAME_REG31";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG0:
+ *s_out = "DW_FRAME_FREG0";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG1:
+ *s_out = "DW_FRAME_FREG1";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG2:
+ *s_out = "DW_FRAME_FREG2";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG3:
+ *s_out = "DW_FRAME_FREG3";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG4:
+ *s_out = "DW_FRAME_FREG4";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG5:
+ *s_out = "DW_FRAME_FREG5";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG6:
+ *s_out = "DW_FRAME_FREG6";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG7:
+ *s_out = "DW_FRAME_FREG7";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG8:
+ *s_out = "DW_FRAME_FREG8";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG9:
+ *s_out = "DW_FRAME_FREG9";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG10:
+ *s_out = "DW_FRAME_FREG10";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG11:
+ *s_out = "DW_FRAME_FREG11";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG12:
+ *s_out = "DW_FRAME_FREG12";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG13:
+ *s_out = "DW_FRAME_FREG13";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG14:
+ *s_out = "DW_FRAME_FREG14";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG15:
+ *s_out = "DW_FRAME_FREG15";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG16:
+ *s_out = "DW_FRAME_FREG16";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG17:
+ *s_out = "DW_FRAME_FREG17";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG18:
+ *s_out = "DW_FRAME_FREG18";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG19:
+ *s_out = "DW_FRAME_FREG19";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG20:
+ *s_out = "DW_FRAME_FREG20";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG21:
+ *s_out = "DW_FRAME_FREG21";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG22:
+ *s_out = "DW_FRAME_FREG22";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG23:
+ *s_out = "DW_FRAME_FREG23";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG24:
+ *s_out = "DW_FRAME_FREG24";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG25:
+ *s_out = "DW_FRAME_FREG25";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG26:
+ *s_out = "DW_FRAME_FREG26";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG27:
+ *s_out = "DW_FRAME_FREG27";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG28:
+ *s_out = "DW_FRAME_FREG28";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG29:
+ *s_out = "DW_FRAME_FREG29";
+ return DW_DLV_OK;
+ case DW_FRAME_FREG30:
+ *s_out = "DW_FRAME_FREG30";
+ return DW_DLV_OK;
+ case DW_FRAME_HIGHEST_NORMAL_REGISTER:
+ *s_out = "DW_FRAME_HIGHEST_NORMAL_REGISTER";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_CHILDREN_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_CHILDREN_no:
+ *s_out = "DW_CHILDREN_no";
+ return DW_DLV_OK;
+ case DW_CHILDREN_yes:
+ *s_out = "DW_CHILDREN_yes";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+/* ARGSUSED */
+int
+dwarf_get_ADDR_name (unsigned int val,const char ** s_out)
+{
+ switch (val) {
+ case DW_ADDR_none:
+ *s_out = "DW_ADDR_none";
+ return DW_DLV_OK;
+ }
+ return DW_DLV_NO_ENTRY;
+}
+
+/* END FILE */
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_names.h b/usr/src/tools/ctf/dwarf/common/dwarf_names.h
new file mode 100644
index 0000000000..6edafa5fdd
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_names.h
@@ -0,0 +1,34 @@
+/* Generated routines, do not edit. */
+/* Generated on May 22 2011 03:05:33 */
+
+/* BEGIN FILE */
+
+extern int dwarf_get_TAG_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_children_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_FORM_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_AT_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_OP_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ATE_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_DS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_END_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ATCF_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ACCESS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_VIS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_VIRTUALITY_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_LANG_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ID_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_CC_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_INL_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ORD_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_DSC_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_LNS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_LNE_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ISA_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_MACINFO_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_CFA_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_EH_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_FRAME_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_CHILDREN_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ADDR_name(unsigned int /*val_in*/, const char ** /*s_out */);
+
+/* END FILE */
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_opaque.h b/usr/src/tools/ctf/dwarf/common/dwarf_opaque.h
index 5873259df8..b235a9c7b4 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_opaque.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_opaque.h
@@ -1,6 +1,8 @@
/*
- Copyright (C) 2000,2002,2003 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
+ Portions Copyright (C) 2008-2010 Arxan Technologies, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +21,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,20 +34,30 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The versions applicable by section are:
+ DWARF2 DWARF3 DWARF4
+ .debug_abbrev - - -
+ .debug_aranges 2 2 2
+ .debug_frame 1 3 4
+ .debug_info 2 3 4
+ .debug_line 2 3 4
+ .debug_loc - - -
+ .debug_macinfo - - -
+ .debug_pubtypes x 2 2
+ .debug_pubnames 2 2 2
+ .debug_ranges x - -
+ .debug_str - - -
+ .debug_types x x 4
+*/
#include <stddef.h>
struct Dwarf_Die_s {
- /*
- Points to the start of the portion corresponding to this Die in
- the .debug_info section. */
Dwarf_Byte_Ptr di_debug_info_ptr;
-
Dwarf_Abbrev_List di_abbrev_list;
-
- /* Points to cu context for this die. */
Dwarf_CU_Context di_cu_context;
+ int di_abbrev_code;
};
struct Dwarf_Attribute_s {
@@ -78,30 +90,101 @@ struct Dwarf_Attribute_s {
Each die will also contain a pointer to such a struct to
record the context for that die.
+
+ Notice that a pointer to the CU DIE itself is
+ Dwarf_Off off2 = cu_context->cc_debug_info_offset;
+ cu_die_info_ptr = dbg->de_debug_info.dss_data +
+ off2 + _dwarf_length_of_cu_header(dbg, off2);
**Updated by dwarf_next_cu_header in dwarf_die_deliv.c
*/
struct Dwarf_CU_Context_s {
Dwarf_Debug cc_dbg;
+ /* The sum of cc_length, cc_length_size, and cc_extension_size
+ is the total length of the CU including its header. */
Dwarf_Word cc_length;
+ /* cc_length_size is the size in bytes of an offset.
+ 4 for 32bit dwarf, 8 for 64bit dwarf (whether MIPS/IRIX
+ 64bit dwarf or standard 64bit dwarf using the extension
+ mechanism). */
Dwarf_Small cc_length_size;
+ /* cc_extension_size is zero unless this is standard
+ DWARF3 and later 64bit dwarf using the extension mechanism.
+ If it is the DWARF3 and later 64bit dwarf cc_extension
+ size is 4. So for 32bit dwarf and MIPS/IRIX 64bit dwarf
+ cc_extension_size is zero. */
Dwarf_Small cc_extension_size;
Dwarf_Half cc_version_stamp;
Dwarf_Sword cc_abbrev_offset;
Dwarf_Small cc_address_size;
+ /* cc_debug_info_offset is the offset in the section
+ of the CU header of this CU. Dwarf_Word
+ should be large enough. */
Dwarf_Word cc_debug_info_offset;
Dwarf_Byte_Ptr cc_last_abbrev_ptr;
Dwarf_Hash_Table cc_abbrev_hash_table;
Dwarf_CU_Context cc_next;
- unsigned char cc_offset_length;
+ /*unsigned char cc_offset_length; */
+};
+
+/* Consolidates section-specific data in one place.
+ Section is an Elf specific term, intended as a general
+ term (for non-Elf objects some code must synthesize the
+ values somehow).
+ Makes adding more section-data much simpler. */
+struct Dwarf_Section_s {
+ Dwarf_Small * dss_data;
+ Dwarf_Unsigned dss_size;
+ Dwarf_Word dss_index;
+ /* dss_addr is the 'section address' which is only
+ non-zero for a GNU eh section.
+ Purpose: to handle DW_EH_PE_pcrel encoding. Leaving
+ it zero is fine for non-elf. */
+ Dwarf_Addr dss_addr;
+ Dwarf_Small dss_data_was_malloc;
+
+ /* For non-elf, leaving the following fields zero
+ will mean they are ignored. */
+ /* dss_link should be zero unless a section has a link
+ to another (sh_link). Used to access relocation data for
+ a section (and for symtab section, access its strtab). */
+ Dwarf_Word dss_link;
+ /* The following is used when reading .rela sections
+ (such sections appear in some .o files). */
+ Dwarf_Half dss_reloc_index; /* Zero means ignore the reloc fields. */
+ Dwarf_Small * dss_reloc_data;
+ Dwarf_Unsigned dss_reloc_size;
+ Dwarf_Addr dss_reloc_addr;
+ /* dss_reloc_symtab is the sh_link of a .rela to its .symtab, leave
+ it 0 if non-meaningful. */
+ Dwarf_Addr dss_reloc_symtab;
+ /* dss_reloc_link should be zero unless a reloc section has a link
+ to another (sh_link). Used to access the symtab for relocations
+ a section. */
+ Dwarf_Word dss_reloc_link;
+ /* Pointer to the elf symtab, used for elf .rela. Leave it 0
+ if not relevant. */
+ struct Dwarf_Section_s *dss_symtab;
};
+/* Overview: if next_to_use== first, no error slots are used.
+ If next_to_use+1 (mod maxcount) == first the slots are all used
+*/
+struct Dwarf_Harmless_s {
+ unsigned dh_maxcount;
+ unsigned dh_next_to_use;
+ unsigned dh_first;
+ unsigned dh_errs_count;
+ char ** dh_errors;
+};
struct Dwarf_Debug_s {
- dwarf_elf_handle de_elf; /* see de_elf_must_close at end of struct */
- unsigned int de_nelfsecs;
+ /* All file access methods and support data
+ are hidden in this structure.
+ We get a pointer, callers control the lifetime of the
+ structure and contents. */
+ struct Dwarf_Obj_Access_Interface_s *de_obj_file;
- Dwarf_Unsigned de_access;
Dwarf_Handler de_errhand;
Dwarf_Ptr de_errarg;
@@ -151,7 +234,6 @@ struct Dwarf_Debug_s {
struct Dwarf_Alloc_Hdr_s de_alloc_hdr[ALLOC_AREA_REAL_TABLE_MAX];
#ifdef DWARF_SIMPLE_MALLOC
struct simple_malloc_record_s * de_simple_malloc_base;
- struct simple_malloc_record_s * de_simple_malloc_current;
#endif
@@ -163,48 +245,45 @@ struct Dwarf_Debug_s {
Dwarf_Cie *de_cie_data;
/* Count of number of Dwarf_Cie_s structs. */
Dwarf_Signed de_cie_count;
+ /* Keep eh (GNU) separate!. */
+ Dwarf_Cie *de_cie_data_eh;
+ Dwarf_Signed de_cie_count_eh;
/*
Points to contiguous block of pointers to Dwarf_Fde_s structs. */
Dwarf_Fde *de_fde_data;
/* Count of number of Dwarf_Fde_s structs. */
Dwarf_Signed de_fde_count;
+ /* Keep eh (GNU) separate!. */
+ Dwarf_Fde *de_fde_data_eh;
+ Dwarf_Signed de_fde_count_eh;
+
+ struct Dwarf_Section_s de_debug_info;
+ struct Dwarf_Section_s de_debug_abbrev;
+ struct Dwarf_Section_s de_debug_line;
+ struct Dwarf_Section_s de_debug_loc;
+ struct Dwarf_Section_s de_debug_aranges;
+ struct Dwarf_Section_s de_debug_macinfo;
+ struct Dwarf_Section_s de_debug_pubnames;
+ struct Dwarf_Section_s de_debug_str;
+ struct Dwarf_Section_s de_debug_frame;
+
+ /* gnu: the g++ eh_frame section */
+ struct Dwarf_Section_s de_debug_frame_eh_gnu;
+
+ struct Dwarf_Section_s de_debug_pubtypes; /* DWARF3 .debug_pubtypes */
+
+ struct Dwarf_Section_s de_debug_funcnames;
+ struct Dwarf_Section_s de_debug_typenames; /* SGI IRIX extension essentially
+ identical to DWARF3 .debug_pubtypes. */
+ struct Dwarf_Section_s de_debug_varnames;
+ struct Dwarf_Section_s de_debug_weaknames;
+ struct Dwarf_Section_s de_debug_ranges;
+
+ /* For non-elf, simply leave the following two structs zeroed and
+ they will be ignored. */
+ struct Dwarf_Section_s de_elf_symtab;
+ struct Dwarf_Section_s de_elf_strtab;
- Dwarf_Small *de_debug_info;
- Dwarf_Small *de_debug_abbrev;
- Dwarf_Small *de_debug_line;
- Dwarf_Small *de_debug_loc;
- Dwarf_Small *de_debug_aranges;
- Dwarf_Small *de_debug_macinfo;
- Dwarf_Small *de_debug_pubnames;
- Dwarf_Small *de_debug_str;
- Dwarf_Small *de_debug_frame;
- Dwarf_Small *de_debug_frame_eh_gnu; /* gnu for the g++ eh_frame
- section */
-
- Dwarf_Small *de_debug_funcnames;
- Dwarf_Small *de_debug_typenames;
- Dwarf_Small *de_debug_varnames;
- Dwarf_Small *de_debug_weaknames;
-
- Dwarf_Unsigned de_debug_info_size;
- Dwarf_Unsigned de_debug_abbrev_size;
- Dwarf_Unsigned de_debug_line_size;
- Dwarf_Unsigned de_debug_loc_size;
- Dwarf_Unsigned de_debug_aranges_size;
- Dwarf_Unsigned de_debug_macinfo_size;
- Dwarf_Unsigned de_debug_pubnames_size;
- Dwarf_Unsigned de_debug_str_size;
-
-
- Dwarf_Unsigned de_debug_frame_size;
-
- Dwarf_Unsigned de_debug_frame_size_eh_gnu; /* gnu for the g++
- eh_frame section */
-
- Dwarf_Unsigned de_debug_funcnames_size;
- Dwarf_Unsigned de_debug_typenames_size;
- Dwarf_Unsigned de_debug_varnames_size;
- Dwarf_Unsigned de_debug_weaknames_size;
void *(*de_copy_word) (void *, const void *, size_t);
unsigned char de_same_endian;
@@ -212,31 +291,20 @@ struct Dwarf_Debug_s {
it was dwarf_init (not dwarf_elf_init)
so must elf_end() */
- /*
- The following are used for storing section indicies.
-
- After a Dwarf_Debug is initialized, a zero for any of
- these indicies indicates an absent section.
-
- If the ELF spec is ever changed to permit 32-bit section
- indicies, these will need to be changed.
- */
- Dwarf_Half de_debug_aranges_index;
- Dwarf_Half de_debug_line_index;
- Dwarf_Half de_debug_loc_index;
- Dwarf_Half de_debug_macinfo_index;
- Dwarf_Half de_debug_pubnames_index;
- Dwarf_Half de_debug_funcnames_index;
- Dwarf_Half de_debug_typenames_index;
- Dwarf_Half de_debug_varnames_index;
- Dwarf_Half de_debug_weaknames_index;
- Dwarf_Half de_debug_frame_index;
- Dwarf_Half de_debug_frame_eh_gnu_index;
- Dwarf_Half de_debug_str_index;
- Dwarf_Half de_debug_info_index;
- Dwarf_Half de_debug_abbrev_index;
+ /* Default is DW_FRAME_INITIAL_VALUE from header. */
+ Dwarf_Half de_frame_rule_initial_value;
+
+ /* Default is DW_FRAME_LAST_REG_NUM. */
+ Dwarf_Half de_frame_reg_rules_entry_count;
+
+ Dwarf_Half de_frame_cfa_col_number;
+ Dwarf_Half de_frame_same_value_number;
+ Dwarf_Half de_frame_undefined_value_number;
+
unsigned char de_big_endian_object; /* non-zero if big-endian
object opened. */
+
+ struct Dwarf_Harmless_s de_harmless_errors;
};
typedef struct Dwarf_Chain_s *Dwarf_Chain;
@@ -245,7 +313,10 @@ struct Dwarf_Chain_s {
Dwarf_Chain ch_next;
};
-#define CURRENT_VERSION_STAMP 2
+
+#define CURRENT_VERSION_STAMP 2 /* DWARF2 */
+#define CURRENT_VERSION_STAMP3 3 /* DWARF3 */
+#define CURRENT_VERSION_STAMP4 4 /* DWARF4 */
/* Size of cu header version stamp field. */
#define CU_VERSION_STAMP_SIZE sizeof(Dwarf_Half)
@@ -264,6 +335,5 @@ void *_dwarf_memcpy_swap_bytes(void *s1, const void *s2, size_t len);
used to load the section.
*/
int _dwarf_load_section(Dwarf_Debug,
- Dwarf_Half,
- Dwarf_Small **,
- Dwarf_Error *);
+ struct Dwarf_Section_s *,
+ Dwarf_Error *);
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_original_elf_init.c b/usr/src/tools/ctf/dwarf/common/dwarf_original_elf_init.c
new file mode 100644
index 0000000000..a6d943da0a
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_original_elf_init.c
@@ -0,0 +1,209 @@
+/*
+
+ Copyright (C) 2000,2001,2002,2005,2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2007-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2008-2010 Arxan Technologies, Inc. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+
+#include "config.h"
+#include "dwarf_incl.h"
+#include "dwarf_elf_access.h"
+
+#ifdef HAVE_ELF_H
+#include <elf.h>
+#endif
+#ifdef HAVE_LIBELF_H
+#include <libelf.h>
+#else
+#ifdef HAVE_LIBELF_LIBELF_H
+#include <libelf/libelf.h>
+#endif
+#endif
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define DWARF_DBG_ERROR(dbg,errval,retval) \
+ _dwarf_error(dbg, error, errval); return(retval);
+
+#define FALSE 0
+#define TRUE 1
+
+static int
+dwarf_elf_init_file_ownership(dwarf_elf_handle elf_file_pointer,
+ int libdwarf_owns_elf,
+ Dwarf_Unsigned access,
+ Dwarf_Handler errhand,
+ Dwarf_Ptr errarg,
+ Dwarf_Debug * ret_dbg,
+ Dwarf_Error * error);
+
+
+/*
+ The basic dwarf initializer function for consumers using
+ libelf.
+ Return a libdwarf error code on error, return DW_DLV_OK
+ if this succeeds.
+*/
+int
+dwarf_init(int fd,
+ Dwarf_Unsigned access,
+ Dwarf_Handler errhand,
+ Dwarf_Ptr errarg, Dwarf_Debug * ret_dbg, Dwarf_Error * error)
+{
+ struct stat fstat_buf;
+ dwarf_elf_handle elf_file_pointer = 0;
+ /* ELF_C_READ is a portable value */
+ Elf_Cmd what_kind_of_elf_read = ELF_C_READ;
+
+#if !defined(S_ISREG)
+#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
+#endif
+ if (fstat(fd, &fstat_buf) != 0) {
+ DWARF_DBG_ERROR(NULL, DW_DLE_FSTAT_ERROR, DW_DLV_ERROR);
+ }
+ if (!S_ISREG(fstat_buf.st_mode)) {
+ DWARF_DBG_ERROR(NULL, DW_DLE_FSTAT_MODE_ERROR, DW_DLV_ERROR);
+ }
+
+ if (access != DW_DLC_READ) {
+ DWARF_DBG_ERROR(NULL, DW_DLE_INIT_ACCESS_WRONG, DW_DLV_ERROR);
+ }
+
+ elf_version(EV_CURRENT);
+ /* changed to mmap request per bug 281217. 6/95 */
+#ifdef HAVE_ELF_C_READ_MMAP
+ /* ELF_C_READ_MMAP is an SGI IRIX specific enum value from IRIX
+ libelf.h meaning read but use mmap */
+ what_kind_of_elf_read = ELF_C_READ_MMAP;
+#endif /* !HAVE_ELF_C_READ_MMAP */
+
+ elf_file_pointer = elf_begin(fd, what_kind_of_elf_read, 0);
+ if (elf_file_pointer == NULL) {
+ DWARF_DBG_ERROR(NULL, DW_DLE_ELF_BEGIN_ERROR, DW_DLV_ERROR);
+ }
+
+ return dwarf_elf_init_file_ownership(elf_file_pointer,
+ TRUE,
+ access,
+ errhand,
+ errarg,
+ ret_dbg,
+ error);
+}
+
+/*
+ An alternate dwarf setup call for consumers using
+ libelf.
+ When the caller has opened libelf already, so the
+ caller must free libelf.
+*/
+int
+dwarf_elf_init(dwarf_elf_handle elf_file_pointer,
+ Dwarf_Unsigned access,
+ Dwarf_Handler errhand,
+ Dwarf_Ptr errarg,
+ Dwarf_Debug * ret_dbg, Dwarf_Error * error)
+{
+ return dwarf_elf_init_file_ownership(elf_file_pointer,
+ FALSE,
+ access,
+ errhand,
+ errarg,
+ ret_dbg,
+ error);
+}
+
+
+/*
+ Initialize the ELF object access for libdwarf.
+ */
+static int
+dwarf_elf_init_file_ownership(dwarf_elf_handle elf_file_pointer,
+ int libdwarf_owns_elf,
+ Dwarf_Unsigned access,
+ Dwarf_Handler errhand,
+ Dwarf_Ptr errarg,
+ Dwarf_Debug * ret_dbg,
+ Dwarf_Error * error)
+{
+ /* ELF is no longer tied to libdwarf. */
+ Dwarf_Obj_Access_Interface *binary_interface = 0;
+ int res = DW_DLV_OK;
+ int err = 0;
+
+ if (access != DW_DLC_READ) {
+ DWARF_DBG_ERROR(NULL, DW_DLE_INIT_ACCESS_WRONG, DW_DLV_ERROR);
+ }
+
+ /* This allocates and fills in *binary_interface. */
+ res = dwarf_elf_object_access_init(
+ elf_file_pointer,
+ libdwarf_owns_elf,
+ &binary_interface,
+ &err);
+ if(res != DW_DLV_OK){
+ DWARF_DBG_ERROR(NULL, err, DW_DLV_ERROR);
+ }
+
+ /* This mallocs space and returns pointer thru ret_dbg,
+ saving the binary interface in 'ret-dbg' */
+ res = dwarf_object_init(binary_interface, errhand, errarg,
+ ret_dbg, error);
+ if(res != DW_DLV_OK){
+ dwarf_elf_object_access_finish(binary_interface);
+ }
+ return res;
+}
+
+
+/*
+ Frees all memory that was not previously freed
+ by dwarf_dealloc.
+ Aside from certain categories.
+
+ This is only applicable when dwarf_init() or dwarf_elf_init()
+ was used to init 'dbg'.
+*/
+int
+dwarf_finish(Dwarf_Debug dbg, Dwarf_Error * error)
+{
+ dwarf_elf_object_access_finish(dbg->de_obj_file);
+
+ return dwarf_object_finish(dbg, error);
+}
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_print_lines.c b/usr/src/tools/ctf/dwarf/common/dwarf_print_lines.c
index 0e31d231ab..30c4889ee5 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_print_lines.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_print_lines.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004,2005,2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,12 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
@@ -40,73 +47,70 @@
#include <stdio.h>
#include <time.h>
#include "dwarf_line.h"
-#ifdef HAVE_ALLOCA_H
-#include <alloca.h>
-#endif
+/* FIXME Need to add prologue_end epilogue_begin isa fields. */
static void
print_line_header(void)
{
printf
- (" s b e\n"
- " t l s\n"
- " m c e\n"
- " section op col t k q\n"
- " offset code address file line umn ? ? ?\n");
+ (" s b e\n"
+ " t l s\n"
+ " m c e\n"
+ " section op col t k q\n"
+ " offset code address file line umn ? ? ?\n");
}
+/* FIXME: print new line values: prologue_end epilogue_begin isa */
static void
print_line_detail(char *prefix,
- int opcode,
- unsigned long long address,
- unsigned long file,
- unsigned long line,
- unsigned long column,
- int is_stmt, int basic_block, int end_sequence)
+ int opcode,
+ Dwarf_Unsigned address,
+ unsigned long file,
+ unsigned long line,
+ unsigned long column,
+ int is_stmt, int basic_block, int end_sequence,
+ int prologue_end, int epilogue_begin, int isa)
{
- printf("%-15s %2d 0x%08llx "
- "%2lu %4lu %2lu %1d %1d %1d\n",
- prefix,
- (int) opcode,
- (long long) address,
- (unsigned long) file,
- (unsigned long) line,
- (unsigned long) column,
- (int) is_stmt, (int) basic_block, (int) end_sequence);
+ printf("%-15s %2d 0x%08" DW_PR_DUx " "
+ "%2lu %4lu %2lu %1d %1d %1d\n",
+ prefix,
+ (int) opcode,
+ (Dwarf_Unsigned) address,
+ (unsigned long) file,
+ (unsigned long) line,
+ (unsigned long) column,
+ (int) is_stmt, (int) basic_block, (int) end_sequence);
}
/*
- return DW_DLV_OK if ok. else DW_DLV_NO_ENTRY or DW_DLV_ERROR
+ return DW_DLV_OK if ok. else DW_DLV_NO_ENTRY or DW_DLV_ERROR
+ If err_count_out is non-NULL, this is a special 'check'
+ call.
*/
int
-_dwarf_internal_printlines(Dwarf_Die die, Dwarf_Error * error)
+_dwarf_internal_printlines(Dwarf_Die die, Dwarf_Error * error,
+ int * err_count_out, int only_line_header)
{
/*
This pointer is used to scan the portion of the .debug_line
section for the current cu. */
- Dwarf_Small *line_ptr;
- Dwarf_Small *orig_line_ptr;
+ Dwarf_Small *line_ptr = 0;
+ Dwarf_Small *orig_line_ptr = 0;
/*
- This points to the last byte of the .debug_line portion for the
+ This points to the last byte of the .debug_line portion for the
current cu. */
- Dwarf_Small *line_ptr_end;
-
- /*
- This points to the end of the statement program prologue for the
- current cu, and serves to check that the prologue was correctly
- decoded. */
- Dwarf_Small *check_line_ptr;
+ Dwarf_Small *line_ptr_end = 0;
/*
- Pointer to a DW_AT_stmt_list attribute in case it exists in the
+ Pointer to a DW_AT_stmt_list attribute in case it exists in the
die. */
- Dwarf_Attribute stmt_list_attr;
+ Dwarf_Attribute stmt_list_attr = 0;
/* Pointer to DW_AT_comp_dir attribute in die. */
- Dwarf_Attribute comp_dir_attr;
+ Dwarf_Attribute comp_dir_attr = 0;
/* Pointer to name of compilation directory. */
Dwarf_Small *comp_dir = NULL;
@@ -114,104 +118,101 @@ _dwarf_internal_printlines(Dwarf_Die die, Dwarf_Error * error)
/*
Offset into .debug_line specified by a DW_AT_stmt_list
attribute. */
- Dwarf_Unsigned line_offset;
+ Dwarf_Unsigned line_offset = 0;
- /* These are the fields of the statement program header. */
- Dwarf_Unsigned total_length;
- Dwarf_Half version;
- Dwarf_Unsigned prologue_length;
- Dwarf_Small minimum_instruction_length;
- Dwarf_Small default_is_stmt;
- Dwarf_Sbyte line_base;
- Dwarf_Small line_range;
- Dwarf_Small opcode_base;
+ struct Line_Table_Prefix_s prefix;
- Dwarf_Small *opcode_length;
/* These are the state machine state variables. */
- Dwarf_Addr address;
- Dwarf_Word file;
- Dwarf_Word line;
- Dwarf_Word column;
- Dwarf_Bool is_stmt;
- Dwarf_Bool basic_block;
- Dwarf_Bool end_sequence;
+ Dwarf_Addr address = 0;
+ Dwarf_Word file = 1;
+ Dwarf_Word line = 1;
+ Dwarf_Word column = 0;
+ Dwarf_Bool is_stmt = false;
+ Dwarf_Bool basic_block = false;
+ Dwarf_Bool end_sequence = false;
+ Dwarf_Bool prologue_end = false;
+ Dwarf_Bool epilogue_begin = false;
+ Dwarf_Small isa = 0;
- Dwarf_Sword i, file_entry_count, include_directories_count;
- /*
- This is the current opcode read from the statement program. */
- Dwarf_Small opcode;
+ Dwarf_Sword i=0;
/*
- Pointer to a Dwarf_Line_Context_s structure that contains the
- context such as file names and include directories for the set
- of lines being generated. */
- Dwarf_Line_Context line_context;
+ This is the current opcode read from the statement program. */
+ Dwarf_Small opcode=0;
/*
These variables are used to decode leb128 numbers. Leb128_num
holds the decoded number, and leb128_length is its length in
bytes. */
- Dwarf_Word leb128_num;
- Dwarf_Word leb128_length;
- Dwarf_Sword advance_line;
-
+ Dwarf_Word leb128_num=0;
+ Dwarf_Word leb128_length=0;
+ Dwarf_Sword advance_line=0;
+ Dwarf_Half attrform = 0;
/*
This is the operand of the latest fixed_advance_pc extended
opcode. */
- Dwarf_Half fixed_advance_pc;
+ Dwarf_Half fixed_advance_pc=0;
- /* This is the length of an extended opcode instr. */
- Dwarf_Word instr_length;
- Dwarf_Small ext_opcode;
- int local_length_size;
- /*REFERENCED*/ /* Not used in this instance of the macro */
- int local_extension_size;
+ /* In case there are wierd bytes 'after' the line table
+ * prologue this lets us print something. This is a gcc
+ * compiler bug and we expect the bytes count to be 12.
+ */
+ Dwarf_Small* bogus_bytes_ptr = 0;
+ Dwarf_Unsigned bogus_bytes_count = 0;
- /* The Dwarf_Debug this die belongs to. */
- Dwarf_Debug dbg;
- int resattr;
- int lres;
- int res;
+ /* The Dwarf_Debug this die belongs to. */
+ Dwarf_Debug dbg=0;
+ int resattr = DW_DLV_ERROR;
+ int lres = DW_DLV_ERROR;
+ int res = DW_DLV_ERROR;
/* ***** BEGIN CODE ***** */
- if (error != NULL)
- *error = NULL;
+ if (error != NULL) {
+ *error = NULL;
+ }
- CHECK_DIE(die, DW_DLV_ERROR)
- dbg = die->di_cu_context->cc_dbg;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ dbg = die->di_cu_context->cc_dbg;
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_line_index,
- &dbg->de_debug_line,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_line,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
resattr = dwarf_attr(die, DW_AT_stmt_list, &stmt_list_attr, error);
if (resattr != DW_DLV_OK) {
- return resattr;
+ return resattr;
}
-
- lres = dwarf_formudata(stmt_list_attr, &line_offset, error);
+ /* The list of relevant FORMs is small.
+ DW_FORM_data4, DW_FORM_data8, DW_FORM_sec_offset
+ */
+ lres = dwarf_whatform(stmt_list_attr,&attrform,error);
if (lres != DW_DLV_OK) {
- return lres;
+ return lres;
+ }
+ if (attrform != DW_FORM_data4 && attrform != DW_FORM_data8 &&
+ attrform != DW_FORM_sec_offset ) {
+ _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+ lres = dwarf_global_formref(stmt_list_attr, &line_offset, error);
+ if (lres != DW_DLV_OK) {
+ return lres;
}
- if (line_offset >= dbg->de_debug_line_size) {
- _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
- return (DW_DLV_ERROR);
+ if (line_offset >= dbg->de_debug_line.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_LINE_OFFSET_BAD);
+ return (DW_DLV_ERROR);
}
- orig_line_ptr = dbg->de_debug_line;
- line_ptr = dbg->de_debug_line + line_offset;
+ orig_line_ptr = dbg->de_debug_line.dss_data;
+ line_ptr = dbg->de_debug_line.dss_data + line_offset;
dwarf_dealloc(dbg, stmt_list_attr, DW_DLA_ATTR);
/*
@@ -219,448 +220,518 @@ _dwarf_internal_printlines(Dwarf_Die die, Dwarf_Error * error)
the compilation directory. */
resattr = dwarf_attr(die, DW_AT_comp_dir, &comp_dir_attr, error);
if (resattr == DW_DLV_ERROR) {
- return resattr;
+ return resattr;
}
if (resattr == DW_DLV_OK) {
- int cres;
- char *cdir;
-
- cres = dwarf_formstring(comp_dir_attr, &cdir, error);
- if (cres == DW_DLV_ERROR) {
- return cres;
- } else if (cres == DW_DLV_OK) {
- comp_dir = (Dwarf_Small *) cdir;
- }
+ int cres = DW_DLV_ERROR;
+ char *cdir = 0;
+
+ cres = dwarf_formstring(comp_dir_attr, &cdir, error);
+ if (cres == DW_DLV_ERROR) {
+ return cres;
+ } else if (cres == DW_DLV_OK) {
+ comp_dir = (Dwarf_Small *) cdir;
+ }
}
if (resattr == DW_DLV_OK) {
- dwarf_dealloc(dbg, comp_dir_attr, DW_DLA_ATTR);
+ dwarf_dealloc(dbg, comp_dir_attr, DW_DLA_ATTR);
}
- /*
- Following is a straightforward decoding of the statement
- program prologue information. */
-
- /* READ_AREA_LENGTH updates line_ptr for consumed bytes */
- READ_AREA_LENGTH(dbg, total_length, Dwarf_Unsigned,
- line_ptr, local_length_size, local_extension_size);
-
-
-
- line_ptr_end = line_ptr + total_length;
- if (line_ptr_end > dbg->de_debug_line + dbg->de_debug_line_size) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_LINE_LENGTH_BAD);
- return (DW_DLV_ERROR);
+ dwarf_init_line_table_prefix(&prefix);
+ {
+ Dwarf_Small *line_ptr_out = 0;
+ int dres = dwarf_read_line_table_prefix(dbg,
+ line_ptr,dbg->de_debug_line.dss_size - line_offset,
+ &line_ptr_out,
+ &prefix,
+ &bogus_bytes_ptr,
+ &bogus_bytes_count,
+ error,
+ err_count_out);
+ if (dres == DW_DLV_ERROR) {
+ dwarf_free_line_table_prefix(&prefix);
+ return dres;
+ }
+ if (dres == DW_DLV_NO_ENTRY) {
+ dwarf_free_line_table_prefix(&prefix);
+ return dres;
+ }
+ line_ptr_end = prefix.pf_line_ptr_end;
+ line_ptr = line_ptr_out;
}
-
- printf("total line info length %ld bytes, "
- "line offset 0x%llx %lld\n",
- (long) total_length,
- (long long) line_offset, (long long) line_offset);
- printf("compilation_directory %s\n",
- comp_dir ? ((char *) comp_dir) : "");
- READ_UNALIGNED(dbg, version, Dwarf_Half,
- line_ptr, sizeof(Dwarf_Half));
- line_ptr += sizeof(Dwarf_Half);
- if (version != CURRENT_VERSION_STAMP) {
- _dwarf_error(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
- return (DW_DLV_ERROR);
+ if(only_line_header) {
+ /* Just checking for header errors, nothing more here.*/
+ dwarf_free_line_table_prefix(&prefix);
+ return DW_DLV_OK;
}
- READ_UNALIGNED(dbg, prologue_length, Dwarf_Unsigned,
- line_ptr, local_length_size);
- line_ptr += local_length_size;
- check_line_ptr = line_ptr;
- minimum_instruction_length = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- default_is_stmt = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- line_base = *(Dwarf_Sbyte *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Sbyte);
-
- line_range = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
+ printf("total line info length %ld bytes, "
+ "line offset 0x%" DW_PR_DUx " %" DW_PR_DSd "\n",
+ (long) prefix.pf_total_length,
+ (Dwarf_Unsigned) line_offset,
+ (Dwarf_Signed) line_offset);
+ printf("line table version %d\n",(int) prefix.pf_version);
+ printf("line table length field length %d prologue length %d\n",
+ (int)prefix.pf_length_field_length,
+ (int)prefix.pf_prologue_length);
+ printf("compilation_directory %s\n",
+ comp_dir ? ((char *) comp_dir) : "");
- opcode_base = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
printf(" min instruction length %d\n",
- (int) minimum_instruction_length);
- printf(" default is stmt %d\n", (int) default_is_stmt);
- printf(" line base %d\n", (int) line_base);
- printf(" line_range %d\n", (int) line_range);
-
- opcode_length = (Dwarf_Small *)
- alloca(sizeof(Dwarf_Small) * opcode_base);
-
- for (i = 1; i < opcode_base; i++) {
- opcode_length[i] = *(Dwarf_Small *) line_ptr;
- printf(" opcode[%d] length %d\n", (int) i,
- (int) opcode_length[i]);
- line_ptr = line_ptr + sizeof(Dwarf_Small);
+ (int) prefix.pf_minimum_instruction_length);
+ printf(" default is stmt %d\n", (int)
+ prefix.pf_default_is_stmt);
+ printf(" line base %d\n", (int)
+ prefix.pf_line_base);
+ printf(" line_range %d\n", (int)
+ prefix.pf_line_range);
+ printf(" opcode base %d\n", (int)
+ prefix.pf_opcode_base);
+ printf(" standard opcode count %d\n", (int)
+ prefix.pf_std_op_count);
+
+ for (i = 1; i < prefix.pf_opcode_base; i++) {
+ printf(" opcode[%2d] length %d\n", (int) i,
+ (int) prefix.pf_opcode_length_table[i - 1]);
}
+ printf(" include directories count %d\n", (int)
+ prefix.pf_include_directories_count);
- include_directories_count = 0;
- while ((*(char *) line_ptr) != '\0') {
- printf(" include dir[%d] %s\n",
- (int) include_directories_count, line_ptr);
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
- include_directories_count++;
+
+ for (i = 0; i < prefix.pf_include_directories_count; ++i) {
+ printf(" include dir[%d] %s\n",
+ (int) i, prefix.pf_include_directories[i]);
}
- line_ptr++;
-
- file_entry_count = 0;
- while (*(char *) line_ptr != '\0') {
+ printf(" files count %d\n", (int)
+ prefix.pf_files_count);
- Dwarf_Unsigned tlm2;
- Dwarf_Unsigned di;
- Dwarf_Unsigned fl;
+ for (i = 0; i < prefix.pf_files_count; ++i) {
+ struct Line_Table_File_Entry_s *lfile =
+ prefix.pf_line_table_file_entries + i;
- printf(" file[%d] %s\n",
- (int) file_entry_count, (char *) line_ptr);
+ Dwarf_Unsigned tlm2 = lfile->lte_last_modification_time;
+ Dwarf_Unsigned di = lfile->lte_directory_index;
+ Dwarf_Unsigned fl = lfile->lte_length_of_file;
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
+ printf(" file[%d] %s (file-number: %d) \n",
+ (int) i, (char *) lfile->lte_filename,
+ (int)(i+1));
- di = _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
+ printf(" dir index %d\n", (int) di);
+ {
+ time_t tt = (time_t) tlm2;
- tlm2 = _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
+ printf(" last time 0x%x %s", /* ctime supplies
+ newline */
+ (unsigned) tlm2, ctime(&tt));
+ }
+ printf(" file length %ld 0x%lx\n",
+ (long) fl, (unsigned long) fl);
- fl = _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
- printf(" dir index %d\n", (int) di);
- {
- time_t tt = (time_t) tlm2;
-
- printf(" last time 0x%x %s", /* ctime supplies
- newline */
- (unsigned) tlm2, ctime(&tt));
- }
- printf(" file length %ld 0x%lx\n",
- (long) fl, (unsigned long) fl);
-
-
- file_entry_count++;
}
- line_ptr++;
- if (line_ptr != check_line_ptr + prologue_length) {
- _dwarf_error(dbg, error, DW_DLE_LINE_PROLOG_LENGTH_BAD);
- return (DW_DLV_ERROR);
- }
- /* Set up context structure for this set of lines. */
- line_context = (Dwarf_Line_Context)
- _dwarf_get_alloc(dbg, DW_DLA_LINE_CONTEXT, 1);
- if (line_context == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ {
+ Dwarf_Unsigned offset = 0;
+ if(bogus_bytes_count > 0) {
+ Dwarf_Unsigned wcount = bogus_bytes_count;
+ Dwarf_Unsigned boffset = bogus_bytes_ptr - orig_line_ptr;
+ printf("*** DWARF CHECK: the line table prologue header_length "
+ " is %" DW_PR_DUu " too high, we pretend it is smaller."
+ "Section offset: %" DW_PR_DUu " (0x%" DW_PR_DUx ") ***\n",
+ wcount, boffset,boffset);
+ *err_count_out += 1;
+ }
+ offset = line_ptr - orig_line_ptr;
+
+ printf(" statement prog offset in section: %" DW_PR_DUu " 0x%" DW_PR_DUx "\n",
+ offset, offset);
}
- printf(" statement prog offset in section: %lld 0x%llx\n",
- (long long) (line_ptr - orig_line_ptr),
- (long long) (line_ptr - orig_line_ptr));
+ /* Initialize the part of the state machine dependent on the
+ prefix. */
+ is_stmt = prefix.pf_default_is_stmt;
- /* Initialize the state machine. */
- address = 0;
- file = 1;
- line = 1;
- column = 0;
- is_stmt = default_is_stmt;
- basic_block = false;
- end_sequence = false;
print_line_header();
/* Start of statement program. */
while (line_ptr < line_ptr_end) {
- int type;
-
- printf(" [0x%06llx] ", (long long) (line_ptr - orig_line_ptr));
- opcode = *(Dwarf_Small *) line_ptr;
- line_ptr++;
- /* 'type' is the output */
- WHAT_IS_OPCODE(type, opcode, opcode_base,
- opcode_length, line_ptr);
-
-
-
- if (type == LOP_DISCARD) {
- /* do nothing, necessary ops done */
- } else if (type == LOP_SPECIAL) {
- /* This op code is a special op in the object, no matter
- that it might fall into the standard op range in this
- compile Thatis, these are special opcodes between
- special_opcode_base and MAX_LINE_OP_CODE. (including
- special_opcode_base and MAX_LINE_OP_CODE) */
- char special[50];
- unsigned origop = opcode;
-
- opcode = opcode - opcode_base;
- address = address + minimum_instruction_length *
- (opcode / line_range);
- line = line + line_base + opcode % line_range;
-
- sprintf(special, "Specialop %3u", origop);
- print_line_detail(special,
- opcode, address, (int) file, line, column,
- is_stmt, basic_block, end_sequence);
-
- basic_block = false;
-
- } else if (type == LOP_STANDARD) {
- switch (opcode) {
-
- case DW_LNS_copy:{
- if (opcode_length[DW_LNS_copy] != 0) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- print_line_detail("DW_LNS_copy",
- opcode, address, file, line,
- column, is_stmt, basic_block,
- end_sequence);
-
- basic_block = false;
- break;
- }
-
- case DW_LNS_advance_pc:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_advance_pc] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- printf("DW_LNS_advance_pc val %lld 0x%llx\n",
- (long long) (Dwarf_Word) utmp2,
- (long long) (Dwarf_Word) utmp2);
- leb128_num = (Dwarf_Word) utmp2;
- address =
- address +
- minimum_instruction_length * leb128_num;
- break;
- }
-
- case DW_LNS_advance_line:{
- Dwarf_Signed stmp;
-
- if (opcode_length[DW_LNS_advance_line] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_SWORD(line_ptr, stmp)
- advance_line = (Dwarf_Sword) stmp;
- printf("DW_LNS_advance_line val %lld 0x%llx\n",
- (long long) advance_line,
- (long long) advance_line);
- line = line + advance_line;
- break;
- }
-
- case DW_LNS_set_file:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_set_file] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- file = (Dwarf_Word) utmp2;
- printf("DW_LNS_set_file %ld\n", (long) file);
- break;
- }
-
- case DW_LNS_set_column:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_set_column] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- column = (Dwarf_Word) utmp2;
- printf("DW_LNS_set_column val %lld 0x%llx\n",
- (long long) column, (long long) column);
- break;
- }
-
- case DW_LNS_negate_stmt:{
- if (opcode_length[DW_LNS_negate_stmt] != 0) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- is_stmt = !is_stmt;
- printf("DW_LNS_negate_stmt\n");
- break;
- }
-
- case DW_LNS_set_basic_block:{
- if (opcode_length[DW_LNS_set_basic_block] != 0) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- printf("DW_LNS_set_basic_block\n");
- basic_block = true;
- break;
- }
-
- case DW_LNS_const_add_pc:{
- opcode = MAX_LINE_OP_CODE - opcode_base;
- address = address + minimum_instruction_length *
- (opcode / line_range);
-
- printf("DW_LNS_const_add_pc new address 0x%llx\n",
- (long long) address);
- break;
- }
-
- case DW_LNS_fixed_advance_pc:{
- if (opcode_length[DW_LNS_fixed_advance_pc] != 1) {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_NUM_OPERANDS_BAD);
- return (DW_DLV_ERROR);
- }
-
- READ_UNALIGNED(dbg, fixed_advance_pc, Dwarf_Half,
- line_ptr, sizeof(Dwarf_Half));
- line_ptr += sizeof(Dwarf_Half);
- address = address + fixed_advance_pc;
- printf("DW_LNS_fixed_advance_pc val %lld 0x%llx"
- " new address 0x%llx\n",
- (long long) fixed_advance_pc,
- (long long) fixed_advance_pc,
- (long long) address);
- break;
- }
- }
-
- } else if (type == LOP_EXTENDED) {
- Dwarf_Unsigned utmp3;
-
- DECODE_LEB128_UWORD(line_ptr, utmp3)
- instr_length = (Dwarf_Word) utmp3;
- ext_opcode = *(Dwarf_Small *) line_ptr;
- line_ptr++;
- switch (ext_opcode) {
-
- case DW_LNE_end_sequence:{
- end_sequence = true;
-
- print_line_detail("DW_LNE_end_sequence extended",
- opcode, address, file, line,
- column, is_stmt, basic_block,
- end_sequence);
-
- address = 0;
- file = 1;
- line = 1;
- column = 0;
- is_stmt = default_is_stmt;
- basic_block = false;
- end_sequence = false;
-
- break;
- }
-
- case DW_LNE_set_address:{
- if (instr_length - 1 == dbg->de_pointer_size) {
- READ_UNALIGNED(dbg, address, Dwarf_Addr,
- line_ptr, dbg->de_pointer_size);
-
- line_ptr += dbg->de_pointer_size;
- printf("DW_LNE_set_address address 0x%llx\n",
- (long long) address);
- } else {
- _dwarf_error(dbg, error,
- DW_DLE_LINE_SET_ADDR_ERROR);
- return (DW_DLV_ERROR);
- }
-
- break;
- }
-
- case DW_LNE_define_file:{
-
-
- Dwarf_Small *fn;
- Dwarf_Signed di;
- Dwarf_Signed tlm;
- Dwarf_Unsigned fl;
-
- fn = (Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
-
- di = _dwarf_decode_u_leb128(line_ptr,
- &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- tlm =
- _dwarf_decode_u_leb128(line_ptr,
- &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- fl = _dwarf_decode_u_leb128(line_ptr,
- &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
-
- printf("DW_LNE_define_file %s \n", fn);
- printf(" dir index %d\n", (int) di);
- {
- time_t tt3 = (time_t) tlm;
-
- /* ctime supplies newline */
- printf(" last time 0x%x %s",
- (unsigned) tlm, ctime(&tt3));
- }
- printf(" file length %ld 0x%lx\n",
- (long) fl, (unsigned long) fl);
-
- break;
- }
-
- default:{
- _dwarf_error(dbg, error,
- DW_DLE_LINE_EXT_OPCODE_BAD);
- return (DW_DLV_ERROR);
- }
- }
-
- }
+ int type = 0;
+
+ printf(" [0x%06" DW_PR_DSx "] ",
+ (Dwarf_Signed) (line_ptr - orig_line_ptr));
+ opcode = *(Dwarf_Small *) line_ptr;
+ line_ptr++;
+ /* 'type' is the output */
+ WHAT_IS_OPCODE(type, opcode, prefix.pf_opcode_base,
+ prefix.pf_opcode_length_table, line_ptr,
+ prefix.pf_std_op_count);
+
+ if (type == LOP_DISCARD) {
+ int oc;
+ int opcnt = prefix.pf_opcode_length_table[opcode];
+
+ printf("*** DWARF CHECK: DISCARD standard opcode %d "
+ "with %d operands: "
+ "not understood.", opcode, opcnt);
+ *err_count_out += 1;
+ for (oc = 0; oc < opcnt; oc++) {
+ /*
+ * Read and discard operands we don't
+ * understand.
+ * Arbitrary choice of unsigned read.
+ * Signed read would work as well.
+ */
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ printf(" %" DW_PR_DUu " (0x%" DW_PR_DUx ")",
+ (Dwarf_Unsigned) utmp2,
+ (Dwarf_Unsigned) utmp2);
+ }
+
+ printf("***\n");
+ /* do nothing, necessary ops done */
+ } else if (type == LOP_SPECIAL) {
+ /* This op code is a special op in the object, no matter
+ that it might fall into the standard op range in this
+ compile Thatis, these are special opcodes between
+ special_opcode_base and MAX_LINE_OP_CODE. (including
+ special_opcode_base and MAX_LINE_OP_CODE) */
+ char special[50];
+ unsigned origop = opcode;
+
+ opcode = opcode - prefix.pf_opcode_base;
+ address = address + prefix.pf_minimum_instruction_length *
+ (opcode / prefix.pf_line_range);
+ line =
+ line + prefix.pf_line_base +
+ opcode % prefix.pf_line_range;
+
+ sprintf(special, "Specialop %3u", origop);
+ print_line_detail(special,
+ opcode, address, (int) file, line, column,
+ is_stmt, basic_block, end_sequence,
+ prologue_end, epilogue_begin, isa);
+
+ basic_block = false;
+
+ } else if (type == LOP_STANDARD) {
+ switch (opcode) {
+
+ case DW_LNS_copy:{
+
+ print_line_detail("DW_LNS_copy",
+ opcode, address, file, line,
+ column, is_stmt, basic_block,
+ end_sequence, prologue_end,
+ epilogue_begin, isa);
+
+ basic_block = false;
+ break;
+ }
+
+ case DW_LNS_advance_pc:{
+ Dwarf_Unsigned utmp2;
+
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ printf("DW_LNS_advance_pc val %" DW_PR_DSd " 0x%" DW_PR_DUx "\n",
+ (Dwarf_Signed) (Dwarf_Word) utmp2,
+ (Dwarf_Unsigned) (Dwarf_Word) utmp2);
+ leb128_num = (Dwarf_Word) utmp2;
+ address =
+ address +
+ prefix.pf_minimum_instruction_length *
+ leb128_num;
+ break;
+ }
+
+ case DW_LNS_advance_line:{
+ Dwarf_Signed stmp;
+
+
+ DECODE_LEB128_SWORD(line_ptr, stmp);
+ advance_line = (Dwarf_Sword) stmp;
+ printf("DW_LNS_advance_line val %" DW_PR_DSd " 0x%" DW_PR_DSx "\n",
+ (Dwarf_Signed) advance_line,
+ (Dwarf_Signed) advance_line);
+ line = line + advance_line;
+ break;
+ }
+
+ case DW_LNS_set_file:{
+ Dwarf_Unsigned utmp2;
+
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ file = (Dwarf_Word) utmp2;
+ printf("DW_LNS_set_file %ld\n", (long) file);
+ break;
+ }
+
+ case DW_LNS_set_column:{
+ Dwarf_Unsigned utmp2;
+
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ column = (Dwarf_Word) utmp2;
+ printf("DW_LNS_set_column val %" DW_PR_DSd " 0x%" DW_PR_DSx "\n",
+ (Dwarf_Signed) column, (Dwarf_Signed) column);
+ break;
+ }
+
+ case DW_LNS_negate_stmt:{
+ is_stmt = !is_stmt;
+ printf("DW_LNS_negate_stmt\n");
+ break;
+ }
+
+ case DW_LNS_set_basic_block:{
+
+ printf("DW_LNS_set_basic_block\n");
+ basic_block = true;
+ break;
+ }
+
+ case DW_LNS_const_add_pc:{
+ opcode = MAX_LINE_OP_CODE - prefix.pf_opcode_base;
+ address =
+ address +
+ prefix.pf_minimum_instruction_length * (opcode /
+ prefix.
+ pf_line_range);
+
+ printf("DW_LNS_const_add_pc new address 0x%" DW_PR_DSx "\n",
+ (Dwarf_Signed) address);
+ break;
+ }
+
+ case DW_LNS_fixed_advance_pc:{
+
+ READ_UNALIGNED(dbg, fixed_advance_pc, Dwarf_Half,
+ line_ptr, sizeof(Dwarf_Half));
+ line_ptr += sizeof(Dwarf_Half);
+ address = address + fixed_advance_pc;
+ printf("DW_LNS_fixed_advance_pc val %" DW_PR_DSd
+ " 0x%" DW_PR_DSx " new address 0x%" DW_PR_DSx "\n",
+ (Dwarf_Signed) fixed_advance_pc,
+ (Dwarf_Signed) fixed_advance_pc,
+ (Dwarf_Signed) address);
+ break;
+ }
+ case DW_LNS_set_prologue_end:{
+
+ prologue_end = true;
+ printf("DW_LNS_set_prologue_end set true.\n");
+ break;
+
+
+ }
+ /* New in DWARF3 */
+ case DW_LNS_set_epilogue_begin:{
+ epilogue_begin = true;
+ printf("DW_LNS_set_epilogue_begin set true.\n");
+ break;
+ }
+
+ /* New in DWARF3 */
+ case DW_LNS_set_isa:{
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ isa = utmp2;
+ printf("DW_LNS_set_isa new value 0x%" DW_PR_DUx ".\n",
+ (Dwarf_Unsigned) utmp2);
+ if (isa != utmp2) {
+ /* The value of the isa did not fit in our
+ local so we record it wrong. declare an
+ error. */
+ dwarf_free_line_table_prefix(&prefix);
+
+ _dwarf_error(dbg, error,
+ DW_DLE_LINE_NUM_OPERANDS_BAD);
+ return (DW_DLV_ERROR);
+ }
+ break;
+ }
+ }
+
+
+ } else if (type == LOP_EXTENDED) {
+ Dwarf_Unsigned utmp3 = 0;
+ Dwarf_Word instr_length = 0;
+ Dwarf_Small ext_opcode = 0;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp3);
+ instr_length = (Dwarf_Word) utmp3;
+ ext_opcode = *(Dwarf_Small *) line_ptr;
+ line_ptr++;
+ switch (ext_opcode) {
+
+ case DW_LNE_end_sequence:{
+ end_sequence = true;
+
+ print_line_detail("DW_LNE_end_sequence extended",
+ opcode, address, file, line,
+ column, is_stmt, basic_block,
+ end_sequence, prologue_end,
+ epilogue_begin, isa);
+
+ address = 0;
+ file = 1;
+ line = 1;
+ column = 0;
+ is_stmt = prefix.pf_default_is_stmt;
+ basic_block = false;
+ end_sequence = false;
+ prologue_end = false;
+ epilogue_begin = false;
+
+
+ break;
+ }
+
+ case DW_LNE_set_address:{
+ {
+ READ_UNALIGNED(dbg, address, Dwarf_Addr,
+ line_ptr,
+ die->di_cu_context->cc_address_size);
+
+ line_ptr += die->di_cu_context->cc_address_size;
+ printf("DW_LNE_set_address address 0x%" DW_PR_DUx "\n",
+ (Dwarf_Unsigned) address);
+ }
+
+ break;
+ }
+
+ case DW_LNE_define_file:{
+ Dwarf_Unsigned di = 0;
+ Dwarf_Unsigned tlm = 0;
+ Dwarf_Unsigned fl = 0;
+
+ Dwarf_Small *fn = (Dwarf_Small *) line_ptr;
+ line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
+
+ di = _dwarf_decode_u_leb128(line_ptr,
+ &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+
+ tlm = _dwarf_decode_u_leb128(line_ptr,
+ &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+
+ fl = _dwarf_decode_u_leb128(line_ptr,
+ &leb128_length);
+ line_ptr = line_ptr + leb128_length;
+
+
+ printf("DW_LNE_define_file %s \n", fn);
+ printf(" dir index %d\n", (int) di);
+ {
+ time_t tt3 = (time_t) tlm;
+
+ /* ctime supplies newline */
+ printf(" last time 0x%x %s",
+ (unsigned) tlm, ctime(&tt3));
+ }
+ printf(" file length %ld 0x%lx\n",
+ (long) fl, (unsigned long) fl);
+
+ break;
+ }
+
+ default:{
+ /* This is an extended op code we do not know about,
+ other than we know now many bytes it is
+ (and the op code and the bytes of operand). */
+
+ Dwarf_Unsigned remaining_bytes = instr_length -1;
+ if(instr_length < 1 || remaining_bytes > DW_LNE_LEN_MAX) {
+ dwarf_free_line_table_prefix(&prefix);
+ _dwarf_error(dbg, error,
+ DW_DLE_LINE_EXT_OPCODE_BAD);
+ return (DW_DLV_ERROR);
+ }
+ printf("DW_LNE extended op 0x%x ",ext_opcode);
+ printf("Bytecount: " DW_PR_DUu , instr_length);
+ if(remaining_bytes > 0) {
+ printf(" linedata: 0x");
+ while (remaining_bytes > 0) {
+ printf("%02x",(unsigned char)(*(line_ptr)));
+ line_ptr++;
+ remaining_bytes--;
+ }
+ }
+ printf("\n");
+ }
+ break;
+ }
+
+ }
}
+ dwarf_free_line_table_prefix(&prefix);
return (DW_DLV_OK);
}
/*
- Caller passes in compilation unit DIE.
+ This is support for dwarfdump: making it possible
+ for clients wanting line detail info on stdout
+ to get that detail without including internal libdwarf
+ header information.
+ Caller passes in compilation unit DIE.
+ The _dwarf_ version is obsolete (though supported for
+ compatibility).
+ The dwarf_ version is preferred.
+ The functions are intentionally identical: having
+ _dwarf_print_lines call dwarf_print_lines might
+ better emphasize they are intentionally identical, but
+ that seemed slightly silly given how short the functions are.
+ Interface adds error_count (output value) February 2009.
*/
int
+dwarf_print_lines(Dwarf_Die die, Dwarf_Error * error,int *error_count)
+{
+ int only_line_header = 0;
+ int res = _dwarf_internal_printlines(die, error,
+ error_count,
+ only_line_header);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ return res;
+}
+int
_dwarf_print_lines(Dwarf_Die die, Dwarf_Error * error)
{
- int res;
-
- res = _dwarf_internal_printlines(die, error);
+ int only_line_header = 0;
+ int err_count = 0;
+ int res = _dwarf_internal_printlines(die, error,
+ &err_count,
+ only_line_header);
+ /* No way to get error count back in this interface */
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
return res;
}
+
+/* The check is in case we are not printing full line data,
+ this gets some of the issues noted with .debug_line,
+ but not all. Call dwarf_print_lines() to get all issues.
+ Intended for apps like dwarfdump.
+*/
+void
+dwarf_check_lineheader(Dwarf_Die die, int *err_count_out)
+{
+ Dwarf_Error err;
+ int only_line_header = 1;
+ _dwarf_internal_printlines(die, &err,err_count_out,
+ only_line_header);
+ return;
+}
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_pubtypes.c b/usr/src/tools/ctf/dwarf/common/dwarf_pubtypes.c
new file mode 100644
index 0000000000..330c1c6adc
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_pubtypes.c
@@ -0,0 +1,138 @@
+/*
+
+ Copyright (C) 2000,2002,2004,2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+/* Reads DWARF3 .debug_pubtypes section. */
+
+
+#include "config.h"
+#include "dwarf_incl.h"
+#include <stdio.h>
+#include "dwarf_types.h"
+#include "dwarf_global.h"
+
+int
+dwarf_get_pubtypes(Dwarf_Debug dbg,
+ Dwarf_Type ** types,
+ Dwarf_Signed * ret_type_count, Dwarf_Error * error)
+{
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_pubtypes,error);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+
+ return _dwarf_internal_get_pubnames_like_data(dbg,
+ dbg->de_debug_pubtypes.dss_data,
+ dbg->de_debug_pubtypes.dss_size,
+ (Dwarf_Global **) types, /* Type punning for sections
+ with identical format. */
+ ret_type_count, error,
+ DW_DLA_PUBTYPES_CONTEXT,
+ DW_DLA_GLOBAL, /* We don't have DW_DLA_PUBTYPES,
+ so use DW_DLA_GLOBAL. */
+ DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD,
+ DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR);
+}
+
+/* Deallocating fully requires deallocating the list
+ and all entries. But some internal data is
+ not exposed, so we need a function with internal knowledge.
+*/
+
+void
+dwarf_pubtypes_dealloc(Dwarf_Debug dbg, Dwarf_Type * dwgl,
+ Dwarf_Signed count)
+{
+ _dwarf_internal_globals_dealloc(dbg,
+ (Dwarf_Global *) dwgl,
+ count,
+ DW_DLA_PUBTYPES_CONTEXT,
+ DW_DLA_GLOBAL, /* We don't have DW_DLA_PUBTYPES,
+ so use DW_DLA_GLOBAL. */
+ DW_DLA_LIST);
+ return;
+}
+
+
+
+int
+dwarf_pubtypename(Dwarf_Type type_in, char **ret_name,
+ Dwarf_Error * error)
+{
+ Dwarf_Global type = (Dwarf_Global) type_in;
+ if (type == NULL) {
+ _dwarf_error(NULL, error, DW_DLE_TYPE_NULL);
+ return (DW_DLV_ERROR);
+ }
+ *ret_name = (char *) (type->gl_name);
+ return DW_DLV_OK;
+}
+
+
+int
+dwarf_pubtype_type_die_offset(Dwarf_Type type_in,
+ Dwarf_Off * ret_offset,
+ Dwarf_Error * error)
+{
+ Dwarf_Global type = (Dwarf_Global) type_in;
+
+ return dwarf_global_die_offset(type, ret_offset, error);
+}
+
+
+int
+dwarf_pubtype_cu_offset(Dwarf_Type type_in,
+ Dwarf_Off * ret_offset, Dwarf_Error * error)
+{
+ Dwarf_Global type = (Dwarf_Global) type_in;
+
+ return dwarf_global_cu_offset(type, ret_offset, error);
+
+}
+
+
+int
+dwarf_pubtype_name_offsets(Dwarf_Type type_in,
+ char **returned_name,
+ Dwarf_Off * die_offset,
+ Dwarf_Off * cu_die_offset,
+ Dwarf_Error * error)
+{
+ Dwarf_Global type = (Dwarf_Global) type_in;
+
+ return dwarf_global_name_offsets(type,
+ returned_name,
+ die_offset, cu_die_offset, error);
+}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_query.c b/usr/src/tools/ctf/dwarf/common/dwarf_query.c
index 8573f4be9c..3f21abd039 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_query.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_query.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +33,13 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
#include "config.h"
@@ -39,30 +47,52 @@
#include <stdio.h>
#include "dwarf_die_deliv.h"
+/* This is normally reliable.
+But not always.
+If different compilation
+units have different address sizes
+this may not give the correct value in all contexts.
+If the Elf offset size != address_size
+(for example if address_size = 4 but recorded in elf64 object)
+this may not give the correct value in all contexts.
+*/
int
dwarf_get_address_size(Dwarf_Debug dbg,
- Dwarf_Half * ret_addr_size, Dwarf_Error * error)
+ Dwarf_Half * ret_addr_size, Dwarf_Error * error)
{
- Dwarf_Half address_size;
+ Dwarf_Half address_size = 0;
if (dbg == 0) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- /* length size same as address size */
address_size = dbg->de_pointer_size;
*ret_addr_size = address_size;
return DW_DLV_OK;
}
+/* This will be correct in all contexts where the
+ CU context of a DIE is known.
+*/
+int
+dwarf_get_die_address_size(Dwarf_Die die,
+ Dwarf_Half * ret_addr_size, Dwarf_Error * error)
+{
+ Dwarf_Half address_size = 0;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ address_size = die->di_cu_context->cc_address_size;
+ *ret_addr_size = address_size;
+ return DW_DLV_OK;
+}
+
int
dwarf_dieoffset(Dwarf_Die die,
- Dwarf_Off * ret_offset, Dwarf_Error * error)
+ Dwarf_Off * ret_offset, Dwarf_Error * error)
{
- CHECK_DIE(die, DW_DLV_ERROR)
+ CHECK_DIE(die, DW_DLV_ERROR);
- * ret_offset = (die->di_debug_info_ptr -
- die->di_cu_context->cc_dbg->de_debug_info);
+ *ret_offset = (die->di_debug_info_ptr -
+ die->di_cu_context->cc_dbg->de_debug_info.dss_data);
return DW_DLV_OK;
}
@@ -75,123 +105,153 @@ dwarf_dieoffset(Dwarf_Die die,
*/
int
dwarf_die_CU_offset(Dwarf_Die die,
- Dwarf_Off * cu_off, Dwarf_Error * error)
+ Dwarf_Off * cu_off, Dwarf_Error * error)
{
- Dwarf_CU_Context cu_context;
+ Dwarf_CU_Context cu_context = 0;
- CHECK_DIE(die, DW_DLV_ERROR)
- cu_context = die->di_cu_context;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ cu_context = die->di_cu_context;
*cu_off =
- (die->di_debug_info_ptr - cu_context->cc_dbg->de_debug_info -
- cu_context->cc_debug_info_offset);
+ (die->di_debug_info_ptr - cu_context->cc_dbg->de_debug_info.dss_data -
+ cu_context->cc_debug_info_offset);
return DW_DLV_OK;
}
-
+/*
+ This function returns the global offset
+ (meaning the section offset) and length of
+ the CU that this die is a part of.
+ Used for correctness checking by dwarfdump.
+*/
int
-dwarf_tag(Dwarf_Die die, Dwarf_Half * tag, Dwarf_Error * error)
+dwarf_die_CU_offset_range(Dwarf_Die die,
+ Dwarf_Off * cu_off,
+ Dwarf_Off * cu_length,
+ Dwarf_Error * error)
{
- CHECK_DIE(die, DW_DLV_ERROR)
+ Dwarf_CU_Context cu_context = 0;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ cu_context = die->di_cu_context;
- * tag = (die->di_abbrev_list->ab_tag);
+ *cu_off = cu_context->cc_debug_info_offset;
+ *cu_length = cu_context->cc_length + cu_context->cc_length_size
+ + cu_context->cc_extension_size;
+ return DW_DLV_OK;
+}
+
+
+
+int
+dwarf_tag(Dwarf_Die die, Dwarf_Half * tag, Dwarf_Error * error)
+{
+ CHECK_DIE(die, DW_DLV_ERROR);
+ *tag = (die->di_abbrev_list->ab_tag);
return DW_DLV_OK;
}
int
dwarf_attrlist(Dwarf_Die die,
- Dwarf_Attribute ** attrbuf,
- Dwarf_Signed * attrcnt, Dwarf_Error * error)
+ Dwarf_Attribute ** attrbuf,
+ Dwarf_Signed * attrcnt, Dwarf_Error * error)
{
Dwarf_Word attr_count = 0;
- Dwarf_Word i;
- Dwarf_Half attr;
- Dwarf_Half attr_form;
- Dwarf_Byte_Ptr abbrev_ptr;
- Dwarf_Abbrev_List abbrev_list;
- Dwarf_Attribute new_attr;
- Dwarf_Attribute head_attr = NULL, curr_attr;
- Dwarf_Attribute *attr_ptr;
- Dwarf_Debug dbg;
- Dwarf_Byte_Ptr info_ptr;
-
- CHECK_DIE(die, DW_DLV_ERROR)
- dbg = die->di_cu_context->cc_dbg;
+ Dwarf_Word i = 0;
+ Dwarf_Half attr = 0;
+ Dwarf_Half attr_form = 0;
+ Dwarf_Byte_Ptr abbrev_ptr = 0;
+ Dwarf_Abbrev_List abbrev_list = 0;
+ Dwarf_Attribute new_attr = 0;
+ Dwarf_Attribute head_attr = NULL;
+ Dwarf_Attribute curr_attr = NULL;
+ Dwarf_Attribute *attr_ptr = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Byte_Ptr info_ptr = 0;
+
+ CHECK_DIE(die, DW_DLV_ERROR);
+ dbg = die->di_cu_context->cc_dbg;
abbrev_list = _dwarf_get_abbrev_for_code(die->di_cu_context,
- die->di_abbrev_list->
- ab_code);
+ die->di_abbrev_list->
+ ab_code);
if (abbrev_list == NULL) {
- _dwarf_error(dbg, error, DW_DLE_DIE_ABBREV_BAD);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_DIE_ABBREV_BAD);
+ return (DW_DLV_ERROR);
}
abbrev_ptr = abbrev_list->ab_abbrev_ptr;
info_ptr = die->di_debug_info_ptr;
- SKIP_LEB128_WORD(info_ptr)
-
- do {
- Dwarf_Unsigned utmp2;
-
- DECODE_LEB128_UWORD(abbrev_ptr, utmp2)
- attr = (Dwarf_Half) utmp2;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp2)
- attr_form = (Dwarf_Half) utmp2;
-
- if (attr != 0) {
- new_attr =
- (Dwarf_Attribute) _dwarf_get_alloc(dbg, DW_DLA_ATTR, 1);
- if (new_attr == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
- }
-
- new_attr->ar_attribute = attr;
- new_attr->ar_attribute_form_direct = attr_form;
- new_attr->ar_attribute_form = attr_form;
- if(attr_form == DW_FORM_indirect) {
- Dwarf_Unsigned utmp6;
- /* DECODE_LEB128_UWORD does info_ptr update */
- DECODE_LEB128_UWORD(info_ptr, utmp6)
+ SKIP_LEB128_WORD(info_ptr);
+
+ do {
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp2);
+ attr = (Dwarf_Half) utmp2;
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp2);
+ attr_form = (Dwarf_Half) utmp2;
+
+ if (attr != 0) {
+ new_attr =
+ (Dwarf_Attribute) _dwarf_get_alloc(dbg, DW_DLA_ATTR, 1);
+ if (new_attr == NULL) {
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
+ }
+
+ new_attr->ar_attribute = attr;
+ new_attr->ar_attribute_form_direct = attr_form;
+ new_attr->ar_attribute_form = attr_form;
+ if (attr_form == DW_FORM_indirect) {
+ Dwarf_Unsigned utmp6;
+
+ /* DECODE_LEB128_UWORD does info_ptr update */
+ DECODE_LEB128_UWORD(info_ptr, utmp6);
attr_form = (Dwarf_Half) utmp6;
- new_attr->ar_attribute_form = attr_form;
- }
- new_attr->ar_cu_context = die->di_cu_context;
- new_attr->ar_debug_info_ptr = info_ptr;
-
- info_ptr += _dwarf_get_size_of_val(dbg, attr_form, info_ptr,
- die->di_cu_context->
- cc_length_size);
-
- if (head_attr == NULL)
- head_attr = curr_attr = new_attr;
- else {
- curr_attr->ar_next = new_attr;
- curr_attr = new_attr;
- }
- attr_count++;
- }
+ new_attr->ar_attribute_form = attr_form;
+ }
+ new_attr->ar_cu_context = die->di_cu_context;
+ new_attr->ar_debug_info_ptr = info_ptr;
+
+ {
+ Dwarf_Unsigned sov = _dwarf_get_size_of_val(dbg,
+ attr_form,
+ die->di_cu_context->cc_address_size,
+ info_ptr,
+ die->di_cu_context->cc_length_size);
+ info_ptr += sov;
+ }
+
+
+ if (head_attr == NULL)
+ head_attr = curr_attr = new_attr;
+ else {
+ curr_attr->ar_next = new_attr;
+ curr_attr = new_attr;
+ }
+ attr_count++;
+ }
} while (attr != 0 || attr_form != 0);
if (attr_count == 0) {
- *attrbuf = NULL;
- *attrcnt = 0;
- return (DW_DLV_NO_ENTRY);
+ *attrbuf = NULL;
+ *attrcnt = 0;
+ return (DW_DLV_NO_ENTRY);
}
attr_ptr = (Dwarf_Attribute *)
- _dwarf_get_alloc(dbg, DW_DLA_LIST, attr_count);
+ _dwarf_get_alloc(dbg, DW_DLA_LIST, attr_count);
if (attr_ptr == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
curr_attr = head_attr;
for (i = 0; i < attr_count; i++) {
- *(attr_ptr + i) = curr_attr;
- curr_attr = curr_attr->ar_next;
+ *(attr_ptr + i) = curr_attr;
+ curr_attr = curr_attr->ar_next;
}
*attrbuf = attr_ptr;
@@ -212,50 +272,50 @@ dwarf_attrlist(Dwarf_Die die,
*/
static Dwarf_Byte_Ptr
_dwarf_get_value_ptr(Dwarf_Die die,
- Dwarf_Half attr, Dwarf_Half * attr_form)
+ Dwarf_Half attr, Dwarf_Half * attr_form)
{
- Dwarf_Byte_Ptr abbrev_ptr;
+ Dwarf_Byte_Ptr abbrev_ptr = 0;
Dwarf_Abbrev_List abbrev_list;
- Dwarf_Half curr_attr;
- Dwarf_Half curr_attr_form;
- Dwarf_Byte_Ptr info_ptr;
+ Dwarf_Half curr_attr = 0;
+ Dwarf_Half curr_attr_form = 0;
+ Dwarf_Byte_Ptr info_ptr = 0;
abbrev_list = _dwarf_get_abbrev_for_code(die->di_cu_context,
- die->di_abbrev_list->
- ab_code);
+ die->di_abbrev_list->ab_code);
if (abbrev_list == NULL) {
- *attr_form = 0;
- return (NULL);
+ *attr_form = 0;
+ return (NULL);
}
abbrev_ptr = abbrev_list->ab_abbrev_ptr;
info_ptr = die->di_debug_info_ptr;
- SKIP_LEB128_WORD(info_ptr)
+ SKIP_LEB128_WORD(info_ptr);
do {
- Dwarf_Unsigned utmp3;
-
- DECODE_LEB128_UWORD(abbrev_ptr, utmp3)
- curr_attr = (Dwarf_Half) utmp3;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp3)
- curr_attr_form = (Dwarf_Half) utmp3;
- if(curr_attr_form == DW_FORM_indirect) {
- Dwarf_Unsigned utmp6;
-
- /* DECODE_LEB128_UWORD updates info_ptr */
- DECODE_LEB128_UWORD(info_ptr, utmp6)
- curr_attr_form = (Dwarf_Half) utmp6;
+ Dwarf_Unsigned utmp3;
+
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp3);
+ curr_attr = (Dwarf_Half) utmp3;
+ DECODE_LEB128_UWORD(abbrev_ptr, utmp3);
+ curr_attr_form = (Dwarf_Half) utmp3;
+ if (curr_attr_form == DW_FORM_indirect) {
+ Dwarf_Unsigned utmp6;
+
+ /* DECODE_LEB128_UWORD updates info_ptr */
+ DECODE_LEB128_UWORD(info_ptr, utmp6);
+ curr_attr_form = (Dwarf_Half) utmp6;
}
- if (curr_attr == attr) {
- *attr_form = curr_attr_form;
- return (info_ptr);
- }
+ if (curr_attr == attr) {
+ *attr_form = curr_attr_form;
+ return (info_ptr);
+ }
- info_ptr += _dwarf_get_size_of_val(die->di_cu_context->cc_dbg,
- curr_attr_form, info_ptr,
- die->di_cu_context->
- cc_length_size);
+ info_ptr += _dwarf_get_size_of_val(die->di_cu_context->cc_dbg,
+ curr_attr_form,
+ die->di_cu_context->cc_address_size,
+ info_ptr,
+ die->di_cu_context->cc_length_size);
} while (curr_attr != 0 || curr_attr_form != 0);
*attr_form = 1;
@@ -266,74 +326,70 @@ _dwarf_get_value_ptr(Dwarf_Die die,
int
dwarf_diename(Dwarf_Die die, char **ret_name, Dwarf_Error * error)
{
- Dwarf_Half attr_form;
- Dwarf_Debug dbg;
- Dwarf_Byte_Ptr info_ptr;
- Dwarf_Unsigned string_offset;
- int res;
+ Dwarf_Half attr_form = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Byte_Ptr info_ptr = 0;
+ Dwarf_Unsigned string_offset = 0;
+ int res = DW_DLV_ERROR;
- CHECK_DIE(die, DW_DLV_ERROR)
+ CHECK_DIE(die, DW_DLV_ERROR);
- info_ptr = _dwarf_get_value_ptr(die, DW_AT_name, &attr_form);
+ info_ptr = _dwarf_get_value_ptr(die, DW_AT_name, &attr_form);
if (info_ptr == NULL) {
- if (attr_form == 0) {
- _dwarf_error(die->di_cu_context->cc_dbg, error,
- DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
- }
- return DW_DLV_NO_ENTRY;
+ if (attr_form == 0) {
+ _dwarf_error(die->di_cu_context->cc_dbg, error,
+ DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
+ }
+ return DW_DLV_NO_ENTRY;
}
if (attr_form == DW_FORM_string) {
- *ret_name = (char *) (info_ptr);
- return DW_DLV_OK;
+ *ret_name = (char *) (info_ptr);
+ return DW_DLV_OK;
}
dbg = die->di_cu_context->cc_dbg;
if (attr_form != DW_FORM_strp) {
- _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_BAD);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ATTR_FORM_BAD);
+ return (DW_DLV_ERROR);
}
READ_UNALIGNED(dbg, string_offset, Dwarf_Unsigned,
- info_ptr, die->di_cu_context->cc_length_size);
+ info_ptr, die->di_cu_context->cc_length_size);
- if (string_offset >= dbg->de_debug_str_size) {
- _dwarf_error(dbg, error, DW_DLE_STRING_OFFSET_BAD);
- return (DW_DLV_ERROR);
+ if (string_offset >= dbg->de_debug_str.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_STRING_OFFSET_BAD);
+ return (DW_DLV_ERROR);
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_str_index,
- &dbg->de_debug_str,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_str,error);
if (res != DW_DLV_OK) {
return res;
}
- *ret_name = (char *) (dbg->de_debug_str + string_offset);
+ *ret_name = (char *) (dbg->de_debug_str.dss_data + string_offset);
return DW_DLV_OK;
}
int
dwarf_hasattr(Dwarf_Die die,
- Dwarf_Half attr,
- Dwarf_Bool * return_bool, Dwarf_Error * error)
+ Dwarf_Half attr,
+ Dwarf_Bool * return_bool, Dwarf_Error * error)
{
- Dwarf_Half attr_form;
+ Dwarf_Half attr_form = 0;
- CHECK_DIE(die, DW_DLV_ERROR)
+ CHECK_DIE(die, DW_DLV_ERROR);
- if (_dwarf_get_value_ptr(die, attr, &attr_form) == NULL) {
- if (attr_form == 0) {
- _dwarf_error(die->di_cu_context->cc_dbg, error,
- DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
- }
- *return_bool = false;
- return DW_DLV_OK;
+ if (_dwarf_get_value_ptr(die, attr, &attr_form) == NULL) {
+ if (attr_form == 0) {
+ _dwarf_error(die->di_cu_context->cc_dbg, error,
+ DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
+ }
+ *return_bool = false;
+ return DW_DLV_OK;
}
*return_bool = (true);
@@ -343,30 +399,30 @@ dwarf_hasattr(Dwarf_Die die,
int
dwarf_attr(Dwarf_Die die,
- Dwarf_Half attr,
- Dwarf_Attribute * ret_attr, Dwarf_Error * error)
+ Dwarf_Half attr,
+ Dwarf_Attribute * ret_attr, Dwarf_Error * error)
{
- Dwarf_Half attr_form;
- Dwarf_Attribute attrib;
- Dwarf_Byte_Ptr info_ptr;
- Dwarf_Debug dbg;
+ Dwarf_Half attr_form = 0;
+ Dwarf_Attribute attrib = 0;
+ Dwarf_Byte_Ptr info_ptr = 0;
+ Dwarf_Debug dbg = 0;
- CHECK_DIE(die, DW_DLV_ERROR)
- dbg = die->di_cu_context->cc_dbg;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ dbg = die->di_cu_context->cc_dbg;
info_ptr = _dwarf_get_value_ptr(die, attr, &attr_form);
if (info_ptr == NULL) {
- if (attr_form == 0) {
- _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
- }
- return DW_DLV_NO_ENTRY;
+ if (attr_form == 0) {
+ _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
+ }
+ return DW_DLV_NO_ENTRY;
}
attrib = (Dwarf_Attribute) _dwarf_get_alloc(dbg, DW_DLA_ATTR, 1);
if (attrib == NULL) {
- _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (DW_DLV_ERROR);
}
attrib->ar_attribute = attr;
@@ -381,29 +437,31 @@ dwarf_attr(Dwarf_Die die,
int
dwarf_lowpc(Dwarf_Die die,
- Dwarf_Addr * return_addr, Dwarf_Error * error)
+ Dwarf_Addr * return_addr, Dwarf_Error * error)
{
- Dwarf_Addr ret_addr;
- Dwarf_Byte_Ptr info_ptr;
- Dwarf_Half attr_form;
- Dwarf_Debug dbg;
+ Dwarf_Addr ret_addr = 0;
+ Dwarf_Byte_Ptr info_ptr = 0;
+ Dwarf_Half attr_form = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Half address_size = 0;
- CHECK_DIE(die, DW_DLV_ERROR)
+ CHECK_DIE(die, DW_DLV_ERROR);
- dbg = die->di_cu_context->cc_dbg;
+ dbg = die->di_cu_context->cc_dbg;
+ address_size = die->di_cu_context->cc_address_size;
info_ptr = _dwarf_get_value_ptr(die, DW_AT_low_pc, &attr_form);
if ((info_ptr == NULL && attr_form == 0) ||
- (info_ptr != NULL && attr_form != DW_FORM_addr)) {
- _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
+ (info_ptr != NULL && attr_form != DW_FORM_addr)) {
+ _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
}
if (info_ptr == NULL) {
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
}
READ_UNALIGNED(dbg, ret_addr, Dwarf_Addr,
- info_ptr, dbg->de_pointer_size);
+ info_ptr, address_size);
*return_addr = ret_addr;
return (DW_DLV_OK);
@@ -412,28 +470,29 @@ dwarf_lowpc(Dwarf_Die die,
int
dwarf_highpc(Dwarf_Die die,
- Dwarf_Addr * return_addr, Dwarf_Error * error)
+ Dwarf_Addr * return_addr, Dwarf_Error * error)
{
- Dwarf_Addr ret_addr;
- Dwarf_Byte_Ptr info_ptr;
- Dwarf_Half attr_form;
- Dwarf_Debug dbg;
+ Dwarf_Addr ret_addr = 0;
+ Dwarf_Byte_Ptr info_ptr = 0;
+ Dwarf_Half attr_form = 0;
+ Dwarf_Debug dbg = 0;
+ Dwarf_Half address_size = 0;
- CHECK_DIE(die, DW_DLV_ERROR)
-
- dbg = die->di_cu_context->cc_dbg;
+ CHECK_DIE(die, DW_DLV_ERROR);
+ dbg = die->di_cu_context->cc_dbg;
+ address_size = die->di_cu_context->cc_address_size;
info_ptr = _dwarf_get_value_ptr(die, DW_AT_high_pc, &attr_form);
if ((info_ptr == NULL && attr_form == 0) ||
- (info_ptr != NULL && attr_form != DW_FORM_addr)) {
- _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
+ (info_ptr != NULL && attr_form != DW_FORM_addr)) {
+ _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
}
if (info_ptr == NULL) {
- return (DW_DLV_NO_ENTRY);
+ return (DW_DLV_NO_ENTRY);
}
READ_UNALIGNED(dbg, ret_addr, Dwarf_Addr,
- info_ptr, dbg->de_pointer_size);
+ info_ptr, address_size);
*return_addr = ret_addr;
return (DW_DLV_OK);
@@ -453,56 +512,56 @@ dwarf_highpc(Dwarf_Die die,
*/
static int
_dwarf_die_attr_unsigned_constant(Dwarf_Die die,
- Dwarf_Half attr,
- Dwarf_Unsigned * return_val,
- Dwarf_Error * error)
+ Dwarf_Half attr,
+ Dwarf_Unsigned * return_val,
+ Dwarf_Error * error)
{
Dwarf_Byte_Ptr info_ptr;
Dwarf_Half attr_form;
Dwarf_Unsigned ret_value;
Dwarf_Debug dbg;
- CHECK_DIE(die, DW_DLV_ERROR)
+ CHECK_DIE(die, DW_DLV_ERROR);
- dbg = die->di_cu_context->cc_dbg;
+ dbg = die->di_cu_context->cc_dbg;
info_ptr = _dwarf_get_value_ptr(die, attr, &attr_form);
if (info_ptr != NULL) {
- switch (attr_form) {
-
- case DW_FORM_data1:
- *return_val = (*(Dwarf_Small *) info_ptr);
- return (DW_DLV_OK);
-
- case DW_FORM_data2:
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- info_ptr, sizeof(Dwarf_Shalf));
- *return_val = ret_value;
- return (DW_DLV_OK);
-
- case DW_FORM_data4:
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- info_ptr, sizeof(Dwarf_sfixed));
- *return_val = ret_value;
- return (DW_DLV_OK);
-
- case DW_FORM_data8:
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- info_ptr, sizeof(Dwarf_Unsigned));
- *return_val = ret_value;
- return (DW_DLV_OK);
-
- case DW_FORM_udata:
- *return_val = (_dwarf_decode_u_leb128(info_ptr, NULL));
- return (DW_DLV_OK);
-
- default:
- _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
- }
+ switch (attr_form) {
+
+ case DW_FORM_data1:
+ *return_val = (*(Dwarf_Small *) info_ptr);
+ return (DW_DLV_OK);
+
+ case DW_FORM_data2:
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ info_ptr, sizeof(Dwarf_Shalf));
+ *return_val = ret_value;
+ return (DW_DLV_OK);
+
+ case DW_FORM_data4:
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ info_ptr, sizeof(Dwarf_sfixed));
+ *return_val = ret_value;
+ return (DW_DLV_OK);
+
+ case DW_FORM_data8:
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ info_ptr, sizeof(Dwarf_Unsigned));
+ *return_val = ret_value;
+ return (DW_DLV_OK);
+
+ case DW_FORM_udata:
+ *return_val = (_dwarf_decode_u_leb128(info_ptr, NULL));
+ return (DW_DLV_OK);
+
+ default:
+ _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
+ }
}
if (attr_form == 0) {
- _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_DIE_BAD);
+ return (DW_DLV_ERROR);
}
return DW_DLV_NO_ENTRY;
}
@@ -510,12 +569,11 @@ _dwarf_die_attr_unsigned_constant(Dwarf_Die die,
int
dwarf_bytesize(Dwarf_Die die,
- Dwarf_Unsigned * ret_size, Dwarf_Error * error)
+ Dwarf_Unsigned * ret_size, Dwarf_Error * error)
{
- Dwarf_Unsigned luns;
- int res =
- _dwarf_die_attr_unsigned_constant(die, DW_AT_byte_size, &luns,
- error);
+ Dwarf_Unsigned luns = 0;
+ int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_byte_size,
+ &luns, error);
*ret_size = luns;
return res;
}
@@ -523,14 +581,11 @@ dwarf_bytesize(Dwarf_Die die,
int
dwarf_bitsize(Dwarf_Die die,
- Dwarf_Unsigned * ret_size, Dwarf_Error * error)
+ Dwarf_Unsigned * ret_size, Dwarf_Error * error)
{
- Dwarf_Unsigned luns;
- int res;
-
- res =
- _dwarf_die_attr_unsigned_constant(die, DW_AT_bit_size, &luns,
- error);
+ Dwarf_Unsigned luns = 0;
+ int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_bit_size,
+ &luns, error);
*ret_size = luns;
return res;
}
@@ -538,14 +593,11 @@ dwarf_bitsize(Dwarf_Die die,
int
dwarf_bitoffset(Dwarf_Die die,
- Dwarf_Unsigned * ret_size, Dwarf_Error * error)
+ Dwarf_Unsigned * ret_size, Dwarf_Error * error)
{
- Dwarf_Unsigned luns;
- int res;
-
- res =
- _dwarf_die_attr_unsigned_constant(die, DW_AT_bit_offset, &luns,
- error);
+ Dwarf_Unsigned luns = 0;
+ int res = _dwarf_die_attr_unsigned_constant(die,
+ DW_AT_bit_offset, &luns, error);
*ret_size = luns;
return res;
}
@@ -554,14 +606,11 @@ dwarf_bitoffset(Dwarf_Die die,
/* Refer section 3.1, page 21 in Dwarf Definition. */
int
dwarf_srclang(Dwarf_Die die,
- Dwarf_Unsigned * ret_size, Dwarf_Error * error)
+ Dwarf_Unsigned * ret_size, Dwarf_Error * error)
{
- Dwarf_Unsigned luns;
- int res;
-
- res =
- _dwarf_die_attr_unsigned_constant(die, DW_AT_language, &luns,
- error);
+ Dwarf_Unsigned luns = 0;
+ int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_language,
+ &luns, error);
*ret_size = luns;
return res;
}
@@ -570,40 +619,171 @@ dwarf_srclang(Dwarf_Die die,
/* Refer section 5.4, page 37 in Dwarf Definition. */
int
dwarf_arrayorder(Dwarf_Die die,
- Dwarf_Unsigned * ret_size, Dwarf_Error * error)
+ Dwarf_Unsigned * ret_size, Dwarf_Error * error)
{
- Dwarf_Unsigned luns;
- int res;
-
- res =
- _dwarf_die_attr_unsigned_constant(die, DW_AT_ordering, &luns,
- error);
+ Dwarf_Unsigned luns = 0;
+ int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_ordering,
+ &luns, error);
*ret_size = luns;
return res;
}
/*
- Return DW_DLV_OK if ok
- DW_DLV_ERROR if failure.
+ Return DW_DLV_OK if ok
+ DW_DLV_ERROR if failure.
- If the die and the attr are not related the result is
- meaningless.
+ If the die and the attr are not related the result is
+ meaningless.
*/
int
-dwarf_attr_offset(Dwarf_Die die, Dwarf_Attribute attr, Dwarf_Off * offset, /* return
- offset
- thru
- this
- ptr
- */
- Dwarf_Error * error)
+dwarf_attr_offset(Dwarf_Die die, Dwarf_Attribute attr,
+ Dwarf_Off * offset /* return offset thru this ptr */,
+ Dwarf_Error * error)
{
- Dwarf_Off attroff;
+ Dwarf_Off attroff = 0;
- CHECK_DIE(die, DW_DLV_ERROR)
+ CHECK_DIE(die, DW_DLV_ERROR);
- attroff = (attr->ar_debug_info_ptr -
- die->di_cu_context->cc_dbg->de_debug_info);
+ attroff = (attr->ar_debug_info_ptr -
+ die->di_cu_context->cc_dbg->de_debug_info.dss_data);
*offset = attroff;
return DW_DLV_OK;
}
+
+int
+dwarf_die_abbrev_code(Dwarf_Die die)
+{
+ return die->di_abbrev_code;
+}
+
+/* Helper function for finding form class. */
+static enum Dwarf_Form_Class
+dw_get_special_offset(Dwarf_Half attrnum)
+{
+ switch(attrnum) {
+ case DW_AT_stmt_list:
+ return DW_FORM_CLASS_LINEPTR;
+ case DW_AT_macro_info:
+ return DW_FORM_CLASS_MACPTR;
+ case DW_AT_ranges:
+ return DW_FORM_CLASS_RANGELISTPTR;
+ case DW_AT_location:
+ case DW_AT_string_length:
+ case DW_AT_return_addr:
+ case DW_AT_data_member_location:
+ case DW_AT_frame_base:
+ case DW_AT_segment:
+ case DW_AT_static_link:
+ case DW_AT_use_location:
+ case DW_AT_vtable_elem_location:
+ return DW_FORM_CLASS_LOCLISTPTR;
+ case DW_AT_sibling:
+ case DW_AT_byte_size :
+ case DW_AT_bit_offset :
+ case DW_AT_bit_size :
+ case DW_AT_discr :
+ case DW_AT_import :
+ case DW_AT_common_reference:
+ case DW_AT_containing_type:
+ case DW_AT_default_value:
+ case DW_AT_lower_bound:
+ case DW_AT_bit_stride:
+ case DW_AT_upper_bound:
+ case DW_AT_abstract_origin:
+ case DW_AT_base_types:
+ case DW_AT_count:
+ case DW_AT_friend:
+ case DW_AT_namelist_item:
+ case DW_AT_priority:
+ case DW_AT_specification:
+ case DW_AT_type:
+ case DW_AT_allocated:
+ case DW_AT_associated:
+ case DW_AT_byte_stride:
+ case DW_AT_extension:
+ case DW_AT_trampoline:
+ case DW_AT_small:
+ case DW_AT_object_pointer:
+ case DW_AT_signature:
+ return DW_FORM_CLASS_REFERENCE;
+ case DW_AT_MIPS_fde: /* SGI/IRIX extension */
+ return DW_FORM_CLASS_FRAMEPTR;
+ }
+ return DW_FORM_CLASS_UNKNOWN;
+}
+
+/* It takes 4 pieces of data (including the FORM)
+ to accurately determine the form 'class' as documented
+ in the DWARF spec. This is per DWARF4, but will work
+ for DWARF2 or 3 as well. */
+enum Dwarf_Form_Class dwarf_get_form_class(
+ Dwarf_Half dwversion,
+ Dwarf_Half attrnum,
+ Dwarf_Half offset_size,
+ Dwarf_Half form)
+{
+ switch(form) {
+ case DW_FORM_addr: return DW_FORM_CLASS_ADDRESS;
+
+ case DW_FORM_data2: return DW_FORM_CLASS_CONSTANT;
+
+ case DW_FORM_data4:
+ if(dwversion <= 3 && offset_size == 4) {
+ enum Dwarf_Form_Class class = dw_get_special_offset(attrnum);
+ if(class != DW_FORM_CLASS_UNKNOWN) {
+ return class;
+ }
+ }
+ return DW_FORM_CLASS_CONSTANT;
+ case DW_FORM_data8:
+ if(dwversion <= 3 && offset_size == 8) {
+ enum Dwarf_Form_Class class = dw_get_special_offset(attrnum);
+ if(class != DW_FORM_CLASS_UNKNOWN) {
+ return class;
+ }
+ }
+ return DW_FORM_CLASS_CONSTANT;
+
+ case DW_FORM_sec_offset:
+ {
+ enum Dwarf_Form_Class class = dw_get_special_offset(attrnum);
+ if(class != DW_FORM_CLASS_UNKNOWN) {
+ return class;
+ }
+ }
+ /* We do not know what this is. */
+ break;
+
+ case DW_FORM_string: return DW_FORM_CLASS_STRING;
+ case DW_FORM_strp: return DW_FORM_CLASS_STRING;
+
+ case DW_FORM_block: return DW_FORM_CLASS_BLOCK;
+ case DW_FORM_block1: return DW_FORM_CLASS_BLOCK;
+ case DW_FORM_block2: return DW_FORM_CLASS_BLOCK;
+ case DW_FORM_block4: return DW_FORM_CLASS_BLOCK;
+
+ case DW_FORM_data1: return DW_FORM_CLASS_CONSTANT;
+ case DW_FORM_sdata: return DW_FORM_CLASS_CONSTANT;
+ case DW_FORM_udata: return DW_FORM_CLASS_CONSTANT;
+
+ case DW_FORM_ref_addr: return DW_FORM_CLASS_REFERENCE;
+ case DW_FORM_ref1: return DW_FORM_CLASS_REFERENCE;
+ case DW_FORM_ref2: return DW_FORM_CLASS_REFERENCE;
+ case DW_FORM_ref4: return DW_FORM_CLASS_REFERENCE;
+ case DW_FORM_ref8: return DW_FORM_CLASS_REFERENCE;
+ case DW_FORM_ref_udata: return DW_FORM_CLASS_REFERENCE;
+ case DW_FORM_ref_sig8: return DW_FORM_CLASS_REFERENCE;
+
+ case DW_FORM_exprloc: return DW_FORM_CLASS_EXPRLOC;
+
+ case DW_FORM_flag: return DW_FORM_CLASS_FLAG;
+ case DW_FORM_flag_present: return DW_FORM_CLASS_FLAG;
+
+
+ case DW_FORM_indirect:
+ default:
+ break;
+ };
+ return DW_FORM_CLASS_UNKNOWN;
+}
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_ranges.c b/usr/src/tools/ctf/dwarf/common/dwarf_ranges.c
new file mode 100644
index 0000000000..ae6d5cf9b5
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_ranges.c
@@ -0,0 +1,171 @@
+/*
+
+ Copyright (C) 2008-2010 David Anderson. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
+
+#include "config.h"
+#include <stdlib.h>
+#include "dwarf_incl.h"
+
+struct ranges_entry {
+ struct ranges_entry *next;
+ Dwarf_Ranges cur;
+};
+
+
+#define MAX_ADDR ((address_size == 8)?0xffffffffffffffffULL:0xffffffff)
+int dwarf_get_ranges_a(Dwarf_Debug dbg,
+ Dwarf_Off rangesoffset,
+ Dwarf_Die die,
+ Dwarf_Ranges ** rangesbuf,
+ Dwarf_Signed * listlen,
+ Dwarf_Unsigned * bytecount,
+ Dwarf_Error * error)
+{
+ Dwarf_Small *rangeptr = 0;
+ Dwarf_Small *beginrangeptr = 0;
+ Dwarf_Small *section_end = 0;
+ unsigned entry_count = 0;
+ struct ranges_entry *base = 0;
+ struct ranges_entry *last = 0;
+ struct ranges_entry *curre = 0;
+ Dwarf_Ranges * ranges_data_out = 0;
+ unsigned copyindex = 0;
+ Dwarf_Half address_size = 0;
+ int res = DW_DLV_ERROR;
+
+ res = _dwarf_load_section(dbg, &dbg->de_debug_ranges,error);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ if(rangesoffset >= dbg->de_debug_ranges.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_RANGES_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+
+ }
+ address_size = _dwarf_get_address_size(dbg, die);
+ section_end = dbg->de_debug_ranges.dss_data +
+ dbg->de_debug_ranges.dss_size;
+ rangeptr = dbg->de_debug_ranges.dss_data + rangesoffset;
+ beginrangeptr = rangeptr;
+
+ for(;;) {
+ struct ranges_entry * re = calloc(sizeof(struct ranges_entry),1);
+ if(!re) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_RANGES_OUT_OF_MEM);
+ return (DW_DLV_ERROR);
+ }
+ if(rangeptr >= section_end) {
+ return (DW_DLV_NO_ENTRY);
+ }
+ if((rangeptr + (2*address_size)) > section_end) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_RANGES_OFFSET_BAD);
+ return (DW_DLV_ERROR);
+ }
+ entry_count++;
+ READ_UNALIGNED(dbg,re->cur.dwr_addr1,
+ Dwarf_Addr, rangeptr,
+ address_size);
+ rangeptr += address_size;
+ READ_UNALIGNED(dbg,re->cur.dwr_addr2 ,
+ Dwarf_Addr, rangeptr,
+ address_size);
+ rangeptr += address_size;
+ if(!base) {
+ base = re;
+ last = re;
+ } else {
+ last->next = re;
+ last = re;
+ }
+ if(re->cur.dwr_addr1 == 0 && re->cur.dwr_addr2 == 0) {
+ re->cur.dwr_type = DW_RANGES_END;
+ break;
+ } else if ( re->cur.dwr_addr1 == MAX_ADDR) {
+ re->cur.dwr_type = DW_RANGES_ADDRESS_SELECTION;
+ } else {
+ re->cur.dwr_type = DW_RANGES_ENTRY;
+ }
+ }
+
+ ranges_data_out = (Dwarf_Ranges *)
+ _dwarf_get_alloc(dbg,DW_DLA_RANGES,entry_count);
+ if(!ranges_data_out) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_RANGES_OUT_OF_MEM);
+ return (DW_DLV_ERROR);
+ }
+ curre = base;
+ *rangesbuf = ranges_data_out;
+ *listlen = entry_count;
+ for( copyindex = 0; curre && (copyindex < entry_count);
+ ++copyindex,++ranges_data_out) {
+
+ struct ranges_entry *r = curre;
+ *ranges_data_out = curre->cur;
+ curre = curre->next;
+ free(r);
+ }
+ /* Callers will often not care about the bytes used. */
+ if(bytecount) {
+ *bytecount = rangeptr - beginrangeptr;
+ }
+ return DW_DLV_OK;
+}
+int dwarf_get_ranges(Dwarf_Debug dbg,
+ Dwarf_Off rangesoffset,
+ Dwarf_Ranges ** rangesbuf,
+ Dwarf_Signed * listlen,
+ Dwarf_Unsigned * bytecount,
+ Dwarf_Error * error)
+{
+ Dwarf_Die die = 0;
+ int res = dwarf_get_ranges_a(dbg,rangesoffset,die,
+ rangesbuf,listlen,bytecount,error);
+ return res;
+}
+
+void
+dwarf_ranges_dealloc(Dwarf_Debug dbg, Dwarf_Ranges * rangesbuf,
+ Dwarf_Signed rangecount)
+{
+ dwarf_dealloc(dbg,rangesbuf, DW_DLA_RANGES);
+
+}
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_sort_line.c b/usr/src/tools/ctf/dwarf/common/dwarf_sort_line.c
index 64b08029ee..3576614129 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_sort_line.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_sort_line.c
@@ -1,6 +1,6 @@
/*
-
- Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004,2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +32,20 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
+/* This file was designed for SGI IRIX compiler use.
+ The static linker can rearrange the order of functions
+ in the layout in memory
+ and provided each has the right form
+ this will (when called by the SGI IRIX
+ static linker) rearrange the table so the line table
+ is arranged in the same order as the memory layout. */
@@ -43,97 +57,115 @@
#ifdef HAVE_ALLOCA_H
#include <alloca.h>
#endif
-#include <malloc.h>
-
-#define MINIMUM_POSSIBLE_PROLOG_LEN 10 /* 10 is based on */
- /* the definition of the DWARF2/3 line table prolog.
- The value here should be >8 (accounting for
- a 64 bit read) and <= the length
- of a legal DWARF2/3 line prolog,
- which is at least 10 bytes long (but can be longer).
- What this constant helps avoid is reading past the end of a
- malloc'd buffer in _dwarf_update_line_sec().
- */
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#define MINIMUM_POSSIBLE_PROLOG_LEN 10 /* 10 is based on */
+ /* the definition of the DWARF2/3 line table prolog. The value
+ here should be >8 (accounting for a 64 bit read) and <= the
+ length of a legal DWARF2/3 line prolog, which is at least 10
+ bytes long (but can be longer). What this constant helps
+ avoid is reading past the end of a malloc'd buffer in
+ _dwarf_update_line_sec(). */
static int
_dwarf_update_line_sec(Dwarf_Small * line_ptr,
- unsigned long remaining_bytes,
- int *any_change,
- int length_size,
- int *err_code, Dwarf_Small ** new_line_ptr);
+ unsigned long remaining_bytes,
+ int *any_change,
+ int length_size,
+ int *err_code, Dwarf_Small ** new_line_ptr);
/* Used to construct
a linked list of so we can sort and reorder the line info.
*/
struct a_line_area {
- Dwarf_Addr ala_address; /* from DW_LNE_set_address */
- Dwarf_Unsigned ala_offset; /* byte offset in buffer */
- Dwarf_Unsigned ala_length; /* byte length in buffer */
- int ala_entry_num; /* to guarantee stable sort */
+ Dwarf_Addr ala_address; /* from DW_LNE_set_address */
+ Dwarf_Unsigned ala_offset; /* byte offset in buffer */
+ Dwarf_Unsigned ala_length; /* byte length in buffer */
+ long ala_entry_num; /* to guarantee stable sort */
struct a_line_area *ala_next;
};
-
-/*
- returns
- DW_DLV_OK if nothing went wrong.
- DW_DLV_ERROR if could not do anything due to
- error. the original buffer is unchanged.
-
- is_64_bit must be passed in by caller and tells
- if this is a 32 or 64bit pointer object section
- being processed.
-
- err_code must be a non-null pointer to integer.
- If DW_DLV_ERROR is returned that integer is set
- to a dwarf error code so the caller may
- print it for diagnostic purposes.
-
- *any_change is set here
- set 0 if no sorting (movement) done.
- set 1 if some sorting (movement) done.
- on all returns. On error return sets to 0.
-
+/*
+ Written to support the SGI IRIX static linker.
+ It helps SGI IRIX ld
+ rearrange lines in .debug_line in a .o created with a text
+ section per function. The SGI IRIX linker option is:
+ -OPT:procedure_reorder=ON
+ where ld-cord (cord(1)ing by ld,
+ not by cord(1)) may have changed the function order.
+
+ Returns
+ DW_DLV_OK if nothing went wrong.
+ DW_DLV_ERROR if could not do anything due to
+ error. the original buffer is unchanged.
+
+ is_64_bit must be passed in by caller and tells
+ if this is a 32 or 64bit pointer object section
+ being processed.
+
+ err_code must be a non-null pointer to integer.
+ If DW_DLV_ERROR is returned that integer is set
+ to a dwarf error code so the caller may
+ print it for diagnostic purposes.
+
+ *any_change is set here
+ set 0 if no sorting (movement) done.
+ set 1 if some sorting (movement) done.
+ on all returns. On error return sets to 0.
+
+ The _dwarf name form is now obsolete,
+ the dwarf_ name for is preferred.
+ Both names supported.
*/
int
_dwarf_ld_sort_lines(void *orig_buffer,
- unsigned long buffer_len,
- int is_64_bit, int *any_change, int *err_code)
+ unsigned long buffer_len,
+ int is_64_bit, int *any_change, int *err_code)
+{
+ return dwarf_ld_sort_lines(orig_buffer,buffer_len,
+ is_64_bit,any_change,err_code);
+}
+int
+dwarf_ld_sort_lines(void *orig_buffer,
+ unsigned long buffer_len,
+ int is_64_bit, int *any_change, int *err_code)
{
int length_size = 4;
- Dwarf_Small *orig_line_ptr; /* our local copy of the user's input
- buffer */
- Dwarf_Small *line_ptr; /* starts at orig_line_ptr, gets
- incremented thru to end of our copy
- of the input buffer */
- Dwarf_Small *new_line_ptr; /* output of _dwarf_update_line_sec(),
- used to update line_ptr as we pass
- thru compilation units in a .o
- .debug_line */
-
- unsigned long remaining_bytes = buffer_len; /* total length of
- original area left
- to be processed.
- Changes as we pass
- thru compilation
- units in a .o
- .debug_line */
+ Dwarf_Small *orig_line_ptr; /* our local copy of the user's input
+ buffer */
+ Dwarf_Small *line_ptr; /* starts at orig_line_ptr, gets
+ incremented thru to end of our copy
+ of the input buffer */
+ Dwarf_Small *new_line_ptr; /* output of _dwarf_update_line_sec(),
+ used to update line_ptr as we pass
+ thru compilation units in a .o
+ .debug_line */
+
+ unsigned long remaining_bytes = buffer_len; /* total length of
+ original area left
+ to be processed.
+ Changes as we pass
+ thru compilation
+ units in a .o
+ .debug_line */
int sec_res;
int lany_change = 0;
int did_change = 0;
if (is_64_bit)
- length_size = 8;
+ length_size = 8;
*any_change = 0;
line_ptr = malloc(buffer_len);
if (!line_ptr) {
- *err_code = DW_DLE_ALLOC_FAIL;
- return DW_DLV_ERROR;
+ *err_code = DW_DLE_ALLOC_FAIL;
+ return DW_DLV_ERROR;
}
orig_line_ptr = line_ptr;
memcpy(line_ptr, orig_buffer, buffer_len);
@@ -146,42 +178,41 @@ _dwarf_ld_sort_lines(void *orig_buffer,
sec_res = DW_DLV_OK;
for (sec_res = _dwarf_update_line_sec(line_ptr,
- remaining_bytes,
- &lany_change,
- length_size,
- err_code,
- &new_line_ptr);
- (sec_res == DW_DLV_OK) && (remaining_bytes > 0);
- sec_res = _dwarf_update_line_sec(line_ptr,
- remaining_bytes,
- &lany_change,
- length_size,
- err_code, &new_line_ptr)) {
- long bytes_used = new_line_ptr - line_ptr;
-
- line_ptr = new_line_ptr;
- remaining_bytes -= bytes_used;
- if (lany_change) {
- did_change = 1;
- }
- if (remaining_bytes > 0) {
- continue;
- }
- break;
+ remaining_bytes,
+ &lany_change,
+ length_size,
+ err_code,
+ &new_line_ptr);
+ (sec_res == DW_DLV_OK) && (remaining_bytes > 0);
+ sec_res = _dwarf_update_line_sec(line_ptr,
+ remaining_bytes,
+ &lany_change,
+ length_size,
+ err_code, &new_line_ptr)) {
+ long bytes_used = new_line_ptr - line_ptr;
+
+ line_ptr = new_line_ptr;
+ remaining_bytes -= bytes_used;
+ if (lany_change) {
+ did_change = 1;
+ }
+ if (remaining_bytes > 0) {
+ continue;
+ }
+ break;
}
if (sec_res == DW_DLV_ERROR) {
- free(orig_line_ptr);
- return sec_res;
+ free(orig_line_ptr);
+ return sec_res;
}
/* all passed */
if (did_change) {
- /* So update the passed in buffer orig_buffer is caller's
- input area. orig_line_ptr is our modified copy of input
- area. */
- memcpy(orig_buffer, orig_line_ptr, buffer_len);
- *any_change = 1;
+ /* So update the passed in buffer orig_buffer is caller's input
+ area. orig_line_ptr is our modified copy of input area. */
+ memcpy(orig_buffer, orig_line_ptr, buffer_len);
+ *any_change = 1;
}
free(orig_line_ptr);
@@ -190,7 +221,7 @@ _dwarf_ld_sort_lines(void *orig_buffer,
/* By setting ala_entry_num we guarantee a stable sort,
- no duplicates
+ no duplicates
Sorting in address order.
*/
static int
@@ -200,99 +231,103 @@ cmpr(const void *lin, const void *rin)
const struct a_line_area *r = rin;
if (l->ala_address < r->ala_address) {
- return -1;
+ return -1;
}
if (l->ala_address > r->ala_address) {
- return 1;
+ return 1;
}
if (l->ala_entry_num < r->ala_entry_num) {
- return -1;
+ return -1;
}
if (l->ala_entry_num > r->ala_entry_num) {
- return 1;
+ return 1;
}
- return 0; /* should never happen. */
+ return 0; /* should never happen. */
}
+/* The list of line area records is no longer needed.
+ Free the data allocated. */
+static void
+free_area_data(struct a_line_area *arp)
+{
+ while(arp) {
+ struct a_line_area *next = arp->ala_next;
+ free(arp);
+ arp = next;
+ }
+}
/*
- On entry:
- line_ptr must point to first
- byte of a line group for one (original) .o
-
- remaining_bytes is the size of the area pointed to
- by line_ptr: may be larger than the
- current original compilation unit .
+ On entry:
+ line_ptr must point to first
+ byte of a line group for one (original) .o
+
+ remaining_bytes is the size of the area pointed to
+ by line_ptr: may be larger than the
+ current original compilation unit .
- length size is 4 for 32bit pointers, 8 for 64bit pointers
- in the data pointed to.
+ length size is 4 for 32bit pointers, 8 for 64bit pointers
+ in the data pointed to.
- On return:
- return DW_DLV_OK if all ok. (ignore
- *err_code in this case)
+ On return:
+ return DW_DLV_OK if all ok. (ignore
+ *err_code in this case)
- return DW_DLV_ERROR and set *err_code if an error.
+ return DW_DLV_ERROR and set *err_code if an error.
- If some line data was moved around, set *any_change to 1.
- If error or no movement, set *any_change to 0;
+ If some line data was moved around, set *any_change to 1.
+ If error or no movement, set *any_change to 0;
- Set *new_line_ptr to one-byte-past the end of the
- current original compilation unit (not necessary
- if returning DW_DLV_ERROR, but not harmful).
+ Set *new_line_ptr to one-byte-past the end of the
+ current original compilation unit (not necessary
+ if returning DW_DLV_ERROR, but not harmful).
- This copies the entire array to a malloc area, then
- mallocs pieces of it (another malloc) for sorting a CU entries
- and copying back. Then at end the whole new thing copied in.
- The result is that on error, the input is not touched.
+ This copies the entire array to a malloc area, then
+ mallocs pieces of it (another malloc) for sorting a CU entries
+ and copying back. Then at end the whole new thing copied in.
+ The result is that on error, the input is not touched.
- An alternative would be to just update a piece at a time
- and on error stop updating but leave what was done, done.
- This alternative would save some temporary malloc space.
-
-
+ An alternative would be to just update a piece at a time
+ and on error stop updating but leave what was done, done.
+ This alternative would save some temporary malloc space.
+
+
*/
static int
_dwarf_update_line_sec(Dwarf_Small * line_ptr,
- unsigned long remaining_bytes,
- int *any_change,
- int length_size,
- int *err_code, Dwarf_Small ** new_line_ptr)
+ unsigned long remaining_bytes,
+ int *any_change,
+ int length_size,
+ int *err_code, Dwarf_Small ** new_line_ptr)
{
/*
- This points to the last byte of the .debug_line portion for the
+ This points to the last byte of the .debug_line portion for the
current cu. */
- Dwarf_Small *line_ptr_end;
+ Dwarf_Small *line_ptr_end = 0;
/*
This points to the end of the statement program prologue for the
- current cu, and serves to check that the prologue was correctly
+ current cu, and serves to check that the prologue was correctly
decoded. */
- Dwarf_Small *check_line_ptr;
- Dwarf_Small *orig_line_ptr;
+ Dwarf_Small *orig_line_ptr = 0;
/* These are the fields of the statement program header. */
- Dwarf_Unsigned total_length;
- Dwarf_Half version;
- Dwarf_Unsigned prologue_length;
- Dwarf_Small minimum_instruction_length;
- Dwarf_Small default_is_stmt;
- Dwarf_Sbyte line_base;
- Dwarf_Small line_range;
- Dwarf_Small opcode_base;
struct Dwarf_Debug_s dbg_data;
Dwarf_Debug dbg = &dbg_data;
- Dwarf_Small *opcode_length = 0;
-
/* These are the state machine state variables. */
- Dwarf_Addr address;
- Dwarf_Word line;
- Dwarf_Bool is_stmt;
+ Dwarf_Addr address = 0;
+ Dwarf_Word line = 1;
+ Dwarf_Bool is_stmt = false;
+
+ /* Dwarf_Bool prologue_end; Dwarf_Bool epilogue_begin; */
+ Dwarf_Small isa = 0;
+
struct a_line_area *area_base = 0;
struct a_line_area *area_current = 0;
@@ -301,373 +336,334 @@ _dwarf_update_line_sec(Dwarf_Small * line_ptr,
Dwarf_Addr last_address = 0;
int need_to_sort = 0;
- Dwarf_Sword i;
- Dwarf_Sword file_entry_count;
- Dwarf_Sword include_directories_count;
-
/*
This is the current opcode read from the statement program. */
- Dwarf_Small opcode;
+ Dwarf_Small opcode = 0;
/*
These variables are used to decode leb128 numbers. Leb128_num
holds the decoded number, and leb128_length is its length in
bytes. */
- Dwarf_Word leb128_num;
- Dwarf_Word leb128_length;
- Dwarf_Sword advance_line;
+ Dwarf_Word leb128_num = 0;
+ Dwarf_Sword advance_line = 0;
/*
This is the operand of the latest fixed_advance_pc extended
opcode. */
- Dwarf_Half fixed_advance_pc;
+ Dwarf_Half fixed_advance_pc = 0;
/* This is the length of an extended opcode instr. */
- Dwarf_Word instr_length;
- Dwarf_Small ext_opcode;
+ Dwarf_Word instr_length = 0;
+ Dwarf_Small ext_opcode = 0;
+ struct Line_Table_Prefix_s prefix;
+ memset(dbg, 0, sizeof(struct Dwarf_Debug_s));
dbg->de_copy_word = memcpy;
/*
- Following is a straightforward decoding of the statement
- program prologue information. */
+ Following is a straightforward decoding of the statement program
+ prologue information. */
*any_change = 0;
- orig_line_ptr = line_ptr;
- if(remaining_bytes < MINIMUM_POSSIBLE_PROLOG_LEN) {
- /* We are at the end. Remaining should be zero bytes,
- padding.
- This is really just 'end of CU buffer'
- not an error.
- The is no 'entry' left so report there is none.
- We don't want to READ_UNALIGNED the total_length below
- and then belatedly discover that we read off the end
- already.
- */
- return(DW_DLV_NO_ENTRY);
- }
-
- READ_UNALIGNED(dbg, total_length, Dwarf_Unsigned,
- line_ptr, length_size);
- line_ptr += length_size;
- line_ptr_end = line_ptr + total_length;
- if (line_ptr_end > line_ptr + remaining_bytes) {
- *err_code = DW_DLE_DEBUG_LINE_LENGTH_BAD;
- return (DW_DLV_ERROR);
- }
- *new_line_ptr = line_ptr_end;
- READ_UNALIGNED(dbg, version, Dwarf_Half,
- line_ptr, sizeof(Dwarf_Half));
- line_ptr += sizeof(Dwarf_Half);
- if (version != CURRENT_VERSION_STAMP) {
- *err_code = DW_DLE_VERSION_STAMP_ERROR;
- return (DW_DLV_ERROR);
- }
-
- READ_UNALIGNED(dbg, prologue_length, Dwarf_Unsigned,
- line_ptr, length_size);
- line_ptr += length_size;
- check_line_ptr = line_ptr;
-
- minimum_instruction_length = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- default_is_stmt = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- line_base = *(Dwarf_Sbyte *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Sbyte);
-
- line_range = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
- opcode_base = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
-
- opcode_length = (Dwarf_Small *)
- alloca(sizeof(Dwarf_Small) * opcode_base);
- for (i = 1; i < opcode_base; i++) {
- opcode_length[i] = *(Dwarf_Small *) line_ptr;
- line_ptr = line_ptr + sizeof(Dwarf_Small);
- }
-
- include_directories_count = 0;
- while ((*(char *) line_ptr) != '\0') {
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
- include_directories_count++;
+ orig_line_ptr = line_ptr;
+ if (remaining_bytes < MINIMUM_POSSIBLE_PROLOG_LEN) {
+ /* We are at the end. Remaining should be zero bytes, padding.
+ This is really just 'end of CU buffer' not an error. The is
+ no 'entry' left so report there is none. We don't want to
+ READ_UNALIGNED the total_length below and then belatedly
+ discover that we read off the end already. */
+ return (DW_DLV_NO_ENTRY);
}
- line_ptr++;
-
- file_entry_count = 0;
- while (*(char *) line_ptr != '\0') {
-
- /* filename = (Dwarf_Small *)line_ptr; */
- line_ptr = line_ptr + strlen((char *) line_ptr) + 1;
-
- /* dir_index = */
- _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- /* time_last_mod = */
- _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- /* file_length = */
- _dwarf_decode_u_leb128(line_ptr, &leb128_length);
- line_ptr = line_ptr + leb128_length;
-
- file_entry_count++;
+ dwarf_init_line_table_prefix(&prefix);
+ {
+ Dwarf_Small *line_ptr_out = 0;
+ Dwarf_Error error;
+ int dres = dwarf_read_line_table_prefix(dbg,
+ line_ptr,
+ remaining_bytes,
+ &line_ptr_out,
+ &prefix,
+ NULL, NULL,&error,
+ NULL);
+
+ if (dres == DW_DLV_ERROR) {
+ dwarf_free_line_table_prefix(&prefix);
+ *err_code = dwarf_errno(error);
+ dwarf_dealloc(dbg, error, DW_DLA_ERROR);
+ free_area_data(area_base);
+ return dres;
+ }
+ if (dres == DW_DLV_NO_ENTRY) {
+ dwarf_free_line_table_prefix(&prefix);
+ return dres;
+ }
+ line_ptr_end = prefix.pf_line_ptr_end;
+
+ line_ptr = line_ptr_out;
}
- line_ptr++;
- if (line_ptr != check_line_ptr + prologue_length) {
- *err_code = DW_DLE_LINE_PROLOG_LENGTH_BAD;
- return (DW_DLV_ERROR);
- }
/* Initialize the state machine. */
- address = 0;
/* file = 1; */
- line = 1;
/* column = 0; */
- is_stmt = default_is_stmt;
+ is_stmt = prefix.pf_default_is_stmt;
/* basic_block = false; */
/* end_sequence = false; */
+ /* prologue_end = false; */
+ /* epilogue_begin = false; */
+ isa = 0;
+
/* Start of statement program. */
while (line_ptr < line_ptr_end) {
- int type;
+ int type;
+
+ Dwarf_Small *stmt_prog_entry_start = line_ptr;
+
+ opcode = *(Dwarf_Small *) line_ptr;
+ line_ptr++;
+ /* 'type' is the output */
+ WHAT_IS_OPCODE(type, opcode, prefix.pf_opcode_base,
+ prefix.pf_opcode_length_table, line_ptr,
+ prefix.pf_std_op_count);
+
+ if (type == LOP_DISCARD) {
+ int oc;
+ int opcnt = prefix.pf_opcode_length_table[opcode];
+
+ for (oc = 0; oc < opcnt; oc++) {
+ /*
+ ** Read and discard operands we don't
+ ** understand.
+ ** arbitrary choice of unsigned read.
+ ** signed read would work as well.
+ */
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ }
- Dwarf_Small *stmt_prog_entry_start = line_ptr;
+ } else if (type == LOP_SPECIAL) {
+ opcode = opcode - prefix.pf_opcode_base;
+ address = address + prefix.pf_minimum_instruction_length *
+ (opcode / prefix.pf_line_range);
+ line =
+ line + prefix.pf_line_base +
+ opcode % prefix.pf_line_range;
- opcode = *(Dwarf_Small *) line_ptr;
- line_ptr++;
- /* 'type' is the output */
- WHAT_IS_OPCODE(type, opcode, opcode_base,
- opcode_length, line_ptr);
+ /* basic_block = false; */
+ } else if (type == LOP_STANDARD) {
- if (type == LOP_DISCARD) {
- /* do nothing, necessary ops done */
- } else if (type == LOP_SPECIAL) {
- opcode = opcode - opcode_base;
- address = address + minimum_instruction_length *
- (opcode / line_range);
- line = line + line_base + opcode % line_range;
- /* basic_block = false; */
+ switch (opcode) {
- } else if (type == LOP_STANDARD) {
+ case DW_LNS_copy:{
+ /* basic_block = false; */
+ break;
+ }
- switch (opcode) {
+ case DW_LNS_advance_pc:{
+ Dwarf_Unsigned utmp2;
- case DW_LNS_copy:{
- if (opcode_length[DW_LNS_copy] != 0) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ leb128_num = (Dwarf_Word) utmp2;
+ address =
+ address +
+ prefix.pf_minimum_instruction_length *
+ leb128_num;
+ break;
+ }
+ case DW_LNS_advance_line:{
+ Dwarf_Signed stmp;
- /* basic_block = false; */
- break;
- }
- case DW_LNS_advance_pc:{
- Dwarf_Unsigned utmp2;
+ DECODE_LEB128_SWORD(line_ptr, stmp);
+ advance_line = (Dwarf_Sword) stmp;
+ line = line + advance_line;
+ break;
+ }
- if (opcode_length[DW_LNS_advance_pc] != 1) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
+ case DW_LNS_set_file:{
+ Dwarf_Unsigned utmp2;
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- leb128_num = (Dwarf_Word) utmp2;
- address =
- address +
- minimum_instruction_length * leb128_num;
- break;
- }
- case DW_LNS_advance_line:{
- Dwarf_Signed stmp;
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ /* file = (Dwarf_Word)utmp2; */
+ break;
+ }
- if (opcode_length[DW_LNS_advance_line] != 1) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
+ case DW_LNS_set_column:{
+ Dwarf_Unsigned utmp2;
- DECODE_LEB128_SWORD(line_ptr, stmp)
- advance_line = (Dwarf_Sword) stmp;
- line = line + advance_line;
- break;
- }
- case DW_LNS_set_file:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_set_file] != 1) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- /* file = (Dwarf_Word)utmp2; */
- break;
- }
-
- case DW_LNS_set_column:{
- Dwarf_Unsigned utmp2;
-
- if (opcode_length[DW_LNS_set_column] != 1) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
-
- DECODE_LEB128_UWORD(line_ptr, utmp2)
- /* column = (Dwarf_Word)utmp2; */
- break;
- }
-
- case DW_LNS_negate_stmt:{
- if (opcode_length[DW_LNS_negate_stmt] != 0) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
-
- is_stmt = !is_stmt;
- break;
- }
-
- case DW_LNS_set_basic_block:{
- if (opcode_length[DW_LNS_set_basic_block] != 0) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
-
- /* basic_block = true; */
- break;
- }
-
- case DW_LNS_const_add_pc:{
- opcode = MAX_LINE_OP_CODE - opcode_base;
- address = address + minimum_instruction_length *
- (opcode / line_range);
-
- break;
- }
-
- case DW_LNS_fixed_advance_pc:{
- if (opcode_length[DW_LNS_fixed_advance_pc] != 1) {
- *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
- return (DW_DLV_ERROR);
- }
-
- READ_UNALIGNED(dbg, fixed_advance_pc, Dwarf_Half,
- line_ptr, sizeof(Dwarf_Half));
- line_ptr += sizeof(Dwarf_Half);
- address = address + fixed_advance_pc;
- break;
- }
- }
- } else if (type == LOP_EXTENDED) {
-
-
- Dwarf_Unsigned utmp3;
-
- DECODE_LEB128_UWORD(line_ptr, utmp3)
- instr_length = (Dwarf_Word) utmp3;
- ext_opcode = *(Dwarf_Small *) line_ptr;
- line_ptr++;
- switch (ext_opcode) {
-
- case DW_LNE_end_sequence:{
- /* end_sequence = true; */
-
- address = 0;
- /* file = 1; */
- line = 1;
- /* column = 0; */
- is_stmt = default_is_stmt;
- /* basic_block = false; */
- /* end_sequence = false; */
-
- break;
- }
-
- case DW_LNE_set_address:{
- if (instr_length - 1 == length_size) {
- struct a_line_area *area;
-
- READ_UNALIGNED(dbg, address, Dwarf_Addr,
- line_ptr, length_size);
- /* Here we need to remember the offset into the
- buffer and check to see if address went
- down. */
- if (address < last_address) {
- need_to_sort = 1;
- }
- last_address = address;
-
- area = alloca(sizeof(struct a_line_area));
- area->ala_address = address;
- area->ala_offset = stmt_prog_entry_start -
- orig_line_ptr;
- area->ala_entry_num = area_count;
- area->ala_next = 0;
- area->ala_length = 0;
- if (area_current) {
- area_current->ala_next = area;
- area_current->ala_length =
- area->ala_offset -
- area_current->ala_offset;
- }
- ++area_count;
- area_current = area;
- if (area_base == 0) {
- area_base = area;
- }
-
- line_ptr += length_size;
- } else {
- *err_code = DW_DLE_LINE_SET_ADDR_ERROR;
- return (DW_DLV_ERROR);
- }
-
-
- break;
- }
-
- case DW_LNE_define_file:{
-
- break;
- }
-
- default:{
- *err_code = DW_DLE_LINE_EXT_OPCODE_BAD;
- return (DW_DLV_ERROR);
- }
- }
-
- }
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ /* column = (Dwarf_Word)utmp2; */
+ break;
+ }
+
+ case DW_LNS_negate_stmt:{
+
+ is_stmt = !is_stmt;
+ break;
+ }
+
+ case DW_LNS_set_basic_block:{
+
+ /* basic_block = true; */
+ break;
+ }
+
+ case DW_LNS_const_add_pc:{
+ opcode = MAX_LINE_OP_CODE - prefix.pf_opcode_base;
+ address =
+ address +
+ prefix.pf_minimum_instruction_length * (opcode /
+ prefix.
+ pf_line_range);
+
+ break;
+ }
+
+ case DW_LNS_fixed_advance_pc:{
+
+ READ_UNALIGNED(dbg, fixed_advance_pc, Dwarf_Half,
+ line_ptr, sizeof(Dwarf_Half));
+ line_ptr += sizeof(Dwarf_Half);
+ address = address + fixed_advance_pc;
+ break;
+ }
+ /* New in DWARF3 */
+ case DW_LNS_set_prologue_end:{
+
+ /* prologue_end = true; */
+ break;
+
+
+ }
+ /* New in DWARF3 */
+ case DW_LNS_set_epilogue_begin:{
+ /* epilogue_begin = true; */
+ break;
+ }
+
+ /* New in DWARF3 */
+ case DW_LNS_set_isa:{
+ Dwarf_Unsigned utmp2;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp2);
+ isa = utmp2;
+ if (isa != utmp2) {
+ /* The value of the isa did not fit in our
+ local so we record it wrong. declare an
+ error. */
+ dwarf_free_line_table_prefix(&prefix);
+ *err_code = DW_DLE_LINE_NUM_OPERANDS_BAD;
+ free_area_data(area_base);
+ return (DW_DLV_ERROR);
+ }
+ break;
+ }
+
+ }
+ } else if (type == LOP_EXTENDED) {
+
+ Dwarf_Unsigned utmp3;
+
+ DECODE_LEB128_UWORD(line_ptr, utmp3);
+ instr_length = (Dwarf_Word) utmp3;
+ ext_opcode = *(Dwarf_Small *) line_ptr;
+ line_ptr++;
+ switch (ext_opcode) {
+
+ case DW_LNE_end_sequence:{
+ /* end_sequence = true; */
+
+ address = 0;
+ /* file = 1; */
+ line = 1;
+ /* column = 0; */
+ is_stmt = prefix.pf_default_is_stmt;
+ /* basic_block = false; */
+ /* end_sequence = false; */
+ /* prologue_end = false; */
+ /* epilogue_begin = false; */
+ break;
+ }
+
+ case DW_LNE_set_address:{
+ {
+ struct a_line_area *area;
+
+ READ_UNALIGNED(dbg, address, Dwarf_Addr,
+ line_ptr, length_size);
+ /* Here we need to remember the offset into the
+ buffer and check to see if address went
+ down. */
+ if (address < last_address) {
+ need_to_sort = 1;
+ }
+ last_address = address;
+
+ area = malloc(sizeof(struct a_line_area));
+ area->ala_address = address;
+ area->ala_offset = stmt_prog_entry_start -
+ orig_line_ptr;
+ area->ala_entry_num = area_count;
+ area->ala_next = 0;
+ area->ala_length = 0;
+ if (area_current) {
+ area_current->ala_next = area;
+ area_current->ala_length =
+ area->ala_offset -
+ area_current->ala_offset;
+ }
+ ++area_count;
+ area_current = area;
+ if (area_base == 0) {
+ area_base = area;
+ }
+
+ line_ptr += length_size;
+ }
+ break;
+ }
+
+ case DW_LNE_define_file:{
+ break;
+ }
+
+ default:{
+ Dwarf_Unsigned remaining_bytes = instr_length -1;
+ line_ptr += remaining_bytes;
+ break;
+ }
+ }
+
+ }
}
+ *new_line_ptr = line_ptr;
if (!need_to_sort) {
- return (DW_DLV_OK);
+ dwarf_free_line_table_prefix(&prefix);
+ free_area_data(area_base);
+ return (DW_DLV_OK);
}
- /* so now we have something to sort. First, finish off the last
+ /* So now we have something to sort. First, finish off the last
area record: */
- area_current->ala_length = (line_ptr - orig_line_ptr) /* final
- offset */
- -area_current->ala_offset;
+ area_current->ala_length = (line_ptr - orig_line_ptr)
+ -area_current->ala_offset;
/* Build and sort a simple array of sections. Forcing a stable sort
by comparing on sequence number. We will use the sorted list to
@@ -677,51 +673,61 @@ _dwarf_update_line_sec(Dwarf_Small * line_ptr,
function rearrangement and that it is meaningful to restart the
line info there. */
{
- struct a_line_area *ala_array;
- struct a_line_area *local;
- long start_len;
- Dwarf_Small *new_area;
- long i;
-
- ala_array = malloc(area_count * sizeof(struct a_line_area));
- if (!ala_array) {
- *err_code = DW_DLE_ALLOC_FAIL;
- return DW_DLV_ERROR;
- }
-
- for (local = area_base, i = 0; local;
- local = local->ala_next, ++i) {
-
- ala_array[i] = *local;
- }
-
- qsort(ala_array, area_count, sizeof(struct a_line_area), cmpr);
-
- /* Now we must rearrange the pieces of the line table. */
-
- start_len = (check_line_ptr + prologue_length) - orig_line_ptr;
- new_area = malloc(remaining_bytes);
- if (!new_area) {
- free(ala_array);
- *err_code = DW_DLE_ALLOC_FAIL;
- return DW_DLV_ERROR;
- }
- memcpy(new_area, orig_line_ptr, start_len);
- line_ptr = new_area + start_len;
- for (i = 0; i < area_count; ++i) {
- memcpy(line_ptr, orig_line_ptr +
- ala_array[i].ala_offset, ala_array[i].ala_length);
- line_ptr += ala_array[i].ala_length;
- }
-
- memcpy(orig_line_ptr, new_area, remaining_bytes);
-
- free(new_area);
- free(ala_array);
- ala_array = 0;
- new_area = 0;
+ struct a_line_area *ala_array;
+ struct a_line_area *local;
+ long start_len;
+ Dwarf_Small *new_area;
+ long i;
+
+ ala_array = malloc(area_count * sizeof(struct a_line_area));
+ if (!ala_array) {
+ dwarf_free_line_table_prefix(&prefix);
+ *err_code = DW_DLE_ALLOC_FAIL;
+ free_area_data(area_base);
+ return DW_DLV_ERROR;
+ }
+
+ for (local = area_base, i = 0; local;
+ local = local->ala_next, ++i) {
+
+ ala_array[i] = *local;
+ }
+ free_area_data(area_base);
+ /* Zero the stale pointers so we don't use them accidentally. */
+ area_base = 0;
+ area_current = 0;
+
+ qsort(ala_array, area_count, sizeof(struct a_line_area), cmpr);
+
+ /* Now we must rearrange the pieces of the line table. */
+
+ start_len =
+ (prefix.pf_line_prologue_start +
+ prefix.pf_prologue_length) - orig_line_ptr;
+ new_area = malloc(remaining_bytes);
+ if (!new_area) {
+ free(ala_array);
+ *err_code = DW_DLE_ALLOC_FAIL;
+ dwarf_free_line_table_prefix(&prefix);
+ return DW_DLV_ERROR;
+ }
+ memcpy(new_area, orig_line_ptr, start_len);
+ line_ptr = new_area + start_len;
+ for (i = 0; i < area_count; ++i) {
+ memcpy(line_ptr, orig_line_ptr +
+ ala_array[i].ala_offset, ala_array[i].ala_length);
+ line_ptr += ala_array[i].ala_length;
+ }
+
+ memcpy(orig_line_ptr, new_area, remaining_bytes);
+
+ free(new_area);
+ free(ala_array);
+ ala_array = 0;
+ new_area = 0;
}
*any_change = 1;
+ dwarf_free_line_table_prefix(&prefix);
return (DW_DLV_OK);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_string.c b/usr/src/tools/ctf/dwarf/common/dwarf_string.c
index 886174ee8a..fafa5a097c 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_string.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_string.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -40,42 +41,38 @@
int
dwarf_get_str(Dwarf_Debug dbg,
- Dwarf_Off offset,
- char **string,
- Dwarf_Signed * returned_str_len, Dwarf_Error * error)
+ Dwarf_Off offset,
+ char **string,
+ Dwarf_Signed * returned_str_len, Dwarf_Error * error)
{
- int res;
+ int res = DW_DLV_ERROR;
if (dbg == NULL) {
- _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
- if (offset == dbg->de_debug_str_size) {
- /* Normal (if we've iterated thru the set of strings
- using dwarf_get_str and are at the end). */
- return DW_DLV_NO_ENTRY;
+ if (offset == dbg->de_debug_str.dss_size) {
+ /* Normal (if we've iterated thru the set of strings using
+ dwarf_get_str and are at the end). */
+ return DW_DLV_NO_ENTRY;
}
- if (offset > dbg->de_debug_str_size) {
- _dwarf_error(dbg, error, DW_DLE_DEBUG_STR_OFFSET_BAD);
- return (DW_DLV_ERROR);
+ if (offset > dbg->de_debug_str.dss_size) {
+ _dwarf_error(dbg, error, DW_DLE_DEBUG_STR_OFFSET_BAD);
+ return (DW_DLV_ERROR);
}
if (string == NULL) {
- _dwarf_error(dbg, error, DW_DLE_STRING_PTR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(dbg, error, DW_DLE_STRING_PTR_NULL);
+ return (DW_DLV_ERROR);
}
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_str_index,
- &dbg->de_debug_str,
- error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_str,error);
if (res != DW_DLV_OK) {
return res;
}
- *string = (char *) dbg->de_debug_str + offset;
+ *string = (char *) dbg->de_debug_str.dss_data + offset;
*returned_str_len = (strlen(*string));
return DW_DLV_OK;
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_stubs.c b/usr/src/tools/ctf/dwarf/common/dwarf_stubs.c
index dfa2ccaba5..f2c1f7fd45 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_stubs.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_stubs.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -43,8 +43,8 @@
/*ARGSUSED*/ int
dwarf_nextglob(Dwarf_Debug dbg,
- Dwarf_Global glob,
- Dwarf_Global * returned_nextglob, Dwarf_Error * error)
+ Dwarf_Global glob,
+ Dwarf_Global * returned_nextglob, Dwarf_Error * error)
{
return (DW_DLV_NO_ENTRY);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_types.c b/usr/src/tools/ctf/dwarf/common/dwarf_types.c
index 4e1ab30064..d547805289 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_types.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_types.c
@@ -1,6 +1,6 @@
/*
-
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -43,33 +43,41 @@
int
dwarf_get_types(Dwarf_Debug dbg,
- Dwarf_Type ** types,
- Dwarf_Signed * ret_type_count, Dwarf_Error * error)
+ Dwarf_Type ** types,
+ Dwarf_Signed * ret_type_count, Dwarf_Error * error)
{
- int res;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_typenames_index,
- &dbg->de_debug_typenames,
- error);
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_typenames,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- return _dwarf_internal_get_pubnames_like_data(dbg, dbg->de_debug_typenames, dbg->de_debug_typenames_size, (Dwarf_Global **) types, /* type
- punning,
- Dwarf_Type
- is never
- a
- completed
- type */
- ret_type_count,
- error,
- DW_DLA_TYPENAME_CONTEXT,
- DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD,
- DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR);
+ return _dwarf_internal_get_pubnames_like_data(dbg,
+ dbg->de_debug_typenames.dss_data,
+ dbg->de_debug_typenames.dss_size,
+ (Dwarf_Global **) types, /* type punning, Dwarf_Type is
+ never a completed type */
+ ret_type_count,
+ error,
+ DW_DLA_TYPENAME_CONTEXT,
+ DW_DLA_TYPENAME,
+ DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD,
+ DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR);
+}
+
+/* Deallocating fully requires deallocating the list
+ and all entries. But some internal data is
+ not exposed, so we need a function with internal knowledge.
+*/
+void
+dwarf_types_dealloc(Dwarf_Debug dbg, Dwarf_Type * dwgl,
+ Dwarf_Signed count)
+{
+ _dwarf_internal_globals_dealloc(dbg, (Dwarf_Global *) dwgl,
+ count,
+ DW_DLA_TYPENAME_CONTEXT,
+ DW_DLA_TYPENAME, DW_DLA_LIST);
+ return;
}
@@ -79,8 +87,8 @@ dwarf_typename(Dwarf_Type type_in, char **ret_name, Dwarf_Error * error)
Dwarf_Global type = (Dwarf_Global) type_in;
if (type == NULL) {
- _dwarf_error(NULL, error, DW_DLE_TYPE_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_TYPE_NULL);
+ return (DW_DLV_ERROR);
}
*ret_name = (char *) (type->gl_name);
@@ -90,7 +98,7 @@ dwarf_typename(Dwarf_Type type_in, char **ret_name, Dwarf_Error * error)
int
dwarf_type_die_offset(Dwarf_Type type_in,
- Dwarf_Off * ret_offset, Dwarf_Error * error)
+ Dwarf_Off * ret_offset, Dwarf_Error * error)
{
Dwarf_Global type = (Dwarf_Global) type_in;
@@ -100,24 +108,22 @@ dwarf_type_die_offset(Dwarf_Type type_in,
int
dwarf_type_cu_offset(Dwarf_Type type_in,
- Dwarf_Off * ret_offset, Dwarf_Error * error)
+ Dwarf_Off * ret_offset, Dwarf_Error * error)
{
Dwarf_Global type = (Dwarf_Global) type_in;
return dwarf_global_cu_offset(type, ret_offset, error);
-
}
int
dwarf_type_name_offsets(Dwarf_Type type_in,
- char **returned_name,
- Dwarf_Off * die_offset,
- Dwarf_Off * cu_die_offset, Dwarf_Error * error)
+ char **returned_name,
+ Dwarf_Off * die_offset,
+ Dwarf_Off * cu_die_offset, Dwarf_Error * error)
{
Dwarf_Global type = (Dwarf_Global) type_in;
-
return dwarf_global_name_offsets(type,
- returned_name,
- die_offset, cu_die_offset, error);
+ returned_name,
+ die_offset, cu_die_offset, error);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_types.h b/usr/src/tools/ctf/dwarf/common/dwarf_types.h
index 5fbda38166..ebd31c6c79 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_types.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_types.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_util.c b/usr/src/tools/ctf/dwarf/common/dwarf_util.c
index df217e3628..01e0dd755d 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_util.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_util.c
@@ -1,6 +1,6 @@
/*
-
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +32,13 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
@@ -51,8 +58,9 @@
*/
Dwarf_Unsigned
_dwarf_get_size_of_val(Dwarf_Debug dbg,
- Dwarf_Unsigned form,
- Dwarf_Small * val_ptr, int v_length_size)
+ Dwarf_Unsigned form,
+ Dwarf_Half address_size,
+ Dwarf_Small * val_ptr, int v_length_size)
{
Dwarf_Unsigned length = 0;
Dwarf_Word leb128_length = 0;
@@ -61,98 +69,153 @@ _dwarf_get_size_of_val(Dwarf_Debug dbg,
switch (form) {
- default: /* Handles form = 0. */
- return (form);
+ default: /* Handles form = 0. */
+ return (form);
case DW_FORM_addr:
- return (dbg->de_pointer_size);
-
+ if(address_size) {
+ return address_size;
+ }
+ /* This should never happen, address_size should be set. */
+ return (dbg->de_pointer_size);
+
+ /* DWARF2 was wrong on the size of the attribute for
+ DW_FORM_ref_addr. We assume compilers are using the
+ corrected DWARF3 text (for 32bit pointer target objects pointer and
+ offsets are the same size anyway). */
case DW_FORM_ref_addr:
- return (v_length_size);
+ return (v_length_size);
case DW_FORM_block1:
- return (*(Dwarf_Small *) val_ptr + 1);
+ return (*(Dwarf_Small *) val_ptr + 1);
case DW_FORM_block2:
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- val_ptr, sizeof(Dwarf_Half));
- return (ret_value + sizeof(Dwarf_Half));
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ val_ptr, sizeof(Dwarf_Half));
+ return (ret_value + sizeof(Dwarf_Half));
case DW_FORM_block4:
- READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
- val_ptr, sizeof(Dwarf_ufixed));
- return (ret_value + sizeof(Dwarf_ufixed));
+ READ_UNALIGNED(dbg, ret_value, Dwarf_Unsigned,
+ val_ptr, sizeof(Dwarf_ufixed));
+ return (ret_value + sizeof(Dwarf_ufixed));
case DW_FORM_data1:
- return (1);
+ return (1);
case DW_FORM_data2:
- return (2);
+ return (2);
case DW_FORM_data4:
- return (4);
+ return (4);
case DW_FORM_data8:
- return (8);
+ return (8);
case DW_FORM_string:
- return (strlen((char *) val_ptr) + 1);
+ return (strlen((char *) val_ptr) + 1);
case DW_FORM_block:
- length = _dwarf_decode_u_leb128(val_ptr, &leb128_length);
- return (length + leb128_length);
+ case DW_FORM_exprloc:
+ length = _dwarf_decode_u_leb128(val_ptr, &leb128_length);
+ return (length + leb128_length);
+ case DW_FORM_flag_present:
+ return (0);
case DW_FORM_flag:
- return (1);
+ return (1);
+
+ case DW_FORM_sec_offset:
+ /* If 32bit dwarf, is 4. Else is 64bit dwarf and is 8. */
+ return (v_length_size);
case DW_FORM_ref_udata:
- _dwarf_decode_u_leb128(val_ptr, &leb128_length);
- return (leb128_length);
+ length = _dwarf_decode_u_leb128(val_ptr, &leb128_length);
+ return (leb128_length);
case DW_FORM_indirect:
- {
- Dwarf_Word indir_len = 0;
-
- form_indirect = _dwarf_decode_u_leb128(val_ptr, &indir_len);
- if (form_indirect == DW_FORM_indirect) {
- return (0); /* We are in big trouble: The true form
- of DW_FORM_indirect is
- DW_FORM_indirect? Nonsense. Should
- never happen. */
- }
- return (indir_len + _dwarf_get_size_of_val(dbg,
- form_indirect,
- val_ptr +
- indir_len,
- v_length_size));
- }
+ {
+ Dwarf_Word indir_len = 0;
+
+ form_indirect = _dwarf_decode_u_leb128(val_ptr, &indir_len);
+ if (form_indirect == DW_FORM_indirect) {
+ return (0); /* We are in big trouble: The true form
+ of DW_FORM_indirect is
+ DW_FORM_indirect? Nonsense. Should
+ never happen. */
+ }
+ return (indir_len + _dwarf_get_size_of_val(dbg,
+ form_indirect,
+ address_size,
+ val_ptr + indir_len,
+ v_length_size));
+ }
case DW_FORM_ref1:
- return (1);
+ return (1);
case DW_FORM_ref2:
- return (2);
+ return (2);
case DW_FORM_ref4:
- return (4);
+ return (4);
case DW_FORM_ref8:
- return (8);
+ return (8);
case DW_FORM_sdata:
- _dwarf_decode_s_leb128(val_ptr, &leb128_length);
- return (leb128_length);
+ _dwarf_decode_s_leb128(val_ptr, &leb128_length);
+ return (leb128_length);
case DW_FORM_strp:
- return (v_length_size);
+ return (v_length_size);
case DW_FORM_udata:
- _dwarf_decode_u_leb128(val_ptr, &leb128_length);
- return (leb128_length);
+ _dwarf_decode_u_leb128(val_ptr, &leb128_length);
+ return (leb128_length);
}
}
+/* We allow an arbitrary number of HT_MULTIPLE entries
+ before resizing. It seems up to 20 or 30
+ would work nearly as well.
+ We could have a different resize multiple than 'resize now'
+ test multiple, but for now we don't do that.
+*/
+#define HT_MULTIPLE 8
+
+/* Copy the old entries, updating each to be in
+ a new list. Don't delete anything. Leave the
+ htin with stale data. */
+static void
+copy_abbrev_table_to_new_table(Dwarf_Hash_Table htin,
+ Dwarf_Hash_Table htout)
+{
+ Dwarf_Hash_Table_Entry entry_in = htin->tb_entries;
+ unsigned entry_in_count = htin->tb_table_entry_count;
+ Dwarf_Hash_Table_Entry entry_out = htout->tb_entries;
+ unsigned entry_out_count = htout->tb_table_entry_count;
+ unsigned k = 0;
+ for ( ; k < entry_in_count; ++k,++entry_in) {
+ Dwarf_Abbrev_List listent = entry_in->at_head;
+ Dwarf_Abbrev_List nextlistent = 0;
+
+ for ( ; listent ; listent = nextlistent) {
+ unsigned newtmp = listent->ab_code;
+ unsigned newhash = newtmp%entry_out_count;
+ Dwarf_Hash_Table_Entry e;
+ nextlistent = listent->ab_next;
+ e = entry_out+newhash;
+ /* Move_entry_to_new_hash. This reverses the
+ order of the entries, effectively, but
+ that does not seem significant. */
+ listent->ab_next = e->at_head;
+ e->at_head = listent;
+
+ htout->tb_total_abbrev_count++;
+ }
+ }
+}
/*
This function returns a pointer to a Dwarf_Abbrev_List_s
@@ -175,77 +238,131 @@ _dwarf_get_size_of_val(Dwarf_Debug dbg,
hash table contains both a head pointer and a tail pointer
for each entry.
+ While the lists can move and entries can be moved between
+ lists on reallocation, any given Dwarf_Abbrev_list entry
+ never moves once allocated, so the pointer is safe to return.
+
Returns NULL on error.
*/
Dwarf_Abbrev_List
-_dwarf_get_abbrev_for_code(Dwarf_CU_Context cu_context, Dwarf_Word code)
+_dwarf_get_abbrev_for_code(Dwarf_CU_Context cu_context, Dwarf_Unsigned code)
{
Dwarf_Debug dbg = cu_context->cc_dbg;
- Dwarf_Hash_Table hash_table = cu_context->cc_abbrev_hash_table;
- Dwarf_Word hash_num;
- Dwarf_Abbrev_List hash_abbrev_list;
- Dwarf_Abbrev_List abbrev_list;
- Dwarf_Byte_Ptr abbrev_ptr;
- Dwarf_Half abbrev_code, abbrev_tag;
- Dwarf_Half attr_name, attr_form;
-
- hash_num = code % ABBREV_HASH_TABLE_SIZE;
- for (hash_abbrev_list = hash_table[hash_num].at_head;
- hash_abbrev_list != NULL && hash_abbrev_list->ab_code != code;
- hash_abbrev_list = hash_abbrev_list->ab_next);
- if (hash_abbrev_list != NULL)
- return (hash_abbrev_list);
+ Dwarf_Hash_Table hash_table_base = cu_context->cc_abbrev_hash_table;
+ Dwarf_Hash_Table_Entry entry_base = 0;
+ Dwarf_Hash_Table_Entry entry_cur = 0;
+ Dwarf_Word hash_num = 0;
+ Dwarf_Unsigned abbrev_code = 0;
+ Dwarf_Unsigned abbrev_tag = 0;
+ Dwarf_Unsigned attr_name = 0;
+ Dwarf_Unsigned attr_form = 0;
+
+ Dwarf_Abbrev_List hash_abbrev_entry = 0;
+
+ Dwarf_Abbrev_List inner_list_entry = 0;
+ Dwarf_Hash_Table_Entry inner_hash_entry = 0;
+
+ Dwarf_Byte_Ptr abbrev_ptr = 0;
+ unsigned hashable_val;
+
+ if ( !hash_table_base->tb_entries ) {
+ hash_table_base->tb_table_entry_count = HT_MULTIPLE;
+ hash_table_base->tb_total_abbrev_count= 0;
+ hash_table_base->tb_entries = _dwarf_get_alloc(dbg,
+ DW_DLA_HASH_TABLE_ENTRY,
+ hash_table_base->tb_table_entry_count);
+ if(! hash_table_base->tb_entries) {
+ return NULL;
+ }
+
+ } else if (hash_table_base->tb_total_abbrev_count >
+ ( hash_table_base->tb_table_entry_count * HT_MULTIPLE) ) {
+ struct Dwarf_Hash_Table_s newht;
+ /* Effectively multiplies by >= HT_MULTIPLE */
+ newht.tb_table_entry_count = hash_table_base->tb_total_abbrev_count;
+ newht.tb_total_abbrev_count = 0;
+ newht.tb_entries = _dwarf_get_alloc(dbg,
+ DW_DLA_HASH_TABLE_ENTRY,
+ newht.tb_table_entry_count);
+
+ if(! newht.tb_entries) {
+ return NULL;
+ }
+ /* Copy the existing entries to the new table,
+ rehashing each.
+ */
+ copy_abbrev_table_to_new_table(hash_table_base, &newht);
+ /* Dealloc only the entries hash table array, not the lists
+ of things pointed to by a hash table entry array. */
+ dwarf_dealloc(dbg, hash_table_base->tb_entries,DW_DLA_HASH_TABLE_ENTRY);
+ hash_table_base->tb_entries = 0;
+ /* Now overwrite the existing table descriptor with
+ the new, newly valid, contents. */
+ *hash_table_base = newht;
+ } /* Else is ok as is, add entry */
+
+
+ hashable_val = code;
+ hash_num = hashable_val %
+ hash_table_base->tb_table_entry_count;
+ entry_base = hash_table_base->tb_entries;
+ entry_cur = entry_base + hash_num;
+
+ /* Determine if the 'code' is the list of synonyms already. */
+ for (hash_abbrev_entry = entry_cur->at_head;
+ hash_abbrev_entry != NULL && hash_abbrev_entry->ab_code != code;
+ hash_abbrev_entry = hash_abbrev_entry->ab_next);
+ if (hash_abbrev_entry != NULL) {
+ /* This returns a pointer to an abbrev list entry, not
+ the list itself. */
+ return (hash_abbrev_entry);
+ }
abbrev_ptr = cu_context->cc_last_abbrev_ptr != NULL ?
- cu_context->cc_last_abbrev_ptr :
- dbg->de_debug_abbrev + cu_context->cc_abbrev_offset;
+ cu_context->cc_last_abbrev_ptr :
+ dbg->de_debug_abbrev.dss_data + cu_context->cc_abbrev_offset;
/* End of abbrev's for this cu, since abbrev code is 0. */
if (*abbrev_ptr == 0) {
- return (NULL);
+ return (NULL);
}
do {
- Dwarf_Unsigned utmp;
-
- DECODE_LEB128_UWORD(abbrev_ptr, utmp)
- abbrev_code = (Dwarf_Half) utmp;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp)
- abbrev_tag = (Dwarf_Half) utmp;
-
- abbrev_list = (Dwarf_Abbrev_List)
- _dwarf_get_alloc(cu_context->cc_dbg, DW_DLA_ABBREV_LIST, 1);
- if (abbrev_list == NULL)
- return (NULL);
-
- hash_num = abbrev_code % ABBREV_HASH_TABLE_SIZE;
- if (hash_table[hash_num].at_head == NULL) {
- hash_table[hash_num].at_head =
- hash_table[hash_num].at_tail = abbrev_list;
- } else {
- hash_table[hash_num].at_tail->ab_next = abbrev_list;
- hash_table[hash_num].at_tail = abbrev_list;
- }
-
- abbrev_list->ab_code = abbrev_code;
- abbrev_list->ab_tag = abbrev_tag;
-
- abbrev_list->ab_has_child = *(abbrev_ptr++);
- abbrev_list->ab_abbrev_ptr = abbrev_ptr;
-
- do {
- Dwarf_Unsigned utmp3;
-
- DECODE_LEB128_UWORD(abbrev_ptr, utmp3)
- attr_name = (Dwarf_Half) utmp3;
- DECODE_LEB128_UWORD(abbrev_ptr, utmp3)
- attr_form = (Dwarf_Half) utmp3;
- } while (attr_name != 0 && attr_form != 0);
+ unsigned new_hashable_val;
+ DECODE_LEB128_UWORD(abbrev_ptr, abbrev_code);
+ DECODE_LEB128_UWORD(abbrev_ptr, abbrev_tag);
+
+ inner_list_entry = (Dwarf_Abbrev_List)
+ _dwarf_get_alloc(cu_context->cc_dbg, DW_DLA_ABBREV_LIST, 1);
+ if (inner_list_entry == NULL)
+ return (NULL);
+
+ new_hashable_val = abbrev_code;
+ hash_num = new_hashable_val %
+ hash_table_base->tb_table_entry_count;
+ inner_hash_entry = entry_base + hash_num;
+ /* Move_entry_to_new_hash */
+ inner_list_entry->ab_next = inner_hash_entry->at_head;
+ inner_hash_entry->at_head = inner_list_entry;
+
+ hash_table_base->tb_total_abbrev_count++;
+
+ inner_list_entry->ab_code = abbrev_code;
+ inner_list_entry->ab_tag = abbrev_tag;
+ inner_list_entry->ab_has_child = *(abbrev_ptr++);
+ inner_list_entry->ab_abbrev_ptr = abbrev_ptr;
+
+ /* Cycle thru the abbrev content, ignoring the content except
+ to find the end of the content. */
+ do {
+ DECODE_LEB128_UWORD(abbrev_ptr, attr_name);
+ DECODE_LEB128_UWORD(abbrev_ptr, attr_form);
+ } while (attr_name != 0 && attr_form != 0);
} while (*abbrev_ptr != 0 && abbrev_code != code);
cu_context->cc_last_abbrev_ptr = abbrev_ptr;
- return (abbrev_code == code ? abbrev_list : NULL);
+ return (abbrev_code == code ? inner_list_entry : NULL);
}
@@ -261,13 +378,13 @@ _dwarf_string_valid(void *startptr, void *endptr)
char *end = endptr;
while (start < end) {
- if (*start == 0) {
- return 1; /* OK! */
- }
- ++start;
- ++end;
+ if (*start == 0) {
+ return 1; /* OK! */
+ }
+ ++start;
+ ++end;
}
- return 0; /* FAIL! bad string! */
+ return 0; /* FAIL! bad string! */
}
/*
@@ -283,28 +400,28 @@ _dwarf_memcpy_swap_bytes(void *s1, const void *s2, size_t len)
unsigned char *src = (unsigned char *) s2;
if (len == 4) {
- targ[3] = src[0];
- targ[2] = src[1];
- targ[1] = src[2];
- targ[0] = src[3];
+ targ[3] = src[0];
+ targ[2] = src[1];
+ targ[1] = src[2];
+ targ[0] = src[3];
} else if (len == 8) {
- targ[7] = src[0];
- targ[6] = src[1];
- targ[5] = src[2];
- targ[4] = src[3];
- targ[3] = src[4];
- targ[2] = src[5];
- targ[1] = src[6];
- targ[0] = src[7];
+ targ[7] = src[0];
+ targ[6] = src[1];
+ targ[5] = src[2];
+ targ[4] = src[3];
+ targ[3] = src[4];
+ targ[2] = src[5];
+ targ[1] = src[6];
+ targ[0] = src[7];
} else if (len == 2) {
- targ[1] = src[0];
- targ[0] = src[1];
+ targ[1] = src[0];
+ targ[0] = src[1];
}
/* should NOT get below here: is not the intended use */
else if (len == 1) {
- targ[0] = src[0];
+ targ[0] = src[0];
} else {
- memcpy(s1, s2, len);
+ memcpy(s1, s2, len);
}
return orig_s1;
@@ -326,31 +443,31 @@ _dwarf_length_of_cu_header(Dwarf_Debug dbg, Dwarf_Unsigned offset)
int local_length_size = 0;
int local_extension_size = 0;
Dwarf_Unsigned length = 0;
- Dwarf_Small *cuptr = dbg->de_debug_info + offset;
+ Dwarf_Small *cuptr = dbg->de_debug_info.dss_data + offset;
READ_AREA_LENGTH(dbg, length, Dwarf_Unsigned,
- cuptr, local_length_size, local_extension_size);
+ cuptr, local_length_size, local_extension_size);
- return local_extension_size + /* initial extesion, if present
- */
- local_length_size + /* Size of cu length field. */
- sizeof(Dwarf_Half) + /* Size of version stamp field. */
- local_length_size + /* Size of abbrev offset field. */
- sizeof(Dwarf_Small); /* Size of address size field. */
+ return local_extension_size + /* initial extesion, if present
+ */
+ local_length_size + /* Size of cu length field. */
+ sizeof(Dwarf_Half) + /* Size of version stamp field. */
+ local_length_size + /* Size of abbrev offset field. */
+ sizeof(Dwarf_Small); /* Size of address size field. */
}
/*
- Pretend we know nothing about the CU
- and just roughly compute the result.
+ Pretend we know nothing about the CU
+ and just roughly compute the result.
*/
Dwarf_Unsigned
_dwarf_length_of_cu_header_simple(Dwarf_Debug dbg)
{
- return dbg->de_length_size + /* Size of cu length field. */
- sizeof(Dwarf_Half) + /* Size of version stamp field. */
- dbg->de_length_size + /* Size of abbrev offset field. */
- sizeof(Dwarf_Small); /* Size of address size field. */
+ return dbg->de_length_size + /* Size of cu length field. */
+ sizeof(Dwarf_Half) + /* Size of version stamp field. */
+ dbg->de_length_size + /* Size of abbrev offset field. */
+ sizeof(Dwarf_Small); /* Size of address size field. */
}
/* Now that we delay loading .debug_info, we need to do the
@@ -362,22 +479,69 @@ _dwarf_length_of_cu_header_simple(Dwarf_Debug dbg)
int
_dwarf_load_debug_info(Dwarf_Debug dbg, Dwarf_Error * error)
{
- int res;
+ int res = DW_DLV_ERROR;
- /* Testing de_debug_info allows us to avoid testing
- de_debug_abbrev. One test instead of 2. .debug_info is useless
+ /* Testing de_debug_info.dss_data allows us to avoid testing
+ de_debug_abbrev.dss_data.
+ One test instead of 2. .debug_info is useless
without .debug_abbrev. */
- if (dbg->de_debug_info) {
- return DW_DLV_OK;
+ if (dbg->de_debug_info.dss_data) {
+ return DW_DLV_OK;
}
- res = _dwarf_load_section(dbg, dbg->de_debug_abbrev_index,
- &dbg->de_debug_abbrev, error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_abbrev,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- res = _dwarf_load_section(dbg, dbg->de_debug_info_index,
- &dbg->de_debug_info, error);
+ res = _dwarf_load_section(dbg, &dbg->de_debug_info, error);
return res;
}
+void
+_dwarf_free_abbrev_hash_table_contents(Dwarf_Debug dbg,Dwarf_Hash_Table hash_table)
+{
+ /* A Hash Table is an array with tb_table_entry_count struct
+ Dwarf_Hash_Table_s entries in the array. */
+ int hashnum = 0;
+ for (; hashnum < hash_table->tb_table_entry_count; ++hashnum) {
+ struct Dwarf_Abbrev_List_s *abbrev = 0;
+ struct Dwarf_Abbrev_List_s *nextabbrev = 0;
+ struct Dwarf_Hash_Table_Entry_s *tb = &hash_table->tb_entries[hashnum];
+
+ abbrev = tb->at_head;
+ for (; abbrev; abbrev = nextabbrev) {
+ nextabbrev = abbrev->ab_next;
+ dwarf_dealloc(dbg, abbrev, DW_DLA_ABBREV_LIST);
+ }
+ }
+ /* Frees all the entries at once: an array. */
+ dwarf_dealloc(dbg,hash_table->tb_entries,DW_DLA_HASH_TABLE_ENTRY);
+}
+
+/*
+ If no die provided the size value returned might be wrong.
+ If different compilation units have different address sizes
+ this may not give the correct value in all contexts if the die
+ pointer is NULL.
+ If the Elf offset size != address_size
+ (for example if address_size = 4 but recorded in elf64 object)
+ this may not give the correct value in all contexts if the die
+ pointer is NULL.
+ If the die pointer is non-NULL (in which case it must point to
+ a valid DIE) this will return the correct size.
+*/
+int
+_dwarf_get_address_size(Dwarf_Debug dbg, Dwarf_Die die)
+{
+ Dwarf_CU_Context context = 0;
+ Dwarf_Half addrsize = 0;
+ if(!die) {
+ return dbg->de_pointer_size;
+ }
+ context = die->di_cu_context;
+ addrsize = context->cc_address_size;
+ return addrsize;
+}
+
+
+
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_util.h b/usr/src/tools/ctf/dwarf/common/dwarf_util.h
index 146a7d8ee4..4046bb2478 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_util.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_util.h
@@ -1,6 +1,9 @@
+#ifndef DWARF_UTIL_H
+#define DWARF_UTIL_H
/*
Copyright (C) 2000,2003,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +20,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,34 +35,43 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/* The address of the Free Software Foundation is
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ SGI has moved from the Crittenden Lane address.
+*/
+
/*
- Decodes unsigned leb128 encoded numbers that
- are assumed to be less than 4 bytes long.
+ Decodes unsigned leb128 encoded numbers.
Make sure ptr is a pointer to a 1-byte type.
- Returns UINT_MAX on error.
-
+ In 2003 and earlier this was a hand-inlined
+ version of _dwarf_decode_u_leb128() which did
+ not work correctly if Dwarf_Word was 64 bits.
*/
#define DECODE_LEB128_UWORD(ptr, value) \
- { \
+ do { \
Dwarf_Word uleblen; \
value = _dwarf_decode_u_leb128(ptr,&uleblen); \
ptr += uleblen; \
- }
+ } while (0)
/*
Decodes signed leb128 encoded numbers.
Make sure ptr is a pointer to a 1-byte type.
+ In 2003 and earlier this was a hand-inlined
+ version of _dwarf_decode_s_leb128() which did
+ not work correctly if Dwarf_Word was 64 bits.
*/
#define DECODE_LEB128_SWORD(ptr, value) \
- { \
+ do { \
Dwarf_Word sleblen; \
value = _dwarf_decode_s_leb128(ptr,&sleblen); \
ptr += sleblen; \
- }
+ } while(0)
/*
@@ -68,18 +80,18 @@
signed and unsigned numbers.
*/
#define SKIP_LEB128_WORD(ptr) \
- if ((*(ptr++) & 0x80) != 0) { \
+ do{ if ((*(ptr++) & 0x80) != 0) { \
if ((*(ptr++) & 0x80) != 0) { \
if ((*(ptr++) & 0x80) != 0) { \
if ((*(ptr++) & 0x80) != 0) { \
} \
} \
} \
- }
+ } } while (0)
#define CHECK_DIE(die, error_ret_value) \
- if (die == NULL) { \
+do {if (die == NULL) { \
_dwarf_error(NULL, error, DW_DLE_DIE_NULL); \
return(error_ret_value); \
} \
@@ -90,7 +102,8 @@
if (die->di_cu_context->cc_dbg == NULL) { \
_dwarf_error(NULL, error, DW_DLE_DBG_NULL); \
return(error_ret_value); \
- }
+ } \
+} while (0)
/*
@@ -108,12 +121,12 @@ typedef Dwarf_Unsigned BIGGEST_UINT;
#ifdef WORDS_BIGENDIAN
#define READ_UNALIGNED(dbg,dest,desttype, source, length) \
- { \
+ do { \
BIGGEST_UINT _ltmp = 0; \
dbg->de_copy_word( (((char *)(&_ltmp)) + sizeof(_ltmp) - length), \
source, length) ; \
dest = (desttype)_ltmp; \
- }
+ } while (0)
/*
@@ -125,18 +138,20 @@ typedef Dwarf_Unsigned BIGGEST_UINT;
The memcpy args are the issue.
*/
#define SIGN_EXTEND(dest, length) \
- if (*(Dwarf_Sbyte *)((char *)&dest + sizeof(dest) - length) < 0) \
+ do {if (*(Dwarf_Sbyte *)((char *)&dest + sizeof(dest) - length) < 0) {\
memcpy((char *)&dest, "\xff\xff\xff\xff\xff\xff\xff\xff", \
- sizeof(dest) - length)
+ sizeof(dest) - length); \
+ } \
+ } while (0)
#else /* LITTLE ENDIAN */
#define READ_UNALIGNED(dbg,dest,desttype, source, length) \
- { \
+ do { \
BIGGEST_UINT _ltmp = 0; \
dbg->de_copy_word( (char *)(&_ltmp) , \
source, length) ; \
dest = (desttype)_ltmp; \
- }
+ } while (0)
/*
@@ -148,10 +163,12 @@ typedef Dwarf_Unsigned BIGGEST_UINT;
The memcpy args are the issue.
*/
#define SIGN_EXTEND(dest, length) \
- if (*(Dwarf_Sbyte *)((char *)&dest + (length-1)) < 0) \
+ do {if (*(Dwarf_Sbyte *)((char *)&dest + (length-1)) < 0) {\
memcpy((char *)&dest+length, \
"\xff\xff\xff\xff\xff\xff\xff\xff", \
- sizeof(dest) - length)
+ sizeof(dest) - length); \
+ } \
+ } while (0)
#endif /* ! LITTLE_ENDIAN */
@@ -165,8 +182,9 @@ typedef Dwarf_Unsigned BIGGEST_UINT;
It reads the bits from where rw_src_data_p points to
and updates the rw_src_data_p to point past what was just read.
- It updates w_length_size and w_exten_size (which
- are really issues only for the dwarfv2.1 64bit extension).
+ It updates w_length_size (to the size of an offset, either 4 or 8)
+ and w_exten_size (set 0 unless this frame has the DWARF3,4 64bit
+ extension, in which case w_exten_size is set to 4).
r_dbg is just the current dbg pointer.
w_target is the output length field.
@@ -189,17 +207,15 @@ typedef Dwarf_Unsigned BIGGEST_UINT;
dwarf that the first 32 bits of the 64bit offset will be
zero (because the compiler could not handle a truly large
value as of Jan 2003 and because no app has that much debug
- info anyway (yet)).
+ info anyway, at least not in the IRIX case).
At present not testing for '64bit elf' here as that
does not seem necessary (none of the 64bit length seems
appropriate unless it's ident[EI_CLASS] == ELFCLASS64).
- Might be a good idea though.
-
*/
# define READ_AREA_LENGTH(r_dbg,w_target,r_targtype, \
rw_src_data_p,w_length_size,w_exten_size) \
- READ_UNALIGNED(r_dbg,w_target,r_targtype, \
+do { READ_UNALIGNED(r_dbg,w_target,r_targtype, \
rw_src_data_p, ORIGINAL_DWARF_OFFSET_SIZE); \
if(w_target == DISTINGUISHED_VALUE) { \
/* dwarf3 64bit extension */ \
@@ -211,7 +227,9 @@ typedef Dwarf_Unsigned BIGGEST_UINT;
rw_src_data_p += DISTINGUISHED_VALUE_OFFSET_SIZE; \
} else { \
if(w_target == 0 && r_dbg->de_big_endian_object) { \
- /* IRIX 64 bit, big endian */ \
+ /* IRIX 64 bit, big endian. This test */ \
+ /* is not a truly precise test, a precise test */ \
+ /* would check if the target was IRIX. */ \
READ_UNALIGNED(r_dbg,w_target,r_targtype, \
rw_src_data_p, DISTINGUISHED_VALUE_OFFSET_SIZE); \
w_length_size = DISTINGUISHED_VALUE_OFFSET_SIZE; \
@@ -223,9 +241,7 @@ typedef Dwarf_Unsigned BIGGEST_UINT;
w_length_size = ORIGINAL_DWARF_OFFSET_SIZE; \
rw_src_data_p += w_length_size; \
} \
- }
-
-
+ } } while(0)
Dwarf_Unsigned
_dwarf_decode_u_leb128(Dwarf_Small * leb128,
@@ -237,21 +253,44 @@ _dwarf_decode_s_leb128(Dwarf_Small * leb128,
Dwarf_Unsigned
_dwarf_get_size_of_val(Dwarf_Debug dbg,
- Dwarf_Unsigned form,
- Dwarf_Small * val_ptr, int v_length_size);
+ Dwarf_Unsigned form,
+ Dwarf_Half address_size,
+ Dwarf_Small * val_ptr,
+ int v_length_size);
+
+struct Dwarf_Hash_Table_Entry_s;
+/* This single struct is the base for the hash table.
+ The intent is that once the total_abbrev_count across
+ all the entries is greater than 10*current_table_entry_count
+ one should build a new Dwarf_Hash_Table_Base_s, rehash
+ all the existing entries, and delete the old table and entries.
+ (10 is a heuristic, nothing magic about it, but once the
+ count gets to 30 or 40 times current_table_entry_count
+ things really slow down a lot. One (500MB) application had
+ 127000 abbreviations in one compilation unit)
+ The incoming 'code' is an abbrev number and those simply
+ increase linearly so the hashing is perfect always.
+*/
+struct Dwarf_Hash_Table_s {
+ unsigned long tb_table_entry_count;
+ unsigned long tb_total_abbrev_count;
+ /* Each table entry is a list of abbreviations. */
+ struct Dwarf_Hash_Table_Entry_s *tb_entries;
+};
/*
This struct is used to build a hash table for the
abbreviation codes for a compile-unit.
*/
-struct Dwarf_Hash_Table_s {
+struct Dwarf_Hash_Table_Entry_s {
Dwarf_Abbrev_List at_head;
- Dwarf_Abbrev_List at_tail;
};
+
+
Dwarf_Abbrev_List
_dwarf_get_abbrev_for_code(Dwarf_CU_Context cu_context,
- Dwarf_Word code);
+ Dwarf_Unsigned code);
/* return 1 if string ends before 'endptr' else
@@ -264,4 +303,9 @@ Dwarf_Unsigned _dwarf_length_of_cu_header(Dwarf_Debug,
Dwarf_Unsigned offset);
Dwarf_Unsigned _dwarf_length_of_cu_header_simple(Dwarf_Debug);
-int _dwarf_load_debug_info(Dwarf_Debug dbg, Dwarf_Error *error);
+int _dwarf_load_debug_info(Dwarf_Debug dbg, Dwarf_Error *error);
+void _dwarf_free_abbrev_hash_table_contents(Dwarf_Debug dbg,
+ struct Dwarf_Hash_Table_s* hash_table);
+int _dwarf_get_address_size(Dwarf_Debug dbg, Dwarf_Die die);
+
+#endif /* DWARF_UTIL_H */
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_vars.c b/usr/src/tools/ctf/dwarf/common/dwarf_vars.c
index 8e59d520db..24105289ba 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_vars.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_vars.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004,2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -43,32 +44,41 @@
int
dwarf_get_vars(Dwarf_Debug dbg,
- Dwarf_Var ** vars,
- Dwarf_Signed * ret_var_count, Dwarf_Error * error)
+ Dwarf_Var ** vars,
+ Dwarf_Signed * ret_var_count, Dwarf_Error * error)
{
- int res;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_varnames_index,
- &dbg->de_debug_varnames,
- error);
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_varnames,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- return _dwarf_internal_get_pubnames_like_data(dbg, dbg->de_debug_varnames, dbg->de_debug_varnames_size, (Dwarf_Global **) vars, /* type
- punning,
- Dwarf_Type
- is never
- a
- completed
- type */
- ret_var_count,
- error,
- DW_DLA_VAR_CONTEXT,
- DW_DLE_DEBUG_VARNAMES_LENGTH_BAD,
- DW_DLE_DEBUG_VARNAMES_VERSION_ERROR);
+ return _dwarf_internal_get_pubnames_like_data(dbg,
+ dbg->de_debug_varnames.dss_data,
+ dbg->de_debug_varnames.dss_size,
+ (Dwarf_Global **) vars, /* Type punning for sections
+ with identical format. */
+ ret_var_count,
+ error,
+ DW_DLA_VAR_CONTEXT,
+ DW_DLA_VAR,
+ DW_DLE_DEBUG_VARNAMES_LENGTH_BAD,
+ DW_DLE_DEBUG_VARNAMES_VERSION_ERROR);
+}
+
+/* Deallocating fully requires deallocating the list
+ and all entries. But some internal data is
+ not exposed, so we need a function with internal knowledge.
+*/
+
+void
+dwarf_vars_dealloc(Dwarf_Debug dbg, Dwarf_Var * dwgl,
+ Dwarf_Signed count)
+{
+ _dwarf_internal_globals_dealloc(dbg, (Dwarf_Global *) dwgl,
+ count,
+ DW_DLA_VAR_CONTEXT,
+ DW_DLA_VAR, DW_DLA_LIST);
+ return;
}
@@ -78,8 +88,8 @@ dwarf_varname(Dwarf_Var var_in, char **ret_varname, Dwarf_Error * error)
Dwarf_Global var = (Dwarf_Global) var_in;
if (var == NULL) {
- _dwarf_error(NULL, error, DW_DLE_VAR_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_VAR_NULL);
+ return (DW_DLV_ERROR);
}
*ret_varname = (char *) (var->gl_name);
@@ -89,7 +99,7 @@ dwarf_varname(Dwarf_Var var_in, char **ret_varname, Dwarf_Error * error)
int
dwarf_var_die_offset(Dwarf_Var var_in,
- Dwarf_Off * returned_offset, Dwarf_Error * error)
+ Dwarf_Off * returned_offset, Dwarf_Error * error)
{
Dwarf_Global var = (Dwarf_Global) var_in;
@@ -100,7 +110,7 @@ dwarf_var_die_offset(Dwarf_Var var_in,
int
dwarf_var_cu_offset(Dwarf_Var var_in,
- Dwarf_Off * returned_offset, Dwarf_Error * error)
+ Dwarf_Off * returned_offset, Dwarf_Error * error)
{
Dwarf_Global var = (Dwarf_Global) var_in;
@@ -110,14 +120,14 @@ dwarf_var_cu_offset(Dwarf_Var var_in,
int
dwarf_var_name_offsets(Dwarf_Var var_in,
- char **returned_name,
- Dwarf_Off * die_offset,
- Dwarf_Off * cu_offset, Dwarf_Error * error)
+ char **returned_name,
+ Dwarf_Off * die_offset,
+ Dwarf_Off * cu_offset, Dwarf_Error * error)
{
Dwarf_Global var = (Dwarf_Global) var_in;
return
- dwarf_global_name_offsets(var,
- returned_name, die_offset, cu_offset,
- error);
+ dwarf_global_name_offsets(var,
+ returned_name, die_offset, cu_offset,
+ error);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_vars.h b/usr/src/tools/ctf/dwarf/common/dwarf_vars.h
index b696c2d10b..bd5f967e48 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_vars.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_vars.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_weaks.c b/usr/src/tools/ctf/dwarf/common/dwarf_weaks.c
index addd6cfd6f..425916e62e 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_weaks.c
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_weaks.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2009-2010 David Anderson. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -43,33 +44,41 @@
int
dwarf_get_weaks(Dwarf_Debug dbg,
- Dwarf_Weak ** weaks,
- Dwarf_Signed * ret_weak_count, Dwarf_Error * error)
+ Dwarf_Weak ** weaks,
+ Dwarf_Signed * ret_weak_count, Dwarf_Error * error)
{
- int res;
-
- res =
- _dwarf_load_section(dbg,
- dbg->de_debug_weaknames_index,
- &dbg->de_debug_weaknames,
- error);
+ int res = _dwarf_load_section(dbg, &dbg->de_debug_weaknames,error);
if (res != DW_DLV_OK) {
- return res;
+ return res;
}
- return _dwarf_internal_get_pubnames_like_data(dbg, dbg->de_debug_weaknames, dbg->de_debug_weaknames_size, (Dwarf_Global **) weaks, /* type
- punning,
- Dwarf_Type
- is never
- a
- completed
- type */
- ret_weak_count,
- error,
- DW_DLA_WEAK_CONTEXT,
- DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD,
- DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR);
+ return _dwarf_internal_get_pubnames_like_data(dbg,
+ dbg->de_debug_weaknames.dss_data,
+ dbg->de_debug_weaknames.dss_size,
+ (Dwarf_Global **) weaks, /* Type punning for sections
+ with identical format. */
+ ret_weak_count,
+ error,
+ DW_DLA_WEAK_CONTEXT,
+ DW_DLA_WEAK,
+ DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD,
+ DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR);
+}
+/* Deallocating fully requires deallocating the list
+ and all entries. But some internal data is
+ not exposed, so we need a function with internal knowledge.
+*/
+
+void
+dwarf_weaks_dealloc(Dwarf_Debug dbg, Dwarf_Weak * dwgl,
+ Dwarf_Signed count)
+{
+ _dwarf_internal_globals_dealloc(dbg, (Dwarf_Global *) dwgl,
+ count,
+ DW_DLA_WEAK_CONTEXT,
+ DW_DLA_WEAK, DW_DLA_LIST);
+ return;
}
@@ -80,8 +89,8 @@ dwarf_weakname(Dwarf_Weak weak_in, char **ret_name, Dwarf_Error * error)
Dwarf_Global weak = (Dwarf_Global) weak_in;
if (weak == NULL) {
- _dwarf_error(NULL, error, DW_DLE_WEAK_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_error(NULL, error, DW_DLE_WEAK_NULL);
+ return (DW_DLV_ERROR);
}
*ret_name = (char *) (weak->gl_name);
return DW_DLV_OK;
@@ -90,7 +99,7 @@ dwarf_weakname(Dwarf_Weak weak_in, char **ret_name, Dwarf_Error * error)
int
dwarf_weak_die_offset(Dwarf_Weak weak_in,
- Dwarf_Off * weak_off, Dwarf_Error * error)
+ Dwarf_Off * weak_off, Dwarf_Error * error)
{
Dwarf_Global weak = (Dwarf_Global) weak_in;
@@ -100,7 +109,7 @@ dwarf_weak_die_offset(Dwarf_Weak weak_in,
int
dwarf_weak_cu_offset(Dwarf_Weak weak_in,
- Dwarf_Off * weak_off, Dwarf_Error * error)
+ Dwarf_Off * weak_off, Dwarf_Error * error)
{
Dwarf_Global weak = (Dwarf_Global) weak_in;
@@ -110,13 +119,12 @@ dwarf_weak_cu_offset(Dwarf_Weak weak_in,
int
dwarf_weak_name_offsets(Dwarf_Weak weak_in,
- char **weak_name,
- Dwarf_Off * die_offset,
- Dwarf_Off * cu_offset, Dwarf_Error * error)
+ char **weak_name,
+ Dwarf_Off * die_offset,
+ Dwarf_Off * cu_offset, Dwarf_Error * error)
{
Dwarf_Global weak = (Dwarf_Global) weak_in;
return dwarf_global_name_offsets(weak,
- weak_name,
- die_offset, cu_offset, error);
+ weak_name, die_offset, cu_offset, error);
}
diff --git a/usr/src/tools/ctf/dwarf/common/dwarf_weaks.h b/usr/src/tools/ctf/dwarf/common/dwarf_weaks.h
index 07d3fdabe9..d38f5f118a 100644
--- a/usr/src/tools/ctf/dwarf/common/dwarf_weaks.h
+++ b/usr/src/tools/ctf/dwarf/common/dwarf_weaks.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/libdwarf.h b/usr/src/tools/ctf/dwarf/common/libdwarf.h
index ea030163d6..78627a96a6 100644
--- a/usr/src/tools/ctf/dwarf/common/libdwarf.h
+++ b/usr/src/tools/ctf/dwarf/common/libdwarf.h
@@ -1,10 +1,9 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-/*
- Copyright (C) 2000, 2001, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000-2010 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2007-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2008-2010 David Anderson. All rights reserved.
+ Portions Copyright 2008-2010 Arxan Technologies, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -23,10 +22,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -44,33 +43,30 @@
extern "C" {
#endif
/*
- libdwarf.h
- $Revision: 1.74 $ $Date: 2002/06/11 17:49:06 $
+ libdwarf.h
+ $Revision: #9 $ $Date: 2008/01/17 $
- For libdwarf producers and consumers
+ For libdwarf producers and consumers
- The interface is defined as having 8-byte signed and unsigned
- values so it can handle 64-or-32bit target on 64-or-32bit host.
- Addr is the native size: it represents pointers on
- the host machine (not the target!).
+ The interface is defined as having 8-byte signed and unsigned
+ values so it can handle 64-or-32bit target on 64-or-32bit host.
+ Addr is the native size: it represents pointers on
+ the host machine (not the target!).
- This contains declarations for types and all producer
- and consumer functions.
+ This contains declarations for types and all producer
+ and consumer functions.
- Function declarations are written on a single line each here
- so one can use grep to each declaration in its entirety.
- The declarations are a little harder to read this way, but...
+ Function declarations are written on a single line each here
+ so one can use grep to each declaration in its entirety.
+ The declarations are a little harder to read this way, but...
*/
-#ifdef __SGI_FAST_LIBELF
-struct elf_sgi;
-typedef struct elf_sgi* dwarf_elf_handle;
-#else
struct Elf;
typedef struct Elf* dwarf_elf_handle;
-#endif
+/* To enable printing with printf regardless of the
+ actual underlying data type, we define the DW_PR_xxx macros. */
#if (_MIPS_SZLONG == 64)
/* Special case for MIPS, so -64 (LP64) build gets simple -long-.
Non-MIPS LP64 or ILP64 environments should probably ensure
@@ -83,6 +79,11 @@ typedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
typedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
typedef signed long Dwarf_Signed; /* 4 or 8 byte signed value */
typedef unsigned long Dwarf_Addr; /* target memory address */
+#define DW_PR_DUx "lx"
+#define DW_PR_DSx "lx"
+#define DW_PR_DUu "lu"
+#define DW_PR_DSd "ld"
+
#else /* 32-bit */
/* This is for ILP32, allowing i/o of 64bit dwarf info.
Also should be fine for LP64 and ILP64 cases.
@@ -94,16 +95,40 @@ typedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
typedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
typedef signed long long Dwarf_Signed; /* 8 byte signed value */
typedef unsigned long long Dwarf_Addr; /* target memory address */
+#define DW_PR_DUx "llx"
+#define DW_PR_DSx "llx"
+#define DW_PR_DUu "llu"
+#define DW_PR_DSd "lld"
#endif
-typedef void* Dwarf_Ptr; /* host machine pointer */
+#ifdef HAVE_NONSTANDARD_PRINTF_64_FORMAT
+/* Windows does not use std C formatting, so allow it. */
+#undef DW_PR_DUx
+#undef DW_PR_DSx
+#undef DW_PR_DUu
+#undef DW_PR_DSd
+#define DW_PR_DUx "I64x"
+#define DW_PR_DSx "I64x"
+#define DW_PR_DUu "I64u"
+#define DW_PR_DSd "I64d"
+#endif /* HAVE_NONSTANDARD_FORMAT */
+
+typedef void* Dwarf_Ptr; /* host machine pointer */
+
+/* Used for DW_FORM_ref_sig8. It is not a string, it
+ is 8 bytes of a signature one would use to find
+ a type unit. See dwarf_formsig8()
+*/
+typedef struct {
+ char signature[8];
+} Dwarf_Sig8;
/* Contains info on an uninterpreted block of data
*/
typedef struct {
- Dwarf_Unsigned bl_len; /* length of block */
- Dwarf_Ptr bl_data; /* uninterpreted data */
- Dwarf_Small bl_from_loclist; /*non-0 if loclist, else debug_info*/
- Dwarf_Unsigned bl_section_offset; /* Section (not CU) offset
+ Dwarf_Unsigned bl_len; /* length of block */
+ Dwarf_Ptr bl_data; /* uninterpreted data */
+ Dwarf_Small bl_from_loclist; /*non-0 if loclist, else debug_info*/
+ Dwarf_Unsigned bl_section_offset; /* Section (not CU) offset
which 'data' comes from. */
} Dwarf_Block;
@@ -111,50 +136,313 @@ typedef struct {
/* location record
*/
typedef struct {
- Dwarf_Small lr_atom; /* location operation */
- Dwarf_Unsigned lr_number; /* operand */
- Dwarf_Unsigned lr_number2; /* for OP_BREGx */
- Dwarf_Unsigned lr_offset; /* offset in locexpr for OP_BRA etc */
+ Dwarf_Small lr_atom; /* location operation */
+ Dwarf_Unsigned lr_number; /* operand */
+ Dwarf_Unsigned lr_number2; /* for OP_BREGx */
+ Dwarf_Unsigned lr_offset; /* offset in locexpr for OP_BRA etc */
} Dwarf_Loc;
/* location description
*/
typedef struct {
- Dwarf_Addr ld_lopc; /* beginning of active range */
- Dwarf_Addr ld_hipc; /* end of active range */
- Dwarf_Half ld_cents; /* count of location records */
- Dwarf_Loc* ld_s; /* pointer to list of same */
- Dwarf_Small ld_from_loclist;
- /* non-0 if loclist, else debug_info*/
-
- Dwarf_Unsigned ld_section_offset; /* Section (not CU) offset
- where loc-expr begins*/
+ Dwarf_Addr ld_lopc; /* beginning of active range */
+ Dwarf_Addr ld_hipc; /* end of active range */
+ Dwarf_Half ld_cents; /* count of location records */
+ Dwarf_Loc* ld_s; /* pointer to list of same */
+ Dwarf_Small ld_from_loclist;
+ /* non-0 if loclist, else debug_info*/
+
+ Dwarf_Unsigned ld_section_offset; /* Section (not CU) offset
+ where loc-expr begins*/
} Dwarf_Locdesc;
+/* First appears in DWARF3.
+ The dwr_addr1/addr2 data is either an offset (DW_RANGES_ENTRY)
+ or an address (dwr_addr2 in DW_RANGES_ADDRESS_SELECTION) or
+ both are zero (DW_RANGES_END).
+*/
+enum Dwarf_Ranges_Entry_Type { DW_RANGES_ENTRY,
+ DW_RANGES_ADDRESS_SELECTION,
+ DW_RANGES_END };
+typedef struct {
+ Dwarf_Addr dwr_addr1;
+ Dwarf_Addr dwr_addr2;
+ enum Dwarf_Ranges_Entry_Type dwr_type;
+} Dwarf_Ranges;
+
/* Frame description instructions expanded.
*/
typedef struct {
- Dwarf_Small fp_base_op;
- Dwarf_Small fp_extended_op;
- Dwarf_Half fp_register;
- Dwarf_Unsigned fp_offset;
- Dwarf_Off fp_instr_offset;
-} Dwarf_Frame_Op;
-
-/* DW_REG_TABLE_SIZE must reflect the number of registers
- *(DW_FRAME_LAST_REG_NUM) as defined in dwarf.h
+ Dwarf_Small fp_base_op;
+ Dwarf_Small fp_extended_op;
+ Dwarf_Half fp_register;
+
+ /* Value may be signed, depends on op.
+ Any applicable data_alignment_factor has
+ not been applied, this is the raw offset. */
+ Dwarf_Unsigned fp_offset;
+ Dwarf_Off fp_instr_offset;
+} Dwarf_Frame_Op; /* DWARF2 */
+
+typedef struct {
+ Dwarf_Small fp_base_op;
+ Dwarf_Small fp_extended_op;
+ Dwarf_Half fp_register;
+
+ /* Value may be signed, depends on op.
+ Any applicable data_alignment_factor has
+ not been applied, this is the raw offset. */
+ Dwarf_Unsigned fp_offset_or_block_len;
+ Dwarf_Small *fp_expr_block;
+
+ Dwarf_Off fp_instr_offset;
+} Dwarf_Frame_Op3; /* DWARF3 and DWARF2 compatible */
+
+/* ***IMPORTANT NOTE, TARGET DEPENDENCY ****
+ DW_REG_TABLE_SIZE must be at least as large as
+ the number of registers
+ (DW_FRAME_LAST_REG_NUM) as defined in dwarf.h
+ Preferably identical to DW_FRAME_LAST_REG_NUM.
+ Ensure [0-DW_REG_TABLE_SIZE] does not overlap
+ DW_FRAME_UNDEFINED_VAL or DW_FRAME_SAME_VAL.
+ Also ensure DW_FRAME_REG_INITIAL_VALUE is set to what
+ is appropriate to your cpu.
+ For various CPUs DW_FRAME_UNDEFINED_VAL is correct
+ as the value for DW_FRAME_REG_INITIAL_VALUE.
+
+ For consumer apps, this can be set dynamically: see
+ dwarf_set_frame_rule_table_size();
*/
+#ifndef DW_REG_TABLE_SIZE
#define DW_REG_TABLE_SIZE 66
-typedef struct {
- struct {
- Dwarf_Small dw_offset_relevant;
- Dwarf_Half dw_regnum;
- Dwarf_Addr dw_offset;
- } rules[DW_REG_TABLE_SIZE];
+#endif
+
+/* For MIPS, DW_FRAME_SAME_VAL is the correct default value
+ for a frame register value. For other CPUS another value
+ may be better, such as DW_FRAME_UNDEFINED_VAL.
+ See dwarf_set_frame_rule_table_size
+*/
+#ifndef DW_FRAME_REG_INITIAL_VALUE
+#define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL
+#endif
+
+/* Taken as meaning 'undefined value', this is not
+ a column or register number.
+ Only present at libdwarf runtime in the consumer
+ interfaces. Never on disk.
+ DW_FRAME_* Values present on disk are in dwarf.h
+ Ensure this is > DW_REG_TABLE_SIZE (the reg table
+ size is changeable at runtime with the *reg3() interfaces,
+ and this value must be greater than the reg table size).
+*/
+#define DW_FRAME_UNDEFINED_VAL 1034
+
+/* Taken as meaning 'same value' as caller had, not a column
+ or register number.
+ Only present at libdwarf runtime in the consumer
+ interfaces. Never on disk.
+ DW_FRAME_* Values present on disk are in dwarf.h
+ Ensure this is > DW_REG_TABLE_SIZE (the reg table
+ size is changeable at runtime with the *reg3() interfaces,
+ and this value must be greater than the reg table size).
+*/
+#define DW_FRAME_SAME_VAL 1035
+
+/* For DWARF3 consumer interfaces, make the CFA a column with no
+ real table number. This is what should have been done
+ for the DWARF2 interfaces. This actually works for
+ both DWARF2 and DWARF3, but see the libdwarf documentation
+ on Dwarf_Regtable3 and dwarf_get_fde_info_for_reg3()
+ and dwarf_get_fde_info_for_all_regs3()
+ Do NOT use this with the older dwarf_get_fde_info_for_reg()
+ or dwarf_get_fde_info_for_all_regs() consumer interfaces.
+ Must be higher than any register count for *any* ABI
+ (ensures maximum applicability with minimum effort).
+ Ensure this is > DW_REG_TABLE_SIZE (the reg table
+ size is changeable at runtime with the *reg3() interfaces,
+ and this value must be greater than the reg table size).
+ Only present at libdwarf runtime in the consumer
+ interfaces. Never on disk.
+*/
+#define DW_FRAME_CFA_COL3 1436
+
+/* The following are all needed to evaluate DWARF3 register rules.
+*/
+#define DW_EXPR_OFFSET 0 /* DWARF2 only sees this. */
+#define DW_EXPR_VAL_OFFSET 1
+#define DW_EXPR_EXPRESSION 2
+#define DW_EXPR_VAL_EXPRESSION 3
+
+typedef struct Dwarf_Regtable_Entry_s {
+ /* For each index i (naming a hardware register with dwarf number
+ i) the following is true and defines the value of that register:
+
+ If dw_regnum is Register DW_FRAME_UNDEFINED_VAL
+ it is not DWARF register number but
+ a place holder indicating the register has no defined value.
+ If dw_regnum is Register DW_FRAME_SAME_VAL
+ it is not DWARF register number but
+ a place holder indicating the register has the same
+ value in the previous frame.
+ DW_FRAME_UNDEFINED_VAL, DW_FRAME_SAME_VAL are
+ only present at libdwarf runtime. Never on disk.
+ DW_FRAME_* Values present on disk are in dwarf.h
+
+ Otherwise: the register number is a DWARF register number
+ (see ABI documents for how this translates to hardware/
+ software register numbers in the machine hardware)
+ and the following applies:
+
+ if dw_value_type == DW_EXPR_OFFSET (the only case for dwarf2):
+ If dw_offset_relevant is non-zero, then
+ the value is stored at at the address CFA+N where
+ N is a signed offset.
+ Rule: Offset(N)
+ If dw_offset_relevant is zero, then the value of the register
+ is the value of (DWARF) register number dw_regnum.
+ Rule: register(F)
+ Other values of dw_value_type are an error.
+ */
+ Dwarf_Small dw_offset_relevant;
+
+ /* For DWARF2, always 0 */
+ Dwarf_Small dw_value_type;
+
+ Dwarf_Half dw_regnum;
+
+ /* The data type here should the larger of Dwarf_Addr
+ and Dwarf_Unsigned and Dwarf_Signed. */
+ Dwarf_Addr dw_offset;
+} Dwarf_Regtable_Entry;
+
+typedef struct Dwarf_Regtable_s {
+ struct Dwarf_Regtable_Entry_s rules[DW_REG_TABLE_SIZE];
} Dwarf_Regtable;
-/* for DW_DLC_SYMBOLIC_RELOCATIONS output to caller
+/* opaque type. Functional interface shown later. */
+struct Dwarf_Reg_value3_s;
+typedef struct Dwarf_Reg_value3_s Dwarf_Reg_Value3;
+
+typedef struct Dwarf_Regtable_Entry3_s {
+ /* For each index i (naming a hardware register with dwarf number
+ i) the following is true and defines the value of that register:
+
+ If dw_regnum is Register DW_FRAME_UNDEFINED_VAL
+ it is not DWARF register number but
+ a place holder indicating the register has no defined value.
+ If dw_regnum is Register DW_FRAME_SAME_VAL
+ it is not DWARF register number but
+ a place holder indicating the register has the same
+ value in the previous frame.
+ DW_FRAME_UNDEFINED_VAL, DW_FRAME_SAME_VAL and
+ DW_FRAME_CFA_COL3 are only present at libdwarf runtime.
+ Never on disk.
+ DW_FRAME_* Values present on disk are in dwarf.h
+ Because DW_FRAME_SAME_VAL and DW_FRAME_UNDEFINED_VAL
+ and DW_FRAME_CFA_COL3 are defineable at runtime
+ consider the names symbolic in this comment, not absolute.
+
+ Otherwise: the register number is a DWARF register number
+ (see ABI documents for how this translates to hardware/
+ software register numbers in the machine hardware)
+ and the following applies:
+
+ In a cfa-defining entry (rt3_cfa_rule) the regnum is the
+ CFA 'register number'. Which is some 'normal' register,
+ not DW_FRAME_CFA_COL3, nor DW_FRAME_SAME_VAL, nor
+ DW_FRAME_UNDEFINED_VAL.
+
+ If dw_value_type == DW_EXPR_OFFSET (the only possible case for
+ dwarf2):
+ If dw_offset_relevant is non-zero, then
+ the value is stored at at the address
+ CFA+N where N is a signed offset.
+ dw_regnum is the cfa register rule which means
+ one ignores dw_regnum and uses the CFA appropriately.
+ So dw_offset_or_block_len is a signed value, really,
+ and must be printed/evaluated as such.
+ Rule: Offset(N)
+ If dw_offset_relevant is zero, then the value of the register
+ is the value of (DWARF) register number dw_regnum.
+ Rule: register(R)
+ If dw_value_type == DW_EXPR_VAL_OFFSET
+ the value of this register is CFA +N where N is a signed offset.
+ dw_regnum is the cfa register rule which means
+ one ignores dw_regnum and uses the CFA appropriately.
+ Rule: val_offset(N)
+ If dw_value_type == DW_EXPR_EXPRESSION
+ The value of the register is the value at the address
+ computed by evaluating the DWARF expression E.
+ Rule: expression(E)
+ The expression E byte stream is pointed to by dw_block_ptr.
+ The expression length in bytes is given by
+ dw_offset_or_block_len.
+ If dw_value_type == DW_EXPR_VAL_EXPRESSION
+ The value of the register is the value
+ computed by evaluating the DWARF expression E.
+ Rule: val_expression(E)
+ The expression E byte stream is pointed to by dw_block_ptr.
+ The expression length in bytes is given by
+ dw_offset_or_block_len.
+ Other values of dw_value_type are an error.
+ */
+ Dwarf_Small dw_offset_relevant;
+ Dwarf_Small dw_value_type;
+ Dwarf_Half dw_regnum;
+ Dwarf_Unsigned dw_offset_or_block_len;
+ Dwarf_Ptr dw_block_ptr;
+
+}Dwarf_Regtable_Entry3;
+
+/* For the DWARF3 version, moved the DW_FRAME_CFA_COL
+ out of the array and into its own struct.
+ Having it part of the array is not very easy to work
+ with from a portability point of view: changing
+ the number for every architecture is a pain (if one fails
+ to set it correctly a register rule gets clobbered when
+ setting CFA). With MIPS it just happened to be easy to use
+ DW_FRAME_CFA_COL (it was wrong conceptually but it was easy...).
+
+ rt3_rules and rt3_reg_table_size must be filled in before
+ calling libdwarf. Filled in with a pointer to an array
+ (pointer and array set up by the calling application)
+ of rt3_reg_table_size Dwarf_Regtable_Entry3_s structs.
+ libdwarf does not allocate or deallocate space for the
+ rules, you must do so. libdwarf will initialize the
+ contents rules array, you do not need to do so (though
+ if you choose to initialize the array somehow that is ok:
+ libdwarf will overwrite your initializations with its own).
+
+*/
+typedef struct Dwarf_Regtable3_s {
+ struct Dwarf_Regtable_Entry3_s rt3_cfa_rule;
+
+ Dwarf_Half rt3_reg_table_size;
+ struct Dwarf_Regtable_Entry3_s * rt3_rules;
+} Dwarf_Regtable3;
+
+
+/* Use for DW_EPXR_STANDARD., DW_EXPR_VAL_OFFSET.
+ Returns DW_DLV_OK if the value is available.
+ If DW_DLV_OK returns the regnum and offset thru the pointers
+ (which the consumer must use appropriately).
+*/
+int dwarf_frame_get_reg_register(struct Dwarf_Regtable_Entry3_s *reg_in,
+ Dwarf_Small *offset_relevant,
+ Dwarf_Half *regnum_out,
+ Dwarf_Signed *offset_out);
+
+/* Use for DW_EXPR_EXPRESSION, DW_EXPR_VAL_EXPRESSION.
+ Returns DW_DLV_OK if the value is available.
+ The caller must pass in the address of a valid
+ Dwarf_Block (the caller need not initialize it).
+*/
+int dwarf_frame_get_reg_expression(struct Dwarf_Regtable_Entry3_s *reg_in,
+ Dwarf_Block *block_out);
+
+
+/* For DW_DLC_SYMBOLIC_RELOCATIONS output to caller
v2, adding drd_length: some relocations are 4 and
some 8 bytes (pointers are 8, section offsets 4) in
some dwarf environments. (MIPS relocations are all one
@@ -162,25 +450,39 @@ typedef struct {
to keep struct size down.
*/
enum Dwarf_Rel_Type {
- dwarf_drt_none, /* should not get to caller */
- dwarf_drt_data_reloc, /* simple normal relocation */
- dwarf_drt_segment_rel, /* special reloc, exceptions*/
- dwarf_drt_first_of_length_pair,/* this and drt_second
- for .word end - begin
- case */
- dwarf_drt_second_of_length_pair
+ dwarf_drt_none, /* Should not get to caller */
+ dwarf_drt_data_reloc, /* Simple normal relocation. */
+ dwarf_drt_segment_rel, /* Special reloc, exceptions. */
+ /* dwarf_drt_first_of_length_pair and drt_second
+ are for for the .word end - begin case. */
+ dwarf_drt_first_of_length_pair,
+ dwarf_drt_second_of_length_pair
+};
+
+typedef struct Dwarf_P_Marker_s * Dwarf_P_Marker;
+struct Dwarf_P_Marker_s {
+ Dwarf_Unsigned ma_marker;
+ Dwarf_Unsigned ma_offset;
};
+
typedef struct Dwarf_Relocation_Data_s * Dwarf_Relocation_Data;
struct Dwarf_Relocation_Data_s {
- unsigned char drd_type; /* cast to/from Dwarf_Rel_Type
- to keep size small in struct */
- unsigned char drd_length; /* length in bytes
- of data being relocated. 4 for 32bit.
- 8 for 64bit data */
- Dwarf_Unsigned drd_offset; /* where the data to reloc is */
- Dwarf_Unsigned drd_symbol_index;
+ unsigned char drd_type; /* Cast to/from Dwarf_Rel_Type
+ to keep size small in struct. */
+ unsigned char drd_length; /* Length in bytes of data being
+ relocated. 4 for 32bit data,
+ 8 for 64bit data. */
+ Dwarf_Unsigned drd_offset; /* Where the data to reloc is. */
+ Dwarf_Unsigned drd_symbol_index;
};
+typedef struct Dwarf_P_String_Attr_s * Dwarf_P_String_Attr;
+struct Dwarf_P_String_Attr_s {
+ Dwarf_Unsigned sa_offset; /* Offset of string attribute data */
+ Dwarf_Unsigned sa_nbytes;
+};
+
+
/* Opaque types for Consumer Library. */
typedef struct Dwarf_Debug_s* Dwarf_Debug;
typedef struct Dwarf_Die_s* Dwarf_Die;
@@ -192,18 +494,18 @@ typedef struct Dwarf_Var_s* Dwarf_Var;
typedef struct Dwarf_Weak_s* Dwarf_Weak;
typedef struct Dwarf_Error_s* Dwarf_Error;
typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
-typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
-typedef struct Dwarf_Fde_s* Dwarf_Fde;
-typedef struct Dwarf_Cie_s* Dwarf_Cie;
-typedef struct Dwarf_Arange_s* Dwarf_Arange;
+typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
+typedef struct Dwarf_Fde_s* Dwarf_Fde;
+typedef struct Dwarf_Cie_s* Dwarf_Cie;
+typedef struct Dwarf_Arange_s* Dwarf_Arange;
/* Opaque types for Producer Library. */
-typedef struct Dwarf_P_Debug_s* Dwarf_P_Debug;
-typedef struct Dwarf_P_Die_s* Dwarf_P_Die;
-typedef struct Dwarf_P_Attribute_s* Dwarf_P_Attribute;
-typedef struct Dwarf_P_Fde_s* Dwarf_P_Fde;
-typedef struct Dwarf_P_Expr_s* Dwarf_P_Expr;
-typedef Dwarf_Unsigned Dwarf_Tag;
+typedef struct Dwarf_P_Debug_s* Dwarf_P_Debug;
+typedef struct Dwarf_P_Die_s* Dwarf_P_Die;
+typedef struct Dwarf_P_Attribute_s* Dwarf_P_Attribute;
+typedef struct Dwarf_P_Fde_s* Dwarf_P_Fde;
+typedef struct Dwarf_P_Expr_s* Dwarf_P_Expr;
+typedef Dwarf_Unsigned Dwarf_Tag;
/* error handler function
@@ -211,38 +513,242 @@ typedef Dwarf_Unsigned Dwarf_Tag;
typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
+/* Begin libdwarf Object File Interface declarations.
+
+As of February 2008 there are multiple dwarf_reader object access
+initialization methods available:
+The traditional dwarf_elf_init() and dwarf_init() and dwarf_finish()
+ which assume libelf and POSIX file access.
+An object-file and library agnostic dwarf_object_init() and dwarf_object_finish()
+ which allow the coder to provide object access routines
+ abstracting away the elf interface. So there is no dependence in the
+ reader code on the object format and no dependence on libelf.
+ See the code in dwarf_elf_access.c and dwarf_original_elf_init.c
+ to see an example of initializing the structures mentioned below.
+
+Projects using dwarf_elf_init() or dwarf_init() can ignore
+the Dwarf_Obj_Access* structures entirely as all these details
+are completed for you.
+
+*/
+
+typedef struct Dwarf_Obj_Access_Interface_s Dwarf_Obj_Access_Interface;
+typedef struct Dwarf_Obj_Access_Methods_s Dwarf_Obj_Access_Methods;
+typedef struct Dwarf_Obj_Access_Section_s Dwarf_Obj_Access_Section;
+
+
+/* Used in the get_section interface function
+ in Dwarf_Obj_Access_Section_s. Since libdwarf
+ depends on standard DWARF section names an object
+ format that has no such names (but has some
+ method of setting up 'sections equivalents')
+ must arrange to return standard DWARF section
+ names in the 'name' field. libdwarf does
+ not free the strings in 'name'. */
+struct Dwarf_Obj_Access_Section_s {
+ Dwarf_Addr addr;
+ Dwarf_Unsigned size;
+ const char* name;
+ /* Set link to zero if it is meaningless. If non-zero
+ it should be a link to a rela section or from symtab
+ to strtab. In Elf it is sh_link. */
+ Dwarf_Unsigned link;
+};
+
+/* Returned by the get_endianness function in
+ Dwarf_Obj_Access_Methods_s. */
+typedef enum {
+ DW_OBJECT_MSB,
+ DW_OBJECT_LSB
+} Dwarf_Endianness;
+
+/* The functions we need to access object data from libdwarf are declared here.
+
+ In these function pointer declarations
+ 'void *obj' is intended to be a pointer (the object field in
+ Dwarf_Obj_Access_Interface_s)
+ that hides the library-specific and object-specific data that makes
+ it possible to handle multiple object formats and multiple libraries.
+ It's not required that one handles multiple such in a single libdwarf
+ archive/shared-library (but not ruled out either).
+ See dwarf_elf_object_access_internals_t and dwarf_elf_access.c
+ for an example.
+
+*/
+struct Dwarf_Obj_Access_Methods_s {
+ /**
+ * get_section_info
+ *
+ * Get address, size, and name info about a section.
+ *
+ * Parameters
+ * section_index - Zero-based index.
+ * return_section - Pointer to a structure in which section info
+ * will be placed. Caller must provide a valid pointer to a
+ * structure area. The structure's contents will be overwritten
+ * by the call to get_section_info.
+ * error - A pointer to an integer in which an error code may be stored.
+ *
+ * Return
+ * DW_DLV_OK - Everything ok.
+ * DW_DLV_ERROR - Error occurred. Use 'error' to determine the
+ * libdwarf defined error.
+ * DW_DLV_NO_ENTRY - No such section.
+ */
+ int (*get_section_info)(void* obj, Dwarf_Half section_index,
+ Dwarf_Obj_Access_Section* return_section, int* error);
+ /**
+ * get_byte_order
+ *
+ * Get whether the object file represented by this interface is big-endian
+ * (DW_OBJECT_MSB) or little endian (DW_OBJECT_LSB).
+ *
+ * Parameters
+ * obj - Equivalent to 'this' in OO languages.
+ *
+ * Return
+ * Endianness of object. Cannot fail.
+ */
+ Dwarf_Endianness (*get_byte_order)(void* obj);
+ /**
+ * get_length_size
+ *
+ * Get the size of a length field in the underlying object file.
+ * libdwarf currently supports * 4 and 8 byte sizes, but may
+ * support larger in the future.
+ * Perhaps the return type should be an enumeration?
+ *
+ * Parameters
+ * obj - Equivalent to 'this' in OO languages.
+ *
+ * Return
+ * Size of length. Cannot fail.
+ */
+ Dwarf_Small (*get_length_size)(void* obj);
+ /**
+ * get_pointer_size
+ *
+ * Get the size of a pointer field in the underlying object file.
+ * libdwarf currently supports 4 and 8 byte sizes.
+ * Perhaps the return type should be an enumeration?
+
+ * Return
+ * Size of pointer. Cannot fail.
+ */
+ Dwarf_Small (*get_pointer_size)(void* obj);
+ /**
+ * get_section_count
+ *
+ * Get the number of sections in the object file.
+ *
+ * Parameters
+ *
+ * Return
+ * Number of sections
+ */
+ Dwarf_Unsigned (*get_section_count)(void* obj);
+ /**
+ * load_section
+ *
+ * Get a pointer to an array of bytes that represent the section.
+ *
+ * Parameters
+ * section_index - Zero-based index.
+ * return_data - The address of a pointer to which the section data block
+ * will be assigned.
+ * error - Pointer to an integer for returning libdwarf-defined
+ * error numbers.
+ *
+ * Return
+ * DW_DLV_OK - No error.
+ * DW_DLV_ERROR - Error. Use 'error' to indicate a libdwarf-defined
+ * error number.
+ * DW_DLV_NO_ENTRY - No such section.
+ */
+ int (*load_section)(void* obj, Dwarf_Half section_index,
+ Dwarf_Small** return_data, int* error);
+
+ /**
+ * relocate_a_section
+ * If relocations are not supported leave this pointer NULL.
+ *
+ * Get a pointer to an array of bytes that represent the section.
+ *
+ * Parameters
+ * section_index - Zero-based index of the section to be relocated.
+ * error - Pointer to an integer for returning libdwarf-defined
+ * error numbers.
+ *
+ * Return
+ * DW_DLV_OK - No error.
+ * DW_DLV_ERROR - Error. Use 'error' to indicate a libdwarf-defined
+ * error number.
+ * DW_DLV_NO_ENTRY - No such section.
+ */
+ int (*relocate_a_section)(void* obj, Dwarf_Half section_index,
+ Dwarf_Debug dbg,
+ int* error);
+
+};
+
+
+
+/* These structures are allocated and deallocated by your code
+ when you are using the libdwarf Object File Interface
+ [dwarf_object_init() and dwarf_object_finish()] directly.
+ dwarf_object_finish() does not free
+ struct Dwarf_Obj_Access_Interface_s or its content.
+ (libdwarf does record a pointer to this struct: you must
+ ensure that pointer remains valid for as long as
+ a libdwarf instance is open (meaning
+ after dwarf_init() and before dwarf_finish()).
+
+ If you are reading Elf objects and libelf use dwarf_init()
+ or dwarf_elf_init() which take care of these details.
+*/
+struct Dwarf_Obj_Access_Interface_s {
+ /* object is a void* as it hides the data the object access routines
+ need (which varies by library in use and object format).
+ */
+ void* object;
+ const Dwarf_Obj_Access_Methods * methods;
+};
+
+/* End libdwarf Object File Interface */
+
/*
Dwarf_dealloc() alloc_type arguments.
Argument points to:
*/
-#define DW_DLA_STRING 0x01 /* char* */
-#define DW_DLA_LOC 0x02 /* Dwarf_Loc */
-#define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
-#define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
-#define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
-#define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
-#define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
-#define DW_DLA_DIE 0x08 /* Dwarf_Die */
-#define DW_DLA_LINE 0x09 /* Dwarf_Line */
-#define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
-#define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
-#define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
-#define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
-#define DW_DLA_ERROR 0x0e /* Dwarf_Error */
-#define DW_DLA_LIST 0x0f /* a list */
-#define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
-#define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
-#define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
-#define DW_DLA_FRAME_OP 0x13 /* Dwarf_Frame_Op */
-#define DW_DLA_CIE 0x14 /* Dwarf_Cie */
-#define DW_DLA_FDE 0x15 /* Dwarf_Fde */
-#define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc Block (not used) */
-#define DW_DLA_FRAME_BLOCK 0x17 /* Dwarf_Frame Block (not used) */
-#define DW_DLA_FUNC 0x18 /* Dwarf_Func */
-#define DW_DLA_TYPENAME 0x19 /* Dwarf_Type */
-#define DW_DLA_VAR 0x1a /* Dwarf_Var */
-#define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
-#define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
+#define DW_DLA_STRING 0x01 /* char* */
+#define DW_DLA_LOC 0x02 /* Dwarf_Loc */
+#define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
+#define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
+#define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
+#define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
+#define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
+#define DW_DLA_DIE 0x08 /* Dwarf_Die */
+#define DW_DLA_LINE 0x09 /* Dwarf_Line */
+#define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
+#define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
+#define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
+#define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
+#define DW_DLA_ERROR 0x0e /* Dwarf_Error */
+#define DW_DLA_LIST 0x0f /* a list */
+#define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
+#define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
+#define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
+#define DW_DLA_FRAME_OP 0x13 /* Dwarf_Frame_Op */
+#define DW_DLA_CIE 0x14 /* Dwarf_Cie */
+#define DW_DLA_FDE 0x15 /* Dwarf_Fde */
+#define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc Block (not used) */
+#define DW_DLA_FRAME_BLOCK 0x17 /* Dwarf_Frame Block (not used) */
+#define DW_DLA_FUNC 0x18 /* Dwarf_Func */
+#define DW_DLA_TYPENAME 0x19 /* Dwarf_Type */
+#define DW_DLA_VAR 0x1a /* Dwarf_Var */
+#define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
+#define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
+#define DW_DLA_RANGES 0x1d /* Dwarf_Ranges */
/* The augmenter string for CIE */
#define DW_CIE_AUGMENTER_STRING_V0 "z"
@@ -253,19 +759,41 @@ typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
#define DW_DLC_WRITE 1 /* write only access */
#define DW_DLC_RDWR 2 /* read/write access NOT SUPPORTED*/
-/* dwarf_init() access flag modifiers
+/* pro_init() access flag modifiers
+ If HAVE_DWARF2_99_EXTENSION is defined at libdwarf build time
+ and DW_DLC_OFFSET_SIZE_64 is passed in pro_init() flags then the DWARF3
+ 64 bit offset extension is used to generate 64 bit offsets.
*/
-#define DW_DLC_SIZE_64 0x40000000 /* 32-bit target */
-#define DW_DLC_SIZE_32 0x20000000 /* 64-bit target */
+#define DW_DLC_SIZE_64 0x40000000 /* 32-bit address-size target */
+#define DW_DLC_SIZE_32 0x20000000 /* 64-bit address-size target */
+#define DW_DLC_OFFSET_SIZE_64 0x10000000 /* 64-bit offset-size DWARF */
-/* dwarf_init() access flag modifiers
+/* dwarf_pro_init() access flag modifiers
*/
#define DW_DLC_ISA_MIPS 0x00000000 /* MIPS target */
#define DW_DLC_ISA_IA64 0x01000000 /* IA64 target */
-#define DW_DLC_STREAM_RELOCATIONS 0x02000000 /* old style binary relocs */
-#define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000 /* usable with assem output */
-#define DW_DLC_TARGET_BIGENDIAN 0x08000000 /* big endian target */
-#define DW_DLC_TARGET_LITTLEENDIAN 0x00100000 /* little endian target */
+#define DW_DLC_STREAM_RELOCATIONS 0x02000000 /* Old style binary relocs */
+
+ /* Usable with assembly output because it is up to the producer to
+ deal with locations in whatever manner the producer code wishes.
+ Possibly emitting text an assembler will recognize. */
+#define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000
+
+#define DW_DLC_TARGET_BIGENDIAN 0x08000000 /* Big endian target */
+#define DW_DLC_TARGET_LITTLEENDIAN 0x00100000 /* Little endian target */
+
+#if 0
+ /*
+ The libdwarf producer interfaces jumble these two semantics together in
+ confusing ways. We *should* have flags like these...
+ But changing the code means a lot of diffs. So for now,
+ we leave things as they are
+ */
+ #define DW_DLC_SUN_OFFSET32 0x00010000 /* use 32-bit sec offsets */
+ #define DW_DLC_SUN_OFFSET64 0x00020000 /* use 64-bit sec offsets */
+ #define DW_DLC_SUN_POINTER32 0x00040000 /* use 4 for address_size */
+ #define DW_DLC_SUN_POINTER64 0x00080000 /* use 8 for address_size */
+#endif
/* dwarf_pcline() slide arguments
*/
@@ -298,7 +826,7 @@ typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
#define DW_DLE_EOS 20 /* end of section */
#define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
#define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad*/
- /* It is not an allowed size (64 or 32) */
+ /* It is not an allowed size (64 or 32) */
/* Error codes defined by the current Libdwarf Implementation. */
#define DW_DLE_DBG_ALLOC 23
#define DW_DLE_FSTAT_ERROR 24
@@ -334,161 +862,196 @@ typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
#define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
#define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
#define DW_DLE_LINE_NUM_OPERANDS_BAD 56
-#define DW_DLE_LINE_SET_ADDR_ERROR 57
+#define DW_DLE_LINE_SET_ADDR_ERROR 57 /* No longer used. */
#define DW_DLE_LINE_EXT_OPCODE_BAD 58
#define DW_DLE_DWARF_LINE_NULL 59
#define DW_DLE_INCL_DIR_NUM_BAD 60
#define DW_DLE_LINE_FILE_NUM_BAD 61
#define DW_DLE_ALLOC_FAIL 62
-#define DW_DLE_NO_CALLBACK_FUNC 63
-#define DW_DLE_SECT_ALLOC 64
-#define DW_DLE_FILE_ENTRY_ALLOC 65
-#define DW_DLE_LINE_ALLOC 66
-#define DW_DLE_FPGM_ALLOC 67
-#define DW_DLE_INCDIR_ALLOC 68
-#define DW_DLE_STRING_ALLOC 69
-#define DW_DLE_CHUNK_ALLOC 70
-#define DW_DLE_BYTEOFF_ERR 71
-#define DW_DLE_CIE_ALLOC 72
-#define DW_DLE_FDE_ALLOC 73
-#define DW_DLE_REGNO_OVFL 74
-#define DW_DLE_CIE_OFFS_ALLOC 75
-#define DW_DLE_WRONG_ADDRESS 76
-#define DW_DLE_EXTRA_NEIGHBORS 77
-#define DW_DLE_WRONG_TAG 78
-#define DW_DLE_DIE_ALLOC 79
-#define DW_DLE_PARENT_EXISTS 80
+#define DW_DLE_NO_CALLBACK_FUNC 63
+#define DW_DLE_SECT_ALLOC 64
+#define DW_DLE_FILE_ENTRY_ALLOC 65
+#define DW_DLE_LINE_ALLOC 66
+#define DW_DLE_FPGM_ALLOC 67
+#define DW_DLE_INCDIR_ALLOC 68
+#define DW_DLE_STRING_ALLOC 69
+#define DW_DLE_CHUNK_ALLOC 70
+#define DW_DLE_BYTEOFF_ERR 71
+#define DW_DLE_CIE_ALLOC 72
+#define DW_DLE_FDE_ALLOC 73
+#define DW_DLE_REGNO_OVFL 74
+#define DW_DLE_CIE_OFFS_ALLOC 75
+#define DW_DLE_WRONG_ADDRESS 76
+#define DW_DLE_EXTRA_NEIGHBORS 77
+#define DW_DLE_WRONG_TAG 78
+#define DW_DLE_DIE_ALLOC 79
+#define DW_DLE_PARENT_EXISTS 80
#define DW_DLE_DBG_NULL 81
-#define DW_DLE_DEBUGLINE_ERROR 82
-#define DW_DLE_DEBUGFRAME_ERROR 83
-#define DW_DLE_DEBUGINFO_ERROR 84
-#define DW_DLE_ATTR_ALLOC 85
-#define DW_DLE_ABBREV_ALLOC 86
-#define DW_DLE_OFFSET_UFLW 87
-#define DW_DLE_ELF_SECT_ERR 88
-#define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
-#define DW_DLE_FRAME_VERSION_BAD 90
-#define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
-#define DW_DLE_FDE_NULL 92
-#define DW_DLE_FDE_DBG_NULL 93
-#define DW_DLE_CIE_NULL 94
-#define DW_DLE_CIE_DBG_NULL 95
-#define DW_DLE_FRAME_TABLE_COL_BAD 96
-#define DW_DLE_PC_NOT_IN_FDE_RANGE 97
-#define DW_DLE_CIE_INSTR_EXEC_ERROR 98
-#define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
-#define DW_DLE_FDE_PTR_NULL 100
-#define DW_DLE_RET_OP_LIST_NULL 101
-#define DW_DLE_LINE_CONTEXT_NULL 102
-#define DW_DLE_DBG_NO_CU_CONTEXT 103
-#define DW_DLE_DIE_NO_CU_CONTEXT 104
-#define DW_DLE_FIRST_DIE_NOT_CU 105
-#define DW_DLE_NEXT_DIE_PTR_NULL 106
-#define DW_DLE_DEBUG_FRAME_DUPLICATE 107
-#define DW_DLE_DEBUG_FRAME_NULL 108
-#define DW_DLE_ABBREV_DECODE_ERROR 109
-#define DW_DLE_DWARF_ABBREV_NULL 110
-#define DW_DLE_ATTR_NULL 111
-#define DW_DLE_DIE_BAD 112
-#define DW_DLE_DIE_ABBREV_BAD 113
-#define DW_DLE_ATTR_FORM_BAD 114
-#define DW_DLE_ATTR_NO_CU_CONTEXT 115
-#define DW_DLE_ATTR_FORM_SIZE_BAD 116
-#define DW_DLE_ATTR_DBG_NULL 117
-#define DW_DLE_BAD_REF_FORM 118
-#define DW_DLE_ATTR_FORM_OFFSET_BAD 119
-#define DW_DLE_LINE_OFFSET_BAD 120
-#define DW_DLE_DEBUG_STR_OFFSET_BAD 121
-#define DW_DLE_STRING_PTR_NULL 122
-#define DW_DLE_PUBNAMES_VERSION_ERROR 123
-#define DW_DLE_PUBNAMES_LENGTH_BAD 124
-#define DW_DLE_GLOBAL_NULL 125
-#define DW_DLE_GLOBAL_CONTEXT_NULL 126
-#define DW_DLE_DIR_INDEX_BAD 127
-#define DW_DLE_LOC_EXPR_BAD 128
-#define DW_DLE_DIE_LOC_EXPR_BAD 129
-#define DW_DLE_ADDR_ALLOC 130
-#define DW_DLE_OFFSET_BAD 131
-#define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
-#define DW_DLE_REL_ALLOC 133
-#define DW_DLE_ARANGE_OFFSET_BAD 134
-#define DW_DLE_SEGMENT_SIZE_BAD 135
-#define DW_DLE_ARANGE_LENGTH_BAD 136
-#define DW_DLE_ARANGE_DECODE_ERROR 137
-#define DW_DLE_ARANGES_NULL 138
-#define DW_DLE_ARANGE_NULL 139
-#define DW_DLE_NO_FILE_NAME 140
-#define DW_DLE_NO_COMP_DIR 141
-#define DW_DLE_CU_ADDRESS_SIZE_BAD 142
-#define DW_DLE_INPUT_ATTR_BAD 143
-#define DW_DLE_EXPR_NULL 144
-#define DW_DLE_BAD_EXPR_OPCODE 145
-#define DW_DLE_EXPR_LENGTH_BAD 146
-#define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
-#define DW_DLE_ELF_GETIDENT_ERROR 148
-#define DW_DLE_NO_AT_MIPS_FDE 149
-#define DW_DLE_NO_CIE_FOR_FDE 150
-#define DW_DLE_DIE_ABBREV_LIST_NULL 151
-#define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
-#define DW_DLE_DEBUG_FUNCNAMES_NULL 153
-#define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
-#define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
-#define DW_DLE_FUNC_NULL 156
-#define DW_DLE_FUNC_CONTEXT_NULL 157
-#define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
-#define DW_DLE_DEBUG_TYPENAMES_NULL 159
-#define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
-#define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
-#define DW_DLE_TYPE_NULL 162
-#define DW_DLE_TYPE_CONTEXT_NULL 163
-#define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
-#define DW_DLE_DEBUG_VARNAMES_NULL 165
-#define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
-#define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
-#define DW_DLE_VAR_NULL 168
-#define DW_DLE_VAR_CONTEXT_NULL 169
-#define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
-#define DW_DLE_DEBUG_WEAKNAMES_NULL 171
-#define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
-#define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
-#define DW_DLE_WEAK_NULL 174
-#define DW_DLE_WEAK_CONTEXT_NULL 175
-#define DW_DLE_LOCDESC_COUNT_WRONG 176
-#define DW_DLE_MACINFO_STRING_NULL 177
-#define DW_DLE_MACINFO_STRING_EMPTY 178
-#define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
-#define DW_DLE_MACINFO_MALLOC_FAIL 180
-#define DW_DLE_DEBUGMACINFO_ERROR 181
-#define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
-#define DW_DLE_DEBUG_MACRO_MAX_BAD 183
-#define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
-#define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
-#define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
-#define DW_DLE_DF_NO_CIE_AUGMENTATION 187
-#define DW_DLE_DF_REG_NUM_TOO_HIGH 188
-#define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
-#define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
-#define DW_DLE_DF_POP_EMPTY_STACK 191
-#define DW_DLE_DF_ALLOC_FAIL 192
-#define DW_DLE_DF_FRAME_DECODING_ERROR 193
-#define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
+#define DW_DLE_DEBUGLINE_ERROR 82
+#define DW_DLE_DEBUGFRAME_ERROR 83
+#define DW_DLE_DEBUGINFO_ERROR 84
+#define DW_DLE_ATTR_ALLOC 85
+#define DW_DLE_ABBREV_ALLOC 86
+#define DW_DLE_OFFSET_UFLW 87
+#define DW_DLE_ELF_SECT_ERR 88
+#define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
+#define DW_DLE_FRAME_VERSION_BAD 90
+#define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
+#define DW_DLE_FDE_NULL 92
+#define DW_DLE_FDE_DBG_NULL 93
+#define DW_DLE_CIE_NULL 94
+#define DW_DLE_CIE_DBG_NULL 95
+#define DW_DLE_FRAME_TABLE_COL_BAD 96
+#define DW_DLE_PC_NOT_IN_FDE_RANGE 97
+#define DW_DLE_CIE_INSTR_EXEC_ERROR 98
+#define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
+#define DW_DLE_FDE_PTR_NULL 100
+#define DW_DLE_RET_OP_LIST_NULL 101
+#define DW_DLE_LINE_CONTEXT_NULL 102
+#define DW_DLE_DBG_NO_CU_CONTEXT 103
+#define DW_DLE_DIE_NO_CU_CONTEXT 104
+#define DW_DLE_FIRST_DIE_NOT_CU 105
+#define DW_DLE_NEXT_DIE_PTR_NULL 106
+#define DW_DLE_DEBUG_FRAME_DUPLICATE 107
+#define DW_DLE_DEBUG_FRAME_NULL 108
+#define DW_DLE_ABBREV_DECODE_ERROR 109
+#define DW_DLE_DWARF_ABBREV_NULL 110
+#define DW_DLE_ATTR_NULL 111
+#define DW_DLE_DIE_BAD 112
+#define DW_DLE_DIE_ABBREV_BAD 113
+#define DW_DLE_ATTR_FORM_BAD 114
+#define DW_DLE_ATTR_NO_CU_CONTEXT 115
+#define DW_DLE_ATTR_FORM_SIZE_BAD 116
+#define DW_DLE_ATTR_DBG_NULL 117
+#define DW_DLE_BAD_REF_FORM 118
+#define DW_DLE_ATTR_FORM_OFFSET_BAD 119
+#define DW_DLE_LINE_OFFSET_BAD 120
+#define DW_DLE_DEBUG_STR_OFFSET_BAD 121
+#define DW_DLE_STRING_PTR_NULL 122
+#define DW_DLE_PUBNAMES_VERSION_ERROR 123
+#define DW_DLE_PUBNAMES_LENGTH_BAD 124
+#define DW_DLE_GLOBAL_NULL 125
+#define DW_DLE_GLOBAL_CONTEXT_NULL 126
+#define DW_DLE_DIR_INDEX_BAD 127
+#define DW_DLE_LOC_EXPR_BAD 128
+#define DW_DLE_DIE_LOC_EXPR_BAD 129
+#define DW_DLE_ADDR_ALLOC 130
+#define DW_DLE_OFFSET_BAD 131
+#define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
+#define DW_DLE_REL_ALLOC 133
+#define DW_DLE_ARANGE_OFFSET_BAD 134
+#define DW_DLE_SEGMENT_SIZE_BAD 135
+#define DW_DLE_ARANGE_LENGTH_BAD 136
+#define DW_DLE_ARANGE_DECODE_ERROR 137
+#define DW_DLE_ARANGES_NULL 138
+#define DW_DLE_ARANGE_NULL 139
+#define DW_DLE_NO_FILE_NAME 140
+#define DW_DLE_NO_COMP_DIR 141
+#define DW_DLE_CU_ADDRESS_SIZE_BAD 142
+#define DW_DLE_INPUT_ATTR_BAD 143
+#define DW_DLE_EXPR_NULL 144
+#define DW_DLE_BAD_EXPR_OPCODE 145
+#define DW_DLE_EXPR_LENGTH_BAD 146
+#define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
+#define DW_DLE_ELF_GETIDENT_ERROR 148
+#define DW_DLE_NO_AT_MIPS_FDE 149
+#define DW_DLE_NO_CIE_FOR_FDE 150
+#define DW_DLE_DIE_ABBREV_LIST_NULL 151
+#define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
+#define DW_DLE_DEBUG_FUNCNAMES_NULL 153
+#define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
+#define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
+#define DW_DLE_FUNC_NULL 156
+#define DW_DLE_FUNC_CONTEXT_NULL 157
+#define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
+#define DW_DLE_DEBUG_TYPENAMES_NULL 159
+#define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
+#define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
+#define DW_DLE_TYPE_NULL 162
+#define DW_DLE_TYPE_CONTEXT_NULL 163
+#define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
+#define DW_DLE_DEBUG_VARNAMES_NULL 165
+#define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
+#define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
+#define DW_DLE_VAR_NULL 168
+#define DW_DLE_VAR_CONTEXT_NULL 169
+#define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
+#define DW_DLE_DEBUG_WEAKNAMES_NULL 171
+#define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
+#define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
+#define DW_DLE_WEAK_NULL 174
+#define DW_DLE_WEAK_CONTEXT_NULL 175
+#define DW_DLE_LOCDESC_COUNT_WRONG 176
+#define DW_DLE_MACINFO_STRING_NULL 177
+#define DW_DLE_MACINFO_STRING_EMPTY 178
+#define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
+#define DW_DLE_MACINFO_MALLOC_FAIL 180
+#define DW_DLE_DEBUGMACINFO_ERROR 181
+#define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
+#define DW_DLE_DEBUG_MACRO_MAX_BAD 183
+#define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
+#define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
+#define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
+#define DW_DLE_DF_NO_CIE_AUGMENTATION 187
+#define DW_DLE_DF_REG_NUM_TOO_HIGH 188
+#define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
+#define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
+#define DW_DLE_DF_POP_EMPTY_STACK 191
+#define DW_DLE_DF_ALLOC_FAIL 192
+#define DW_DLE_DF_FRAME_DECODING_ERROR 193
+#define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
+#define DW_DLE_FRAME_AUGMENTATION_UNKNOWN 195
+#define DW_DLE_PUBTYPE_CONTEXT 196 /* Unused. */
+#define DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD 197
+#define DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR 198
+#define DW_DLE_DEBUG_PUBTYPES_DUPLICATE 199
+#define DW_DLE_FRAME_CIE_DECODE_ERROR 200
+#define DW_DLE_FRAME_REGISTER_UNREPRESENTABLE 201
+#define DW_DLE_FRAME_REGISTER_COUNT_MISMATCH 202
+#define DW_DLE_LINK_LOOP 203
+#define DW_DLE_STRP_OFFSET_BAD 204
+#define DW_DLE_DEBUG_RANGES_DUPLICATE 205
+#define DW_DLE_DEBUG_RANGES_OFFSET_BAD 206
+#define DW_DLE_DEBUG_RANGES_MISSING_END 207
+#define DW_DLE_DEBUG_RANGES_OUT_OF_MEM 208
+#define DW_DLE_DEBUG_SYMTAB_ERR 209
+#define DW_DLE_DEBUG_STRTAB_ERR 210
+#define DW_DLE_RELOC_MISMATCH_INDEX 211
+#define DW_DLE_RELOC_MISMATCH_RELOC_INDEX 212
+#define DW_DLE_RELOC_MISMATCH_STRTAB_INDEX 213
+#define DW_DLE_RELOC_SECTION_MISMATCH 214
+#define DW_DLE_RELOC_SECTION_MISSING_INDEX 215
+#define DW_DLE_RELOC_SECTION_LENGTH_ODD 216
+#define DW_DLE_RELOC_SECTION_PTR_NULL 217
+#define DW_DLE_RELOC_SECTION_MALLOC_FAIL 218
+#define DW_DLE_NO_ELF64_SUPPORT 219
+#define DW_DLE_MISSING_ELF64_SUPPORT 220
+#define DW_DLE_ORPHAN_FDE 221
+#define DW_DLE_DUPLICATE_INST_BLOCK 222
+#define DW_DLE_BAD_REF_SIG8_FORM 223
+#define DW_DLE_ATTR_EXPRLOC_FORM_BAD 224
+#define DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD 225
+#define DW_DLE_NOT_REF_FORM 226
+#define DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE 227
+
+
/* DW_DLE_LAST MUST EQUAL LAST ERROR NUMBER */
-#define DW_DLE_LAST 194
+#define DW_DLE_LAST 227
#define DW_DLE_LO_USER 0x10000
- /* taken as meaning 'undefined value', this is not
- a column or register number.
- Only present at libdwarf runtime. Never on disk.
- DW_FRAME_* Values present on disk are in dwarf.h
- */
+ /* Taken as meaning 'undefined value', this is not
+ a column or register number.
+ Only present at libdwarf runtime. Never on disk.
+ DW_FRAME_* Values present on disk are in dwarf.h
+ */
#define DW_FRAME_UNDEFINED_VAL 1034
- /* taken as meaning 'same value' as caller had, not a column
- or register number
- Only present at libdwarf runtime. Never on disk.
- DW_FRAME_* Values present on disk are in dwarf.h
- */
+ /* Taken as meaning 'same value' as caller had, not a column
+ or register number
+ Only present at libdwarf runtime. Never on disk.
+ DW_FRAME_* Values present on disk are in dwarf.h
+ */
#define DW_FRAME_SAME_VAL 1035
@@ -496,13 +1059,13 @@ typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
/* error return values
*/
#define DW_DLV_BADADDR (~(Dwarf_Addr)0)
- /* for functions returning target address */
+ /* for functions returning target address */
#define DW_DLV_NOCOUNT ((Dwarf_Signed)-1)
- /* for functions returning count */
+ /* for functions returning count */
#define DW_DLV_BADOFFSET (~(Dwarf_Off)0)
- /* for functions returning offset */
+ /* for functions returning offset */
/* standard return values for functions */
#define DW_DLV_NO_ENTRY -1
@@ -512,7 +1075,7 @@ typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
/* Special values for offset_into_exception_table field of dwarf fde's. */
/* The following value indicates that there is no Exception table offset
associated with a dwarf frame. */
-#define DW_DLX_NO_EH_OFFSET (-1LL)
+#define DW_DLX_NO_EH_OFFSET (-1LL)
/* The following value indicates that the producer was unable to analyse the
source file to generate Exception tables for this function. */
#define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
@@ -521,639 +1084,897 @@ typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
/*===========================================================================*/
/* Dwarf consumer interface initialization and termination operations */
-/* non-elf initialization */
-int dwarf_init(int /*fd*/,
- Dwarf_Unsigned /*access*/,
- Dwarf_Handler /*errhand*/,
- Dwarf_Ptr /*errarg*/,
- Dwarf_Debug * /*dbg*/,
- Dwarf_Error* /*error*/);
+/* Initialization based on Unix open fd (using libelf internally). */
+int dwarf_init(int /*fd*/,
+ Dwarf_Unsigned /*access*/,
+ Dwarf_Handler /*errhand*/,
+ Dwarf_Ptr /*errarg*/,
+ Dwarf_Debug* /*dbg*/,
+ Dwarf_Error* /*error*/);
-/* elf intialization */
+/* Initialization based on libelf/sgi-fastlibelf open pointer. */
int dwarf_elf_init(dwarf_elf_handle /*elf*/,
- Dwarf_Unsigned /*access*/,
- Dwarf_Handler /*errhand*/,
- Dwarf_Ptr /*errarg*/,
- Dwarf_Debug * /*dbg*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*access*/,
+ Dwarf_Handler /*errhand*/,
+ Dwarf_Ptr /*errarg*/,
+ Dwarf_Debug* /*dbg*/,
+ Dwarf_Error* /*error*/);
/* Undocumented function for memory allocator. */
void dwarf_print_memory_stats(Dwarf_Debug /*dbg*/);
-
int dwarf_get_elf(Dwarf_Debug /*dbg*/,
- dwarf_elf_handle* /*return_elfptr*/,
- Dwarf_Error* /*error*/);
+ dwarf_elf_handle* /*return_elfptr*/,
+ Dwarf_Error* /*error*/);
int dwarf_finish(Dwarf_Debug /*dbg*/, Dwarf_Error* /*error*/);
+
+int dwarf_object_init(Dwarf_Obj_Access_Interface* /* obj */,
+ Dwarf_Handler /* errhand */,
+ Dwarf_Ptr /* errarg */,
+ Dwarf_Debug* /* dbg */,
+ Dwarf_Error* /* error */);
+
+int dwarf_object_finish(Dwarf_Debug /* dbg */,
+ Dwarf_Error* /* error */);
+
/* die traversal operations */
+int dwarf_next_cu_header_b(Dwarf_Debug /*dbg*/,
+ Dwarf_Unsigned* /*cu_header_length*/,
+ Dwarf_Half* /*version_stamp*/,
+ Dwarf_Off* /*abbrev_offset*/,
+ Dwarf_Half* /*address_size*/,
+ Dwarf_Half* /*length_size*/,
+ Dwarf_Half* /*extension_size*/,
+ Dwarf_Unsigned* /*next_cu_header_offset*/,
+ Dwarf_Error* /*error*/);
+/* The following is now obsolete, though supported. November 2009. */
int dwarf_next_cu_header(Dwarf_Debug /*dbg*/,
- Dwarf_Unsigned* /*cu_header_length*/,
- Dwarf_Half* /*version_stamp*/,
- Dwarf_Off* /*abbrev_offset*/,
- Dwarf_Half* /*address_size*/,
- Dwarf_Unsigned* /*next_cu_header_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned* /*cu_header_length*/,
+ Dwarf_Half* /*version_stamp*/,
+ Dwarf_Off* /*abbrev_offset*/,
+ Dwarf_Half* /*address_size*/,
+ Dwarf_Unsigned* /*next_cu_header_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_siblingof(Dwarf_Debug /*dbg*/,
- Dwarf_Die /*die*/,
- Dwarf_Die* /*return_siblingdie*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Die /*die*/,
+ Dwarf_Die* /*return_siblingdie*/,
+ Dwarf_Error* /*error*/);
int dwarf_child(Dwarf_Die /*die*/,
- Dwarf_Die* /*return_childdie*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Die* /*return_childdie*/,
+ Dwarf_Error* /*error*/);
-/* finding die given offset */
+/* Finding die given global (not CU-relative) offset */
int dwarf_offdie(Dwarf_Debug /*dbg*/,
- Dwarf_Off /*offset*/,
- Dwarf_Die* /*return_die*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off /*offset*/,
+ Dwarf_Die* /*return_die*/,
+ Dwarf_Error* /*error*/);
-/* higher level functions (Unimplemented) */
+/* Higher level functions (Unimplemented) */
int dwarf_pcfile(Dwarf_Debug /*dbg*/,
- Dwarf_Addr /*pc*/,
- Dwarf_Die* /*return_die*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr /*pc*/,
+ Dwarf_Die* /*return_die*/,
+ Dwarf_Error* /*error*/);
/* Unimplemented */
int dwarf_pcsubr(Dwarf_Debug /*dbg*/,
- Dwarf_Addr /*pc*/,
- Dwarf_Die* /*return_die*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr /*pc*/,
+ Dwarf_Die* /*return_die*/,
+ Dwarf_Error* /*error*/);
/* Unimplemented */
int dwarf_pcscope(Dwarf_Debug /*dbg*/,
- Dwarf_Addr /*pc*/,
- Dwarf_Die* /*return_die*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr /*pc*/,
+ Dwarf_Die* /*return_die*/,
+ Dwarf_Error* /*error*/);
/* operations on DIEs */
int dwarf_tag(Dwarf_Die /*die*/,
- Dwarf_Half* /*return_tag*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half* /*return_tag*/,
+ Dwarf_Error* /*error*/);
/* utility? */
+/* dwarf_dieoffset returns the global debug_info
+ section offset, not the CU relative offset. */
int dwarf_dieoffset(Dwarf_Die /*die*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
-
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+
+/* dwarf_CU_dieoffset_given_die returns
+ the global debug_info section offset of the CU die
+ that is the CU containing the given_die
+ (the passed in DIE can be any DIE).
+ This information makes it possible for a consumer to
+ find and print CU context information for any die.
+ See also dwarf_get_cu_die_offset_given_cu_header_offset(). */
+int dwarf_CU_dieoffset_given_die(Dwarf_Die /*given_die*/,
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+
+/* dwarf_die_CU_offset returns the CU relative offset
+ not the global debug_info section offset, given
+ any DIE in the CU. See also dwarf_CU_dieoffset_given_die().
+ */
int dwarf_die_CU_offset(Dwarf_Die /*die*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_die_CU_offset_range(Dwarf_Die /*die*/,
+ Dwarf_Off* /*return_CU_header_offset*/,
+ Dwarf_Off* /*return_CU_length_bytes*/,
+ Dwarf_Error* /*error*/);
int dwarf_attr (Dwarf_Die /*die*/,
- Dwarf_Half /*attr*/,
- Dwarf_Attribute * /*returned_attr*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half /*attr*/,
+ Dwarf_Attribute * /*returned_attr*/,
+ Dwarf_Error* /*error*/);
int dwarf_diename(Dwarf_Die /*die*/,
- char ** /*diename*/,
- Dwarf_Error* /*error*/);
+ char ** /*diename*/,
+ Dwarf_Error* /*error*/);
+
+/* Returns the abbrev code of the die. Cannot fail. */
+int dwarf_die_abbrev_code(Dwarf_Die /*die */);
+
/* convenience functions, alternative to using dwarf_attrlist() */
int dwarf_hasattr(Dwarf_Die /*die*/,
- Dwarf_Half /*attr*/,
- Dwarf_Bool * /*returned_bool*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half /*attr*/,
+ Dwarf_Bool * /*returned_bool*/,
+ Dwarf_Error* /*error*/);
/* dwarf_loclist_n preferred over dwarf_loclist */
int dwarf_loclist_n(Dwarf_Attribute /*attr*/,
- Dwarf_Locdesc*** /*llbuf*/,
- Dwarf_Signed * /*locCount*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Locdesc*** /*llbuf*/,
+ Dwarf_Signed * /*locCount*/,
+ Dwarf_Error* /*error*/);
int dwarf_loclist(Dwarf_Attribute /*attr*/, /* inflexible! */
- Dwarf_Locdesc** /*llbuf*/,
- Dwarf_Signed * /*locCount*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Locdesc** /*llbuf*/,
+ Dwarf_Signed * /*locCount*/,
+ Dwarf_Error* /*error*/);
+
+/* Extracts a dwarf expression from an expression byte stream.
+ Useful to get expressions from DW_CFA_def_cfa_expression
+ DW_CFA_expression DW_CFA_val_expression expression bytes.
+ 27 April 2009: dwarf_loclist_from_expr() interface with
+ no addr_size is obsolete but supported,
+ use dwarf_loclist_from_expr_a() instead.
+*/
+int dwarf_loclist_from_expr(Dwarf_Debug dbg,
+ Dwarf_Ptr expression_in,
+ Dwarf_Unsigned expression_length,
+ Dwarf_Locdesc ** llbuf,
+ Dwarf_Signed * listlen, Dwarf_Error * error);
+
+/* dwarf_loclist_from_expr_a() new 27 Apr 2009: added addr_size argument. */
+int dwarf_loclist_from_expr_a(Dwarf_Debug dbg,
+ Dwarf_Ptr expression_in,
+ Dwarf_Unsigned expression_length,
+ Dwarf_Half addr_size,
+ Dwarf_Locdesc ** llbuf,
+ Dwarf_Signed * listlen, Dwarf_Error * error);
/* Unimplemented */
int dwarf_stringlen(Dwarf_Die /*die*/,
- Dwarf_Locdesc ** /*returned_locdesc*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Locdesc ** /*returned_locdesc*/,
+ Dwarf_Error* /*error*/);
/* Unimplemented */
int dwarf_subscrcnt(Dwarf_Die /*die*/,
- Dwarf_Signed * /*returned_count*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Signed * /*returned_count*/,
+ Dwarf_Error* /*error*/);
/* Unimplemented */
int dwarf_nthsubscr(Dwarf_Die /*die*/,
- Dwarf_Unsigned /*ssndx*/,
- Dwarf_Die * /*returned_die*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*ssndx*/,
+ Dwarf_Die * /*returned_die*/,
+ Dwarf_Error* /*error*/);
int dwarf_lowpc(Dwarf_Die /*die*/,
- Dwarf_Addr * /*returned_addr*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr * /*returned_addr*/,
+ Dwarf_Error* /*error*/);
int dwarf_highpc(Dwarf_Die /*die*/,
- Dwarf_Addr * /*returned_addr*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr * /*returned_addr*/,
+ Dwarf_Error* /*error*/);
int dwarf_bytesize(Dwarf_Die /*die*/,
- Dwarf_Unsigned * /*returned_size*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*returned_size*/,
+ Dwarf_Error* /*error*/);
/* Unimplemented */
int dwarf_isbitfield(Dwarf_Die /*die*/,
- Dwarf_Bool * /*returned_bool*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Bool * /*returned_bool*/,
+ Dwarf_Error* /*error*/);
int dwarf_bitsize(Dwarf_Die /*die*/,
- Dwarf_Unsigned * /*returned_size*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*returned_size*/,
+ Dwarf_Error* /*error*/);
int dwarf_bitoffset(Dwarf_Die /*die*/,
- Dwarf_Unsigned * /*returned_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*returned_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_srclang(Dwarf_Die /*die*/,
- Dwarf_Unsigned * /*returned_lang*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*returned_lang*/,
+ Dwarf_Error* /*error*/);
int dwarf_arrayorder(Dwarf_Die /*die*/,
- Dwarf_Unsigned * /*returned_order*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*returned_order*/,
+ Dwarf_Error* /*error*/);
/* end of convenience function list */
/* this is the main interface to attributes of a DIE */
int dwarf_attrlist(Dwarf_Die /*die*/,
- Dwarf_Attribute** /*attrbuf*/,
- Dwarf_Signed * /*attrcount*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Attribute** /*attrbuf*/,
+ Dwarf_Signed * /*attrcount*/,
+ Dwarf_Error* /*error*/);
/* query operations for attributes */
int dwarf_hasform(Dwarf_Attribute /*attr*/,
- Dwarf_Half /*form*/,
- Dwarf_Bool * /*returned_bool*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half /*form*/,
+ Dwarf_Bool * /*returned_bool*/,
+ Dwarf_Error* /*error*/);
int dwarf_whatform(Dwarf_Attribute /*attr*/,
- Dwarf_Half * /*returned_form*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half * /*returned_form*/,
+ Dwarf_Error* /*error*/);
int dwarf_whatform_direct(Dwarf_Attribute /*attr*/,
- Dwarf_Half * /*returned_form*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half * /*returned_form*/,
+ Dwarf_Error* /*error*/);
int dwarf_whatattr(Dwarf_Attribute /*attr*/,
- Dwarf_Half * /*returned_attr_num*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half * /*returned_attr_num*/,
+ Dwarf_Error* /*error*/);
/*
The following are concerned with the Primary Interface: getting
the actual data values. One function per 'kind' of FORM.
*/
- /*dwarf_formref returns, thru return_offset, a CU-relative offset
- ** and does not allow DW_FORM_ref_addr*/
+/* dwarf_formref returns, thru return_offset, a CU-relative offset
+ and does not allow DW_FORM_ref_addr*/
int dwarf_formref(Dwarf_Attribute /*attr*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
- /*dwarf_global_formref returns, thru return_offset,
- a debug_info-relative offset and does allow all reference forms*/
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+/* dwarf_global_formref returns, thru return_offset,
+ a debug_info-relative offset and does allow all reference forms*/
int dwarf_global_formref(Dwarf_Attribute /*attr*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+
+/* dwarf_formsig8 returns in the caller-provided 8 byte area
+ the 8 bytes of a DW_FORM_ref_sig8. Not a string. */
+int dwarf_formsig8(Dwarf_Attribute /*attr*/,
+ Dwarf_Sig8 * /*returned sig bytes*/,
+ Dwarf_Error* /*error*/);
int dwarf_formaddr(Dwarf_Attribute /*attr*/,
- Dwarf_Addr * /*returned_addr*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr * /*returned_addr*/,
+ Dwarf_Error* /*error*/);
int dwarf_formflag(Dwarf_Attribute /*attr*/,
- Dwarf_Bool * /*returned_bool*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Bool * /*returned_bool*/,
+ Dwarf_Error* /*error*/);
int dwarf_formudata(Dwarf_Attribute /*attr*/,
- Dwarf_Unsigned * /*returned_val*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*returned_val*/,
+ Dwarf_Error* /*error*/);
-int dwarf_formsdata(Dwarf_Attribute /*attr*/,
- Dwarf_Signed * /*returned_val*/,
- Dwarf_Error* /*error*/);
+int dwarf_formsdata(Dwarf_Attribute /*attr*/,
+ Dwarf_Signed * /*returned_val*/,
+ Dwarf_Error* /*error*/);
int dwarf_formblock(Dwarf_Attribute /*attr*/,
- Dwarf_Block ** /*returned_block*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Block ** /*returned_block*/,
+ Dwarf_Error* /*error*/);
int dwarf_formstring(Dwarf_Attribute /*attr*/,
- char ** /*returned_string*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_string*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_formexprloc(Dwarf_Attribute /*attr*/,
+ Dwarf_Unsigned * /*return_exprlen*/,
+ Dwarf_Ptr * /*block_ptr*/,
+ Dwarf_Error * /*error*/);
+
/* end attribute query operations. */
/* line number operations */
/* dwarf_srclines is the normal interface */
int dwarf_srclines(Dwarf_Die /*die*/,
- Dwarf_Line** /*linebuf*/,
- Dwarf_Signed * /*linecount*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Line** /*linebuf*/,
+ Dwarf_Signed * /*linecount*/,
+ Dwarf_Error* /*error*/);
+
+/* dwarf_srclines_dealloc, created July 2005, is the new
+ method for deallocating what dwarf_srclines returns.
+ More complete free than using dwarf_dealloc directly. */
+void dwarf_srclines_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Line* /*linebuf*/,
+ Dwarf_Signed /*count */);
+
int dwarf_srcfiles(Dwarf_Die /*die*/,
- char*** /*srcfiles*/,
- Dwarf_Signed * /*filecount*/,
- Dwarf_Error* /*error*/);
+ char*** /*srcfiles*/,
+ Dwarf_Signed * /*filecount*/,
+ Dwarf_Error* /*error*/);
/* Unimplemented. */
int dwarf_dieline(Dwarf_Die /*die*/,
- Dwarf_Line * /*returned_line*/,
- Dwarf_Error * /*error*/);
+ Dwarf_Line * /*returned_line*/,
+ Dwarf_Error * /*error*/);
int dwarf_linebeginstatement(Dwarf_Line /*line*/,
- Dwarf_Bool * /*returned_bool*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Bool * /*returned_bool*/,
+ Dwarf_Error* /*error*/);
int dwarf_lineendsequence(Dwarf_Line /*line*/,
- Dwarf_Bool * /*returned_bool*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Bool * /*returned_bool*/,
+ Dwarf_Error* /*error*/);
int dwarf_lineno(Dwarf_Line /*line*/,
- Dwarf_Unsigned * /*returned_lineno*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*returned_lineno*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_line_srcfileno(Dwarf_Line /*line*/,
+ Dwarf_Unsigned * /*ret_fileno*/,
+ Dwarf_Error * /*error*/);
int dwarf_lineaddr(Dwarf_Line /*line*/,
- Dwarf_Addr * /*returned_addr*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr * /*returned_addr*/,
+ Dwarf_Error* /*error*/);
int dwarf_lineoff(Dwarf_Line /*line*/,
- Dwarf_Signed * /*returned_lineoffset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Signed * /*returned_lineoffset*/,
+ Dwarf_Error* /*error*/);
int dwarf_linesrc(Dwarf_Line /*line*/,
- char ** /*returned_name*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Error* /*error*/);
int dwarf_lineblock(Dwarf_Line /*line*/,
- Dwarf_Bool * /*returned_bool*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Bool * /*returned_bool*/,
+ Dwarf_Error* /*error*/);
/* tertiary interface to line info */
/* Unimplemented */
int dwarf_pclines(Dwarf_Debug /*dbg*/,
- Dwarf_Addr /*pc*/,
- Dwarf_Line** /*linebuf*/,
- Dwarf_Signed * /*linecount*/,
- Dwarf_Signed /*slide*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr /*pc*/,
+ Dwarf_Line** /*linebuf*/,
+ Dwarf_Signed * /*linecount*/,
+ Dwarf_Signed /*slide*/,
+ Dwarf_Error* /*error*/);
/* end line number operations */
/* global name space operations (.debug_pubnames access) */
int dwarf_get_globals(Dwarf_Debug /*dbg*/,
- Dwarf_Global** /*globals*/,
- Dwarf_Signed * /*number_of_globals*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Global** /*globals*/,
+ Dwarf_Signed * /*number_of_globals*/,
+ Dwarf_Error* /*error*/);
+void dwarf_globals_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Global* /*globals*/,
+ Dwarf_Signed /*number_of_globals*/);
int dwarf_globname(Dwarf_Global /*glob*/,
- char ** /*returned_name*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Error* /*error*/);
int dwarf_global_die_offset(Dwarf_Global /*global*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error * /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error * /*error*/);
+/* This returns the CU die global offset if one knows the
+ CU header global offset.
+ See also dwarf_CU_dieoffset_given_die(). */
int dwarf_get_cu_die_offset_given_cu_header_offset(
- Dwarf_Debug /*dbg*/,
- Dwarf_Off /*in_cu_header_offset*/,
- Dwarf_Off * /*out_cu_die_offset*/,
- Dwarf_Error * /*err*/);
+ Dwarf_Debug /*dbg*/,
+ Dwarf_Off /*in_cu_header_offset*/,
+ Dwarf_Off * /*out_cu_die_offset*/,
+ Dwarf_Error * /*err*/);
#ifdef __sgi /* pragma is sgi MIPS only */
#pragma optional dwarf_get_cu_die_offset_given_cu_header_offset
#endif
int dwarf_global_cu_offset(Dwarf_Global /*global*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_global_name_offsets(Dwarf_Global /*global*/,
- char ** /*returned_name*/,
- Dwarf_Off* /*die_offset*/,
- Dwarf_Off* /*cu_offset*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Off* /*die_offset*/,
+ Dwarf_Off* /*cu_offset*/,
+ Dwarf_Error* /*error*/);
/* Static function name operations. */
-int dwarf_get_funcs(Dwarf_Debug /*dbg*/,
- Dwarf_Func** /*funcs*/,
- Dwarf_Signed * /*number_of_funcs*/,
- Dwarf_Error* /*error*/);
+int dwarf_get_funcs(Dwarf_Debug /*dbg*/,
+ Dwarf_Func** /*funcs*/,
+ Dwarf_Signed * /*number_of_funcs*/,
+ Dwarf_Error* /*error*/);
+void dwarf_funcs_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Func* /*funcs*/,
+ Dwarf_Signed /*number_of_funcs*/);
int dwarf_funcname(Dwarf_Func /*func*/,
- char ** /*returned_name*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Error* /*error*/);
int dwarf_func_die_offset(Dwarf_Func /*func*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_func_cu_offset(Dwarf_Func /*func*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_func_name_offsets(Dwarf_Func /*func*/,
- char ** /*returned_name*/,
- Dwarf_Off* /*die_offset*/,
- Dwarf_Off* /*cu_offset*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Off* /*die_offset*/,
+ Dwarf_Off* /*cu_offset*/,
+ Dwarf_Error* /*error*/);
+
+/* User-defined type name operations, SGI IRIX .debug_typenames section.
+ Same content as DWARF3 .debug_pubtypes, but defined years before
+ .debug_pubtypes was defined. SGI IRIX only. */
+int dwarf_get_types(Dwarf_Debug /*dbg*/,
+ Dwarf_Type** /*types*/,
+ Dwarf_Signed * /*number_of_types*/,
+ Dwarf_Error* /*error*/);
+void dwarf_types_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Type* /*types*/,
+ Dwarf_Signed /*number_of_types*/);
-/* User-defined type name operations. */
-int dwarf_get_types(Dwarf_Debug /*dbg*/,
- Dwarf_Type** /*types*/,
- Dwarf_Signed * /*number_of_types*/,
- Dwarf_Error* /*error*/);
int dwarf_typename(Dwarf_Type /*type*/,
- char ** /*returned_name*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Error* /*error*/);
int dwarf_type_die_offset(Dwarf_Type /*type*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_type_cu_offset(Dwarf_Type /*type*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_type_name_offsets(Dwarf_Type /*type*/,
+ char ** /*returned_name*/,
+ Dwarf_Off* /*die_offset*/,
+ Dwarf_Off* /*cu_offset*/,
+ Dwarf_Error* /*error*/);
+
+/* User-defined type name operations, DWARF3 .debug_pubtypes section.
+*/
+int dwarf_get_pubtypes(Dwarf_Debug /*dbg*/,
+ Dwarf_Type** /*types*/,
+ Dwarf_Signed * /*number_of_types*/,
+ Dwarf_Error* /*error*/);
+void dwarf_pubtypes_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Type* /*pubtypes*/,
+ Dwarf_Signed /*number_of_pubtypes*/);
-int dwarf_type_name_offsets(Dwarf_Type /*type*/,
- char ** /*returned_name*/,
- Dwarf_Off* /*die_offset*/,
- Dwarf_Off* /*cu_offset*/,
- Dwarf_Error* /*error*/);
+
+int dwarf_pubtypename(Dwarf_Type /*type*/,
+ char ** /*returned_name*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_pubtype_die_offset(Dwarf_Type /*type*/,
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_pubtype_cu_offset(Dwarf_Type /*type*/,
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_pubtype_name_offsets(Dwarf_Type /*type*/,
+ char ** /*returned_name*/,
+ Dwarf_Off* /*die_offset*/,
+ Dwarf_Off* /*cu_offset*/,
+ Dwarf_Error* /*error*/);
/* File-scope static variable name operations. */
-int dwarf_get_vars(Dwarf_Debug /*dbg*/,
- Dwarf_Var** /*vars*/,
- Dwarf_Signed * /*number_of_vars*/,
- Dwarf_Error* /*error*/);
+int dwarf_get_vars(Dwarf_Debug /*dbg*/,
+ Dwarf_Var** /*vars*/,
+ Dwarf_Signed * /*number_of_vars*/,
+ Dwarf_Error* /*error*/);
+void dwarf_vars_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Var* /*vars*/,
+ Dwarf_Signed /*number_of_vars*/);
+
int dwarf_varname(Dwarf_Var /*var*/,
- char ** /*returned_name*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Error* /*error*/);
int dwarf_var_die_offset(Dwarf_Var /*var*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_var_cu_offset(Dwarf_Var /*var*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_var_name_offsets(Dwarf_Var /*var*/,
- char ** /*returned_name*/,
- Dwarf_Off* /*die_offset*/,
- Dwarf_Off* /*cu_offset*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Off* /*die_offset*/,
+ Dwarf_Off* /*cu_offset*/,
+ Dwarf_Error* /*error*/);
/* weak name operations. */
-int dwarf_get_weaks(Dwarf_Debug /*dbg*/,
- Dwarf_Weak** /*weaks*/,
- Dwarf_Signed * /*number_of_weaks*/,
- Dwarf_Error* /*error*/);
+int dwarf_get_weaks(Dwarf_Debug /*dbg*/,
+ Dwarf_Weak** /*weaks*/,
+ Dwarf_Signed * /*number_of_weaks*/,
+ Dwarf_Error* /*error*/);
+void dwarf_weaks_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Weak* /*weaks*/,
+ Dwarf_Signed /*number_of_weaks*/);
+
int dwarf_weakname(Dwarf_Weak /*weak*/,
- char ** /*returned_name*/,
- Dwarf_Error* /*error*/);
+ char ** /*returned_name*/,
+ Dwarf_Error* /*error*/);
int dwarf_weak_die_offset(Dwarf_Weak /*weak*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_weak_cu_offset(Dwarf_Weak /*weak*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
-int dwarf_weak_name_offsets(Dwarf_Weak /*weak*/,
- char ** /*returned_name*/,
- Dwarf_Off* /*die_offset*/,
- Dwarf_Off* /*cu_offset*/,
- Dwarf_Error* /*error*/);
+int dwarf_weak_name_offsets(Dwarf_Weak /*weak*/,
+ char ** /*returned_name*/,
+ Dwarf_Off* /*die_offset*/,
+ Dwarf_Off* /*cu_offset*/,
+ Dwarf_Error* /*error*/);
/* location list section operation. (.debug_loc access) */
-/* Unimplemented. */
int dwarf_get_loclist_entry(Dwarf_Debug /*dbg*/,
- Dwarf_Unsigned /*offset*/,
- Dwarf_Addr* /*hipc*/,
- Dwarf_Addr* /*lopc*/,
- Dwarf_Ptr* /*data*/,
- Dwarf_Unsigned* /*entry_len*/,
- Dwarf_Unsigned* /*next_entry*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*offset*/,
+ Dwarf_Addr* /*hipc*/,
+ Dwarf_Addr* /*lopc*/,
+ Dwarf_Ptr* /*data*/,
+ Dwarf_Unsigned* /*entry_len*/,
+ Dwarf_Unsigned* /*next_entry*/,
+ Dwarf_Error* /*error*/);
/* abbreviation section operations */
int dwarf_get_abbrev(Dwarf_Debug /*dbg*/,
- Dwarf_Unsigned /*offset*/,
- Dwarf_Abbrev * /*returned_abbrev*/,
- Dwarf_Unsigned* /*length*/,
- Dwarf_Unsigned* /*attr_count*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*offset*/,
+ Dwarf_Abbrev * /*returned_abbrev*/,
+ Dwarf_Unsigned* /*length*/,
+ Dwarf_Unsigned* /*attr_count*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_abbrev_tag(Dwarf_Abbrev /*abbrev*/,
- Dwarf_Half* /*return_tag_number*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half* /*return_tag_number*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_abbrev_code(Dwarf_Abbrev /*abbrev*/,
- Dwarf_Unsigned* /*return_code_number*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned* /*return_code_number*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_abbrev_children_flag(Dwarf_Abbrev /*abbrev*/,
- Dwarf_Signed* /*return_flag*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Signed* /*return_flag*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_abbrev_entry(Dwarf_Abbrev /*abbrev*/,
- Dwarf_Signed /*index*/,
- Dwarf_Half * /*returned_attr_num*/,
- Dwarf_Signed* /*form*/,
- Dwarf_Off* /*offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Signed /*index*/,
+ Dwarf_Half * /*returned_attr_num*/,
+ Dwarf_Signed* /*form*/,
+ Dwarf_Off* /*offset*/,
+ Dwarf_Error* /*error*/);
/* consumer string section operation */
int dwarf_get_str(Dwarf_Debug /*dbg*/,
- Dwarf_Off /*offset*/,
- char** /*string*/,
- Dwarf_Signed * /*strlen_of_string*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Off /*offset*/,
+ char** /*string*/,
+ Dwarf_Signed * /*strlen_of_string*/,
+ Dwarf_Error* /*error*/);
/* Consumer op on gnu .eh_frame info */
int dwarf_get_fde_list_eh(
- Dwarf_Debug /*dbg*/,
- Dwarf_Cie ** /*cie_data*/,
- Dwarf_Signed * /*cie_element_count*/,
- Dwarf_Fde ** /*fde_data*/,
- Dwarf_Signed * /*fde_element_count*/,
- Dwarf_Error * /*error*/);
+ Dwarf_Debug /*dbg*/,
+ Dwarf_Cie** /*cie_data*/,
+ Dwarf_Signed* /*cie_element_count*/,
+ Dwarf_Fde** /*fde_data*/,
+ Dwarf_Signed* /*fde_element_count*/,
+ Dwarf_Error* /*error*/);
/* consumer operations on frame info: .debug_frame */
int dwarf_get_fde_list(Dwarf_Debug /*dbg*/,
- Dwarf_Cie** /*cie_data*/,
- Dwarf_Signed* /*cie_element_count*/,
- Dwarf_Fde** /*fde_data*/,
- Dwarf_Signed* /*fde_element_count*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Cie** /*cie_data*/,
+ Dwarf_Signed* /*cie_element_count*/,
+ Dwarf_Fde** /*fde_data*/,
+ Dwarf_Signed* /*fde_element_count*/,
+ Dwarf_Error* /*error*/);
+
+/* Release storage gotten by dwarf_get_fde_list_eh() or
+ dwarf_get_fde_list() */
+void dwarf_fde_cie_list_dealloc(Dwarf_Debug dbg,
+ Dwarf_Cie *cie_data,
+ Dwarf_Signed cie_element_count,
+ Dwarf_Fde *fde_data,
+ Dwarf_Signed fde_element_count);
-int dwarf_get_fde_range(Dwarf_Fde /*fde*/,
- Dwarf_Addr* /*low_pc*/,
- Dwarf_Unsigned* /*func_length*/,
- Dwarf_Ptr* /*fde_bytes*/,
- Dwarf_Unsigned* /*fde_byte_length*/,
- Dwarf_Off* /*cie_offset*/,
- Dwarf_Signed* /*cie_index*/,
- Dwarf_Off* /*fde_offset*/,
- Dwarf_Error* /*error*/);
+int dwarf_get_fde_range(Dwarf_Fde /*fde*/,
+ Dwarf_Addr* /*low_pc*/,
+ Dwarf_Unsigned* /*func_length*/,
+ Dwarf_Ptr* /*fde_bytes*/,
+ Dwarf_Unsigned* /*fde_byte_length*/,
+ Dwarf_Off* /*cie_offset*/,
+ Dwarf_Signed* /*cie_index*/,
+ Dwarf_Off* /*fde_offset*/,
+ Dwarf_Error* /*error*/);
+
+/* Useful for IRIX only: see dwarf_get_cie_augmentation_data()
+ dwarf_get_fde_augmentation_data() for GNU .eh_frame. */
int dwarf_get_fde_exception_info(Dwarf_Fde /*fde*/,
- Dwarf_Signed* /* offset_into_exception_tables */,
- Dwarf_Error* /*error*/);
+ Dwarf_Signed* /* offset_into_exception_tables */,
+ Dwarf_Error* /*error*/);
+
int dwarf_get_cie_of_fde(Dwarf_Fde /*fde*/,
- Dwarf_Cie * /*cie_returned*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Cie * /*cie_returned*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_cie_info(Dwarf_Cie /*cie*/,
- Dwarf_Unsigned * /*bytes_in_cie*/,
- Dwarf_Small* /*version*/,
- char ** /*augmenter*/,
- Dwarf_Unsigned* /*code_alignment_factor*/,
- Dwarf_Signed* /*data_alignment_factor*/,
- Dwarf_Half* /*return_address_register_rule*/,
- Dwarf_Ptr* /*initial_instructions*/,
- Dwarf_Unsigned* /*initial_instructions_length*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned * /*bytes_in_cie*/,
+ Dwarf_Small* /*version*/,
+ char ** /*augmenter*/,
+ Dwarf_Unsigned* /*code_alignment_factor*/,
+ Dwarf_Signed* /*data_alignment_factor*/,
+ Dwarf_Half* /*return_address_register_rule*/,
+ Dwarf_Ptr* /*initial_instructions*/,
+ Dwarf_Unsigned* /*initial_instructions_length*/,
+ Dwarf_Error* /*error*/);
+
+/* dwarf_get_cie_index new September 2009. */
+int dwarf_get_cie_index(
+ Dwarf_Cie /*cie*/,
+ Dwarf_Signed* /*index*/,
+ Dwarf_Error* /*error*/ );
+
int dwarf_get_fde_instr_bytes(Dwarf_Fde /*fde*/,
- Dwarf_Ptr * /*outinstrs*/, Dwarf_Unsigned * /*outlen*/,
- Dwarf_Error * /*error*/);
+ Dwarf_Ptr * /*outinstrs*/, Dwarf_Unsigned * /*outlen*/,
+ Dwarf_Error * /*error*/);
int dwarf_get_fde_info_for_all_regs(Dwarf_Fde /*fde*/,
- Dwarf_Addr /*pc_requested*/,
- Dwarf_Regtable* /*reg_table*/,
- Dwarf_Addr* /*row_pc*/,
- Dwarf_Error* /*error*/);
-
+ Dwarf_Addr /*pc_requested*/,
+ Dwarf_Regtable* /*reg_table*/,
+ Dwarf_Addr* /*row_pc*/,
+ Dwarf_Error* /*error*/);
+
+int dwarf_get_fde_info_for_all_regs3(Dwarf_Fde /*fde*/,
+ Dwarf_Addr /*pc_requested*/,
+ Dwarf_Regtable3* /*reg_table*/,
+ Dwarf_Addr* /*row_pc*/,
+ Dwarf_Error* /*error*/);
+
+/* In this older interface DW_FRAME_CFA_COL is a meaningful
+ column (which does not work well with DWARF3 or
+ non-MIPS architectures). */
int dwarf_get_fde_info_for_reg(Dwarf_Fde /*fde*/,
- Dwarf_Half /*table_column*/,
- Dwarf_Addr /*pc_requested*/,
- Dwarf_Signed* /*offset_relevant*/,
- Dwarf_Signed* /*register*/,
- Dwarf_Signed* /*offset*/,
- Dwarf_Addr* /*row_pc*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Half /*table_column*/,
+ Dwarf_Addr /*pc_requested*/,
+ Dwarf_Signed* /*offset_relevant*/,
+ Dwarf_Signed* /*register*/,
+ Dwarf_Signed* /*offset*/,
+ Dwarf_Addr* /*row_pc*/,
+ Dwarf_Error* /*error*/);
+
+/* See discussion of dw_value_type, libdwarf.h.
+ Use of DW_FRAME_CFA_COL is not meaningful in this interface.
+ See dwarf_get_fde_info_for_cfa_reg3().
+*/
+/* dwarf_get_fde_info_for_reg3 is useful on a single column, but
+ it is inefficient to iterate across all table_columns using this
+ function. Instead call dwarf_get_fde_info_for_all_regs3() and index
+ into the table it fills in. */
+int dwarf_get_fde_info_for_reg3(Dwarf_Fde /*fde*/,
+ Dwarf_Half /*table_column*/,
+ Dwarf_Addr /*pc_requested*/,
+ Dwarf_Small * /*value_type*/,
+ Dwarf_Signed * /*offset_relevant*/,
+ Dwarf_Signed* /*register*/,
+ Dwarf_Signed* /*offset_or_block_len*/,
+ Dwarf_Ptr * /*block_ptr */,
+ Dwarf_Addr* /*row_pc_out*/,
+ Dwarf_Error* /*error*/);
+
+/* Use this to get the cfa. */
+int dwarf_get_fde_info_for_cfa_reg3(Dwarf_Fde /*fde*/,
+ Dwarf_Addr /*pc_requested*/,
+ Dwarf_Small * /*value_type*/,
+ Dwarf_Signed * /*offset_relevant*/,
+ Dwarf_Signed* /*register*/,
+ Dwarf_Signed* /*offset_or_block_len*/,
+ Dwarf_Ptr * /*block_ptr */,
+ Dwarf_Addr* /*row_pc_out*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_fde_for_die(Dwarf_Debug /*dbg*/,
- Dwarf_Die /*subr_die */,
- Dwarf_Fde * /*returned_fde*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Die /*subr_die */,
+ Dwarf_Fde * /*returned_fde*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_fde_n(Dwarf_Fde* /*fde_data*/,
- Dwarf_Unsigned /*fde_index*/,
- Dwarf_Fde * /*returned_fde*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*fde_index*/,
+ Dwarf_Fde * /*returned_fde*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_fde_at_pc(Dwarf_Fde* /*fde_data*/,
- Dwarf_Addr /*pc_of_interest*/,
- Dwarf_Fde * /*returned_fde*/,
- Dwarf_Addr* /*lopc*/,
- Dwarf_Addr* /*hipc*/,
- Dwarf_Error* /*error*/);
-
-int dwarf_expand_frame_instructions(Dwarf_Debug /*dbg*/,
- Dwarf_Ptr /*instruction*/,
- Dwarf_Unsigned /*i_length*/,
- Dwarf_Frame_Op** /*returned_op_list*/,
- Dwarf_Signed* /*op_count*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr /*pc_of_interest*/,
+ Dwarf_Fde * /*returned_fde*/,
+ Dwarf_Addr* /*lopc*/,
+ Dwarf_Addr* /*hipc*/,
+ Dwarf_Error* /*error*/);
+
+/* GNU .eh_frame augmentation information, raw form, see
+ Linux Standard Base Core Specification version 3.0 . */
+int dwarf_get_cie_augmentation_data(Dwarf_Cie /* cie*/,
+ Dwarf_Small ** /* augdata */,
+ Dwarf_Unsigned * /* augdata_len */,
+ Dwarf_Error* /*error*/);
+/* GNU .eh_frame augmentation information, raw form, see
+ Linux Standard Base Core Specification version 3.0 . */
+int dwarf_get_fde_augmentation_data(Dwarf_Fde /* fde*/,
+ Dwarf_Small ** /* augdata */,
+ Dwarf_Unsigned * /* augdata_len */,
+ Dwarf_Error* /*error*/);
+
+int dwarf_expand_frame_instructions(Dwarf_Cie /*cie*/,
+ Dwarf_Ptr /*instruction*/,
+ Dwarf_Unsigned /*i_length*/,
+ Dwarf_Frame_Op** /*returned_op_list*/,
+ Dwarf_Signed* /*op_count*/,
+ Dwarf_Error* /*error*/);
/* Operations on .debug_aranges. */
int dwarf_get_aranges(Dwarf_Debug /*dbg*/,
- Dwarf_Arange** /*aranges*/,
- Dwarf_Signed * /*arange_count*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Arange** /*aranges*/,
+ Dwarf_Signed * /*arange_count*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_arange(
- Dwarf_Arange* /*aranges*/,
- Dwarf_Unsigned /*arange_count*/,
- Dwarf_Addr /*address*/,
- Dwarf_Arange * /*returned_arange*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Arange* /*aranges*/,
+ Dwarf_Unsigned /*arange_count*/,
+ Dwarf_Addr /*address*/,
+ Dwarf_Arange * /*returned_arange*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_cu_die_offset(
- Dwarf_Arange /*arange*/,
- Dwarf_Off* /*return_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Arange /*arange*/,
+ Dwarf_Off* /*return_offset*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_arange_cu_header_offset(
- Dwarf_Arange /*arange*/,
- Dwarf_Off* /*return_cu_header_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Arange /*arange*/,
+ Dwarf_Off* /*return_cu_header_offset*/,
+ Dwarf_Error* /*error*/);
#ifdef __sgi /* pragma is sgi MIPS only */
#pragma optional dwarf_get_arange_cu_header_offset
#endif
+/* DWARF2,3 interface. No longer really adequate (it was never
+ right for segmented address spaces, please switch
+ to using dwarf_get_arange_info_b instead.
+ There is no effective difference between these
+ functions if the address space
+ of the target is not segmented. */
int dwarf_get_arange_info(
- Dwarf_Arange /*arange*/,
- Dwarf_Addr* /*start*/,
- Dwarf_Unsigned* /*length*/,
- Dwarf_Off* /*cu_die_offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Arange /*arange*/,
+ Dwarf_Addr* /*start*/,
+ Dwarf_Unsigned* /*length*/,
+ Dwarf_Off* /*cu_die_offset*/,
+ Dwarf_Error* /*error*/ );
+
+/* New for DWARF4, entries may have segment information.
+ *segment is only meaningful if *segment_entry_size is non-zero. */
+int dwarf_get_arange_info_b(
+ Dwarf_Arange /*arange*/,
+ Dwarf_Unsigned* /*segment*/,
+ Dwarf_Unsigned* /*segment_entry_size*/,
+ Dwarf_Addr * /*start*/,
+ Dwarf_Unsigned* /*length*/,
+ Dwarf_Off * /*cu_die_offset*/,
+ Dwarf_Error * /*error*/ );
/* consumer .debug_macinfo information interface.
*/
struct Dwarf_Macro_Details_s {
- Dwarf_Off dmd_offset; /* offset, in the section,
+ Dwarf_Off dmd_offset; /* offset, in the section,
of this macro info */
- Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
- Dwarf_Signed dmd_lineno; /* the source line number where
+ Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
+ Dwarf_Signed dmd_lineno; /* the source line number where
applicable and vend_def # if
vendor_extension op
- */
+ */
- Dwarf_Signed dmd_fileindex;/* the source file index:
+ Dwarf_Signed dmd_fileindex;/* the source file index:
applies to define undef start_file
- */
- char * dmd_macro; /* macro name (with value for defineop)
+ */
+ char * dmd_macro; /* macro name (with value for defineop)
string from vendor ext
- */
+ */
};
-/* _dwarf_print_lines is for use by dwarfdump: it prints
+/* dwarf_print_lines is for use by dwarfdump: it prints
line info to stdout.
+ The _dwarf name is obsolete. Use dwarf_ instead.
+ Added extra argnument 2/2009 for better checking.
+*/
+int _dwarf_print_lines(Dwarf_Die /*cu_die*/,Dwarf_Error * /*error*/);
+int dwarf_print_lines(Dwarf_Die /*cu_die*/,Dwarf_Error * /*error*/,
+ int * /*error_count_out */);
+
+/* dwarf_check_lineheader lets dwarfdump get detailed messages
+ about some compiler errors we detect.
+ We return the count of detected errors throught the
+ pointer.
*/
-int _dwarf_print_lines(Dwarf_Die cu_die,Dwarf_Error * /*error*/);
+void dwarf_check_lineheader(Dwarf_Die /*cu_die*/,int *errcount_out);
-/* _dwarf_ld_sort_lines is for use solely by ld for
- rearranging lines in .debug_line in a .o created with a text
+/* dwarf_ld_sort_lines helps SGI IRIX ld
+ rearrange lines in .debug_line in a .o created with a text
section per function.
- -OPT:procedure_reorder=ON
+ -OPT:procedure_reorder=ON
where ld-cord (cord(1)ing by ld,
not by cord(1)) may have changed the function order.
+ The _dwarf name is obsolete. Use dwarf_ instead.
*/
int _dwarf_ld_sort_lines(
- void * orig_buffer,
- unsigned long buffer_len,
- int is_64_bit,
- int *any_change,
- int * err_code);
-
-/* Used by dwarfdump -v to print offsets, for debugging
- dwarf info
+ void * /*orig_buffer*/,
+ unsigned long /* buffer_len*/,
+ int /*is_64_bit*/,
+ int * /*any_change*/,
+ int * /*err_code*/);
+int dwarf_ld_sort_lines(
+ void * /*orig_buffer*/,
+ unsigned long /*buffer_len*/,
+ int /*is_64_bit*/,
+ int * /*any_change*/,
+ int * /*err_code*/);
+
+/* Used by dwarfdump -v to print fde offsets from debugging
+ info.
+ The _dwarf name is obsolete. Use dwarf_ instead.
*/
-int _dwarf_fde_section_offset(Dwarf_Debug dbg,Dwarf_Fde in_fde,
- Dwarf_Off *fde_off, Dwarf_Off *cie_off,
- Dwarf_Error *err);
-
-/* Used by dwarfdump -v to print offsets, for debugging
- dwarf info
+int _dwarf_fde_section_offset(Dwarf_Debug dbg,
+ Dwarf_Fde /*in_fde*/,
+ Dwarf_Off * /*fde_off*/,
+ Dwarf_Off * /*cie_off*/,
+ Dwarf_Error * /*err*/);
+int dwarf_fde_section_offset(Dwarf_Debug dbg,
+ Dwarf_Fde /*in_fde*/,
+ Dwarf_Off * /*fde_off*/,
+ Dwarf_Off * /*cie_off*/,
+ Dwarf_Error * /*err*/);
+
+/* Used by dwarfdump -v to print cie offsets from debugging
+ info.
+ The _dwarf name is obsolete. Use dwarf_ instead.
*/
-int _dwarf_cie_section_offset(Dwarf_Debug dbg,Dwarf_Cie in_cie,
- Dwarf_Off *cie_off,
- Dwarf_Error *err);
-
-
-
+int dwarf_cie_section_offset(Dwarf_Debug /*dbg*/,
+ Dwarf_Cie /*in_cie*/,
+ Dwarf_Off * /*cie_off */,
+ Dwarf_Error * /*err*/);
+int _dwarf_cie_section_offset(Dwarf_Debug /*dbg*/,
+ Dwarf_Cie /*in_cie*/,
+ Dwarf_Off * /*cie_off*/,
+ Dwarf_Error * /*err*/);
typedef struct Dwarf_Macro_Details_s Dwarf_Macro_Details;
@@ -1172,21 +1993,54 @@ int dwarf_get_all_defined_macros(Dwarf_Debug /*dbg*/,
char *dwarf_find_macro_value_start(char * /*macro_string*/);
int dwarf_get_macro_details(Dwarf_Debug /*dbg*/,
- Dwarf_Off /*macro_offset*/,
- Dwarf_Unsigned /*maximum_count*/,
+ Dwarf_Off /*macro_offset*/,
+ Dwarf_Unsigned /*maximum_count*/,
Dwarf_Signed * /*entry_count*/,
Dwarf_Macro_Details ** /*details*/,
- Dwarf_Error * /*err*/);
+ Dwarf_Error * /*err*/);
int dwarf_get_address_size(Dwarf_Debug /*dbg*/,
- Dwarf_Half * /*addr_size*/,
- Dwarf_Error * /*error*/);
+ Dwarf_Half * /*addr_size*/,
+ Dwarf_Error * /*error*/);
+int dwarf_get_die_address_size(Dwarf_Die /*die*/,
+ Dwarf_Half * /*addr_size*/,
+ Dwarf_Error * /*error*/);
+
+/* The dwarf specification separates FORMs into
+different classes. To do the seperation properly
+requires 4 pieces of data as of DWARF4 (thus the
+function arguments listed here).
+The DWARF4 specification class definition suffices to
+describe all DWARF versions.
+See section 7.5.4, Attribute Encodings.
+A return of DW_FORM_CLASS_UNKNOWN means we could not properly figure
+out what form-class it is.
+
+ DW_FORM_CLASS_FRAMEPTR is MIPS/IRIX only, and refers
+ to the DW_AT_MIPS_fde attribute (a reference to the
+ .debug_frame section).
+*/
+enum Dwarf_Form_Class {
+ DW_FORM_CLASS_UNKNOWN, DW_FORM_CLASS_ADDRESS,
+ DW_FORM_CLASS_BLOCK, DW_FORM_CLASS_CONSTANT,
+ DW_FORM_CLASS_EXPRLOC, DW_FORM_CLASS_FLAG,
+ DW_FORM_CLASS_LINEPTR, DW_FORM_CLASS_LOCLISTPTR,
+ DW_FORM_CLASS_MACPTR, DW_FORM_CLASS_RANGELISTPTR,
+ DW_FORM_CLASS_REFERENCE, DW_FORM_CLASS_STRING,
+ DW_FORM_CLASS_FRAMEPTR
+};
+
+enum Dwarf_Form_Class dwarf_get_form_class(
+ Dwarf_Half /* dwversion */,
+ Dwarf_Half /* attrnum */,
+ Dwarf_Half /*offset_size */,
+ Dwarf_Half /*form*/);
/* utility operations */
-Dwarf_Unsigned dwarf_errno(Dwarf_Error /*error*/);
+Dwarf_Unsigned dwarf_errno(Dwarf_Error /*error*/);
-char* dwarf_errmsg(Dwarf_Error /*error*/);
+char* dwarf_errmsg(Dwarf_Error /*error*/);
/* stringcheck zero is default and means do all
** string length validity checks.
@@ -1199,6 +2053,23 @@ char* dwarf_errmsg(Dwarf_Error /*error*/);
*/
int dwarf_set_stringcheck(int /*stringcheck*/);
+/* 'apply' defaults to 1 and means do all
+ * 'rela' relocations on reading in a dwarf object section with
+ * such relocations.
+ * Call with parameter value 0 to turn off application of
+ * such relocations.
+ * Since the static linker leaves 'bogus' data in object sections
+ * with a 'rela' relocation section such data cannot be read
+ * sensibly without processing the relocations. Such relocations
+ * do not exist in executables and shared objects (.so), the
+ * relocations only exist in plain .o relocatable object files.
+ * Actual value saved and returned is only 8 bits! Upper bits
+ * ignored by libdwarf (and zero on return).
+ * Returns previous value.
+ * */
+int dwarf_set_reloc_application(int /*apply*/);
+
+
/* Unimplemented */
Dwarf_Handler dwarf_seterrhand(Dwarf_Debug /*dbg*/, Dwarf_Handler /*errhand*/);
@@ -1211,31 +2082,31 @@ void dwarf_dealloc(Dwarf_Debug /*dbg*/, void* /*space*/,
/* DWARF Producer Interface */
typedef int (*Dwarf_Callback_Func)(
- char* /*name*/,
- int /*size*/,
- Dwarf_Unsigned /*type*/,
- Dwarf_Unsigned /*flags*/,
- Dwarf_Unsigned /*link*/,
- Dwarf_Unsigned /*info*/,
- int* /*sect name index*/,
- int* /*error*/);
+ char* /*name*/,
+ int /*size*/,
+ Dwarf_Unsigned /*type*/,
+ Dwarf_Unsigned /*flags*/,
+ Dwarf_Unsigned /*link*/,
+ Dwarf_Unsigned /*info*/,
+ int* /*sect name index*/,
+ int* /*error*/);
Dwarf_P_Debug dwarf_producer_init(
- Dwarf_Unsigned /*creation_flags*/,
- Dwarf_Callback_Func /*func*/,
- Dwarf_Handler /*errhand*/,
- Dwarf_Ptr /*errarg*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*creation_flags*/,
+ Dwarf_Callback_Func /*func*/,
+ Dwarf_Handler /*errhand*/,
+ Dwarf_Ptr /*errarg*/,
+ Dwarf_Error* /*error*/);
typedef int (*Dwarf_Callback_Func_b)(
- char* /*name*/,
- int /*size*/,
- Dwarf_Unsigned /*type*/,
- Dwarf_Unsigned /*flags*/,
- Dwarf_Unsigned /*link*/,
- Dwarf_Unsigned /*info*/,
- Dwarf_Unsigned* /*sect_name_index*/,
- int* /*error*/);
+ char* /*name*/,
+ int /*size*/,
+ Dwarf_Unsigned /*type*/,
+ Dwarf_Unsigned /*flags*/,
+ Dwarf_Unsigned /*link*/,
+ Dwarf_Unsigned /*info*/,
+ Dwarf_Unsigned* /*sect_name_index*/,
+ int* /*error*/);
Dwarf_P_Debug dwarf_producer_init_b(
@@ -1247,32 +2118,52 @@ Dwarf_P_Debug dwarf_producer_init_b(
Dwarf_Signed dwarf_transform_to_disk_form(Dwarf_P_Debug /*dbg*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Error* /*error*/);
Dwarf_Ptr dwarf_get_section_bytes(Dwarf_P_Debug /*dbg*/,
- Dwarf_Signed /*dwarf_section*/,
- Dwarf_Signed* /*elf_section_index*/,
- Dwarf_Unsigned* /*length*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Signed /*dwarf_section*/,
+ Dwarf_Signed* /*elf_section_index*/,
+ Dwarf_Unsigned* /*length*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_relocation_info_count(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_Unsigned * /*count_of_relocation_sections*/,
- int * /*drd_buffer_version*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_Unsigned * /*count_of_relocation_sections*/,
+ int * /*drd_buffer_version*/,
+ Dwarf_Error* /*error*/);
int dwarf_get_relocation_info(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_Signed * /*elf_section_index*/,
- Dwarf_Signed * /*elf_section_index_link*/,
- Dwarf_Unsigned * /*relocation_buffer_count*/,
- Dwarf_Relocation_Data * /*reldata_buffer*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_Signed * /*elf_section_index*/,
+ Dwarf_Signed * /*elf_section_index_link*/,
+ Dwarf_Unsigned * /*relocation_buffer_count*/,
+ Dwarf_Relocation_Data * /*reldata_buffer*/,
+ Dwarf_Error* /*error*/);
/* v1: no drd_length field, enum explicit */
/* v2: has the drd_length field, enum value in uchar member */
#define DWARF_DRD_BUFFER_VERSION 2
+/* Markers are not written to DWARF2/3/4, they are user
+ defined and may be used for any purpose.
+*/
+Dwarf_Signed dwarf_get_die_markers(
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Marker * /*marker_list*/,
+ Dwarf_Unsigned * /*marker_count*/,
+ Dwarf_Error * /*error*/);
+
+int dwarf_get_string_attributes_count(Dwarf_P_Debug,
+ Dwarf_Unsigned *,
+ int *,
+ Dwarf_Error *);
+
+int dwarf_get_string_attributes_info(Dwarf_P_Debug,
+ Dwarf_Signed *,
+ Dwarf_Unsigned *,
+ Dwarf_P_String_Attr *,
+ Dwarf_Error *);
+
void dwarf_reset_section_bytes(Dwarf_P_Debug /*dbg*/);
Dwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug /*dbg*/,
@@ -1280,323 +2171,566 @@ Dwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug /*dbg*/,
/* Producer attribute addition functions. */
Dwarf_P_Attribute dwarf_add_AT_targ_address(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- Dwarf_Unsigned /*pc_value*/,
- Dwarf_Signed /*sym_index*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Unsigned /*pc_value*/,
+ Dwarf_Signed /*sym_index*/,
+ Dwarf_Error* /*error*/);
+
+Dwarf_P_Attribute dwarf_add_AT_block(Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Small* /*block_data*/,
+ Dwarf_Unsigned /*block_len*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_targ_address_b(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- Dwarf_Unsigned /*pc_value*/,
- Dwarf_Unsigned /*sym_index*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Unsigned /*pc_value*/,
+ Dwarf_Unsigned /*sym_index*/,
+ Dwarf_Error* /*error*/);
+
+Dwarf_P_Attribute dwarf_add_AT_ref_address(Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Unsigned /*pc_value*/,
+ Dwarf_Unsigned /*sym_index*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_unsigned_const(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- Dwarf_Unsigned /*value*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Unsigned /*value*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_signed_const(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- Dwarf_Signed /*value*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Signed /*value*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_reference(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- Dwarf_P_Die /*otherdie*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_P_Die /*otherdie*/,
+ Dwarf_Error* /*error*/);
+
+Dwarf_P_Attribute dwarf_add_AT_dataref(
+ Dwarf_P_Debug /* dbg*/,
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Unsigned /*pcvalue*/,
+ Dwarf_Unsigned /*sym_index*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_const_value_string(Dwarf_P_Die /*ownerdie*/,
- char* /*string_value*/,
- Dwarf_Error* /*error*/);
+ char* /*string_value*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- Dwarf_P_Expr /*loc_expr*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_P_Expr /*loc_expr*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_string(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- char* /*string*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ char* /*string*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_flag(Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Half /*attr*/,
- Dwarf_Small /*flag*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Half /*attr*/,
+ Dwarf_Small /*flag*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_producer(Dwarf_P_Die /*ownerdie*/,
- char* /*producer_string*/,
- Dwarf_Error* /*error*/);
+ char* /*producer_string*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die /*ownerdie*/,
- Dwarf_Signed /*signed_value*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Signed /*signed_value*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_const_value_unsignedint(
- Dwarf_P_Die /*ownerdie*/,
- Dwarf_Unsigned /*unsigned_value*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*ownerdie*/,
+ Dwarf_Unsigned /*unsigned_value*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die /*ownerdie*/,
- char* /*current_working_directory*/,
- Dwarf_Error* /*error*/);
+ char* /*current_working_directory*/,
+ Dwarf_Error* /*error*/);
-Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die /*die*/,
- char* /*name*/,
- Dwarf_Error* /*error*/);
+Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die /*die*/,
+ char* /*name*/,
+ Dwarf_Error* /*error*/);
/* Producer line creation functions (.debug_line) */
Dwarf_Unsigned dwarf_add_directory_decl(Dwarf_P_Debug /*dbg*/,
- char* /*name*/,
- Dwarf_Error* /*error*/);
+ char* /*name*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_file_decl(Dwarf_P_Debug /*dbg*/,
- char* /*name*/,
- Dwarf_Unsigned /*dir_index*/,
- Dwarf_Unsigned /*time_last_modified*/,
- Dwarf_Unsigned /*length*/,
- Dwarf_Error* /*error*/);
+ char* /*name*/,
+ Dwarf_Unsigned /*dir_index*/,
+ Dwarf_Unsigned /*time_last_modified*/,
+ Dwarf_Unsigned /*length*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_line_entry(Dwarf_P_Debug /*dbg*/,
- Dwarf_Unsigned /*file_index*/,
- Dwarf_Addr /*code_address*/,
- Dwarf_Unsigned /*lineno*/,
- Dwarf_Signed /*column_number*/,
- Dwarf_Bool /*is_source_stmt_begin*/,
- Dwarf_Bool /*is_basic_block_begin*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*file_index*/,
+ Dwarf_Addr /*code_address*/,
+ Dwarf_Unsigned /*lineno*/,
+ Dwarf_Signed /*column_number*/,
+ Dwarf_Bool /*is_source_stmt_begin*/,
+ Dwarf_Bool /*is_basic_block_begin*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_lne_set_address(Dwarf_P_Debug /*dbg*/,
- Dwarf_Unsigned /*offset*/,
- Dwarf_Unsigned /*symbol_index*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*offset*/,
+ Dwarf_Unsigned /*symbol_index*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_lne_end_sequence(Dwarf_P_Debug /*dbg*/,
- Dwarf_Addr /*end_address*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr /*end_address*/,
+ Dwarf_Error* /*error*/);
/* Producer .debug_frame functions */
Dwarf_Unsigned dwarf_add_frame_cie(Dwarf_P_Debug /*dbg*/,
- char* /*augmenter*/,
- Dwarf_Small /*code_alignent_factor*/,
- Dwarf_Small /*data_alignment_factor*/,
- Dwarf_Small /*return_address_reg*/,
- Dwarf_Ptr /*initialization_bytes*/,
- Dwarf_Unsigned /*init_byte_len*/,
- Dwarf_Error* /*error*/);
+ char* /*augmenter*/,
+ Dwarf_Small /*code_alignent_factor*/,
+ Dwarf_Small /*data_alignment_factor*/,
+ Dwarf_Small /*return_address_reg*/,
+ Dwarf_Ptr /*initialization_bytes*/,
+ Dwarf_Unsigned /*init_byte_len*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_frame_fde(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Fde /*fde*/,
- Dwarf_P_Die /*corresponding subprogram die*/,
- Dwarf_Unsigned /*cie_to_use*/,
- Dwarf_Unsigned /*virt_addr_of_described_code*/,
- Dwarf_Unsigned /*length_of_code*/,
- Dwarf_Unsigned /*symbol_index*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Fde /*fde*/,
+ Dwarf_P_Die /*corresponding subprogram die*/,
+ Dwarf_Unsigned /*cie_to_use*/,
+ Dwarf_Unsigned /*virt_addr_of_described_code*/,
+ Dwarf_Unsigned /*length_of_code*/,
+ Dwarf_Unsigned /*symbol_index*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_frame_fde_b(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Fde /*fde*/,
- Dwarf_P_Die /*die*/,
- Dwarf_Unsigned /*cie*/,
- Dwarf_Addr /*virt_addr*/,
- Dwarf_Unsigned /*code_len*/,
- Dwarf_Unsigned /*sym_idx*/,
- Dwarf_Unsigned /*sym_idx_of_end*/,
- Dwarf_Addr /*offset_from_end_sym*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Fde /*fde*/,
+ Dwarf_P_Die /*die*/,
+ Dwarf_Unsigned /*cie*/,
+ Dwarf_Addr /*virt_addr*/,
+ Dwarf_Unsigned /*code_len*/,
+ Dwarf_Unsigned /*sym_idx*/,
+ Dwarf_Unsigned /*sym_idx_of_end*/,
+ Dwarf_Addr /*offset_from_end_sym*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_frame_info_b(
Dwarf_P_Debug dbg /*dbg*/,
- Dwarf_P_Fde /*fde*/,
- Dwarf_P_Die /*die*/,
- Dwarf_Unsigned /*cie*/,
- Dwarf_Addr /*virt_addr*/,
- Dwarf_Unsigned /*code_len*/,
- Dwarf_Unsigned /*symidx*/,
- Dwarf_Unsigned /* end_symbol */,
- Dwarf_Addr /* offset_from_end_symbol */,
- Dwarf_Signed /*offset_into_exception_tables*/,
- Dwarf_Unsigned /*exception_table_symbol*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Fde /*fde*/,
+ Dwarf_P_Die /*die*/,
+ Dwarf_Unsigned /*cie*/,
+ Dwarf_Addr /*virt_addr*/,
+ Dwarf_Unsigned /*code_len*/,
+ Dwarf_Unsigned /*symidx*/,
+ Dwarf_Unsigned /*end_symbol */,
+ Dwarf_Addr /*offset_from_end_symbol */,
+ Dwarf_Signed /*offset_into_exception_tables*/,
+ Dwarf_Unsigned /*exception_table_symbol*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_frame_info(
Dwarf_P_Debug dbg /*dbg*/,
- Dwarf_P_Fde /*fde*/,
- Dwarf_P_Die /*die*/,
- Dwarf_Unsigned /*cie*/,
- Dwarf_Addr /*virt_addr*/,
- Dwarf_Unsigned /*code_len*/,
- Dwarf_Unsigned /*symidx*/,
- Dwarf_Signed /*offset_into_exception_tables*/,
- Dwarf_Unsigned /*exception_table_symbol*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Fde /*fde*/,
+ Dwarf_P_Die /*die*/,
+ Dwarf_Unsigned /*cie*/,
+ Dwarf_Addr /*virt_addr*/,
+ Dwarf_Unsigned /*code_len*/,
+ Dwarf_Unsigned /*symidx*/,
+ Dwarf_Signed /*offset_into_exception_tables*/,
+ Dwarf_Unsigned /*exception_table_symbol*/,
+ Dwarf_Error* /*error*/);
Dwarf_P_Fde dwarf_add_fde_inst(
- Dwarf_P_Fde /*fde*/,
- Dwarf_Small /*op*/,
- Dwarf_Unsigned /*val1*/,
- Dwarf_Unsigned /*val2*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Fde /*fde*/,
+ Dwarf_Small /*op*/,
+ Dwarf_Unsigned /*val1*/,
+ Dwarf_Unsigned /*val2*/,
+ Dwarf_Error* /*error*/);
-Dwarf_P_Fde dwarf_new_fde(Dwarf_P_Debug /*dbg*/, Dwarf_Error* /*error*/);
+/* New September 17, 2009 */
+int dwarf_insert_fde_inst_bytes(
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Fde /*fde*/,
+ Dwarf_Unsigned /*len*/,
+ Dwarf_Ptr /*ibytes*/,
+ Dwarf_Error* /*error*/);
+
+
+Dwarf_P_Fde dwarf_new_fde(Dwarf_P_Debug /*dbg*/, Dwarf_Error* /*error*/);
Dwarf_P_Fde dwarf_fde_cfa_offset(
- Dwarf_P_Fde /*fde*/,
- Dwarf_Unsigned /*register_number*/,
- Dwarf_Signed /*offset*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Fde /*fde*/,
+ Dwarf_Unsigned /*register_number*/,
+ Dwarf_Signed /*offset*/,
+ Dwarf_Error* /*error*/);
/* die creation & addition routines */
Dwarf_P_Die dwarf_new_die(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_Tag /*tag*/,
- Dwarf_P_Die /*parent*/,
- Dwarf_P_Die /*child*/,
- Dwarf_P_Die /*left */,
- Dwarf_P_Die /*right*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_Tag /*tag*/,
+ Dwarf_P_Die /*parent*/,
+ Dwarf_P_Die /*child*/,
+ Dwarf_P_Die /*left */,
+ Dwarf_P_Die /*right*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_die_to_debug(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*die*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ Dwarf_Error* /*error*/);
+
+/* Markers are not written to DWARF2/3/4, they are user
+ defined and may be used for any purpose.
+*/
+Dwarf_Unsigned dwarf_add_die_marker(
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ Dwarf_Unsigned /*marker*/,
+ Dwarf_Error * /*error*/);
+
+Dwarf_Unsigned dwarf_get_die_marker(
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ Dwarf_Unsigned * /*marker*/,
+ Dwarf_Error * /*error*/);
Dwarf_P_Die dwarf_die_link(
- Dwarf_P_Die /*die*/,
- Dwarf_P_Die /*parent*/,
- Dwarf_P_Die /*child*/,
- Dwarf_P_Die /*left*/,
- Dwarf_P_Die /*right*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Die /*die*/,
+ Dwarf_P_Die /*parent*/,
+ Dwarf_P_Die /*child*/,
+ Dwarf_P_Die /*left*/,
+ Dwarf_P_Die /*right*/,
+ Dwarf_Error* /*error*/);
+
+void dwarf_dealloc_compressed_block(
+ Dwarf_P_Debug,
+ void *
+);
+
+/* Call this passing in return value from dwarf_uncompress_integer_block()
+ * to free the space the decompression allocated. */
+void dwarf_dealloc_uncompressed_block(
+ Dwarf_Debug,
+ void *
+);
+
+void * dwarf_compress_integer_block(
+ Dwarf_P_Debug, /* dbg */
+ Dwarf_Bool, /* signed==true (or unsigned) */
+ Dwarf_Small, /* size of integer units: 8, 16, 32, 64 */
+ void*, /* data */
+ Dwarf_Unsigned, /* number of elements */
+ Dwarf_Unsigned*, /* number of bytes in output block */
+ Dwarf_Error* /* error */
+);
+
+/* Decode an array of signed leb integers (so of course the
+ * array is not composed of fixed length values, but is instead
+ * a sequence of sleb values).
+ * Returns a DW_DLV_BADADDR on error.
+ * Otherwise returns a pointer to an array of 32bit integers.
+ * The signed argument must be non-zero (the decode
+ * assumes sleb integers in the input data) at this time.
+ * Size of integer units must be 32 (32 bits each) at this time.
+ * Number of bytes in block is a byte count (not array count).
+ * Returns number of units in output block (ie, number of elements
+ * of the array that the return value points to) thru the argument.
+ */
+void * dwarf_uncompress_integer_block(
+ Dwarf_Debug, /* dbg */
+ Dwarf_Bool, /* signed==true (or unsigned) */
+ Dwarf_Small, /* size of integer units: 8, 16, 32, 64 */
+ void*, /* input data */
+ Dwarf_Unsigned, /* number of bytes in input */
+ Dwarf_Unsigned*, /* number of units in output block */
+ Dwarf_Error* /* error */
+);
/* Operations to create location expressions. */
Dwarf_P_Expr dwarf_new_expr(Dwarf_P_Debug /*dbg*/, Dwarf_Error* /*error*/);
+void dwarf_expr_reset(
+ Dwarf_P_Expr /*expr*/,
+ Dwarf_Error* /*error*/);
+
Dwarf_Unsigned dwarf_add_expr_gen(
- Dwarf_P_Expr /*expr*/,
- Dwarf_Small /*opcode*/,
- Dwarf_Unsigned /*val1*/,
- Dwarf_Unsigned /*val2*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Expr /*expr*/,
+ Dwarf_Small /*opcode*/,
+ Dwarf_Unsigned /*val1*/,
+ Dwarf_Unsigned /*val2*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_expr_addr(
- Dwarf_P_Expr /*expr*/,
- Dwarf_Unsigned /*addr*/,
- Dwarf_Signed /*sym_index*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Expr /*expr*/,
+ Dwarf_Unsigned /*addr*/,
+ Dwarf_Signed /*sym_index*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_expr_addr_b(
- Dwarf_P_Expr /*expr*/,
- Dwarf_Unsigned /*addr*/,
- Dwarf_Unsigned /*sym_index*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Expr /*expr*/,
+ Dwarf_Unsigned /*addr*/,
+ Dwarf_Unsigned /*sym_index*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_expr_current_offset(
- Dwarf_P_Expr /*expr*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Expr /*expr*/,
+ Dwarf_Error* /*error*/);
Dwarf_Addr dwarf_expr_into_block(
- Dwarf_P_Expr /*expr*/,
- Dwarf_Unsigned* /*length*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Expr /*expr*/,
+ Dwarf_Unsigned* /*length*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_arange(Dwarf_P_Debug /*dbg*/,
- Dwarf_Addr /*begin_address*/,
- Dwarf_Unsigned /*length*/,
- Dwarf_Signed /*symbol_index*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Addr /*begin_address*/,
+ Dwarf_Unsigned /*length*/,
+ Dwarf_Signed /*symbol_index*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_arange_b(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_Addr /*begin_address*/,
- Dwarf_Unsigned /*length*/,
- Dwarf_Unsigned /*symbol_index*/,
- Dwarf_Unsigned /*end_symbol_index*/,
- Dwarf_Addr /*offset_from_end_symbol*/,
- Dwarf_Error * /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_Addr /*begin_address*/,
+ Dwarf_Unsigned /*length*/,
+ Dwarf_Unsigned /*symbol_index*/,
+ Dwarf_Unsigned /*end_symbol_index*/,
+ Dwarf_Addr /*offset_from_end_symbol*/,
+ Dwarf_Error * /*error*/);
Dwarf_Unsigned dwarf_add_pubname(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*die*/,
- char* /*pubname_name*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ char* /*pubname_name*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_funcname(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*die*/,
- char* /*func_name*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ char* /*func_name*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_typename(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*die*/,
- char* /*type_name*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ char* /*type_name*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_varname(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*die*/,
- char* /*var_name*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ char* /*var_name*/,
+ Dwarf_Error* /*error*/);
Dwarf_Unsigned dwarf_add_weakname(
- Dwarf_P_Debug /*dbg*/,
- Dwarf_P_Die /*die*/,
- char* /*weak_name*/,
- Dwarf_Error* /*error*/);
+ Dwarf_P_Debug /*dbg*/,
+ Dwarf_P_Die /*die*/,
+ char* /*weak_name*/,
+ Dwarf_Error* /*error*/);
/* .debug_macinfo producer functions
Functions must be called in right order: the section is output
In the order these are presented.
*/
int dwarf_def_macro(Dwarf_P_Debug /*dbg*/,
- Dwarf_Unsigned /*line*/,
- char * /*macname, with (arglist), no space before (*/,
- char * /*macvalue*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*line*/,
+ char * /*macname, with (arglist), no space before (*/,
+ char * /*macvalue*/,
+ Dwarf_Error* /*error*/);
int dwarf_undef_macro(Dwarf_P_Debug /*dbg*/,
- Dwarf_Unsigned /*line*/,
- char * /*macname, no arglist, of course*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*line*/,
+ char * /*macname, no arglist, of course*/,
+ Dwarf_Error* /*error*/);
int dwarf_start_macro_file(Dwarf_P_Debug /*dbg*/,
- Dwarf_Unsigned /*fileindex*/,
- Dwarf_Unsigned /*linenumber*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*fileindex*/,
+ Dwarf_Unsigned /*linenumber*/,
+ Dwarf_Error* /*error*/);
int dwarf_end_macro_file(Dwarf_P_Debug /*dbg*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Error* /*error*/);
int dwarf_vendor_ext(Dwarf_P_Debug /*dbg*/,
- Dwarf_Unsigned /*constant*/,
- char * /*string*/,
- Dwarf_Error* /*error*/);
+ Dwarf_Unsigned /*constant*/,
+ char * /*string*/,
+ Dwarf_Error* /*error*/);
/* end macinfo producer functions */
-
-void dwarf_p_dealloc(void* /*space*/, Dwarf_Unsigned /*type*/);
-
int dwarf_attr_offset(Dwarf_Die /*die*/,
Dwarf_Attribute /*attr of above die*/,
Dwarf_Off * /*returns offset thru this ptr */,
Dwarf_Error * /*error*/);
+/* This is a hack so clients can verify offsets.
+ Added April 2005 so that debugger can detect broken offsets
+ (which happened in an IRIX executable larger than 2GB
+ with MIPSpro 7.3.1.3 toolchain.).
+*/
+int
+dwarf_get_section_max_offsets(Dwarf_Debug /*dbg*/,
+ Dwarf_Unsigned * /*debug_info_size*/,
+ Dwarf_Unsigned * /*debug_abbrev_size*/,
+ Dwarf_Unsigned * /*debug_line_size*/,
+ Dwarf_Unsigned * /*debug_loc_size*/,
+ Dwarf_Unsigned * /*debug_aranges_size*/,
+ Dwarf_Unsigned * /*debug_macinfo_size*/,
+ Dwarf_Unsigned * /*debug_pubnames_size*/,
+ Dwarf_Unsigned * /*debug_str_size*/,
+ Dwarf_Unsigned * /*debug_frame_size*/,
+ Dwarf_Unsigned * /*debug_ranges_size*/,
+ Dwarf_Unsigned * /*debug_pubtypes_size*/);
+
+/* Multiple releases spelled 'initial' as 'inital' .
+ The 'inital' spelling should not be used. */
+Dwarf_Half dwarf_set_frame_rule_inital_value(Dwarf_Debug /*dbg*/,
+ Dwarf_Half /*value*/);
+/* Additional interface with correct 'initial' spelling. */
+/* It is likely you will want to call the following 5 functions
+ before accessing any frame information. All are useful
+ to tailor handling of pseudo-registers needed to turn
+ frame operation references into simpler forms and to
+ reflect ABI specific data. Of course altering libdwarf.h
+ and dwarf.h allow the same capabilities, but such header changes
+ do not let one change these values at runtime. */
+Dwarf_Half dwarf_set_frame_rule_initial_value(Dwarf_Debug /*dbg*/,
+ Dwarf_Half /*value*/);
+Dwarf_Half dwarf_set_frame_rule_table_size(Dwarf_Debug /*dbg*/,
+ Dwarf_Half /*value*/);
+Dwarf_Half dwarf_set_frame_cfa_value(Dwarf_Debug /*dbg*/,
+ Dwarf_Half /*value*/);
+Dwarf_Half dwarf_set_frame_same_value(Dwarf_Debug /*dbg*/,
+ Dwarf_Half /*value*/);
+Dwarf_Half dwarf_set_frame_undefined_value(Dwarf_Debug /*dbg*/,
+ Dwarf_Half /*value*/);
+
+/* As of April 27, 2009, this version with no diepointer is
+ obsolete though supported. Use dwarf_get_ranges_a() instead. */
+int dwarf_get_ranges(Dwarf_Debug /*dbg*/,
+ Dwarf_Off /*rangesoffset*/,
+ Dwarf_Ranges ** /*rangesbuf*/,
+ Dwarf_Signed * /*listlen*/,
+ Dwarf_Unsigned * /*bytecount*/,
+ Dwarf_Error * /*error*/);
+
+/* This adds the address_size argument. New April 27, 2009 */
+int dwarf_get_ranges_a(Dwarf_Debug /*dbg*/,
+ Dwarf_Off /*rangesoffset*/,
+ Dwarf_Die /* diepointer */,
+ Dwarf_Ranges ** /*rangesbuf*/,
+ Dwarf_Signed * /*listlen*/,
+ Dwarf_Unsigned * /*bytecount*/,
+ Dwarf_Error * /*error*/);
+
+void dwarf_ranges_dealloc(Dwarf_Debug /*dbg*/,
+ Dwarf_Ranges * /*rangesbuf*/,
+ Dwarf_Signed /*rangecount*/);
+
+/* The harmless error list is a circular buffer of
+ errors we note but which do not stop us from processing
+ the object. Created so dwarfdump or other tools
+ can report such inconsequential errors without causing
+ anything to stop early. */
+#define DW_HARMLESS_ERROR_CIRCULAR_LIST_DEFAULT_SIZE 4
+#define DW_HARMLESS_ERROR_MSG_STRING_SIZE 200
+/* User code supplies size of array of pointers errmsg_ptrs_array
+ in count and the array of pointers (the pointers themselves
+ need not be initialized).
+ The pointers returned in the array of pointers
+ are invalidated by ANY call to libdwarf.
+ Use them before making another libdwarf call!
+ The array of string pointers passed in always has
+ a final null pointer, so if there are N pointers the
+ and M actual strings, then MIN(M,N-1) pointers are
+ set to point to error strings. The array of pointers
+ to strings always terminates with a NULL pointer.
+ If 'count' is passed in zero then errmsg_ptrs_array
+ is not touched.
+
+ The function returns DW_DLV_NO_ENTRY if no harmless errors
+ were noted so far. Returns DW_DLV_OK if there are errors.
+ Never returns DW_DLV_ERROR.
+
+ Each call empties the error list (discarding all current entries).
+ If newerr_count is non-NULL the count of harmless errors
+ since the last call is returned through the pointer
+ (some may have been discarded or not returned, it is a circular
+ list...).
+ If DW_DLV_NO_ENTRY is returned none of the arguments
+ here are touched or used.
+ */
+int dwarf_get_harmless_error_list(Dwarf_Debug /*dbg*/,
+ unsigned /*count*/,
+ const char ** /*errmsg_ptrs_array*/,
+ unsigned * /*newerr_count*/);
+
+/* Insertion is only for testing the harmless error code, it is not
+ necessarily useful otherwise. */
+void dwarf_insert_harmless_error(Dwarf_Debug /*dbg*/,
+ char * /*newerror*/);
+
+/* The size of the circular list of strings may be set
+ and reset as needed. If it is shortened excess
+ messages are simply dropped. It returns the previous
+ size. If zero passed in the size is unchanged
+ and it simply returns the current size */
+unsigned dwarf_set_harmless_error_list_size(Dwarf_Debug /*dbg*/,
+ unsigned /*maxcount*/);
+/* The harmless error strings (if any) are freed when the dbg
+ is dwarf_finish()ed. */
+
+/* When the val_in is known these dwarf_get_TAG_name (etc)
+ functions return the string corresponding to the val_in passed in
+ through the pointer s_out and the value returned is DW_DLV_OK.
+ The strings are in static storage
+ and must not be freed.
+ If DW_DLV_NO_ENTRY is returned the val_in is not known and
+ *s_out is not set. DW_DLV_ERROR is never returned.*/
+
+extern int dwarf_get_TAG_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_children_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_FORM_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_AT_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_OP_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ATE_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_DS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_END_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ATCF_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ACCESS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_VIS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_VIRTUALITY_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_LANG_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ID_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_CC_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_INL_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ORD_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_DSC_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_LNS_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_LNE_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_MACINFO_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_CFA_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_EH_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_FRAME_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_CHILDREN_name(unsigned int /*val_in*/, const char ** /*s_out */);
+extern int dwarf_get_ADDR_name(unsigned int /*val_in*/, const char ** /*s_out */);
#ifdef __cplusplus
}
#endif
#endif /* _LIBDWARF_H */
+
diff --git a/usr/src/tools/ctf/dwarf/common/libdwarfdefs.h b/usr/src/tools/ctf/dwarf/common/libdwarfdefs.h
index 77d87b41e6..a564655b23 100644
--- a/usr/src/tools/ctf/dwarf/common/libdwarfdefs.h
+++ b/usr/src/tools/ctf/dwarf/common/libdwarfdefs.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -51,35 +51,41 @@
*/
-#if (!defined(HAVE___UINT32_T)) && defined(HAVE_SGIDEFS_H)
+#if (!defined(HAVE___UINT32_T)) && defined(HAVE___UINT32_T_IN_SGIDEFS_H)
#include <sgidefs.h> /* sgidefs.h defines them */
#define HAVE___UINT32_T 1
-#define HAVE___UINT64_T 1
#endif
+#if (!defined(HAVE___UINT64_T)) && defined(HAVE___UINT64_T_IN_SGIDEFS_H)
+#include <sgidefs.h> /* sgidefs.h defines them */
+#define HAVE___UINT64_T 1
+#endif
#if (!defined(HAVE___UINT32_T)) && \
defined(HAVE_SYS_TYPES_H) && \
defined(HAVE___UINT32_T_IN_SYS_TYPES_H)
# include <sys/types.h>
-/* we assume __[u]int32_t and __[u]int64_t defined
- since __uint32_t defined in the sys/types.h in use */
#define HAVE___UINT32_T 1
+#endif
+
+#if (!defined(HAVE___UINT64_T)) && \
+ defined(HAVE_SYS_TYPES_H) && \
+ defined(HAVE___UINT64_T_IN_SYS_TYPES_H)
+# include <sys/types.h>
#define HAVE___UINT64_T 1
#endif
#ifndef HAVE___UINT32_T
typedef int __int32_t;
typedef unsigned __uint32_t;
-
#define HAVE___UINT32_T 1
#endif
+
#ifndef HAVE___UINT64_T
typedef long long __int64_t;
typedef unsigned long long __uint64_t;
-
#define HAVE___UINT64_T 1
#endif
-#endif
+#endif /* LIBDWARFDEFS_H */
diff --git a/usr/src/tools/ctf/dwarf/common/malloc_check.c b/usr/src/tools/ctf/dwarf/common/malloc_check.c
new file mode 100644
index 0000000000..1c6e7738e4
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/malloc_check.c
@@ -0,0 +1,339 @@
+/*
+
+ Copyright (C) 2005 Silicon Graphics, Inc. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+
+
+/* malloc_check.c For checking dealloc completeness.
+
+ This code is as simple as possible and works ok for
+ reasonable size allocation counts.
+
+ It treats allocation as global, and so will not
+ work very well if an application opens more than one
+ Dwarf_Debug.
+
+*/
+
+#include <stdio.h>
+#include <stdlib.h> /* for exit() and various malloc
+ prototypes */
+#include "config.h"
+#include "dwarf_incl.h"
+#include "malloc_check.h"
+#ifdef WANT_LIBBDWARF_MALLOC_CHECK
+
+/* To turn off printing every entry, just change the define
+ to set PRINT_MALLOC_DETAILS 0.
+*/
+#define PRINT_MALLOC_DETAILS 0
+
+#define MC_TYPE_UNKNOWN 0
+#define MC_TYPE_ALLOC 1
+#define MC_TYPE_DEALLOC 2
+
+struct mc_data_s {
+ struct mc_data_s *mc_prev;
+ unsigned long mc_address; /* Assumes this is large enough to hold
+ a pointer! */
+
+ long mc_alloc_number; /* Assigned in order by when record
+ created. */
+ unsigned char mc_alloc_code; /* Allocation code, libdwarf. */
+ unsigned char mc_type;
+ unsigned char mc_dealloc_noted; /* Used on an ALLOC node. */
+ unsigned char mc_dealloc_noted_count; /* Used on an ALLOC
+ node. */
+};
+
+/*
+
+
+*/
+#define HASH_TABLE_SIZE 10501
+static struct mc_data_s *mc_data_hash[HASH_TABLE_SIZE];
+static long mc_data_list_size = 0;
+
+static char *alloc_type_name[MAX_DW_DLA + 1] = {
+ "",
+ "DW_DLA_STRING",
+ "DW_DLA_LOC",
+ "DW_DLA_LOCDESC",
+ "DW_DLA_ELLIST",
+ "DW_DLA_BOUNDS",
+ "DW_DLA_BLOCK",
+ "DW_DLA_DEBUG",
+ "DW_DLA_DIE",
+ "DW_DLA_LINE",
+ "DW_DLA_ATTR",
+ "DW_DLA_TYPE",
+ "DW_DLA_SUBSCR",
+ "DW_DLA_GLOBAL",
+ "DW_DLA_ERROR",
+ "DW_DLA_LIST",
+ "DW_DLA_LINEBUF",
+ "DW_DLA_ARANGE",
+ "DW_DLA_ABBREV",
+ "DW_DLA_FRAME_OP",
+ "DW_DLA_CIE",
+ "DW_DLA_FDE",
+ "DW_DLA_LOC_BLOCK",
+ "DW_DLA_FRAME_BLOCK",
+ "DW_DLA_FUNC",
+ "DW_DLA_TYPENAME",
+ "DW_DLA_VAR",
+ "DW_DLA_WEAK",
+ "DW_DLA_ADDR",
+ "DW_DLA_ABBREV_LIST",
+ "DW_DLA_CHAIN",
+ "DW_DLA_CU_CONTEXT",
+ "DW_DLA_FRAME",
+ "DW_DLA_GLOBAL_CONTEXT",
+ "DW_DLA_FILE_ENTRY",
+ "DW_DLA_LINE_CONTEXT",
+ "DW_DLA_LOC_CHAIN",
+ "DW_DLA_HASH_TABLE",
+ "DW_DLA_FUNC_CONTEXT",
+ "DW_DLA_TYPENAME_CONTEXT",
+ "DW_DLA_VAR_CONTEXT",
+ "DW_DLA_WEAK_CONTEXT",
+ "DW_DLA_PUBTYPES_CONTEXT"
+ /* Don't forget to expand this list if the list of codes
+ expands. */
+};
+
+static unsigned
+hash_address(unsigned long addr)
+{
+ unsigned long a = addr >> 2;
+
+ return a % HASH_TABLE_SIZE;
+}
+
+#if PRINT_MALLOC_DETAILS
+static void
+print_alloc_dealloc_detail(unsigned long addr,
+ int code, char *whichisit)
+{
+ fprintf(stderr,
+ "%s addr 0x%lx code %d (%s) entry %ld\n",
+ whichisit, addr, code, alloc_type_name[code],
+ mc_data_list_size);
+}
+#else
+#define print_alloc_dealloc_detail(a,b,c) /* nothing */
+#endif
+
+/* Create a zeroed struct or die. */
+static void *
+newone(void)
+{
+ struct mc_data_s *newd = malloc(sizeof(struct mc_data_s));
+
+ if (newd == 0) {
+ fprintf(stderr, "out of memory , # %ld\n", mc_data_list_size);
+ exit(1);
+ }
+ memset(newd, 0, sizeof(struct mc_data_s));
+ return newd;
+}
+
+/* Notify checker that get_alloc has allocated user data. */
+void
+dwarf_malloc_check_alloc_data(void *addr_in, unsigned char code)
+{
+ struct mc_data_s *newd = newone();
+ unsigned long addr = (unsigned long) addr_in;
+ struct mc_data_s **base = &mc_data_hash[hash_address(addr)];
+
+ print_alloc_dealloc_detail(addr, code, "alloc ");
+ newd->mc_address = addr;
+ newd->mc_alloc_code = code;
+ newd->mc_type = MC_TYPE_ALLOC;
+ newd->mc_alloc_number = mc_data_list_size;
+ newd->mc_prev = *base;
+ *base = newd;
+ newd->mc_alloc_number = mc_data_list_size;
+ mc_data_list_size += 1;
+}
+
+static void
+print_entry(char *msg, struct mc_data_s *data)
+{
+ fprintf(stderr,
+ "%s: 0x%08lx code %2d (%s) type %s dealloc noted %u ct %u\n",
+ msg,
+ (long) data->mc_address,
+ data->mc_alloc_code,
+ alloc_type_name[data->mc_alloc_code],
+ (data->mc_type == MC_TYPE_ALLOC) ? "alloc " :
+ (data->mc_type == MC_TYPE_DEALLOC) ? "dealloc" : "unknown",
+ (unsigned) data->mc_dealloc_noted,
+ (unsigned) data->mc_dealloc_noted_count);
+}
+
+/* newd is a 'dealloc'.
+*/
+static long
+balanced_by_alloc_p(struct mc_data_s *newd,
+ long *addr_match_num,
+ struct mc_data_s **addr_match,
+ struct mc_data_s *base)
+{
+ struct mc_data_s *cur = base;
+
+ for (; cur; cur = cur->mc_prev) {
+ if (cur->mc_address == newd->mc_address) {
+ if (cur->mc_type == MC_TYPE_ALLOC) {
+ if (cur->mc_alloc_code == newd->mc_alloc_code) {
+ *addr_match = cur;
+ *addr_match_num = cur->mc_alloc_number;
+ return cur->mc_alloc_number;
+ } else {
+ /* code mismatch */
+ *addr_match = cur;
+ *addr_match_num = cur->mc_alloc_number;
+ return -1;
+ }
+ } else {
+ /* Unbalanced new/del */
+ *addr_match = cur;
+ *addr_match_num = cur->mc_alloc_number;
+ return -1;
+ }
+ }
+ }
+ return -1;
+}
+
+/* A dealloc is to take place. Ensure it balances an alloc.
+*/
+void
+dwarf_malloc_check_dealloc_data(void *addr_in, unsigned char code)
+{
+ struct mc_data_s *newd = newone();
+ long prev;
+ long addr_match_num = -1;
+ struct mc_data_s *addr_match = 0;
+ unsigned long addr = (unsigned long) addr_in;
+ struct mc_data_s **base = &mc_data_hash[hash_address(addr)];
+
+
+ print_alloc_dealloc_detail(addr, code, "dealloc ");
+ newd->mc_address = (unsigned long) addr;
+ newd->mc_alloc_code = code;
+ newd->mc_type = MC_TYPE_DEALLOC;
+ newd->mc_prev = *base;
+ prev =
+ balanced_by_alloc_p(newd, &addr_match_num, &addr_match, *base);
+ if (prev < 0) {
+ fprintf(stderr,
+ "Unbalanced dealloc at index %ld\n", mc_data_list_size);
+ print_entry("new", newd);
+ fprintf(stderr, "addr-match_num? %ld\n", addr_match_num);
+ if (addr_match) {
+ print_entry("prev entry", addr_match);
+ if (addr_match->mc_dealloc_noted > 1) {
+ fprintf(stderr, "Above is Duplicate dealloc!\n");
+ }
+ }
+ abort();
+ exit(3);
+ }
+ addr_match->mc_dealloc_noted = 1;
+ addr_match->mc_dealloc_noted_count += 1;
+ if (addr_match->mc_dealloc_noted_count > 1) {
+ fprintf(stderr, "Double dealloc entry %ld\n", addr_match_num);
+ print_entry("new dealloc entry", newd);
+ print_entry("bad alloc entry", addr_match);
+ }
+ *base = newd;
+ mc_data_list_size += 1;
+}
+
+/* Final check for leaks.
+*/
+void
+dwarf_malloc_check_complete(char *msg)
+{
+ long i = 0;
+ long total = mc_data_list_size;
+ long hash_slots_used = 0;
+ long max_chain_length = 0;
+
+ fprintf(stderr, "Run complete, %s. %ld entries\n", msg, total);
+ for (; i < HASH_TABLE_SIZE; ++i) {
+ struct mc_data_s *cur = mc_data_hash[i];
+ long cur_chain_length = 0;
+
+ if (cur == 0)
+ continue;
+ ++hash_slots_used;
+ for (; cur; cur = cur->mc_prev) {
+ ++cur_chain_length;
+ if (cur->mc_type == MC_TYPE_ALLOC) {
+ if (cur->mc_dealloc_noted) {
+ if (cur->mc_dealloc_noted > 1) {
+ fprintf(stderr,
+ " Duplicate dealloc! entry %ld\n",
+ cur->mc_alloc_number);
+ print_entry("duplicate dealloc", cur);
+
+ }
+ continue;
+ } else {
+ fprintf(stderr, "malloc no dealloc, entry %ld\n",
+ cur->mc_alloc_number);
+ print_entry("dangle", cur);
+ }
+ } else {
+ /* mc_type is MC_TYPE_DEALLOC, already checked */
+
+ }
+ }
+ if (cur_chain_length > max_chain_length) {
+ max_chain_length = cur_chain_length;
+ }
+ }
+ fprintf(stderr, "mc hash table slots=%ld, "
+ "used=%ld, maxchain=%ld\n",
+ (long) HASH_TABLE_SIZE, hash_slots_used, max_chain_length);
+ return;
+}
+
+#else
+
+extern void *libdwarf_an_unused_function_so_not_empty_c_file();
+
+#endif /* WANT_LIBBDWARF_MALLOC_CHECK */
diff --git a/usr/src/tools/ctf/dwarf/common/malloc_check.h b/usr/src/tools/ctf/dwarf/common/malloc_check.h
new file mode 100644
index 0000000000..ba1ad3da71
--- /dev/null
+++ b/usr/src/tools/ctf/dwarf/common/malloc_check.h
@@ -0,0 +1,62 @@
+/*
+
+ Copyright (C) 2005 Silicon Graphics, Inc. All Rights Reserved.
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2.1 of the GNU Lesser General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it would be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ Further, this software is distributed without any warranty that it is
+ free of the rightful claim of any third person regarding infringement
+ or the like. Any license provided herein, whether implied or
+ otherwise, applies only to this software file. Patent licenses, if
+ any, provided herein do not apply to combinations of this program with
+ other software, or any other product whatsoever.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+ USA.
+
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+ Mountain View, CA 94043, or:
+
+ http://www.sgi.com
+
+ For further information regarding this notice, see:
+
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
+
+*/
+
+
+/* malloc_check.h */
+
+/* A simple libdwarf-aware malloc checker.
+ define WANT_LIBBDWARF_MALLOC_CHECK and rebuild libdwarf
+ do make a checking-for-alloc-mistakes libdwarf.
+ NOT recommended for production use.
+
+ When defined, also add malloc_check.c to the list of
+ files in Makefile.
+*/
+
+#undef WANT_LIBBDWARF_MALLOC_CHECK
+/*#define WANT_LIBBDWARF_MALLOC_CHECK 1 */
+
+#ifdef WANT_LIBBDWARF_MALLOC_CHECK
+
+void dwarf_malloc_check_alloc_data(void * addr,unsigned char code);
+void dwarf_malloc_check_dealloc_data(void * addr,unsigned char code);
+void dwarf_malloc_check_complete(char *wheremsg); /* called at exit of app */
+
+#else /* !WANT_LIBBDWARF_MALLOC_CHECK */
+
+#define dwarf_malloc_check_alloc_data(a,b) /* nothing */
+#define dwarf_malloc_check_dealloc_data(a,b) /* nothing */
+#define dwarf_malloc_check_complete(a) /* nothing */
+
+#endif /* WANT_LIBBDWARF_MALLOC_CHECK */
diff --git a/usr/src/tools/ctf/dwarf/common/pro_alloc.c b/usr/src/tools/ctf/dwarf/common/pro_alloc.c
index 2f85bcd84b..1ca7806239 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_alloc.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_alloc.c
@@ -1,6 +1,7 @@
/*
Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -36,36 +37,152 @@
#include "config.h"
-#include "dwarf_incl.h"
+#include "pro_incl.h"
+#ifdef HAVE_STDLIB_H
#include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif /* HAVE_STRING_H */
+#include <malloc.h>
/*
- The allocator wants to know which region
- this is to be in so it can allocate the new space
- with respect to the right region.
+ When each block is allocated, there is a two-word structure
+ allocated at the beginning so the block can go on a list.
+ The address returned is the address *after* the two pointers
+ at the start. But this allows us to be given a pointer to
+ a generic block, and go backwards to find the list-node. Then
+ we can remove this block from it's list without the need to search
+ through a linked list in order to remove the node. It also allows
+ us to 'delete' a memory block without needing the dbg structure.
+ We still need the dbg structure on allocation so that we know which
+ linked list to add the block to.
+
+ Only the allocation of the dbg structure itself cannot use _dwarf_p_get_alloc.
+ That structure should be set up by hand, and the two list pointers
+ should be initialized to point at the node itself. That initializes
+ the doubly linked list.
*/
- /*ARGSUSED*/
- Dwarf_Ptr _dwarf_p_get_alloc(Dwarf_P_Debug dbg, Dwarf_Unsigned size)
+
+#define LIST_TO_BLOCK(lst) ((void*) (((char *)lst) + sizeof(memory_list_t)))
+#define BLOCK_TO_LIST(blk) ((memory_list_t*) (((char*)blk) - sizeof(memory_list_t)))
+
+
+/*
+ dbg should be NULL only when allocating dbg itself. In that
+ case we initialize it to an empty circular doubly-linked list.
+*/
+
+Dwarf_Ptr
+_dwarf_p_get_alloc(Dwarf_P_Debug dbg, Dwarf_Unsigned size)
{
void *sp;
+ memory_list_t *lp = NULL;
+ memory_list_t *dbglp = NULL;
+ memory_list_t *nextblock = NULL;
+
+ /* alloc control struct and data block together for performance reasons */
+ lp = (memory_list_t *) malloc(size + sizeof(memory_list_t));
+ if (lp == NULL) {
+ /* should throw an error */
+ return NULL;
+ }
+
+ /* point to 'size' bytes just beyond lp struct */
+ sp = LIST_TO_BLOCK(lp);
+ memset(sp, 0, size);
+
+ if (dbg == NULL) {
+ lp->next = lp->prev = lp;
+ } else {
+ /* I always have to draw a picture to understand this part. */
+
+ dbglp = BLOCK_TO_LIST(dbg);
+ nextblock = dbglp->next;
+
+ /* Insert between dbglp and nextblock */
+ dbglp->next = lp;
+ lp->prev = dbglp;
+ lp->next = nextblock;
+ nextblock->prev = lp;
+ }
- sp = malloc(size);
- memset(sp,0, (int) size);
return sp;
}
-
- /*ARGSUSED*/ void
-dwarf_p_dealloc(void *space, Dwarf_Unsigned typ)
+/*
+ This routine is only here in case a caller of an older version of the
+ library is calling this for some reason.
+ We will clean up any stray blocks when the session is closed.
+ No need to remove this block. In theory the user might be
+ depending on the fact that we used to just 'free' this.
+ In theory they might also be
+ passing a block that they got from libdwarf. So we don't know if we
+ should try to remove this block from our global list. Safest just to
+ do nothing at this point.
+
+ !!!
+ This function is deprecated! Don't call it inside libdwarf or outside of it.
+ !!!
+*/
+
+void
+dwarf_p_dealloc(Dwarf_Small * ptr)
{
- free(space);
return;
}
+/*
+ The dbg structure is not needed here anymore.
+*/
-/* Essentially a stub for now. */
- /*ARGSUSED*/ void
-_dwarf_p_dealloc(Dwarf_P_Debug dbg, Dwarf_Small * ptr)
+void
+_dwarf_p_dealloc(Dwarf_P_Debug dbg, Dwarf_Small * ptr) /* ARGSUSED */
{
- dwarf_p_dealloc(ptr, DW_DLA_STRING);
+ memory_list_t *lp;
+ lp = BLOCK_TO_LIST(ptr);
+
+ /*
+ Remove from a doubly linked, circular list.
+ Read carefully, use a white board if necessary.
+ If this is an empty list, the following statements are no-ops, and
+ will write to the same memory location they read from.
+ This should only happen when we deallocate the dbg structure itself.
+ */
+
+ lp->prev->next = lp->next;
+ lp->next->prev = lp->prev;
+
+ free((void*)lp);
}
+
+
+/*
+ This routine deallocates all the nodes on the dbg list,
+ and then deallocates the dbg structure itself.
+*/
+
+void
+_dwarf_p_dealloc_all(Dwarf_P_Debug dbg)
+{
+ memory_list_t *dbglp;
+
+ if (dbg == NULL) {
+ /* should throw an error */
+ return;
+ }
+
+ dbglp = BLOCK_TO_LIST(dbg);
+ while (dbglp->next != dbglp) {
+ _dwarf_p_dealloc(dbg, LIST_TO_BLOCK(dbglp->next));
+ }
+ if (dbglp->next != dbglp ||
+ dbglp->prev != dbglp) {
+
+ /* should throw error */
+ /* For some reason we couldn't free all the blocks? */
+ return;
+ }
+ _dwarf_p_dealloc(NULL, (void*)dbg);
+}
+
diff --git a/usr/src/tools/ctf/dwarf/common/pro_alloc.h b/usr/src/tools/ctf/dwarf/common/pro_alloc.h
index 458d808147..b4da65325f 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_alloc.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_alloc.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -38,3 +38,5 @@
Dwarf_Ptr _dwarf_p_get_alloc(Dwarf_P_Debug, Dwarf_Unsigned);
void _dwarf_p_dealloc(Dwarf_P_Debug dbg, Dwarf_Small * ptr);
+
+void _dwarf_p_dealloc_all(Dwarf_P_Debug dbg);
diff --git a/usr/src/tools/ctf/dwarf/common/pro_arange.c b/usr/src/tools/ctf/dwarf/common/pro_arange.c
index 292f3d28d0..4e5c37795c 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_arange.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_arange.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -57,14 +57,14 @@
*/
Dwarf_Unsigned
dwarf_add_arange(Dwarf_P_Debug dbg,
- Dwarf_Addr begin_address,
- Dwarf_Unsigned length,
- Dwarf_Signed symbol_index, Dwarf_Error * error)
+ Dwarf_Addr begin_address,
+ Dwarf_Unsigned length,
+ Dwarf_Signed symbol_index, Dwarf_Error * error)
{
return dwarf_add_arange_b(dbg, begin_address, length, symbol_index,
- /* end_symbol_index */ 0,
- /* offset_from_end_sym */ 0,
- error);
+ /* end_symbol_index */ 0,
+ /* offset_from_end_sym */ 0,
+ error);
}
/*
@@ -75,24 +75,24 @@ dwarf_add_arange(Dwarf_P_Debug dbg,
*/
Dwarf_Unsigned
dwarf_add_arange_b(Dwarf_P_Debug dbg,
- Dwarf_Addr begin_address,
- Dwarf_Unsigned length,
- Dwarf_Unsigned symbol_index,
- Dwarf_Unsigned end_symbol_index,
- Dwarf_Addr offset_from_end_sym, Dwarf_Error * error)
+ Dwarf_Addr begin_address,
+ Dwarf_Unsigned length,
+ Dwarf_Unsigned symbol_index,
+ Dwarf_Unsigned end_symbol_index,
+ Dwarf_Addr offset_from_end_sym, Dwarf_Error * error)
{
Dwarf_P_Arange arange;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (0);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (0);
}
arange = (Dwarf_P_Arange)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Arange_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Arange_s));
if (arange == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
}
arange->ag_begin_address = begin_address;
@@ -102,10 +102,10 @@ dwarf_add_arange_b(Dwarf_P_Debug dbg,
arange->ag_end_symbol_offset = offset_from_end_sym;
if (dbg->de_arange == NULL)
- dbg->de_arange = dbg->de_last_arange = arange;
+ dbg->de_arange = dbg->de_last_arange = arange;
else {
- dbg->de_last_arange->ag_next = arange;
- dbg->de_last_arange = arange;
+ dbg->de_last_arange->ag_next = arange;
+ dbg->de_last_arange = arange;
}
dbg->de_arange_count++;
@@ -148,15 +148,15 @@ _dwarf_transform_arange_to_disk(Dwarf_P_Debug dbg, Dwarf_Error * error)
/* ***** BEGIN CODE ***** */
/* Size of the .debug_aranges section header. */
- arange_num_bytes = extension_word_size + uword_size + /* Size
- of
- length
- field.
- */
- sizeof(Dwarf_Half) + /* Size of version field. */
- uword_size + /* Size of .debug_info offset. */
- sizeof(Dwarf_Small) + /* Size of address size field. */
- sizeof(Dwarf_Small); /* Size of segment size field. */
+ arange_num_bytes = extension_word_size + uword_size + /* Size
+ of
+ length
+ field.
+ */
+ sizeof(Dwarf_Half) + /* Size of version field. */
+ uword_size + /* Size of .debug_info offset. */
+ sizeof(Dwarf_Small) + /* Size of address size field. */
+ sizeof(Dwarf_Small); /* Size of segment size field. */
/*
Adjust the size so that the set of aranges begins on a boundary
@@ -164,82 +164,82 @@ _dwarf_transform_arange_to_disk(Dwarf_P_Debug dbg, Dwarf_Error * error)
requirement. */
remainder = arange_num_bytes % (2 * upointer_size);
if (remainder != 0)
- arange_num_bytes += (2 * upointer_size) - remainder;
+ arange_num_bytes += (2 * upointer_size) - remainder;
/* Add the bytes for the actual address ranges. */
arange_num_bytes += upointer_size * 2 * (dbg->de_arange_count + 1);
GET_CHUNK(dbg, dbg->de_elf_sects[DEBUG_ARANGES],
- arange, (unsigned long) arange_num_bytes, error);
+ arange, (unsigned long) arange_num_bytes, error);
arange_ptr = arange;
if (arange == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
}
if (extension_word_size) {
- Dwarf_Word x = DISTINGUISHED_VALUE;
+ Dwarf_Word x = DISTINGUISHED_VALUE;
- WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &x,
- sizeof(x), extension_word_size);
- arange_ptr += extension_word_size;
+ WRITE_UNALIGNED(dbg, (void *) arange_ptr,
+ (const void *) &x,
+ sizeof(x), extension_word_size);
+ arange_ptr += extension_word_size;
}
/* Write the total length of .debug_aranges section. */
adjusted_length = arange_num_bytes - uword_size
- - extension_word_size;
+ - extension_word_size;
{
- Dwarf_Unsigned du = adjusted_length;
+ Dwarf_Unsigned du = adjusted_length;
- WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &du, sizeof(du), uword_size);
- arange_ptr += uword_size;
+ WRITE_UNALIGNED(dbg, (void *) arange_ptr,
+ (const void *) &du, sizeof(du), uword_size);
+ arange_ptr += uword_size;
}
/* Write the version as 2 bytes. */
{
- Dwarf_Half verstamp = CURRENT_VERSION_STAMP;
+ Dwarf_Half verstamp = CURRENT_VERSION_STAMP;
- WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &verstamp,
- sizeof(verstamp), sizeof(Dwarf_Half));
- arange_ptr += sizeof(Dwarf_Half);
+ WRITE_UNALIGNED(dbg, (void *) arange_ptr,
+ (const void *) &verstamp,
+ sizeof(verstamp), sizeof(Dwarf_Half));
+ arange_ptr += sizeof(Dwarf_Half);
}
/* Write the .debug_info offset. This is always 0. */
WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &big_zero,
- sizeof(big_zero), uword_size);
+ (const void *) &big_zero,
+ sizeof(big_zero), uword_size);
arange_ptr += uword_size;
{
- unsigned long count = dbg->de_arange_count + 1;
- int res;
-
- if (dbg->de_reloc_pair) {
- count = (3 * dbg->de_arange_count) + 1;
- }
- /* the following is a small optimization: not needed for
- correctness */
- res = _dwarf_pro_pre_alloc_n_reloc_slots(dbg,
- DEBUG_ARANGES, count);
- if (res != DW_DLV_OK) {
- {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
- }
- }
+ unsigned long count = dbg->de_arange_count + 1;
+ int res;
+
+ if (dbg->de_reloc_pair) {
+ count = (3 * dbg->de_arange_count) + 1;
+ }
+ /* the following is a small optimization: not needed for
+ correctness */
+ res = _dwarf_pro_pre_alloc_n_reloc_slots(dbg,
+ DEBUG_ARANGES, count);
+ if (res != DW_DLV_OK) {
+ {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
+ }
+ }
}
/* reloc for .debug_info */
res = dbg->de_reloc_name(dbg,
- DEBUG_ARANGES,
- extension_word_size +
- uword_size + sizeof(Dwarf_Half),
- dbg->de_sect_name_idx[DEBUG_INFO],
- dwarf_drt_data_reloc, uword_size);
+ DEBUG_ARANGES,
+ extension_word_size +
+ uword_size + sizeof(Dwarf_Half),
+ dbg->de_sect_name_idx[DEBUG_INFO],
+ dwarf_drt_data_reloc, uword_size);
/* Write the size of addresses. */
*arange_ptr = dbg->de_pointer_size;
@@ -255,7 +255,7 @@ _dwarf_transform_arange_to_disk(Dwarf_P_Debug dbg, Dwarf_Error * error)
Skip over the padding to align the start of the actual address
ranges to twice the address size. */
if (remainder != 0)
- arange_ptr += (2 * upointer_size) - remainder;
+ arange_ptr += (2 * upointer_size) - remainder;
@@ -264,73 +264,74 @@ _dwarf_transform_arange_to_disk(Dwarf_P_Debug dbg, Dwarf_Error * error)
/* The arange address, length are pointer-size fields of the target
machine. */
for (given_arange = dbg->de_arange; given_arange != NULL;
- given_arange = given_arange->ag_next) {
-
- /* Write relocation record for beginning of address range. */
- res = dbg->de_reloc_name(dbg, DEBUG_ARANGES, arange_ptr - arange, /* r_offset */
- (long) given_arange->ag_symbol_index,
- dwarf_drt_data_reloc, upointer_size);
- if (res != DW_DLV_OK) {
- {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
- }
- }
-
- /* Copy beginning address of range. */
- WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &given_arange->ag_begin_address,
- sizeof(given_arange->ag_begin_address),
- upointer_size);
- arange_ptr += upointer_size;
-
- if (dbg->de_reloc_pair &&
- given_arange->ag_end_symbol_index != 0 &&
- given_arange->ag_length == 0) {
- /* symbolic reloc, need reloc for length What if we really
- know the length? If so, should use the other part of
- 'if'. */
- Dwarf_Unsigned val;
-
- res = dbg->de_reloc_pair(dbg, DEBUG_ARANGES, arange_ptr - arange, /* r_offset
- */
- given_arange->ag_symbol_index,
- given_arange->ag_end_symbol_index,
- dwarf_drt_first_of_length_pair,
- upointer_size);
- if (res != DW_DLV_OK) {
- {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
- }
- }
-
- /* arrange pre-calc so assem text can do .word end - begin
- + val (gets val from stream) */
- val = given_arange->ag_end_symbol_offset -
- given_arange->ag_begin_address;
- WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &val,
- sizeof(val), upointer_size);
- arange_ptr += upointer_size;
-
- } else {
- /* plain old length to copy, no relocation at all */
- WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &given_arange->ag_length,
- sizeof(given_arange->ag_length),
- upointer_size);
- arange_ptr += upointer_size;
- }
+ given_arange = given_arange->ag_next) {
+
+ /* Write relocation record for beginning of address range. */
+ res = dbg->de_reloc_name(dbg, DEBUG_ARANGES, arange_ptr - arange, /* r_offset
+ */
+ (long) given_arange->ag_symbol_index,
+ dwarf_drt_data_reloc, upointer_size);
+ if (res != DW_DLV_OK) {
+ {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
+ }
+ }
+
+ /* Copy beginning address of range. */
+ WRITE_UNALIGNED(dbg, (void *) arange_ptr,
+ (const void *) &given_arange->ag_begin_address,
+ sizeof(given_arange->ag_begin_address),
+ upointer_size);
+ arange_ptr += upointer_size;
+
+ if (dbg->de_reloc_pair &&
+ given_arange->ag_end_symbol_index != 0 &&
+ given_arange->ag_length == 0) {
+ /* symbolic reloc, need reloc for length What if we really
+ know the length? If so, should use the other part of
+ 'if'. */
+ Dwarf_Unsigned val;
+
+ res = dbg->de_reloc_pair(dbg, DEBUG_ARANGES, arange_ptr - arange, /* r_offset
+ */
+ given_arange->ag_symbol_index,
+ given_arange->ag_end_symbol_index,
+ dwarf_drt_first_of_length_pair,
+ upointer_size);
+ if (res != DW_DLV_OK) {
+ {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
+ }
+ }
+
+ /* arrange pre-calc so assem text can do .word end - begin
+ + val (gets val from stream) */
+ val = given_arange->ag_end_symbol_offset -
+ given_arange->ag_begin_address;
+ WRITE_UNALIGNED(dbg, (void *) arange_ptr,
+ (const void *) &val,
+ sizeof(val), upointer_size);
+ arange_ptr += upointer_size;
+
+ } else {
+ /* plain old length to copy, no relocation at all */
+ WRITE_UNALIGNED(dbg, (void *) arange_ptr,
+ (const void *) &given_arange->ag_length,
+ sizeof(given_arange->ag_length),
+ upointer_size);
+ arange_ptr += upointer_size;
+ }
}
WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &big_zero,
- sizeof(big_zero), upointer_size);
+ (const void *) &big_zero,
+ sizeof(big_zero), upointer_size);
arange_ptr += upointer_size;
WRITE_UNALIGNED(dbg, (void *) arange_ptr,
- (const void *) &big_zero,
- sizeof(big_zero), upointer_size);
+ (const void *) &big_zero,
+ sizeof(big_zero), upointer_size);
return (int) dbg->de_n_debug_sect;
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_arange.h b/usr/src/tools/ctf/dwarf/common/pro_arange.h
index a423f62604..f0e7e84dff 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_arange.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_arange.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_die.c b/usr/src/tools/ctf/dwarf/common/pro_die.c
index f4129884e4..948b641146 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_die.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_die.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -50,121 +51,170 @@
void _dwarf_pro_add_at_to_die(Dwarf_P_Die die, Dwarf_P_Attribute attr);
/*----------------------------------------------------------------------------
- This function creates a new die.
- tag: tag of the new die to be created
- parent,child,left,right: specify neighbors of the new die. Only
- one of these may be non-null
+ This function creates a new die.
+ tag: tag of the new die to be created
+ parent,child,left,right: specify neighbors of the new die. Only
+ one of these may be non-null
-----------------------------------------------------------------------------*/
Dwarf_P_Die
dwarf_new_die(Dwarf_P_Debug dbg,
- Dwarf_Tag tag,
- Dwarf_P_Die parent,
- Dwarf_P_Die child,
- Dwarf_P_Die left, Dwarf_P_Die right, Dwarf_Error * error)
+ Dwarf_Tag tag,
+ Dwarf_P_Die parent,
+ Dwarf_P_Die child,
+ Dwarf_P_Die left, Dwarf_P_Die right, Dwarf_Error * error)
{
- Dwarf_P_Die new_die, ret_die;
+ Dwarf_P_Die ret_die = 0;
- new_die = (Dwarf_P_Die)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Die_s));
+ Dwarf_P_Die new_die = (Dwarf_P_Die)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Die_s));
if (new_die == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DIE_ALLOC,
- (Dwarf_P_Die) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DIE_ALLOC,
+ (Dwarf_P_Die) DW_DLV_BADADDR);
}
new_die->di_parent = NULL;
new_die->di_left = NULL;
new_die->di_right = NULL;
new_die->di_child = NULL;
+ new_die->di_last_child = NULL;
new_die->di_tag = tag;
- ret_die =
- dwarf_die_link(new_die, parent, child, left, right, error);
+ new_die->di_dbg = dbg;
+ new_die->di_marker = 0;
+ ret_die =
+ dwarf_die_link(new_die, parent, child, left, right, error);
return ret_die;
}
/*----------------------------------------------------------------------------
- This function links up a die to specified neighbors
- parent,child,left,right: specify neighbors of the new die. Only
- one of these may be non-null
+ This function links up a die to specified neighbors
+ parent,child,left,right: specify neighbors of the new die. Only
+ one of these may be non-null
-----------------------------------------------------------------------------*/
Dwarf_P_Die
dwarf_die_link(Dwarf_P_Die new_die,
- Dwarf_P_Die parent,
- Dwarf_P_Die child,
- Dwarf_P_Die left, Dwarf_P_Die right, Dwarf_Error * error)
+ Dwarf_P_Die parent,
+ Dwarf_P_Die child,
+ Dwarf_P_Die left, Dwarf_P_Die right, Dwarf_Error * error)
{
- int n_nulls; /* to count # of non null neighbors */
+ /* Count the # of non null neighbors. */
+ int n_nulls = 0;
- n_nulls = 0;
if (parent != NULL) {
- n_nulls++;
- new_die->di_parent = parent;
- if (parent->di_child) { /* got to traverse the child's siblings
- */
- Dwarf_P_Die curdie;
-
- curdie = parent->di_child;
- while (curdie->di_right)
- curdie = curdie->di_right;
- curdie->di_right = new_die; /* attach to sibling list */
- new_die->di_left = curdie; /* back pointer */
- } else
- parent->di_child = new_die;
+ n_nulls++;
+ if (new_die->di_parent != NULL) {
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_LINK_LOOP,
+ (Dwarf_P_Die) DW_DLV_BADADDR);
+ }
+ new_die->di_parent = parent;
+ if (parent->di_child) {
+
+ /* di_last_child identifies the last sibling, the
+ die we want to attach new_die to. */
+ /* ASSERT: if di_child is set so is di_last_child. */
+ Dwarf_P_Die former_lastchild = parent->di_last_child;
+ parent->di_last_child = new_die;
+ /* Attach to the new die to end of the sibling list. */
+ former_lastchild->di_right = new_die;
+ new_die->di_left = former_lastchild;
+ } else {
+ parent->di_child = new_die;
+ parent->di_last_child = new_die;
+ }
}
if (child != NULL) {
- n_nulls++;
- new_die->di_child = child;
- if (child->di_parent) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_PARENT_EXISTS,
- (Dwarf_P_Die) DW_DLV_BADADDR);
- } else
- child->di_parent = new_die;
+ n_nulls++;
+ new_die->di_child = child;
+ new_die->di_last_child = child;
+ if (child->di_parent) {
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_PARENT_EXISTS,
+ (Dwarf_P_Die) DW_DLV_BADADDR);
+ } else {
+ child->di_parent = new_die;
+ }
}
if (left != NULL) {
- n_nulls++;
- new_die->di_left = left;
- if (left->di_right) /* there's already a right sibl, lets
- insert */
- new_die->di_right = left->di_right;
- left->di_right = new_die;
- /* add parent pointer */
- if (new_die->di_parent) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_PARENT_EXISTS,
- (Dwarf_P_Die) DW_DLV_BADADDR);
- } else
- new_die->di_parent = left->di_parent;
+ n_nulls++;
+ new_die->di_left = left;
+ if (left->di_right) {
+ /* There's already a right sibling of left,
+ insert the new die in the list. */
+ new_die->di_right = left->di_right;
+ left->di_right->di_left = new_die;
+ }
+ left->di_right = new_die;
+ if (new_die->di_parent) {
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_PARENT_EXISTS,
+ (Dwarf_P_Die) DW_DLV_BADADDR);
+ } else {
+ new_die->di_parent = left->di_parent;
+ }
}
if (right != NULL) {
- n_nulls++;
- new_die->di_right = right;
- if (right->di_left) /* left sibl exists, try inserting */
- new_die->di_left = right->di_left;
- right->di_left = new_die;
- if (new_die->di_parent) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_PARENT_EXISTS,
- (Dwarf_P_Die) DW_DLV_BADADDR);
- } else
- new_die->di_parent = right->di_parent;
+ n_nulls++;
+ new_die->di_right = right;
+ if (right->di_left) {
+ /* There is already a left sibling of the right die,
+ insert the new die in the list. */
+ new_die->di_left = right->di_left;
+ right->di_left->di_right = new_die;
+ }
+ right->di_left = new_die;
+ if (new_die->di_parent) {
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_PARENT_EXISTS,
+ (Dwarf_P_Die) DW_DLV_BADADDR);
+ } else {
+ new_die->di_parent = right->di_parent;
+ }
}
- if (n_nulls > 1) { /* multiple neighbors, error */
- DWARF_P_DBG_ERROR(NULL, DW_DLE_EXTRA_NEIGHBORS,
- (Dwarf_P_Die) DW_DLV_BADADDR);
+ if (n_nulls > 1) {
+ /* Multiple neighbors! error! */
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_EXTRA_NEIGHBORS,
+ (Dwarf_P_Die) DW_DLV_BADADDR);
}
return new_die;
}
+Dwarf_Unsigned
+dwarf_add_die_marker(Dwarf_P_Debug dbg,
+ Dwarf_P_Die die,
+ Dwarf_Unsigned marker,
+ Dwarf_Error * error)
+{
+ if (die == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DIE_NULL, DW_DLV_NOCOUNT);
+ }
+ die->di_marker = marker;
+ return 0;
+}
+
+
+Dwarf_Unsigned
+dwarf_get_die_marker(Dwarf_P_Debug dbg,
+ Dwarf_P_Die die,
+ Dwarf_Unsigned * marker,
+ Dwarf_Error * error)
+{
+ if (die == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DIE_NULL, DW_DLV_NOCOUNT);
+ }
+ *marker = die->di_marker;
+ return 0;
+}
+
+
/*----------------------------------------------------------------------------
- This function adds a die to dbg struct. It should be called using
- the root of all the dies.
+ This function adds a die to dbg struct. It should be called using
+ the root of all the dies.
-----------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_add_die_to_debug(Dwarf_P_Debug dbg,
- Dwarf_P_Die first_die, Dwarf_Error * error)
+ Dwarf_P_Die first_die, Dwarf_Error * error)
{
if (first_die == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DIE_NULL, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DIE_NULL, DW_DLV_NOCOUNT);
}
if (first_die->di_tag != DW_TAG_compile_unit) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_WRONG_TAG, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_WRONG_TAG, DW_DLV_NOCOUNT);
}
dbg->de_dies = first_die;
return 0;
@@ -172,16 +222,16 @@ dwarf_add_die_to_debug(Dwarf_P_Debug dbg,
int
_dwarf_pro_add_AT_stmt_list(Dwarf_P_Debug dbg,
- Dwarf_P_Die first_die, Dwarf_Error * error)
+ Dwarf_P_Die first_die, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
int uwordb_size = dbg->de_offset_size;
/* Add AT_stmt_list attribute */
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC, DW_DLV_NOCOUNT);
}
new_attr->ar_attribute = DW_AT_stmt_list;
@@ -192,15 +242,15 @@ _dwarf_pro_add_AT_stmt_list(Dwarf_P_Debug dbg,
new_attr->ar_next = NULL;
new_attr->ar_reloc_len = uwordb_size;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(NULL, uwordb_size);
+ _dwarf_p_get_alloc(dbg, uwordb_size);
if (new_attr->ar_data == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ADDR_ALLOC, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ADDR_ALLOC, DW_DLV_NOCOUNT);
}
{
- Dwarf_Unsigned du = 0;
+ Dwarf_Unsigned du = 0;
- WRITE_UNALIGNED(dbg, (void *) new_attr->ar_data,
- (const void *) &du, sizeof(du), uwordb_size);
+ WRITE_UNALIGNED(dbg, (void *) new_attr->ar_data,
+ (const void *) &du, sizeof(du), uwordb_size);
}
_dwarf_pro_add_at_to_die(first_die, new_attr);
@@ -208,7 +258,7 @@ _dwarf_pro_add_AT_stmt_list(Dwarf_P_Debug dbg,
}
/*-----------------------------------------------------------------------------
- Add AT_name attribute to die
+ Add AT_name attribute to die
------------------------------------------------------------------------------*/
Dwarf_P_Attribute
dwarf_add_AT_name(Dwarf_P_Die die, char *name, Dwarf_Error * error)
@@ -216,14 +266,14 @@ dwarf_add_AT_name(Dwarf_P_Die die, char *name, Dwarf_Error * error)
Dwarf_P_Attribute new_attr;
if (die == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL,
- (Dwarf_P_Attribute) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL,
+ (Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(die->di_dbg,sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC,
- (Dwarf_P_Attribute) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC,
+ (Dwarf_P_Attribute) DW_DLV_BADADDR);
}
/* fill in the information */
@@ -234,10 +284,10 @@ dwarf_add_AT_name(Dwarf_P_Die die, char *name, Dwarf_Error * error)
new_attr->ar_next = NULL;
new_attr->ar_reloc_len = 0;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(NULL, strlen(name) + 1);
+ _dwarf_p_get_alloc(die->di_dbg, strlen(name)+1);
if (new_attr->ar_data == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_STRING_ALLOC,
- (Dwarf_P_Attribute) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_STRING_ALLOC,
+ (Dwarf_P_Attribute) DW_DLV_BADADDR);
}
strcpy(new_attr->ar_data, name);
@@ -250,24 +300,25 @@ dwarf_add_AT_name(Dwarf_P_Die die, char *name, Dwarf_Error * error)
/*-----------------------------------------------------------------------------
- Add AT_comp_dir attribute to die
+ Add AT_comp_dir attribute to die
------------------------------------------------------------------------------*/
Dwarf_P_Attribute
dwarf_add_AT_comp_dir(Dwarf_P_Die ownerdie,
- char *current_working_directory,
- Dwarf_Error * error)
+ char *current_working_directory,
+ Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
if (ownerdie == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL,
- (Dwarf_P_Attribute) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL,
+ (Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(ownerdie->di_dbg,
+ sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC,
- (Dwarf_P_Attribute) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC,
+ (Dwarf_P_Attribute) DW_DLV_BADADDR);
}
/* fill in the information */
@@ -278,10 +329,11 @@ dwarf_add_AT_comp_dir(Dwarf_P_Die ownerdie,
new_attr->ar_next = NULL;
new_attr->ar_reloc_len = 0;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(NULL, strlen(current_working_directory) + 1);
+ _dwarf_p_get_alloc(ownerdie->di_dbg,
+ strlen(current_working_directory)+1);
if (new_attr->ar_data == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_STRING_ALLOC,
- (Dwarf_P_Attribute) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_STRING_ALLOC,
+ (Dwarf_P_Attribute) DW_DLV_BADADDR);
}
strcpy(new_attr->ar_data, current_working_directory);
@@ -294,19 +346,19 @@ dwarf_add_AT_comp_dir(Dwarf_P_Die ownerdie,
int
_dwarf_pro_add_AT_fde(Dwarf_P_Debug dbg,
- Dwarf_P_Die die,
- Dwarf_Unsigned offset, Dwarf_Error * error)
+ Dwarf_P_Die die,
+ Dwarf_Unsigned offset, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
int uwordb_size = dbg->de_offset_size;
if (die == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL, -1);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL, -1);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg,sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC, -1);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC, -1);
}
/* fill in the information */
@@ -317,15 +369,15 @@ _dwarf_pro_add_AT_fde(Dwarf_P_Debug dbg,
new_attr->ar_next = NULL;
new_attr->ar_reloc_len = uwordb_size;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(NULL, uwordb_size);
+ _dwarf_p_get_alloc(dbg, uwordb_size);
if (new_attr->ar_data == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ADDR_ALLOC, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ADDR_ALLOC, DW_DLV_NOCOUNT);
}
{
- Dwarf_Unsigned du = offset;
+ Dwarf_Unsigned du = offset;
- WRITE_UNALIGNED(dbg, (void *) new_attr->ar_data,
- (const void *) &du, sizeof(du), uwordb_size);
+ WRITE_UNALIGNED(dbg, (void *) new_attr->ar_data,
+ (const void *) &du, sizeof(du), uwordb_size);
}
_dwarf_pro_add_at_to_die(die, new_attr);
@@ -335,19 +387,19 @@ _dwarf_pro_add_AT_fde(Dwarf_P_Debug dbg,
int
_dwarf_pro_add_AT_macro_info(Dwarf_P_Debug dbg,
- Dwarf_P_Die die,
- Dwarf_Unsigned offset, Dwarf_Error * error)
+ Dwarf_P_Die die,
+ Dwarf_Unsigned offset, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
int uwordb_size = dbg->de_offset_size;
if (die == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL, -1);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_DIE_NULL, -1);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg,sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC, -1);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ATTR_ALLOC, -1);
}
/* fill in the information */
@@ -359,15 +411,15 @@ _dwarf_pro_add_AT_macro_info(Dwarf_P_Debug dbg,
new_attr->ar_next = NULL;
new_attr->ar_reloc_len = uwordb_size;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(NULL, uwordb_size);
+ _dwarf_p_get_alloc(dbg, uwordb_size);
if (new_attr->ar_data == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_ADDR_ALLOC, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(NULL, DW_DLE_ADDR_ALLOC, DW_DLV_NOCOUNT);
}
{
- Dwarf_Unsigned du = offset;
+ Dwarf_Unsigned du = offset;
- WRITE_UNALIGNED(dbg, (void *) new_attr->ar_data,
- (const void *) &du, sizeof(du), uwordb_size);
+ WRITE_UNALIGNED(dbg, (void *) new_attr->ar_data,
+ (const void *) &du, sizeof(du), uwordb_size);
}
_dwarf_pro_add_at_to_die(die, new_attr);
@@ -380,11 +432,11 @@ void
_dwarf_pro_add_at_to_die(Dwarf_P_Die die, Dwarf_P_Attribute attr)
{
if (die->di_last_attr) {
- die->di_last_attr->ar_next = attr;
- die->di_last_attr = attr;
- die->di_n_attr++;
+ die->di_last_attr->ar_next = attr;
+ die->di_last_attr = attr;
+ die->di_n_attr++;
} else {
- die->di_n_attr = 1;
- die->di_attrs = die->di_last_attr = attr;
+ die->di_n_attr = 1;
+ die->di_attrs = die->di_last_attr = attr;
}
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_die.h b/usr/src/tools/ctf/dwarf/common/pro_die.h
index f99752c7e0..01c00e79bd 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_die.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_die.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_encode_nm.c b/usr/src/tools/ctf/dwarf/common/pro_encode_nm.c
index 8c46f1e565..d6215dc56b 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_encode_nm.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_encode_nm.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -47,8 +47,8 @@
/*-------------------------------------------------------------
- Encode val as a leb128. This encodes it as an unsigned
- number.
+ Encode val as a leb128. This encodes it as an unsigned
+ number.
---------------------------------------------------------------*/
/* return DW_DLV_ERROR or DW_DLV_OK.
** space to write leb number is provided by caller, with caller
@@ -57,25 +57,25 @@
*/
int
_dwarf_pro_encode_leb128_nm(Dwarf_Unsigned val, int *nbytes,
- char *space, int splen)
+ char *space, int splen)
{
char *a;
char *end = space + splen;
a = space;
do {
- unsigned char uc;
-
- if (a >= end) {
- return DW_DLV_ERROR;
- }
- uc = val & DATA_MASK;
- val >>= DIGIT_WIDTH;
- if (val != 0) {
- uc |= MORE_BYTES;
- }
- *a = uc;
- a++;
+ unsigned char uc;
+
+ if (a >= end) {
+ return DW_DLV_ERROR;
+ }
+ uc = val & DATA_MASK;
+ val >>= DIGIT_WIDTH;
+ if (val != 0) {
+ uc |= MORE_BYTES;
+ }
+ *a = uc;
+ a++;
} while (val);
*nbytes = a - space;
return DW_DLV_OK;
@@ -89,7 +89,7 @@ _dwarf_pro_encode_leb128_nm(Dwarf_Unsigned val, int *nbytes,
*/
int
_dwarf_pro_encode_signed_leb128_nm(Dwarf_Signed value, int *nbytes,
- char *space, int splen)
+ char *space, int splen)
{
char *str;
Dwarf_Signed sign = -(value < 0);
@@ -99,24 +99,24 @@ _dwarf_pro_encode_signed_leb128_nm(Dwarf_Signed value, int *nbytes,
str = space;
do {
- unsigned char byte = value & DATA_MASK;
-
- value >>= DIGIT_WIDTH;
-
- if (str >= end) {
- return DW_DLV_ERROR;
- }
- /*
- * Remaining chunks would just contain the sign bit, and this chunk
- * has already captured at least one sign bit.
- */
- if (value == sign && ((byte & SIGN_BIT) == (sign & SIGN_BIT))) {
- more = 0;
- } else {
- byte |= MORE_BYTES;
- }
- *str = byte;
- str++;
+ unsigned char byte = value & DATA_MASK;
+
+ value >>= DIGIT_WIDTH;
+
+ if (str >= end) {
+ return DW_DLV_ERROR;
+ }
+ /*
+ * Remaining chunks would just contain the sign bit, and this chunk
+ * has already captured at least one sign bit.
+ */
+ if (value == sign && ((byte & SIGN_BIT) == (sign & SIGN_BIT))) {
+ more = 0;
+ } else {
+ byte |= MORE_BYTES;
+ }
+ *str = byte;
+ str++;
} while (more);
*nbytes = str - space;
return DW_DLV_OK;
diff --git a/usr/src/tools/ctf/dwarf/common/pro_encode_nm.h b/usr/src/tools/ctf/dwarf/common/pro_encode_nm.h
index 33a6622a7e..d08e4d5148 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_encode_nm.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_encode_nm.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_error.c b/usr/src/tools/ctf/dwarf/common/pro_error.c
index a9e100e496..d408a391e2 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_error.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_error.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -58,39 +58,39 @@ extern char *_dwarf_errmsgs[];
*/
void
_dwarf_p_error(Dwarf_P_Debug dbg,
- Dwarf_Error * error, Dwarf_Word errval)
+ Dwarf_Error * error, Dwarf_Word errval)
{
Dwarf_Error errptr;
/* Allow NULL dbg on entry, since sometimes that can happen and we
want to report the upper-level error, not this one. */
if ((Dwarf_Sword) errval < 0)
- printf("ERROR VALUE: %ld - %s\n",
- (long) errval, _dwarf_errmsgs[-errval - 1]);
+ printf("ERROR VALUE: %ld - %s\n",
+ (long) errval, _dwarf_errmsgs[-errval - 1]);
if (error != NULL) {
- errptr = (Dwarf_Error)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_Error_s));
- if (errptr == NULL) {
- fprintf(stderr,
- "Could not allocate Dwarf_Error structure\n");
- abort();
- }
- errptr->er_errval = (Dwarf_Sword) errval;
- *error = errptr;
- return;
+ errptr = (Dwarf_Error)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_Error_s));
+ if (errptr == NULL) {
+ fprintf(stderr,
+ "Could not allocate Dwarf_Error structure\n");
+ abort();
+ }
+ errptr->er_errval = (Dwarf_Sword) errval;
+ *error = errptr;
+ return;
}
if (dbg != NULL && dbg->de_errhand != NULL) {
- errptr = (Dwarf_Error)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_Error_s));
- if (errptr == NULL) {
- fprintf(stderr,
- "Could not allocate Dwarf_Error structure\n");
- abort();
- }
- errptr->er_errval = (Dwarf_Sword) errval;
- dbg->de_errhand(errptr, dbg->de_errarg);
- return;
+ errptr = (Dwarf_Error)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_Error_s));
+ if (errptr == NULL) {
+ fprintf(stderr,
+ "Could not allocate Dwarf_Error structure\n");
+ abort();
+ }
+ errptr->er_errval = (Dwarf_Sword) errval;
+ dbg->de_errhand(errptr, dbg->de_errarg);
+ return;
}
abort();
diff --git a/usr/src/tools/ctf/dwarf/common/pro_error.h b/usr/src/tools/ctf/dwarf/common/pro_error.h
index cbafba7718..c37035301b 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_error.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_error.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_expr.c b/usr/src/tools/ctf/dwarf/common/pro_expr.c
index b023d02525..4c701748a6 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_expr.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_expr.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004,2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2007-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -54,15 +55,15 @@ dwarf_new_expr(Dwarf_P_Debug dbg, Dwarf_Error * error)
Dwarf_P_Expr ret_expr;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (NULL);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (NULL);
}
ret_expr = (Dwarf_P_Expr)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Expr_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Expr_s));
if (ret_expr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (NULL);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (NULL);
}
ret_expr->ex_dbg = dbg;
@@ -73,15 +74,15 @@ dwarf_new_expr(Dwarf_P_Debug dbg, Dwarf_Error * error)
Dwarf_Unsigned
dwarf_add_expr_gen(Dwarf_P_Expr expr,
- Dwarf_Small opcode,
- Dwarf_Unsigned val1,
- Dwarf_Unsigned val2, Dwarf_Error * error)
+ Dwarf_Small opcode,
+ Dwarf_Unsigned val1,
+ Dwarf_Unsigned val2, Dwarf_Error * error)
{
- char encode_buffer[2 * ENCODE_SPACE_NEEDED]; /* 2* since
- used to
- concatenate
- 2 leb's
- below */
+ char encode_buffer[2 * ENCODE_SPACE_NEEDED]; /* 2* since
+ used to
+ concatenate
+ 2 leb's
+ below */
char encode_buffer2[ENCODE_SPACE_NEEDED];
int res;
Dwarf_P_Debug dbg = expr->ex_dbg;
@@ -112,13 +113,13 @@ dwarf_add_expr_gen(Dwarf_P_Expr expr,
/* ***** BEGIN CODE ***** */
if (expr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
+ return (DW_DLV_NOCOUNT);
}
if (expr->ex_dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_NOCOUNT);
}
operand = NULL;
@@ -157,7 +158,7 @@ dwarf_add_expr_gen(Dwarf_P_Expr expr,
case DW_OP_reg29:
case DW_OP_reg30:
case DW_OP_reg31:
- break;
+ break;
case DW_OP_breg0:
case DW_OP_breg1:
@@ -191,27 +192,27 @@ dwarf_add_expr_gen(Dwarf_P_Expr expr,
case DW_OP_breg29:
case DW_OP_breg30:
case DW_OP_breg31:
- res = _dwarf_pro_encode_signed_leb128_nm(val1,
- &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- break;
+ res = _dwarf_pro_encode_signed_leb128_nm(val1,
+ &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ break;
case DW_OP_regx:
- res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- break;
+ res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ break;
case DW_OP_lit0:
case DW_OP_lit1:
@@ -245,130 +246,122 @@ dwarf_add_expr_gen(Dwarf_P_Expr expr,
case DW_OP_lit29:
case DW_OP_lit30:
case DW_OP_lit31:
- break;
+ break;
case DW_OP_addr:
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
+ return (DW_DLV_NOCOUNT);
case DW_OP_const1u:
case DW_OP_const1s:
- operand = (Dwarf_Small *) & operand_buffer[0];
- WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 1);
- operand_size = 1;
- break;
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 1);
+ operand_size = 1;
+ break;
case DW_OP_const2u:
case DW_OP_const2s:
- operand = (Dwarf_Small *) & operand_buffer[0];
- WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 2);
- operand_size = 2;
- break;
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 2);
+ operand_size = 2;
+ break;
case DW_OP_const4u:
case DW_OP_const4s:
- operand = (Dwarf_Small *) & operand_buffer[0];
- WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 4);
- operand_size = 4;
- break;
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 4);
+ operand_size = 4;
+ break;
case DW_OP_const8u:
case DW_OP_const8s:
- operand = (Dwarf_Small *) & operand_buffer[0];
- WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 8);
- operand_size = 8;
- break;
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 8);
+ operand_size = 8;
+ break;
case DW_OP_constu:
- res = _dwarf_pro_encode_leb128_nm(val1,
- &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- break;
+ res = _dwarf_pro_encode_leb128_nm(val1,
+ &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ break;
case DW_OP_consts:
- res = _dwarf_pro_encode_signed_leb128_nm(val1,
- &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- break;
+ res = _dwarf_pro_encode_signed_leb128_nm(val1,
+ &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ break;
case DW_OP_fbreg:
- res = _dwarf_pro_encode_signed_leb128_nm(val1,
- &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- break;
+ res = _dwarf_pro_encode_signed_leb128_nm(val1,
+ &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ break;
case DW_OP_bregx:
- res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- /* put this one directly into 'operand' at tail of prev value */
- res = _dwarf_pro_encode_signed_leb128_nm(val2, &operand2_size,
- ((char *) operand) +
- operand_size,
- sizeof
- (encode_buffer2));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand_size += operand2_size;
+ res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ /* put this one directly into 'operand' at tail of prev value */
+ res = _dwarf_pro_encode_signed_leb128_nm(val2, &operand2_size,
+ ((char *) operand) +
+ operand_size,
+ sizeof
+ (encode_buffer2));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand_size += operand2_size;
case DW_OP_dup:
case DW_OP_drop:
- break;
+ break;
case DW_OP_pick:
- operand = (Dwarf_Small *) & operand_buffer[0];
- /* Cast of val1 to pointer is ok as if val1 does not point into
- our (process) address space we are in big trouble anyway
- (internal error in libdwarf or in libdwarf caller). Compiler
- may warn about cast to pointer. */
- WRITE_UNALIGNED(dbg, operand, (const void *)(uintptr_t)val1,
- sizeof(val1), 1);
- operand_size = 1;
- break;
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, (const void *) &val1,
+ sizeof(val1), 1);
+ operand_size = 1;
+ break;
case DW_OP_over:
case DW_OP_swap:
case DW_OP_rot:
case DW_OP_deref:
case DW_OP_xderef:
- break;
+ break;
case DW_OP_deref_size:
case DW_OP_xderef_size:
- operand = (Dwarf_Small *) & operand_buffer[0];
- /* Cast of val1 to pointer is ok as if val1 does not point into
- our (process) address space we are in big trouble anyway
- (internal error in libdwarf or in libdwarf caller). Compiler
- may warn about cast to pointer. */
- WRITE_UNALIGNED(dbg, operand, (const void *)(uintptr_t) val1,
- sizeof(val1), 1);
- operand_size = 1;
- break;
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, (const void *) &val1,
+ sizeof(val1), 1);
+ operand_size = 1;
+ break;
case DW_OP_abs:
case DW_OP_and:
@@ -380,24 +373,24 @@ dwarf_add_expr_gen(Dwarf_P_Expr expr,
case DW_OP_not:
case DW_OP_or:
case DW_OP_plus:
- break;
+ break;
case DW_OP_plus_uconst:
- res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- break;
+ res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ break;
case DW_OP_shl:
case DW_OP_shr:
case DW_OP_shra:
case DW_OP_xor:
- break;
+ break;
case DW_OP_le:
case DW_OP_ge:
@@ -405,42 +398,86 @@ dwarf_add_expr_gen(Dwarf_P_Expr expr,
case DW_OP_lt:
case DW_OP_gt:
case DW_OP_ne:
- break;
+ break;
case DW_OP_skip:
case DW_OP_bra:
- /* FIX: unhandled! OP_bra, OP_skip! */
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
- return (DW_DLV_NOCOUNT);
+ /* FIX: unhandled! OP_bra, OP_skip! */
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
+ return (DW_DLV_NOCOUNT);
case DW_OP_piece:
- res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
- }
- operand = (Dwarf_Small *) encode_buffer;
- break;
+ res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ break;
case DW_OP_nop:
- break;
+ break;
+ case DW_OP_push_object_address: /* DWARF3 */
+ break;
+ case DW_OP_call2: /* DWARF3 */
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 2);
+ operand_size = 2;
+ break;
+
+ case DW_OP_call4: /* DWARF3 */
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1), 4);
+ operand_size = 4;
+ break;
+
+ case DW_OP_call_ref: /* DWARF3 */
+ operand = (Dwarf_Small *) & operand_buffer[0];
+ WRITE_UNALIGNED(dbg, operand, &val1, sizeof(val1),
+ dbg->de_offset_size);
+ operand_size = dbg->de_offset_size;
+ break;
+ case DW_OP_form_tls_address: /* DWARF3f */
+ break;
+ case DW_OP_call_frame_cfa: /* DWARF3f */
+ break;
+ case DW_OP_bit_piece: /* DWARF3f */
+ res = _dwarf_pro_encode_leb128_nm(val1, &operand_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand = (Dwarf_Small *) encode_buffer;
+ /* put this one directly into 'operand' at tail of prev value */
+ res = _dwarf_pro_encode_leb128_nm(val2, &operand2_size,
+ ((char *) operand) +
+ operand_size,
+ sizeof(encode_buffer2));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
+ }
+ operand_size += operand2_size;
+
default:
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
+ return (DW_DLV_NOCOUNT);
}
next_byte_offset = expr->ex_next_byte_offset + operand_size + 1;
if (next_byte_offset > MAXIMUM_LOC_EXPR_LENGTH) {
- _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
}
next_byte_ptr =
- &(expr->ex_byte_stream[0]) + expr->ex_next_byte_offset;
+ &(expr->ex_byte_stream[0]) + expr->ex_next_byte_offset;
*next_byte_ptr = opcode;
next_byte_ptr++;
@@ -452,8 +489,8 @@ dwarf_add_expr_gen(Dwarf_P_Expr expr,
Dwarf_Unsigned
dwarf_add_expr_addr_b(Dwarf_P_Expr expr,
- Dwarf_Unsigned addr,
- Dwarf_Unsigned sym_index, Dwarf_Error * error)
+ Dwarf_Unsigned addr,
+ Dwarf_Unsigned sym_index, Dwarf_Error * error)
{
Dwarf_P_Debug dbg;
Dwarf_Small *next_byte_ptr;
@@ -461,34 +498,34 @@ dwarf_add_expr_addr_b(Dwarf_P_Expr expr,
int upointer_size;
if (expr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
+ return (DW_DLV_NOCOUNT);
}
dbg = expr->ex_dbg;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_NOCOUNT);
}
upointer_size = dbg->de_pointer_size;
next_byte_offset = expr->ex_next_byte_offset + upointer_size + 1;
if (next_byte_offset > MAXIMUM_LOC_EXPR_LENGTH) {
- _dwarf_p_error(dbg, error, DW_DLE_EXPR_LENGTH_BAD);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(dbg, error, DW_DLE_EXPR_LENGTH_BAD);
+ return (DW_DLV_NOCOUNT);
}
next_byte_ptr =
- &(expr->ex_byte_stream[0]) + expr->ex_next_byte_offset;
+ &(expr->ex_byte_stream[0]) + expr->ex_next_byte_offset;
*next_byte_ptr = DW_OP_addr;
next_byte_ptr++;
WRITE_UNALIGNED(dbg, next_byte_ptr, (const void *) &addr,
- sizeof(addr), upointer_size);
+ sizeof(addr), upointer_size);
if (expr->ex_reloc_offset != 0) {
- _dwarf_p_error(dbg, error, DW_DLE_MULTIPLE_RELOC_IN_EXPR);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(dbg, error, DW_DLE_MULTIPLE_RELOC_IN_EXPR);
+ return (DW_DLV_NOCOUNT);
}
expr->ex_reloc_sym_index = sym_index;
@@ -500,12 +537,12 @@ dwarf_add_expr_addr_b(Dwarf_P_Expr expr,
Dwarf_Unsigned
dwarf_add_expr_addr(Dwarf_P_Expr expr,
- Dwarf_Unsigned addr,
- Dwarf_Signed sym_index, Dwarf_Error * error)
+ Dwarf_Unsigned addr,
+ Dwarf_Signed sym_index, Dwarf_Error * error)
{
return
- dwarf_add_expr_addr_b(expr, addr, (Dwarf_Unsigned) sym_index,
- error);
+ dwarf_add_expr_addr_b(expr, addr, (Dwarf_Unsigned) sym_index,
+ error);
}
@@ -513,35 +550,45 @@ Dwarf_Unsigned
dwarf_expr_current_offset(Dwarf_P_Expr expr, Dwarf_Error * error)
{
if (expr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
+ return (DW_DLV_NOCOUNT);
}
if (expr->ex_dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_NOCOUNT);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_NOCOUNT);
}
return (expr->ex_next_byte_offset);
}
+void
+dwarf_expr_reset(Dwarf_P_Expr expr, Dwarf_Error * error)
+{
+ if (expr == NULL) {
+ _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
+ return;
+ }
+ expr->ex_next_byte_offset=0;
+}
+
Dwarf_Addr
dwarf_expr_into_block(Dwarf_P_Expr expr,
- Dwarf_Unsigned * length, Dwarf_Error * error)
+ Dwarf_Unsigned * length, Dwarf_Error * error)
{
if (expr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
- return (DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_EXPR_NULL);
+ return (DW_DLV_BADADDR);
}
if (expr->ex_dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_BADADDR);
}
if (length != NULL)
- *length = expr->ex_next_byte_offset;
+ *length = expr->ex_next_byte_offset;
/* The following cast from pointer to integer is ok as long as
Dwarf_Addr is at least as large as a pointer. Which is a
requirement of libdwarf so must be satisfied (some compilers
diff --git a/usr/src/tools/ctf/dwarf/common/pro_expr.h b/usr/src/tools/ctf/dwarf/common/pro_expr.h
index c187e75269..202f2d30d5 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_expr.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_expr.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_finish.c b/usr/src/tools/ctf/dwarf/common/pro_finish.c
index 1448ced6b3..bc43a5f0f4 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_finish.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_finish.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -40,16 +41,17 @@
#include "pro_incl.h"
/*---------------------------------------------------------------
- This routine deallocates all memory, and does some
- finishing up
+ This routine deallocates all memory, and does some
+ finishing up
-----------------------------------------------------------------*/
/*ARGSUSED*/ Dwarf_Unsigned
dwarf_producer_finish(Dwarf_P_Debug dbg, Dwarf_Error * error)
{
if (dbg->de_version_magic_number != PRO_VERSION_MAGIC) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_IA, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_IA, DW_DLV_NOCOUNT);
}
- dwarf_p_dealloc((void *) dbg, 0);
+ /* this frees all blocks, then frees dbg. */
+ _dwarf_p_dealloc_all(dbg);
return 0;
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_forms.c b/usr/src/tools/ctf/dwarf/common/pro_forms.c
index b3e645e4d4..fec9a39c60 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_forms.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_forms.c
@@ -1,6 +1,7 @@
/*
-
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2007-2010 David Anderson. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -49,12 +50,12 @@
/* Indicates no relocation needed. */
-#define NO_ELF_SYM_INDEX 0
+#define NO_ELF_SYM_INDEX 0
/* adds an attribute to a die */
extern void _dwarf_pro_add_at_to_die(Dwarf_P_Die die,
- Dwarf_P_Attribute attr);
+ Dwarf_P_Attribute attr);
/*
This function adds an attribute whose value is
@@ -62,82 +63,369 @@ extern void _dwarf_pro_add_at_to_die(Dwarf_P_Die die,
is given the name provided by attr. The address
is given in pc_value.
*/
+
+static Dwarf_P_Attribute
+local_add_AT_address(Dwarf_P_Debug dbg,
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Signed form,
+ Dwarf_Unsigned pc_value,
+ Dwarf_Unsigned sym_index,
+ Dwarf_Error * error);
+
/* old interface */
Dwarf_P_Attribute
dwarf_add_AT_targ_address(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr,
- Dwarf_Unsigned pc_value,
- Dwarf_Signed sym_index, Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Unsigned pc_value,
+ Dwarf_Signed sym_index, Dwarf_Error * error)
{
- return
- dwarf_add_AT_targ_address_b(dbg,
- ownerdie,
- attr,
- pc_value,
- (Dwarf_Unsigned) sym_index, error);
+ return
+ dwarf_add_AT_targ_address_b(dbg,
+ ownerdie,
+ attr,
+ pc_value,
+ (Dwarf_Unsigned) sym_index, error);
}
-/* new interface */
+/* New interface, replacing dwarf_add_AT_targ_address.
+ Essentially just makes sym_index a Dwarf_Unsigned
+ so for symbolic relocations it can be a full address.
+*/
Dwarf_P_Attribute
dwarf_add_AT_targ_address_b(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr,
- Dwarf_Unsigned pc_value,
- Dwarf_Unsigned sym_index,
- Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Unsigned pc_value,
+ Dwarf_Unsigned sym_index,
+ Dwarf_Error * error)
+{
+ switch (attr) {
+ case DW_AT_low_pc:
+ case DW_AT_high_pc:
+
+ /* added to support location lists */
+ /* no way to check that this is a loclist-style address though */
+ case DW_AT_location:
+ case DW_AT_string_length:
+ case DW_AT_return_addr:
+ case DW_AT_frame_base:
+ case DW_AT_segment:
+ case DW_AT_static_link:
+ case DW_AT_use_location:
+ case DW_AT_vtable_elem_location:
+ case DW_AT_const_value: /* Gcc can generate this as address. */
+ case DW_AT_entry_pc:
+ break;
+ default:
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ break;
+ }
+
+ return local_add_AT_address(dbg, ownerdie, attr, DW_FORM_addr,
+ pc_value, sym_index, error);
+}
+
+Dwarf_P_Attribute
+dwarf_add_AT_ref_address(Dwarf_P_Debug dbg,
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Unsigned pc_value,
+ Dwarf_Unsigned sym_index,
+ Dwarf_Error * error)
+{
+ switch (attr) {
+ case DW_AT_type:
+ case DW_AT_import:
+ break;
+
+ default:
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ break;
+ }
+
+ return local_add_AT_address(dbg, ownerdie, attr, DW_FORM_ref_addr,
+ pc_value, sym_index, error);
+}
+
+
+/* Make sure attribute types are checked before entering here. */
+static Dwarf_P_Attribute
+local_add_AT_address(Dwarf_P_Debug dbg,
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Signed form,
+ Dwarf_Unsigned pc_value,
+ Dwarf_Unsigned sym_index,
+ Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
int upointer_size = dbg->de_pointer_size;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (ownerdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
- if (attr != DW_AT_low_pc && attr != DW_AT_high_pc &&
- attr != DW_AT_MIPS_loop_begin &&
- attr != DW_AT_MIPS_tail_loop_begin &&
- attr != DW_AT_MIPS_epilog_begin) {
- _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
+ /* attribute types have already been checked */
+ /* switch (attr) { ... } */
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = attr;
- new_attr->ar_attribute_form = DW_FORM_addr;
+ new_attr->ar_attribute_form = form;
new_attr->ar_nbytes = upointer_size;
new_attr->ar_rel_symidx = sym_index;
new_attr->ar_reloc_len = upointer_size;
new_attr->ar_next = 0;
if (sym_index != NO_ELF_SYM_INDEX)
- new_attr->ar_rel_type = dbg->de_ptr_reloc;
+ new_attr->ar_rel_type = dbg->de_ptr_reloc;
else
- new_attr->ar_rel_type = R_MIPS_NONE;
+ new_attr->ar_rel_type = R_MIPS_NONE;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(dbg, upointer_size);
+ _dwarf_p_get_alloc(dbg, upointer_size);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
WRITE_UNALIGNED(dbg, new_attr->ar_data,
- (const void *) &pc_value,
- sizeof(pc_value), upointer_size);
+ (const void *) &pc_value,
+ sizeof(pc_value), upointer_size);
+
+ /* add attribute to the die */
+ _dwarf_pro_add_at_to_die(ownerdie, new_attr);
+ return new_attr;
+}
+
+/*
+ * Functions to compress and uncompress data from normal
+ * arrays of integral types into arrays of LEB128 numbers.
+ * Extend these functions as needed to handle wider input
+ * variety. Return values should be freed with _dwarf_p_dealloc
+ * after they aren't needed any more.
+ */
+
+/* return value points to an array of LEB number */
+
+void *
+dwarf_compress_integer_block(
+ Dwarf_P_Debug dbg,
+ Dwarf_Bool unit_is_signed,
+ Dwarf_Small unit_length_in_bits,
+ void* input_block,
+ Dwarf_Unsigned input_length_in_units,
+ Dwarf_Unsigned* output_length_in_bytes_ptr,
+ Dwarf_Error* error
+)
+{
+ Dwarf_Unsigned output_length_in_bytes = 0;
+ char * output_block = 0;
+ char encode_buffer[ENCODE_SPACE_NEEDED];
+ int i = 0;
+ char * ptr = 0;
+ int remain = 0;
+ int result = 0;
+
+ if (dbg == NULL) {
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return((void *)DW_DLV_BADADDR);
+ }
+
+ if (unit_is_signed == false ||
+ unit_length_in_bits != 32 ||
+ input_block == NULL ||
+ input_length_in_units == 0 ||
+ output_length_in_bytes_ptr == NULL) {
+
+ _dwarf_p_error(NULL, error, DW_DLE_BADBITC);
+ return ((void *) DW_DLV_BADADDR);
+ }
+
+ /* At this point we assume the format is: signed 32 bit */
+
+ /* first compress everything to find the total size. */
+
+ output_length_in_bytes = 0;
+ for (i=0; i<input_length_in_units; i++) {
+ int unit_encoded_size;
+ Dwarf_sfixed unit; /* this is fixed at signed-32-bits */
+
+ unit = ((Dwarf_sfixed*)input_block)[i];
+
+ result = _dwarf_pro_encode_signed_leb128_nm(unit, &unit_encoded_size,
+ encode_buffer,sizeof(encode_buffer));
+ if (result != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+ output_length_in_bytes += unit_encoded_size;
+ }
+
+
+ /* then alloc */
+
+ output_block = (void *)
+ _dwarf_p_get_alloc(dbg, output_length_in_bytes);
+ if (output_block == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((void*)DW_DLV_BADADDR);
+ }
+
+ /* then compress again and copy into new buffer */
+
+ ptr = output_block;
+ remain = output_length_in_bytes;
+ for (i=0; i<input_length_in_units; i++) {
+ int unit_encoded_size;
+ Dwarf_sfixed unit; /* this is fixed at signed-32-bits */
+
+ unit = ((Dwarf_sfixed*)input_block)[i];
+
+ result = _dwarf_pro_encode_signed_leb128_nm(unit, &unit_encoded_size,
+ ptr, remain);
+ if (result != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+ remain -= unit_encoded_size;
+ ptr += unit_encoded_size;
+ }
+
+ if (remain != 0) {
+ _dwarf_p_dealloc(dbg, (unsigned char *)output_block);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+
+ *output_length_in_bytes_ptr = output_length_in_bytes;
+ return (void*) output_block;
+
+}
+
+void
+dwarf_dealloc_compressed_block(Dwarf_P_Debug dbg, void * space)
+{
+ _dwarf_p_dealloc(dbg, space);
+}
+
+/* This is very similar to targ_address but results in a different FORM */
+/* dbg->de_ar_data_attribute_form is data4 or data8
+ and dwarf4 changes the definition for such on DW_AT_high_pc.
+ DWARF 3: the FORM here has no defined meaning for dwarf3.
+ DWARF 4: the FORM here means that for DW_AT_high_pc the value
+ is not a high address but is instead an offset
+ from a (separate) DW_AT_low_pc.
+ The intent for DWARF4 is that this is not a relocated
+ address at all. Instead a simple offset.
+ But this should NOT be called for a simple non-relocated offset.
+ So do not call this with an attr of DW_AT_high_pc.
+ Use dwarf_add_AT_unsigned_const() (for example) instead of
+ dwarf_add_AT_dataref when the value is a simple offset .
+*/
+Dwarf_P_Attribute
+dwarf_add_AT_dataref(
+ Dwarf_P_Debug dbg,
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Unsigned pc_value,
+ Dwarf_Unsigned sym_index,
+ Dwarf_Error * error)
+{
+ /* TODO: Add checking here */
+ return local_add_AT_address(dbg, ownerdie, attr,
+ dbg->de_ar_data_attribute_form,
+ pc_value,
+ sym_index,
+ error);
+}
+
+
+
+Dwarf_P_Attribute
+dwarf_add_AT_block(
+ Dwarf_P_Debug dbg,
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Small *block_data,
+ Dwarf_Unsigned block_size,
+ Dwarf_Error *error
+)
+{
+ Dwarf_P_Attribute new_attr;
+ int result;
+ char encode_buffer[ENCODE_SPACE_NEEDED];
+ int len_size;
+ char * attrdata;
+
+ if (dbg == NULL) {
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+
+ if (ownerdie == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+
+ /* I don't mess with block1, block2, block4, not worth the effort */
+
+ /* So, encode the length into LEB128 */
+ result = _dwarf_pro_encode_leb128_nm(block_size, &len_size,
+ encode_buffer,sizeof(encode_buffer));
+ if (result != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+
+ /* Allocate the new attribute */
+ new_attr = (Dwarf_P_Attribute)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ if (new_attr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+
+ /* Fill in the attribute */
+ new_attr->ar_attribute = attr;
+ new_attr->ar_attribute_form = DW_FORM_block;
+ new_attr->ar_nbytes = len_size + block_size;
+ new_attr->ar_next = 0;
+
+ new_attr->ar_data = attrdata = (char *)
+ _dwarf_p_get_alloc(dbg, len_size + block_size);
+ if (new_attr->ar_data == NULL) {
+ /* free the block we got earlier */
+ _dwarf_p_dealloc(dbg, (unsigned char *) new_attr);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return((Dwarf_P_Attribute)DW_DLV_BADADDR);
+ }
+ /* write length and data to attribute data buffer */
+ memcpy(attrdata, encode_buffer, len_size);
+ attrdata += len_size;
+ memcpy(attrdata, block_data, block_size);
+
/* add attribute to the die */
_dwarf_pro_add_at_to_die(ownerdie, new_attr);
+
return new_attr;
}
@@ -150,22 +438,22 @@ dwarf_add_AT_targ_address_b(Dwarf_P_Debug dbg,
*/
Dwarf_P_Attribute
dwarf_add_AT_unsigned_const(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr,
- Dwarf_Unsigned value, Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Unsigned value, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
Dwarf_Half attr_form;
Dwarf_Small size;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (ownerdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
switch (attr) {
@@ -184,7 +472,7 @@ dwarf_add_AT_unsigned_const(Dwarf_P_Debug dbg,
case DW_AT_identifier_case:
case DW_AT_MIPS_loop_unroll_factor:
case DW_AT_MIPS_software_pipeline_depth:
- break;
+ break;
case DW_AT_decl_column:
case DW_AT_decl_file:
@@ -193,52 +481,61 @@ dwarf_add_AT_unsigned_const(Dwarf_P_Debug dbg,
case DW_AT_start_scope:
case DW_AT_stride_size:
case DW_AT_count:
- break;
-
- default:{
- _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
- }
+ case DW_AT_associated:
+ case DW_AT_allocated:
+ case DW_AT_upper_bound:
+ case DW_AT_lower_bound:
+ case DW_AT_call_file:
+ case DW_AT_call_line:
+ break;
+
+ default: {
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ break;
+ }
+ }
/*
Compute the number of bytes needed to hold constant. */
if (value <= UCHAR_MAX) {
- attr_form = DW_FORM_data1;
- size = 1;
+ attr_form = DW_FORM_data1;
+ size = 1;
} else if (value <= USHRT_MAX) {
- attr_form = DW_FORM_data2;
- size = 2;
+ attr_form = DW_FORM_data2;
+ size = 2;
} else if (value <= UINT_MAX) {
- attr_form = DW_FORM_data4;
- size = 4;
+ attr_form = DW_FORM_data4;
+ size = 4;
} else {
- attr_form = DW_FORM_data8;
- size = 8;
+ attr_form = DW_FORM_data8;
+ size = 8;
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = attr;
new_attr->ar_attribute_form = attr_form;
new_attr->ar_rel_type = R_MIPS_NONE;
- new_attr->ar_reloc_len = 0; /* irrelevant: unused with R_MIPS_NONE */
+ new_attr->ar_reloc_len = 0; /* irrelevant: unused with R_MIPS_NONE */
new_attr->ar_nbytes = size;
new_attr->ar_next = 0;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(dbg, size);
+ _dwarf_p_get_alloc(dbg, size);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
WRITE_UNALIGNED(dbg, new_attr->ar_data,
- (const void *) &value, sizeof(value), size);
+ (const void *) &value, sizeof(value), size);
/* add attribute to the die */
_dwarf_pro_add_at_to_die(ownerdie, new_attr);
@@ -254,74 +551,85 @@ dwarf_add_AT_unsigned_const(Dwarf_P_Debug dbg,
*/
Dwarf_P_Attribute
dwarf_add_AT_signed_const(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr,
- Dwarf_Signed value, Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Signed value, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
Dwarf_Half attr_form;
Dwarf_Small size;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (ownerdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
switch (attr) {
- case DW_AT_upper_bound:
case DW_AT_lower_bound:
- break;
-
- default:{
- _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
+ case DW_AT_upper_bound:
+ case DW_AT_const_value:
+ case DW_AT_bit_offset:
+ case DW_AT_bit_size:
+ case DW_AT_byte_size:
+ case DW_AT_count:
+ case DW_AT_byte_stride:
+ case DW_AT_bit_stride:
+ case DW_AT_allocated:
+ case DW_AT_associated:
+ break;
+
+ default:{
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ }
+ break;
}
/*
Compute the number of bytes needed to hold constant. */
if (value >= SCHAR_MIN && value <= SCHAR_MAX) {
- attr_form = DW_FORM_data1;
- size = 1;
+ attr_form = DW_FORM_data1;
+ size = 1;
} else if (value >= SHRT_MIN && value <= SHRT_MAX) {
- attr_form = DW_FORM_data2;
- size = 2;
+ attr_form = DW_FORM_data2;
+ size = 2;
} else if (value >= INT_MIN && value <= INT_MAX) {
- attr_form = DW_FORM_data4;
- size = 4;
+ attr_form = DW_FORM_data4;
+ size = 4;
} else {
- attr_form = DW_FORM_data8;
- size = 8;
+ attr_form = DW_FORM_data8;
+ size = 8;
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = attr;
new_attr->ar_attribute_form = attr_form;
new_attr->ar_rel_type = R_MIPS_NONE;
- new_attr->ar_reloc_len = 0; /* irrelevant: unused with R_MIPS_NONE
- */
+ new_attr->ar_reloc_len = 0; /* irrelevant: unused with R_MIPS_NONE */
new_attr->ar_nbytes = size;
new_attr->ar_next = 0;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(dbg, size);
+ _dwarf_p_get_alloc(dbg, size);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
WRITE_UNALIGNED(dbg, new_attr->ar_data,
- (const void *) &value, sizeof(value), size);
+ (const void *) &value, sizeof(value), size);
/* add attribute to the die */
_dwarf_pro_add_at_to_die(ownerdie, new_attr);
@@ -335,38 +643,38 @@ dwarf_add_AT_signed_const(Dwarf_P_Debug dbg,
*/
Dwarf_P_Attribute
dwarf_add_AT_location_expr(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr,
- Dwarf_P_Expr loc_expr, Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_P_Expr loc_expr, Dwarf_Error * error)
{
char encode_buffer[ENCODE_SPACE_NEEDED];
int res;
Dwarf_P_Attribute new_attr;
Dwarf_Half attr_form;
- char *len_str;
+ char *len_str = 0;
int len_size;
int block_size;
char *block_dest_ptr;
int do_len_as_int = 0;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (ownerdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (loc_expr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_EXPR_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_EXPR_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (loc_expr->ex_dbg != dbg) {
- _dwarf_p_error(dbg, error, DW_DLE_LOC_EXPR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_LOC_EXPR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
block_size = loc_expr->ex_next_byte_offset;
@@ -380,75 +688,87 @@ dwarf_add_AT_location_expr(Dwarf_P_Debug dbg,
case DW_AT_frame_base:
case DW_AT_static_link:
case DW_AT_vtable_elem_location:
- break;
-
- default:{
- _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
+ case DW_AT_lower_bound:
+ case DW_AT_upper_bound:
+ case DW_AT_count:
+ case DW_AT_associated:
+ case DW_AT_allocated:
+ case DW_AT_data_location:
+ case DW_AT_byte_stride:
+ case DW_AT_bit_stride:
+ case DW_AT_byte_size:
+ case DW_AT_bit_size:
+ break;
+
+ default:
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ break;
}
/*
Compute the number of bytes needed to hold constant. */
if (block_size <= UCHAR_MAX) {
- attr_form = DW_FORM_block1;
- len_size = 1;
- do_len_as_int = 1;
+ attr_form = DW_FORM_block1;
+ len_size = 1;
+ do_len_as_int = 1;
} else if (block_size <= USHRT_MAX) {
- attr_form = DW_FORM_block2;
- len_size = 2;
- do_len_as_int = 1;
+ attr_form = DW_FORM_block2;
+ len_size = 2;
+ do_len_as_int = 1;
} else if (block_size <= UINT_MAX) {
- attr_form = DW_FORM_block4;
- len_size = 4;
- do_len_as_int = 1;
+ attr_form = DW_FORM_block4;
+ len_size = 4;
+ do_len_as_int = 1;
} else {
- attr_form = DW_FORM_block;
- res = _dwarf_pro_encode_leb128_nm(block_size, &len_size,
- encode_buffer,
- sizeof(encode_buffer));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
- len_str = (char *) encode_buffer;
+ attr_form = DW_FORM_block;
+ res = _dwarf_pro_encode_leb128_nm(block_size, &len_size,
+ encode_buffer,
+ sizeof(encode_buffer));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ len_str = (char *) encode_buffer;
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = attr;
new_attr->ar_attribute_form = attr_form;
new_attr->ar_reloc_len = dbg->de_pointer_size;
if (loc_expr->ex_reloc_sym_index != NO_ELF_SYM_INDEX) {
- new_attr->ar_rel_type = dbg->de_ptr_reloc;
+ new_attr->ar_rel_type = dbg->de_ptr_reloc;
} else {
- new_attr->ar_rel_type = R_MIPS_NONE;
+ new_attr->ar_rel_type = R_MIPS_NONE;
}
new_attr->ar_rel_symidx = loc_expr->ex_reloc_sym_index;
new_attr->ar_rel_offset =
- (Dwarf_Word) loc_expr->ex_reloc_offset + len_size;
+ (Dwarf_Word) loc_expr->ex_reloc_offset + len_size;
new_attr->ar_nbytes = block_size + len_size;
new_attr->ar_next = 0;
new_attr->ar_data = block_dest_ptr =
- (char *) _dwarf_p_get_alloc(dbg, block_size + len_size);
+ (char *) _dwarf_p_get_alloc(dbg, block_size + len_size);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (do_len_as_int) {
- WRITE_UNALIGNED(dbg, block_dest_ptr, (const void *) &block_size,
- sizeof(block_size), len_size);
+ WRITE_UNALIGNED(dbg, block_dest_ptr, (const void *) &block_size,
+ sizeof(block_size), len_size);
} else {
- /* is uleb number form */
- memcpy(block_dest_ptr, len_str, len_size);
+ /* Is uleb number form, DW_FORM_block. See above. */
+ memcpy(block_dest_ptr, len_str, len_size);
}
block_dest_ptr += len_size;
memcpy(block_dest_ptr, &(loc_expr->ex_byte_stream[0]), block_size);
@@ -474,25 +794,25 @@ dwarf_add_AT_location_expr(Dwarf_P_Debug dbg,
*/
Dwarf_P_Attribute
dwarf_add_AT_reference(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr,
- Dwarf_P_Die otherdie, Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_P_Die otherdie, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (ownerdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (otherdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
switch (attr) {
@@ -509,27 +829,30 @@ dwarf_add_AT_reference(Dwarf_P_Debug dbg,
case DW_AT_lower_bound:
case DW_AT_upper_bound:
case DW_AT_count:
+ case DW_AT_associated:
+ case DW_AT_allocated:
+ case DW_AT_bit_offset:
+ case DW_AT_bit_size:
+ case DW_AT_byte_size:
case DW_AT_sibling:
- case DW_AT_MIPS_stride:
- case DW_AT_MIPS_stride_byte:
- case DW_AT_MIPS_stride_elem:
- case DW_AT_MIPS_clone_origin:
- case DW_AT_MIPS_ptr_dopetype:
- case DW_AT_MIPS_allocatable_dopetype:
- case DW_AT_MIPS_assumed_shape_dopetype:
- break;
-
- default:{
- _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
+ case DW_AT_bit_stride:
+ case DW_AT_byte_stride:
+ case DW_AT_namelist_item:
+ break;
+
+ default:
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ break;
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = attr;
@@ -551,22 +874,23 @@ dwarf_add_AT_reference(Dwarf_P_Debug dbg,
*/
Dwarf_P_Attribute
dwarf_add_AT_flag(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr,
- Dwarf_Small flag, Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr,
+ Dwarf_Small flag, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (ownerdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
+#if 0
switch (attr) {
case DW_AT_is_optional:
case DW_AT_artificial:
@@ -574,35 +898,36 @@ dwarf_add_AT_flag(Dwarf_P_Debug dbg,
case DW_AT_external:
case DW_AT_prototyped:
case DW_AT_variable_parameter:
- case DW_AT_MIPS_has_inlines:
- case DW_AT_MIPS_assumed_size:
- break;
-
- default:{
- _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
+ break;
+
+ default:
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ break;
}
+#endif
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = attr;
new_attr->ar_attribute_form = DW_FORM_flag;
new_attr->ar_nbytes = 1;
- new_attr->ar_reloc_len = 0; /* not used */
+ new_attr->ar_reloc_len = 0; /* not used */
new_attr->ar_rel_type = R_MIPS_NONE;
new_attr->ar_next = 0;
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(dbg, 1);
+ _dwarf_p_get_alloc(dbg, 1);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
memcpy(new_attr->ar_data, &flag, 1);
@@ -618,26 +943,26 @@ dwarf_add_AT_flag(Dwarf_P_Debug dbg,
*/
Dwarf_P_Attribute
dwarf_add_AT_string(Dwarf_P_Debug dbg,
- Dwarf_P_Die ownerdie,
- Dwarf_Half attr, char *string, Dwarf_Error * error)
+ Dwarf_P_Die ownerdie,
+ Dwarf_Half attr, char *string, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
if (ownerdie == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
switch (attr) {
@@ -645,14 +970,14 @@ dwarf_add_AT_string(Dwarf_P_Debug dbg,
case DW_AT_comp_dir:
case DW_AT_const_value:
case DW_AT_producer:
- case DW_AT_MIPS_linkage_name:
- case DW_AT_MIPS_abstract_name:
- break;
-
- default:{
- _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
- }
+ break;
+
+ default:
+ if ( attr < DW_AT_lo_user || attr > DW_AT_hi_user ) {
+ _dwarf_p_error(dbg, error, DW_DLE_INPUT_ATTR_BAD);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ }
+ break;
}
new_attr->ar_attribute = attr;
@@ -661,15 +986,15 @@ dwarf_add_AT_string(Dwarf_P_Debug dbg,
new_attr->ar_next = 0;
new_attr->ar_data =
- (char *) _dwarf_p_get_alloc(NULL, strlen(string) + 1);
+ (char *) _dwarf_p_get_alloc(dbg, strlen(string)+1);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
strcpy(new_attr->ar_data, string);
new_attr->ar_rel_type = R_MIPS_NONE;
- new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
+ new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
/* add attribute to the die */
_dwarf_pro_add_at_to_die(ownerdie, new_attr);
@@ -679,20 +1004,20 @@ dwarf_add_AT_string(Dwarf_P_Debug dbg,
Dwarf_P_Attribute
dwarf_add_AT_const_value_string(Dwarf_P_Die ownerdie,
- char *string_value, Dwarf_Error * error)
+ char *string_value, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
if (ownerdie == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(ownerdie->di_dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = DW_AT_const_value;
@@ -701,15 +1026,15 @@ dwarf_add_AT_const_value_string(Dwarf_P_Die ownerdie,
new_attr->ar_next = 0;
new_attr->ar_data =
- (char *) _dwarf_p_get_alloc(NULL, strlen(string_value) + 1);
+ (char *) _dwarf_p_get_alloc(ownerdie->di_dbg, strlen(string_value)+1);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
strcpy(new_attr->ar_data, string_value);
new_attr->ar_rel_type = R_MIPS_NONE;
- new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
+ new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
/* add attribute to the die */
_dwarf_pro_add_at_to_die(ownerdie, new_attr);
@@ -719,20 +1044,20 @@ dwarf_add_AT_const_value_string(Dwarf_P_Die ownerdie,
Dwarf_P_Attribute
dwarf_add_AT_producer(Dwarf_P_Die ownerdie,
- char *producer_string, Dwarf_Error * error)
+ char *producer_string, Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
if (ownerdie == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(ownerdie->di_dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = DW_AT_producer;
@@ -741,15 +1066,15 @@ dwarf_add_AT_producer(Dwarf_P_Die ownerdie,
new_attr->ar_next = 0;
new_attr->ar_data =
- (char *) _dwarf_p_get_alloc(NULL, strlen(producer_string) + 1);
+ (char *) _dwarf_p_get_alloc(ownerdie->di_dbg, strlen(producer_string)+1);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
strcpy(new_attr->ar_data, producer_string);
new_attr->ar_rel_type = R_MIPS_NONE;
- new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
+ new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
/* add attribute to the die */
_dwarf_pro_add_at_to_die(ownerdie, new_attr);
@@ -759,8 +1084,8 @@ dwarf_add_AT_producer(Dwarf_P_Die ownerdie,
Dwarf_P_Attribute
dwarf_add_AT_const_value_signedint(Dwarf_P_Die ownerdie,
- Dwarf_Signed signed_value,
- Dwarf_Error * error)
+ Dwarf_Signed signed_value,
+ Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
int leb_size;
@@ -768,35 +1093,35 @@ dwarf_add_AT_const_value_signedint(Dwarf_P_Die ownerdie,
int res;
if (ownerdie == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(ownerdie->di_dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = DW_AT_const_value;
new_attr->ar_attribute_form = DW_FORM_sdata;
new_attr->ar_rel_type = R_MIPS_NONE;
- new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
+ new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
new_attr->ar_next = 0;
res = _dwarf_pro_encode_signed_leb128_nm(signed_value, &leb_size,
- encode_buffer,
- sizeof(encode_buffer));
+ encode_buffer,
+ sizeof(encode_buffer));
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(NULL, leb_size);
+ _dwarf_p_get_alloc(ownerdie->di_dbg, leb_size);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
memcpy(new_attr->ar_data, encode_buffer, leb_size);
new_attr->ar_nbytes = leb_size;
@@ -809,8 +1134,8 @@ dwarf_add_AT_const_value_signedint(Dwarf_P_Die ownerdie,
Dwarf_P_Attribute
dwarf_add_AT_const_value_unsignedint(Dwarf_P_Die ownerdie,
- Dwarf_Unsigned unsigned_value,
- Dwarf_Error * error)
+ Dwarf_Unsigned unsigned_value,
+ Dwarf_Error * error)
{
Dwarf_P_Attribute new_attr;
int leb_size;
@@ -818,35 +1143,35 @@ dwarf_add_AT_const_value_unsignedint(Dwarf_P_Die ownerdie,
int res;
if (ownerdie == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr = (Dwarf_P_Attribute)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Attribute_s));
+ _dwarf_p_get_alloc(ownerdie->di_dbg, sizeof(struct Dwarf_P_Attribute_s));
if (new_attr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_attribute = DW_AT_const_value;
new_attr->ar_attribute_form = DW_FORM_udata;
new_attr->ar_rel_type = R_MIPS_NONE;
- new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
+ new_attr->ar_reloc_len = 0; /* unused for R_MIPS_NONE */
new_attr->ar_next = 0;
res = _dwarf_pro_encode_leb128_nm(unsigned_value, &leb_size,
- encode_buffer,
- sizeof(encode_buffer));
+ encode_buffer,
+ sizeof(encode_buffer));
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
new_attr->ar_data = (char *)
- _dwarf_p_get_alloc(NULL, leb_size);
+ _dwarf_p_get_alloc(ownerdie->di_dbg, leb_size);
if (new_attr->ar_data == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
- return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
+ _dwarf_p_error(NULL, error, DW_DLE_ALLOC_FAIL);
+ return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
}
memcpy(new_attr->ar_data, encode_buffer, leb_size);
new_attr->ar_nbytes = leb_size;
diff --git a/usr/src/tools/ctf/dwarf/common/pro_frame.c b/usr/src/tools/ctf/dwarf/common/pro_frame.c
index e23dce4598..bd1ef6a637 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_frame.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_frame.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -44,47 +44,47 @@
#include "pro_frame.h"
static void _dwarf_pro_add_to_fde(Dwarf_P_Fde fde,
- Dwarf_P_Frame_Pgm inst);
+ Dwarf_P_Frame_Pgm inst);
/*-------------------------------------------------------------------------
- This functions adds a cie struct to the debug pointer. Its in the
- form of a linked list.
- augmenter: string reps augmentation (implementation defined)
- code_align: alignment of code
- data_align: alignment of data
- init_bytes: byts having initial instructions
- init_n_bytes: number of bytes of initial instructions
+ This function adds a cie struct to the debug pointer. Its in the
+ form of a linked list.
+ augmenter: string reps augmentation (implementation defined)
+ code_align: alignment of code
+ data_align: alignment of data
+ init_bytes: byts having initial instructions
+ init_n_bytes: number of bytes of initial instructions
--------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_add_frame_cie(Dwarf_P_Debug dbg,
- char *augmenter,
- Dwarf_Small code_align,
- Dwarf_Small data_align,
- Dwarf_Small return_reg,
- Dwarf_Ptr init_bytes,
- Dwarf_Unsigned init_n_bytes, Dwarf_Error * error)
+ char *augmenter,
+ Dwarf_Small code_align,
+ Dwarf_Small data_align,
+ Dwarf_Small return_reg,
+ Dwarf_Ptr init_bytes,
+ Dwarf_Unsigned init_n_bytes, Dwarf_Error * error)
{
Dwarf_P_Cie curcie;
if (dbg->de_frame_cies == NULL) {
- dbg->de_frame_cies = (Dwarf_P_Cie)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Cie_s));
- if (dbg->de_frame_cies == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_ALLOC, DW_DLV_NOCOUNT);
- }
- curcie = dbg->de_frame_cies;
- dbg->de_n_cie = 1;
- dbg->de_last_cie = curcie;
+ dbg->de_frame_cies = (Dwarf_P_Cie)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Cie_s));
+ if (dbg->de_frame_cies == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_ALLOC, DW_DLV_NOCOUNT);
+ }
+ curcie = dbg->de_frame_cies;
+ dbg->de_n_cie = 1;
+ dbg->de_last_cie = curcie;
} else {
- curcie = dbg->de_last_cie;
- curcie->cie_next = (Dwarf_P_Cie)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Cie_s));
- if (curcie->cie_next == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_ALLOC, DW_DLV_NOCOUNT);
- }
- curcie = curcie->cie_next;
- dbg->de_n_cie++;
- dbg->de_last_cie = curcie;
+ curcie = dbg->de_last_cie;
+ curcie->cie_next = (Dwarf_P_Cie)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Cie_s));
+ if (curcie->cie_next == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_ALLOC, DW_DLV_NOCOUNT);
+ }
+ curcie = curcie->cie_next;
+ dbg->de_n_cie++;
+ dbg->de_last_cie = curcie;
}
curcie->cie_version = DW_CIE_VERSION;
curcie->cie_aug = augmenter;
@@ -99,40 +99,40 @@ dwarf_add_frame_cie(Dwarf_P_Debug dbg,
/*-------------------------------------------------------------------------
- This functions adds a fde struct to the debug pointer. Its in the
- form of a linked list.
- die: subprogram/function die corresponding to this fde
- cie: cie referred to by this fde, obtained from call to
- add_frame_cie() routine.
- virt_addr: beginning address
- code_len: length of code reps by the fde
+ This functions adds a fde struct to the debug pointer. Its in the
+ form of a linked list.
+ die: subprogram/function die corresponding to this fde
+ cie: cie referred to by this fde, obtained from call to
+ add_frame_cie() routine.
+ virt_addr: beginning address
+ code_len: length of code reps by the fde
--------------------------------------------------------------------------*/
- /*ARGSUSED*/ /* pretend all args used */
+ /*ARGSUSED*/ /* pretend all args used */
Dwarf_Unsigned
dwarf_add_frame_fde(Dwarf_P_Debug dbg,
- Dwarf_P_Fde fde,
- Dwarf_P_Die die,
- Dwarf_Unsigned cie,
- Dwarf_Unsigned virt_addr,
- Dwarf_Unsigned code_len,
- Dwarf_Unsigned symidx, Dwarf_Error * error)
+ Dwarf_P_Fde fde,
+ Dwarf_P_Die die,
+ Dwarf_Unsigned cie,
+ Dwarf_Unsigned virt_addr,
+ Dwarf_Unsigned code_len,
+ Dwarf_Unsigned symidx, Dwarf_Error * error)
{
return dwarf_add_frame_fde_b(dbg, fde, die, cie, virt_addr,
- code_len, symidx, 0, 0, error);
+ code_len, symidx, 0, 0, error);
}
/*ARGSUSED10*/
Dwarf_Unsigned
dwarf_add_frame_fde_b(Dwarf_P_Debug dbg,
- Dwarf_P_Fde fde,
- Dwarf_P_Die die,
- Dwarf_Unsigned cie,
- Dwarf_Unsigned virt_addr,
- Dwarf_Unsigned code_len,
- Dwarf_Unsigned symidx,
- Dwarf_Unsigned symidx_of_end,
- Dwarf_Addr offset_from_end_sym,
- Dwarf_Error * error)
+ Dwarf_P_Fde fde,
+ Dwarf_P_Die die,
+ Dwarf_Unsigned cie,
+ Dwarf_Unsigned virt_addr,
+ Dwarf_Unsigned code_len,
+ Dwarf_Unsigned symidx,
+ Dwarf_Unsigned symidx_of_end,
+ Dwarf_Addr offset_from_end_sym,
+ Dwarf_Error * error)
{
Dwarf_P_Fde curfde;
@@ -145,77 +145,78 @@ dwarf_add_frame_fde_b(Dwarf_P_Debug dbg,
fde->fde_exception_table_symbol = 0;
fde->fde_end_symbol_offset = offset_from_end_sym;
fde->fde_end_symbol = symidx_of_end;
+ fde->fde_dbg = dbg;
curfde = dbg->de_last_fde;
if (curfde == NULL) {
- dbg->de_frame_fdes = fde;
- dbg->de_last_fde = fde;
- dbg->de_n_fde = 1;
+ dbg->de_frame_fdes = fde;
+ dbg->de_last_fde = fde;
+ dbg->de_n_fde = 1;
} else {
- curfde->fde_next = fde;
- dbg->de_last_fde = fde;
- dbg->de_n_fde++;
+ curfde->fde_next = fde;
+ dbg->de_last_fde = fde;
+ dbg->de_n_fde++;
}
return dbg->de_n_fde;
}
/*-------------------------------------------------------------------------
- This functions adds information to an fde. The fde is
- linked into the linked list of fde's maintained in the Dwarf_P_Debug
- structure.
- dbg: The debug descriptor.
- fde: The fde to be added.
- die: subprogram/function die corresponding to this fde
- cie: cie referred to by this fde, obtained from call to
- add_frame_cie() routine.
- virt_addr: beginning address
- code_len: length of code reps by the fde
- symidx: The symbol id of the symbol wrt to which relocation needs
- to be performed for 'virt_addr'.
- offset_into_exception_tables: The start of exception tables for
- this function (indicated as an offset into the exception
- tables). A value of -1 indicates that there is no exception
- table entries associated with this function.
- exception_table_symbol: The symbol id of the section for exception
- tables wrt to which the offset_into_exception_tables will
- be relocated.
+ This functions adds information to an fde. The fde is
+ linked into the linked list of fde's maintained in the Dwarf_P_Debug
+ structure.
+ dbg: The debug descriptor.
+ fde: The fde to be added.
+ die: subprogram/function die corresponding to this fde
+ cie: cie referred to by this fde, obtained from call to
+ add_frame_cie() routine.
+ virt_addr: beginning address
+ code_len: length of code reps by the fde
+ symidx: The symbol id of the symbol wrt to which relocation needs
+ to be performed for 'virt_addr'.
+ offset_into_exception_tables: The start of exception tables for
+ this function (indicated as an offset into the exception
+ tables). A value of -1 indicates that there is no exception
+ table entries associated with this function.
+ exception_table_symbol: The symbol id of the section for exception
+ tables wrt to which the offset_into_exception_tables will
+ be relocated.
--------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_add_frame_info(Dwarf_P_Debug dbg,
- Dwarf_P_Fde fde,
- Dwarf_P_Die die,
- Dwarf_Unsigned cie,
- Dwarf_Unsigned virt_addr,
- Dwarf_Unsigned code_len,
- Dwarf_Unsigned symidx,
- Dwarf_Signed offset_into_exception_tables,
- Dwarf_Unsigned exception_table_symbol,
- Dwarf_Error * error)
+ Dwarf_P_Fde fde,
+ Dwarf_P_Die die,
+ Dwarf_Unsigned cie,
+ Dwarf_Unsigned virt_addr,
+ Dwarf_Unsigned code_len,
+ Dwarf_Unsigned symidx,
+ Dwarf_Signed offset_into_exception_tables,
+ Dwarf_Unsigned exception_table_symbol,
+ Dwarf_Error * error)
{
return dwarf_add_frame_info_b(dbg, fde, die, cie, virt_addr,
- code_len, symidx,
- /* end_symbol */ 0,
- /* offset_from_end */ 0,
- offset_into_exception_tables,
- exception_table_symbol, error);
+ code_len, symidx,
+ /* end_symbol */ 0,
+ /* offset_from_end */ 0,
+ offset_into_exception_tables,
+ exception_table_symbol, error);
}
- /*ARGSUSED*/ /* pretend all args used */
- Dwarf_Unsigned
+ /*ARGSUSED*/ /* pretend all args used */
+Dwarf_Unsigned
dwarf_add_frame_info_b(Dwarf_P_Debug dbg,
- Dwarf_P_Fde fde,
- Dwarf_P_Die die,
- Dwarf_Unsigned cie,
- Dwarf_Unsigned virt_addr,
- Dwarf_Unsigned code_len,
- Dwarf_Unsigned symidx,
- Dwarf_Unsigned end_symidx,
- Dwarf_Unsigned offset_from_end_symbol,
- Dwarf_Signed offset_into_exception_tables,
- Dwarf_Unsigned exception_table_symbol,
- Dwarf_Error * error)
+ Dwarf_P_Fde fde,
+ Dwarf_P_Die die,
+ Dwarf_Unsigned cie,
+ Dwarf_Unsigned virt_addr,
+ Dwarf_Unsigned code_len,
+ Dwarf_Unsigned symidx,
+ Dwarf_Unsigned end_symidx,
+ Dwarf_Unsigned offset_from_end_symbol,
+ Dwarf_Signed offset_into_exception_tables,
+ Dwarf_Unsigned exception_table_symbol,
+ Dwarf_Error * error)
{
Dwarf_P_Fde curfde;
@@ -225,28 +226,51 @@ dwarf_add_frame_info_b(Dwarf_P_Debug dbg,
fde->fde_r_symidx = symidx;
fde->fde_addr_range = code_len;
fde->fde_offset_into_exception_tables =
- offset_into_exception_tables;
+ offset_into_exception_tables;
fde->fde_exception_table_symbol = exception_table_symbol;
fde->fde_end_symbol_offset = offset_from_end_symbol;
fde->fde_end_symbol = end_symidx;
-
+ fde->fde_dbg = dbg;
curfde = dbg->de_last_fde;
if (curfde == NULL) {
- dbg->de_frame_fdes = fde;
- dbg->de_last_fde = fde;
- dbg->de_n_fde = 1;
+ dbg->de_frame_fdes = fde;
+ dbg->de_last_fde = fde;
+ dbg->de_n_fde = 1;
} else {
- curfde->fde_next = fde;
- dbg->de_last_fde = fde;
- dbg->de_n_fde++;
+ curfde->fde_next = fde;
+ dbg->de_last_fde = fde;
+ dbg->de_n_fde++;
}
return dbg->de_n_fde;
}
+/* This is an alternate to inserting frame instructions
+ one instruction at a time. But use either this
+ or instruction level, not both in one fde. */
+int
+dwarf_insert_fde_inst_bytes(Dwarf_P_Debug dbg,
+ Dwarf_P_Fde fde,Dwarf_Unsigned len, Dwarf_Ptr ibytes,
+ Dwarf_Error *error)
+{
+ if( len == 0) {
+ return DW_DLV_OK;
+ }
+ if(fde->fde_block || fde->fde_inst) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DUPLICATE_INST_BLOCK,
+ (int)DW_DLV_BADADDR);
+ }
+ fde->fde_block = (Dwarf_Ptr)_dwarf_p_get_alloc(dbg, len);
+ memcpy(fde->fde_block,ibytes,len);
+ fde->fde_inst_block_size = len;
+ fde->fde_n_bytes += len;
+ return DW_DLV_OK;
+}
+
+
/*-------------------------------------------------------------------
- Create a new fde
+ Create a new fde.
---------------------------------------------------------------------*/
Dwarf_P_Fde
dwarf_new_fde(Dwarf_P_Debug dbg, Dwarf_Error * error)
@@ -254,27 +278,25 @@ dwarf_new_fde(Dwarf_P_Debug dbg, Dwarf_Error * error)
Dwarf_P_Fde fde;
fde = (Dwarf_P_Fde)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Fde_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Fde_s));
if (fde == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_FDE_ALLOC,
- (Dwarf_P_Fde) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_FDE_ALLOC,
+ (Dwarf_P_Fde) DW_DLV_BADADDR);
}
- fde->fde_next = NULL;
- fde->fde_inst = NULL;
- fde->fde_n_inst = 0;
- fde->fde_n_bytes = 0;
- fde->fde_last_inst = NULL;
+
fde->fde_uwordb_size = dbg->de_offset_size;
+
return fde;
}
+
/*------------------------------------------------------------------------
- Add cfe_offset instruction to fde
+ Add a cfe_offset instruction to the fde passed in.
-------------------------------------------------------------------------*/
Dwarf_P_Fde
dwarf_fde_cfa_offset(Dwarf_P_Fde fde,
- Dwarf_Unsigned reg,
- Dwarf_Signed offset, Dwarf_Error * error)
+ Dwarf_Unsigned reg,
+ Dwarf_Signed offset, Dwarf_Error * error)
{
Dwarf_Ubyte opc, regno;
char *ptr;
@@ -282,31 +304,32 @@ dwarf_fde_cfa_offset(Dwarf_P_Fde fde,
int nbytes;
int res;
char buff1[ENCODE_SPACE_NEEDED];
+ Dwarf_P_Debug dbg = fde->fde_dbg;
curinst = (Dwarf_P_Frame_Pgm)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Frame_Pgm_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Frame_Pgm_s));
if (curinst == NULL) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_FPGM_ALLOC,
- (Dwarf_P_Fde) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_FPGM_ALLOC,
+ (Dwarf_P_Fde) DW_DLV_BADADDR);
}
opc = DW_CFA_offset;
regno = reg;
if (regno & 0xc0) {
- DWARF_P_DBG_ERROR(NULL, DW_DLE_REGNO_OVFL,
- (Dwarf_P_Fde) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_REGNO_OVFL,
+ (Dwarf_P_Fde) DW_DLV_BADADDR);
}
- opc = opc | regno; /* lower 6 bits are register number */
+ opc = opc | regno; /* lower 6 bits are register number */
curinst->dfp_opcode = opc;
res = _dwarf_pro_encode_leb128_nm(offset, &nbytes,
- buff1, sizeof(buff1));
+ buff1, sizeof(buff1));
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
}
- ptr = (char *) _dwarf_p_get_alloc(NULL, nbytes);
+ ptr = (char *) _dwarf_p_get_alloc(dbg, nbytes);
if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
}
memcpy(ptr, buff1, nbytes);
@@ -329,12 +352,22 @@ dwarf_fde_cfa_offset(Dwarf_P_Fde fde,
represented with relocations and symbol indices for
DW_DLC_SYMBOLIC_RELOCATIONS.
+ This does not treat all DW_CFA instructions yet.
+
+ For certain operations a val? value must be
+ signed (though passed in as unsigned here).
+
+ Currently this does not check that the frame
+ version is 3(for dwarf3) or 4 (for dwarf4)
+ when applying operations that are only valid for
+ dwarf3 or dwarf4.
+
*/
Dwarf_P_Fde
dwarf_add_fde_inst(Dwarf_P_Fde fde,
- Dwarf_Small op,
- Dwarf_Unsigned val1,
- Dwarf_Unsigned val2, Dwarf_Error * error)
+ Dwarf_Small op,
+ Dwarf_Unsigned val1,
+ Dwarf_Unsigned val2, Dwarf_Error * error)
{
Dwarf_P_Frame_Pgm curinst;
int nbytes, nbytes1, nbytes2;
@@ -346,177 +379,190 @@ dwarf_add_fde_inst(Dwarf_P_Fde fde,
int res;
char buff1[ENCODE_SPACE_NEEDED];
char buff2[ENCODE_SPACE_NEEDED];
+ Dwarf_P_Debug dbg = fde->fde_dbg;
+ /* This is a hack telling the code when to transform
+ a value to a signed leb number. */
+ int signed_second = 0;
+ int signed_first = 0;
nbytes = 0;
ptr = NULL;
curinst = (Dwarf_P_Frame_Pgm)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Frame_Pgm_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Frame_Pgm_s));
if (curinst == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_FPGM_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ _dwarf_p_error(dbg, error, DW_DLE_FPGM_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
}
switch (op) {
case DW_CFA_advance_loc:
- if (val1 <= 0x3f) {
- db = val1;
- op |= db;
- }
- /* test not portable FIX */
- else if (val1 <= UCHAR_MAX) {
- op = DW_CFA_advance_loc1;
- db = val1;
- ptr = (char *) _dwarf_p_get_alloc(NULL, 1);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy((void *) ptr, (const void *) &db, 1);
- nbytes = 1;
- }
- /* test not portable FIX */
- else if (val1 <= USHRT_MAX) {
- op = DW_CFA_advance_loc2;
- dh = val1;
- ptr = (char *) _dwarf_p_get_alloc(NULL, 2);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy((void *) ptr, (const void *) &dh, 2);
- nbytes = 2;
- }
- /* test not portable FIX */
- else if (val1 <= ULONG_MAX) {
- op = DW_CFA_advance_loc4;
- dw = (Dwarf_Word) val1;
- ptr = (char *) _dwarf_p_get_alloc(NULL, 4);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy((void *) ptr, (const void *) &dw, 4);
- nbytes = 4;
- } else {
- op = DW_CFA_MIPS_advance_loc8;
- du = val1;
- ptr =
- (char *) _dwarf_p_get_alloc(NULL,
- sizeof(Dwarf_Unsigned));
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy((void *) ptr, (const void *) &du, 8);
- nbytes = 8;
- }
- break;
+ if (val1 <= 0x3f) {
+ db = val1;
+ op |= db;
+ }
+ /* test not portable FIX */
+ else if (val1 <= UCHAR_MAX) {
+ op = DW_CFA_advance_loc1;
+ db = val1;
+ ptr = (char *) _dwarf_p_get_alloc(dbg, 1);
+ if (ptr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ memcpy((void *) ptr, (const void *) &db, 1);
+ nbytes = 1;
+ }
+ /* test not portable FIX */
+ else if (val1 <= USHRT_MAX) {
+ op = DW_CFA_advance_loc2;
+ dh = val1;
+ ptr = (char *) _dwarf_p_get_alloc(dbg, 2);
+ if (ptr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ memcpy((void *) ptr, (const void *) &dh, 2);
+ nbytes = 2;
+ }
+ /* test not portable FIX */
+ else if (val1 <= ULONG_MAX) {
+ op = DW_CFA_advance_loc4;
+ dw = (Dwarf_Word) val1;
+ ptr = (char *) _dwarf_p_get_alloc(dbg, 4);
+ if (ptr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ memcpy((void *) ptr, (const void *) &dw, 4);
+ nbytes = 4;
+ } else {
+ op = DW_CFA_MIPS_advance_loc8;
+ du = val1;
+ ptr =
+ (char *) _dwarf_p_get_alloc(dbg,
+ sizeof(Dwarf_Unsigned));
+ if (ptr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ memcpy((void *) ptr, (const void *) &du, 8);
+ nbytes = 8;
+ }
+ break;
case DW_CFA_offset:
- if (val1 <= MAX_6_BIT_VALUE) {
- db = val1;
- op |= db;
- res = _dwarf_pro_encode_leb128_nm(val2, &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- ptr = (char *) _dwarf_p_get_alloc(NULL, nbytes);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy(ptr, buff1, nbytes);
-
- } else {
- op = DW_CFA_offset_extended;
-
- res = _dwarf_pro_encode_leb128_nm(val1, &nbytes1,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- res = _dwarf_pro_encode_leb128_nm(val2, &nbytes2,
- buff2, sizeof(buff2));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- ptr = (char *) _dwarf_p_get_alloc(NULL, nbytes1 + nbytes2);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy(ptr, buff1, nbytes1);
- memcpy(ptr + nbytes1, buff2, nbytes2);
- nbytes = nbytes1 + nbytes2;
- }
- break;
+ if (val1 <= MAX_6_BIT_VALUE) {
+ db = val1;
+ op |= db;
+ res = _dwarf_pro_encode_leb128_nm(val2, &nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ ptr = (char *) _dwarf_p_get_alloc(dbg, nbytes);
+ if (ptr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ memcpy(ptr, buff1, nbytes);
+
+ } else {
+ op = DW_CFA_offset_extended;
+ goto two_leb;
+ }
+ break;
+ case DW_CFA_offset_extended_sf: /* DWARF3 */
+ signed_second = 1;
+ goto two_leb;
+ case DW_CFA_offset_extended:
+ goto two_leb;
case DW_CFA_undefined:
case DW_CFA_same_value:
- res = _dwarf_pro_encode_leb128_nm(val1, &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- ptr = (char *) _dwarf_p_get_alloc(NULL, nbytes);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy(ptr, buff1, nbytes);
- break;
-
+ goto one_leb;
+
+ case DW_CFA_val_offset:
+ goto two_leb;
+ case DW_CFA_val_offset_sf:
+ signed_second = 1;
+ goto two_leb;
+ case DW_CFA_def_cfa_sf:
+ signed_second = 1;
+ goto two_leb;
case DW_CFA_register:
case DW_CFA_def_cfa:
- res = _dwarf_pro_encode_leb128_nm(val1, &nbytes1,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
-
- res = _dwarf_pro_encode_leb128_nm(val2, &nbytes2,
- buff2, sizeof(buff2));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
-
- ptr = (char *) _dwarf_p_get_alloc(NULL, nbytes1 + nbytes2);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy(ptr, buff1, nbytes1);
- memcpy(ptr + nbytes1, buff2, nbytes2);
- nbytes = nbytes1 + nbytes2;
- break;
-
+ two_leb:
+ res = _dwarf_pro_encode_leb128_nm(val1, &nbytes1,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ if (!signed_second) {
+ res = _dwarf_pro_encode_leb128_nm(val2, &nbytes2,
+ buff2, sizeof(buff2));
+ } else {
+ Dwarf_Signed val2s = val2;
+ res = _dwarf_pro_encode_signed_leb128_nm(val2s, &nbytes2,
+ buff2, sizeof(buff2));
+ }
+
+ res = _dwarf_pro_encode_leb128_nm(val2, &nbytes2,
+ buff2, sizeof(buff2));
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+
+ ptr = (char *) _dwarf_p_get_alloc(dbg, nbytes1 + nbytes2);
+ if (ptr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ memcpy(ptr, buff1, nbytes1);
+ memcpy(ptr + nbytes1, buff2, nbytes2);
+ nbytes = nbytes1 + nbytes2;
+ break;
+
+ case DW_CFA_def_cfa_offset_sf: /* DWARF3 */
+ signed_first = 1;
+ goto one_leb;
case DW_CFA_def_cfa_register:
case DW_CFA_def_cfa_offset:
- res = _dwarf_pro_encode_leb128_nm(val1, &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- ptr = (char *) _dwarf_p_get_alloc(NULL, nbytes);
- if (ptr == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_STRING_ALLOC);
- return ((Dwarf_P_Fde) DW_DLV_BADADDR);
- }
- memcpy(ptr, buff1, nbytes);
- break;
-
+ one_leb:
+ if(!signed_first) {
+ res = _dwarf_pro_encode_leb128_nm(val1, &nbytes,
+ buff1, sizeof(buff1));
+ } else {
+ Dwarf_Signed val1s = val1;
+ res = _dwarf_pro_encode_signed_leb128_nm(val1s, &nbytes,
+ buff1, sizeof(buff1));
+ }
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ ptr = (char *) _dwarf_p_get_alloc(dbg, nbytes);
+ if (ptr == NULL) {
+ _dwarf_p_error(dbg, error, DW_DLE_STRING_ALLOC);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
+ }
+ memcpy(ptr, buff1, nbytes);
+ break;
+ case DW_CFA_def_cfa_expression: /* DWARF3 */
+ /* FIXME: argument is dwarf expr, not handled yet. */
+ case DW_CFA_expression: /* DWARF3 */
+ /* First arg: ULEB reg num. 2nd arg dwarf expr in form block.
+ FIXME: not handled yet. */
+ case DW_CFA_val_expression: /* DWARF3f */
+ /* First arg: ULEB reg num. 2nd arg dwarf expr in form block.
+ FIXME: not handled yet. */
default:
- break;
+ _dwarf_p_error(dbg, error, DW_DLE_DEBUGFRAME_ERROR);
+ return ((Dwarf_P_Fde) DW_DLV_BADADDR);
}
curinst->dfp_opcode = op;
@@ -530,23 +576,23 @@ dwarf_add_fde_inst(Dwarf_P_Fde fde,
/*------------------------------------------------------------------------
- instructions are added to fde in the form of a linked
- list. This function manages the linked list
+ Instructions are added to an fde in the form of a linked
+ list. This function manages the linked list.
-------------------------------------------------------------------------*/
void
_dwarf_pro_add_to_fde(Dwarf_P_Fde fde, Dwarf_P_Frame_Pgm curinst)
{
if (fde->fde_last_inst) {
- fde->fde_last_inst->dfp_next = curinst;
- fde->fde_last_inst = curinst;
- fde->fde_n_inst++;
- fde->fde_n_bytes +=
- (long) (curinst->dfp_nbytes + sizeof(Dwarf_Ubyte));
+ fde->fde_last_inst->dfp_next = curinst;
+ fde->fde_last_inst = curinst;
+ fde->fde_n_inst++;
+ fde->fde_n_bytes +=
+ (long) (curinst->dfp_nbytes + sizeof(Dwarf_Ubyte));
} else {
- fde->fde_last_inst = curinst;
- fde->fde_inst = curinst;
- fde->fde_n_inst = 1;
- fde->fde_n_bytes =
- (long) (curinst->dfp_nbytes + sizeof(Dwarf_Ubyte));
+ fde->fde_last_inst = curinst;
+ fde->fde_inst = curinst;
+ fde->fde_n_inst = 1;
+ fde->fde_n_bytes =
+ (long) (curinst->dfp_nbytes + sizeof(Dwarf_Ubyte));
}
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_frame.h b/usr/src/tools/ctf/dwarf/common/pro_frame.h
index b6ef75ae3f..df60d369ed 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_frame.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_frame.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -123,4 +123,10 @@ struct Dwarf_P_Fde_s {
Dwarf_Unsigned fde_end_symbol;
int fde_uwordb_size;
+ Dwarf_P_Debug fde_dbg;
+
+ /* If fde_block is non-null, then it is the set of instructions.
+ so we should use it rather than fde_inst. */
+ Dwarf_Unsigned fde_inst_block_size;
+ void *fde_block;
};
diff --git a/usr/src/tools/ctf/dwarf/common/pro_funcs.c b/usr/src/tools/ctf/dwarf/common/pro_funcs.c
index 233e386481..8ff05500bb 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_funcs.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_funcs.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -52,11 +52,11 @@
*/
Dwarf_Unsigned
dwarf_add_funcname(Dwarf_P_Debug dbg,
- Dwarf_P_Die die,
- char *function_name, Dwarf_Error * error)
+ Dwarf_P_Die die,
+ char *function_name, Dwarf_Error * error)
{
return
- _dwarf_add_simple_name_entry(dbg, die, function_name,
- dwarf_snk_funcname, error);
+ _dwarf_add_simple_name_entry(dbg, die, function_name,
+ dwarf_snk_funcname, error);
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_incl.h b/usr/src/tools/ctf/dwarf/common/pro_incl.h
index 269a5d14c9..10bce470c2 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_incl.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_incl.h
@@ -1,6 +1,8 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2008-2010 David Anderson. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +19,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -34,9 +36,17 @@
*/
-
#ifdef HAVE_ELF_H
#include <elf.h>
+#elif defined(HAVE_LIBELF_H)
+/* On one platform without elf.h this gets Elf32_Rel
+ type defined (a required type). */
+#include <libelf.h>
+#endif
+
+#if defined(sun)
+#include <sys/elf_SPARC.h>
+#include <sys/elf_386.h>
#endif
/* The target address is given: the place in the source integer
@@ -62,10 +72,19 @@
#endif
+#if defined(sparc) && defined(sun)
+#define REL32 Elf32_Rela
+#define REL64 Elf64_Rela
+#define REL_SEC_PREFIX ".rela"
+#else
+#define REL32 Elf32_Rel
+#define REL64 Elf64_Rel
+#define REL_SEC_PREFIX ".rel"
+#endif
+#include "dwarf.h"
#include "libdwarf.h"
-#include "dwarf.h"
#include "pro_opaque.h"
#include "pro_error.h"
#include "pro_util.h"
diff --git a/usr/src/tools/ctf/dwarf/common/pro_init.c b/usr/src/tools/ctf/dwarf/common/pro_init.c
index f4dd526718..d696113a67 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_init.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_init.c
@@ -1,6 +1,8 @@
/*
Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2008-2010 David Anderson, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +21,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -40,7 +42,7 @@
#include <stdio.h>
#include <string.h>
#include "pro_incl.h"
-#include "pro_section.h" /* for MAGIC_SECT_NO */
+#include "pro_section.h" /* for MAGIC_SECT_NO */
#include "pro_reloc_symbolic.h"
#include "pro_reloc_stream.h"
@@ -50,12 +52,12 @@ static void common_init(Dwarf_P_Debug dbg, Dwarf_Unsigned flags);
void *_dwarf_memcpy_swap_bytes(void *s1, const void *s2, size_t len);
/*--------------------------------------------------------------------
- This function sets up a new dwarf producing region.
- flags: Indicates type of access method, one of DW_DLC* macros
- func(): Used to create a new object file, a call back function
- errhand(): Error Handler provided by user
- errarg: Argument to errhand()
- error: returned error value
+ This function sets up a new dwarf producing region.
+ flags: Indicates type of access method, one of DW_DLC* macros
+ func(): Used to create a new object file, a call back function
+ errhand(): Error Handler provided by user
+ errarg: Argument to errhand()
+ error: returned error value
--------------------------------------------------------------------*/
/* We want the following to have an elf section number that matches
'nothing' */
@@ -65,25 +67,25 @@ static struct Dwarf_P_Section_Data_s init_sect = {
Dwarf_P_Debug
dwarf_producer_init_b(Dwarf_Unsigned flags,
- Dwarf_Callback_Func_b func,
- Dwarf_Handler errhand,
- Dwarf_Ptr errarg, Dwarf_Error * error)
+ Dwarf_Callback_Func_b func,
+ Dwarf_Handler errhand,
+ Dwarf_Ptr errarg, Dwarf_Error * error)
{
Dwarf_P_Debug dbg;
dbg = (Dwarf_P_Debug) _dwarf_p_get_alloc(NULL,
- sizeof(struct
- Dwarf_P_Debug_s));
+ sizeof(struct
+ Dwarf_P_Debug_s));
if (dbg == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC,
- (Dwarf_P_Debug) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC,
+ (Dwarf_P_Debug) DW_DLV_BADADDR);
}
- memset((void *) dbg,0, sizeof(struct Dwarf_P_Debug_s));
+ memset((void *) dbg, 0, sizeof(struct Dwarf_P_Debug_s));
/* For the time being */
if (func == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_NO_CALLBACK_FUNC,
- (Dwarf_P_Debug) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_NO_CALLBACK_FUNC,
+ (Dwarf_P_Debug) DW_DLV_BADADDR);
}
- dbg->de_func_b = func;
+ dbg->de_callback_func_b = func;
dbg->de_errhand = errhand;
dbg->de_errarg = errarg;
common_init(dbg, flags);
@@ -93,9 +95,9 @@ dwarf_producer_init_b(Dwarf_Unsigned flags,
Dwarf_P_Debug
dwarf_producer_init(Dwarf_Unsigned flags,
- Dwarf_Callback_Func func,
- Dwarf_Handler errhand,
- Dwarf_Ptr errarg, Dwarf_Error * error)
+ Dwarf_Callback_Func func,
+ Dwarf_Handler errhand,
+ Dwarf_Ptr errarg, Dwarf_Error * error)
{
Dwarf_P_Debug dbg;
@@ -103,19 +105,19 @@ dwarf_producer_init(Dwarf_Unsigned flags,
dbg = (Dwarf_P_Debug) _dwarf_p_get_alloc(NULL,
- sizeof(struct
- Dwarf_P_Debug_s));
+ sizeof(struct
+ Dwarf_P_Debug_s));
if (dbg == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC,
- (Dwarf_P_Debug) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DBG_ALLOC,
+ (Dwarf_P_Debug) DW_DLV_BADADDR);
}
- memset((void *) dbg,0, sizeof(struct Dwarf_P_Debug_s));
+ memset((void *) dbg, 0, sizeof(struct Dwarf_P_Debug_s));
/* For the time being */
if (func == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_NO_CALLBACK_FUNC,
- (Dwarf_P_Debug) DW_DLV_BADADDR);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_NO_CALLBACK_FUNC,
+ (Dwarf_P_Debug) DW_DLV_BADADDR);
}
- dbg->de_func = func;
+ dbg->de_callback_func = func;
dbg->de_errhand = errhand;
dbg->de_errarg = errarg;
common_init(dbg, flags);
@@ -137,31 +139,15 @@ common_init(Dwarf_P_Debug dbg, Dwarf_Unsigned flags)
-#if defined(HAVE_DWARF2_99_EXTENSION)
- /* Revised 64 bit output, using distingushed values. Per 1999
- dwarf2 revision This produces 64bit extension with ia64 objects.
-
- Some might want library run time selection of offset size. Not
- provided here at present. */
- dbg->de_64bit_extension = (IS_64BIT(dbg) ? 1 : 0);
- dbg->de_pointer_size = (IS_64BIT(dbg) ? 8 : 4);
- dbg->de_offset_size = (IS_64BIT(dbg) ? 8 : 4);
- dbg->de_ptr_reloc =
- IS_64BIT(dbg) ? Get_REL64_isa(dbg) : Get_REL32_isa(dbg);
- /* Non-MIPS, dwarf lengths and offsets are 32 bits even for 64bit
- pointer environments. */
- /* Get_REL??_isa here supports 64bit-offset dwarf. For 64bit, we
- emit the extension bytes. */
-
- dbg->de_offset_reloc = IS_64BIT(dbg) ? Get_REL64_isa(dbg)
- : Get_REL32_isa(dbg);
-#elif defined(HAVE_OLD_DWARF2_32BIT_OFFSET)
- /* This is cygnus 32bit offset, as specified in pure dwarf2 v2.0.0 */
+#if defined(HAVE_STRICT_DWARF2_32BIT_OFFSET)
+ /* This is cygnus 32bit offset, as specified in pure dwarf2 v2.0.0.
+ It is consistent with normal DWARF2/3 generation of always
+ generating 32 bit offsets. */
dbg->de_64bit_extension = 0;
dbg->de_pointer_size = (IS_64BIT(dbg) ? 8 : 4);
dbg->de_offset_size = (IS_64BIT(dbg) ? 4 : 4);
dbg->de_ptr_reloc =
- IS_64BIT(dbg) ? Get_REL64_isa(dbg) : Get_REL32_isa(dbg);
+ IS_64BIT(dbg) ? Get_REL64_isa(dbg) : Get_REL32_isa(dbg);
/* non-MIPS, dwarf lengths and offsets are 32 bits even for 64bit
pointer environments. */
/* Get_REL32_isa here supports 64-bit-pointer dwarf with pure
@@ -169,62 +155,88 @@ common_init(Dwarf_P_Debug dbg, Dwarf_Unsigned flags)
pure 32 bit offset dwarf for 32bit pointer apps. */
dbg->de_offset_reloc = Get_REL32_isa(dbg);
-#else
- /* MIPS-SGI 32 or 64, where offsets and lengths are both 64 bit for
- 64bit pointer objects and both 32 bit for 32bit pointer
- objects. And a dwarf-reader must check elf info to tell which
- applies. */
+#elif defined(HAVE_SGI_IRIX_OFFSETS)
+ /* MIPS-SGI-IRIX 32 or 64, where offsets and lengths are both 64 bit for
+ 64bit pointer objects and both 32 bit for 32bit pointer objects.
+ And a dwarf-reader must check elf info to tell which applies. */
dbg->de_64bit_extension = 0;
dbg->de_pointer_size = (IS_64BIT(dbg) ? 8 : 4);
dbg->de_offset_size = (IS_64BIT(dbg) ? 8 : 4);
dbg->de_ptr_reloc =
- IS_64BIT(dbg) ? Get_REL64_isa(dbg) : Get_REL32_isa(dbg);
+ IS_64BIT(dbg) ? Get_REL64_isa(dbg) : Get_REL32_isa(dbg);
dbg->de_offset_reloc = dbg->de_ptr_reloc;
-#endif
+#else /* HAVE_DWARF2_99_EXTENSION or default. */
+ /* Revised 64 bit output, using distingushed values. Per 1999
+ dwarf3. This allows run-time selection of offset size. */
+ dbg->de_64bit_extension = (IS_64BIT(dbg) ? 1 : 0);
+ dbg->de_pointer_size = (IS_64BIT(dbg) ? 8 : 4);
+ if( flags & DW_DLC_OFFSET_SIZE_64 && (dbg->de_pointer_size == 8)) {
+ /* When it's 64 bit address, a 64bit offset is sensible.
+ Arguably a 32 bit address with 64 bit offset could be
+ sensible, but who would want that? */
+ dbg->de_offset_size = 8;
+ dbg->de_64bit_extension = 1;
+ } else {
+ dbg->de_offset_size = 4;
+ dbg->de_64bit_extension = 0;
+ }
+ dbg->de_ptr_reloc =
+ IS_64BIT(dbg) ? Get_REL64_isa(dbg) : Get_REL32_isa(dbg);
+ /* Non-MIPS, dwarf lengths and offsets are 32 bits even for 64bit
+ pointer environments. */
+ /* Get_REL??_isa here supports 64bit-offset dwarf. For 64bit, we
+ emit the extension bytes. */
+
+ dbg->de_offset_reloc = IS_64BIT(dbg) ? Get_REL64_isa(dbg)
+ : Get_REL32_isa(dbg);
+#endif /* HAVE_DWARF2_99_EXTENSION etc. */
+
dbg->de_exc_reloc = Get_REL_SEGREL_isa(dbg);
dbg->de_is_64bit = IS_64BIT(dbg);
if (flags & DW_DLC_SYMBOLIC_RELOCATIONS) {
- dbg->de_relocation_record_size =
- sizeof(struct Dwarf_Relocation_Data_s);
+ dbg->de_relocation_record_size =
+ sizeof(struct Dwarf_Relocation_Data_s);
} else {
+
#if HAVE_ELF64_GETEHDR
- dbg->de_relocation_record_size =
- IS_64BIT(dbg) ? sizeof(Elf64_Rel) : sizeof(Elf32_Rel);
+ dbg->de_relocation_record_size =
+ IS_64BIT(dbg)? sizeof(REL64) : sizeof(REL32);
#else
- dbg->de_relocation_record_size = sizeof(Elf32_Rel);
+ dbg->de_relocation_record_size = sizeof(REL32);
#endif
+
}
if (dbg->de_offset_size == 8) {
- dbg->de_ar_data_attribute_form = DW_FORM_data8;
- dbg->de_ar_ref_attr_form = DW_FORM_ref8;
+ dbg->de_ar_data_attribute_form = DW_FORM_data8;
+ dbg->de_ar_ref_attr_form = DW_FORM_ref8;
} else {
- dbg->de_ar_data_attribute_form = DW_FORM_data4;
- dbg->de_ar_ref_attr_form = DW_FORM_ref4;
+ dbg->de_ar_data_attribute_form = DW_FORM_data4;
+ dbg->de_ar_ref_attr_form = DW_FORM_ref4;
}
if (flags & DW_DLC_SYMBOLIC_RELOCATIONS) {
- dbg->de_reloc_name = _dwarf_pro_reloc_name_symbolic;
- dbg->de_reloc_pair = _dwarf_pro_reloc_length_symbolic;
- dbg->de_transform_relocs_to_disk =
- _dwarf_symbolic_relocs_to_disk;
+ dbg->de_reloc_name = _dwarf_pro_reloc_name_symbolic;
+ dbg->de_reloc_pair = _dwarf_pro_reloc_length_symbolic;
+ dbg->de_transform_relocs_to_disk =
+ _dwarf_symbolic_relocs_to_disk;
} else {
- if (IS_64BIT(dbg)) {
- dbg->de_reloc_name = _dwarf_pro_reloc_name_stream64;
- } else {
- dbg->de_reloc_name = _dwarf_pro_reloc_name_stream32;
- }
- dbg->de_reloc_pair = 0;
- dbg->de_transform_relocs_to_disk = _dwarf_stream_relocs_to_disk;
+ if (IS_64BIT(dbg)) {
+ dbg->de_reloc_name = _dwarf_pro_reloc_name_stream64;
+ } else {
+ dbg->de_reloc_name = _dwarf_pro_reloc_name_stream32;
+ }
+ dbg->de_reloc_pair = 0;
+ dbg->de_transform_relocs_to_disk = _dwarf_stream_relocs_to_disk;
}
for (k = 0; k < NUM_DEBUG_SECTIONS; ++k) {
- Dwarf_P_Per_Reloc_Sect prel = &dbg->de_reloc_sect[k];
+ Dwarf_P_Per_Reloc_Sect prel = &dbg->de_reloc_sect[k];
- prel->pr_slots_per_block_to_alloc = DEFAULT_SLOTS_PER_BLOCK;
+ prel->pr_slots_per_block_to_alloc = DEFAULT_SLOTS_PER_BLOCK;
}
/* First assume host, target same endianness */
dbg->de_same_endian = 1;
@@ -232,14 +244,14 @@ common_init(Dwarf_P_Debug dbg, Dwarf_Unsigned flags)
#ifdef WORDS_BIGENDIAN
/* host is big endian, so what endian is target? */
if (flags & DW_DLC_TARGET_LITTLEENDIAN) {
- dbg->de_same_endian = 0;
- dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
+ dbg->de_same_endian = 0;
+ dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
}
#else /* little endian */
/* host is little endian, so what endian is target? */
if (flags & DW_DLC_TARGET_BIGENDIAN) {
- dbg->de_same_endian = 0;
- dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
+ dbg->de_same_endian = 0;
+ dbg->de_copy_word = _dwarf_memcpy_swap_bytes;
}
#endif /* !WORDS_BIGENDIAN */
diff --git a/usr/src/tools/ctf/dwarf/common/pro_line.c b/usr/src/tools/ctf/dwarf/common/pro_line.c
index e6885e40a4..69d3e339f0 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_line.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_line.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -46,116 +46,116 @@
#include "pro_line.h"
Dwarf_Unsigned _dwarf_pro_add_line_entry(Dwarf_P_Debug,
- Dwarf_Unsigned file_index,
- Dwarf_Addr code_address,
- Dwarf_Unsigned symidx,
- Dwarf_Unsigned line_no,
- Dwarf_Signed col_no,
- Dwarf_Bool is_stmt_begin,
- Dwarf_Bool is_bb_begin,
- Dwarf_Ubyte opc,
- Dwarf_Error * error);
+ Dwarf_Unsigned file_index,
+ Dwarf_Addr code_address,
+ Dwarf_Unsigned symidx,
+ Dwarf_Unsigned line_no,
+ Dwarf_Signed col_no,
+ Dwarf_Bool is_stmt_begin,
+ Dwarf_Bool is_bb_begin,
+ Dwarf_Ubyte opc,
+ Dwarf_Error * error);
/*-------------------------------------------------------------------------
- Add a entry to the line information section
- file_index: index of file in file entries, obtained from
- add_file_entry() call.
-
- This function actually calls _dwarf_pro_add_line_entry(), with
- an extra parameter, the opcode. Done so that interface calls
- dwarf_lne_set_address() and dwarf_lne_end_sequence() can use
- this internal routine.
+ Add a entry to the line information section
+ file_index: index of file in file entries, obtained from
+ add_file_entry() call.
+
+ This function actually calls _dwarf_pro_add_line_entry(), with
+ an extra parameter, the opcode. Done so that interface calls
+ dwarf_lne_set_address() and dwarf_lne_end_sequence() can use
+ this internal routine.
---------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_add_line_entry(Dwarf_P_Debug dbg,
- Dwarf_Unsigned file_index,
- Dwarf_Addr code_address,
- Dwarf_Unsigned line_no,
- Dwarf_Signed col_no,
- Dwarf_Bool is_stmt_begin,
- Dwarf_Bool is_bb_begin, Dwarf_Error * error)
+ Dwarf_Unsigned file_index,
+ Dwarf_Addr code_address,
+ Dwarf_Unsigned line_no,
+ Dwarf_Signed col_no,
+ Dwarf_Bool is_stmt_begin,
+ Dwarf_Bool is_bb_begin, Dwarf_Error * error)
{
Dwarf_Unsigned retval;
retval = _dwarf_pro_add_line_entry(dbg, file_index, code_address, 0,
- line_no, col_no, is_stmt_begin,
- is_bb_begin, 0, error);
+ line_no, col_no, is_stmt_begin,
+ is_bb_begin, 0, error);
return retval;
}
/*------------------------------------------------------------------------
- Ask to emit DW_LNE_set_address opcode explicitly. Used by be
- to emit start of a new .text section, or to force a relocated
- address into debug line information entry.
+ Ask to emit DW_LNE_set_address opcode explicitly. Used by be
+ to emit start of a new .text section, or to force a relocated
+ address into debug line information entry.
-------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_lne_set_address(Dwarf_P_Debug dbg,
- Dwarf_Addr offs,
- Dwarf_Unsigned symidx, Dwarf_Error * error)
+ Dwarf_Addr offs,
+ Dwarf_Unsigned symidx, Dwarf_Error * error)
{
Dwarf_Ubyte opc;
Dwarf_Unsigned retval;
opc = DW_LNE_set_address;
retval =
- _dwarf_pro_add_line_entry(dbg, 0, offs, symidx, 0, 0, 0, 0, opc,
- error);
+ _dwarf_pro_add_line_entry(dbg, 0, offs, symidx, 0, 0, 0, 0, opc,
+ error);
return retval;
}
/*------------------------------------------------------------------------
- Ask to emit end_seqence opcode. Used normally at the end of a
- compilation unit. Can also be used in the middle if there
- are gaps in the region described by the code address.
+ Ask to emit end_seqence opcode. Used normally at the end of a
+ compilation unit. Can also be used in the middle if there
+ are gaps in the region described by the code address.
-------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_lne_end_sequence(Dwarf_P_Debug dbg,
- Dwarf_Addr end_address, Dwarf_Error * error)
+ Dwarf_Addr end_address, Dwarf_Error * error)
{
Dwarf_Ubyte opc;
Dwarf_Unsigned retval;
opc = DW_LNE_end_sequence;
retval =
- _dwarf_pro_add_line_entry(dbg, 0, end_address, 0, 0, 0, 0, 0,
- opc, error);
+ _dwarf_pro_add_line_entry(dbg, 0, end_address, 0, 0, 0, 0, 0,
+ opc, error);
return retval;
}
/*----------------------------------------------------------------------------
- Add an entry in the internal list of lines mantained by producer.
- Opc indicates if an opcode needs to be generated, rather than just
- an entry in the matrix. During opcodes generation time, these
- opcodes will be used.
+ Add an entry in the internal list of lines mantained by producer.
+ Opc indicates if an opcode needs to be generated, rather than just
+ an entry in the matrix. During opcodes generation time, these
+ opcodes will be used.
-----------------------------------------------------------------------------*/
Dwarf_Unsigned
_dwarf_pro_add_line_entry(Dwarf_P_Debug dbg,
- Dwarf_Unsigned file_index,
- Dwarf_Addr code_address,
- Dwarf_Unsigned symidx,
- Dwarf_Unsigned line_no,
- Dwarf_Signed col_no,
- Dwarf_Bool is_stmt_begin,
- Dwarf_Bool is_bb_begin,
- Dwarf_Ubyte opc, Dwarf_Error * error)
+ Dwarf_Unsigned file_index,
+ Dwarf_Addr code_address,
+ Dwarf_Unsigned symidx,
+ Dwarf_Unsigned line_no,
+ Dwarf_Signed col_no,
+ Dwarf_Bool is_stmt_begin,
+ Dwarf_Bool is_bb_begin,
+ Dwarf_Ubyte opc, Dwarf_Error * error)
{
if (dbg->de_lines == NULL) {
- dbg->de_lines = (Dwarf_P_Line)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Line_s));
- if (dbg->de_lines == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_LINE_ALLOC, DW_DLV_NOCOUNT);
- }
- dbg->de_last_line = dbg->de_lines;
- _dwarf_pro_reg_init(dbg->de_lines);
+ dbg->de_lines = (Dwarf_P_Line)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Line_s));
+ if (dbg->de_lines == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_LINE_ALLOC, DW_DLV_NOCOUNT);
+ }
+ dbg->de_last_line = dbg->de_lines;
+ _dwarf_pro_reg_init(dbg->de_lines);
} else {
- dbg->de_last_line->dpl_next = (Dwarf_P_Line)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Line_s));
- if (dbg->de_last_line->dpl_next == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_LINE_ALLOC, DW_DLV_NOCOUNT);
- }
- dbg->de_last_line = dbg->de_last_line->dpl_next;
- _dwarf_pro_reg_init(dbg->de_last_line);
+ dbg->de_last_line->dpl_next = (Dwarf_P_Line)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Line_s));
+ if (dbg->de_last_line->dpl_next == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_LINE_ALLOC, DW_DLV_NOCOUNT);
+ }
+ dbg->de_last_line = dbg->de_last_line->dpl_next;
+ _dwarf_pro_reg_init(dbg->de_last_line);
}
dbg->de_last_line->dpl_address = code_address;
dbg->de_last_line->dpl_file = (unsigned long) file_index;
@@ -170,34 +170,34 @@ _dwarf_pro_add_line_entry(Dwarf_P_Debug dbg,
}
/*-----------------------------------------------------------------------
- Add a directory declaration to the debug_line section. Stored
- in linked list.
+ Add a directory declaration to the debug_line section. Stored
+ in linked list.
------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_add_directory_decl(Dwarf_P_Debug dbg,
- char *name, Dwarf_Error * error)
+ char *name, Dwarf_Error * error)
{
if (dbg->de_inc_dirs == NULL) {
- dbg->de_inc_dirs = (Dwarf_P_Inc_Dir)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Inc_Dir_s));
- if (dbg->de_inc_dirs == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_INCDIR_ALLOC, DW_DLV_NOCOUNT);
- }
- dbg->de_last_inc_dir = dbg->de_inc_dirs;
- dbg->de_n_inc_dirs = 1;
+ dbg->de_inc_dirs = (Dwarf_P_Inc_Dir)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Inc_Dir_s));
+ if (dbg->de_inc_dirs == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_INCDIR_ALLOC, DW_DLV_NOCOUNT);
+ }
+ dbg->de_last_inc_dir = dbg->de_inc_dirs;
+ dbg->de_n_inc_dirs = 1;
} else {
- dbg->de_last_inc_dir->did_next = (Dwarf_P_Inc_Dir)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Inc_Dir_s));
- if (dbg->de_last_inc_dir->did_next == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_INCDIR_ALLOC, DW_DLV_NOCOUNT);
- }
- dbg->de_last_inc_dir = dbg->de_last_inc_dir->did_next;
- dbg->de_n_inc_dirs++;
+ dbg->de_last_inc_dir->did_next = (Dwarf_P_Inc_Dir)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Inc_Dir_s));
+ if (dbg->de_last_inc_dir->did_next == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_INCDIR_ALLOC, DW_DLV_NOCOUNT);
+ }
+ dbg->de_last_inc_dir = dbg->de_last_inc_dir->did_next;
+ dbg->de_n_inc_dirs++;
}
dbg->de_last_inc_dir->did_name =
- (char *) _dwarf_p_get_alloc(dbg, strlen(name) + 1);
+ (char *) _dwarf_p_get_alloc(dbg, strlen(name) + 1);
if (dbg->de_last_inc_dir->did_name == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_STRING_ALLOC, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_STRING_ALLOC, DW_DLV_NOCOUNT);
}
strcpy(dbg->de_last_inc_dir->did_name, name);
dbg->de_last_inc_dir->did_next = NULL;
@@ -206,16 +206,16 @@ dwarf_add_directory_decl(Dwarf_P_Debug dbg,
}
/*-----------------------------------------------------------------------
- Add a file entry declaration to the debug_line section. Stored
- in linked list. The data is immediately encodes as leb128
- and stored in Dwarf_P_F_Entry_s struct.
+ Add a file entry declaration to the debug_line section. Stored
+ in linked list. The data is immediately encodes as leb128
+ and stored in Dwarf_P_F_Entry_s struct.
------------------------------------------------------------------------*/
Dwarf_Unsigned
dwarf_add_file_decl(Dwarf_P_Debug dbg,
- char *name,
- Dwarf_Unsigned dir_idx,
- Dwarf_Unsigned time_mod,
- Dwarf_Unsigned length, Dwarf_Error * error)
+ char *name,
+ Dwarf_Unsigned dir_idx,
+ Dwarf_Unsigned time_mod,
+ Dwarf_Unsigned length, Dwarf_Error * error)
{
Dwarf_P_F_Entry cur;
char *ptr;
@@ -226,48 +226,48 @@ dwarf_add_file_decl(Dwarf_P_Debug dbg,
int res;
if (dbg->de_file_entries == NULL) {
- dbg->de_file_entries = (Dwarf_P_F_Entry)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_F_Entry_s));
- if (dbg->de_file_entries == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_FILE_ENTRY_ALLOC,
- DW_DLV_NOCOUNT);
- }
- cur = dbg->de_file_entries;
- dbg->de_last_file_entry = cur;
- dbg->de_n_file_entries = 1;
+ dbg->de_file_entries = (Dwarf_P_F_Entry)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_F_Entry_s));
+ if (dbg->de_file_entries == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_FILE_ENTRY_ALLOC,
+ DW_DLV_NOCOUNT);
+ }
+ cur = dbg->de_file_entries;
+ dbg->de_last_file_entry = cur;
+ dbg->de_n_file_entries = 1;
} else {
- cur = dbg->de_last_file_entry;
- cur->dfe_next = (Dwarf_P_F_Entry)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_F_Entry_s));
- if (cur->dfe_next == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_FILE_ENTRY_ALLOC,
- DW_DLV_NOCOUNT);
- }
- cur = cur->dfe_next;
- dbg->de_last_file_entry = cur;
- dbg->de_n_file_entries++;
+ cur = dbg->de_last_file_entry;
+ cur->dfe_next = (Dwarf_P_F_Entry)
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_F_Entry_s));
+ if (cur->dfe_next == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_FILE_ENTRY_ALLOC,
+ DW_DLV_NOCOUNT);
+ }
+ cur = cur->dfe_next;
+ dbg->de_last_file_entry = cur;
+ dbg->de_n_file_entries++;
}
cur->dfe_name = (char *) _dwarf_p_get_alloc(dbg, strlen(name) + 1);
if (cur->dfe_name == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
}
strcpy((char *) cur->dfe_name, name);
res = _dwarf_pro_encode_leb128_nm(dir_idx, &nbytes_idx,
- buffidx, sizeof(buffidx));
+ buffidx, sizeof(buffidx));
if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
}
res = _dwarf_pro_encode_leb128_nm(time_mod, &nbytes_time,
- bufftime, sizeof(bufftime));
+ bufftime, sizeof(bufftime));
if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
}
res = _dwarf_pro_encode_leb128_nm(length, &nbytes_len,
- bufflen, sizeof(bufflen));
+ bufflen, sizeof(bufflen));
cur->dfe_args = (char *)
- _dwarf_p_get_alloc(dbg, nbytes_idx + nbytes_time + nbytes_len);
+ _dwarf_p_get_alloc(dbg, nbytes_idx + nbytes_time + nbytes_len);
if (cur->dfe_args == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ALLOC_FAIL, DW_DLV_NOCOUNT);
}
ptr = cur->dfe_args;
memcpy((void *) ptr, buffidx, nbytes_idx);
@@ -284,8 +284,8 @@ dwarf_add_file_decl(Dwarf_P_Debug dbg,
/*---------------------------------------------------------------------
- Initialize a row of the matrix for line numbers, meaning
- initialize the struct corresponding to it
+ Initialize a row of the matrix for line numbers, meaning
+ initialize the struct corresponding to it
----------------------------------------------------------------------*/
void
_dwarf_pro_reg_init(Dwarf_P_Line cur_line)
diff --git a/usr/src/tools/ctf/dwarf/common/pro_line.h b/usr/src/tools/ctf/dwarf/common/pro_line.h
index 27431d8207..eed941239d 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_line.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_line.h
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2007-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -36,7 +37,11 @@
#define VERSION 2
+#ifdef __i386
+#define MIN_INST_LENGTH 1
+#else
#define MIN_INST_LENGTH 4
+#endif
#define DEFAULT_IS_STMT false
/* line base and range are temporarily defines.
They need to be calculated later */
diff --git a/usr/src/tools/ctf/dwarf/common/pro_macinfo.c b/usr/src/tools/ctf/dwarf/common/pro_macinfo.c
index aa89ebf75b..cfa820aee6 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_macinfo.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_macinfo.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -44,11 +44,11 @@
#include "pro_macinfo.h"
/*
- I don't much like the error strings this generates, since
- like the rest of libdwarf they are simple strings with
- no useful numbers in them. But that's not something I can
- fix without more work than I have time for
- right now. davea Nov 94.
+ I don't much like the error strings this generates, since
+ like the rest of libdwarf they are simple strings with
+ no useful numbers in them. But that's not something I can
+ fix without more work than I have time for
+ right now. davea Nov 94.
*/
/* these are gross overestimates of the number of
@@ -64,67 +64,67 @@
static int
libdwarf_compose_begin(Dwarf_P_Debug dbg, int code,
- size_t maxlen, int *compose_error_type)
+ size_t maxlen, int *compose_error_type)
{
unsigned char *nextchar;
struct dw_macinfo_block_s *curblk = dbg->de_current_macinfo;
if (curblk == 0) {
- struct dw_macinfo_block_s *newb;
- size_t len;
-
- /* initial allocation */
- size_t blen = BASE_MACINFO_MALLOC_LEN;
-
- if (blen < maxlen) {
- blen = 2 * maxlen;
- }
- len = sizeof(struct dw_macinfo_block_s) + blen;
- newb =
- (struct dw_macinfo_block_s *) _dwarf_p_get_alloc(dbg, len);
- if (!newb) {
- *compose_error_type = DW_DLE_MACINFO_MALLOC_FAIL;
- return DW_DLV_ERROR;
- }
- newb->mb_data =
- (char *) newb + sizeof(struct dw_macinfo_block_s);
- newb->mb_avail_len = blen;
- newb->mb_used_len = 0;
- newb->mb_macinfo_data_space_len = blen;
- dbg->de_first_macinfo = newb;
- dbg->de_current_macinfo = newb;
- curblk = newb;
+ struct dw_macinfo_block_s *newb;
+ size_t len;
+
+ /* initial allocation */
+ size_t blen = BASE_MACINFO_MALLOC_LEN;
+
+ if (blen < maxlen) {
+ blen = 2 * maxlen;
+ }
+ len = sizeof(struct dw_macinfo_block_s) + blen;
+ newb =
+ (struct dw_macinfo_block_s *) _dwarf_p_get_alloc(dbg, len);
+ if (!newb) {
+ *compose_error_type = DW_DLE_MACINFO_MALLOC_FAIL;
+ return DW_DLV_ERROR;
+ }
+ newb->mb_data =
+ (char *) newb + sizeof(struct dw_macinfo_block_s);
+ newb->mb_avail_len = blen;
+ newb->mb_used_len = 0;
+ newb->mb_macinfo_data_space_len = blen;
+ dbg->de_first_macinfo = newb;
+ dbg->de_current_macinfo = newb;
+ curblk = newb;
} else if (curblk->mb_avail_len < maxlen) {
- struct dw_macinfo_block_s *newb;
- size_t len;
-
- /* no space left in block: allocate a new block */
- size_t blen =
- dbg->de_current_macinfo->mb_macinfo_data_space_len * 2;
- if (blen < maxlen) {
- blen = 2 * maxlen;
- }
- len = sizeof(struct dw_macinfo_block_s) + blen;
- newb =
- (struct dw_macinfo_block_s *) _dwarf_p_get_alloc(dbg, len);
- if (!newb) {
- *compose_error_type = DW_DLE_MACINFO_MALLOC_FAIL;
- return DW_DLV_ERROR;
- }
- newb->mb_data =
- (char *) newb + sizeof(struct dw_macinfo_block_s);
- newb->mb_avail_len = blen;
- newb->mb_used_len = 0;
- newb->mb_macinfo_data_space_len = blen;
- dbg->de_first_macinfo->mb_next = newb;
- dbg->de_current_macinfo = newb;
- curblk = newb;
+ struct dw_macinfo_block_s *newb;
+ size_t len;
+
+ /* no space left in block: allocate a new block */
+ size_t blen =
+ dbg->de_current_macinfo->mb_macinfo_data_space_len * 2;
+ if (blen < maxlen) {
+ blen = 2 * maxlen;
+ }
+ len = sizeof(struct dw_macinfo_block_s) + blen;
+ newb =
+ (struct dw_macinfo_block_s *) _dwarf_p_get_alloc(dbg, len);
+ if (!newb) {
+ *compose_error_type = DW_DLE_MACINFO_MALLOC_FAIL;
+ return DW_DLV_ERROR;
+ }
+ newb->mb_data =
+ (char *) newb + sizeof(struct dw_macinfo_block_s);
+ newb->mb_avail_len = blen;
+ newb->mb_used_len = 0;
+ newb->mb_macinfo_data_space_len = blen;
+ dbg->de_first_macinfo->mb_next = newb;
+ dbg->de_current_macinfo = newb;
+ curblk = newb;
}
/* now curblk has enough room */
dbg->de_compose_avail = curblk->mb_avail_len;
dbg->de_compose_used_len = curblk->mb_used_len;
nextchar =
- (unsigned char *) (curblk->mb_data + dbg->de_compose_used_len);
+ (unsigned char *) (curblk->mb_data + dbg->de_compose_used_len);
*nextchar = code;
dbg->de_compose_avail--;
++dbg->de_compose_used_len;
@@ -140,9 +140,9 @@ libdwarf_compose_add_string(Dwarf_P_Debug dbg, char *string, size_t len)
unsigned char *nextchar;
nextchar =
- (unsigned char *) (curblk->mb_data + dbg->de_compose_used_len);
+ (unsigned char *) (curblk->mb_data + dbg->de_compose_used_len);
- len += 1; /* count the null terminator */
+ len += 1; /* count the null terminator */
memcpy(nextchar, string, len);
dbg->de_compose_avail -= len;
@@ -152,7 +152,7 @@ libdwarf_compose_add_string(Dwarf_P_Debug dbg, char *string, size_t len)
}
static int
libdwarf_compose_add_line(Dwarf_P_Debug dbg,
- Dwarf_Unsigned line, int *compose_error_type)
+ Dwarf_Unsigned line, int *compose_error_type)
{
struct dw_macinfo_block_s *curblk = dbg->de_current_macinfo;
unsigned char *nextchar;
@@ -160,18 +160,18 @@ libdwarf_compose_add_line(Dwarf_P_Debug dbg,
int nbytes;
nextchar =
- (unsigned char *) (curblk->mb_data + dbg->de_compose_used_len);
+ (unsigned char *) (curblk->mb_data + dbg->de_compose_used_len);
/* Put the created leb number directly into the macro buffer If
dbg->de_compose_avail is > INT_MAX this will not work as the
'int' will look negative to _dwarf_pro_encode_leb128_nm! */
res = _dwarf_pro_encode_leb128_nm(line, &nbytes,
- (char *) nextchar,
- (int) dbg->de_compose_avail);
+ (char *) nextchar,
+ (int) dbg->de_compose_avail);
if (res != DW_DLV_OK) {
- *compose_error_type = DW_DLE_MACINFO_INTERNAL_ERROR_SPACE;
- return DW_DLV_ERROR;
+ *compose_error_type = DW_DLE_MACINFO_INTERNAL_ERROR_SPACE;
+ return DW_DLV_ERROR;
}
dbg->de_compose_avail -= nbytes;
@@ -189,8 +189,8 @@ libdwarf_compose_complete(Dwarf_P_Debug dbg, int *compose_error_type)
struct dw_macinfo_block_s *curblk = dbg->de_current_macinfo;
if (dbg->de_compose_used_len > curblk->mb_macinfo_data_space_len) {
- *compose_error_type = DW_DLE_MACINFO_INTERNAL_ERROR_SPACE;
- return DW_DLV_ERROR;
+ *compose_error_type = DW_DLE_MACINFO_INTERNAL_ERROR_SPACE;
+ return DW_DLV_ERROR;
}
curblk->mb_avail_len = dbg->de_compose_avail;
curblk->mb_used_len = dbg->de_compose_used_len;
@@ -201,8 +201,8 @@ libdwarf_compose_complete(Dwarf_P_Debug dbg, int *compose_error_type)
int
dwarf_def_macro(Dwarf_P_Debug dbg,
- Dwarf_Unsigned line,
- char *macname, char *macvalue, Dwarf_Error * error)
+ Dwarf_Unsigned line,
+ char *macname, char *macvalue, Dwarf_Error * error)
{
size_t len;
size_t len2;
@@ -211,58 +211,58 @@ dwarf_def_macro(Dwarf_P_Debug dbg,
int compose_error_type;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
if (macname == 0) {
- _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_NULL);
+ return (DW_DLV_ERROR);
}
len = strlen(macname) + 1;
if (len == 0) {
- _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_EMPTY);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_EMPTY);
+ return (DW_DLV_ERROR);
}
if (macvalue) {
- len2 = strlen(macvalue) + 1;
+ len2 = strlen(macvalue) + 1;
} else {
- len2 = 0;
- }
- length_est = COMMAND_LEN + LINE_LEN + len + len2 + 1; /* 1
- for
- space
- character
- we
- add */
+ len2 = 0;
+ }
+ length_est = COMMAND_LEN + LINE_LEN + len + len2 + 1; /* 1
+ for
+ space
+ character
+ we
+ add */
res = libdwarf_compose_begin(dbg, DW_MACINFO_define, length_est,
- &compose_error_type);
+ &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
res = libdwarf_compose_add_line(dbg, line, &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
libdwarf_compose_add_string(dbg, macname, len);
libdwarf_compose_add_string(dbg, " ", 1);
if (macvalue) {
- libdwarf_compose_add_string(dbg, " ", 1);
- libdwarf_compose_add_string(dbg, macvalue, len2);
+ libdwarf_compose_add_string(dbg, " ", 1);
+ libdwarf_compose_add_string(dbg, macvalue, len2);
}
res = libdwarf_compose_complete(dbg, &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
return DW_DLV_OK;
}
int
dwarf_undef_macro(Dwarf_P_Debug dbg,
- Dwarf_Unsigned line,
- char *macname, Dwarf_Error * error)
+ Dwarf_Unsigned line,
+ char *macname, Dwarf_Error * error)
{
size_t len;
@@ -271,70 +271,70 @@ dwarf_undef_macro(Dwarf_P_Debug dbg,
int compose_error_type;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
if (macname == 0) {
- _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_NULL);
+ return (DW_DLV_ERROR);
}
len = strlen(macname) + 1;
if (len == 0) {
- _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_EMPTY);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_EMPTY);
+ return (DW_DLV_ERROR);
}
length_est = COMMAND_LEN + LINE_LEN + len;
res = libdwarf_compose_begin(dbg, DW_MACINFO_undef, length_est,
- &compose_error_type);
+ &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
res = libdwarf_compose_add_line(dbg, line, &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
libdwarf_compose_add_string(dbg, macname, len);
res = libdwarf_compose_complete(dbg, &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
return DW_DLV_OK;
}
int
dwarf_start_macro_file(Dwarf_P_Debug dbg,
- Dwarf_Unsigned fileindex,
- Dwarf_Unsigned linenumber, Dwarf_Error * error)
+ Dwarf_Unsigned fileindex,
+ Dwarf_Unsigned linenumber, Dwarf_Error * error)
{
size_t length_est;
int res;
int compose_error_type;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
length_est = COMMAND_LEN + LINE_LEN + LINE_LEN;
res = libdwarf_compose_begin(dbg, DW_MACINFO_start_file, length_est,
- &compose_error_type);
+ &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
res = libdwarf_compose_add_line(dbg, fileindex,
- &compose_error_type);
+ &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
res = libdwarf_compose_add_line(dbg, linenumber,
- &compose_error_type);
+ &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
return DW_DLV_OK;
}
@@ -347,28 +347,28 @@ dwarf_end_macro_file(Dwarf_P_Debug dbg, Dwarf_Error * error)
int compose_error_type;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
length_est = COMMAND_LEN;
res = libdwarf_compose_begin(dbg, DW_MACINFO_end_file, length_est,
- &compose_error_type);
+ &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
res = libdwarf_compose_complete(dbg, &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
return DW_DLV_OK;
}
int
dwarf_vendor_ext(Dwarf_P_Debug dbg,
- Dwarf_Unsigned constant,
- char *string, Dwarf_Error * error)
+ Dwarf_Unsigned constant,
+ char *string, Dwarf_Error * error)
{
size_t len;
size_t length_est;
@@ -376,35 +376,35 @@ dwarf_vendor_ext(Dwarf_P_Debug dbg,
int compose_error_type;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (DW_DLV_ERROR);
}
if (string == 0) {
- _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_NULL);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_NULL);
+ return (DW_DLV_ERROR);
}
len = strlen(string) + 1;
if (len == 0) {
- _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_EMPTY);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, DW_DLE_MACINFO_STRING_EMPTY);
+ return (DW_DLV_ERROR);
}
length_est = COMMAND_LEN + LINE_LEN + len;
res = libdwarf_compose_begin(dbg, DW_MACINFO_vendor_ext, length_est,
- &compose_error_type);
+ &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
res = libdwarf_compose_add_line(dbg, constant, &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
libdwarf_compose_add_string(dbg, string, len);
libdwarf_compose_complete(dbg, &compose_error_type);
if (res != DW_DLV_OK) {
- _dwarf_p_error(NULL, error, compose_error_type);
- return (DW_DLV_ERROR);
+ _dwarf_p_error(NULL, error, compose_error_type);
+ return (DW_DLV_ERROR);
}
return DW_DLV_OK;
}
@@ -413,7 +413,7 @@ dwarf_vendor_ext(Dwarf_P_Debug dbg,
int
_dwarf_pro_transform_macro_info_to_disk(Dwarf_P_Debug dbg,
- Dwarf_Error * error)
+ Dwarf_Error * error)
{
/* Total num of bytes in .debug_macinfo section. */
Dwarf_Unsigned mac_num_bytes;
@@ -433,36 +433,36 @@ _dwarf_pro_transform_macro_info_to_disk(Dwarf_P_Debug dbg,
/* Get the size of the debug_macinfo data */
mac_num_bytes = 0;
for (m_sect = dbg->de_first_macinfo; m_sect != NULL;
- m_sect = m_sect->mb_next) {
- mac_num_bytes += m_sect->mb_used_len;
+ m_sect = m_sect->mb_next) {
+ mac_num_bytes += m_sect->mb_used_len;
}
/* Tthe final entry has a type code of 0 to indicate It is final
for this CU Takes just 1 byte. */
mac_num_bytes += 1;
GET_CHUNK(dbg, dbg->de_elf_sects[DEBUG_MACINFO],
- macinfo, (unsigned long) mac_num_bytes, error);
+ macinfo, (unsigned long) mac_num_bytes, error);
if (macinfo == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
}
macinfo_ptr = macinfo;
m_prev = 0;
for (m_sect = dbg->de_first_macinfo; m_sect != NULL;
- m_sect = m_sect->mb_next) {
- memcpy(macinfo_ptr, m_sect->mb_data, m_sect->mb_used_len);
- macinfo_ptr += m_sect->mb_used_len;
- if (m_prev) {
- _dwarf_p_dealloc(dbg, (Dwarf_Small *) m_prev);
- m_prev = 0;
- }
- m_prev = m_sect;
- }
- *macinfo_ptr = 0; /* the type code of 0 as last entry */
+ m_sect = m_sect->mb_next) {
+ memcpy(macinfo_ptr, m_sect->mb_data, m_sect->mb_used_len);
+ macinfo_ptr += m_sect->mb_used_len;
+ if (m_prev) {
+ _dwarf_p_dealloc(dbg, (Dwarf_Small *) m_prev);
+ m_prev = 0;
+ }
+ m_prev = m_sect;
+ }
+ *macinfo_ptr = 0; /* the type code of 0 as last entry */
if (m_prev) {
- _dwarf_p_dealloc(dbg, (Dwarf_Small *) m_prev);
- m_prev = 0;
+ _dwarf_p_dealloc(dbg, (Dwarf_Small *) m_prev);
+ m_prev = 0;
}
dbg->de_first_macinfo = NULL;
diff --git a/usr/src/tools/ctf/dwarf/common/pro_macinfo.h b/usr/src/tools/ctf/dwarf/common/pro_macinfo.h
index 74901b5666..852a0cec1f 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_macinfo.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_macinfo.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_opaque.h b/usr/src/tools/ctf/dwarf/common/pro_opaque.h
index 2480a81810..befc69faa6 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_opaque.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_opaque.h
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2002,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -123,6 +124,7 @@ typedef struct Dwarf_P_Simple_nameentry_s *Dwarf_P_Simple_nameentry;
typedef struct Dwarf_P_Simple_name_header_s *Dwarf_P_Simple_name_header;
typedef struct Dwarf_P_Arange_s *Dwarf_P_Arange;
typedef struct Dwarf_P_Per_Reloc_Sect_s *Dwarf_P_Per_Reloc_Sect;
+typedef struct Dwarf_P_Per_Sect_String_Attrs_s *Dwarf_P_Per_Sect_String_Attrs;
/* Defined to get at the elf section numbers and section name
indices in symtab for the dwarf sections
@@ -154,11 +156,16 @@ struct Dwarf_P_Die_s {
Dwarf_Tag di_tag;
Dwarf_P_Die di_parent; /* parent of current die */
Dwarf_P_Die di_child; /* first child */
+ /* The last child field makes linking up children an O(1) operation,
+ See pro_die.c. */
+ Dwarf_P_Die di_last_child;
Dwarf_P_Die di_left; /* left sibling */
Dwarf_P_Die di_right; /* right sibling */
Dwarf_P_Attribute di_attrs; /* list of attributes */
Dwarf_P_Attribute di_last_attr; /* last attribute */
int di_n_attr; /* number of attributes */
+ Dwarf_P_Debug di_dbg; /* For memory management */
+ Dwarf_Unsigned di_marker; /* used to attach symbols to dies */
};
@@ -230,41 +237,38 @@ struct Dwarf_P_Simple_name_header_s {
trailer */
Dwarf_Signed sn_net_len;
};
-typedef int (*_dwarf_pro_reloc_name_func_ptr) (Dwarf_P_Debug dbg, int sec_index, Dwarf_Unsigned offset, /* r_offset
- */
- Dwarf_Unsigned symidx,
- enum Dwarf_Rel_Type type,
- int reltarget_length);
-
-typedef int (*_dwarf_pro_reloc_length_func_ptr) (Dwarf_P_Debug dbg, int sec_index, Dwarf_Unsigned offset, /* r_offset
- */
- Dwarf_Unsigned
- start_symidx,
- Dwarf_Unsigned
- end_symidx,
- enum Dwarf_Rel_Type
- type,
- int reltarget_length);
+typedef int (*_dwarf_pro_reloc_name_func_ptr) (Dwarf_P_Debug dbg,
+ int sec_index,
+ Dwarf_Unsigned offset,/* r_offset */
+ Dwarf_Unsigned symidx,
+ enum Dwarf_Rel_Type type,
+ int reltarget_length);
+
+typedef int (*_dwarf_pro_reloc_length_func_ptr) (Dwarf_P_Debug dbg,
+ int sec_index, Dwarf_Unsigned offset,/* r_offset */
+ Dwarf_Unsigned start_symidx,
+ Dwarf_Unsigned end_symidx,
+ enum Dwarf_Rel_Type type,
+ int reltarget_length);
typedef int (*_dwarf_pro_transform_relocs_func_ptr) (Dwarf_P_Debug dbg,
Dwarf_Signed *
new_sec_count);
/*
- Each slot in a block of slots could be:
- a binary stream relocation entry (32 or 64bit relocation data)
- a SYMBOLIC relocation entry.
- During creation sometimes we create multiple chained blocks,
- but sometimes we create a single long block.
- Before returning reloc data to caller,
- we switch to a single, long-enough,
- block.
-
- We make counters here Dwarf_Unsigned so that we
- get sufficient alignment. Since we use space after
- the struct (at malloc time) for user data which
- must have Dwarf_Unsigned alignment, this
- struct must have that alignment too.
-
+ Each slot in a block of slots could be:
+ a binary stream relocation entry (32 or 64bit relocation data)
+ a SYMBOLIC relocation entry.
+ During creation sometimes we create multiple chained blocks,
+ but sometimes we create a single long block.
+ Before returning reloc data to caller,
+ we switch to a single, long-enough,
+ block.
+
+ We make counters here Dwarf_Unsigned so that we
+ get sufficient alignment. Since we use space after
+ the struct (at malloc time) for user data which
+ must have Dwarf_Unsigned alignment, this
+ struct must have that alignment too.
*/
struct Dwarf_P_Relocation_Block_s {
Dwarf_Unsigned rb_slots_in_block; /* slots in block, as created */
@@ -282,22 +286,15 @@ struct Dwarf_P_Relocation_Block_s {
no relocations).
*/
struct Dwarf_P_Per_Reloc_Sect_s {
-
-
unsigned long pr_reloc_total_count; /* total number of entries
- across all blocks */
+ across all blocks */
unsigned long pr_slots_per_block_to_alloc; /* at Block alloc, this
- is the default
- number of slots to
- use */
+ is the default number of slots to use */
int pr_sect_num_of_reloc_sect; /* sect number returned by
- de_func() or de_func_b()
- call, this is the sect
- number of the relocation
- section. */
-
+ de_callback_func() or de_callback_func_b() call, this is the sect
+ number of the relocation section. */
/* singly-linked list. add at and ('last') with count of blocks */
struct Dwarf_P_Relocation_Block_s *pr_first_block;
@@ -307,6 +304,17 @@ struct Dwarf_P_Per_Reloc_Sect_s {
#define DEFAULT_SLOTS_PER_BLOCK 3
+typedef struct memory_list_s {
+ struct memory_list_s *prev;
+ struct memory_list_s *next;
+} memory_list_t;
+
+struct Dwarf_P_Per_Sect_String_Attrs_s {
+ int sect_sa_section_number;
+ unsigned sect_sa_n_alloc;
+ unsigned sect_sa_n_used;
+ Dwarf_P_String_Attr sect_sa_list;
+};
/* Fields used by producer */
struct Dwarf_P_Debug_s {
@@ -314,15 +322,13 @@ struct Dwarf_P_Debug_s {
version of libdwarf See PRO_VERSION_MAGIC */
int de_version_magic_number;
- Dwarf_Unsigned de_access;
Dwarf_Handler de_errhand;
Dwarf_Ptr de_errarg;
- /*
- Call back function, used to create .debug* sections. Provided
+ /* Call back function, used to create .debug* sections. Provided
by user. Only of these used per dbg. */
- Dwarf_Callback_Func de_func;
- Dwarf_Callback_Func_b de_func_b;
+ Dwarf_Callback_Func de_callback_func;
+ Dwarf_Callback_Func_b de_callback_func_b;
/* Flags from producer_init call */
Dwarf_Unsigned de_flags;
@@ -356,7 +362,6 @@ struct Dwarf_P_Debug_s {
Dwarf_P_Cie de_last_cie;
Dwarf_Unsigned de_n_cie;
-
/* Singly-linked list of fde's for the debug unit */
Dwarf_P_Fde de_frame_fdes;
Dwarf_P_Fde de_last_fde;
@@ -380,7 +385,6 @@ struct Dwarf_P_Debug_s {
/* current points to the current, unfilled, block */
struct dw_macinfo_block_s *de_current_macinfo;
-
/* Pointer to the first section, to support reset_section_bytes */
Dwarf_P_Section_Data de_first_debug_sect;
@@ -396,30 +400,12 @@ struct Dwarf_P_Debug_s {
(SYMBOLIC output) */
/* used in remembering sections */
- int de_elf_sects[NUM_DEBUG_SECTIONS]; /*
- elf sect number of
- the section itself,
- DEBUG_LINE for
- example */
-
- Dwarf_Unsigned de_sect_name_idx[NUM_DEBUG_SECTIONS]; /* section
- name
- index
- or
- handle
- for
- the
- name
- of
- the
- symbol
- for
- DEBUG_LINE
- for
- example
- */
-
+ int de_elf_sects[NUM_DEBUG_SECTIONS]; /* elf sect number of
+ the section itself, DEBUG_LINE for example */
+ Dwarf_Unsigned de_sect_name_idx[NUM_DEBUG_SECTIONS]; /* section
+ name index or handle for the name of the symbol for
+ DEBUG_LINE for example */
int de_offset_reloc; /* offset reloc type, R_MIPS_32 for
example. Specific to the ABI being
@@ -432,10 +418,10 @@ struct Dwarf_P_Debug_s {
produced. relocates pointer size
field */
- unsigned char de_offset_size; /* section offset. Here to
- avoid test of abi in macro
- at run time MIPS -n32 4,
- -64 8. */
+ unsigned char de_offset_size; /* section offset. Here to
+ avoid test of abi in macro
+ at run time MIPS -n32 4,
+ -64 8. */
unsigned char de_pointer_size; /* size of pointer in target.
Here to avoid test of abi in
@@ -477,9 +463,14 @@ struct Dwarf_P_Debug_s {
of sensible behavior on dbg passing between DSOs linked with
mismatched libdwarf producer versions. */
+ Dwarf_P_Marker de_markers; /* pointer to array of markers */
+ unsigned de_marker_n_alloc;
+ unsigned de_marker_n_used;
+ int de_sect_sa_next_to_return; /* Iterator on sring attrib sects */
+ /* String attributes data of each section. */
+ struct Dwarf_P_Per_Sect_String_Attrs_s de_sect_string_attr[NUM_DEBUG_SECTIONS];
};
-
#define CURRENT_VERSION_STAMP 2
Dwarf_Unsigned _dwarf_add_simple_name_entry(Dwarf_P_Debug dbg,
diff --git a/usr/src/tools/ctf/dwarf/common/pro_pubnames.c b/usr/src/tools/ctf/dwarf/common/pro_pubnames.c
index d65825db37..e07fe35943 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_pubnames.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_pubnames.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -54,10 +54,10 @@
Dwarf_Unsigned
dwarf_add_pubname(Dwarf_P_Debug dbg,
- Dwarf_P_Die die,
- char *pubname_name, Dwarf_Error * error)
+ Dwarf_P_Die die,
+ char *pubname_name, Dwarf_Error * error)
{
return
- _dwarf_add_simple_name_entry(dbg, die, pubname_name,
- dwarf_snk_pubname, error);
+ _dwarf_add_simple_name_entry(dbg, die, pubname_name,
+ dwarf_snk_pubname, error);
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_reloc.c b/usr/src/tools/ctf/dwarf/common/pro_reloc.c
index f608759577..66f16acbd0 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_reloc.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_reloc.c
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2008-2010 David Anderson, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +20,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -57,39 +58,39 @@
*/
int
_dwarf_pro_pre_alloc_n_reloc_slots(Dwarf_P_Debug dbg,
- int rel_sec_index,
- Dwarf_Unsigned newslots)
+ int rel_sec_index,
+ Dwarf_Unsigned newslots)
{
- unsigned long len;
- struct Dwarf_P_Relocation_Block_s *data;
+ unsigned long len = 0;
+ struct Dwarf_P_Relocation_Block_s *data = 0;
Dwarf_P_Per_Reloc_Sect prel = &dbg->de_reloc_sect[rel_sec_index];
unsigned long slots_in_blk = (unsigned long) newslots;
unsigned long rel_rec_size = dbg->de_relocation_record_size;
if (prel->pr_first_block)
- return DW_DLV_OK; /* do nothing */
+ return DW_DLV_OK; /* do nothing */
len = sizeof(struct Dwarf_P_Relocation_Block_s) +
- slots_in_blk * rel_rec_size;
+ slots_in_blk * rel_rec_size;
data = (struct Dwarf_P_Relocation_Block_s *)
- _dwarf_p_get_alloc(dbg, len);
+ _dwarf_p_get_alloc(dbg, len);
if (!data) {
- return DW_DLV_ERROR;
+ return DW_DLV_ERROR;
}
- data->rb_slots_in_block = slots_in_blk; /* could use default
- here, as fallback in
- case our origininal
- estimate wrong.
- When we call this we
- presumably know what
- we are doing, so
- keep this count for
- now */
+ data->rb_slots_in_block = slots_in_blk; /* could use default
+ here, as fallback in
+ case our origininal
+ estimate wrong. When
+ we call this we
+ presumably know what
+ we are doing, so
+ keep this count for
+ now */
data->rb_next_slot_to_use = 0;
data->rb_where_to_add_next =
- ((char *) data) + sizeof(struct Dwarf_P_Relocation_Block_s);
+ ((char *) data) + sizeof(struct Dwarf_P_Relocation_Block_s);
data->rb_data = data->rb_where_to_add_next;
prel->pr_first_block = data;
@@ -111,37 +112,37 @@ _dwarf_pro_pre_alloc_n_reloc_slots(Dwarf_P_Debug dbg,
int
_dwarf_pro_alloc_reloc_slots(Dwarf_P_Debug dbg, int rel_sec_index)
{
- unsigned long len;
- struct Dwarf_P_Relocation_Block_s *data;
+ unsigned long len = 0;
+ struct Dwarf_P_Relocation_Block_s *data = 0;
Dwarf_P_Per_Reloc_Sect prel = &dbg->de_reloc_sect[rel_sec_index];
unsigned long slots_in_blk = prel->pr_slots_per_block_to_alloc;
unsigned long rel_rec_size = dbg->de_relocation_record_size;
len = sizeof(struct Dwarf_P_Relocation_Block_s) +
- slots_in_blk * rel_rec_size;
+ slots_in_blk * rel_rec_size;
data = (struct Dwarf_P_Relocation_Block_s *)
- _dwarf_p_get_alloc(dbg, len);
+ _dwarf_p_get_alloc(dbg, len);
if (!data) {
- return DW_DLV_ERROR;
+ return DW_DLV_ERROR;
}
if (prel->pr_first_block) {
- prel->pr_last_block->rb_next = data;
- prel->pr_last_block = data;
- prel->pr_block_count += 1;
+ prel->pr_last_block->rb_next = data;
+ prel->pr_last_block = data;
+ prel->pr_block_count += 1;
} else {
- prel->pr_first_block = data;
- prel->pr_last_block = data;
- prel->pr_block_count = 1;
+ prel->pr_first_block = data;
+ prel->pr_last_block = data;
+ prel->pr_block_count = 1;
}
data->rb_slots_in_block = slots_in_blk;
data->rb_next_slot_to_use = 0;
data->rb_where_to_add_next =
- ((char *) data) + sizeof(struct Dwarf_P_Relocation_Block_s);
+ ((char *) data) + sizeof(struct Dwarf_P_Relocation_Block_s);
data->rb_data = data->rb_where_to_add_next;
return DW_DLV_OK;
@@ -149,32 +150,32 @@ _dwarf_pro_alloc_reloc_slots(Dwarf_P_Debug dbg, int rel_sec_index)
}
/*
- Reserve a slot. return DW_DLV_OK if succeeds.
+ Reserve a slot. return DW_DLV_OK if succeeds.
- Return DW_DLV_ERROR if fails (malloc error).
+ Return DW_DLV_ERROR if fails (malloc error).
- Use the relrec_to_fill to pass back a pointer to
- a slot space to use.
+ Use the relrec_to_fill to pass back a pointer to
+ a slot space to use.
*/
int
_dwarf_pro_reloc_get_a_slot(Dwarf_P_Debug dbg,
- int base_sec_index, void **relrec_to_fill)
+ int base_sec_index, void **relrec_to_fill)
{
- struct Dwarf_P_Relocation_Block_s *data;
+ struct Dwarf_P_Relocation_Block_s *data = 0;
Dwarf_P_Per_Reloc_Sect prel = &dbg->de_reloc_sect[base_sec_index];
unsigned long rel_rec_size = dbg->de_relocation_record_size;
- char *ret_addr;
+ char *ret_addr = 0;
data = prel->pr_last_block;
if ((data == 0) ||
- (data->rb_next_slot_to_use >= data->rb_slots_in_block)) {
- int res;
+ (data->rb_next_slot_to_use >= data->rb_slots_in_block)) {
+ int res;
- res = _dwarf_pro_alloc_reloc_slots(dbg, base_sec_index);
- if (res != DW_DLV_OK) {
- return res;
- }
+ res = _dwarf_pro_alloc_reloc_slots(dbg, base_sec_index);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
}
data = prel->pr_last_block;
@@ -211,58 +212,58 @@ _dwarf_pro_reloc_get_a_slot(Dwarf_P_Debug dbg,
/*ARGSUSED*/ int
dwarf_get_relocation_info_count(Dwarf_P_Debug dbg,
- Dwarf_Unsigned *
- count_of_relocation_sections,
- int *drd_buffer_version,
- Dwarf_Error * error)
+ Dwarf_Unsigned *
+ count_of_relocation_sections,
+ int *drd_buffer_version,
+ Dwarf_Error * error)
{
if (dbg->de_flags & DW_DLC_SYMBOLIC_RELOCATIONS) {
- int i;
- unsigned int count = 0;
-
- for (i = 0; i < NUM_DEBUG_SECTIONS; ++i) {
- if (dbg->de_reloc_sect[i].pr_reloc_total_count > 0) {
- ++count;
- }
- }
- *count_of_relocation_sections = (Dwarf_Unsigned) count;
- *drd_buffer_version = DWARF_DRD_BUFFER_VERSION;
- return DW_DLV_OK;
+ int i;
+ unsigned int count = 0;
+
+ for (i = 0; i < NUM_DEBUG_SECTIONS; ++i) {
+ if (dbg->de_reloc_sect[i].pr_reloc_total_count > 0) {
+ ++count;
+ }
+ }
+ *count_of_relocation_sections = (Dwarf_Unsigned) count;
+ *drd_buffer_version = DWARF_DRD_BUFFER_VERSION;
+ return DW_DLV_OK;
}
return DW_DLV_NO_ENTRY;
}
int
dwarf_get_relocation_info(Dwarf_P_Debug dbg,
- Dwarf_Signed * elf_section_index,
- Dwarf_Signed * elf_section_index_link,
- Dwarf_Unsigned * relocation_buffer_count,
- Dwarf_Relocation_Data * reldata_buffer,
- Dwarf_Error * error)
+ Dwarf_Signed * elf_section_index,
+ Dwarf_Signed * elf_section_index_link,
+ Dwarf_Unsigned * relocation_buffer_count,
+ Dwarf_Relocation_Data * reldata_buffer,
+ Dwarf_Error * error)
{
int next = dbg->de_reloc_next_to_return;
if (dbg->de_flags & DW_DLC_SYMBOLIC_RELOCATIONS) {
- int i;
+ int i;
- for (i = next; i < NUM_DEBUG_SECTIONS; ++i) {
- Dwarf_P_Per_Reloc_Sect prel = &dbg->de_reloc_sect[i];
+ for (i = next; i < NUM_DEBUG_SECTIONS; ++i) {
+ Dwarf_P_Per_Reloc_Sect prel = &dbg->de_reloc_sect[i];
- if (prel->pr_reloc_total_count > 0) {
- dbg->de_reloc_next_to_return = i + 1;
+ if (prel->pr_reloc_total_count > 0) {
+ dbg->de_reloc_next_to_return = i + 1;
- /* ASSERT: prel->.pr_block_count == 1 */
+ /* ASSERT: prel->.pr_block_count == 1 */
- *elf_section_index = prel->pr_sect_num_of_reloc_sect;
- *elf_section_index_link = dbg->de_elf_sects[i];
- *relocation_buffer_count = prel->pr_reloc_total_count;
- *reldata_buffer = (Dwarf_Relocation_Data)
- (prel->pr_first_block->rb_data);
- return DW_DLV_OK;
- }
- }
- DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, DW_DLV_ERROR);
+ *elf_section_index = prel->pr_sect_num_of_reloc_sect;
+ *elf_section_index_link = dbg->de_elf_sects[i];
+ *relocation_buffer_count = prel->pr_reloc_total_count;
+ *reldata_buffer = (Dwarf_Relocation_Data)
+ (prel->pr_first_block->rb_data);
+ return DW_DLV_OK;
+ }
+ }
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, DW_DLV_ERROR);
}
return DW_DLV_NO_ENTRY;
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_reloc.h b/usr/src/tools/ctf/dwarf/common/pro_reloc.h
index bd8c1fb7bb..d2e6c67357 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_reloc.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_reloc.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.c b/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.c
index 74e2ba3aaf..459779ceda 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.c
@@ -1,6 +1,8 @@
/*
- Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2001,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
+ Portions Copyright 2008-2010 David Anderson, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +21,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -52,50 +54,49 @@
#include "pro_reloc_stream.h"
/*
- Return DW_DLV_ERROR on malloc error or reltarget_length error.
- Return DW_DLV_OK otherwise
+ Return DW_DLV_ERROR on malloc error or reltarget_length error.
+ Return DW_DLV_OK otherwise
*/
/*ARGSUSED*/ int
-_dwarf_pro_reloc_name_stream64(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsigned offset, /* r_offset
- of
- reloc
- */
- Dwarf_Unsigned symidx,
- enum Dwarf_Rel_Type type,
- int reltarget_length)
+_dwarf_pro_reloc_name_stream64(Dwarf_P_Debug dbg,
+ int base_sec_index,
+ Dwarf_Unsigned offset, /* r_offset of reloc */
+ Dwarf_Unsigned symidx,
+ enum Dwarf_Rel_Type type,
+ int reltarget_length)
{
#if HAVE_ELF64_GETEHDR
- Elf64_Rel *elf64_reloc;
- void *relrec_to_fill;
- int res;
- int rel_type;
+ REL64 *elf64_reloc = 0;
+ void *relrec_to_fill = 0;
+ int res = 0;
+ int rel_type = 0;
res = _dwarf_pro_reloc_get_a_slot(dbg, base_sec_index,
- &relrec_to_fill);
+ &relrec_to_fill);
if (res != DW_DLV_OK)
- return res;
+ return res;
if (type == dwarf_drt_data_reloc) {
- if (reltarget_length == dbg->de_offset_size) {
- rel_type = dbg->de_offset_reloc;
- } else if (reltarget_length == dbg->de_pointer_size) {
- rel_type = dbg->de_ptr_reloc;
- } else {
- return DW_DLV_ERROR;
- }
+ if (reltarget_length == dbg->de_offset_size) {
+ rel_type = dbg->de_offset_reloc;
+ } else if (reltarget_length == dbg->de_pointer_size) {
+ rel_type = dbg->de_ptr_reloc;
+ } else {
+ return DW_DLV_ERROR;
+ }
} else if (type == dwarf_drt_segment_rel) {
- rel_type = dbg->de_exc_reloc;
+ rel_type = dbg->de_exc_reloc;
} else {
- /* We are in trouble: improper use of stream relocations.
- Someone else will diagnose */
- rel_type = 0;
+ /* We are in trouble: improper use of stream relocations.
+ Someone else will diagnose */
+ rel_type = 0;
}
- elf64_reloc = (Elf64_Rel *) relrec_to_fill;
+ elf64_reloc = (REL64 *)relrec_to_fill;
elf64_reloc->r_offset = offset;
Set_REL64_info(*elf64_reloc, symidx, rel_type);
return DW_DLV_OK;
@@ -105,45 +106,43 @@ _dwarf_pro_reloc_name_stream64(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsi
}
/*
- Return DW_DLV_ERROR on malloc error or reltarget_length error.
- Return DW_DLV_OK otherwise
- a binary reloc: 32bit ABI
+ Return DW_DLV_ERROR on malloc error or reltarget_length error.
+ Return DW_DLV_OK otherwise
+ a binary reloc: 32bit ABI
*/
int
-_dwarf_pro_reloc_name_stream32(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsigned offset, /* r_offset
- of
- reloc
- */
- Dwarf_Unsigned symidx,
- enum Dwarf_Rel_Type type,
- int reltarget_length)
+_dwarf_pro_reloc_name_stream32(Dwarf_P_Debug dbg, int base_sec_index,
+ Dwarf_Unsigned offset, /* r_offset of reloc */
+ Dwarf_Unsigned symidx,
+ enum Dwarf_Rel_Type type,
+ int reltarget_length)
{
- Elf32_Rel *elf32_reloc;
- void *relrec_to_fill;
- int res;
- int rel_type;
+ REL32 *elf32_reloc = 0;
+ void *relrec_to_fill = 0;
+ int res = 0;
+ int rel_type = 0;
res = _dwarf_pro_reloc_get_a_slot(dbg, base_sec_index,
- &relrec_to_fill);
+ &relrec_to_fill);
if (res != DW_DLV_OK)
- return res;
+ return res;
if (type == dwarf_drt_data_reloc) {
- if (reltarget_length == dbg->de_offset_size) {
- rel_type = dbg->de_offset_reloc;
- } else if (reltarget_length == dbg->de_pointer_size) {
- rel_type = dbg->de_ptr_reloc;
- } else {
- return DW_DLV_ERROR;
- }
+ if (reltarget_length == dbg->de_offset_size) {
+ rel_type = dbg->de_offset_reloc;
+ } else if (reltarget_length == dbg->de_pointer_size) {
+ rel_type = dbg->de_ptr_reloc;
+ } else {
+ return DW_DLV_ERROR;
+ }
} else if (type == dwarf_drt_segment_rel) {
- rel_type = dbg->de_exc_reloc;
+ rel_type = dbg->de_exc_reloc;
} else {
- /* We are in trouble: improper use of stream relocations.
- Someone else will diagnose */
- rel_type = 0;
+ /* We are in trouble: improper use of stream relocations.
+ Someone else will diagnose */
+ rel_type = 0;
}
- elf32_reloc = (Elf32_Rel *) relrec_to_fill;
+ elf32_reloc = (REL32*)relrec_to_fill;
elf32_reloc->r_offset = (Elf32_Addr) offset;
Set_REL32_info(*elf32_reloc, (Dwarf_Word) symidx, rel_type);
return DW_DLV_OK;
@@ -154,20 +153,19 @@ _dwarf_pro_reloc_name_stream32(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsi
/*
- Return DW_DLV_OK.
- Never can really do anything: lengths cannot
- be represented as end-start in a stream.
+ Return DW_DLV_OK.
+ Never can really do anything: lengths cannot
+ be represented as end-start in a stream.
*/
/*ARGSUSED*/ int
-_dwarf_pro_reloc_length_stream(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsigned offset, /* r_offset
- of
- reloc
- */
- Dwarf_Unsigned start_symidx,
- Dwarf_Unsigned end_symidx,
- enum Dwarf_Rel_Type type,
- int reltarget_length)
+_dwarf_pro_reloc_length_stream(Dwarf_P_Debug dbg,
+ int base_sec_index,
+ Dwarf_Unsigned offset, /* r_offset of reloc */
+ Dwarf_Unsigned start_symidx,
+ Dwarf_Unsigned end_symidx,
+ enum Dwarf_Rel_Type type,
+ int reltarget_length)
{
/* get a slot, fill in the slot entry */
return DW_DLV_OK;
@@ -178,25 +176,25 @@ _dwarf_pro_reloc_length_stream(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsi
Ensure each stream is a single buffer and
add that single buffer to the set of stream buffers.
- By creating a new buffer and copying if necessary.
+ By creating a new buffer and copying if necessary.
Free the input set of buffers if we consolidate.
Return -1 on error (malloc failure)
Return DW_DLV_OK on success. Any other return indicates
- malloc failed.
-
+ malloc failed.
+
*/
int
_dwarf_stream_relocs_to_disk(Dwarf_P_Debug dbg,
- Dwarf_Signed * new_sec_count)
+ Dwarf_Signed * new_sec_count)
{
unsigned long total_size = 0;
- Dwarf_Small *data;
- int sec_index;
- unsigned long i;
- Dwarf_Error err;
+ Dwarf_Small *data = 0;
+ int sec_index = 0;
+ unsigned long i = 0;
+ Dwarf_Error err = 0;
Dwarf_Error *error = &err;
Dwarf_Signed sec_count = 0;
@@ -204,93 +202,94 @@ _dwarf_stream_relocs_to_disk(Dwarf_P_Debug dbg,
Dwarf_P_Per_Reloc_Sect p_reloc = &dbg->de_reloc_sect[0];
for (i = 0; i < NUM_DEBUG_SECTIONS; ++i, ++p_reloc) {
- unsigned long ct = p_reloc->pr_reloc_total_count;
- unsigned len;
- struct Dwarf_P_Relocation_Block_s *p_blk;
- struct Dwarf_P_Relocation_Block_s *p_blk_last;
- Dwarf_P_Per_Reloc_Sect prb;
-
- if (ct == 0) {
- continue;
- }
- prb = &dbg->de_reloc_sect[i];
- len = dbg->de_relocation_record_size;
- ++sec_count;
-
- total_size = ct * len;
- sec_index = prb->pr_sect_num_of_reloc_sect;
- if (sec_index == 0) {
- /* call de_func or de_func_b, getting section number of
- reloc sec */
- int rel_section_index;
- Dwarf_Unsigned name_idx;
- int int_name;
- int err;
-
- if (dbg->de_func_b) {
- rel_section_index =
- dbg->de_func_b(_dwarf_rel_section_names[i],
- /* size */
- dbg->de_relocation_record_size,
- /* type */ SHT_REL,
- /* flags */ 0,
- /* link to symtab, which we cannot
- know */ 0,
- /* info == link to sec rels apply to */
- dbg->de_elf_sects[i],
- &name_idx, &err);
- } else {
- rel_section_index =
- dbg->de_func(_dwarf_rel_section_names[i],
- /* size */
- dbg->de_relocation_record_size,
- /* type */ SHT_REL,
- /* flags */ 0,
- /* link to symtab, which we cannot
- know */ 0,
- /* info == link to sec rels apply to */
- dbg->de_elf_sects[i], &int_name, &err);
- name_idx = int_name;
- }
- if (rel_section_index == -1) {
- {
- _dwarf_p_error(dbg, error, DW_DLE_ELF_SECT_ERR);
- return (DW_DLV_ERROR);
- }
-
- }
- prb->pr_sect_num_of_reloc_sect = rel_section_index;
- sec_index = rel_section_index;
- }
- GET_CHUNK(dbg, sec_index, data, total_size, &err);
- p_blk = p_reloc->pr_first_block;
-
- /* following loop executes at least once. Effects the
- consolidation to a single block or, if already a single
- block, simply copies to the output buffer. And frees the
- input block. The new block is in the de_debug_sects list. */
- while (p_blk) {
-
- unsigned long len =
- p_blk->rb_where_to_add_next - p_blk->rb_data;
-
- memcpy(data, p_blk->rb_data, len);
-
-
- data += len;
-
- p_blk_last = p_blk;
- p_blk = p_blk->rb_next;
-
- _dwarf_p_dealloc(dbg, (Dwarf_Small *) p_blk_last);
- }
- /* ASSERT: sum of len copied == total_size */
-
- /*
- We have copied the input, now drop the pointers to it. For
- debugging, leave the other data untouched. */
- p_reloc->pr_first_block = 0;
- p_reloc->pr_last_block = 0;
+ unsigned long ct = p_reloc->pr_reloc_total_count;
+ unsigned len = 0;
+ struct Dwarf_P_Relocation_Block_s *p_blk = 0;
+ struct Dwarf_P_Relocation_Block_s *p_blk_last = 0;
+ Dwarf_P_Per_Reloc_Sect prb = 0;
+
+ if (ct == 0) {
+ continue;
+ }
+ prb = &dbg->de_reloc_sect[i];
+ len = dbg->de_relocation_record_size;
+ ++sec_count;
+
+ total_size = ct * len;
+ sec_index = prb->pr_sect_num_of_reloc_sect;
+ if (sec_index == 0) {
+ /* Call de_callback_func or de_callback_func_b, getting
+ section number of reloc section. */
+ int rel_section_index = 0;
+ Dwarf_Unsigned name_idx = 0;
+ int int_name = 0;
+ int err = 0;
+
+ if (dbg->de_callback_func_b) {
+ rel_section_index =
+ dbg->de_callback_func_b(_dwarf_rel_section_names[i],
+ /* size */
+ dbg->de_relocation_record_size,
+ /* type */ SHT_REL,
+ /* flags */ 0,
+ /* link to symtab, which we cannot
+ know */ 0,
+ /* info == link to sec rels apply to
+ */
+ dbg->de_elf_sects[i],
+ &name_idx, &err);
+ } else {
+ rel_section_index =
+ dbg->de_callback_func(_dwarf_rel_section_names[i],
+ /* size */
+ dbg->de_relocation_record_size,
+ /* type */ SHT_REL,
+ /* flags */ 0,
+ /* link to symtab, which we cannot
+ know */ 0,
+ /* info == link to sec rels apply to */
+ dbg->de_elf_sects[i], &int_name, &err);
+ name_idx = int_name;
+ }
+ if (rel_section_index == -1) {
+ {
+ _dwarf_p_error(dbg, error, DW_DLE_ELF_SECT_ERR);
+ return (DW_DLV_ERROR);
+ }
+
+ }
+ prb->pr_sect_num_of_reloc_sect = rel_section_index;
+ sec_index = rel_section_index;
+ }
+ GET_CHUNK(dbg, sec_index, data, total_size, &err);
+ p_blk = p_reloc->pr_first_block;
+
+ /* following loop executes at least once. Effects the
+ consolidation to a single block or, if already a single
+ block, simply copies to the output buffer. And frees the
+ input block. The new block is in the de_debug_sects list. */
+ while (p_blk) {
+
+ unsigned long len =
+ p_blk->rb_where_to_add_next - p_blk->rb_data;
+
+ memcpy(data, p_blk->rb_data, len);
+
+
+ data += len;
+
+ p_blk_last = p_blk;
+ p_blk = p_blk->rb_next;
+
+ _dwarf_p_dealloc(dbg, (Dwarf_Small *) p_blk_last);
+ }
+ /* ASSERT: sum of len copied == total_size */
+
+ /*
+ We have copied the input, now drop the pointers to it. For
+ debugging, leave the other data untouched. */
+ p_reloc->pr_first_block = 0;
+ p_reloc->pr_last_block = 0;
}
*new_sec_count = sec_count;
diff --git a/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.h b/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.h
index bab69d80cb..892ea5baf3 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_reloc_stream.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.c b/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.c
index 589c17bf40..22080a00cd 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -46,71 +46,65 @@
#include "pro_reloc_symbolic.h"
/*
- Return DW_DLV_ERROR on malloc error.
- Return DW_DLV_OK otherwise
+ Return DW_DLV_ERROR on malloc error.
+ Return DW_DLV_OK otherwise
*/
int
-_dwarf_pro_reloc_name_symbolic(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsigned offset, /* r_offset
- of
- reloc
- */
- Dwarf_Unsigned symidx,
- enum Dwarf_Rel_Type type,
- int reltarget_length)
+_dwarf_pro_reloc_name_symbolic(Dwarf_P_Debug dbg,
+ int base_sec_index,
+ Dwarf_Unsigned offset, /* r_offset of reloc */
+ Dwarf_Unsigned symidx,
+ enum Dwarf_Rel_Type type,
+ int reltarget_length)
{
/* get a slot, fill in the slot entry */
- void *relrec_to_fill;
- int res;
+ void *relrec_to_fill = 0;
+ int res = 0;
struct Dwarf_Relocation_Data_s *slotp;
res = _dwarf_pro_reloc_get_a_slot(dbg, base_sec_index,
- &relrec_to_fill);
+ &relrec_to_fill);
if (res != DW_DLV_OK)
- return res;
-
+ return res;
slotp = (struct Dwarf_Relocation_Data_s *) relrec_to_fill;
slotp->drd_type = type;
slotp->drd_length = reltarget_length;
slotp->drd_offset = offset;
slotp->drd_symbol_index = symidx;
return DW_DLV_OK;
-
}
/*
- Return DW_DLV_ERROR on malloc error.
- Return DW_DLV_OK otherwise
+ Return DW_DLV_ERROR on malloc error.
+ Return DW_DLV_OK otherwise
*/
int
-_dwarf_pro_reloc_length_symbolic(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Unsigned offset, /* r_offset
- of
- reloc
- */
- Dwarf_Unsigned start_symidx,
- Dwarf_Unsigned end_symidx,
- enum Dwarf_Rel_Type type,
- int reltarget_length)
+_dwarf_pro_reloc_length_symbolic(Dwarf_P_Debug dbg,
+ int base_sec_index,
+ Dwarf_Unsigned offset, /* r_offset of reloc */
+ Dwarf_Unsigned start_symidx,
+ Dwarf_Unsigned end_symidx,
+ enum Dwarf_Rel_Type type,
+ int reltarget_length)
{
/* get a slot, fill in the slot entry */
- void *relrec_to_fill;
- int res;
- struct Dwarf_Relocation_Data_s *slotp1;
- struct Dwarf_Relocation_Data_s *slotp2;
-
-
+ void *relrec_to_fill = 0;
+ int res = 0;
+ struct Dwarf_Relocation_Data_s *slotp1 = 0;
+ struct Dwarf_Relocation_Data_s *slotp2 = 0;
res = _dwarf_pro_reloc_get_a_slot(dbg, base_sec_index,
- &relrec_to_fill);
+ &relrec_to_fill);
if (res != DW_DLV_OK)
- return res;
+ return res;
slotp1 = (struct Dwarf_Relocation_Data_s *) relrec_to_fill;
res = _dwarf_pro_reloc_get_a_slot(dbg, base_sec_index,
- &relrec_to_fill);
+ &relrec_to_fill);
if (res != DW_DLV_OK)
- return res;
+ return res;
slotp2 = (struct Dwarf_Relocation_Data_s *) relrec_to_fill;
/* ASSERT: type == dwarf_drt_first_of_length_type_pair */
@@ -123,7 +117,6 @@ _dwarf_pro_reloc_length_symbolic(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Un
slotp2->drd_length = reltarget_length;
slotp2->drd_offset = offset;
slotp2->drd_symbol_index = end_symidx;
-
return DW_DLV_OK;
}
@@ -135,12 +128,11 @@ _dwarf_pro_reloc_length_symbolic(Dwarf_P_Debug dbg, int base_sec_index, Dwarf_Un
*/
static void
_dwarf_reset_reloc_sect_info(struct Dwarf_P_Per_Reloc_Sect_s *pblk,
- unsigned long ct)
+ unsigned long ct)
{
- /* do not zero pr_sect_num_of_reloc_sect */
-
+ /* Do not zero pr_sect_num_of_reloc_sect */
pblk->pr_reloc_total_count = 0;
pblk->pr_first_block = 0;
pblk->pr_last_block = 0;
@@ -149,151 +141,136 @@ _dwarf_reset_reloc_sect_info(struct Dwarf_P_Per_Reloc_Sect_s *pblk,
}
/*
- Ensure each stream is a single buffer and
- add that single buffer to the set of stream buffers.
+ Ensure each stream is a single buffer and
+ add that single buffer to the set of stream buffers.
- By creating a new buffer and copying if necessary.
- (If > 1 block, reduce to 1 block)
+ By creating a new buffer and copying if necessary.
+ (If > 1 block, reduce to 1 block)
- Free the input set of buffers if we consolidate.
+ Free the input set of buffers if we consolidate.
- We pass back *new_sec_count as zero because we
- are not creating normal sections for a .o, but
- symbolic relocations, separately counted.
+ We pass back *new_sec_count as zero because we
+ are not creating normal sections for a .o, but
+ symbolic relocations, separately counted.
- Return -1 on error (malloc failure)
+ Return -1 on error (malloc failure)
-
- Return DW_DLV_OK on success. Any other return indicates
- malloc failed.
+ Return DW_DLV_OK on success. Any other return indicates
+ malloc failed.
*/
int
_dwarf_symbolic_relocs_to_disk(Dwarf_P_Debug dbg,
- Dwarf_Signed * new_sec_count)
+ Dwarf_Signed * new_sec_count)
{
/* unsigned long total_size =0; */
- Dwarf_Small *data;
- int sec_index;
- int res;
- unsigned long i;
- Dwarf_Error error;
-
+ Dwarf_Small *data = 0;
+ int sec_index = 0;
+ int res = 0;
+ unsigned long i = 0;
+ Dwarf_Error error = 0;
Dwarf_Signed sec_count = 0;
-
Dwarf_P_Per_Reloc_Sect p_reloc = &dbg->de_reloc_sect[0];
for (i = 0; i < NUM_DEBUG_SECTIONS; ++i, ++p_reloc) {
-
- unsigned long ct = p_reloc->pr_reloc_total_count;
- struct Dwarf_P_Relocation_Block_s *p_blk;
- struct Dwarf_P_Relocation_Block_s *p_blk_last;
-
- /* int len */
- int err;
-
-
- if (ct == 0) {
- continue;
- }
-
- /* len = dbg->de_relocation_record_size; */
- ++sec_count;
-
- /* total_size = ct *len; */
- sec_index = p_reloc->pr_sect_num_of_reloc_sect;
- if (sec_index == 0) {
- /* call de_func or de_func_b, getting section number of
- reloc sec */
- int rel_section_index;
- int int_name;
- Dwarf_Unsigned name_idx;
-
- /*
- This is a bit of a fake, as we do not really have true
- elf sections at all. Just the data such might contain.
- But this lets the caller eventually link things
- together: without this call we would not know what rel
- data goes with what section when we are asked for the
- real arrays. */
-
- if (dbg->de_func_b) {
- rel_section_index =
- dbg->de_func_b(_dwarf_rel_section_names[i],
- dbg->de_relocation_record_size,
- /* type */ SHT_REL,
- /* flags */ 0,
- /* link to symtab, which we cannot
- know */ SHN_UNDEF,
- /* sec rels apply to */
- dbg->de_elf_sects[i],
- &name_idx, &err);
- } else {
- rel_section_index =
- dbg->de_func(_dwarf_rel_section_names[i],
- dbg->de_relocation_record_size,
- /* type */ SHT_REL,
- /* flags */ 0,
- /* link to symtab, which we cannot
- know */ SHN_UNDEF,
- /* sec rels apply to, in elf, sh_info */
- dbg->de_elf_sects[i], &int_name, &err);
- name_idx = int_name;
- }
- if (rel_section_index == -1) {
- {
- _dwarf_p_error(dbg, &error, DW_DLE_ELF_SECT_ERR);
- return (DW_DLV_ERROR);
- }
- }
- p_reloc->pr_sect_num_of_reloc_sect = rel_section_index;
- sec_index = rel_section_index;
- }
-
- p_blk = p_reloc->pr_first_block;
-
- if (p_reloc->pr_block_count > 1) {
- struct Dwarf_P_Relocation_Block_s *new_blk;
-
- /* HACK , not normal interfaces, trashing p_reloc
- current contents! */
- _dwarf_reset_reloc_sect_info(p_reloc, ct);
-
- /* Creating new single block for all 'ct' entries */
- res = _dwarf_pro_pre_alloc_n_reloc_slots(dbg, (int) i, ct);
-
-
- if (res != DW_DLV_OK) {
- return res;
- }
- new_blk = p_reloc->pr_first_block;
-
- data = (Dwarf_Small *) new_blk->rb_data;
-
- /* The following loop does the consolidation to a
- single block and frees the input block(s). */
- do {
-
- unsigned long len =
- p_blk->rb_where_to_add_next - p_blk->rb_data;
-
- memcpy(data, p_blk->rb_data, len);
- data += len;
-
- p_blk_last = p_blk;
- p_blk = p_blk->rb_next;
-
- _dwarf_p_dealloc(dbg, (Dwarf_Small *) p_blk_last);
- } while (p_blk) ;
- /* ASSERT: sum of len copied == total_size */
- new_blk->rb_next_slot_to_use = ct;
- new_blk->rb_where_to_add_next = (char *) data;
- p_reloc->pr_reloc_total_count = ct;
-
- /* have now created a single block, but no change in slots
- used (pr_reloc_total_count) */
- }
+ unsigned long ct = p_reloc->pr_reloc_total_count;
+ struct Dwarf_P_Relocation_Block_s *p_blk;
+ struct Dwarf_P_Relocation_Block_s *p_blk_last;
+ int err;
+ if (ct == 0) {
+ continue;
+ }
+
+ /* len = dbg->de_relocation_record_size; */
+ ++sec_count;
+
+ /* total_size = ct *len; */
+ sec_index = p_reloc->pr_sect_num_of_reloc_sect;
+ if (sec_index == 0) {
+ /* Call de_callback_func or de_callback_func_b,
+ getting section number of reloc section. */
+ int rel_section_index = 0;
+ int int_name = 0;
+ Dwarf_Unsigned name_idx = 0;
+
+ /*
+ This is a bit of a fake, as we do not really have true
+ elf sections at all. Just the data such might contain.
+ But this lets the caller eventually link things
+ together: without this call we would not know what rel
+ data goes with what section when we are asked for the
+ real arrays. */
+
+ if (dbg->de_callback_func_b) {
+ rel_section_index =
+ dbg->de_callback_func_b(_dwarf_rel_section_names[i],
+ dbg->de_relocation_record_size,
+ /* type */ SHT_REL,
+ /* flags */ 0,
+ /* link to symtab, which we cannot
+ know */ SHN_UNDEF,
+ /* sec rels apply to */
+ dbg->de_elf_sects[i],
+ &name_idx, &err);
+ } else {
+ rel_section_index =
+ dbg->de_callback_func(_dwarf_rel_section_names[i],
+ dbg->de_relocation_record_size,
+ /* type */ SHT_REL,
+ /* flags */ 0,
+ /* link to symtab, which we cannot
+ know */ SHN_UNDEF,
+ /* sec rels apply to, in elf, sh_info */
+ dbg->de_elf_sects[i], &int_name, &err);
+ name_idx = int_name;
+ }
+ if (rel_section_index == -1) {
+ {
+ _dwarf_p_error(dbg, &error, DW_DLE_ELF_SECT_ERR);
+ return (DW_DLV_ERROR);
+ }
+ }
+ p_reloc->pr_sect_num_of_reloc_sect = rel_section_index;
+ sec_index = rel_section_index;
+ }
+
+ p_blk = p_reloc->pr_first_block;
+
+ if (p_reloc->pr_block_count > 1) {
+ struct Dwarf_P_Relocation_Block_s *new_blk;
+
+ /* HACK , not normal interfaces, trashing p_reloc current
+ contents! */
+ _dwarf_reset_reloc_sect_info(p_reloc, ct);
+
+ /* Creating new single block for all 'ct' entries */
+ res = _dwarf_pro_pre_alloc_n_reloc_slots(dbg, (int) i, ct);
+ if (res != DW_DLV_OK) {
+ return res;
+ }
+ new_blk = p_reloc->pr_first_block;
+
+ data = (Dwarf_Small *) new_blk->rb_data;
+
+ /* The following loop does the consolidation to a single
+ block and frees the input block(s). */
+ do {
+ unsigned long len =
+ p_blk->rb_where_to_add_next - p_blk->rb_data;
+ memcpy(data, p_blk->rb_data, len);
+ data += len;
+ p_blk_last = p_blk;
+ p_blk = p_blk->rb_next;
+ _dwarf_p_dealloc(dbg, (Dwarf_Small *) p_blk_last);
+ } while (p_blk);
+ /* ASSERT: sum of len copied == total_size */
+ new_blk->rb_next_slot_to_use = ct;
+ new_blk->rb_where_to_add_next = (char *) data;
+ p_reloc->pr_reloc_total_count = ct;
+
+ /* have now created a single block, but no change in slots
+ used (pr_reloc_total_count) */
+ }
}
-
*new_sec_count = 0;
return DW_DLV_OK;
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.h b/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.h
index 5384718b8d..3d03a47863 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_reloc_symbolic.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_section.c b/usr/src/tools/ctf/dwarf/common/pro_section.c
index ca1dd2a082..6503c2cf09 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_section.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_section.c
@@ -1,6 +1,8 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004,2006 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright (C) 2007-2010 David Anderson. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +21,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -32,6 +34,11 @@
http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
+/*
+ SGI has moved from the Crittenden Lane address.
+*/
+
+
@@ -66,22 +73,23 @@
#endif
/* must match up with pro_section.h defines of DEBUG_INFO etc
-and sectnames (below)
+and sectnames (below). REL_SEC_PREFIX is either ".rel" or ".rela"
+see pro_incl.h
*/
char *_dwarf_rel_section_names[] = {
- ".rel.debug_info",
- ".rel.debug_line",
- ".rel.debug_abbrev", /* no relocations on this, really */
- ".rel.debug_frame",
- ".rel.debug_aranges",
- ".rel.debug_pubnames",
- ".rel.debug_str",
- ".rel.debug_funcnames", /* sgi extension */
- ".rel.debug_typenames", /* sgi extension */
- ".rel.debug_varnames", /* sgi extension */
- ".rel.debug_weaknames", /* sgi extension */
- ".rel.debug_macinfo",
- ".rel.debug_loc"
+ REL_SEC_PREFIX ".debug_info",
+ REL_SEC_PREFIX ".debug_line",
+ REL_SEC_PREFIX ".debug_abbrev", /* no relocations on this, really */
+ REL_SEC_PREFIX ".debug_frame",
+ REL_SEC_PREFIX ".debug_aranges",
+ REL_SEC_PREFIX ".debug_pubnames",
+ REL_SEC_PREFIX ".debug_str",
+ REL_SEC_PREFIX ".debug_funcnames", /* sgi extension */
+ REL_SEC_PREFIX ".debug_typenames", /* sgi extension */
+ REL_SEC_PREFIX ".debug_varnames", /* sgi extension */
+ REL_SEC_PREFIX ".debug_weaknames", /* sgi extension */
+ REL_SEC_PREFIX ".debug_macinfo",
+ REL_SEC_PREFIX ".debug_loc"
};
/* names of sections. Ensure that it matches the defines
@@ -96,10 +104,10 @@ char *_dwarf_sectnames[] = {
".debug_aranges",
".debug_pubnames",
".debug_str",
- ".debug_funcnames", /* sgi extension */
- ".debug_typenames", /* sgi extension */
- ".debug_varnames", /* sgi extension */
- ".debug_weaknames", /* sgi extension */
+ ".debug_funcnames", /* sgi extension */
+ ".debug_typenames", /* sgi extension */
+ ".debug_varnames", /* sgi extension */
+ ".debug_weaknames", /* sgi extension */
".debug_macinfo",
".debug_loc"
};
@@ -107,15 +115,15 @@ char *_dwarf_sectnames[] = {
-static Dwarf_Ubyte std_opcode_len[] = { 0, /* DW_LNS_copy */
- 1, /* DW_LNS_advance_pc */
- 1, /* DW_LNS_advance_line */
- 1, /* DW_LNS_set_file */
- 1, /* DW_LNS_set_column */
- 0, /* DW_LNS_negate_stmt */
- 0, /* DW_LNS_set_basic_block */
- 0, /* DW_LNS_const_add_pc */
- 1, /* DW_LNS_fixed_advance_pc */
+static Dwarf_Ubyte std_opcode_len[] = { 0, /* DW_LNS_copy */
+ 1, /* DW_LNS_advance_pc */
+ 1, /* DW_LNS_advance_line */
+ 1, /* DW_LNS_set_file */
+ 1, /* DW_LNS_set_column */
+ 0, /* DW_LNS_negate_stmt */
+ 0, /* DW_LNS_set_basic_block */
+ 0, /* DW_LNS_const_add_pc */
+ 1, /* DW_LNS_fixed_advance_pc */
};
/* struct to hold relocation entries. Its mantained as a linked
@@ -136,25 +144,34 @@ struct Dwarf_P_Rel_Head_s {
};
static int _dwarf_pro_generate_debugline(Dwarf_P_Debug dbg,
- Dwarf_Error * error);
+ Dwarf_Error * error);
static int _dwarf_pro_generate_debugframe(Dwarf_P_Debug dbg,
- Dwarf_Error * error);
+ Dwarf_Error * error);
static int _dwarf_pro_generate_debuginfo(Dwarf_P_Debug dbg,
- Dwarf_Error * error);
+ Dwarf_Error * error);
static Dwarf_P_Abbrev _dwarf_pro_getabbrev(Dwarf_P_Die, Dwarf_P_Abbrev);
static int _dwarf_pro_match_attr
(Dwarf_P_Attribute, Dwarf_P_Abbrev, int no_attr);
/* these macros used as return value for below functions */
-#define OPC_INCS_ZERO -1
-#define OPC_OUT_OF_RANGE -2
-#define LINE_OUT_OF_RANGE -3
+#define OPC_INCS_ZERO -1
+#define OPC_OUT_OF_RANGE -2
+#define LINE_OUT_OF_RANGE -3
static int _dwarf_pro_get_opc(Dwarf_Unsigned addr_adv, int line_adv);
+/* BEGIN_LEN_SIZE is the size of the 'length' field in total.
+ Which may be 4,8, or 12 bytes!
+ 4 is standard DWARF2.
+ 8 is non-standard MIPS-IRIX 64-bit.
+ 12 is standard DWARF3 for 64 bit offsets.
+ Used in various routines: local variable names
+ must match the names here.
+*/
+#define BEGIN_LEN_SIZE (uwordb_size + extension_size)
/*
- Return TRUE if we need the section, FALSE otherwise
+ Return TRUE if we need the section, FALSE otherwise
If any of the 'line-data-related' calls were made
including file or directory entries,
@@ -165,8 +182,8 @@ static int
dwarf_need_debug_line_section(Dwarf_P_Debug dbg)
{
if (dbg->de_lines == NULL && dbg->de_file_entries == NULL
- && dbg->de_inc_dirs == NULL) {
- return FALSE;
+ && dbg->de_inc_dirs == NULL) {
+ return FALSE;
}
return TRUE;
}
@@ -182,311 +199,306 @@ dwarf_transform_to_disk_form(Dwarf_P_Debug dbg, Dwarf_Error * error)
/*
Section data in written out in a number of buffers. Each
_generate_*() function returns a cumulative count of buffers for
- all the sections. get_section_bytes() returns pointers to these
+ all the sections. get_section_bytes() returns pointers to these
buffers one at a time. */
- int nbufs;
- int sect;
- int name_idx;
- int err;
- Dwarf_Unsigned du;
+ int nbufs = 0;
+ int sect = 0;
+ int err = 0;
+ Dwarf_Unsigned du = 0;
if (dbg->de_version_magic_number != PRO_VERSION_MAGIC) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_IA, DW_DLV_NOCOUNT);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_IA, DW_DLV_NOCOUNT);
}
/* Create dwarf section headers */
for (sect = 0; sect < NUM_DEBUG_SECTIONS; sect++) {
- long flags = 0;
-
- switch (sect) {
-
- case DEBUG_INFO:
- if (dbg->de_dies == NULL)
- continue;
- break;
-
- case DEBUG_LINE:
- if (dwarf_need_debug_line_section(dbg) == FALSE) {
- continue;
- }
- break;
-
- case DEBUG_ABBREV:
- if (dbg->de_dies == NULL)
- continue;
- break;
-
- case DEBUG_FRAME:
- if (dbg->de_frame_cies == NULL)
- continue;
- flags = SHF_MIPS_NOSTRIP;
- break;
-
- case DEBUG_ARANGES:
- if (dbg->de_arange == NULL)
- continue;
- break;
-
- case DEBUG_PUBNAMES:
- if (dbg->de_simple_name_headers[dwarf_snk_pubname].
- sn_head == NULL)
- continue;
- break;
-
- case DEBUG_STR:
- if (dbg->de_strings == NULL)
- continue;
- break;
-
- case DEBUG_FUNCNAMES:
- if (dbg->de_simple_name_headers[dwarf_snk_funcname].
- sn_head == NULL)
- continue;
- break;
-
- case DEBUG_TYPENAMES:
- if (dbg->de_simple_name_headers[dwarf_snk_typename].
- sn_head == NULL)
- continue;
- break;
-
- case DEBUG_VARNAMES:
- if (dbg->de_simple_name_headers[dwarf_snk_varname].
- sn_head == NULL)
- continue;
- break;
-
- case DEBUG_WEAKNAMES:
- if (dbg->de_simple_name_headers[dwarf_snk_weakname].
- sn_head == NULL)
- continue;
- break;
-
- case DEBUG_MACINFO:
- if (dbg->de_first_macinfo == NULL)
- continue;
- break;
- case DEBUG_LOC:
- /* not handled yet */
- continue;
- default:
- /* logic error: missing a case */
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ELF_SECT_ERR, DW_DLV_NOCOUNT);
- }
- {
- int new_base_elf_sect;
-
- if (dbg->de_func_b) {
- new_base_elf_sect =
- dbg->de_func_b(_dwarf_sectnames[sect],
- /* rec size */ 1,
- SECTION_TYPE,
- flags, SHN_UNDEF, 0, &du, &err);
-
- } else {
- new_base_elf_sect = dbg->de_func(_dwarf_sectnames[sect],
- dbg->
- de_relocation_record_size,
- SECTION_TYPE, flags,
- SHN_UNDEF, 0,
- &name_idx, &err);
- du = name_idx;
- }
- if (new_base_elf_sect == -1) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ELF_SECT_ERR,
- DW_DLV_NOCOUNT);
- }
- dbg->de_elf_sects[sect] = new_base_elf_sect;
-
- dbg->de_sect_name_idx[sect] = du;
- }
+ long flags = 0;
+
+ switch (sect) {
+
+ case DEBUG_INFO:
+ if (dbg->de_dies == NULL)
+ continue;
+ break;
+
+ case DEBUG_LINE:
+ if (dwarf_need_debug_line_section(dbg) == FALSE) {
+ continue;
+ }
+ break;
+
+ case DEBUG_ABBREV:
+ if (dbg->de_dies == NULL)
+ continue;
+ break;
+
+ case DEBUG_FRAME:
+ if (dbg->de_frame_cies == NULL)
+ continue;
+ flags = SHF_MIPS_NOSTRIP;
+ break;
+
+ case DEBUG_ARANGES:
+ if (dbg->de_arange == NULL)
+ continue;
+ break;
+
+ case DEBUG_PUBNAMES:
+ if (dbg->de_simple_name_headers[dwarf_snk_pubname].
+ sn_head == NULL)
+ continue;
+ break;
+
+ case DEBUG_STR:
+ if (dbg->de_strings == NULL)
+ continue;
+ break;
+
+ case DEBUG_FUNCNAMES:
+ if (dbg->de_simple_name_headers[dwarf_snk_funcname].
+ sn_head == NULL)
+ continue;
+ break;
+
+ case DEBUG_TYPENAMES:
+ if (dbg->de_simple_name_headers[dwarf_snk_typename].
+ sn_head == NULL)
+ continue;
+ break;
+
+ case DEBUG_VARNAMES:
+ if (dbg->de_simple_name_headers[dwarf_snk_varname].
+ sn_head == NULL)
+ continue;
+ break;
+
+ case DEBUG_WEAKNAMES:
+ if (dbg->de_simple_name_headers[dwarf_snk_weakname].
+ sn_head == NULL)
+ continue;
+ break;
+
+ case DEBUG_MACINFO:
+ if (dbg->de_first_macinfo == NULL)
+ continue;
+ break;
+ case DEBUG_LOC:
+ /* not handled yet */
+ continue;
+ default:
+ /* logic error: missing a case */
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ELF_SECT_ERR, DW_DLV_NOCOUNT);
+ }
+ {
+ int new_base_elf_sect;
+
+ if (dbg->de_callback_func_b) {
+ new_base_elf_sect =
+ dbg->de_callback_func_b(_dwarf_sectnames[sect],
+ /* rec size */ 1,
+ SECTION_TYPE,
+ flags, SHN_UNDEF, 0, &du, &err);
+
+ } else {
+ int name_idx = 0;
+ new_base_elf_sect = dbg->de_callback_func(
+ _dwarf_sectnames[sect],
+ dbg->de_relocation_record_size,
+ SECTION_TYPE, flags,
+ SHN_UNDEF, 0,
+ &name_idx, &err);
+ du = name_idx;
+ }
+ if (new_base_elf_sect == -1) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ELF_SECT_ERR,
+ DW_DLV_NOCOUNT);
+ }
+ dbg->de_elf_sects[sect] = new_base_elf_sect;
+
+ dbg->de_sect_name_idx[sect] = du;
+ }
}
nbufs = 0;
/*
- Changing the order in which the sections are generated may
- cause problems because of relocations. */
+ Changing the order in which the sections are generated may cause
+ problems because of relocations. */
if (dwarf_need_debug_line_section(dbg) == TRUE) {
- nbufs = _dwarf_pro_generate_debugline(dbg, error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGLINE_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_pro_generate_debugline(dbg, error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGLINE_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_frame_cies) {
- nbufs = _dwarf_pro_generate_debugframe(dbg, error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGFRAME_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_pro_generate_debugframe(dbg, error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGFRAME_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_first_macinfo) {
- nbufs = _dwarf_pro_transform_macro_info_to_disk(dbg, error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGMACINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_pro_transform_macro_info_to_disk(dbg, error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGMACINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_dies) {
- nbufs = _dwarf_pro_generate_debuginfo(dbg, error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_pro_generate_debuginfo(dbg, error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_arange) {
- nbufs = _dwarf_transform_arange_to_disk(dbg, error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_transform_arange_to_disk(dbg, error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_simple_name_headers[dwarf_snk_pubname].sn_head) {
- nbufs = _dwarf_transform_simplename_to_disk(dbg,
- dwarf_snk_pubname,
- DEBUG_PUBNAMES,
- error);
+ nbufs = _dwarf_transform_simplename_to_disk(dbg,
+ dwarf_snk_pubname,
+ DEBUG_PUBNAMES,
+ error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_simple_name_headers[dwarf_snk_funcname].sn_head) {
- nbufs = _dwarf_transform_simplename_to_disk(dbg,
- dwarf_snk_funcname,
- DEBUG_FUNCNAMES,
- error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_transform_simplename_to_disk(dbg,
+ dwarf_snk_funcname,
+ DEBUG_FUNCNAMES,
+ error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_simple_name_headers[dwarf_snk_typename].sn_head) {
- nbufs = _dwarf_transform_simplename_to_disk(dbg,
- dwarf_snk_typename,
- DEBUG_TYPENAMES,
- error);
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_transform_simplename_to_disk(dbg,
+ dwarf_snk_typename,
+ DEBUG_TYPENAMES,
+ error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_simple_name_headers[dwarf_snk_varname].sn_head) {
- nbufs = _dwarf_transform_simplename_to_disk(dbg,
- dwarf_snk_varname,
- DEBUG_VARNAMES,
- error);
-
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_transform_simplename_to_disk(dbg,
+ dwarf_snk_varname,
+ DEBUG_VARNAMES,
+ error);
+
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
if (dbg->de_simple_name_headers[dwarf_snk_weakname].sn_head) {
- nbufs = _dwarf_transform_simplename_to_disk(dbg,
- dwarf_snk_weakname,
- DEBUG_WEAKNAMES,
- error);
-
- if (nbufs < 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
+ nbufs = _dwarf_transform_simplename_to_disk(dbg,
+ dwarf_snk_weakname, DEBUG_WEAKNAMES, error);
+ if (nbufs < 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
}
{
- Dwarf_Signed new_secs;
- int res;
-
- res = dbg->de_transform_relocs_to_disk(dbg, &new_secs);
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
- DW_DLV_NOCOUNT);
- }
- nbufs += new_secs;
+ Dwarf_Signed new_secs = 0;
+ int res = 0;
+
+ res = dbg->de_transform_relocs_to_disk(dbg, &new_secs);
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_DEBUGINFO_ERROR,
+ DW_DLV_NOCOUNT);
+ }
+ nbufs += new_secs;
}
return nbufs;
}
/*---------------------------------------------------------------
- Generate debug_line section
+ Generate debug_line section
---------------------------------------------------------------*/
static int
_dwarf_pro_generate_debugline(Dwarf_P_Debug dbg, Dwarf_Error * error)
{
- Dwarf_P_Inc_Dir curdir;
- Dwarf_P_F_Entry curentry;
- Dwarf_P_Line curline, prevline;
+ Dwarf_P_Inc_Dir curdir = 0;
+ Dwarf_P_F_Entry curentry = 0;
+ Dwarf_P_Line curline = 0;
+ Dwarf_P_Line prevline = 0;
/* all data named cur* are used to loop thru linked lists */
- int sum_bytes;
- int prolog_size;
- unsigned char *data; /* holds disk form data */
- int elfsectno;
- unsigned char *start_line_sec; /* pointer to the buffer at
- section start */
+ int sum_bytes = 0;
+ int prolog_size = 0;
+ unsigned char *data = 0; /* holds disk form data */
+ int elfsectno = 0;
+ unsigned char *start_line_sec = 0; /* pointer to the buffer at
+ section start */
/* temps for memcpy */
- Dwarf_Unsigned du;
- Dwarf_Ubyte db;
- Dwarf_Half dh;
- int res;
+ Dwarf_Unsigned du = 0;
+ Dwarf_Ubyte db = 0;
+ Dwarf_Half dh = 0;
+ int res = 0;
int uwordb_size = dbg->de_offset_size;
int extension_size = dbg->de_64bit_extension ? 4 : 0;
int upointer_size = dbg->de_pointer_size;
char buff1[ENCODE_SPACE_NEEDED];
+
sum_bytes = 0;
elfsectno = dbg->de_elf_sects[DEBUG_LINE];
- /* statement prologue information */
- prolog_size = 0;
/* include directories */
curdir = dbg->de_inc_dirs;
while (curdir) {
- prolog_size += strlen(curdir->did_name) + 1;
- curdir = curdir->did_next;
+ prolog_size += strlen(curdir->did_name) + 1;
+ curdir = curdir->did_next;
}
- prolog_size++; /* last null following last directory
- entry. */
+ prolog_size++; /* last null following last directory
+ entry. */
/* file entries */
curentry = dbg->de_file_entries;
while (curentry) {
- prolog_size +=
- strlen(curentry->dfe_name) + 1 + curentry->dfe_nbytes;
- curentry = curentry->dfe_next;
+ prolog_size +=
+ strlen(curentry->dfe_name) + 1 + curentry->dfe_nbytes;
+ curentry = curentry->dfe_next;
}
- prolog_size++; /* last null byte */
+ prolog_size++; /* last null byte */
- prolog_size += extension_size + /* DISTINGUISHED VALUE */
- sizeof_uhalf(dbg) + /* version # */
- uwordb_size + /* prologue length */
- sizeof_ubyte(dbg) + /* min_instr length */
- sizeof_ubyte(dbg) + /* default is_stmt */
- sizeof_ubyte(dbg) + /* linebase */
- sizeof_ubyte(dbg) + /* linerange */
- sizeof_ubyte(dbg); /* opcode base */
+ prolog_size += BEGIN_LEN_SIZE + sizeof_uhalf(dbg) + /* version # */
+ uwordb_size + /* header length */
+ sizeof_ubyte(dbg) + /* min_instr length */
+ sizeof_ubyte(dbg) + /* default is_stmt */
+ sizeof_ubyte(dbg) + /* linebase */
+ sizeof_ubyte(dbg) + /* linerange */
+ sizeof_ubyte(dbg); /* opcode base */
/* length of table specifying # of opnds */
prolog_size += sizeof(std_opcode_len);
- prolog_size += uwordb_size; /* for total length field */
GET_CHUNK(dbg, elfsectno, data, prolog_size, error);
start_line_sec = data;
@@ -495,73 +507,74 @@ _dwarf_pro_generate_debugline(Dwarf_P_Debug dbg, Dwarf_Error * error)
/* total_length */
du = 0;
if (extension_size) {
- Dwarf_Word x = DISTINGUISHED_VALUE;
+ Dwarf_Word x = DISTINGUISHED_VALUE;
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &x,
- sizeof(x), extension_size);
- data += extension_size;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &x,
+ sizeof(x), extension_size);
+ data += extension_size;
}
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &du,
- sizeof(du), uwordb_size);
+ sizeof(du), uwordb_size);
data += uwordb_size;
dh = VERSION;
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &dh,
- sizeof(dh), sizeof(Dwarf_Half));
+ sizeof(dh), sizeof(Dwarf_Half));
data += sizeof(Dwarf_Half);
- /* prologue length */
- du = prolog_size - (uwordb_size + sizeof(Dwarf_Half) + uwordb_size);
+ /* header length */
+ du = prolog_size - (BEGIN_LEN_SIZE + sizeof(Dwarf_Half) +
+ uwordb_size);
{
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &du,
- sizeof(du), uwordb_size);
- data += uwordb_size;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &du,
+ sizeof(du), uwordb_size);
+ data += uwordb_size;
}
db = MIN_INST_LENGTH;
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
+ sizeof(db), sizeof(Dwarf_Ubyte));
data += sizeof(Dwarf_Ubyte);
db = DEFAULT_IS_STMT;
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
+ sizeof(db), sizeof(Dwarf_Ubyte));
data += sizeof(Dwarf_Ubyte);
db = (Dwarf_Ubyte) LINE_BASE;
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
+ sizeof(db), sizeof(Dwarf_Ubyte));
data += sizeof(Dwarf_Ubyte);
db = LINE_RANGE;
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
+ sizeof(db), sizeof(Dwarf_Ubyte));
data += sizeof(Dwarf_Ubyte);
db = OPCODE_BASE;
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
+ sizeof(db), sizeof(Dwarf_Ubyte));
data += sizeof(Dwarf_Ubyte);
WRITE_UNALIGNED(dbg, (void *) data, (const void *) std_opcode_len,
- sizeof(std_opcode_len), sizeof(std_opcode_len));
+ sizeof(std_opcode_len), sizeof(std_opcode_len));
data += sizeof(std_opcode_len);
/* copy over include directories */
curdir = dbg->de_inc_dirs;
while (curdir) {
- strcpy((char *) data, curdir->did_name);
- data += strlen(curdir->did_name) + 1;
- curdir = curdir->did_next;
+ strcpy((char *) data, curdir->did_name);
+ data += strlen(curdir->did_name) + 1;
+ curdir = curdir->did_next;
}
- *data = '\0'; /* last null */
+ *data = '\0'; /* last null */
data++;
/* copy file entries */
curentry = dbg->de_file_entries;
while (curentry) {
- strcpy((char *) data, curentry->dfe_name);
- data += strlen(curentry->dfe_name) + 1;
- /* copies of leb numbers, no endian issues */
- memcpy((void *) data,
- (const void *) curentry->dfe_args, curentry->dfe_nbytes);
- data += curentry->dfe_nbytes;
- curentry = curentry->dfe_next;
+ strcpy((char *) data, curentry->dfe_name);
+ data += strlen(curentry->dfe_name) + 1;
+ /* copies of leb numbers, no endian issues */
+ memcpy((void *) data,
+ (const void *) curentry->dfe_args, curentry->dfe_nbytes);
+ data += curentry->dfe_nbytes;
+ curentry = curentry->dfe_next;
}
*data = '\0';
data++;
@@ -570,334 +583,330 @@ _dwarf_pro_generate_debugline(Dwarf_P_Debug dbg, Dwarf_Error * error)
curline = dbg->de_lines;
prevline = (Dwarf_P_Line)
- _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Line_s));
+ _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Line_s));
if (prevline == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_LINE_ALLOC, -1);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_LINE_ALLOC, -1);
}
_dwarf_pro_reg_init(prevline);
/* generate opcodes for line numbers */
while (curline) {
- int nbytes;
- char *arg;
- int opc;
- int no_lns_copy; /* if lns copy opcode doesnt need to be
- generated, if special opcode or end
- sequence */
- Dwarf_Unsigned addr_adv;
- int line_adv; /* supposed to be a reasonably small
- number, so the size should not be a
- problem. ? */
-
- no_lns_copy = 0;
- if (curline->dpl_opc != 0) {
- int inst_bytes; /* no of bytes in extended opcode */
- char *str; /* hold leb encoded inst_bytes */
- int str_nbytes; /* no of bytes in str */
-
- switch (curline->dpl_opc) {
- case DW_LNE_end_sequence:
-
- /* Advance pc to end of text section. */
- addr_adv = curline->dpl_address - prevline->dpl_address;
- if (addr_adv > 0) {
- db = DW_LNS_advance_pc;
- res =
- _dwarf_pro_encode_leb128_nm(addr_adv /
- MIN_INST_LENGTH,
- &nbytes, buff1,
- sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
- GET_CHUNK(dbg, elfsectno, data,
- nbytes + sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &db, sizeof(db),
- sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- /* leb, no endianness issue */
- memcpy((void *) data, (const void *) buff1, nbytes);
- data += nbytes + sizeof(Dwarf_Ubyte);
- sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
- prevline->dpl_address = curline->dpl_address;
- }
-
- /* first null byte */
- db = 0;
- GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
- error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
-
- /* write length of extended opcode */
- inst_bytes = sizeof(Dwarf_Ubyte);
- res =
- _dwarf_pro_encode_leb128_nm(inst_bytes, &str_nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
- GET_CHUNK(dbg, elfsectno, data, str_nbytes, error);
- memcpy((void *) data, (const void *) buff1, str_nbytes);
- data += str_nbytes;
- sum_bytes += str_nbytes;
-
- /* write extended opcode */
- db = DW_LNE_end_sequence;
- GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
- error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
- /* reset value to original values */
- _dwarf_pro_reg_init(prevline);
- no_lns_copy = 1;
- /* this is set only for end_sequence, so that a
- dw_lns_copy is not generated */
- break;
-
- case DW_LNE_set_address:
-
- /* first null byte */
- db = 0;
- GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
- error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
-
- /* write length of extended opcode */
- inst_bytes = sizeof(Dwarf_Ubyte) + upointer_size;
- res =
- _dwarf_pro_encode_leb128_nm(inst_bytes, &str_nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
- GET_CHUNK(dbg, elfsectno, data, str_nbytes, error);
- str = buff1;
- /* leb number, no endian issue */
- memcpy((void *) data, (const void *) str, str_nbytes);
- data += str_nbytes;
- sum_bytes += str_nbytes;
-
- /* write extended opcode */
- db = DW_LNE_set_address;
- GET_CHUNK(dbg, elfsectno, data, upointer_size +
- sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
-
- /* reloc for address */
- res = dbg->de_reloc_name(dbg, DEBUG_LINE, sum_bytes, /* r_offset
- */
- curline->dpl_r_symidx,
- dwarf_drt_data_reloc,
- uwordb_size);
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
-
- /* write offset (address) */
- du = curline->dpl_address;
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &du,
- sizeof(du), upointer_size);
- data += upointer_size;
- sum_bytes += upointer_size;
- prevline->dpl_address = curline->dpl_address;
- no_lns_copy = 1;
- break;
- }
- } else {
- if (curline->dpl_file != prevline->dpl_file) {
- db = DW_LNS_set_file;
- res =
- _dwarf_pro_encode_leb128_nm(curline->dpl_file,
- &nbytes, buff1,
- sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
- arg = buff1;
- GET_CHUNK(dbg, elfsectno, data,
- nbytes + sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- memcpy((void *) data, (const void *) arg, nbytes);
- data += nbytes;
- sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
- prevline->dpl_file = curline->dpl_file;
- }
- if (curline->dpl_column != prevline->dpl_column) {
- db = DW_LNS_set_column;
- res = _dwarf_pro_encode_leb128_nm(curline->dpl_column,
- &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
-
- arg = buff1;
- GET_CHUNK(dbg, elfsectno, data,
- nbytes + sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- memcpy((void *) data, (const void *) arg, nbytes);
- data += nbytes;
- sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
- prevline->dpl_column = curline->dpl_column;
- }
- if (curline->dpl_is_stmt != prevline->dpl_is_stmt) {
- db = DW_LNS_negate_stmt;
- GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
- error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
- prevline->dpl_is_stmt = curline->dpl_is_stmt;
- }
- if (curline->dpl_basic_block == true &&
- prevline->dpl_basic_block == false) {
- db = DW_LNS_set_basic_block;
- GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
- error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
- prevline->dpl_basic_block = curline->dpl_basic_block;
- }
- addr_adv = curline->dpl_address - prevline->dpl_address;
-
- line_adv = (int) (curline->dpl_line - prevline->dpl_line);
- if ((addr_adv % MIN_INST_LENGTH) != 0) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_WRONG_ADDRESS, -1);
- }
- if ((opc = _dwarf_pro_get_opc(addr_adv, line_adv)) > 0) {
- no_lns_copy = 1;
- db = opc;
- GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
- error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
- prevline->dpl_basic_block = false;
- prevline->dpl_address = curline->dpl_address;
- prevline->dpl_line = curline->dpl_line;
- } else {
- if (addr_adv > 0) {
- db = DW_LNS_advance_pc;
- res =
- _dwarf_pro_encode_leb128_nm(addr_adv /
- MIN_INST_LENGTH,
- &nbytes, buff1,
- sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
-
- arg = buff1;
- GET_CHUNK(dbg, elfsectno, data,
- nbytes + sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- memcpy((void *) data, (const void *) arg, nbytes);
- data += nbytes + sizeof(Dwarf_Ubyte);
- sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
- prevline->dpl_basic_block = false;
- prevline->dpl_address = curline->dpl_address;
- }
- if (line_adv != 0) {
- db = DW_LNS_advance_line;
- res = _dwarf_pro_encode_signed_leb128_nm(line_adv,
- &nbytes,
- buff1,
- sizeof
- (buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
-
- arg = buff1;
- GET_CHUNK(dbg, elfsectno, data,
- nbytes + sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &db, sizeof(db),
- sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- memcpy((void *) data, (const void *) arg, nbytes);
- data += nbytes + sizeof(Dwarf_Ubyte);
- sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
- prevline->dpl_basic_block = false;
- prevline->dpl_line = curline->dpl_line;
- }
- }
- } /* ends else for opc != 0 */
- if (no_lns_copy == 0) { /* if not a special or dw_lne_end_seq
- generate a matrix line */
- db = DW_LNS_copy;
- GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- sum_bytes += sizeof(Dwarf_Ubyte);
- prevline->dpl_basic_block = false;
- }
- curline = curline->dpl_next;
+ int nbytes;
+ char *arg;
+ int opc;
+ int no_lns_copy; /* if lns copy opcode doesnt need to be
+ generated, if special opcode or end
+ sequence */
+ Dwarf_Unsigned addr_adv;
+ int line_adv; /* supposed to be a reasonably small
+ number, so the size should not be a
+ problem. ? */
+
+ no_lns_copy = 0;
+ if (curline->dpl_opc != 0) {
+ int inst_bytes; /* no of bytes in extended opcode */
+ char *str; /* hold leb encoded inst_bytes */
+ int str_nbytes; /* no of bytes in str */
+
+ switch (curline->dpl_opc) {
+ case DW_LNE_end_sequence:
+
+ /* Advance pc to end of text section. */
+ addr_adv = curline->dpl_address - prevline->dpl_address;
+ if (addr_adv > 0) {
+ db = DW_LNS_advance_pc;
+ res =
+ _dwarf_pro_encode_leb128_nm(addr_adv /
+ MIN_INST_LENGTH,
+ &nbytes, buff1,
+ sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+ GET_CHUNK(dbg, elfsectno, data,
+ nbytes + sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &db, sizeof(db),
+ sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ /* leb, no endianness issue */
+ memcpy((void *) data, (const void *) buff1, nbytes);
+ data += nbytes + sizeof(Dwarf_Ubyte);
+ sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
+ prevline->dpl_address = curline->dpl_address;
+ }
+
+ /* first null byte */
+ db = 0;
+ GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
+ error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+
+ /* write length of extended opcode */
+ inst_bytes = sizeof(Dwarf_Ubyte);
+ res =
+ _dwarf_pro_encode_leb128_nm(inst_bytes, &str_nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+ GET_CHUNK(dbg, elfsectno, data, str_nbytes, error);
+ memcpy((void *) data, (const void *) buff1, str_nbytes);
+ data += str_nbytes;
+ sum_bytes += str_nbytes;
+
+ /* write extended opcode */
+ db = DW_LNE_end_sequence;
+ GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
+ error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+ /* reset value to original values */
+ _dwarf_pro_reg_init(prevline);
+ no_lns_copy = 1;
+ /* this is set only for end_sequence, so that a
+ dw_lns_copy is not generated */
+ break;
+
+ case DW_LNE_set_address:
+
+ /* first null byte */
+ db = 0;
+ GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
+ error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+
+ /* write length of extended opcode */
+ inst_bytes = sizeof(Dwarf_Ubyte) + upointer_size;
+ res =
+ _dwarf_pro_encode_leb128_nm(inst_bytes, &str_nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+ GET_CHUNK(dbg, elfsectno, data, str_nbytes, error);
+ str = buff1;
+ /* leb number, no endian issue */
+ memcpy((void *) data, (const void *) str, str_nbytes);
+ data += str_nbytes;
+ sum_bytes += str_nbytes;
+
+ /* write extended opcode */
+ db = DW_LNE_set_address;
+ GET_CHUNK(dbg, elfsectno, data, upointer_size +
+ sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+
+ /* reloc for address */
+ res = dbg->de_reloc_name(dbg, DEBUG_LINE,
+ sum_bytes, /* r_offset */
+ curline->dpl_r_symidx,
+ dwarf_drt_data_reloc,
+ uwordb_size);
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+
+ /* write offset (address) */
+ du = curline->dpl_address;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &du,
+ sizeof(du), upointer_size);
+ data += upointer_size;
+ sum_bytes += upointer_size;
+ prevline->dpl_address = curline->dpl_address;
+ no_lns_copy = 1;
+ break;
+ }
+ } else {
+ if (curline->dpl_file != prevline->dpl_file) {
+ db = DW_LNS_set_file;
+ res =
+ _dwarf_pro_encode_leb128_nm(curline->dpl_file,
+ &nbytes, buff1,
+ sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+ arg = buff1;
+ GET_CHUNK(dbg, elfsectno, data,
+ nbytes + sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ memcpy((void *) data, (const void *) arg, nbytes);
+ data += nbytes;
+ sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
+ prevline->dpl_file = curline->dpl_file;
+ }
+ if (curline->dpl_column != prevline->dpl_column) {
+ db = DW_LNS_set_column;
+ res = _dwarf_pro_encode_leb128_nm(curline->dpl_column,
+ &nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+
+ arg = buff1;
+ GET_CHUNK(dbg, elfsectno, data,
+ nbytes + sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ memcpy((void *) data, (const void *) arg, nbytes);
+ data += nbytes;
+ sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
+ prevline->dpl_column = curline->dpl_column;
+ }
+ if (curline->dpl_is_stmt != prevline->dpl_is_stmt) {
+ db = DW_LNS_negate_stmt;
+ GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
+ error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+ prevline->dpl_is_stmt = curline->dpl_is_stmt;
+ }
+ if (curline->dpl_basic_block == true &&
+ prevline->dpl_basic_block == false) {
+ db = DW_LNS_set_basic_block;
+ GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
+ error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+ prevline->dpl_basic_block = curline->dpl_basic_block;
+ }
+ addr_adv = curline->dpl_address - prevline->dpl_address;
+
+ line_adv = (int) (curline->dpl_line - prevline->dpl_line);
+ if ((addr_adv % MIN_INST_LENGTH) != 0) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_WRONG_ADDRESS, -1);
+ }
+ if ((opc = _dwarf_pro_get_opc(addr_adv, line_adv)) > 0) {
+ no_lns_copy = 1;
+ db = opc;
+ GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte),
+ error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+ prevline->dpl_basic_block = false;
+ prevline->dpl_address = curline->dpl_address;
+ prevline->dpl_line = curline->dpl_line;
+ } else {
+ if (addr_adv > 0) {
+ db = DW_LNS_advance_pc;
+ res =
+ _dwarf_pro_encode_leb128_nm(addr_adv /
+ MIN_INST_LENGTH,
+ &nbytes, buff1,
+ sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+
+ arg = buff1;
+ GET_CHUNK(dbg, elfsectno, data,
+ nbytes + sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ memcpy((void *) data, (const void *) arg, nbytes);
+ data += nbytes + sizeof(Dwarf_Ubyte);
+ sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
+ prevline->dpl_basic_block = false;
+ prevline->dpl_address = curline->dpl_address;
+ }
+ if (line_adv != 0) {
+ db = DW_LNS_advance_line;
+ res = _dwarf_pro_encode_signed_leb128_nm(line_adv,
+ &nbytes,
+ buff1,
+ sizeof
+ (buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+
+ arg = buff1;
+ GET_CHUNK(dbg, elfsectno, data,
+ nbytes + sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &db, sizeof(db),
+ sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ memcpy((void *) data, (const void *) arg, nbytes);
+ data += nbytes + sizeof(Dwarf_Ubyte);
+ sum_bytes += nbytes + sizeof(Dwarf_Ubyte);
+ prevline->dpl_basic_block = false;
+ prevline->dpl_line = curline->dpl_line;
+ }
+ }
+ } /* ends else for opc != 0 */
+ if (no_lns_copy == 0) { /* if not a special or dw_lne_end_seq
+ generate a matrix line */
+ db = DW_LNS_copy;
+ GET_CHUNK(dbg, elfsectno, data, sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ sum_bytes += sizeof(Dwarf_Ubyte);
+ prevline->dpl_basic_block = false;
+ }
+ curline = curline->dpl_next;
}
/* write total length field */
- du = sum_bytes - uwordb_size - extension_size; /* subtract
- length field
- */
+ du = sum_bytes - BEGIN_LEN_SIZE;
{
- start_line_sec += extension_size;
- WRITE_UNALIGNED(dbg, (void *) start_line_sec,
- (const void *) &du, sizeof(du), uwordb_size);
+ start_line_sec += extension_size;
+ WRITE_UNALIGNED(dbg, (void *) start_line_sec,
+ (const void *) &du, sizeof(du), uwordb_size);
}
return (int) dbg->de_n_debug_sect;
}
/*---------------------------------------------------------------
- Generate debug_frame section
+ Generate debug_frame section
---------------------------------------------------------------*/
static int
_dwarf_pro_generate_debugframe(Dwarf_P_Debug dbg, Dwarf_Error * error)
{
- int elfsectno;
- int i;
+ int elfsectno = 0;
+ int i = 0;
int firsttime = 1;
- int pad; /* pad for padding to align cies and
- fdes */
- Dwarf_P_Cie curcie;
- Dwarf_P_Fde curfde;
- unsigned char *data;
- Dwarf_sfixed dsw;
- Dwarf_Unsigned du;
- Dwarf_Ubyte db;
- long *cie_offs; /* holds byte offsets for links to
- fde's */
- unsigned long cie_length;
- int cie_no;
+ int pad = 0; /* Pad for padding to align cies and fdes */
+ Dwarf_P_Cie curcie = 0;
+ Dwarf_P_Fde curfde = 0;
+ unsigned char *data = 0;
+ Dwarf_sfixed dsw = 0;
+ Dwarf_Unsigned du = 0;
+ Dwarf_Ubyte db = 0;
+ long *cie_offs = 0; /* Holds byte offsets for links to fde's */
+ unsigned long cie_length = 0;
+ int cie_no = 0;
int uwordb_size = dbg->de_offset_size;
int extension_size = dbg->de_64bit_extension ? 4 : 0;
int upointer_size = dbg->de_pointer_size;
- Dwarf_Unsigned cur_off; /* current offset of written data,
- held for relocation info */
+ Dwarf_Unsigned cur_off = 0; /* current offset of written data, held
+ for relocation info */
elfsectno = dbg->de_elf_sects[DEBUG_FRAME];
@@ -905,457 +914,618 @@ _dwarf_pro_generate_debugframe(Dwarf_P_Debug dbg, Dwarf_Error * error)
cie_length = 0;
cur_off = 0;
cie_offs = (long *)
- _dwarf_p_get_alloc(dbg, sizeof(long) * dbg->de_n_cie);
+ _dwarf_p_get_alloc(dbg, sizeof(long) * dbg->de_n_cie);
if (cie_offs == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
}
- /* generate cie number as we go along */
+ /* Generate cie number as we go along. This writes
+ all CIEs first before any FDEs, which is rather
+ different from the order a compiler might like (which
+ might be each CIE followed by its FDEs then the next CIE, and
+ so on). */
cie_no = 1;
while (curcie) {
- char *code_al;
- int c_bytes;
- char *data_al;
- int d_bytes;
- int res;
- char buff1[ENCODE_SPACE_NEEDED];
- char buff2[ENCODE_SPACE_NEEDED];
- char buff3[ENCODE_SPACE_NEEDED];
- char *augmentation;
- char *augmented_al;
- long augmented_fields_length;
- int a_bytes;
-
- res = _dwarf_pro_encode_leb128_nm(curcie->cie_code_align,
- &c_bytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
- }
- /* Before April 1999, the following was using an unsigned
- encode. That worked ok even though the decoder used the
- correct signed leb read, but doing the encode correctly
- (according to the dwarf spec) saves space in the output file
- and is completely compatible.
-
- Note the actual stored amount on MIPS was 10 bytes (!) to
- store the value -4. (hex)fc ffffffff ffffffff 01 The
- libdwarf consumer consumed all 10 bytes too!
-
- old version res =
- _dwarf_pro_encode_leb128_nm(curcie->cie_data_align,
-
- below is corrected signed version. */
- res = _dwarf_pro_encode_signed_leb128_nm(curcie->cie_data_align,
- &d_bytes,
- buff2, sizeof(buff2));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
- }
- code_al = buff1;
- data_al = buff2;
-
- /* get the correct offset */
- if (firsttime) {
- cie_offs[cie_no - 1] = 0;
- firsttime = 0;
- } else {
- cie_offs[cie_no - 1] = cie_offs[cie_no - 2] +
- (long) cie_length + uwordb_size + extension_size;
- }
- cie_no++;
- augmentation = curcie->cie_aug;
- if (strcmp(augmentation, DW_CIE_AUGMENTER_STRING_V0) == 0) {
- augmented_fields_length = 0;
- res = _dwarf_pro_encode_leb128_nm(augmented_fields_length,
- &a_bytes, buff3,
- sizeof(buff3));
- augmented_al = buff3;
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
- }
- cie_length = uwordb_size + /* cie_id */
- sizeof(Dwarf_Ubyte) + /* cie version */
- strlen(curcie->cie_aug) + 1 + /* augmentation */
- c_bytes + /* code alignment factor */
- d_bytes + /* data alignment factor */
- sizeof(Dwarf_Ubyte) + /* return reg address */
- a_bytes + /* augmentation length */
- curcie->cie_inst_bytes;
- } else {
- cie_length = uwordb_size + /* cie_id */
- sizeof(Dwarf_Ubyte) + /* cie version */
- strlen(curcie->cie_aug) + 1 + /* augmentation */
- c_bytes + d_bytes + sizeof(Dwarf_Ubyte) + /* return
- reg
- address
- */
- curcie->cie_inst_bytes;
- }
- pad = (int) PADDING(cie_length, upointer_size);
- cie_length += pad;
- GET_CHUNK(dbg, elfsectno, data, cie_length + uwordb_size
- + extension_size, error);
- if (extension_size) {
- Dwarf_Unsigned x = DISTINGUISHED_VALUE;
-
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &x,
- sizeof(x), extension_size);
- data += extension_size;
-
- }
- du = cie_length;
- /* total length of cie */
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du, sizeof(du), uwordb_size);
- data += uwordb_size;
-
- /* cie-id is a special value. */
- du = DW_CIE_ID;
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &du,
- sizeof(du), uwordb_size);
- data += uwordb_size;
-
- db = curcie->cie_version;
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
- strcpy((char *) data, curcie->cie_aug);
- data += strlen(curcie->cie_aug) + 1;
- memcpy((void *) data, (const void *) code_al, c_bytes);
- data += c_bytes;
- memcpy((void *) data, (const void *) data_al, d_bytes);
- data += d_bytes;
- db = curcie->cie_ret_reg;
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
-
- if (strcmp(augmentation, DW_CIE_AUGMENTER_STRING_V0) == 0) {
- memcpy((void *) data, (const void *) augmented_al, a_bytes);
- data += a_bytes;
- }
- memcpy((void *) data, (const void *) curcie->cie_inst,
- curcie->cie_inst_bytes);
- data += curcie->cie_inst_bytes;
- for (i = 0; i < pad; i++) {
- *data = DW_CFA_nop;
- data++;
- }
- curcie = curcie->cie_next;
+ char *code_al = 0;
+ int c_bytes = 0;
+ char *data_al = 0;
+ int d_bytes = 0;
+ int res = 0;
+ char buff1[ENCODE_SPACE_NEEDED];
+ char buff2[ENCODE_SPACE_NEEDED];
+ char buff3[ENCODE_SPACE_NEEDED];
+ char *augmentation = 0;
+ char *augmented_al = 0;
+ long augmented_fields_length = 0;
+ int a_bytes = 0;
+
+ res = _dwarf_pro_encode_leb128_nm(curcie->cie_code_align,
+ &c_bytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
+ }
+ /* Before April 1999, the following was using an unsigned
+ encode. That worked ok even though the decoder used the
+ correct signed leb read, but doing the encode correctly
+ (according to the dwarf spec) saves space in the output file
+ and is completely compatible.
+
+ Note the actual stored amount on MIPS was 10 bytes (!) to
+ store the value -4. (hex)fc ffffffff ffffffff 01 The
+ libdwarf consumer consumed all 10 bytes too!
+
+ old version res =
+ _dwarf_pro_encode_leb128_nm(curcie->cie_data_align,
+
+ below is corrected signed version. */
+ res = _dwarf_pro_encode_signed_leb128_nm(curcie->cie_data_align,
+ &d_bytes,
+ buff2, sizeof(buff2));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
+ }
+ code_al = buff1;
+ data_al = buff2;
+
+ /* get the correct offset */
+ if (firsttime) {
+ cie_offs[cie_no - 1] = 0;
+ firsttime = 0;
+ } else {
+ cie_offs[cie_no - 1] = cie_offs[cie_no - 2] +
+ (long) cie_length + BEGIN_LEN_SIZE;
+ }
+ cie_no++;
+ augmentation = curcie->cie_aug;
+ if (strcmp(augmentation, DW_CIE_AUGMENTER_STRING_V0) == 0) {
+ augmented_fields_length = 0;
+ res = _dwarf_pro_encode_leb128_nm(augmented_fields_length,
+ &a_bytes, buff3,
+ sizeof(buff3));
+ augmented_al = buff3;
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
+ }
+ cie_length = uwordb_size + /* cie_id */
+ sizeof(Dwarf_Ubyte) + /* cie version */
+ strlen(curcie->cie_aug) + 1 + /* augmentation */
+ c_bytes + /* code alignment factor */
+ d_bytes + /* data alignment factor */
+ sizeof(Dwarf_Ubyte) + /* return reg address */
+ a_bytes + /* augmentation length */
+ curcie->cie_inst_bytes;
+ } else {
+ cie_length = uwordb_size + /* cie_id */
+ sizeof(Dwarf_Ubyte) + /* cie version */
+ strlen(curcie->cie_aug) + 1 + /* augmentation */
+ c_bytes + d_bytes + sizeof(Dwarf_Ubyte) + /* return
+ reg
+ address
+ */
+ curcie->cie_inst_bytes;
+ }
+ pad = (int) PADDING(cie_length, upointer_size);
+ cie_length += pad;
+ GET_CHUNK(dbg, elfsectno, data, cie_length +
+ BEGIN_LEN_SIZE, error);
+ if (extension_size) {
+ Dwarf_Unsigned x = DISTINGUISHED_VALUE;
+
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &x,
+ sizeof(x), extension_size);
+ data += extension_size;
+
+ }
+ du = cie_length;
+ /* total length of cie */
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du, sizeof(du), uwordb_size);
+ data += uwordb_size;
+
+ /* cie-id is a special value. */
+ du = DW_CIE_ID;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &du,
+ sizeof(du), uwordb_size);
+ data += uwordb_size;
+
+ db = curcie->cie_version;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+ strcpy((char *) data, curcie->cie_aug);
+ data += strlen(curcie->cie_aug) + 1;
+ memcpy((void *) data, (const void *) code_al, c_bytes);
+ data += c_bytes;
+ memcpy((void *) data, (const void *) data_al, d_bytes);
+ data += d_bytes;
+ db = curcie->cie_ret_reg;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
+
+ if (strcmp(augmentation, DW_CIE_AUGMENTER_STRING_V0) == 0) {
+ memcpy((void *) data, (const void *) augmented_al, a_bytes);
+ data += a_bytes;
+ }
+ memcpy((void *) data, (const void *) curcie->cie_inst,
+ curcie->cie_inst_bytes);
+ data += curcie->cie_inst_bytes;
+ for (i = 0; i < pad; i++) {
+ *data = DW_CFA_nop;
+ data++;
+ }
+ curcie = curcie->cie_next;
}
/* calculate current offset */
- cur_off = cie_offs[cie_no - 2] + cie_length + uwordb_size
- + extension_size;
+ cur_off = cie_offs[cie_no - 2] + cie_length + BEGIN_LEN_SIZE;
/* write out fde's */
curfde = dbg->de_frame_fdes;
while (curfde) {
- Dwarf_P_Frame_Pgm curinst;
- long fde_length;
- int pad;
- Dwarf_P_Cie cie_ptr;
- Dwarf_Word cie_index, index;
- int oet_length, afl_length, res;
- int v0_augmentation = 0;
-
+ Dwarf_P_Frame_Pgm curinst = 0;
+ long fde_length = 0;
+ int pad = 0;
+ Dwarf_P_Cie cie_ptr = 0;
+ Dwarf_Word cie_index = 0;
+ Dwarf_Word index = 0;
+ int oet_length = 0;
+ int afl_length = 0;
+ int res = 0;
+ int v0_augmentation = 0;
#if 0
- unsigned char *fde_start_point;
+ unsigned char *fde_start_point = 0;
#endif
-
- char afl_buff[ENCODE_SPACE_NEEDED];
-
- /* Find the CIE associated with this fde. */
- cie_ptr = dbg->de_frame_cies;
- cie_index = curfde->fde_cie;
- index = 1; /* The cie_index of the first cie is 1,
- not 0. */
- while (cie_ptr && index < cie_index) {
- cie_ptr = cie_ptr->cie_next;
- index++;
- }
- if (cie_ptr == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_NULL, -1);
- }
-
- if (strcmp(cie_ptr->cie_aug, DW_CIE_AUGMENTER_STRING_V0) == 0) {
- v0_augmentation = 1;
- oet_length = sizeof(Dwarf_sfixed);
- /* encode the length of augmented fields. */
- res = _dwarf_pro_encode_leb128_nm(oet_length,
- &afl_length, afl_buff,
- sizeof(afl_buff));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
- }
-
- fde_length = curfde->fde_n_bytes + uwordb_size + /* cie
- pointer
- */
- upointer_size + /* initial loc */
- upointer_size + /* address range */
- afl_length + /* augmented field length */
- oet_length; /* exception_table offset */
- } else {
- fde_length = curfde->fde_n_bytes + uwordb_size + /* cie
- pointer
- */
- upointer_size + /* initial loc */
- upointer_size; /* address range */
- }
-
- /* using fde offset, generate DW_AT_MIPS_fde attribute for the
- die corresponding to this fde */
- if (_dwarf_pro_add_AT_fde(dbg, curfde->fde_die, cur_off, error)
- < 0)
- return -1;
-
- /* store relocation for cie pointer */
- res = dbg->de_reloc_name(dbg, DEBUG_FRAME, cur_off + uwordb_size, /* r_offset
- */
- dbg->de_sect_name_idx[DEBUG_FRAME],
- dwarf_drt_data_reloc, uwordb_size);
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
-
- /* store relocation information for initial location */
- res = dbg->de_reloc_name(dbg, DEBUG_FRAME, cur_off + uwordb_size + upointer_size, /* r_offset
- */
- curfde->fde_r_symidx,
- dwarf_drt_data_reloc, upointer_size);
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
- /* Store the relocation information for the
- offset_into_exception_info field, if the offset is valid (0
- is a valid offset). */
- if (v0_augmentation &&
- curfde->fde_offset_into_exception_tables >= 0) {
-
- res = dbg->de_reloc_name(dbg, DEBUG_FRAME,
- /* r_offset, where in cie this
- field starts */
- cur_off + 2 * uwordb_size +
- 2 * upointer_size + afl_length,
- curfde->fde_exception_table_symbol,
- dwarf_drt_segment_rel,
- sizeof(Dwarf_sfixed));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
- }
- }
-
- /* adjust for padding */
- pad = (int) PADDING(fde_length, upointer_size);
- fde_length += pad;
-
-
- /* write out fde */
- GET_CHUNK(dbg, elfsectno, data, fde_length + uwordb_size +
- extension_size, error);
+ char afl_buff[ENCODE_SPACE_NEEDED];
+
+ /* Find the CIE associated with this fde. */
+ cie_ptr = dbg->de_frame_cies;
+ cie_index = curfde->fde_cie;
+ index = 1; /* The cie_index of the first cie is 1,
+ not 0. */
+ while (cie_ptr && index < cie_index) {
+ cie_ptr = cie_ptr->cie_next;
+ index++;
+ }
+ if (cie_ptr == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_NULL, -1);
+ }
+
+ if (strcmp(cie_ptr->cie_aug, DW_CIE_AUGMENTER_STRING_V0) == 0) {
+ v0_augmentation = 1;
+ oet_length = sizeof(Dwarf_sfixed);
+ /* encode the length of augmented fields. */
+ res = _dwarf_pro_encode_leb128_nm(oet_length,
+ &afl_length, afl_buff,
+ sizeof(afl_buff));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CIE_OFFS_ALLOC, -1);
+ }
+
+ fde_length = curfde->fde_n_bytes + BEGIN_LEN_SIZE + /* cie
+ pointer
+ */
+ upointer_size + /* initial loc */
+ upointer_size + /* address range */
+ afl_length + /* augmented field length */
+ oet_length; /* exception_table offset */
+ } else {
+ fde_length = curfde->fde_n_bytes + BEGIN_LEN_SIZE + /* cie
+ pointer
+ */
+ upointer_size + /* initial loc */
+ upointer_size; /* address range */
+ }
+
+
+ if (curfde->fde_die) {
+ /* IRIX/MIPS extension:
+ Using fde offset, generate DW_AT_MIPS_fde attribute for the
+ die corresponding to this fde. */
+ if(_dwarf_pro_add_AT_fde(dbg, curfde->fde_die, cur_off,
+ error) < 0) {
+ return -1;
+ }
+ }
+
+ /* store relocation for cie pointer */
+ res = dbg->de_reloc_name(dbg, DEBUG_FRAME, cur_off +
+ BEGIN_LEN_SIZE /* r_offset */,
+ dbg->de_sect_name_idx[DEBUG_FRAME],
+ dwarf_drt_data_reloc, uwordb_size);
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+
+ /* store relocation information for initial location */
+ res = dbg->de_reloc_name(dbg, DEBUG_FRAME,
+ cur_off + BEGIN_LEN_SIZE +
+ upointer_size /* r_offset */,
+ curfde->fde_r_symidx,
+ dwarf_drt_data_reloc, upointer_size);
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+ /* Store the relocation information for the
+ offset_into_exception_info field, if the offset is valid (0
+ is a valid offset). */
+ if (v0_augmentation &&
+ curfde->fde_offset_into_exception_tables >= 0) {
+
+ res = dbg->de_reloc_name(dbg, DEBUG_FRAME,
+ /* r_offset, where in cie this
+ field starts */
+ cur_off + BEGIN_LEN_SIZE +
+ uwordb_size + 2 * upointer_size +
+ afl_length,
+ curfde->fde_exception_table_symbol,
+ dwarf_drt_segment_rel,
+ sizeof(Dwarf_sfixed));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_CHUNK_ALLOC, -1);
+ }
+ }
+
+ /* adjust for padding */
+ pad = (int) PADDING(fde_length, upointer_size);
+ fde_length += pad;
+
+
+ /* write out fde */
+ GET_CHUNK(dbg, elfsectno, data, fde_length + BEGIN_LEN_SIZE,
+ error);
#if 0
- fde_start_point = data;
+ fde_start_point = data;
#endif
- du = fde_length;
- {
- if (extension_size) {
- Dwarf_Word x = DISTINGUISHED_VALUE;
-
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &x,
- sizeof(x), extension_size);
- data += extension_size;
- }
- /* length */
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du,
- sizeof(du), uwordb_size);
- data += uwordb_size;
-
- /* offset to cie */
- du = cie_offs[curfde->fde_cie - 1];
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du,
- sizeof(du), uwordb_size);
- data += uwordb_size;
-
- du = curfde->fde_initloc;
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du,
- sizeof(du), upointer_size);
- data += upointer_size;
-
- if (dbg->de_reloc_pair &&
- curfde->fde_end_symbol != 0 &&
- curfde->fde_addr_range == 0) {
- /* symbolic reloc, need reloc for length What if we
- really know the length? If so, should use the other
- part of 'if'. */
- Dwarf_Unsigned val;
-
- res = dbg->de_reloc_pair(dbg,
- /* DEBUG_ARANGES, */
- DEBUG_FRAME, cur_off + 2 * uwordb_size + upointer_size, /* r_offset
- */
- curfde->fde_r_symidx,
- curfde->fde_end_symbol,
- dwarf_drt_first_of_length_pair,
- upointer_size);
- if (res != DW_DLV_OK) {
- {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
- }
- }
-
- /* arrange pre-calc so assem text can do .word end -
- begin + val (gets val from stream) */
- val = curfde->fde_end_symbol_offset -
- curfde->fde_initloc;
- WRITE_UNALIGNED(dbg, data,
- (const void *) &val,
- sizeof(val), upointer_size);
- data += upointer_size;
- } else {
-
- du = curfde->fde_addr_range;
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du,
- sizeof(du), upointer_size);
- data += upointer_size;
- }
- }
-
- if (v0_augmentation) {
- /* write the encoded augmented field length. */
- memcpy((void *) data, (const void *) afl_buff, afl_length);
- data += afl_length;
- /* write the offset_into_exception_tables field. */
- dsw =
- (Dwarf_sfixed) curfde->fde_offset_into_exception_tables;
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &dsw,
- sizeof(dsw), sizeof(Dwarf_sfixed));
- data += sizeof(Dwarf_sfixed);
- }
-
- curinst = curfde->fde_inst;
- while (curinst) {
- db = curinst->dfp_opcode;
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- data += sizeof(Dwarf_Ubyte);
+ du = fde_length;
+ {
+ if (extension_size) {
+ Dwarf_Word x = DISTINGUISHED_VALUE;
+
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &x,
+ sizeof(x), extension_size);
+ data += extension_size;
+ }
+ /* length */
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du,
+ sizeof(du), uwordb_size);
+ data += uwordb_size;
+
+ /* offset to cie */
+ du = cie_offs[curfde->fde_cie - 1];
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du,
+ sizeof(du), uwordb_size);
+ data += uwordb_size;
+
+ du = curfde->fde_initloc;
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du,
+ sizeof(du), upointer_size);
+ data += upointer_size;
+
+ if (dbg->de_reloc_pair &&
+ curfde->fde_end_symbol != 0 &&
+ curfde->fde_addr_range == 0) {
+ /* symbolic reloc, need reloc for length What if we
+ really know the length? If so, should use the other
+ part of 'if'. */
+ Dwarf_Unsigned val;
+
+ res = dbg->de_reloc_pair(dbg,
+ /* DEBUG_ARANGES, */
+ DEBUG_FRAME, cur_off + 2 * uwordb_size + upointer_size, /* r_offset
+ */
+ curfde->fde_r_symidx,
+ curfde->fde_end_symbol,
+ dwarf_drt_first_of_length_pair,
+ upointer_size);
+ if (res != DW_DLV_OK) {
+ {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
+ }
+ }
+
+ /* arrange pre-calc so assem text can do .word end -
+ begin + val (gets val from stream) */
+ val = curfde->fde_end_symbol_offset -
+ curfde->fde_initloc;
+ WRITE_UNALIGNED(dbg, data,
+ (const void *) &val,
+ sizeof(val), upointer_size);
+ data += upointer_size;
+ } else {
+
+ du = curfde->fde_addr_range;
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du,
+ sizeof(du), upointer_size);
+ data += upointer_size;
+ }
+ }
+
+ if (v0_augmentation) {
+ /* write the encoded augmented field length. */
+ memcpy((void *) data, (const void *) afl_buff, afl_length);
+ data += afl_length;
+ /* write the offset_into_exception_tables field. */
+ dsw =
+ (Dwarf_sfixed) curfde->fde_offset_into_exception_tables;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &dsw,
+ sizeof(dsw), sizeof(Dwarf_sfixed));
+ data += sizeof(Dwarf_sfixed);
+ }
+
+ curinst = curfde->fde_inst;
+ if(curfde->fde_block) {
+ unsigned long size = curfde->fde_inst_block_size;
+ memcpy((void *) data, (const void *) curfde->fde_block, size);
+ data += size;
+ } else {
+ while (curinst) {
+ db = curinst->dfp_opcode;
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ data += sizeof(Dwarf_Ubyte);
#if 0
- if (curinst->dfp_sym_index) {
- int res;
-
- res = dbg->de_reloc_name(dbg,
- DEBUG_FRAME,
- (data - fde_start_point)
- + cur_off + uwordb_size, /* r_offset
- */
- curinst->dfp_sym_index,
- dwarf_drt_data_reloc,
- upointer_size);
- if (res != DW_DLV_OK) {
- {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
- }
- }
- }
+ if (curinst->dfp_sym_index) {
+ int res = dbg->de_reloc_name(dbg,
+ DEBUG_FRAME,
+ /* r_offset = */
+ (data - fde_start_point) + cur_off + uwordb_size,
+ curinst->dfp_sym_index,
+ dwarf_drt_data_reloc,
+ upointer_size);
+ if (res != DW_DLV_OK) {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
+ }
+ }
#endif
- memcpy((void *) data,
- (const void *) curinst->dfp_args,
- curinst->dfp_nbytes);
- data += curinst->dfp_nbytes;
- curinst = curinst->dfp_next;
- }
- /* padding */
- for (i = 0; i < pad; i++) {
- *data = DW_CFA_nop;
- data++;
- }
- cur_off += fde_length + uwordb_size;
- curfde = curfde->fde_next;
+ memcpy((void *) data,
+ (const void *) curinst->dfp_args,
+ curinst->dfp_nbytes);
+ data += curinst->dfp_nbytes;
+ curinst = curinst->dfp_next;
+ }
+ }
+ /* padding */
+ for (i = 0; i < pad; i++) {
+ *data = DW_CFA_nop;
+ data++;
+ }
+ cur_off += fde_length + uwordb_size;
+ curfde = curfde->fde_next;
}
return (int) dbg->de_n_debug_sect;
}
+/*
+ These functions remember all the markers we see along
+ with the right offset in the .debug_info section so that
+ we can dump them all back to the user with the section info.
+*/
+
+static int
+marker_init(Dwarf_P_Debug dbg,
+ unsigned count)
+{
+ dbg->de_marker_n_alloc = count;
+ dbg->de_markers = NULL;
+ if (count > 0) {
+ dbg->de_markers = _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Marker_s) *
+ dbg->de_marker_n_alloc);
+ if (dbg->de_markers == NULL) {
+ dbg->de_marker_n_alloc = 0;
+ return -1;
+ }
+ }
+ return 0;
+}
+
+static int
+marker_add(Dwarf_P_Debug dbg,
+ Dwarf_Unsigned offset,
+ Dwarf_Unsigned marker)
+{
+ if (dbg->de_marker_n_alloc >= (dbg->de_marker_n_used + 1)) {
+ unsigned n = dbg->de_marker_n_used++;
+ dbg->de_markers[n].ma_offset = offset;
+ dbg->de_markers[n].ma_marker = marker;
+ return 0;
+ }
+
+ return -1;
+}
+
+Dwarf_Signed
+dwarf_get_die_markers(Dwarf_P_Debug dbg,
+ Dwarf_P_Marker * marker_list, /* pointer to a pointer */
+ Dwarf_Unsigned * marker_count,
+ Dwarf_Error * error)
+{
+ if (marker_list == NULL || marker_count == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_IA, DW_DLV_BADADDR);
+ }
+ if (dbg->de_marker_n_used != dbg->de_marker_n_alloc) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_MAF, DW_DLV_BADADDR);
+ }
+
+ *marker_list = dbg->de_markers;
+ *marker_count = dbg->de_marker_n_used;
+ return DW_DLV_OK;
+}
+
+/* These functions provide the offsets of DW_FORM_string
+ attributes in the section section_index. These information
+ will enable a producer app that is generating assembly
+ text output to easily emit those attributes in ascii form
+ without having to decode the byte stream.
+ */
+static int
+string_attr_init (Dwarf_P_Debug dbg,
+ Dwarf_Signed section_index,
+ unsigned count)
+{
+ Dwarf_P_Per_Sect_String_Attrs sect_sa = &dbg->de_sect_string_attr[section_index];
+
+ sect_sa->sect_sa_n_alloc = count;
+ sect_sa->sect_sa_list = NULL;
+ if (count > 0) {
+ sect_sa->sect_sa_section_number = section_index;
+ sect_sa->sect_sa_list = _dwarf_p_get_alloc(dbg,
+ sizeof(struct Dwarf_P_String_Attr_s)
+ * sect_sa->sect_sa_n_alloc);
+ if (sect_sa->sect_sa_list == NULL) {
+ sect_sa->sect_sa_n_alloc = 0;
+ return -1;
+ }
+ }
+ return 0;
+}
+
+static int
+string_attr_add (Dwarf_P_Debug dbg,
+ Dwarf_Signed section_index,
+ Dwarf_Unsigned offset,
+ Dwarf_P_Attribute attr)
+{
+ Dwarf_P_Per_Sect_String_Attrs sect_sa = &dbg->de_sect_string_attr[section_index];
+ if (sect_sa->sect_sa_n_alloc >= (sect_sa->sect_sa_n_used + 1)) {
+ unsigned n = sect_sa->sect_sa_n_used++;
+ sect_sa->sect_sa_list[n].sa_offset = offset;
+ sect_sa->sect_sa_list[n].sa_nbytes = attr->ar_nbytes;
+ return 0;
+ }
+
+ return -1;
+}
+
+int
+dwarf_get_string_attributes_count(Dwarf_P_Debug dbg,
+ Dwarf_Unsigned *
+ count_of_sa_sections,
+ int *drd_buffer_version,
+ Dwarf_Error *error)
+{
+ int i;
+ unsigned int count = 0;
+
+ for (i = 0; i < NUM_DEBUG_SECTIONS; ++i) {
+ if (dbg->de_sect_string_attr[i].sect_sa_n_used > 0) {
+ ++count;
+ }
+ }
+ *count_of_sa_sections = (Dwarf_Unsigned) count;
+ *drd_buffer_version = DWARF_DRD_BUFFER_VERSION;
+
+ return DW_DLV_OK;
+}
+
+int
+dwarf_get_string_attributes_info(Dwarf_P_Debug dbg,
+ Dwarf_Signed *elf_section_index,
+ Dwarf_Unsigned *sect_sa_buffer_count,
+ Dwarf_P_String_Attr *sect_sa_buffer,
+ Dwarf_Error *error)
+{
+ int i;
+ int next = dbg->de_sect_sa_next_to_return;
+
+ for (i = next; i < NUM_DEBUG_SECTIONS; ++i) {
+ Dwarf_P_Per_Sect_String_Attrs sect_sa = &dbg->de_sect_string_attr[i];
+ if (sect_sa->sect_sa_n_used > 0) {
+ dbg->de_sect_sa_next_to_return = i + 1;
+ *elf_section_index = sect_sa->sect_sa_section_number;
+ *sect_sa_buffer_count = sect_sa->sect_sa_n_used;
+ *sect_sa_buffer = sect_sa->sect_sa_list;
+ return DW_DLV_OK;
+ }
+ }
+ return DW_DLV_NO_ENTRY;
+}
+
/*---------------------------------------------------------------
- Generate debug_info and debug_abbrev sections
+ Generate debug_info and debug_abbrev sections
---------------------------------------------------------------*/
static int
_dwarf_pro_generate_debuginfo(Dwarf_P_Debug dbg, Dwarf_Error * error)
{
- int elfsectno_of_debug_info;
- int abbrevsectno;
- unsigned char *data;
- int cu_header_size;
- Dwarf_P_Abbrev curabbrev, abbrev_head, abbrev_tail;
- Dwarf_P_Die curdie;
- Dwarf_P_Die first_child;
- Dwarf_Word dw;
- Dwarf_Unsigned du;
- Dwarf_Half dh;
- Dwarf_Ubyte db;
- Dwarf_Half version; /* need 2 byte quantity */
- Dwarf_Unsigned die_off; /* offset of die in debug_info */
- int n_abbrevs;
- int res;
-
- Dwarf_Small *start_info_sec;
-
- int uword_size = dbg->de_offset_size;
+ int elfsectno_of_debug_info = 0;
+ int abbrevsectno = 0;
+ unsigned char *data = 0;
+ int cu_header_size = 0;
+ Dwarf_P_Abbrev curabbrev = 0;
+ Dwarf_P_Abbrev abbrev_head = 0;
+ Dwarf_P_Abbrev abbrev_tail = 0;
+ Dwarf_P_Die curdie = 0;
+ Dwarf_P_Die first_child = 0;
+ Dwarf_Word dw = 0;
+ Dwarf_Unsigned du = 0;
+ Dwarf_Half dh = 0;
+ Dwarf_Ubyte db = 0;
+ Dwarf_Half version = 0; /* Need 2 byte quantity. */
+ Dwarf_Unsigned die_off = 0; /* Offset of die in debug_info. */
+ int n_abbrevs = 0;
+ int res = 0;
+ unsigned marker_count = 0;
+ unsigned string_attr_count = 0;
+ unsigned string_attr_offset = 0;
+
+ Dwarf_Small *start_info_sec = 0;
+
+ int uwordb_size = dbg->de_offset_size;
int extension_size = dbg->de_64bit_extension ? 4 : 0;
abbrev_head = abbrev_tail = NULL;
elfsectno_of_debug_info = dbg->de_elf_sects[DEBUG_INFO];
/* write cu header */
- cu_header_size = extension_size + uword_size + /* length of
- info section
- */
- sizeof(Dwarf_Half) + /* version stamp */
- uword_size + /* offset into abbrev table */
- sizeof(Dwarf_Ubyte); /* size of target address */
+ cu_header_size = BEGIN_LEN_SIZE + sizeof(Dwarf_Half) + /* version
+ stamp
+ */
+ uwordb_size + /* offset into abbrev table */
+ sizeof(Dwarf_Ubyte); /* size of target address */
GET_CHUNK(dbg, elfsectno_of_debug_info, data, cu_header_size,
- error);
+ error);
start_info_sec = data;
if (extension_size) {
- du = DISTINGUISHED_VALUE;
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du, sizeof(du), extension_size);
- data += extension_size;
+ du = DISTINGUISHED_VALUE;
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du, sizeof(du), extension_size);
+ data += extension_size;
}
- du = 0; /* length of debug_info, not counting
- this field itself (unknown at this
- point). */
+ du = 0; /* length of debug_info, not counting
+ this field itself (unknown at this
+ point). */
WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du, sizeof(du), uword_size);
- data += uword_size;
+ (const void *) &du, sizeof(du), uwordb_size);
+ data += uwordb_size;
- version = CURRENT_VERSION_STAMP; /* assume this length will not
- change */
+ version = CURRENT_VERSION_STAMP; /* assume this length will not
+ change */
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &version,
- sizeof(version), sizeof(Dwarf_Half));
+ sizeof(version), sizeof(Dwarf_Half));
data += sizeof(Dwarf_Half);
- du = 0; /* offset into abbrev table, not yet
- known. */
+ du = 0; /* offset into abbrev table, not yet
+ known. */
WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du, sizeof(du), uword_size);
- data += uword_size;
+ (const void *) &du, sizeof(du), uwordb_size);
+ data += uwordb_size;
db = dbg->de_pointer_size;
WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), 1);
+ sizeof(db), 1);
/* We have filled the chunk we got with GET_CHUNK. At this point we
no longer dare use "data" or "start_info_sec" as a pointer any
@@ -1366,350 +1536,442 @@ _dwarf_pro_generate_debuginfo(Dwarf_P_Debug dbg, Dwarf_Error * error)
/* create AT_macro_info if appropriate */
if (dbg->de_first_macinfo != NULL) {
- if (_dwarf_pro_add_AT_macro_info(dbg, curdie, 0, error) < 0)
- return -1;
+ if (_dwarf_pro_add_AT_macro_info(dbg, curdie, 0, error) < 0)
+ return -1;
}
/* create AT_stmt_list attribute if necessary */
if (dwarf_need_debug_line_section(dbg) == TRUE)
- if (_dwarf_pro_add_AT_stmt_list(dbg, curdie, error) < 0)
- return -1;
+ if (_dwarf_pro_add_AT_stmt_list(dbg, curdie, error) < 0)
+ return -1;
die_off = cu_header_size;
/*
Relocation for abbrev offset in cu header store relocation
record in linked list */
- res = dbg->de_reloc_name(dbg, DEBUG_INFO, extension_size + uword_size + sizeof(Dwarf_Half), /* r_offset
- */
- dbg->de_sect_name_idx[DEBUG_ABBREV],
- dwarf_drt_data_reloc, uword_size);
+ res = dbg->de_reloc_name(dbg, DEBUG_INFO, BEGIN_LEN_SIZE +
+ sizeof(Dwarf_Half),
+ /* r_offset */
+ dbg->de_sect_name_idx[DEBUG_ABBREV],
+ dwarf_drt_data_reloc, uwordb_size);
if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, -1);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, -1);
}
/* pass 0: only top level dies, add at_sibling attribute to those
dies with children */
first_child = curdie->di_child;
while (first_child && first_child->di_right) {
- if (first_child->di_child)
- dwarf_add_AT_reference(dbg,
- first_child,
- DW_AT_sibling,
- first_child->di_right, error);
- first_child = first_child->di_right;
+ if (first_child->di_child)
+ dwarf_add_AT_reference(dbg,
+ first_child,
+ DW_AT_sibling,
+ first_child->di_right, error);
+ first_child = first_child->di_right;
}
/* pass 1: create abbrev info, get die offsets, calc relocations */
+ marker_count = 0;
+ string_attr_count = 0;
while (curdie != NULL) {
- int nbytes;
- Dwarf_P_Attribute curattr;
- char *space;
- int res;
- char buff1[ENCODE_SPACE_NEEDED];
-
- curdie->di_offset = die_off;
- curabbrev = _dwarf_pro_getabbrev(curdie, abbrev_head);
- if (curabbrev == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
- if (abbrev_head == NULL) {
- n_abbrevs = 1;
- curabbrev->abb_idx = n_abbrevs;
- abbrev_tail = abbrev_head = curabbrev;
- } else {
- /* check if its a new abbreviation, if yes, add to tail */
- if (curabbrev->abb_idx == 0) {
- n_abbrevs++;
- curabbrev->abb_idx = n_abbrevs;
- abbrev_tail->abb_next = curabbrev;
- abbrev_tail = curabbrev;
- }
- }
- res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_idx,
- &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
- space = _dwarf_p_get_alloc(dbg, nbytes);
- if (space == NULL) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
- memcpy(space, buff1, nbytes);
- curdie->di_abbrev = space;
- curdie->di_abbrev_nbytes = nbytes;
- die_off += nbytes;
- curattr = curdie->di_attrs;
- while (curattr) {
- if (curattr->ar_rel_type != R_MIPS_NONE) {
- switch (curattr->ar_attribute) {
- case DW_AT_stmt_list:
- curattr->ar_rel_symidx =
- dbg->de_sect_name_idx[DEBUG_LINE];
- break;
- case DW_AT_MIPS_fde:
- curattr->ar_rel_symidx =
- dbg->de_sect_name_idx[DEBUG_FRAME];
- break;
- case DW_AT_macro_info:
- curattr->ar_rel_symidx =
- dbg->de_sect_name_idx[DEBUG_MACINFO];
- break;
- default:
- break;
- }
- res = dbg->de_reloc_name(dbg, DEBUG_INFO, die_off + curattr->ar_rel_offset, /* r_offset
- */
- curattr->ar_rel_symidx,
- dwarf_drt_data_reloc,
- curattr->ar_reloc_len);
-
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, -1);
- }
-
- }
- die_off += curattr->ar_nbytes;
- curattr = curattr->ar_next;
- }
- /* depth first search */
- if (curdie->di_child)
- curdie = curdie->di_child;
- else {
- while (curdie != NULL && curdie->di_right == NULL) {
- curdie = curdie->di_parent;
- die_off++; /* since we are writing a null die at
- the end of each sibling chain */
- }
- if (curdie != NULL)
- curdie = curdie->di_right;
- }
+ int nbytes = 0;
+ Dwarf_P_Attribute curattr;
+ Dwarf_P_Attribute new_first_attr;
+ Dwarf_P_Attribute new_last_attr;
+ char *space = 0;
+ int res = 0;
+ char buff1[ENCODE_SPACE_NEEDED];
+ int i = 0;
+
+ curdie->di_offset = die_off;
+
+ if (curdie->di_marker != 0)
+ marker_count++;
+
+ curabbrev = _dwarf_pro_getabbrev(curdie, abbrev_head);
+ if (curabbrev == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+ if (abbrev_head == NULL) {
+ n_abbrevs = 1;
+ curabbrev->abb_idx = n_abbrevs;
+ abbrev_tail = abbrev_head = curabbrev;
+ } else {
+ /* check if its a new abbreviation, if yes, add to tail */
+ if (curabbrev->abb_idx == 0) {
+ n_abbrevs++;
+ curabbrev->abb_idx = n_abbrevs;
+ abbrev_tail->abb_next = curabbrev;
+ abbrev_tail = curabbrev;
+ }
+ }
+ res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_idx,
+ &nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+ space = _dwarf_p_get_alloc(dbg, nbytes);
+ if (space == NULL) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+ memcpy(space, buff1, nbytes);
+ curdie->di_abbrev = space;
+ curdie->di_abbrev_nbytes = nbytes;
+ die_off += nbytes;
+
+ /* Resorting the attributes!! */
+ new_first_attr = new_last_attr = NULL;
+ curattr = curdie->di_attrs;
+ for (i = 0; i < (int)curabbrev->abb_n_attr; i++) {
+ Dwarf_P_Attribute ca;
+ Dwarf_P_Attribute cl;
+
+ /* The following should always find an attribute! */
+ for (ca = cl = curattr;
+ ca && curabbrev->abb_attrs[i] != ca->ar_attribute;
+ cl = ca, ca = ca->ar_next)
+ {
+ }
+
+ if (!ca) {
+ DWARF_P_DBG_ERROR(dbg,DW_DLE_ABBREV_ALLOC, -1);
+ }
+
+ /* Remove the attribute from the old list. */
+ if (ca == curattr) {
+ curattr = ca->ar_next;
+ } else {
+ cl->ar_next = ca->ar_next;
+ }
+
+ ca->ar_next = NULL;
+
+ /* Add the attribute to the new list. */
+ if (new_first_attr == NULL) {
+ new_first_attr = new_last_attr = ca;
+ } else {
+ new_last_attr->ar_next = ca;
+ new_last_attr = ca;
+ }
+ }
+
+ curdie->di_attrs = new_first_attr;
+
+ curattr = curdie->di_attrs;
+
+ while (curattr) {
+ if (curattr->ar_rel_type != R_MIPS_NONE) {
+ switch (curattr->ar_attribute) {
+ case DW_AT_stmt_list:
+ curattr->ar_rel_symidx =
+ dbg->de_sect_name_idx[DEBUG_LINE];
+ break;
+ case DW_AT_MIPS_fde:
+ curattr->ar_rel_symidx =
+ dbg->de_sect_name_idx[DEBUG_FRAME];
+ break;
+ case DW_AT_macro_info:
+ curattr->ar_rel_symidx =
+ dbg->de_sect_name_idx[DEBUG_MACINFO];
+ break;
+ default:
+ break;
+ }
+ res = dbg->de_reloc_name(dbg, DEBUG_INFO, die_off + curattr->ar_rel_offset, /* r_offset
+ */
+ curattr->ar_rel_symidx,
+ dwarf_drt_data_reloc,
+ curattr->ar_reloc_len);
+
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, -1);
+ }
+
+ }
+ if (curattr->ar_attribute_form == DW_FORM_string) {
+ string_attr_count++;
+ }
+ die_off += curattr->ar_nbytes;
+ curattr = curattr->ar_next;
+ }
+
+ /* depth first search */
+ if (curdie->di_child)
+ curdie = curdie->di_child;
+ else {
+ while (curdie != NULL && curdie->di_right == NULL) {
+ curdie = curdie->di_parent;
+ die_off++; /* since we are writing a null die at
+ the end of each sibling chain */
+ }
+ if (curdie != NULL)
+ curdie = curdie->di_right;
+ }
+
+ } /* end while (curdie != NULL) */
+
+ res = marker_init(dbg, marker_count);
+ if (res == -1) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, -1);
}
-
+ res = string_attr_init(dbg, DEBUG_INFO, string_attr_count);
+ if (res == -1) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, -1);
+ }
+
/* Pass 2: Write out the die information Here 'data' is a
temporary, one block for each GET_CHUNK. 'data' is overused. */
curdie = dbg->de_dies;
while (curdie != NULL) {
- Dwarf_P_Attribute curattr;
-
- /* index to abbreviation table */
- GET_CHUNK(dbg, elfsectno_of_debug_info,
- data, curdie->di_abbrev_nbytes, error);
-
- memcpy((void *) data,
- (const void *) curdie->di_abbrev,
- curdie->di_abbrev_nbytes);
-
- /* Attribute values - need to fill in all form attributes */
- curattr = curdie->di_attrs;
- while (curattr) {
- GET_CHUNK(dbg, elfsectno_of_debug_info, data,
- (unsigned long) curattr->ar_nbytes, error);
- switch (curattr->ar_attribute_form) {
- case DW_FORM_ref1:
- {
- if (curattr->ar_ref_die->di_offset >
- (unsigned) 0xff) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_OFFSET_UFLW, -1);
- }
- db = curattr->ar_ref_die->di_offset;
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
- break;
- }
- case DW_FORM_ref2:
- {
- if (curattr->ar_ref_die->di_offset >
- (unsigned) 0xffff) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_OFFSET_UFLW, -1);
- }
- dh = curattr->ar_ref_die->di_offset;
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &dh,
- sizeof(dh), sizeof(Dwarf_Half));
- break;
- }
- case DW_FORM_ref_addr:
- {
- du = curattr->ar_ref_die->di_offset;
- {
- /* ref to offset of die */
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du,
- sizeof(du), uword_size);
- }
- break;
-
- }
- case DW_FORM_ref4:
- {
- if (curattr->ar_ref_die->di_offset >
- (unsigned) 0xffffffff) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_OFFSET_UFLW, -1);
- }
- dw = (Dwarf_Word) curattr->ar_ref_die->di_offset;
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &dw,
- sizeof(dw), sizeof(Dwarf_ufixed));
- break;
- }
- case DW_FORM_ref8:
- du = curattr->ar_ref_die->di_offset;
- WRITE_UNALIGNED(dbg, (void *) data,
- (const void *) &du,
- sizeof(du), sizeof(Dwarf_Unsigned));
- break;
- case DW_FORM_ref_udata:
- { /* unsigned leb128 offset */
-
- int nbytes;
- char buff1[ENCODE_SPACE_NEEDED];
-
- res =
- _dwarf_pro_encode_leb128_nm(curattr->
- ar_ref_die->
- di_offset, &nbytes,
- buff1,
- sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
-
- memcpy(data, buff1, nbytes);
- break;
- }
- default:
- memcpy((void *) data,
- (const void *) curattr->ar_data,
- curattr->ar_nbytes);
- break;
- }
- curattr = curattr->ar_next;
- }
-
- /* depth first search */
- if (curdie->di_child)
- curdie = curdie->di_child;
- else {
- while (curdie != NULL && curdie->di_right == NULL) {
- GET_CHUNK(dbg, elfsectno_of_debug_info, data, 1, error);
- *data = '\0';
- curdie = curdie->di_parent;
- }
- if (curdie != NULL)
- curdie = curdie->di_right;
- }
- }
+ Dwarf_P_Attribute curattr;
+
+ if (curdie->di_marker != 0) {
+ res = marker_add(dbg, curdie->di_offset, curdie->di_marker);
+ if (res == -1) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_REL_ALLOC, -1);
+ }
+ }
+
+ /* index to abbreviation table */
+ GET_CHUNK(dbg, elfsectno_of_debug_info,
+ data, curdie->di_abbrev_nbytes, error);
+
+ memcpy((void *) data,
+ (const void *) curdie->di_abbrev,
+ curdie->di_abbrev_nbytes);
+
+ /* Attribute values - need to fill in all form attributes */
+ curattr = curdie->di_attrs;
+ string_attr_offset = curdie->di_offset + curdie->di_abbrev_nbytes;
+
+ while (curattr) {
+ GET_CHUNK(dbg, elfsectno_of_debug_info, data,
+ (unsigned long) curattr->ar_nbytes, error);
+ switch (curattr->ar_attribute_form) {
+ case DW_FORM_ref1:
+ {
+ if (curattr->ar_ref_die->di_offset >
+ (unsigned) 0xff) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_OFFSET_UFLW, -1);
+ }
+ db = curattr->ar_ref_die->di_offset;
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+ break;
+ }
+ case DW_FORM_ref2:
+ {
+ if (curattr->ar_ref_die->di_offset >
+ (unsigned) 0xffff) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_OFFSET_UFLW, -1);
+ }
+ dh = curattr->ar_ref_die->di_offset;
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &dh,
+ sizeof(dh), sizeof(Dwarf_Half));
+ break;
+ }
+ case DW_FORM_ref_addr:
+ {
+ /* curattr->ar_ref_die == NULL!
+ *
+ * ref_addr doesn't take a CU-offset.
+ * This is different than other refs.
+ * This value will be set by the user of the
+ * producer library using a relocation.
+ * No need to set a value here.
+ */
+#if 0
+ du = curattr->ar_ref_die->di_offset;
+ {
+ /* ref to offset of die */
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du,
+ sizeof(du), uwordb_size);
+ }
+#endif
+ break;
+
+ }
+ case DW_FORM_ref4:
+ {
+ if (curattr->ar_ref_die->di_offset >
+ (unsigned) 0xffffffff) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_OFFSET_UFLW, -1);
+ }
+ dw = (Dwarf_Word) curattr->ar_ref_die->di_offset;
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &dw,
+ sizeof(dw), sizeof(Dwarf_ufixed));
+ break;
+ }
+ case DW_FORM_ref8:
+ du = curattr->ar_ref_die->di_offset;
+ WRITE_UNALIGNED(dbg, (void *) data,
+ (const void *) &du,
+ sizeof(du), sizeof(Dwarf_Unsigned));
+ break;
+ case DW_FORM_ref_udata:
+ { /* unsigned leb128 offset */
+
+ int nbytes;
+ char buff1[ENCODE_SPACE_NEEDED];
+
+ res =
+ _dwarf_pro_encode_leb128_nm(curattr->
+ ar_ref_die->
+ di_offset, &nbytes,
+ buff1,
+ sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+
+ memcpy(data, buff1, nbytes);
+ break;
+ }
+ default:
+ memcpy((void *) data,
+ (const void *) curattr->ar_data,
+ curattr->ar_nbytes);
+ break;
+ }
+ if (curattr->ar_attribute_form == DW_FORM_string) {
+ string_attr_add(dbg, DEBUG_INFO, string_attr_offset, curattr);
+ }
+ string_attr_offset += curattr->ar_nbytes;
+ curattr = curattr->ar_next;
+ }
+
+ /* depth first search */
+ if (curdie->di_child)
+ curdie = curdie->di_child;
+ else {
+ while (curdie != NULL && curdie->di_right == NULL) {
+ GET_CHUNK(dbg, elfsectno_of_debug_info, data, 1, error);
+ *data = '\0';
+ curdie = curdie->di_parent;
+ }
+ if (curdie != NULL)
+ curdie = curdie->di_right;
+ }
+ } /* end while (curdir != NULL) */
/* Write out debug_info size */
/* Dont include length field or extension bytes */
- du = die_off - uword_size - extension_size;
+ du = die_off - BEGIN_LEN_SIZE;
WRITE_UNALIGNED(dbg, (void *) (start_info_sec + extension_size),
- (const void *) &du, sizeof(du), uword_size);
+ (const void *) &du, sizeof(du), uwordb_size);
- data = 0; /* Emphasise not usable now */
+ data = 0; /* Emphasise not usable now */
/* Write out debug_abbrev section */
abbrevsectno = dbg->de_elf_sects[DEBUG_ABBREV];
curabbrev = abbrev_head;
while (curabbrev) {
- char *val;
- int nbytes;
- int idx;
- int res;
- char buff1[ENCODE_SPACE_NEEDED];
-
- res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_idx, &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
-
- GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
- val = buff1;
- memcpy((void *) data, (const void *) val, nbytes);
- res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_tag, &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
- val = buff1;
- GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
- memcpy((void *) data, (const void *) val, nbytes);
- db = curabbrev->abb_children;
- GET_CHUNK(dbg, abbrevsectno, data, sizeof(Dwarf_Ubyte), error);
- WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
- sizeof(db), sizeof(Dwarf_Ubyte));
-
- /* add attributes and forms */
- for (idx = 0; idx < curabbrev->abb_n_attr; idx++) {
- res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_attrs[idx],
- &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
- val = buff1;
- GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
- memcpy((void *) data, (const void *) val, nbytes);
- res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_forms[idx],
- &nbytes,
- buff1, sizeof(buff1));
- if (res != DW_DLV_OK) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
- }
- val = buff1;
- GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
- memcpy((void *) data, (const void *) val, nbytes);
- }
- GET_CHUNK(dbg, abbrevsectno, data, 2, error); /* two zeros,
- for last
- entry, see dwarf2 sec 7.5.3 */
- *data = 0;
- data++;
- *data = 0;
-
- curabbrev = curabbrev->abb_next;
+ char *val;
+ int nbytes;
+ int idx;
+ int res;
+ char buff1[ENCODE_SPACE_NEEDED];
+
+ res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_idx, &nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+
+ GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
+ val = buff1;
+ memcpy((void *) data, (const void *) val, nbytes);
+ res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_tag, &nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+ val = buff1;
+ GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
+ memcpy((void *) data, (const void *) val, nbytes);
+ db = curabbrev->abb_children;
+ GET_CHUNK(dbg, abbrevsectno, data, sizeof(Dwarf_Ubyte), error);
+ WRITE_UNALIGNED(dbg, (void *) data, (const void *) &db,
+ sizeof(db), sizeof(Dwarf_Ubyte));
+
+ /* add attributes and forms */
+ for (idx = 0; idx < curabbrev->abb_n_attr; idx++) {
+ res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_attrs[idx],
+ &nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+ val = buff1;
+ GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
+ memcpy((void *) data, (const void *) val, nbytes);
+ res = _dwarf_pro_encode_leb128_nm(curabbrev->abb_forms[idx],
+ &nbytes,
+ buff1, sizeof(buff1));
+ if (res != DW_DLV_OK) {
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_ABBREV_ALLOC, -1);
+ }
+ val = buff1;
+ GET_CHUNK(dbg, abbrevsectno, data, nbytes, error);
+ memcpy((void *) data, (const void *) val, nbytes);
+ }
+ GET_CHUNK(dbg, abbrevsectno, data, 2, error); /* two zeros,
+ for last
+ entry, see
+ dwarf2 sec
+ 7.5.3 */
+ *data = 0;
+ data++;
+ *data = 0;
+
+ curabbrev = curabbrev->abb_next;
}
- GET_CHUNK(dbg,abbrevsectno,data,1,error); /* one zero,
- for end of cu, see dwarf2 sec 7.5.3 */
+ GET_CHUNK(dbg, abbrevsectno, data, 1, error); /* one zero,
+ for end of
+ cu, see
+ dwarf2 sec
+ 7.5.3 */
*data = 0;
-
+
return (int) dbg->de_n_debug_sect;
}
/*---------------------------------------------------------------------
- Get a buffer of section data.
- section_idx is the elf-section number that this data applies to.
- length shows length of returned data
+ Get a buffer of section data.
+ section_idx is the elf-section number that this data applies to.
+ length shows length of returned data
----------------------------------------------------------------------*/
- /*ARGSUSED*/ /* pretend all args used */
+ /*ARGSUSED*/ /* pretend all args used */
Dwarf_Ptr
dwarf_get_section_bytes(Dwarf_P_Debug dbg,
- Dwarf_Signed dwarf_section,
- Dwarf_Signed * section_idx,
- Dwarf_Unsigned * length, Dwarf_Error * error)
+ Dwarf_Signed dwarf_section,
+ Dwarf_Signed * section_idx,
+ Dwarf_Unsigned * length, Dwarf_Error * error)
{
Dwarf_Ptr buf;
if (dbg->de_version_magic_number != PRO_VERSION_MAGIC) {
- DWARF_P_DBG_ERROR(dbg, DW_DLE_IA, NULL);
+ DWARF_P_DBG_ERROR(dbg, DW_DLE_IA, NULL);
}
if (dbg->de_debug_sects == 0) {
- /* no more data !! */
- return NULL;
+ /* no more data !! */
+ return NULL;
}
if (dbg->de_debug_sects->ds_elf_sect_no == MAGIC_SECT_NO) {
- /* no data ever entered !! */
- return NULL;
+ /* no data ever entered !! */
+ return NULL;
}
*section_idx = dbg->de_debug_sects->ds_elf_sect_no;
*length = dbg->de_debug_sects->ds_nbytes;
@@ -1725,7 +1987,7 @@ dwarf_get_section_bytes(Dwarf_P_Debug dbg,
}
/*
- No errors possible.
+ No errors possible.
*/
void
dwarf_reset_section_bytes(Dwarf_P_Debug dbg)
@@ -1734,6 +1996,7 @@ dwarf_reset_section_bytes(Dwarf_P_Debug dbg)
/* No need to reset; commented out decrement. dbg->de_n_debug_sect
= ???; */
dbg->de_reloc_next_to_return = 0;
+ dbg->de_sect_sa_next_to_return = 0;
}
/*
@@ -1751,7 +2014,7 @@ dwarf_reset_section_bytes(Dwarf_P_Debug dbg)
*/
Dwarf_Small *
_dwarf_pro_buffer(Dwarf_P_Debug dbg,
- int elfsectno, unsigned long nbytes)
+ int elfsectno, unsigned long nbytes)
{
Dwarf_P_Section_Data cursect;
@@ -1761,74 +2024,74 @@ _dwarf_pro_buffer(Dwarf_P_Debug dbg,
not match any legit section number. test to have just two
clauses (no NULL pointer test) See dwarf_producer_init(). */
if ((cursect->ds_elf_sect_no != elfsectno) ||
- ((cursect->ds_nbytes + nbytes) > cursect->ds_orig_alloc)
- ) {
-
- /* Either the elf section has changed or there is not enough
- space in the current section.
-
- Create a new Dwarf_P_Section_Data_s for the chunk. and have
- space 'on the end' for the buffer itself so we just do one
- malloc (not two).
-
- */
- unsigned long space = nbytes;
-
- if (nbytes < CHUNK_SIZE)
- space = CHUNK_SIZE;
-
- cursect = (Dwarf_P_Section_Data)
- _dwarf_p_get_alloc(dbg,
- sizeof(struct Dwarf_P_Section_Data_s)
- + space);
-
-
- if (cursect == NULL)
- return (NULL);
-
- /* _dwarf_p_get_alloc zeroes the space... */
-
- cursect->ds_data = (char *) cursect +
- sizeof(struct Dwarf_P_Section_Data_s);
- cursect->ds_orig_alloc = space;
- cursect->ds_elf_sect_no = elfsectno;
- cursect->ds_nbytes = nbytes; /* reserve this number of bytes
- of space for caller to fill
- in */
-
- /* Now link on the end of the list, and mark this one as the
- current one */
-
- if (dbg->de_debug_sects->ds_elf_sect_no == MAGIC_SECT_NO) {
- /* the only entry is the special one for 'no entry' so
- delete that phony one while adding this initial real
- one. */
- dbg->de_debug_sects = cursect;
- dbg->de_current_active_section = cursect;
- dbg->de_first_debug_sect = cursect;
- } else {
- dbg->de_current_active_section->ds_next = cursect;
- dbg->de_current_active_section = cursect;
- }
- dbg->de_n_debug_sect++;
-
- return ((Dwarf_Small *) cursect->ds_data);
+ ((cursect->ds_nbytes + nbytes) > cursect->ds_orig_alloc)
+ ) {
+
+ /* Either the elf section has changed or there is not enough
+ space in the current section.
+
+ Create a new Dwarf_P_Section_Data_s for the chunk. and have
+ space 'on the end' for the buffer itself so we just do one
+ malloc (not two).
+
+ */
+ unsigned long space = nbytes;
+
+ if (nbytes < CHUNK_SIZE)
+ space = CHUNK_SIZE;
+
+ cursect = (Dwarf_P_Section_Data)
+ _dwarf_p_get_alloc(dbg,
+ sizeof(struct Dwarf_P_Section_Data_s)
+ + space);
+
+
+ if (cursect == NULL)
+ return (NULL);
+
+ /* _dwarf_p_get_alloc zeroes the space... */
+
+ cursect->ds_data = (char *) cursect +
+ sizeof(struct Dwarf_P_Section_Data_s);
+ cursect->ds_orig_alloc = space;
+ cursect->ds_elf_sect_no = elfsectno;
+ cursect->ds_nbytes = nbytes; /* reserve this number of bytes
+ of space for caller to fill
+ in */
+
+ /* Now link on the end of the list, and mark this one as the
+ current one */
+
+ if (dbg->de_debug_sects->ds_elf_sect_no == MAGIC_SECT_NO) {
+ /* the only entry is the special one for 'no entry' so
+ delete that phony one while adding this initial real
+ one. */
+ dbg->de_debug_sects = cursect;
+ dbg->de_current_active_section = cursect;
+ dbg->de_first_debug_sect = cursect;
+ } else {
+ dbg->de_current_active_section->ds_next = cursect;
+ dbg->de_current_active_section = cursect;
+ }
+ dbg->de_n_debug_sect++;
+
+ return ((Dwarf_Small *) cursect->ds_data);
}
/* There is enough space in the current buffer */
{
- Dwarf_Small *space_for_caller = (Dwarf_Small *)
- (cursect->ds_data + cursect->ds_nbytes);
+ Dwarf_Small *space_for_caller = (Dwarf_Small *)
+ (cursect->ds_data + cursect->ds_nbytes);
- cursect->ds_nbytes += nbytes;
- return space_for_caller;
+ cursect->ds_nbytes += nbytes;
+ return space_for_caller;
}
}
/*------------------------------------------------------------
- Given address advance and line advance, it gives
- either special opcode, or a number < 0
+ Given address advance and line advance, it gives
+ either special opcode, or a number < 0
------------------------------------------------------------*/
static int
_dwarf_pro_get_opc(Dwarf_Unsigned addr_adv, int line_adv)
@@ -1837,25 +2100,25 @@ _dwarf_pro_get_opc(Dwarf_Unsigned addr_adv, int line_adv)
addr_adv = addr_adv / MIN_INST_LENGTH;
if (line_adv == 0 && addr_adv == 0)
- return OPC_INCS_ZERO;
+ return OPC_INCS_ZERO;
if (line_adv >= LINE_BASE && line_adv < LINE_BASE + LINE_RANGE) {
- opc =
- (line_adv - LINE_BASE) + (addr_adv * LINE_RANGE) +
- OPCODE_BASE;
- if (opc > 255)
- return OPC_OUT_OF_RANGE;
- return opc;
+ opc =
+ (line_adv - LINE_BASE) + (addr_adv * LINE_RANGE) +
+ OPCODE_BASE;
+ if (opc > 255)
+ return OPC_OUT_OF_RANGE;
+ return opc;
} else
- return LINE_OUT_OF_RANGE;
+ return LINE_OUT_OF_RANGE;
}
/*-----------------------------------------------------------------------
- Handles abbreviations. It takes a die, searches through
- current list of abbreviations for matching one. If it
- finds one, it returns a pointer to it, and if it doesnt,
- it returns a new one. Upto the user of this function to
- link it up to the abbreviation head. If its a new one,
- abb_idx has 0.
+ Handles abbreviations. It takes a die, searches through
+ current list of abbreviations for matching one. If it
+ finds one, it returns a pointer to it, and if it doesnt,
+ it returns a new one. Upto the user of this function to
+ link it up to the abbreviation head. If its a new one,
+ abb_idx has 0.
-----------------------------------------------------------------------*/
static Dwarf_P_Abbrev
_dwarf_pro_getabbrev(Dwarf_P_Die die, Dwarf_P_Abbrev head)
@@ -1870,62 +2133,62 @@ _dwarf_pro_getabbrev(Dwarf_P_Die die, Dwarf_P_Abbrev head)
curabbrev = head;
while (curabbrev) {
- if ((die->di_tag == curabbrev->abb_tag) &&
- ((die->di_child != NULL &&
- curabbrev->abb_children == DW_CHILDREN_yes) ||
- (die->di_child == NULL &&
- curabbrev->abb_children == DW_CHILDREN_no)) &&
- (die->di_n_attr == curabbrev->abb_n_attr)) {
-
- /* There is a chance of a match. */
- curattr = die->di_attrs;
- match = 1; /* Assume match found. */
- while (match && curattr) {
- res1 = _dwarf_pro_match_attr(curattr,
- curabbrev,
- (int) curabbrev->
- abb_n_attr);
- if (res1 == 0)
- match = 0;
- curattr = curattr->ar_next;
- }
- if (match == 1)
- return curabbrev;
- }
- curabbrev = curabbrev->abb_next;
+ if ((die->di_tag == curabbrev->abb_tag) &&
+ ((die->di_child != NULL &&
+ curabbrev->abb_children == DW_CHILDREN_yes) ||
+ (die->di_child == NULL &&
+ curabbrev->abb_children == DW_CHILDREN_no)) &&
+ (die->di_n_attr == curabbrev->abb_n_attr)) {
+
+ /* There is a chance of a match. */
+ curattr = die->di_attrs;
+ match = 1; /* Assume match found. */
+ while (match && curattr) {
+ res1 = _dwarf_pro_match_attr(curattr,
+ curabbrev,
+ (int) curabbrev->
+ abb_n_attr);
+ if (res1 == 0)
+ match = 0;
+ curattr = curattr->ar_next;
+ }
+ if (match == 1)
+ return curabbrev;
+ }
+ curabbrev = curabbrev->abb_next;
}
/* no match, create new abbreviation */
if (die->di_n_attr != 0) {
- forms = (Dwarf_ufixed *)
- _dwarf_p_get_alloc(NULL,
- sizeof(Dwarf_ufixed) * die->di_n_attr);
- if (forms == NULL)
- return NULL;
- attrs = (Dwarf_ufixed *)
- _dwarf_p_get_alloc(NULL,
- sizeof(Dwarf_ufixed) * die->di_n_attr);
- if (attrs == NULL)
- return NULL;
+ forms = (Dwarf_ufixed *)
+ _dwarf_p_get_alloc(die->di_dbg,
+ sizeof(Dwarf_ufixed) * die->di_n_attr);
+ if (forms == NULL)
+ return NULL;
+ attrs = (Dwarf_ufixed *)
+ _dwarf_p_get_alloc(die->di_dbg,
+ sizeof(Dwarf_ufixed) * die->di_n_attr);
+ if (attrs == NULL)
+ return NULL;
}
nattrs = 0;
curattr = die->di_attrs;
while (curattr) {
- attrs[nattrs] = curattr->ar_attribute;
- forms[nattrs] = curattr->ar_attribute_form;
- nattrs++;
- curattr = curattr->ar_next;
+ attrs[nattrs] = curattr->ar_attribute;
+ forms[nattrs] = curattr->ar_attribute_form;
+ nattrs++;
+ curattr = curattr->ar_next;
}
curabbrev = (Dwarf_P_Abbrev)
- _dwarf_p_get_alloc(NULL, sizeof(struct Dwarf_P_Abbrev_s));
+ _dwarf_p_get_alloc(die->di_dbg, sizeof(struct Dwarf_P_Abbrev_s));
if (curabbrev == NULL)
- return NULL;
+ return NULL;
if (die->di_child == NULL)
- curabbrev->abb_children = DW_CHILDREN_no;
+ curabbrev->abb_children = DW_CHILDREN_no;
else
- curabbrev->abb_children = DW_CHILDREN_yes;
+ curabbrev->abb_children = DW_CHILDREN_yes;
curabbrev->abb_tag = die->di_tag;
curabbrev->abb_attrs = attrs;
curabbrev->abb_forms = forms;
@@ -1937,22 +2200,22 @@ _dwarf_pro_getabbrev(Dwarf_P_Die die, Dwarf_P_Abbrev head)
}
/*------------------------------------------------------------------
- Tries to see if given attribute and form combination
- exists in the given abbreviation
+ Tries to see if given attribute and form combination
+ exists in the given abbreviation
-------------------------------------------------------------------*/
static int
_dwarf_pro_match_attr(Dwarf_P_Attribute attr,
- Dwarf_P_Abbrev abbrev, int no_attr)
+ Dwarf_P_Abbrev abbrev, int no_attr)
{
int i;
int found = 0;
for (i = 0; i < no_attr; i++) {
- if (attr->ar_attribute == abbrev->abb_attrs[i] &&
- attr->ar_attribute_form == abbrev->abb_forms[i]) {
- found = 1;
- break;
- }
+ if (attr->ar_attribute == abbrev->abb_attrs[i] &&
+ attr->ar_attribute_form == abbrev->abb_forms[i]) {
+ found = 1;
+ break;
+ }
}
return found;
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_section.h b/usr/src/tools/ctf/dwarf/common/pro_section.h
index a4044c8a5d..b37ade44dc 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_section.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_section.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_types.c b/usr/src/tools/ctf/dwarf/common/pro_types.c
index aa8266199b..1f3f93280c 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_types.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_types.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -53,12 +53,12 @@
*/
Dwarf_Unsigned
dwarf_add_typename(Dwarf_P_Debug dbg,
- Dwarf_P_Die die,
- char *type_name, Dwarf_Error * error)
+ Dwarf_P_Die die,
+ char *type_name, Dwarf_Error * error)
{
return
- _dwarf_add_simple_name_entry(dbg, die, type_name,
- dwarf_snk_typename, error);
+ _dwarf_add_simple_name_entry(dbg, die, type_name,
+ dwarf_snk_typename, error);
}
/*
@@ -70,10 +70,10 @@ dwarf_add_typename(Dwarf_P_Debug dbg,
*/
Dwarf_Unsigned
_dwarf_add_simple_name_entry(Dwarf_P_Debug dbg,
- Dwarf_P_Die die,
- char *entry_name,
- enum dwarf_sn_kind entrykind,
- Dwarf_Error * error)
+ Dwarf_P_Die die,
+ char *entry_name,
+ enum dwarf_sn_kind entrykind,
+ Dwarf_Error * error)
{
Dwarf_P_Simple_nameentry nameentry;
Dwarf_P_Simple_name_header hdr;
@@ -81,28 +81,28 @@ _dwarf_add_simple_name_entry(Dwarf_P_Debug dbg,
int uword_size;
if (dbg == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
- return (0);
+ _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
+ return (0);
}
if (die == NULL) {
- _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
- return (0);
+ _dwarf_p_error(NULL, error, DW_DLE_DIE_NULL);
+ return (0);
}
nameentry = (Dwarf_P_Simple_nameentry)
- _dwarf_p_get_alloc(dbg,
- sizeof(struct Dwarf_P_Simple_nameentry_s));
+ _dwarf_p_get_alloc(dbg,
+ sizeof(struct Dwarf_P_Simple_nameentry_s));
if (nameentry == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
}
name = _dwarf_p_get_alloc(dbg, strlen(entry_name) + 1);
if (name == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
}
strcpy(name, entry_name);
@@ -113,10 +113,10 @@ _dwarf_add_simple_name_entry(Dwarf_P_Debug dbg,
hdr = &dbg->de_simple_name_headers[entrykind];
if (hdr->sn_head == NULL)
- hdr->sn_head = hdr->sn_tail = nameentry;
+ hdr->sn_head = hdr->sn_tail = nameentry;
else {
- hdr->sn_tail->sne_next = nameentry;
- hdr->sn_tail = nameentry;
+ hdr->sn_tail->sne_next = nameentry;
+ hdr->sn_tail = nameentry;
}
hdr->sn_count++;
hdr->sn_net_len += uword_size + nameentry->sne_name_len + 1;
@@ -134,15 +134,16 @@ _dwarf_add_simple_name_entry(Dwarf_P_Debug dbg,
".rel.debug_varnames", sgi extension
".rel.debug_weaknames", sgi extension
to disk.
- section_index indexes one of those sections.
- entrykind is one of those 'kind's.
+ section_index indexes one of those sections.
+ entrykind is one of those 'kind's.
*/
int
-_dwarf_transform_simplename_to_disk(Dwarf_P_Debug dbg,
- enum dwarf_sn_kind entrykind,
- int section_index, /* in de_elf_sects etc */
- Dwarf_Error * error)
+_dwarf_transform_simplename_to_disk(Dwarf_P_Debug dbg, enum dwarf_sn_kind entrykind, int section_index, /* in
+ de_elf_sects
+ etc
+ */
+ Dwarf_Error * error)
{
@@ -159,8 +160,8 @@ _dwarf_transform_simplename_to_disk(Dwarf_P_Debug dbg,
Dwarf_Small *stream_bytes;
Dwarf_Small *cur_stream_bytes_ptr;
Dwarf_Unsigned stream_bytes_count;
- Dwarf_Unsigned adjusted_length; /* count excluding length
- field */
+ Dwarf_Unsigned adjusted_length; /* count excluding length field
+ */
int uword_size = dbg->de_offset_size;
@@ -173,24 +174,23 @@ _dwarf_transform_simplename_to_disk(Dwarf_P_Debug dbg,
debug_info_size = 0;
for (debug_sect = dbg->de_debug_sects; debug_sect != NULL;
- debug_sect = debug_sect->ds_next) {
- /* We want the size of the .debug_info section for this CU
- because the dwarf spec requires us to output it below
- so we look for it specifically. */
- if (debug_sect->ds_elf_sect_no ==
- dbg->de_elf_sects[DEBUG_INFO]) {
- debug_info_size += debug_sect->ds_nbytes;
- }
+ debug_sect = debug_sect->ds_next) {
+ /* We want the size of the .debug_info section for this CU
+ because the dwarf spec requires us to output it below so we
+ look for it specifically. */
+ if (debug_sect->ds_elf_sect_no == dbg->de_elf_sects[DEBUG_INFO]) {
+ debug_info_size += debug_sect->ds_nbytes;
+ }
}
hdr = &dbg->de_simple_name_headers[entrykind];
/* Size of the .debug_typenames (or similar) section header. */
- stream_bytes_count = extension_size + uword_size + /* Size of
- length
- field. */
- sizeof(Dwarf_Half) + /* Size of version field. */
- uword_size + /* Size of .debug_info offset. */
- uword_size; /* Size of .debug_names. */
+ stream_bytes_count = extension_size + uword_size + /* Size of
+ length
+ field. */
+ sizeof(Dwarf_Half) + /* Size of version field. */
+ uword_size + /* Size of .debug_info offset. */
+ uword_size; /* Size of .debug_names. */
@@ -204,88 +204,90 @@ _dwarf_transform_simplename_to_disk(Dwarf_P_Debug dbg,
/* Now we know how long the entire section is */
GET_CHUNK(dbg, dbg->de_elf_sects[section_index],
- stream_bytes, (unsigned long) stream_bytes_count, error);
+ stream_bytes, (unsigned long) stream_bytes_count, error);
if (stream_bytes == NULL) {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
}
cur_stream_bytes_ptr = stream_bytes;
if (extension_size) {
- Dwarf_Unsigned x = DISTINGUISHED_VALUE;
+ Dwarf_Unsigned x = DISTINGUISHED_VALUE;
- WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
- (const void *) &x, sizeof(x), extension_size);
- cur_stream_bytes_ptr += extension_size;
+ WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
+ (const void *) &x, sizeof(x), extension_size);
+ cur_stream_bytes_ptr += extension_size;
}
/* Write the adjusted length of .debug_*names section. */
adjusted_length = stream_bytes_count - uword_size - extension_size;
WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
- (const void *) &adjusted_length,
- sizeof(adjusted_length), uword_size);
+ (const void *) &adjusted_length,
+ sizeof(adjusted_length), uword_size);
cur_stream_bytes_ptr += uword_size;
/* Write the version as 2 bytes. */
{
- Dwarf_Half verstamp = CURRENT_VERSION_STAMP;
+ Dwarf_Half verstamp = CURRENT_VERSION_STAMP;
- WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
- (const void *) &verstamp,
- sizeof(verstamp), sizeof(Dwarf_Half));
- cur_stream_bytes_ptr += sizeof(Dwarf_Half);
+ WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
+ (const void *) &verstamp,
+ sizeof(verstamp), sizeof(Dwarf_Half));
+ cur_stream_bytes_ptr += sizeof(Dwarf_Half);
}
/* Write the offset of the compile-unit. */
WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
- (const void *) &big_zero,
- sizeof(big_zero), uword_size);
+ (const void *) &big_zero,
+ sizeof(big_zero), uword_size);
cur_stream_bytes_ptr += uword_size;
/* now create the relocation for the compile_unit offset */
{
- int res = dbg->de_reloc_name(dbg,
- section_index,
- extension_size + uword_size + sizeof(Dwarf_Half)
- /* r_offset */ ,
- /* debug_info section name symbol */
- dbg->de_sect_name_idx[DEBUG_INFO],
- dwarf_drt_data_reloc,
- uword_size);
-
- if (res != DW_DLV_OK) {
- {
- _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
- return (0);
- }
- }
+ int res = dbg->de_reloc_name(dbg,
+ section_index,
+ extension_size + uword_size +
+ sizeof(Dwarf_Half)
+ /* r_offset */
+ ,
+ /* debug_info section name symbol */
+ dbg->de_sect_name_idx[DEBUG_INFO],
+ dwarf_drt_data_reloc,
+ uword_size);
+
+ if (res != DW_DLV_OK) {
+ {
+ _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
+ return (0);
+ }
+ }
}
/* Write the size of .debug_info section. */
WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
- (const void *) &debug_info_size,
- sizeof(debug_info_size), uword_size);
+ (const void *) &debug_info_size,
+ sizeof(debug_info_size), uword_size);
cur_stream_bytes_ptr += uword_size;
for (nameentry = nameentry_original;
- nameentry != NULL; nameentry = nameentry->sne_next) {
-
- /* Copy offset of die from start of compile-unit. */
- WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
- (const void *) &nameentry->sne_die->di_offset,
- sizeof(nameentry->sne_die->di_offset),
- uword_size);
- cur_stream_bytes_ptr += uword_size;
-
- /* Copy the type name. */
- strcpy((char *) cur_stream_bytes_ptr, nameentry->sne_name);
- cur_stream_bytes_ptr += nameentry->sne_name_len + 1;
+ nameentry != NULL; nameentry = nameentry->sne_next) {
+
+ /* Copy offset of die from start of compile-unit. */
+ WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
+ (const void *) &nameentry->sne_die->di_offset,
+ sizeof(nameentry->sne_die->di_offset),
+ uword_size);
+ cur_stream_bytes_ptr += uword_size;
+
+ /* Copy the type name. */
+ strcpy((char *) cur_stream_bytes_ptr, nameentry->sne_name);
+ cur_stream_bytes_ptr += nameentry->sne_name_len + 1;
}
WRITE_UNALIGNED(dbg, cur_stream_bytes_ptr,
- (const void *) &big_zero,
- sizeof(big_zero), uword_size);
+ (const void *) &big_zero,
+ sizeof(big_zero), uword_size);
diff --git a/usr/src/tools/ctf/dwarf/common/pro_types.h b/usr/src/tools/ctf/dwarf/common/pro_types.h
index 7ce1e33c59..817609215b 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_types.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_types.h
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +17,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
diff --git a/usr/src/tools/ctf/dwarf/common/pro_util.h b/usr/src/tools/ctf/dwarf/common/pro_util.h
index d01caae5b1..56bde8bda6 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_util.h
+++ b/usr/src/tools/ctf/dwarf/common/pro_util.h
@@ -1,6 +1,7 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
+ Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -17,12 +18,12 @@
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, write the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -36,13 +37,13 @@
-#define IS_64BIT(dbg) ((dbg)->de_flags & DW_DLC_SIZE_64 ? 1 : 0)
-#define ISA_IA64(dbg) ((dbg)->de_flags & DW_DLC_ISA_IA64 ? 1 : 0)
+#define IS_64BIT(dbg) ((dbg)->de_flags & DW_DLC_SIZE_64 ? 1 : 0)
+#define ISA_IA64(dbg) ((dbg)->de_flags & DW_DLC_ISA_IA64 ? 1 : 0)
/* definition of sizes of types, given target machine */
-#define sizeof_sbyte(dbg) sizeof(Dwarf_Sbyte)
-#define sizeof_ubyte(dbg) sizeof(Dwarf_Ubyte)
-#define sizeof_uhalf(dbg) sizeof(Dwarf_Half)
+#define sizeof_sbyte(dbg) sizeof(Dwarf_Sbyte)
+#define sizeof_ubyte(dbg) sizeof(Dwarf_Ubyte)
+#define sizeof_uhalf(dbg) sizeof(Dwarf_Half)
/* certain sizes not defined here, but set in dbg record.
See pro_init.c
*/
@@ -63,7 +64,7 @@
/* R_MIPS* are #define so #ifndef works */
/* R_IA_64* are not necessarily #define (might be enum) so #ifndef
is useless, we use the configure script generating
- HAVE_R_IA_64_DIR32LSB.
+ HAVE_R_IA_64_DIR32LSB and HAVE_R_IA64_DIR32LSB.
*/
#ifndef R_MIPS_64
#define R_MIPS_64 0
@@ -75,33 +76,73 @@
#define R_MIPS_SCN_DISP 0
#endif
-#ifndef HAVE_R_IA_64_DIR32LSB
-#define R_IA_64_DIR32LSB 0
-#define R_IA_64_DIR64LSB 0
-#define R_IA_64_SEGREL64LSB 0
-#define R_IA_64_SEGREL32LSB 0
+/* R_IA_64_DIR32LSB came before the now-standard R_IA64_DIR32LSB
+ (etc) was defined. This now deals with either form,
+ preferring the new form if available. */
+#ifdef HAVE_R_IA64_DIR32LSB
+#define DWARF_PRO_R_IA64_DIR32LSB R_IA64_DIR32LSB
+#define DWARF_PRO_R_IA64_DIR64LSB R_IA64_DIR64LSB
+#define DWARF_PRO_R_IA64_SEGREL64LSB R_IA64_SEGREL64LSB
+#define DWARF_PRO_R_IA64_SEGREL32LSB R_IA64_SEGREL32LSB
+#endif
+#if defined(HAVE_R_IA_64_DIR32LSB) && !defined(HAVE_R_IA64_DIR32LSB)
+#define DWARF_PRO_R_IA64_DIR32LSB R_IA_64_DIR32LSB
+#define DWARF_PRO_R_IA64_DIR64LSB R_IA_64_DIR64LSB
+#define DWARF_PRO_R_IA64_SEGREL64LSB R_IA_64_SEGREL64LSB
+#define DWARF_PRO_R_IA64_SEGREL32LSB R_IA_64_SEGREL32LSB
+#endif
+#if !defined(HAVE_R_IA_64_DIR32LSB) && !defined(HAVE_R_IA64_DIR32LSB)
+#define DWARF_PRO_R_IA64_DIR32LSB 0
+#define DWARF_PRO_R_IA64_DIR64LSB 0
+#define DWARF_PRO_R_IA64_SEGREL64LSB 0
+#define DWARF_PRO_R_IA64_SEGREL32LSB 0
#endif
+/*
+ * The default "I don't know" value can't be zero.
+ * Because that's the sentinel value that means "no relocation".
+ * In order to use this library in 'symbolic relocation mode we
+ * don't care if this value is the right relocation value,
+ * only that it's non-NULL. So at the end, we define it
+ * to something sensible.
+ */
+
+
+
+#if defined(sun)
+#if defined(sparc)
+#define Get_REL64_isa(dbg) (R_SPARC_UA64)
+#define Get_REL32_isa(dbg) (R_SPARC_UA32)
+#define Get_REL_SEGREL_isa(dbg) (R_SPARC_NONE) /* I don't know! */
+#else /* i386 */
+#define Get_REL64_isa(dbg) (R_386_32) /* Any non-zero value is ok */
+#define Get_REL32_isa(dbg) (R_386_32)
+#define Get_REL_SEGREL_isa(dbg) (R_386_NONE) /* I don't know! */
+#endif /* sparc || i386 */
+#else /* !sun */
#ifdef HAVE_SYS_IA64_ELF_H
#define Get_REL64_isa(dbg) (ISA_IA64(dbg) ? \
- R_IA_64_DIR64LSB : R_MIPS_64)
+ DWARF_PRO_R_IA64_DIR64LSB : R_MIPS_64)
#define Get_REL32_isa(dbg) (ISA_IA64(dbg) ? \
- R_IA_64_DIR32LSB : R_MIPS_32)
+ DWARF_PRO_R_IA64_DIR32LSB : R_MIPS_32)
/* ia64 uses 32bit dwarf offsets for sections */
#define Get_REL_SEGREL_isa(dbg) (ISA_IA64(dbg) ? \
- R_IA_64_SEGREL32LSB : R_MIPS_SCN_DISP)
-#else
+ DWARF_PRO_R_IA64_SEGREL32LSB : R_MIPS_SCN_DISP)
+#else /* HAVE_SYS_IA64_ELF_H */
#if !defined(linux) && !defined(__BEOS__)
#define Get_REL64_isa(dbg) (R_MIPS_64)
#define Get_REL32_isa(dbg) (R_MIPS_32)
#define Get_REL_SEGREL_isa(dbg) (R_MIPS_SCN_DISP)
#else
-#define Get_REL64_isa(dbg) (R_IA_64_DIR64LSB)
-#define Get_REL32_isa(dbg) (R_IA_64_DIR32LSB)
-#define Get_REL_SEGREL_isa(dbg) (R_IA_64_SEGREL64LSB)
+#define Get_REL64_isa(dbg) (1)
+#define Get_REL32_isa(dbg) (1) /* these are used on linux */
+#define Get_REL_SEGREL_isa(dbg) (1) /* non zero values, see comments above */
#endif
-#endif
+#endif /* HAVE_SYS_IA64_ELF_H */
+#endif /* !sun */
+
+
diff --git a/usr/src/tools/ctf/dwarf/common/pro_vars.c b/usr/src/tools/ctf/dwarf/common/pro_vars.c
index 3b9bff9292..3e75a9d9af 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_vars.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_vars.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -52,11 +52,11 @@
*/
Dwarf_Unsigned
dwarf_add_varname(Dwarf_P_Debug dbg,
- Dwarf_P_Die die, char *var_name, Dwarf_Error * error)
+ Dwarf_P_Die die, char *var_name, Dwarf_Error * error)
{
return
- _dwarf_add_simple_name_entry(dbg, die, var_name,
- dwarf_snk_varname, error);
+ _dwarf_add_simple_name_entry(dbg, die, var_name,
+ dwarf_snk_varname, error);
}
diff --git a/usr/src/tools/ctf/dwarf/common/pro_weaks.c b/usr/src/tools/ctf/dwarf/common/pro_weaks.c
index 36d80f0e10..8c74bf08ca 100644
--- a/usr/src/tools/ctf/dwarf/common/pro_weaks.c
+++ b/usr/src/tools/ctf/dwarf/common/pro_weaks.c
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of version 2.1 of the GNU Lesser General Public License
@@ -19,10 +19,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
USA.
- Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
Mountain View, CA 94043, or:
http://www.sgi.com
@@ -52,10 +52,10 @@
*/
Dwarf_Unsigned
dwarf_add_weakname(Dwarf_P_Debug dbg,
- Dwarf_P_Die die,
- char *weak_name, Dwarf_Error * error)
+ Dwarf_P_Die die,
+ char *weak_name, Dwarf_Error * error)
{
return
- _dwarf_add_simple_name_entry(dbg, die, weak_name,
- dwarf_snk_weakname, error);
+ _dwarf_add_simple_name_entry(dbg, die, weak_name,
+ dwarf_snk_weakname, error);
}
diff --git a/usr/src/tools/cw/Makefile b/usr/src/tools/cw/Makefile
index 667b7d4874..70f9a20c2a 100644
--- a/usr/src/tools/cw/Makefile
+++ b/usr/src/tools/cw/Makefile
@@ -22,8 +22,6 @@
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# ident "%Z%%M% %I% %E% SMI"
-#
PROG = cw
@@ -34,8 +32,8 @@ include ../Makefile.tools
# Bootstrap problem -- we have to build cw before we can use it
i386_CC= $(SPRO_VROOT)/bin/cc
sparc_CC= $(SPRO_VROOT)/bin/cc
-$(__GNUC)i386_CC= $(GNU_ROOT)/bin/gcc
-$(__GNUC)sparc_CC= $(GNU_ROOT)/bin/gcc
+$(__GNUC)i386_CC= $(GCC_ROOT)/bin/gcc
+$(__GNUC)sparc_CC= $(GCC_ROOT)/bin/gcc
CFLAGS += $(CCVERBOSE)
@@ -48,9 +46,9 @@ $(__GNUC)LDLIBS += -lc
$(__GNUC)LDFLAGS= $(MAPFILE.NES:%=-Wl,-M%)
CPPFLAGS += -DDEFAULT_CC_DIR='"$(SPRO_VROOT)/bin"'
-CPPFLAGS += -DDEFAULT_GCC_DIR='"$(GNU_ROOT)/bin"'
+CPPFLAGS += -DDEFAULT_GCC_DIR='"$(GCC_ROOT)/bin"'
CPPFLAGS += -DDEFAULT_CPLUSPLUS_DIR='"$(SPRO_VROOT)/bin"'
-CPPFLAGS += -DDEFAULT_GPLUSPLUS_DIR='"$(GNU_ROOT)/bin"'
+CPPFLAGS += -DDEFAULT_GPLUSPLUS_DIR='"$(GCC_ROOT)/bin"'
$(ROOTONBLDMAN1FILES) := FILEMODE= 644
diff --git a/usr/src/tools/cw/cw.1 b/usr/src/tools/cw/cw.1
index 5a1cea04f2..606cf17d49 100644
--- a/usr/src/tools/cw/cw.1
+++ b/usr/src/tools/cw/cw.1
@@ -231,7 +231,7 @@ If CW_GCC_DIR is set, the GNU C compiler in \fI$CW_GCC_DIR\fP
will be used. Likewise, if CW_GPLUSPLUS_DIR is set, the GNU C++
compiler in \fI$CW_GPLUSPLUS_DIR\fP will be used.
Otherwise, if GNU_ROOT is set, the GNU C and C++ compilers
-in \fI$GNU_ROOT/bin\fP will be used.
+in \fI$GCC_ROOT/bin\fP will be used.
Otherwise, the GNU compilers in a predefined default location
will be used.
.LP
diff --git a/usr/src/tools/cw/cw.c b/usr/src/tools/cw/cw.c
index d957942ea2..135a7b363b 100644
--- a/usr/src/tools/cw/cw.c
+++ b/usr/src/tools/cw/cw.c
@@ -1842,7 +1842,7 @@ main(int argc, char **argv)
"%s/SUNWspro/SS12/bin", dir);
}
- if ((dir = getenv("GNU_ROOT")) != NULL) {
+ if ((dir = getenv("GCC_ROOT")) != NULL) {
(void) snprintf(default_dir[CW_C_GCC], MAXPATHLEN,
"%s/bin", dir);
}
diff --git a/usr/src/tools/findunref/exception_list.open b/usr/src/tools/findunref/exception_list.open
index 6a96a22eef..4e6059b34e 100644
--- a/usr/src/tools/findunref/exception_list.open
+++ b/usr/src/tools/findunref/exception_list.open
@@ -245,12 +245,6 @@
./usr/src/cmd/sgs/rtld/common/mapfile-order-gcc
#
-# Ignore compiler dependent header files for fpscrubber
-# and sparc prototype files
-#
-./usr/src/cmd/fps/fptest/singdoub*
-
-#
# The sharemgr command is built 32-bit only by default, but support
# for building 64-bit is latent in the Makefiles.
#
diff --git a/usr/src/uts/Makefile.uts b/usr/src/uts/Makefile.uts
index 3f97a3a4fd..9107d00708 100644
--- a/usr/src/uts/Makefile.uts
+++ b/usr/src/uts/Makefile.uts
@@ -212,6 +212,7 @@ AS_CPPFLAGS = $(ALWAYS_DEFS) $(ALL_DEFS) $(CONFIG_DEFS) $(AS_DEFS) \
# Override the default, the kernel is squeaky clean
CERRWARN = -errtags=yes -errwarn=%all
+$(__GNUC4)CERRWARN += -_gcc=-Wno-address
C99MODE = $(C99_ENABLE)
diff --git a/usr/src/uts/common/avs/ns/dsw/dsw_dev.c b/usr/src/uts/common/avs/ns/dsw/dsw_dev.c
index f9cd9a9ead..098990bc15 100644
--- a/usr/src/uts/common/avs/ns/dsw/dsw_dev.c
+++ b/usr/src/uts/common/avs/ns/dsw/dsw_dev.c
@@ -32,6 +32,7 @@
#include <sys/debug.h>
#include <sys/ddi.h>
#include <sys/nsc_thread.h>
+#include <sys/sysmacros.h>
#include <sys/unistat/spcs_s.h>
#include <sys/unistat/spcs_errors.h>
@@ -67,7 +68,7 @@
#define II_TAIL_COPY(d, s, m, t) bcopy(&(s.m), &(d.m), \
- sizeof (d) - (uint_t)&((t *)0)->m)
+ sizeof (d) - (uintptr_t)&((t *)0)->m)
extern dev_info_t *ii_dip;
#define II_LINK_CLUSTER(ip, cluster) \
@@ -4234,7 +4235,8 @@ _ii_gc_list(intptr_t arg, int ilp32, int *rvp, kmutex_t *mutex,
{
dsw_aioctl_t ulist;
dsw_aioctl32_t ulist32;
- int name_offset, i;
+ size_t name_offset;
+ int i;
spcs_s_info_t kstatus;
char *carg = (char *)arg;
uint64_t hash;
@@ -4242,13 +4244,13 @@ _ii_gc_list(intptr_t arg, int ilp32, int *rvp, kmutex_t *mutex,
_ii_lstinfo_t *np;
*rvp = 0;
- name_offset = (int)&(((dsw_aioctl_t *)0)->shadow_vol[0]);
+ name_offset = offsetof(dsw_aioctl_t, shadow_vol[0]);
if (ilp32) {
if (copyin((void *) arg, &ulist32, sizeof (ulist32)) < 0)
return (EFAULT);
II_TAIL_COPY(ulist, ulist32, flags, dsw_aioctl_t);
ulist.status = (spcs_s_info_t)ulist32.status;
- name_offset = (int)&(((dsw_aioctl32_t *)0)->shadow_vol[0]);
+ name_offset = offsetof(dsw_aioctl32_t, shadow_vol[0]);
} else if (copyin((void *) arg, &ulist, sizeof (ulist)) < 0)
return (EFAULT);
@@ -4323,20 +4325,21 @@ _ii_olist(intptr_t arg, int ilp32, int *rvp)
dsw_aioctl_t ulist;
dsw_aioctl32_t ulist32;
_ii_overflow_t *op;
+ size_t name_offset;
int rc = 0;
- int name_offset, i;
+ int i;
char *carg = (char *)arg;
spcs_s_info_t kstatus;
*rvp = 0;
- name_offset = (int)&(((dsw_aioctl_t *)0)->shadow_vol[0]);
+ name_offset = offsetof(dsw_aioctl_t, shadow_vol[0]);
if (ilp32) {
if (copyin((void *)arg, &ulist32, sizeof (ulist32)) < 0)
return (EFAULT);
II_TAIL_COPY(ulist, ulist32, flags, dsw_aioctl_t);
ulist.status = (spcs_s_info_t)ulist32.status;
- name_offset = (int)&(((dsw_aioctl32_t *)0)->shadow_vol[0]);
+ name_offset = offsetof(dsw_aioctl32_t, shadow_vol[0]);
} else if (copyin((void *)arg, &ulist, sizeof (ulist)) < 0)
return (EFAULT);
@@ -5220,7 +5223,7 @@ int
_ii_acopy(intptr_t arg, int ilp32, int *rvp)
{
int rc;
- int name_offset;
+ size_t name_offset;
char *list;
char *nptr;
char name[DSW_NAMELEN];
@@ -5230,14 +5233,14 @@ _ii_acopy(intptr_t arg, int ilp32, int *rvp)
*rvp = 0;
- name_offset = (int)&(((dsw_aioctl_t *)0)->shadow_vol[0]);
+ name_offset = offsetof(dsw_aioctl_t, shadow_vol[0]);
if (ilp32) {
if (copyin((void *)arg, &ucopy32, sizeof (ucopy32)) < 0)
return (EFAULT);
II_TAIL_COPY(ucopy, ucopy32, flags, dsw_ioctl_t);
ucopy.status = (spcs_s_info_t)ucopy32.status;
- name_offset = (int)&(((dsw_aioctl32_t *)0)->shadow_vol[0]);
+ name_offset = offsetof(dsw_aioctl32_t, shadow_vol[0]);
} else if (copyin((void *)arg, &ucopy, sizeof (ucopy)) < 0)
return (EFAULT);
diff --git a/usr/src/uts/common/ctf/mapfile b/usr/src/uts/common/ctf/mapfile
index ca83165803..40f300686e 100644
--- a/usr/src/uts/common/ctf/mapfile
+++ b/usr/src/uts/common/ctf/mapfile
@@ -82,6 +82,7 @@ SYMBOL_SCOPE {
ctf_open;
ctf_parent_file;
ctf_parent_name;
+ ctf_parent_label;
ctf_setmodel;
ctf_setspecific;
ctf_set_array;
diff --git a/usr/src/uts/common/fs/udfs/udf_alloc.c b/usr/src/uts/common/fs/udfs/udf_alloc.c
index baf78a80e9..0f0c32a85e 100644
--- a/usr/src/uts/common/fs/udfs/udf_alloc.c
+++ b/usr/src/uts/common/fs/udfs/udf_alloc.c
@@ -24,8 +24,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/t_lock.h>
#include <sys/param.h>
@@ -175,10 +173,10 @@ ud_alloc_space(struct vfs *vfsp, uint16_t prn,
if (ud_part->udp_nfree != 0) {
if (ud_part->udp_flags == UDP_BITMAPS) {
error = ud_alloc_space_bmap(vfsp, ud_part, proximity,
- blkcount, start_blkno, size, less_is_ok);
+ blkcount, start_blkno, size, less_is_ok);
} else {
error = ud_alloc_space_stbl(vfsp, ud_part, proximity,
- blkcount, start_blkno, size, less_is_ok);
+ blkcount, start_blkno, size, less_is_ok);
}
if (error == 0) {
mutex_enter(&udf_vfsp->udf_lock);
@@ -258,7 +256,7 @@ ud_alloc_space_bmap(struct vfs *vfsp,
*/
temp = blkcount;
if (ud_check_free_and_mark_used(vfsp,
- ud_part, proximity, &temp) == 0) {
+ ud_part, proximity, &temp) == 0) {
if (temp != 0) {
*start_blkno = proximity;
*size = temp;
@@ -290,17 +288,17 @@ retry:
* due to the way bread is implemented
*/
if ((bp == NULL) ||
- ((eblk - bno) < blkcount)) {
+ ((eblk - bno) < blkcount)) {
if (bp != NULL) {
brelse(bp);
}
begin = ud_part->udp_unall_loc +
- bno / bb_count;
+ bno / bb_count;
bp = ud_bread(vfsp->vfs_dev,
- ud_xlate_to_daddr(udf_vfsp,
- ud_part->udp_number,
- begin, 1, &dummy)
- << udf_vfsp->udf_l2d_shift, lbsz);
+ ud_xlate_to_daddr(udf_vfsp,
+ ud_part->udp_number,
+ begin, 1, &dummy)
+ << udf_vfsp->udf_l2d_shift, lbsz);
if (bp->b_flags & B_ERROR) {
brelse(bp);
return (EIO);
@@ -317,14 +315,14 @@ retry:
temp = blkcount;
}
if ((new_size = ud_check_free(addr, eaddr,
- bno - bblk, temp)) == temp) {
+ bno - bblk, temp)) == temp) {
ud_mark_used(addr, bno - bblk, temp);
bdwrite(bp);
*start_blkno = bno - HDR_BLKS;
*size = temp;
mutex_enter(&udf_vfsp->udf_lock);
ud_part->udp_last_alloc =
- bno + temp - HDR_BLKS;
+ bno + temp - HDR_BLKS;
mutex_exit(&udf_vfsp->udf_lock);
return (0);
}
@@ -380,7 +378,7 @@ retry:
* already allocated behind us
*/
if (ud_check_free_and_mark_used(vfsp,
- ud_part, old_loc, &old_size) == 0) {
+ ud_part, old_loc, &old_size) == 0) {
if (old_size != 0) {
*start_blkno = old_loc;
*size = old_size;
@@ -423,9 +421,9 @@ ud_check_free_and_mark_used(struct vfs *vfsp,
*/
begin = ud_part->udp_unall_loc + (start / bb_count);
bp = ud_bread(vfsp->vfs_dev,
- ud_xlate_to_daddr(udf_vfsp, ud_part->udp_number,
- begin, 1, &dummy) << udf_vfsp->udf_l2d_shift,
- udf_vfsp->udf_lbsize);
+ ud_xlate_to_daddr(udf_vfsp, ud_part->udp_number,
+ begin, 1, &dummy) << udf_vfsp->udf_l2d_shift,
+ udf_vfsp->udf_lbsize);
if (bp->b_flags & B_ERROR) {
brelse(bp);
return (EIO);
@@ -440,8 +438,8 @@ ud_check_free_and_mark_used(struct vfs *vfsp,
ASSERT(*count > 0);
}
if (ud_check_free((uint8_t *)bp->b_un.b_addr,
- (uint8_t *)bp->b_un.b_addr + bp->b_bcount,
- start, *count) != *count) {
+ (uint8_t *)bp->b_un.b_addr + bp->b_bcount, start,
+ *count) != *count) {
brelse(bp);
return (1);
}
@@ -517,9 +515,8 @@ ud_alloc_space_stbl(struct vfs *vfsp,
ASSERT((ud_part->udp_unall_len + 40) <= udf_vfsp->udf_lbsize);
bp = ud_bread(vfsp->vfs_dev,
- ud_xlate_to_daddr(udf_vfsp, ud_part->udp_number,
- ud_part->udp_unall_loc, 1, &temp),
- udf_vfsp->udf_lbsize);
+ ud_xlate_to_daddr(udf_vfsp, ud_part->udp_number,
+ ud_part->udp_unall_loc, 1, &temp), udf_vfsp->udf_lbsize);
use = (struct unall_space_ent *)bp->b_un.b_addr;
sz = SWAP_32(use->use_len_ad);
@@ -538,7 +535,7 @@ ud_alloc_space_stbl(struct vfs *vfsp,
larg_index = larg_sz = 0;
for (index = 0; index < count; index++, sad++) {
temp = SWAP_32(sad->sad_ext_len) >>
- udf_vfsp->udf_l2b_shift;
+ udf_vfsp->udf_l2b_shift;
if (temp == blkcount) {
/*
* We found the right fit
@@ -559,7 +556,7 @@ ud_alloc_space_stbl(struct vfs *vfsp,
*start_blkno = SWAP_32(sad->sad_ext_loc);
*size = blkcount;
temp = (temp - blkcount) <<
- udf_vfsp->udf_l2b_shift;
+ udf_vfsp->udf_l2b_shift;
sad->sad_ext_len = SWAP_32(temp);
temp = SWAP_32(sad->sad_ext_loc) + blkcount;
sad->sad_ext_loc = SWAP_32(temp);
@@ -577,8 +574,7 @@ ud_alloc_space_stbl(struct vfs *vfsp,
}
}
compress_sad:
- if ((less_is_ok) &&
- (larg_sz != 0)) {
+ if ((less_is_ok) && (larg_sz != 0)) {
/*
* If we came here we could
* not find a extent to cover the entire size
@@ -590,7 +586,7 @@ compress_sad:
*start_blkno = SWAP_32(sad->sad_ext_loc);
*size = larg_sz;
for (index = larg_index; index < count;
- index++, sad++) {
+ index++, sad++) {
*sad = *(sad+1);
}
sz -= sizeof (struct short_ad);
@@ -613,7 +609,7 @@ compress_sad:
larg_index = larg_sz = 0;
for (index = 0; index < count; index++, lad++) {
temp = SWAP_32(lad->lad_ext_len) >>
- udf_vfsp->udf_l2b_shift;
+ udf_vfsp->udf_l2b_shift;
if (temp == blkcount) {
/*
* We found the right fit
@@ -634,7 +630,7 @@ compress_sad:
*start_blkno = SWAP_32(lad->lad_ext_loc);
*size = blkcount;
temp = (temp - blkcount) <<
- udf_vfsp->udf_l2b_shift;
+ udf_vfsp->udf_l2b_shift;
lad->lad_ext_len = SWAP_32(temp);
temp = SWAP_32(lad->lad_ext_loc) + blkcount;
lad->lad_ext_loc = SWAP_32(temp);
@@ -652,8 +648,7 @@ compress_sad:
}
}
compress_lad:
- if ((less_is_ok) &&
- (larg_sz != 0)) {
+ if ((less_is_ok) && (larg_sz != 0)) {
/*
* If we came here we could
* not find a extent to cover the entire size
@@ -665,7 +660,7 @@ compress_lad:
*start_blkno = SWAP_32(lad->lad_ext_loc);
*size = larg_sz;
for (index = larg_index; index < count;
- index++, lad++) {
+ index++, lad++) {
*lad = *(lad+1);
}
sz -= sizeof (struct long_ad);
@@ -755,7 +750,7 @@ ud_free_space_bmap(struct vfs *vfsp,
udf_vfsp = (struct udf_vfs *)vfsp->vfs_data;
if ((ud_part->udp_freed_len == 0) &&
- (ud_part->udp_unall_len == 0)) {
+ (ud_part->udp_unall_len == 0)) {
return (ENOSPC);
}
/*
@@ -782,10 +777,8 @@ ud_free_space_bmap(struct vfs *vfsp,
for (block = begin; block <= end; block++) {
bp = ud_bread(vfsp->vfs_dev,
- ud_xlate_to_daddr(udf_vfsp,
- ud_part->udp_number, block, 1, &dummy)
- << udf_vfsp->udf_l2d_shift,
- udf_vfsp->udf_lbsize);
+ ud_xlate_to_daddr(udf_vfsp, ud_part->udp_number, block, 1,
+ &dummy) << udf_vfsp->udf_l2d_shift, udf_vfsp->udf_lbsize);
if (bp->b_flags & B_ERROR) {
brelse(bp);
return (EIO);
@@ -855,8 +848,7 @@ ud_free_space_stbl(struct vfs *vfsp,
ASSERT(ud_part);
ASSERT(ud_part->udp_flags == UDP_SPACETBLS);
- if ((ud_part->udp_freed_len == 0) &&
- (ud_part->udp_unall_len == 0)) {
+ if ((ud_part->udp_freed_len == 0) && (ud_part->udp_unall_len == 0)) {
return (ENOSPC);
}
@@ -870,8 +862,8 @@ ud_free_space_stbl(struct vfs *vfsp,
ASSERT((ud_part->udp_unall_len + 40) <= udf_vfsp->udf_lbsize);
bp = ud_bread(vfsp->vfs_dev,
- ud_xlate_to_daddr(udf_vfsp, ud_part->udp_number,
- block, 1, &dummy), udf_vfsp->udf_lbsize);
+ ud_xlate_to_daddr(udf_vfsp, ud_part->udp_number, block, 1, &dummy),
+ udf_vfsp->udf_lbsize);
use = (struct unall_space_ent *)bp->b_un.b_addr;
sz = SWAP_32(use->use_len_ad);
@@ -888,14 +880,14 @@ ud_free_space_stbl(struct vfs *vfsp,
*/
for (index = 0; index < count; index++, sad++) {
if (beginblk == (SWAP_32(sad->sad_ext_loc) +
- (SWAP_32(sad->sad_ext_len) /
- udf_vfsp->udf_lbsize))) {
+ (SWAP_32(sad->sad_ext_len) /
+ udf_vfsp->udf_lbsize))) {
dummy = SWAP_32(sad->sad_ext_len) +
- blkcount * udf_vfsp->udf_lbsize;
+ blkcount * udf_vfsp->udf_lbsize;
sad->sad_ext_len = SWAP_32(dummy);
goto end;
} else if ((beginblk + blkcount) ==
- SWAP_32(sad->sad_ext_loc)) {
+ SWAP_32(sad->sad_ext_loc)) {
sad->sad_ext_loc = SWAP_32(beginblk);
goto end;
}
@@ -906,7 +898,7 @@ ud_free_space_stbl(struct vfs *vfsp,
* Check if we space.
*/
if ((40 + sz + sizeof (struct short_ad)) >
- udf_vfsp->udf_lbsize) {
+ udf_vfsp->udf_lbsize) {
error = ENOSPC;
goto end;
}
@@ -934,14 +926,14 @@ ud_free_space_stbl(struct vfs *vfsp,
*/
for (index = 0; index < count; index++, lad++) {
if (beginblk == (SWAP_32(lad->lad_ext_loc) +
- (SWAP_32(lad->lad_ext_len) /
- udf_vfsp->udf_lbsize))) {
+ (SWAP_32(lad->lad_ext_len) /
+ udf_vfsp->udf_lbsize))) {
dummy = SWAP_32(lad->lad_ext_len) +
- blkcount * udf_vfsp->udf_lbsize;
+ blkcount * udf_vfsp->udf_lbsize;
lad->lad_ext_len = SWAP_32(dummy);
goto end;
} else if ((beginblk + blkcount) ==
- SWAP_32(lad->lad_ext_loc)) {
+ SWAP_32(lad->lad_ext_loc)) {
lad->lad_ext_loc = SWAP_32(beginblk);
goto end;
}
@@ -952,7 +944,7 @@ ud_free_space_stbl(struct vfs *vfsp,
* Check if we space.
*/
if ((40 + sz + sizeof (struct long_ad)) >
- udf_vfsp->udf_lbsize) {
+ udf_vfsp->udf_lbsize) {
error = ENOSPC;
goto end;
}
@@ -1019,7 +1011,7 @@ ud_ialloc(struct ud_inode *pip,
prn = pip->i_icb_prn;
if ((err = ud_alloc_space(pip->i_vfs, prn,
- 0, 1, &blkno, &size, 0, 1)) != 0) {
+ 0, 1, &blkno, &size, 0, 1)) != 0) {
return (err);
}
loc = ud_xlate_to_daddr(udf_vfsp, prn, blkno, 1, &dummy);
@@ -1048,8 +1040,8 @@ ud_ialloc(struct ud_inode *pip,
* 3) Otherwise, set the group-id to the gid of the parent directory.
*/
if ((vap->va_mask & AT_GID) &&
- ((vap->va_gid == pip->i_gid) || groupmember(vap->va_gid, cr) ||
- secpolicy_vnode_create_gid(cr) == 0)) {
+ ((vap->va_gid == pip->i_gid) || groupmember(vap->va_gid, cr) ||
+ secpolicy_vnode_create_gid(cr) == 0)) {
/*
* XXX - is this only the case when a 4.0 NFS client, or a
* client derived from that code, makes a call over the wire?
@@ -1058,7 +1050,7 @@ ud_ialloc(struct ud_inode *pip,
} else {
gid = crgetgid(cr);
fe->fe_gid = (pip->i_char & ISGID) ?
- SWAP_32(pip->i_gid) : SWAP_32(gid);
+ SWAP_32(pip->i_gid) : SWAP_32(gid);
}
imode = MAKEIMODE(vap->va_type, vap->va_mode);
@@ -1115,19 +1107,18 @@ ud_ialloc(struct ud_inode *pip,
mutex_exit(&udf_vfsp->udf_lock);
ea_len = 0;
- if ((vap->va_type == VBLK) ||
- (vap->va_type == VCHR)) {
+ if ((vap->va_type == VBLK) || (vap->va_type == VCHR)) {
eah = (struct ext_attr_hdr *)fe->fe_spec;
ea_len = (sizeof (struct ext_attr_hdr) + 3) & ~3;
eah->eah_ial = SWAP_32(ea_len);
ds = (struct dev_spec_ear *)&fe->fe_spec[ea_len];
ea_len += ud_make_dev_spec_ear(ds,
- getmajor(vap->va_rdev), getminor(vap->va_rdev));
+ getmajor(vap->va_rdev), getminor(vap->va_rdev));
ea_len = (ea_len + 3) & ~3;
eah->eah_aal = SWAP_32(ea_len);
ud_make_tag(udf_vfsp, &eah->eah_tag,
- UD_EXT_ATTR_HDR, blkno, ea_len);
+ UD_EXT_ATTR_HDR, blkno, ea_len);
}
fe->fe_len_ear = SWAP_32(ea_len);
@@ -1172,7 +1163,7 @@ ud_ialloc(struct ud_inode *pip,
} else {
if ((ichar & ISGID) &&
secpolicy_vnode_setids_setgids(cr,
- (gid_t)SWAP_32(fe->fe_gid)) != 0) {
+ (gid_t)SWAP_32(fe->fe_gid)) != 0) {
ichar &= ~ISGID;
}
}
@@ -1187,8 +1178,8 @@ ud_ialloc(struct ud_inode *pip,
}
icb->itag_flags = SWAP_16(flags);
ud_make_tag(udf_vfsp, &fe->fe_tag, UD_FILE_ENTRY, blkno,
- ((uint32_t)&((struct file_entry *)0)->fe_spec) +
- SWAP_32(fe->fe_len_ear) + SWAP_32(fe->fe_len_adesc));
+ offsetof(struct file_entry, fe_spec) +
+ SWAP_32(fe->fe_len_ear) + SWAP_32(fe->fe_len_adesc));
BWRITE2(bp);
@@ -1206,7 +1197,7 @@ ud_ialloc(struct ud_inode *pip,
if ((ip = ud_search_icache(pip->i_vfs, prn, blkno)) != NULL) {
cmn_err(CE_NOTE, "duplicate %p %x\n",
- (void *)ip, (uint32_t)ip->i_icb_lbano);
+ (void *)ip, (uint32_t)ip->i_icb_lbano);
}
}
#endif
@@ -1239,8 +1230,7 @@ ud_ifree(struct ud_inode *ip, vtype_t type)
udf_vfsp = (struct udf_vfs *)ip->i_vfs->vfs_data;
bp = ud_bread(ip->i_dev, ip->i_icb_lbano <<
- udf_vfsp->udf_l2d_shift,
- udf_vfsp->udf_lbsize);
+ udf_vfsp->udf_l2d_shift, udf_vfsp->udf_lbsize);
if (bp->b_flags & B_ERROR) {
/*
* Error get rid of bp
@@ -1253,8 +1243,7 @@ ud_ifree(struct ud_inode *ip, vtype_t type)
bzero(bp->b_un.b_addr, 0x10);
BWRITE(bp);
}
- ud_free_space(ip->i_vfs, ip->i_icb_prn,
- ip->i_icb_block, 1);
+ ud_free_space(ip->i_vfs, ip->i_icb_prn, ip->i_icb_block, 1);
mutex_enter(&udf_vfsp->udf_lock);
if (type == VDIR) {
if (udf_vfsp->udf_ndirs > 1) {
@@ -1377,8 +1366,7 @@ ud_alloc_from_cache(struct udf_vfs *udf_vfsp,
mutex_exit(&udf_vfsp->udf_lock);
/* allocate new cluster */
if ((error = ud_alloc_space(udf_vfsp->udf_vfs,
- part->udp_number, 0, CLSTR_SIZE,
- &bno, &sz, 1, 0)) != 0) {
+ part->udp_number, 0, CLSTR_SIZE, &bno, &sz, 1, 0)) != 0) {
return (error);
}
if (sz == 0) {
@@ -1424,7 +1412,7 @@ ud_release_cache(struct udf_vfs *udf_vfsp)
part->udp_cache_count = 0;
mutex_exit(&udf_vfsp->udf_lock);
ud_free_space(udf_vfsp->udf_vfs,
- part->udp_number, start, nblks);
+ part->udp_number, start, nblks);
mutex_enter(&udf_vfsp->udf_lock);
}
}
diff --git a/usr/src/uts/common/fs/udfs/udf_inode.c b/usr/src/uts/common/fs/udfs/udf_inode.c
index e30a5ffe6d..62e446c926 100644
--- a/usr/src/uts/common/fs/udfs/udf_inode.c
+++ b/usr/src/uts/common/fs/udfs/udf_inode.c
@@ -1237,7 +1237,7 @@ ud_iupdat(struct ud_inode *ip, int32_t waitfor)
ud_update_regid(&fe->fe_impl_id);
- crc_len = ((uint32_t)&((struct file_entry *)0)->fe_spec) +
+ crc_len = offsetof(struct file_entry, fe_spec) +
SWAP_32(fe->fe_len_ear);
if (ip->i_desc_type == ICB_FLAG_ONE_AD) {
crc_len += ip->i_size;
diff --git a/usr/src/uts/common/fs/udfs/udf_vnops.c b/usr/src/uts/common/fs/udfs/udf_vnops.c
index f3f024d6ae..432134e3bf 100644
--- a/usr/src/uts/common/fs/udfs/udf_vnops.c
+++ b/usr/src/uts/common/fs/udfs/udf_vnops.c
@@ -2831,7 +2831,7 @@ ud_putapage(struct vnode *vp,
(void) kcopy(kaddr, caddr, ip->i_size);
ppmapout(kaddr);
}
- crc_len = ((uint32_t)&((struct file_entry *)0)->fe_spec) +
+ crc_len = offsetof(struct file_entry, fe_spec) +
SWAP_32(fe->fe_len_ear);
crc_len += ip->i_size;
ud_make_tag(ip->i_udf, &fe->fe_tag,
diff --git a/usr/src/uts/common/gssapi/gssd_clnt_stubs.c b/usr/src/uts/common/gssapi/gssd_clnt_stubs.c
index e21a21b72d..5e50d4b42f 100644
--- a/usr/src/uts/common/gssapi/gssd_clnt_stubs.c
+++ b/usr/src/uts/common/gssapi/gssd_clnt_stubs.c
@@ -376,7 +376,7 @@ kgss_add_cred_wrapped(minor_status,
arg.uid = (OM_uint32)uid;
arg.input_cred_handle.GSS_CRED_ID_T_len =
input_cred_handle ==
- (gssd_cred_id_t)GSS_C_NO_CREDENTIAL ?
+ (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL ?
0 : (uint_t)sizeof (gssd_cred_id_t);
arg.input_cred_handle.GSS_CRED_ID_T_val = (char *)&input_cred_handle;
arg.gssd_cred_verifier = gssd_cred_verifier;
@@ -495,8 +495,10 @@ kgss_add_cred(minor_status,
if (input_cred_handle != GSS_C_NO_CREDENTIAL) {
gssd_cred_verifier = KCRED_TO_CREDV(input_cred_handle);
gssd_input_cred_handle = KCRED_TO_CRED(input_cred_handle);
- } else
- gssd_input_cred_handle = (gssd_cred_id_t)GSS_C_NO_CREDENTIAL;
+ } else {
+ gssd_input_cred_handle =
+ (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL;
+ }
err = kgss_add_cred_wrapped(minor_status, gssd_input_cred_handle,
gssd_cred_verifier, desired_name, desired_mech_type,
@@ -638,15 +640,15 @@ kgss_init_sec_context_wrapped(
if ((clnt = getgssd_handle()) == NULL) {
GSSLOG(1,
- "kgss_init_sec_context: can't connect to server on %s\n",
- server);
+ "kgss_init_sec_context: can't connect to server on %s\n",
+ server);
return (GSS_S_FAILURE);
}
/* convert the target name from internal to external format */
if (gss_display_name(&minor_status_temp, target_name,
- &external_name, &name_type) != GSS_S_COMPLETE) {
+ &external_name, &name_type) != GSS_S_COMPLETE) {
*minor_status = (OM_uint32) minor_status_temp;
killgssd_handle(clnt);
@@ -660,34 +662,38 @@ kgss_init_sec_context_wrapped(
arg.uid = (OM_uint32)uid;
arg.context_handle.GSS_CTX_ID_T_len =
- *context_handle == (gssd_ctx_id_t)GSS_C_NO_CONTEXT ?
- 0 : (uint_t)sizeof (gssd_ctx_id_t);
+ *context_handle == (gssd_ctx_id_t)(uintptr_t)GSS_C_NO_CONTEXT ?
+ 0 : (uint_t)sizeof (gssd_ctx_id_t);
arg.context_handle.GSS_CTX_ID_T_val = (char *)context_handle;
arg.gssd_context_verifier = *gssd_context_verifier;
- arg.claimant_cred_handle.GSS_CRED_ID_T_len =
- claimant_cred_handle == (gssd_cred_id_t)GSS_C_NO_CREDENTIAL ?
- 0 : (uint_t)sizeof (gssd_cred_id_t);
+ if (claimant_cred_handle ==
+ (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL) {
+ arg.claimant_cred_handle.GSS_CRED_ID_T_len = 0;
+ } else {
+ arg.claimant_cred_handle.GSS_CRED_ID_T_len =
+ (uint_t)sizeof (gss_cred_id_t);
+ }
+
arg.claimant_cred_handle.GSS_CRED_ID_T_val =
- (char *)&claimant_cred_handle;
+ (char *)&claimant_cred_handle;
arg.gssd_cred_verifier = gssd_cred_verifier;
arg.target_name.GSS_BUFFER_T_len = (uint_t)external_name.length;
arg.target_name.GSS_BUFFER_T_val = (char *)external_name.value;
arg.name_type.GSS_OID_len =
- name_type == GSS_C_NULL_OID ?
- 0 : (uint_t)name_type->length;
+ name_type == GSS_C_NULL_OID ? 0 : (uint_t)name_type->length;
arg.name_type.GSS_OID_val =
- name_type == GSS_C_NULL_OID ?
- (char *)NULL : (char *)name_type->elements;
+ name_type == GSS_C_NULL_OID ?
+ (char *)NULL : (char *)name_type->elements;
- arg.mech_type.GSS_OID_len = (uint_t)(mech_type != GSS_C_NULL_OID ?
- mech_type->length : 0);
- arg.mech_type.GSS_OID_val = (char *)(mech_type != GSS_C_NULL_OID ?
- mech_type->elements : 0);
+ arg.mech_type.GSS_OID_len =
+ (uint_t)(mech_type != GSS_C_NULL_OID ? mech_type->length : 0);
+ arg.mech_type.GSS_OID_val =
+ (char *)(mech_type != GSS_C_NULL_OID ? mech_type->elements : 0);
arg.req_flags = req_flags;
@@ -696,21 +702,21 @@ kgss_init_sec_context_wrapped(
if (input_chan_bindings != GSS_C_NO_CHANNEL_BINDINGS) {
arg.input_chan_bindings.present = YES;
arg.input_chan_bindings.initiator_addrtype =
- input_chan_bindings->initiator_addrtype;
+ input_chan_bindings->initiator_addrtype;
arg.input_chan_bindings.initiator_address.GSS_BUFFER_T_len =
- (uint_t)input_chan_bindings->initiator_address.length;
+ (uint_t)input_chan_bindings->initiator_address.length;
arg.input_chan_bindings.initiator_address.GSS_BUFFER_T_val =
- (void *)input_chan_bindings->initiator_address.value;
+ (void *)input_chan_bindings->initiator_address.value;
arg.input_chan_bindings.acceptor_addrtype =
- input_chan_bindings->acceptor_addrtype;
+ input_chan_bindings->acceptor_addrtype;
arg.input_chan_bindings.acceptor_address.GSS_BUFFER_T_len =
- (uint_t)input_chan_bindings->acceptor_address.length;
+ (uint_t)input_chan_bindings->acceptor_address.length;
arg.input_chan_bindings.acceptor_address.GSS_BUFFER_T_val =
- (void *)input_chan_bindings->acceptor_address.value;
+ (void *)input_chan_bindings->acceptor_address.value;
arg.input_chan_bindings.application_data.GSS_BUFFER_T_len =
- (uint_t)input_chan_bindings->application_data.length;
+ (uint_t)input_chan_bindings->application_data.length;
arg.input_chan_bindings.application_data.GSS_BUFFER_T_val =
- (void *)input_chan_bindings->application_data.value;
+ (void *)input_chan_bindings->application_data.value;
} else {
arg.input_chan_bindings.present = NO;
arg.input_chan_bindings.initiator_addrtype = 0;
@@ -724,11 +730,9 @@ kgss_init_sec_context_wrapped(
}
arg.input_token.GSS_BUFFER_T_len =
- (uint_t)(input_token != GSS_C_NO_BUFFER ?
- input_token->length : 0);
+ (uint_t)(input_token != GSS_C_NO_BUFFER ? input_token->length : 0);
arg.input_token.GSS_BUFFER_T_val =
- (char *)(input_token != GSS_C_NO_BUFFER ?
- input_token->value : 0);
+ (char *)(input_token != GSS_C_NO_BUFFER ? input_token->value : 0);
/* call the remote procedure */
@@ -766,41 +770,36 @@ kgss_init_sec_context_wrapped(
if (output_token != NULL && res.output_token.GSS_BUFFER_T_val != NULL) {
output_token->length =
- (size_t)res.output_token.GSS_BUFFER_T_len;
+ (size_t)res.output_token.GSS_BUFFER_T_len;
output_token->value =
- (void *)MALLOC(output_token->length);
+ (void *)MALLOC(output_token->length);
(void) memcpy(output_token->value,
- res.output_token.GSS_BUFFER_T_val,
- output_token->length);
+ res.output_token.GSS_BUFFER_T_val, output_token->length);
}
/* if the call was successful, copy out the results */
if (res.status == (OM_uint32) GSS_S_COMPLETE ||
- res.status == (OM_uint32) GSS_S_CONTINUE_NEEDED) {
+ res.status == (OM_uint32) GSS_S_CONTINUE_NEEDED) {
/*
* if the return code is GSS_S_CONTINUE_NEEDED
* ignore all return parameters except for
* status codes, output token and context handle.
*/
*context_handle =
- *((gssd_ctx_id_t *)
- res.context_handle.GSS_CTX_ID_T_val);
+ *((gssd_ctx_id_t *)res.context_handle.GSS_CTX_ID_T_val);
*gssd_context_verifier = res.gssd_context_verifier;
if (res.status == GSS_S_COMPLETE) {
if (actual_mech_type != NULL) {
*actual_mech_type =
- (gss_OID) MALLOC(sizeof (gss_OID_desc));
+ (gss_OID) MALLOC(sizeof (gss_OID_desc));
(*actual_mech_type)->length =
- (OM_UINT32)
- res.actual_mech_type.GSS_OID_len;
+ (OM_UINT32)res.actual_mech_type.GSS_OID_len;
(*actual_mech_type)->elements =
- (void *)
- MALLOC((*actual_mech_type)->length);
+ (void *)MALLOC((*actual_mech_type)->length);
(void) memcpy((*actual_mech_type)->elements,
- (void *)
- res.actual_mech_type.GSS_OID_val,
- (*actual_mech_type)->length);
+ (void *)res.actual_mech_type.GSS_OID_val,
+ (*actual_mech_type)->length);
}
@@ -893,7 +892,7 @@ kgss_init_sec_context(
* upcalls to gssd.
*/
kctx->mech = &default_gc;
- kctx->gssd_ctx = (gssd_ctx_id_t)GSS_C_NO_CONTEXT;
+ kctx->gssd_ctx = (gssd_ctx_id_t)(uintptr_t)GSS_C_NO_CONTEXT;
*context_handle = (gss_ctx_id_t)kctx;
} else
kctx = (struct kgss_ctx *)*context_handle;
@@ -901,8 +900,10 @@ kgss_init_sec_context(
if (claimant_cred_handle != GSS_C_NO_CREDENTIAL) {
gssd_cred_verifier = KCRED_TO_CREDV(claimant_cred_handle);
gssd_cl_cred_handle = KCRED_TO_CRED(claimant_cred_handle);
- } else
- gssd_cl_cred_handle = (gssd_cred_id_t)GSS_C_NO_CREDENTIAL;
+ } else {
+ gssd_cl_cred_handle =
+ (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL;
+ }
/*
* We need to know the resulting mechanism oid, so allocate
@@ -912,10 +913,10 @@ kgss_init_sec_context(
actual_mech_type = &amt;
err = kgss_init_sec_context_wrapped(minor_status, gssd_cl_cred_handle,
- gssd_cred_verifier, &kctx->gssd_ctx, &kctx->gssd_ctx_verifier,
- target_name, mech_type, req_flags, time_req,
- input_chan_bindings, input_token, actual_mech_type,
- output_token, ret_flags, time_rec, uid);
+ gssd_cred_verifier, &kctx->gssd_ctx, &kctx->gssd_ctx_verifier,
+ target_name, mech_type, req_flags, time_req,
+ input_chan_bindings, input_token, actual_mech_type,
+ output_token, ret_flags, time_rec, uid);
if (GSS_ERROR(err)) {
KGSS_FREE(kctx);
@@ -965,8 +966,8 @@ kgss_accept_sec_context_wrapped(
if ((clnt = getgssd_handle()) == NULL) {
GSSLOG(1,
- "kgss_accept_sec_context: can't connect to server on %s\n",
- server);
+ "kgss_accept_sec_context: can't connect to server on %s\n",
+ server);
return (GSS_S_FAILURE);
}
@@ -975,44 +976,42 @@ kgss_accept_sec_context_wrapped(
arg.uid = (OM_uint32)uid;
arg.context_handle.GSS_CTX_ID_T_len =
- *context_handle == (gssd_ctx_id_t)GSS_C_NO_CONTEXT ?
- 0 : (uint_t)sizeof (gssd_ctx_id_t);
+ *context_handle == (gssd_ctx_id_t)(uintptr_t)GSS_C_NO_CONTEXT ?
+ 0 : (uint_t)sizeof (gssd_ctx_id_t);
arg.context_handle.GSS_CTX_ID_T_val = (char *)context_handle;
arg.gssd_context_verifier = *gssd_context_verifier;
arg.verifier_cred_handle.GSS_CRED_ID_T_len =
- verifier_cred_handle ==
- (gssd_cred_id_t)GSS_C_NO_CREDENTIAL ?
- 0 : (uint_t)sizeof (gssd_cred_id_t);
+ verifier_cred_handle ==
+ (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL ?
+ 0 : (uint_t)sizeof (gssd_cred_id_t);
arg.verifier_cred_handle.GSS_CRED_ID_T_val =
- (char *)&verifier_cred_handle;
+ (char *)&verifier_cred_handle;
arg.gssd_cred_verifier = gssd_cred_verifier;
arg.input_token_buffer.GSS_BUFFER_T_len =
- (uint_t)(input_token != GSS_C_NO_BUFFER ?
- input_token->length : 0);
+ (uint_t)(input_token != GSS_C_NO_BUFFER ? input_token->length : 0);
arg.input_token_buffer.GSS_BUFFER_T_val =
- (char *)(input_token != GSS_C_NO_BUFFER ?
- input_token->value : 0);
+ (char *)(input_token != GSS_C_NO_BUFFER ? input_token->value : 0);
if (input_chan_bindings != GSS_C_NO_CHANNEL_BINDINGS) {
arg.input_chan_bindings.present = YES;
arg.input_chan_bindings.initiator_addrtype =
- input_chan_bindings->initiator_addrtype;
+ input_chan_bindings->initiator_addrtype;
arg.input_chan_bindings.initiator_address.GSS_BUFFER_T_len =
- (uint_t)input_chan_bindings->initiator_address.length;
+ (uint_t)input_chan_bindings->initiator_address.length;
arg.input_chan_bindings.initiator_address.GSS_BUFFER_T_val =
- (void *)input_chan_bindings->initiator_address.value;
+ (void *)input_chan_bindings->initiator_address.value;
arg.input_chan_bindings.acceptor_addrtype =
- input_chan_bindings->acceptor_addrtype;
+ input_chan_bindings->acceptor_addrtype;
arg.input_chan_bindings.acceptor_address.GSS_BUFFER_T_len =
- (uint_t)input_chan_bindings->acceptor_address.length;
+ (uint_t)input_chan_bindings->acceptor_address.length;
arg.input_chan_bindings.acceptor_address.GSS_BUFFER_T_val =
- (void *)input_chan_bindings->acceptor_address.value;
+ (void *)input_chan_bindings->acceptor_address.value;
arg.input_chan_bindings.application_data.GSS_BUFFER_T_len =
- (uint_t)input_chan_bindings->application_data.length;
+ (uint_t)input_chan_bindings->application_data.length;
arg.input_chan_bindings.application_data.GSS_BUFFER_T_val =
- (void *)input_chan_bindings->application_data.value;
+ (void *)input_chan_bindings->application_data.value;
} else {
arg.input_chan_bindings.present = NO;
@@ -1057,19 +1056,16 @@ kgss_accept_sec_context_wrapped(
*minor_status = res.minor_status;
if (output_token != NULL && res.output_token.GSS_BUFFER_T_val != NULL) {
- output_token->length =
- res.output_token.GSS_BUFFER_T_len;
- output_token->value =
- (void *) MALLOC(output_token->length);
+ output_token->length = res.output_token.GSS_BUFFER_T_len;
+ output_token->value = (void *) MALLOC(output_token->length);
(void) memcpy(output_token->value,
- res.output_token.GSS_BUFFER_T_val,
- output_token->length);
+ res.output_token.GSS_BUFFER_T_val, output_token->length);
}
/* if the call was successful, copy out the results */
if (res.status == (OM_uint32) GSS_S_COMPLETE ||
- res.status == (OM_uint32) GSS_S_CONTINUE_NEEDED) {
+ res.status == (OM_uint32) GSS_S_CONTINUE_NEEDED) {
/*
* the only parameters that are ready when we
@@ -1078,17 +1074,18 @@ kgss_accept_sec_context_wrapped(
*/
*context_handle = *((gssd_ctx_id_t *)
- res.context_handle.GSS_CTX_ID_T_val);
+ res.context_handle.GSS_CTX_ID_T_val);
*gssd_context_verifier = res.gssd_context_verifier;
/* these other parameters are only ready upon GSS_S_COMPLETE */
if (res.status == (OM_uint32) GSS_S_COMPLETE) {
if (src_name != NULL) {
- src_name->length = res.src_name.GSS_BUFFER_T_len;
- src_name->value = res.src_name.GSS_BUFFER_T_val;
- res.src_name.GSS_BUFFER_T_val = NULL;
- res.src_name.GSS_BUFFER_T_len = 0;
+ src_name->length =
+ res.src_name.GSS_BUFFER_T_len;
+ src_name->value = res.src_name.GSS_BUFFER_T_val;
+ res.src_name.GSS_BUFFER_T_val = NULL;
+ res.src_name.GSS_BUFFER_T_len = 0;
}
/*
@@ -1096,15 +1093,15 @@ kgss_accept_sec_context_wrapped(
* for gss_import_name_for_mech()
*/
if (mech_type != NULL) {
- *mech_type = (gss_OID)
- MALLOC(sizeof (gss_OID_desc));
+ *mech_type =
+ (gss_OID)MALLOC(sizeof (gss_OID_desc));
(*mech_type)->length =
- (OM_UINT32) res.mech_type.GSS_OID_len;
+ (OM_UINT32) res.mech_type.GSS_OID_len;
(*mech_type)->elements =
- (void *) MALLOC((*mech_type)->length);
+ (void *) MALLOC((*mech_type)->length);
(void) memcpy((*mech_type)->elements,
- res.mech_type.GSS_OID_val,
- (*mech_type)->length);
+ res.mech_type.GSS_OID_val,
+ (*mech_type)->length);
}
if (ret_flags != NULL)
@@ -1114,14 +1111,14 @@ kgss_accept_sec_context_wrapped(
*time_rec = res.time_rec;
if ((delegated_cred_handle != NULL) &&
- (res.delegated_cred_handle.GSS_CRED_ID_T_len
- != 0)) {
+ (res.delegated_cred_handle.GSS_CRED_ID_T_len
+ != 0)) {
kcred = KGSS_CRED_ALLOC();
kcred->gssd_cred =
- *((gssd_cred_id_t *)
- res.delegated_cred_handle.GSS_CRED_ID_T_val);
+ *((gssd_cred_id_t *)
+ res.delegated_cred_handle.GSS_CRED_ID_T_val);
kcred->gssd_cred_verifier =
- res.gssd_context_verifier;
+ res.gssd_context_verifier;
*delegated_cred_handle = (gss_cred_id_t)kcred;
}
@@ -1172,7 +1169,7 @@ kgss_accept_sec_context(
if (*context_handle == GSS_C_NO_CONTEXT) {
kctx = KGSS_ALLOC();
kctx->mech = &default_gc;
- kctx->gssd_ctx = (gssd_ctx_id_t)GSS_C_NO_CONTEXT;
+ kctx->gssd_ctx = (gssd_ctx_id_t)(uintptr_t)GSS_C_NO_CONTEXT;
*context_handle = (gss_ctx_id_t)kctx;
} else
kctx = (struct kgss_ctx *)*context_handle;
@@ -1180,15 +1177,17 @@ kgss_accept_sec_context(
if (verifier_cred_handle != GSS_C_NO_CREDENTIAL) {
gssd_cred_verifier = KCRED_TO_CREDV(verifier_cred_handle);
gssd_ver_cred_handle = KCRED_TO_CRED(verifier_cred_handle);
- } else
- gssd_ver_cred_handle = (gssd_cred_id_t)GSS_C_NO_CREDENTIAL;
+ } else {
+ gssd_ver_cred_handle =
+ (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL;
+ }
err = kgss_accept_sec_context_wrapped(minor_status,
- &kctx->gssd_ctx, &kctx->gssd_ctx_verifier,
- gssd_ver_cred_handle, gssd_cred_verifier,
- input_token, input_chan_bindings, src_name,
- mech_type, output_token, ret_flags,
- time_rec, delegated_cred_handle, uid);
+ &kctx->gssd_ctx, &kctx->gssd_ctx_verifier,
+ gssd_ver_cred_handle, gssd_cred_verifier,
+ input_token, input_chan_bindings, src_name,
+ mech_type, output_token, ret_flags,
+ time_rec, delegated_cred_handle, uid);
if (GSS_ERROR(err)) {
KGSS_FREE(kctx);
@@ -1304,7 +1303,7 @@ kgss_delete_sec_context_wrapped(void *private,
/* copy the procedure arguments into the rpc arg parameter */
arg.context_handle.GSS_CTX_ID_T_len =
- *context_handle == (gssd_ctx_id_t)GSS_C_NO_CONTEXT ?
+ *context_handle == (gssd_ctx_id_t)(uintptr_t)GSS_C_NO_CONTEXT ?
0 : (uint_t)sizeof (gssd_ctx_id_t);
arg.context_handle.GSS_CTX_ID_T_val = (char *)context_handle;
@@ -1377,17 +1376,18 @@ kgss_delete_sec_context(
kctx = (struct kgss_ctx *)*context_handle;
if (kctx->ctx_imported == FALSE) {
- if (kctx->gssd_ctx == (gssd_ctx_id_t)GSS_C_NO_CONTEXT) {
+ if (kctx->gssd_ctx ==
+ (gssd_ctx_id_t)(uintptr_t)GSS_C_NO_CONTEXT) {
KGSS_FREE(kctx);
*context_handle = GSS_C_NO_CONTEXT;
return (GSS_S_COMPLETE);
}
err = kgss_delete_sec_context_wrapped(
- KCTX_TO_PRIVATE(*context_handle),
- minor_status,
- &kctx->gssd_ctx,
- output_token,
- kctx->gssd_ctx_verifier);
+ KCTX_TO_PRIVATE(*context_handle),
+ minor_status,
+ &kctx->gssd_ctx,
+ output_token,
+ kctx->gssd_ctx_verifier);
} else {
if (kctx->gssd_i_ctx == (gss_ctx_id_t)GSS_C_NO_CONTEXT) {
KGSS_FREE(kctx);
@@ -1395,7 +1395,7 @@ kgss_delete_sec_context(
return (GSS_S_COMPLETE);
}
err = KGSS_DELETE_SEC_CONTEXT(minor_status, kctx,
- &kctx->gssd_i_ctx, output_token);
+ &kctx->gssd_i_ctx, output_token);
}
KGSS_FREE(kctx);
*context_handle = GSS_C_NO_CONTEXT;
@@ -1553,7 +1553,7 @@ gss_buffer_desc token;
gss_ctx_id_t internal_ctx_id;
kctx = (struct kgss_ctx *)context_handle;
- if (kctx->gssd_ctx != (gssd_ctx_id_t)GSS_C_NO_CONTEXT) {
+ if (kctx->gssd_ctx != (gssd_ctx_id_t)(uintptr_t)GSS_C_NO_CONTEXT) {
return (GSS_S_FAILURE);
}
@@ -1682,7 +1682,7 @@ kgss_sign_wrapped(void *private,
msg_token->length = res.msg_token.GSS_BUFFER_T_len;
msg_token->value = (void *) MALLOC(msg_token->length);
(void) memcpy(msg_token->value, res.msg_token.GSS_BUFFER_T_val,
- msg_token->length);
+ msg_token->length);
}
/*
@@ -1707,7 +1707,7 @@ kgss_sign(
if (context_handle == GSS_C_NO_CONTEXT)
return (GSS_S_FAILURE);
return (KGSS_SIGN(minor_status, context_handle, qop_req,
- message_buffer, msg_token));
+ message_buffer, msg_token));
}
/*ARGSUSED*/
@@ -1732,7 +1732,7 @@ kgss_verify_wrapped(void *private,
if ((clnt = getgssd_handle()) == NULL) {
GSSLOG(1, "kgss_verify: can't connect to server on %s\n",
- server);
+ server);
return (GSS_S_FAILURE);
}
@@ -1796,9 +1796,7 @@ kgss_verify(OM_uint32 *minor_status,
if (context_handle == GSS_C_NO_CONTEXT)
return (GSS_S_FAILURE);
return (KGSS_VERIFY(minor_status, context_handle,
- message_buffer,
- token_buffer,
- qop_state));
+ message_buffer, token_buffer, qop_state));
}
/* EXPORT DELETE START */
@@ -1844,10 +1842,10 @@ kgss_seal_wrapped(void *private,
arg.qop_req = qop_req;
arg.input_message_buffer.GSS_BUFFER_T_len =
- (uint_t)input_message_buffer->length;
+ (uint_t)input_message_buffer->length;
arg.input_message_buffer.GSS_BUFFER_T_val =
- (char *)input_message_buffer->value;
+ (char *)input_message_buffer->value;
/* call the remote procedure */
@@ -1881,13 +1879,13 @@ kgss_seal_wrapped(void *private,
if (output_message_buffer != NULL) {
output_message_buffer->length =
- res.output_message_buffer.GSS_BUFFER_T_len;
+ res.output_message_buffer.GSS_BUFFER_T_len;
output_message_buffer->value =
- (void *) MALLOC(output_message_buffer->length);
+ (void *) MALLOC(output_message_buffer->length);
(void) memcpy(output_message_buffer->value,
- res.output_message_buffer.GSS_BUFFER_T_val,
- output_message_buffer->length);
+ res.output_message_buffer.GSS_BUFFER_T_val,
+ output_message_buffer->length);
}
/*
@@ -1942,7 +1940,7 @@ kgss_unseal_wrapped(void *private,
if ((clnt = getgssd_handle()) == NULL) {
GSSLOG(1, "kgss_unseal: can't connect to server on %s\n",
- server);
+ server);
return (GSS_S_FAILURE);
}
@@ -1956,10 +1954,10 @@ kgss_unseal_wrapped(void *private,
arg.gssd_context_verifier = gssd_context_verifier;
arg.input_message_buffer.GSS_BUFFER_T_len =
- (uint_t)input_message_buffer->length;
+ (uint_t)input_message_buffer->length;
arg.input_message_buffer.GSS_BUFFER_T_val =
- (char *)input_message_buffer->value;
+ (char *)input_message_buffer->value;
/* call the remote procedure */
@@ -1992,13 +1990,13 @@ kgss_unseal_wrapped(void *private,
if (output_message_buffer != NULL) {
output_message_buffer->length =
- res.output_message_buffer.GSS_BUFFER_T_len;
+ res.output_message_buffer.GSS_BUFFER_T_len;
output_message_buffer->value =
- (void *) MALLOC(output_message_buffer->length);
+ (void *) MALLOC(output_message_buffer->length);
(void) memcpy(output_message_buffer->value,
- res.output_message_buffer.GSS_BUFFER_T_val,
- output_message_buffer->length);
+ res.output_message_buffer.GSS_BUFFER_T_val,
+ output_message_buffer->length);
}
if (conf_state != NULL)
@@ -2030,7 +2028,7 @@ kgss_unseal(OM_uint32 *minor_status,
return (GSS_S_FAILURE);
return (KGSS_UNSEAL(minor_status, context_handle, input_message_buffer,
- output_message_buffer, conf_state, qop_state));
+ output_message_buffer, conf_state, qop_state));
}
/* EXPORT DELETE END */
@@ -2258,8 +2256,8 @@ kgss_inquire_cred_wrapped(minor_status,
arg.uid = (OM_uint32) uid;
arg.cred_handle.GSS_CRED_ID_T_len =
- cred_handle == (gssd_cred_id_t)GSS_C_NO_CREDENTIAL ?
- 0 : (uint_t)sizeof (gssd_cred_id_t);
+ cred_handle == (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL ?
+ 0 : (uint_t)sizeof (gssd_cred_id_t);
arg.cred_handle.GSS_CRED_ID_T_val = (char *)&cred_handle;
arg.gssd_cred_verifier = gssd_cred_verifier;
@@ -2410,8 +2408,8 @@ kgss_inquire_cred_by_mech_wrapped(minor_status,
arg.uid = (OM_uint32) uid;
arg.cred_handle.GSS_CRED_ID_T_len =
- cred_handle == (gssd_cred_id_t)GSS_C_NO_CREDENTIAL ?
- 0 : (uint_t)sizeof (gssd_cred_id_t);
+ cred_handle == (gssd_cred_id_t)(uintptr_t)GSS_C_NO_CREDENTIAL ?
+ 0 : (uint_t)sizeof (gssd_cred_id_t);
arg.cred_handle.GSS_CRED_ID_T_val = (char *)&cred_handle;
arg.gssd_cred_verifier = gssd_cred_verifier;
@@ -2701,7 +2699,7 @@ kgss_get_kmod(gss_OID mech_oid)
/* get the client GSSD handle */
if ((clnt = getgssd_handle()) == NULL) {
GSSLOG(1, "kgss_get_kmod: can't connect to server on %s\n",
- server);
+ server);
return (NULL);
}
@@ -2763,9 +2761,9 @@ __kgss_reset_mech(gss_mechanism *mechp, gss_OID mech_oid)
* appropriate comment
*/
cmn_err(CE_NOTE, "kgss_reset_mech: Algorithm modload "
- "(%s) failed. Userland gssd will now handle "
- "all GSSAPI calls, which may result in "
- "reduced performance.\n", kmod);
+ "(%s) failed. Userland gssd will now handle "
+ "all GSSAPI calls, which may result in "
+ "reduced performance.\n", kmod);
};
/*
diff --git a/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_eth.c b/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_eth.c
index 6b999192a9..249d0ffabd 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_eth.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_eth.c
@@ -969,7 +969,7 @@ fcoei_fill_els_fpkt_resp(fcoe_frame_t *frm, fcoei_exchange_t *xch, int size)
prli_acc->image_pair_established =
(FCOE_B2V_2(src + offset) & BIT_13) ? 1 : 0;
prli_acc->accept_response_code =
- FCOE_B2V_2(src + offset) & 0x0F00;
+ (uint16_t)(FCOE_B2V_2(src + offset) & 0x0F00);
/*
* process associator
*/
diff --git a/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_lv.c b/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_lv.c
index d1dce9b1f3..66a61e620e 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_lv.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/fcoei/fcoei_lv.c
@@ -1455,9 +1455,9 @@ fcoei_fill_els_prli_cmd(fc_packet_t *fpkt, fcoe_frame_t *frm)
* PRLI flags, only 3 bits are valid
*/
offset = 6;
- FCOE_V2B_2((fcp_spp->orig_process_assoc_valid * BIT_15) |
+ FCOE_V2B_2((uint8_t)((fcp_spp->orig_process_assoc_valid * BIT_15) |
(fcp_spp->resp_process_assoc_valid * BIT_14) |
- (fcp_spp->establish_image_pair * BIT_13), FPLD + offset);
+ (fcp_spp->establish_image_pair * BIT_13)), FPLD + offset);
/*
* process associator
diff --git a/usr/src/uts/common/io/fibre-channel/fca/qlge/qlge_dbg.c b/usr/src/uts/common/io/fibre-channel/fca/qlge/qlge_dbg.c
index bbb092c70b..695d254d63 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/qlge/qlge_dbg.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/qlge/qlge_dbg.c
@@ -2552,25 +2552,25 @@ ql_get_serdes_regs(qlge_t *qlge, struct ql_mpi_coredump *mpi_coredump)
}
}
- for (i = 0x1c00; i <= 0x1c1f; i++) {
+ for (i = 0x1c00, j = 0; i <= 0x1c1f; i++) {
status = ql_read_serdes_reg(qlge, i,
- &mpi_coredump->serdes_xfi_hss_tx[i]);
+ &mpi_coredump->serdes_xfi_hss_tx[j++]);
if (status != DDI_SUCCESS) {
goto err;
}
}
- for (i = 0x1c40; i <= 0x1c5f; i++) {
+ for (i = 0x1c40, j = 0; i <= 0x1c5f; i++) {
status = ql_read_serdes_reg(qlge, i,
- &mpi_coredump->serdes_xfi_hss_rx[i]);
+ &mpi_coredump->serdes_xfi_hss_rx[j++]);
if (status != DDI_SUCCESS) {
goto err;
}
}
- for (i = 0x1e00; i <= 0x1e1f; i++) {
+ for (i = 0x1e00, j = 0; i <= 0x1e1f; i++) {
status = ql_read_serdes_reg(qlge, i,
- &mpi_coredump->serdes_xfi_hss_pll[i]);
+ &mpi_coredump->serdes_xfi_hss_pll[j++]);
if (status != DDI_SUCCESS) {
goto err;
}
diff --git a/usr/src/uts/common/sys/ccompile.h b/usr/src/uts/common/sys/ccompile.h
index c9857b0865..cb2d1371c8 100644
--- a/usr/src/uts/common/sys/ccompile.h
+++ b/usr/src/uts/common/sys/ccompile.h
@@ -27,8 +27,6 @@
#ifndef _SYS_CCOMPILE_H
#define _SYS_CCOMPILE_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* This file contains definitions designed to enable different compilers
* to be used harmoniously on Solaris systems.
@@ -79,6 +77,17 @@ extern "C" {
*/
#define __sun_attr___noreturn__ __attribute__((__noreturn__))
+/*
+ * The function is 'extern inline' and expects GNU C89 behaviour, not C99
+ * behaviour.
+ *
+ * Should only be used on 'extern inline' definitions for GCC.
+ */
+#if __GNUC_VERSION > 40300
+#define __sun_attr___gnu_inline__ __attribute__((__gnu_inline__))
+#else
+#define __sun_attr___gnu_inline__
+#endif
/*
* This is an appropriate label for functions that do not
@@ -116,10 +125,10 @@ extern "C" {
#define __KPRINTFLIKE(__n) __sun_attr__((__KPRINTFLIKE__(__n)))
#define __KVPRINTFLIKE(__n) __sun_attr__((__KVPRINTFLIKE__(__n)))
#define __NORETURN __sun_attr__((__noreturn__))
+#define __GNU_INLINE __inline__ __sun_attr__((__gnu_inline__))
#define __CONST __sun_attr__((__const__))
#define __PURE __sun_attr__((__pure__))
-
#ifdef __cplusplus
}
#endif
diff --git a/usr/src/uts/common/sys/ctf_api.h b/usr/src/uts/common/sys/ctf_api.h
index 17b0b7262e..bef3549e80 100644
--- a/usr/src/uts/common/sys/ctf_api.h
+++ b/usr/src/uts/common/sys/ctf_api.h
@@ -154,6 +154,7 @@ extern void ctf_close(ctf_file_t *);
extern ctf_file_t *ctf_parent_file(ctf_file_t *);
extern const char *ctf_parent_name(ctf_file_t *);
+extern const char *ctf_parent_label(ctf_file_t *);
extern int ctf_import(ctf_file_t *, ctf_file_t *);
extern int ctf_setmodel(ctf_file_t *, int);
diff --git a/usr/src/uts/common/sys/pathconf.h b/usr/src/uts/common/sys/pathconf.h
index cf27636de1..2f6ddcee59 100644
--- a/usr/src/uts/common/sys/pathconf.h
+++ b/usr/src/uts/common/sys/pathconf.h
@@ -26,8 +26,6 @@
#ifndef _SYS_PATHCONF_H
#define _SYS_PATHCONF_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/* pathconf.h 1.9 89/06/26 SMI */
#include <sys/unistd.h>
@@ -118,7 +116,7 @@ struct pathcnf32 {
* The size of the non-kernel part of the struct.
*/
#ifdef _KERNEL
-#define PCSIZ (int)(&(((struct pathcnf *)0)->pc_refcnt))
+#define PCSIZ ((size_t)(&(((struct pathcnf *)0)->pc_refcnt)))
#define PCCMP(p1, p2) bcmp((char *)p1, (char *)p2, PCSIZ)
#endif
diff --git a/usr/src/uts/i86pc/dboot/dboot_startkern.c b/usr/src/uts/i86pc/dboot/dboot_startkern.c
index 2438dc6292..8268f4cd4b 100644
--- a/usr/src/uts/i86pc/dboot/dboot_startkern.c
+++ b/usr/src/uts/i86pc/dboot/dboot_startkern.c
@@ -237,7 +237,7 @@ sort_physinstall(void)
memlists[i].next = 0;
memlists[i - 1].next = (native_ptr_t)(uintptr_t)(memlists + i);
}
- bi->bi_phys_install = (native_ptr_t)memlists;
+ bi->bi_phys_install = (native_ptr_t)(uintptr_t)memlists;
DBG(bi->bi_phys_install);
}
@@ -258,7 +258,7 @@ build_rsvdmemlists(void)
rsvdmemlists[i - 1].next =
(native_ptr_t)(uintptr_t)(rsvdmemlists + i);
}
- bi->bi_rsvdmem = (native_ptr_t)rsvdmemlists;
+ bi->bi_rsvdmem = (native_ptr_t)(uintptr_t)rsvdmemlists;
DBG(bi->bi_rsvdmem);
}
@@ -668,7 +668,7 @@ build_pcimemlists(mmap_t *mem, int num)
pcimemlists[i - 1].next =
(native_ptr_t)(uintptr_t)(pcimemlists + i);
}
- bi->bi_pcimem = (native_ptr_t)pcimemlists;
+ bi->bi_pcimem = (native_ptr_t)(uintptr_t)pcimemlists;
DBG(bi->bi_pcimem);
}
@@ -808,7 +808,7 @@ init_mem_alloc(void)
* we'll build the module list while we're walking through here
*/
DBG_MSG("\nFinding Modules\n");
- check_higher((paddr_t)&_end);
+ check_higher((paddr_t)(uintptr_t)&_end);
for (mod = (mb_module_t *)(mb_info->mods_addr), i = 0;
i < mb_info->mods_count;
++mod, ++i) {
@@ -826,7 +826,7 @@ init_mem_alloc(void)
check_higher(mod->mod_end);
}
- bi->bi_modules = (native_ptr_t)modules;
+ bi->bi_modules = (native_ptr_t)(uintptr_t)modules;
DBG(bi->bi_modules);
bi->bi_module_cnt = mb_info->mods_count;
DBG(bi->bi_module_cnt);
@@ -911,7 +911,7 @@ init_mem_alloc(void)
pcimemlists[0].size = pci_hi_limit - pcimemlists[0].addr;
pcimemlists[0].next = 0;
pcimemlists[0].prev = 0;
- bi->bi_pcimem = (native_ptr_t)pcimemlists;
+ bi->bi_pcimem = (native_ptr_t)(uintptr_t)pcimemlists;
DBG(bi->bi_pcimem);
} else {
dboot_panic("No memory info from boot loader!!!");
diff --git a/usr/src/uts/i86pc/os/cpr_impl.c b/usr/src/uts/i86pc/os/cpr_impl.c
index acc78eaa14..0e5261eb1f 100644
--- a/usr/src/uts/i86pc/os/cpr_impl.c
+++ b/usr/src/uts/i86pc/os/cpr_impl.c
@@ -753,6 +753,20 @@ i_cpr_is_supported(int sleeptype)
if (sleeptype != CPR_TORAM)
return (0);
+ /*
+ * Unfortunately, the x86 resume code was never implemented for GAS.
+ * The only obvious problem is that a trick necessary to appease Sun
+ * Studio does the wrong thing for GAS. Doubley unfortunate is that
+ * the condition used to detect GAS is incorrect, so we do in fact
+ * compile the Studio path, it just immediately fails in resume.
+ *
+ * Given that, if we were built using GCC, never allow CPR to be
+ * attempted.
+ */
+#ifdef __GNUC__
+ return (0);
+#endif
+
/*
* The next statement tests if a specific platform has turned off
* cpr support.
diff --git a/usr/src/uts/i86pc/os/mp_pc.c b/usr/src/uts/i86pc/os/mp_pc.c
index 4ba4612abd..e268b8852f 100644
--- a/usr/src/uts/i86pc/os/mp_pc.c
+++ b/usr/src/uts/i86pc/os/mp_pc.c
@@ -165,7 +165,8 @@ rmp_gdt_init(rm_platter_t *rm)
* mapped address, we need to calculate it here.
*/
rm->rm_longmode64_addr = rm_platter_pa +
- ((uint32_t)long_mode_64 - (uint32_t)real_mode_start_cpu);
+ ((uint32_t)(uintptr_t)long_mode_64 -
+ (uint32_t)(uintptr_t)real_mode_start_cpu);
#endif /* __amd64 */
}
diff --git a/usr/src/uts/intel/amd64/sys/privregs.h b/usr/src/uts/intel/amd64/sys/privregs.h
index 37406850a6..83782c4b37 100644
--- a/usr/src/uts/intel/amd64/sys/privregs.h
+++ b/usr/src/uts/intel/amd64/sys/privregs.h
@@ -27,7 +27,7 @@
#ifndef _AMD64_SYS_PRIVREGS_H
#define _AMD64_SYS_PRIVREGS_H
-#pragma ident "%Z%%M% %I% %E% SMI"
+#include <sys/ccompile.h>
#ifdef __cplusplus
extern "C" {
@@ -255,7 +255,8 @@ struct regs {
#if defined(_KERNEL) && !defined(_ASM)
#if !defined(__lint) && defined(__GNUC__)
-extern __inline__ ulong_t getcr8(void)
+extern __GNU_INLINE ulong_t
+getcr8(void)
{
uint64_t value;
@@ -265,7 +266,8 @@ extern __inline__ ulong_t getcr8(void)
return (value);
}
-extern __inline__ void setcr8(ulong_t value)
+extern __GNU_INLINE void
+setcr8(ulong_t value)
{
__asm__ __volatile__(
"movq %0, %%cr8"
diff --git a/usr/src/uts/intel/asm/atomic.h b/usr/src/uts/intel/asm/atomic.h
index 8e0132967c..6dd675c613 100644
--- a/usr/src/uts/intel/asm/atomic.h
+++ b/usr/src/uts/intel/asm/atomic.h
@@ -27,8 +27,7 @@
#ifndef _ASM_ATOMIC_H
#define _ASM_ATOMIC_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -39,52 +38,57 @@ extern "C" {
#if defined(__amd64)
-extern __inline__ void atomic_or_long(ulong_t *target, ulong_t bits)
+extern __GNU_INLINE void
+atomic_or_long(ulong_t *target, ulong_t bits)
{
__asm__ __volatile__(
- "lock; orq %1, (%0)"
- : /* no output */
- : "r" (target), "r" (bits));
+ "lock; orq %1, (%0)"
+ : /* no output */
+ : "r" (target), "r" (bits));
}
-extern __inline__ void atomic_and_long(ulong_t *target, ulong_t bits)
+extern __GNU_INLINE void
+atomic_and_long(ulong_t *target, ulong_t bits)
{
__asm__ __volatile__(
- "lock; andq %1, (%0)"
- : /* no output */
- : "r" (target), "r" (bits));
+ "lock; andq %1, (%0)"
+ : /* no output */
+ : "r" (target), "r" (bits));
}
#ifdef notdef
-extern __inline__ uint64_t cas64(uint64_t *target, uint64_t cmp,
+extern __GNU_INLINE uint64_t
+cas64(uint64_t *target, uint64_t cmp,
uint64_t newval)
{
uint64_t retval;
__asm__ __volatile__(
- "movq %2, %%rax; lock; cmpxchgq %3, (%1)"
- : "=a" (retval)
- : "r" (target), "r" (cmp), "r" (newval));
+ "movq %2, %%rax; lock; cmpxchgq %3, (%1)"
+ : "=a" (retval)
+ : "r" (target), "r" (cmp), "r" (newval));
return (retval);
}
#endif
#elif defined(__i386)
-extern __inline__ void atomic_or_long(ulong_t *target, ulong_t bits)
+extern __GNU_INLINE void
+atomic_or_long(ulong_t *target, ulong_t bits)
{
__asm__ __volatile__(
- "lock; orl %1, (%0)"
- : /* no output */
- : "r" (target), "r" (bits));
+ "lock; orl %1, (%0)"
+ : /* no output */
+ : "r" (target), "r" (bits));
}
-extern __inline__ void atomic_and_long(ulong_t *target, ulong_t bits)
+extern __GNU_INLINE void
+atomic_and_long(ulong_t *target, ulong_t bits)
{
__asm__ __volatile__(
- "lock; andl %1, (%0)"
- : /* no output */
- : "r" (target), "r" (bits));
+ "lock; andl %1, (%0)"
+ : /* no output */
+ : "r" (target), "r" (bits));
}
#else
diff --git a/usr/src/uts/intel/asm/bitmap.h b/usr/src/uts/intel/asm/bitmap.h
index 650fb555e6..c72f52a8e7 100644
--- a/usr/src/uts/intel/asm/bitmap.h
+++ b/usr/src/uts/intel/asm/bitmap.h
@@ -27,8 +27,7 @@
#ifndef _ASM_BITMAP_H
#define _ASM_BITMAP_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -37,73 +36,73 @@ extern "C" {
#if !defined(__lint) && defined(__GNUC__)
-extern __inline__ int
+extern __GNU_INLINE int
highbit(ulong_t i)
{
long __value = -1l;
#if defined(__amd64)
__asm__(
- "bsrq %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsrq %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#elif defined(__i386)
__asm__(
- "bsrl %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsrl %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#else
#error "port me"
#endif
return ((int)(__value + 1));
}
-extern __inline__ int
+extern __GNU_INLINE int
lowbit(ulong_t i)
{
long __value = -1l;
#if defined(__amd64)
__asm__(
- "bsfq %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsfq %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#elif defined(__i386)
__asm__(
- "bsfl %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsfl %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#else
#error "port me"
#endif
return ((int)(__value + 1));
}
-extern __inline__ uint_t
+extern __GNU_INLINE uint_t
atomic_btr32(uint32_t *memory, uint_t bitnum)
{
uint8_t __value;
#if defined(__amd64)
__asm__ __volatile__(
- "lock;"
- "btrl %2, (%0);"
- "setc %1"
- : "+r" (memory), "+r" (__value)
- : "ir" (bitnum)
- : "cc");
+ "lock;"
+ "btrl %2, (%0);"
+ "setc %1"
+ : "+r" (memory), "+r" (__value)
+ : "ir" (bitnum)
+ : "cc");
#elif defined(__i386)
__asm__ __volatile__(
- "lock;"
- "btrl %2, (%0);"
- "setc %1"
- : "+r" (memory), "=r" (__value)
- : "ir" (bitnum)
- : "cc");
+ "lock;"
+ "btrl %2, (%0);"
+ "setc %1"
+ : "+r" (memory), "=r" (__value)
+ : "ir" (bitnum)
+ : "cc");
#else
#error "port me"
#endif
diff --git a/usr/src/uts/intel/asm/byteorder.h b/usr/src/uts/intel/asm/byteorder.h
index 615038f71b..3797d4f3f2 100644
--- a/usr/src/uts/intel/asm/byteorder.h
+++ b/usr/src/uts/intel/asm/byteorder.h
@@ -26,6 +26,7 @@
#ifndef _ASM_BYTEORDER_H
#define _ASM_BYTEORDER_H
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -44,7 +45,8 @@ extern "C" {
#if defined(__i386) || defined(__amd64)
-extern __inline__ uint16_t htons(uint16_t value)
+extern __GNU_INLINE uint16_t
+htons(uint16_t value)
{
#if defined(__amd64)
__asm__("xchgb %h0, %b0" : "+Q" (value));
@@ -54,7 +56,8 @@ extern __inline__ uint16_t htons(uint16_t value)
return (value);
}
-extern __inline__ uint16_t ntohs(uint16_t value)
+extern __GNU_INLINE uint16_t
+ntohs(uint16_t value)
{
#if defined(__amd64)
__asm__("xchgb %h0, %b0" : "+Q" (value));
@@ -64,26 +67,30 @@ extern __inline__ uint16_t ntohs(uint16_t value)
return (value);
}
-extern __inline__ uint32_t htonl(uint32_t value)
+extern __GNU_INLINE uint32_t
+htonl(uint32_t value)
{
__asm__("bswap %0" : "+r" (value));
return (value);
}
-extern __inline__ uint32_t ntohl(uint32_t value)
+extern __GNU_INLINE uint32_t
+ntohl(uint32_t value)
{
__asm__("bswap %0" : "+r" (value));
return (value);
}
#if defined(__amd64)
-extern __inline__ uint64_t htonll(uint64_t value)
+extern __GNU_INLINE uint64_t
+htonll(uint64_t value)
{
__asm__("bswapq %0" : "+r" (value));
return (value);
}
-extern __inline__ uint64_t ntohll(uint64_t value)
+extern __GNU_INLINE uint64_t
+ntohll(uint64_t value)
{
__asm__("bswapq %0" : "+r" (value));
return (value);
@@ -91,12 +98,14 @@ extern __inline__ uint64_t ntohll(uint64_t value)
#elif defined(__i386)
/* Use the htonl() and ntohl() inline functions defined above */
-extern __inline__ uint64_t htonll(uint64_t value)
+extern __GNU_INLINE uint64_t
+htonll(uint64_t value)
{
return (htonl(value >> 32) | ((uint64_t)htonl(value) << 32));
}
-extern __inline__ uint64_t ntohll(uint64_t value)
+extern __GNU_INLINE uint64_t
+ntohll(uint64_t value)
{
return (ntohl(value >> 32) | (uint64_t)ntohl(value) << 32);
}
diff --git a/usr/src/uts/intel/asm/clock.h b/usr/src/uts/intel/asm/clock.h
index 18adcf9f4d..26e33d0bb5 100644
--- a/usr/src/uts/intel/asm/clock.h
+++ b/usr/src/uts/intel/asm/clock.h
@@ -26,8 +26,7 @@
#ifndef _ASM_CLOCK_H
#define _ASM_CLOCK_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#include <sys/time.h>
@@ -39,7 +38,8 @@ extern "C" {
#include <sys/machlock.h>
-extern __inline__ void unlock_hres_lock(void)
+extern __GNU_INLINE void
+unlock_hres_lock(void)
{
__asm__ __volatile__(
"lock; incl %0"
@@ -50,7 +50,8 @@ extern __inline__ void unlock_hres_lock(void)
#if defined(__xpv)
-extern __inline__ hrtime_t __rdtsc_insn(void)
+extern __GNU_INLINE hrtime_t
+__rdtsc_insn(void)
{
#if defined(__amd64)
uint32_t lobits, hibits;
diff --git a/usr/src/uts/intel/asm/cpu.h b/usr/src/uts/intel/asm/cpu.h
index d70608dc88..b8b6d9f5bf 100644
--- a/usr/src/uts/intel/asm/cpu.h
+++ b/usr/src/uts/intel/asm/cpu.h
@@ -26,6 +26,8 @@
#ifndef _ASM_CPU_H
#define _ASM_CPU_H
+#include <sys/ccompile.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -34,7 +36,7 @@ extern "C" {
#if defined(__i386) || defined(__amd64)
-extern __inline__ void
+extern __GNU_INLINE void
ht_pause(void)
{
__asm__ __volatile__(
@@ -48,7 +50,7 @@ ht_pause(void)
* older 32-bit processors, so define this as a no-op for now
*/
-extern __inline__ void
+extern __GNU_INLINE void
prefetch_read_many(void *addr)
{
#if defined(__amd64)
@@ -60,8 +62,8 @@ prefetch_read_many(void *addr)
#endif /* __amd64 */
}
-extern __inline__ void
-prefetch_read_once(void *addr)
+extern __GNU_INLINE void
+refetch_read_once(void *addr)
{
#if defined(__amd64)
__asm__(
@@ -72,7 +74,7 @@ prefetch_read_once(void *addr)
#endif /* __amd64 */
}
-extern __inline__ void
+extern __GNU_INLINE void
prefetch_write_many(void *addr)
{
#if defined(__amd64)
@@ -84,7 +86,7 @@ prefetch_write_many(void *addr)
#endif /* __amd64 */
}
-extern __inline__ void
+extern __GNU_INLINE void
prefetch_write_once(void *addr)
{
#if defined(__amd64)
@@ -98,21 +100,21 @@ prefetch_write_once(void *addr)
#if !defined(__xpv)
-extern __inline__ void
+extern __GNU_INLINE void
cli(void)
{
__asm__ __volatile__(
"cli" : : : "memory");
}
-extern __inline__ void
+extern __GNU_INLINE void
sti(void)
{
__asm__ __volatile__(
"sti");
}
-extern __inline__ void
+extern __GNU_INLINE void
i86_halt(void)
{
__asm__ __volatile__(
@@ -125,7 +127,7 @@ i86_halt(void)
#if defined(__amd64)
-extern __inline__ void
+extern __GNU_INLINE void
__set_ds(selector_t value)
{
__asm__ __volatile__(
@@ -134,7 +136,7 @@ __set_ds(selector_t value)
: "r" (value));
}
-extern __inline__ void
+extern __GNU_INLINE void
__set_es(selector_t value)
{
__asm__ __volatile__(
@@ -143,7 +145,7 @@ __set_es(selector_t value)
: "r" (value));
}
-extern __inline__ void
+extern __GNU_INLINE void
__set_fs(selector_t value)
{
__asm__ __volatile__(
@@ -152,7 +154,7 @@ __set_fs(selector_t value)
: "r" (value));
}
-extern __inline__ void
+extern __GNU_INLINE void
__set_gs(selector_t value)
{
__asm__ __volatile__(
@@ -163,7 +165,7 @@ __set_gs(selector_t value)
#if !defined(__xpv)
-extern __inline__ void
+extern __GNU_INLINE void
__swapgs(void)
{
__asm__ __volatile__(
diff --git a/usr/src/uts/intel/asm/cpuvar.h b/usr/src/uts/intel/asm/cpuvar.h
index f2712cd2e0..efb09d6651 100644
--- a/usr/src/uts/intel/asm/cpuvar.h
+++ b/usr/src/uts/intel/asm/cpuvar.h
@@ -27,8 +27,7 @@
#ifndef _ASM_CPUVAR_H
#define _ASM_CPUVAR_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -39,7 +38,8 @@ extern "C" {
struct cpu;
-extern __inline__ struct cpu *curcpup(void)
+extern __GNU_INLINE struct cpu *
+curcpup(void)
{
struct cpu *__value;
diff --git a/usr/src/uts/intel/asm/htable.h b/usr/src/uts/intel/asm/htable.h
index ced20e4c1b..dd1d72a3c1 100644
--- a/usr/src/uts/intel/asm/htable.h
+++ b/usr/src/uts/intel/asm/htable.h
@@ -27,8 +27,7 @@
#ifndef _ASM_HTABLE_H
#define _ASM_HTABLE_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -44,7 +43,8 @@ extern "C" {
* for some ia32 hat layer operations.
*/
-extern __inline__ void atomic_orb(uint8_t *addr, uint8_t value)
+extern __GNU_INLINE void
+atomic_orb(uint8_t *addr, uint8_t value)
{
__asm__ __volatile__(
"lock; orb %%dl,%0"
@@ -53,7 +53,8 @@ extern __inline__ void atomic_orb(uint8_t *addr, uint8_t value)
: "cc");
}
-extern __inline__ void atomic_andb(uint8_t *addr, uint8_t value)
+extern __GNU_INLINE void
+atomic_andb(uint8_t *addr, uint8_t value)
{
__asm__ __volatile__(
"lock; andb %%dl,%0"
@@ -62,7 +63,8 @@ extern __inline__ void atomic_andb(uint8_t *addr, uint8_t value)
: "cc");
}
-extern __inline__ void atomic_inc16(uint16_t *addr)
+extern __GNU_INLINE void
+atomic_inc16(uint16_t *addr)
{
__asm__ __volatile__(
"lock; incw %0"
@@ -71,7 +73,8 @@ extern __inline__ void atomic_inc16(uint16_t *addr)
: "cc");
}
-extern __inline__ void atomic_dec16(uint16_t *addr)
+extern __GNU_INLINE void
+atomic_dec16(uint16_t *addr)
{
__asm__ __volatile__(
"lock; decw %0"
@@ -80,7 +83,8 @@ extern __inline__ void atomic_dec16(uint16_t *addr)
: "cc");
}
-extern __inline__ void mmu_tlbflush_entry(caddr_t addr)
+extern __GNU_INLINE void
+mmu_tlbflush_entry(caddr_t addr)
{
__asm__ __volatile__(
"invlpg %0"
diff --git a/usr/src/uts/intel/asm/mmu.h b/usr/src/uts/intel/asm/mmu.h
index 68995f2f41..1be654759d 100644
--- a/usr/src/uts/intel/asm/mmu.h
+++ b/usr/src/uts/intel/asm/mmu.h
@@ -26,8 +26,7 @@
#ifndef _ASM_MMU_H
#define _ASM_MMU_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -38,7 +37,8 @@ extern "C" {
#if defined(__amd64)
-extern __inline__ ulong_t getcr3(void)
+extern __GNU_INLINE ulong_t
+getcr3(void)
{
uint64_t value;
@@ -48,7 +48,8 @@ extern __inline__ ulong_t getcr3(void)
return (value);
}
-extern __inline__ void setcr3(ulong_t value)
+extern __GNU_INLINE void
+setcr3(ulong_t value)
{
__asm__ __volatile__(
"movq %0, %%cr3"
@@ -56,14 +57,16 @@ extern __inline__ void setcr3(ulong_t value)
: "r" (value));
}
-extern __inline__ void reload_cr3(void)
+extern __GNU_INLINE void
+reload_cr3(void)
{
setcr3(getcr3());
}
#elif defined(__i386)
-extern __inline__ ulong_t getcr3(void)
+extern __GNU_INLINE ulong_t
+getcr3(void)
{
uint32_t value;
@@ -73,7 +76,8 @@ extern __inline__ ulong_t getcr3(void)
return (value);
}
-extern __inline__ void setcr3(ulong_t value)
+extern __GNU_INLINE void
+setcr3(ulong_t value)
{
__asm__ __volatile__(
"movl %0, %%cr3"
@@ -81,7 +85,8 @@ extern __inline__ void setcr3(ulong_t value)
: "r" (value));
}
-extern __inline__ void reload_cr3(void)
+extern __GNU_INLINE void
+reload_cr3(void)
{
setcr3(getcr3());
}
diff --git a/usr/src/uts/intel/asm/sunddi.h b/usr/src/uts/intel/asm/sunddi.h
index 0a6bb3b696..0b7025a622 100644
--- a/usr/src/uts/intel/asm/sunddi.h
+++ b/usr/src/uts/intel/asm/sunddi.h
@@ -27,8 +27,7 @@
#ifndef _ASM_SUNDDI_H
#define _ASM_SUNDDI_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -39,75 +38,82 @@ extern "C" {
#if defined(__i386) || defined(__amd64)
-extern __inline__ uint8_t inb(int port)
+extern __GNU_INLINE uint8_t
+inb(int port)
{
uint16_t port16 = (uint16_t)port;
uint8_t value;
__asm__ __volatile__(
- "inb (%1)" /* value in %al */
- : "=a" (value)
- : "d" (port16));
+ "inb (%1)" /* value in %al */
+ : "=a" (value)
+ : "d" (port16));
return (value);
}
-extern __inline__ uint16_t inw(int port)
+extern __GNU_INLINE uint16_t
+inw(int port)
{
uint16_t port16 = (uint16_t)port;
uint16_t value;
__asm__ __volatile__(
- "inw (%1)" /* value in %ax */
- : "=a" (value)
- : "d" (port16));
+ "inw (%1)" /* value in %ax */
+ : "=a" (value)
+ : "d" (port16));
return (value);
}
-extern __inline__ uint32_t inl(int port)
+extern __GNU_INLINE uint32_t
+inl(int port)
{
uint16_t port16 = (uint16_t)port;
uint32_t value;
__asm__ __volatile__(
- "inl (%1)" /* value in %eax */
- : "=a" (value)
- : "d" (port16));
+ "inl (%1)" /* value in %eax */
+ : "=a" (value)
+ : "d" (port16));
return (value);
}
-extern __inline__ void outb(int port, uint8_t value)
+extern __GNU_INLINE void
+outb(int port, uint8_t value)
{
uint16_t port16 = (uint16_t)port;
__asm__ __volatile__(
- "outb (%1)"
- : /* no output */
- : "a" (value), "d" (port16));
+ "outb (%1)"
+ : /* no output */
+ : "a" (value), "d" (port16));
}
-extern __inline__ void outw(int port, uint16_t value)
+extern __GNU_INLINE void
+outw(int port, uint16_t value)
{
uint16_t port16 = (uint16_t)port;
__asm__ __volatile__(
- "outw (%1)"
- : /* no output */
- : "a" (value), "d" (port16));
+ "outw (%1)"
+ : /* no output */
+ : "a" (value), "d" (port16));
}
-extern __inline__ void outl(int port, uint32_t value)
+extern __GNU_INLINE void
+outl(int port, uint32_t value)
{
uint16_t port16 = (uint16_t)port;
__asm__ __volatile__(
- "outl (%1)"
- : /* no output */
- : "a" (value), "d" (port16));
+ "outl (%1)"
+ : /* no output */
+ : "a" (value), "d" (port16));
}
#if defined(_BOOT)
-extern __inline__ void sync_instruction_memory(caddr_t v, size_t len)
+extern __GNU_INLINE void
+sync_instruction_memory(caddr_t v, size_t len)
{
__asm__ __volatile__("nop");
}
diff --git a/usr/src/uts/intel/asm/thread.h b/usr/src/uts/intel/asm/thread.h
index bdafb6b119..df3c211ccf 100644
--- a/usr/src/uts/intel/asm/thread.h
+++ b/usr/src/uts/intel/asm/thread.h
@@ -27,8 +27,7 @@
#ifndef _ASM_THREAD_H
#define _ASM_THREAD_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -46,7 +45,8 @@ struct _kthread;
* Yuck.
*/
-extern __inline__ struct _kthread *threadp(void)
+extern __GNU_INLINE struct _kthread
+*threadp(void)
{
void *__value;
diff --git a/usr/src/uts/intel/dtrace/fbt.c b/usr/src/uts/intel/dtrace/fbt.c
index b9353bd30c..513acfd5db 100644
--- a/usr/src/uts/intel/dtrace/fbt.c
+++ b/usr/src/uts/intel/dtrace/fbt.c
@@ -629,6 +629,11 @@ fbt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
goto err;
}
+ if (strcmp(ctf_label_topmost(pfp), ctf_parent_label(fp)) != 0) {
+ ctf_close(pfp);
+ goto err;
+ }
+
if (ctf_import(fp, pfp) != 0) {
ctf_close(pfp);
goto err;
diff --git a/usr/src/uts/intel/kdi/kdi_idt.c b/usr/src/uts/intel/kdi/kdi_idt.c
index 4bd6ca73e1..73d9628e62 100644
--- a/usr/src/uts/intel/kdi/kdi_idt.c
+++ b/usr/src/uts/intel/kdi/kdi_idt.c
@@ -217,7 +217,8 @@ kdi_idt_patch(caddr_t code, size_t sz)
continue; /* uses kernel's handler */
gd = &kdi_idt[i];
- patch = (uchar_t *)GATESEG_GETOFFSET(gd) + KDI_MSR_PATCHOFF;
+ patch = ((uchar_t *)(uintptr_t)GATESEG_GETOFFSET(gd)) +
+ KDI_MSR_PATCHOFF;
/*
* We can't ASSERT that there's a nop here, because this may be
diff --git a/usr/src/uts/intel/sys/segments.h b/usr/src/uts/intel/sys/segments.h
index e0bc76a023..165fe40e00 100644
--- a/usr/src/uts/intel/sys/segments.h
+++ b/usr/src/uts/intel/sys/segments.h
@@ -382,7 +382,7 @@ typedef struct gate_desc {
#define GATESEG_GETOFFSET(sgd) ((sgd)->sgd_looffset | \
(sgd)->sgd_hioffset << 16 | \
- (sgd)->sgd_hi64offset << 32)
+ (uint64_t)(sgd)->sgd_hi64offset << 32)
#endif /* __amd64 */
diff --git a/usr/src/uts/sfmmu/vm/hat_sfmmu.c b/usr/src/uts/sfmmu/vm/hat_sfmmu.c
index d590764927..ded9e793e3 100644
--- a/usr/src/uts/sfmmu/vm/hat_sfmmu.c
+++ b/usr/src/uts/sfmmu/vm/hat_sfmmu.c
@@ -4061,7 +4061,7 @@ hat_unlock_region(struct hat *sfmmup, caddr_t addr, size_t len,
srdp = sfmmup->sfmmu_srdp;
rid = (uint_t)((uint64_t)rcookie);
- ASSERT(rid < SFMMU_MAX_HME_REGIONS);
+ VERIFY3U(rid, <, SFMMU_MAX_HME_REGIONS);
eaddr = addr + len;
va = addr;
list = NULL;
diff --git a/usr/src/uts/sparc/Makefile.sparc.shared b/usr/src/uts/sparc/Makefile.sparc.shared
index 74b65ecd5e..c10ecd8952 100644
--- a/usr/src/uts/sparc/Makefile.sparc.shared
+++ b/usr/src/uts/sparc/Makefile.sparc.shared
@@ -116,6 +116,8 @@ XARCH = $(XARCH_$(CLASS))
COPTIMIZE_32 = -xO3
COPTIMIZE_64 = -xO3
COPTIMIZE = $(COPTIMIZE_$(CLASS))
+$(__GNUC4)COPTIMIZE += -_gcc=-fno-inline-small-functions \
+ -_gcc=-fno-inline-functions-called-once
CCMODE = -Xa
diff --git a/usr/src/uts/sparc/asm/cpu.h b/usr/src/uts/sparc/asm/cpu.h
index 12523a475d..a5ac20f33e 100644
--- a/usr/src/uts/sparc/asm/cpu.h
+++ b/usr/src/uts/sparc/asm/cpu.h
@@ -27,6 +27,7 @@
#ifndef _ASM_CPU_H
#define _ASM_CPU_H
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -35,7 +36,7 @@ extern "C" {
#if !defined(__lint) && defined(__GNUC__)
-extern __inline__ void
+extern __GNU_INLINE void
prefetch_read_many(void *addr)
{
#if defined(__sparcv9)
@@ -48,7 +49,7 @@ prefetch_read_many(void *addr)
#endif
}
-extern __inline__ void
+extern __GNU_INLINE void
prefetch_read_once(void *addr)
{
#if defined(__sparcv9)
@@ -61,7 +62,7 @@ prefetch_read_once(void *addr)
#endif
}
-extern __inline__ void
+extern __GNU_INLINE void
prefetch_write_many(void *addr)
{
#if defined(__sparcv9)
@@ -74,7 +75,7 @@ prefetch_write_many(void *addr)
#endif
}
-extern __inline__ void
+extern __GNU_INLINE void
prefetch_write_once(void *addr)
{
#if defined(__sparcv9)
diff --git a/usr/src/uts/sparc/asm/flush.h b/usr/src/uts/sparc/asm/flush.h
index 5aa650be85..ec2623601f 100644
--- a/usr/src/uts/sparc/asm/flush.h
+++ b/usr/src/uts/sparc/asm/flush.h
@@ -27,6 +27,7 @@
#ifndef _ASM_FLUSH_H
#define _ASM_FLUSH_H
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -35,7 +36,7 @@ extern "C" {
#if !defined(__lint) && defined(__GNUC__)
-extern __inline__ void
+extern __GNU_INLINE void
doflush(void *addr)
{
#if defined(__sparcv9)
diff --git a/usr/src/uts/sparc/asm/sunddi.h b/usr/src/uts/sparc/asm/sunddi.h
index 8ff08fbaa6..1cbf8e7055 100644
--- a/usr/src/uts/sparc/asm/sunddi.h
+++ b/usr/src/uts/sparc/asm/sunddi.h
@@ -27,8 +27,7 @@
#ifndef _ASM_SUNDDI_H
#define _ASM_SUNDDI_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -39,7 +38,7 @@ extern "C" {
#if defined(_BOOT)
-extern __inline__ void
+extern __GNU_INLINE void
sync_instruction_memory(caddr_t v, size_t len)
{
__asm__ __volatile__("nop");
diff --git a/usr/src/uts/sparc/asm/thread.h b/usr/src/uts/sparc/asm/thread.h
index 77e75e8cf0..2370fd236a 100644
--- a/usr/src/uts/sparc/asm/thread.h
+++ b/usr/src/uts/sparc/asm/thread.h
@@ -27,8 +27,7 @@
#ifndef _ASM_THREAD_H
#define _ASM_THREAD_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -39,7 +38,7 @@ extern "C" {
struct _kthread;
-extern __inline__ struct _kthread *
+extern __GNU_INLINE struct _kthread *
threadp(void)
{
void *__value;
@@ -55,7 +54,7 @@ threadp(void)
return (__value);
}
-extern __inline__ caddr_t
+extern __GNU_INLINE caddr_t
caller(void)
{
caddr_t __value;
@@ -70,7 +69,7 @@ caller(void)
return (__value);
}
-extern __inline__ caddr_t
+extern __GNU_INLINE caddr_t
callee(void)
{
caddr_t __value;
diff --git a/usr/src/uts/sparc/dtrace/fbt.c b/usr/src/uts/sparc/dtrace/fbt.c
index 58169bac81..2497322684 100644
--- a/usr/src/uts/sparc/dtrace/fbt.c
+++ b/usr/src/uts/sparc/dtrace/fbt.c
@@ -1657,6 +1657,11 @@ fbt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
if ((pfp = ctf_modopen(mod->mod_mp, &error)) == NULL)
goto err;
+ if (strcmp(ctf_label_topmost(pfp), ctf_parent_label(fp)) != 0) {
+ ctf_close(pfp);
+ goto err;
+ }
+
if (ctf_import(fp, pfp) != 0) {
ctf_close(pfp);
goto err;
diff --git a/usr/src/uts/sun4u/io/i2c/clients/lm75.c b/usr/src/uts/sun4u/io/i2c/clients/lm75.c
index a116540f09..6dada154a5 100644
--- a/usr/src/uts/sun4u/io/i2c/clients/lm75.c
+++ b/usr/src/uts/sun4u/io/i2c/clients/lm75.c
@@ -296,7 +296,7 @@ lm75_set16(intptr_t arg, int reg, struct lm75_unit *unitp, int mode) {
i2c_tran_pointer->i2c_flags = I2C_WR;
i2c_tran_pointer->i2c_wbuf[0] = (uchar_t)reg;
i2c_tran_pointer->i2c_wbuf[1] = (temp16 >> 1);
- i2c_tran_pointer->i2c_wbuf[2] = ((temp16 & 0xFE) << 7);
+ i2c_tran_pointer->i2c_wbuf[2] = ((temp16 & 0xFF) << 7);
err = i2c_transfer(unitp->lm75_hdl, i2c_tran_pointer);
i2c_transfer_free(unitp->lm75_hdl, i2c_tran_pointer);
diff --git a/usr/src/uts/sun4u/io/pci/pcisch.c b/usr/src/uts/sun4u/io/pci/pcisch.c
index 27916bcc74..2a2bd05970 100644
--- a/usr/src/uts/sun4u/io/pci/pcisch.c
+++ b/usr/src/uts/sun4u/io/pci/pcisch.c
@@ -2973,11 +2973,12 @@ iommu_tlb_scrub(iommu_t *iommu_p, int scrub)
"\tContext=%lx %sWritable %sStreamable\n"
"\tPCI Page Size=%sk Address in page %lx\n",
ddi_driver_name(dip), ddi_get_instance(dip), errstat, i,
- (tag & TLBTAG_CONTEXT_BITS) >> TLBTAG_CONTEXT_SHIFT,
+ (uint64_t)(tag & TLBTAG_CONTEXT_BITS) >>
+ TLBTAG_CONTEXT_SHIFT,
(tag & TLBTAG_WRITABLE_BIT) ? "" : neg,
(tag & TLBTAG_STREAM_BIT) ? "" : neg,
(tag & TLBTAG_PGSIZE_BIT) ? "64" : "8",
- (tag & TLBTAG_PCIVPN_BITS) << 13);
+ (uint64_t)(tag & TLBTAG_PCIVPN_BITS) << 13);
cmn_err(CE_CONT, "Memory: %sValid %sCacheable Page Frame=%lx\n",
(data & TLBDATA_VALID_BIT) ? "" : neg,
(data & TLBDATA_CACHE_BIT) ? "" : neg, pfn);
diff --git a/usr/src/uts/sun4u/serengeti/io/sbdp_cpu.c b/usr/src/uts/sun4u/serengeti/io/sbdp_cpu.c
index 0d237486e5..ffa0b6fef7 100644
--- a/usr/src/uts/sun4u/serengeti/io/sbdp_cpu.c
+++ b/usr/src/uts/sun4u/serengeti/io/sbdp_cpu.c
@@ -648,7 +648,8 @@ sbdp_cpu_stop_self(uint64_t pa)
extern void sbdp_shutdown_asm(sbdp_shutdown_t *);
extern void sbdp_shutdown_asm_end(void);
- funclen = (uint_t)sbdp_shutdown_asm_end - (uint_t)sbdp_shutdown_asm;
+ funclen = (uintptr_t)sbdp_shutdown_asm_end -
+ (uintptr_t)sbdp_shutdown_asm;
ASSERT(funclen <= MMU_PAGESIZE);
ASSERT(bbsram_pa != 0);
ASSERT((bbsram_pa & MMU_PAGEOFFSET) == 0);
diff --git a/usr/src/uts/sun4u/starcat/io/mboxsc.c b/usr/src/uts/sun4u/starcat/io/mboxsc.c
index 84d97e508b..df22464f91 100644
--- a/usr/src/uts/sun4u/starcat/io/mboxsc.c
+++ b/usr/src/uts/sun4u/starcat/io/mboxsc.c
@@ -156,10 +156,9 @@ typedef struct mboxsc_mbox {
(((tid) == 0) || ((tid) == (msgp)->msg_transid))
/*
- * These macros can be used to determine the offset or size of any field in the
- * message header (or any other struct, for that matter).
+ * This macro can be used to determine the size of any field in the message
+ * header (or any other struct, for that matter).
*/
-#define FIELD_OFFSET(type, field) ((uint32_t)&(((type *)0)->field))
#define FIELD_SIZE(type, field) (sizeof (((type *)0)->field))
/*
@@ -1079,7 +1078,7 @@ mboxsc_getmsg_retry:
if ((error == 0) && (data_valid == IOSRAM_DATA_VALID)) {
error = mboxsc_timed_read(deadline, key,
- FIELD_OFFSET(mboxsc_msghdr_t, msg_transid),
+ offsetof(mboxsc_msghdr_t, msg_transid),
FIELD_SIZE(mboxsc_msghdr_t, msg_transid),
(caddr_t)&read_transid);
}
diff --git a/usr/src/uts/sun4u/starcat/io/schpc.c b/usr/src/uts/sun4u/starcat/io/schpc.c
index e604018b7a..921012693d 100644
--- a/usr/src/uts/sun4u/starcat/io/schpc.c
+++ b/usr/src/uts/sun4u/starcat/io/schpc.c
@@ -2069,13 +2069,6 @@ restart_test:
schpc_p->schpc_slot[slot].state &= ~SCHPC_SLOTSTATE_REC_GOOD;
return;
- case PCIMSG_SLOTCOND_NOHOTPLUG:
- cmn_err(CE_WARN, "schpc - Expander %d Board %d PCI Slot %d "
- "is not hot pluggable\n", expander, board,
- SCHPC_SLOT_NUM(slot));
-
- schpc_p->schpc_slot[slot].state &= ~SCHPC_SLOTSTATE_REC_GOOD;
- return;
}
if (slotstatus.slot_power_on) {
diff --git a/usr/src/uts/sun4u/starcat/sys/domaind.h b/usr/src/uts/sun4u/starcat/sys/domaind.h
index f9c1bbd5e1..f06c41236f 100644
--- a/usr/src/uts/sun4u/starcat/sys/domaind.h
+++ b/usr/src/uts/sun4u/starcat/sys/domaind.h
@@ -27,12 +27,11 @@
#ifndef _SYS_DOMAIND_H
#define _SYS_DOMAIND_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#ifdef __cplusplus
extern "C" {
#endif
+#include <sys/sysmacros.h>
#include <sys/cpu_sgnblk_defs.h>
typedef struct domain_data {
@@ -57,16 +56,16 @@ typedef struct domain_data {
/*
* offsets
*/
-#define DOMD_MAGIC_OFFSET ((uint32_t)&((domain_data_t *)0)->magic)
-#define DOMD_VERSION_OFFSET ((uint32_t)&((domain_data_t *)0)->version)
-#define DOMD_KEYSWITCH_OFFSET ((uint32_t)&((domain_data_t *)0)->keyswitch)
-#define DOMD_SCIP_OFFSET ((uint32_t)&((domain_data_t *)0)->master_sc_ip)
-#define DOMD_LEDS_OFFSET ((uint32_t)&((domain_data_t *)0)->leds)
-#define DOMD_DSTATE_OFFSET ((uint32_t)&((domain_data_t *)0)->domain_state)
-#define DOMD_HEARTBEAT_OFFSET ((uint32_t)&((domain_data_t *)0)->heartbeat)
-#define DOMD_CPUSPRESENT_OFFSET ((uint32_t)&((domain_data_t *)0)->cpus_present)
-#define DOMD_CPUSIGS_OFFSET ((uint32_t)&((domain_data_t *)0)->cpu_sigs)
-#define DOMD_RESETINFO_OFFSET ((uint32_t)&((domain_data_t *)0)->resetinfo_off)
+#define DOMD_MAGIC_OFFSET offsetof(domain_data_t, magic)
+#define DOMD_VERSION_OFFSET offsetof(domain_data_t, version)
+#define DOMD_KEYSWITCH_OFFSET offsetof(domain_data_t, keyswitch)
+#define DOMD_SCIP_OFFSET offsetof(domain_data_t, master_sc_ip)
+#define DOMD_LEDS_OFFSET offsetof(domain_data_t, leds)
+#define DOMD_DSTATE_OFFSET offsetof(domain_data_t, domain_state)
+#define DOMD_HEARTBEAT_OFFSET offsetof(domain_data_t, heartbeat)
+#define DOMD_CPUSPRESENT_OFFSET offsetof(domain_data_t, cpus_present)
+#define DOMD_CPUSIGS_OFFSET offsetof(domain_data_t, cpu_sigs)
+#define DOMD_RESETINFO_OFFSET offsetof(domain_data_t, resetinfo_off)
/*
* tod
diff --git a/usr/src/uts/sun4u/starcat/sys/sc_cvcio.h b/usr/src/uts/sun4u/starcat/sys/sc_cvcio.h
index 91fdf2516d..5c56a0c1fd 100644
--- a/usr/src/uts/sun4u/starcat/sys/sc_cvcio.h
+++ b/usr/src/uts/sun4u/starcat/sys/sc_cvcio.h
@@ -27,7 +27,7 @@
#ifndef _SYS_SC_CVCIO_H
#define _SYS_SC_CVCIO_H
-#pragma ident "%Z%%M% %I% %E% SMI"
+#include <sys/sysmacros.h>
#ifdef __cplusplus
extern "C" {
@@ -120,7 +120,7 @@ typedef struct cvc_ctl {
* These macros can be used to determine the offset or size of any field in the
* CONC chunk.
*/
-#define CVC_CTL_OFFSET(field) ((uint32_t)&(((cvc_ctl_t *)0)->field))
+#define CVC_CTL_OFFSET(field) offsetof(cvc_ctl_t, field)
#define CVC_CTL_SIZE(field) (sizeof (((cvc_ctl_t *)0)->field))
/*
diff --git a/usr/src/uts/sun4u/starcat/sys/schpc_msg.h b/usr/src/uts/sun4u/starcat/sys/schpc_msg.h
index b9c6e44ffd..64098b01e4 100644
--- a/usr/src/uts/sun4u/starcat/sys/schpc_msg.h
+++ b/usr/src/uts/sun4u/starcat/sys/schpc_msg.h
@@ -27,8 +27,6 @@
#ifndef _SYS_SCHPC_MSG_H
#define _SYS_SCHPC_MSG_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* This header file describes the messages that are sent between the
* schpc Hot Plug Controller Driver running on the domain and the System
@@ -135,7 +133,6 @@ typedef struct {
#define PCIMSG_SLOTCOND_GOOD 0x1
#define PCIMSG_SLOTCOND_REC_FAIL 0x2
#define PCIMSG_SLOTCOND_OCC_FAIL 0x3
-#define PCIMSG_SLOTCOND_NOHOTPLUG 0x4
/*
* Values for the slot_freq_cap and slot_freq_setting fields of the get
diff --git a/usr/src/uts/sun4u/starfire/io/drmach.c b/usr/src/uts/sun4u/starfire/io/drmach.c
index 799a3417cb..a4aab68a2b 100644
--- a/usr/src/uts/sun4u/starfire/io/drmach.c
+++ b/usr/src/uts/sun4u/starfire/io/drmach.c
@@ -2499,7 +2499,8 @@ drmach_cpu_stop_self(void)
extern void drmach_shutdown_asm(uint64_t);
extern void drmach_shutdown_asm_end(void);
- funclen = (uint_t)drmach_shutdown_asm_end - (uint_t)drmach_shutdown_asm;
+ funclen = (uintptr_t)drmach_shutdown_asm_end -
+ (uintptr_t)drmach_shutdown_asm;
ASSERT(funclen <= MMU_PAGESIZE);
/*
* We'll start from the 0th's base.
diff --git a/usr/src/uts/sun4u/starfire/io/idn.c b/usr/src/uts/sun4u/starfire/io/idn.c
index ef4470894d..fd988517f7 100644
--- a/usr/src/uts/sun4u/starfire/io/idn.c
+++ b/usr/src/uts/sun4u/starfire/io/idn.c
@@ -620,7 +620,7 @@ idnattach(dev_info_t *dip, ddi_attach_cmd_t cmd)
#ifndef lint
ASSERT(sizeof (idnsb_t) == IDNSB_SIZE);
- ASSERT((uint_t)&((struct idnsb *)0)->id_hwchkpt[0] == 0x40);
+ ASSERT(offsetof(struct idnsb, id_hwchkpt[0]) == 0x40);
#endif /* lint */
switch (cmd) {
@@ -4745,7 +4745,8 @@ static char _bd2hexascii[] = {
mutex_enter(&snoop_mutex); \
if (snoop_data == NULL) { \
snoop_data = (struct snoop_buffer *) \
- (((uint_t)snoop_buffer + 0xf) & ~0xf); \
+ (((uint_t)(uintptr_t)snoop_buffer + 0xf) & \
+ ~0xf); \
} \
snoop_data[snoop_index].io = ((in) == 0) ? 'o' : 'i'; \
snoop_data[snoop_index].board = \
diff --git a/usr/src/uts/sun4u/starfire/sys/idn.h b/usr/src/uts/sun4u/starfire/sys/idn.h
index 61fa088897..256e4c6e0b 100644
--- a/usr/src/uts/sun4u/starfire/sys/idn.h
+++ b/usr/src/uts/sun4u/starfire/sys/idn.h
@@ -2200,7 +2200,8 @@ typedef struct idn_mboxmsg {
typedef idn_mboxmsg_t idn_mboxq_t[1];
#define IDN_CKSUM_MBOX_COUNT \
- (((int)&((idn_mboxhdr_t *)(0))->mh_svr_ready) / 2)
+ (((int)(uintptr_t) \
+ &((idn_mboxhdr_t *)(0))->mh_svr_ready) / 2)
#define IDN_CKSUM_MBOX(h) \
(IDN_CHECKSUM ? \
idn_cksum((ushort_t *)(h), IDN_CKSUM_MBOX_COUNT) : 0)
diff --git a/usr/src/uts/sun4u/starfire/sys/idn_smr.h b/usr/src/uts/sun4u/starfire/sys/idn_smr.h
index 3deccf8d25..8cef0a7bcf 100644
--- a/usr/src/uts/sun4u/starfire/sys/idn_smr.h
+++ b/usr/src/uts/sun4u/starfire/sys/idn_smr.h
@@ -29,8 +29,6 @@
#ifndef _SYS_IDN_SMR_H
#define _SYS_IDN_SMR_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/sysmacros.h>
#ifdef __cplusplus
@@ -64,7 +62,8 @@ typedef uint_t smr_offset_t;
#define IDN_BUF2DATA(b, o) ((caddr_t)((uintptr_t)(b) + (uintptr_t)(o)))
#define IDN_BUF2HDR(b) ((smr_pkthdr_t *)(b))
-#define IDN_CKSUM_PKT_COUNT (((int)&((smr_pkthdr_t *)(0))->b_cksum) / 2)
+#define IDN_CKSUM_PKT_COUNT (((int)(uintptr_t) \
+ &((smr_pkthdr_t *)(0))->b_cksum) / 2)
#define IDN_CKSUM_PKT(h) \
(IDN_CHECKSUM ? \
idn_cksum((ushort_t *)(h), IDN_CKSUM_PKT_COUNT) : 0)
diff --git a/usr/src/uts/sun4u/vm/zulu_hat.c b/usr/src/uts/sun4u/vm/zulu_hat.c
index f9414c2254..e50e38d7b9 100644
--- a/usr/src/uts/sun4u/vm/zulu_hat.c
+++ b/usr/src/uts/sun4u/vm/zulu_hat.c
@@ -24,8 +24,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/cmn_err.h>
#include <sys/mman.h>
@@ -150,9 +148,9 @@ zulu_hat_steal_ctx()
ASSERT(zhat != NULL);
TNF_PROBE_3(steal_ctx_loop, "zulu_hat", /* CSTYLED */,
- tnf_int, ctx, ctx,
- tnf_long, last_used, zhat->last_used,
- tnf_long, oldest, delta);
+ tnf_int, ctx, ctx,
+ tnf_long, last_used, zhat->last_used,
+ tnf_long, oldest, delta);
if (zhat->last_used < delta) {
zhat_oldest = zhat;
@@ -166,7 +164,7 @@ zulu_hat_steal_ctx()
/* Nobody should have the tsb lock bit set here */
ASSERT(((uint64_t)zulu_ctx_tab[zhat_oldest->zulu_ctx] & ZULU_CTX_LOCK)
- == 0);
+ == 0);
ctx = zhat_oldest->zulu_ctx;
zhat_oldest->zulu_ctx = -1;
@@ -362,17 +360,17 @@ zulu_shadow_tree_lookup(struct zulu_hat *zhat, uint64_t ivaddr,
* avl_find.
*/
if ((zhat->sblk_last != NULL) &&
- (proto.ivaddr == zhat->sblk_last->ivaddr)) {
+ (proto.ivaddr == zhat->sblk_last->ivaddr)) {
sblk = zhat->sblk_last;
} else {
sblk = (struct zulu_shadow_blk *)avl_find(&zhat->shadow_tree,
- &proto, where);
+ &proto, where);
zhat->sblk_last = sblk;
}
TNF_PROBE_2(zulu_shadow_tree_lookup, "zulu_shadow_tree", /* CSTYLED */,
- tnf_opaque, ivaddr, proto.ivaddr,
- tnf_opaque, where, where ? *where : ~0);
+ tnf_opaque, ivaddr, proto.ivaddr,
+ tnf_opaque, where, where ? *where : ~0);
return (sblk);
}
@@ -398,7 +396,7 @@ zulu_shadow_tree_insert(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
sblk->ref_count++;
end = zblk->zulu_hat_blk_vaddr +
- ZULU_HAT_PGSZ(zblk->zulu_hat_blk_size);
+ ZULU_HAT_PGSZ(zblk->zulu_hat_blk_size);
if (zblk->zulu_hat_blk_vaddr < sblk->min_addr) {
sblk->min_addr = zblk->zulu_hat_blk_vaddr;
}
@@ -421,8 +419,8 @@ zulu_shadow_tree_insert(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
}
zblk->zulu_shadow_blk = sblk;
TNF_PROBE_2(zulu_shadow_tree_insert, "zulu_shadow_tree", /* CSTYLED */,
- tnf_opaque, vaddr, ivaddr,
- tnf_opaque, ref_count, sblk->ref_count);
+ tnf_opaque, vaddr, ivaddr,
+ tnf_opaque, ref_count, sblk->ref_count);
}
/*
@@ -440,8 +438,8 @@ zulu_shadow_tree_delete(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
sblk = zblk->zulu_shadow_blk;
TNF_PROBE_2(zulu_shadow_tree_delete, "zulu_shadow_tree", /* CSTYLED */,
- tnf_opaque, vaddr, sblk->ivaddr,
- tnf_opaque, ref_count, sblk->ref_count-1);
+ tnf_opaque, vaddr, sblk->ivaddr,
+ tnf_opaque, ref_count, sblk->ref_count-1);
if (--sblk->ref_count == 0) {
if (zhat->sblk_last == sblk) {
@@ -461,7 +459,7 @@ zulu_shadow_tree_delete(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
* the zblks are deleted in order.
*/
uint64_t end = zblk->zulu_hat_blk_vaddr +
- ZULU_HAT_PGSZ(zblk->zulu_hat_blk_size);
+ ZULU_HAT_PGSZ(zblk->zulu_hat_blk_size);
if (zblk->zulu_hat_blk_vaddr == sblk->min_addr) {
sblk->min_addr = end;
@@ -481,10 +479,10 @@ zulu_shadow_tree_destroy(struct zulu_hat *zhat)
void *cookie = NULL;
while ((sblk = (struct zulu_shadow_blk *)avl_destroy_nodes(
- &zhat->shadow_tree, &cookie)) != NULL) {
+ &zhat->shadow_tree, &cookie)) != NULL) {
TNF_PROBE_2(shadow_tree_destroy, "zulu_hat", /* CSTYLED */,
- tnf_opaque, vaddr, sblk->ivaddr,
- tnf_opaque, ref_count, sblk->ref_count);
+ tnf_opaque, vaddr, sblk->ivaddr,
+ tnf_opaque, ref_count, sblk->ref_count);
kmem_free(sblk, sizeof (*sblk));
}
avl_destroy(&zhat->shadow_tree);
@@ -506,12 +504,12 @@ zulu_hat_insert_map(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
int tsb_hash;
tsb_hash = ZULU_TSB_HASH(zblk->zulu_hat_blk_vaddr,
- zblk->zulu_hat_blk_size, zhat->zulu_tsb_size);
+ zblk->zulu_hat_blk_size, zhat->zulu_tsb_size);
TNF_PROBE_3(zulu_hat_insert_map, "zulu_hat", /* CSTYLED */,
- tnf_opaque, zblkp, zblk,
- tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr,
- tnf_opaque, hash, tsb_hash);
+ tnf_opaque, zblkp, zblk,
+ tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr,
+ tnf_opaque, hash, tsb_hash);
ASSERT(tsb_hash < zhat->zulu_tsb_size);
@@ -524,12 +522,12 @@ zulu_hat_insert_map(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
*/
zblk->zulu_hash_prev = NULL;
zblk->zulu_hash_next = ZULU_MAP_HASH_HEAD(zhat,
- zblk->zulu_hat_blk_vaddr, zblk->zulu_hat_blk_size);
+ zblk->zulu_hat_blk_vaddr, zblk->zulu_hat_blk_size);
if (zblk->zulu_hash_next) {
zblk->zulu_hash_next->zulu_hash_prev = zblk;
}
ZULU_MAP_HASH_HEAD(zhat, zblk->zulu_hat_blk_vaddr,
- zblk->zulu_hat_blk_size) = zblk;
+ zblk->zulu_hat_blk_size) = zblk;
zulu_ctx_tsb_lock_enter(zhat);
zhat->zulu_tsb[tsb_hash] = zblk->zulu_hat_blk_tte;
@@ -543,11 +541,11 @@ static void
zulu_hat_remove_map(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
{
int tsb_hash = ZULU_TSB_HASH(zblk->zulu_hat_blk_vaddr,
- zblk->zulu_hat_blk_size, zhat->zulu_tsb_size);
+ zblk->zulu_hat_blk_size, zhat->zulu_tsb_size);
TNF_PROBE_2(zulu_hat_remove_map, "zulu_hat", /* CSTYLED */,
- tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr,
- tnf_opaque, hash, tsb_hash);
+ tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr,
+ tnf_opaque, hash, tsb_hash);
ASSERT(tsb_hash < zhat->zulu_tsb_size);
ASSERT(mutex_owned(&zhat->lock));
@@ -561,7 +559,7 @@ zulu_hat_remove_map(struct zulu_hat *zhat, struct zulu_hat_blk *zblk)
zblk->zulu_hash_prev->zulu_hash_next = zblk->zulu_hash_next;
} else {
ZULU_MAP_HASH_HEAD(zhat, zblk->zulu_hat_blk_vaddr,
- zblk->zulu_hat_blk_size) = NULL;
+ zblk->zulu_hat_blk_size) = NULL;
}
if (zblk->zulu_hash_next) {
zblk->zulu_hash_next->zulu_hash_prev = zblk->zulu_hash_prev;
@@ -593,7 +591,7 @@ zulu_lookup_map_bysize(struct zulu_hat *zhat, caddr_t vaddr, int page_sz)
ASSERT(mutex_owned(&zhat->lock));
for (zblkp = ZULU_MAP_HASH_HEAD(zhat, ivaddr, page_sz); zblkp != NULL;
- zblkp = zblkp->zulu_hash_next) {
+ zblkp = zblkp->zulu_hash_next) {
uint64_t size;
uint64_t iaddr;
@@ -606,8 +604,8 @@ zulu_lookup_map_bysize(struct zulu_hat *zhat, caddr_t vaddr, int page_sz)
int tsb_hash;
tsb_hash = ZULU_TSB_HASH(zblkp->zulu_hat_blk_vaddr,
- zblkp->zulu_hat_blk_size,
- zhat->zulu_tsb_size);
+ zblkp->zulu_hat_blk_size,
+ zhat->zulu_tsb_size);
ASSERT(tsb_hash < zhat->zulu_tsb_size);
zulu_ctx_tsb_lock_enter(zhat);
@@ -619,9 +617,9 @@ zulu_lookup_map_bysize(struct zulu_hat *zhat, caddr_t vaddr, int page_sz)
}
TNF_PROBE_3(zulu_hat_lookup_map_bysz, "zulu_hat", /* CSTYLED */,
- tnf_opaque, zblkp, zblkp,
- tnf_int, blks_checked, blks_checked,
- tnf_int, page_sz, page_sz);
+ tnf_opaque, zblkp, zblkp,
+ tnf_int, blks_checked, blks_checked,
+ tnf_int, page_sz, page_sz);
return (zblkp);
}
@@ -684,8 +682,8 @@ zulu_hat_load(struct zulu_hat *zhat, caddr_t vaddr,
struct zulu_tte tte;
TNF_PROBE_2(zulu_hat_load, "zulu_hat", /* CSTYLED */,
- tnf_int, zulu_ctx, zhat->zulu_ctx,
- tnf_opaque, vaddr, vaddr);
+ tnf_int, zulu_ctx, zhat->zulu_ctx,
+ tnf_opaque, vaddr, vaddr);
mutex_enter(&zhat->lock);
ASSERT(zhat->zulu_ctx >= 0);
@@ -703,7 +701,7 @@ zulu_hat_load(struct zulu_hat *zhat, caddr_t vaddr,
*p = flags_pfn; /* load the flags */
zuluvm_load_tte(zhat, vaddr, flags_pfn, tte.zulu_tte_perm,
- tte.zulu_tte_size);
+ tte.zulu_tte_size);
if (ppg_size != NULL) {
*ppg_size = tte.zulu_tte_size;
}
@@ -720,7 +718,7 @@ zulu_hat_load(struct zulu_hat *zhat, caddr_t vaddr,
tte = zblkp->zulu_hat_blk_tte;
tte.zulu_tte_pfn = ZULU_HAT_ADJ_PFN((&tte), vaddr);
zuluvm_load_tte(zhat, vaddr, tte.zulu_tte_pfn,
- tte.zulu_tte_perm, tte.zulu_tte_size);
+ tte.zulu_tte_perm, tte.zulu_tte_size);
if (ppg_size != NULL) {
*ppg_size = tte.zulu_tte_size;
}
@@ -739,8 +737,8 @@ zulu_hat_load(struct zulu_hat *zhat, caddr_t vaddr,
TNF_PROBE_0(calling_as_fault, "zulu_hat", /* CSTYLED */);
as_err = as_fault((struct hat *)zhat, zhat->zulu_xhat.xhat_as,
- (caddr_t)(ZULU_VADDR((uint64_t)vaddr) & PAGEMASK),
- PAGESIZE, F_INVAL, rw);
+ (caddr_t)(ZULU_VADDR((uint64_t)vaddr) & PAGEMASK),
+ PAGESIZE, F_INVAL, rw);
mutex_enter(&zhat->lock);
zhat->in_fault = 0;
@@ -787,7 +785,7 @@ zulu_hat_alloc(void *arg)
zhat->zulu_tsb_size = ZULU_TSB_NUM;
zhat->hash_tbl = kmem_zalloc(ZULU_HASH_TBL_SZ, KM_SLEEP);
avl_create(&zhat->shadow_tree, zulu_shadow_tree_compare,
- sizeof (zhat->shadow_tree), ZULU_SHADOW_BLK_LINK_OFFSET);
+ sizeof (zhat->shadow_tree), ZULU_SHADOW_BLK_LINK_OFFSET);
/*
* The zulu hat has a few opaque data structs embedded in it.
* This tag makes finding the our data easier with a debugger.
@@ -839,9 +837,9 @@ zulu_do_hat_memload(struct xhat *xhat, caddr_t vaddr, struct page *page,
pfn_t pfn;
TNF_PROBE_4(zulu_hat_memload, "zulu_hat", /* CSTYLED */,
- tnf_int, zulu_ctx, zhat->zulu_ctx,
- tnf_opaque, vaddr, vaddr, tnf_opaque, attr, attr,
- tnf_opaque, flags, flags);
+ tnf_int, zulu_ctx, zhat->zulu_ctx,
+ tnf_opaque, vaddr, vaddr, tnf_opaque, attr, attr,
+ tnf_opaque, flags, flags);
/*
* keep track of the highest address that this zhat has had
@@ -893,10 +891,10 @@ zulu_do_hat_memload(struct xhat *xhat, caddr_t vaddr, struct page *page,
zulu_hat_insert_map(zhat, zblk);
if (!zhat->freed) {
zuluvm_load_tte(zhat, vaddr, zblk->zulu_hat_blk_pfn,
- zblk->zulu_hat_blk_perm, zblk->zulu_hat_blk_size);
+ zblk->zulu_hat_blk_perm, zblk->zulu_hat_blk_size);
}
zhat->fault_ivaddr_last =
- ZULU_VADDR((uint64_t)zblk->zulu_hat_blk_vaddr);
+ ZULU_VADDR((uint64_t)zblk->zulu_hat_blk_vaddr);
mutex_exit(&zhat->lock);
}
@@ -924,9 +922,9 @@ zulu_hat_memload_array(struct xhat *xhat, caddr_t addr, size_t len,
struct zulu_hat *zhat = (struct zulu_hat *)xhat;
TNF_PROBE_3(zulu_hat_memload_array, "zulu_hat", /* CSTYLED */,
- tnf_int, zulu_ctx, zhat->zulu_ctx,
- tnf_opaque, addr, addr,
- tnf_opaque, len, len);
+ tnf_int, zulu_ctx, zhat->zulu_ctx,
+ tnf_opaque, addr, addr,
+ tnf_opaque, len, len);
for (; len > 0; len -= ZULU_HAT_PGSZ((*gen_pps)->p_szc),
gen_pps += ZULU_HAT_NUM_PGS((*gen_pps)->p_szc)) {
@@ -1020,7 +1018,7 @@ zulu_hat_unload_region(struct zulu_hat *zhat, uint64_t ivaddr, size_t size,
zhat->fault_ivaddr_last = 0;
}
zulu_hat_demap_page(zhat, (caddr_t)iaddr,
- zblkp->zulu_hat_blk_size);
+ zblkp->zulu_hat_blk_size);
}
add_to_free_list(pfree_list, zblkp);
@@ -1047,10 +1045,10 @@ zulu_hat_unload(struct xhat *xhat, caddr_t vaddr, size_t size, uint_t flags)
(void) flags;
TNF_PROBE_4(zulu_hat_unload, "zulu_hat", /* CSTYLED */,
- tnf_int, zulu_ctx, zhat->zulu_ctx,
- tnf_opaque, vaddr, vaddr,
- tnf_opaque, vaddr_max, zhat->vaddr_max,
- tnf_opaque, size, size);
+ tnf_int, zulu_ctx, zhat->zulu_ctx,
+ tnf_opaque, vaddr, vaddr,
+ tnf_opaque, vaddr_max, zhat->vaddr_max,
+ tnf_opaque, size, size);
mutex_enter(&zhat->lock);
@@ -1086,7 +1084,7 @@ zulu_hat_unload(struct xhat *xhat, caddr_t vaddr, size_t size, uint_t flags)
found++;
sblk_end = (ivaddr + ZULU_SHADOW_BLK_RANGE) &
- ZULU_SHADOW_BLK_MASK;
+ ZULU_SHADOW_BLK_MASK;
if (sblk_end < end) {
region_size = sblk_end - ivaddr;
@@ -1094,7 +1092,7 @@ zulu_hat_unload(struct xhat *xhat, caddr_t vaddr, size_t size, uint_t flags)
region_size = end - ivaddr;
}
zulu_hat_unload_region(zhat, ivaddr, region_size, sblk,
- &free_list);
+ &free_list);
}
ivaddr += ZULU_SHADOW_BLK_RANGE;
@@ -1133,9 +1131,9 @@ zulu_hat_pageunload(struct xhat *xhat, struct page *pp, uint_t flags,
(void) flags;
TNF_PROBE_3(zulu_hat_pageunload, "zulu_hat", /* CSTYLED */,
- tnf_int, zulu_ctx, zhat->zulu_ctx,
- tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr,
- tnf_int, pg_size, zblk->zulu_hat_blk_size);
+ tnf_int, zulu_ctx, zhat->zulu_ctx,
+ tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr,
+ tnf_int, pg_size, zblk->zulu_hat_blk_size);
mutex_enter(&zhat->lock);
if (zblk->zulu_shadow_blk != NULL) {
@@ -1153,8 +1151,9 @@ zulu_hat_pageunload(struct xhat *xhat, struct page *pp, uint_t flags,
*/
if (!zhat->freed) {
zulu_hat_demap_page(zhat,
- (caddr_t)(zblk->zulu_hat_blk_page << ZULU_HAT_BP_SHIFT),
- zblk->zulu_hat_blk_size);
+ (caddr_t)(uintptr_t)(zblk->zulu_hat_blk_page <<
+ ZULU_HAT_BP_SHIFT),
+ zblk->zulu_hat_blk_size);
}
} else {
/*
@@ -1165,7 +1164,7 @@ zulu_hat_pageunload(struct xhat *xhat, struct page *pp, uint_t flags,
do_delete = 0;
TNF_PROBE_0(zulu_hat_pageunload_skip, "zulu_hat",
- /* CSTYLED */);
+ /* CSTYLED */);
}
mutex_exit(&zhat->lock);
@@ -1250,9 +1249,9 @@ zulu_hat_update_attr(struct xhat *xhat, caddr_t vaddr, size_t size,
struct zulu_hat *zhat = (struct zulu_hat *)xhat;
TNF_PROBE_5(zulu_hat_changeprot, "zulu_hat", /* CSTYLED */,
- tnf_int, ctx, zhat->zulu_ctx,
- tnf_opaque, vaddr, vaddr, tnf_opaque, size, size,
- tnf_uint, flags, flags, tnf_int, op, op);
+ tnf_int, ctx, zhat->zulu_ctx,
+ tnf_opaque, vaddr, vaddr, tnf_opaque, size, size,
+ tnf_uint, flags, flags, tnf_int, op, op);
zulu_hat_unload(xhat, vaddr, size, 0);
}
@@ -1263,7 +1262,7 @@ zulu_hat_chgprot(struct xhat *xhat, caddr_t vaddr, size_t size, uint_t flags)
struct zulu_hat *zhat = (struct zulu_hat *)xhat;
#ifdef DEBUG
printf("zulu_hat_chgprot: ctx: %d addr: %lx, size: %lx flags: %x\n",
- zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
+ zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
#endif
zulu_hat_update_attr(xhat, vaddr, size, flags, ZULU_HAT_CHGATTR);
}
@@ -1275,7 +1274,7 @@ zulu_hat_setattr(struct xhat *xhat, caddr_t vaddr, size_t size, uint_t flags)
struct zulu_hat *zhat = (struct zulu_hat *)xhat;
#ifdef DEBUG
printf("zulu_hat_setattr: ctx: %d addr: %lx, size: %lx flags: %x\n",
- zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
+ zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
#endif
zulu_hat_update_attr(xhat, vaddr, size, flags, ZULU_HAT_SETATTR);
}
@@ -1286,7 +1285,7 @@ zulu_hat_clrattr(struct xhat *xhat, caddr_t vaddr, size_t size, uint_t flags)
struct zulu_hat *zhat = (struct zulu_hat *)xhat;
#ifdef DEBUG
printf("zulu_hat_clrattr: ctx: %d addr: %lx, size: %lx flags: %x\n",
- zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
+ zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
#endif
zulu_hat_update_attr(xhat, vaddr, size, flags, ZULU_HAT_CLRATTR);
}
@@ -1296,12 +1295,12 @@ zulu_hat_chgattr(struct xhat *xhat, caddr_t vaddr, size_t size, uint_t flags)
{
struct zulu_hat *zhat = (struct zulu_hat *)xhat;
TNF_PROBE_3(zulu_hat_chgattr, "zulu_hat", /* CSTYLED */,
- tnf_int, ctx, zhat->zulu_ctx,
- tnf_opaque, vaddr, vaddr,
- tnf_opaque, flags, flags);
+ tnf_int, ctx, zhat->zulu_ctx,
+ tnf_opaque, vaddr, vaddr,
+ tnf_opaque, flags, flags);
#ifdef DEBUG
printf("zulu_hat_chgattr: ctx: %d addr: %lx, size: %lx flags: %x\n",
- zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
+ zhat->zulu_ctx, (uint64_t)vaddr, size, flags);
#endif
zulu_hat_update_attr(xhat, vaddr, size, flags, ZULU_HAT_CHGATTR);
}
@@ -1408,7 +1407,7 @@ zulu_hat_proc_attach(struct as *as, void *zdev)
int xhat_rval;
xhat_rval = xhat_attach_xhat(&zulu_hat_provider, as,
- (struct xhat **)&zhat, NULL);
+ (struct xhat **)&zhat, NULL);
if ((xhat_rval == 0) && (zhat != NULL)) {
mutex_enter(&zhat->lock);
ZULU_HAT2AS(zhat) = as;
@@ -1417,8 +1416,8 @@ zulu_hat_proc_attach(struct as *as, void *zdev)
}
TNF_PROBE_3(zulu_hat_proc_attach, "zulu_hat", /* CSTYLED */,
- tnf_int, xhat_rval, xhat_rval, tnf_opaque, as, as,
- tnf_opaque, zhat, zhat);
+ tnf_int, xhat_rval, xhat_rval, tnf_opaque, as, as,
+ tnf_opaque, zhat, zhat);
return (zhat);
}