From dc020b8838106abbab23cbfd0da2456989de43da Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 28 Apr 2021 10:47:34 -0700 Subject: [PATCH 01/17] ENH: Import Intel-SVML source code into NumPy --- numpy/core/src/umath/svml/svml_z0_acos_d_la.s | 2642 ++ numpy/core/src/umath/svml/svml_z0_acos_s_la.s | 2292 ++ .../core/src/umath/svml/svml_z0_acosh_d_la.s | 891 + .../core/src/umath/svml/svml_z0_acosh_s_la.s | 685 + numpy/core/src/umath/svml/svml_z0_asin_d_la.s | 2551 ++ numpy/core/src/umath/svml/svml_z0_asin_s_la.s | 2199 ++ .../core/src/umath/svml/svml_z0_asinh_d_la.s | 874 + .../core/src/umath/svml/svml_z0_asinh_s_la.s | 673 + .../core/src/umath/svml/svml_z0_atan2_d_la.s | 2393 ++ .../core/src/umath/svml/svml_z0_atan2_s_la.s | 2074 ++ numpy/core/src/umath/svml/svml_z0_atan_d_la.s | 1352 ++ numpy/core/src/umath/svml/svml_z0_atan_s_la.s | 355 + .../core/src/umath/svml/svml_z0_atanh_d_la.s | 656 + .../core/src/umath/svml/svml_z0_atanh_s_la.s | 558 + numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s | 911 + numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s | 1012 + numpy/core/src/umath/svml/svml_z0_cos_d_la.s | 17674 ++++++++++++++ numpy/core/src/umath/svml/svml_z0_cos_s_la.s | 2854 +++ numpy/core/src/umath/svml/svml_z0_cosh_d_la.s | 1715 ++ numpy/core/src/umath/svml/svml_z0_cosh_s_la.s | 1211 + numpy/core/src/umath/svml/svml_z0_exp2_d_la.s | 830 + numpy/core/src/umath/svml/svml_z0_exp2_s_la.s | 494 + numpy/core/src/umath/svml/svml_z0_exp_d_la.s | 1074 + numpy/core/src/umath/svml/svml_z0_exp_s_la.s | 772 + .../core/src/umath/svml/svml_z0_expm1_d_la.s | 1089 + .../core/src/umath/svml/svml_z0_expm1_s_la.s | 593 + .../core/src/umath/svml/svml_z0_log10_d_la.s | 1124 + .../core/src/umath/svml/svml_z0_log10_s_la.s | 754 + .../core/src/umath/svml/svml_z0_log1p_d_la.s | 1132 + .../core/src/umath/svml/svml_z0_log1p_s_la.s | 1650 ++ numpy/core/src/umath/svml/svml_z0_log2_d_la.s | 1714 ++ numpy/core/src/umath/svml/svml_z0_log2_s_la.s | 728 + numpy/core/src/umath/svml/svml_z0_log_d_la.s | 1096 + numpy/core/src/umath/svml/svml_z0_log_s_la.s | 930 + numpy/core/src/umath/svml/svml_z0_pow_d_la.s | 3525 +++ numpy/core/src/umath/svml/svml_z0_pow_s_la.s | 2012 ++ numpy/core/src/umath/svml/svml_z0_sin_d_la.s | 17544 ++++++++++++++ numpy/core/src/umath/svml/svml_z0_sin_s_la.s | 2751 +++ numpy/core/src/umath/svml/svml_z0_sinh_d_la.s | 2052 ++ numpy/core/src/umath/svml/svml_z0_sinh_s_la.s | 1446 ++ numpy/core/src/umath/svml/svml_z0_tan_d_la.s | 20219 ++++++++++++++++ numpy/core/src/umath/svml/svml_z0_tan_s_la.s | 3177 +++ numpy/core/src/umath/svml/svml_z0_tanh_d_la.s | 3046 +++ numpy/core/src/umath/svml/svml_z0_tanh_s_la.s | 1791 ++ 44 files changed, 117115 insertions(+) create mode 100644 numpy/core/src/umath/svml/svml_z0_acos_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_acos_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_acosh_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_acosh_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_asin_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_asin_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_asinh_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_asinh_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_atan2_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_atan2_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_atan_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_atan_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_atanh_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_atanh_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_cos_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_cos_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_cosh_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_cosh_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_exp2_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_exp2_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_exp_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_exp_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_expm1_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_expm1_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log10_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log10_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log1p_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log1p_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log2_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log2_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_log_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_pow_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_pow_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_sin_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_sin_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_sinh_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_sinh_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_tan_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_tan_s_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_tanh_d_la.s create mode 100644 numpy/core/src/umath/svml/svml_z0_tanh_s_la.s diff --git a/numpy/core/src/umath/svml/svml_z0_acos_d_la.s b/numpy/core/src/umath/svml/svml_z0_acos_d_la.s new file mode 100644 index 000000000000..779b9105fd8d --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_acos_d_la.s @@ -0,0 +1,2642 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_acos8_z0_0: + + .align 16,0x90 + .globl __svml_acos8 + +__svml_acos8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups __svml_dacos_data_internal(%rip), %zmm7 + vmovups 64+__svml_dacos_data_internal(%rip), %zmm8 + +/* S ~ 2*sqrt(Y) */ + vmovups 128+__svml_dacos_data_internal(%rip), %zmm11 + vmovups 384+__svml_dacos_data_internal(%rip), %zmm14 + vmovups 448+__svml_dacos_data_internal(%rip), %zmm15 + vmovups 512+__svml_dacos_data_internal(%rip), %zmm2 + vmovups 576+__svml_dacos_data_internal(%rip), %zmm1 + vmovups 256+__svml_dacos_data_internal(%rip), %zmm10 + vmovaps %zmm0, %zmm6 + +/* x = -|arg| */ + vorpd %zmm6, %zmm7, %zmm5 + vandpd %zmm6, %zmm7, %zmm4 + +/* Y = 0.5 + 0.5*(-x) */ + vfmadd231pd {rn-sae}, %zmm5, %zmm8, %zmm8 + +/* x^2 */ + vmulpd {rn-sae}, %zmm5, %zmm5, %zmm9 + vrsqrt14pd %zmm8, %zmm12 + vcmppd $17, {sae}, %zmm11, %zmm8, %k2 + vcmppd $17, {sae}, %zmm10, %zmm5, %k0 + vmovups 960+__svml_dacos_data_internal(%rip), %zmm10 + vmovups 1088+__svml_dacos_data_internal(%rip), %zmm11 + vminpd {sae}, %zmm8, %zmm9, %zmm3 + vmovups 832+__svml_dacos_data_internal(%rip), %zmm9 + vxorpd %zmm12, %zmm12, %zmm12{%k2} + vaddpd {rn-sae}, %zmm8, %zmm8, %zmm0 + vcmppd $21, {sae}, %zmm8, %zmm3, %k1 + +/* Xx then a=-x, b=y, PIO2=Pi/2 + */ + vmovups 64+__svml_datan2_data_internal(%rip), %zmm3 + vandpd %zmm4, %zmm0, %zmm11 + vmovaps %zmm1, %zmm7 + vandpd %zmm4, %zmm7, %zmm2 + vandpd %zmm6, %zmm7, %zmm5 + vandpd %zmm6, %zmm0, %zmm4 + vorpd %zmm6, %zmm2, %zmm12 + vcmppd $17, {sae}, %zmm2, %zmm11, %k1 + vmovdqu 1664+__svml_datan2_data_internal(%rip), %ymm6 + vmovups %zmm11, 64(%rsp) + +/* Check if y and x are on main path. */ + vpsrlq $32, %zmm2, %zmm9 + vblendmpd %zmm11, %zmm12, %zmm13{%k1} + vblendmpd %zmm2, %zmm11, %zmm15{%k1} + vpsrlq $32, %zmm11, %zmm8 + vmovdqu 1600+__svml_datan2_data_internal(%rip), %ymm12 + vdivpd {rn-sae}, %zmm15, %zmm13, %zmm1 + vmovups %zmm15, (%rsp) + vpmovqd %zmm9, %ymm14 + vpmovqd %zmm8, %ymm10 + vxorpd %zmm3, %zmm3, %zmm3{%k1} + vpsubd %ymm12, %ymm14, %ymm13 + vpsubd %ymm12, %ymm10, %ymm9 + +/* Polynomial. */ + vmulpd {rn-sae}, %zmm1, %zmm1, %zmm12 + vpcmpgtd %ymm6, %ymm13, %ymm15 + vpcmpeqd %ymm6, %ymm13, %ymm11 + vmulpd {rn-sae}, %zmm12, %zmm12, %zmm13 + vpor %ymm11, %ymm15, %ymm8 + vmovups 256+__svml_datan2_data_internal(%rip), %zmm11 + vmovups 512+__svml_datan2_data_internal(%rip), %zmm15 + vpcmpgtd %ymm6, %ymm9, %ymm14 + vpcmpeqd %ymm6, %ymm9, %ymm6 + vpor %ymm6, %ymm14, %ymm10 + vmulpd {rn-sae}, %zmm13, %zmm13, %zmm14 + vmovups 320+__svml_datan2_data_internal(%rip), %zmm9 + vpor %ymm10, %ymm8, %ymm6 + vmovups 384+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd231pd {rn-sae}, %zmm14, %zmm11, %zmm15 + vmovups 576+__svml_datan2_data_internal(%rip), %zmm11 + vmovups 704+__svml_datan2_data_internal(%rip), %zmm8 + vfmadd231pd {rn-sae}, %zmm14, %zmm9, %zmm11 + vmovups 640+__svml_datan2_data_internal(%rip), %zmm9 + vfmadd231pd {rn-sae}, %zmm14, %zmm10, %zmm9 + vmovups 448+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd231pd {rn-sae}, %zmm14, %zmm10, %zmm8 + vmovups 768+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15 + vmovups 832+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11 + vmovups 896+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9 + vmovups 960+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm8 + vmovups 1024+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15 + vmovups 1088+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11 + vmovups 1152+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9 + vmovups 1216+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm8 + vmovups 1280+__svml_datan2_data_internal(%rip), %zmm10 + +/* A00=1.0, account for it later VQFMA(D, dP4, dP4, dR8, dA00); */ + vmulpd {rn-sae}, %zmm14, %zmm8, %zmm8 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15 + vmovups 1344+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11 + vmovups 1408+__svml_datan2_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm11, %zmm12, %zmm15 + vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9 + vfmadd213pd {rn-sae}, %zmm8, %zmm12, %zmm9 + vmovups __svml_datan2_data_internal(%rip), %zmm8 + vfmadd213pd {rn-sae}, %zmm9, %zmm13, %zmm15 + +/* + * Reconstruction. + * dP=(R+R*dP) + dPIO2 + */ + vfmadd213pd {rn-sae}, %zmm1, %zmm1, %zmm15 + vaddpd {rn-sae}, %zmm3, %zmm15, %zmm1 + vorpd %zmm5, %zmm1, %zmm9 + +/* if x<0, dPI = Pi, else dPI =0 */ + vmovups 1792+__svml_datan2_data_internal(%rip), %zmm1 + vcmppd $18, {sae}, %zmm1, %zmm7, %k2 + vaddpd {rn-sae}, %zmm8, %zmm9, %zmm9{%k2} + vmovmskps %ymm6, %eax + vorpd %zmm4, %zmm9, %zmm11 + +/* =========== Special branch for fast (vector) processing of zero arguments ================ */ + vmovups 64(%rsp), %zmm9 + testl %eax, %eax + jne .LBL_1_12 + +.LBL_1_2: + + +/* + * =========== Special branch for fast (vector) processing of zero arguments ================ + * -------------- The end of implementation ---------------- + */ + testl %edx, %edx + jne .LBL_1_4 + +.LBL_1_3: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm11, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_4: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm7, 128(%rsp) + vmovups %zmm11, 192(%rsp) + je .LBL_1_3 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_8: + + btl %r12d, %r13d + jc .LBL_1_11 + +.LBL_1_9: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_8 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 192(%rsp), %zmm11 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_3 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_11: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + lea 192(%rsp,%r12,8), %rdx + + call __svml_datan2_cout_rare_internal + jmp .LBL_1_9 + .cfi_restore 4 + .cfi_restore 5 + .cfi_restore 12 + .cfi_restore 13 + .cfi_restore 122 + .cfi_restore 123 + .cfi_restore 124 + .cfi_restore 125 + +.LBL_1_12: + + +/* Check if both X & Y are not NaNs: iXYnotNAN */ + vcmppd $3, {sae}, %zmm7, %zmm7, %k1 + vcmppd $3, {sae}, %zmm0, %zmm0, %k2 + +/* Check if at least on of Y or Y is zero: iAXAYZERO */ + vmovups 1792+__svml_datan2_data_internal(%rip), %zmm8 + vpbroadcastq .L_2il0floatpacket.31(%rip), %zmm10 + vcmppd $4, {sae}, %zmm8, %zmm2, %k3 + vmovaps %zmm10, %zmm12 + vmovaps %zmm10, %zmm15 + vmovaps %zmm10, %zmm13 + vpandnq %zmm7, %zmm7, %zmm12{%k1} + vcmppd $4, {sae}, %zmm8, %zmm9, %k1 + vpandnq %zmm2, %zmm2, %zmm15{%k3} + vmovaps %zmm10, %zmm2 + +/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */ + vpcmpgtq %zmm7, %zmm8, %k3 + vpandnq %zmm0, %zmm0, %zmm13{%k2} + vpandnq %zmm9, %zmm9, %zmm2{%k1} + vandpd %zmm13, %zmm12, %zmm14 + vorpd %zmm2, %zmm15, %zmm9 + vpsrlq $32, %zmm14, %zmm1 + vpsrlq $32, %zmm9, %zmm2 + vpmovqd %zmm1, %ymm1 + vpmovqd %zmm2, %ymm9 + +/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */ + vpand %ymm1, %ymm9, %ymm2 + +/* + * -------- Path for zero arguments (at least one of both) -------------- + * Check if both args are zeros (den. is zero) + */ + vmovups (%rsp), %zmm1 + +/* Exclude from previous callout mask zero (and not NaN) arguments */ + vpandn %ymm6, %ymm2, %ymm6 + vcmppd $4, {sae}, %zmm8, %zmm1, %k2 + +/* Go to callout */ + vmovmskps %ymm6, %edx + vpandnq %zmm1, %zmm1, %zmm10{%k2} + +/* Set sPIO2 to zero if den. is zero */ + vpandnq %zmm3, %zmm10, %zmm3 + vpandq %zmm10, %zmm8, %zmm1 + vporq %zmm1, %zmm3, %zmm3 + vorpd %zmm5, %zmm3, %zmm1 + vmovups __svml_datan2_data_internal(%rip), %zmm5 + vaddpd {rn-sae}, %zmm5, %zmm1, %zmm1{%k3} + vorpd %zmm4, %zmm1, %zmm1 + +/* Merge results from main and spec path */ + vpmovzxdq %ymm2, %zmm4 + vpsllq $32, %zmm4, %zmm2 + vpord %zmm2, %zmm4, %zmm3 + vpandnq %zmm11, %zmm3, %zmm11 + vpandq %zmm3, %zmm1, %zmm1 + vporq %zmm1, %zmm11, %zmm11 + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_atan28,@function + .size __svml_atan28,.-__svml_atan28 +..LN__svml_atan28.0: + +.L_2__routine_start___svml_datan2_cout_rare_internal_1: + + .align 16,0x90 + +__svml_datan2_cout_rare_internal: + + + .cfi_startproc +..L65: + + movq %rdx, %rcx + movsd 1888+__datan2_la_CoutTab(%rip), %xmm1 + movsd (%rdi), %xmm2 + movsd (%rsi), %xmm0 + mulsd %xmm1, %xmm2 + mulsd %xmm0, %xmm1 + movsd %xmm2, -48(%rsp) + movsd %xmm1, -40(%rsp) + movzwl -42(%rsp), %r9d + andl $32752, %r9d + movb -33(%rsp), %al + movzwl -34(%rsp), %r8d + andb $-128, %al + andl $32752, %r8d + shrl $4, %r9d + movb -41(%rsp), %dl + shrb $7, %dl + shrb $7, %al + shrl $4, %r8d + cmpl $2047, %r9d + je .LBL_2_49 + + + cmpl $2047, %r8d + je .LBL_2_38 + + + testl %r9d, %r9d + jne .LBL_2_6 + + + testl $1048575, -44(%rsp) + jne .LBL_2_6 + + + cmpl $0, -48(%rsp) + je .LBL_2_31 + +.LBL_2_6: + + testl %r8d, %r8d + jne .LBL_2_9 + + + testl $1048575, -36(%rsp) + jne .LBL_2_9 + + + cmpl $0, -40(%rsp) + je .LBL_2_29 + +.LBL_2_9: + + negl %r8d + movsd %xmm2, -48(%rsp) + addl %r9d, %r8d + movsd %xmm1, -40(%rsp) + movb -41(%rsp), %dil + movb -33(%rsp), %sil + andb $127, %dil + andb $127, %sil + cmpl $-54, %r8d + jle .LBL_2_24 + + + cmpl $54, %r8d + jge .LBL_2_21 + + + movb %sil, -33(%rsp) + movb %dil, -41(%rsp) + testb %al, %al + jne .LBL_2_13 + + + movsd 1976+__datan2_la_CoutTab(%rip), %xmm1 + movaps %xmm1, %xmm0 + jmp .LBL_2_14 + +.LBL_2_13: + + movsd 1936+__datan2_la_CoutTab(%rip), %xmm1 + movsd 1944+__datan2_la_CoutTab(%rip), %xmm0 + +.LBL_2_14: + + movsd -48(%rsp), %xmm4 + movsd -40(%rsp), %xmm2 + movaps %xmm4, %xmm5 + divsd %xmm2, %xmm5 + movzwl -42(%rsp), %esi + movsd %xmm5, -16(%rsp) + testl %r9d, %r9d + jle .LBL_2_37 + + + cmpl $2046, %r9d + jge .LBL_2_17 + + + andl $-32753, %esi + addl $-1023, %r9d + movsd %xmm4, -48(%rsp) + addl $16368, %esi + movw %si, -42(%rsp) + jmp .LBL_2_18 + +.LBL_2_17: + + movsd 1992+__datan2_la_CoutTab(%rip), %xmm3 + movl $1022, %r9d + mulsd %xmm3, %xmm4 + movsd %xmm4, -48(%rsp) + +.LBL_2_18: + + negl %r9d + addl $1023, %r9d + andl $2047, %r9d + movzwl 1894+__datan2_la_CoutTab(%rip), %esi + movsd 1888+__datan2_la_CoutTab(%rip), %xmm3 + andl $-32753, %esi + shll $4, %r9d + movsd %xmm3, -40(%rsp) + orl %r9d, %esi + movw %si, -34(%rsp) + movsd -40(%rsp), %xmm4 + mulsd %xmm4, %xmm2 + comisd 1880+__datan2_la_CoutTab(%rip), %xmm5 + jb .LBL_2_20 + + + movsd 2000+__datan2_la_CoutTab(%rip), %xmm12 + movaps %xmm2, %xmm3 + mulsd %xmm2, %xmm12 + movsd %xmm12, -72(%rsp) + movsd -72(%rsp), %xmm13 + movsd %xmm5, -24(%rsp) + subsd %xmm2, %xmm13 + movsd %xmm13, -64(%rsp) + movsd -72(%rsp), %xmm15 + movsd -64(%rsp), %xmm14 + movl -20(%rsp), %r8d + movl %r8d, %r9d + andl $-524288, %r8d + andl $-1048576, %r9d + addl $262144, %r8d + subsd %xmm14, %xmm15 + movsd %xmm15, -72(%rsp) + andl $1048575, %r8d + movsd -72(%rsp), %xmm4 + orl %r8d, %r9d + movl $0, -24(%rsp) + subsd %xmm4, %xmm3 + movl %r9d, -20(%rsp) + movsd %xmm3, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -24(%rsp), %xmm11 + movsd -64(%rsp), %xmm9 + mulsd %xmm11, %xmm5 + mulsd %xmm11, %xmm9 + movsd 1968+__datan2_la_CoutTab(%rip), %xmm8 + mulsd %xmm8, %xmm5 + mulsd %xmm8, %xmm9 + movaps %xmm5, %xmm7 + movzwl -10(%rsp), %edi + addsd %xmm9, %xmm7 + movsd %xmm7, -72(%rsp) + andl $32752, %edi + movsd -72(%rsp), %xmm6 + shrl $4, %edi + subsd %xmm6, %xmm5 + movl -12(%rsp), %esi + addsd %xmm5, %xmm9 + movsd %xmm9, -64(%rsp) + andl $1048575, %esi + movsd -48(%rsp), %xmm9 + movsd -72(%rsp), %xmm3 + movaps %xmm9, %xmm12 + movsd -64(%rsp), %xmm10 + movaps %xmm9, %xmm14 + movaps %xmm9, %xmm6 + addsd %xmm3, %xmm12 + movsd %xmm12, -72(%rsp) + movsd -72(%rsp), %xmm13 + shll $20, %edi + subsd %xmm13, %xmm14 + movsd %xmm14, -64(%rsp) + orl %esi, %edi + movsd -72(%rsp), %xmm4 + addl $-1069547520, %edi + movsd -64(%rsp), %xmm15 + movl $113, %esi + movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 + addsd %xmm15, %xmm4 + movsd %xmm4, -56(%rsp) + movsd -64(%rsp), %xmm8 + sarl $19, %edi + addsd %xmm3, %xmm8 + movsd %xmm8, -64(%rsp) + cmpl $113, %edi + movsd -56(%rsp), %xmm7 + cmovl %edi, %esi + subsd %xmm7, %xmm6 + movsd %xmm6, -56(%rsp) + addl %esi, %esi + movsd -64(%rsp), %xmm12 + lea __datan2_la_CoutTab(%rip), %rdi + movsd -56(%rsp), %xmm5 + movslq %esi, %rsi + addsd %xmm5, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -72(%rsp), %xmm7 + mulsd %xmm7, %xmm13 + movsd -56(%rsp), %xmm8 + movsd %xmm13, -72(%rsp) + addsd %xmm10, %xmm8 + movsd -72(%rsp), %xmm4 + movaps %xmm9, %xmm10 + mulsd 2000+__datan2_la_CoutTab(%rip), %xmm10 + subsd %xmm7, %xmm4 + movsd %xmm4, -64(%rsp) + movsd -72(%rsp), %xmm3 + movsd -64(%rsp), %xmm14 + subsd %xmm14, %xmm3 + movsd %xmm3, -72(%rsp) + movsd -72(%rsp), %xmm15 + subsd %xmm15, %xmm7 + movsd %xmm7, -64(%rsp) + movsd -72(%rsp), %xmm7 + movsd -64(%rsp), %xmm4 + movsd %xmm10, -72(%rsp) + movaps %xmm2, %xmm10 + addsd %xmm4, %xmm8 + movsd -72(%rsp), %xmm4 + subsd -48(%rsp), %xmm4 + movsd %xmm4, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm3 + subsd %xmm3, %xmm6 + movaps %xmm2, %xmm3 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm5 + subsd %xmm5, %xmm9 + movsd %xmm9, -64(%rsp) + movsd -72(%rsp), %xmm12 + movsd -64(%rsp), %xmm9 + mulsd %xmm11, %xmm12 + mulsd %xmm11, %xmm9 + movaps %xmm12, %xmm11 + addsd %xmm9, %xmm11 + movsd %xmm11, -72(%rsp) + movsd -72(%rsp), %xmm4 + subsd %xmm4, %xmm12 + addsd %xmm9, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -72(%rsp), %xmm15 + movsd -64(%rsp), %xmm6 + addsd %xmm15, %xmm3 + movsd %xmm3, -72(%rsp) + movsd -72(%rsp), %xmm5 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm3 + subsd %xmm5, %xmm10 + movsd %xmm10, -64(%rsp) + movsd -72(%rsp), %xmm13 + movsd -64(%rsp), %xmm11 + addsd %xmm11, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -64(%rsp), %xmm14 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 + addsd %xmm14, %xmm15 + movsd %xmm15, -64(%rsp) + movsd -56(%rsp), %xmm4 + movsd 1888+__datan2_la_CoutTab(%rip), %xmm14 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -64(%rsp), %xmm4 + movsd -56(%rsp), %xmm2 + addsd %xmm2, %xmm4 + movsd %xmm4, -56(%rsp) + movsd -72(%rsp), %xmm12 + mulsd %xmm12, %xmm3 + movsd -56(%rsp), %xmm5 + movsd %xmm3, -72(%rsp) + addsd %xmm6, %xmm5 + movsd -72(%rsp), %xmm9 + subsd %xmm12, %xmm9 + movsd %xmm9, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm2 + subsd %xmm2, %xmm10 + movsd %xmm10, -72(%rsp) + movsd -72(%rsp), %xmm11 + subsd %xmm11, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -72(%rsp), %xmm9 + divsd %xmm9, %xmm14 + mulsd %xmm14, %xmm13 + movsd -64(%rsp), %xmm10 + movsd %xmm13, -64(%rsp) + addsd %xmm10, %xmm5 + movsd -64(%rsp), %xmm15 + movsd 1888+__datan2_la_CoutTab(%rip), %xmm12 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -64(%rsp), %xmm2 + movsd -56(%rsp), %xmm4 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -56(%rsp), %xmm3 + mulsd %xmm3, %xmm9 + movsd -56(%rsp), %xmm11 + subsd %xmm9, %xmm12 + mulsd %xmm11, %xmm5 + movsd %xmm5, -64(%rsp) + movsd -64(%rsp), %xmm5 + subsd %xmm5, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -64(%rsp), %xmm2 + movq -56(%rsp), %r10 + movsd -64(%rsp), %xmm6 + movsd -56(%rsp), %xmm4 + movq %r10, -40(%rsp) + movsd -40(%rsp), %xmm3 + movaps %xmm3, %xmm5 + addsd 1888+__datan2_la_CoutTab(%rip), %xmm2 + mulsd %xmm7, %xmm5 + mulsd %xmm6, %xmm2 + mulsd %xmm4, %xmm2 + mulsd %xmm2, %xmm7 + mulsd %xmm8, %xmm2 + mulsd %xmm3, %xmm8 + addsd %xmm2, %xmm7 + movsd 1872+__datan2_la_CoutTab(%rip), %xmm3 + addsd %xmm8, %xmm7 + movsd %xmm7, -72(%rsp) + movaps %xmm5, %xmm7 + movsd -72(%rsp), %xmm4 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm6 + addsd %xmm4, %xmm7 + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm8 + subsd %xmm8, %xmm5 + addsd %xmm4, %xmm5 + movsd %xmm5, -64(%rsp) + movsd -72(%rsp), %xmm11 + movaps %xmm11, %xmm2 + mulsd %xmm11, %xmm2 + mulsd %xmm11, %xmm6 + mulsd %xmm2, %xmm3 + movsd -64(%rsp), %xmm4 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm7 + addsd 1864+__datan2_la_CoutTab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm2, %xmm3 + movsd %xmm7, -64(%rsp) + movsd -72(%rsp), %xmm9 + movsd -64(%rsp), %xmm8 + addsd 1856+__datan2_la_CoutTab(%rip), %xmm3 + subsd %xmm8, %xmm9 + mulsd %xmm2, %xmm3 + movsd %xmm9, -72(%rsp) + movsd -72(%rsp), %xmm10 + addsd 1848+__datan2_la_CoutTab(%rip), %xmm3 + subsd %xmm10, %xmm11 + mulsd %xmm2, %xmm3 + movsd %xmm11, -64(%rsp) + addsd 1840+__datan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + addsd 1832+__datan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + addsd 1824+__datan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + mulsd %xmm3, %xmm13 + movsd -72(%rsp), %xmm2 + movsd -64(%rsp), %xmm12 + movsd %xmm13, -72(%rsp) + addsd %xmm12, %xmm4 + movsd -72(%rsp), %xmm14 + subsd %xmm3, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm15 + subsd %xmm15, %xmm5 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm6 + subsd %xmm6, %xmm3 + movsd %xmm3, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm5 + movaps %xmm6, %xmm12 + movaps %xmm5, %xmm3 + mulsd %xmm4, %xmm6 + mulsd %xmm4, %xmm3 + mulsd %xmm2, %xmm5 + mulsd %xmm2, %xmm12 + addsd %xmm3, %xmm6 + movaps %xmm12, %xmm7 + movaps %xmm12, %xmm8 + addsd %xmm5, %xmm6 + addsd %xmm2, %xmm7 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm5 + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm3 + subsd %xmm3, %xmm8 + movsd %xmm8, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -64(%rsp), %xmm11 + addsd %xmm11, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -56(%rsp), %xmm2 + subsd %xmm2, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -64(%rsp), %xmm14 + movsd -56(%rsp), %xmm13 + addsd %xmm13, %xmm14 + movsd %xmm14, -56(%rsp) + movq -72(%rsp), %r11 + movsd -56(%rsp), %xmm15 + movq %r11, -40(%rsp) + addsd %xmm15, %xmm4 + movsd -40(%rsp), %xmm8 + addsd %xmm5, %xmm4 + movsd %xmm4, -32(%rsp) + movaps %xmm8, %xmm4 + movaps %xmm8, %xmm2 + addsd (%rdi,%rsi,8), %xmm4 + movsd %xmm4, -72(%rsp) + movsd -72(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm3 + addsd %xmm3, %xmm5 + movsd %xmm5, -56(%rsp) + movsd -64(%rsp), %xmm6 + addsd (%rdi,%rsi,8), %xmm6 + movsd %xmm6, -64(%rsp) + movsd -56(%rsp), %xmm7 + subsd %xmm7, %xmm8 + movsd %xmm8, -56(%rsp) + movsd -64(%rsp), %xmm10 + movsd -56(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movq -72(%rsp), %r8 + movq %r8, -40(%rsp) + + + movsd -56(%rsp), %xmm2 + movaps %xmm1, %xmm3 + shrq $56, %r8 + addsd -32(%rsp), %xmm2 + shlb $7, %dl + addsd 8(%rdi,%rsi,8), %xmm2 + movb %al, %sil + andb $127, %r8b + shlb $7, %sil + movsd %xmm2, -32(%rsp) + orb %sil, %r8b + movb %r8b, -33(%rsp) + movsd -40(%rsp), %xmm9 + movaps %xmm9, %xmm5 + addsd %xmm9, %xmm3 + movsd %xmm3, -72(%rsp) + movsd -72(%rsp), %xmm4 + movb -25(%rsp), %dil + movb %dil, %r9b + shrb $7, %dil + subsd %xmm4, %xmm5 + movsd %xmm5, -64(%rsp) + movsd -72(%rsp), %xmm7 + movsd -64(%rsp), %xmm6 + xorb %dil, %al + andb $127, %r9b + shlb $7, %al + addsd %xmm6, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -64(%rsp), %xmm8 + addsd %xmm8, %xmm1 + movsd %xmm1, -64(%rsp) + orb %al, %r9b + movsd -56(%rsp), %xmm1 + movb %r9b, -25(%rsp) + subsd %xmm1, %xmm9 + movsd %xmm9, -56(%rsp) + movsd -64(%rsp), %xmm11 + movsd -56(%rsp), %xmm10 + addsd %xmm10, %xmm11 + movsd %xmm11, -56(%rsp) + movq -72(%rsp), %rax + movsd -56(%rsp), %xmm12 + movq %rax, -40(%rsp) + addsd %xmm12, %xmm0 + movsd -40(%rsp), %xmm13 + addsd -32(%rsp), %xmm0 + movsd %xmm0, -32(%rsp) + addsd %xmm0, %xmm13 + movsd %xmm13, -24(%rsp) + movb -17(%rsp), %r10b + andb $127, %r10b + orb %dl, %r10b + movb %r10b, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_20: + + movsd -48(%rsp), %xmm12 + movb %al, %r8b + movaps %xmm12, %xmm7 + mulsd 2000+__datan2_la_CoutTab(%rip), %xmm7 + shlb $7, %r8b + shlb $7, %dl + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm8 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 + movsd 1888+__datan2_la_CoutTab(%rip), %xmm7 + mulsd %xmm2, %xmm13 + subsd -48(%rsp), %xmm8 + movsd %xmm8, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm9 + subsd %xmm9, %xmm10 + movsd %xmm10, -72(%rsp) + movsd -72(%rsp), %xmm11 + subsd %xmm11, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm5 + movsd %xmm13, -72(%rsp) + movsd -72(%rsp), %xmm14 + subsd %xmm2, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -72(%rsp), %xmm4 + movsd -64(%rsp), %xmm15 + subsd %xmm15, %xmm4 + movsd %xmm4, -72(%rsp) + movsd -72(%rsp), %xmm3 + movsd 1888+__datan2_la_CoutTab(%rip), %xmm4 + subsd %xmm3, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -72(%rsp), %xmm12 + divsd %xmm12, %xmm7 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm2 + mulsd %xmm7, %xmm2 + movsd -64(%rsp), %xmm14 + movsd %xmm2, -64(%rsp) + movsd -64(%rsp), %xmm8 + subsd %xmm7, %xmm8 + movsd %xmm8, -56(%rsp) + movsd -64(%rsp), %xmm10 + movsd -56(%rsp), %xmm9 + subsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -56(%rsp), %xmm11 + mulsd %xmm11, %xmm12 + movsd -56(%rsp), %xmm13 + subsd %xmm12, %xmm4 + mulsd %xmm13, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -64(%rsp), %xmm15 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 + subsd %xmm15, %xmm4 + movsd %xmm4, -64(%rsp) + movsd -64(%rsp), %xmm7 + movq -56(%rsp), %rsi + movsd -64(%rsp), %xmm2 + movsd -56(%rsp), %xmm3 + movq %rsi, -40(%rsp) + movsd -40(%rsp), %xmm8 + movaps %xmm8, %xmm9 + addsd 1888+__datan2_la_CoutTab(%rip), %xmm7 + mulsd %xmm6, %xmm9 + mulsd %xmm5, %xmm8 + mulsd %xmm2, %xmm7 + movsd -16(%rsp), %xmm2 + mulsd %xmm2, %xmm2 + mulsd %xmm3, %xmm7 + movsd 1872+__datan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + mulsd %xmm7, %xmm6 + mulsd %xmm5, %xmm7 + addsd 1864+__datan2_la_CoutTab(%rip), %xmm3 + addsd %xmm7, %xmm6 + mulsd %xmm2, %xmm3 + addsd %xmm8, %xmm6 + addsd 1856+__datan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + movaps %xmm9, %xmm5 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm4 + addsd 1848+__datan2_la_CoutTab(%rip), %xmm3 + addsd %xmm4, %xmm5 + mulsd %xmm2, %xmm3 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm6 + movsd 2000+__datan2_la_CoutTab(%rip), %xmm5 + subsd %xmm6, %xmm9 + addsd 1840+__datan2_la_CoutTab(%rip), %xmm3 + addsd %xmm4, %xmm9 + mulsd %xmm2, %xmm3 + movsd %xmm9, -64(%rsp) + movsd -72(%rsp), %xmm11 + mulsd %xmm11, %xmm5 + addsd 1832+__datan2_la_CoutTab(%rip), %xmm3 + movsd -64(%rsp), %xmm4 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm7 + mulsd %xmm2, %xmm3 + subsd %xmm11, %xmm7 + movsd %xmm7, -64(%rsp) + movsd -72(%rsp), %xmm8 + movsd -64(%rsp), %xmm6 + addsd 1824+__datan2_la_CoutTab(%rip), %xmm3 + subsd %xmm6, %xmm8 + mulsd %xmm2, %xmm3 + movsd %xmm8, -72(%rsp) + movsd -72(%rsp), %xmm10 + mulsd %xmm3, %xmm13 + subsd %xmm10, %xmm11 + movsd %xmm11, -64(%rsp) + movsd -72(%rsp), %xmm2 + movsd -64(%rsp), %xmm12 + movsd %xmm13, -72(%rsp) + addsd %xmm12, %xmm4 + movsd -72(%rsp), %xmm14 + subsd %xmm3, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm15 + subsd %xmm15, %xmm5 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm6 + subsd %xmm6, %xmm3 + movsd %xmm3, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm5 + movaps %xmm6, %xmm12 + movaps %xmm5, %xmm3 + mulsd %xmm4, %xmm6 + mulsd %xmm4, %xmm3 + mulsd %xmm2, %xmm5 + mulsd %xmm2, %xmm12 + addsd %xmm3, %xmm6 + movaps %xmm12, %xmm7 + movaps %xmm12, %xmm8 + addsd %xmm5, %xmm6 + addsd %xmm2, %xmm7 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm5 + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm3 + subsd %xmm3, %xmm8 + movsd %xmm8, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -64(%rsp), %xmm11 + addsd %xmm11, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -56(%rsp), %xmm2 + subsd %xmm2, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -64(%rsp), %xmm14 + movsd -56(%rsp), %xmm13 + addsd %xmm13, %xmm14 + movsd %xmm14, -56(%rsp) + movq -72(%rsp), %rdi + movsd -56(%rsp), %xmm15 + movq %rdi, -40(%rsp) + addsd %xmm15, %xmm4 + shrq $56, %rdi + addsd %xmm5, %xmm4 + andb $127, %dil + orb %r8b, %dil + movb %dil, -33(%rsp) + movsd %xmm4, -32(%rsp) + movaps %xmm1, %xmm4 + movsd -40(%rsp), %xmm7 + movaps %xmm7, %xmm2 + addsd %xmm7, %xmm4 + movsd %xmm4, -72(%rsp) + movsd -72(%rsp), %xmm4 + movb -25(%rsp), %r9b + movb %r9b, %r10b + shrb $7, %r9b + subsd %xmm4, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm3 + xorb %r9b, %al + andb $127, %r10b + shlb $7, %al + addsd %xmm3, %xmm5 + movsd %xmm5, -56(%rsp) + movsd -64(%rsp), %xmm6 + addsd %xmm6, %xmm1 + movsd %xmm1, -64(%rsp) + orb %al, %r10b + movsd -56(%rsp), %xmm1 + movb %r10b, -25(%rsp) + subsd %xmm1, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -64(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -56(%rsp) + movq -72(%rsp), %rax + movsd -56(%rsp), %xmm3 + movq %rax, -40(%rsp) + addsd %xmm3, %xmm0 + movsd -40(%rsp), %xmm4 + addsd -32(%rsp), %xmm0 + movsd %xmm0, -32(%rsp) + addsd %xmm0, %xmm4 + movsd %xmm4, -24(%rsp) + movb -17(%rsp), %r11b + andb $127, %r11b + orb %dl, %r11b + movb %r11b, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_21: + + cmpl $74, %r8d + jge .LBL_2_53 + + + movb %dil, -41(%rsp) + divsd -48(%rsp), %xmm1 + movsd 1928+__datan2_la_CoutTab(%rip), %xmm0 + shlb $7, %dl + subsd %xmm1, %xmm0 + addsd 1920+__datan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_24: + + testb %al, %al + jne .LBL_2_35 + + + movb %dil, -41(%rsp) + movb %sil, -33(%rsp) + movsd -48(%rsp), %xmm2 + divsd -40(%rsp), %xmm2 + movsd %xmm2, -24(%rsp) + movzwl -18(%rsp), %eax + testl $32752, %eax + je .LBL_2_27 + + + movsd 1888+__datan2_la_CoutTab(%rip), %xmm0 + shlb $7, %dl + addsd %xmm2, %xmm0 + movsd %xmm0, -72(%rsp) + movsd -72(%rsp), %xmm1 + mulsd %xmm1, %xmm2 + movsd %xmm2, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_27: + + mulsd %xmm2, %xmm2 + shlb $7, %dl + movsd %xmm2, -72(%rsp) + movsd -72(%rsp), %xmm0 + addsd -24(%rsp), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_29: + + testl %r9d, %r9d + jne .LBL_2_53 + + + testl $1048575, -44(%rsp) + jne .LBL_2_53 + jmp .LBL_2_57 + +.LBL_2_31: + + jne .LBL_2_53 + +.LBL_2_33: + + testb %al, %al + jne .LBL_2_35 + +.LBL_2_34: + + shlb $7, %dl + movq 1976+__datan2_la_CoutTab(%rip), %rax + movq %rax, -24(%rsp) + shrq $56, %rax + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_35: + + movsd 1936+__datan2_la_CoutTab(%rip), %xmm0 + shlb $7, %dl + addsd 1944+__datan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + +.LBL_2_36: + + xorl %eax, %eax + ret + +.LBL_2_37: + + movsd 1984+__datan2_la_CoutTab(%rip), %xmm3 + movl $-1022, %r9d + mulsd %xmm3, %xmm4 + movsd %xmm4, -48(%rsp) + jmp .LBL_2_18 + +.LBL_2_38: + + cmpl $2047, %r9d + je .LBL_2_49 + +.LBL_2_39: + + testl $1048575, -36(%rsp) + jne .LBL_2_41 + + + cmpl $0, -40(%rsp) + je .LBL_2_42 + +.LBL_2_41: + + addsd %xmm1, %xmm2 + movsd %xmm2, (%rcx) + jmp .LBL_2_36 + +.LBL_2_42: + + cmpl $2047, %r9d + je .LBL_2_46 + + + testb %al, %al + je .LBL_2_34 + jmp .LBL_2_35 + +.LBL_2_46: + + testb %al, %al + jne .LBL_2_48 + + + movsd 1904+__datan2_la_CoutTab(%rip), %xmm0 + shlb $7, %dl + addsd 1912+__datan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_48: + + movsd 1952+__datan2_la_CoutTab(%rip), %xmm0 + shlb $7, %dl + addsd 1960+__datan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_49: + + testl $1048575, -44(%rsp) + jne .LBL_2_41 + + + cmpl $0, -48(%rsp) + jne .LBL_2_41 + + + cmpl $2047, %r8d + je .LBL_2_39 + +.LBL_2_53: + + movsd 1920+__datan2_la_CoutTab(%rip), %xmm0 + shlb $7, %dl + addsd 1928+__datan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %dl, %al + movb %al, -17(%rsp) + movq -24(%rsp), %rdx + movq %rdx, (%rcx) + jmp .LBL_2_36 + +.LBL_2_57: + + cmpl $0, -48(%rsp) + jne .LBL_2_53 + jmp .LBL_2_33 + .align 16,0x90 + + .cfi_endproc + + .type __svml_datan2_cout_rare_internal,@function + .size __svml_datan2_cout_rare_internal,.-__svml_datan2_cout_rare_internal +..LN__svml_datan2_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_datan2_data_internal: + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 17919630 + .long 3202334474 + .long 17919630 + .long 3202334474 + .long 17919630 + .long 3202334474 + .long 17919630 + .long 3202334474 + .long 17919630 + .long 3202334474 + .long 17919630 + .long 3202334474 + .long 17919630 + .long 3202334474 + .long 17919630 + .long 3202334474 + .long 350522012 + .long 1058555694 + .long 350522012 + .long 1058555694 + .long 350522012 + .long 1058555694 + .long 350522012 + .long 1058555694 + .long 350522012 + .long 1058555694 + .long 350522012 + .long 1058555694 + .long 350522012 + .long 1058555694 + .long 350522012 + .long 1058555694 + .long 934004643 + .long 3203726773 + .long 934004643 + .long 3203726773 + .long 934004643 + .long 3203726773 + .long 934004643 + .long 3203726773 + .long 934004643 + .long 3203726773 + .long 934004643 + .long 3203726773 + .long 934004643 + .long 3203726773 + .long 934004643 + .long 3203726773 + .long 912675337 + .long 1059908874 + .long 912675337 + .long 1059908874 + .long 912675337 + .long 1059908874 + .long 912675337 + .long 1059908874 + .long 912675337 + .long 1059908874 + .long 912675337 + .long 1059908874 + .long 912675337 + .long 1059908874 + .long 912675337 + .long 1059908874 + .long 2476035107 + .long 3209881212 + .long 2476035107 + .long 3209881212 + .long 2476035107 + .long 3209881212 + .long 2476035107 + .long 3209881212 + .long 2476035107 + .long 3209881212 + .long 2476035107 + .long 3209881212 + .long 2476035107 + .long 3209881212 + .long 2476035107 + .long 3209881212 + .long 2927800243 + .long 1064262173 + .long 2927800243 + .long 1064262173 + .long 2927800243 + .long 1064262173 + .long 2927800243 + .long 1064262173 + .long 2927800243 + .long 1064262173 + .long 2927800243 + .long 1064262173 + .long 2927800243 + .long 1064262173 + .long 2927800243 + .long 1064262173 + .long 1636715437 + .long 3213013740 + .long 1636715437 + .long 3213013740 + .long 1636715437 + .long 3213013740 + .long 1636715437 + .long 3213013740 + .long 1636715437 + .long 3213013740 + .long 1636715437 + .long 3213013740 + .long 1636715437 + .long 3213013740 + .long 1636715437 + .long 3213013740 + .long 1712395941 + .long 1066487628 + .long 1712395941 + .long 1066487628 + .long 1712395941 + .long 1066487628 + .long 1712395941 + .long 1066487628 + .long 1712395941 + .long 1066487628 + .long 1712395941 + .long 1066487628 + .long 1712395941 + .long 1066487628 + .long 1712395941 + .long 1066487628 + .long 2961307292 + .long 3214564995 + .long 2961307292 + .long 3214564995 + .long 2961307292 + .long 3214564995 + .long 2961307292 + .long 3214564995 + .long 2961307292 + .long 3214564995 + .long 2961307292 + .long 3214564995 + .long 2961307292 + .long 3214564995 + .long 2961307292 + .long 3214564995 + .long 213298511 + .long 1067542936 + .long 213298511 + .long 1067542936 + .long 213298511 + .long 1067542936 + .long 213298511 + .long 1067542936 + .long 213298511 + .long 1067542936 + .long 213298511 + .long 1067542936 + .long 213298511 + .long 1067542936 + .long 213298511 + .long 1067542936 + .long 3848520124 + .long 3215257506 + .long 3848520124 + .long 3215257506 + .long 3848520124 + .long 3215257506 + .long 3848520124 + .long 3215257506 + .long 3848520124 + .long 3215257506 + .long 3848520124 + .long 3215257506 + .long 3848520124 + .long 3215257506 + .long 3848520124 + .long 3215257506 + .long 3159386171 + .long 1067969551 + .long 3159386171 + .long 1067969551 + .long 3159386171 + .long 1067969551 + .long 3159386171 + .long 1067969551 + .long 3159386171 + .long 1067969551 + .long 3159386171 + .long 1067969551 + .long 3159386171 + .long 1067969551 + .long 3159386171 + .long 1067969551 + .long 3936393556 + .long 3215643233 + .long 3936393556 + .long 3215643233 + .long 3936393556 + .long 3215643233 + .long 3936393556 + .long 3215643233 + .long 3936393556 + .long 3215643233 + .long 3936393556 + .long 3215643233 + .long 3936393556 + .long 3215643233 + .long 3936393556 + .long 3215643233 + .long 3177262543 + .long 1068373833 + .long 3177262543 + .long 1068373833 + .long 3177262543 + .long 1068373833 + .long 3177262543 + .long 1068373833 + .long 3177262543 + .long 1068373833 + .long 3177262543 + .long 1068373833 + .long 3177262543 + .long 1068373833 + .long 3177262543 + .long 1068373833 + .long 9713120 + .long 3216052356 + .long 9713120 + .long 3216052356 + .long 9713120 + .long 3216052356 + .long 9713120 + .long 3216052356 + .long 9713120 + .long 3216052356 + .long 9713120 + .long 3216052356 + .long 9713120 + .long 3216052356 + .long 9713120 + .long 3216052356 + .long 1227445841 + .long 1068740906 + .long 1227445841 + .long 1068740906 + .long 1227445841 + .long 1068740906 + .long 1227445841 + .long 1068740906 + .long 1227445841 + .long 1068740906 + .long 1227445841 + .long 1068740906 + .long 1227445841 + .long 1068740906 + .long 1227445841 + .long 1068740906 + .long 163240596 + .long 3216459216 + .long 163240596 + .long 3216459216 + .long 163240596 + .long 3216459216 + .long 163240596 + .long 3216459216 + .long 163240596 + .long 3216459216 + .long 163240596 + .long 3216459216 + .long 163240596 + .long 3216459216 + .long 163240596 + .long 3216459216 + .long 133682613 + .long 1069314503 + .long 133682613 + .long 1069314503 + .long 133682613 + .long 1069314503 + .long 133682613 + .long 1069314503 + .long 133682613 + .long 1069314503 + .long 133682613 + .long 1069314503 + .long 133682613 + .long 1069314503 + .long 133682613 + .long 1069314503 + .long 2448315847 + .long 3217180964 + .long 2448315847 + .long 3217180964 + .long 2448315847 + .long 3217180964 + .long 2448315847 + .long 3217180964 + .long 2448315847 + .long 3217180964 + .long 2448315847 + .long 3217180964 + .long 2448315847 + .long 3217180964 + .long 2448315847 + .long 3217180964 + .long 2576870964 + .long 1070176665 + .long 2576870964 + .long 1070176665 + .long 2576870964 + .long 1070176665 + .long 2576870964 + .long 1070176665 + .long 2576870964 + .long 1070176665 + .long 2576870964 + .long 1070176665 + .long 2576870964 + .long 1070176665 + .long 2576870964 + .long 1070176665 + .long 1431655365 + .long 3218429269 + .long 1431655365 + .long 3218429269 + .long 1431655365 + .long 3218429269 + .long 1431655365 + .long 3218429269 + .long 1431655365 + .long 3218429269 + .long 1431655365 + .long 3218429269 + .long 1431655365 + .long 3218429269 + .long 1431655365 + .long 3218429269 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 2150629376 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4258267136 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 4293918720 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 133169152 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .type __svml_datan2_data_internal,@object + .size __svml_datan2_data_internal,2304 + .align 32 +__datan2_la_CoutTab: + .long 3892314112 + .long 1069799150 + .long 2332892550 + .long 1039715405 + .long 1342177280 + .long 1070305495 + .long 270726690 + .long 1041535749 + .long 939524096 + .long 1070817911 + .long 2253973841 + .long 3188654726 + .long 3221225472 + .long 1071277294 + .long 3853927037 + .long 1043226911 + .long 2818572288 + .long 1071767563 + .long 2677759107 + .long 1044314101 + .long 3355443200 + .long 1072103591 + .long 1636578514 + .long 3191094734 + .long 1476395008 + .long 1072475260 + .long 1864703685 + .long 3188646936 + .long 805306368 + .long 1072747407 + .long 192551812 + .long 3192726267 + .long 2013265920 + .long 1072892781 + .long 2240369452 + .long 1043768538 + .long 0 + .long 1072999953 + .long 3665168337 + .long 3192705970 + .long 402653184 + .long 1073084787 + .long 1227953434 + .long 3192313277 + .long 2013265920 + .long 1073142981 + .long 3853283127 + .long 1045277487 + .long 805306368 + .long 1073187261 + .long 1676192264 + .long 3192868861 + .long 134217728 + .long 1073217000 + .long 4290763938 + .long 1042034855 + .long 671088640 + .long 1073239386 + .long 994303084 + .long 3189643768 + .long 402653184 + .long 1073254338 + .long 1878067156 + .long 1042652475 + .long 1610612736 + .long 1073265562 + .long 670314820 + .long 1045138554 + .long 3221225472 + .long 1073273048 + .long 691126919 + .long 3189987794 + .long 3489660928 + .long 1073278664 + .long 1618990832 + .long 3188194509 + .long 1207959552 + .long 1073282409 + .long 2198872939 + .long 1044806069 + .long 3489660928 + .long 1073285217 + .long 2633982383 + .long 1042307894 + .long 939524096 + .long 1073287090 + .long 1059367786 + .long 3189114230 + .long 2281701376 + .long 1073288494 + .long 3158525533 + .long 1044484961 + .long 3221225472 + .long 1073289430 + .long 286581777 + .long 1044893263 + .long 4026531840 + .long 1073290132 + .long 2000245215 + .long 3191647611 + .long 134217728 + .long 1073290601 + .long 4205071590 + .long 1045035927 + .long 536870912 + .long 1073290952 + .long 2334392229 + .long 1043447393 + .long 805306368 + .long 1073291186 + .long 2281458177 + .long 3188885569 + .long 3087007744 + .long 1073291361 + .long 691611507 + .long 1044733832 + .long 3221225472 + .long 1073291478 + .long 1816229550 + .long 1044363390 + .long 2281701376 + .long 1073291566 + .long 1993843750 + .long 3189837440 + .long 134217728 + .long 1073291625 + .long 3654754496 + .long 1044970837 + .long 4026531840 + .long 1073291668 + .long 3224300229 + .long 3191935390 + .long 805306368 + .long 1073291698 + .long 2988777976 + .long 3188950659 + .long 536870912 + .long 1073291720 + .long 1030371341 + .long 1043402665 + .long 3221225472 + .long 1073291734 + .long 1524463765 + .long 1044361356 + .long 3087007744 + .long 1073291745 + .long 2754295320 + .long 1044731036 + .long 134217728 + .long 1073291753 + .long 3099629057 + .long 1044970710 + .long 2281701376 + .long 1073291758 + .long 962914160 + .long 3189838838 + .long 805306368 + .long 1073291762 + .long 3543908206 + .long 3188950786 + .long 4026531840 + .long 1073291764 + .long 1849909620 + .long 3191935434 + .long 3221225472 + .long 1073291766 + .long 1641333636 + .long 1044361352 + .long 536870912 + .long 1073291768 + .long 1373968792 + .long 1043402654 + .long 134217728 + .long 1073291769 + .long 2033191599 + .long 1044970710 + .long 3087007744 + .long 1073291769 + .long 4117947437 + .long 1044731035 + .long 805306368 + .long 1073291770 + .long 315378368 + .long 3188950787 + .long 2281701376 + .long 1073291770 + .long 2428571750 + .long 3189838838 + .long 3221225472 + .long 1073291770 + .long 1608007466 + .long 1044361352 + .long 4026531840 + .long 1073291770 + .long 1895711420 + .long 3191935434 + .long 134217728 + .long 1073291771 + .long 2031108713 + .long 1044970710 + .long 536870912 + .long 1073291771 + .long 1362518342 + .long 1043402654 + .long 805306368 + .long 1073291771 + .long 317461253 + .long 3188950787 + .long 939524096 + .long 1073291771 + .long 4117231784 + .long 1044731035 + .long 1073741824 + .long 1073291771 + .long 1607942376 + .long 1044361352 + .long 1207959552 + .long 1073291771 + .long 2428929577 + .long 3189838838 + .long 1207959552 + .long 1073291771 + .long 2031104645 + .long 1044970710 + .long 1342177280 + .long 1073291771 + .long 1895722602 + .long 3191935434 + .long 1342177280 + .long 1073291771 + .long 317465322 + .long 3188950787 + .long 1342177280 + .long 1073291771 + .long 1362515546 + .long 1043402654 + .long 1342177280 + .long 1073291771 + .long 1607942248 + .long 1044361352 + .long 1342177280 + .long 1073291771 + .long 4117231610 + .long 1044731035 + .long 1342177280 + .long 1073291771 + .long 2031104637 + .long 1044970710 + .long 1342177280 + .long 1073291771 + .long 1540251232 + .long 1045150466 + .long 1342177280 + .long 1073291771 + .long 2644671394 + .long 1045270303 + .long 1342177280 + .long 1073291771 + .long 2399244691 + .long 1045360181 + .long 1342177280 + .long 1073291771 + .long 803971124 + .long 1045420100 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192879152 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192849193 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192826724 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192811744 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192800509 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192793019 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192787402 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192783657 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192780848 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192778976 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192777572 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192776635 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192775933 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192775465 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192775114 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774880 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774704 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774587 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774500 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774441 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774397 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774368 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774346 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774331 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774320 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774313 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774308 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774304 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774301 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774299 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774298 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774297 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1466225875 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1343512524 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1251477510 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1190120835 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1144103328 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1113424990 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1090416237 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1075077068 + .long 3192774295 + .long 1431655765 + .long 3218429269 + .long 2576978363 + .long 1070176665 + .long 2453154343 + .long 3217180964 + .long 4189149139 + .long 1069314502 + .long 1775019125 + .long 3216459198 + .long 273199057 + .long 1068739452 + .long 874748308 + .long 3215993277 + .long 0 + .long 1069547520 + .long 0 + .long 1072693248 + .long 0 + .long 1073741824 + .long 1413754136 + .long 1072243195 + .long 856972295 + .long 1015129638 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 1017226790 + .long 2134057426 + .long 1073928572 + .long 1285458442 + .long 1016756537 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 2144337920 + .long 0 + .long 1048576 + .long 33554432 + .long 1101004800 + .type __datan2_la_CoutTab,@object + .size __datan2_la_CoutTab,2008 + .align 8 +.L_2il0floatpacket.31: + .long 0xffffffff,0xffffffff + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,8 diff --git a/numpy/core/src/umath/svml/svml_z0_atan2_s_la.s b/numpy/core/src/umath/svml/svml_z0_atan2_s_la.s new file mode 100644 index 000000000000..25f12f36c9a9 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_atan2_s_la.s @@ -0,0 +1,2074 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x) + * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x) + * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x) + * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x) + * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x + * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16. + * -- + * + */ + + + .text +.L_2__routine_start___svml_atan2f16_z0_0: + + .align 16,0x90 + .globl __svml_atan2f16 + +__svml_atan2f16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $256, %rsp + xorl %edx, %edx + + + vmovups 256+__svml_satan2_data_internal(%rip), %zmm6 + vmovups 64+__svml_satan2_data_internal(%rip), %zmm3 + +/* Testing on working interval. */ + vmovups 1024+__svml_satan2_data_internal(%rip), %zmm9 + vmovups 1088+__svml_satan2_data_internal(%rip), %zmm14 + +/* + * 1) If yx then a=-x, b=y, PIO2=Pi/2 + */ + vmovups 320+__svml_satan2_data_internal(%rip), %zmm4 + vpternlogd $255, %zmm13, %zmm13, %zmm13 + vmovaps %zmm1, %zmm8 + vandps %zmm6, %zmm8, %zmm2 + vandps %zmm6, %zmm0, %zmm1 + vorps 192+__svml_satan2_data_internal(%rip), %zmm2, %zmm5 + vpsubd %zmm9, %zmm2, %zmm10 + vpsubd %zmm9, %zmm1, %zmm12 + vxorps %zmm2, %zmm8, %zmm7 + vxorps %zmm1, %zmm0, %zmm6 + vcmpps $17, {sae}, %zmm2, %zmm1, %k1 + vpcmpgtd %zmm10, %zmm14, %k2 + vpcmpgtd %zmm12, %zmm14, %k3 + vmovups 576+__svml_satan2_data_internal(%rip), %zmm14 + vblendmps %zmm1, %zmm5, %zmm11{%k1} + vblendmps %zmm2, %zmm1, %zmm5{%k1} + vxorps %zmm4, %zmm4, %zmm4{%k1} + +/* + * Division a/b. + * Enabled when FMA is available and + * performance is better with NR iteration + */ + vrcp14ps %zmm5, %zmm15 + vfnmadd231ps {rn-sae}, %zmm5, %zmm15, %zmm3 + vfmadd213ps {rn-sae}, %zmm15, %zmm3, %zmm15 + vmulps {rn-sae}, %zmm15, %zmm11, %zmm3 + vfnmadd231ps {rn-sae}, %zmm5, %zmm3, %zmm11 + vfmadd213ps {rn-sae}, %zmm3, %zmm11, %zmm15 + vmovups 448+__svml_satan2_data_internal(%rip), %zmm11 + vpternlogd $255, %zmm3, %zmm3, %zmm3 + +/* Polynomial. */ + vmulps {rn-sae}, %zmm15, %zmm15, %zmm9 + vpandnd %zmm10, %zmm10, %zmm13{%k2} + vmulps {rn-sae}, %zmm9, %zmm9, %zmm10 + vfmadd231ps {rn-sae}, %zmm10, %zmm11, %zmm14 + vmovups 640+__svml_satan2_data_internal(%rip), %zmm11 + vpandnd %zmm12, %zmm12, %zmm3{%k3} + vpord %zmm3, %zmm13, %zmm3 + vmovups 704+__svml_satan2_data_internal(%rip), %zmm13 + vmovups 512+__svml_satan2_data_internal(%rip), %zmm12 + vptestmd %zmm3, %zmm3, %k0 + vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14 + vfmadd231ps {rn-sae}, %zmm10, %zmm12, %zmm11 + vmovups 768+__svml_satan2_data_internal(%rip), %zmm12 + vmovups 832+__svml_satan2_data_internal(%rip), %zmm13 + +/* =========== Special branch for fast (vector) processing of zero arguments ================ */ + kortestw %k0, %k0 + vfmadd213ps {rn-sae}, %zmm12, %zmm10, %zmm11 + vmovups 896+__svml_satan2_data_internal(%rip), %zmm12 + vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14 + vmovups 960+__svml_satan2_data_internal(%rip), %zmm13 + vfmadd213ps {rn-sae}, %zmm12, %zmm10, %zmm11 + vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14 + vfmadd213ps {rn-sae}, %zmm14, %zmm9, %zmm11 + +/* Reconstruction. */ + vfmadd213ps {rn-sae}, %zmm4, %zmm15, %zmm11 + +/* if x<0, sPI = Pi, else sPI =0 */ + vmovups __svml_satan2_data_internal(%rip), %zmm15 + vorps %zmm7, %zmm11, %zmm9 + vcmpps $18, {sae}, %zmm15, %zmm8, %k1 + vmovups 384+__svml_satan2_data_internal(%rip), %zmm11 + vaddps {rn-sae}, %zmm11, %zmm9, %zmm9{%k1} + vorps %zmm6, %zmm9, %zmm10 + jne .LBL_1_12 + +.LBL_1_2: + + +/* + * =========== Special branch for fast (vector) processing of zero arguments ================ + * -------------- The end of implementation ---------------- + */ + testl %edx, %edx + jne .LBL_1_4 + +.LBL_1_3: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm10, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_4: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm8, 128(%rsp) + vmovups %zmm10, 192(%rsp) + je .LBL_1_3 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_8: + + btl %r12d, %r13d + jc .LBL_1_11 + +.LBL_1_9: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_8 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 192(%rsp), %zmm10 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_3 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_11: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + lea 192(%rsp,%r12,4), %rdx + + call __svml_satan2_cout_rare_internal + jmp .LBL_1_9 + .cfi_restore 4 + .cfi_restore 5 + .cfi_restore 12 + .cfi_restore 13 + .cfi_restore 122 + .cfi_restore 123 + .cfi_restore 124 + .cfi_restore 125 + +.LBL_1_12: + + +/* Check if at least on of Y or Y is zero: iAXAYZERO */ + vmovups __svml_satan2_data_internal(%rip), %zmm9 + +/* Check if both X & Y are not NaNs: iXYnotNAN */ + vcmpps $3, {sae}, %zmm8, %zmm8, %k1 + vcmpps $3, {sae}, %zmm0, %zmm0, %k2 + vpcmpd $4, %zmm9, %zmm2, %k3 + vpternlogd $255, %zmm12, %zmm12, %zmm12 + vpternlogd $255, %zmm13, %zmm13, %zmm13 + vpternlogd $255, %zmm14, %zmm14, %zmm14 + vpandnd %zmm8, %zmm8, %zmm12{%k1} + vpcmpd $4, %zmm9, %zmm1, %k1 + vpandnd %zmm0, %zmm0, %zmm13{%k2} + +/* + * -------- Path for zero arguments (at least one of both) -------------- + * Check if both args are zeros (den. is zero) + */ + vcmpps $4, {sae}, %zmm9, %zmm5, %k2 + vandps %zmm13, %zmm12, %zmm12 + vpandnd %zmm2, %zmm2, %zmm14{%k3} + vpternlogd $255, %zmm2, %zmm2, %zmm2 + +/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */ + vpcmpgtd %zmm8, %zmm9, %k3 + vpandnd %zmm1, %zmm1, %zmm2{%k1} + vpord %zmm2, %zmm14, %zmm15 + vpternlogd $255, %zmm2, %zmm2, %zmm2 + vpandnd %zmm5, %zmm5, %zmm2{%k2} + +/* Set sPIO2 to zero if den. is zero */ + vpandnd %zmm4, %zmm2, %zmm4 + vpandd %zmm2, %zmm9, %zmm5 + vpord %zmm5, %zmm4, %zmm2 + vorps %zmm7, %zmm2, %zmm7 + vaddps {rn-sae}, %zmm11, %zmm7, %zmm7{%k3} + vorps %zmm6, %zmm7, %zmm6 + +/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */ + vpandd %zmm12, %zmm15, %zmm1 + +/* Exclude from previous callout mask zero (and not NaN) arguments */ + vpandnd %zmm3, %zmm1, %zmm3 + +/* Go to callout */ + vptestmd %zmm3, %zmm3, %k0 + kmovw %k0, %edx + +/* Merge results from main and spec path */ + vpandnd %zmm10, %zmm1, %zmm10 + vpandd %zmm1, %zmm6, %zmm11 + vpord %zmm11, %zmm10, %zmm10 + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_atan2f16,@function + .size __svml_atan2f16,.-__svml_atan2f16 +..LN__svml_atan2f16.0: + +.L_2__routine_start___svml_satan2_cout_rare_internal_1: + + .align 16,0x90 + +__svml_satan2_cout_rare_internal: + + + .cfi_startproc +..L61: + + pxor %xmm0, %xmm0 + movss (%rdi), %xmm3 + pxor %xmm1, %xmm1 + movss (%rsi), %xmm2 + movq %rdx, %r8 + cvtss2sd %xmm3, %xmm0 + cvtss2sd %xmm2, %xmm1 + movss %xmm3, -32(%rsp) + movss %xmm2, -28(%rsp) + movsd %xmm0, -48(%rsp) + movsd %xmm1, -40(%rsp) + movzwl -30(%rsp), %edi + andl $32640, %edi + movb -25(%rsp), %dl + movzwl -42(%rsp), %eax + andb $-128, %dl + movzwl -34(%rsp), %r9d + andl $32752, %eax + andl $32752, %r9d + shrl $7, %edi + movb -29(%rsp), %cl + shrb $7, %cl + shrb $7, %dl + shrl $4, %eax + shrl $4, %r9d + cmpl $255, %edi + je .LBL_2_35 + + + movzwl -26(%rsp), %esi + andl $32640, %esi + cmpl $32640, %esi + je .LBL_2_35 + + + testl %eax, %eax + jne .LBL_2_5 + + + testl $8388607, -32(%rsp) + je .LBL_2_30 + +.LBL_2_5: + + testl %r9d, %r9d + jne .LBL_2_7 + + + testl $8388607, -28(%rsp) + je .LBL_2_27 + +.LBL_2_7: + + negl %r9d + movsd %xmm0, -48(%rsp) + addl %eax, %r9d + movsd %xmm1, -40(%rsp) + movb -41(%rsp), %dil + movb -33(%rsp), %sil + andb $127, %dil + andb $127, %sil + cmpl $-54, %r9d + jle .LBL_2_22 + + + cmpl $54, %r9d + jge .LBL_2_19 + + + movb %sil, -33(%rsp) + movb %dil, -41(%rsp) + testb %dl, %dl + jne .LBL_2_11 + + + movsd 1976+__satan2_la_CoutTab(%rip), %xmm1 + movaps %xmm1, %xmm0 + jmp .LBL_2_12 + +.LBL_2_11: + + movsd 1936+__satan2_la_CoutTab(%rip), %xmm1 + movsd 1944+__satan2_la_CoutTab(%rip), %xmm0 + +.LBL_2_12: + + movsd -48(%rsp), %xmm4 + movsd -40(%rsp), %xmm2 + movaps %xmm4, %xmm5 + divsd %xmm2, %xmm5 + movzwl -42(%rsp), %esi + movsd %xmm5, -16(%rsp) + testl %eax, %eax + jle .LBL_2_34 + + + cmpl $2046, %eax + jge .LBL_2_15 + + + andl $-32753, %esi + addl $-1023, %eax + movsd %xmm4, -48(%rsp) + addl $16368, %esi + movw %si, -42(%rsp) + jmp .LBL_2_16 + +.LBL_2_15: + + movsd 1992+__satan2_la_CoutTab(%rip), %xmm3 + movl $1022, %eax + mulsd %xmm3, %xmm4 + movsd %xmm4, -48(%rsp) + +.LBL_2_16: + + negl %eax + movq 1888+__satan2_la_CoutTab(%rip), %rsi + addl $1023, %eax + movq %rsi, -40(%rsp) + andl $2047, %eax + shrq $48, %rsi + shll $4, %eax + andl $-32753, %esi + orl %eax, %esi + movw %si, -34(%rsp) + movsd -40(%rsp), %xmm3 + mulsd %xmm3, %xmm2 + comisd 1880+__satan2_la_CoutTab(%rip), %xmm5 + jb .LBL_2_18 + + + movsd 2000+__satan2_la_CoutTab(%rip), %xmm12 + movaps %xmm2, %xmm3 + mulsd %xmm2, %xmm12 + movsd %xmm12, -72(%rsp) + movsd -72(%rsp), %xmm13 + movsd %xmm5, -24(%rsp) + subsd %xmm2, %xmm13 + movsd %xmm13, -64(%rsp) + movsd -72(%rsp), %xmm15 + movsd -64(%rsp), %xmm14 + movl -20(%rsp), %edi + movl %edi, %r9d + andl $-524288, %edi + andl $-1048576, %r9d + addl $262144, %edi + subsd %xmm14, %xmm15 + movsd %xmm15, -72(%rsp) + andl $1048575, %edi + movsd -72(%rsp), %xmm4 + orl %edi, %r9d + movl $0, -24(%rsp) + subsd %xmm4, %xmm3 + movl %r9d, -20(%rsp) + movsd %xmm3, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -24(%rsp), %xmm11 + movsd -64(%rsp), %xmm9 + mulsd %xmm11, %xmm5 + mulsd %xmm11, %xmm9 + movsd 1968+__satan2_la_CoutTab(%rip), %xmm8 + mulsd %xmm8, %xmm5 + mulsd %xmm8, %xmm9 + movaps %xmm5, %xmm7 + movzwl -10(%rsp), %esi + addsd %xmm9, %xmm7 + movsd %xmm7, -72(%rsp) + andl $32752, %esi + movsd -72(%rsp), %xmm6 + shrl $4, %esi + subsd %xmm6, %xmm5 + movl -12(%rsp), %eax + addsd %xmm5, %xmm9 + movsd %xmm9, -64(%rsp) + andl $1048575, %eax + movsd -48(%rsp), %xmm9 + movsd -72(%rsp), %xmm3 + movaps %xmm9, %xmm12 + movsd -64(%rsp), %xmm10 + movaps %xmm9, %xmm14 + movaps %xmm9, %xmm6 + addsd %xmm3, %xmm12 + movsd %xmm12, -72(%rsp) + movsd -72(%rsp), %xmm13 + shll $20, %esi + subsd %xmm13, %xmm14 + movsd %xmm14, -64(%rsp) + orl %eax, %esi + movsd -72(%rsp), %xmm4 + addl $-1069547520, %esi + movsd -64(%rsp), %xmm15 + movl $113, %eax + movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 + addsd %xmm15, %xmm4 + movsd %xmm4, -56(%rsp) + movsd -64(%rsp), %xmm8 + sarl $19, %esi + addsd %xmm3, %xmm8 + movsd %xmm8, -64(%rsp) + cmpl $113, %esi + movsd -56(%rsp), %xmm7 + cmovl %esi, %eax + subsd %xmm7, %xmm6 + movsd %xmm6, -56(%rsp) + addl %eax, %eax + movsd -64(%rsp), %xmm12 + lea __satan2_la_CoutTab(%rip), %rsi + movsd -56(%rsp), %xmm5 + movslq %eax, %rax + addsd %xmm5, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -72(%rsp), %xmm7 + mulsd %xmm7, %xmm13 + movsd -56(%rsp), %xmm8 + movsd %xmm13, -72(%rsp) + addsd %xmm10, %xmm8 + movsd -72(%rsp), %xmm4 + movaps %xmm9, %xmm10 + mulsd 2000+__satan2_la_CoutTab(%rip), %xmm10 + subsd %xmm7, %xmm4 + movsd %xmm4, -64(%rsp) + movsd -72(%rsp), %xmm3 + movsd -64(%rsp), %xmm14 + subsd %xmm14, %xmm3 + movsd %xmm3, -72(%rsp) + movsd -72(%rsp), %xmm15 + subsd %xmm15, %xmm7 + movsd %xmm7, -64(%rsp) + movsd -72(%rsp), %xmm7 + movsd -64(%rsp), %xmm4 + movsd %xmm10, -72(%rsp) + movaps %xmm2, %xmm10 + addsd %xmm4, %xmm8 + movsd -72(%rsp), %xmm4 + subsd -48(%rsp), %xmm4 + movsd %xmm4, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm3 + subsd %xmm3, %xmm6 + movaps %xmm2, %xmm3 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm5 + subsd %xmm5, %xmm9 + movsd %xmm9, -64(%rsp) + movsd -72(%rsp), %xmm12 + movsd -64(%rsp), %xmm9 + mulsd %xmm11, %xmm12 + mulsd %xmm11, %xmm9 + movaps %xmm12, %xmm11 + addsd %xmm9, %xmm11 + movsd %xmm11, -72(%rsp) + movsd -72(%rsp), %xmm4 + subsd %xmm4, %xmm12 + addsd %xmm9, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -72(%rsp), %xmm15 + movsd -64(%rsp), %xmm6 + addsd %xmm15, %xmm3 + movsd %xmm3, -72(%rsp) + movsd -72(%rsp), %xmm5 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm3 + subsd %xmm5, %xmm10 + movsd %xmm10, -64(%rsp) + movsd -72(%rsp), %xmm13 + movsd -64(%rsp), %xmm11 + addsd %xmm11, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -64(%rsp), %xmm14 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 + addsd %xmm14, %xmm15 + movsd %xmm15, -64(%rsp) + movsd -56(%rsp), %xmm4 + movsd 1888+__satan2_la_CoutTab(%rip), %xmm14 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -64(%rsp), %xmm4 + movsd -56(%rsp), %xmm2 + addsd %xmm2, %xmm4 + movsd %xmm4, -56(%rsp) + movsd -72(%rsp), %xmm12 + mulsd %xmm12, %xmm3 + movsd -56(%rsp), %xmm5 + movsd %xmm3, -72(%rsp) + addsd %xmm6, %xmm5 + movsd -72(%rsp), %xmm9 + subsd %xmm12, %xmm9 + movsd %xmm9, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm2 + subsd %xmm2, %xmm10 + movsd %xmm10, -72(%rsp) + movsd -72(%rsp), %xmm11 + subsd %xmm11, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -72(%rsp), %xmm9 + divsd %xmm9, %xmm14 + mulsd %xmm14, %xmm13 + movsd -64(%rsp), %xmm10 + movsd %xmm13, -64(%rsp) + addsd %xmm10, %xmm5 + movsd -64(%rsp), %xmm15 + movsd 1888+__satan2_la_CoutTab(%rip), %xmm12 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -64(%rsp), %xmm2 + movsd -56(%rsp), %xmm4 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -56(%rsp), %xmm3 + mulsd %xmm3, %xmm9 + movsd -56(%rsp), %xmm11 + subsd %xmm9, %xmm12 + mulsd %xmm11, %xmm5 + movsd %xmm5, -64(%rsp) + movsd -64(%rsp), %xmm5 + subsd %xmm5, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -64(%rsp), %xmm2 + movq -56(%rsp), %r10 + movsd -64(%rsp), %xmm6 + movsd -56(%rsp), %xmm4 + movq %r10, -40(%rsp) + movsd -40(%rsp), %xmm3 + movaps %xmm3, %xmm5 + addsd 1888+__satan2_la_CoutTab(%rip), %xmm2 + mulsd %xmm7, %xmm5 + mulsd %xmm6, %xmm2 + mulsd %xmm4, %xmm2 + mulsd %xmm2, %xmm7 + mulsd %xmm8, %xmm2 + mulsd %xmm3, %xmm8 + addsd %xmm2, %xmm7 + movsd 1872+__satan2_la_CoutTab(%rip), %xmm3 + addsd %xmm8, %xmm7 + movsd %xmm7, -72(%rsp) + movaps %xmm5, %xmm7 + movsd -72(%rsp), %xmm4 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm6 + addsd %xmm4, %xmm7 + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm8 + subsd %xmm8, %xmm5 + addsd %xmm4, %xmm5 + movsd %xmm5, -64(%rsp) + movsd -72(%rsp), %xmm11 + movaps %xmm11, %xmm2 + mulsd %xmm11, %xmm2 + mulsd %xmm11, %xmm6 + mulsd %xmm2, %xmm3 + movsd -64(%rsp), %xmm4 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm7 + addsd 1864+__satan2_la_CoutTab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm2, %xmm3 + movsd %xmm7, -64(%rsp) + movsd -72(%rsp), %xmm9 + movsd -64(%rsp), %xmm8 + addsd 1856+__satan2_la_CoutTab(%rip), %xmm3 + subsd %xmm8, %xmm9 + mulsd %xmm2, %xmm3 + movsd %xmm9, -72(%rsp) + movsd -72(%rsp), %xmm10 + addsd 1848+__satan2_la_CoutTab(%rip), %xmm3 + subsd %xmm10, %xmm11 + mulsd %xmm2, %xmm3 + movsd %xmm11, -64(%rsp) + addsd 1840+__satan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + addsd 1832+__satan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + addsd 1824+__satan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + mulsd %xmm3, %xmm13 + movsd -72(%rsp), %xmm2 + movsd -64(%rsp), %xmm12 + movsd %xmm13, -72(%rsp) + addsd %xmm12, %xmm4 + movsd -72(%rsp), %xmm14 + subsd %xmm3, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm15 + subsd %xmm15, %xmm5 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm6 + subsd %xmm6, %xmm3 + movsd %xmm3, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm5 + movaps %xmm6, %xmm12 + movaps %xmm5, %xmm3 + mulsd %xmm4, %xmm6 + mulsd %xmm4, %xmm3 + mulsd %xmm2, %xmm5 + mulsd %xmm2, %xmm12 + addsd %xmm3, %xmm6 + movaps %xmm12, %xmm7 + movaps %xmm12, %xmm8 + addsd %xmm5, %xmm6 + addsd %xmm2, %xmm7 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm5 + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm3 + subsd %xmm3, %xmm8 + movsd %xmm8, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -64(%rsp), %xmm11 + addsd %xmm11, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -56(%rsp), %xmm2 + subsd %xmm2, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -64(%rsp), %xmm14 + movsd -56(%rsp), %xmm13 + addsd %xmm13, %xmm14 + movsd %xmm14, -56(%rsp) + movq -72(%rsp), %r11 + movsd -56(%rsp), %xmm15 + movq %r11, -40(%rsp) + addsd %xmm15, %xmm4 + movsd -40(%rsp), %xmm8 + addsd %xmm5, %xmm4 + movsd %xmm4, -32(%rsp) + movaps %xmm8, %xmm4 + movaps %xmm8, %xmm2 + addsd (%rsi,%rax,8), %xmm4 + movsd %xmm4, -72(%rsp) + movsd -72(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm3 + addsd %xmm3, %xmm5 + movsd %xmm5, -56(%rsp) + movsd -64(%rsp), %xmm6 + addsd (%rsi,%rax,8), %xmm6 + movsd %xmm6, -64(%rsp) + movsd -56(%rsp), %xmm7 + subsd %xmm7, %xmm8 + movsd %xmm8, -56(%rsp) + movsd -64(%rsp), %xmm10 + movsd -56(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movq -72(%rsp), %rdi + movq %rdi, -40(%rsp) + + + movsd -56(%rsp), %xmm2 + movaps %xmm1, %xmm3 + shrq $56, %rdi + addsd -32(%rsp), %xmm2 + shlb $7, %cl + addsd 8(%rsi,%rax,8), %xmm2 + movb %dl, %al + andb $127, %dil + shlb $7, %al + movsd %xmm2, -32(%rsp) + orb %al, %dil + movb %dil, -33(%rsp) + movsd -40(%rsp), %xmm9 + movaps %xmm9, %xmm5 + addsd %xmm9, %xmm3 + movsd %xmm3, -72(%rsp) + movsd -72(%rsp), %xmm4 + movb -25(%rsp), %sil + movb %sil, %r9b + shrb $7, %sil + subsd %xmm4, %xmm5 + movsd %xmm5, -64(%rsp) + movsd -72(%rsp), %xmm7 + movsd -64(%rsp), %xmm6 + xorb %sil, %dl + andb $127, %r9b + shlb $7, %dl + addsd %xmm6, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -64(%rsp), %xmm8 + addsd %xmm8, %xmm1 + movsd %xmm1, -64(%rsp) + orb %dl, %r9b + movsd -56(%rsp), %xmm1 + movb %r9b, -25(%rsp) + subsd %xmm1, %xmm9 + movsd %xmm9, -56(%rsp) + movsd -64(%rsp), %xmm11 + movsd -56(%rsp), %xmm10 + addsd %xmm10, %xmm11 + movsd %xmm11, -56(%rsp) + movq -72(%rsp), %rdx + movsd -56(%rsp), %xmm12 + movq %rdx, -40(%rsp) + addsd %xmm12, %xmm0 + movsd -40(%rsp), %xmm13 + addsd -32(%rsp), %xmm0 + movsd %xmm0, -32(%rsp) + addsd %xmm0, %xmm13 + movsd %xmm13, -24(%rsp) + movb -17(%rsp), %r10b + andb $127, %r10b + orb %cl, %r10b + movb %r10b, -17(%rsp) + movsd -24(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r8) + jmp .LBL_2_33 + +.LBL_2_18: + + movsd -48(%rsp), %xmm12 + movb %dl, %dil + movaps %xmm12, %xmm7 + mulsd 2000+__satan2_la_CoutTab(%rip), %xmm7 + shlb $7, %dil + shlb $7, %cl + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm8 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 + movsd 1888+__satan2_la_CoutTab(%rip), %xmm7 + mulsd %xmm2, %xmm13 + subsd -48(%rsp), %xmm8 + movsd %xmm8, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm9 + subsd %xmm9, %xmm10 + movsd %xmm10, -72(%rsp) + movsd -72(%rsp), %xmm11 + subsd %xmm11, %xmm12 + movsd %xmm12, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm5 + movsd %xmm13, -72(%rsp) + movsd -72(%rsp), %xmm14 + subsd %xmm2, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -72(%rsp), %xmm4 + movsd -64(%rsp), %xmm15 + subsd %xmm15, %xmm4 + movsd %xmm4, -72(%rsp) + movsd -72(%rsp), %xmm3 + movsd 1888+__satan2_la_CoutTab(%rip), %xmm4 + subsd %xmm3, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -72(%rsp), %xmm12 + divsd %xmm12, %xmm7 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm2 + mulsd %xmm7, %xmm2 + movsd -64(%rsp), %xmm14 + movsd %xmm2, -64(%rsp) + movsd -64(%rsp), %xmm8 + subsd %xmm7, %xmm8 + movsd %xmm8, -56(%rsp) + movsd -64(%rsp), %xmm10 + movsd -56(%rsp), %xmm9 + subsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -56(%rsp), %xmm11 + mulsd %xmm11, %xmm12 + movsd -56(%rsp), %xmm13 + subsd %xmm12, %xmm4 + mulsd %xmm13, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -64(%rsp), %xmm15 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 + subsd %xmm15, %xmm4 + movsd %xmm4, -64(%rsp) + movsd -64(%rsp), %xmm7 + movq -56(%rsp), %rax + movsd -64(%rsp), %xmm2 + movsd -56(%rsp), %xmm3 + movq %rax, -40(%rsp) + movsd -40(%rsp), %xmm8 + movaps %xmm8, %xmm9 + addsd 1888+__satan2_la_CoutTab(%rip), %xmm7 + mulsd %xmm6, %xmm9 + mulsd %xmm5, %xmm8 + mulsd %xmm2, %xmm7 + movsd -16(%rsp), %xmm2 + mulsd %xmm2, %xmm2 + mulsd %xmm3, %xmm7 + movsd 1872+__satan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + mulsd %xmm7, %xmm6 + mulsd %xmm5, %xmm7 + addsd 1864+__satan2_la_CoutTab(%rip), %xmm3 + addsd %xmm7, %xmm6 + mulsd %xmm2, %xmm3 + addsd %xmm8, %xmm6 + addsd 1856+__satan2_la_CoutTab(%rip), %xmm3 + mulsd %xmm2, %xmm3 + movaps %xmm9, %xmm5 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm4 + addsd 1848+__satan2_la_CoutTab(%rip), %xmm3 + addsd %xmm4, %xmm5 + mulsd %xmm2, %xmm3 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm6 + movsd 2000+__satan2_la_CoutTab(%rip), %xmm5 + subsd %xmm6, %xmm9 + addsd 1840+__satan2_la_CoutTab(%rip), %xmm3 + addsd %xmm4, %xmm9 + mulsd %xmm2, %xmm3 + movsd %xmm9, -64(%rsp) + movsd -72(%rsp), %xmm11 + mulsd %xmm11, %xmm5 + addsd 1832+__satan2_la_CoutTab(%rip), %xmm3 + movsd -64(%rsp), %xmm4 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm7 + mulsd %xmm2, %xmm3 + subsd %xmm11, %xmm7 + movsd %xmm7, -64(%rsp) + movsd -72(%rsp), %xmm8 + movsd -64(%rsp), %xmm6 + addsd 1824+__satan2_la_CoutTab(%rip), %xmm3 + subsd %xmm6, %xmm8 + mulsd %xmm2, %xmm3 + movsd %xmm8, -72(%rsp) + movsd -72(%rsp), %xmm10 + mulsd %xmm3, %xmm13 + subsd %xmm10, %xmm11 + movsd %xmm11, -64(%rsp) + movsd -72(%rsp), %xmm2 + movsd -64(%rsp), %xmm12 + movsd %xmm13, -72(%rsp) + addsd %xmm12, %xmm4 + movsd -72(%rsp), %xmm14 + subsd %xmm3, %xmm14 + movsd %xmm14, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm15 + subsd %xmm15, %xmm5 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm6 + subsd %xmm6, %xmm3 + movsd %xmm3, -64(%rsp) + movsd -72(%rsp), %xmm6 + movsd -64(%rsp), %xmm5 + movaps %xmm6, %xmm12 + movaps %xmm5, %xmm3 + mulsd %xmm4, %xmm6 + mulsd %xmm4, %xmm3 + mulsd %xmm2, %xmm5 + mulsd %xmm2, %xmm12 + addsd %xmm3, %xmm6 + movaps %xmm12, %xmm7 + movaps %xmm12, %xmm8 + addsd %xmm5, %xmm6 + addsd %xmm2, %xmm7 + movsd %xmm6, -72(%rsp) + movsd -72(%rsp), %xmm5 + movsd %xmm7, -72(%rsp) + movsd -72(%rsp), %xmm3 + subsd %xmm3, %xmm8 + movsd %xmm8, -64(%rsp) + movsd -72(%rsp), %xmm10 + movsd -64(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -64(%rsp), %xmm11 + addsd %xmm11, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -56(%rsp), %xmm2 + subsd %xmm2, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -64(%rsp), %xmm14 + movsd -56(%rsp), %xmm13 + addsd %xmm13, %xmm14 + movsd %xmm14, -56(%rsp) + movq -72(%rsp), %rsi + movsd -56(%rsp), %xmm15 + movq %rsi, -40(%rsp) + addsd %xmm15, %xmm4 + shrq $56, %rsi + addsd %xmm5, %xmm4 + andb $127, %sil + orb %dil, %sil + movb %sil, -33(%rsp) + movsd %xmm4, -32(%rsp) + movaps %xmm1, %xmm4 + movsd -40(%rsp), %xmm7 + movaps %xmm7, %xmm2 + addsd %xmm7, %xmm4 + movsd %xmm4, -72(%rsp) + movsd -72(%rsp), %xmm4 + movb -25(%rsp), %r9b + movb %r9b, %r10b + shrb $7, %r9b + subsd %xmm4, %xmm2 + movsd %xmm2, -64(%rsp) + movsd -72(%rsp), %xmm5 + movsd -64(%rsp), %xmm3 + xorb %r9b, %dl + andb $127, %r10b + shlb $7, %dl + addsd %xmm3, %xmm5 + movsd %xmm5, -56(%rsp) + movsd -64(%rsp), %xmm6 + addsd %xmm6, %xmm1 + movsd %xmm1, -64(%rsp) + orb %dl, %r10b + movsd -56(%rsp), %xmm1 + movb %r10b, -25(%rsp) + subsd %xmm1, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -64(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -56(%rsp) + movq -72(%rsp), %rdx + movsd -56(%rsp), %xmm3 + movq %rdx, -40(%rsp) + addsd %xmm3, %xmm0 + movsd -40(%rsp), %xmm4 + addsd -32(%rsp), %xmm0 + movsd %xmm0, -32(%rsp) + addsd %xmm0, %xmm4 + movsd %xmm4, -24(%rsp) + movb -17(%rsp), %r11b + andb $127, %r11b + orb %cl, %r11b + movb %r11b, -17(%rsp) + movsd -24(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r8) + jmp .LBL_2_33 + +.LBL_2_19: + + cmpl $74, %r9d + jge .LBL_2_21 + + + movb %dil, -41(%rsp) + divsd -48(%rsp), %xmm1 + movsd 1928+__satan2_la_CoutTab(%rip), %xmm0 + shlb $7, %cl + subsd %xmm1, %xmm0 + addsd 1920+__satan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%r8) + jmp .LBL_2_33 + +.LBL_2_21: + + movsd 1920+__satan2_la_CoutTab(%rip), %xmm0 + shlb $7, %cl + addsd 1928+__satan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%r8) + jmp .LBL_2_33 + +.LBL_2_22: + + testb %dl, %dl + jne .LBL_2_32 + + + movb %dil, -41(%rsp) + pxor %xmm0, %xmm0 + movb %sil, -33(%rsp) + movsd -48(%rsp), %xmm2 + divsd -40(%rsp), %xmm2 + cvtsd2ss %xmm2, %xmm0 + movss %xmm0, -8(%rsp) + movzwl -6(%rsp), %eax + movsd %xmm2, -24(%rsp) + testl $32640, %eax + je .LBL_2_25 + + + movsd 1888+__satan2_la_CoutTab(%rip), %xmm0 + shlb $7, %cl + addsd %xmm2, %xmm0 + movsd %xmm0, -72(%rsp) + movsd -72(%rsp), %xmm1 + mulsd %xmm1, %xmm2 + movsd %xmm2, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm2 + cvtsd2ss %xmm2, %xmm2 + movss %xmm2, (%r8) + jmp .LBL_2_33 + +.LBL_2_25: + + movsd -24(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + shlb $7, %cl + movss %xmm0, -8(%rsp) + movss -8(%rsp), %xmm2 + movss -8(%rsp), %xmm1 + mulss %xmm1, %xmm2 + movss %xmm2, -8(%rsp) + movss -8(%rsp), %xmm3 + cvtss2sd %xmm3, %xmm3 + addsd -24(%rsp), %xmm3 + movsd %xmm3, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm4 + cvtsd2ss %xmm4, %xmm4 + movss %xmm4, (%r8) + jmp .LBL_2_33 + +.LBL_2_27: + + testl %eax, %eax + jne .LBL_2_21 + + + testl $8388607, -32(%rsp) + jne .LBL_2_21 + +.LBL_2_30: + + testb %dl, %dl + jne .LBL_2_32 + +.LBL_2_31: + + shlb $7, %cl + movq 1976+__satan2_la_CoutTab(%rip), %rax + movq %rax, -24(%rsp) + shrq $56, %rax + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r8) + jmp .LBL_2_33 + +.LBL_2_32: + + movsd 1936+__satan2_la_CoutTab(%rip), %xmm0 + shlb $7, %cl + addsd 1944+__satan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%r8) + +.LBL_2_33: + + xorl %eax, %eax + ret + +.LBL_2_34: + + movsd 1984+__satan2_la_CoutTab(%rip), %xmm3 + movl $-1022, %eax + mulsd %xmm3, %xmm4 + movsd %xmm4, -48(%rsp) + jmp .LBL_2_16 + +.LBL_2_35: + + cmpl $2047, %eax + je .LBL_2_48 + +.LBL_2_36: + + cmpl $2047, %r9d + je .LBL_2_46 + +.LBL_2_37: + + movzwl -26(%rsp), %eax + andl $32640, %eax + cmpl $32640, %eax + jne .LBL_2_21 + + + cmpl $255, %edi + je .LBL_2_43 + + + testb %dl, %dl + je .LBL_2_31 + jmp .LBL_2_32 + +.LBL_2_43: + + testb %dl, %dl + jne .LBL_2_45 + + + movsd 1904+__satan2_la_CoutTab(%rip), %xmm0 + shlb $7, %cl + addsd 1912+__satan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%r8) + jmp .LBL_2_33 + +.LBL_2_45: + + movsd 1952+__satan2_la_CoutTab(%rip), %xmm0 + shlb $7, %cl + addsd 1960+__satan2_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %al + andb $127, %al + orb %cl, %al + movb %al, -17(%rsp) + movsd -24(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%r8) + jmp .LBL_2_33 + +.LBL_2_46: + + testl $8388607, -28(%rsp) + je .LBL_2_37 + +.LBL_2_47: + + addss %xmm2, %xmm3 + movss %xmm3, (%r8) + jmp .LBL_2_33 + +.LBL_2_48: + + testl $8388607, -32(%rsp) + jne .LBL_2_47 + jmp .LBL_2_36 + .align 16,0x90 + + .cfi_endproc + + .type __svml_satan2_cout_rare_internal,@function + .size __svml_satan2_cout_rare_internal,.-__svml_satan2_cout_rare_internal +..LN__svml_satan2_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_satan2_data_internal: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 993144000 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 3162449457 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 1026278276 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 3180885545 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 1037657204 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 3188810232 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 1045215135 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 3198855753 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 2164260864 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .long 4227858432 + .type __svml_satan2_data_internal,@object + .size __svml_satan2_data_internal,1152 + .align 32 +__satan2_la_CoutTab: + .long 3892314112 + .long 1069799150 + .long 2332892550 + .long 1039715405 + .long 1342177280 + .long 1070305495 + .long 270726690 + .long 1041535749 + .long 939524096 + .long 1070817911 + .long 2253973841 + .long 3188654726 + .long 3221225472 + .long 1071277294 + .long 3853927037 + .long 1043226911 + .long 2818572288 + .long 1071767563 + .long 2677759107 + .long 1044314101 + .long 3355443200 + .long 1072103591 + .long 1636578514 + .long 3191094734 + .long 1476395008 + .long 1072475260 + .long 1864703685 + .long 3188646936 + .long 805306368 + .long 1072747407 + .long 192551812 + .long 3192726267 + .long 2013265920 + .long 1072892781 + .long 2240369452 + .long 1043768538 + .long 0 + .long 1072999953 + .long 3665168337 + .long 3192705970 + .long 402653184 + .long 1073084787 + .long 1227953434 + .long 3192313277 + .long 2013265920 + .long 1073142981 + .long 3853283127 + .long 1045277487 + .long 805306368 + .long 1073187261 + .long 1676192264 + .long 3192868861 + .long 134217728 + .long 1073217000 + .long 4290763938 + .long 1042034855 + .long 671088640 + .long 1073239386 + .long 994303084 + .long 3189643768 + .long 402653184 + .long 1073254338 + .long 1878067156 + .long 1042652475 + .long 1610612736 + .long 1073265562 + .long 670314820 + .long 1045138554 + .long 3221225472 + .long 1073273048 + .long 691126919 + .long 3189987794 + .long 3489660928 + .long 1073278664 + .long 1618990832 + .long 3188194509 + .long 1207959552 + .long 1073282409 + .long 2198872939 + .long 1044806069 + .long 3489660928 + .long 1073285217 + .long 2633982383 + .long 1042307894 + .long 939524096 + .long 1073287090 + .long 1059367786 + .long 3189114230 + .long 2281701376 + .long 1073288494 + .long 3158525533 + .long 1044484961 + .long 3221225472 + .long 1073289430 + .long 286581777 + .long 1044893263 + .long 4026531840 + .long 1073290132 + .long 2000245215 + .long 3191647611 + .long 134217728 + .long 1073290601 + .long 4205071590 + .long 1045035927 + .long 536870912 + .long 1073290952 + .long 2334392229 + .long 1043447393 + .long 805306368 + .long 1073291186 + .long 2281458177 + .long 3188885569 + .long 3087007744 + .long 1073291361 + .long 691611507 + .long 1044733832 + .long 3221225472 + .long 1073291478 + .long 1816229550 + .long 1044363390 + .long 2281701376 + .long 1073291566 + .long 1993843750 + .long 3189837440 + .long 134217728 + .long 1073291625 + .long 3654754496 + .long 1044970837 + .long 4026531840 + .long 1073291668 + .long 3224300229 + .long 3191935390 + .long 805306368 + .long 1073291698 + .long 2988777976 + .long 3188950659 + .long 536870912 + .long 1073291720 + .long 1030371341 + .long 1043402665 + .long 3221225472 + .long 1073291734 + .long 1524463765 + .long 1044361356 + .long 3087007744 + .long 1073291745 + .long 2754295320 + .long 1044731036 + .long 134217728 + .long 1073291753 + .long 3099629057 + .long 1044970710 + .long 2281701376 + .long 1073291758 + .long 962914160 + .long 3189838838 + .long 805306368 + .long 1073291762 + .long 3543908206 + .long 3188950786 + .long 4026531840 + .long 1073291764 + .long 1849909620 + .long 3191935434 + .long 3221225472 + .long 1073291766 + .long 1641333636 + .long 1044361352 + .long 536870912 + .long 1073291768 + .long 1373968792 + .long 1043402654 + .long 134217728 + .long 1073291769 + .long 2033191599 + .long 1044970710 + .long 3087007744 + .long 1073291769 + .long 4117947437 + .long 1044731035 + .long 805306368 + .long 1073291770 + .long 315378368 + .long 3188950787 + .long 2281701376 + .long 1073291770 + .long 2428571750 + .long 3189838838 + .long 3221225472 + .long 1073291770 + .long 1608007466 + .long 1044361352 + .long 4026531840 + .long 1073291770 + .long 1895711420 + .long 3191935434 + .long 134217728 + .long 1073291771 + .long 2031108713 + .long 1044970710 + .long 536870912 + .long 1073291771 + .long 1362518342 + .long 1043402654 + .long 805306368 + .long 1073291771 + .long 317461253 + .long 3188950787 + .long 939524096 + .long 1073291771 + .long 4117231784 + .long 1044731035 + .long 1073741824 + .long 1073291771 + .long 1607942376 + .long 1044361352 + .long 1207959552 + .long 1073291771 + .long 2428929577 + .long 3189838838 + .long 1207959552 + .long 1073291771 + .long 2031104645 + .long 1044970710 + .long 1342177280 + .long 1073291771 + .long 1895722602 + .long 3191935434 + .long 1342177280 + .long 1073291771 + .long 317465322 + .long 3188950787 + .long 1342177280 + .long 1073291771 + .long 1362515546 + .long 1043402654 + .long 1342177280 + .long 1073291771 + .long 1607942248 + .long 1044361352 + .long 1342177280 + .long 1073291771 + .long 4117231610 + .long 1044731035 + .long 1342177280 + .long 1073291771 + .long 2031104637 + .long 1044970710 + .long 1342177280 + .long 1073291771 + .long 1540251232 + .long 1045150466 + .long 1342177280 + .long 1073291771 + .long 2644671394 + .long 1045270303 + .long 1342177280 + .long 1073291771 + .long 2399244691 + .long 1045360181 + .long 1342177280 + .long 1073291771 + .long 803971124 + .long 1045420100 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192879152 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192849193 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192826724 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192811744 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192800509 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192793019 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192787402 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192783657 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192780848 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192778976 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192777572 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192776635 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192775933 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192775465 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192775114 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774880 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774704 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774587 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774500 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774441 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774397 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774368 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774346 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774331 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774320 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774313 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774308 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774304 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774301 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774299 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774298 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774297 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1466225875 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1343512524 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1251477510 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1190120835 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1144103328 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1113424990 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1090416237 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1075077068 + .long 3192774295 + .long 1431655765 + .long 3218429269 + .long 2576978363 + .long 1070176665 + .long 2453154343 + .long 3217180964 + .long 4189149139 + .long 1069314502 + .long 1775019125 + .long 3216459198 + .long 273199057 + .long 1068739452 + .long 874748308 + .long 3215993277 + .long 0 + .long 1069547520 + .long 0 + .long 1072693248 + .long 0 + .long 1073741824 + .long 1413754136 + .long 1072243195 + .long 856972295 + .long 1015129638 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 1017226790 + .long 2134057426 + .long 1073928572 + .long 1285458442 + .long 1016756537 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 2144337920 + .long 0 + .long 1048576 + .long 33554432 + .long 1101004800 + .type __satan2_la_CoutTab,@object + .size __satan2_la_CoutTab,2008 diff --git a/numpy/core/src/umath/svml/svml_z0_atan_d_la.s b/numpy/core/src/umath/svml/svml_z0_atan_d_la.s new file mode 100644 index 000000000000..01564372eaaf --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_atan_d_la.s @@ -0,0 +1,1352 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x) + * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x) + * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x) + * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x) + * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x + * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16. + * + */ + + + .text +.L_2__routine_start___svml_atan8_z0_0: + + .align 16,0x90 + .globl __svml_atan8 + +__svml_atan8: + + + .cfi_startproc +..L2: + + vmovups 64+__svml_datan_data_internal_avx512(%rip), %zmm4 + vmovups 128+__svml_datan_data_internal_avx512(%rip), %zmm3 + vmovups 256+__svml_datan_data_internal_avx512(%rip), %zmm9 + +/* saturate X range */ + vmovups 320+__svml_datan_data_internal_avx512(%rip), %zmm7 + + vandpd __svml_datan_data_internal_avx512(%rip), %zmm0, %zmm8 + +/* R+Rl = DiffX/Y */ + vbroadcastsd .L_2il0floatpacket.14(%rip), %zmm15 + vaddpd {rn-sae}, %zmm4, %zmm8, %zmm2 + vxorpd %zmm0, %zmm8, %zmm1 + vcmppd $29, {sae}, %zmm3, %zmm8, %k2 + +/* round to 2 bits after binary point */ + vreducepd $40, {sae}, %zmm8, %zmm6 + vsubpd {rn-sae}, %zmm4, %zmm2, %zmm5 + +/* + * if|X|>=MaxThreshold, set DiffX=-1 + * VMSUB(D, DiffX, LargeMask, Zero, One); + */ + vblendmpd 192+__svml_datan_data_internal_avx512(%rip), %zmm6, %zmm10{%k2} + vfmadd231pd {rn-sae}, %zmm8, %zmm5, %zmm9 + vmovups 960+__svml_datan_data_internal_avx512(%rip), %zmm5 + +/* table lookup sequence */ + vmovups 448+__svml_datan_data_internal_avx512(%rip), %zmm6 + vgetmantpd $0, {sae}, %zmm10, %zmm14 + vgetexppd {sae}, %zmm10, %zmm11 + vmovups 1408+__svml_datan_data_internal_avx512(%rip), %zmm10 + +/* + * if|X|>=MaxThreshold, set Y=X + * VMADD(D, Y, LargeMask, X, Zero); + */ + vminpd {sae}, %zmm8, %zmm7, %zmm9{%k2} + vcmppd $29, {sae}, %zmm5, %zmm2, %k1 + vmovups 576+__svml_datan_data_internal_avx512(%rip), %zmm7 + vmovups 1152+__svml_datan_data_internal_avx512(%rip), %zmm8 + vgetmantpd $0, {sae}, %zmm9, %zmm3 + vgetexppd {sae}, %zmm9, %zmm12 + vmovups 1280+__svml_datan_data_internal_avx512(%rip), %zmm9 + vpermt2pd 512+__svml_datan_data_internal_avx512(%rip), %zmm2, %zmm6 + vsubpd {rn-sae}, %zmm12, %zmm11, %zmm4 + vpermt2pd 640+__svml_datan_data_internal_avx512(%rip), %zmm2, %zmm7 + vrcp14pd %zmm3, %zmm13 + vmovups 1344+__svml_datan_data_internal_avx512(%rip), %zmm12 + vmovups 1472+__svml_datan_data_internal_avx512(%rip), %zmm11 + vblendmpd %zmm7, %zmm6, %zmm2{%k1} + vmulpd {rn-sae}, %zmm13, %zmm14, %zmm0 + vfnmadd231pd {rn-sae}, %zmm3, %zmm13, %zmm15 + vfnmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm3 + vfmadd213pd {rn-sae}, %zmm15, %zmm15, %zmm15 + vfmadd213pd {rn-sae}, %zmm13, %zmm13, %zmm15 + vfmadd213pd {rn-sae}, %zmm0, %zmm15, %zmm3 + vscalefpd {rn-sae}, %zmm4, %zmm3, %zmm0 + +/* set table value to Pi/2 for large X */ + vblendmpd 1024+__svml_datan_data_internal_avx512(%rip), %zmm2, %zmm3{%k2} + vmovups 1216+__svml_datan_data_internal_avx512(%rip), %zmm2 + +/* polynomial evaluation */ + vmulpd {rn-sae}, %zmm0, %zmm0, %zmm14 + vmulpd {rn-sae}, %zmm14, %zmm14, %zmm13 + vmulpd {rn-sae}, %zmm0, %zmm14, %zmm15 + vfmadd231pd {rn-sae}, %zmm14, %zmm8, %zmm2 + vfmadd231pd {rn-sae}, %zmm14, %zmm9, %zmm12 + vfmadd213pd {rn-sae}, %zmm11, %zmm10, %zmm14 + vfmadd213pd {rn-sae}, %zmm12, %zmm13, %zmm2 + vfmadd213pd {rn-sae}, %zmm14, %zmm13, %zmm2 + vfmadd213pd {rn-sae}, %zmm0, %zmm15, %zmm2 + vaddpd {rn-sae}, %zmm3, %zmm2, %zmm0 + vxorpd %zmm1, %zmm0, %zmm0 + +/* no invcbrt in libm, so taking it out here */ + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_atan8,@function + .size __svml_atan8,.-__svml_atan8 +..LN__svml_atan8.0: + +.L_2__routine_start___svml_datan_cout_rare_internal_1: + + .align 16,0x90 + +__svml_datan_cout_rare_internal: + + + .cfi_startproc +..L5: + + movzwl 6(%rdi), %r8d + andl $32752, %r8d + shrl $4, %r8d + cmpl $2047, %r8d + je .LBL_2_12 + + + movq (%rdi), %rdx + movq %rdx, -16(%rsp) + shrq $56, %rdx + movb 7(%rdi), %al + andl $127, %edx + movb %dl, -9(%rsp) + movsd -16(%rsp), %xmm0 + shrb $7, %al + comisd 1888+__datan_la_CoutTab(%rip), %xmm0 + movl -12(%rsp), %ecx + jb .LBL_2_6 + + + movsd 1896+__datan_la_CoutTab(%rip), %xmm1 + comisd %xmm0, %xmm1 + jbe .LBL_2_5 + + + movl 4(%rdi), %edx + movl %ecx, %edi + andl $-524288, %ecx + andl $-1048576, %edi + addl $262144, %ecx + movaps %xmm0, %xmm9 + andl $1048575, %ecx + movaps %xmm0, %xmm10 + movsd %xmm0, -56(%rsp) + orl %ecx, %edi + movl $0, -56(%rsp) + andl $1048575, %edx + movl %edi, -52(%rsp) + lea __datan_la_CoutTab(%rip), %rcx + movsd 1928+__datan_la_CoutTab(%rip), %xmm4 + movsd -56(%rsp), %xmm15 + shll $20, %r8d + subsd -56(%rsp), %xmm9 + mulsd 1928+__datan_la_CoutTab(%rip), %xmm10 + shlb $7, %al + mulsd %xmm9, %xmm4 + movsd %xmm4, -48(%rsp) + orl %edx, %r8d + movsd -48(%rsp), %xmm5 + addl $-1069547520, %r8d + sarl $18, %r8d + subsd %xmm9, %xmm5 + movsd %xmm5, -40(%rsp) + andl $-2, %r8d + movsd -48(%rsp), %xmm7 + movsd -40(%rsp), %xmm6 + movslq %r8d, %r8 + subsd %xmm6, %xmm7 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm8 + movsd 1904+__datan_la_CoutTab(%rip), %xmm6 + subsd %xmm8, %xmm9 + movsd %xmm9, -40(%rsp) + movsd -48(%rsp), %xmm2 + movsd -40(%rsp), %xmm3 + movsd %xmm10, -48(%rsp) + movsd -48(%rsp), %xmm11 + movsd 1904+__datan_la_CoutTab(%rip), %xmm8 + subsd -16(%rsp), %xmm11 + movsd %xmm11, -40(%rsp) + movsd -48(%rsp), %xmm13 + movsd -40(%rsp), %xmm12 + subsd %xmm12, %xmm13 + movsd %xmm13, -48(%rsp) + movsd -48(%rsp), %xmm14 + subsd %xmm14, %xmm0 + movsd 1904+__datan_la_CoutTab(%rip), %xmm14 + movsd %xmm0, -40(%rsp) + movsd -48(%rsp), %xmm5 + movsd -40(%rsp), %xmm4 + mulsd %xmm15, %xmm5 + mulsd %xmm15, %xmm4 + movaps %xmm5, %xmm1 + addsd %xmm4, %xmm1 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + subsd %xmm0, %xmm5 + addsd %xmm4, %xmm5 + movsd 1928+__datan_la_CoutTab(%rip), %xmm4 + movsd %xmm5, -40(%rsp) + movsd -48(%rsp), %xmm11 + movsd -40(%rsp), %xmm1 + addsd %xmm11, %xmm6 + movsd %xmm6, -48(%rsp) + movsd -48(%rsp), %xmm7 + subsd %xmm7, %xmm8 + movsd %xmm8, -40(%rsp) + movsd -48(%rsp), %xmm10 + movsd -40(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -32(%rsp) + movsd -40(%rsp), %xmm12 + movsd 1928+__datan_la_CoutTab(%rip), %xmm10 + addsd %xmm11, %xmm12 + movsd %xmm12, -40(%rsp) + movsd -32(%rsp), %xmm13 + movsd 1904+__datan_la_CoutTab(%rip), %xmm11 + subsd %xmm13, %xmm14 + movsd %xmm14, -32(%rsp) + movsd -40(%rsp), %xmm0 + movsd -32(%rsp), %xmm15 + addsd %xmm15, %xmm0 + movsd %xmm0, -32(%rsp) + movsd -48(%rsp), %xmm9 + mulsd %xmm9, %xmm4 + movsd -32(%rsp), %xmm0 + movsd %xmm4, -48(%rsp) + addsd %xmm1, %xmm0 + movsd -48(%rsp), %xmm5 + subsd %xmm9, %xmm5 + movsd %xmm5, -40(%rsp) + movsd -48(%rsp), %xmm7 + movsd -40(%rsp), %xmm6 + subsd %xmm6, %xmm7 + movsd 1904+__datan_la_CoutTab(%rip), %xmm6 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm8 + subsd %xmm8, %xmm9 + movsd %xmm9, -40(%rsp) + movsd -48(%rsp), %xmm4 + divsd %xmm4, %xmm11 + mulsd %xmm11, %xmm10 + movsd -40(%rsp), %xmm5 + movsd %xmm10, -40(%rsp) + addsd %xmm0, %xmm5 + movsd -40(%rsp), %xmm12 + subsd %xmm11, %xmm12 + movsd %xmm12, -32(%rsp) + movsd -40(%rsp), %xmm10 + movsd -32(%rsp), %xmm13 + subsd %xmm13, %xmm10 + movsd %xmm10, -32(%rsp) + movsd -32(%rsp), %xmm14 + mulsd %xmm14, %xmm4 + movsd -32(%rsp), %xmm15 + subsd %xmm4, %xmm6 + mulsd %xmm15, %xmm5 + movsd %xmm5, -40(%rsp) + movsd -40(%rsp), %xmm1 + subsd %xmm1, %xmm6 + movsd %xmm6, -40(%rsp) + movsd -40(%rsp), %xmm4 + movsd -32(%rsp), %xmm5 + movsd -40(%rsp), %xmm0 + movaps %xmm5, %xmm7 + movsd -32(%rsp), %xmm1 + mulsd %xmm3, %xmm5 + addsd 1904+__datan_la_CoutTab(%rip), %xmm4 + mulsd %xmm2, %xmm7 + mulsd %xmm0, %xmm4 + mulsd %xmm1, %xmm4 + mulsd %xmm4, %xmm3 + mulsd %xmm4, %xmm2 + addsd %xmm3, %xmm5 + movsd 1872+__datan_la_CoutTab(%rip), %xmm6 + addsd %xmm2, %xmm5 + movsd %xmm5, -48(%rsp) + movaps %xmm7, %xmm2 + movsd -48(%rsp), %xmm4 + addsd %xmm4, %xmm2 + movsd %xmm2, -48(%rsp) + movsd -48(%rsp), %xmm3 + movsd (%rcx,%r8,8), %xmm2 + subsd %xmm3, %xmm7 + addsd %xmm4, %xmm7 + movsd %xmm7, -40(%rsp) + movsd -48(%rsp), %xmm3 + movaps %xmm3, %xmm5 + movaps %xmm3, %xmm0 + mulsd %xmm3, %xmm5 + addsd %xmm2, %xmm0 + mulsd %xmm5, %xmm6 + movsd -40(%rsp), %xmm10 + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm1 + addsd 1864+__datan_la_CoutTab(%rip), %xmm6 + subsd %xmm1, %xmm2 + mulsd %xmm5, %xmm6 + addsd %xmm3, %xmm2 + addsd 1856+__datan_la_CoutTab(%rip), %xmm6 + mulsd %xmm5, %xmm6 + movsd %xmm2, -40(%rsp) + movsd -48(%rsp), %xmm9 + movsd -40(%rsp), %xmm8 + addsd 1848+__datan_la_CoutTab(%rip), %xmm6 + mulsd %xmm5, %xmm6 + addsd 1840+__datan_la_CoutTab(%rip), %xmm6 + mulsd %xmm5, %xmm6 + addsd 1832+__datan_la_CoutTab(%rip), %xmm6 + mulsd %xmm5, %xmm6 + addsd 1824+__datan_la_CoutTab(%rip), %xmm6 + mulsd %xmm5, %xmm6 + mulsd %xmm3, %xmm6 + addsd %xmm6, %xmm10 + addsd 8(%rcx,%r8,8), %xmm10 + addsd %xmm8, %xmm10 + addsd %xmm9, %xmm10 + movsd %xmm10, -24(%rsp) + movb -17(%rsp), %r9b + andb $127, %r9b + orb %al, %r9b + movb %r9b, -17(%rsp) + movq -24(%rsp), %rax + movq %rax, (%rsi) + jmp .LBL_2_11 + +.LBL_2_5: + + movsd 1912+__datan_la_CoutTab(%rip), %xmm0 + shlb $7, %al + addsd 1920+__datan_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %dl + andb $127, %dl + orb %al, %dl + movb %dl, -17(%rsp) + movq -24(%rsp), %rax + movq %rax, (%rsi) + jmp .LBL_2_11 + +.LBL_2_6: + + comisd 1880+__datan_la_CoutTab(%rip), %xmm0 + jb .LBL_2_8 + + + movaps %xmm0, %xmm1 + mulsd %xmm0, %xmm1 + shlb $7, %al + movsd 1872+__datan_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1864+__datan_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1856+__datan_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1848+__datan_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1840+__datan_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1832+__datan_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1824+__datan_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm0, %xmm2 + movsd %xmm2, -24(%rsp) + movb -17(%rsp), %dl + andb $127, %dl + orb %al, %dl + movb %dl, -17(%rsp) + movq -24(%rsp), %rax + movq %rax, (%rsi) + jmp .LBL_2_11 + +.LBL_2_8: + + movzwl -10(%rsp), %edx + testl $32752, %edx + je .LBL_2_10 + + + movsd 1904+__datan_la_CoutTab(%rip), %xmm1 + shlb $7, %al + addsd %xmm0, %xmm1 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + mulsd -16(%rsp), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %dl + andb $127, %dl + orb %al, %dl + movb %dl, -17(%rsp) + movq -24(%rsp), %rax + movq %rax, (%rsi) + jmp .LBL_2_11 + +.LBL_2_10: + + mulsd %xmm0, %xmm0 + shlb $7, %al + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm0 + addsd -16(%rsp), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %dl + andb $127, %dl + orb %al, %dl + movb %dl, -17(%rsp) + movq -24(%rsp), %rax + movq %rax, (%rsi) + +.LBL_2_11: + + xorl %eax, %eax + ret + +.LBL_2_12: + + testl $1048575, 4(%rdi) + jne .LBL_2_15 + + + cmpl $0, (%rdi) + jne .LBL_2_15 + + + movsd 1912+__datan_la_CoutTab(%rip), %xmm0 + movb 7(%rdi), %al + andb $-128, %al + addsd 1920+__datan_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -24(%rsp) + movb -17(%rsp), %dl + andb $127, %dl + orb %al, %dl + movb %dl, -17(%rsp) + movq -24(%rsp), %rcx + movq %rcx, (%rsi) + jmp .LBL_2_11 + +.LBL_2_15: + + movsd (%rdi), %xmm0 + addsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + jmp .LBL_2_11 + .align 16,0x90 + + .cfi_endproc + + .type __svml_datan_cout_rare_internal,@function + .size __svml_datan_cout_rare_internal,.-__svml_datan_cout_rare_internal +..LN__svml_datan_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_datan_data_internal_avx512: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 1125646336 + .long 0 + .long 1125646336 + .long 0 + .long 1125646336 + .long 0 + .long 1125646336 + .long 0 + .long 1125646336 + .long 0 + .long 1125646336 + .long 0 + .long 1125646336 + .long 0 + .long 1125646336 + .long 0 + .long 1075806208 + .long 0 + .long 1075806208 + .long 0 + .long 1075806208 + .long 0 + .long 1075806208 + .long 0 + .long 1075806208 + .long 0 + .long 1075806208 + .long 0 + .long 1075806208 + .long 0 + .long 1075806208 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1206910976 + .long 0 + .long 1206910976 + .long 0 + .long 1206910976 + .long 0 + .long 1206910976 + .long 0 + .long 1206910976 + .long 0 + .long 1206910976 + .long 0 + .long 1206910976 + .long 0 + .long 1206910976 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4180443357 + .long 1070553973 + .long 90291023 + .long 1071492199 + .long 2737217249 + .long 1071945615 + .long 1413754136 + .long 1072243195 + .long 1468297118 + .long 1072475260 + .long 3531732635 + .long 1072657163 + .long 744202399 + .long 1072747407 + .long 2464923204 + .long 1072805601 + .long 1436891685 + .long 1072853231 + .long 2037009832 + .long 1072892781 + .long 1826698067 + .long 1072926058 + .long 1803191648 + .long 1072954391 + .long 2205372832 + .long 1072978772 + .long 4234512805 + .long 1072999952 + .long 3932628503 + .long 1073018509 + .long 2501811453 + .long 1073034892 + .long 866379431 + .long 1073049455 + .long 1376865888 + .long 1073062480 + .long 3290094269 + .long 1073074195 + .long 354764887 + .long 1073084787 + .long 3332975497 + .long 1073094406 + .long 1141460092 + .long 1073103181 + .long 745761286 + .long 1073111216 + .long 1673304509 + .long 1073118600 + .long 983388243 + .long 1073125409 + .long 3895509104 + .long 1073131706 + .long 2128523669 + .long 1073137548 + .long 2075485693 + .long 1073142981 + .long 121855980 + .long 1073148047 + .long 4181733783 + .long 1073152780 + .long 2887813284 + .long 1073157214 + .long 0 + .long 0 + .long 1022865341 + .long 1013492590 + .long 573531618 + .long 1014639487 + .long 2280825944 + .long 1014120858 + .long 856972295 + .long 1015129638 + .long 986810987 + .long 1015077601 + .long 2062601149 + .long 1013974920 + .long 589036912 + .long 3164328156 + .long 1787331214 + .long 1016798022 + .long 2942272763 + .long 3164235441 + .long 2956702105 + .long 1016472908 + .long 3903328092 + .long 3162582135 + .long 3175026820 + .long 3158589859 + .long 787328196 + .long 1014621351 + .long 2317874517 + .long 3163795518 + .long 4071621134 + .long 1016673529 + .long 2492111345 + .long 3164172103 + .long 3606178875 + .long 3162371821 + .long 3365790232 + .long 1014547152 + .long 2710887773 + .long 1017086651 + .long 2755350986 + .long 3162706257 + .long 198095269 + .long 3162802133 + .long 2791076759 + .long 3164364640 + .long 4214434319 + .long 3162164074 + .long 773754012 + .long 3164190653 + .long 139561443 + .long 3164313657 + .long 2197796619 + .long 3164066219 + .long 3592486882 + .long 1016669082 + .long 1148791015 + .long 3163724934 + .long 386789398 + .long 3163117479 + .long 2518816264 + .long 3162291736 + .long 2545101323 + .long 3164592727 + .long 16 + .long 1125646336 + .long 16 + .long 1125646336 + .long 16 + .long 1125646336 + .long 16 + .long 1125646336 + .long 16 + .long 1125646336 + .long 16 + .long 1125646336 + .long 16 + .long 1125646336 + .long 16 + .long 1125646336 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 4123328151 + .long 1068689849 + .long 4123328151 + .long 1068689849 + .long 4123328151 + .long 1068689849 + .long 4123328151 + .long 1068689849 + .long 4123328151 + .long 1068689849 + .long 4123328151 + .long 1068689849 + .long 4123328151 + .long 1068689849 + .long 4123328151 + .long 1068689849 + .long 3295121612 + .long 3216458327 + .long 3295121612 + .long 3216458327 + .long 3295121612 + .long 3216458327 + .long 3295121612 + .long 3216458327 + .long 3295121612 + .long 3216458327 + .long 3295121612 + .long 3216458327 + .long 3295121612 + .long 3216458327 + .long 3295121612 + .long 3216458327 + .long 4026078880 + .long 1069314495 + .long 4026078880 + .long 1069314495 + .long 4026078880 + .long 1069314495 + .long 4026078880 + .long 1069314495 + .long 4026078880 + .long 1069314495 + .long 4026078880 + .long 1069314495 + .long 4026078880 + .long 1069314495 + .long 4026078880 + .long 1069314495 + .long 2398029018 + .long 3217180964 + .long 2398029018 + .long 3217180964 + .long 2398029018 + .long 3217180964 + .long 2398029018 + .long 3217180964 + .long 2398029018 + .long 3217180964 + .long 2398029018 + .long 3217180964 + .long 2398029018 + .long 3217180964 + .long 2398029018 + .long 3217180964 + .long 2576905246 + .long 1070176665 + .long 2576905246 + .long 1070176665 + .long 2576905246 + .long 1070176665 + .long 2576905246 + .long 1070176665 + .long 2576905246 + .long 1070176665 + .long 2576905246 + .long 1070176665 + .long 2576905246 + .long 1070176665 + .long 2576905246 + .long 1070176665 + .long 1431655757 + .long 3218429269 + .long 1431655757 + .long 3218429269 + .long 1431655757 + .long 3218429269 + .long 1431655757 + .long 3218429269 + .long 1431655757 + .long 3218429269 + .long 1431655757 + .long 3218429269 + .long 1431655757 + .long 3218429269 + .long 1431655757 + .long 3218429269 + .type __svml_datan_data_internal_avx512,@object + .size __svml_datan_data_internal_avx512,1536 + .align 32 +__datan_la_CoutTab: + .long 3892314112 + .long 1069799150 + .long 2332892550 + .long 1039715405 + .long 1342177280 + .long 1070305495 + .long 270726690 + .long 1041535749 + .long 939524096 + .long 1070817911 + .long 2253973841 + .long 3188654726 + .long 3221225472 + .long 1071277294 + .long 3853927037 + .long 1043226911 + .long 2818572288 + .long 1071767563 + .long 2677759107 + .long 1044314101 + .long 3355443200 + .long 1072103591 + .long 1636578514 + .long 3191094734 + .long 1476395008 + .long 1072475260 + .long 1864703685 + .long 3188646936 + .long 805306368 + .long 1072747407 + .long 192551812 + .long 3192726267 + .long 2013265920 + .long 1072892781 + .long 2240369452 + .long 1043768538 + .long 0 + .long 1072999953 + .long 3665168337 + .long 3192705970 + .long 402653184 + .long 1073084787 + .long 1227953434 + .long 3192313277 + .long 2013265920 + .long 1073142981 + .long 3853283127 + .long 1045277487 + .long 805306368 + .long 1073187261 + .long 1676192264 + .long 3192868861 + .long 134217728 + .long 1073217000 + .long 4290763938 + .long 1042034855 + .long 671088640 + .long 1073239386 + .long 994303084 + .long 3189643768 + .long 402653184 + .long 1073254338 + .long 1878067156 + .long 1042652475 + .long 1610612736 + .long 1073265562 + .long 670314820 + .long 1045138554 + .long 3221225472 + .long 1073273048 + .long 691126919 + .long 3189987794 + .long 3489660928 + .long 1073278664 + .long 1618990832 + .long 3188194509 + .long 1207959552 + .long 1073282409 + .long 2198872939 + .long 1044806069 + .long 3489660928 + .long 1073285217 + .long 2633982383 + .long 1042307894 + .long 939524096 + .long 1073287090 + .long 1059367786 + .long 3189114230 + .long 2281701376 + .long 1073288494 + .long 3158525533 + .long 1044484961 + .long 3221225472 + .long 1073289430 + .long 286581777 + .long 1044893263 + .long 4026531840 + .long 1073290132 + .long 2000245215 + .long 3191647611 + .long 134217728 + .long 1073290601 + .long 4205071590 + .long 1045035927 + .long 536870912 + .long 1073290952 + .long 2334392229 + .long 1043447393 + .long 805306368 + .long 1073291186 + .long 2281458177 + .long 3188885569 + .long 3087007744 + .long 1073291361 + .long 691611507 + .long 1044733832 + .long 3221225472 + .long 1073291478 + .long 1816229550 + .long 1044363390 + .long 2281701376 + .long 1073291566 + .long 1993843750 + .long 3189837440 + .long 134217728 + .long 1073291625 + .long 3654754496 + .long 1044970837 + .long 4026531840 + .long 1073291668 + .long 3224300229 + .long 3191935390 + .long 805306368 + .long 1073291698 + .long 2988777976 + .long 3188950659 + .long 536870912 + .long 1073291720 + .long 1030371341 + .long 1043402665 + .long 3221225472 + .long 1073291734 + .long 1524463765 + .long 1044361356 + .long 3087007744 + .long 1073291745 + .long 2754295320 + .long 1044731036 + .long 134217728 + .long 1073291753 + .long 3099629057 + .long 1044970710 + .long 2281701376 + .long 1073291758 + .long 962914160 + .long 3189838838 + .long 805306368 + .long 1073291762 + .long 3543908206 + .long 3188950786 + .long 4026531840 + .long 1073291764 + .long 1849909620 + .long 3191935434 + .long 3221225472 + .long 1073291766 + .long 1641333636 + .long 1044361352 + .long 536870912 + .long 1073291768 + .long 1373968792 + .long 1043402654 + .long 134217728 + .long 1073291769 + .long 2033191599 + .long 1044970710 + .long 3087007744 + .long 1073291769 + .long 4117947437 + .long 1044731035 + .long 805306368 + .long 1073291770 + .long 315378368 + .long 3188950787 + .long 2281701376 + .long 1073291770 + .long 2428571750 + .long 3189838838 + .long 3221225472 + .long 1073291770 + .long 1608007466 + .long 1044361352 + .long 4026531840 + .long 1073291770 + .long 1895711420 + .long 3191935434 + .long 134217728 + .long 1073291771 + .long 2031108713 + .long 1044970710 + .long 536870912 + .long 1073291771 + .long 1362518342 + .long 1043402654 + .long 805306368 + .long 1073291771 + .long 317461253 + .long 3188950787 + .long 939524096 + .long 1073291771 + .long 4117231784 + .long 1044731035 + .long 1073741824 + .long 1073291771 + .long 1607942376 + .long 1044361352 + .long 1207959552 + .long 1073291771 + .long 2428929577 + .long 3189838838 + .long 1207959552 + .long 1073291771 + .long 2031104645 + .long 1044970710 + .long 1342177280 + .long 1073291771 + .long 1895722602 + .long 3191935434 + .long 1342177280 + .long 1073291771 + .long 317465322 + .long 3188950787 + .long 1342177280 + .long 1073291771 + .long 1362515546 + .long 1043402654 + .long 1342177280 + .long 1073291771 + .long 1607942248 + .long 1044361352 + .long 1342177280 + .long 1073291771 + .long 4117231610 + .long 1044731035 + .long 1342177280 + .long 1073291771 + .long 2031104637 + .long 1044970710 + .long 1342177280 + .long 1073291771 + .long 1540251232 + .long 1045150466 + .long 1342177280 + .long 1073291771 + .long 2644671394 + .long 1045270303 + .long 1342177280 + .long 1073291771 + .long 2399244691 + .long 1045360181 + .long 1342177280 + .long 1073291771 + .long 803971124 + .long 1045420100 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192879152 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192849193 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192826724 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192811744 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192800509 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192793019 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192787402 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192783657 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192780848 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192778976 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192777572 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192776635 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192775933 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192775465 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192775114 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774880 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774704 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774587 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774500 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774441 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774397 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774368 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774346 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774331 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774320 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774313 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774308 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774304 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774301 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774299 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774298 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774297 + .long 1476395008 + .long 1073291771 + .long 3613709523 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 177735686 + .long 3192774296 + .long 1476395008 + .long 1073291771 + .long 3490996172 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 2754716064 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 2263862659 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1895722605 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1650295902 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1466225875 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1343512524 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1251477510 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1190120835 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1144103328 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1113424990 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1090416237 + .long 3192774295 + .long 1476395008 + .long 1073291771 + .long 1075077068 + .long 3192774295 + .long 1431655765 + .long 3218429269 + .long 2576978363 + .long 1070176665 + .long 2453154343 + .long 3217180964 + .long 4189149139 + .long 1069314502 + .long 1775019125 + .long 3216459198 + .long 273199057 + .long 1068739452 + .long 874748308 + .long 3215993277 + .long 0 + .long 1017118720 + .long 0 + .long 1069547520 + .long 0 + .long 1129316352 + .long 0 + .long 1072693248 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 33554432 + .long 1101004800 + .type __datan_la_CoutTab,@object + .size __datan_la_CoutTab,1936 + .align 8 +.L_2il0floatpacket.14: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.14,@object + .size .L_2il0floatpacket.14,8 diff --git a/numpy/core/src/umath/svml/svml_z0_atan_s_la.s b/numpy/core/src/umath/svml/svml_z0_atan_s_la.s new file mode 100644 index 000000000000..c1386beb56f0 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_atan_s_la.s @@ -0,0 +1,355 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x) + * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x) + * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x) + * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x) + * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x + * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16. + * + */ + + + .text +.L_2__routine_start___svml_atanf16_z0_0: + + .align 16,0x90 + .globl __svml_atanf16 + +__svml_atanf16: + + + .cfi_startproc +..L2: + + vandps __svml_satan_data_internal_avx512(%rip), %zmm0, %zmm7 + vmovups 128+__svml_satan_data_internal_avx512(%rip), %zmm3 + vmovups 256+__svml_satan_data_internal_avx512(%rip), %zmm8 + +/* round to 2 bits after binary point */ + vreduceps $40, {sae}, %zmm7, %zmm5 + +/* saturate X range */ + vmovups 320+__svml_satan_data_internal_avx512(%rip), %zmm6 + vmovups 64+__svml_satan_data_internal_avx512(%rip), %zmm2 + vcmpps $29, {sae}, %zmm3, %zmm7, %k1 + +/* table lookup sequence */ + vmovups 448+__svml_satan_data_internal_avx512(%rip), %zmm3 + vsubps {rn-sae}, %zmm5, %zmm7, %zmm4 + vaddps {rn-sae}, %zmm2, %zmm7, %zmm1 + vxorps %zmm0, %zmm7, %zmm0 + vfmadd231ps {rn-sae}, %zmm7, %zmm4, %zmm8 + vmovups 896+__svml_satan_data_internal_avx512(%rip), %zmm4 + +/* if|X|>=MaxThreshold, set DiffX=-1 */ + vblendmps 192+__svml_satan_data_internal_avx512(%rip), %zmm5, %zmm9{%k1} + vmovups 960+__svml_satan_data_internal_avx512(%rip), %zmm5 + +/* if|X|>=MaxThreshold, set Y=X */ + vminps {sae}, %zmm7, %zmm6, %zmm8{%k1} + +/* R+Rl = DiffX/Y */ + vgetmantps $0, {sae}, %zmm9, %zmm12 + vgetexpps {sae}, %zmm9, %zmm10 + vpermt2ps 512+__svml_satan_data_internal_avx512(%rip), %zmm1, %zmm3 + vgetmantps $0, {sae}, %zmm8, %zmm15 + vgetexpps {sae}, %zmm8, %zmm11 + vmovups 832+__svml_satan_data_internal_avx512(%rip), %zmm1 + +/* set table value to Pi/2 for large X */ + vblendmps 704+__svml_satan_data_internal_avx512(%rip), %zmm3, %zmm9{%k1} + vrcp14ps %zmm15, %zmm13 + vsubps {rn-sae}, %zmm11, %zmm10, %zmm2 + vmulps {rn-sae}, %zmm13, %zmm12, %zmm14 + vfnmadd213ps {rn-sae}, %zmm12, %zmm14, %zmm15 + vfmadd213ps {rn-sae}, %zmm14, %zmm13, %zmm15 + vscalefps {rn-sae}, %zmm2, %zmm15, %zmm7 + +/* polynomial evaluation */ + vmulps {rn-sae}, %zmm7, %zmm7, %zmm8 + vmulps {rn-sae}, %zmm7, %zmm8, %zmm6 + vfmadd231ps {rn-sae}, %zmm8, %zmm1, %zmm4 + vfmadd213ps {rn-sae}, %zmm5, %zmm4, %zmm8 + vfmadd213ps {rn-sae}, %zmm7, %zmm6, %zmm8 + vaddps {rn-sae}, %zmm9, %zmm8, %zmm10 + vxorps %zmm0, %zmm10, %zmm0 + +/* no invcbrt in libm, so taking it out here */ + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_atanf16,@function + .size __svml_atanf16,.-__svml_atanf16 +..LN__svml_atanf16.0: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_satan_data_internal_avx512: + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1241513984 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 1089994752 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 1333788672 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1048239024 + .long 1055744824 + .long 1059372157 + .long 1061752795 + .long 1063609315 + .long 1065064543 + .long 1065786489 + .long 1066252045 + .long 1066633083 + .long 1066949484 + .long 1067215699 + .long 1067442363 + .long 1067637412 + .long 1067806856 + .long 1067955311 + .long 1068086373 + .long 1068202874 + .long 1068307075 + .long 1068400798 + .long 1068485529 + .long 1068562486 + .long 1068632682 + .long 1068696961 + .long 1068756035 + .long 1068810506 + .long 1068860887 + .long 1068907620 + .long 1068951084 + .long 1068991608 + .long 1069029480 + .long 1069064949 + .long 0 + .long 2975494116 + .long 833369962 + .long 835299256 + .long 2998648110 + .long 2995239174 + .long 3000492182 + .long 860207626 + .long 3008447516 + .long 3005590622 + .long 3000153675 + .long 860754741 + .long 859285590 + .long 844944488 + .long 2993069463 + .long 858157665 + .long 3006142000 + .long 3007693206 + .long 3009342234 + .long 847469400 + .long 3006114683 + .long 852829553 + .long 847325583 + .long 860305056 + .long 846145135 + .long 2997638646 + .long 855837703 + .long 2979047222 + .long 2995344192 + .long 854092798 + .long 3000498637 + .long 859965578 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 3188697310 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 1045219554 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .long 3198855850 + .type __svml_satan_data_internal_avx512,@object + .size __svml_satan_data_internal_avx512,1024 diff --git a/numpy/core/src/umath/svml/svml_z0_atanh_d_la.s b/numpy/core/src/umath/svml/svml_z0_atanh_d_la.s new file mode 100644 index 000000000000..fbcd15015115 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_atanh_d_la.s @@ -0,0 +1,656 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * + * * Compute 0.5*[log(1+x)-log(1-x)], using small table + * * lookups that map to AVX3 permute instructions + * * + * + */ + + + .text +.L_2__routine_start___svml_atanh8_z0_0: + + .align 16,0x90 + .globl __svml_atanh8 + +__svml_atanh8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 256+__svml_datanh_data_internal_avx512(%rip), %zmm15 + +/* round reciprocals to 1+4b mantissas */ + vmovups 384+__svml_datanh_data_internal_avx512(%rip), %zmm6 + vmovups 448+__svml_datanh_data_internal_avx512(%rip), %zmm9 + vmovaps %zmm0, %zmm2 + vandpd 320+__svml_datanh_data_internal_avx512(%rip), %zmm2, %zmm13 + +/* 1+y */ + vaddpd {rn-sae}, %zmm15, %zmm13, %zmm0 + +/* 1-y */ + vsubpd {rn-sae}, %zmm13, %zmm15, %zmm4 + vxorpd %zmm13, %zmm2, %zmm1 + +/* Yp_high */ + vsubpd {rn-sae}, %zmm15, %zmm0, %zmm7 + +/* -Ym_high */ + vsubpd {rn-sae}, %zmm15, %zmm4, %zmm12 + +/* RcpP ~ 1/Yp */ + vrcp14pd %zmm0, %zmm3 + +/* RcpM ~ 1/Ym */ + vrcp14pd %zmm4, %zmm5 + +/* input outside (-1, 1) ? */ + vcmppd $21, {sae}, %zmm15, %zmm13, %k0 + vpaddq %zmm6, %zmm3, %zmm11 + vpaddq %zmm6, %zmm5, %zmm10 + +/* Yp_low */ + vsubpd {rn-sae}, %zmm7, %zmm13, %zmm8 + vandpd %zmm9, %zmm11, %zmm14 + vandpd %zmm9, %zmm10, %zmm3 + +/* Ym_low */ + vaddpd {rn-sae}, %zmm12, %zmm13, %zmm12 + +/* Reduced argument: Rp = (RcpP*Yp - 1)+RcpP*Yp_low */ + vfmsub213pd {rn-sae}, %zmm15, %zmm14, %zmm0 + +/* Reduced argument: Rm = (RcpM*Ym - 1)+RcpM*Ym_low */ + vfmsub231pd {rn-sae}, %zmm3, %zmm4, %zmm15 + +/* exponents */ + vgetexppd {sae}, %zmm14, %zmm5 + vgetexppd {sae}, %zmm3, %zmm4 + +/* Table lookups */ + vmovups __svml_datanh_data_internal_avx512(%rip), %zmm9 + vmovups 64+__svml_datanh_data_internal_avx512(%rip), %zmm13 + vmovups 128+__svml_datanh_data_internal_avx512(%rip), %zmm7 + vfmadd231pd {rn-sae}, %zmm14, %zmm8, %zmm0 + vfnmadd231pd {rn-sae}, %zmm3, %zmm12, %zmm15 + +/* Prepare table index */ + vpsrlq $48, %zmm14, %zmm11 + vpsrlq $48, %zmm3, %zmm8 + vmovups 192+__svml_datanh_data_internal_avx512(%rip), %zmm14 + +/* polynomials */ + vmovups 512+__svml_datanh_data_internal_avx512(%rip), %zmm3 + +/* Km-Kp */ + vsubpd {rn-sae}, %zmm5, %zmm4, %zmm5 + vmovups 576+__svml_datanh_data_internal_avx512(%rip), %zmm4 + kmovw %k0, %edx + vmovaps %zmm11, %zmm10 + vmovaps %zmm4, %zmm6 + vpermi2pd %zmm13, %zmm9, %zmm10 + vpermi2pd %zmm14, %zmm7, %zmm11 + vpermt2pd %zmm13, %zmm8, %zmm9 + vpermt2pd %zmm14, %zmm8, %zmm7 + vmovups 640+__svml_datanh_data_internal_avx512(%rip), %zmm8 + vfmadd231pd {rn-sae}, %zmm0, %zmm3, %zmm6 + vfmadd231pd {rn-sae}, %zmm15, %zmm3, %zmm4 + vmovups 832+__svml_datanh_data_internal_avx512(%rip), %zmm13 + vmovups 896+__svml_datanh_data_internal_avx512(%rip), %zmm14 + vfmadd213pd {rn-sae}, %zmm8, %zmm0, %zmm6 + vfmadd213pd {rn-sae}, %zmm8, %zmm15, %zmm4 + vmovups 1024+__svml_datanh_data_internal_avx512(%rip), %zmm8 + vsubpd {rn-sae}, %zmm11, %zmm7, %zmm12 + +/* table values */ + vsubpd {rn-sae}, %zmm10, %zmm9, %zmm3 + vmovups 704+__svml_datanh_data_internal_avx512(%rip), %zmm7 + vmovups 768+__svml_datanh_data_internal_avx512(%rip), %zmm9 + +/* K*L2H + Th */ + vmovups 1152+__svml_datanh_data_internal_avx512(%rip), %zmm10 + +/* K*L2L + Tl */ + vmovups 1216+__svml_datanh_data_internal_avx512(%rip), %zmm11 + vfmadd213pd {rn-sae}, %zmm7, %zmm0, %zmm6 + vfmadd213pd {rn-sae}, %zmm7, %zmm15, %zmm4 + vmovups 960+__svml_datanh_data_internal_avx512(%rip), %zmm7 + vfmadd231pd {rn-sae}, %zmm5, %zmm10, %zmm3 + vfmadd213pd {rn-sae}, %zmm12, %zmm11, %zmm5 + vfmadd213pd {rn-sae}, %zmm9, %zmm0, %zmm6 + vfmadd213pd {rn-sae}, %zmm9, %zmm15, %zmm4 + vfmadd213pd {rn-sae}, %zmm13, %zmm0, %zmm6 + vfmadd213pd {rn-sae}, %zmm13, %zmm15, %zmm4 + vfmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm6 + vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm4 + vfmadd213pd {rn-sae}, %zmm7, %zmm0, %zmm6 + vfmadd213pd {rn-sae}, %zmm7, %zmm15, %zmm4 + vfmadd213pd {rn-sae}, %zmm8, %zmm0, %zmm6 + vfmadd213pd {rn-sae}, %zmm8, %zmm15, %zmm4 + +/* (K*L2L + Tl) + Rp*PolyP */ + vfmadd213pd {rn-sae}, %zmm5, %zmm0, %zmm6 + vorpd 1088+__svml_datanh_data_internal_avx512(%rip), %zmm1, %zmm0 + +/* (K*L2L + Tl) + Rp*PolyP -Rm*PolyM */ + vfnmadd213pd {rn-sae}, %zmm6, %zmm15, %zmm4 + vaddpd {rn-sae}, %zmm4, %zmm3, %zmm1 + vmulpd {rn-sae}, %zmm0, %zmm1, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm2, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_datanh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_atanh8,@function + .size __svml_atanh8,.-__svml_atanh8 +..LN__svml_atanh8.0: + +.L_2__routine_start___svml_datanh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_datanh_cout_rare_internal: + + + .cfi_startproc +..L53: + + movzwl 6(%rdi), %eax + andl $32752, %eax + movsd (%rdi), %xmm0 + movb 7(%rdi), %dl + andb $127, %dl + movsd %xmm0, -8(%rsp) + cmpl $32752, %eax + je .LBL_2_6 + +.LBL_2_2: + + cmpl $0, -8(%rsp) + jne .LBL_2_5 + + + movb %dl, -1(%rsp) + cmpl $1072693248, -4(%rsp) + jne .LBL_2_5 + + + divsd 8+__datanh_la_CoutTab(%rip), %xmm0 + movsd %xmm0, (%rsi) + movl $2, %eax + ret + +.LBL_2_5: + + movsd 8+__datanh_la_CoutTab(%rip), %xmm0 + movl $1, %eax + mulsd 16+__datanh_la_CoutTab(%rip), %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_6: + + testl $1048575, 4(%rdi) + jne .LBL_2_8 + + + cmpl $0, (%rdi) + je .LBL_2_2 + +.LBL_2_8: + + mulsd %xmm0, %xmm0 + xorl %eax, %eax + movsd %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_datanh_cout_rare_internal,@function + .size __svml_datanh_cout_rare_internal,.-__svml_datanh_cout_rare_internal +..LN__svml_datanh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_datanh_data_internal_avx512: + .long 0 + .long 0 + .long 3222274048 + .long 1068436016 + .long 1848246272 + .long 1069426439 + .long 1890058240 + .long 1069940528 + .long 3348824064 + .long 1070370807 + .long 2880143360 + .long 1070688092 + .long 3256647680 + .long 1070883211 + .long 4139515904 + .long 1071069655 + .long 3971973120 + .long 1071248163 + .long 3348791296 + .long 1071419383 + .long 1605304320 + .long 1071583887 + .long 3827646464 + .long 1071693426 + .long 1584414720 + .long 1071769695 + .long 860815360 + .long 1071843287 + .long 3896934400 + .long 1071914383 + .long 643547136 + .long 1071983149 + .long 0 + .long 0 + .long 399283991 + .long 1030105702 + .long 1028718588 + .long 1030642877 + .long 3808918910 + .long 3177909005 + .long 4136237123 + .long 3177805716 + .long 3462654649 + .long 1029900033 + .long 2051171366 + .long 3177225921 + .long 2396640771 + .long 3177708721 + .long 3062724207 + .long 1029196786 + .long 634920691 + .long 1029317036 + .long 1913570380 + .long 1027322573 + .long 1734886604 + .long 3177545033 + .long 2335489660 + .long 1025116093 + .long 3046154741 + .long 1029750303 + .long 914782743 + .long 3176833847 + .long 3743595607 + .long 1028041657 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 32768 + .long 0 + .long 32768 + .long 0 + .long 32768 + .long 0 + .long 32768 + .long 0 + .long 32768 + .long 0 + .long 32768 + .long 0 + .long 32768 + .long 0 + .long 32768 + .long 0 + .long 4294901760 + .long 0 + .long 4294901760 + .long 0 + .long 4294901760 + .long 0 + .long 4294901760 + .long 0 + .long 4294901760 + .long 0 + .long 4294901760 + .long 0 + .long 4294901760 + .long 0 + .long 4294901760 + .long 1087603010 + .long 1069318621 + .long 1087603010 + .long 1069318621 + .long 1087603010 + .long 1069318621 + .long 1087603010 + .long 1069318621 + .long 1087603010 + .long 1069318621 + .long 1087603010 + .long 1069318621 + .long 1087603010 + .long 1069318621 + .long 1087603010 + .long 1069318621 + .long 3090058096 + .long 3217033020 + .long 3090058096 + .long 3217033020 + .long 3090058096 + .long 3217033020 + .long 3090058096 + .long 3217033020 + .long 3090058096 + .long 3217033020 + .long 3090058096 + .long 3217033020 + .long 3090058096 + .long 3217033020 + .long 3090058096 + .long 3217033020 + .long 2566904552 + .long 1069697314 + .long 2566904552 + .long 1069697314 + .long 2566904552 + .long 1069697314 + .long 2566904552 + .long 1069697314 + .long 2566904552 + .long 1069697314 + .long 2566904552 + .long 1069697314 + .long 2566904552 + .long 1069697314 + .long 2566904552 + .long 1069697314 + .long 4168213957 + .long 3217380691 + .long 4168213957 + .long 3217380691 + .long 4168213957 + .long 3217380691 + .long 4168213957 + .long 3217380691 + .long 4168213957 + .long 3217380691 + .long 4168213957 + .long 3217380691 + .long 4168213957 + .long 3217380691 + .long 4168213957 + .long 3217380691 + .long 2580363594 + .long 1070176665 + .long 2580363594 + .long 1070176665 + .long 2580363594 + .long 1070176665 + .long 2580363594 + .long 1070176665 + .long 2580363594 + .long 1070176665 + .long 2580363594 + .long 1070176665 + .long 2580363594 + .long 1070176665 + .long 2580363594 + .long 1070176665 + .long 797185 + .long 3218079744 + .long 797185 + .long 3218079744 + .long 797185 + .long 3218079744 + .long 797185 + .long 3218079744 + .long 797185 + .long 3218079744 + .long 797185 + .long 3218079744 + .long 797185 + .long 3218079744 + .long 797185 + .long 3218079744 + .long 1431655522 + .long 1070945621 + .long 1431655522 + .long 1070945621 + .long 1431655522 + .long 1070945621 + .long 1431655522 + .long 1070945621 + .long 1431655522 + .long 1070945621 + .long 1431655522 + .long 1070945621 + .long 1431655522 + .long 1070945621 + .long 1431655522 + .long 1070945621 + .long 4294967237 + .long 3219128319 + .long 4294967237 + .long 3219128319 + .long 4294967237 + .long 3219128319 + .long 4294967237 + .long 3219128319 + .long 4294967237 + .long 3219128319 + .long 4294967237 + .long 3219128319 + .long 4294967237 + .long 3219128319 + .long 4294967237 + .long 3219128319 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 3164471296 + .long 1031600026 + .long 3164471296 + .long 1031600026 + .long 3164471296 + .long 1031600026 + .long 3164471296 + .long 1031600026 + .long 3164471296 + .long 1031600026 + .long 3164471296 + .long 1031600026 + .long 3164471296 + .long 1031600026 + .long 3164471296 + .long 1031600026 + .type __svml_datanh_data_internal_avx512,@object + .size __svml_datanh_data_internal_avx512,1280 + .align 8 +__datanh_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 2146435072 + .long 0 + .long 4293918720 + .type __datanh_la_CoutTab,@object + .size __datanh_la_CoutTab,32 diff --git a/numpy/core/src/umath/svml/svml_z0_atanh_s_la.s b/numpy/core/src/umath/svml/svml_z0_atanh_s_la.s new file mode 100644 index 000000000000..9177c0d955c4 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_atanh_s_la.s @@ -0,0 +1,558 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * + * * Compute 0.5*[log(1+x)-log(1-x)], using small table + * * lookups that map to AVX3 permute instructions + * * + * + */ + + + .text +.L_2__routine_start___svml_atanhf16_z0_0: + + .align 16,0x90 + .globl __svml_atanhf16 + +__svml_atanhf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 256+__svml_satanh_data_internal_avx512(%rip), %zmm4 + +/* round reciprocals to 1+5b mantissas */ + vmovups 384+__svml_satanh_data_internal_avx512(%rip), %zmm14 + vmovups 448+__svml_satanh_data_internal_avx512(%rip), %zmm1 + vmovaps %zmm0, %zmm11 + vandps 320+__svml_satanh_data_internal_avx512(%rip), %zmm11, %zmm6 + +/* 1+y */ + vaddps {rn-sae}, %zmm4, %zmm6, %zmm9 + +/* 1-y */ + vsubps {rn-sae}, %zmm6, %zmm4, %zmm8 + vxorps %zmm6, %zmm11, %zmm10 + +/* Yp_high */ + vsubps {rn-sae}, %zmm4, %zmm9, %zmm2 + +/* -Ym_high */ + vsubps {rn-sae}, %zmm4, %zmm8, %zmm5 + +/* RcpP ~ 1/Yp */ + vrcp14ps %zmm9, %zmm12 + +/* RcpM ~ 1/Ym */ + vrcp14ps %zmm8, %zmm13 + +/* input outside (-1, 1) ? */ + vcmpps $21, {sae}, %zmm4, %zmm6, %k0 + vpaddd %zmm14, %zmm12, %zmm15 + vpaddd %zmm14, %zmm13, %zmm0 + +/* Yp_low */ + vsubps {rn-sae}, %zmm2, %zmm6, %zmm3 + vandps %zmm1, %zmm15, %zmm7 + vandps %zmm1, %zmm0, %zmm12 + +/* Ym_low */ + vaddps {rn-sae}, %zmm5, %zmm6, %zmm5 + +/* Reduced argument: Rp = (RcpP*Yp - 1)+RcpP*Yp_low */ + vfmsub213ps {rn-sae}, %zmm4, %zmm7, %zmm9 + +/* Reduced argument: Rm = (RcpM*Ym - 1)+RcpM*Ym_low */ + vfmsub231ps {rn-sae}, %zmm12, %zmm8, %zmm4 + vmovups 128+__svml_satanh_data_internal_avx512(%rip), %zmm8 + vmovups 192+__svml_satanh_data_internal_avx512(%rip), %zmm13 + +/* exponents */ + vgetexpps {sae}, %zmm7, %zmm15 + vfmadd231ps {rn-sae}, %zmm7, %zmm3, %zmm9 + +/* Table lookups */ + vmovups __svml_satanh_data_internal_avx512(%rip), %zmm6 + vgetexpps {sae}, %zmm12, %zmm14 + vfnmadd231ps {rn-sae}, %zmm12, %zmm5, %zmm4 + +/* Prepare table index */ + vpsrld $18, %zmm7, %zmm3 + vpsrld $18, %zmm12, %zmm2 + vmovups 64+__svml_satanh_data_internal_avx512(%rip), %zmm7 + vmovups 640+__svml_satanh_data_internal_avx512(%rip), %zmm12 + +/* Km-Kp */ + vsubps {rn-sae}, %zmm15, %zmm14, %zmm1 + kmovw %k0, %edx + vmovaps %zmm3, %zmm0 + vpermi2ps %zmm13, %zmm8, %zmm3 + vpermt2ps %zmm13, %zmm2, %zmm8 + vpermi2ps %zmm7, %zmm6, %zmm0 + vpermt2ps %zmm7, %zmm2, %zmm6 + vsubps {rn-sae}, %zmm3, %zmm8, %zmm5 + +/* K*L2H + Th */ + vmovups 832+__svml_satanh_data_internal_avx512(%rip), %zmm2 + +/* K*L2L + Tl */ + vmovups 896+__svml_satanh_data_internal_avx512(%rip), %zmm3 + +/* polynomials */ + vmovups 512+__svml_satanh_data_internal_avx512(%rip), %zmm7 + vmovups 704+__svml_satanh_data_internal_avx512(%rip), %zmm13 + +/* table values */ + vsubps {rn-sae}, %zmm0, %zmm6, %zmm0 + vfmadd231ps {rn-sae}, %zmm1, %zmm2, %zmm0 + vfmadd213ps {rn-sae}, %zmm5, %zmm3, %zmm1 + vmovups 576+__svml_satanh_data_internal_avx512(%rip), %zmm3 + vmovaps %zmm3, %zmm2 + vfmadd231ps {rn-sae}, %zmm9, %zmm7, %zmm2 + vfmadd231ps {rn-sae}, %zmm4, %zmm7, %zmm3 + vfmadd213ps {rn-sae}, %zmm12, %zmm9, %zmm2 + vfmadd213ps {rn-sae}, %zmm12, %zmm4, %zmm3 + vfmadd213ps {rn-sae}, %zmm13, %zmm9, %zmm2 + vfmadd213ps {rn-sae}, %zmm13, %zmm4, %zmm3 + +/* (K*L2L + Tl) + Rp*PolyP */ + vfmadd213ps {rn-sae}, %zmm1, %zmm9, %zmm2 + vorps 768+__svml_satanh_data_internal_avx512(%rip), %zmm10, %zmm9 + +/* (K*L2L + Tl) + Rp*PolyP -Rm*PolyM */ + vfnmadd213ps {rn-sae}, %zmm2, %zmm4, %zmm3 + vaddps {rn-sae}, %zmm3, %zmm0, %zmm4 + vmulps {rn-sae}, %zmm9, %zmm4, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm11, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_satanh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_atanhf16,@function + .size __svml_atanhf16,.-__svml_atanhf16 +..LN__svml_atanhf16.0: + +.L_2__routine_start___svml_satanh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_satanh_cout_rare_internal: + + + .cfi_startproc +..L53: + + movzwl 2(%rdi), %edx + movss (%rdi), %xmm1 + andl $32640, %edx + movb 3(%rdi), %al + andb $127, %al + movss %xmm1, -8(%rsp) + movb %al, -5(%rsp) + cmpl $32640, %edx + je .LBL_2_6 + + + cmpl $1065353216, -8(%rsp) + jne .LBL_2_4 + + + divss 4+__satanh_la__imlsAtanhTab(%rip), %xmm1 + movss %xmm1, (%rsi) + movl $2, %eax + ret + +.LBL_2_4: + + movss 8+__satanh_la__imlsAtanhTab(%rip), %xmm0 + movl $1, %eax + mulss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0 + movss %xmm0, (%rsi) + + + ret + +.LBL_2_6: + + cmpl $2139095040, -8(%rsp) + jne .LBL_2_8 + + + movss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0 + movl $1, %eax + mulss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_8: + + mulss (%rdi), %xmm1 + xorl %eax, %eax + movss %xmm1, (%rsi) + + + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_satanh_cout_rare_internal,@function + .size __svml_satanh_cout_rare_internal,.-__svml_satanh_cout_rare_internal +..LN__svml_satanh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_satanh_data_internal_avx512: + .long 0 + .long 1023148032 + .long 1031274496 + .long 1035436032 + .long 1039204352 + .long 1041547264 + .long 1043333120 + .long 1045069824 + .long 1046773760 + .long 1048428544 + .long 1049313280 + .long 1050099712 + .long 1050869760 + .long 1051623424 + .long 1052360704 + .long 1053089792 + .long 1053794304 + .long 1054482432 + .long 1055162368 + .long 1055825920 + .long 1056481280 + .long 1057042432 + .long 1057353728 + .long 1057660928 + .long 1057964032 + .long 1058263040 + .long 1058553856 + .long 1058840576 + .long 1059123200 + .long 1059397632 + .long 1059672064 + .long 1059942400 + .long 0 + .long 925287326 + .long 950209537 + .long 928156389 + .long 954265029 + .long 3098231288 + .long 3083833176 + .long 949397309 + .long 3045295702 + .long 940324527 + .long 3089323092 + .long 945994465 + .long 952492302 + .long 954130348 + .long 954989406 + .long 3102096543 + .long 3093041984 + .long 947354573 + .long 3053684310 + .long 936642948 + .long 3099086888 + .long 3098368602 + .long 946194506 + .long 952357621 + .long 943635681 + .long 3097619830 + .long 3080925892 + .long 3078186319 + .long 3093311347 + .long 955801008 + .long 934582639 + .long 3099571146 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 131072 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 4294705152 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 3196061712 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 1051373854 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .type __svml_satanh_data_internal_avx512,@object + .size __svml_satanh_data_internal_avx512,960 + .align 4 +__satanh_la__imlsAtanhTab: + .long 1065353216 + .long 0 + .long 2139095040 + .type __satanh_la__imlsAtanhTab,@object + .size __satanh_la__imlsAtanhTab,12 diff --git a/numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s b/numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s new file mode 100644 index 000000000000..e9aa25590ed0 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s @@ -0,0 +1,911 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * x=2^{3*k+j} * 1.b1 b2 ... b5 b6 ... b52 + * Let r=(x*2^{-3k-j} - 1.b1 b2 ... b5 1)* rcp[b1 b2 ..b5], + * where rcp[b1 b2 .. b5]=1/(1.b1 b2 b3 b4 b5 1) in double precision + * cbrt(2^j * 1. b1 b2 .. b5 1) is approximated as T[j][b1..b5]+D[j][b1..b5] + * (T stores the high 53 bits, D stores the low order bits) + * Result=2^k*T+(2^k*T*r)*P+2^k*D + * where P=p1+p2*r+..+p8*r^7 + * + */ + + + .text +.L_2__routine_start___svml_cbrt8_z0_0: + + .align 16,0x90 + .globl __svml_cbrt8 + +__svml_cbrt8: + + + .cfi_startproc +..L2: + + vgetmantpd $0, {sae}, %zmm0, %zmm14 + +/* GetExp(x) */ + vgetexppd {sae}, %zmm0, %zmm7 + vmovups 384+__svml_dcbrt_data_internal_avx512(%rip), %zmm8 + +/* exponent/3 */ + vmovups 512+__svml_dcbrt_data_internal_avx512(%rip), %zmm9 + vmovups 576+__svml_dcbrt_data_internal_avx512(%rip), %zmm10 + +/* Reduced argument: R = DblRcp*Mantissa - 1 */ + vmovups 704+__svml_dcbrt_data_internal_avx512(%rip), %zmm2 + +/* exponent%3 (to be used as index) */ + vmovups 640+__svml_dcbrt_data_internal_avx512(%rip), %zmm11 + +/* DblRcp ~ 1/Mantissa */ + vrcp14pd %zmm14, %zmm13 + vaddpd {rn-sae}, %zmm8, %zmm7, %zmm12 + vandpd 448+__svml_dcbrt_data_internal_avx512(%rip), %zmm0, %zmm6 + +/* round DblRcp to 3 fractional bits (RN mode, no Precision exception) */ + vrndscalepd $72, {sae}, %zmm13, %zmm15 + vfmsub231pd {rn-sae}, %zmm12, %zmm9, %zmm10 + +/* polynomial */ + vmovups 768+__svml_dcbrt_data_internal_avx512(%rip), %zmm0 + vmovups 896+__svml_dcbrt_data_internal_avx512(%rip), %zmm7 + vmovups 960+__svml_dcbrt_data_internal_avx512(%rip), %zmm9 + vfmsub231pd {rn-sae}, %zmm15, %zmm14, %zmm2 + vrndscalepd $9, {sae}, %zmm10, %zmm5 + +/* Table lookup */ + vmovups 128+__svml_dcbrt_data_internal_avx512(%rip), %zmm10 + vmovups 1024+__svml_dcbrt_data_internal_avx512(%rip), %zmm8 + vmovups 1216+__svml_dcbrt_data_internal_avx512(%rip), %zmm13 + vfmadd231pd {rn-sae}, %zmm2, %zmm7, %zmm9 + vfnmadd231pd {rn-sae}, %zmm5, %zmm11, %zmm12 + vmovups 1088+__svml_dcbrt_data_internal_avx512(%rip), %zmm11 + vmovups 1344+__svml_dcbrt_data_internal_avx512(%rip), %zmm14 + +/* Prepare table index */ + vpsrlq $49, %zmm15, %zmm1 + +/* Table lookup: 2^(exponent%3) */ + vpermpd __svml_dcbrt_data_internal_avx512(%rip), %zmm12, %zmm4 + vpermpd 64+__svml_dcbrt_data_internal_avx512(%rip), %zmm12, %zmm3 + vpermt2pd 192+__svml_dcbrt_data_internal_avx512(%rip), %zmm1, %zmm10 + vmovups 832+__svml_dcbrt_data_internal_avx512(%rip), %zmm1 + vfmadd231pd {rn-sae}, %zmm2, %zmm8, %zmm11 + vmovups 1280+__svml_dcbrt_data_internal_avx512(%rip), %zmm12 + vscalefpd {rn-sae}, %zmm5, %zmm10, %zmm15 + vfmadd231pd {rn-sae}, %zmm2, %zmm0, %zmm1 + vmovups 1152+__svml_dcbrt_data_internal_avx512(%rip), %zmm5 + vfmadd231pd {rn-sae}, %zmm2, %zmm12, %zmm14 + vmulpd {rn-sae}, %zmm2, %zmm2, %zmm0 + vfmadd231pd {rn-sae}, %zmm2, %zmm5, %zmm13 + +/* Sh*R */ + vmulpd {rn-sae}, %zmm2, %zmm4, %zmm2 + vfmadd213pd {rn-sae}, %zmm9, %zmm0, %zmm1 + vfmadd213pd {rn-sae}, %zmm11, %zmm0, %zmm1 + vfmadd213pd {rn-sae}, %zmm13, %zmm0, %zmm1 + vfmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm1 + +/* Sl + (Sh*R)*Poly */ + vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm2 + +/* + * branch-free + * scaled_Th*(Sh+Sl+Sh*R*Poly) + */ + vaddpd {rn-sae}, %zmm4, %zmm2, %zmm3 + vmulpd {rn-sae}, %zmm15, %zmm3, %zmm4 + vorpd %zmm6, %zmm4, %zmm0 + +/* no invcbrt in libm, so taking it out here */ + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_cbrt8,@function + .size __svml_cbrt8,.-__svml_cbrt8 +..LN__svml_cbrt8.0: + +.L_2__routine_start___svml_dcbrt_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dcbrt_cout_rare_internal: + + + .cfi_startproc +..L5: + + movq %rsi, %r8 + movzwl 6(%rdi), %r9d + andl $32752, %r9d + shrl $4, %r9d + movb 7(%rdi), %sil + movsd (%rdi), %xmm1 + cmpl $2047, %r9d + je .LBL_2_9 + + + ucomisd 432+__dcbrt_la__vmldCbrtTab(%rip), %xmm1 + jp .LBL_2_3 + je .LBL_2_8 + +.LBL_2_3: + + movb %sil, %al + lea 440+__dcbrt_la__vmldCbrtTab(%rip), %rdx + andb $-128, %al + andb $127, %sil + shrb $7, %al + xorl %edi, %edi + movsd %xmm1, -56(%rsp) + movzbl %al, %ecx + movb %sil, -49(%rsp) + movsd (%rdx,%rcx,8), %xmm5 + testl %r9d, %r9d + jne .LBL_2_5 + + + movsd -56(%rsp), %xmm0 + movl $100, %edi + mulsd 360+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + movsd %xmm0, -56(%rsp) + jmp .LBL_2_6 + +.LBL_2_5: + + movsd -56(%rsp), %xmm0 + +.LBL_2_6: + + movzwl -50(%rsp), %esi + movl $1431655766, %eax + andl $32752, %esi + lea __dcbrt_la__vmldCbrtTab(%rip), %r11 + shrl $4, %esi + movsd %xmm0, -40(%rsp) + movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm14 + imull %esi + movl $1431655766, %eax + lea (%rdx,%rdx,2), %ecx + negl %ecx + addl %esi, %ecx + subl %ecx, %esi + addl %ecx, %ecx + addl $-1023, %esi + imull %esi + sarl $31, %esi + subl %esi, %edx + addl $1023, %edx + subl %edi, %edx + movzwl -34(%rsp), %edi + andl $2047, %edx + andl $-32753, %edi + addl $16368, %edi + movw %di, -34(%rsp) + movsd -40(%rsp), %xmm11 + movaps %xmm11, %xmm6 + mulsd 376+__dcbrt_la__vmldCbrtTab(%rip), %xmm6 + movsd %xmm6, -32(%rsp) + movsd -32(%rsp), %xmm7 + movl -36(%rsp), %r10d + andl $1048575, %r10d + subsd -40(%rsp), %xmm7 + movsd %xmm7, -24(%rsp) + movsd -32(%rsp), %xmm9 + movsd -24(%rsp), %xmm8 + shrl $15, %r10d + subsd %xmm8, %xmm9 + movsd %xmm9, -32(%rsp) + movsd -32(%rsp), %xmm10 + movsd (%r11,%r10,8), %xmm4 + subsd %xmm10, %xmm11 + movaps %xmm4, %xmm12 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm12 + movsd %xmm11, -24(%rsp) + movsd -32(%rsp), %xmm2 + mulsd %xmm12, %xmm2 + mulsd %xmm2, %xmm13 + movsd 440+__dcbrt_la__vmldCbrtTab(%rip), %xmm6 + movsd -24(%rsp), %xmm3 + subsd %xmm13, %xmm6 + mulsd %xmm12, %xmm3 + mulsd %xmm6, %xmm14 + mulsd %xmm3, %xmm4 + movsd %xmm14, -32(%rsp) + movsd -32(%rsp), %xmm15 + xorps .L_2il0floatpacket.81(%rip), %xmm4 + subsd %xmm6, %xmm15 + movsd %xmm15, -24(%rsp) + movsd -32(%rsp), %xmm1 + movsd -24(%rsp), %xmm0 + movsd 256+__dcbrt_la__vmldCbrtTab(%rip), %xmm9 + subsd %xmm0, %xmm1 + movsd %xmm1, -32(%rsp) + movsd -32(%rsp), %xmm13 + movsd 352+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + subsd %xmm13, %xmm6 + movsd %xmm6, -24(%rsp) + movsd -32(%rsp), %xmm1 + movsd -24(%rsp), %xmm7 + movaps %xmm1, %xmm8 + movsd 256+__dcbrt_la__vmldCbrtTab(%rip), %xmm11 + addsd %xmm7, %xmm4 + movsd 256+__dcbrt_la__vmldCbrtTab(%rip), %xmm7 + addsd %xmm4, %xmm8 + mulsd %xmm8, %xmm0 + movslq %ecx, %rcx + addsd 344+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + movq 440+__dcbrt_la__vmldCbrtTab(%rip), %r9 + movq %r9, -48(%rsp) + shrq $48, %r9 + addsd 336+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + andl $-32753, %r9d + shll $4, %edx + addsd 328+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + orl %edx, %r9d + movw %r9w, -42(%rsp) + addsd 320+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + addsd 312+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + addsd 304+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + addsd 296+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + addsd 288+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + addsd 280+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + addsd 272+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm8, %xmm0 + addsd %xmm0, %xmm9 + movsd %xmm9, -32(%rsp) + movsd -32(%rsp), %xmm10 + movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm9 + subsd %xmm10, %xmm11 + movsd %xmm11, -24(%rsp) + movsd -32(%rsp), %xmm14 + movsd -24(%rsp), %xmm12 + addsd %xmm12, %xmm14 + movsd %xmm14, -16(%rsp) + movaps %xmm2, %xmm14 + movsd -24(%rsp), %xmm6 + addsd %xmm0, %xmm6 + movsd %xmm6, -24(%rsp) + movsd -16(%rsp), %xmm15 + subsd %xmm15, %xmm7 + movsd %xmm7, -16(%rsp) + movsd -24(%rsp), %xmm8 + movsd -16(%rsp), %xmm0 + addsd %xmm0, %xmm8 + movsd %xmm8, -16(%rsp) + movaps %xmm1, %xmm8 + movsd -32(%rsp), %xmm13 + mulsd %xmm13, %xmm9 + movsd -16(%rsp), %xmm0 + movsd %xmm9, -32(%rsp) + movsd -32(%rsp), %xmm10 + subsd %xmm13, %xmm10 + addsd 264+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + movsd %xmm10, -24(%rsp) + movsd -32(%rsp), %xmm11 + movsd -24(%rsp), %xmm6 + subsd %xmm6, %xmm11 + movsd %xmm11, -32(%rsp) + movsd -32(%rsp), %xmm12 + subsd %xmm12, %xmm13 + movsd %xmm13, -24(%rsp) + movsd -32(%rsp), %xmm7 + movsd -24(%rsp), %xmm6 + mulsd %xmm7, %xmm8 + addsd %xmm0, %xmm6 + mulsd %xmm4, %xmm7 + mulsd %xmm6, %xmm4 + mulsd %xmm6, %xmm1 + addsd %xmm4, %xmm7 + movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm4 + addsd %xmm1, %xmm7 + mulsd %xmm8, %xmm4 + movsd %xmm7, -32(%rsp) + movsd -32(%rsp), %xmm10 + movsd %xmm4, -32(%rsp) + movsd -32(%rsp), %xmm0 + subsd %xmm8, %xmm0 + movsd %xmm0, -24(%rsp) + movsd -32(%rsp), %xmm1 + movsd -24(%rsp), %xmm4 + subsd %xmm4, %xmm1 + movsd %xmm1, -32(%rsp) + movsd -32(%rsp), %xmm6 + subsd %xmm6, %xmm8 + movsd %xmm8, -24(%rsp) + movsd -32(%rsp), %xmm9 + movsd -24(%rsp), %xmm7 + movaps %xmm9, %xmm1 + mulsd %xmm3, %xmm9 + addsd %xmm7, %xmm10 + mulsd %xmm2, %xmm1 + movaps %xmm10, %xmm11 + movaps %xmm1, %xmm12 + mulsd %xmm3, %xmm10 + addsd %xmm2, %xmm12 + mulsd %xmm2, %xmm11 + addsd %xmm9, %xmm10 + addsd %xmm10, %xmm11 + movsd %xmm11, -32(%rsp) + movsd -32(%rsp), %xmm0 + movsd %xmm12, -32(%rsp) + movsd -32(%rsp), %xmm13 + subsd %xmm13, %xmm14 + movsd %xmm14, -24(%rsp) + movsd -32(%rsp), %xmm9 + movsd -24(%rsp), %xmm15 + addsd %xmm15, %xmm9 + movsd %xmm9, -16(%rsp) + movsd -24(%rsp), %xmm10 + addsd %xmm10, %xmm1 + movsd %xmm1, -24(%rsp) + movsd -16(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm4 + movsd %xmm2, -16(%rsp) + movsd -24(%rsp), %xmm1 + movsd -16(%rsp), %xmm2 + addsd %xmm2, %xmm1 + movsd %xmm1, -16(%rsp) + movsd -32(%rsp), %xmm9 + mulsd %xmm9, %xmm4 + movsd -16(%rsp), %xmm11 + movsd %xmm4, -32(%rsp) + movsd -32(%rsp), %xmm6 + subsd %xmm9, %xmm6 + movsd %xmm6, -24(%rsp) + movsd -32(%rsp), %xmm7 + movsd -24(%rsp), %xmm2 + subsd %xmm2, %xmm7 + movsd %xmm7, -32(%rsp) + movsd -32(%rsp), %xmm8 + subsd %xmm8, %xmm9 + movsd %xmm9, -24(%rsp) + movsd -32(%rsp), %xmm12 + movsd -24(%rsp), %xmm10 + addsd %xmm0, %xmm10 + addsd %xmm3, %xmm10 + movsd 392(%r11,%rcx,8), %xmm3 + movaps %xmm3, %xmm0 + addsd %xmm10, %xmm11 + mulsd %xmm12, %xmm3 + mulsd %xmm11, %xmm0 + movsd 384(%r11,%rcx,8), %xmm10 + addsd %xmm3, %xmm0 + mulsd %xmm10, %xmm11 + mulsd %xmm10, %xmm12 + addsd %xmm11, %xmm0 + movsd %xmm0, -32(%rsp) + movsd -32(%rsp), %xmm3 + addsd %xmm3, %xmm12 + mulsd -48(%rsp), %xmm12 + mulsd %xmm12, %xmm5 + movsd %xmm5, (%r8) + +.LBL_2_7: + + xorl %eax, %eax + ret + +.LBL_2_8: + + movsd 440+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 + mulsd %xmm0, %xmm1 + movsd %xmm1, (%r8) + jmp .LBL_2_7 + +.LBL_2_9: + + addsd %xmm1, %xmm1 + movsd %xmm1, (%r8) + jmp .LBL_2_7 + .align 16,0x90 + + .cfi_endproc + + .type __svml_dcbrt_cout_rare_internal,@function + .size __svml_dcbrt_cout_rare_internal,.-__svml_dcbrt_cout_rare_internal +..LN__svml_dcbrt_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dcbrt_data_internal_avx512: + .long 0 + .long 1072693248 + .long 4186796683 + .long 1072965794 + .long 2772266557 + .long 1073309182 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 4186796683 + .long 3220449442 + .long 2772266557 + .long 3220792830 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1418634270 + .long 3162364962 + .long 2576690953 + .long 3164558313 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1418634270 + .long 1014881314 + .long 2576690953 + .long 1017074665 + .long 0 + .long 0 + .long 4186796683 + .long 1072965794 + .long 1554061055 + .long 1072914931 + .long 3992368458 + .long 1072871093 + .long 3714535808 + .long 1072832742 + .long 954824104 + .long 1072798779 + .long 3256858690 + .long 1072768393 + .long 3858344660 + .long 1072740974 + .long 1027250248 + .long 1072716050 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1418634270 + .long 3162364962 + .long 629721892 + .long 1016287007 + .long 1776620500 + .long 3163956186 + .long 648592220 + .long 1016269578 + .long 1295766103 + .long 3161896715 + .long 1348094586 + .long 3164476360 + .long 2407028709 + .long 1015925873 + .long 497428409 + .long 1014435402 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 1431655766 + .long 1070945621 + .long 1431655766 + .long 1070945621 + .long 1431655766 + .long 1070945621 + .long 1431655766 + .long 1070945621 + .long 1431655766 + .long 1070945621 + .long 1431655766 + .long 1070945621 + .long 1431655766 + .long 1070945621 + .long 1431655766 + .long 1070945621 + .long 0 + .long 1126170624 + .long 0 + .long 1126170624 + .long 0 + .long 1126170624 + .long 0 + .long 1126170624 + .long 0 + .long 1126170624 + .long 0 + .long 1126170624 + .long 0 + .long 1126170624 + .long 0 + .long 1126170624 + .long 0 + .long 1074266112 + .long 0 + .long 1074266112 + .long 0 + .long 1074266112 + .long 0 + .long 1074266112 + .long 0 + .long 1074266112 + .long 0 + .long 1074266112 + .long 0 + .long 1074266112 + .long 0 + .long 1074266112 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 1792985698 + .long 3213372987 + .long 1792985698 + .long 3213372987 + .long 1792985698 + .long 3213372987 + .long 1792985698 + .long 3213372987 + .long 1792985698 + .long 3213372987 + .long 1792985698 + .long 3213372987 + .long 1792985698 + .long 3213372987 + .long 1792985698 + .long 3213372987 + .long 3135539317 + .long 1066129956 + .long 3135539317 + .long 1066129956 + .long 3135539317 + .long 1066129956 + .long 3135539317 + .long 1066129956 + .long 3135539317 + .long 1066129956 + .long 3135539317 + .long 1066129956 + .long 3135539317 + .long 1066129956 + .long 3135539317 + .long 1066129956 + .long 2087834975 + .long 3213899448 + .long 2087834975 + .long 3213899448 + .long 2087834975 + .long 3213899448 + .long 2087834975 + .long 3213899448 + .long 2087834975 + .long 3213899448 + .long 2087834975 + .long 3213899448 + .long 2087834975 + .long 3213899448 + .long 2087834975 + .long 3213899448 + .long 2476259604 + .long 1066628333 + .long 2476259604 + .long 1066628333 + .long 2476259604 + .long 1066628333 + .long 2476259604 + .long 1066628333 + .long 2476259604 + .long 1066628333 + .long 2476259604 + .long 1066628333 + .long 2476259604 + .long 1066628333 + .long 2476259604 + .long 1066628333 + .long 2012366478 + .long 3214412045 + .long 2012366478 + .long 3214412045 + .long 2012366478 + .long 3214412045 + .long 2012366478 + .long 3214412045 + .long 2012366478 + .long 3214412045 + .long 2012366478 + .long 3214412045 + .long 2012366478 + .long 3214412045 + .long 2012366478 + .long 3214412045 + .long 1104999785 + .long 1067378449 + .long 1104999785 + .long 1067378449 + .long 1104999785 + .long 1067378449 + .long 1104999785 + .long 1067378449 + .long 1104999785 + .long 1067378449 + .long 1104999785 + .long 1067378449 + .long 1104999785 + .long 1067378449 + .long 1104999785 + .long 1067378449 + .long 3534763582 + .long 3215266280 + .long 3534763582 + .long 3215266280 + .long 3534763582 + .long 3215266280 + .long 3534763582 + .long 3215266280 + .long 3534763582 + .long 3215266280 + .long 3534763582 + .long 3215266280 + .long 3534763582 + .long 3215266280 + .long 3534763582 + .long 3215266280 + .long 1007386161 + .long 1068473053 + .long 1007386161 + .long 1068473053 + .long 1007386161 + .long 1068473053 + .long 1007386161 + .long 1068473053 + .long 1007386161 + .long 1068473053 + .long 1007386161 + .long 1068473053 + .long 1007386161 + .long 1068473053 + .long 1007386161 + .long 1068473053 + .long 477218625 + .long 3216798151 + .long 477218625 + .long 3216798151 + .long 477218625 + .long 3216798151 + .long 477218625 + .long 3216798151 + .long 477218625 + .long 3216798151 + .long 477218625 + .long 3216798151 + .long 477218625 + .long 3216798151 + .long 477218625 + .long 3216798151 + .long 1431655767 + .long 1070945621 + .long 1431655767 + .long 1070945621 + .long 1431655767 + .long 1070945621 + .long 1431655767 + .long 1070945621 + .long 1431655767 + .long 1070945621 + .long 1431655767 + .long 1070945621 + .long 1431655767 + .long 1070945621 + .long 1431655767 + .long 1070945621 + .type __svml_dcbrt_data_internal_avx512,@object + .size __svml_dcbrt_data_internal_avx512,1408 + .align 32 +__dcbrt_la__vmldCbrtTab: + .long 0 + .long 1072693248 + .long 0 + .long 1072668672 + .long 0 + .long 1072644096 + .long 0 + .long 1072627712 + .long 0 + .long 1072611328 + .long 0 + .long 1072586752 + .long 0 + .long 1072570368 + .long 0 + .long 1072553984 + .long 0 + .long 1072537600 + .long 0 + .long 1072521216 + .long 0 + .long 1072504832 + .long 0 + .long 1072488448 + .long 0 + .long 1072480256 + .long 0 + .long 1072463872 + .long 0 + .long 1072447488 + .long 0 + .long 1072439296 + .long 0 + .long 1072422912 + .long 0 + .long 1072414720 + .long 0 + .long 1072398336 + .long 0 + .long 1072390144 + .long 0 + .long 1072373760 + .long 0 + .long 1072365568 + .long 0 + .long 1072357376 + .long 0 + .long 1072340992 + .long 0 + .long 1072332800 + .long 0 + .long 1072324608 + .long 0 + .long 1072308224 + .long 0 + .long 1072300032 + .long 0 + .long 1072291840 + .long 0 + .long 1072283648 + .long 0 + .long 1072275456 + .long 0 + .long 1072267264 + .long 1431655765 + .long 1071994197 + .long 1431655765 + .long 1015371093 + .long 1908874354 + .long 1071761180 + .long 1007461464 + .long 1071618781 + .long 565592401 + .long 1071446176 + .long 241555088 + .long 1071319599 + .long 943963244 + .long 1071221150 + .long 2330668378 + .long 1071141453 + .long 2770428108 + .long 1071075039 + .long 3622256836 + .long 1071018464 + .long 1497196870 + .long 1070969433 + .long 280472551 + .long 1070926345 + .long 1585032765 + .long 1070888044 + .long 0 + .long 1387266048 + .long 33554432 + .long 1101004800 + .long 512 + .long 1117782016 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 4160749568 + .long 1072965794 + .long 2921479643 + .long 1043912488 + .long 2684354560 + .long 1073309182 + .long 4060791142 + .long 1045755320 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .type __dcbrt_la__vmldCbrtTab,@object + .size __dcbrt_la__vmldCbrtTab,456 + .space 8, 0x00 + .align 16 +.L_2il0floatpacket.81: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.81,@object + .size .L_2il0floatpacket.81,16 diff --git a/numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s b/numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s new file mode 100644 index 000000000000..b257437ef346 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s @@ -0,0 +1,1012 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * x=2^{3*k+j} * 1.b1 b2 ... b5 b6 ... b52 + * Let r=(x*2^{-3k-j} - 1.b1 b2 ... b5 1)* rcp[b1 b2 ..b5], + * where rcp[b1 b2 .. b5]=1/(1.b1 b2 b3 b4 b5 1) in single precision + * cbrtf(2^j * 1. b1 b2 .. b5 1) is approximated as T[j][b1..b5]+D[j][b1..b5] + * (T stores the high 24 bits, D stores the low order bits) + * Result=2^k*T+(2^k*T*r)*P+2^k*D + * where P=p1+p2*r+.. + * + */ + + + .text +.L_2__routine_start___svml_cbrtf16_z0_0: + + .align 16,0x90 + .globl __svml_cbrtf16 + +__svml_cbrtf16: + + + .cfi_startproc +..L2: + + vgetmantps $0, {sae}, %zmm0, %zmm8 + +/* GetExp(x) */ + vgetexpps {sae}, %zmm0, %zmm1 + vmovups 384+__svml_scbrt_data_internal_avx512(%rip), %zmm2 + +/* exponent/3 */ + vmovups 512+__svml_scbrt_data_internal_avx512(%rip), %zmm3 + vmovups 576+__svml_scbrt_data_internal_avx512(%rip), %zmm4 + vmovups 704+__svml_scbrt_data_internal_avx512(%rip), %zmm15 + +/* exponent%3 (to be used as index) */ + vmovups 640+__svml_scbrt_data_internal_avx512(%rip), %zmm5 + +/* polynomial */ + vmovups 768+__svml_scbrt_data_internal_avx512(%rip), %zmm11 + vmovups 896+__svml_scbrt_data_internal_avx512(%rip), %zmm14 + +/* Table lookup */ + vmovups 128+__svml_scbrt_data_internal_avx512(%rip), %zmm12 + +/* DblRcp ~ 1/Mantissa */ + vrcp14ps %zmm8, %zmm7 + vaddps {rn-sae}, %zmm2, %zmm1, %zmm6 + vandps 448+__svml_scbrt_data_internal_avx512(%rip), %zmm0, %zmm0 + +/* round DblRcp to 3 fractional bits (RN mode, no Precision exception) */ + vrndscaleps $88, {sae}, %zmm7, %zmm9 + vfmsub231ps {rn-sae}, %zmm6, %zmm3, %zmm4 + vmovups 832+__svml_scbrt_data_internal_avx512(%rip), %zmm7 + +/* Reduced argument: R = DblRcp*Mantissa - 1 */ + vfmsub231ps {rn-sae}, %zmm9, %zmm8, %zmm15 + vrndscaleps $9, {sae}, %zmm4, %zmm13 + +/* Prepare table index */ + vpsrld $19, %zmm9, %zmm10 + vfmadd231ps {rn-sae}, %zmm15, %zmm11, %zmm7 + vfnmadd231ps {rn-sae}, %zmm13, %zmm5, %zmm6 + vpermt2ps 192+__svml_scbrt_data_internal_avx512(%rip), %zmm10, %zmm12 + vfmadd213ps {rn-sae}, %zmm14, %zmm15, %zmm7 + vscalefps {rn-sae}, %zmm13, %zmm12, %zmm2 + +/* Table lookup: 2^(exponent%3) */ + vpermps __svml_scbrt_data_internal_avx512(%rip), %zmm6, %zmm1 + vpermps 64+__svml_scbrt_data_internal_avx512(%rip), %zmm6, %zmm6 + +/* Sh*R */ + vmulps {rn-sae}, %zmm15, %zmm1, %zmm14 + +/* Sl + (Sh*R)*Poly */ + vfmadd213ps {rn-sae}, %zmm6, %zmm7, %zmm14 + +/* + * branch-free + * scaled_Th*(Sh+Sl+Sh*R*Poly) + */ + vaddps {rn-sae}, %zmm1, %zmm14, %zmm15 + vmulps {rn-sae}, %zmm2, %zmm15, %zmm3 + vorps %zmm0, %zmm3, %zmm0 + +/* no invcbrt in libm, so taking it out here */ + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_cbrtf16,@function + .size __svml_cbrtf16,.-__svml_cbrtf16 +..LN__svml_cbrtf16.0: + +.L_2__routine_start___svml_scbrt_cout_rare_internal_1: + + .align 16,0x90 + +__svml_scbrt_cout_rare_internal: + + + .cfi_startproc +..L5: + + movq %rsi, %r9 + movl $1065353216, -24(%rsp) + movss (%rdi), %xmm0 + movss -24(%rsp), %xmm1 + mulss %xmm0, %xmm1 + movss %xmm1, -4(%rsp) + movzwl -2(%rsp), %eax + andl $32640, %eax + shrl $7, %eax + cmpl $255, %eax + je .LBL_2_9 + + + pxor %xmm0, %xmm0 + ucomiss %xmm0, %xmm1 + jp .LBL_2_3 + je .LBL_2_8 + +.LBL_2_3: + + testl %eax, %eax + jne .LBL_2_5 + + + movl $2122317824, -24(%rsp) + movl $713031680, -20(%rsp) + jmp .LBL_2_6 + +.LBL_2_5: + + movl $1065353216, %eax + movl %eax, -24(%rsp) + movl %eax, -20(%rsp) + +.LBL_2_6: + + movss -24(%rsp), %xmm0 + lea __scbrt_la_vscbrt_ha_cout_data(%rip), %rsi + mulss %xmm0, %xmm1 + movd %xmm1, %ecx + movss %xmm1, -4(%rsp) + movl %ecx, %r10d + movl %ecx, %edi + andl $8388607, %r10d + movl %ecx, %r11d + shrl $23, %edi + andl $8257536, %r11d + orl $-1082130432, %r10d + orl $-1081999360, %r11d + movl %r10d, -16(%rsp) + movl %ecx, %edx + movzbl %dil, %r8d + andl $2147483647, %ecx + movl %r11d, -12(%rsp) + andl $-256, %edi + movss -16(%rsp), %xmm1 + addl $2139095040, %ecx + shrl $16, %edx + subss -12(%rsp), %xmm1 + andl $124, %edx + lea (%r8,%r8,4), %r10d + mulss (%rsi,%rdx), %xmm1 + lea (%r10,%r10), %r11d + movss .L_2il0floatpacket.35(%rip), %xmm4 + lea (%r11,%r11), %eax + addl %eax, %eax + lea (%r10,%r11,8), %r10d + addl %eax, %eax + decl %r8d + mulss %xmm1, %xmm4 + shll $7, %r8d + lea (%r10,%rax,8), %r11d + lea (%r11,%rax,8), %r10d + shrl $12, %r10d + addss .L_2il0floatpacket.34(%rip), %xmm4 + mulss %xmm1, %xmm4 + lea 85(%r10), %eax + orl %edi, %eax + xorl %edi, %edi + cmpl $-16777217, %ecx + addss .L_2il0floatpacket.33(%rip), %xmm4 + setg %dil + shll $7, %r10d + negl %edi + subl %r10d, %r8d + addl %r10d, %r10d + subl %r10d, %r8d + notl %edi + addl %r8d, %edx + andl %edx, %edi + shll $23, %eax + addl %edi, %edi + movl %eax, -8(%rsp) + movss 128(%rdi,%rsi), %xmm5 + movss -8(%rsp), %xmm2 + mulss %xmm1, %xmm4 + mulss %xmm2, %xmm5 + addss .L_2il0floatpacket.32(%rip), %xmm4 + mulss %xmm5, %xmm1 + movss 132(%rsi,%rdi), %xmm3 + mulss %xmm1, %xmm4 + mulss %xmm2, %xmm3 + addss %xmm3, %xmm4 + addss %xmm4, %xmm5 + mulss -20(%rsp), %xmm5 + movss %xmm5, (%r9) + +.LBL_2_7: + + xorl %eax, %eax + ret + +.LBL_2_8: + + movss %xmm1, (%r9) + jmp .LBL_2_7 + +.LBL_2_9: + + addss %xmm0, %xmm0 + movss %xmm0, (%r9) + jmp .LBL_2_7 + .align 16,0x90 + + .cfi_endproc + + .type __svml_scbrt_cout_rare_internal,@function + .size __svml_scbrt_cout_rare_internal,.-__svml_scbrt_cout_rare_internal +..LN__svml_scbrt_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_scbrt_data_internal_avx512: + .long 1065353216 + .long 1067533592 + .long 1070280693 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2999865775 + .long 849849800 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1067533592 + .long 1067322155 + .long 1067126683 + .long 1066945178 + .long 1066775983 + .long 1066617708 + .long 1066469175 + .long 1066329382 + .long 1066197466 + .long 1066072682 + .long 1065954382 + .long 1065841998 + .long 1065735031 + .long 1065633040 + .long 1065535634 + .long 1065442463 + .long 1065353216 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2999865775 + .long 849353281 + .long 2992093760 + .long 858369405 + .long 861891413 + .long 3001900484 + .long 2988845984 + .long 3009185201 + .long 3001209163 + .long 847824101 + .long 839380496 + .long 845124191 + .long 851391835 + .long 856440803 + .long 2989578734 + .long 852890174 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1249902592 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1077936128 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 1031603580 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 3185812323 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .long 1051372202 + .type __svml_scbrt_data_internal_avx512,@object + .size __svml_scbrt_data_internal_avx512,960 + .align 64 +__scbrt_la_vscbrt_ha_cout_data: + .long 3212578753 + .long 3212085645 + .long 3211621124 + .long 3211182772 + .long 3210768440 + .long 3210376206 + .long 3210004347 + .long 3209651317 + .long 3209315720 + .long 3208996296 + .long 3208691905 + .long 3208401508 + .long 3208124163 + .long 3207859009 + .long 3207605259 + .long 3207362194 + .long 3207129151 + .long 3206905525 + .long 3206690755 + .long 3206484326 + .long 3206285761 + .long 3206094618 + .long 3205910490 + .long 3205732998 + .long 3205561788 + .long 3205396533 + .long 3205236929 + .long 3205082689 + .long 3204933547 + .long 3204789256 + .long 3204649583 + .long 3204514308 + .long 1065396681 + .long 839340838 + .long 1065482291 + .long 867750258 + .long 1065566215 + .long 851786446 + .long 1065648532 + .long 853949398 + .long 1065729317 + .long 864938789 + .long 1065808640 + .long 864102364 + .long 1065886565 + .long 864209792 + .long 1065963152 + .long 865422805 + .long 1066038457 + .long 867593594 + .long 1066112533 + .long 854482593 + .long 1066185428 + .long 848298042 + .long 1066257188 + .long 860064854 + .long 1066327857 + .long 844792593 + .long 1066397474 + .long 870701309 + .long 1066466079 + .long 872023170 + .long 1066533708 + .long 860255342 + .long 1066600394 + .long 849966899 + .long 1066666169 + .long 863561479 + .long 1066731064 + .long 869115319 + .long 1066795108 + .long 871961375 + .long 1066858329 + .long 859537336 + .long 1066920751 + .long 871954398 + .long 1066982401 + .long 863817578 + .long 1067043301 + .long 861687921 + .long 1067103474 + .long 849594757 + .long 1067162941 + .long 816486846 + .long 1067221722 + .long 858183533 + .long 1067279837 + .long 864500406 + .long 1067337305 + .long 850523240 + .long 1067394143 + .long 808125243 + .long 1067450368 + .long 0 + .long 1067505996 + .long 861173761 + .long 1067588354 + .long 859000219 + .long 1067696217 + .long 823158129 + .long 1067801953 + .long 871826232 + .long 1067905666 + .long 871183196 + .long 1068007450 + .long 839030530 + .long 1068107390 + .long 867690638 + .long 1068205570 + .long 840440923 + .long 1068302063 + .long 868033274 + .long 1068396942 + .long 855856030 + .long 1068490271 + .long 865094453 + .long 1068582113 + .long 860418487 + .long 1068672525 + .long 866225006 + .long 1068761562 + .long 866458226 + .long 1068849275 + .long 865124659 + .long 1068935712 + .long 864837702 + .long 1069020919 + .long 811742505 + .long 1069104937 + .long 869432099 + .long 1069187809 + .long 864584201 + .long 1069269572 + .long 864183978 + .long 1069350263 + .long 844810573 + .long 1069429915 + .long 869245699 + .long 1069508563 + .long 859556409 + .long 1069586236 + .long 870675446 + .long 1069662966 + .long 814190139 + .long 1069738778 + .long 870686941 + .long 1069813702 + .long 861800510 + .long 1069887762 + .long 855649163 + .long 1069960982 + .long 869347119 + .long 1070033387 + .long 864252033 + .long 1070104998 + .long 867276215 + .long 1070175837 + .long 868189817 + .long 1070245925 + .long 849541095 + .long 1070349689 + .long 866633177 + .long 1070485588 + .long 843967686 + .long 1070618808 + .long 857522493 + .long 1070749478 + .long 862339487 + .long 1070877717 + .long 850054662 + .long 1071003634 + .long 864048556 + .long 1071127332 + .long 868027089 + .long 1071248907 + .long 848093931 + .long 1071368446 + .long 865355299 + .long 1071486034 + .long 848111485 + .long 1071601747 + .long 865557362 + .long 1071715659 + .long 870297525 + .long 1071827839 + .long 863416216 + .long 1071938350 + .long 869675693 + .long 1072047254 + .long 865888071 + .long 1072154608 + .long 825332584 + .long 1072260465 + .long 843309506 + .long 1072364876 + .long 870885636 + .long 1072467891 + .long 869119784 + .long 1072569555 + .long 865466648 + .long 1072669911 + .long 867459244 + .long 1072769001 + .long 861192764 + .long 1072866863 + .long 871247716 + .long 1072963536 + .long 864927982 + .long 1073059054 + .long 869195129 + .long 1073153452 + .long 864849564 + .long 1073246762 + .long 840005936 + .long 1073339014 + .long 852579258 + .long 1073430238 + .long 860852782 + .long 1073520462 + .long 869711141 + .long 1073609714 + .long 862506141 + .long 1073698019 + .long 837959274 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 3173551943 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 1031591658 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 3185806905 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 1051372203 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 8257536 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 3212967936 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 85 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 1 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 2155872256 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .long 4278190079 + .type __scbrt_la_vscbrt_ha_cout_data,@object + .size __scbrt_la_vscbrt_ha_cout_data,1920 + .align 4 +.L_2il0floatpacket.28: + .long 0x007fffff + .type .L_2il0floatpacket.28,@object + .size .L_2il0floatpacket.28,4 + .align 4 +.L_2il0floatpacket.29: + .long 0x007e0000 + .type .L_2il0floatpacket.29,@object + .size .L_2il0floatpacket.29,4 + .align 4 +.L_2il0floatpacket.30: + .long 0xbf800000 + .type .L_2il0floatpacket.30,@object + .size .L_2il0floatpacket.30,4 + .align 4 +.L_2il0floatpacket.31: + .long 0xbf820000 + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,4 + .align 4 +.L_2il0floatpacket.32: + .long 0x3eaaaaab + .type .L_2il0floatpacket.32,@object + .size .L_2il0floatpacket.32,4 + .align 4 +.L_2il0floatpacket.33: + .long 0xbde38e39 + .type .L_2il0floatpacket.33,@object + .size .L_2il0floatpacket.33,4 + .align 4 +.L_2il0floatpacket.34: + .long 0x3d7cd6ea + .type .L_2il0floatpacket.34,@object + .size .L_2il0floatpacket.34,4 + .align 4 +.L_2il0floatpacket.35: + .long 0xbd288f47 + .type .L_2il0floatpacket.35,@object + .size .L_2il0floatpacket.35,4 diff --git a/numpy/core/src/umath/svml/svml_z0_cos_d_la.s b/numpy/core/src/umath/svml/svml_z0_cos_d_la.s new file mode 100644 index 000000000000..51d72fe1d3af --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_cos_d_la.s @@ -0,0 +1,17674 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * ( low accuracy ( < 4ulp ) or enhanced performance ( half of correct mantissa ) implementation ) + * + * Argument representation: + * arg + Pi/2 = (N*Pi + R) + * + * Result calculation: + * cos(arg) = sin(arg+Pi/2) = sin(N*Pi + R) = (-1)^N * sin(R) + * sin(R) is approximated by corresponding polynomial + * + */ + + + .text +.L_2__routine_start___svml_cos8_z0_0: + + .align 16,0x90 + .globl __svml_cos8 + +__svml_cos8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + xorl %edx, %edx + vmovups 1472+__svml_dcos_data_internal(%rip), %zmm2 + vmovups 1536+__svml_dcos_data_internal(%rip), %zmm5 + +/* dN + .5 */ + vmovups 1600+__svml_dcos_data_internal(%rip), %zmm3 + +/* mask will be used to decide whether long arg. reduction is needed */ + vmovups 640+__svml_dcos_data_internal(%rip), %zmm8 + vmovups 704+__svml_dcos_data_internal(%rip), %zmm6 + +/* ............... Polynomial approximation ................... */ + vmovups 1280+__svml_dcos_data_internal(%rip), %zmm9 + vmovups 1152+__svml_dcos_data_internal(%rip), %zmm10 + vmovups 1088+__svml_dcos_data_internal(%rip), %zmm12 + vmovups 768+__svml_dcos_data_internal(%rip), %zmm7 + vmovups 1024+__svml_dcos_data_internal(%rip), %zmm13 + +/* large arg. condition mask */ + vmovups 1664+__svml_dcos_data_internal(%rip), %zmm4 + vmovaps %zmm0, %zmm11 + vandpd 1408+__svml_dcos_data_internal(%rip), %zmm11, %zmm1 + vmovups 1728+__svml_dcos_data_internal(%rip), %zmm0 + vfmadd231pd {rz-sae}, %zmm1, %zmm2, %zmm5 + vcmppd $17, {sae}, %zmm0, %zmm1, %k2 + vcmppd $22, {sae}, %zmm4, %zmm5, %k1 + vpsllq $63, %zmm5, %zmm15 + vsubpd {rn-sae}, %zmm3, %zmm5, %zmm14 + vmovups 1216+__svml_dcos_data_internal(%rip), %zmm3 + vfmsub213pd {rn-sae}, %zmm1, %zmm14, %zmm8 + +/* will branch if long arg. reduction needed */ + kortestw %k1, %k1 + vfmadd231pd {rn-sae}, %zmm14, %zmm6, %zmm8 + vmulpd {rn-sae}, %zmm8, %zmm8, %zmm2 + vfmadd213pd {rn-sae}, %zmm8, %zmm7, %zmm14 + vfmadd231pd {rn-sae}, %zmm2, %zmm9, %zmm3 + vmovups 960+__svml_dcos_data_internal(%rip), %zmm9 + vfmadd213pd {rn-sae}, %zmm10, %zmm2, %zmm3 + vmovups 832+__svml_dcos_data_internal(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm12, %zmm2, %zmm3 + vfmadd213pd {rn-sae}, %zmm13, %zmm2, %zmm3 + vxorpd %zmm15, %zmm14, %zmm13 + vfmadd213pd {rn-sae}, %zmm9, %zmm2, %zmm3 + vmulpd {rn-sae}, %zmm2, %zmm13, %zmm12 + vfmadd213pd {rn-sae}, %zmm10, %zmm2, %zmm3 + vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm3 + +/* result = minabs(result, 1.0) with sign of result preserved */ + vblendmpd 1344+__svml_dcos_data_internal(%rip), %zmm3, %zmm0{%k2} + jne .LBL_1_12 + +.LBL_1_2: + + testl %edx, %edx + jne .LBL_1_4 + +.LBL_1_3: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_4: + + vmovups %zmm11, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_3 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_8: + + btl %r12d, %r13d + jc .LBL_1_11 + +.LBL_1_9: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_8 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_3 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_11: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dcos_cout_rare_internal + jmp .LBL_1_9 + .cfi_restore 4 + .cfi_restore 5 + .cfi_restore 12 + .cfi_restore 13 + .cfi_restore 122 + .cfi_restore 123 + .cfi_restore 124 + .cfi_restore 125 + +.LBL_1_12: + + +/* ............Check for Inf and NaNs................. */ + vmovups 16512+__svml_dcos_data_internal_ha(%rip), %zmm7 + +/* + * Get the (2^a / 2pi) mod 1 values from the table. + * Because VLANG doesn't have L-type gather, we need a trivial cast + */ + lea __svml_dcos_reduction_data_internal(%rip), %rax + vpbroadcastq .L_2il0floatpacket.28(%rip), %zmm9 + vmovups %zmm0, (%rsp) + vandpd %zmm11, %zmm7, %zmm8 + vcmppd $4, {sae}, %zmm7, %zmm8, %k2 + +/* + * The output is _VRES_Z (high) + _VRES_E (low), and the integer part is _VRES_IND + * Now resume the original code. + * ..................... Table look-up ........................ + */ + lea __svml_dcos_data_internal_ha(%rip), %rcx + vmovaps %zmm9, %zmm6 + vpandq .L_2il0floatpacket.29(%rip){1to8}, %zmm11, %zmm3 + vpsrlq $52, %zmm3, %zmm12 + vpsllq $1, %zmm12, %zmm1 + vpaddq %zmm12, %zmm1, %zmm10 + vpsllq $3, %zmm10, %zmm4 + vpmovqd %zmm4, %ymm0 + vpandnq %zmm8, %zmm8, %zmm6{%k2} + vcmppd $3, {sae}, %zmm6, %zmm6, %k0 + +/* + * Break the P_xxx and m into 32-bit chunks ready for + * the long multiplication via 32x32->64 multiplications + */ + vpbroadcastq .L_2il0floatpacket.32(%rip), %zmm6 + kxnorw %k0, %k0, %k3 + kxnorw %k0, %k0, %k2 + kmovw %k0, %edx + vpxord %zmm7, %zmm7, %zmm7 + vgatherdpd (%rax,%ymm0), %zmm7{%k3} + kxnorw %k0, %k0, %k3 + vpxord %zmm8, %zmm8, %zmm8 + vpxord %zmm2, %zmm2, %zmm2 + vgatherdpd 8(%rax,%ymm0), %zmm8{%k2} + vgatherdpd 16(%rax,%ymm0), %zmm2{%k3} + vpsrlq $32, %zmm7, %zmm0 + vpsrlq $32, %zmm8, %zmm15 + vpsrlq $32, %zmm2, %zmm13 + +/* + * Also get the significand as an integer + * NB: adding in the integer bit is wrong for denorms! + * To make this work for denorms we should do something slightly different + */ + vpandq .L_2il0floatpacket.30(%rip){1to8}, %zmm11, %zmm5 + vpaddq .L_2il0floatpacket.31(%rip){1to8}, %zmm5, %zmm3 + vpsrlq $32, %zmm3, %zmm10 + vpmullq %zmm13, %zmm10, %zmm1 + vpandq %zmm6, %zmm7, %zmm5 + vpandq %zmm6, %zmm8, %zmm12 + vpandq %zmm6, %zmm2, %zmm7 + vpandq %zmm6, %zmm3, %zmm14 + +/* Now do the big multiplication and carry propagation */ + vpmullq %zmm5, %zmm10, %zmm4 + vpmullq %zmm15, %zmm10, %zmm3 + vpmullq %zmm12, %zmm10, %zmm2 + vpmullq %zmm7, %zmm10, %zmm8 + vpmullq %zmm15, %zmm14, %zmm10 + vpmullq %zmm13, %zmm14, %zmm15 + vpmullq %zmm0, %zmm14, %zmm7 + vpmullq %zmm12, %zmm14, %zmm0 + vpmullq %zmm5, %zmm14, %zmm5 + vpsrlq $32, %zmm15, %zmm13 + vpsrlq $32, %zmm0, %zmm14 + vpsrlq $32, %zmm5, %zmm12 + vpsrlq $32, %zmm10, %zmm15 + vpaddq %zmm13, %zmm1, %zmm1 + vpaddq %zmm14, %zmm2, %zmm13 + vpaddq %zmm12, %zmm4, %zmm4 + vpaddq %zmm15, %zmm3, %zmm2 + vpandq %zmm6, %zmm0, %zmm14 + vpandq %zmm6, %zmm10, %zmm12 + vpandq %zmm6, %zmm5, %zmm10 + vpaddq %zmm1, %zmm14, %zmm5 + vpaddq %zmm2, %zmm10, %zmm2 + vpsrlq $32, %zmm8, %zmm1 + vpaddq %zmm5, %zmm1, %zmm8 + vpsrlq $32, %zmm8, %zmm10 + vpandq %zmm6, %zmm7, %zmm0 + vpaddq %zmm13, %zmm12, %zmm7 + vpaddq %zmm4, %zmm0, %zmm3 + vpaddq %zmm7, %zmm10, %zmm14 + +/* + * Now round at the 2^-9 bit position for reduction mod pi/2^8 + * instead of the original 2pi (but still with the same 2pi scaling). + * Use a shifter of 2^43 + 2^42. + * The N we get is our final version; it has an offset of + * 2^9 because of the implicit integer bit, and anyway for negative + * starting value it's a 2s complement thing. But we need to mask + * off the exponent part anyway so it's fine. + */ + vpbroadcastq .L_2il0floatpacket.35(%rip), %zmm7 + vpsrlq $32, %zmm14, %zmm4 + vpaddq %zmm2, %zmm4, %zmm15 + vpsllq $32, %zmm14, %zmm4 + vpsrlq $32, %zmm15, %zmm0 + vpaddq %zmm3, %zmm0, %zmm13 + +/* Assemble reduced argument from the pieces */ + vpandq %zmm6, %zmm8, %zmm1 + vpandq %zmm6, %zmm15, %zmm10 + vpsllq $32, %zmm13, %zmm6 + vpaddq %zmm1, %zmm4, %zmm13 + vpaddq %zmm10, %zmm6, %zmm10 + vpsrlq $12, %zmm10, %zmm0 + vpandq .L_2il0floatpacket.38(%rip){1to8}, %zmm13, %zmm3 + vpsllq $28, %zmm3, %zmm12 + vpsrlq $24, %zmm13, %zmm13 + +/* + * We want to incorporate the original sign now too. + * Do it here for convenience in getting the right N value, + * though we could wait right to the end if we were prepared + * to modify the sign of N later too. + * So get the appropriate sign mask now (or sooner). + */ + vpandq .L_2il0floatpacket.33(%rip){1to8}, %zmm11, %zmm14 + +/* + * Create floating-point high part, implicitly adding integer bit 1 + * Incorporate overall sign at this stage too. + */ + vpxorq .L_2il0floatpacket.34(%rip){1to8}, %zmm14, %zmm5 + vporq %zmm5, %zmm0, %zmm8 + vaddpd {rn-sae}, %zmm8, %zmm7, %zmm2 + vsubpd {rn-sae}, %zmm7, %zmm2, %zmm6 + vsubpd {rn-sae}, %zmm6, %zmm8, %zmm15 + +/* + * If the magnitude of the input is <= 2^-20, then + * just pass through the input, since no reduction will be needed and + * the main path will only work accurately if the reduced argument is + * about >= 2^-70 (which it is for all large pi multiples) + */ + vpbroadcastq .L_2il0floatpacket.44(%rip), %zmm8 + vandpd .L_2il0floatpacket.43(%rip){1to8}, %zmm11, %zmm6 + vcmppd $26, {sae}, %zmm8, %zmm6, %k2 + vcmppd $22, {sae}, %zmm8, %zmm6, %k3 + +/* + * Create floating-point low and medium parts, respectively + * lo_23, ... lo_0, 0, ..., 0 + * hi_11, ... hi_0, lo_63, ..., lo_24 + * then subtract off the implicitly added integer bits, + * 2^-104 and 2^-52, respectively. + * Put the original sign into all of them at this stage. + */ + vpxorq .L_2il0floatpacket.37(%rip){1to8}, %zmm14, %zmm0 + vporq %zmm0, %zmm12, %zmm4 + vsubpd {rn-sae}, %zmm0, %zmm4, %zmm3 + vpxorq .L_2il0floatpacket.39(%rip){1to8}, %zmm14, %zmm0 + vpandq .L_2il0floatpacket.40(%rip){1to8}, %zmm10, %zmm14 + vpsllq $40, %zmm14, %zmm10 + vmovups 17152+__svml_dcos_data_internal_ha(%rip), %zmm14 + vporq %zmm13, %zmm10, %zmm10 + vporq %zmm0, %zmm10, %zmm4 + vsubpd {rn-sae}, %zmm0, %zmm4, %zmm5 + vpbroadcastq .L_2il0floatpacket.42(%rip), %zmm4 + +/* Now add them up into 2 reasonably aligned pieces */ + vaddpd {rn-sae}, %zmm5, %zmm15, %zmm7 + vsubpd {rn-sae}, %zmm7, %zmm15, %zmm15 + vaddpd {rn-sae}, %zmm15, %zmm5, %zmm10 + +/* + * Now multiply those numbers all by 2 pi, reasonably accurately. + * (RHi + RLo) * (pi_lead + pi_trail) ~= + * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) + */ + vpbroadcastq .L_2il0floatpacket.41(%rip), %zmm5 + vaddpd {rn-sae}, %zmm3, %zmm10, %zmm12 + vmulpd {rn-sae}, %zmm5, %zmm7, %zmm1 + vmovaps %zmm5, %zmm0 + vfmsub213pd {rn-sae}, %zmm1, %zmm7, %zmm0 + vfmadd213pd {rn-sae}, %zmm0, %zmm4, %zmm7 + vfmadd213pd {rn-sae}, %zmm7, %zmm5, %zmm12 + vmovaps %zmm9, %zmm3 + +/* Grab our final N value as an integer, appropriately masked mod 2^9 */ + vpandq .L_2il0floatpacket.36(%rip){1to8}, %zmm2, %zmm2 + vpsllq $5, %zmm2, %zmm5 + vpmovqd %zmm5, %ymm5 + vpandnq %zmm6, %zmm6, %zmm3{%k2} + kxnorw %k0, %k0, %k2 + vandpd %zmm1, %zmm3, %zmm4 + vandpd %zmm12, %zmm3, %zmm0 + vmovups 16960+__svml_dcos_data_internal_ha(%rip), %zmm3 + vpandnq %zmm6, %zmm6, %zmm9{%k3} + vandpd %zmm11, %zmm9, %zmm10 + kxnorw %k0, %k0, %k3 + vorpd %zmm4, %zmm10, %zmm4 + +/* ................. Reconstruction: res_hi ................... */ + vmovaps %zmm4, %zmm2 + vmovaps %zmm4, %zmm10 + vpxord %zmm9, %zmm9, %zmm9 + vgatherdpd (%rcx,%ymm5), %zmm9{%k2} + +/* VGATHER_TABLE( L2D, dSLo, TAB_HA._dT, lIndex, 0, T_ITEM_SIZE, T_ITEM_GRAN, 3 ); */ + kxnorw %k0, %k0, %k2 + vpxord %zmm7, %zmm7, %zmm7 + vpxord %zmm6, %zmm6, %zmm6 + vgatherdpd 16(%rcx,%ymm5), %zmm7{%k3} + vgatherdpd 8(%rcx,%ymm5), %zmm6{%k2} + kxnorw %k0, %k0, %k3 + vfmadd213pd {rn-sae}, %zmm7, %zmm6, %zmm2 + vfmadd132pd {rn-sae}, %zmm9, %zmm2, %zmm10 + +/* ................. Reconstruction: res_lo ................... */ + vsubpd {rn-sae}, %zmm2, %zmm7, %zmm1 + vsubpd {rn-sae}, %zmm10, %zmm2, %zmm8 + vfmadd231pd {rn-sae}, %zmm4, %zmm6, %zmm1 + vmovups 17024+__svml_dcos_data_internal_ha(%rip), %zmm2 + vfmadd231pd {rn-sae}, %zmm9, %zmm4, %zmm8 + vaddpd {rn-sae}, %zmm1, %zmm8, %zmm13 + vaddpd {rn-sae}, %zmm6, %zmm9, %zmm1 + +/* ............... Polynomial approximation ................... */ + vmulpd {rn-sae}, %zmm4, %zmm4, %zmm8 + vmovups 17216+__svml_dcos_data_internal_ha(%rip), %zmm6 + vmovups 17088+__svml_dcos_data_internal_ha(%rip), %zmm9 + vfmadd231pd {rn-sae}, %zmm8, %zmm2, %zmm3 + vfmadd231pd {rn-sae}, %zmm8, %zmm6, %zmm14 + vmulpd {rn-sae}, %zmm8, %zmm3, %zmm12 + vfmadd213pd {rn-sae}, %zmm9, %zmm8, %zmm14 + vmulpd {rn-sae}, %zmm4, %zmm12, %zmm15 + vmulpd {rn-sae}, %zmm8, %zmm14, %zmm2 + +/* ................. Reconstruction: res_lo+corr ................... */ + vfnmadd213pd {rn-sae}, %zmm1, %zmm7, %zmm4 + vfmadd213pd {rn-sae}, %zmm13, %zmm1, %zmm15 + vfmadd213pd {rn-sae}, %zmm15, %zmm7, %zmm2 + vpxord %zmm7, %zmm7, %zmm7 + vgatherdpd 24(%rcx,%ymm5), %zmm7{%k3} + vfmadd213pd {rn-sae}, %zmm7, %zmm4, %zmm0 + vaddpd {rn-sae}, %zmm0, %zmm2, %zmm1 + +/* .................. Final reconstruction ................... */ + vmovups (%rsp), %zmm0 + vaddpd {rn-sae}, %zmm1, %zmm10, %zmm0{%k1} + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_cos8,@function + .size __svml_cos8,.-__svml_cos8 +..LN__svml_cos8.0: + +.L_2__routine_start___svml_dcos_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dcos_cout_rare_internal: + + + .cfi_startproc +..L63: + + movzwl 6(%rdi), %eax + andl $32752, %eax + movsd (%rdi), %xmm1 + movb 7(%rdi), %dl + andb $127, %dl + movsd %xmm1, -8(%rsp) + cmpl $32752, %eax + jne .LBL_2_6 + + + cmpl $0, -8(%rsp) + jne .LBL_2_5 + + + movb %dl, -1(%rsp) + cmpl $2146435072, -4(%rsp) + jne .LBL_2_5 + + + movsd __dcos_la_CoutTab(%rip), %xmm0 + movl $1, %eax + mulsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + ret + +.LBL_2_5: + + mulsd %xmm1, %xmm1 + xorl %eax, %eax + movsd %xmm1, (%rsi) + ret + +.LBL_2_6: + + xorl %eax, %eax + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dcos_cout_rare_internal,@function + .size __svml_dcos_cout_rare_internal,.-__svml_dcos_cout_rare_internal +..LN__svml_dcos_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dcos_data_internal: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 1096810496 + .long 0 + .long 1096810496 + .long 0 + .long 1096810496 + .long 0 + .long 1096810496 + .long 0 + .long 1096810496 + .long 0 + .long 1096810496 + .long 0 + .long 1096810496 + .long 0 + .long 1096810496 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 1431655591 + .long 3217380693 + .long 1431655591 + .long 3217380693 + .long 1431655591 + .long 3217380693 + .long 1431655591 + .long 3217380693 + .long 1431655591 + .long 3217380693 + .long 1431655591 + .long 3217380693 + .long 1431655591 + .long 3217380693 + .long 1431655591 + .long 3217380693 + .long 286303399 + .long 1065423121 + .long 286303399 + .long 1065423121 + .long 286303399 + .long 1065423121 + .long 286303399 + .long 1065423121 + .long 286303399 + .long 1065423121 + .long 286303399 + .long 1065423121 + .long 286303399 + .long 1065423121 + .long 286303399 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 286303400 + .long 1065423121 + .long 430291067 + .long 3207201184 + .long 430291067 + .long 3207201184 + .long 430291067 + .long 3207201184 + .long 430291067 + .long 3207201184 + .long 430291067 + .long 3207201184 + .long 430291067 + .long 3207201184 + .long 430291067 + .long 3207201184 + .long 430291067 + .long 3207201184 + .long 2150694560 + .long 1053236707 + .long 2150694560 + .long 1053236707 + .long 2150694560 + .long 1053236707 + .long 2150694560 + .long 1053236707 + .long 2150694560 + .long 1053236707 + .long 2150694560 + .long 1053236707 + .long 2150694560 + .long 1053236707 + .long 2150694560 + .long 1053236707 + .long 1174413873 + .long 3193628213 + .long 1174413873 + .long 3193628213 + .long 1174413873 + .long 3193628213 + .long 1174413873 + .long 3193628213 + .long 1174413873 + .long 3193628213 + .long 1174413873 + .long 3193628213 + .long 1174413873 + .long 3193628213 + .long 1174413873 + .long 3193628213 + .long 1470296608 + .long 1038487144 + .long 1470296608 + .long 1038487144 + .long 1470296608 + .long 1038487144 + .long 1470296608 + .long 1038487144 + .long 1470296608 + .long 1038487144 + .long 1470296608 + .long 1038487144 + .long 1470296608 + .long 1038487144 + .long 1470296608 + .long 1038487144 + .long 135375560 + .long 3177836758 + .long 135375560 + .long 3177836758 + .long 135375560 + .long 3177836758 + .long 135375560 + .long 3177836758 + .long 135375560 + .long 3177836758 + .long 135375560 + .long 3177836758 + .long 135375560 + .long 3177836758 + .long 135375560 + .long 3177836758 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 0 + .long 1127219200 + .long 0 + .long 1127219200 + .long 0 + .long 1127219200 + .long 0 + .long 1127219200 + .long 0 + .long 1127219200 + .long 0 + .long 1127219200 + .long 0 + .long 1127219200 + .long 0 + .long 1127219200 + .long 4294967295 + .long 1127219199 + .long 4294967295 + .long 1127219199 + .long 4294967295 + .long 1127219199 + .long 4294967295 + .long 1127219199 + .long 4294967295 + .long 1127219199 + .long 4294967295 + .long 1127219199 + .long 4294967295 + .long 1127219199 + .long 4294967295 + .long 1127219199 + .long 8388606 + .long 1127219200 + .long 8388606 + .long 1127219200 + .long 8388606 + .long 1127219200 + .long 8388606 + .long 1127219200 + .long 8388606 + .long 1127219200 + .long 8388606 + .long 1127219200 + .long 8388606 + .long 1127219200 + .long 8388606 + .long 1127219200 + .long 0 + .long 1044381696 + .long 0 + .long 1044381696 + .long 0 + .long 1044381696 + .long 0 + .long 1044381696 + .long 0 + .long 1044381696 + .long 0 + .long 1044381696 + .long 0 + .long 1044381696 + .long 0 + .long 1044381696 + .type __svml_dcos_data_internal,@object + .size __svml_dcos_data_internal,1792 + .align 64 +__svml_dcos_data_internal_ha: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 210035182 + .long 1064007864 + .long 0 + .long 3213885440 + .long 379294427 + .long 1072693090 + .long 3221225472 + .long 1015405987 + .long 561145352 + .long 1065056936 + .long 0 + .long 3214934016 + .long 1619315981 + .long 1072692616 + .long 1073741824 + .long 3162584397 + .long 2896342633 + .long 3212231467 + .long 0 + .long 3214934016 + .long 4026464093 + .long 1072691826 + .long 3221225472 + .long 3163075789 + .long 1003003824 + .long 1066107496 + .long 0 + .long 3215982592 + .long 3816385918 + .long 1072690721 + .long 536870912 + .long 3161216956 + .long 3237733378 + .long 1062425136 + .long 0 + .long 3215982592 + .long 1703834029 + .long 1072689301 + .long 3758096384 + .long 1015028364 + .long 2523975598 + .long 3213273348 + .long 0 + .long 3215982592 + .long 2902558778 + .long 1072687565 + .long 3221225472 + .long 1013260780 + .long 711626851 + .long 3214400320 + .long 0 + .long 3215982592 + .long 4240268041 + .long 1072685514 + .long 536870912 + .long 1013588963 + .long 257503056 + .long 1067164005 + .long 0 + .long 3217031168 + .long 2748392742 + .long 1072683149 + .long 536870912 + .long 3163061750 + .long 3272206680 + .long 1066288081 + .long 0 + .long 3217031168 + .long 4251821691 + .long 1072680469 + .long 2147483648 + .long 3161841007 + .long 718380601 + .long 1063597621 + .long 0 + .long 3217031168 + .long 1893834707 + .long 1072677476 + .long 1610612736 + .long 1015147654 + .long 3987691371 + .long 3213074188 + .long 0 + .long 3217031168 + .long 1905645377 + .long 1072674169 + .long 1610612736 + .long 1014087596 + .long 1953696209 + .long 3214295171 + .long 0 + .long 3217031168 + .long 2131272983 + .long 1072670549 + .long 3221225472 + .long 3163005096 + .long 3299146087 + .long 3215021530 + .long 0 + .long 3217031168 + .long 617154971 + .long 1072666617 + .long 3758096384 + .long 3163433696 + .long 304938777 + .long 3215427665 + .long 0 + .long 3217031168 + .long 4201728937 + .long 1072662372 + .long 1610612736 + .long 1014674006 + .long 2034433221 + .long 3215832935 + .long 0 + .long 3217031168 + .long 2745245815 + .long 1072657817 + .long 3221225472 + .long 1015566129 + .long 240740309 + .long 1068244255 + .long 0 + .long 3218079744 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 1765797566 + .long 1067840895 + .long 0 + .long 3218079744 + .long 990588717 + .long 1072647776 + .long 3758096384 + .long 3162041857 + .long 2886567144 + .long 1067426796 + .long 0 + .long 3218079744 + .long 2892293513 + .long 1072642291 + .long 2684354560 + .long 3162340271 + .long 3587565429 + .long 1066624384 + .long 0 + .long 3218079744 + .long 4151720666 + .long 1072636498 + .long 0 + .long 3162639544 + .long 2614369450 + .long 1065140432 + .long 0 + .long 3218079744 + .long 4220661975 + .long 1072630398 + .long 3221225472 + .long 1014312058 + .long 2382326656 + .long 3212045827 + .long 0 + .long 3218079744 + .long 2749658050 + .long 1072623992 + .long 1610612736 + .long 1015427338 + .long 723478390 + .long 3213958438 + .long 0 + .long 3218079744 + .long 3882371427 + .long 1072617280 + .long 2147483648 + .long 1014923975 + .long 4107121629 + .long 3214750787 + .long 0 + .long 3218079744 + .long 3370060660 + .long 1072610264 + .long 1610612736 + .long 1014787212 + .long 1991047213 + .long 3215237169 + .long 0 + .long 3218079744 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 386665102 + .long 3215630470 + .long 0 + .long 3218079744 + .long 2873938189 + .long 1072595323 + .long 1610612736 + .long 3162311422 + .long 1348311045 + .long 3216002418 + .long 0 + .long 3218079744 + .long 3964199186 + .long 1072587400 + .long 3758096384 + .long 3160501078 + .long 165911977 + .long 3216197513 + .long 0 + .long 3218079744 + .long 1261158782 + .long 1072579178 + .long 2147483648 + .long 1015711544 + .long 3601629044 + .long 3216391785 + .long 0 + .long 3218079744 + .long 83265253 + .long 1072570657 + .long 1610612736 + .long 3162510535 + .long 1962712856 + .long 3216585207 + .long 0 + .long 3218079744 + .long 1647164971 + .long 1072561838 + .long 2147483648 + .long 3162838250 + .long 3286832763 + .long 3216777748 + .long 0 + .long 3218079744 + .long 3066872380 + .long 1072552723 + .long 3221225472 + .long 1015561271 + .long 3296146332 + .long 3216969380 + .long 0 + .long 3218079744 + .long 1647878299 + .long 1072543314 + .long 3758096384 + .long 3162169063 + .long 1699043957 + .long 1069418613 + .long 0 + .long 3219128320 + .long 3476196678 + .long 1072533611 + .long 0 + .long 1014257638 + .long 1896722595 + .long 1069228886 + .long 0 + .long 3219128320 + .long 1942611595 + .long 1072523617 + .long 3221225472 + .long 3162410081 + .long 4049357271 + .long 1069040154 + .long 0 + .long 3219128320 + .long 3511535930 + .long 1072513332 + .long 2147483648 + .long 3162828626 + .long 1380647130 + .long 1068852447 + .long 0 + .long 3219128320 + .long 1950234076 + .long 1072502759 + .long 536870912 + .long 3159425498 + .long 3631910143 + .long 1068665791 + .long 0 + .long 3219128320 + .long 4097623923 + .long 1072491898 + .long 2684354560 + .long 3160308587 + .long 1073154251 + .long 1068461489 + .long 0 + .long 3219128320 + .long 4093443164 + .long 1072480752 + .long 536870912 + .long 1014912865 + .long 913431823 + .long 1068092555 + .long 0 + .long 3219128320 + .long 557060597 + .long 1072469323 + .long 0 + .long 3159554934 + .long 600368053 + .long 1067725893 + .long 0 + .long 3219128320 + .long 881357723 + .long 1072457611 + .long 3221225472 + .long 1013810890 + .long 2140183630 + .long 1067272748 + .long 0 + .long 3219128320 + .long 4051746225 + .long 1072445618 + .long 1610612736 + .long 3161907377 + .long 3506991783 + .long 1066548842 + .long 0 + .long 3219128320 + .long 645027145 + .long 1072433348 + .long 3221225472 + .long 1012602239 + .long 31019393 + .long 1065162441 + .long 0 + .long 3219128320 + .long 2892993834 + .long 1072420800 + .long 536870912 + .long 3163039143 + .long 1279178457 + .long 3211590791 + .long 0 + .long 3219128320 + .long 1731563730 + .long 1072407978 + .long 536870912 + .long 1015540302 + .long 1220541286 + .long 3213681126 + .long 0 + .long 3219128320 + .long 1159294526 + .long 1072394883 + .long 536870912 + .long 3163276959 + .long 2880516564 + .long 3214487049 + .long 0 + .long 3219128320 + .long 1056266002 + .long 1072381517 + .long 2684354560 + .long 3163469496 + .long 1102361128 + .long 3215059765 + .long 0 + .long 3219128320 + .long 1477771776 + .long 1072367882 + .long 536870912 + .long 3163104986 + .long 1038988426 + .long 3215406294 + .long 0 + .long 3219128320 + .long 2653017361 + .long 1072353980 + .long 0 + .long 3162800062 + .long 2598800519 + .long 3215750067 + .long 0 + .long 3219128320 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 3382663878 + .long 3216036812 + .long 0 + .long 3219128320 + .long 453180130 + .long 1072325385 + .long 1073741824 + .long 3162411281 + .long 1726519029 + .long 3216205866 + .long 0 + .long 3219128320 + .long 2688952194 + .long 1072310695 + .long 0 + .long 3161532603 + .long 802660176 + .long 3216373465 + .long 0 + .long 3219128320 + .long 4012486548 + .long 1072295747 + .long 2684354560 + .long 1014701564 + .long 3876290983 + .long 3216539583 + .long 0 + .long 3219128320 + .long 1207142209 + .long 1072280544 + .long 2147483648 + .long 3162705634 + .long 2285031318 + .long 3216704197 + .long 0 + .long 3219128320 + .long 4106737474 + .long 1072265086 + .long 2684354560 + .long 3162592377 + .long 1224902090 + .long 3216867281 + .long 0 + .long 3219128320 + .long 1234330619 + .long 1072249378 + .long 2684354560 + .long 1015272473 + .long 2586490530 + .long 3217028810 + .long 0 + .long 3219128320 + .long 2750387213 + .long 1072233420 + .long 2147483648 + .long 3160858537 + .long 2485417816 + .long 3217109964 + .long 0 + .long 3219128320 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 1852581091 + .long 3217189138 + .long 0 + .long 3219128320 + .long 263859903 + .long 1072200768 + .long 0 + .long 3162692284 + .long 4019165092 + .long 3217267498 + .long 0 + .long 3219128320 + .long 201299822 + .long 1072184078 + .long 3758096384 + .long 3161912352 + .long 1250776663 + .long 3217345034 + .long 0 + .long 3219128320 + .long 3814135665 + .long 1072167148 + .long 3221225472 + .long 3163146456 + .long 3526603391 + .long 3217421732 + .long 0 + .long 3219128320 + .long 577417135 + .long 1072149983 + .long 2684354560 + .long 3161519415 + .long 4187227697 + .long 3217497582 + .long 0 + .long 3219128320 + .long 1594061409 + .long 1072132583 + .long 2147483648 + .long 1014353870 + .long 1416934267 + .long 3217572573 + .long 0 + .long 3219128320 + .long 938475414 + .long 1072114952 + .long 0 + .long 1015076079 + .long 2546065654 + .long 3217646692 + .long 0 + .long 3219128320 + .long 1424664751 + .long 1072097092 + .long 3221225472 + .long 3163405315 + .long 2583490354 + .long 3217719929 + .long 0 + .long 3219128320 + .long 1719614413 + .long 1072079006 + .long 0 + .long 3163282740 + .long 1403691706 + .long 3217792273 + .long 0 + .long 3219128320 + .long 636516413 + .long 1072060697 + .long 3758096384 + .long 1015823716 + .long 3753901657 + .long 3217863712 + .long 0 + .long 3219128320 + .long 1427975391 + .long 1072042167 + .long 1073741824 + .long 3161608627 + .long 2081278341 + .long 3217934237 + .long 0 + .long 3219128320 + .long 3194290572 + .long 1072023419 + .long 2147483648 + .long 1015048682 + .long 2309668539 + .long 3218003836 + .long 0 + .long 3219128320 + .long 881650848 + .long 1072004457 + .long 2147483648 + .long 3162986272 + .long 2371640770 + .long 3218072499 + .long 0 + .long 3219128320 + .long 2460177814 + .long 1071985282 + .long 2147483648 + .long 3162116843 + .long 3489768009 + .long 1070535623 + .long 0 + .long 3220176896 + .long 3152274921 + .long 1071965898 + .long 3758096384 + .long 1013170835 + .long 3239527685 + .long 1070468863 + .long 0 + .long 3220176896 + .long 2610628921 + .long 1071946308 + .long 1610612736 + .long 3162668769 + .long 1403757309 + .long 1070403070 + .long 0 + .long 3220176896 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 1883353036 + .long 1070338253 + .long 0 + .long 3220176896 + .long 1397053140 + .long 1071906521 + .long 1610612736 + .long 1015245078 + .long 3652612115 + .long 1070274422 + .long 0 + .long 3220176896 + .long 689983673 + .long 1071886330 + .long 3758096384 + .long 1014906405 + .long 752919289 + .long 1070211588 + .long 0 + .long 3220176896 + .long 2969983475 + .long 1071865944 + .long 2684354560 + .long 3162635443 + .long 3761365757 + .long 1070149758 + .long 0 + .long 3220176896 + .long 4242632757 + .long 1071845367 + .long 536870912 + .long 3161390278 + .long 1129922991 + .long 1070088944 + .long 0 + .long 3220176896 + .long 637203434 + .long 1071824603 + .long 3221225472 + .long 3159443841 + .long 2129093113 + .long 1070029153 + .long 0 + .long 3220176896 + .long 1289556703 + .long 1071803653 + .long 536870912 + .long 3162888820 + .long 2482246777 + .long 1069970395 + .long 0 + .long 3220176896 + .long 2570316633 + .long 1071782521 + .long 1610612736 + .long 3162744753 + .long 1539668340 + .long 1069912679 + .long 0 + .long 3220176896 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 2272832445 + .long 1069856013 + .long 0 + .long 3220176896 + .long 1675549513 + .long 1071739725 + .long 3221225472 + .long 3163025138 + .long 2678847490 + .long 1069800406 + .long 0 + .long 3220176896 + .long 1411074851 + .long 1071718067 + .long 1610612736 + .long 3163484731 + .long 69903290 + .long 1069745867 + .long 0 + .long 3220176896 + .long 1297975695 + .long 1071696240 + .long 3221225472 + .long 3163083735 + .long 3952756490 + .long 1069692402 + .long 0 + .long 3220176896 + .long 2569207790 + .long 1071674247 + .long 1073741824 + .long 3163183617 + .long 1663679671 + .long 1069640022 + .long 0 + .long 3220176896 + .long 2269920951 + .long 1071652092 + .long 3758096384 + .long 3161672245 + .long 1312926554 + .long 1069588733 + .long 0 + .long 3220176896 + .long 3690502842 + .long 1071614884 + .long 3221225472 + .long 3157453855 + .long 3429717432 + .long 1069529566 + .long 0 + .long 3220176896 + .long 1391425750 + .long 1071569945 + .long 3221225472 + .long 3162362103 + .long 1945768569 + .long 1069431400 + .long 0 + .long 3220176896 + .long 939980347 + .long 1071524701 + .long 0 + .long 1012796809 + .long 1539072807 + .long 1069335462 + .long 0 + .long 3220176896 + .long 1535566729 + .long 1071479159 + .long 2147483648 + .long 1014321388 + .long 4133449816 + .long 1069241766 + .long 0 + .long 3220176896 + .long 2570175582 + .long 1071433326 + .long 1073741824 + .long 1012303118 + .long 1612193054 + .long 1069150328 + .long 0 + .long 3220176896 + .long 3623952103 + .long 1071387209 + .long 2684354560 + .long 3161985962 + .long 1578746984 + .long 1069061160 + .long 0 + .long 3220176896 + .long 165764288 + .long 1071340816 + .long 3221225472 + .long 1013298018 + .long 1577996576 + .long 1068974276 + .long 0 + .long 3220176896 + .long 728580042 + .long 1071294152 + .long 1610612736 + .long 3162332944 + .long 1972483635 + .long 1068889689 + .long 0 + .long 3220176896 + .long 1135144330 + .long 1071247225 + .long 536870912 + .long 1013373569 + .long 1638976426 + .long 1068807412 + .long 0 + .long 3220176896 + .long 1673302999 + .long 1071200042 + .long 2147483648 + .long 1013351473 + .long 2255197647 + .long 1068727457 + .long 0 + .long 3220176896 + .long 2796464483 + .long 1071152610 + .long 3221225472 + .long 3160878317 + .long 3996842794 + .long 1068649836 + .long 0 + .long 3220176896 + .long 824036583 + .long 1071104937 + .long 0 + .long 1008313330 + .long 1234824733 + .long 1068574562 + .long 0 + .long 3220176896 + .long 821708191 + .long 1071057029 + .long 3758096384 + .long 3161738009 + .long 4002549419 + .long 1068501644 + .long 0 + .long 3220176896 + .long 3711903686 + .long 1071008893 + .long 1073741824 + .long 1011944747 + .long 2962723252 + .long 1068363247 + .long 0 + .long 3220176896 + .long 1974149085 + .long 1070960538 + .long 3221225472 + .long 3156147648 + .long 1296295961 + .long 1068226907 + .long 0 + .long 3220176896 + .long 1115219818 + .long 1070911970 + .long 0 + .long 1013072242 + .long 997322465 + .long 1068095345 + .long 0 + .long 3220176896 + .long 2484561409 + .long 1070863196 + .long 1073741824 + .long 1014024572 + .long 1261629236 + .long 1067968581 + .long 0 + .long 3220176896 + .long 3269558610 + .long 1070814224 + .long 536870912 + .long 3161705216 + .long 2476548698 + .long 1067846634 + .long 0 + .long 3220176896 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 1913604284 + .long 1067729523 + .long 0 + .long 3220176896 + .long 1062001470 + .long 1070715716 + .long 0 + .long 3160875220 + .long 2306566604 + .long 1067617265 + .long 0 + .long 3220176896 + .long 1655830135 + .long 1070666194 + .long 0 + .long 1014506690 + .long 3250111450 + .long 1067509877 + .long 0 + .long 3220176896 + .long 238550446 + .long 1070616504 + .long 2684354560 + .long 3154383565 + .long 2377770267 + .long 1067364384 + .long 0 + .long 3220176896 + .long 2065784603 + .long 1070537209 + .long 3758096384 + .long 3160681966 + .long 288924873 + .long 1067169185 + .long 0 + .long 3220176896 + .long 3846521617 + .long 1070437199 + .long 536870912 + .long 1013406610 + .long 1935888103 + .long 1066983818 + .long 0 + .long 3220176896 + .long 1786662755 + .long 1070336898 + .long 2147483648 + .long 3155882307 + .long 2660899430 + .long 1066808312 + .long 0 + .long 3220176896 + .long 632292433 + .long 1070236320 + .long 3758096384 + .long 3160963333 + .long 18115067 + .long 1066642694 + .long 0 + .long 3220176896 + .long 1013556747 + .long 1070135480 + .long 2684354560 + .long 3160567065 + .long 2346447124 + .long 1066486987 + .long 0 + .long 3220176896 + .long 3729833777 + .long 1070034393 + .long 3758096384 + .long 1013044718 + .long 1672287667 + .long 1066280641 + .long 0 + .long 3220176896 + .long 1149976518 + .long 1069933076 + .long 1610612736 + .long 1013264895 + .long 3451754846 + .long 1066009014 + .long 0 + .long 3220176896 + .long 2972270170 + .long 1069831542 + .long 1073741824 + .long 3159524770 + .long 1037482584 + .long 1065757344 + .long 0 + .long 3220176896 + .long 1854824762 + .long 1069729808 + .long 2684354560 + .long 1011953664 + .long 2592747447 + .long 1065525667 + .long 0 + .long 3220176896 + .long 3470456183 + .long 1069627888 + .long 1073741824 + .long 3160744771 + .long 2402293340 + .long 1065274823 + .long 0 + .long 3220176896 + .long 1453945614 + .long 1069504078 + .long 1610612736 + .long 1011492612 + .long 1227670166 + .long 1064891649 + .long 0 + .long 3220176896 + .long 3349070549 + .long 1069299589 + .long 3758096384 + .long 3156538269 + .long 393047345 + .long 1064548654 + .long 0 + .long 3220176896 + .long 3156849708 + .long 1069094822 + .long 3221225472 + .long 3158189848 + .long 1118107366 + .long 1064187139 + .long 0 + .long 3220176896 + .long 177906713 + .long 1068889808 + .long 3221225472 + .long 3159310370 + .long 4269262315 + .long 1063662162 + .long 0 + .long 3220176896 + .long 2462980598 + .long 1068684576 + .long 2684354560 + .long 3158941832 + .long 3810305407 + .long 1063179572 + .long 0 + .long 3220176896 + .long 2046304480 + .long 1068459374 + .long 3758096384 + .long 3156402667 + .long 220529721 + .long 1062452281 + .long 0 + .long 3220176896 + .long 4044216340 + .long 1068048229 + .long 0 + .long 3156808381 + .long 69373323 + .long 1061565504 + .long 0 + .long 3220176896 + .long 1972655565 + .long 1067636837 + .long 1073741824 + .long 1009157878 + .long 3650591271 + .long 1060355323 + .long 0 + .long 3220176896 + .long 4154680958 + .long 1067000149 + .long 0 + .long 3153796451 + .long 2376373521 + .long 1058258220 + .long 0 + .long 3220176896 + .long 4242458500 + .long 1065951697 + .long 2684354560 + .long 1009354638 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2376373521 + .long 1058258220 + .long 0 + .long 3220176896 + .long 4242458500 + .long 3213435345 + .long 2684354560 + .long 3156838286 + .long 3650591271 + .long 1060355323 + .long 0 + .long 3220176896 + .long 4154680958 + .long 3214483797 + .long 0 + .long 1006312803 + .long 69373323 + .long 1061565504 + .long 0 + .long 3220176896 + .long 1972655565 + .long 3215120485 + .long 1073741824 + .long 3156641526 + .long 220529721 + .long 1062452281 + .long 0 + .long 3220176896 + .long 4044216340 + .long 3215531877 + .long 0 + .long 1009324733 + .long 3810305407 + .long 1063179572 + .long 0 + .long 3220176896 + .long 2046304480 + .long 3215943022 + .long 3758096384 + .long 1008919019 + .long 4269262315 + .long 1063662162 + .long 0 + .long 3220176896 + .long 2462980598 + .long 3216168224 + .long 2684354560 + .long 1011458184 + .long 1118107366 + .long 1064187139 + .long 0 + .long 3220176896 + .long 177906713 + .long 3216373456 + .long 3221225472 + .long 1011826722 + .long 393047345 + .long 1064548654 + .long 0 + .long 3220176896 + .long 3156849708 + .long 3216578470 + .long 3221225472 + .long 1010706200 + .long 1227670166 + .long 1064891649 + .long 0 + .long 3220176896 + .long 3349070549 + .long 3216783237 + .long 3758096384 + .long 1009054621 + .long 2402293340 + .long 1065274823 + .long 0 + .long 3220176896 + .long 1453945614 + .long 3216987726 + .long 1610612736 + .long 3158976260 + .long 2592747447 + .long 1065525667 + .long 0 + .long 3220176896 + .long 3470456183 + .long 3217111536 + .long 1073741824 + .long 1013261123 + .long 1037482584 + .long 1065757344 + .long 0 + .long 3220176896 + .long 1854824762 + .long 3217213456 + .long 2684354560 + .long 3159437312 + .long 3451754846 + .long 1066009014 + .long 0 + .long 3220176896 + .long 2972270170 + .long 3217315190 + .long 1073741824 + .long 1012041122 + .long 1672287667 + .long 1066280641 + .long 0 + .long 3220176896 + .long 1149976518 + .long 3217416724 + .long 1610612736 + .long 3160748543 + .long 2346447124 + .long 1066486987 + .long 0 + .long 3220176896 + .long 3729833777 + .long 3217518041 + .long 3758096384 + .long 3160528366 + .long 18115067 + .long 1066642694 + .long 0 + .long 3220176896 + .long 1013556747 + .long 3217619128 + .long 2684354560 + .long 1013083417 + .long 2660899430 + .long 1066808312 + .long 0 + .long 3220176896 + .long 632292433 + .long 3217719968 + .long 3758096384 + .long 1013479685 + .long 1935888103 + .long 1066983818 + .long 0 + .long 3220176896 + .long 1786662755 + .long 3217820546 + .long 2147483648 + .long 1008398659 + .long 288924873 + .long 1067169185 + .long 0 + .long 3220176896 + .long 3846521617 + .long 3217920847 + .long 536870912 + .long 3160890258 + .long 2377770267 + .long 1067364384 + .long 0 + .long 3220176896 + .long 2065784603 + .long 3218020857 + .long 3758096384 + .long 1013198318 + .long 3250111450 + .long 1067509877 + .long 0 + .long 3220176896 + .long 238550446 + .long 3218100152 + .long 2684354560 + .long 1006899917 + .long 2306566604 + .long 1067617265 + .long 0 + .long 3220176896 + .long 1655830135 + .long 3218149842 + .long 0 + .long 3161990338 + .long 1913604284 + .long 1067729523 + .long 0 + .long 3220176896 + .long 1062001470 + .long 3218199364 + .long 0 + .long 1013391572 + .long 2476548698 + .long 1067846634 + .long 0 + .long 3220176896 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 1261629236 + .long 1067968581 + .long 0 + .long 3220176896 + .long 3269558610 + .long 3218297872 + .long 536870912 + .long 1014221568 + .long 997322465 + .long 1068095345 + .long 0 + .long 3220176896 + .long 2484561409 + .long 3218346844 + .long 1073741824 + .long 3161508220 + .long 1296295961 + .long 1068226907 + .long 0 + .long 3220176896 + .long 1115219818 + .long 3218395618 + .long 0 + .long 3160555890 + .long 2962723252 + .long 1068363247 + .long 0 + .long 3220176896 + .long 1974149085 + .long 3218444186 + .long 3221225472 + .long 1008664000 + .long 4002549419 + .long 1068501644 + .long 0 + .long 3220176896 + .long 3711903686 + .long 3218492541 + .long 1073741824 + .long 3159428395 + .long 1234824733 + .long 1068574562 + .long 0 + .long 3220176896 + .long 821708191 + .long 3218540677 + .long 3758096384 + .long 1014254361 + .long 3996842794 + .long 1068649836 + .long 0 + .long 3220176896 + .long 824036583 + .long 3218588585 + .long 0 + .long 3155796978 + .long 2255197647 + .long 1068727457 + .long 0 + .long 3220176896 + .long 2796464483 + .long 3218636258 + .long 3221225472 + .long 1013394669 + .long 1638976426 + .long 1068807412 + .long 0 + .long 3220176896 + .long 1673302999 + .long 3218683690 + .long 2147483648 + .long 3160835121 + .long 1972483635 + .long 1068889689 + .long 0 + .long 3220176896 + .long 1135144330 + .long 3218730873 + .long 536870912 + .long 3160857217 + .long 1577996576 + .long 1068974276 + .long 0 + .long 3220176896 + .long 728580042 + .long 3218777800 + .long 1610612736 + .long 1014849296 + .long 1578746984 + .long 1069061160 + .long 0 + .long 3220176896 + .long 165764288 + .long 3218824464 + .long 3221225472 + .long 3160781666 + .long 1612193054 + .long 1069150328 + .long 0 + .long 3220176896 + .long 3623952103 + .long 3218870857 + .long 2684354560 + .long 1014502314 + .long 4133449816 + .long 1069241766 + .long 0 + .long 3220176896 + .long 2570175582 + .long 3218916974 + .long 1073741824 + .long 3159786766 + .long 1539072807 + .long 1069335462 + .long 0 + .long 3220176896 + .long 1535566729 + .long 3218962807 + .long 2147483648 + .long 3161805036 + .long 1945768569 + .long 1069431400 + .long 0 + .long 3220176896 + .long 939980347 + .long 3219008349 + .long 0 + .long 3160280457 + .long 3429717432 + .long 1069529566 + .long 0 + .long 3220176896 + .long 1391425750 + .long 3219053593 + .long 3221225472 + .long 1014878455 + .long 1312926554 + .long 1069588733 + .long 0 + .long 3220176896 + .long 3690502842 + .long 3219098532 + .long 3221225472 + .long 1009970207 + .long 1663679671 + .long 1069640022 + .long 0 + .long 3220176896 + .long 2269920951 + .long 3219135740 + .long 3758096384 + .long 1014188597 + .long 3952756490 + .long 1069692402 + .long 0 + .long 3220176896 + .long 2569207790 + .long 3219157895 + .long 1073741824 + .long 1015699969 + .long 69903290 + .long 1069745867 + .long 0 + .long 3220176896 + .long 1297975695 + .long 3219179888 + .long 3221225472 + .long 1015600087 + .long 2678847490 + .long 1069800406 + .long 0 + .long 3220176896 + .long 1411074851 + .long 3219201715 + .long 1610612736 + .long 1016001083 + .long 2272832445 + .long 1069856013 + .long 0 + .long 3220176896 + .long 1675549513 + .long 3219223373 + .long 3221225472 + .long 1015541490 + .long 1539668340 + .long 1069912679 + .long 0 + .long 3220176896 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 2482246777 + .long 1069970395 + .long 0 + .long 3220176896 + .long 2570316633 + .long 3219266169 + .long 1610612736 + .long 1015261105 + .long 2129093113 + .long 1070029153 + .long 0 + .long 3220176896 + .long 1289556703 + .long 3219287301 + .long 536870912 + .long 1015405172 + .long 1129922991 + .long 1070088944 + .long 0 + .long 3220176896 + .long 637203434 + .long 3219308251 + .long 3221225472 + .long 1011960193 + .long 3761365757 + .long 1070149758 + .long 0 + .long 3220176896 + .long 4242632757 + .long 3219329015 + .long 536870912 + .long 1013906630 + .long 752919289 + .long 1070211588 + .long 0 + .long 3220176896 + .long 2969983475 + .long 3219349592 + .long 2684354560 + .long 1015151795 + .long 3652612115 + .long 1070274422 + .long 0 + .long 3220176896 + .long 689983673 + .long 3219369978 + .long 3758096384 + .long 3162390053 + .long 1883353036 + .long 1070338253 + .long 0 + .long 3220176896 + .long 1397053140 + .long 3219390169 + .long 1610612736 + .long 3162728726 + .long 1403757309 + .long 1070403070 + .long 0 + .long 3220176896 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 3239527685 + .long 1070468863 + .long 0 + .long 3220176896 + .long 2610628921 + .long 3219429956 + .long 1610612736 + .long 1015185121 + .long 3489768009 + .long 1070535623 + .long 0 + .long 3220176896 + .long 3152274921 + .long 3219449546 + .long 3758096384 + .long 3160654483 + .long 2371640770 + .long 3218072499 + .long 0 + .long 3219128320 + .long 2460177814 + .long 3219468930 + .long 2147483648 + .long 1014633195 + .long 2309668539 + .long 3218003836 + .long 0 + .long 3219128320 + .long 881650848 + .long 3219488105 + .long 2147483648 + .long 1015502624 + .long 2081278341 + .long 3217934237 + .long 0 + .long 3219128320 + .long 3194290572 + .long 3219507067 + .long 2147483648 + .long 3162532330 + .long 3753901657 + .long 3217863712 + .long 0 + .long 3219128320 + .long 1427975391 + .long 3219525815 + .long 1073741824 + .long 1014124979 + .long 1403691706 + .long 3217792273 + .long 0 + .long 3219128320 + .long 636516413 + .long 3219544345 + .long 3758096384 + .long 3163307364 + .long 2583490354 + .long 3217719929 + .long 0 + .long 3219128320 + .long 1719614413 + .long 3219562654 + .long 0 + .long 1015799092 + .long 2546065654 + .long 3217646692 + .long 0 + .long 3219128320 + .long 1424664751 + .long 3219580740 + .long 3221225472 + .long 1015921667 + .long 1416934267 + .long 3217572573 + .long 0 + .long 3219128320 + .long 938475414 + .long 3219598600 + .long 0 + .long 3162559727 + .long 4187227697 + .long 3217497582 + .long 0 + .long 3219128320 + .long 1594061409 + .long 3219616231 + .long 2147483648 + .long 3161837518 + .long 3526603391 + .long 3217421732 + .long 0 + .long 3219128320 + .long 577417135 + .long 3219633631 + .long 2684354560 + .long 1014035767 + .long 1250776663 + .long 3217345034 + .long 0 + .long 3219128320 + .long 3814135665 + .long 3219650796 + .long 3221225472 + .long 1015662808 + .long 4019165092 + .long 3217267498 + .long 0 + .long 3219128320 + .long 201299822 + .long 3219667726 + .long 3758096384 + .long 1014428704 + .long 1852581091 + .long 3217189138 + .long 0 + .long 3219128320 + .long 263859903 + .long 3219684416 + .long 0 + .long 1015208636 + .long 2485417816 + .long 3217109964 + .long 0 + .long 3219128320 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 2586490530 + .long 3217028810 + .long 0 + .long 3219128320 + .long 2750387213 + .long 3219717068 + .long 2147483648 + .long 1013374889 + .long 1224902090 + .long 3216867281 + .long 0 + .long 3219128320 + .long 1234330619 + .long 3219733026 + .long 2684354560 + .long 3162756121 + .long 2285031318 + .long 3216704197 + .long 0 + .long 3219128320 + .long 4106737474 + .long 3219748734 + .long 2684354560 + .long 1015108729 + .long 3876290983 + .long 3216539583 + .long 0 + .long 3219128320 + .long 1207142209 + .long 3219764192 + .long 2147483648 + .long 1015221986 + .long 802660176 + .long 3216373465 + .long 0 + .long 3219128320 + .long 4012486548 + .long 3219779395 + .long 2684354560 + .long 3162185212 + .long 1726519029 + .long 3216205866 + .long 0 + .long 3219128320 + .long 2688952194 + .long 3219794343 + .long 0 + .long 1014048955 + .long 3382663878 + .long 3216036812 + .long 0 + .long 3219128320 + .long 453180130 + .long 3219809033 + .long 1073741824 + .long 1014927633 + .long 2598800519 + .long 3215750067 + .long 0 + .long 3219128320 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 1038988426 + .long 3215406294 + .long 0 + .long 3219128320 + .long 2653017361 + .long 3219837628 + .long 0 + .long 1015316414 + .long 1102361128 + .long 3215059765 + .long 0 + .long 3219128320 + .long 1477771776 + .long 3219851530 + .long 536870912 + .long 1015621338 + .long 2880516564 + .long 3214487049 + .long 0 + .long 3219128320 + .long 1056266002 + .long 3219865165 + .long 2684354560 + .long 1015985848 + .long 1220541286 + .long 3213681126 + .long 0 + .long 3219128320 + .long 1159294526 + .long 3219878531 + .long 536870912 + .long 1015793311 + .long 1279178457 + .long 3211590791 + .long 0 + .long 3219128320 + .long 1731563730 + .long 3219891626 + .long 536870912 + .long 3163023950 + .long 31019393 + .long 1065162441 + .long 0 + .long 3219128320 + .long 2892993834 + .long 3219904448 + .long 536870912 + .long 1015555495 + .long 3506991783 + .long 1066548842 + .long 0 + .long 3219128320 + .long 645027145 + .long 3219916996 + .long 3221225472 + .long 3160085887 + .long 2140183630 + .long 1067272748 + .long 0 + .long 3219128320 + .long 4051746225 + .long 3219929266 + .long 1610612736 + .long 1014423729 + .long 600368053 + .long 1067725893 + .long 0 + .long 3219128320 + .long 881357723 + .long 3219941259 + .long 3221225472 + .long 3161294538 + .long 913431823 + .long 1068092555 + .long 0 + .long 3219128320 + .long 557060597 + .long 3219952971 + .long 0 + .long 1012071286 + .long 1073154251 + .long 1068461489 + .long 0 + .long 3219128320 + .long 4093443164 + .long 3219964400 + .long 536870912 + .long 3162396513 + .long 3631910143 + .long 1068665791 + .long 0 + .long 3219128320 + .long 4097623923 + .long 3219975546 + .long 2684354560 + .long 1012824939 + .long 1380647130 + .long 1068852447 + .long 0 + .long 3219128320 + .long 1950234076 + .long 3219986407 + .long 536870912 + .long 1011941850 + .long 4049357271 + .long 1069040154 + .long 0 + .long 3219128320 + .long 3511535930 + .long 3219996980 + .long 2147483648 + .long 1015344978 + .long 1896722595 + .long 1069228886 + .long 0 + .long 3219128320 + .long 1942611595 + .long 3220007265 + .long 3221225472 + .long 1014926433 + .long 1699043957 + .long 1069418613 + .long 0 + .long 3219128320 + .long 3476196678 + .long 3220017259 + .long 0 + .long 3161741286 + .long 3296146332 + .long 3216969380 + .long 0 + .long 3218079744 + .long 1647878299 + .long 3220026962 + .long 3758096384 + .long 1014685415 + .long 3286832763 + .long 3216777748 + .long 0 + .long 3218079744 + .long 3066872380 + .long 3220036371 + .long 3221225472 + .long 3163044919 + .long 1962712856 + .long 3216585207 + .long 0 + .long 3218079744 + .long 1647164971 + .long 3220045486 + .long 2147483648 + .long 1015354602 + .long 3601629044 + .long 3216391785 + .long 0 + .long 3218079744 + .long 83265253 + .long 3220054305 + .long 1610612736 + .long 1015026887 + .long 165911977 + .long 3216197513 + .long 0 + .long 3218079744 + .long 1261158782 + .long 3220062826 + .long 2147483648 + .long 3163195192 + .long 1348311045 + .long 3216002418 + .long 0 + .long 3218079744 + .long 3964199186 + .long 3220071048 + .long 3758096384 + .long 1013017430 + .long 386665102 + .long 3215630470 + .long 0 + .long 3218079744 + .long 2873938189 + .long 3220078971 + .long 1610612736 + .long 1014827774 + .long 1991047213 + .long 3215237169 + .long 0 + .long 3218079744 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 4107121629 + .long 3214750787 + .long 0 + .long 3218079744 + .long 3370060660 + .long 3220093912 + .long 1610612736 + .long 3162270860 + .long 723478390 + .long 3213958438 + .long 0 + .long 3218079744 + .long 3882371427 + .long 3220100928 + .long 2147483648 + .long 3162407623 + .long 2382326656 + .long 3212045827 + .long 0 + .long 3218079744 + .long 2749658050 + .long 3220107640 + .long 1610612736 + .long 3162910986 + .long 2614369450 + .long 1065140432 + .long 0 + .long 3218079744 + .long 4220661975 + .long 3220114046 + .long 3221225472 + .long 3161795706 + .long 3587565429 + .long 1066624384 + .long 0 + .long 3218079744 + .long 4151720666 + .long 3220120146 + .long 0 + .long 1015155896 + .long 2886567144 + .long 1067426796 + .long 0 + .long 3218079744 + .long 2892293513 + .long 3220125939 + .long 2684354560 + .long 1014856623 + .long 1765797566 + .long 1067840895 + .long 0 + .long 3218079744 + .long 990588717 + .long 3220131424 + .long 3758096384 + .long 1014558209 + .long 240740309 + .long 1068244255 + .long 0 + .long 3218079744 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 2034433221 + .long 3215832935 + .long 0 + .long 3217031168 + .long 2745245815 + .long 3220141465 + .long 3221225472 + .long 3163049777 + .long 304938777 + .long 3215427665 + .long 0 + .long 3217031168 + .long 4201728937 + .long 3220146020 + .long 1610612736 + .long 3162157654 + .long 3299146087 + .long 3215021530 + .long 0 + .long 3217031168 + .long 617154971 + .long 3220150265 + .long 3758096384 + .long 1015950048 + .long 1953696209 + .long 3214295171 + .long 0 + .long 3217031168 + .long 2131272983 + .long 3220154197 + .long 3221225472 + .long 1015521448 + .long 3987691371 + .long 3213074188 + .long 0 + .long 3217031168 + .long 1905645377 + .long 3220157817 + .long 1610612736 + .long 3161571244 + .long 718380601 + .long 1063597621 + .long 0 + .long 3217031168 + .long 1893834707 + .long 3220161124 + .long 1610612736 + .long 3162631302 + .long 3272206680 + .long 1066288081 + .long 0 + .long 3217031168 + .long 4251821691 + .long 3220164117 + .long 2147483648 + .long 1014357359 + .long 257503056 + .long 1067164005 + .long 0 + .long 3217031168 + .long 2748392742 + .long 3220166797 + .long 536870912 + .long 1015578102 + .long 711626851 + .long 3214400320 + .long 0 + .long 3215982592 + .long 4240268041 + .long 3220169162 + .long 536870912 + .long 3161072611 + .long 2523975598 + .long 3213273348 + .long 0 + .long 3215982592 + .long 2902558778 + .long 3220171213 + .long 3221225472 + .long 3160744428 + .long 3237733378 + .long 1062425136 + .long 0 + .long 3215982592 + .long 1703834029 + .long 3220172949 + .long 3758096384 + .long 3162512012 + .long 1003003824 + .long 1066107496 + .long 0 + .long 3215982592 + .long 3816385918 + .long 3220174369 + .long 536870912 + .long 1013733308 + .long 2896342633 + .long 3212231467 + .long 0 + .long 3214934016 + .long 4026464093 + .long 3220175474 + .long 3221225472 + .long 1015592141 + .long 561145352 + .long 1065056936 + .long 0 + .long 3214934016 + .long 1619315981 + .long 3220176264 + .long 1073741824 + .long 1015100749 + .long 210035182 + .long 1064007864 + .long 0 + .long 3213885440 + .long 379294427 + .long 3220176738 + .long 3221225472 + .long 3162889635 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 210035182 + .long 3211491512 + .long 0 + .long 1066401792 + .long 379294427 + .long 3220176738 + .long 3221225472 + .long 3162889635 + .long 561145352 + .long 3212540584 + .long 0 + .long 1067450368 + .long 1619315981 + .long 3220176264 + .long 1073741824 + .long 1015100749 + .long 2896342633 + .long 1064747819 + .long 0 + .long 1067450368 + .long 4026464093 + .long 3220175474 + .long 3221225472 + .long 1015592141 + .long 1003003824 + .long 3213591144 + .long 0 + .long 1068498944 + .long 3816385918 + .long 3220174369 + .long 536870912 + .long 1013733308 + .long 3237733378 + .long 3209908784 + .long 0 + .long 1068498944 + .long 1703834029 + .long 3220172949 + .long 3758096384 + .long 3162512012 + .long 2523975598 + .long 1065789700 + .long 0 + .long 1068498944 + .long 2902558778 + .long 3220171213 + .long 3221225472 + .long 3160744428 + .long 711626851 + .long 1066916672 + .long 0 + .long 1068498944 + .long 4240268041 + .long 3220169162 + .long 536870912 + .long 3161072611 + .long 257503056 + .long 3214647653 + .long 0 + .long 1069547520 + .long 2748392742 + .long 3220166797 + .long 536870912 + .long 1015578102 + .long 3272206680 + .long 3213771729 + .long 0 + .long 1069547520 + .long 4251821691 + .long 3220164117 + .long 2147483648 + .long 1014357359 + .long 718380601 + .long 3211081269 + .long 0 + .long 1069547520 + .long 1893834707 + .long 3220161124 + .long 1610612736 + .long 3162631302 + .long 3987691371 + .long 1065590540 + .long 0 + .long 1069547520 + .long 1905645377 + .long 3220157817 + .long 1610612736 + .long 3161571244 + .long 1953696209 + .long 1066811523 + .long 0 + .long 1069547520 + .long 2131272983 + .long 3220154197 + .long 3221225472 + .long 1015521448 + .long 3299146087 + .long 1067537882 + .long 0 + .long 1069547520 + .long 617154971 + .long 3220150265 + .long 3758096384 + .long 1015950048 + .long 304938777 + .long 1067944017 + .long 0 + .long 1069547520 + .long 4201728937 + .long 3220146020 + .long 1610612736 + .long 3162157654 + .long 2034433221 + .long 1068349287 + .long 0 + .long 1069547520 + .long 2745245815 + .long 3220141465 + .long 3221225472 + .long 3163049777 + .long 240740309 + .long 3215727903 + .long 0 + .long 1070596096 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 1765797566 + .long 3215324543 + .long 0 + .long 1070596096 + .long 990588717 + .long 3220131424 + .long 3758096384 + .long 1014558209 + .long 2886567144 + .long 3214910444 + .long 0 + .long 1070596096 + .long 2892293513 + .long 3220125939 + .long 2684354560 + .long 1014856623 + .long 3587565429 + .long 3214108032 + .long 0 + .long 1070596096 + .long 4151720666 + .long 3220120146 + .long 0 + .long 1015155896 + .long 2614369450 + .long 3212624080 + .long 0 + .long 1070596096 + .long 4220661975 + .long 3220114046 + .long 3221225472 + .long 3161795706 + .long 2382326656 + .long 1064562179 + .long 0 + .long 1070596096 + .long 2749658050 + .long 3220107640 + .long 1610612736 + .long 3162910986 + .long 723478390 + .long 1066474790 + .long 0 + .long 1070596096 + .long 3882371427 + .long 3220100928 + .long 2147483648 + .long 3162407623 + .long 4107121629 + .long 1067267139 + .long 0 + .long 1070596096 + .long 3370060660 + .long 3220093912 + .long 1610612736 + .long 3162270860 + .long 1991047213 + .long 1067753521 + .long 0 + .long 1070596096 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 386665102 + .long 1068146822 + .long 0 + .long 1070596096 + .long 2873938189 + .long 3220078971 + .long 1610612736 + .long 1014827774 + .long 1348311045 + .long 1068518770 + .long 0 + .long 1070596096 + .long 3964199186 + .long 3220071048 + .long 3758096384 + .long 1013017430 + .long 165911977 + .long 1068713865 + .long 0 + .long 1070596096 + .long 1261158782 + .long 3220062826 + .long 2147483648 + .long 3163195192 + .long 3601629044 + .long 1068908137 + .long 0 + .long 1070596096 + .long 83265253 + .long 3220054305 + .long 1610612736 + .long 1015026887 + .long 1962712856 + .long 1069101559 + .long 0 + .long 1070596096 + .long 1647164971 + .long 3220045486 + .long 2147483648 + .long 1015354602 + .long 3286832763 + .long 1069294100 + .long 0 + .long 1070596096 + .long 3066872380 + .long 3220036371 + .long 3221225472 + .long 3163044919 + .long 3296146332 + .long 1069485732 + .long 0 + .long 1070596096 + .long 1647878299 + .long 3220026962 + .long 3758096384 + .long 1014685415 + .long 1699043957 + .long 3216902261 + .long 0 + .long 1071644672 + .long 3476196678 + .long 3220017259 + .long 0 + .long 3161741286 + .long 1896722595 + .long 3216712534 + .long 0 + .long 1071644672 + .long 1942611595 + .long 3220007265 + .long 3221225472 + .long 1014926433 + .long 4049357271 + .long 3216523802 + .long 0 + .long 1071644672 + .long 3511535930 + .long 3219996980 + .long 2147483648 + .long 1015344978 + .long 1380647130 + .long 3216336095 + .long 0 + .long 1071644672 + .long 1950234076 + .long 3219986407 + .long 536870912 + .long 1011941850 + .long 3631910143 + .long 3216149439 + .long 0 + .long 1071644672 + .long 4097623923 + .long 3219975546 + .long 2684354560 + .long 1012824939 + .long 1073154251 + .long 3215945137 + .long 0 + .long 1071644672 + .long 4093443164 + .long 3219964400 + .long 536870912 + .long 3162396513 + .long 913431823 + .long 3215576203 + .long 0 + .long 1071644672 + .long 557060597 + .long 3219952971 + .long 0 + .long 1012071286 + .long 600368053 + .long 3215209541 + .long 0 + .long 1071644672 + .long 881357723 + .long 3219941259 + .long 3221225472 + .long 3161294538 + .long 2140183630 + .long 3214756396 + .long 0 + .long 1071644672 + .long 4051746225 + .long 3219929266 + .long 1610612736 + .long 1014423729 + .long 3506991783 + .long 3214032490 + .long 0 + .long 1071644672 + .long 645027145 + .long 3219916996 + .long 3221225472 + .long 3160085887 + .long 31019393 + .long 3212646089 + .long 0 + .long 1071644672 + .long 2892993834 + .long 3219904448 + .long 536870912 + .long 1015555495 + .long 1279178457 + .long 1064107143 + .long 0 + .long 1071644672 + .long 1731563730 + .long 3219891626 + .long 536870912 + .long 3163023950 + .long 1220541286 + .long 1066197478 + .long 0 + .long 1071644672 + .long 1159294526 + .long 3219878531 + .long 536870912 + .long 1015793311 + .long 2880516564 + .long 1067003401 + .long 0 + .long 1071644672 + .long 1056266002 + .long 3219865165 + .long 2684354560 + .long 1015985848 + .long 1102361128 + .long 1067576117 + .long 0 + .long 1071644672 + .long 1477771776 + .long 3219851530 + .long 536870912 + .long 1015621338 + .long 1038988426 + .long 1067922646 + .long 0 + .long 1071644672 + .long 2653017361 + .long 3219837628 + .long 0 + .long 1015316414 + .long 2598800519 + .long 1068266419 + .long 0 + .long 1071644672 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 3382663878 + .long 1068553164 + .long 0 + .long 1071644672 + .long 453180130 + .long 3219809033 + .long 1073741824 + .long 1014927633 + .long 1726519029 + .long 1068722218 + .long 0 + .long 1071644672 + .long 2688952194 + .long 3219794343 + .long 0 + .long 1014048955 + .long 802660176 + .long 1068889817 + .long 0 + .long 1071644672 + .long 4012486548 + .long 3219779395 + .long 2684354560 + .long 3162185212 + .long 3876290983 + .long 1069055935 + .long 0 + .long 1071644672 + .long 1207142209 + .long 3219764192 + .long 2147483648 + .long 1015221986 + .long 2285031318 + .long 1069220549 + .long 0 + .long 1071644672 + .long 4106737474 + .long 3219748734 + .long 2684354560 + .long 1015108729 + .long 1224902090 + .long 1069383633 + .long 0 + .long 1071644672 + .long 1234330619 + .long 3219733026 + .long 2684354560 + .long 3162756121 + .long 2586490530 + .long 1069545162 + .long 0 + .long 1071644672 + .long 2750387213 + .long 3219717068 + .long 2147483648 + .long 1013374889 + .long 2485417816 + .long 1069626316 + .long 0 + .long 1071644672 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 1852581091 + .long 1069705490 + .long 0 + .long 1071644672 + .long 263859903 + .long 3219684416 + .long 0 + .long 1015208636 + .long 4019165092 + .long 1069783850 + .long 0 + .long 1071644672 + .long 201299822 + .long 3219667726 + .long 3758096384 + .long 1014428704 + .long 1250776663 + .long 1069861386 + .long 0 + .long 1071644672 + .long 3814135665 + .long 3219650796 + .long 3221225472 + .long 1015662808 + .long 3526603391 + .long 1069938084 + .long 0 + .long 1071644672 + .long 577417135 + .long 3219633631 + .long 2684354560 + .long 1014035767 + .long 4187227697 + .long 1070013934 + .long 0 + .long 1071644672 + .long 1594061409 + .long 3219616231 + .long 2147483648 + .long 3161837518 + .long 1416934267 + .long 1070088925 + .long 0 + .long 1071644672 + .long 938475414 + .long 3219598600 + .long 0 + .long 3162559727 + .long 2546065654 + .long 1070163044 + .long 0 + .long 1071644672 + .long 1424664751 + .long 3219580740 + .long 3221225472 + .long 1015921667 + .long 2583490354 + .long 1070236281 + .long 0 + .long 1071644672 + .long 1719614413 + .long 3219562654 + .long 0 + .long 1015799092 + .long 1403691706 + .long 1070308625 + .long 0 + .long 1071644672 + .long 636516413 + .long 3219544345 + .long 3758096384 + .long 3163307364 + .long 3753901657 + .long 1070380064 + .long 0 + .long 1071644672 + .long 1427975391 + .long 3219525815 + .long 1073741824 + .long 1014124979 + .long 2081278341 + .long 1070450589 + .long 0 + .long 1071644672 + .long 3194290572 + .long 3219507067 + .long 2147483648 + .long 3162532330 + .long 2309668539 + .long 1070520188 + .long 0 + .long 1071644672 + .long 881650848 + .long 3219488105 + .long 2147483648 + .long 1015502624 + .long 2371640770 + .long 1070588851 + .long 0 + .long 1071644672 + .long 2460177814 + .long 3219468930 + .long 2147483648 + .long 1014633195 + .long 3489768009 + .long 3218019271 + .long 0 + .long 1072693248 + .long 3152274921 + .long 3219449546 + .long 3758096384 + .long 3160654483 + .long 3239527685 + .long 3217952511 + .long 0 + .long 1072693248 + .long 2610628921 + .long 3219429956 + .long 1610612736 + .long 1015185121 + .long 1403757309 + .long 3217886718 + .long 0 + .long 1072693248 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 1883353036 + .long 3217821901 + .long 0 + .long 1072693248 + .long 1397053140 + .long 3219390169 + .long 1610612736 + .long 3162728726 + .long 3652612115 + .long 3217758070 + .long 0 + .long 1072693248 + .long 689983673 + .long 3219369978 + .long 3758096384 + .long 3162390053 + .long 752919289 + .long 3217695236 + .long 0 + .long 1072693248 + .long 2969983475 + .long 3219349592 + .long 2684354560 + .long 1015151795 + .long 3761365757 + .long 3217633406 + .long 0 + .long 1072693248 + .long 4242632757 + .long 3219329015 + .long 536870912 + .long 1013906630 + .long 1129922991 + .long 3217572592 + .long 0 + .long 1072693248 + .long 637203434 + .long 3219308251 + .long 3221225472 + .long 1011960193 + .long 2129093113 + .long 3217512801 + .long 0 + .long 1072693248 + .long 1289556703 + .long 3219287301 + .long 536870912 + .long 1015405172 + .long 2482246777 + .long 3217454043 + .long 0 + .long 1072693248 + .long 2570316633 + .long 3219266169 + .long 1610612736 + .long 1015261105 + .long 1539668340 + .long 3217396327 + .long 0 + .long 1072693248 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 2272832445 + .long 3217339661 + .long 0 + .long 1072693248 + .long 1675549513 + .long 3219223373 + .long 3221225472 + .long 1015541490 + .long 2678847490 + .long 3217284054 + .long 0 + .long 1072693248 + .long 1411074851 + .long 3219201715 + .long 1610612736 + .long 1016001083 + .long 69903290 + .long 3217229515 + .long 0 + .long 1072693248 + .long 1297975695 + .long 3219179888 + .long 3221225472 + .long 1015600087 + .long 3952756490 + .long 3217176050 + .long 0 + .long 1072693248 + .long 2569207790 + .long 3219157895 + .long 1073741824 + .long 1015699969 + .long 1663679671 + .long 3217123670 + .long 0 + .long 1072693248 + .long 2269920951 + .long 3219135740 + .long 3758096384 + .long 1014188597 + .long 1312926554 + .long 3217072381 + .long 0 + .long 1072693248 + .long 3690502842 + .long 3219098532 + .long 3221225472 + .long 1009970207 + .long 3429717432 + .long 3217013214 + .long 0 + .long 1072693248 + .long 1391425750 + .long 3219053593 + .long 3221225472 + .long 1014878455 + .long 1945768569 + .long 3216915048 + .long 0 + .long 1072693248 + .long 939980347 + .long 3219008349 + .long 0 + .long 3160280457 + .long 1539072807 + .long 3216819110 + .long 0 + .long 1072693248 + .long 1535566729 + .long 3218962807 + .long 2147483648 + .long 3161805036 + .long 4133449816 + .long 3216725414 + .long 0 + .long 1072693248 + .long 2570175582 + .long 3218916974 + .long 1073741824 + .long 3159786766 + .long 1612193054 + .long 3216633976 + .long 0 + .long 1072693248 + .long 3623952103 + .long 3218870857 + .long 2684354560 + .long 1014502314 + .long 1578746984 + .long 3216544808 + .long 0 + .long 1072693248 + .long 165764288 + .long 3218824464 + .long 3221225472 + .long 3160781666 + .long 1577996576 + .long 3216457924 + .long 0 + .long 1072693248 + .long 728580042 + .long 3218777800 + .long 1610612736 + .long 1014849296 + .long 1972483635 + .long 3216373337 + .long 0 + .long 1072693248 + .long 1135144330 + .long 3218730873 + .long 536870912 + .long 3160857217 + .long 1638976426 + .long 3216291060 + .long 0 + .long 1072693248 + .long 1673302999 + .long 3218683690 + .long 2147483648 + .long 3160835121 + .long 2255197647 + .long 3216211105 + .long 0 + .long 1072693248 + .long 2796464483 + .long 3218636258 + .long 3221225472 + .long 1013394669 + .long 3996842794 + .long 3216133484 + .long 0 + .long 1072693248 + .long 824036583 + .long 3218588585 + .long 0 + .long 3155796978 + .long 1234824733 + .long 3216058210 + .long 0 + .long 1072693248 + .long 821708191 + .long 3218540677 + .long 3758096384 + .long 1014254361 + .long 4002549419 + .long 3215985292 + .long 0 + .long 1072693248 + .long 3711903686 + .long 3218492541 + .long 1073741824 + .long 3159428395 + .long 2962723252 + .long 3215846895 + .long 0 + .long 1072693248 + .long 1974149085 + .long 3218444186 + .long 3221225472 + .long 1008664000 + .long 1296295961 + .long 3215710555 + .long 0 + .long 1072693248 + .long 1115219818 + .long 3218395618 + .long 0 + .long 3160555890 + .long 997322465 + .long 3215578993 + .long 0 + .long 1072693248 + .long 2484561409 + .long 3218346844 + .long 1073741824 + .long 3161508220 + .long 1261629236 + .long 3215452229 + .long 0 + .long 1072693248 + .long 3269558610 + .long 3218297872 + .long 536870912 + .long 1014221568 + .long 2476548698 + .long 3215330282 + .long 0 + .long 1072693248 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 1913604284 + .long 3215213171 + .long 0 + .long 1072693248 + .long 1062001470 + .long 3218199364 + .long 0 + .long 1013391572 + .long 2306566604 + .long 3215100913 + .long 0 + .long 1072693248 + .long 1655830135 + .long 3218149842 + .long 0 + .long 3161990338 + .long 3250111450 + .long 3214993525 + .long 0 + .long 1072693248 + .long 238550446 + .long 3218100152 + .long 2684354560 + .long 1006899917 + .long 2377770267 + .long 3214848032 + .long 0 + .long 1072693248 + .long 2065784603 + .long 3218020857 + .long 3758096384 + .long 1013198318 + .long 288924873 + .long 3214652833 + .long 0 + .long 1072693248 + .long 3846521617 + .long 3217920847 + .long 536870912 + .long 3160890258 + .long 1935888103 + .long 3214467466 + .long 0 + .long 1072693248 + .long 1786662755 + .long 3217820546 + .long 2147483648 + .long 1008398659 + .long 2660899430 + .long 3214291960 + .long 0 + .long 1072693248 + .long 632292433 + .long 3217719968 + .long 3758096384 + .long 1013479685 + .long 18115067 + .long 3214126342 + .long 0 + .long 1072693248 + .long 1013556747 + .long 3217619128 + .long 2684354560 + .long 1013083417 + .long 2346447124 + .long 3213970635 + .long 0 + .long 1072693248 + .long 3729833777 + .long 3217518041 + .long 3758096384 + .long 3160528366 + .long 1672287667 + .long 3213764289 + .long 0 + .long 1072693248 + .long 1149976518 + .long 3217416724 + .long 1610612736 + .long 3160748543 + .long 3451754846 + .long 3213492662 + .long 0 + .long 1072693248 + .long 2972270170 + .long 3217315190 + .long 1073741824 + .long 1012041122 + .long 1037482584 + .long 3213240992 + .long 0 + .long 1072693248 + .long 1854824762 + .long 3217213456 + .long 2684354560 + .long 3159437312 + .long 2592747447 + .long 3213009315 + .long 0 + .long 1072693248 + .long 3470456183 + .long 3217111536 + .long 1073741824 + .long 1013261123 + .long 2402293340 + .long 3212758471 + .long 0 + .long 1072693248 + .long 1453945614 + .long 3216987726 + .long 1610612736 + .long 3158976260 + .long 1227670166 + .long 3212375297 + .long 0 + .long 1072693248 + .long 3349070549 + .long 3216783237 + .long 3758096384 + .long 1009054621 + .long 393047345 + .long 3212032302 + .long 0 + .long 1072693248 + .long 3156849708 + .long 3216578470 + .long 3221225472 + .long 1010706200 + .long 1118107366 + .long 3211670787 + .long 0 + .long 1072693248 + .long 177906713 + .long 3216373456 + .long 3221225472 + .long 1011826722 + .long 4269262315 + .long 3211145810 + .long 0 + .long 1072693248 + .long 2462980598 + .long 3216168224 + .long 2684354560 + .long 1011458184 + .long 3810305407 + .long 3210663220 + .long 0 + .long 1072693248 + .long 2046304480 + .long 3215943022 + .long 3758096384 + .long 1008919019 + .long 220529721 + .long 3209935929 + .long 0 + .long 1072693248 + .long 4044216340 + .long 3215531877 + .long 0 + .long 1009324733 + .long 69373323 + .long 3209049152 + .long 0 + .long 1072693248 + .long 1972655565 + .long 3215120485 + .long 1073741824 + .long 3156641526 + .long 3650591271 + .long 3207838971 + .long 0 + .long 1072693248 + .long 4154680958 + .long 3214483797 + .long 0 + .long 1006312803 + .long 2376373521 + .long 3205741868 + .long 0 + .long 1072693248 + .long 4242458500 + .long 3213435345 + .long 2684354560 + .long 3156838286 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2376373521 + .long 3205741868 + .long 0 + .long 1072693248 + .long 4242458500 + .long 1065951697 + .long 2684354560 + .long 1009354638 + .long 3650591271 + .long 3207838971 + .long 0 + .long 1072693248 + .long 4154680958 + .long 1067000149 + .long 0 + .long 3153796451 + .long 69373323 + .long 3209049152 + .long 0 + .long 1072693248 + .long 1972655565 + .long 1067636837 + .long 1073741824 + .long 1009157878 + .long 220529721 + .long 3209935929 + .long 0 + .long 1072693248 + .long 4044216340 + .long 1068048229 + .long 0 + .long 3156808381 + .long 3810305407 + .long 3210663220 + .long 0 + .long 1072693248 + .long 2046304480 + .long 1068459374 + .long 3758096384 + .long 3156402667 + .long 4269262315 + .long 3211145810 + .long 0 + .long 1072693248 + .long 2462980598 + .long 1068684576 + .long 2684354560 + .long 3158941832 + .long 1118107366 + .long 3211670787 + .long 0 + .long 1072693248 + .long 177906713 + .long 1068889808 + .long 3221225472 + .long 3159310370 + .long 393047345 + .long 3212032302 + .long 0 + .long 1072693248 + .long 3156849708 + .long 1069094822 + .long 3221225472 + .long 3158189848 + .long 1227670166 + .long 3212375297 + .long 0 + .long 1072693248 + .long 3349070549 + .long 1069299589 + .long 3758096384 + .long 3156538269 + .long 2402293340 + .long 3212758471 + .long 0 + .long 1072693248 + .long 1453945614 + .long 1069504078 + .long 1610612736 + .long 1011492612 + .long 2592747447 + .long 3213009315 + .long 0 + .long 1072693248 + .long 3470456183 + .long 1069627888 + .long 1073741824 + .long 3160744771 + .long 1037482584 + .long 3213240992 + .long 0 + .long 1072693248 + .long 1854824762 + .long 1069729808 + .long 2684354560 + .long 1011953664 + .long 3451754846 + .long 3213492662 + .long 0 + .long 1072693248 + .long 2972270170 + .long 1069831542 + .long 1073741824 + .long 3159524770 + .long 1672287667 + .long 3213764289 + .long 0 + .long 1072693248 + .long 1149976518 + .long 1069933076 + .long 1610612736 + .long 1013264895 + .long 2346447124 + .long 3213970635 + .long 0 + .long 1072693248 + .long 3729833777 + .long 1070034393 + .long 3758096384 + .long 1013044718 + .long 18115067 + .long 3214126342 + .long 0 + .long 1072693248 + .long 1013556747 + .long 1070135480 + .long 2684354560 + .long 3160567065 + .long 2660899430 + .long 3214291960 + .long 0 + .long 1072693248 + .long 632292433 + .long 1070236320 + .long 3758096384 + .long 3160963333 + .long 1935888103 + .long 3214467466 + .long 0 + .long 1072693248 + .long 1786662755 + .long 1070336898 + .long 2147483648 + .long 3155882307 + .long 288924873 + .long 3214652833 + .long 0 + .long 1072693248 + .long 3846521617 + .long 1070437199 + .long 536870912 + .long 1013406610 + .long 2377770267 + .long 3214848032 + .long 0 + .long 1072693248 + .long 2065784603 + .long 1070537209 + .long 3758096384 + .long 3160681966 + .long 3250111450 + .long 3214993525 + .long 0 + .long 1072693248 + .long 238550446 + .long 1070616504 + .long 2684354560 + .long 3154383565 + .long 2306566604 + .long 3215100913 + .long 0 + .long 1072693248 + .long 1655830135 + .long 1070666194 + .long 0 + .long 1014506690 + .long 1913604284 + .long 3215213171 + .long 0 + .long 1072693248 + .long 1062001470 + .long 1070715716 + .long 0 + .long 3160875220 + .long 2476548698 + .long 3215330282 + .long 0 + .long 1072693248 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 1261629236 + .long 3215452229 + .long 0 + .long 1072693248 + .long 3269558610 + .long 1070814224 + .long 536870912 + .long 3161705216 + .long 997322465 + .long 3215578993 + .long 0 + .long 1072693248 + .long 2484561409 + .long 1070863196 + .long 1073741824 + .long 1014024572 + .long 1296295961 + .long 3215710555 + .long 0 + .long 1072693248 + .long 1115219818 + .long 1070911970 + .long 0 + .long 1013072242 + .long 2962723252 + .long 3215846895 + .long 0 + .long 1072693248 + .long 1974149085 + .long 1070960538 + .long 3221225472 + .long 3156147648 + .long 4002549419 + .long 3215985292 + .long 0 + .long 1072693248 + .long 3711903686 + .long 1071008893 + .long 1073741824 + .long 1011944747 + .long 1234824733 + .long 3216058210 + .long 0 + .long 1072693248 + .long 821708191 + .long 1071057029 + .long 3758096384 + .long 3161738009 + .long 3996842794 + .long 3216133484 + .long 0 + .long 1072693248 + .long 824036583 + .long 1071104937 + .long 0 + .long 1008313330 + .long 2255197647 + .long 3216211105 + .long 0 + .long 1072693248 + .long 2796464483 + .long 1071152610 + .long 3221225472 + .long 3160878317 + .long 1638976426 + .long 3216291060 + .long 0 + .long 1072693248 + .long 1673302999 + .long 1071200042 + .long 2147483648 + .long 1013351473 + .long 1972483635 + .long 3216373337 + .long 0 + .long 1072693248 + .long 1135144330 + .long 1071247225 + .long 536870912 + .long 1013373569 + .long 1577996576 + .long 3216457924 + .long 0 + .long 1072693248 + .long 728580042 + .long 1071294152 + .long 1610612736 + .long 3162332944 + .long 1578746984 + .long 3216544808 + .long 0 + .long 1072693248 + .long 165764288 + .long 1071340816 + .long 3221225472 + .long 1013298018 + .long 1612193054 + .long 3216633976 + .long 0 + .long 1072693248 + .long 3623952103 + .long 1071387209 + .long 2684354560 + .long 3161985962 + .long 4133449816 + .long 3216725414 + .long 0 + .long 1072693248 + .long 2570175582 + .long 1071433326 + .long 1073741824 + .long 1012303118 + .long 1539072807 + .long 3216819110 + .long 0 + .long 1072693248 + .long 1535566729 + .long 1071479159 + .long 2147483648 + .long 1014321388 + .long 1945768569 + .long 3216915048 + .long 0 + .long 1072693248 + .long 939980347 + .long 1071524701 + .long 0 + .long 1012796809 + .long 3429717432 + .long 3217013214 + .long 0 + .long 1072693248 + .long 1391425750 + .long 1071569945 + .long 3221225472 + .long 3162362103 + .long 1312926554 + .long 3217072381 + .long 0 + .long 1072693248 + .long 3690502842 + .long 1071614884 + .long 3221225472 + .long 3157453855 + .long 1663679671 + .long 3217123670 + .long 0 + .long 1072693248 + .long 2269920951 + .long 1071652092 + .long 3758096384 + .long 3161672245 + .long 3952756490 + .long 3217176050 + .long 0 + .long 1072693248 + .long 2569207790 + .long 1071674247 + .long 1073741824 + .long 3163183617 + .long 69903290 + .long 3217229515 + .long 0 + .long 1072693248 + .long 1297975695 + .long 1071696240 + .long 3221225472 + .long 3163083735 + .long 2678847490 + .long 3217284054 + .long 0 + .long 1072693248 + .long 1411074851 + .long 1071718067 + .long 1610612736 + .long 3163484731 + .long 2272832445 + .long 3217339661 + .long 0 + .long 1072693248 + .long 1675549513 + .long 1071739725 + .long 3221225472 + .long 3163025138 + .long 1539668340 + .long 3217396327 + .long 0 + .long 1072693248 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 2482246777 + .long 3217454043 + .long 0 + .long 1072693248 + .long 2570316633 + .long 1071782521 + .long 1610612736 + .long 3162744753 + .long 2129093113 + .long 3217512801 + .long 0 + .long 1072693248 + .long 1289556703 + .long 1071803653 + .long 536870912 + .long 3162888820 + .long 1129922991 + .long 3217572592 + .long 0 + .long 1072693248 + .long 637203434 + .long 1071824603 + .long 3221225472 + .long 3159443841 + .long 3761365757 + .long 3217633406 + .long 0 + .long 1072693248 + .long 4242632757 + .long 1071845367 + .long 536870912 + .long 3161390278 + .long 752919289 + .long 3217695236 + .long 0 + .long 1072693248 + .long 2969983475 + .long 1071865944 + .long 2684354560 + .long 3162635443 + .long 3652612115 + .long 3217758070 + .long 0 + .long 1072693248 + .long 689983673 + .long 1071886330 + .long 3758096384 + .long 1014906405 + .long 1883353036 + .long 3217821901 + .long 0 + .long 1072693248 + .long 1397053140 + .long 1071906521 + .long 1610612736 + .long 1015245078 + .long 1403757309 + .long 3217886718 + .long 0 + .long 1072693248 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 3239527685 + .long 3217952511 + .long 0 + .long 1072693248 + .long 2610628921 + .long 1071946308 + .long 1610612736 + .long 3162668769 + .long 3489768009 + .long 3218019271 + .long 0 + .long 1072693248 + .long 3152274921 + .long 1071965898 + .long 3758096384 + .long 1013170835 + .long 2371640770 + .long 1070588851 + .long 0 + .long 1071644672 + .long 2460177814 + .long 1071985282 + .long 2147483648 + .long 3162116843 + .long 2309668539 + .long 1070520188 + .long 0 + .long 1071644672 + .long 881650848 + .long 1072004457 + .long 2147483648 + .long 3162986272 + .long 2081278341 + .long 1070450589 + .long 0 + .long 1071644672 + .long 3194290572 + .long 1072023419 + .long 2147483648 + .long 1015048682 + .long 3753901657 + .long 1070380064 + .long 0 + .long 1071644672 + .long 1427975391 + .long 1072042167 + .long 1073741824 + .long 3161608627 + .long 1403691706 + .long 1070308625 + .long 0 + .long 1071644672 + .long 636516413 + .long 1072060697 + .long 3758096384 + .long 1015823716 + .long 2583490354 + .long 1070236281 + .long 0 + .long 1071644672 + .long 1719614413 + .long 1072079006 + .long 0 + .long 3163282740 + .long 2546065654 + .long 1070163044 + .long 0 + .long 1071644672 + .long 1424664751 + .long 1072097092 + .long 3221225472 + .long 3163405315 + .long 1416934267 + .long 1070088925 + .long 0 + .long 1071644672 + .long 938475414 + .long 1072114952 + .long 0 + .long 1015076079 + .long 4187227697 + .long 1070013934 + .long 0 + .long 1071644672 + .long 1594061409 + .long 1072132583 + .long 2147483648 + .long 1014353870 + .long 3526603391 + .long 1069938084 + .long 0 + .long 1071644672 + .long 577417135 + .long 1072149983 + .long 2684354560 + .long 3161519415 + .long 1250776663 + .long 1069861386 + .long 0 + .long 1071644672 + .long 3814135665 + .long 1072167148 + .long 3221225472 + .long 3163146456 + .long 4019165092 + .long 1069783850 + .long 0 + .long 1071644672 + .long 201299822 + .long 1072184078 + .long 3758096384 + .long 3161912352 + .long 1852581091 + .long 1069705490 + .long 0 + .long 1071644672 + .long 263859903 + .long 1072200768 + .long 0 + .long 3162692284 + .long 2485417816 + .long 1069626316 + .long 0 + .long 1071644672 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 2586490530 + .long 1069545162 + .long 0 + .long 1071644672 + .long 2750387213 + .long 1072233420 + .long 2147483648 + .long 3160858537 + .long 1224902090 + .long 1069383633 + .long 0 + .long 1071644672 + .long 1234330619 + .long 1072249378 + .long 2684354560 + .long 1015272473 + .long 2285031318 + .long 1069220549 + .long 0 + .long 1071644672 + .long 4106737474 + .long 1072265086 + .long 2684354560 + .long 3162592377 + .long 3876290983 + .long 1069055935 + .long 0 + .long 1071644672 + .long 1207142209 + .long 1072280544 + .long 2147483648 + .long 3162705634 + .long 802660176 + .long 1068889817 + .long 0 + .long 1071644672 + .long 4012486548 + .long 1072295747 + .long 2684354560 + .long 1014701564 + .long 1726519029 + .long 1068722218 + .long 0 + .long 1071644672 + .long 2688952194 + .long 1072310695 + .long 0 + .long 3161532603 + .long 3382663878 + .long 1068553164 + .long 0 + .long 1071644672 + .long 453180130 + .long 1072325385 + .long 1073741824 + .long 3162411281 + .long 2598800519 + .long 1068266419 + .long 0 + .long 1071644672 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 1038988426 + .long 1067922646 + .long 0 + .long 1071644672 + .long 2653017361 + .long 1072353980 + .long 0 + .long 3162800062 + .long 1102361128 + .long 1067576117 + .long 0 + .long 1071644672 + .long 1477771776 + .long 1072367882 + .long 536870912 + .long 3163104986 + .long 2880516564 + .long 1067003401 + .long 0 + .long 1071644672 + .long 1056266002 + .long 1072381517 + .long 2684354560 + .long 3163469496 + .long 1220541286 + .long 1066197478 + .long 0 + .long 1071644672 + .long 1159294526 + .long 1072394883 + .long 536870912 + .long 3163276959 + .long 1279178457 + .long 1064107143 + .long 0 + .long 1071644672 + .long 1731563730 + .long 1072407978 + .long 536870912 + .long 1015540302 + .long 31019393 + .long 3212646089 + .long 0 + .long 1071644672 + .long 2892993834 + .long 1072420800 + .long 536870912 + .long 3163039143 + .long 3506991783 + .long 3214032490 + .long 0 + .long 1071644672 + .long 645027145 + .long 1072433348 + .long 3221225472 + .long 1012602239 + .long 2140183630 + .long 3214756396 + .long 0 + .long 1071644672 + .long 4051746225 + .long 1072445618 + .long 1610612736 + .long 3161907377 + .long 600368053 + .long 3215209541 + .long 0 + .long 1071644672 + .long 881357723 + .long 1072457611 + .long 3221225472 + .long 1013810890 + .long 913431823 + .long 3215576203 + .long 0 + .long 1071644672 + .long 557060597 + .long 1072469323 + .long 0 + .long 3159554934 + .long 1073154251 + .long 3215945137 + .long 0 + .long 1071644672 + .long 4093443164 + .long 1072480752 + .long 536870912 + .long 1014912865 + .long 3631910143 + .long 3216149439 + .long 0 + .long 1071644672 + .long 4097623923 + .long 1072491898 + .long 2684354560 + .long 3160308587 + .long 1380647130 + .long 3216336095 + .long 0 + .long 1071644672 + .long 1950234076 + .long 1072502759 + .long 536870912 + .long 3159425498 + .long 4049357271 + .long 3216523802 + .long 0 + .long 1071644672 + .long 3511535930 + .long 1072513332 + .long 2147483648 + .long 3162828626 + .long 1896722595 + .long 3216712534 + .long 0 + .long 1071644672 + .long 1942611595 + .long 1072523617 + .long 3221225472 + .long 3162410081 + .long 1699043957 + .long 3216902261 + .long 0 + .long 1071644672 + .long 3476196678 + .long 1072533611 + .long 0 + .long 1014257638 + .long 3296146332 + .long 1069485732 + .long 0 + .long 1070596096 + .long 1647878299 + .long 1072543314 + .long 3758096384 + .long 3162169063 + .long 3286832763 + .long 1069294100 + .long 0 + .long 1070596096 + .long 3066872380 + .long 1072552723 + .long 3221225472 + .long 1015561271 + .long 1962712856 + .long 1069101559 + .long 0 + .long 1070596096 + .long 1647164971 + .long 1072561838 + .long 2147483648 + .long 3162838250 + .long 3601629044 + .long 1068908137 + .long 0 + .long 1070596096 + .long 83265253 + .long 1072570657 + .long 1610612736 + .long 3162510535 + .long 165911977 + .long 1068713865 + .long 0 + .long 1070596096 + .long 1261158782 + .long 1072579178 + .long 2147483648 + .long 1015711544 + .long 1348311045 + .long 1068518770 + .long 0 + .long 1070596096 + .long 3964199186 + .long 1072587400 + .long 3758096384 + .long 3160501078 + .long 386665102 + .long 1068146822 + .long 0 + .long 1070596096 + .long 2873938189 + .long 1072595323 + .long 1610612736 + .long 3162311422 + .long 1991047213 + .long 1067753521 + .long 0 + .long 1070596096 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 4107121629 + .long 1067267139 + .long 0 + .long 1070596096 + .long 3370060660 + .long 1072610264 + .long 1610612736 + .long 1014787212 + .long 723478390 + .long 1066474790 + .long 0 + .long 1070596096 + .long 3882371427 + .long 1072617280 + .long 2147483648 + .long 1014923975 + .long 2382326656 + .long 1064562179 + .long 0 + .long 1070596096 + .long 2749658050 + .long 1072623992 + .long 1610612736 + .long 1015427338 + .long 2614369450 + .long 3212624080 + .long 0 + .long 1070596096 + .long 4220661975 + .long 1072630398 + .long 3221225472 + .long 1014312058 + .long 3587565429 + .long 3214108032 + .long 0 + .long 1070596096 + .long 4151720666 + .long 1072636498 + .long 0 + .long 3162639544 + .long 2886567144 + .long 3214910444 + .long 0 + .long 1070596096 + .long 2892293513 + .long 1072642291 + .long 2684354560 + .long 3162340271 + .long 1765797566 + .long 3215324543 + .long 0 + .long 1070596096 + .long 990588717 + .long 1072647776 + .long 3758096384 + .long 3162041857 + .long 240740309 + .long 3215727903 + .long 0 + .long 1070596096 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 2034433221 + .long 1068349287 + .long 0 + .long 1069547520 + .long 2745245815 + .long 1072657817 + .long 3221225472 + .long 1015566129 + .long 304938777 + .long 1067944017 + .long 0 + .long 1069547520 + .long 4201728937 + .long 1072662372 + .long 1610612736 + .long 1014674006 + .long 3299146087 + .long 1067537882 + .long 0 + .long 1069547520 + .long 617154971 + .long 1072666617 + .long 3758096384 + .long 3163433696 + .long 1953696209 + .long 1066811523 + .long 0 + .long 1069547520 + .long 2131272983 + .long 1072670549 + .long 3221225472 + .long 3163005096 + .long 3987691371 + .long 1065590540 + .long 0 + .long 1069547520 + .long 1905645377 + .long 1072674169 + .long 1610612736 + .long 1014087596 + .long 718380601 + .long 3211081269 + .long 0 + .long 1069547520 + .long 1893834707 + .long 1072677476 + .long 1610612736 + .long 1015147654 + .long 3272206680 + .long 3213771729 + .long 0 + .long 1069547520 + .long 4251821691 + .long 1072680469 + .long 2147483648 + .long 3161841007 + .long 257503056 + .long 3214647653 + .long 0 + .long 1069547520 + .long 2748392742 + .long 1072683149 + .long 536870912 + .long 3163061750 + .long 711626851 + .long 1066916672 + .long 0 + .long 1068498944 + .long 4240268041 + .long 1072685514 + .long 536870912 + .long 1013588963 + .long 2523975598 + .long 1065789700 + .long 0 + .long 1068498944 + .long 2902558778 + .long 1072687565 + .long 3221225472 + .long 1013260780 + .long 3237733378 + .long 3209908784 + .long 0 + .long 1068498944 + .long 1703834029 + .long 1072689301 + .long 3758096384 + .long 1015028364 + .long 1003003824 + .long 3213591144 + .long 0 + .long 1068498944 + .long 3816385918 + .long 1072690721 + .long 536870912 + .long 3161216956 + .long 2896342633 + .long 1064747819 + .long 0 + .long 1067450368 + .long 4026464093 + .long 1072691826 + .long 3221225472 + .long 3163075789 + .long 561145352 + .long 3212540584 + .long 0 + .long 1067450368 + .long 1619315981 + .long 1072692616 + .long 1073741824 + .long 3162584397 + .long 210035182 + .long 3211491512 + .long 0 + .long 1066401792 + .long 379294427 + .long 1072693090 + .long 3221225472 + .long 1015405987 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .type __svml_dcos_data_internal_ha,@object + .size __svml_dcos_data_internal_ha,17280 + .align 64 +__svml_dcos_reduction_data_internal: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 20 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 40 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 81 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 162 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 325 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 651 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1173554908 + .long 1 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2347109817 + .long 2 + .long 0 + .long 0 + .long 0 + .long 0 + .long 399252338 + .long 5 + .long 0 + .long 0 + .long 0 + .long 0 + .long 798504676 + .long 10 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1597009353 + .long 20 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3194018707 + .long 40 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2093070119 + .long 81 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4186140238 + .long 162 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4077313180 + .long 325 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3859659065 + .long 651 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3424350834 + .long 1303 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2553734372 + .long 2607 + .long 0 + .long 0 + .long 0 + .long 0 + .long 812501448 + .long 5215 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1625002897 + .long 10430 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3250005794 + .long 20860 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2205044292 + .long 41721 + .long 0 + .long 0 + .long 0 + .long 0 + .long 115121288 + .long 83443 + .long 0 + .long 0 + .long 0 + .long 0 + .long 230242576 + .long 166886 + .long 0 + .long 0 + .long 0 + .long 0 + .long 460485152 + .long 333772 + .long 0 + .long 0 + .long 0 + .long 0 + .long 920970305 + .long 667544 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1841940610 + .long 1335088 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3683881221 + .long 2670176 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3072795146 + .long 5340353 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1850622997 + .long 10680707 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3701245994 + .long 21361414 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3107524692 + .long 42722829 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1920082089 + .long 85445659 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3840164178 + .long 170891318 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3385361061 + .long 341782637 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2475754826 + .long 683565275 + .long 0 + .long 0 + .long 0 + .long 0 + .long 656542356 + .long 1367130551 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1313084713 + .long 2734261102 + .long 0 + .long 0 + .long 1 + .long 0 + .long 2626169427 + .long 1173554908 + .long 0 + .long 0 + .long 2 + .long 0 + .long 957371559 + .long 2347109817 + .long 0 + .long 0 + .long 5 + .long 0 + .long 1914743119 + .long 399252338 + .long 0 + .long 0 + .long 10 + .long 0 + .long 3829486239 + .long 798504676 + .long 0 + .long 0 + .long 20 + .long 0 + .long 3364005183 + .long 1597009353 + .long 0 + .long 0 + .long 40 + .long 0 + .long 2433043071 + .long 3194018707 + .long 0 + .long 0 + .long 81 + .long 0 + .long 571118846 + .long 2093070119 + .long 0 + .long 0 + .long 162 + .long 0 + .long 1142237692 + .long 4186140238 + .long 0 + .long 0 + .long 325 + .long 0 + .long 2284475384 + .long 4077313180 + .long 0 + .long 0 + .long 651 + .long 0 + .long 273983472 + .long 3859659065 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 547966945 + .long 3424350834 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 1095933890 + .long 2553734372 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 2191867780 + .long 812501448 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 88768265 + .long 1625002897 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 177536531 + .long 3250005794 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 355073063 + .long 2205044292 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 710146126 + .long 115121288 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 1420292253 + .long 230242576 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 2840584506 + .long 460485152 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 1386201717 + .long 920970305 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 2772403434 + .long 1841940610 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 1249839573 + .long 3683881221 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 2499679147 + .long 3072795146 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 704390999 + .long 1850622997 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 1408781999 + .long 3701245994 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 2817563999 + .long 3107524692 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 1340160702 + .long 1920082089 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 2680321405 + .long 3840164178 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 1065675514 + .long 3385361061 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 2131351028 + .long 2475754826 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 4262702056 + .long 656542356 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 4230436817 + .long 1313084713 + .long 0 + .long 0 + .long 1173554908 + .long 1 + .long 4165906339 + .long 2626169427 + .long 0 + .long 0 + .long 2347109817 + .long 2 + .long 4036845383 + .long 957371559 + .long 0 + .long 0 + .long 399252338 + .long 5 + .long 3778723471 + .long 1914743119 + .long 0 + .long 0 + .long 798504676 + .long 10 + .long 3262479647 + .long 3829486239 + .long 0 + .long 0 + .long 1597009353 + .long 20 + .long 2229991998 + .long 3364005183 + .long 0 + .long 0 + .long 3194018707 + .long 40 + .long 165016701 + .long 2433043071 + .long 0 + .long 0 + .long 2093070119 + .long 81 + .long 330033402 + .long 571118846 + .long 0 + .long 0 + .long 4186140238 + .long 162 + .long 660066805 + .long 1142237692 + .long 0 + .long 0 + .long 4077313180 + .long 325 + .long 1320133610 + .long 2284475384 + .long 0 + .long 0 + .long 3859659065 + .long 651 + .long 2640267220 + .long 273983472 + .long 0 + .long 0 + .long 3424350834 + .long 1303 + .long 985567145 + .long 547966945 + .long 0 + .long 0 + .long 2553734372 + .long 2607 + .long 1971134291 + .long 1095933890 + .long 0 + .long 0 + .long 812501448 + .long 5215 + .long 3942268582 + .long 2191867780 + .long 0 + .long 0 + .long 1625002897 + .long 10430 + .long 3589569869 + .long 88768265 + .long 0 + .long 0 + .long 3250005794 + .long 20860 + .long 2884172442 + .long 177536531 + .long 0 + .long 0 + .long 2205044292 + .long 41721 + .long 1473377588 + .long 355073063 + .long 0 + .long 0 + .long 115121288 + .long 83443 + .long 2946755177 + .long 710146126 + .long 0 + .long 0 + .long 230242576 + .long 166886 + .long 1598543059 + .long 1420292253 + .long 0 + .long 0 + .long 460485152 + .long 333772 + .long 3197086118 + .long 2840584506 + .long 0 + .long 0 + .long 920970305 + .long 667544 + .long 2099204941 + .long 1386201717 + .long 0 + .long 0 + .long 1841940610 + .long 1335088 + .long 4198409883 + .long 2772403434 + .long 0 + .long 0 + .long 3683881221 + .long 2670176 + .long 4101852471 + .long 1249839573 + .long 0 + .long 0 + .long 3072795146 + .long 5340353 + .long 3908737646 + .long 2499679147 + .long 0 + .long 0 + .long 1850622997 + .long 10680707 + .long 3522507997 + .long 704390999 + .long 0 + .long 0 + .long 3701245994 + .long 21361414 + .long 2750048699 + .long 1408781999 + .long 0 + .long 0 + .long 3107524692 + .long 42722829 + .long 1205130103 + .long 2817563999 + .long 0 + .long 0 + .long 1920082089 + .long 85445659 + .long 2410260206 + .long 1340160702 + .long 0 + .long 0 + .long 3840164178 + .long 170891318 + .long 525553116 + .long 2680321405 + .long 0 + .long 0 + .long 3385361061 + .long 341782637 + .long 1051106232 + .long 1065675514 + .long 0 + .long 0 + .long 2475754826 + .long 683565275 + .long 2102212464 + .long 2131351028 + .long 0 + .long 0 + .long 656542356 + .long 1367130551 + .long 4204424928 + .long 4262702056 + .long 0 + .long 0 + .long 1313084713 + .long 2734261102 + .long 4113882560 + .long 4230436817 + .long 1 + .long 0 + .long 2626169427 + .long 1173554908 + .long 3932797825 + .long 4165906339 + .long 2 + .long 0 + .long 957371559 + .long 2347109817 + .long 3570628355 + .long 4036845383 + .long 5 + .long 0 + .long 1914743119 + .long 399252338 + .long 2846289414 + .long 3778723471 + .long 10 + .long 0 + .long 3829486239 + .long 798504676 + .long 1397611533 + .long 3262479647 + .long 20 + .long 0 + .long 3364005183 + .long 1597009353 + .long 2795223067 + .long 2229991998 + .long 40 + .long 0 + .long 2433043071 + .long 3194018707 + .long 1295478838 + .long 165016701 + .long 81 + .long 0 + .long 571118846 + .long 2093070119 + .long 2590957677 + .long 330033402 + .long 162 + .long 0 + .long 1142237692 + .long 4186140238 + .long 886948059 + .long 660066805 + .long 325 + .long 0 + .long 2284475384 + .long 4077313180 + .long 1773896118 + .long 1320133610 + .long 651 + .long 0 + .long 273983472 + .long 3859659065 + .long 3547792237 + .long 2640267220 + .long 1303 + .long 0 + .long 547966945 + .long 3424350834 + .long 2800617179 + .long 985567145 + .long 2607 + .long 0 + .long 1095933890 + .long 2553734372 + .long 1306267062 + .long 1971134291 + .long 5215 + .long 0 + .long 2191867780 + .long 812501448 + .long 2612534124 + .long 3942268582 + .long 10430 + .long 0 + .long 88768265 + .long 1625002897 + .long 930100952 + .long 3589569869 + .long 20860 + .long 0 + .long 177536531 + .long 3250005794 + .long 1860201905 + .long 2884172442 + .long 41721 + .long 0 + .long 355073063 + .long 2205044292 + .long 3720403810 + .long 1473377588 + .long 83443 + .long 0 + .long 710146126 + .long 115121288 + .long 3145840325 + .long 2946755177 + .long 166886 + .long 0 + .long 1420292253 + .long 230242576 + .long 1996713354 + .long 1598543059 + .long 333772 + .long 0 + .long 2840584506 + .long 460485152 + .long 3993426708 + .long 3197086118 + .long 667544 + .long 0 + .long 1386201717 + .long 920970305 + .long 3691886121 + .long 2099204941 + .long 1335088 + .long 0 + .long 2772403434 + .long 1841940610 + .long 3088804946 + .long 4198409883 + .long 2670176 + .long 0 + .long 1249839573 + .long 3683881221 + .long 1882642597 + .long 4101852471 + .long 5340353 + .long 0 + .long 2499679147 + .long 3072795146 + .long 3765285194 + .long 3908737646 + .long 10680707 + .long 0 + .long 704390999 + .long 1850622997 + .long 3235603093 + .long 3522507997 + .long 21361414 + .long 0 + .long 1408781999 + .long 3701245994 + .long 2176238891 + .long 2750048699 + .long 42722829 + .long 0 + .long 2817563999 + .long 3107524692 + .long 57510486 + .long 1205130103 + .long 85445659 + .long 0 + .long 1340160702 + .long 1920082089 + .long 115020972 + .long 2410260206 + .long 170891318 + .long 0 + .long 2680321405 + .long 3840164178 + .long 230041945 + .long 525553116 + .long 341782637 + .long 0 + .long 1065675514 + .long 3385361061 + .long 460083891 + .long 1051106232 + .long 683565275 + .long 0 + .long 2131351028 + .long 2475754826 + .long 920167782 + .long 2102212464 + .long 1367130551 + .long 0 + .long 4262702056 + .long 656542356 + .long 1840335564 + .long 4204424928 + .long 2734261102 + .long 0 + .long 4230436817 + .long 1313084713 + .long 3680671129 + .long 4113882560 + .long 1173554908 + .long 1 + .long 4165906339 + .long 2626169427 + .long 3066374962 + .long 3932797825 + .long 2347109817 + .long 2 + .long 4036845383 + .long 957371559 + .long 1837782628 + .long 3570628355 + .long 399252338 + .long 5 + .long 3778723471 + .long 1914743119 + .long 3675565257 + .long 2846289414 + .long 798504676 + .long 10 + .long 3262479647 + .long 3829486239 + .long 3056163219 + .long 1397611533 + .long 1597009353 + .long 20 + .long 2229991998 + .long 3364005183 + .long 1817359143 + .long 2795223067 + .long 3194018707 + .long 40 + .long 165016701 + .long 2433043071 + .long 3634718287 + .long 1295478838 + .long 2093070119 + .long 81 + .long 330033402 + .long 571118846 + .long 2974469278 + .long 2590957677 + .long 4186140238 + .long 162 + .long 660066805 + .long 1142237692 + .long 1653971260 + .long 886948059 + .long 4077313180 + .long 325 + .long 1320133610 + .long 2284475384 + .long 3307942520 + .long 1773896118 + .long 3859659065 + .long 651 + .long 2640267220 + .long 273983472 + .long 2320917745 + .long 3547792237 + .long 3424350834 + .long 1303 + .long 985567145 + .long 547966945 + .long 346868194 + .long 2800617179 + .long 2553734372 + .long 2607 + .long 1971134291 + .long 1095933890 + .long 693736388 + .long 1306267062 + .long 812501448 + .long 5215 + .long 3942268582 + .long 2191867780 + .long 1387472776 + .long 2612534124 + .long 1625002897 + .long 10430 + .long 3589569869 + .long 88768265 + .long 2774945552 + .long 930100952 + .long 3250005794 + .long 20860 + .long 2884172442 + .long 177536531 + .long 1254923809 + .long 1860201905 + .long 2205044292 + .long 41721 + .long 1473377588 + .long 355073063 + .long 2509847619 + .long 3720403810 + .long 115121288 + .long 83443 + .long 2946755177 + .long 710146126 + .long 724727943 + .long 3145840325 + .long 230242576 + .long 166886 + .long 1598543059 + .long 1420292253 + .long 1449455886 + .long 1996713354 + .long 460485152 + .long 333772 + .long 3197086118 + .long 2840584506 + .long 2898911772 + .long 3993426708 + .long 920970305 + .long 667544 + .long 2099204941 + .long 1386201717 + .long 1502856249 + .long 3691886121 + .long 1841940610 + .long 1335088 + .long 4198409883 + .long 2772403434 + .long 3005712498 + .long 3088804946 + .long 3683881221 + .long 2670176 + .long 4101852471 + .long 1249839573 + .long 1716457700 + .long 1882642597 + .long 3072795146 + .long 5340353 + .long 3908737646 + .long 2499679147 + .long 3432915400 + .long 3765285194 + .long 1850622997 + .long 10680707 + .long 3522507997 + .long 704390999 + .long 2570863504 + .long 3235603093 + .long 3701245994 + .long 21361414 + .long 2750048699 + .long 1408781999 + .long 846759712 + .long 2176238891 + .long 3107524692 + .long 42722829 + .long 1205130103 + .long 2817563999 + .long 1693519425 + .long 57510486 + .long 1920082089 + .long 85445659 + .long 2410260206 + .long 1340160702 + .long 3387038850 + .long 115020972 + .long 3840164178 + .long 170891318 + .long 525553116 + .long 2680321405 + .long 2479110404 + .long 230041945 + .long 3385361061 + .long 341782637 + .long 1051106232 + .long 1065675514 + .long 663253512 + .long 460083891 + .long 2475754826 + .long 683565275 + .long 2102212464 + .long 2131351028 + .long 1326507024 + .long 920167782 + .long 656542356 + .long 1367130551 + .long 4204424928 + .long 4262702056 + .long 2653014048 + .long 1840335564 + .long 1313084713 + .long 2734261102 + .long 4113882560 + .long 4230436817 + .long 1011060801 + .long 3680671129 + .long 2626169427 + .long 1173554908 + .long 3932797825 + .long 4165906339 + .long 2022121603 + .long 3066374962 + .long 957371559 + .long 2347109817 + .long 3570628355 + .long 4036845383 + .long 4044243207 + .long 1837782628 + .long 1914743119 + .long 399252338 + .long 2846289414 + .long 3778723471 + .long 3793519119 + .long 3675565257 + .long 3829486239 + .long 798504676 + .long 1397611533 + .long 3262479647 + .long 3292070943 + .long 3056163219 + .long 3364005183 + .long 1597009353 + .long 2795223067 + .long 2229991998 + .long 2289174591 + .long 1817359143 + .long 2433043071 + .long 3194018707 + .long 1295478838 + .long 165016701 + .long 283381887 + .long 3634718287 + .long 571118846 + .long 2093070119 + .long 2590957677 + .long 330033402 + .long 566763775 + .long 2974469278 + .long 1142237692 + .long 4186140238 + .long 886948059 + .long 660066805 + .long 1133527550 + .long 1653971260 + .long 2284475384 + .long 4077313180 + .long 1773896118 + .long 1320133610 + .long 2267055100 + .long 3307942520 + .long 273983472 + .long 3859659065 + .long 3547792237 + .long 2640267220 + .long 239142905 + .long 2320917745 + .long 547966945 + .long 3424350834 + .long 2800617179 + .long 985567145 + .long 478285810 + .long 346868194 + .long 1095933890 + .long 2553734372 + .long 1306267062 + .long 1971134291 + .long 956571621 + .long 693736388 + .long 2191867780 + .long 812501448 + .long 2612534124 + .long 3942268582 + .long 1913143242 + .long 1387472776 + .long 88768265 + .long 1625002897 + .long 930100952 + .long 3589569869 + .long 3826286484 + .long 2774945552 + .long 177536531 + .long 3250005794 + .long 1860201905 + .long 2884172442 + .long 3357605672 + .long 1254923809 + .long 355073063 + .long 2205044292 + .long 3720403810 + .long 1473377588 + .long 2420244049 + .long 2509847619 + .long 710146126 + .long 115121288 + .long 3145840325 + .long 2946755177 + .long 545520802 + .long 724727943 + .long 1420292253 + .long 230242576 + .long 1996713354 + .long 1598543059 + .long 1091041605 + .long 1449455886 + .long 2840584506 + .long 460485152 + .long 3993426708 + .long 3197086118 + .long 2182083211 + .long 2898911772 + .long 1386201717 + .long 920970305 + .long 3691886121 + .long 2099204941 + .long 69199126 + .long 1502856249 + .long 2772403434 + .long 1841940610 + .long 3088804946 + .long 4198409883 + .long 138398252 + .long 3005712498 + .long 1249839573 + .long 3683881221 + .long 1882642597 + .long 4101852471 + .long 276796504 + .long 1716457700 + .long 2499679147 + .long 3072795146 + .long 3765285194 + .long 3908737646 + .long 553593009 + .long 3432915400 + .long 704390999 + .long 1850622997 + .long 3235603093 + .long 3522507997 + .long 1107186019 + .long 2570863504 + .long 1408781999 + .long 3701245994 + .long 2176238891 + .long 2750048699 + .long 2214372039 + .long 846759712 + .long 2817563999 + .long 3107524692 + .long 57510486 + .long 1205130103 + .long 133776782 + .long 1693519425 + .long 1340160702 + .long 1920082089 + .long 115020972 + .long 2410260206 + .long 267553565 + .long 3387038850 + .long 2680321405 + .long 3840164178 + .long 230041945 + .long 525553116 + .long 535107130 + .long 2479110404 + .long 1065675514 + .long 3385361061 + .long 460083891 + .long 1051106232 + .long 1070214261 + .long 663253512 + .long 2131351028 + .long 2475754826 + .long 920167782 + .long 2102212464 + .long 2140428522 + .long 1326507024 + .long 4262702056 + .long 656542356 + .long 1840335564 + .long 4204424928 + .long 4280857045 + .long 2653014048 + .long 4230436817 + .long 1313084713 + .long 3680671129 + .long 4113882560 + .long 4266746795 + .long 1011060801 + .long 4165906339 + .long 2626169427 + .long 3066374962 + .long 3932797825 + .long 4238526295 + .long 2022121603 + .long 4036845383 + .long 957371559 + .long 1837782628 + .long 3570628355 + .long 4182085295 + .long 4044243207 + .long 3778723471 + .long 1914743119 + .long 3675565257 + .long 2846289414 + .long 4069203294 + .long 3793519119 + .long 3262479647 + .long 3829486239 + .long 3056163219 + .long 1397611533 + .long 3843439293 + .long 3292070943 + .long 2229991998 + .long 3364005183 + .long 1817359143 + .long 2795223067 + .long 3391911291 + .long 2289174591 + .long 165016701 + .long 2433043071 + .long 3634718287 + .long 1295478838 + .long 2488855287 + .long 283381887 + .long 330033402 + .long 571118846 + .long 2974469278 + .long 2590957677 + .long 682743279 + .long 566763775 + .long 660066805 + .long 1142237692 + .long 1653971260 + .long 886948059 + .long 1365486558 + .long 1133527550 + .long 1320133610 + .long 2284475384 + .long 3307942520 + .long 1773896118 + .long 2730973117 + .long 2267055100 + .long 2640267220 + .long 273983472 + .long 2320917745 + .long 3547792237 + .long 1166978938 + .long 239142905 + .long 985567145 + .long 547966945 + .long 346868194 + .long 2800617179 + .long 2333957877 + .long 478285810 + .long 1971134291 + .long 1095933890 + .long 693736388 + .long 1306267062 + .long 372948459 + .long 956571621 + .long 3942268582 + .long 2191867780 + .long 1387472776 + .long 2612534124 + .long 745896919 + .long 1913143242 + .long 3589569869 + .long 88768265 + .long 2774945552 + .long 930100952 + .long 1491793838 + .long 3826286484 + .long 2884172442 + .long 177536531 + .long 1254923809 + .long 1860201905 + .long 2983587677 + .long 3357605672 + .long 1473377588 + .long 355073063 + .long 2509847619 + .long 3720403810 + .long 1672208059 + .long 2420244049 + .long 2946755177 + .long 710146126 + .long 724727943 + .long 3145840325 + .long 3344416119 + .long 545520802 + .long 1598543059 + .long 1420292253 + .long 1449455886 + .long 1996713354 + .long 2393864943 + .long 1091041605 + .long 3197086118 + .long 2840584506 + .long 2898911772 + .long 3993426708 + .long 492762590 + .long 2182083211 + .long 2099204941 + .long 1386201717 + .long 1502856249 + .long 3691886121 + .long 985525180 + .long 69199126 + .long 4198409883 + .long 2772403434 + .long 3005712498 + .long 3088804946 + .long 1971050360 + .long 138398252 + .long 4101852471 + .long 1249839573 + .long 1716457700 + .long 1882642597 + .long 3942100721 + .long 276796504 + .long 3908737646 + .long 2499679147 + .long 3432915400 + .long 3765285194 + .long 3589234146 + .long 553593009 + .long 3522507997 + .long 704390999 + .long 2570863504 + .long 3235603093 + .long 2883500997 + .long 1107186019 + .long 2750048699 + .long 1408781999 + .long 846759712 + .long 2176238891 + .long 1472034698 + .long 2214372039 + .long 1205130103 + .long 2817563999 + .long 1693519425 + .long 57510486 + .long 2944069397 + .long 133776782 + .long 2410260206 + .long 1340160702 + .long 3387038850 + .long 115020972 + .long 1593171499 + .long 267553565 + .long 525553116 + .long 2680321405 + .long 2479110404 + .long 230041945 + .long 3186342998 + .long 535107130 + .long 1051106232 + .long 1065675514 + .long 663253512 + .long 460083891 + .long 2077718700 + .long 1070214261 + .long 2102212464 + .long 2131351028 + .long 1326507024 + .long 920167782 + .long 4155437400 + .long 2140428522 + .long 4204424928 + .long 4262702056 + .long 2653014048 + .long 1840335564 + .long 4015907504 + .long 4280857045 + .long 4113882560 + .long 4230436817 + .long 1011060801 + .long 3680671129 + .long 3736847713 + .long 4266746795 + .long 3932797825 + .long 4165906339 + .long 2022121603 + .long 3066374962 + .long 3178728131 + .long 4238526295 + .long 3570628355 + .long 4036845383 + .long 4044243207 + .long 1837782628 + .long 2062488966 + .long 4182085295 + .long 2846289414 + .long 3778723471 + .long 3793519119 + .long 3675565257 + .long 4124977933 + .long 4069203294 + .long 1397611533 + .long 3262479647 + .long 3292070943 + .long 3056163219 + .long 3954988571 + .long 3843439293 + .long 2795223067 + .long 2229991998 + .long 2289174591 + .long 1817359143 + .long 3615009846 + .long 3391911291 + .long 1295478838 + .long 165016701 + .long 283381887 + .long 3634718287 + .long 2935052397 + .long 2488855287 + .long 2590957677 + .long 330033402 + .long 566763775 + .long 2974469278 + .long 1575137499 + .long 682743279 + .long 886948059 + .long 660066805 + .long 1133527550 + .long 1653971260 + .long 3150274999 + .long 1365486558 + .long 1773896118 + .long 1320133610 + .long 2267055100 + .long 3307942520 + .long 2005582702 + .long 2730973117 + .long 3547792237 + .long 2640267220 + .long 239142905 + .long 2320917745 + .long 4011165404 + .long 1166978938 + .long 2800617179 + .long 985567145 + .long 478285810 + .long 346868194 + .long 3727363513 + .long 2333957877 + .long 1306267062 + .long 1971134291 + .long 956571621 + .long 693736388 + .long 3159759730 + .long 372948459 + .long 2612534124 + .long 3942268582 + .long 1913143242 + .long 1387472776 + .long 2024552164 + .long 745896919 + .long 930100952 + .long 3589569869 + .long 3826286484 + .long 2774945552 + .long 4049104329 + .long 1491793838 + .long 1860201905 + .long 2884172442 + .long 3357605672 + .long 1254923809 + .long 3803241362 + .long 2983587677 + .long 3720403810 + .long 1473377588 + .long 2420244049 + .long 2509847619 + .long 3311515428 + .long 1672208059 + .long 3145840325 + .long 2946755177 + .long 545520802 + .long 724727943 + .long 2328063560 + .long 3344416119 + .long 1996713354 + .long 1598543059 + .long 1091041605 + .long 1449455886 + .long 361159825 + .long 2393864943 + .long 3993426708 + .long 3197086118 + .long 2182083211 + .long 2898911772 + .long 722319651 + .long 492762590 + .long 3691886121 + .long 2099204941 + .long 69199126 + .long 1502856249 + .long 1444639302 + .long 985525180 + .long 3088804946 + .long 4198409883 + .long 138398252 + .long 3005712498 + .long 2889278605 + .long 1971050360 + .long 1882642597 + .long 4101852471 + .long 276796504 + .long 1716457700 + .long 1483589915 + .long 3942100721 + .long 3765285194 + .long 3908737646 + .long 553593009 + .long 3432915400 + .long 2967179831 + .long 3589234146 + .long 3235603093 + .long 3522507997 + .long 1107186019 + .long 2570863504 + .long 1639392366 + .long 2883500997 + .long 2176238891 + .long 2750048699 + .long 2214372039 + .long 846759712 + .long 3278784732 + .long 1472034698 + .long 57510486 + .long 1205130103 + .long 133776782 + .long 1693519425 + .long 2262602168 + .long 2944069397 + .long 115020972 + .long 2410260206 + .long 267553565 + .long 3387038850 + .long 230237041 + .long 1593171499 + .long 230041945 + .long 525553116 + .long 535107130 + .long 2479110404 + .long 460474083 + .long 3186342998 + .long 460083891 + .long 1051106232 + .long 1070214261 + .long 663253512 + .long 920948167 + .long 2077718700 + .long 920167782 + .long 2102212464 + .long 2140428522 + .long 1326507024 + .long 1841896334 + .long 4155437400 + .long 1840335564 + .long 4204424928 + .long 4280857045 + .long 2653014048 + .long 3683792669 + .long 4015907504 + .long 3680671129 + .long 4113882560 + .long 4266746795 + .long 1011060801 + .long 3072618042 + .long 3736847713 + .long 3066374962 + .long 3932797825 + .long 4238526295 + .long 2022121603 + .long 1850268788 + .long 3178728131 + .long 1837782628 + .long 3570628355 + .long 4182085295 + .long 4044243207 + .long 3700537577 + .long 2062488966 + .long 3675565257 + .long 2846289414 + .long 4069203294 + .long 3793519119 + .long 3106107858 + .long 4124977933 + .long 3056163219 + .long 1397611533 + .long 3843439293 + .long 3292070943 + .long 1917248420 + .long 3954988571 + .long 1817359143 + .long 2795223067 + .long 3391911291 + .long 2289174591 + .long 3834496840 + .long 3615009846 + .long 3634718287 + .long 1295478838 + .long 2488855287 + .long 283381887 + .long 3374026384 + .long 2935052397 + .long 2974469278 + .long 2590957677 + .long 682743279 + .long 566763775 + .long 2453085473 + .long 1575137499 + .long 1653971260 + .long 886948059 + .long 1365486558 + .long 1133527550 + .long 611203650 + .long 3150274999 + .long 3307942520 + .long 1773896118 + .long 2730973117 + .long 2267055100 + .long 1222407300 + .long 2005582702 + .long 2320917745 + .long 3547792237 + .long 1166978938 + .long 239142905 + .long 2444814601 + .long 4011165404 + .long 346868194 + .long 2800617179 + .long 2333957877 + .long 478285810 + .long 594661906 + .long 3727363513 + .long 693736388 + .long 1306267062 + .long 372948459 + .long 956571621 + .long 1189323812 + .long 3159759730 + .long 1387472776 + .long 2612534124 + .long 745896919 + .long 1913143242 + .long 2378647625 + .long 2024552164 + .long 2774945552 + .long 930100952 + .long 1491793838 + .long 3826286484 + .long 462327955 + .long 4049104329 + .long 1254923809 + .long 1860201905 + .long 2983587677 + .long 3357605672 + .long 924655910 + .long 3803241362 + .long 2509847619 + .long 3720403810 + .long 1672208059 + .long 2420244049 + .long 1849311821 + .long 3311515428 + .long 724727943 + .long 3145840325 + .long 3344416119 + .long 545520802 + .long 3698623643 + .long 2328063560 + .long 1449455886 + .long 1996713354 + .long 2393864943 + .long 1091041605 + .long 3102279991 + .long 361159825 + .long 2898911772 + .long 3993426708 + .long 492762590 + .long 2182083211 + .long 1909592686 + .long 722319651 + .long 1502856249 + .long 3691886121 + .long 985525180 + .long 69199126 + .long 3819185373 + .long 1444639302 + .long 3005712498 + .long 3088804946 + .long 1971050360 + .long 138398252 + .long 3343403450 + .long 2889278605 + .long 1716457700 + .long 1882642597 + .long 3942100721 + .long 276796504 + .long 2391839604 + .long 1483589915 + .long 3432915400 + .long 3765285194 + .long 3589234146 + .long 553593009 + .long 488711913 + .long 2967179831 + .long 2570863504 + .long 3235603093 + .long 2883500997 + .long 1107186019 + .long 977423826 + .long 1639392366 + .long 846759712 + .long 2176238891 + .long 1472034698 + .long 2214372039 + .long 1954847653 + .long 3278784732 + .long 1693519425 + .long 57510486 + .long 2944069397 + .long 133776782 + .long 3909695307 + .long 2262602168 + .long 3387038850 + .long 115020972 + .long 1593171499 + .long 267553565 + .long 3524423319 + .long 230237041 + .long 2479110404 + .long 230041945 + .long 3186342998 + .long 535107130 + .long 2753879342 + .long 460474083 + .long 663253512 + .long 460083891 + .long 2077718700 + .long 1070214261 + .long 1212791388 + .long 920948167 + .long 1326507024 + .long 920167782 + .long 4155437400 + .long 2140428522 + .long 2425582776 + .long 1841896334 + .long 2653014048 + .long 1840335564 + .long 4015907504 + .long 4280857045 + .long 556198256 + .long 3683792669 + .long 1011060801 + .long 3680671129 + .long 3736847713 + .long 4266746795 + .long 1112396512 + .long 3072618042 + .long 2022121603 + .long 3066374962 + .long 3178728131 + .long 4238526295 + .long 2224793024 + .long 1850268788 + .long 4044243207 + .long 1837782628 + .long 2062488966 + .long 4182085295 + .long 154618752 + .long 3700537577 + .long 3793519119 + .long 3675565257 + .long 4124977933 + .long 4069203294 + .long 309237504 + .long 3106107858 + .long 3292070943 + .long 3056163219 + .long 3954988571 + .long 3843439293 + .long 618475008 + .long 1917248420 + .long 2289174591 + .long 1817359143 + .long 3615009846 + .long 3391911291 + .long 1236950016 + .long 3834496840 + .long 283381887 + .long 3634718287 + .long 2935052397 + .long 2488855287 + .long 2473900033 + .long 3374026384 + .long 566763775 + .long 2974469278 + .long 1575137499 + .long 682743279 + .long 652832771 + .long 2453085473 + .long 1133527550 + .long 1653971260 + .long 3150274999 + .long 1365486558 + .long 1305665542 + .long 611203650 + .long 2267055100 + .long 3307942520 + .long 2005582702 + .long 2730973117 + .long 2611331084 + .long 1222407300 + .long 239142905 + .long 2320917745 + .long 4011165404 + .long 1166978938 + .long 927694873 + .long 2444814601 + .long 478285810 + .long 346868194 + .long 3727363513 + .long 2333957877 + .long 1855389746 + .long 594661906 + .long 956571621 + .long 693736388 + .long 3159759730 + .long 372948459 + .long 3710779492 + .long 1189323812 + .long 1913143242 + .long 1387472776 + .long 2024552164 + .long 745896919 + .long 3126591689 + .long 2378647625 + .long 3826286484 + .long 2774945552 + .long 4049104329 + .long 1491793838 + .long 1958216082 + .long 462327955 + .long 3357605672 + .long 1254923809 + .long 3803241362 + .long 2983587677 + .long 3916432164 + .long 924655910 + .long 2420244049 + .long 2509847619 + .long 3311515428 + .long 1672208059 + .long 3537897033 + .long 1849311821 + .long 545520802 + .long 724727943 + .long 2328063560 + .long 3344416119 + .long 2780826770 + .long 3698623643 + .long 1091041605 + .long 1449455886 + .long 361159825 + .long 2393864943 + .long 1266686244 + .long 3102279991 + .long 2182083211 + .long 2898911772 + .long 722319651 + .long 492762590 + .long 2533372489 + .long 1909592686 + .long 69199126 + .long 1502856249 + .long 1444639302 + .long 985525180 + .long 771777682 + .long 3819185373 + .long 138398252 + .long 3005712498 + .long 2889278605 + .long 1971050360 + .long 1543555365 + .long 3343403450 + .long 276796504 + .long 1716457700 + .long 1483589915 + .long 3942100721 + .long 3087110731 + .long 2391839604 + .long 553593009 + .long 3432915400 + .long 2967179831 + .long 3589234146 + .long 1879254167 + .long 488711913 + .long 1107186019 + .long 2570863504 + .long 1639392366 + .long 2883500997 + .long 3758508334 + .long 977423826 + .long 2214372039 + .long 846759712 + .long 3278784732 + .long 1472034698 + .long 3222049373 + .long 1954847653 + .long 133776782 + .long 1693519425 + .long 2262602168 + .long 2944069397 + .long 2149131451 + .long 3909695307 + .long 267553565 + .long 3387038850 + .long 230237041 + .long 1593171499 + .long 3295607 + .long 3524423319 + .long 535107130 + .long 2479110404 + .long 460474083 + .long 3186342998 + .long 6591214 + .long 2753879342 + .long 1070214261 + .long 663253512 + .long 920948167 + .long 2077718700 + .long 13182429 + .long 1212791388 + .long 2140428522 + .long 1326507024 + .long 1841896334 + .long 4155437400 + .long 26364858 + .long 2425582776 + .long 4280857045 + .long 2653014048 + .long 3683792669 + .long 4015907504 + .long 52729717 + .long 556198256 + .long 4266746795 + .long 1011060801 + .long 3072618042 + .long 3736847713 + .long 105459434 + .long 1112396512 + .long 4238526295 + .long 2022121603 + .long 1850268788 + .long 3178728131 + .long 210918868 + .long 2224793024 + .long 4182085295 + .long 4044243207 + .long 3700537577 + .long 2062488966 + .long 421837736 + .long 154618752 + .long 4069203294 + .long 3793519119 + .long 3106107858 + .long 4124977933 + .long 843675472 + .long 309237504 + .long 3843439293 + .long 3292070943 + .long 1917248420 + .long 3954988571 + .long 1687350944 + .long 618475008 + .long 3391911291 + .long 2289174591 + .long 3834496840 + .long 3615009846 + .long 3374701889 + .long 1236950016 + .long 2488855287 + .long 283381887 + .long 3374026384 + .long 2935052397 + .long 2454436482 + .long 2473900033 + .long 682743279 + .long 566763775 + .long 2453085473 + .long 1575137499 + .long 613905668 + .long 652832771 + .long 1365486558 + .long 1133527550 + .long 611203650 + .long 3150274999 + .long 1227811337 + .long 1305665542 + .long 2730973117 + .long 2267055100 + .long 1222407300 + .long 2005582702 + .long 2455622675 + .long 2611331084 + .long 1166978938 + .long 239142905 + .long 2444814601 + .long 4011165404 + .long 616278055 + .long 927694873 + .long 2333957877 + .long 478285810 + .long 594661906 + .long 3727363513 + .long 1232556110 + .long 1855389746 + .long 372948459 + .long 956571621 + .long 1189323812 + .long 3159759730 + .long 2465112221 + .long 3710779492 + .long 745896919 + .long 1913143242 + .long 2378647625 + .long 2024552164 + .long 635257146 + .long 3126591689 + .long 1491793838 + .long 3826286484 + .long 462327955 + .long 4049104329 + .long 1270514292 + .long 1958216082 + .long 2983587677 + .long 3357605672 + .long 924655910 + .long 3803241362 + .long 2541028584 + .long 3916432164 + .long 1672208059 + .long 2420244049 + .long 1849311821 + .long 3311515428 + .long 787089873 + .long 3537897033 + .long 3344416119 + .long 545520802 + .long 3698623643 + .long 2328063560 + .long 1574179747 + .long 2780826770 + .long 2393864943 + .long 1091041605 + .long 3102279991 + .long 361159825 + .long 3148359494 + .long 1266686244 + .long 492762590 + .long 2182083211 + .long 1909592686 + .long 722319651 + .long 2001751692 + .long 2533372489 + .long 985525180 + .long 69199126 + .long 3819185373 + .long 1444639302 + .long 4003503385 + .long 771777682 + .long 1971050360 + .long 138398252 + .long 3343403450 + .long 2889278605 + .long 3712039474 + .long 1543555365 + .long 3942100721 + .long 276796504 + .long 2391839604 + .long 1483589915 + .long 3129111652 + .long 3087110731 + .long 3589234146 + .long 553593009 + .long 488711913 + .long 2967179831 + .long 1963256009 + .long 1879254167 + .long 2883500997 + .long 1107186019 + .long 977423826 + .long 1639392366 + .long 3926512018 + .long 3758508334 + .long 1472034698 + .long 2214372039 + .long 1954847653 + .long 3278784732 + .long 3558056740 + .long 3222049373 + .long 2944069397 + .long 133776782 + .long 3909695307 + .long 2262602168 + .long 2821146184 + .long 2149131451 + .long 1593171499 + .long 267553565 + .long 3524423319 + .long 230237041 + .long 1347325072 + .long 3295607 + .long 3186342998 + .long 535107130 + .long 2753879342 + .long 460474083 + .long 2694650145 + .long 6591214 + .long 2077718700 + .long 1070214261 + .long 1212791388 + .long 920948167 + .long 1094332995 + .long 13182429 + .long 4155437400 + .long 2140428522 + .long 2425582776 + .long 1841896334 + .long 2188665991 + .long 26364858 + .long 4015907504 + .long 4280857045 + .long 556198256 + .long 3683792669 + .long 82364686 + .long 52729717 + .long 3736847713 + .long 4266746795 + .long 1112396512 + .long 3072618042 + .long 164729372 + .long 105459434 + .long 3178728131 + .long 4238526295 + .long 2224793024 + .long 1850268788 + .long 329458745 + .long 210918868 + .long 2062488966 + .long 4182085295 + .long 154618752 + .long 3700537577 + .long 658917491 + .long 421837736 + .long 4124977933 + .long 4069203294 + .long 309237504 + .long 3106107858 + .long 1317834983 + .long 843675472 + .long 3954988571 + .long 3843439293 + .long 618475008 + .long 1917248420 + .long 2635669967 + .long 1687350944 + .long 3615009846 + .long 3391911291 + .long 1236950016 + .long 3834496840 + .long 976372639 + .long 3374701889 + .long 2935052397 + .long 2488855287 + .long 2473900033 + .long 3374026384 + .long 1952745279 + .long 2454436482 + .long 1575137499 + .long 682743279 + .long 652832771 + .long 2453085473 + .long 3905490559 + .long 613905668 + .long 3150274999 + .long 1365486558 + .long 1305665542 + .long 611203650 + .long 3516013822 + .long 1227811337 + .long 2005582702 + .long 2730973117 + .long 2611331084 + .long 1222407300 + .long 2737060348 + .long 2455622675 + .long 4011165404 + .long 1166978938 + .long 927694873 + .long 2444814601 + .long 1179153400 + .long 616278055 + .long 3727363513 + .long 2333957877 + .long 1855389746 + .long 594661906 + .long 2358306800 + .long 1232556110 + .long 3159759730 + .long 372948459 + .long 3710779492 + .long 1189323812 + .long 421646305 + .long 2465112221 + .long 2024552164 + .long 745896919 + .long 3126591689 + .long 2378647625 + .long 843292611 + .long 635257146 + .long 4049104329 + .long 1491793838 + .long 1958216082 + .long 462327955 + .long 1686585223 + .long 1270514292 + .long 3803241362 + .long 2983587677 + .long 3916432164 + .long 924655910 + .long 3373170446 + .long 2541028584 + .long 3311515428 + .long 1672208059 + .long 3537897033 + .long 1849311821 + .long 2451373597 + .long 787089873 + .long 2328063560 + .long 3344416119 + .long 2780826770 + .long 3698623643 + .long 607779899 + .long 1574179747 + .long 361159825 + .long 2393864943 + .long 1266686244 + .long 3102279991 + .long 1215559799 + .long 3148359494 + .long 722319651 + .long 492762590 + .long 2533372489 + .long 1909592686 + .long 2431119599 + .long 2001751692 + .long 1444639302 + .long 985525180 + .long 771777682 + .long 3819185373 + .long 567271902 + .long 4003503385 + .long 2889278605 + .long 1971050360 + .long 1543555365 + .long 3343403450 + .long 1134543805 + .long 3712039474 + .long 1483589915 + .long 3942100721 + .long 3087110731 + .long 2391839604 + .long 2269087610 + .long 3129111652 + .long 2967179831 + .long 3589234146 + .long 1879254167 + .long 488711913 + .long 243207925 + .long 1963256009 + .long 1639392366 + .long 2883500997 + .long 3758508334 + .long 977423826 + .long 486415851 + .long 3926512018 + .long 3278784732 + .long 1472034698 + .long 3222049373 + .long 1954847653 + .long 972831702 + .long 3558056740 + .long 2262602168 + .long 2944069397 + .long 2149131451 + .long 3909695307 + .long 1945663404 + .long 2821146184 + .long 230237041 + .long 1593171499 + .long 3295607 + .long 3524423319 + .long 3891326808 + .long 1347325072 + .long 460474083 + .long 3186342998 + .long 6591214 + .long 2753879342 + .long 3487686321 + .long 2694650145 + .long 920948167 + .long 2077718700 + .long 13182429 + .long 1212791388 + .long 2680405347 + .long 1094332995 + .long 1841896334 + .long 4155437400 + .long 26364858 + .long 2425582776 + .long 1065843399 + .long 2188665991 + .long 3683792669 + .long 4015907504 + .long 52729717 + .long 556198256 + .long 2131686798 + .long 82364686 + .long 3072618042 + .long 3736847713 + .long 105459434 + .long 1112396512 + .long 4263373596 + .long 164729372 + .long 1850268788 + .long 3178728131 + .long 210918868 + .long 2224793024 + .long 4231779897 + .long 329458745 + .long 3700537577 + .long 2062488966 + .long 421837736 + .long 154618752 + .long 4168592498 + .long 658917491 + .long 3106107858 + .long 4124977933 + .long 843675472 + .long 309237504 + .long 4042217701 + .long 1317834983 + .long 1917248420 + .long 3954988571 + .long 1687350944 + .long 618475008 + .long 3789468107 + .long 2635669967 + .long 3834496840 + .long 3615009846 + .long 3374701889 + .long 1236950016 + .long 3283968918 + .long 976372639 + .long 3374026384 + .long 2935052397 + .long 2454436482 + .long 2473900033 + .long 2272970540 + .long 1952745279 + .long 2453085473 + .long 1575137499 + .long 613905668 + .long 652832771 + .long 250973784 + .long 3905490559 + .long 611203650 + .long 3150274999 + .long 1227811337 + .long 1305665542 + .long 501947569 + .long 3516013822 + .long 1222407300 + .long 2005582702 + .long 2455622675 + .long 2611331084 + .long 1003895138 + .long 2737060348 + .long 2444814601 + .long 4011165404 + .long 616278055 + .long 927694873 + .long 2007790276 + .long 1179153400 + .long 594661906 + .long 3727363513 + .long 1232556110 + .long 1855389746 + .long 4015580553 + .long 2358306800 + .long 1189323812 + .long 3159759730 + .long 2465112221 + .long 3710779492 + .long 3736193810 + .long 421646305 + .long 2378647625 + .long 2024552164 + .long 635257146 + .long 3126591689 + .long 3177420325 + .long 843292611 + .long 462327955 + .long 4049104329 + .long 1270514292 + .long 1958216082 + .long 2059873354 + .long 1686585223 + .long 924655910 + .long 3803241362 + .long 2541028584 + .long 3916432164 + .long 4119746708 + .long 3373170446 + .long 1849311821 + .long 3311515428 + .long 787089873 + .long 3537897033 + .long 3944526121 + .long 2451373597 + .long 3698623643 + .long 2328063560 + .long 1574179747 + .long 2780826770 + .long 3594084947 + .long 607779899 + .long 3102279991 + .long 361159825 + .long 3148359494 + .long 1266686244 + .long 2893202598 + .long 1215559799 + .long 1909592686 + .long 722319651 + .long 2001751692 + .long 2533372489 + .long 1491437901 + .long 2431119599 + .long 3819185373 + .long 1444639302 + .long 4003503385 + .long 771777682 + .long 2982875802 + .long 567271902 + .long 3343403450 + .long 2889278605 + .long 3712039474 + .long 1543555365 + .long 1670784308 + .long 1134543805 + .long 2391839604 + .long 1483589915 + .long 3129111652 + .long 3087110731 + .long 3341568617 + .long 2269087610 + .long 488711913 + .long 2967179831 + .long 1963256009 + .long 1879254167 + .long 2388169939 + .long 243207925 + .long 977423826 + .long 1639392366 + .long 3926512018 + .long 3758508334 + .long 481372583 + .long 486415851 + .long 1954847653 + .long 3278784732 + .long 3558056740 + .long 3222049373 + .long 962745166 + .long 972831702 + .long 3909695307 + .long 2262602168 + .long 2821146184 + .long 2149131451 + .long 1925490332 + .long 1945663404 + .long 3524423319 + .long 230237041 + .long 1347325072 + .long 3295607 + .long 3850980665 + .long 3891326808 + .long 2753879342 + .long 460474083 + .long 2694650145 + .long 6591214 + .long 3406994035 + .long 3487686321 + .long 1212791388 + .long 920948167 + .long 1094332995 + .long 13182429 + .long 2519020775 + .long 2680405347 + .long 2425582776 + .long 1841896334 + .long 2188665991 + .long 26364858 + .long 743074255 + .long 1065843399 + .long 556198256 + .long 3683792669 + .long 82364686 + .long 52729717 + .long 1486148511 + .long 2131686798 + .long 1112396512 + .long 3072618042 + .long 164729372 + .long 105459434 + .long 2972297022 + .long 4263373596 + .long 2224793024 + .long 1850268788 + .long 329458745 + .long 210918868 + .long 1649626749 + .long 4231779897 + .long 154618752 + .long 3700537577 + .long 658917491 + .long 421837736 + .long 3299253499 + .long 4168592498 + .long 309237504 + .long 3106107858 + .long 1317834983 + .long 843675472 + .long 2303539703 + .long 4042217701 + .long 618475008 + .long 1917248420 + .long 2635669967 + .long 1687350944 + .long 312112110 + .long 3789468107 + .long 1236950016 + .long 3834496840 + .long 976372639 + .long 3374701889 + .long 624224221 + .long 3283968918 + .long 2473900033 + .long 3374026384 + .long 1952745279 + .long 2454436482 + .long 1248448442 + .long 2272970540 + .long 652832771 + .long 2453085473 + .long 3905490559 + .long 613905668 + .long 2496896884 + .long 250973784 + .long 1305665542 + .long 611203650 + .long 3516013822 + .long 1227811337 + .long 698826472 + .long 501947569 + .long 2611331084 + .long 1222407300 + .long 2737060348 + .long 2455622675 + .long 1397652945 + .long 1003895138 + .long 927694873 + .long 2444814601 + .long 1179153400 + .long 616278055 + .long 2795305890 + .long 2007790276 + .long 1855389746 + .long 594661906 + .long 2358306800 + .long 1232556110 + .long 1295644484 + .long 4015580553 + .long 3710779492 + .long 1189323812 + .long 421646305 + .long 2465112221 + .long 2591288968 + .long 3736193810 + .long 3126591689 + .long 2378647625 + .long 843292611 + .long 635257146 + .long 887610640 + .long 3177420325 + .long 1958216082 + .long 462327955 + .long 1686585223 + .long 1270514292 + .long 1775221280 + .long 2059873354 + .long 3916432164 + .long 924655910 + .long 3373170446 + .long 2541028584 + .long 3550442561 + .long 4119746708 + .long 3537897033 + .long 1849311821 + .long 2451373597 + .long 787089873 + .long 2805917826 + .long 3944526121 + .long 2780826770 + .long 3698623643 + .long 607779899 + .long 1574179747 + .long 1316868356 + .long 3594084947 + .long 1266686244 + .long 3102279991 + .long 1215559799 + .long 3148359494 + .long 2633736712 + .long 2893202598 + .long 2533372489 + .long 1909592686 + .long 2431119599 + .long 2001751692 + .long 972506129 + .long 1491437901 + .long 771777682 + .long 3819185373 + .long 567271902 + .long 4003503385 + .long 1945012259 + .long 2982875802 + .long 1543555365 + .long 3343403450 + .long 1134543805 + .long 3712039474 + .long 3890024518 + .long 1670784308 + .long 3087110731 + .long 2391839604 + .long 2269087610 + .long 3129111652 + .long 3485081741 + .long 3341568617 + .long 1879254167 + .long 488711913 + .long 243207925 + .long 1963256009 + .long 2675196186 + .long 2388169939 + .long 3758508334 + .long 977423826 + .long 486415851 + .long 3926512018 + .long 1055425077 + .long 481372583 + .long 3222049373 + .long 1954847653 + .long 972831702 + .long 3558056740 + .long 2110850155 + .long 962745166 + .long 2149131451 + .long 3909695307 + .long 1945663404 + .long 2821146184 + .long 4221700311 + .long 1925490332 + .long 3295607 + .long 3524423319 + .long 3891326808 + .long 1347325072 + .long 4148433327 + .long 3850980665 + .long 6591214 + .long 2753879342 + .long 3487686321 + .long 2694650145 + .long 4001899359 + .long 3406994035 + .long 13182429 + .long 1212791388 + .long 2680405347 + .long 1094332995 + .long 3708831422 + .long 2519020775 + .long 26364858 + .long 2425582776 + .long 1065843399 + .long 2188665991 + .long 3122695549 + .long 743074255 + .long 52729717 + .long 556198256 + .long 2131686798 + .long 82364686 + .long 1950423802 + .long 1486148511 + .long 105459434 + .long 1112396512 + .long 4263373596 + .long 164729372 + .long 3900847605 + .long 2972297022 + .long 210918868 + .long 2224793024 + .long 4231779897 + .long 329458745 + .long 3506727914 + .long 1649626749 + .long 421837736 + .long 154618752 + .long 4168592498 + .long 658917491 + .long 2718488532 + .long 3299253499 + .long 843675472 + .long 309237504 + .long 4042217701 + .long 1317834983 + .long 1142009769 + .long 2303539703 + .long 1687350944 + .long 618475008 + .long 3789468107 + .long 2635669967 + .long 2284019538 + .long 312112110 + .long 3374701889 + .long 1236950016 + .long 3283968918 + .long 976372639 + .long 273071781 + .long 624224221 + .long 2454436482 + .long 2473900033 + .long 2272970540 + .long 1952745279 + .long 546143563 + .long 1248448442 + .long 613905668 + .long 652832771 + .long 250973784 + .long 3905490559 + .long 1092287127 + .long 2496896884 + .long 1227811337 + .long 1305665542 + .long 501947569 + .long 3516013822 + .long 2184574254 + .long 698826472 + .long 2455622675 + .long 2611331084 + .long 1003895138 + .long 2737060348 + .long 74181213 + .long 1397652945 + .long 616278055 + .long 927694873 + .long 2007790276 + .long 1179153400 + .long 148362426 + .long 2795305890 + .long 1232556110 + .long 1855389746 + .long 4015580553 + .long 2358306800 + .long 296724853 + .long 1295644484 + .long 2465112221 + .long 3710779492 + .long 3736193810 + .long 421646305 + .long 593449707 + .long 2591288968 + .long 635257146 + .long 3126591689 + .long 3177420325 + .long 843292611 + .long 1186899415 + .long 887610640 + .long 1270514292 + .long 1958216082 + .long 2059873354 + .long 1686585223 + .long 2373798830 + .long 1775221280 + .long 2541028584 + .long 3916432164 + .long 4119746708 + .long 3373170446 + .long 452630365 + .long 3550442561 + .long 787089873 + .long 3537897033 + .long 3944526121 + .long 2451373597 + .long 905260731 + .long 2805917826 + .long 1574179747 + .long 2780826770 + .long 3594084947 + .long 607779899 + .long 1810521462 + .long 1316868356 + .long 3148359494 + .long 1266686244 + .long 2893202598 + .long 1215559799 + .long 3621042925 + .long 2633736712 + .long 2001751692 + .long 2533372489 + .long 1491437901 + .long 2431119599 + .long 2947118554 + .long 972506129 + .long 4003503385 + .long 771777682 + .long 2982875802 + .long 567271902 + .long 1599269812 + .long 1945012259 + .long 3712039474 + .long 1543555365 + .long 1670784308 + .long 1134543805 + .long 3198539624 + .long 3890024518 + .long 3129111652 + .long 3087110731 + .long 3341568617 + .long 2269087610 + .long 2102111953 + .long 3485081741 + .long 1963256009 + .long 1879254167 + .long 2388169939 + .long 243207925 + .long 4204223906 + .long 2675196186 + .long 3926512018 + .long 3758508334 + .long 481372583 + .long 486415851 + .long 4113480516 + .long 1055425077 + .long 3558056740 + .long 3222049373 + .long 962745166 + .long 972831702 + .long 3931993737 + .long 2110850155 + .long 2821146184 + .long 2149131451 + .long 1925490332 + .long 1945663404 + .long 3569020178 + .long 4221700311 + .long 1347325072 + .long 3295607 + .long 3850980665 + .long 3891326808 + .long 2843073060 + .long 4148433327 + .long 2694650145 + .long 6591214 + .long 3406994035 + .long 3487686321 + .long 1391178824 + .long 4001899359 + .long 1094332995 + .long 13182429 + .long 2519020775 + .long 2680405347 + .long 2782357648 + .long 3708831422 + .long 2188665991 + .long 26364858 + .long 743074255 + .long 1065843399 + .long 1269748001 + .long 3122695549 + .long 82364686 + .long 52729717 + .long 1486148511 + .long 2131686798 + .long 2539496002 + .long 1950423802 + .long 164729372 + .long 105459434 + .long 2972297022 + .long 4263373596 + .long 784024708 + .long 3900847605 + .long 329458745 + .long 210918868 + .long 1649626749 + .long 4231779897 + .long 1568049417 + .long 3506727914 + .long 658917491 + .long 421837736 + .long 3299253499 + .long 4168592498 + .long 3136098835 + .long 2718488532 + .long 1317834983 + .long 843675472 + .long 2303539703 + .long 4042217701 + .long 1977230375 + .long 1142009769 + .long 2635669967 + .long 1687350944 + .long 312112110 + .long 3789468107 + .long 3954460750 + .long 2284019538 + .long 976372639 + .long 3374701889 + .long 624224221 + .long 3283968918 + .long 3613954205 + .long 273071781 + .long 1952745279 + .long 2454436482 + .long 1248448442 + .long 2272970540 + .long 2932941114 + .long 546143563 + .long 3905490559 + .long 613905668 + .long 2496896884 + .long 250973784 + .long 1570914932 + .long 1092287127 + .long 3516013822 + .long 1227811337 + .long 698826472 + .long 501947569 + .long 3141829865 + .long 2184574254 + .long 2737060348 + .long 2455622675 + .long 1397652945 + .long 1003895138 + .long 1988692435 + .long 74181213 + .long 1179153400 + .long 616278055 + .long 2795305890 + .long 2007790276 + .long 3977384870 + .long 148362426 + .long 2358306800 + .long 1232556110 + .long 1295644484 + .long 4015580553 + .long 3659802444 + .long 296724853 + .long 421646305 + .long 2465112221 + .long 2591288968 + .long 3736193810 + .long 3024637593 + .long 593449707 + .long 843292611 + .long 635257146 + .long 887610640 + .long 3177420325 + .long 1754307891 + .long 1186899415 + .long 1686585223 + .long 1270514292 + .long 1775221280 + .long 2059873354 + .long 3508615783 + .long 2373798830 + .long 3373170446 + .long 2541028584 + .long 3550442561 + .long 4119746708 + .long 2722264270 + .long 452630365 + .long 2451373597 + .long 787089873 + .long 2805917826 + .long 3944526121 + .long 1149561244 + .long 905260731 + .long 607779899 + .long 1574179747 + .long 1316868356 + .long 3594084947 + .long 2299122488 + .long 1810521462 + .long 1215559799 + .long 3148359494 + .long 2633736712 + .long 2893202598 + .long 303277681 + .long 3621042925 + .long 2431119599 + .long 2001751692 + .long 972506129 + .long 1491437901 + .long 606555363 + .long 2947118554 + .long 567271902 + .long 4003503385 + .long 1945012259 + .long 2982875802 + .long 1213110727 + .long 1599269812 + .long 1134543805 + .long 3712039474 + .long 3890024518 + .long 1670784308 + .long 2426221454 + .long 3198539624 + .long 2269087610 + .long 3129111652 + .long 3485081741 + .long 3341568617 + .long 557475612 + .long 2102111953 + .long 243207925 + .long 1963256009 + .long 2675196186 + .long 2388169939 + .long 1114951224 + .long 4204223906 + .long 486415851 + .long 3926512018 + .long 1055425077 + .long 481372583 + .long 2229902448 + .long 4113480516 + .long 972831702 + .long 3558056740 + .long 2110850155 + .long 962745166 + .long 164837600 + .long 3931993737 + .long 1945663404 + .long 2821146184 + .long 4221700311 + .long 1925490332 + .long 329675200 + .long 3569020178 + .long 3891326808 + .long 1347325072 + .long 4148433327 + .long 3850980665 + .long 659350401 + .long 2843073060 + .long 3487686321 + .long 2694650145 + .long 4001899359 + .long 3406994035 + .long 1318700802 + .long 1391178824 + .long 2680405347 + .long 1094332995 + .long 3708831422 + .long 2519020775 + .long 2637401604 + .long 2782357648 + .long 1065843399 + .long 2188665991 + .long 3122695549 + .long 743074255 + .long 979835913 + .long 1269748001 + .long 2131686798 + .long 82364686 + .long 1950423802 + .long 1486148511 + .long 1959671827 + .long 2539496002 + .long 4263373596 + .long 164729372 + .long 3900847605 + .long 2972297022 + .long 3919343654 + .long 784024708 + .long 4231779897 + .long 329458745 + .long 3506727914 + .long 1649626749 + .long 3543720013 + .long 1568049417 + .long 4168592498 + .long 658917491 + .long 2718488532 + .long 3299253499 + .long 2792472730 + .long 3136098835 + .long 4042217701 + .long 1317834983 + .long 1142009769 + .long 2303539703 + .long 1289978165 + .long 1977230375 + .long 3789468107 + .long 2635669967 + .long 2284019538 + .long 312112110 + .long 2579956331 + .long 3954460750 + .long 3283968918 + .long 976372639 + .long 273071781 + .long 624224221 + .long 864945366 + .long 3613954205 + .long 2272970540 + .long 1952745279 + .long 546143563 + .long 1248448442 + .long 1729890733 + .long 2932941114 + .long 250973784 + .long 3905490559 + .long 1092287127 + .long 2496896884 + .long 3459781466 + .long 1570914932 + .long 501947569 + .long 3516013822 + .long 2184574254 + .long 698826472 + .long 2624595636 + .long 3141829865 + .long 1003895138 + .long 2737060348 + .long 74181213 + .long 1397652945 + .long 954223976 + .long 1988692435 + .long 2007790276 + .long 1179153400 + .long 148362426 + .long 2795305890 + .long 1908447953 + .long 3977384870 + .long 4015580553 + .long 2358306800 + .long 296724853 + .long 1295644484 + .long 3816895906 + .long 3659802444 + .long 3736193810 + .long 421646305 + .long 593449707 + .long 2591288968 + .long 3338824517 + .long 3024637593 + .long 3177420325 + .long 843292611 + .long 1186899415 + .long 887610640 + .long 2382681739 + .long 1754307891 + .long 2059873354 + .long 1686585223 + .long 2373798830 + .long 1775221280 + .long 470396183 + .long 3508615783 + .long 4119746708 + .long 3373170446 + .long 452630365 + .long 3550442561 + .long 940792367 + .long 2722264270 + .long 3944526121 + .long 2451373597 + .long 905260731 + .long 2805917826 + .long 1881584735 + .long 1149561244 + .long 3594084947 + .long 607779899 + .long 1810521462 + .long 1316868356 + .long 3763169470 + .long 2299122488 + .long 2893202598 + .long 1215559799 + .long 3621042925 + .long 2633736712 + .long 3231371645 + .long 303277681 + .long 1491437901 + .long 2431119599 + .long 2947118554 + .long 972506129 + .long 2167775995 + .long 606555363 + .long 2982875802 + .long 567271902 + .long 1599269812 + .long 1945012259 + .long 40584695 + .long 1213110727 + .long 1670784308 + .long 1134543805 + .long 3198539624 + .long 3890024518 + .long 81169391 + .long 2426221454 + .long 3341568617 + .long 2269087610 + .long 2102111953 + .long 3485081741 + .long 162338783 + .long 557475612 + .long 2388169939 + .long 243207925 + .long 4204223906 + .long 2675196186 + .long 324677567 + .long 1114951224 + .long 481372583 + .long 486415851 + .long 4113480516 + .long 1055425077 + .long 649355134 + .long 2229902448 + .long 962745166 + .long 972831702 + .long 3931993737 + .long 2110850155 + .long 1298710268 + .long 164837600 + .long 1925490332 + .long 1945663404 + .long 3569020178 + .long 4221700311 + .long 2597420537 + .long 329675200 + .long 3850980665 + .long 3891326808 + .long 2843073060 + .long 4148433327 + .long 899873778 + .long 659350401 + .long 3406994035 + .long 3487686321 + .long 1391178824 + .long 4001899359 + .long 1799747556 + .long 1318700802 + .long 2519020775 + .long 2680405347 + .long 2782357648 + .long 3708831422 + .long 3599495112 + .long 2637401604 + .long 743074255 + .long 1065843399 + .long 1269748001 + .long 3122695549 + .long 2904022928 + .long 979835913 + .long 1486148511 + .long 2131686798 + .long 2539496002 + .long 1950423802 + .long 1513078560 + .long 1959671827 + .long 2972297022 + .long 4263373596 + .long 784024708 + .long 3900847605 + .long 3026157121 + .long 3919343654 + .long 1649626749 + .long 4231779897 + .long 1568049417 + .long 3506727914 + .long 1757346946 + .long 3543720013 + .long 3299253499 + .long 4168592498 + .long 3136098835 + .long 2718488532 + .long 3514693892 + .long 2792472730 + .long 2303539703 + .long 4042217701 + .long 1977230375 + .long 1142009769 + .long 2734420489 + .long 1289978165 + .long 312112110 + .long 3789468107 + .long 3954460750 + .long 2284019538 + .long 1173873683 + .long 2579956331 + .long 624224221 + .long 3283968918 + .long 3613954205 + .long 273071781 + .long 2347747367 + .long 864945366 + .long 1248448442 + .long 2272970540 + .long 2932941114 + .long 546143563 + .long 400527438 + .long 1729890733 + .long 2496896884 + .long 250973784 + .long 1570914932 + .long 1092287127 + .long 801054876 + .long 3459781466 + .long 698826472 + .long 501947569 + .long 3141829865 + .long 2184574254 + .long 1602109753 + .long 2624595636 + .long 1397652945 + .long 1003895138 + .long 1988692435 + .long 74181213 + .long 3204219507 + .long 954223976 + .long 2795305890 + .long 2007790276 + .long 3977384870 + .long 148362426 + .long 2113471718 + .long 1908447953 + .long 1295644484 + .long 4015580553 + .long 3659802444 + .long 296724853 + .long 4226943436 + .long 3816895906 + .long 2591288968 + .long 3736193810 + .long 3024637593 + .long 593449707 + .long 4158919577 + .long 3338824517 + .long 887610640 + .long 3177420325 + .long 1754307891 + .long 1186899415 + .long 4022871858 + .long 2382681739 + .long 1775221280 + .long 2059873354 + .long 3508615783 + .long 2373798830 + .long 3750776420 + .long 470396183 + .long 3550442561 + .long 4119746708 + .long 2722264270 + .long 452630365 + .long 3206585544 + .long 940792367 + .long 2805917826 + .long 3944526121 + .long 1149561244 + .long 905260731 + .long 2118203793 + .long 1881584735 + .long 1316868356 + .long 3594084947 + .long 2299122488 + .long 1810521462 + .long 4236407587 + .long 3763169470 + .long 2633736712 + .long 2893202598 + .long 303277681 + .long 3621042925 + .long 4177847879 + .long 3231371645 + .long 972506129 + .long 1491437901 + .long 606555363 + .long 2947118554 + .long 4060728462 + .long 2167775995 + .long 1945012259 + .long 2982875802 + .long 1213110727 + .long 1599269812 + .long 3826489629 + .long 40584695 + .long 3890024518 + .long 1670784308 + .long 2426221454 + .long 3198539624 + .long 3358011962 + .long 81169391 + .long 3485081741 + .long 3341568617 + .long 557475612 + .long 2102111953 + .long 2421056629 + .long 162338783 + .long 2675196186 + .long 2388169939 + .long 1114951224 + .long 4204223906 + .long 547145963 + .long 324677567 + .long 1055425077 + .long 481372583 + .long 2229902448 + .long 4113480516 + .long 1094291926 + .long 649355134 + .long 2110850155 + .long 962745166 + .long 164837600 + .long 3931993737 + .long 2188583852 + .long 1298710268 + .long 4221700311 + .long 1925490332 + .long 329675200 + .long 3569020178 + .long 82200408 + .long 2597420537 + .long 4148433327 + .long 3850980665 + .long 659350401 + .long 2843073060 + .long 164400817 + .long 899873778 + .long 4001899359 + .long 3406994035 + .long 1318700802 + .long 1391178824 + .long 328801635 + .long 1799747556 + .long 3708831422 + .long 2519020775 + .long 2637401604 + .long 2782357648 + .long 657603271 + .long 3599495112 + .long 3122695549 + .long 743074255 + .long 979835913 + .long 1269748001 + .long 1315206542 + .long 2904022928 + .long 1950423802 + .long 1486148511 + .long 1959671827 + .long 2539496002 + .long 2630413084 + .long 1513078560 + .long 3900847605 + .long 2972297022 + .long 3919343654 + .long 784024708 + .long 965858873 + .long 3026157121 + .long 3506727914 + .long 1649626749 + .long 3543720013 + .long 1568049417 + .long 1931717747 + .long 1757346946 + .long 2718488532 + .long 3299253499 + .long 2792472730 + .long 3136098835 + .long 3863435494 + .long 3514693892 + .long 1142009769 + .long 2303539703 + .long 1289978165 + .long 1977230375 + .long 3431903692 + .long 2734420489 + .long 2284019538 + .long 312112110 + .long 2579956331 + .long 3954460750 + .long 2568840088 + .long 1173873683 + .long 273071781 + .long 624224221 + .long 864945366 + .long 3613954205 + .long 842712880 + .long 2347747367 + .long 546143563 + .long 1248448442 + .long 1729890733 + .long 2932941114 + .long 1685425760 + .long 400527438 + .long 1092287127 + .long 2496896884 + .long 3459781466 + .long 1570914932 + .long 3370851521 + .long 801054876 + .long 2184574254 + .long 698826472 + .long 2624595636 + .long 3141829865 + .long 2446735747 + .long 1602109753 + .long 74181213 + .long 1397652945 + .long 954223976 + .long 1988692435 + .long 598504198 + .long 3204219507 + .long 148362426 + .long 2795305890 + .long 1908447953 + .long 3977384870 + .long 1197008397 + .long 2113471718 + .long 296724853 + .long 1295644484 + .long 3816895906 + .long 3659802444 + .long 2394016794 + .long 4226943436 + .long 593449707 + .long 2591288968 + .long 3338824517 + .long 3024637593 + .long 493066293 + .long 4158919577 + .long 1186899415 + .long 887610640 + .long 2382681739 + .long 1754307891 + .long 986132586 + .long 4022871858 + .long 2373798830 + .long 1775221280 + .long 470396183 + .long 3508615783 + .long 1972265172 + .long 3750776420 + .long 452630365 + .long 3550442561 + .long 940792367 + .long 2722264270 + .long 3944530345 + .long 3206585544 + .long 905260731 + .long 2805917826 + .long 1881584735 + .long 1149561244 + .long 3594093395 + .long 2118203793 + .long 1810521462 + .long 1316868356 + .long 3763169470 + .long 2299122488 + .long 2893219494 + .long 4236407587 + .long 3621042925 + .long 2633736712 + .long 3231371645 + .long 303277681 + .long 1491471692 + .long 4177847879 + .long 2947118554 + .long 972506129 + .long 2167775995 + .long 606555363 + .long 2982943385 + .long 4060728462 + .long 1599269812 + .long 1945012259 + .long 40584695 + .long 1213110727 + .long 1670919475 + .long 3826489629 + .long 3198539624 + .long 3890024518 + .long 81169391 + .long 2426221454 + .long 3341838951 + .long 3358011962 + .long 2102111953 + .long 3485081741 + .long 162338783 + .long 557475612 + .long 2388710606 + .long 2421056629 + .long 4204223906 + .long 2675196186 + .long 324677567 + .long 1114951224 + .long 482453916 + .long 547145963 + .long 4113480516 + .long 1055425077 + .long 649355134 + .long 2229902448 + .long 964907833 + .long 1094291926 + .long 3931993737 + .long 2110850155 + .long 1298710268 + .long 164837600 + .long 1929815667 + .long 2188583852 + .long 3569020178 + .long 4221700311 + .long 2597420537 + .long 329675200 + .long 3859631335 + .long 82200408 + .long 2843073060 + .long 4148433327 + .long 899873778 + .long 659350401 + .long 3424295375 + .long 164400817 + .long 1391178824 + .long 4001899359 + .long 1799747556 + .long 1318700802 + .long 2553623455 + .long 328801635 + .long 2782357648 + .long 3708831422 + .long 3599495112 + .long 2637401604 + .long 812279614 + .long 657603271 + .long 1269748001 + .long 3122695549 + .long 2904022928 + .long 979835913 + .long 1624559229 + .long 1315206542 + .long 2539496002 + .long 1950423802 + .long 1513078560 + .long 1959671827 + .long 3249118458 + .long 2630413084 + .long 784024708 + .long 3900847605 + .long 3026157121 + .long 3919343654 + .long 2203269620 + .long 965858873 + .long 1568049417 + .long 3506727914 + .long 1757346946 + .long 3543720013 + .long 111571945 + .long 1931717747 + .long 3136098835 + .long 2718488532 + .long 3514693892 + .long 2792472730 + .long 223143890 + .long 3863435494 + .long 1977230375 + .long 1142009769 + .long 2734420489 + .long 1289978165 + .long 446287780 + .long 3431903692 + .long 3954460750 + .long 2284019538 + .long 1173873683 + .long 2579956331 + .long 892575561 + .long 2568840088 + .long 3613954205 + .long 273071781 + .long 2347747367 + .long 864945366 + .long 1785151123 + .long 842712880 + .long 2932941114 + .long 546143563 + .long 400527438 + .long 1729890733 + .long 3570302247 + .long 1685425760 + .long 1570914932 + .long 1092287127 + .long 801054876 + .long 3459781466 + .long 2845637198 + .long 3370851521 + .long 3141829865 + .long 2184574254 + .long 1602109753 + .long 2624595636 + .long 1396307100 + .long 2446735747 + .long 1988692435 + .long 74181213 + .long 3204219507 + .long 954223976 + .long 2792614201 + .long 598504198 + .long 3977384870 + .long 148362426 + .long 2113471718 + .long 1908447953 + .long 1290261106 + .long 1197008397 + .long 3659802444 + .long 296724853 + .long 4226943436 + .long 3816895906 + .long 2580522212 + .long 2394016794 + .long 3024637593 + .long 593449707 + .long 4158919577 + .long 3338824517 + .long 866077128 + .long 493066293 + .long 1754307891 + .long 1186899415 + .long 4022871858 + .long 2382681739 + .long 1732154256 + .long 986132586 + .long 3508615783 + .long 2373798830 + .long 3750776420 + .long 470396183 + .long 3464308513 + .long 1972265172 + .long 2722264270 + .long 452630365 + .long 3206585544 + .long 940792367 + .long 2633649730 + .long 3944530345 + .long 1149561244 + .long 905260731 + .long 2118203793 + .long 1881584735 + .long 972332164 + .long 3594093395 + .long 2299122488 + .long 1810521462 + .long 4236407587 + .long 3763169470 + .long 1944664328 + .long 2893219494 + .long 303277681 + .long 3621042925 + .long 4177847879 + .long 3231371645 + .long 3889328657 + .long 1491471692 + .long 606555363 + .long 2947118554 + .long 4060728462 + .long 2167775995 + .long 3483690018 + .long 2982943385 + .long 1213110727 + .long 1599269812 + .long 3826489629 + .long 40584695 + .long 2672412741 + .long 1670919475 + .long 2426221454 + .long 3198539624 + .long 3358011962 + .long 81169391 + .long 1049858187 + .long 3341838951 + .long 557475612 + .long 2102111953 + .long 2421056629 + .long 162338783 + .long 2099716375 + .long 2388710606 + .long 1114951224 + .long 4204223906 + .long 547145963 + .long 324677567 + .long 4199432751 + .long 482453916 + .long 2229902448 + .long 4113480516 + .long 1094291926 + .long 649355134 + .long 4103898207 + .long 964907833 + .long 164837600 + .long 3931993737 + .long 2188583852 + .long 1298710268 + .long 3912829119 + .long 1929815667 + .long 329675200 + .long 3569020178 + .long 82200408 + .long 2597420537 + .long 3530690942 + .long 3859631335 + .long 659350401 + .long 2843073060 + .long 164400817 + .long 899873778 + .long 2766414588 + .long 3424295375 + .long 1318700802 + .long 1391178824 + .long 328801635 + .long 1799747556 + .long 1237861880 + .long 2553623455 + .long 2637401604 + .long 2782357648 + .long 657603271 + .long 3599495112 + .long 2475723761 + .long 812279614 + .long 979835913 + .long 1269748001 + .long 1315206542 + .long 2904022928 + .long 656480226 + .long 1624559229 + .long 1959671827 + .long 2539496002 + .long 2630413084 + .long 1513078560 + .long 1312960453 + .long 3249118458 + .long 3919343654 + .long 784024708 + .long 965858873 + .long 3026157121 + .long 2625920907 + .long 2203269620 + .long 3543720013 + .long 1568049417 + .long 1931717747 + .long 1757346946 + .long 956874519 + .long 111571945 + .long 2792472730 + .long 3136098835 + .long 3863435494 + .long 3514693892 + .long 1913749038 + .long 223143890 + .long 1289978165 + .long 1977230375 + .long 3431903692 + .long 2734420489 + .long 3827498077 + .long 446287780 + .long 2579956331 + .long 3954460750 + .long 2568840088 + .long 1173873683 + .long 3360028859 + .long 892575561 + .long 864945366 + .long 3613954205 + .long 842712880 + .long 2347747367 + .long 2425090423 + .long 1785151123 + .long 1729890733 + .long 2932941114 + .long 1685425760 + .long 400527438 + .long 555213551 + .long 3570302247 + .long 3459781466 + .long 1570914932 + .long 3370851521 + .long 801054876 + .long 1110427102 + .long 2845637198 + .long 2624595636 + .long 3141829865 + .long 2446735747 + .long 1602109753 + .long 2220854205 + .long 1396307100 + .long 954223976 + .long 1988692435 + .long 598504198 + .long 3204219507 + .long 146741115 + .long 2792614201 + .long 1908447953 + .long 3977384870 + .long 1197008397 + .long 2113471718 + .long 293482231 + .long 1290261106 + .long 3816895906 + .long 3659802444 + .long 2394016794 + .long 4226943436 + .long 586964463 + .long 2580522212 + .long 3338824517 + .long 3024637593 + .long 493066293 + .long 4158919577 + .long 1173928927 + .long 866077128 + .long 2382681739 + .long 1754307891 + .long 986132586 + .long 4022871858 + .long 2347857855 + .long 1732154256 + .long 470396183 + .long 3508615783 + .long 1972265172 + .long 3750776420 + .long 400748414 + .long 3464308513 + .long 940792367 + .long 2722264270 + .long 3944530345 + .long 3206585544 + .long 801496828 + .long 2633649730 + .long 1881584735 + .long 1149561244 + .long 3594093395 + .long 2118203793 + .long 1602993657 + .long 972332164 + .long 3763169470 + .long 2299122488 + .long 2893219494 + .long 4236407587 + .long 3205987314 + .long 1944664328 + .long 3231371645 + .long 303277681 + .long 1491471692 + .long 4177847879 + .long 2117007332 + .long 3889328657 + .long 2167775995 + .long 606555363 + .long 2982943385 + .long 4060728462 + .long 4234014665 + .long 3483690018 + .long 40584695 + .long 1213110727 + .long 1670919475 + .long 3826489629 + .long 4173062034 + .long 2672412741 + .long 81169391 + .long 2426221454 + .long 3341838951 + .long 3358011962 + .long 4051156773 + .long 1049858187 + .long 162338783 + .long 557475612 + .long 2388710606 + .long 2421056629 + .long 3807346250 + .long 2099716375 + .long 324677567 + .long 1114951224 + .long 482453916 + .long 547145963 + .long 3319725204 + .long 4199432751 + .long 649355134 + .long 2229902448 + .long 964907833 + .long 1094291926 + .long 2344483112 + .long 4103898207 + .long 1298710268 + .long 164837600 + .long 1929815667 + .long 2188583852 + .long 393998928 + .long 3912829119 + .long 2597420537 + .long 329675200 + .long 3859631335 + .long 82200408 + .long 787997856 + .long 3530690942 + .long 899873778 + .long 659350401 + .long 3424295375 + .long 164400817 + .long 1575995713 + .long 2766414588 + .long 1799747556 + .long 1318700802 + .long 2553623455 + .long 328801635 + .long 3151991427 + .long 1237861880 + .long 3599495112 + .long 2637401604 + .long 812279614 + .long 657603271 + .long 2009015559 + .long 2475723761 + .long 2904022928 + .long 979835913 + .long 1624559229 + .long 1315206542 + .long 4018031118 + .long 656480226 + .long 1513078560 + .long 1959671827 + .long 3249118458 + .long 2630413084 + .long 3741094941 + .long 1312960453 + .long 3026157121 + .long 3919343654 + .long 2203269620 + .long 965858873 + .long 3187222587 + .long 2625920907 + .long 1757346946 + .long 3543720013 + .long 111571945 + .long 1931717747 + .long 2079477878 + .long 956874519 + .long 3514693892 + .long 2792472730 + .long 223143890 + .long 3863435494 + .long 4158955756 + .long 1913749038 + .long 2734420489 + .long 1289978165 + .long 446287780 + .long 3431903692 + .long 4022944216 + .long 3827498077 + .long 1173873683 + .long 2579956331 + .long 892575561 + .long 2568840088 + .long 3750921137 + .long 3360028859 + .long 2347747367 + .long 864945366 + .long 1785151123 + .long 842712880 + .long 3206874979 + .long 2425090423 + .long 400527438 + .long 1729890733 + .long 3570302247 + .long 1685425760 + .long 2118782663 + .long 555213551 + .long 801054876 + .long 3459781466 + .long 2845637198 + .long 3370851521 + .long 4237565327 + .long 1110427102 + .long 1602109753 + .long 2624595636 + .long 1396307100 + .long 2446735747 + .long 4180163359 + .long 2220854205 + .long 3204219507 + .long 954223976 + .long 2792614201 + .long 598504198 + .long 4065359423 + .long 146741115 + .long 2113471718 + .long 1908447953 + .long 1290261106 + .long 1197008397 + .long 3835751551 + .long 293482231 + .long 4226943436 + .long 3816895906 + .long 2580522212 + .long 2394016794 + .long 3376535807 + .long 586964463 + .long 4158919577 + .long 3338824517 + .long 866077128 + .long 493066293 + .long 2458104319 + .long 1173928927 + .long 4022871858 + .long 2382681739 + .long 1732154256 + .long 986132586 + .long 621241343 + .long 2347857855 + .long 3750776420 + .long 470396183 + .long 3464308513 + .long 1972265172 + .long 1242482686 + .long 400748414 + .long 3206585544 + .long 940792367 + .long 2633649730 + .long 3944530345 + .long 2484965372 + .long 801496828 + .long 2118203793 + .long 1881584735 + .long 972332164 + .long 3594093395 + .long 674963448 + .long 1602993657 + .long 4236407587 + .long 3763169470 + .long 1944664328 + .long 2893219494 + .long 1349926897 + .long 3205987314 + .long 4177847879 + .long 3231371645 + .long 3889328657 + .long 1491471692 + .long 2699853794 + .long 2117007332 + .long 4060728462 + .long 2167775995 + .long 3483690018 + .long 2982943385 + .long 1104740292 + .long 4234014665 + .long 3826489629 + .long 40584695 + .long 2672412741 + .long 1670919475 + .long 2209480585 + .long 4173062034 + .long 3358011962 + .long 81169391 + .long 1049858187 + .long 3341838951 + .long 123993874 + .long 4051156773 + .long 2421056629 + .long 162338783 + .long 2099716375 + .long 2388710606 + .long 247987749 + .long 3807346250 + .long 547145963 + .long 324677567 + .long 4199432751 + .long 482453916 + .long 495975499 + .long 3319725204 + .long 1094291926 + .long 649355134 + .long 4103898207 + .long 964907833 + .long 991950999 + .long 2344483112 + .long 2188583852 + .long 1298710268 + .long 3912829119 + .long 1929815667 + .long 1983901999 + .long 393998928 + .long 82200408 + .long 2597420537 + .long 3530690942 + .long 3859631335 + .long 3967803999 + .long 787997856 + .long 164400817 + .long 899873778 + .long 2766414588 + .long 3424295375 + .long 3640640703 + .long 1575995713 + .long 328801635 + .long 1799747556 + .long 1237861880 + .long 2553623455 + .long 2986314111 + .long 3151991427 + .long 657603271 + .long 3599495112 + .long 2475723761 + .long 812279614 + .long 1677660927 + .long 2009015559 + .long 1315206542 + .long 2904022928 + .long 656480226 + .long 1624559229 + .long 3355321855 + .long 4018031118 + .long 2630413084 + .long 1513078560 + .long 1312960453 + .long 3249118458 + .long 2415676415 + .long 3741094941 + .long 965858873 + .long 3026157121 + .long 2625920907 + .long 2203269620 + .long 536385535 + .long 3187222587 + .long 1931717747 + .long 1757346946 + .long 956874519 + .long 111571945 + .long 1072771071 + .long 2079477878 + .long 3863435494 + .long 3514693892 + .long 1913749038 + .long 223143890 + .long 2145542143 + .long 4158955756 + .long 3431903692 + .long 2734420489 + .long 3827498077 + .long 446287780 + .long 4291084286 + .long 4022944216 + .long 2568840088 + .long 1173873683 + .long 3360028859 + .long 892575561 + .long 4287201277 + .long 3750921137 + .long 842712880 + .long 2347747367 + .long 2425090423 + .long 1785151123 + .long 4279435259 + .long 3206874979 + .long 1685425760 + .long 400527438 + .long 555213551 + .long 3570302247 + .long 4263903223 + .long 2118782663 + .long 3370851521 + .long 801054876 + .long 1110427102 + .long 2845637198 + .long 4232839151 + .long 4237565327 + .long 2446735747 + .long 1602109753 + .long 2220854205 + .long 1396307100 + .long 4170711006 + .long 4180163359 + .long 598504198 + .long 3204219507 + .long 146741115 + .long 2792614201 + .long 4046454716 + .long 4065359423 + .long 1197008397 + .long 2113471718 + .long 293482231 + .long 1290261106 + .long 3797942136 + .long 3835751551 + .long 2394016794 + .long 4226943436 + .long 586964463 + .long 2580522212 + .long 3300916976 + .long 3376535807 + .long 493066293 + .long 4158919577 + .long 1173928927 + .long 866077128 + .long 2306866656 + .long 2458104319 + .long 986132586 + .long 4022871858 + .long 2347857855 + .long 1732154256 + .long 318766016 + .long 621241343 + .long 1972265172 + .long 3750776420 + .long 400748414 + .long 3464308513 + .long 637532033 + .long 1242482686 + .long 3944530345 + .long 3206585544 + .long 801496828 + .long 2633649730 + .long 1275064066 + .long 2484965372 + .long 3594093395 + .long 2118203793 + .long 1602993657 + .long 972332164 + .long 2550128133 + .long 674963448 + .long 2893219494 + .long 4236407587 + .long 3205987314 + .long 1944664328 + .long 805288971 + .long 1349926897 + .long 1491471692 + .long 4177847879 + .long 2117007332 + .long 3889328657 + .long 1610577942 + .long 2699853794 + .long 2982943385 + .long 4060728462 + .long 4234014665 + .long 3483690018 + .long 3221155884 + .long 1104740292 + .long 1670919475 + .long 3826489629 + .long 4173062034 + .long 2672412741 + .long 2147344473 + .long 2209480585 + .long 3341838951 + .long 3358011962 + .long 4051156773 + .long 1049858187 + .long 4294688947 + .long 123993874 + .long 2388710606 + .long 2421056629 + .long 3807346250 + .long 2099716375 + .long 4294410598 + .long 247987749 + .long 482453916 + .long 547145963 + .long 3319725204 + .long 4199432751 + .long 4293853900 + .long 495975499 + .long 964907833 + .long 1094291926 + .long 2344483112 + .long 4103898207 + .long 4292740504 + .long 991950999 + .long 1929815667 + .long 2188583852 + .long 393998928 + .long 3912829119 + .long 4290513712 + .long 1983901999 + .long 3859631335 + .long 82200408 + .long 787997856 + .long 3530690942 + .long 4286060128 + .long 3967803999 + .long 3424295375 + .long 164400817 + .long 1575995713 + .long 2766414588 + .long 4277152960 + .long 3640640703 + .long 2553623455 + .long 328801635 + .long 3151991427 + .long 1237861880 + .long 4259338624 + .long 2986314111 + .long 812279614 + .long 657603271 + .long 2009015559 + .long 2475723761 + .long 4223709953 + .long 1677660927 + .long 1624559229 + .long 1315206542 + .long 4018031118 + .long 656480226 + .long 4152452611 + .long 3355321855 + .long 3249118458 + .long 2630413084 + .long 3741094941 + .long 1312960453 + .long 4009937927 + .long 2415676415 + .long 2203269620 + .long 965858873 + .long 3187222587 + .long 2625920907 + .long 3724908559 + .long 536385535 + .long 111571945 + .long 1931717747 + .long 2079477878 + .long 956874519 + .long 3154849823 + .long 1072771071 + .long 223143890 + .long 3863435494 + .long 4158955756 + .long 1913749038 + .long 2014732351 + .long 2145542143 + .long 446287780 + .long 3431903692 + .long 4022944216 + .long 3827498077 + .long 4029464703 + .long 4291084286 + .long 892575561 + .long 2568840088 + .long 3750921137 + .long 3360028859 + .long 3763962110 + .long 4287201277 + .long 1785151123 + .long 842712880 + .long 3206874979 + .long 2425090423 + .long 3232956925 + .long 4279435259 + .long 3570302247 + .long 1685425760 + .long 2118782663 + .long 555213551 + .long 2170946555 + .long 4263903223 + .long 2845637198 + .long 3370851521 + .long 4237565327 + .long 1110427102 + .long 46925815 + .long 4232839151 + .long 1396307100 + .long 2446735747 + .long 4180163359 + .long 2220854205 + .long 93851631 + .long 4170711006 + .long 2792614201 + .long 598504198 + .long 4065359423 + .long 146741115 + .long 187703262 + .long 4046454716 + .long 1290261106 + .long 1197008397 + .long 3835751551 + .long 293482231 + .long 375406524 + .long 3797942136 + .long 2580522212 + .long 2394016794 + .long 3376535807 + .long 586964463 + .long 750813049 + .long 3300916976 + .long 866077128 + .long 493066293 + .long 2458104319 + .long 1173928927 + .long 1501626098 + .long 2306866656 + .long 1732154256 + .long 986132586 + .long 621241343 + .long 2347857855 + .long 3003252197 + .long 318766016 + .long 3464308513 + .long 1972265172 + .long 1242482686 + .long 400748414 + .long 1711537099 + .long 637532033 + .long 2633649730 + .long 3944530345 + .long 2484965372 + .long 801496828 + .long 3423074199 + .long 1275064066 + .long 972332164 + .long 3594093395 + .long 674963448 + .long 1602993657 + .long 2551181103 + .long 2550128133 + .long 1944664328 + .long 2893219494 + .long 1349926897 + .long 3205987314 + .long 807394910 + .long 805288971 + .long 3889328657 + .long 1491471692 + .long 2699853794 + .long 2117007332 + .long 1614789820 + .long 1610577942 + .long 3483690018 + .long 2982943385 + .long 1104740292 + .long 4234014665 + .long 3229579640 + .long 3221155884 + .long 2672412741 + .long 1670919475 + .long 2209480585 + .long 4173062034 + .long 2164191985 + .long 2147344473 + .long 1049858187 + .long 3341838951 + .long 123993874 + .long 4051156773 + .long 33416674 + .long 4294688947 + .long 2099716375 + .long 2388710606 + .long 247987749 + .long 3807346250 + .long 66833348 + .long 4294410598 + .long 4199432751 + .long 482453916 + .long 495975499 + .long 3319725204 + .long 133666696 + .long 4293853900 + .long 4103898207 + .long 964907833 + .long 991950999 + .long 2344483112 + .long 267333393 + .long 4292740504 + .long 3912829119 + .long 1929815667 + .long 1983901999 + .long 393998928 + .long 534666787 + .long 4290513712 + .long 3530690942 + .long 3859631335 + .long 3967803999 + .long 787997856 + .long 1069333574 + .long 4286060128 + .long 2766414588 + .long 3424295375 + .long 3640640703 + .long 1575995713 + .long 2138667148 + .long 4277152960 + .long 1237861880 + .long 2553623455 + .long 2986314111 + .long 3151991427 + .long 4277334296 + .long 4259338624 + .long 2475723761 + .long 812279614 + .long 1677660927 + .long 2009015559 + .long 4259701297 + .long 4223709953 + .long 656480226 + .long 1624559229 + .long 3355321855 + .long 4018031118 + .long 4224435298 + .long 4152452611 + .long 1312960453 + .long 3249118458 + .long 2415676415 + .long 3741094941 + .long 4153903301 + .long 4009937927 + .long 2625920907 + .long 2203269620 + .long 536385535 + .long 3187222587 + .long 4012839307 + .long 3724908559 + .long 956874519 + .long 111571945 + .long 1072771071 + .long 2079477878 + .long 3730711318 + .long 3154849823 + .long 1913749038 + .long 223143890 + .long 2145542143 + .long 4158955756 + .long 3166455341 + .long 2014732351 + .long 3827498077 + .long 446287780 + .long 4291084286 + .long 4022944216 + .long 2037943386 + .long 4029464703 + .long 3360028859 + .long 892575561 + .long 4287201277 + .long 3750921137 + .long 4075886773 + .long 3763962110 + .long 2425090423 + .long 1785151123 + .long 4279435259 + .long 3206874979 + .long 3856806251 + .long 3232956925 + .long 555213551 + .long 3570302247 + .long 4263903223 + .long 2118782663 + .long 3418645206 + .long 2170946555 + .long 1110427102 + .long 2845637198 + .long 4232839151 + .long 4237565327 + .long 2542323117 + .long 46925815 + .long 2220854205 + .long 1396307100 + .long 4170711006 + .long 4180163359 + .long 789678938 + .long 93851631 + .long 146741115 + .long 2792614201 + .long 4046454716 + .long 4065359423 + .long 1579357876 + .long 187703262 + .long 293482231 + .long 1290261106 + .long 3797942136 + .long 3835751551 + .long 3158715752 + .long 375406524 + .long 586964463 + .long 2580522212 + .long 3300916976 + .long 3376535807 + .long 2022464208 + .long 750813049 + .long 1173928927 + .long 866077128 + .long 2306866656 + .long 2458104319 + .long 4044928416 + .long 1501626098 + .long 2347857855 + .long 1732154256 + .long 318766016 + .long 621241343 + .long 3794889537 + .long 3003252197 + .long 400748414 + .long 3464308513 + .long 637532033 + .long 1242482686 + .long 3294811778 + .long 1711537099 + .long 801496828 + .long 2633649730 + .long 1275064066 + .long 2484965372 + .long 2294656261 + .long 3423074199 + .long 1602993657 + .long 972332164 + .long 2550128133 + .long 674963448 + .long 294345226 + .long 2551181103 + .long 3205987314 + .long 1944664328 + .long 805288971 + .long 1349926897 + .long 588690452 + .long 807394910 + .long 2117007332 + .long 3889328657 + .long 1610577942 + .long 2699853794 + .long 1177380905 + .long 1614789820 + .long 4234014665 + .long 3483690018 + .long 3221155884 + .long 1104740292 + .long 2354761811 + .long 3229579640 + .long 4173062034 + .long 2672412741 + .long 2147344473 + .long 2209480585 + .long 414556326 + .long 2164191985 + .long 4051156773 + .long 1049858187 + .long 4294688947 + .long 123993874 + .long 829112653 + .long 33416674 + .long 3807346250 + .long 2099716375 + .long 4294410598 + .long 247987749 + .long 1658225307 + .long 66833348 + .long 3319725204 + .long 4199432751 + .long 4293853900 + .long 495975499 + .long 3316450614 + .long 133666696 + .long 2344483112 + .long 4103898207 + .long 4292740504 + .long 991950999 + .long 2337933933 + .long 267333393 + .long 393998928 + .long 3912829119 + .long 4290513712 + .long 1983901999 + .long 380900570 + .long 534666787 + .long 787997856 + .long 3530690942 + .long 4286060128 + .long 3967803999 + .long 761801140 + .long 1069333574 + .long 1575995713 + .long 2766414588 + .long 4277152960 + .long 3640640703 + .long 1523602280 + .long 2138667148 + .long 3151991427 + .long 1237861880 + .long 4259338624 + .long 2986314111 + .long 3047204561 + .long 4277334296 + .long 2009015559 + .long 2475723761 + .long 4223709953 + .long 1677660927 + .long 1799441827 + .long 4259701297 + .long 4018031118 + .long 656480226 + .long 4152452611 + .long 3355321855 + .long 3598883655 + .long 4224435298 + .long 3741094941 + .long 1312960453 + .long 4009937927 + .long 2415676415 + .long 2902800015 + .long 4153903301 + .long 3187222587 + .long 2625920907 + .long 3724908559 + .long 536385535 + .long 1510632735 + .long 4012839307 + .long 2079477878 + .long 956874519 + .long 3154849823 + .long 1072771071 + .long 3021265470 + .long 3730711318 + .long 4158955756 + .long 1913749038 + .long 2014732351 + .long 2145542143 + .long 1747563645 + .long 3166455341 + .long 4022944216 + .long 3827498077 + .long 4029464703 + .long 4291084286 + .long 3495127291 + .long 2037943386 + .long 3750921137 + .long 3360028859 + .long 3763962110 + .long 4287201277 + .long 2695287286 + .long 4075886773 + .long 3206874979 + .long 2425090423 + .long 3232956925 + .long 4279435259 + .long 1095607277 + .long 3856806251 + .long 2118782663 + .long 555213551 + .long 2170946555 + .long 4263903223 + .long 2191214555 + .long 3418645206 + .long 4237565327 + .long 1110427102 + .long 46925815 + .long 4232839151 + .long 87461814 + .long 2542323117 + .long 4180163359 + .long 2220854205 + .long 93851631 + .long 4170711006 + .long 174923629 + .long 789678938 + .long 4065359423 + .long 146741115 + .long 187703262 + .long 4046454716 + .long 349847258 + .long 1579357876 + .long 3835751551 + .long 293482231 + .long 375406524 + .long 3797942136 + .long 699694516 + .long 3158715752 + .long 3376535807 + .long 586964463 + .long 750813049 + .long 3300916976 + .long 1399389033 + .long 2022464208 + .long 2458104319 + .long 1173928927 + .long 1501626098 + .long 2306866656 + .long 2798778067 + .long 4044928416 + .long 621241343 + .long 2347857855 + .long 3003252197 + .long 318766016 + .long 1302588838 + .long 3794889537 + .long 1242482686 + .long 400748414 + .long 1711537099 + .long 637532033 + .long 2605177677 + .long 3294811778 + .long 2484965372 + .long 801496828 + .long 3423074199 + .long 1275064066 + .long 915388059 + .long 2294656261 + .long 674963448 + .long 1602993657 + .long 2551181103 + .long 2550128133 + .long 1830776118 + .long 294345226 + .long 1349926897 + .long 3205987314 + .long 807394910 + .long 805288971 + .long 3661552236 + .long 588690452 + .long 2699853794 + .long 2117007332 + .long 1614789820 + .long 1610577942 + .long 3028137177 + .long 1177380905 + .long 1104740292 + .long 4234014665 + .long 3229579640 + .long 3221155884 + .long 1761307059 + .long 2354761811 + .long 2209480585 + .long 4173062034 + .long 2164191985 + .long 2147344473 + .long 3522614119 + .long 414556326 + .long 123993874 + .long 4051156773 + .long 33416674 + .long 4294688947 + .long 2750260943 + .long 829112653 + .long 247987749 + .long 3807346250 + .long 66833348 + .long 4294410598 + .long 1205554591 + .long 1658225307 + .long 495975499 + .long 3319725204 + .long 133666696 + .long 4293853900 + .long 2411109183 + .long 3316450614 + .long 991950999 + .long 2344483112 + .long 267333393 + .long 4292740504 + .long 527251070 + .long 2337933933 + .long 1983901999 + .long 393998928 + .long 534666787 + .long 4290513712 + .long 1054502141 + .long 380900570 + .long 3967803999 + .long 787997856 + .long 1069333574 + .long 4286060128 + .long 2109004283 + .long 761801140 + .long 3640640703 + .long 1575995713 + .long 2138667148 + .long 4277152960 + .long 4218008566 + .long 1523602280 + .long 2986314111 + .long 3151991427 + .long 4277334296 + .long 4259338624 + .long 4141049836 + .long 3047204561 + .long 1677660927 + .long 2009015559 + .long 4259701297 + .long 4223709953 + .long 3987132377 + .long 1799441827 + .long 3355321855 + .long 4018031118 + .long 4224435298 + .long 4152452611 + .long 3679297459 + .long 3598883655 + .long 2415676415 + .long 3741094941 + .long 4153903301 + .long 4009937927 + .long 3063627623 + .long 2902800015 + .long 536385535 + .long 3187222587 + .long 4012839307 + .long 3724908559 + .long 1832287951 + .long 1510632735 + .long 1072771071 + .long 2079477878 + .long 3730711318 + .long 3154849823 + .long 3664575902 + .long 3021265470 + .long 2145542143 + .long 4158955756 + .long 3166455341 + .long 2014732351 + .long 3034184508 + .long 1747563645 + .long 4291084286 + .long 4022944216 + .long 2037943386 + .long 4029464703 + .long 1773401721 + .long 3495127291 + .long 4287201277 + .long 3750921137 + .long 4075886773 + .long 3763962110 + .long 3546803442 + .long 2695287286 + .long 4279435259 + .long 3206874979 + .long 3856806251 + .long 3232956925 + .long 2798639588 + .long 1095607277 + .long 4263903223 + .long 2118782663 + .long 3418645206 + .long 2170946555 + .long 1302311881 + .long 2191214555 + .long 4232839151 + .long 4237565327 + .long 2542323117 + .long 46925815 + .long 2604623763 + .long 87461814 + .long 4170711006 + .long 4180163359 + .long 789678938 + .long 93851631 + .long 914280231 + .long 174923629 + .long 4046454716 + .long 4065359423 + .long 1579357876 + .long 187703262 + .long 1828560463 + .long 349847258 + .long 3797942136 + .long 3835751551 + .long 3158715752 + .long 375406524 + .long 3657120927 + .long 699694516 + .long 3300916976 + .long 3376535807 + .long 2022464208 + .long 750813049 + .long 3019274558 + .long 1399389033 + .long 2306866656 + .long 2458104319 + .long 4044928416 + .long 1501626098 + .long 1743581820 + .long 2798778067 + .long 318766016 + .long 621241343 + .long 3794889537 + .long 3003252197 + .long 3487163641 + .long 1302588838 + .long 637532033 + .long 1242482686 + .long 3294811778 + .long 1711537099 + .long 2679359986 + .long 2605177677 + .long 1275064066 + .long 2484965372 + .long 2294656261 + .long 3423074199 + .long 1063752677 + .long 915388059 + .long 2550128133 + .long 674963448 + .long 294345226 + .long 2551181103 + .long 2127505355 + .long 1830776118 + .long 805288971 + .long 1349926897 + .long 588690452 + .long 807394910 + .long 4255010710 + .long 3661552236 + .long 1610577942 + .long 2699853794 + .long 1177380905 + .long 1614789820 + .long 4215054124 + .long 3028137177 + .long 3221155884 + .long 1104740292 + .long 2354761811 + .long 3229579640 + .long 4135140952 + .long 1761307059 + .long 2147344473 + .long 2209480585 + .long 414556326 + .long 2164191985 + .long 3975314608 + .long 3522614119 + .long 4294688947 + .long 123993874 + .long 829112653 + .long 33416674 + .long 3655661921 + .long 2750260943 + .long 4294410598 + .long 247987749 + .long 1658225307 + .long 66833348 + .long 3016356546 + .long 1205554591 + .long 4293853900 + .long 495975499 + .long 3316450614 + .long 133666696 + .long 1737745796 + .long 2411109183 + .long 4292740504 + .long 991950999 + .long 2337933933 + .long 267333393 + .long 3475491593 + .long 527251070 + .long 4290513712 + .long 1983901999 + .long 380900570 + .long 534666787 + .long 2656015891 + .long 1054502141 + .long 4286060128 + .long 3967803999 + .long 761801140 + .long 1069333574 + .long 1017064486 + .long 2109004283 + .long 4277152960 + .long 3640640703 + .long 1523602280 + .long 2138667148 + .long 2034128973 + .long 4218008566 + .long 4259338624 + .long 2986314111 + .long 3047204561 + .long 4277334296 + .long 4068257947 + .long 4141049836 + .long 4223709953 + .long 1677660927 + .long 1799441827 + .long 4259701297 + .long 3841548598 + .long 3987132377 + .long 4152452611 + .long 3355321855 + .long 3598883655 + .long 4224435298 + .long 3388129901 + .long 3679297459 + .long 4009937927 + .long 2415676415 + .long 2902800015 + .long 4153903301 + .long 2481292507 + .long 3063627623 + .long 3724908559 + .long 536385535 + .long 1510632735 + .long 4012839307 + .long 667617719 + .long 1832287951 + .long 3154849823 + .long 1072771071 + .long 3021265470 + .long 3730711318 + .long 1335235438 + .long 3664575902 + .long 2014732351 + .long 2145542143 + .long 1747563645 + .long 3166455341 + .long 2670470877 + .long 3034184508 + .long 4029464703 + .long 4291084286 + .long 3495127291 + .long 2037943386 + .long 1045974458 + .long 1773401721 + .long 3763962110 + .long 4287201277 + .long 2695287286 + .long 4075886773 + .long 2091948916 + .long 3546803442 + .long 3232956925 + .long 4279435259 + .long 1095607277 + .long 3856806251 + .long 4183897833 + .long 2798639588 + .long 2170946555 + .long 4263903223 + .long 2191214555 + .long 3418645206 + .long 4072828371 + .long 1302311881 + .long 46925815 + .long 4232839151 + .long 87461814 + .long 2542323117 + .long 3850689447 + .long 2604623763 + .long 93851631 + .long 4170711006 + .long 174923629 + .long 789678938 + .long 3406411599 + .long 914280231 + .long 187703262 + .long 4046454716 + .long 349847258 + .long 1579357876 + .long 2517855902 + .long 1828560463 + .long 375406524 + .long 3797942136 + .long 699694516 + .long 3158715752 + .long 740744509 + .long 3657120927 + .long 750813049 + .long 3300916976 + .long 1399389033 + .long 2022464208 + .long 1481489018 + .long 3019274558 + .long 1501626098 + .long 2306866656 + .long 2798778067 + .long 4044928416 + .long 2962978036 + .long 1743581820 + .long 3003252197 + .long 318766016 + .long 1302588838 + .long 3794889537 + .long 1630988776 + .long 3487163641 + .long 1711537099 + .long 637532033 + .long 2605177677 + .long 3294811778 + .long 3261977553 + .long 2679359986 + .long 3423074199 + .long 1275064066 + .long 915388059 + .long 2294656261 + .long 2228987811 + .long 1063752677 + .long 2551181103 + .long 2550128133 + .long 1830776118 + .long 294345226 + .long 163008326 + .long 2127505355 + .long 807394910 + .long 805288971 + .long 3661552236 + .long 588690452 + .long 326016652 + .long 4255010710 + .long 1614789820 + .long 1610577942 + .long 3028137177 + .long 1177380905 + .long 652033304 + .long 4215054124 + .long 3229579640 + .long 3221155884 + .long 1761307059 + .long 2354761811 + .long 1304066609 + .long 4135140952 + .long 2164191985 + .long 2147344473 + .long 3522614119 + .long 414556326 + .long 2608133219 + .long 3975314608 + .long 33416674 + .long 4294688947 + .long 2750260943 + .long 829112653 + .long 921299143 + .long 3655661921 + .long 66833348 + .long 4294410598 + .long 1205554591 + .long 1658225307 + .long 1842598287 + .long 3016356546 + .long 133666696 + .long 4293853900 + .long 2411109183 + .long 3316450614 + .long 3685196575 + .long 1737745796 + .long 267333393 + .long 4292740504 + .long 527251070 + .long 2337933933 + .long 3075425855 + .long 3475491593 + .long 534666787 + .long 4290513712 + .long 1054502141 + .long 380900570 + .long 1855884414 + .long 2656015891 + .long 1069333574 + .long 4286060128 + .long 2109004283 + .long 761801140 + .long 3711768829 + .long 1017064486 + .long 2138667148 + .long 4277152960 + .long 4218008566 + .long 1523602280 + .long 3128570363 + .long 2034128973 + .long 4277334296 + .long 4259338624 + .long 4141049836 + .long 3047204561 + .long 1962173430 + .long 4068257947 + .long 4259701297 + .long 4223709953 + .long 3987132377 + .long 1799441827 + .long 3924346860 + .long 3841548598 + .long 4224435298 + .long 4152452611 + .long 3679297459 + .long 3598883655 + .long 3553726425 + .long 3388129901 + .long 4153903301 + .long 4009937927 + .long 3063627623 + .long 2902800015 + .long 2812485555 + .long 2481292507 + .long 4012839307 + .long 3724908559 + .long 1832287951 + .long 1510632735 + .long 1330003814 + .long 667617719 + .long 3730711318 + .long 3154849823 + .long 3664575902 + .long 3021265470 + .long 2660007629 + .long 1335235438 + .long 3166455341 + .long 2014732351 + .long 3034184508 + .long 1747563645 + .long 1025047962 + .long 2670470877 + .long 2037943386 + .long 4029464703 + .long 1773401721 + .long 3495127291 + .long 2050095924 + .long 1045974458 + .long 4075886773 + .long 3763962110 + .long 3546803442 + .long 2695287286 + .long 4100191849 + .long 2091948916 + .long 3856806251 + .long 3232956925 + .long 2798639588 + .long 1095607277 + .long 3905416403 + .long 4183897833 + .long 3418645206 + .long 2170946555 + .long 1302311881 + .long 2191214555 + .long 3515865511 + .long 4072828371 + .long 2542323117 + .long 46925815 + .long 2604623763 + .long 87461814 + .long 2736763727 + .long 3850689447 + .long 789678938 + .long 93851631 + .long 914280231 + .long 174923629 + .long 1178560158 + .long 3406411599 + .long 1579357876 + .long 187703262 + .long 1828560463 + .long 349847258 + .long 2357120316 + .long 2517855902 + .long 3158715752 + .long 375406524 + .long 3657120927 + .long 699694516 + .long 419273337 + .long 740744509 + .long 2022464208 + .long 750813049 + .long 3019274558 + .long 1399389033 + .long 838546674 + .long 1481489018 + .long 4044928416 + .long 1501626098 + .long 1743581820 + .long 2798778067 + .long 1677093349 + .long 2962978036 + .long 3794889537 + .long 3003252197 + .long 3487163641 + .long 1302588838 + .long 3354186699 + .long 1630988776 + .long 3294811778 + .long 1711537099 + .long 2679359986 + .long 2605177677 + .long 2413406103 + .long 3261977553 + .long 2294656261 + .long 3423074199 + .long 1063752677 + .long 915388059 + .long 531844911 + .long 2228987811 + .long 294345226 + .long 2551181103 + .long 2127505355 + .long 1830776118 + .long 1063689823 + .long 163008326 + .long 588690452 + .long 807394910 + .long 4255010710 + .long 3661552236 + .long 2127379647 + .long 326016652 + .long 1177380905 + .long 1614789820 + .long 4215054124 + .long 3028137177 + .long 4254759295 + .long 652033304 + .long 2354761811 + .long 3229579640 + .long 4135140952 + .long 1761307059 + .long 4214551295 + .long 1304066609 + .long 414556326 + .long 2164191985 + .long 3975314608 + .long 3522614119 + .long 4134135294 + .long 2608133219 + .long 829112653 + .long 33416674 + .long 3655661921 + .long 2750260943 + .long 3973303293 + .long 921299143 + .long 1658225307 + .long 66833348 + .long 3016356546 + .long 1205554591 + .long 3651639290 + .long 1842598287 + .long 3316450614 + .long 133666696 + .long 1737745796 + .long 2411109183 + .long 3008311285 + .long 3685196575 + .long 2337933933 + .long 267333393 + .long 3475491593 + .long 527251070 + .long 1721655274 + .long 3075425855 + .long 380900570 + .long 534666787 + .long 2656015891 + .long 1054502141 + .long 3443310548 + .long 1855884414 + .long 761801140 + .long 1069333574 + .long 1017064486 + .long 2109004283 + .long 2591653800 + .long 3711768829 + .long 1523602280 + .long 2138667148 + .long 2034128973 + .long 4218008566 + .long 888340305 + .long 3128570363 + .long 3047204561 + .long 4277334296 + .long 4068257947 + .long 4141049836 + .long 1776680610 + .long 1962173430 + .long 1799441827 + .long 4259701297 + .long 3841548598 + .long 3987132377 + .long 3553361221 + .long 3924346860 + .long 3598883655 + .long 4224435298 + .long 3388129901 + .long 3679297459 + .long 2811755147 + .long 3553726425 + .long 2902800015 + .long 4153903301 + .long 2481292507 + .long 3063627623 + .long 1328542998 + .long 2812485555 + .long 1510632735 + .long 4012839307 + .long 667617719 + .long 1832287951 + .long 2657085997 + .long 1330003814 + .long 3021265470 + .long 3730711318 + .long 1335235438 + .long 3664575902 + .long 1019204698 + .long 2660007629 + .long 1747563645 + .long 3166455341 + .long 2670470877 + .long 3034184508 + .long 2038409397 + .long 1025047962 + .long 3495127291 + .long 2037943386 + .long 1045974458 + .long 1773401721 + .long 4076818795 + .long 2050095924 + .long 2695287286 + .long 4075886773 + .long 2091948916 + .long 3546803442 + .long 3858670295 + .long 4100191849 + .long 1095607277 + .long 3856806251 + .long 4183897833 + .long 2798639588 + .long 3422373294 + .long 3905416403 + .long 2191214555 + .long 3418645206 + .long 4072828371 + .long 1302311881 + .long 2549779293 + .long 3515865511 + .long 87461814 + .long 2542323117 + .long 3850689447 + .long 2604623763 + .long 804591290 + .long 2736763727 + .long 174923629 + .long 789678938 + .long 3406411599 + .long 914280231 + .long 1609182581 + .long 1178560158 + .long 349847258 + .long 1579357876 + .long 2517855902 + .long 1828560463 + .long 3218365162 + .long 2357120316 + .long 699694516 + .long 3158715752 + .long 740744509 + .long 3657120927 + .long 2141763028 + .long 419273337 + .long 1399389033 + .long 2022464208 + .long 1481489018 + .long 3019274558 + .long 4283526057 + .long 838546674 + .long 2798778067 + .long 4044928416 + .long 2962978036 + .long 1743581820 + .long 4272084818 + .long 1677093349 + .long 1302588838 + .long 3794889537 + .long 1630988776 + .long 3487163641 + .long 4249202340 + .long 3354186699 + .long 2605177677 + .long 3294811778 + .long 3261977553 + .long 2679359986 + .long 4203437385 + .long 2413406103 + .long 915388059 + .long 2294656261 + .long 2228987811 + .long 1063752677 + .long 4111907475 + .long 531844911 + .long 1830776118 + .long 294345226 + .long 163008326 + .long 2127505355 + .long 3928847655 + .long 1063689823 + .long 3661552236 + .long 588690452 + .long 326016652 + .long 4255010710 + .long 3562728015 + .long 2127379647 + .long 3028137177 + .long 1177380905 + .long 652033304 + .long 4215054124 + .long 2830488734 + .long 4254759295 + .long 1761307059 + .long 2354761811 + .long 1304066609 + .long 4135140952 + .long 1366010173 + .long 4214551295 + .long 3522614119 + .long 414556326 + .long 2608133219 + .long 3975314608 + .long 2732020347 + .long 4134135294 + .long 2750260943 + .long 829112653 + .long 921299143 + .long 3655661921 + .long 1169073399 + .long 3973303293 + .long 1205554591 + .long 1658225307 + .long 1842598287 + .long 3016356546 + .long 2338146798 + .long 3651639290 + .long 2411109183 + .long 3316450614 + .long 3685196575 + .long 1737745796 + .long 381326301 + .long 3008311285 + .long 527251070 + .long 2337933933 + .long 3075425855 + .long 3475491593 + .long 762652602 + .long 1721655274 + .long 1054502141 + .long 380900570 + .long 1855884414 + .long 2656015891 + .long 1525305205 + .long 3443310548 + .long 2109004283 + .long 761801140 + .long 3711768829 + .long 1017064486 + .long 3050610411 + .long 2591653800 + .long 4218008566 + .long 1523602280 + .long 3128570363 + .long 2034128973 + .long 1806253526 + .long 888340305 + .long 4141049836 + .long 3047204561 + .long 1962173430 + .long 4068257947 + .long 3612507052 + .long 1776680610 + .long 3987132377 + .long 1799441827 + .long 3924346860 + .long 3841548598 + .long 2930046808 + .long 3553361221 + .long 3679297459 + .long 3598883655 + .long 3553726425 + .long 3388129901 + .long 1565126321 + .long 2811755147 + .long 3063627623 + .long 2902800015 + .long 2812485555 + .long 2481292507 + .long 3130252643 + .long 1328542998 + .long 1832287951 + .long 1510632735 + .long 1330003814 + .long 667617719 + .long 1965537991 + .long 2657085997 + .long 3664575902 + .long 3021265470 + .long 2660007629 + .long 1335235438 + .long 3931075983 + .long 1019204698 + .long 3034184508 + .long 1747563645 + .long 1025047962 + .long 2670470877 + .long 3567184671 + .long 2038409397 + .long 1773401721 + .long 3495127291 + .long 2050095924 + .long 1045974458 + .long 2839402047 + .long 4076818795 + .long 3546803442 + .long 2695287286 + .long 4100191849 + .long 2091948916 + .long 1383836798 + .long 3858670295 + .long 2798639588 + .long 1095607277 + .long 3905416403 + .long 4183897833 + .long 2767673597 + .long 3422373294 + .long 1302311881 + .long 2191214555 + .long 3515865511 + .long 4072828371 + .long 1240379898 + .long 2549779293 + .long 2604623763 + .long 87461814 + .long 2736763727 + .long 3850689447 + .long 2480759797 + .long 804591290 + .long 914280231 + .long 174923629 + .long 1178560158 + .long 3406411599 + .long 666552299 + .long 1609182581 + .long 1828560463 + .long 349847258 + .long 2357120316 + .long 2517855902 + .long 1333104599 + .long 3218365162 + .long 3657120927 + .long 699694516 + .long 419273337 + .long 740744509 + .long 2666209199 + .long 2141763028 + .long 3019274558 + .long 1399389033 + .long 838546674 + .long 1481489018 + .long 1037451103 + .long 4283526057 + .long 1743581820 + .long 2798778067 + .long 1677093349 + .long 2962978036 + .long 2074902206 + .long 4272084818 + .long 3487163641 + .long 1302588838 + .long 3354186699 + .long 1630988776 + .long 4149804412 + .long 4249202340 + .long 2679359986 + .long 2605177677 + .long 2413406103 + .long 3261977553 + .long 4004641529 + .long 4203437385 + .long 1063752677 + .long 915388059 + .long 531844911 + .long 2228987811 + .long 3714315762 + .long 4111907475 + .long 2127505355 + .long 1830776118 + .long 1063689823 + .long 163008326 + .long 3133664229 + .long 3928847655 + .long 4255010710 + .long 3661552236 + .long 2127379647 + .long 326016652 + .long 1972361163 + .long 3562728015 + .long 4215054124 + .long 3028137177 + .long 4254759295 + .long 652033304 + .long 3944722327 + .long 2830488734 + .long 4135140952 + .long 1761307059 + .long 4214551295 + .long 1304066609 + .long 3594477359 + .long 1366010173 + .long 3975314608 + .long 3522614119 + .long 4134135294 + .long 2608133219 + .long 2893987423 + .long 2732020347 + .long 3655661921 + .long 2750260943 + .long 3973303293 + .long 921299143 + .long 1493007550 + .long 1169073399 + .long 3016356546 + .long 1205554591 + .long 3651639290 + .long 1842598287 + .long 2986015100 + .long 2338146798 + .long 1737745796 + .long 2411109183 + .long 3008311285 + .long 3685196575 + .long 1677062904 + .long 381326301 + .long 3475491593 + .long 527251070 + .long 1721655274 + .long 3075425855 + .long 3354125809 + .long 762652602 + .long 2656015891 + .long 1054502141 + .long 3443310548 + .long 1855884414 + .long 2413284322 + .long 1525305205 + .long 1017064486 + .long 2109004283 + .long 2591653800 + .long 3711768829 + .long 531601349 + .long 3050610411 + .long 2034128973 + .long 4218008566 + .long 888340305 + .long 3128570363 + .long 1063202699 + .long 1806253526 + .long 4068257947 + .long 4141049836 + .long 1776680610 + .long 1962173430 + .long 2126405399 + .long 3612507052 + .long 3841548598 + .long 3987132377 + .long 3553361221 + .long 3924346860 + .long 4252810799 + .long 2930046808 + .long 3388129901 + .long 3679297459 + .long 2811755147 + .long 3553726425 + .long 4210654302 + .long 1565126321 + .long 2481292507 + .long 3063627623 + .long 1328542998 + .long 2812485555 + .long 4126341309 + .long 3130252643 + .long 667617719 + .long 1832287951 + .long 2657085997 + .long 1330003814 + .long 3957715323 + .long 1965537991 + .long 1335235438 + .long 3664575902 + .long 1019204698 + .long 2660007629 + .long 3620463350 + .long 3931075983 + .long 2670470877 + .long 3034184508 + .long 2038409397 + .long 1025047962 + .long 2945959404 + .long 3567184671 + .long 1045974458 + .long 1773401721 + .long 4076818795 + .long 2050095924 + .long 1596951513 + .long 2839402047 + .long 2091948916 + .long 3546803442 + .long 3858670295 + .long 4100191849 + .long 3193903027 + .long 1383836798 + .long 4183897833 + .long 2798639588 + .long 3422373294 + .long 3905416403 + .long 2092838759 + .long 2767673597 + .long 4072828371 + .long 1302311881 + .long 2549779293 + .long 3515865511 + .long 4185677519 + .long 1240379898 + .long 3850689447 + .long 2604623763 + .long 804591290 + .long 2736763727 + .long 4076387742 + .long 2480759797 + .long 3406411599 + .long 914280231 + .long 1609182581 + .long 1178560158 + .long 3857808189 + .long 666552299 + .long 2517855902 + .long 1828560463 + .long 3218365162 + .long 2357120316 + .long 3420649082 + .long 1333104599 + .long 740744509 + .long 3657120927 + .long 2141763028 + .long 419273337 + .long 2546330868 + .long 2666209199 + .long 1481489018 + .long 3019274558 + .long 4283526057 + .long 838546674 + .long 797694440 + .long 1037451103 + .long 2962978036 + .long 1743581820 + .long 4272084818 + .long 1677093349 + .long 1595388880 + .long 2074902206 + .long 1630988776 + .long 3487163641 + .long 4249202340 + .long 3354186699 + .long 3190777760 + .long 4149804412 + .long 3261977553 + .long 2679359986 + .long 4203437385 + .long 2413406103 + .long 2086588225 + .long 4004641529 + .long 2228987811 + .long 1063752677 + .long 4111907475 + .long 531844911 + .long 4173176451 + .long 3714315762 + .long 163008326 + .long 2127505355 + .long 3928847655 + .long 1063689823 + .long 4051385607 + .long 3133664229 + .long 326016652 + .long 4255010710 + .long 3562728015 + .long 2127379647 + .long 3807803918 + .long 1972361163 + .long 652033304 + .long 4215054124 + .long 2830488734 + .long 4254759295 + .long 3320640540 + .long 3944722327 + .long 1304066609 + .long 4135140952 + .long 1366010173 + .long 4214551295 + .long 2346313785 + .long 3594477359 + .long 2608133219 + .long 3975314608 + .long 2732020347 + .long 4134135294 + .long 397660275 + .long 2893987423 + .long 921299143 + .long 3655661921 + .long 1169073399 + .long 3973303293 + .long 795320551 + .long 1493007550 + .long 1842598287 + .long 3016356546 + .long 2338146798 + .long 3651639290 + .long 1590641102 + .long 2986015100 + .long 3685196575 + .long 1737745796 + .long 381326301 + .long 3008311285 + .long 3181282204 + .long 1677062904 + .long 3075425855 + .long 3475491593 + .long 762652602 + .long 1721655274 + .long 2067597113 + .long 3354125809 + .long 1855884414 + .long 2656015891 + .long 1525305205 + .long 3443310548 + .long 4135194227 + .long 2413284322 + .long 3711768829 + .long 1017064486 + .long 3050610411 + .long 2591653800 + .long 3975421159 + .long 531601349 + .long 3128570363 + .long 2034128973 + .long 1806253526 + .long 888340305 + .long 3655875023 + .long 1063202699 + .long 1962173430 + .long 4068257947 + .long 3612507052 + .long 1776680610 + .long 3016782751 + .long 2126405399 + .long 3924346860 + .long 3841548598 + .long 2930046808 + .long 3553361221 + .long 1738598206 + .long 4252810799 + .long 3553726425 + .long 3388129901 + .long 1565126321 + .long 2811755147 + .long 3477196413 + .long 4210654302 + .long 2812485555 + .long 2481292507 + .long 3130252643 + .long 1328542998 + .long 2659425531 + .long 4126341309 + .long 1330003814 + .long 667617719 + .long 1965537991 + .long 2657085997 + .long 1023883767 + .long 3957715323 + .long 2660007629 + .long 1335235438 + .long 3931075983 + .long 1019204698 + .long 2047767535 + .long 3620463350 + .long 1025047962 + .long 2670470877 + .long 3567184671 + .long 2038409397 + .long 4095535070 + .long 2945959404 + .long 2050095924 + .long 1045974458 + .long 2839402047 + .long 4076818795 + .long 3896102844 + .long 1596951513 + .long 4100191849 + .long 2091948916 + .long 1383836798 + .long 3858670295 + .long 3497238392 + .long 3193903027 + .long 3905416403 + .long 4183897833 + .long 2767673597 + .long 3422373294 + .long 2699509489 + .long 2092838759 + .long 3515865511 + .long 4072828371 + .long 1240379898 + .long 2549779293 + .long 1104051682 + .long 4185677519 + .long 2736763727 + .long 3850689447 + .long 2480759797 + .long 804591290 + .long 2208103365 + .long 4076387742 + .long 1178560158 + .long 3406411599 + .long 666552299 + .long 1609182581 + .long 121239434 + .long 3857808189 + .long 2357120316 + .long 2517855902 + .long 1333104599 + .long 3218365162 + .long 242478868 + .long 3420649082 + .long 419273337 + .long 740744509 + .long 2666209199 + .long 2141763028 + .long 484957737 + .long 2546330868 + .long 838546674 + .long 1481489018 + .long 1037451103 + .long 4283526057 + .long 969915474 + .long 797694440 + .long 1677093349 + .long 2962978036 + .long 2074902206 + .long 4272084818 + .long 1939830949 + .long 1595388880 + .long 3354186699 + .long 1630988776 + .long 4149804412 + .long 4249202340 + .long 3879661898 + .long 3190777760 + .long 2413406103 + .long 3261977553 + .long 4004641529 + .long 4203437385 + .long 3464356500 + .long 2086588225 + .long 531844911 + .long 2228987811 + .long 3714315762 + .long 4111907475 + .long 2633745705 + .long 4173176451 + .long 1063689823 + .long 163008326 + .long 3133664229 + .long 3928847655 + .long 972524114 + .long 4051385607 + .long 2127379647 + .long 326016652 + .long 1972361163 + .long 3562728015 + .long 1945048229 + .long 3807803918 + .long 4254759295 + .long 652033304 + .long 3944722327 + .long 2830488734 + .long 3890096458 + .long 3320640540 + .long 4214551295 + .long 1304066609 + .long 3594477359 + .long 1366010173 + .long 3485225620 + .long 2346313785 + .long 4134135294 + .long 2608133219 + .long 2893987423 + .long 2732020347 + .long 2675483945 + .long 397660275 + .long 3973303293 + .long 921299143 + .long 1493007550 + .long 1169073399 + .long 1056000594 + .long 795320551 + .long 3651639290 + .long 1842598287 + .long 2986015100 + .long 2338146798 + .long 2112001188 + .long 1590641102 + .long 3008311285 + .long 3685196575 + .long 1677062904 + .long 381326301 + .long 4224002377 + .long 3181282204 + .long 1721655274 + .long 3075425855 + .long 3354125809 + .long 762652602 + .long 4153037458 + .long 2067597113 + .long 3443310548 + .long 1855884414 + .long 2413284322 + .long 1525305205 + .long 4011107621 + .long 4135194227 + .long 2591653800 + .long 3711768829 + .long 531601349 + .long 3050610411 + .long 3727247947 + .long 3975421159 + .long 888340305 + .long 3128570363 + .long 1063202699 + .long 1806253526 + .long 3159528599 + .long 3655875023 + .long 1776680610 + .long 1962173430 + .long 2126405399 + .long 3612507052 + .long 2024089902 + .long 3016782751 + .long 3553361221 + .long 3924346860 + .long 4252810799 + .long 2930046808 + .long 4048179805 + .long 1738598206 + .long 2811755147 + .long 3553726425 + .long 4210654302 + .long 1565126321 + .long 3801392314 + .long 3477196413 + .long 1328542998 + .long 2812485555 + .long 4126341309 + .long 3130252643 + .long 3307817333 + .long 2659425531 + .long 2657085997 + .long 1330003814 + .long 3957715323 + .long 1965537991 + .long 2320667370 + .long 1023883767 + .long 1019204698 + .long 2660007629 + .long 3620463350 + .long 3931075983 + .long 346367444 + .long 2047767535 + .long 2038409397 + .long 1025047962 + .long 2945959404 + .long 3567184671 + .long 692734889 + .long 4095535070 + .long 4076818795 + .long 2050095924 + .long 1596951513 + .long 2839402047 + .long 1385469779 + .long 3896102844 + .long 3858670295 + .long 4100191849 + .long 3193903027 + .long 1383836798 + .long 2770939558 + .long 3497238392 + .long 3422373294 + .long 3905416403 + .long 2092838759 + .long 2767673597 + .long 1246911821 + .long 2699509489 + .long 2549779293 + .long 3515865511 + .long 4185677519 + .long 1240379898 + .long 2493823642 + .long 1104051682 + .long 804591290 + .long 2736763727 + .long 4076387742 + .long 2480759797 + .long 692679989 + .long 2208103365 + .long 1609182581 + .long 1178560158 + .long 3857808189 + .long 666552299 + .long 1385359979 + .long 121239434 + .long 3218365162 + .long 2357120316 + .long 3420649082 + .long 1333104599 + .long 2770719959 + .long 242478868 + .long 2141763028 + .long 419273337 + .long 2546330868 + .long 2666209199 + .long 1246472623 + .long 484957737 + .long 4283526057 + .long 838546674 + .long 797694440 + .long 1037451103 + .long 2492945247 + .long 969915474 + .long 4272084818 + .long 1677093349 + .long 1595388880 + .long 2074902206 + .long 690923199 + .long 1939830949 + .long 4249202340 + .long 3354186699 + .long 3190777760 + .long 4149804412 + .long 1381846399 + .long 3879661898 + .long 4203437385 + .long 2413406103 + .long 2086588225 + .long 4004641529 + .long 2763692798 + .long 3464356500 + .long 4111907475 + .long 531844911 + .long 4173176451 + .long 3714315762 + .long 1232418301 + .long 2633745705 + .long 3928847655 + .long 1063689823 + .long 4051385607 + .long 3133664229 + .long 2464836603 + .long 972524114 + .long 3562728015 + .long 2127379647 + .long 3807803918 + .long 1972361163 + .long 634705910 + .long 1945048229 + .long 2830488734 + .long 4254759295 + .long 3320640540 + .long 3944722327 + .long 1269411821 + .long 3890096458 + .long 1366010173 + .long 4214551295 + .long 2346313785 + .long 3594477359 + .long 2538823642 + .long 3485225620 + .long 2732020347 + .long 4134135294 + .long 397660275 + .long 2893987423 + .long 782679989 + .long 2675483945 + .long 1169073399 + .long 3973303293 + .long 795320551 + .long 1493007550 + .long 1565359979 + .long 1056000594 + .long 2338146798 + .long 3651639290 + .long 1590641102 + .long 2986015100 + .long 3130719959 + .long 2112001188 + .long 381326301 + .long 3008311285 + .long 3181282204 + .long 1677062904 + .long 1966472623 + .long 4224002377 + .long 762652602 + .long 1721655274 + .long 2067597113 + .long 3354125809 + .long 3932945247 + .long 4153037458 + .long 1525305205 + .long 3443310548 + .long 4135194227 + .long 2413284322 + .long 3570923199 + .long 4011107621 + .long 3050610411 + .long 2591653800 + .long 3975421159 + .long 531601349 + .long 2846879102 + .long 3727247947 + .long 1806253526 + .long 888340305 + .long 3655875023 + .long 1063202699 + .long 1398790909 + .long 3159528599 + .long 3612507052 + .long 1776680610 + .long 3016782751 + .long 2126405399 + .long 2797581819 + .long 2024089902 + .long 2930046808 + .long 3553361221 + .long 1738598206 + .long 4252810799 + .long 1300196342 + .long 4048179805 + .long 1565126321 + .long 2811755147 + .long 3477196413 + .long 4210654302 + .long 2600392684 + .long 3801392314 + .long 3130252643 + .long 1328542998 + .long 2659425531 + .long 4126341309 + .long 905818072 + .long 3307817333 + .long 1965537991 + .long 2657085997 + .long 1023883767 + .long 3957715323 + .long 1811636145 + .long 2320667370 + .long 3931075983 + .long 1019204698 + .long 2047767535 + .long 3620463350 + .long 3623272290 + .long 346367444 + .long 3567184671 + .long 2038409397 + .long 4095535070 + .long 2945959404 + .long 2951577284 + .long 692734889 + .long 2839402047 + .long 4076818795 + .long 3896102844 + .long 1596951513 + .long 1608187272 + .long 1385469779 + .long 1383836798 + .long 3858670295 + .long 3497238392 + .long 3193903027 + .long 3216374545 + .long 2770939558 + .long 2767673597 + .long 3422373294 + .long 2699509489 + .long 2092838759 + .long 2137781795 + .long 1246911821 + .long 1240379898 + .long 2549779293 + .long 1104051682 + .long 4185677519 + .long 4275563591 + .long 2493823642 + .long 2480759797 + .long 804591290 + .long 2208103365 + .long 4076387742 + .long 4256159887 + .long 692679989 + .long 666552299 + .long 1609182581 + .long 121239434 + .long 3857808189 + .long 4217352479 + .long 1385359979 + .long 1333104599 + .long 3218365162 + .long 242478868 + .long 3420649082 + .long 4139737663 + .long 2770719959 + .long 2666209199 + .long 2141763028 + .long 484957737 + .long 2546330868 + .long 3984508030 + .long 1246472623 + .long 1037451103 + .long 4283526057 + .long 969915474 + .long 797694440 + .long 3674048764 + .long 2492945247 + .long 2074902206 + .long 4272084818 + .long 1939830949 + .long 1595388880 + .long 3053130232 + .long 690923199 + .long 4149804412 + .long 4249202340 + .long 3879661898 + .long 3190777760 + .long 1811293169 + .long 1381846399 + .long 4004641529 + .long 4203437385 + .long 3464356500 + .long 2086588225 + .long 3622586339 + .long 2763692798 + .long 3714315762 + .long 4111907475 + .long 2633745705 + .long 4173176451 + .long 2950205382 + .long 1232418301 + .long 3133664229 + .long 3928847655 + .long 972524114 + .long 4051385607 + .long 1605443469 + .long 2464836603 + .long 1972361163 + .long 3562728015 + .long 1945048229 + .long 3807803918 + .long 3210886938 + .long 634705910 + .long 3944722327 + .long 2830488734 + .long 3890096458 + .long 3320640540 + .long 2126806581 + .long 1269411821 + .long 3594477359 + .long 1366010173 + .long 3485225620 + .long 2346313785 + .long 4253613162 + .long 2538823642 + .long 2893987423 + .long 2732020347 + .long 2675483945 + .long 397660275 + .long 4212259029 + .long 782679989 + .long 1493007550 + .long 1169073399 + .long 1056000594 + .long 795320551 + .long 4129550763 + .long 1565359979 + .long 2986015100 + .long 2338146798 + .long 2112001188 + .long 1590641102 + .long 3964134231 + .long 3130719959 + .long 1677062904 + .long 381326301 + .long 4224002377 + .long 3181282204 + .long 3633301166 + .long 1966472623 + .long 3354125809 + .long 762652602 + .long 4153037458 + .long 2067597113 + .long 2971635037 + .long 3932945247 + .long 2413284322 + .long 1525305205 + .long 4011107621 + .long 4135194227 + .long 1648302778 + .long 3570923199 + .long 531601349 + .long 3050610411 + .long 3727247947 + .long 3975421159 + .long 3296605556 + .long 2846879102 + .long 1063202699 + .long 1806253526 + .long 3159528599 + .long 3655875023 + .long 2298243816 + .long 1398790909 + .long 2126405399 + .long 3612507052 + .long 2024089902 + .long 3016782751 + .long 301520336 + .long 2797581819 + .long 4252810799 + .long 2930046808 + .long 4048179805 + .long 1738598206 + .long 603040673 + .long 1300196342 + .long 4210654302 + .long 1565126321 + .long 3801392314 + .long 3477196413 + .long 1206081346 + .long 2600392684 + .long 4126341309 + .long 3130252643 + .long 3307817333 + .long 2659425531 + .long 2412162692 + .long 905818072 + .long 3957715323 + .long 1965537991 + .long 2320667370 + .long 1023883767 + .long 529358088 + .long 1811636145 + .long 3620463350 + .long 3931075983 + .long 346367444 + .long 2047767535 + .long 1058716176 + .long 3623272290 + .long 2945959404 + .long 3567184671 + .long 692734889 + .long 4095535070 + .long 2117432353 + .long 2951577284 + .long 1596951513 + .long 2839402047 + .long 1385469779 + .long 3896102844 + .long 4234864706 + .long 1608187272 + .long 3193903027 + .long 1383836798 + .long 2770939558 + .long 3497238392 + .long 4174762117 + .long 3216374545 + .long 2092838759 + .long 2767673597 + .long 1246911821 + .long 2699509489 + .long 4054556938 + .long 2137781795 + .long 4185677519 + .long 1240379898 + .long 2493823642 + .long 1104051682 + .long 3814146581 + .long 4275563591 + .long 4076387742 + .long 2480759797 + .long 692679989 + .long 2208103365 + .long 3333325867 + .long 4256159887 + .long 3857808189 + .long 666552299 + .long 1385359979 + .long 121239434 + .long 2371684438 + .long 4217352479 + .long 3420649082 + .long 1333104599 + .long 2770719959 + .long 242478868 + .long 448401580 + .long 4139737663 + .long 2546330868 + .long 2666209199 + .long 1246472623 + .long 484957737 + .long 896803160 + .long 3984508030 + .type __svml_dcos_reduction_data_internal,@object + .size __svml_dcos_reduction_data_internal,49152 + .space 512, 0x00 + .align 8 +.L_2il0floatpacket.28: + .long 0xffffffff,0xffffffff + .type .L_2il0floatpacket.28,@object + .size .L_2il0floatpacket.28,8 + .align 8 +.L_2il0floatpacket.29: + .long 0x00000000,0x7ff00000 + .type .L_2il0floatpacket.29,@object + .size .L_2il0floatpacket.29,8 + .align 8 +.L_2il0floatpacket.30: + .long 0xffffffff,0x000fffff + .type .L_2il0floatpacket.30,@object + .size .L_2il0floatpacket.30,8 + .align 8 +.L_2il0floatpacket.31: + .long 0x00000000,0x00100000 + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,8 + .align 8 +.L_2il0floatpacket.32: + .long 0xffffffff,0x00000000 + .type .L_2il0floatpacket.32,@object + .size .L_2il0floatpacket.32,8 + .align 8 +.L_2il0floatpacket.33: + .long 0x00000000,0x80000000 + .type .L_2il0floatpacket.33,@object + .size .L_2il0floatpacket.33,8 + .align 8 +.L_2il0floatpacket.34: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.34,@object + .size .L_2il0floatpacket.34,8 + .align 8 +.L_2il0floatpacket.35: + .long 0x00000000,0x42a80000 + .type .L_2il0floatpacket.35,@object + .size .L_2il0floatpacket.35,8 + .align 8 +.L_2il0floatpacket.36: + .long 0x000001ff,0x00000000 + .type .L_2il0floatpacket.36,@object + .size .L_2il0floatpacket.36,8 + .align 8 +.L_2il0floatpacket.37: + .long 0x00000000,0x39700000 + .type .L_2il0floatpacket.37,@object + .size .L_2il0floatpacket.37,8 + .align 8 +.L_2il0floatpacket.38: + .long 0x00ffffff,0x00000000 + .type .L_2il0floatpacket.38,@object + .size .L_2il0floatpacket.38,8 + .align 8 +.L_2il0floatpacket.39: + .long 0x00000000,0x3cb00000 + .type .L_2il0floatpacket.39,@object + .size .L_2il0floatpacket.39,8 + .align 8 +.L_2il0floatpacket.40: + .long 0x00000fff,0x00000000 + .type .L_2il0floatpacket.40,@object + .size .L_2il0floatpacket.40,8 + .align 8 +.L_2il0floatpacket.41: + .long 0x54442d18,0x401921fb + .type .L_2il0floatpacket.41,@object + .size .L_2il0floatpacket.41,8 + .align 8 +.L_2il0floatpacket.42: + .long 0x33145c07,0x3cb1a626 + .type .L_2il0floatpacket.42,@object + .size .L_2il0floatpacket.42,8 + .align 8 +.L_2il0floatpacket.43: + .long 0xffffffff,0x7fffffff + .type .L_2il0floatpacket.43,@object + .size .L_2il0floatpacket.43,8 + .align 8 +.L_2il0floatpacket.44: + .long 0x00000000,0x3eb00000 + .type .L_2il0floatpacket.44,@object + .size .L_2il0floatpacket.44,8 + .align 8 +__dcos_la_CoutTab: + .long 0 + .long 0 + .long 0 + .long 2146435072 + .type __dcos_la_CoutTab,@object + .size __dcos_la_CoutTab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_cos_s_la.s b/numpy/core/src/umath/svml/svml_z0_cos_s_la.s new file mode 100644 index 000000000000..54e3f47f4f11 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_cos_s_la.s @@ -0,0 +1,2854 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * 1) Range reduction to [-Pi/2; +Pi/2] interval + * a) We remove sign using AND operation + * b) Add Pi/2 value to argument X for Cos to Sin transformation + * c) Getting octant Y by 1/Pi multiplication + * d) Add "Right Shifter" value + * e) Treat obtained value as integer for destination sign setting. + * Shift first bit of this value to the last (sign) position + * f) Subtract "Right Shifter" value + * g) Subtract 0.5 from result for octant correction + * h) Subtract Y*PI from X argument, where PI divided to 4 parts: + * X = X - Y*PI1 - Y*PI2 - Y*PI3 - Y*PI4; + * 2) Polynomial (minimax for sin within [-Pi/2; +Pi/2] interval) + * a) Calculate X^2 = X * X + * b) Calculate polynomial: + * R = X + X * X^2 * (A3 + x^2 * (A5 + ..... + * 3) Destination sign setting + * a) Set shifted destination sign using XOR operation: + * R = XOR( R, S ); + * + */ + + + .text +.L_2__routine_start___svml_cosf16_z0_0: + + .align 16,0x90 + .globl __svml_cosf16 + +__svml_cosf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + xorl %edx, %edx + vmovaps %zmm0, %zmm11 + vmovups 5568+__svml_scos_data_internal(%rip), %zmm0 + vmovups 5504+__svml_scos_data_internal(%rip), %zmm4 + vmovups 5440+__svml_scos_data_internal(%rip), %zmm3 + vmovups 5632+__svml_scos_data_internal(%rip), %zmm6 + vmovups 4800+__svml_scos_data_internal(%rip), %zmm9 + vmovups 4864+__svml_scos_data_internal(%rip), %zmm7 + vmovups 4928+__svml_scos_data_internal(%rip), %zmm8 + vmovups 5376+__svml_scos_data_internal(%rip), %zmm14 + vmovups 5248+__svml_scos_data_internal(%rip), %zmm15 + +/* + * Check for large and special arguments + * VAND( S, sAX, _VARG1, sAbsMask ); + */ + vmovups 4160+__svml_scos_data_internal(%rip), %zmm10 + vandps 4096+__svml_scos_data_internal(%rip), %zmm11, %zmm2 + +/* b) Add Pi/2 value to argument X for Cos to Sin transformation */ + vaddps {rn-sae}, %zmm0, %zmm2, %zmm1 + vcmpps $18, {sae}, %zmm10, %zmm2, %k1 + +/* _VARG1 near 0 */ + vcmpps $0, {sae}, %zmm0, %zmm1, %k2 + +/* + * 1) Range reduction to [-Pi/2; +Pi/2] interval + * c) Getting octant Y by 1/Pi multiplication + * d) Add "Right Shifter" (0x4B000000) value + */ + vfmadd213ps {rn-sae}, %zmm4, %zmm1, %zmm3 + vpternlogd $255, %zmm10, %zmm10, %zmm10 + +/* f) Subtract "Right Shifter" (0x4B000000) value */ + vsubps {rn-sae}, %zmm4, %zmm3, %zmm5 + +/* + * e) Treat obtained value as integer for destination sign setting. + * Shift first bit of this value to the last (sign) position (S << 31) + */ + vpslld $31, %zmm3, %zmm13 + +/* g) Subtract 0.5 from result for octant correction */ + vsubps {rn-sae}, %zmm6, %zmm5, %zmm12 + vmovups 5312+__svml_scos_data_internal(%rip), %zmm5 + +/* + * h) Subtract Y*PI from X argument, where PI divided to 4 parts: + * X = X - Y*PI1 - Y*PI2 - Y*PI3 + */ + vfnmadd213ps {rn-sae}, %zmm2, %zmm12, %zmm9 + vfnmadd231ps {rn-sae}, %zmm12, %zmm7, %zmm9 + vfnmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm12 + +/* a) Calculate X^2 = X * X */ + vmulps {rn-sae}, %zmm12, %zmm12, %zmm3 + +/* + * 3) Destination sign setting + * a) Set shifted destination sign using XOR operation: + * R = XOR( R, S ); + */ + vxorps %zmm13, %zmm12, %zmm4 + +/* + * b) Calculate polynomial: + * R = X + X * X^2 * (A3 + x^2 * (A5 + x^2 * (A7 + x^2 * (A9)))); + */ + vfmadd231ps {rn-sae}, %zmm3, %zmm14, %zmm5 + vmovups 4992+__svml_scos_data_internal(%rip), %zmm14 + vfmadd213ps {rn-sae}, %zmm15, %zmm3, %zmm5 + vmulps {rn-sae}, %zmm4, %zmm3, %zmm15 + vfmadd213ps {rn-sae}, %zmm14, %zmm3, %zmm5 + vfmadd213ps {rn-sae}, %zmm4, %zmm15, %zmm5 + +/* result=1.0 if arg. near 0 */ + vblendmps 5696+__svml_scos_data_internal(%rip), %zmm5, %zmm0{%k2} + vpandnd %zmm2, %zmm2, %zmm10{%k1} + vptestmd %zmm10, %zmm10, %k0 + kortestw %k0, %k0 + jne .LBL_1_12 + +.LBL_1_2: + + testl %edx, %edx + jne .LBL_1_4 + +.LBL_1_3: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_4: + + vmovups %zmm11, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_3 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_8: + + btl %r12d, %r13d + jc .LBL_1_11 + +.LBL_1_9: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_8 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_3 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_11: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_scos_cout_rare_internal + jmp .LBL_1_9 + .cfi_restore 4 + .cfi_restore 5 + .cfi_restore 12 + .cfi_restore 13 + .cfi_restore 122 + .cfi_restore 123 + .cfi_restore 124 + .cfi_restore 125 + +.LBL_1_12: + + vmovups 4224+__svml_scos_data_internal(%rip), %zmm6 + +/* + * Get the (2^a / 2pi) mod 1 values from the table. + * Because VLANG doesn't have I-type gather, we need a trivial cast + */ + lea __svml_scos_reduction_data_internal(%rip), %rax + vmovups %zmm0, (%rsp) + vpternlogd $255, %zmm7, %zmm7, %zmm7 + vandps %zmm2, %zmm6, %zmm4 + vcmpps $4, {sae}, %zmm6, %zmm4, %k1 + +/* ..................... Table look-up ........................ */ + lea __svml_scos_data_internal(%rip), %rcx + +/* + * Break the P_xxx and m into 16-bit chunks ready for + * the long multiplication via 16x16->32 multiplications + */ + vmovups .L_2il0floatpacket.27(%rip), %zmm6 + vpandd .L_2il0floatpacket.24(%rip), %zmm11, %zmm1 + vpsrld $23, %zmm1, %zmm8 + vpslld $1, %zmm8, %zmm12 + vpaddd %zmm8, %zmm12, %zmm2 + vpslld $2, %zmm2, %zmm5 + vpandnd %zmm4, %zmm4, %zmm7{%k1} + vptestmd %zmm7, %zmm7, %k0 + kxnorw %k0, %k0, %k2 + kxnorw %k0, %k0, %k3 + kxnorw %k0, %k0, %k1 + kmovw %k0, %edx + vpxord %zmm4, %zmm4, %zmm4 + vpxord %zmm7, %zmm7, %zmm7 + vpxord %zmm14, %zmm14, %zmm14 + vgatherdps (%rax,%zmm5), %zmm4{%k2} + vgatherdps 4(%rax,%zmm5), %zmm7{%k3} + vgatherdps 8(%rax,%zmm5), %zmm14{%k1} + vpsrld $16, %zmm4, %zmm9 + vpsrld $16, %zmm7, %zmm15 + vpsrld $16, %zmm14, %zmm13 + kxnorw %k0, %k0, %k1 + +/* + * Also get the significand as an integer + * NB: adding in the integer bit is wrong for denorms! + * To make this work for denorms we should do something slightly different + */ + vpandd .L_2il0floatpacket.25(%rip), %zmm11, %zmm3 + vpaddd .L_2il0floatpacket.26(%rip), %zmm3, %zmm1 + vpsrld $16, %zmm1, %zmm8 + vpandd %zmm6, %zmm14, %zmm5 + vpandd %zmm6, %zmm1, %zmm14 + vpandd %zmm6, %zmm7, %zmm12 + vpmulld %zmm15, %zmm8, %zmm3 + vpmulld %zmm9, %zmm14, %zmm7 + vpmulld %zmm15, %zmm14, %zmm9 + vpmulld %zmm13, %zmm14, %zmm15 + vpmulld %zmm13, %zmm8, %zmm1 + vpsrld $16, %zmm15, %zmm13 + vpsrld $16, %zmm9, %zmm15 + vpaddd %zmm13, %zmm1, %zmm1 + vpandd %zmm6, %zmm4, %zmm0 + +/* Now do the big multiplication and carry propagation */ + vpmulld %zmm0, %zmm8, %zmm4 + vpmulld %zmm12, %zmm8, %zmm2 + vpmulld %zmm5, %zmm8, %zmm8 + vpmulld %zmm0, %zmm14, %zmm5 + vpmulld %zmm12, %zmm14, %zmm0 + vpsrld $16, %zmm0, %zmm14 + vpsrld $16, %zmm5, %zmm12 + vpsrld $16, %zmm8, %zmm8 + vpaddd %zmm14, %zmm2, %zmm13 + vpaddd %zmm15, %zmm3, %zmm14 + vpaddd %zmm12, %zmm4, %zmm3 + vpandd %zmm6, %zmm0, %zmm0 + vpandd %zmm6, %zmm5, %zmm12 + vpaddd %zmm1, %zmm0, %zmm5 + vpaddd %zmm14, %zmm12, %zmm0 + vpaddd %zmm5, %zmm8, %zmm15 + vpandd %zmm6, %zmm7, %zmm2 + vpaddd %zmm3, %zmm2, %zmm14 + vpsrld $16, %zmm15, %zmm3 + vpandd %zmm6, %zmm9, %zmm9 + vpaddd %zmm13, %zmm9, %zmm9 + vpaddd %zmm9, %zmm3, %zmm12 + vpsrld $16, %zmm12, %zmm4 + vpslld $16, %zmm12, %zmm2 + vpaddd %zmm0, %zmm4, %zmm13 + +/* + * Now round at the 2^-8 bit position for reduction mod pi/2^7 + * instead of the original 2pi (but still with the same 2pi scaling). + * Use a shifter of 2^15 + 2^14. + * The N we get is our final version; it has an offset of + * 2^8 because of the implicit integer bit, and anyway for negative + * starting value it's a 2s complement thing. But we need to mask + * off the exponent part anyway so it's fine. + */ + vmovups .L_2il0floatpacket.30(%rip), %zmm4 + vpsrld $16, %zmm13, %zmm7 + vpaddd %zmm14, %zmm7, %zmm1 + +/* Assemble reduced argument from the pieces */ + vpandd %zmm6, %zmm15, %zmm3 + vpandd %zmm6, %zmm13, %zmm8 + vpslld $16, %zmm1, %zmm6 + vpaddd %zmm8, %zmm6, %zmm5 + vpaddd %zmm3, %zmm2, %zmm8 + vpsrld $9, %zmm5, %zmm9 + +/* + * We want to incorporate the original sign now too. + * Do it here for convenience in getting the right N value, + * though we could wait right to the end if we were prepared + * to modify the sign of N later too. + * So get the appropriate sign mask now (or sooner). + */ + vpandd .L_2il0floatpacket.28(%rip), %zmm11, %zmm2 + +/* + * Create floating-point high part, implicitly adding integer bit 1 + * Incorporate overall sign at this stage too. + */ + vpxord .L_2il0floatpacket.29(%rip), %zmm2, %zmm6 + vpord %zmm6, %zmm9, %zmm0 + vaddps {rn-sae}, %zmm0, %zmm4, %zmm14 + vsubps {rn-sae}, %zmm4, %zmm14, %zmm7 + vsubps {rn-sae}, %zmm7, %zmm0, %zmm13 + vpternlogd $255, %zmm0, %zmm0, %zmm0 + vpandd .L_2il0floatpacket.33(%rip), %zmm8, %zmm15 + vpandd .L_2il0floatpacket.35(%rip), %zmm5, %zmm5 + +/* + * Create floating-point low and medium parts, respectively + * lo_17, ... lo_0, 0, ..., 0 + * hi_8, ... hi_0, lo_31, ..., lo_18 + * then subtract off the implicitly added integer bits, + * 2^-46 and 2^-23, respectively. + * Put the original sign into all of them at this stage. + */ + vpxord .L_2il0floatpacket.32(%rip), %zmm2, %zmm3 + vpslld $5, %zmm15, %zmm1 + vpsrld $18, %zmm8, %zmm8 + vpxord .L_2il0floatpacket.34(%rip), %zmm2, %zmm9 + vpslld $14, %zmm5, %zmm2 + vpord %zmm3, %zmm1, %zmm12 + vpord %zmm8, %zmm2, %zmm5 + vsubps {rn-sae}, %zmm3, %zmm12, %zmm15 + vmovups .L_2il0floatpacket.37(%rip), %zmm2 + vpord %zmm9, %zmm5, %zmm3 + vsubps {rn-sae}, %zmm9, %zmm3, %zmm6 + +/* + * Now multiply those numbers all by 2 pi, reasonably accurately. + * (RHi + RLo) * (pi_lead + pi_trail) ~= + * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) + */ + vmovups .L_2il0floatpacket.36(%rip), %zmm5 + +/* + * If the magnitude of the input is <= 2^-20, then + * just pass through the input, since no reduction will be needed and + * the main path will only work accurately if the reduced argument is + * about >= 2^-40 (which it is for all large pi multiples) + */ + vmovups .L_2il0floatpacket.39(%rip), %zmm9 + +/* Now add them up into 2 reasonably aligned pieces */ + vaddps {rn-sae}, %zmm6, %zmm13, %zmm4 + vsubps {rn-sae}, %zmm4, %zmm13, %zmm13 + vmulps {rn-sae}, %zmm5, %zmm4, %zmm7 + vaddps {rn-sae}, %zmm13, %zmm6, %zmm8 + vandps .L_2il0floatpacket.38(%rip), %zmm11, %zmm6 + vaddps {rn-sae}, %zmm15, %zmm8, %zmm8 + vpternlogd $255, %zmm15, %zmm15, %zmm15 + vcmpps $22, {sae}, %zmm9, %zmm6, %k3 + vcmpps $26, {sae}, %zmm9, %zmm6, %k2 + vmovaps %zmm5, %zmm3 + vfmsub213ps {rn-sae}, %zmm7, %zmm4, %zmm3 + vfmadd213ps {rn-sae}, %zmm3, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm4, %zmm5, %zmm8 + +/* Grab our final N value as an integer, appropriately masked mod 2^8 */ + vpandd .L_2il0floatpacket.31(%rip), %zmm14, %zmm14 + vpslld $4, %zmm14, %zmm13 + vpandnd %zmm6, %zmm6, %zmm0{%k3} + vandps %zmm11, %zmm0, %zmm1 + kxnorw %k0, %k0, %k3 + vpxord %zmm0, %zmm0, %zmm0 + vgatherdps (%rcx,%zmm13), %zmm0{%k1} + kxnorw %k0, %k0, %k1 + vpandnd %zmm6, %zmm6, %zmm15{%k2} + kxnorw %k0, %k0, %k2 + vandps %zmm7, %zmm15, %zmm12 + vandps %zmm8, %zmm15, %zmm3 + vorps %zmm12, %zmm1, %zmm2 + +/* ............... Polynomial approximation ................... */ + vmovups 4352+__svml_scos_data_internal(%rip), %zmm12 + +/* + * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND + * Set sRp2 = _VRES_R^2 and then resume the original code. + */ + vmulps {rn-sae}, %zmm2, %zmm2, %zmm4 + +/* ................. Reconstruction: res_hi ................... */ + vmovaps %zmm2, %zmm14 + vmovaps %zmm2, %zmm8 + vpxord %zmm9, %zmm9, %zmm9 + vpxord %zmm7, %zmm7, %zmm7 + vgatherdps 4(%rcx,%zmm13), %zmm9{%k2} + vgatherdps 12(%rcx,%zmm13), %zmm7{%k1} + vfmadd213ps {rn-sae}, %zmm9, %zmm7, %zmm14 + vaddps {rn-sae}, %zmm7, %zmm0, %zmm15 + vfmadd132ps {rn-sae}, %zmm0, %zmm14, %zmm8 + vsubps {rn-sae}, %zmm14, %zmm9, %zmm1 + vsubps {rn-sae}, %zmm8, %zmm14, %zmm6 + vfmadd231ps {rn-sae}, %zmm2, %zmm7, %zmm1 + vmovups 4416+__svml_scos_data_internal(%rip), %zmm7 + vfmadd231ps {rn-sae}, %zmm0, %zmm2, %zmm6 + vmovups 4480+__svml_scos_data_internal(%rip), %zmm0 + vaddps {rn-sae}, %zmm1, %zmm6, %zmm6 + vfmadd231ps {rn-sae}, %zmm4, %zmm0, %zmm7 + vpxord %zmm5, %zmm5, %zmm5 + vgatherdps 8(%rcx,%zmm13), %zmm5{%k3} + vmovups 4288+__svml_scos_data_internal(%rip), %zmm13 + vfmadd231ps {rn-sae}, %zmm4, %zmm12, %zmm13 + vmulps {rn-sae}, %zmm4, %zmm13, %zmm14 + vmulps {rn-sae}, %zmm4, %zmm7, %zmm4 + vmulps {rn-sae}, %zmm2, %zmm14, %zmm1 + +/* .......... Reconstruction: res_lo=corr+polS+polC+res_lo0 ...... */ + vfnmadd213ps {rn-sae}, %zmm15, %zmm9, %zmm2 + vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm6, %zmm2, %zmm1 + vfmadd213ps {rn-sae}, %zmm3, %zmm9, %zmm4 + vaddps {rn-sae}, %zmm1, %zmm4, %zmm2 + +/* .................. Final reconstruction ................... */ + vaddps {rn-sae}, %zmm2, %zmm8, %zmm3 + +/* + * ---------------------------------------------------------- + * End of large arguments path + * ---------------------------------------------------------- + * Merge results from main and large paths: + */ + vpandnd (%rsp), %zmm10, %zmm5 + vpandd %zmm10, %zmm3, %zmm10 + vpord %zmm10, %zmm5, %zmm0 + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_cosf16,@function + .size __svml_cosf16,.-__svml_cosf16 +..LN__svml_cosf16.0: + +.L_2__routine_start___svml_scos_cout_rare_internal_1: + + .align 16,0x90 + +__svml_scos_cout_rare_internal: + + + .cfi_startproc +..L63: + + movl (%rdi), %edx + movzwl 2(%rdi), %eax + movl %edx, -8(%rsp) + andl $32640, %eax + shrl $24, %edx + andl $127, %edx + cmpl $32640, %eax + jne .LBL_2_6 + + + movb %dl, -5(%rsp) + cmpl $2139095040, -8(%rsp) + jne .LBL_2_4 + + + movss (%rdi), %xmm0 + movl $1, %eax + mulss __scos_la__vmlsCosCoutTab(%rip), %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_4: + + movss (%rdi), %xmm0 + xorl %eax, %eax + mulss (%rdi), %xmm0 + movss %xmm0, (%rsi) + + + ret + +.LBL_2_6: + + xorl %eax, %eax + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_scos_cout_rare_internal,@function + .size __svml_scos_cout_rare_internal,.-__svml_scos_cout_rare_internal +..LN__svml_scos_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.24: + .long 0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000 + .type .L_2il0floatpacket.24,@object + .size .L_2il0floatpacket.24,64 + .align 64 +.L_2il0floatpacket.25: + .long 0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff + .type .L_2il0floatpacket.25,@object + .size .L_2il0floatpacket.25,64 + .align 64 +.L_2il0floatpacket.26: + .long 0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000 + .type .L_2il0floatpacket.26,@object + .size .L_2il0floatpacket.26,64 + .align 64 +.L_2il0floatpacket.27: + .long 0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff + .type .L_2il0floatpacket.27,@object + .size .L_2il0floatpacket.27,64 + .align 64 +.L_2il0floatpacket.28: + .long 0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000 + .type .L_2il0floatpacket.28,@object + .size .L_2il0floatpacket.28,64 + .align 64 +.L_2il0floatpacket.29: + .long 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000 + .type .L_2il0floatpacket.29,@object + .size .L_2il0floatpacket.29,64 + .align 64 +.L_2il0floatpacket.30: + .long 0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000 + .type .L_2il0floatpacket.30,@object + .size .L_2il0floatpacket.30,64 + .align 64 +.L_2il0floatpacket.31: + .long 0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,64 + .align 64 +.L_2il0floatpacket.32: + .long 0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000 + .type .L_2il0floatpacket.32,@object + .size .L_2il0floatpacket.32,64 + .align 64 +.L_2il0floatpacket.33: + .long 0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff + .type .L_2il0floatpacket.33,@object + .size .L_2il0floatpacket.33,64 + .align 64 +.L_2il0floatpacket.34: + .long 0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000 + .type .L_2il0floatpacket.34,@object + .size .L_2il0floatpacket.34,64 + .align 64 +.L_2il0floatpacket.35: + .long 0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff + .type .L_2il0floatpacket.35,@object + .size .L_2il0floatpacket.35,64 + .align 64 +.L_2il0floatpacket.36: + .long 0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb + .type .L_2il0floatpacket.36,@object + .size .L_2il0floatpacket.36,64 + .align 64 +.L_2il0floatpacket.37: + .long 0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e + .type .L_2il0floatpacket.37,@object + .size .L_2il0floatpacket.37,64 + .align 64 +.L_2il0floatpacket.38: + .long 0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff + .type .L_2il0floatpacket.38,@object + .size .L_2il0floatpacket.38,64 + .align 64 +.L_2il0floatpacket.39: + .long 0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000 + .type .L_2il0floatpacket.39,@object + .size .L_2il0floatpacket.39,64 + .align 64 +__svml_scos_data_internal: + .long 0 + .long 1065353216 + .long 0 + .long 0 + .long 1004262721 + .long 1065348163 + .long 814009613 + .long 3170893824 + .long 1012667202 + .long 1065333007 + .long 836655967 + .long 3179282432 + .long 3157608485 + .long 1065307757 + .long 852498564 + .long 3179282432 + .long 1021119272 + .long 1065272429 + .long 838093129 + .long 3187671040 + .long 992588201 + .long 1065227044 + .long 3002197507 + .long 3187671040 + .long 3165783068 + .long 1065171628 + .long 2969000681 + .long 3187671040 + .long 3174843017 + .long 1065106216 + .long 2989610635 + .long 3187671040 + .long 1029761272 + .long 1065030846 + .long 855602635 + .long 3196059648 + .long 1023221605 + .long 1064945565 + .long 851856985 + .long 3196059648 + .long 1004930693 + .long 1064850424 + .long 2987244005 + .long 3196059648 + .long 3163089201 + .long 1064745479 + .long 846006572 + .long 3196059648 + .long 3173319052 + .long 1064630795 + .long 2996018466 + .long 3196059648 + .long 3179441043 + .long 1064506439 + .long 851742225 + .long 3196059648 + .long 3182555983 + .long 1064372488 + .long 840880349 + .long 3196059648 + .long 1041201069 + .long 1064229022 + .long 2995991516 + .long 3204448256 + .long 1039156139 + .long 1064076126 + .long 854796500 + .long 3204448256 + .long 1036128472 + .long 1063913895 + .long 3001754476 + .long 3204448256 + .long 1033133567 + .long 1063742424 + .long 2998678409 + .long 3204448256 + .long 1028547674 + .long 1063561817 + .long 823789818 + .long 3204448256 + .long 1021989220 + .long 1063372184 + .long 3001545765 + .long 3204448256 + .long 1005106760 + .long 1063173637 + .long 851900755 + .long 3204448256 + .long 3160870706 + .long 1062966298 + .long 841166280 + .long 3204448256 + .long 3171899818 + .long 1062750291 + .long 2994560960 + .long 3204448256 + .long 3177422237 + .long 1062525745 + .long 848357914 + .long 3204448256 + .long 3181068627 + .long 1062292797 + .long 806113028 + .long 3204448256 + .long 3183738367 + .long 1062051586 + .long 847147240 + .long 3204448256 + .long 3186359946 + .long 1061802258 + .long 848897600 + .long 3204448256 + .long 3188301413 + .long 1061544963 + .long 850481524 + .long 3204448256 + .long 3189561687 + .long 1061279856 + .long 851442039 + .long 3204448256 + .long 3190795559 + .long 1061007097 + .long 832220140 + .long 3204448256 + .long 3192002283 + .long 1060726850 + .long 2994798599 + .long 3204448256 + .long 1050015258 + .long 1060439283 + .long 844097402 + .long 3212836864 + .long 1049440125 + .long 1060144571 + .long 2997759282 + .long 3212836864 + .long 1048879630 + .long 1059842890 + .long 2998350134 + .long 3212836864 + .long 1048092223 + .long 1059534422 + .long 2986574659 + .long 3212836864 + .long 1047031795 + .long 1059219353 + .long 841032635 + .long 3212836864 + .long 1046002615 + .long 1058897873 + .long 848430348 + .long 3212836864 + .long 1045005303 + .long 1058570176 + .long 2982650867 + .long 3212836864 + .long 1044040460 + .long 1058236458 + .long 852349230 + .long 3212836864 + .long 1043108667 + .long 1057896922 + .long 2991207143 + .long 3212836864 + .long 1042210485 + .long 1057551771 + .long 2998815566 + .long 3212836864 + .long 1041346455 + .long 1057201213 + .long 2992349186 + .long 3212836864 + .long 1040517098 + .long 1056726311 + .long 2978016425 + .long 3212836864 + .long 1039258436 + .long 1056004842 + .long 2986287417 + .long 3212836864 + .long 1037741368 + .long 1055273845 + .long 2983839604 + .long 3212836864 + .long 1036296515 + .long 1054533760 + .long 840832460 + .long 3212836864 + .long 1034924748 + .long 1053785034 + .long 829045603 + .long 3212836864 + .long 1033626892 + .long 1053028117 + .long 836097324 + .long 3212836864 + .long 1032403730 + .long 1052263466 + .long 2993707942 + .long 3212836864 + .long 1030713214 + .long 1051491540 + .long 2988789250 + .long 3212836864 + .long 1028569994 + .long 1050712805 + .long 2990442912 + .long 3212836864 + .long 1026580309 + .long 1049927729 + .long 846027248 + .long 3212836864 + .long 1024745356 + .long 1049136787 + .long 824999326 + .long 3212836864 + .long 1022722308 + .long 1048104908 + .long 2971391005 + .long 3212836864 + .long 1019677780 + .long 1046502419 + .long 833086710 + .long 3212836864 + .long 1016948784 + .long 1044891074 + .long 2967836285 + .long 3212836864 + .long 1014052363 + .long 1043271842 + .long 823224313 + .long 3212836864 + .long 1009865986 + .long 1041645699 + .long 837346836 + .long 3212836864 + .long 1006005820 + .long 1039839859 + .long 2970970319 + .long 3212836864 + .long 1000196465 + .long 1036565814 + .long 2960495349 + .long 3212836864 + .long 993104536 + .long 1033283845 + .long 2975014497 + .long 3212836864 + .long 983425480 + .long 1028193072 + .long 2968461951 + .long 3212836864 + .long 966649823 + .long 1019808432 + .long 2953169304 + .long 3212836864 + .long 0 + .long 0 + .long 0 + .long 3212836864 + .long 966649823 + .long 3167292080 + .long 805685656 + .long 3212836864 + .long 983425480 + .long 3175676720 + .long 820978303 + .long 3212836864 + .long 993104536 + .long 3180767493 + .long 827530849 + .long 3212836864 + .long 1000196465 + .long 3184049462 + .long 813011701 + .long 3212836864 + .long 1006005820 + .long 3187323507 + .long 823486671 + .long 3212836864 + .long 1009865986 + .long 3189129347 + .long 2984830484 + .long 3212836864 + .long 1014052363 + .long 3190755490 + .long 2970707961 + .long 3212836864 + .long 1016948784 + .long 3192374722 + .long 820352637 + .long 3212836864 + .long 1019677780 + .long 3193986067 + .long 2980570358 + .long 3212836864 + .long 1022722308 + .long 3195588556 + .long 823907357 + .long 3212836864 + .long 1024745356 + .long 3196620435 + .long 2972482974 + .long 3212836864 + .long 1026580309 + .long 3197411377 + .long 2993510896 + .long 3212836864 + .long 1028569994 + .long 3198196453 + .long 842959264 + .long 3212836864 + .long 1030713214 + .long 3198975188 + .long 841305602 + .long 3212836864 + .long 1032403730 + .long 3199747114 + .long 846224294 + .long 3212836864 + .long 1033626892 + .long 3200511765 + .long 2983580972 + .long 3212836864 + .long 1034924748 + .long 3201268682 + .long 2976529251 + .long 3212836864 + .long 1036296515 + .long 3202017408 + .long 2988316108 + .long 3212836864 + .long 1037741368 + .long 3202757493 + .long 836355956 + .long 3212836864 + .long 1039258436 + .long 3203488490 + .long 838803769 + .long 3212836864 + .long 1040517098 + .long 3204209959 + .long 830532777 + .long 3212836864 + .long 1041346455 + .long 3204684861 + .long 844865538 + .long 3212836864 + .long 1042210485 + .long 3205035419 + .long 851331918 + .long 3212836864 + .long 1043108667 + .long 3205380570 + .long 843723495 + .long 3212836864 + .long 1044040460 + .long 3205720106 + .long 2999832878 + .long 3212836864 + .long 1045005303 + .long 3206053824 + .long 835167219 + .long 3212836864 + .long 1046002615 + .long 3206381521 + .long 2995913996 + .long 3212836864 + .long 1047031795 + .long 3206703001 + .long 2988516283 + .long 3212836864 + .long 1048092223 + .long 3207018070 + .long 839091011 + .long 3212836864 + .long 1048879630 + .long 3207326538 + .long 850866486 + .long 3212836864 + .long 1049440125 + .long 3207628219 + .long 850275634 + .long 3212836864 + .long 1050015258 + .long 3207922931 + .long 2991581050 + .long 3212836864 + .long 3192002283 + .long 3208210498 + .long 847314951 + .long 3204448256 + .long 3190795559 + .long 3208490745 + .long 2979703788 + .long 3204448256 + .long 3189561687 + .long 3208763504 + .long 2998925687 + .long 3204448256 + .long 3188301413 + .long 3209028611 + .long 2997965172 + .long 3204448256 + .long 3186359946 + .long 3209285906 + .long 2996381248 + .long 3204448256 + .long 3183738367 + .long 3209535234 + .long 2994630888 + .long 3204448256 + .long 3181068627 + .long 3209776445 + .long 2953596676 + .long 3204448256 + .long 3177422237 + .long 3210009393 + .long 2995841562 + .long 3204448256 + .long 3171899818 + .long 3210233939 + .long 847077312 + .long 3204448256 + .long 3160870706 + .long 3210449946 + .long 2988649928 + .long 3204448256 + .long 1005106760 + .long 3210657285 + .long 2999384403 + .long 3204448256 + .long 1021989220 + .long 3210855832 + .long 854062117 + .long 3204448256 + .long 1028547674 + .long 3211045465 + .long 2971273466 + .long 3204448256 + .long 1033133567 + .long 3211226072 + .long 851194761 + .long 3204448256 + .long 1036128472 + .long 3211397543 + .long 854270828 + .long 3204448256 + .long 1039156139 + .long 3211559774 + .long 3002280148 + .long 3204448256 + .long 1041201069 + .long 3211712670 + .long 848507868 + .long 3204448256 + .long 3182555983 + .long 3211856136 + .long 2988363997 + .long 3196059648 + .long 3179441043 + .long 3211990087 + .long 2999225873 + .long 3196059648 + .long 3173319052 + .long 3212114443 + .long 848534818 + .long 3196059648 + .long 3163089201 + .long 3212229127 + .long 2993490220 + .long 3196059648 + .long 1004930693 + .long 3212334072 + .long 839760357 + .long 3196059648 + .long 1023221605 + .long 3212429213 + .long 2999340633 + .long 3196059648 + .long 1029761272 + .long 3212514494 + .long 3003086283 + .long 3196059648 + .long 3174843017 + .long 3212589864 + .long 842126987 + .long 3187671040 + .long 3165783068 + .long 3212655276 + .long 821517033 + .long 3187671040 + .long 992588201 + .long 3212710692 + .long 854713859 + .long 3187671040 + .long 1021119272 + .long 3212756077 + .long 2985576777 + .long 3187671040 + .long 3157608485 + .long 3212791405 + .long 2999982212 + .long 3179282432 + .long 1012667202 + .long 3212816655 + .long 2984139615 + .long 3179282432 + .long 1004262721 + .long 3212831811 + .long 2961493261 + .long 3170893824 + .long 0 + .long 3212836864 + .long 0 + .long 0 + .long 3151746369 + .long 3212831811 + .long 2961493261 + .long 1023410176 + .long 3160150850 + .long 3212816655 + .long 2984139615 + .long 1031798784 + .long 1010124837 + .long 3212791405 + .long 2999982212 + .long 1031798784 + .long 3168602920 + .long 3212756077 + .long 2985576777 + .long 1040187392 + .long 3140071849 + .long 3212710692 + .long 854713859 + .long 1040187392 + .long 1018299420 + .long 3212655276 + .long 821517033 + .long 1040187392 + .long 1027359369 + .long 3212589864 + .long 842126987 + .long 1040187392 + .long 3177244920 + .long 3212514494 + .long 3003086283 + .long 1048576000 + .long 3170705253 + .long 3212429213 + .long 2999340633 + .long 1048576000 + .long 3152414341 + .long 3212334072 + .long 839760357 + .long 1048576000 + .long 1015605553 + .long 3212229127 + .long 2993490220 + .long 1048576000 + .long 1025835404 + .long 3212114443 + .long 848534818 + .long 1048576000 + .long 1031957395 + .long 3211990087 + .long 2999225873 + .long 1048576000 + .long 1035072335 + .long 3211856136 + .long 2988363997 + .long 1048576000 + .long 3188684717 + .long 3211712670 + .long 848507868 + .long 1056964608 + .long 3186639787 + .long 3211559774 + .long 3002280148 + .long 1056964608 + .long 3183612120 + .long 3211397543 + .long 854270828 + .long 1056964608 + .long 3180617215 + .long 3211226072 + .long 851194761 + .long 1056964608 + .long 3176031322 + .long 3211045465 + .long 2971273466 + .long 1056964608 + .long 3169472868 + .long 3210855832 + .long 854062117 + .long 1056964608 + .long 3152590408 + .long 3210657285 + .long 2999384403 + .long 1056964608 + .long 1013387058 + .long 3210449946 + .long 2988649928 + .long 1056964608 + .long 1024416170 + .long 3210233939 + .long 847077312 + .long 1056964608 + .long 1029938589 + .long 3210009393 + .long 2995841562 + .long 1056964608 + .long 1033584979 + .long 3209776445 + .long 2953596676 + .long 1056964608 + .long 1036254719 + .long 3209535234 + .long 2994630888 + .long 1056964608 + .long 1038876298 + .long 3209285906 + .long 2996381248 + .long 1056964608 + .long 1040817765 + .long 3209028611 + .long 2997965172 + .long 1056964608 + .long 1042078039 + .long 3208763504 + .long 2998925687 + .long 1056964608 + .long 1043311911 + .long 3208490745 + .long 2979703788 + .long 1056964608 + .long 1044518635 + .long 3208210498 + .long 847314951 + .long 1056964608 + .long 3197498906 + .long 3207922931 + .long 2991581050 + .long 1065353216 + .long 3196923773 + .long 3207628219 + .long 850275634 + .long 1065353216 + .long 3196363278 + .long 3207326538 + .long 850866486 + .long 1065353216 + .long 3195575871 + .long 3207018070 + .long 839091011 + .long 1065353216 + .long 3194515443 + .long 3206703001 + .long 2988516283 + .long 1065353216 + .long 3193486263 + .long 3206381521 + .long 2995913996 + .long 1065353216 + .long 3192488951 + .long 3206053824 + .long 835167219 + .long 1065353216 + .long 3191524108 + .long 3205720106 + .long 2999832878 + .long 1065353216 + .long 3190592315 + .long 3205380570 + .long 843723495 + .long 1065353216 + .long 3189694133 + .long 3205035419 + .long 851331918 + .long 1065353216 + .long 3188830103 + .long 3204684861 + .long 844865538 + .long 1065353216 + .long 3188000746 + .long 3204209959 + .long 830532777 + .long 1065353216 + .long 3186742084 + .long 3203488490 + .long 838803769 + .long 1065353216 + .long 3185225016 + .long 3202757493 + .long 836355956 + .long 1065353216 + .long 3183780163 + .long 3202017408 + .long 2988316108 + .long 1065353216 + .long 3182408396 + .long 3201268682 + .long 2976529251 + .long 1065353216 + .long 3181110540 + .long 3200511765 + .long 2983580972 + .long 1065353216 + .long 3179887378 + .long 3199747114 + .long 846224294 + .long 1065353216 + .long 3178196862 + .long 3198975188 + .long 841305602 + .long 1065353216 + .long 3176053642 + .long 3198196453 + .long 842959264 + .long 1065353216 + .long 3174063957 + .long 3197411377 + .long 2993510896 + .long 1065353216 + .long 3172229004 + .long 3196620435 + .long 2972482974 + .long 1065353216 + .long 3170205956 + .long 3195588556 + .long 823907357 + .long 1065353216 + .long 3167161428 + .long 3193986067 + .long 2980570358 + .long 1065353216 + .long 3164432432 + .long 3192374722 + .long 820352637 + .long 1065353216 + .long 3161536011 + .long 3190755490 + .long 2970707961 + .long 1065353216 + .long 3157349634 + .long 3189129347 + .long 2984830484 + .long 1065353216 + .long 3153489468 + .long 3187323507 + .long 823486671 + .long 1065353216 + .long 3147680113 + .long 3184049462 + .long 813011701 + .long 1065353216 + .long 3140588184 + .long 3180767493 + .long 827530849 + .long 1065353216 + .long 3130909128 + .long 3175676720 + .long 820978303 + .long 1065353216 + .long 3114133471 + .long 3167292080 + .long 805685656 + .long 1065353216 + .long 0 + .long 0 + .long 0 + .long 1065353216 + .long 3114133471 + .long 1019808432 + .long 2953169304 + .long 1065353216 + .long 3130909128 + .long 1028193072 + .long 2968461951 + .long 1065353216 + .long 3140588184 + .long 1033283845 + .long 2975014497 + .long 1065353216 + .long 3147680113 + .long 1036565814 + .long 2960495349 + .long 1065353216 + .long 3153489468 + .long 1039839859 + .long 2970970319 + .long 1065353216 + .long 3157349634 + .long 1041645699 + .long 837346836 + .long 1065353216 + .long 3161536011 + .long 1043271842 + .long 823224313 + .long 1065353216 + .long 3164432432 + .long 1044891074 + .long 2967836285 + .long 1065353216 + .long 3167161428 + .long 1046502419 + .long 833086710 + .long 1065353216 + .long 3170205956 + .long 1048104908 + .long 2971391005 + .long 1065353216 + .long 3172229004 + .long 1049136787 + .long 824999326 + .long 1065353216 + .long 3174063957 + .long 1049927729 + .long 846027248 + .long 1065353216 + .long 3176053642 + .long 1050712805 + .long 2990442912 + .long 1065353216 + .long 3178196862 + .long 1051491540 + .long 2988789250 + .long 1065353216 + .long 3179887378 + .long 1052263466 + .long 2993707942 + .long 1065353216 + .long 3181110540 + .long 1053028117 + .long 836097324 + .long 1065353216 + .long 3182408396 + .long 1053785034 + .long 829045603 + .long 1065353216 + .long 3183780163 + .long 1054533760 + .long 840832460 + .long 1065353216 + .long 3185225016 + .long 1055273845 + .long 2983839604 + .long 1065353216 + .long 3186742084 + .long 1056004842 + .long 2986287417 + .long 1065353216 + .long 3188000746 + .long 1056726311 + .long 2978016425 + .long 1065353216 + .long 3188830103 + .long 1057201213 + .long 2992349186 + .long 1065353216 + .long 3189694133 + .long 1057551771 + .long 2998815566 + .long 1065353216 + .long 3190592315 + .long 1057896922 + .long 2991207143 + .long 1065353216 + .long 3191524108 + .long 1058236458 + .long 852349230 + .long 1065353216 + .long 3192488951 + .long 1058570176 + .long 2982650867 + .long 1065353216 + .long 3193486263 + .long 1058897873 + .long 848430348 + .long 1065353216 + .long 3194515443 + .long 1059219353 + .long 841032635 + .long 1065353216 + .long 3195575871 + .long 1059534422 + .long 2986574659 + .long 1065353216 + .long 3196363278 + .long 1059842890 + .long 2998350134 + .long 1065353216 + .long 3196923773 + .long 1060144571 + .long 2997759282 + .long 1065353216 + .long 3197498906 + .long 1060439283 + .long 844097402 + .long 1065353216 + .long 1044518635 + .long 1060726850 + .long 2994798599 + .long 1056964608 + .long 1043311911 + .long 1061007097 + .long 832220140 + .long 1056964608 + .long 1042078039 + .long 1061279856 + .long 851442039 + .long 1056964608 + .long 1040817765 + .long 1061544963 + .long 850481524 + .long 1056964608 + .long 1038876298 + .long 1061802258 + .long 848897600 + .long 1056964608 + .long 1036254719 + .long 1062051586 + .long 847147240 + .long 1056964608 + .long 1033584979 + .long 1062292797 + .long 806113028 + .long 1056964608 + .long 1029938589 + .long 1062525745 + .long 848357914 + .long 1056964608 + .long 1024416170 + .long 1062750291 + .long 2994560960 + .long 1056964608 + .long 1013387058 + .long 1062966298 + .long 841166280 + .long 1056964608 + .long 3152590408 + .long 1063173637 + .long 851900755 + .long 1056964608 + .long 3169472868 + .long 1063372184 + .long 3001545765 + .long 1056964608 + .long 3176031322 + .long 1063561817 + .long 823789818 + .long 1056964608 + .long 3180617215 + .long 1063742424 + .long 2998678409 + .long 1056964608 + .long 3183612120 + .long 1063913895 + .long 3001754476 + .long 1056964608 + .long 3186639787 + .long 1064076126 + .long 854796500 + .long 1056964608 + .long 3188684717 + .long 1064229022 + .long 2995991516 + .long 1056964608 + .long 1035072335 + .long 1064372488 + .long 840880349 + .long 1048576000 + .long 1031957395 + .long 1064506439 + .long 851742225 + .long 1048576000 + .long 1025835404 + .long 1064630795 + .long 2996018466 + .long 1048576000 + .long 1015605553 + .long 1064745479 + .long 846006572 + .long 1048576000 + .long 3152414341 + .long 1064850424 + .long 2987244005 + .long 1048576000 + .long 3170705253 + .long 1064945565 + .long 851856985 + .long 1048576000 + .long 3177244920 + .long 1065030846 + .long 855602635 + .long 1048576000 + .long 1027359369 + .long 1065106216 + .long 2989610635 + .long 1040187392 + .long 1018299420 + .long 1065171628 + .long 2969000681 + .long 1040187392 + .long 3140071849 + .long 1065227044 + .long 3002197507 + .long 1040187392 + .long 3168602920 + .long 1065272429 + .long 838093129 + .long 1040187392 + .long 1010124837 + .long 1065307757 + .long 852498564 + .long 1031798784 + .long 3160150850 + .long 1065333007 + .long 836655967 + .long 1031798784 + .long 3151746369 + .long 1065348163 + .long 814009613 + .long 1023410176 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 1007191908 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 3109009103 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 909034293 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .type __svml_scos_data_internal,@object + .size __svml_scos_data_internal,5760 + .align 64 +__svml_scos_reduction_data_internal: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1 + .long 0 + .long 0 + .long 2 + .long 0 + .long 0 + .long 5 + .long 0 + .long 0 + .long 10 + .long 0 + .long 0 + .long 20 + .long 0 + .long 0 + .long 40 + .long 0 + .long 0 + .long 81 + .long 0 + .long 0 + .long 162 + .long 0 + .long 0 + .long 325 + .long 0 + .long 0 + .long 651 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 1 + .long 1173554908 + .long 0 + .long 2 + .long 2347109817 + .long 0 + .long 5 + .long 399252338 + .long 0 + .long 10 + .long 798504676 + .long 0 + .long 20 + .long 1597009353 + .long 0 + .long 40 + .long 3194018707 + .long 0 + .long 81 + .long 2093070119 + .long 0 + .long 162 + .long 4186140238 + .long 0 + .long 325 + .long 4077313180 + .long 0 + .long 651 + .long 3859659065 + .long 0 + .long 1303 + .long 3424350834 + .long 0 + .long 2607 + .long 2553734372 + .long 0 + .long 5215 + .long 812501448 + .long 0 + .long 10430 + .long 1625002897 + .long 0 + .long 20860 + .long 3250005794 + .long 0 + .long 41721 + .long 2205044292 + .long 0 + .long 83443 + .long 115121288 + .long 0 + .long 166886 + .long 230242576 + .long 0 + .long 333772 + .long 460485152 + .long 0 + .long 667544 + .long 920970305 + .long 0 + .long 1335088 + .long 1841940610 + .long 0 + .long 2670176 + .long 3683881221 + .long 0 + .long 5340353 + .long 3072795146 + .long 0 + .long 10680707 + .long 1850622997 + .long 0 + .long 21361414 + .long 3701245994 + .long 0 + .long 42722829 + .long 3107524692 + .long 0 + .long 85445659 + .long 1920082089 + .long 0 + .long 170891318 + .long 3840164178 + .long 0 + .long 341782637 + .long 3385361061 + .long 0 + .long 683565275 + .long 2475754826 + .long 0 + .long 1367130551 + .long 656542356 + .long 0 + .long 2734261102 + .long 1313084713 + .long 1 + .long 1173554908 + .long 2626169427 + .long 2 + .long 2347109817 + .long 957371559 + .long 5 + .long 399252338 + .long 1914743119 + .long 10 + .long 798504676 + .long 3829486239 + .long 20 + .long 1597009353 + .long 3364005183 + .long 40 + .long 3194018707 + .long 2433043071 + .long 81 + .long 2093070119 + .long 571118846 + .long 162 + .long 4186140238 + .long 1142237692 + .long 325 + .long 4077313180 + .long 2284475384 + .long 651 + .long 3859659065 + .long 273983472 + .long 1303 + .long 3424350834 + .long 547966945 + .long 2607 + .long 2553734372 + .long 1095933890 + .long 5215 + .long 812501448 + .long 2191867780 + .long 10430 + .long 1625002897 + .long 88768265 + .long 20860 + .long 3250005794 + .long 177536531 + .long 41721 + .long 2205044292 + .long 355073063 + .long 83443 + .long 115121288 + .long 710146126 + .long 166886 + .long 230242576 + .long 1420292253 + .long 333772 + .long 460485152 + .long 2840584506 + .long 667544 + .long 920970305 + .long 1386201717 + .long 1335088 + .long 1841940610 + .long 2772403434 + .long 2670176 + .long 3683881221 + .long 1249839573 + .long 5340353 + .long 3072795146 + .long 2499679147 + .long 10680707 + .long 1850622997 + .long 704390999 + .long 21361414 + .long 3701245994 + .long 1408781999 + .long 42722829 + .long 3107524692 + .long 2817563999 + .long 85445659 + .long 1920082089 + .long 1340160702 + .long 170891318 + .long 3840164178 + .long 2680321405 + .long 341782637 + .long 3385361061 + .long 1065675514 + .long 683565275 + .long 2475754826 + .long 2131351028 + .long 1367130551 + .long 656542356 + .long 4262702056 + .long 2734261102 + .long 1313084713 + .long 4230436817 + .long 1173554908 + .long 2626169427 + .long 4165906339 + .long 2347109817 + .long 957371559 + .long 4036845383 + .long 399252338 + .long 1914743119 + .long 3778723471 + .long 798504676 + .long 3829486239 + .long 3262479647 + .long 1597009353 + .long 3364005183 + .long 2229991998 + .long 3194018707 + .long 2433043071 + .long 165016701 + .long 2093070119 + .long 571118846 + .long 330033402 + .long 4186140238 + .long 1142237692 + .long 660066805 + .long 4077313180 + .long 2284475384 + .long 1320133610 + .long 3859659065 + .long 273983472 + .long 2640267220 + .long 3424350834 + .long 547966945 + .long 985567145 + .long 2553734372 + .long 1095933890 + .long 1971134291 + .long 812501448 + .long 2191867780 + .long 3942268582 + .long 1625002897 + .long 88768265 + .long 3589569869 + .long 3250005794 + .long 177536531 + .long 2884172442 + .long 2205044292 + .long 355073063 + .long 1473377588 + .long 115121288 + .long 710146126 + .long 2946755177 + .long 230242576 + .long 1420292253 + .long 1598543059 + .long 460485152 + .long 2840584506 + .long 3197086118 + .long 920970305 + .long 1386201717 + .long 2099204941 + .long 1841940610 + .long 2772403434 + .long 4198409883 + .long 3683881221 + .long 1249839573 + .long 4101852471 + .long 3072795146 + .long 2499679147 + .long 3908737646 + .long 1850622997 + .long 704390999 + .long 3522507997 + .long 3701245994 + .long 1408781999 + .long 2750048699 + .long 3107524692 + .long 2817563999 + .long 1205130103 + .long 1920082089 + .long 1340160702 + .long 2410260206 + .long 3840164178 + .long 2680321405 + .long 525553116 + .long 3385361061 + .long 1065675514 + .long 1051106232 + .long 2475754826 + .long 2131351028 + .long 2102212464 + .long 656542356 + .long 4262702056 + .long 4204424928 + .long 1313084713 + .long 4230436817 + .long 4113882560 + .long 2626169427 + .long 4165906339 + .long 3932797825 + .long 957371559 + .long 4036845383 + .long 3570628355 + .long 1914743119 + .long 3778723471 + .long 2846289414 + .long 3829486239 + .long 3262479647 + .long 1397611533 + .long 3364005183 + .long 2229991998 + .long 2795223067 + .long 2433043071 + .long 165016701 + .long 1295478838 + .long 571118846 + .long 330033402 + .long 2590957677 + .long 1142237692 + .long 660066805 + .long 886948059 + .long 2284475384 + .long 1320133610 + .long 1773896118 + .long 273983472 + .long 2640267220 + .long 3547792237 + .long 547966945 + .long 985567145 + .long 2800617179 + .long 1095933890 + .long 1971134291 + .long 1306267062 + .long 2191867780 + .long 3942268582 + .long 2612534124 + .long 88768265 + .long 3589569869 + .long 930100952 + .long 177536531 + .long 2884172442 + .long 1860201905 + .long 355073063 + .long 1473377588 + .long 3720403810 + .long 710146126 + .long 2946755177 + .long 3145840325 + .long 1420292253 + .long 1598543059 + .long 1996713354 + .long 2840584506 + .long 3197086118 + .long 3993426708 + .long 1386201717 + .long 2099204941 + .long 3691886121 + .long 2772403434 + .long 4198409883 + .long 3088804946 + .long 1249839573 + .long 4101852471 + .long 1882642597 + .long 2499679147 + .long 3908737646 + .long 3765285194 + .long 704390999 + .long 3522507997 + .long 3235603093 + .long 1408781999 + .long 2750048699 + .long 2176238891 + .long 2817563999 + .long 1205130103 + .long 57510486 + .long 1340160702 + .long 2410260206 + .long 115020972 + .long 2680321405 + .long 525553116 + .long 230041945 + .long 1065675514 + .long 1051106232 + .long 460083891 + .long 2131351028 + .long 2102212464 + .long 920167782 + .long 4262702056 + .long 4204424928 + .long 1840335564 + .long 4230436817 + .long 4113882560 + .long 3680671129 + .long 4165906339 + .long 3932797825 + .long 3066374962 + .long 4036845383 + .long 3570628355 + .long 1837782628 + .long 3778723471 + .long 2846289414 + .long 3675565257 + .long 3262479647 + .long 1397611533 + .long 3056163219 + .long 2229991998 + .long 2795223067 + .long 1817359143 + .long 165016701 + .long 1295478838 + .long 3634718287 + .long 330033402 + .long 2590957677 + .long 2974469278 + .long 660066805 + .long 886948059 + .long 1653971260 + .long 1320133610 + .long 1773896118 + .long 3307942520 + .long 2640267220 + .long 3547792237 + .long 2320917745 + .long 985567145 + .long 2800617179 + .long 346868194 + .long 1971134291 + .long 1306267062 + .long 693736388 + .long 3942268582 + .long 2612534124 + .long 1387472776 + .long 3589569869 + .long 930100952 + .long 2774945552 + .long 2884172442 + .long 1860201905 + .long 1254923809 + .long 1473377588 + .long 3720403810 + .long 2509847619 + .long 2946755177 + .long 3145840325 + .long 724727943 + .long 1598543059 + .long 1996713354 + .long 1449455886 + .long 3197086118 + .long 3993426708 + .long 2898911772 + .long 2099204941 + .long 3691886121 + .long 1502856249 + .long 4198409883 + .long 3088804946 + .long 3005712498 + .long 4101852471 + .long 1882642597 + .long 1716457700 + .long 3908737646 + .long 3765285194 + .long 3432915400 + .long 3522507997 + .long 3235603093 + .long 2570863504 + .long 2750048699 + .long 2176238891 + .long 846759712 + .long 1205130103 + .long 57510486 + .long 1693519425 + .long 2410260206 + .long 115020972 + .long 3387038850 + .long 525553116 + .long 230041945 + .long 2479110404 + .long 1051106232 + .long 460083891 + .long 663253512 + .long 2102212464 + .long 920167782 + .long 1326507024 + .long 4204424928 + .long 1840335564 + .long 2653014048 + .long 4113882560 + .long 3680671129 + .long 1011060801 + .long 3932797825 + .long 3066374962 + .long 2022121603 + .long 3570628355 + .long 1837782628 + .long 4044243207 + .long 2846289414 + .long 3675565257 + .long 3793519119 + .long 1397611533 + .long 3056163219 + .long 3292070943 + .long 2795223067 + .long 1817359143 + .long 2289174591 + .long 1295478838 + .long 3634718287 + .long 283381887 + .long 2590957677 + .long 2974469278 + .long 566763775 + .type __svml_scos_reduction_data_internal,@object + .size __svml_scos_reduction_data_internal,3072 + .align 4 +__scos_la__vmlsCosCoutTab: + .long 0 + .long 2139095040 + .type __scos_la__vmlsCosCoutTab,@object + .size __scos_la__vmlsCosCoutTab,8 diff --git a/numpy/core/src/umath/svml/svml_z0_cosh_d_la.s b/numpy/core/src/umath/svml/svml_z0_cosh_d_la.s new file mode 100644 index 000000000000..0c8dc5ebfa43 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_cosh_d_la.s @@ -0,0 +1,1715 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_cosh8_z0_0: + + .align 16,0x90 + .globl __svml_cosh8 + +__svml_cosh8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 3648+__svml_dcosh_data_internal(%rip), %zmm11 + vmovups 384+__svml_dcosh_data_internal(%rip), %zmm15 + +/* + * ............... Load argument ........................... + * dM = x*2^K/log(2) + RShifter + */ + vmovups 3008+__svml_dcosh_data_internal(%rip), %zmm4 + vmovups 3072+__svml_dcosh_data_internal(%rip), %zmm2 + vmovups 3136+__svml_dcosh_data_internal(%rip), %zmm3 + vmovups 832+__svml_dcosh_data_internal(%rip), %zmm8 + vmovups 768+__svml_dcosh_data_internal(%rip), %zmm9 + vmovups 512+__svml_dcosh_data_internal(%rip), %zmm7 + vmovups 576+__svml_dcosh_data_internal(%rip), %zmm6 + vmovaps %zmm0, %zmm10 + +/* ............... Abs argument ............................ */ + vandnpd %zmm10, %zmm11, %zmm5 + +/* .............. Index and lookup ......................... */ + vmovups __svml_dcosh_data_internal(%rip), %zmm11 + vmovups 256+__svml_dcosh_data_internal(%rip), %zmm0 + vfmadd213pd {rn-sae}, %zmm15, %zmm5, %zmm4 + +/* + * ...............Check for overflow\underflow ............. + * + */ + vpsrlq $32, %zmm5, %zmm12 + +/* dN = dM - RShifter */ + vsubpd {rn-sae}, %zmm15, %zmm4, %zmm1 + vpmovqd %zmm12, %ymm13 + vpermt2pd 320+__svml_dcosh_data_internal(%rip), %zmm4, %zmm0 + vpermt2pd 64+__svml_dcosh_data_internal(%rip), %zmm4, %zmm11 + +/* dR = dX - dN*Log2_hi/2^K */ + vfnmadd231pd {rn-sae}, %zmm2, %zmm1, %zmm5 + +/* + * poly(r) = Gmjp(1 + a2*r^2 + a4*r^4) + Gmjn*(r+ a3*r^3 +a5*r^5) = + * = Gmjp_h +Gmjp_l+ Gmjp*r^2*(a2 + a4*r^2) + Gmjn*(r+ r^3*(a3 +a5*r^2) + */ + vmovups 704+__svml_dcosh_data_internal(%rip), %zmm12 + vpsllq $48, %zmm4, %zmm2 + +/* dR = dX - dN*Log2_hi/2^K */ + vfnmadd231pd {rn-sae}, %zmm3, %zmm1, %zmm5 + vmulpd {rn-sae}, %zmm5, %zmm5, %zmm1 + vfmadd231pd {rn-sae}, %zmm1, %zmm8, %zmm12 + vmovups 640+__svml_dcosh_data_internal(%rip), %zmm8 + vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm12 + vfmadd231pd {rn-sae}, %zmm1, %zmm9, %zmm8 + vfmadd213pd {rn-sae}, %zmm7, %zmm1, %zmm8 + vpcmpgtd 3712+__svml_dcosh_data_internal(%rip), %ymm13, %ymm14 + vmovmskps %ymm14, %edx + +/* dOut=r^2*(a2 + a4*r^2) */ + vmulpd {rn-sae}, %zmm1, %zmm8, %zmm6 + +/* lM now is an EXP(2^N) */ + vpandq 3584+__svml_dcosh_data_internal(%rip), %zmm2, %zmm3 + vpaddq %zmm3, %zmm11, %zmm4 + vpsubq %zmm3, %zmm0, %zmm0 + vsubpd {rn-sae}, %zmm0, %zmm4, %zmm14 + vaddpd {rn-sae}, %zmm0, %zmm4, %zmm13 + +/* dM=r^2*(a3 +a5*r^2) */ + vmulpd {rn-sae}, %zmm1, %zmm12, %zmm0 + vfmadd213pd {rn-sae}, %zmm13, %zmm13, %zmm6 + +/* dM= r + r^3*(a3 +a5*r^2) */ + vfmadd213pd {rn-sae}, %zmm5, %zmm5, %zmm0 + vfmadd213pd {rn-sae}, %zmm6, %zmm14, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm10, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dcosh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_cosh8,@function + .size __svml_cosh8,.-__svml_cosh8 +..LN__svml_cosh8.0: + +.L_2__routine_start___svml_dcosh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dcosh_cout_rare_internal: + + + .cfi_startproc +..L53: + + movq %rsi, %r8 + movzwl 6(%rdi), %edx + xorl %eax, %eax + andl $32752, %edx + cmpl $32752, %edx + je .LBL_2_12 + + + movq (%rdi), %rdx + movq %rdx, -8(%rsp) + shrq $56, %rdx + andl $127, %edx + movb %dl, -1(%rsp) + movzwl -2(%rsp), %ecx + andl $32752, %ecx + cmpl $15504, %ecx + jle .LBL_2_10 + + + movsd -8(%rsp), %xmm0 + movsd 1096+__dcosh_la_CoutTab(%rip), %xmm1 + comisd %xmm0, %xmm1 + jbe .LBL_2_9 + + + movq 1128+__dcosh_la_CoutTab(%rip), %rdx + movq %rdx, -8(%rsp) + comisd 1144+__dcosh_la_CoutTab(%rip), %xmm0 + jb .LBL_2_8 + + + movsd 1040+__dcosh_la_CoutTab(%rip), %xmm1 + lea __dcosh_la_CoutTab(%rip), %r9 + mulsd %xmm0, %xmm1 + addsd 1048+__dcosh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -40(%rsp) + movsd -40(%rsp), %xmm2 + movsd 1088+__dcosh_la_CoutTab(%rip), %xmm1 + movl -40(%rsp), %edx + movl %edx, %esi + andl $63, %esi + subsd 1048+__dcosh_la_CoutTab(%rip), %xmm2 + movsd %xmm2, -32(%rsp) + lea (%rsi,%rsi), %ecx + movsd -32(%rsp), %xmm3 + lea 1(%rsi,%rsi), %edi + mulsd 1104+__dcosh_la_CoutTab(%rip), %xmm3 + movsd -32(%rsp), %xmm4 + subsd %xmm3, %xmm0 + mulsd 1112+__dcosh_la_CoutTab(%rip), %xmm4 + shrl $6, %edx + subsd %xmm4, %xmm0 + mulsd %xmm0, %xmm1 + addl $1022, %edx + andl $2047, %edx + addsd 1080+__dcosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1072+__dcosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1064+__dcosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1056+__dcosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + mulsd %xmm0, %xmm1 + addsd %xmm0, %xmm1 + movsd (%r9,%rcx,8), %xmm0 + mulsd %xmm0, %xmm1 + addsd (%r9,%rdi,8), %xmm1 + addsd %xmm0, %xmm1 + cmpl $2046, %edx + ja .LBL_2_7 + + + movq 1128+__dcosh_la_CoutTab(%rip), %rcx + shrq $48, %rcx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm1, %xmm0 + movsd %xmm0, (%r8) + ret + +.LBL_2_7: + + decl %edx + andl $2047, %edx + movzwl -2(%rsp), %ecx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm0, %xmm1 + mulsd 1024+__dcosh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, (%r8) + ret + +.LBL_2_8: + + movsd 1040+__dcosh_la_CoutTab(%rip), %xmm1 + lea __dcosh_la_CoutTab(%rip), %rcx + movzwl -2(%rsp), %esi + andl $-32753, %esi + movsd 1080+__dcosh_la_CoutTab(%rip), %xmm14 + mulsd %xmm0, %xmm1 + addsd 1048+__dcosh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -40(%rsp) + movsd -40(%rsp), %xmm2 + movl -40(%rsp), %r10d + movl %r10d, %r9d + shrl $6, %r9d + subsd 1048+__dcosh_la_CoutTab(%rip), %xmm2 + movsd %xmm2, -32(%rsp) + lea 1023(%r9), %edi + andl $63, %r10d + addl $1022, %r9d + movsd -32(%rsp), %xmm3 + andl $2047, %r9d + negl %edi + shll $4, %r9d + addl $-4, %edi + mulsd 1104+__dcosh_la_CoutTab(%rip), %xmm3 + lea (%r10,%r10), %edx + movsd (%rcx,%rdx,8), %xmm15 + negl %edx + movsd -32(%rsp), %xmm4 + orl %r9d, %esi + andl $2047, %edi + lea 1(%r10,%r10), %r11d + mulsd 1112+__dcosh_la_CoutTab(%rip), %xmm4 + subsd %xmm3, %xmm0 + movw %si, -2(%rsp) + andl $-32753, %esi + shll $4, %edi + subsd %xmm4, %xmm0 + movsd -8(%rsp), %xmm6 + orl %edi, %esi + movw %si, -2(%rsp) + lea 128(%rdx), %esi + mulsd %xmm6, %xmm15 + movaps %xmm0, %xmm5 + mulsd %xmm0, %xmm5 + movsd -8(%rsp), %xmm7 + movaps %xmm15, %xmm8 + movsd (%rcx,%rsi,8), %xmm11 + addl $129, %edx + mulsd %xmm7, %xmm11 + movaps %xmm15, %xmm10 + mulsd %xmm5, %xmm14 + addsd %xmm11, %xmm8 + subsd %xmm11, %xmm15 + addsd 1064+__dcosh_la_CoutTab(%rip), %xmm14 + movsd %xmm8, -24(%rsp) + movsd (%rcx,%r11,8), %xmm12 + movsd (%rcx,%rdx,8), %xmm13 + movsd -24(%rsp), %xmm9 + mulsd %xmm6, %xmm12 + subsd %xmm9, %xmm10 + mulsd %xmm7, %xmm13 + mulsd %xmm5, %xmm14 + addsd %xmm11, %xmm10 + mulsd %xmm0, %xmm14 + movsd 1088+__dcosh_la_CoutTab(%rip), %xmm1 + movaps %xmm12, %xmm11 + mulsd %xmm5, %xmm1 + subsd %xmm13, %xmm12 + mulsd %xmm15, %xmm14 + mulsd %xmm0, %xmm12 + addsd 1072+__dcosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm15, %xmm0 + mulsd %xmm5, %xmm1 + addsd %xmm12, %xmm11 + movsd %xmm10, -16(%rsp) + addsd %xmm13, %xmm11 + addsd 1056+__dcosh_la_CoutTab(%rip), %xmm1 + addsd %xmm14, %xmm11 + mulsd %xmm5, %xmm1 + addsd %xmm0, %xmm11 + movsd -24(%rsp), %xmm3 + mulsd %xmm3, %xmm1 + movsd -16(%rsp), %xmm2 + addsd %xmm1, %xmm11 + addsd %xmm2, %xmm11 + movsd %xmm11, -24(%rsp) + movsd -24(%rsp), %xmm0 + addsd %xmm0, %xmm3 + movsd %xmm3, (%r8) + ret + +.LBL_2_9: + + movsd 1120+__dcosh_la_CoutTab(%rip), %xmm0 + movl $3, %eax + mulsd %xmm0, %xmm0 + movsd %xmm0, (%r8) + ret + +.LBL_2_10: + + movsd 1136+__dcosh_la_CoutTab(%rip), %xmm0 + addsd -8(%rsp), %xmm0 + movsd %xmm0, (%r8) + + + ret + +.LBL_2_12: + + movsd (%rdi), %xmm0 + mulsd %xmm0, %xmm0 + movsd %xmm0, (%r8) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dcosh_cout_rare_internal,@function + .size __svml_dcosh_cout_rare_internal,.-__svml_dcosh_cout_rare_internal +..LN__svml_dcosh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dcosh_data_internal: + .long 0 + .long 1071644672 + .long 1828292879 + .long 1071691096 + .long 1014845819 + .long 1071739576 + .long 1853186616 + .long 1071790202 + .long 171030293 + .long 1071843070 + .long 1276261410 + .long 1071898278 + .long 3577096743 + .long 1071955930 + .long 3712504873 + .long 1072016135 + .long 1719614413 + .long 1072079006 + .long 1944781191 + .long 1072144660 + .long 1110089947 + .long 1072213221 + .long 2191782032 + .long 1072284817 + .long 2572866477 + .long 1072359583 + .long 3716502172 + .long 1072437659 + .long 3707479175 + .long 1072519192 + .long 2728693978 + .long 1072604335 + .long 0 + .long 0 + .long 1255956747 + .long 1015588398 + .long 3117910646 + .long 3161559105 + .long 3066496371 + .long 1015656574 + .long 3526460132 + .long 1014428778 + .long 300981948 + .long 1014684169 + .long 2951496418 + .long 1013793687 + .long 88491949 + .long 1015427660 + .long 330458198 + .long 3163282740 + .long 3993278767 + .long 3161724279 + .long 1451641639 + .long 1015474673 + .long 2960257726 + .long 1013742662 + .long 878562433 + .long 1015521741 + .long 2303740125 + .long 1014042725 + .long 3613079303 + .long 1014164738 + .long 396109971 + .long 3163462691 + .long 0 + .long 1071644672 + .long 2728693978 + .long 1071555759 + .long 3707479175 + .long 1071470616 + .long 3716502172 + .long 1071389083 + .long 2572866477 + .long 1071311007 + .long 2191782032 + .long 1071236241 + .long 1110089947 + .long 1071164645 + .long 1944781191 + .long 1071096084 + .long 1719614413 + .long 1071030430 + .long 3712504873 + .long 1070967559 + .long 3577096743 + .long 1070907354 + .long 1276261410 + .long 1070849702 + .long 171030293 + .long 1070794494 + .long 1853186616 + .long 1070741626 + .long 1014845819 + .long 1070691000 + .long 1828292879 + .long 1070642520 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 4 + .long 1071644672 + .long 4 + .long 1071644672 + .long 4 + .long 1071644672 + .long 4 + .long 1071644672 + .long 4 + .long 1071644672 + .long 4 + .long 1071644672 + .long 4 + .long 1071644672 + .long 4 + .long 1071644672 + .long 1431655747 + .long 1069897045 + .long 1431655747 + .long 1069897045 + .long 1431655747 + .long 1069897045 + .long 1431655747 + .long 1069897045 + .long 1431655747 + .long 1069897045 + .long 1431655747 + .long 1069897045 + .long 1431655747 + .long 1069897045 + .long 1431655747 + .long 1069897045 + .long 1430802231 + .long 1067799893 + .long 1430802231 + .long 1067799893 + .long 1430802231 + .long 1067799893 + .long 1430802231 + .long 1067799893 + .long 1430802231 + .long 1067799893 + .long 1430802231 + .long 1067799893 + .long 1430802231 + .long 1067799893 + .long 1430802231 + .long 1067799893 + .long 287861260 + .long 1065423121 + .long 287861260 + .long 1065423121 + .long 287861260 + .long 1065423121 + .long 287861260 + .long 1065423121 + .long 287861260 + .long 1065423121 + .long 287861260 + .long 1065423121 + .long 287861260 + .long 1065423121 + .long 287861260 + .long 1065423121 + .long 3658019094 + .long 1062650243 + .long 3658019094 + .long 1062650243 + .long 3658019094 + .long 1062650243 + .long 3658019094 + .long 1062650243 + .long 3658019094 + .long 1062650243 + .long 3658019094 + .long 1062650243 + .long 3658019094 + .long 1062650243 + .long 3658019094 + .long 1062650243 + .long 1993999322 + .long 1059717517 + .long 1993999322 + .long 1059717517 + .long 1993999322 + .long 1059717517 + .long 1993999322 + .long 1059717517 + .long 1993999322 + .long 1059717517 + .long 1993999322 + .long 1059717517 + .long 1993999322 + .long 1059717517 + .long 1993999322 + .long 1059717517 + .long 0 + .long 1071644672 + .long 4200250559 + .long 1071647514 + .long 2851812149 + .long 1071650365 + .long 339411585 + .long 1071653224 + .long 1048019041 + .long 1071656090 + .long 772914124 + .long 1071658964 + .long 3899555717 + .long 1071661845 + .long 1928746161 + .long 1071664735 + .long 3541402996 + .long 1071667632 + .long 238821257 + .long 1071670538 + .long 702412510 + .long 1071673451 + .long 728934454 + .long 1071676372 + .long 410360776 + .long 1071679301 + .long 4133881824 + .long 1071682237 + .long 3402036099 + .long 1071685182 + .long 2602514713 + .long 1071688135 + .long 1828292879 + .long 1071691096 + .long 1172597893 + .long 1071694065 + .long 728909815 + .long 1071697042 + .long 590962156 + .long 1071700027 + .long 852742562 + .long 1071703020 + .long 1608493509 + .long 1071706021 + .long 2952712987 + .long 1071709030 + .long 685187902 + .long 1071712048 + .long 3490863953 + .long 1071715073 + .long 2875075254 + .long 1071718107 + .long 3228316108 + .long 1071721149 + .long 351405227 + .long 1071724200 + .long 2930322912 + .long 1071727258 + .long 2471440686 + .long 1071730325 + .long 3366293073 + .long 1071733400 + .long 1416741826 + .long 1071736484 + .long 1014845819 + .long 1071739576 + .long 2257959872 + .long 1071742676 + .long 948735466 + .long 1071745785 + .long 1480023343 + .long 1071748902 + .long 3949972341 + .long 1071752027 + .long 4162030108 + .long 1071755161 + .long 2214878420 + .long 1071758304 + .long 2502433899 + .long 1071761455 + .long 828946858 + .long 1071764615 + .long 1588871207 + .long 1071767783 + .long 586995997 + .long 1071770960 + .long 2218315341 + .long 1071774145 + .long 2288159958 + .long 1071777339 + .long 897099801 + .long 1071780542 + .long 2440944790 + .long 1071783753 + .long 2725843665 + .long 1071786973 + .long 1853186616 + .long 1071790202 + .long 4219606026 + .long 1071793439 + .long 1337108031 + .long 1071796686 + .long 1897844341 + .long 1071799941 + .long 1709341917 + .long 1071803205 + .long 874372905 + .long 1071806478 + .long 3790955393 + .long 1071809759 + .long 1972484976 + .long 1071813050 + .long 4112506593 + .long 1071816349 + .long 1724976915 + .long 1071819658 + .long 3504003472 + .long 1071822975 + .long 964107055 + .long 1071826302 + .long 2799960843 + .long 1071829637 + .long 526652809 + .long 1071832982 + .long 2839424854 + .long 1071836335 + .long 1253935211 + .long 1071839698 + .long 171030293 + .long 1071843070 + .long 3991843581 + .long 1071846450 + .long 4232894513 + .long 1071849840 + .long 1000925746 + .long 1071853240 + .long 2992903935 + .long 1071856648 + .long 1726216749 + .long 1071860066 + .long 1603444721 + .long 1071863493 + .long 2732492859 + .long 1071866929 + .long 926591435 + .long 1071870375 + .long 589198666 + .long 1071873830 + .long 1829099622 + .long 1071877294 + .long 460407023 + .long 1071880768 + .long 887463927 + .long 1071884251 + .long 3219942644 + .long 1071887743 + .long 3272845541 + .long 1071891245 + .long 1156440435 + .long 1071894757 + .long 1276261410 + .long 1071898278 + .long 3743175029 + .long 1071901808 + .long 78413852 + .long 1071905349 + .long 3278348324 + .long 1071908898 + .long 569847338 + .long 1071912458 + .long 654919306 + .long 1071916027 + .long 3645941911 + .long 1071919605 + .long 1065662932 + .long 1071923194 + .long 1617004845 + .long 1071926792 + .long 1118294578 + .long 1071930400 + .long 3978100823 + .long 1071934017 + .long 1720398391 + .long 1071937645 + .long 3049340112 + .long 1071941282 + .long 3784486610 + .long 1071944929 + .long 4040676318 + .long 1071948586 + .long 3933059031 + .long 1071952253 + .long 3577096743 + .long 1071955930 + .long 3088564500 + .long 1071959617 + .long 2583551245 + .long 1071963314 + .long 2178460671 + .long 1071967021 + .long 1990012071 + .long 1071970738 + .long 2135241198 + .long 1071974465 + .long 2731501122 + .long 1071978202 + .long 3896463087 + .long 1071981949 + .long 1453150082 + .long 1071985707 + .long 4109806887 + .long 1071989474 + .long 3395129871 + .long 1071993252 + .long 3723038930 + .long 1071997040 + .long 917841882 + .long 1072000839 + .long 3689071823 + .long 1072004647 + .long 3566716925 + .long 1072008466 + .long 671025100 + .long 1072012296 + .long 3712504873 + .long 1072016135 + .long 4222122499 + .long 1072019985 + .long 2321106615 + .long 1072023846 + .long 2425981843 + .long 1072027717 + .long 363667784 + .long 1072031599 + .long 551349105 + .long 1072035491 + .long 3111574537 + .long 1072039393 + .long 3872257780 + .long 1072043306 + .long 2956612997 + .long 1072047230 + .long 488188413 + .long 1072051165 + .long 885834528 + .long 1072055110 + .long 4273770423 + .long 1072059065 + .long 2186617381 + .long 1072063032 + .long 3339203574 + .long 1072067009 + .long 3561793907 + .long 1072070997 + .long 2979960120 + .long 1072074996 + .long 1719614413 + .long 1072079006 + .long 4201977662 + .long 1072083026 + .long 1963711167 + .long 1072087058 + .long 3721688645 + .long 1072091100 + .long 1013258799 + .long 1072095154 + .long 2555984613 + .long 1072099218 + .long 4182873220 + .long 1072103293 + .long 1727278727 + .long 1072107380 + .long 3907805044 + .long 1072111477 + .long 2263535754 + .long 1072115586 + .long 1218806132 + .long 1072119706 + .long 903334909 + .long 1072123837 + .long 1447192521 + .long 1072127979 + .long 2980802057 + .long 1072132132 + .long 1339972927 + .long 1072136297 + .long 950803702 + .long 1072140473 + .long 1944781191 + .long 1072144660 + .long 158781403 + .long 1072148859 + .long 19972402 + .long 1072153069 + .long 1660913392 + .long 1072157290 + .long 919555682 + .long 1072161523 + .long 2224145553 + .long 1072165767 + .long 1413356050 + .long 1072170023 + .long 2916157145 + .long 1072174290 + .long 2571947539 + .long 1072178569 + .long 515457527 + .long 1072182860 + .long 1176749997 + .long 1072187162 + .long 396319521 + .long 1072191476 + .long 2604962541 + .long 1072195801 + .long 3643909174 + .long 1072200138 + .long 3649726105 + .long 1072204487 + .long 2759350287 + .long 1072208848 + .long 1110089947 + .long 1072213221 + .long 3134592888 + .long 1072217605 + .long 380978316 + .long 1072222002 + .long 1577608921 + .long 1072226410 + .long 2568320822 + .long 1072230830 + .long 3492293770 + .long 1072235262 + .long 194117574 + .long 1072239707 + .long 1403662306 + .long 1072244163 + .long 2966275557 + .long 1072248631 + .long 727685349 + .long 1072253112 + .long 3418903055 + .long 1072257604 + .long 2591453363 + .long 1072262109 + .long 2682146384 + .long 1072266626 + .long 3833209506 + .long 1072271155 + .long 1892288442 + .long 1072275697 + .long 1297350157 + .long 1072280251 + .long 2191782032 + .long 1072284817 + .long 424392917 + .long 1072289396 + .long 434316067 + .long 1072293987 + .long 2366108318 + .long 1072298590 + .long 2069751141 + .long 1072303206 + .long 3985553595 + .long 1072307834 + .long 3964284211 + .long 1072312475 + .long 2152073944 + .long 1072317129 + .long 2990417245 + .long 1072321795 + .long 2331271250 + .long 1072326474 + .long 321958744 + .long 1072331166 + .long 1405169241 + .long 1072335870 + .long 1434058175 + .long 1072340587 + .long 557149882 + .long 1072345317 + .long 3218338682 + .long 1072350059 + .long 977020788 + .long 1072354815 + .long 2572866477 + .long 1072359583 + .long 3861050111 + .long 1072364364 + .long 697153126 + .long 1072369159 + .long 1822067026 + .long 1072373966 + .long 3092190715 + .long 1072378786 + .long 364333489 + .long 1072383620 + .long 2380618042 + .long 1072388466 + .long 703710506 + .long 1072393326 + .long 4076559943 + .long 1072398198 + .long 4062661092 + .long 1072403084 + .long 815859274 + .long 1072407984 + .long 3080351519 + .long 1072412896 + .long 2420883922 + .long 1072417822 + .long 3287523847 + .long 1072422761 + .long 1540824585 + .long 1072427714 + .long 1631695677 + .long 1072432680 + .long 3716502172 + .long 1072437659 + .long 3657065772 + .long 1072442652 + .long 1610600570 + .long 1072447659 + .long 2029714210 + .long 1072452679 + .long 777507147 + .long 1072457713 + .long 2307442995 + .long 1072462760 + .long 2483480501 + .long 1072467821 + .long 1464976603 + .long 1072472896 + .long 3706687593 + .long 1072477984 + .long 778901109 + .long 1072483087 + .long 1432208378 + .long 1072488203 + .long 1532734324 + .long 1072493333 + .long 1242007932 + .long 1072498477 + .long 721996136 + .long 1072503635 + .long 135105010 + .long 1072508807 + .long 3939148246 + .long 1072513992 + .long 3707479175 + .long 1072519192 + .long 3898795731 + .long 1072524406 + .long 382305176 + .long 1072529635 + .long 1912561781 + .long 1072534877 + .long 64696965 + .long 1072540134 + .long 3594158869 + .long 1072545404 + .long 4076975200 + .long 1072550689 + .long 1679558232 + .long 1072555989 + .long 863738719 + .long 1072561303 + .long 1796832535 + .long 1072566631 + .long 351641897 + .long 1072571974 + .long 991358482 + .long 1072577331 + .long 3884662774 + .long 1072582702 + .long 610758006 + .long 1072588089 + .long 4224142467 + .long 1072593489 + .long 2009970496 + .long 1072598905 + .long 2728693978 + .long 1072604335 + .long 2256325230 + .long 1072609780 + .long 764307441 + .long 1072615240 + .long 2719515920 + .long 1072620714 + .long 3999357479 + .long 1072626203 + .long 481706282 + .long 1072631708 + .long 929806999 + .long 1072637227 + .long 1222472308 + .long 1072642761 + .long 1533953344 + .long 1072648310 + .long 2038973688 + .long 1072653874 + .long 2912730644 + .long 1072659453 + .long 35929225 + .long 1072665048 + .long 2174652632 + .long 1072670657 + .long 915592468 + .long 1072676282 + .long 730821105 + .long 1072681922 + .long 1797923801 + .long 1072687577 + .long 0 + .long 1072693248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 4277927936 + .long 1072049730 + .long 4277927936 + .long 1072049730 + .long 4277927936 + .long 1072049730 + .long 4277927936 + .long 1072049730 + .long 4277927936 + .long 1072049730 + .long 4277927936 + .long 1072049730 + .long 4277927936 + .long 1072049730 + .long 4277927936 + .long 1072049730 + .long 2825664665 + .long 3182190860 + .long 2825664665 + .long 3182190860 + .long 2825664665 + .long 3182190860 + .long 2825664665 + .long 3182190860 + .long 2825664665 + .long 3182190860 + .long 2825664665 + .long 3182190860 + .long 2825664665 + .long 3182190860 + .long 2825664665 + .long 3182190860 + .long 0 + .long 1119354880 + .long 0 + .long 1119354880 + .long 0 + .long 1119354880 + .long 0 + .long 1119354880 + .long 0 + .long 1119354880 + .long 0 + .long 1119354880 + .long 0 + .long 1119354880 + .long 0 + .long 1119354880 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 255 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 1887518228 + .long 1069897045 + .long 1887518228 + .long 1069897045 + .long 1887518228 + .long 1069897045 + .long 1887518228 + .long 1069897045 + .long 1887518228 + .long 1069897045 + .long 1887518228 + .long 1069897045 + .long 1887518228 + .long 1069897045 + .long 1887518228 + .long 1069897045 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 256 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .type __svml_dcosh_data_internal,@object + .size __svml_dcosh_data_internal,3776 + .space 832, 0x00 + .align 32 +__dcosh_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 852742562 + .long 1072751596 + .long 667253587 + .long 1010842135 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 3706687593 + .long 1073526560 + .long 3521726939 + .long 1014301643 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 1697350398 + .long 1079448903 + .long 0 + .long 1127743488 + .long 0 + .long 1071644672 + .long 1431652600 + .long 1069897045 + .long 1431670732 + .long 1067799893 + .long 984555731 + .long 1065423122 + .long 472530941 + .long 1062650218 + .long 2411329662 + .long 1082536910 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 4294967295 + .long 2146435071 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 3875694624 + .long 1077247184 + .type __dcosh_la_CoutTab,@object + .size __dcosh_la_CoutTab,1152 diff --git a/numpy/core/src/umath/svml/svml_z0_cosh_s_la.s b/numpy/core/src/umath/svml/svml_z0_cosh_s_la.s new file mode 100644 index 000000000000..a7be097fc690 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_cosh_s_la.s @@ -0,0 +1,1211 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_coshf16_z0_0: + + .align 16,0x90 + .globl __svml_coshf16 + +__svml_coshf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 1024+__svml_scosh_data_internal(%rip), %zmm4 + vmovups 384+__svml_scosh_data_internal(%rip), %zmm6 + +/* + * ............... Load argument ............................ + * dM = x/log(2) + RShifter + */ + vmovups 768+__svml_scosh_data_internal(%rip), %zmm10 + vmovups 896+__svml_scosh_data_internal(%rip), %zmm7 + vmovups 960+__svml_scosh_data_internal(%rip), %zmm9 + +/* ... */ + vmovups 704+__svml_scosh_data_internal(%rip), %zmm2 + +/* x^2 */ + vmovups 640+__svml_scosh_data_internal(%rip), %zmm3 + +/* ............... G1,G2 2^N,2^(-N) ........... */ + vmovups __svml_scosh_data_internal(%rip), %zmm12 + vmovups 256+__svml_scosh_data_internal(%rip), %zmm13 + +/* + * -------------------- Implementation ------------------- + * ............... Abs argument ............................ + */ + vandnps %zmm0, %zmm4, %zmm1 + +/* ...............Check for overflow\underflow ............. */ + vpternlogd $255, %zmm5, %zmm5, %zmm5 + vfmadd213ps {rn-sae}, %zmm6, %zmm1, %zmm10 + vpcmpd $1, 512+__svml_scosh_data_internal(%rip), %zmm1, %k1 + +/* iM now is an EXP(2^N) */ + vpslld $18, %zmm10, %zmm11 + +/* + * ................... R ................................... + * sN = sM - RShifter + */ + vsubps {rn-sae}, %zmm6, %zmm10, %zmm8 + vpermt2ps 64+__svml_scosh_data_internal(%rip), %zmm10, %zmm12 + vpermt2ps 320+__svml_scosh_data_internal(%rip), %zmm10, %zmm13 + vpandnd %zmm1, %zmm1, %zmm5{%k1} + +/* sR = sX - sN*Log2_hi */ + vfnmadd231ps {rn-sae}, %zmm7, %zmm8, %zmm1 + vptestmd %zmm5, %zmm5, %k0 + +/* sR = (sX - sN*Log2_hi) - sN*Log2_lo */ + vfnmadd231ps {rn-sae}, %zmm9, %zmm8, %zmm1 + kmovw %k0, %edx + vmulps {rn-sae}, %zmm1, %zmm1, %zmm4 + vmulps {rn-sae}, %zmm4, %zmm2, %zmm2 + +/* sSinh_r = r + r*(r^2*(a3)) */ + vfmadd213ps {rn-sae}, %zmm1, %zmm1, %zmm2 + +/* sOut = r^2*(a2) */ + vmulps {rn-sae}, %zmm4, %zmm3, %zmm1 + vpandd 1216+__svml_scosh_data_internal(%rip), %zmm11, %zmm14 + vpaddd %zmm14, %zmm12, %zmm15 + vpsubd %zmm14, %zmm13, %zmm10 + +/* sG2 = 2^N*Th + 2^(-N)*T_h */ + vaddps {rn-sae}, %zmm10, %zmm15, %zmm5 + +/* sG1 = 2^N*Th - 2^(-N)*T_h */ + vsubps {rn-sae}, %zmm10, %zmm15, %zmm6 + +/* res = sG1*(r + r*(r^2*(a3))) + sG2*(1+r^2*(a2)) */ + vfmadd213ps {rn-sae}, %zmm5, %zmm5, %zmm1 + vfmadd213ps {rn-sae}, %zmm1, %zmm2, %zmm6 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm6, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm6, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm6 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_scosh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_coshf16,@function + .size __svml_coshf16,.-__svml_coshf16 +..LN__svml_coshf16.0: + +.L_2__routine_start___svml_scosh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_scosh_cout_rare_internal: + + + .cfi_startproc +..L53: + + movq %rsi, %r8 + movzwl 2(%rdi), %edx + xorl %eax, %eax + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_12 + + + pxor %xmm0, %xmm0 + cvtss2sd (%rdi), %xmm0 + movsd %xmm0, -8(%rsp) + andb $127, -1(%rsp) + movzwl -2(%rsp), %edx + andl $32752, %edx + cmpl $15504, %edx + jle .LBL_2_10 + + + movsd -8(%rsp), %xmm0 + movsd 1096+__scosh_la_CoutTab(%rip), %xmm1 + comisd %xmm0, %xmm1 + jbe .LBL_2_9 + + + movq 1128+__scosh_la_CoutTab(%rip), %rdx + movq %rdx, -8(%rsp) + comisd 1144+__scosh_la_CoutTab(%rip), %xmm0 + jb .LBL_2_8 + + + movsd 1040+__scosh_la_CoutTab(%rip), %xmm1 + lea __scosh_la_CoutTab(%rip), %r9 + mulsd %xmm0, %xmm1 + addsd 1048+__scosh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -40(%rsp) + movsd -40(%rsp), %xmm2 + movsd 1088+__scosh_la_CoutTab(%rip), %xmm1 + movl -40(%rsp), %edx + movl %edx, %esi + andl $63, %esi + subsd 1048+__scosh_la_CoutTab(%rip), %xmm2 + movsd %xmm2, -32(%rsp) + lea (%rsi,%rsi), %ecx + movsd -32(%rsp), %xmm3 + lea 1(%rsi,%rsi), %edi + mulsd 1104+__scosh_la_CoutTab(%rip), %xmm3 + movsd -32(%rsp), %xmm4 + subsd %xmm3, %xmm0 + mulsd 1112+__scosh_la_CoutTab(%rip), %xmm4 + shrl $6, %edx + subsd %xmm4, %xmm0 + mulsd %xmm0, %xmm1 + addl $1022, %edx + andl $2047, %edx + addsd 1080+__scosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1072+__scosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1064+__scosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1056+__scosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + mulsd %xmm0, %xmm1 + addsd %xmm0, %xmm1 + movsd (%r9,%rcx,8), %xmm0 + mulsd %xmm0, %xmm1 + addsd (%r9,%rdi,8), %xmm1 + addsd %xmm0, %xmm1 + cmpl $2046, %edx + ja .LBL_2_7 + + + movq 1128+__scosh_la_CoutTab(%rip), %rcx + shrq $48, %rcx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm1, %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r8) + ret + +.LBL_2_7: + + decl %edx + andl $2047, %edx + movzwl -2(%rsp), %ecx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm0, %xmm1 + mulsd 1024+__scosh_la_CoutTab(%rip), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%r8) + ret + +.LBL_2_8: + + movsd 1040+__scosh_la_CoutTab(%rip), %xmm1 + lea __scosh_la_CoutTab(%rip), %rcx + movzwl -2(%rsp), %esi + andl $-32753, %esi + movsd 1080+__scosh_la_CoutTab(%rip), %xmm14 + mulsd %xmm0, %xmm1 + addsd 1048+__scosh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -40(%rsp) + movsd -40(%rsp), %xmm2 + movl -40(%rsp), %r10d + movl %r10d, %r9d + shrl $6, %r9d + subsd 1048+__scosh_la_CoutTab(%rip), %xmm2 + movsd %xmm2, -32(%rsp) + lea 1023(%r9), %edi + movsd -32(%rsp), %xmm3 + addl $1022, %r9d + mulsd 1104+__scosh_la_CoutTab(%rip), %xmm3 + andl $63, %r10d + movsd -32(%rsp), %xmm4 + lea (%r10,%r10), %edx + mulsd 1112+__scosh_la_CoutTab(%rip), %xmm4 + subsd %xmm3, %xmm0 + andl $2047, %r9d + negl %edi + movsd (%rcx,%rdx,8), %xmm15 + negl %edx + shll $4, %r9d + addl $-4, %edi + orl %r9d, %esi + andl $2047, %edi + movw %si, -2(%rsp) + andl $-32753, %esi + shll $4, %edi + lea 1(%r10,%r10), %r11d + movsd -8(%rsp), %xmm6 + orl %edi, %esi + movw %si, -2(%rsp) + lea 128(%rdx), %esi + addl $129, %edx + subsd %xmm4, %xmm0 + mulsd %xmm6, %xmm15 + movaps %xmm0, %xmm5 + movaps %xmm15, %xmm8 + mulsd %xmm0, %xmm5 + movaps %xmm15, %xmm10 + movsd (%rcx,%r11,8), %xmm2 + mulsd %xmm6, %xmm2 + mulsd %xmm5, %xmm14 + movsd -8(%rsp), %xmm7 + movaps %xmm2, %xmm12 + movsd (%rcx,%rdx,8), %xmm13 + mulsd %xmm7, %xmm13 + addsd 1064+__scosh_la_CoutTab(%rip), %xmm14 + movsd 1088+__scosh_la_CoutTab(%rip), %xmm1 + subsd %xmm13, %xmm12 + mulsd %xmm5, %xmm1 + mulsd %xmm5, %xmm14 + mulsd %xmm0, %xmm12 + addsd 1072+__scosh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm14 + addsd %xmm12, %xmm2 + mulsd %xmm5, %xmm1 + addsd %xmm13, %xmm2 + addsd 1056+__scosh_la_CoutTab(%rip), %xmm1 + movsd (%rcx,%rsi,8), %xmm11 + mulsd %xmm7, %xmm11 + mulsd %xmm5, %xmm1 + addsd %xmm11, %xmm8 + subsd %xmm11, %xmm15 + movsd %xmm8, -24(%rsp) + movsd -24(%rsp), %xmm9 + mulsd %xmm15, %xmm14 + subsd %xmm9, %xmm10 + mulsd %xmm15, %xmm0 + addsd %xmm11, %xmm10 + addsd %xmm14, %xmm2 + movsd %xmm10, -16(%rsp) + addsd %xmm0, %xmm2 + movsd -24(%rsp), %xmm3 + mulsd %xmm3, %xmm1 + movsd -16(%rsp), %xmm6 + addsd %xmm1, %xmm2 + addsd %xmm6, %xmm2 + movsd %xmm2, -24(%rsp) + movsd -24(%rsp), %xmm0 + addsd %xmm0, %xmm3 + cvtsd2ss %xmm3, %xmm3 + movss %xmm3, (%r8) + ret + +.LBL_2_9: + + movsd 1120+__scosh_la_CoutTab(%rip), %xmm0 + movl $3, %eax + mulsd %xmm0, %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r8) + ret + +.LBL_2_10: + + movsd 1136+__scosh_la_CoutTab(%rip), %xmm0 + addsd -8(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r8) + + + ret + +.LBL_2_12: + + movss (%rdi), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, (%r8) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_scosh_cout_rare_internal,@function + .size __svml_scosh_cout_rare_internal,.-__svml_scosh_cout_rare_internal +..LN__svml_scosh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_scosh_data_internal: + .long 1056964608 + .long 1057148295 + .long 1057336003 + .long 1057527823 + .long 1057723842 + .long 1057924154 + .long 1058128851 + .long 1058338032 + .long 1058551792 + .long 1058770234 + .long 1058993458 + .long 1059221571 + .long 1059454679 + .long 1059692891 + .long 1059936319 + .long 1060185078 + .long 1060439283 + .long 1060699055 + .long 1060964516 + .long 1061235789 + .long 1061513002 + .long 1061796286 + .long 1062085772 + .long 1062381598 + .long 1062683901 + .long 1062992824 + .long 1063308511 + .long 1063631111 + .long 1063960775 + .long 1064297658 + .long 1064641917 + .long 1064993715 + .long 0 + .long 2999887785 + .long 852465809 + .long 3003046475 + .long 2984291233 + .long 3001644133 + .long 854021668 + .long 2997748242 + .long 849550193 + .long 2995541347 + .long 851518274 + .long 809701978 + .long 2997656926 + .long 2996185864 + .long 2980965110 + .long 3002882728 + .long 844097402 + .long 848217591 + .long 2999013352 + .long 2992006718 + .long 831170615 + .long 3002278818 + .long 833158180 + .long 3000769962 + .long 2991891850 + .long 2999994908 + .long 2979965785 + .long 2982419430 + .long 2982221534 + .long 2999469642 + .long 833168438 + .long 2987538264 + .long 1056964608 + .long 1056605107 + .long 1056253309 + .long 1055909050 + .long 1055572167 + .long 1055242503 + .long 1054919903 + .long 1054604216 + .long 1054295293 + .long 1053992990 + .long 1053697164 + .long 1053407678 + .long 1053124394 + .long 1052847181 + .long 1052575908 + .long 1052310447 + .long 1052050675 + .long 1051796470 + .long 1051547711 + .long 1051304283 + .long 1051066071 + .long 1050832963 + .long 1050604850 + .long 1050381626 + .long 1050163184 + .long 1049949424 + .long 1049740243 + .long 1049535546 + .long 1049335234 + .long 1049139215 + .long 1048947395 + .long 1048759687 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1056964879 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1042983629 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 3212836864 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .type __svml_scosh_data_internal,@object + .size __svml_scosh_data_internal,1920 + .align 32 +__scosh_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 852742562 + .long 1072751596 + .long 667253587 + .long 1010842135 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 3706687593 + .long 1073526560 + .long 3521726939 + .long 1014301643 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 1697350398 + .long 1079448903 + .long 0 + .long 1127743488 + .long 0 + .long 1071644672 + .long 1431652600 + .long 1069897045 + .long 1431670732 + .long 1067799893 + .long 984555731 + .long 1065423122 + .long 472530941 + .long 1062650218 + .long 2684354560 + .long 1079401119 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 4294967295 + .long 2146435071 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 3875694624 + .long 1077247184 + .type __scosh_la_CoutTab,@object + .size __scosh_la_CoutTab,1152 diff --git a/numpy/core/src/umath/svml/svml_z0_exp2_d_la.s b/numpy/core/src/umath/svml/svml_z0_exp2_d_la.s new file mode 100644 index 000000000000..7c61b33e5c9d --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_exp2_d_la.s @@ -0,0 +1,830 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_exp28_z0_0: + + .align 16,0x90 + .globl __svml_exp28 + +__svml_exp28: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 384+__svml_dexp2_data_internal_avx512(%rip), %zmm14 + vmovups 448+__svml_dexp2_data_internal_avx512(%rip), %zmm6 + +/* + * Reduced argument +*/ + vreducepd $65, {sae}, %zmm0, %zmm10 + vmovups 320+__svml_dexp2_data_internal_avx512(%rip), %zmm7 + vmovups 512+__svml_dexp2_data_internal_avx512(%rip), %zmm3 + vmovups 256+__svml_dexp2_data_internal_avx512(%rip), %zmm8 + vmovups __svml_dexp2_data_internal_avx512(%rip), %zmm13 + +/* c6*r + c5 */ + vfmadd231pd {rn-sae}, %zmm10, %zmm6, %zmm14 + vmovups 192+__svml_dexp2_data_internal_avx512(%rip), %zmm9 + vmovups 640+__svml_dexp2_data_internal_avx512(%rip), %zmm2 + vmovups 128+__svml_dexp2_data_internal_avx512(%rip), %zmm11 + +/* c6*r^2 + c5*r + c4 */ + vfmadd213pd {rn-sae}, %zmm7, %zmm10, %zmm14 + +/* + * Integer form of K+0.b1b2b3b4 in lower bits - call K_plus_f0 + * Mantisssa of normalized double precision FP: 1.b1b2...b52 + */ + vaddpd {rd-sae}, %zmm3, %zmm0, %zmm4 + vandpd 576+__svml_dexp2_data_internal_avx512(%rip), %zmm0, %zmm1 + +/* c6*r^3 + c5*r^2 + c4*r + c3 */ + vfmadd213pd {rn-sae}, %zmm8, %zmm10, %zmm14 + vcmppd $29, {sae}, %zmm2, %zmm1, %k0 + +/* c6*r^4 + c5*r^3 + c4*r^2 + c3*r + c2 */ + vfmadd213pd {rn-sae}, %zmm9, %zmm10, %zmm14 + kmovw %k0, %edx + +/* c6*r^5 + c5*r^4 + c4*r^3 + c3*r^2 + c2*r + c1 */ + vfmadd213pd {rn-sae}, %zmm11, %zmm10, %zmm14 + +/* Table value: 2^(0.b1b2b3b4) */ + vpandq 704+__svml_dexp2_data_internal_avx512(%rip), %zmm4, %zmm5 + vpermt2pd 64+__svml_dexp2_data_internal_avx512(%rip), %zmm5, %zmm13 + +/* T*r */ + vmulpd {rn-sae}, %zmm10, %zmm13, %zmm12 + +/* T + (T*r*(c6*r^5 + c5*r^4 + c4*r^3 + c3*r^2 + c2*r + c1)) */ + vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm14 + +/* Scaling placed at the end to avoid accuracy loss when T*r*scale underflows */ + vscalefpd {rn-sae}, %zmm0, %zmm14, %zmm1 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm1, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dexp2_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_exp28,@function + .size __svml_exp28,.-__svml_exp28 +..LN__svml_exp28.0: + +.L_2__routine_start___svml_dexp2_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dexp2_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 6(%rdi), %edx + andl $32752, %edx + movsd (%rdi), %xmm5 + movsd %xmm5, -8(%rsp) + cmpl $32752, %edx + je .LBL_2_12 + + + movsd 1072+__dexp2_la__imldExp2HATab(%rip), %xmm0 + comisd %xmm5, %xmm0 + jbe .LBL_2_10 + + + comisd 1088+__dexp2_la__imldExp2HATab(%rip), %xmm5 + jbe .LBL_2_9 + + + movsd 1024+__dexp2_la__imldExp2HATab(%rip), %xmm0 + movaps %xmm5, %xmm3 + lea __dexp2_la__imldExp2HATab(%rip), %r10 + addsd %xmm5, %xmm0 + movsd %xmm0, -24(%rsp) + movsd -24(%rsp), %xmm1 + movl -24(%rsp), %r8d + movl %r8d, %ecx + andl $63, %r8d + subsd 1024+__dexp2_la__imldExp2HATab(%rip), %xmm1 + movsd %xmm1, -16(%rsp) + lea 1(%r8,%r8), %r9d + movsd -16(%rsp), %xmm2 + lea (%r8,%r8), %edi + movsd 1064+__dexp2_la__imldExp2HATab(%rip), %xmm1 + subsd %xmm2, %xmm3 + mulsd %xmm3, %xmm1 + movsd (%r10,%rdi,8), %xmm4 + shrl $6, %ecx + addsd 1056+__dexp2_la__imldExp2HATab(%rip), %xmm1 + comisd 1080+__dexp2_la__imldExp2HATab(%rip), %xmm5 + mulsd %xmm3, %xmm1 + movq 1112+__dexp2_la__imldExp2HATab(%rip), %rdx + movq %rdx, -8(%rsp) + lea 1023(%rcx), %edx + addsd 1048+__dexp2_la__imldExp2HATab(%rip), %xmm1 + mulsd %xmm3, %xmm1 + addsd 1040+__dexp2_la__imldExp2HATab(%rip), %xmm1 + mulsd %xmm3, %xmm1 + addsd 1032+__dexp2_la__imldExp2HATab(%rip), %xmm1 + mulsd %xmm3, %xmm1 + addsd (%r10,%r9,8), %xmm1 + mulsd %xmm4, %xmm1 + addsd %xmm4, %xmm1 + jb .LBL_2_8 + + + andl $2047, %edx + cmpl $2046, %edx + ja .LBL_2_7 + + + movq 1112+__dexp2_la__imldExp2HATab(%rip), %rcx + shrq $48, %rcx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm1, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_7: + + decl %edx + andl $2047, %edx + movzwl -2(%rsp), %ecx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm1, %xmm0 + mulsd 1128+__dexp2_la__imldExp2HATab(%rip), %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_8: + + addl $1123, %ecx + andl $2047, %ecx + movzwl -2(%rsp), %eax + shll $4, %ecx + andl $-32753, %eax + orl %ecx, %eax + movw %ax, -2(%rsp) + movl $4, %eax + movsd -8(%rsp), %xmm0 + mulsd %xmm1, %xmm0 + mulsd 1136+__dexp2_la__imldExp2HATab(%rip), %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_9: + + movsd 1096+__dexp2_la__imldExp2HATab(%rip), %xmm0 + movl $4, %eax + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_10: + + movsd 1104+__dexp2_la__imldExp2HATab(%rip), %xmm0 + movl $3, %eax + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + + + ret + +.LBL_2_12: + + movb -1(%rsp), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_14 + +.LBL_2_13: + + mulsd %xmm5, %xmm5 + movsd %xmm5, (%rsi) + ret + +.LBL_2_14: + + testl $1048575, -4(%rsp) + jne .LBL_2_13 + + + cmpl $0, -8(%rsp) + jne .LBL_2_13 + + + movq 1112+__dexp2_la__imldExp2HATab(%rip), %rdx + movq %rdx, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dexp2_cout_rare_internal,@function + .size __svml_dexp2_cout_rare_internal,.-__svml_dexp2_cout_rare_internal +..LN__svml_dexp2_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dexp2_data_internal_avx512: + .long 0 + .long 1072693248 + .long 1828292879 + .long 1072739672 + .long 1014845819 + .long 1072788152 + .long 1853186616 + .long 1072838778 + .long 171030293 + .long 1072891646 + .long 1276261410 + .long 1072946854 + .long 3577096743 + .long 1073004506 + .long 3712504873 + .long 1073064711 + .long 1719614413 + .long 1073127582 + .long 1944781191 + .long 1073193236 + .long 1110089947 + .long 1073261797 + .long 2191782032 + .long 1073333393 + .long 2572866477 + .long 1073408159 + .long 3716502172 + .long 1073486235 + .long 3707479175 + .long 1073567768 + .long 2728693978 + .long 1073652911 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4286862682 + .long 1070514109 + .long 4286862682 + .long 1070514109 + .long 4286862682 + .long 1070514109 + .long 4286862682 + .long 1070514109 + .long 4286862682 + .long 1070514109 + .long 4286862682 + .long 1070514109 + .long 4286862682 + .long 1070514109 + .long 4286862682 + .long 1070514109 + .long 3568142009 + .long 1068264200 + .long 3568142009 + .long 1068264200 + .long 3568142009 + .long 1068264200 + .long 3568142009 + .long 1068264200 + .long 3568142009 + .long 1068264200 + .long 3568142009 + .long 1068264200 + .long 3568142009 + .long 1068264200 + .long 3568142009 + .long 1068264200 + .long 454500946 + .long 1065595565 + .long 454500946 + .long 1065595565 + .long 454500946 + .long 1065595565 + .long 454500946 + .long 1065595565 + .long 454500946 + .long 1065595565 + .long 454500946 + .long 1065595565 + .long 454500946 + .long 1065595565 + .long 454500946 + .long 1065595565 + .long 655609113 + .long 1062590279 + .long 655609113 + .long 1062590279 + .long 655609113 + .long 1062590279 + .long 655609113 + .long 1062590279 + .long 655609113 + .long 1062590279 + .long 655609113 + .long 1062590279 + .long 655609113 + .long 1062590279 + .long 655609113 + .long 1062590279 + .long 4112922395 + .long 1059365335 + .long 4112922395 + .long 1059365335 + .long 4112922395 + .long 1059365335 + .long 4112922395 + .long 1059365335 + .long 4112922395 + .long 1059365335 + .long 4112922395 + .long 1059365335 + .long 4112922395 + .long 1059365335 + .long 4112922395 + .long 1059365335 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 1083174911 + .long 0 + .long 1083174911 + .long 0 + .long 1083174911 + .long 0 + .long 1083174911 + .long 0 + .long 1083174911 + .long 0 + .long 1083174911 + .long 0 + .long 1083174911 + .long 0 + .long 1083174911 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .type __svml_dexp2_data_internal_avx512,@object + .size __svml_dexp2_data_internal_avx512,768 + .align 32 +__dexp2_la__imldExp2HATab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1048019041 + .long 1072704666 + .long 2631457885 + .long 3161546771 + .long 3541402996 + .long 1072716208 + .long 896005651 + .long 1015861842 + .long 410360776 + .long 1072727877 + .long 1642514529 + .long 1012987726 + .long 1828292879 + .long 1072739672 + .long 1568897901 + .long 1016568486 + .long 852742562 + .long 1072751596 + .long 1882168529 + .long 1010744893 + .long 3490863953 + .long 1072763649 + .long 707771662 + .long 3163903570 + .long 2930322912 + .long 1072775834 + .long 3117806614 + .long 3163670819 + .long 1014845819 + .long 1072788152 + .long 3936719688 + .long 3162512149 + .long 3949972341 + .long 1072800603 + .long 1058231231 + .long 1015777676 + .long 828946858 + .long 1072813191 + .long 1044000608 + .long 1016786167 + .long 2288159958 + .long 1072825915 + .long 1151779725 + .long 1015705409 + .long 1853186616 + .long 1072838778 + .long 3819481236 + .long 1016499965 + .long 1709341917 + .long 1072851781 + .long 2552227826 + .long 1015039787 + .long 4112506593 + .long 1072864925 + .long 1829350193 + .long 1015216097 + .long 2799960843 + .long 1072878213 + .long 1913391796 + .long 1015756674 + .long 171030293 + .long 1072891646 + .long 1303423926 + .long 1015238005 + .long 2992903935 + .long 1072905224 + .long 1574172746 + .long 1016061241 + .long 926591435 + .long 1072918951 + .long 3427487848 + .long 3163704045 + .long 887463927 + .long 1072932827 + .long 1049900754 + .long 3161575912 + .long 1276261410 + .long 1072946854 + .long 2804567149 + .long 1015390024 + .long 569847338 + .long 1072961034 + .long 1209502043 + .long 3159926671 + .long 1617004845 + .long 1072975368 + .long 1623370769 + .long 1011049453 + .long 3049340112 + .long 1072989858 + .long 3667985273 + .long 1013894369 + .long 3577096743 + .long 1073004506 + .long 3145379760 + .long 1014403278 + .long 1990012071 + .long 1073019314 + .long 7447438 + .long 3163526196 + .long 1453150082 + .long 1073034283 + .long 3171891295 + .long 3162037958 + .long 917841882 + .long 1073049415 + .long 419288974 + .long 1016280325 + .long 3712504873 + .long 1073064711 + .long 3793507337 + .long 1016095713 + .long 363667784 + .long 1073080175 + .long 728023093 + .long 1016345318 + .long 2956612997 + .long 1073095806 + .long 1005538728 + .long 3163304901 + .long 2186617381 + .long 1073111608 + .long 2018924632 + .long 3163803357 + .long 1719614413 + .long 1073127582 + .long 3210617384 + .long 3163796463 + .long 1013258799 + .long 1073143730 + .long 3094194670 + .long 3160631279 + .long 3907805044 + .long 1073160053 + .long 2119843535 + .long 3161988964 + .long 1447192521 + .long 1073176555 + .long 508946058 + .long 3162904882 + .long 1944781191 + .long 1073193236 + .long 3108873501 + .long 3162190556 + .long 919555682 + .long 1073210099 + .long 2882956373 + .long 1013312481 + .long 2571947539 + .long 1073227145 + .long 4047189812 + .long 3163777462 + .long 2604962541 + .long 1073244377 + .long 3631372142 + .long 3163870288 + .long 1110089947 + .long 1073261797 + .long 3253791412 + .long 1015920431 + .long 2568320822 + .long 1073279406 + .long 1509121860 + .long 1014756995 + .long 2966275557 + .long 1073297207 + .long 2339118633 + .long 3160254904 + .long 2682146384 + .long 1073315202 + .long 586480042 + .long 3163702083 + .long 2191782032 + .long 1073333393 + .long 730975783 + .long 1014083580 + .long 2069751141 + .long 1073351782 + .long 576856675 + .long 3163014404 + .long 2990417245 + .long 1073370371 + .long 3552361237 + .long 3163667409 + .long 1434058175 + .long 1073389163 + .long 1853053619 + .long 1015310724 + .long 2572866477 + .long 1073408159 + .long 2462790535 + .long 1015814775 + .long 3092190715 + .long 1073427362 + .long 1457303226 + .long 3159737305 + .long 4076559943 + .long 1073446774 + .long 950899508 + .long 3160987380 + .long 2420883922 + .long 1073466398 + .long 174054861 + .long 1014300631 + .long 3716502172 + .long 1073486235 + .long 816778419 + .long 1014197934 + .long 777507147 + .long 1073506289 + .long 3507050924 + .long 1015341199 + .long 3706687593 + .long 1073526560 + .long 1821514088 + .long 1013410604 + .long 1242007932 + .long 1073547053 + .long 1073740399 + .long 3163532637 + .long 3707479175 + .long 1073567768 + .long 2789017511 + .long 1014276997 + .long 64696965 + .long 1073588710 + .long 3586233004 + .long 1015962192 + .long 863738719 + .long 1073609879 + .long 129252895 + .long 3162690849 + .long 3884662774 + .long 1073631278 + .long 1614448851 + .long 1014281732 + .long 2728693978 + .long 1073652911 + .long 2413007344 + .long 3163551506 + .long 3999357479 + .long 1073674779 + .long 1101668360 + .long 1015989180 + .long 1533953344 + .long 1073696886 + .long 835814894 + .long 1015702697 + .long 2174652632 + .long 1073719233 + .long 1301400989 + .long 1014466875 + .long 0 + .long 1121452032 + .long 4277811695 + .long 1072049730 + .long 4286751290 + .long 1070514109 + .long 3607585384 + .long 1068264200 + .long 871937163 + .long 1065595565 + .long 3302507530 + .long 1062590576 + .long 0 + .long 1083179008 + .long 0 + .long 3230658560 + .long 0 + .long 3230714880 + .long 1 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 1073741824 + .long 0 + .long 967835648 + .long 0 + .long 0 + .type __dexp2_la__imldExp2HATab,@object + .size __dexp2_la__imldExp2HATab,1152 diff --git a/numpy/core/src/umath/svml/svml_z0_exp2_s_la.s b/numpy/core/src/umath/svml/svml_z0_exp2_s_la.s new file mode 100644 index 000000000000..5ddd79383d45 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_exp2_s_la.s @@ -0,0 +1,494 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_exp2f16_z0_0: + + .align 16,0x90 + .globl __svml_exp2f16 + +__svml_exp2f16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 256+__svml_sexp2_data_internal_avx512(%rip), %zmm3 + +/* + * Reduced argument +*/ + vreduceps $65, {sae}, %zmm0, %zmm6 + vmovups 192+__svml_sexp2_data_internal_avx512(%rip), %zmm5 + vmovups 128+__svml_sexp2_data_internal_avx512(%rip), %zmm10 + vmovups 384+__svml_sexp2_data_internal_avx512(%rip), %zmm2 + vmovups 64+__svml_sexp2_data_internal_avx512(%rip), %zmm7 + +/* + * Integer form of K+0.b1b2b3b4 in lower bits - call K_plus_f0 + * Mantisssa of normalized single precision FP: 1.b1b2...b23 + */ + vaddps {rd-sae}, %zmm3, %zmm0, %zmm4 + vandps 320+__svml_sexp2_data_internal_avx512(%rip), %zmm0, %zmm1 + +/* c3*r + c2 */ + vfmadd231ps {rn-sae}, %zmm6, %zmm5, %zmm10 + vcmpps $30, {sae}, %zmm2, %zmm1, %k0 + +/* c3*r^2 + c2*r + c1 */ + vfmadd213ps {rn-sae}, %zmm7, %zmm6, %zmm10 + +/* Table value: 2^(0.b1b2b3b4) */ + vpermps __svml_sexp2_data_internal_avx512(%rip), %zmm4, %zmm9 + kmovw %k0, %edx + +/* T*r */ + vmulps {rn-sae}, %zmm6, %zmm9, %zmm8 + +/* T + (T*r*(c3*r^2 + c2*r + c1) */ + vfmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm10 + +/* Scaling placed at the end to avoid accuracy loss when T*r*scale underflows */ + vscalefps {rn-sae}, %zmm0, %zmm10, %zmm1 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm1, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_sexp2_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_exp2f16,@function + .size __svml_exp2f16,.-__svml_exp2f16 +..LN__svml_exp2f16.0: + +.L_2__routine_start___svml_sexp2_cout_rare_internal_1: + + .align 16,0x90 + +__svml_sexp2_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_10 + + + movss (%rdi), %xmm7 + movss .L_2il0floatpacket.43(%rip), %xmm0 + movl %eax, -12(%rsp) + comiss %xmm7, %xmm0 + jb .LBL_2_8 + + + comiss .L_2il0floatpacket.44(%rip), %xmm7 + jb .LBL_2_7 + + + movaps %xmm7, %xmm0 + movaps %xmm7, %xmm5 + movss %xmm0, -24(%rsp) + movss -24(%rsp), %xmm1 + movss .L_2il0floatpacket.46(%rip), %xmm2 + movss .L_2il0floatpacket.52(%rip), %xmm6 + addss %xmm2, %xmm1 + movss %xmm1, -20(%rsp) + movss -20(%rsp), %xmm3 + movswl -20(%rsp), %edx + subss %xmm2, %xmm3 + movss %xmm3, -24(%rsp) + movss -24(%rsp), %xmm4 + subss %xmm4, %xmm5 + mulss %xmm5, %xmm6 + addss .L_2il0floatpacket.51(%rip), %xmm6 + mulss %xmm5, %xmm6 + addss .L_2il0floatpacket.50(%rip), %xmm6 + mulss %xmm5, %xmm6 + addss .L_2il0floatpacket.49(%rip), %xmm6 + mulss %xmm5, %xmm6 + addss .L_2il0floatpacket.48(%rip), %xmm6 + mulss %xmm5, %xmm6 + addss .L_2il0floatpacket.47(%rip), %xmm6 + movss %xmm6, -16(%rsp) + cmpl $104, %edx + jl .LBL_2_6 + + + movzbl %dl, %edx + shll $7, %edx + movw %dx, -10(%rsp) + movss -16(%rsp), %xmm0 + mulss -12(%rsp), %xmm0 + movss %xmm0, -16(%rsp) + movss -16(%rsp), %xmm1 + mulss .L_2il0floatpacket.54(%rip), %xmm1 + movss %xmm1, -16(%rsp) + movl -16(%rsp), %ecx + movl %ecx, (%rsi) + ret + +.LBL_2_6: + + addl $-106, %edx + cmpltss .L_2il0floatpacket.56(%rip), %xmm7 + movzbl %dl, %edx + movzwl -10(%rsp), %eax + shll $7, %edx + andl $-32641, %eax + orl %edx, %eax + movss -16(%rsp), %xmm0 + movw %ax, -10(%rsp) + mulss -12(%rsp), %xmm0 + movd %xmm7, %eax + movss %xmm0, -16(%rsp) + movss -16(%rsp), %xmm1 + andl $4, %eax + mulss .L_2il0floatpacket.55(%rip), %xmm1 + movss %xmm1, -16(%rsp) + movl -16(%rsp), %ecx + movl %ecx, (%rsi) + ret + +.LBL_2_7: + + movss .L_2il0floatpacket.53(%rip), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, -16(%rsp) + movl -16(%rsp), %eax + movl %eax, (%rsi) + movl $4, %eax + ret + +.LBL_2_8: + + movss .L_2il0floatpacket.45(%rip), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, -16(%rsp) + movl -16(%rsp), %eax + movl %eax, (%rsi) + movl $3, %eax + + + ret + +.LBL_2_10: + + movb 3(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_12 + +.LBL_2_11: + + movss (%rdi), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_12: + + testl $8388607, (%rdi) + jne .LBL_2_11 + + + movl %eax, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_sexp2_cout_rare_internal,@function + .size __svml_sexp2_cout_rare_internal,.-__svml_sexp2_cout_rare_internal +..LN__svml_sexp2_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_sexp2_data_internal_avx512: + .long 1065353216 + .long 1065724611 + .long 1066112450 + .long 1066517459 + .long 1066940400 + .long 1067382066 + .long 1067843287 + .long 1068324927 + .long 1068827891 + .long 1069353124 + .long 1069901610 + .long 1070474380 + .long 1071072509 + .long 1071697119 + .long 1072349383 + .long 1073030525 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1047916907 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1030247626 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 1228931072 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .long 1123811328 + .type __svml_sexp2_data_internal_avx512,@object + .size __svml_sexp2_data_internal_avx512,448 + .align 4 +.L_2il0floatpacket.43: + .long 0x43000000 + .type .L_2il0floatpacket.43,@object + .size .L_2il0floatpacket.43,4 + .align 4 +.L_2il0floatpacket.44: + .long 0xc3160000 + .type .L_2il0floatpacket.44,@object + .size .L_2il0floatpacket.44,4 + .align 4 +.L_2il0floatpacket.45: + .long 0x7f7fffff + .type .L_2il0floatpacket.45,@object + .size .L_2il0floatpacket.45,4 + .align 4 +.L_2il0floatpacket.46: + .long 0x4b400000 + .type .L_2il0floatpacket.46,@object + .size .L_2il0floatpacket.46,4 + .align 4 +.L_2il0floatpacket.47: + .long 0x3f800001 + .type .L_2il0floatpacket.47,@object + .size .L_2il0floatpacket.47,4 + .align 4 +.L_2il0floatpacket.48: + .long 0x3f317219 + .type .L_2il0floatpacket.48,@object + .size .L_2il0floatpacket.48,4 + .align 4 +.L_2il0floatpacket.49: + .long 0x3e75fc83 + .type .L_2il0floatpacket.49,@object + .size .L_2il0floatpacket.49,4 + .align 4 +.L_2il0floatpacket.50: + .long 0x3d635716 + .type .L_2il0floatpacket.50,@object + .size .L_2il0floatpacket.50,4 + .align 4 +.L_2il0floatpacket.51: + .long 0x3c1e883d + .type .L_2il0floatpacket.51,@object + .size .L_2il0floatpacket.51,4 + .align 4 +.L_2il0floatpacket.52: + .long 0x3aafc483 + .type .L_2il0floatpacket.52,@object + .size .L_2il0floatpacket.52,4 + .align 4 +.L_2il0floatpacket.53: + .long 0x00000001 + .type .L_2il0floatpacket.53,@object + .size .L_2il0floatpacket.53,4 + .align 4 +.L_2il0floatpacket.54: + .long 0x7f000000 + .type .L_2il0floatpacket.54,@object + .size .L_2il0floatpacket.54,4 + .align 4 +.L_2il0floatpacket.55: + .long 0x34000000 + .type .L_2il0floatpacket.55,@object + .size .L_2il0floatpacket.55,4 + .align 4 +.L_2il0floatpacket.56: + .long 0xc2fc0000 + .type .L_2il0floatpacket.56,@object + .size .L_2il0floatpacket.56,4 diff --git a/numpy/core/src/umath/svml/svml_z0_exp_d_la.s b/numpy/core/src/umath/svml/svml_z0_exp_d_la.s new file mode 100644 index 000000000000..87aee92c6a71 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_exp_d_la.s @@ -0,0 +1,1074 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * Argument representation: + * N = rint(X*2^k/ln2) = 2^k*M+j + * X = N*ln2/2^k + r = M*ln2 + ln2*(j/2^k) + r + * then -ln2/2^(k+1) < r < ln2/2^(k+1) + * Alternatively: + * N = trunc(X*2^k/ln2) + * then 0 < r < ln2/2^k + * + * Result calculation: + * exp(X) = exp(M*ln2 + ln2*(j/2^k) + r) + * = 2^M * 2^(j/2^k) * exp(r) + * 2^M is calculated by bit manipulation + * 2^(j/2^k) is stored in table + * exp(r) is approximated by polynomial + * + * The table lookup is skipped if k = 0. + * + */ + + + .text +.L_2__routine_start___svml_exp8_z0_0: + + .align 16,0x90 + .globl __svml_exp8 + +__svml_exp8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 256+__svml_dexp_data_internal_avx512(%rip), %zmm3 + vmovups 320+__svml_dexp_data_internal_avx512(%rip), %zmm1 + vmovups 384+__svml_dexp_data_internal_avx512(%rip), %zmm4 + vmovups 448+__svml_dexp_data_internal_avx512(%rip), %zmm2 + vmovups 576+__svml_dexp_data_internal_avx512(%rip), %zmm5 + vmovups 640+__svml_dexp_data_internal_avx512(%rip), %zmm15 + +/* 2^(52-4)*1.5 + x * log2(e) in round-to-zero mode */ + vfmadd213pd {rz-sae}, %zmm1, %zmm0, %zmm3 + vmovups 704+__svml_dexp_data_internal_avx512(%rip), %zmm6 + +/* p34 = c4*r+c3 */ + vmovups 768+__svml_dexp_data_internal_avx512(%rip), %zmm9 + vmovups 832+__svml_dexp_data_internal_avx512(%rip), %zmm11 + vmovups 1024+__svml_dexp_data_internal_avx512(%rip), %zmm13 + +/* Table lookup: Th = 2^(j/2^k) */ + vmovups __svml_dexp_data_internal_avx512(%rip), %zmm14 + +/* N ~ x*log2(e), round-to-zero to 4 fractional bits */ + vsubpd {rn-sae}, %zmm1, %zmm3, %zmm1 + +/* remove sign of x by "and" operation */ + vandpd 960+__svml_dexp_data_internal_avx512(%rip), %zmm0, %zmm12 + vpermt2pd 64+__svml_dexp_data_internal_avx512(%rip), %zmm3, %zmm14 + +/* R = x - N*ln(2)_high */ + vfnmadd213pd {rn-sae}, %zmm0, %zmm1, %zmm4 + +/* compare against threshold */ + vcmppd $29, {sae}, %zmm13, %zmm12, %k0 + +/* R = R - N*ln(2)_high = x - N*ln(2) */ + vfnmadd231pd {rn-sae}, %zmm1, %zmm2, %zmm4 + +/* set mask for overflow/underflow */ + kmovw %k0, %edx + +/* ensure |R|<2 even for special cases */ + vandpd 512+__svml_dexp_data_internal_avx512(%rip), %zmm4, %zmm7 + +/* r2 = r*r */ + vmulpd {rn-sae}, %zmm7, %zmm7, %zmm8 + +/* p56 = c6*r+c5 */ + vfmadd231pd {rn-sae}, %zmm7, %zmm5, %zmm15 + vfmadd231pd {rn-sae}, %zmm7, %zmm6, %zmm9 + +/* r3 = r2*r = r^3 */ + vmulpd {rn-sae}, %zmm7, %zmm8, %zmm10 + +/* p12 = c2*r2+r */ + vfmadd213pd {rn-sae}, %zmm7, %zmm8, %zmm11 + +/* p36 = (c6*r+c5)*r^2+c4*r+c3 */ + vfmadd213pd {rn-sae}, %zmm9, %zmm8, %zmm15 + +/* p16 = ((c6*r+c5)*r^2+c4*r+c3)*r^3+c2*r^2+r = exp(r)-1 */ + vfmadd213pd {rn-sae}, %zmm11, %zmm10, %zmm15 + +/* Th*(exp(r)-1)+Th=Th*exp(r) */ + vfmadd213pd {rn-sae}, %zmm14, %zmm14, %zmm15 + +/* exp(x) = 2^M*Th*exp(r) */ + vscalefpd {rn-sae}, %zmm1, %zmm15, %zmm1 + + + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm1, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dexp_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_exp8,@function + .size __svml_exp8,.-__svml_exp8 +..LN__svml_exp8.0: + +.L_2__routine_start___svml_dexp_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dexp_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 6(%rdi), %edx + andl $32752, %edx + shrl $4, %edx + movsd (%rdi), %xmm6 + movsd %xmm6, -8(%rsp) + cmpl $2047, %edx + je .LBL_2_17 + + + cmpl $970, %edx + jle .LBL_2_15 + + + movsd 1080+_imldExpHATab(%rip), %xmm0 + comisd %xmm6, %xmm0 + jb .LBL_2_14 + + + comisd 1096+_imldExpHATab(%rip), %xmm6 + jb .LBL_2_13 + + + movsd 1024+_imldExpHATab(%rip), %xmm0 + movaps %xmm6, %xmm5 + mulsd %xmm6, %xmm0 + lea _imldExpHATab(%rip), %r10 + movsd %xmm0, -24(%rsp) + movsd -24(%rsp), %xmm1 + movq 1136+_imldExpHATab(%rip), %rdx + movq %rdx, -8(%rsp) + addsd 1032+_imldExpHATab(%rip), %xmm1 + movsd %xmm1, -16(%rsp) + movsd -16(%rsp), %xmm2 + movl -16(%rsp), %r8d + movl %r8d, %ecx + andl $63, %r8d + subsd 1032+_imldExpHATab(%rip), %xmm2 + movsd %xmm2, -24(%rsp) + lea 1(%r8,%r8), %r9d + movsd -24(%rsp), %xmm3 + lea (%r8,%r8), %edi + mulsd 1104+_imldExpHATab(%rip), %xmm3 + movsd -24(%rsp), %xmm4 + subsd %xmm3, %xmm5 + mulsd 1112+_imldExpHATab(%rip), %xmm4 + movsd 1072+_imldExpHATab(%rip), %xmm2 + subsd %xmm4, %xmm5 + mulsd %xmm5, %xmm2 + shrl $6, %ecx + addsd 1064+_imldExpHATab(%rip), %xmm2 + comisd 1088+_imldExpHATab(%rip), %xmm6 + mulsd %xmm5, %xmm2 + movsd (%r10,%rdi,8), %xmm0 + lea 1023(%rcx), %edx + addsd 1056+_imldExpHATab(%rip), %xmm2 + mulsd %xmm5, %xmm2 + addsd 1048+_imldExpHATab(%rip), %xmm2 + mulsd %xmm5, %xmm2 + addsd 1040+_imldExpHATab(%rip), %xmm2 + mulsd %xmm5, %xmm2 + mulsd %xmm5, %xmm2 + addsd %xmm5, %xmm2 + addsd (%r10,%r9,8), %xmm2 + mulsd %xmm0, %xmm2 + jb .LBL_2_9 + + + andl $2047, %edx + addsd %xmm0, %xmm2 + cmpl $2046, %edx + ja .LBL_2_8 + + + movq 1136+_imldExpHATab(%rip), %rcx + shrq $48, %rcx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm0, %xmm2 + movsd %xmm2, (%rsi) + ret + +.LBL_2_8: + + decl %edx + andl $2047, %edx + movzwl -2(%rsp), %ecx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm0, %xmm2 + mulsd 1152+_imldExpHATab(%rip), %xmm2 + movsd %xmm2, (%rsi) + ret + +.LBL_2_9: + + addl $1083, %ecx + andl $2047, %ecx + movl %ecx, %eax + movzwl -2(%rsp), %edx + shll $4, %eax + andl $-32753, %edx + orl %eax, %edx + movw %dx, -2(%rsp) + movsd -8(%rsp), %xmm1 + mulsd %xmm1, %xmm2 + mulsd %xmm0, %xmm1 + movaps %xmm1, %xmm0 + addsd %xmm2, %xmm0 + cmpl $50, %ecx + ja .LBL_2_11 + + + mulsd 1160+_imldExpHATab(%rip), %xmm0 + movsd %xmm0, (%rsi) + jmp .LBL_2_12 + +.LBL_2_11: + + movsd %xmm0, -72(%rsp) + movsd -72(%rsp), %xmm0 + subsd %xmm0, %xmm1 + movsd %xmm1, -64(%rsp) + movsd -64(%rsp), %xmm1 + addsd %xmm2, %xmm1 + movsd %xmm1, -64(%rsp) + movsd -72(%rsp), %xmm2 + mulsd 1168+_imldExpHATab(%rip), %xmm2 + movsd %xmm2, -56(%rsp) + movsd -72(%rsp), %xmm4 + movsd -56(%rsp), %xmm3 + addsd %xmm3, %xmm4 + movsd %xmm4, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm5 + subsd %xmm5, %xmm6 + movsd %xmm6, -40(%rsp) + movsd -72(%rsp), %xmm8 + movsd -40(%rsp), %xmm7 + subsd %xmm7, %xmm8 + movsd %xmm8, -32(%rsp) + movsd -64(%rsp), %xmm10 + movsd -32(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -32(%rsp) + movsd -40(%rsp), %xmm11 + mulsd 1160+_imldExpHATab(%rip), %xmm11 + movsd %xmm11, -40(%rsp) + movsd -32(%rsp), %xmm12 + mulsd 1160+_imldExpHATab(%rip), %xmm12 + movsd %xmm12, -32(%rsp) + movsd -40(%rsp), %xmm14 + movsd -32(%rsp), %xmm13 + addsd %xmm13, %xmm14 + movsd %xmm14, (%rsi) + +.LBL_2_12: + + movl $4, %eax + ret + +.LBL_2_13: + + movsd 1120+_imldExpHATab(%rip), %xmm0 + movl $4, %eax + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_14: + + movsd 1128+_imldExpHATab(%rip), %xmm0 + movl $3, %eax + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_15: + + movsd 1144+_imldExpHATab(%rip), %xmm0 + addsd %xmm6, %xmm0 + movsd %xmm0, (%rsi) + + + ret + +.LBL_2_17: + + movb -1(%rsp), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_19 + +.LBL_2_18: + + mulsd %xmm6, %xmm6 + movsd %xmm6, (%rsi) + ret + +.LBL_2_19: + + testl $1048575, -4(%rsp) + jne .LBL_2_18 + + + cmpl $0, -8(%rsp) + jne .LBL_2_18 + + + movq 1136+_imldExpHATab(%rip), %rdx + movq %rdx, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dexp_cout_rare_internal,@function + .size __svml_dexp_cout_rare_internal,.-__svml_dexp_cout_rare_internal +..LN__svml_dexp_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dexp_data_internal_avx512: + .long 0 + .long 1072693248 + .long 1828292879 + .long 1072739672 + .long 1014845819 + .long 1072788152 + .long 1853186616 + .long 1072838778 + .long 171030293 + .long 1072891646 + .long 1276261410 + .long 1072946854 + .long 3577096743 + .long 1073004506 + .long 3712504873 + .long 1073064711 + .long 1719614413 + .long 1073127582 + .long 1944781191 + .long 1073193236 + .long 1110089947 + .long 1073261797 + .long 2191782032 + .long 1073333393 + .long 2572866477 + .long 1073408159 + .long 3716502172 + .long 1073486235 + .long 3707479175 + .long 1073567768 + .long 2728693978 + .long 1073652911 + .long 0 + .long 0 + .long 1568897901 + .long 1016568486 + .long 3936719688 + .long 3162512149 + .long 3819481236 + .long 1016499965 + .long 1303423926 + .long 1015238005 + .long 2804567149 + .long 1015390024 + .long 3145379760 + .long 1014403278 + .long 3793507337 + .long 1016095713 + .long 3210617384 + .long 3163796463 + .long 3108873501 + .long 3162190556 + .long 3253791412 + .long 1015920431 + .long 730975783 + .long 1014083580 + .long 2462790535 + .long 1015814775 + .long 816778419 + .long 1014197934 + .long 2789017511 + .long 1014276997 + .long 2413007344 + .long 3163551506 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4010615101 + .long 1062678197 + .long 4010615101 + .long 1062678197 + .long 4010615101 + .long 1062678197 + .long 4010615101 + .long 1062678197 + .long 4010615101 + .long 1062678197 + .long 4010615101 + .long 1062678197 + .long 4010615101 + .long 1062678197 + .long 4010615101 + .long 1062678197 + .long 64584704 + .long 1065422950 + .long 64584704 + .long 1065422950 + .long 64584704 + .long 1065422950 + .long 64584704 + .long 1065422950 + .long 64584704 + .long 1065422950 + .long 64584704 + .long 1065422950 + .long 64584704 + .long 1065422950 + .long 64584704 + .long 1065422950 + .long 1270150640 + .long 1067799894 + .long 1270150640 + .long 1067799894 + .long 1270150640 + .long 1067799894 + .long 1270150640 + .long 1067799894 + .long 1270150640 + .long 1067799894 + .long 1270150640 + .long 1067799894 + .long 1270150640 + .long 1067799894 + .long 1270150640 + .long 1067799894 + .long 1421150370 + .long 1069897045 + .long 1421150370 + .long 1069897045 + .long 1421150370 + .long 1069897045 + .long 1421150370 + .long 1069897045 + .long 1421150370 + .long 1069897045 + .long 1421150370 + .long 1069897045 + .long 1421150370 + .long 1069897045 + .long 1421150370 + .long 1069897045 + .long 9762 + .long 1071644672 + .long 9762 + .long 1071644672 + .long 9762 + .long 1071644672 + .long 9762 + .long 1071644672 + .long 9762 + .long 1071644672 + .long 9762 + .long 1071644672 + .long 9762 + .long 1071644672 + .long 9762 + .long 1071644672 + .long 4294967152 + .long 1072693247 + .long 4294967152 + .long 1072693247 + .long 4294967152 + .long 1072693247 + .long 4294967152 + .long 1072693247 + .long 4294967152 + .long 1072693247 + .long 4294967152 + .long 1072693247 + .long 4294967152 + .long 1072693247 + .long 4294967152 + .long 1072693247 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 0 + .long 1005584384 + .long 0 + .long 1005584384 + .long 0 + .long 1005584384 + .long 0 + .long 1005584384 + .long 0 + .long 1005584384 + .long 0 + .long 1005584384 + .long 0 + .long 1005584384 + .long 0 + .long 1005584384 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 32752 + .long 0 + .long 32752 + .long 0 + .long 32752 + .long 0 + .long 32752 + .long 0 + .long 32752 + .long 0 + .long 32752 + .long 0 + .long 32752 + .long 0 + .long 32752 + .long 0 + .type __svml_dexp_data_internal_avx512,@object + .size __svml_dexp_data_internal_avx512,1280 + .align 32 +_imldExpHATab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1048019041 + .long 1072704666 + .long 2631457885 + .long 3161546771 + .long 3541402996 + .long 1072716208 + .long 896005651 + .long 1015861842 + .long 410360776 + .long 1072727877 + .long 1642514529 + .long 1012987726 + .long 1828292879 + .long 1072739672 + .long 1568897901 + .long 1016568486 + .long 852742562 + .long 1072751596 + .long 1882168529 + .long 1010744893 + .long 3490863953 + .long 1072763649 + .long 707771662 + .long 3163903570 + .long 2930322912 + .long 1072775834 + .long 3117806614 + .long 3163670819 + .long 1014845819 + .long 1072788152 + .long 3936719688 + .long 3162512149 + .long 3949972341 + .long 1072800603 + .long 1058231231 + .long 1015777676 + .long 828946858 + .long 1072813191 + .long 1044000608 + .long 1016786167 + .long 2288159958 + .long 1072825915 + .long 1151779725 + .long 1015705409 + .long 1853186616 + .long 1072838778 + .long 3819481236 + .long 1016499965 + .long 1709341917 + .long 1072851781 + .long 2552227826 + .long 1015039787 + .long 4112506593 + .long 1072864925 + .long 1829350193 + .long 1015216097 + .long 2799960843 + .long 1072878213 + .long 1913391796 + .long 1015756674 + .long 171030293 + .long 1072891646 + .long 1303423926 + .long 1015238005 + .long 2992903935 + .long 1072905224 + .long 1574172746 + .long 1016061241 + .long 926591435 + .long 1072918951 + .long 3427487848 + .long 3163704045 + .long 887463927 + .long 1072932827 + .long 1049900754 + .long 3161575912 + .long 1276261410 + .long 1072946854 + .long 2804567149 + .long 1015390024 + .long 569847338 + .long 1072961034 + .long 1209502043 + .long 3159926671 + .long 1617004845 + .long 1072975368 + .long 1623370769 + .long 1011049453 + .long 3049340112 + .long 1072989858 + .long 3667985273 + .long 1013894369 + .long 3577096743 + .long 1073004506 + .long 3145379760 + .long 1014403278 + .long 1990012071 + .long 1073019314 + .long 7447438 + .long 3163526196 + .long 1453150082 + .long 1073034283 + .long 3171891295 + .long 3162037958 + .long 917841882 + .long 1073049415 + .long 419288974 + .long 1016280325 + .long 3712504873 + .long 1073064711 + .long 3793507337 + .long 1016095713 + .long 363667784 + .long 1073080175 + .long 728023093 + .long 1016345318 + .long 2956612997 + .long 1073095806 + .long 1005538728 + .long 3163304901 + .long 2186617381 + .long 1073111608 + .long 2018924632 + .long 3163803357 + .long 1719614413 + .long 1073127582 + .long 3210617384 + .long 3163796463 + .long 1013258799 + .long 1073143730 + .long 3094194670 + .long 3160631279 + .long 3907805044 + .long 1073160053 + .long 2119843535 + .long 3161988964 + .long 1447192521 + .long 1073176555 + .long 508946058 + .long 3162904882 + .long 1944781191 + .long 1073193236 + .long 3108873501 + .long 3162190556 + .long 919555682 + .long 1073210099 + .long 2882956373 + .long 1013312481 + .long 2571947539 + .long 1073227145 + .long 4047189812 + .long 3163777462 + .long 2604962541 + .long 1073244377 + .long 3631372142 + .long 3163870288 + .long 1110089947 + .long 1073261797 + .long 3253791412 + .long 1015920431 + .long 2568320822 + .long 1073279406 + .long 1509121860 + .long 1014756995 + .long 2966275557 + .long 1073297207 + .long 2339118633 + .long 3160254904 + .long 2682146384 + .long 1073315202 + .long 586480042 + .long 3163702083 + .long 2191782032 + .long 1073333393 + .long 730975783 + .long 1014083580 + .long 2069751141 + .long 1073351782 + .long 576856675 + .long 3163014404 + .long 2990417245 + .long 1073370371 + .long 3552361237 + .long 3163667409 + .long 1434058175 + .long 1073389163 + .long 1853053619 + .long 1015310724 + .long 2572866477 + .long 1073408159 + .long 2462790535 + .long 1015814775 + .long 3092190715 + .long 1073427362 + .long 1457303226 + .long 3159737305 + .long 4076559943 + .long 1073446774 + .long 950899508 + .long 3160987380 + .long 2420883922 + .long 1073466398 + .long 174054861 + .long 1014300631 + .long 3716502172 + .long 1073486235 + .long 816778419 + .long 1014197934 + .long 777507147 + .long 1073506289 + .long 3507050924 + .long 1015341199 + .long 3706687593 + .long 1073526560 + .long 1821514088 + .long 1013410604 + .long 1242007932 + .long 1073547053 + .long 1073740399 + .long 3163532637 + .long 3707479175 + .long 1073567768 + .long 2789017511 + .long 1014276997 + .long 64696965 + .long 1073588710 + .long 3586233004 + .long 1015962192 + .long 863738719 + .long 1073609879 + .long 129252895 + .long 3162690849 + .long 3884662774 + .long 1073631278 + .long 1614448851 + .long 1014281732 + .long 2728693978 + .long 1073652911 + .long 2413007344 + .long 3163551506 + .long 3999357479 + .long 1073674779 + .long 1101668360 + .long 1015989180 + .long 1533953344 + .long 1073696886 + .long 835814894 + .long 1015702697 + .long 2174652632 + .long 1073719233 + .long 1301400989 + .long 1014466875 + .long 1697350398 + .long 1079448903 + .long 0 + .long 1127743488 + .long 0 + .long 1071644672 + .long 1431652600 + .long 1069897045 + .long 1431670732 + .long 1067799893 + .long 984555731 + .long 1065423122 + .long 472530941 + .long 1062650218 + .long 4277811695 + .long 1082535490 + .long 3715808466 + .long 3230016299 + .long 3576508497 + .long 3230091536 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 1 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 1073741824 + .long 0 + .long 1009778688 + .long 0 + .long 1106771968 + .type _imldExpHATab,@object + .size _imldExpHATab,1176 diff --git a/numpy/core/src/umath/svml/svml_z0_exp_s_la.s b/numpy/core/src/umath/svml/svml_z0_exp_s_la.s new file mode 100644 index 000000000000..4c0e972ef283 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_exp_s_la.s @@ -0,0 +1,772 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * Argument representation: + * M = rint(X*2^k/ln2) = 2^k*N+j + * X = M*ln2/2^k + r = N*ln2 + ln2*(j/2^k) + r + * then -ln2/2^(k+1) < r < ln2/2^(k+1) + * Alternatively: + * M = trunc(X*2^k/ln2) + * then 0 < r < ln2/2^k + * + * Result calculation: + * exp(X) = exp(N*ln2 + ln2*(j/2^k) + r) + * = 2^N * 2^(j/2^k) * exp(r) + * 2^N is calculated by bit manipulation + * 2^(j/2^k) is computed from table lookup + * exp(r) is approximated by polynomial + * + * The table lookup is skipped if k = 0. + * For low accuracy approximation, exp(r) ~ 1 or 1+r. + * + */ + + + .text +.L_2__routine_start___svml_expf16_z0_0: + + .align 16,0x90 + .globl __svml_expf16 + +__svml_expf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 256+__svml_sexp_data_internal_avx512(%rip), %zmm2 + vmovups 320+__svml_sexp_data_internal_avx512(%rip), %zmm1 + +/* x!=0? */ + vmovups 896+__svml_sexp_data_internal_avx512(%rip), %zmm7 + vmovups 384+__svml_sexp_data_internal_avx512(%rip), %zmm5 + +/* Table lookup: Tl, Tl = 2^(j/2^10), j = 0,...,2^5-1 */ + vmovups __svml_sexp_data_internal_avx512(%rip), %zmm8 + +/* Table lookup: Th, Th = 2^(j/2^5), j = 0,...,2^5-1 */ + vmovups 128+__svml_sexp_data_internal_avx512(%rip), %zmm12 + +/* 2^(52-4)*1.5 + x * log2(e) in round-to-zero mode */ + vfmadd213ps {rz-sae}, %zmm1, %zmm0, %zmm2 + vmovups 448+__svml_sexp_data_internal_avx512(%rip), %zmm4 + vmovups 640+__svml_sexp_data_internal_avx512(%rip), %zmm10 + +/* ensure |R|<2 even for special cases */ + vmovups 512+__svml_sexp_data_internal_avx512(%rip), %zmm6 + vcmpps $4, {sae}, %zmm7, %zmm0, %k1 + +/* Adjust index by right shift for 5 bits */ + vpsrld $5, %zmm2, %zmm3 + +/* N ~ x*log2(e), round-to-zero to 10 fractional bits */ + vsubps {rn-sae}, %zmm1, %zmm2, %zmm13 + vpermt2ps 64+__svml_sexp_data_internal_avx512(%rip), %zmm2, %zmm8 + vpermt2ps 192+__svml_sexp_data_internal_avx512(%rip), %zmm3, %zmm12 + +/* remove sign of x by "and" operation */ + vandps 576+__svml_sexp_data_internal_avx512(%rip), %zmm0, %zmm9 + +/* R = x - N*ln(2)_high */ + vfnmadd213ps {rn-sae}, %zmm0, %zmm13, %zmm5 + +/* Th*Tl ~ 2^(j/2^k) */ + vmulps {rn-sae}, %zmm8, %zmm12, %zmm12{%k1} + +/* compare against threshold */ + vcmpps $29, {sae}, %zmm10, %zmm9, %k0 + +/* R = R - N*ln(2)_low = x - N*ln(2) */ + vfnmadd231ps {rn-sae}, %zmm13, %zmm4, %zmm5 + +/* set mask for overflow/underflow */ + kmovw %k0, %edx + vrangeps $2, {sae}, %zmm6, %zmm5, %zmm11 + +/* 2^(j/2^k)*(r+1) */ + vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm12 + +/* exp(x) = 2^N*2^(j/2^k)*(r+1) */ + vscalefps {rn-sae}, %zmm13, %zmm12, %zmm1 + +/* + * Check general callout condition + * Check VML specific mode related condition, + * no check in case of other libraries + * Above HA/LA/EP sequences produce + * correct results even without going to callout. + * Callout was only needed to raise flags + * and set errno. If caller doesn't need that + * then it is safe to proceed without callout + */ + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm1, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_sexp_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_expf16,@function + .size __svml_expf16,.-__svml_expf16 +..LN__svml_expf16.0: + +.L_2__routine_start___svml_sexp_cout_rare_internal_1: + + .align 16,0x90 + +__svml_sexp_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_12 + + + movss (%rdi), %xmm9 + movss .L_2il0floatpacket.52(%rip), %xmm0 + movl %eax, -12(%rsp) + comiss %xmm9, %xmm0 + jb .LBL_2_10 + + + comiss .L_2il0floatpacket.53(%rip), %xmm9 + jb .LBL_2_9 + + + movss .L_2il0floatpacket.55(%rip), %xmm0 + movaps %xmm9, %xmm6 + mulss %xmm9, %xmm0 + comiss .L_2il0floatpacket.64(%rip), %xmm9 + movss %xmm0, -24(%rsp) + movss -24(%rsp), %xmm1 + movss .L_2il0floatpacket.56(%rip), %xmm2 + movss .L_2il0floatpacket.63(%rip), %xmm7 + addss %xmm2, %xmm1 + movss %xmm1, -20(%rsp) + movss -20(%rsp), %xmm3 + movss .L_2il0floatpacket.59(%rip), %xmm8 + subss %xmm2, %xmm3 + movss %xmm3, -24(%rsp) + movss -24(%rsp), %xmm4 + mulss .L_2il0floatpacket.57(%rip), %xmm4 + movss -24(%rsp), %xmm5 + subss %xmm4, %xmm6 + mulss .L_2il0floatpacket.58(%rip), %xmm5 + movswl -20(%rsp), %ecx + subss %xmm5, %xmm6 + mulss %xmm6, %xmm7 + addss .L_2il0floatpacket.62(%rip), %xmm7 + mulss %xmm6, %xmm7 + addss .L_2il0floatpacket.61(%rip), %xmm7 + mulss %xmm6, %xmm7 + addss .L_2il0floatpacket.60(%rip), %xmm7 + mulss %xmm6, %xmm7 + addss %xmm8, %xmm7 + mulss %xmm6, %xmm7 + addss %xmm7, %xmm8 + movss %xmm8, -16(%rsp) + jb .LBL_2_8 + + + lea 127(%rcx), %edx + cmpl $254, %edx + ja .LBL_2_7 + + + movzbl %dl, %edx + shll $7, %edx + movw %dx, -10(%rsp) + movss -16(%rsp), %xmm0 + mulss -12(%rsp), %xmm0 + movss %xmm0, -16(%rsp) + movl -16(%rsp), %ecx + movl %ecx, (%rsi) + ret + +.LBL_2_7: + + addl $126, %ecx + movzbl %cl, %ecx + movzwl -10(%rsp), %edx + shll $7, %ecx + andl $-32641, %edx + orl %ecx, %edx + movss -16(%rsp), %xmm0 + movw %dx, -10(%rsp) + mulss -12(%rsp), %xmm0 + movss %xmm0, -16(%rsp) + movss -16(%rsp), %xmm1 + mulss .L_2il0floatpacket.67(%rip), %xmm1 + movss %xmm1, -16(%rsp) + movl -16(%rsp), %edi + movl %edi, (%rsi) + ret + +.LBL_2_8: + + addl $-69, %ecx + movzbl %cl, %ecx + movzwl -10(%rsp), %eax + shll $7, %ecx + andl $-32641, %eax + orl %ecx, %eax + movss -16(%rsp), %xmm0 + movw %ax, -10(%rsp) + movl $4, %eax + mulss -12(%rsp), %xmm0 + movss %xmm0, -16(%rsp) + movss -16(%rsp), %xmm1 + mulss .L_2il0floatpacket.66(%rip), %xmm1 + movss %xmm1, -16(%rsp) + movl -16(%rsp), %edx + movl %edx, (%rsi) + ret + +.LBL_2_9: + + movss .L_2il0floatpacket.65(%rip), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, -16(%rsp) + movl -16(%rsp), %eax + movl %eax, (%rsi) + movl $4, %eax + ret + +.LBL_2_10: + + movss .L_2il0floatpacket.54(%rip), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, -16(%rsp) + movl -16(%rsp), %eax + movl %eax, (%rsi) + movl $3, %eax + + + ret + +.LBL_2_12: + + movb 3(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_14 + +.LBL_2_13: + + movss (%rdi), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_14: + + testl $8388607, (%rdi) + jne .LBL_2_13 + + + movl %eax, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_sexp_cout_rare_internal,@function + .size __svml_sexp_cout_rare_internal,.-__svml_sexp_cout_rare_internal +..LN__svml_sexp_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_sexp_data_internal_avx512: + .long 1065353217 + .long 1065358897 + .long 1065364581 + .long 1065370269 + .long 1065375961 + .long 1065381656 + .long 1065387356 + .long 1065393059 + .long 1065398766 + .long 1065404477 + .long 1065410192 + .long 1065415911 + .long 1065421634 + .long 1065427360 + .long 1065433091 + .long 1065438825 + .long 1065444563 + .long 1065450305 + .long 1065456051 + .long 1065461801 + .long 1065467554 + .long 1065473312 + .long 1065479074 + .long 1065484839 + .long 1065490608 + .long 1065496381 + .long 1065502159 + .long 1065507940 + .long 1065513725 + .long 1065519513 + .long 1065525306 + .long 1065531103 + .long 1065353216 + .long 1065536903 + .long 1065724611 + .long 1065916431 + .long 1066112450 + .long 1066312762 + .long 1066517459 + .long 1066726640 + .long 1066940400 + .long 1067158842 + .long 1067382066 + .long 1067610179 + .long 1067843287 + .long 1068081499 + .long 1068324927 + .long 1068573686 + .long 1068827891 + .long 1069087663 + .long 1069353124 + .long 1069624397 + .long 1069901610 + .long 1070184894 + .long 1070474380 + .long 1070770206 + .long 1071072509 + .long 1071381432 + .long 1071697119 + .long 1072019719 + .long 1072349383 + .long 1072686266 + .long 1073030525 + .long 1073382323 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1178599424 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 3968 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 849703008 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .type __svml_sexp_data_internal_avx512,@object + .size __svml_sexp_data_internal_avx512,1216 + .align 4 +.L_2il0floatpacket.52: + .long 0x42b17217 + .type .L_2il0floatpacket.52,@object + .size .L_2il0floatpacket.52,4 + .align 4 +.L_2il0floatpacket.53: + .long 0xc2cff1b4 + .type .L_2il0floatpacket.53,@object + .size .L_2il0floatpacket.53,4 + .align 4 +.L_2il0floatpacket.54: + .long 0x7f7fffff + .type .L_2il0floatpacket.54,@object + .size .L_2il0floatpacket.54,4 + .align 4 +.L_2il0floatpacket.55: + .long 0x3fb8aa3b + .type .L_2il0floatpacket.55,@object + .size .L_2il0floatpacket.55,4 + .align 4 +.L_2il0floatpacket.56: + .long 0x4b400000 + .type .L_2il0floatpacket.56,@object + .size .L_2il0floatpacket.56,4 + .align 4 +.L_2il0floatpacket.57: + .long 0x3f317200 + .type .L_2il0floatpacket.57,@object + .size .L_2il0floatpacket.57,4 + .align 4 +.L_2il0floatpacket.58: + .long 0x35bfbe8e + .type .L_2il0floatpacket.58,@object + .size .L_2il0floatpacket.58,4 + .align 4 +.L_2il0floatpacket.59: + .long 0x3f800001 + .type .L_2il0floatpacket.59,@object + .size .L_2il0floatpacket.59,4 + .align 4 +.L_2il0floatpacket.60: + .long 0x3efffe85 + .type .L_2il0floatpacket.60,@object + .size .L_2il0floatpacket.60,4 + .align 4 +.L_2il0floatpacket.61: + .long 0x3e2aa9c6 + .type .L_2il0floatpacket.61,@object + .size .L_2il0floatpacket.61,4 + .align 4 +.L_2il0floatpacket.62: + .long 0x3d2bb1b6 + .type .L_2il0floatpacket.62,@object + .size .L_2il0floatpacket.62,4 + .align 4 +.L_2il0floatpacket.63: + .long 0x3c0950ef + .type .L_2il0floatpacket.63,@object + .size .L_2il0floatpacket.63,4 + .align 4 +.L_2il0floatpacket.64: + .long 0xc2aeac4f + .type .L_2il0floatpacket.64,@object + .size .L_2il0floatpacket.64,4 + .align 4 +.L_2il0floatpacket.65: + .long 0x00000001 + .type .L_2il0floatpacket.65,@object + .size .L_2il0floatpacket.65,4 + .align 4 +.L_2il0floatpacket.66: + .long 0x21800000 + .type .L_2il0floatpacket.66,@object + .size .L_2il0floatpacket.66,4 + .align 4 +.L_2il0floatpacket.67: + .long 0x40000000 + .type .L_2il0floatpacket.67,@object + .size .L_2il0floatpacket.67,4 diff --git a/numpy/core/src/umath/svml/svml_z0_expm1_d_la.s b/numpy/core/src/umath/svml/svml_z0_expm1_d_la.s new file mode 100644 index 000000000000..6d44b4d17c5d --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_expm1_d_la.s @@ -0,0 +1,1089 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * After computing exp(x) in high-low parts, an accurate computation is performed to obtain exp(x)-1 + * * Typical exp() implementation, except that: + * * - tables are small (16 elements), allowing for fast gathers + * * - all arguments processed in the main path + * * - final VSCALEF assists branch-free design (correct overflow/underflow and special case responses) + * * - a VAND is used to ensure the reduced argument |R|<2, even for large inputs + * * - RZ mode used to avoid oveflow to +/-Inf for x*log2(e); helps with special case handling + * * + * + */ + + + .text +.L_2__routine_start___svml_expm18_z0_0: + + .align 16,0x90 + .globl __svml_expm18 + +__svml_expm18: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 256+__svml_dexpm1_data_internal_avx512(%rip), %zmm6 + vmovups 320+__svml_dexpm1_data_internal_avx512(%rip), %zmm4 + vmovups 512+__svml_dexpm1_data_internal_avx512(%rip), %zmm11 + vmovups 576+__svml_dexpm1_data_internal_avx512(%rip), %zmm5 + vmovups 384+__svml_dexpm1_data_internal_avx512(%rip), %zmm3 + vmovups 960+__svml_dexpm1_data_internal_avx512(%rip), %zmm13 + vmovups 1024+__svml_dexpm1_data_internal_avx512(%rip), %zmm15 + +/* polynomial */ + vmovups 832+__svml_dexpm1_data_internal_avx512(%rip), %zmm12 + +/* set Z0=max(Z0, -128.0) */ + vmovups 640+__svml_dexpm1_data_internal_avx512(%rip), %zmm8 + vmovups 1088+__svml_dexpm1_data_internal_avx512(%rip), %zmm14 + vmovups __svml_dexpm1_data_internal_avx512(%rip), %zmm9 + vmovaps %zmm0, %zmm2 + +/* 2^(52-4)*1.5 + x * log2(e) */ + vfmadd213pd {rn-sae}, %zmm4, %zmm2, %zmm6 + vmovups 128+__svml_dexpm1_data_internal_avx512(%rip), %zmm0 + vcmppd $21, {sae}, %zmm3, %zmm2, %k0 + +/* Z0 ~ x*log2(e), rounded to 4 fractional bits */ + vsubpd {rn-sae}, %zmm4, %zmm6, %zmm7 + vpermt2pd 64+__svml_dexpm1_data_internal_avx512(%rip), %zmm6, %zmm9 + vpermt2pd 192+__svml_dexpm1_data_internal_avx512(%rip), %zmm6, %zmm0 + vandpd 448+__svml_dexpm1_data_internal_avx512(%rip), %zmm2, %zmm1 + +/* R = x - Z0*log(2) */ + vfnmadd213pd {rn-sae}, %zmm2, %zmm7, %zmm11 + vmaxpd {sae}, %zmm8, %zmm7, %zmm10 + vfnmadd231pd {rn-sae}, %zmm7, %zmm5, %zmm11 + kmovw %k0, %edx + +/* ensure |R|<2 even for special cases */ + vandpd 704+__svml_dexpm1_data_internal_avx512(%rip), %zmm11, %zmm3 + vmovups 896+__svml_dexpm1_data_internal_avx512(%rip), %zmm11 + +/* scale Th */ + vscalefpd {rn-sae}, %zmm10, %zmm9, %zmm4 + vfmadd231pd {rn-sae}, %zmm3, %zmm13, %zmm15 + vfmadd231pd {rn-sae}, %zmm3, %zmm12, %zmm11 + vmovups 1152+__svml_dexpm1_data_internal_avx512(%rip), %zmm12 + vmulpd {rn-sae}, %zmm3, %zmm3, %zmm13 + vfmadd231pd {rn-sae}, %zmm3, %zmm14, %zmm12 + vfmadd213pd {rn-sae}, %zmm15, %zmm13, %zmm11 + vfmadd213pd {rn-sae}, %zmm12, %zmm13, %zmm11 + +/* Tlr + R+ R*Poly */ + vfmadd213pd {rn-sae}, %zmm0, %zmm13, %zmm11 + +/* Th - 1 */ + vmovups 1216+__svml_dexpm1_data_internal_avx512(%rip), %zmm0 + vaddpd {rn-sae}, %zmm3, %zmm11, %zmm14 + vsubpd {rn-sae}, %zmm0, %zmm4, %zmm15 + +/* (Th-1)+Th*(Tlr + R+ R*Poly) */ + vfmadd213pd {rn-sae}, %zmm15, %zmm14, %zmm4 + vorpd %zmm1, %zmm4, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm2, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dexpm1_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_expm18,@function + .size __svml_expm18,.-__svml_expm18 +..LN__svml_expm18.0: + +.L_2__routine_start___svml_dexpm1_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dexpm1_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movsd (%rdi), %xmm6 + pxor %xmm0, %xmm0 + movzwl 6(%rdi), %edx + comisd %xmm6, %xmm0 + ja .LBL_2_18 + + + andl $32752, %edx + shrl $4, %edx + movsd %xmm6, -8(%rsp) + cmpl $2047, %edx + je .LBL_2_19 + + + cmpl $970, %edx + jle .LBL_2_16 + + + movsd 1080+_imldExpHATab(%rip), %xmm0 + comisd %xmm6, %xmm0 + jb .LBL_2_15 + + + comisd 1096+_imldExpHATab(%rip), %xmm6 + jb .LBL_2_14 + + + movsd 1024+_imldExpHATab(%rip), %xmm0 + movaps %xmm6, %xmm5 + mulsd %xmm6, %xmm0 + lea _imldExpHATab(%rip), %r10 + movsd %xmm0, -24(%rsp) + movsd -24(%rsp), %xmm1 + movq 1136+_imldExpHATab(%rip), %rdx + movq %rdx, -8(%rsp) + addsd 1032+_imldExpHATab(%rip), %xmm1 + movsd %xmm1, -16(%rsp) + movsd -16(%rsp), %xmm2 + movl -16(%rsp), %r8d + movl %r8d, %ecx + andl $63, %r8d + subsd 1032+_imldExpHATab(%rip), %xmm2 + movsd %xmm2, -24(%rsp) + lea 1(%r8,%r8), %r9d + movsd -24(%rsp), %xmm3 + lea (%r8,%r8), %edi + mulsd 1104+_imldExpHATab(%rip), %xmm3 + movsd -24(%rsp), %xmm4 + subsd %xmm3, %xmm5 + mulsd 1112+_imldExpHATab(%rip), %xmm4 + movsd 1072+_imldExpHATab(%rip), %xmm2 + subsd %xmm4, %xmm5 + mulsd %xmm5, %xmm2 + shrl $6, %ecx + addsd 1064+_imldExpHATab(%rip), %xmm2 + comisd 1088+_imldExpHATab(%rip), %xmm6 + mulsd %xmm5, %xmm2 + movsd (%r10,%rdi,8), %xmm0 + lea 1023(%rcx), %edx + addsd 1056+_imldExpHATab(%rip), %xmm2 + mulsd %xmm5, %xmm2 + addsd 1048+_imldExpHATab(%rip), %xmm2 + mulsd %xmm5, %xmm2 + addsd 1040+_imldExpHATab(%rip), %xmm2 + mulsd %xmm5, %xmm2 + mulsd %xmm5, %xmm2 + addsd %xmm5, %xmm2 + addsd (%r10,%r9,8), %xmm2 + mulsd %xmm0, %xmm2 + jb .LBL_2_10 + + + andl $2047, %edx + addsd %xmm0, %xmm2 + cmpl $2046, %edx + ja .LBL_2_9 + + + movq 1136+_imldExpHATab(%rip), %rcx + shrq $48, %rcx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm0, %xmm2 + movsd %xmm2, (%rsi) + ret + +.LBL_2_9: + + decl %edx + andl $2047, %edx + movzwl -2(%rsp), %ecx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -2(%rsp) + movsd -8(%rsp), %xmm0 + mulsd %xmm0, %xmm2 + mulsd 1152+_imldExpHATab(%rip), %xmm2 + movsd %xmm2, (%rsi) + ret + +.LBL_2_10: + + addl $1083, %ecx + andl $2047, %ecx + movl %ecx, %eax + movzwl -2(%rsp), %edx + shll $4, %eax + andl $-32753, %edx + orl %eax, %edx + movw %dx, -2(%rsp) + movsd -8(%rsp), %xmm1 + mulsd %xmm1, %xmm2 + mulsd %xmm0, %xmm1 + movaps %xmm1, %xmm0 + addsd %xmm2, %xmm0 + cmpl $50, %ecx + ja .LBL_2_12 + + + mulsd 1160+_imldExpHATab(%rip), %xmm0 + movsd %xmm0, (%rsi) + jmp .LBL_2_13 + +.LBL_2_12: + + movsd %xmm0, -72(%rsp) + movsd -72(%rsp), %xmm0 + subsd %xmm0, %xmm1 + movsd %xmm1, -64(%rsp) + movsd -64(%rsp), %xmm1 + addsd %xmm2, %xmm1 + movsd %xmm1, -64(%rsp) + movsd -72(%rsp), %xmm2 + mulsd 1168+_imldExpHATab(%rip), %xmm2 + movsd %xmm2, -56(%rsp) + movsd -72(%rsp), %xmm4 + movsd -56(%rsp), %xmm3 + addsd %xmm3, %xmm4 + movsd %xmm4, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm5 + subsd %xmm5, %xmm6 + movsd %xmm6, -40(%rsp) + movsd -72(%rsp), %xmm8 + movsd -40(%rsp), %xmm7 + subsd %xmm7, %xmm8 + movsd %xmm8, -32(%rsp) + movsd -64(%rsp), %xmm10 + movsd -32(%rsp), %xmm9 + addsd %xmm9, %xmm10 + movsd %xmm10, -32(%rsp) + movsd -40(%rsp), %xmm11 + mulsd 1160+_imldExpHATab(%rip), %xmm11 + movsd %xmm11, -40(%rsp) + movsd -32(%rsp), %xmm12 + mulsd 1160+_imldExpHATab(%rip), %xmm12 + movsd %xmm12, -32(%rsp) + movsd -40(%rsp), %xmm14 + movsd -32(%rsp), %xmm13 + addsd %xmm13, %xmm14 + movsd %xmm14, (%rsi) + +.LBL_2_13: + + movl $4, %eax + ret + +.LBL_2_14: + + movsd 1120+_imldExpHATab(%rip), %xmm0 + movl $4, %eax + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_15: + + movsd 1128+_imldExpHATab(%rip), %xmm0 + movl $3, %eax + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_16: + + movsd 1144+_imldExpHATab(%rip), %xmm0 + addsd %xmm6, %xmm0 + movsd %xmm0, (%rsi) + + + ret + +.LBL_2_18: + + movq $0xbff0000000000000, %rax + movq %rax, (%rsi) + xorl %eax, %eax + ret + +.LBL_2_19: + + movb -1(%rsp), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_21 + +.LBL_2_20: + + mulsd %xmm6, %xmm6 + movsd %xmm6, (%rsi) + ret + +.LBL_2_21: + + testl $1048575, -4(%rsp) + jne .LBL_2_20 + + + cmpl $0, -8(%rsp) + jne .LBL_2_20 + + + movq 1136+_imldExpHATab(%rip), %rdx + movq %rdx, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dexpm1_cout_rare_internal,@function + .size __svml_dexpm1_cout_rare_internal,.-__svml_dexpm1_cout_rare_internal +..LN__svml_dexpm1_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dexpm1_data_internal_avx512: + .long 0 + .long 1072693248 + .long 1828292879 + .long 1072739672 + .long 1014845819 + .long 1072788152 + .long 1853186616 + .long 1072838778 + .long 171030293 + .long 1072891646 + .long 1276261410 + .long 1072946854 + .long 3577096743 + .long 1073004506 + .long 3712504873 + .long 1073064711 + .long 1719614413 + .long 1073127582 + .long 1944781191 + .long 1073193236 + .long 1110089947 + .long 1073261797 + .long 2191782032 + .long 1073333393 + .long 2572866477 + .long 1073408159 + .long 3716502172 + .long 1073486235 + .long 3707479175 + .long 1073567768 + .long 2728693978 + .long 1073652911 + .long 0 + .long 0 + .long 1568897901 + .long 1016568486 + .long 3936719688 + .long 3162512149 + .long 3819481236 + .long 1016499965 + .long 1303423926 + .long 1015238005 + .long 2804567149 + .long 1015390024 + .long 3145379760 + .long 1014403278 + .long 3793507337 + .long 1016095713 + .long 3210617384 + .long 3163796463 + .long 3108873501 + .long 3162190556 + .long 3253791412 + .long 1015920431 + .long 730975783 + .long 1014083580 + .long 2462790535 + .long 1015814775 + .long 816778419 + .long 1014197934 + .long 2789017511 + .long 1014276997 + .long 2413007344 + .long 3163551506 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 1287323204 + .long 1082531232 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 993624127 + .long 1014676638 + .long 0 + .long 3227516928 + .long 0 + .long 3227516928 + .long 0 + .long 3227516928 + .long 0 + .long 3227516928 + .long 0 + .long 3227516928 + .long 0 + .long 3227516928 + .long 0 + .long 3227516928 + .long 0 + .long 3227516928 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4106095538 + .long 1056571896 + .long 4106095538 + .long 1056571896 + .long 4106095538 + .long 1056571896 + .long 4106095538 + .long 1056571896 + .long 4106095538 + .long 1056571896 + .long 4106095538 + .long 1056571896 + .long 4106095538 + .long 1056571896 + .long 4106095538 + .long 1056571896 + .long 271596938 + .long 1059717636 + .long 271596938 + .long 1059717636 + .long 271596938 + .long 1059717636 + .long 271596938 + .long 1059717636 + .long 271596938 + .long 1059717636 + .long 271596938 + .long 1059717636 + .long 271596938 + .long 1059717636 + .long 271596938 + .long 1059717636 + .long 2383825455 + .long 1062650307 + .long 2383825455 + .long 1062650307 + .long 2383825455 + .long 1062650307 + .long 2383825455 + .long 1062650307 + .long 2383825455 + .long 1062650307 + .long 2383825455 + .long 1062650307 + .long 2383825455 + .long 1062650307 + .long 2383825455 + .long 1062650307 + .long 277238292 + .long 1065423121 + .long 277238292 + .long 1065423121 + .long 277238292 + .long 1065423121 + .long 277238292 + .long 1065423121 + .long 277238292 + .long 1065423121 + .long 277238292 + .long 1065423121 + .long 277238292 + .long 1065423121 + .long 277238292 + .long 1065423121 + .long 1420639494 + .long 1067799893 + .long 1420639494 + .long 1067799893 + .long 1420639494 + .long 1067799893 + .long 1420639494 + .long 1067799893 + .long 1420639494 + .long 1067799893 + .long 1420639494 + .long 1067799893 + .long 1420639494 + .long 1067799893 + .long 1420639494 + .long 1067799893 + .long 1431656022 + .long 1069897045 + .long 1431656022 + .long 1069897045 + .long 1431656022 + .long 1069897045 + .long 1431656022 + .long 1069897045 + .long 1431656022 + .long 1069897045 + .long 1431656022 + .long 1069897045 + .long 1431656022 + .long 1069897045 + .long 1431656022 + .long 1069897045 + .long 162 + .long 1071644672 + .long 162 + .long 1071644672 + .long 162 + .long 1071644672 + .long 162 + .long 1071644672 + .long 162 + .long 1071644672 + .long 162 + .long 1071644672 + .long 162 + .long 1071644672 + .long 162 + .long 1071644672 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .long 0 + .long 3220176896 + .type __svml_dexpm1_data_internal_avx512,@object + .size __svml_dexpm1_data_internal_avx512,1344 + .align 32 +_imldExpHATab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1048019041 + .long 1072704666 + .long 2631457885 + .long 3161546771 + .long 3541402996 + .long 1072716208 + .long 896005651 + .long 1015861842 + .long 410360776 + .long 1072727877 + .long 1642514529 + .long 1012987726 + .long 1828292879 + .long 1072739672 + .long 1568897901 + .long 1016568486 + .long 852742562 + .long 1072751596 + .long 1882168529 + .long 1010744893 + .long 3490863953 + .long 1072763649 + .long 707771662 + .long 3163903570 + .long 2930322912 + .long 1072775834 + .long 3117806614 + .long 3163670819 + .long 1014845819 + .long 1072788152 + .long 3936719688 + .long 3162512149 + .long 3949972341 + .long 1072800603 + .long 1058231231 + .long 1015777676 + .long 828946858 + .long 1072813191 + .long 1044000608 + .long 1016786167 + .long 2288159958 + .long 1072825915 + .long 1151779725 + .long 1015705409 + .long 1853186616 + .long 1072838778 + .long 3819481236 + .long 1016499965 + .long 1709341917 + .long 1072851781 + .long 2552227826 + .long 1015039787 + .long 4112506593 + .long 1072864925 + .long 1829350193 + .long 1015216097 + .long 2799960843 + .long 1072878213 + .long 1913391796 + .long 1015756674 + .long 171030293 + .long 1072891646 + .long 1303423926 + .long 1015238005 + .long 2992903935 + .long 1072905224 + .long 1574172746 + .long 1016061241 + .long 926591435 + .long 1072918951 + .long 3427487848 + .long 3163704045 + .long 887463927 + .long 1072932827 + .long 1049900754 + .long 3161575912 + .long 1276261410 + .long 1072946854 + .long 2804567149 + .long 1015390024 + .long 569847338 + .long 1072961034 + .long 1209502043 + .long 3159926671 + .long 1617004845 + .long 1072975368 + .long 1623370769 + .long 1011049453 + .long 3049340112 + .long 1072989858 + .long 3667985273 + .long 1013894369 + .long 3577096743 + .long 1073004506 + .long 3145379760 + .long 1014403278 + .long 1990012071 + .long 1073019314 + .long 7447438 + .long 3163526196 + .long 1453150082 + .long 1073034283 + .long 3171891295 + .long 3162037958 + .long 917841882 + .long 1073049415 + .long 419288974 + .long 1016280325 + .long 3712504873 + .long 1073064711 + .long 3793507337 + .long 1016095713 + .long 363667784 + .long 1073080175 + .long 728023093 + .long 1016345318 + .long 2956612997 + .long 1073095806 + .long 1005538728 + .long 3163304901 + .long 2186617381 + .long 1073111608 + .long 2018924632 + .long 3163803357 + .long 1719614413 + .long 1073127582 + .long 3210617384 + .long 3163796463 + .long 1013258799 + .long 1073143730 + .long 3094194670 + .long 3160631279 + .long 3907805044 + .long 1073160053 + .long 2119843535 + .long 3161988964 + .long 1447192521 + .long 1073176555 + .long 508946058 + .long 3162904882 + .long 1944781191 + .long 1073193236 + .long 3108873501 + .long 3162190556 + .long 919555682 + .long 1073210099 + .long 2882956373 + .long 1013312481 + .long 2571947539 + .long 1073227145 + .long 4047189812 + .long 3163777462 + .long 2604962541 + .long 1073244377 + .long 3631372142 + .long 3163870288 + .long 1110089947 + .long 1073261797 + .long 3253791412 + .long 1015920431 + .long 2568320822 + .long 1073279406 + .long 1509121860 + .long 1014756995 + .long 2966275557 + .long 1073297207 + .long 2339118633 + .long 3160254904 + .long 2682146384 + .long 1073315202 + .long 586480042 + .long 3163702083 + .long 2191782032 + .long 1073333393 + .long 730975783 + .long 1014083580 + .long 2069751141 + .long 1073351782 + .long 576856675 + .long 3163014404 + .long 2990417245 + .long 1073370371 + .long 3552361237 + .long 3163667409 + .long 1434058175 + .long 1073389163 + .long 1853053619 + .long 1015310724 + .long 2572866477 + .long 1073408159 + .long 2462790535 + .long 1015814775 + .long 3092190715 + .long 1073427362 + .long 1457303226 + .long 3159737305 + .long 4076559943 + .long 1073446774 + .long 950899508 + .long 3160987380 + .long 2420883922 + .long 1073466398 + .long 174054861 + .long 1014300631 + .long 3716502172 + .long 1073486235 + .long 816778419 + .long 1014197934 + .long 777507147 + .long 1073506289 + .long 3507050924 + .long 1015341199 + .long 3706687593 + .long 1073526560 + .long 1821514088 + .long 1013410604 + .long 1242007932 + .long 1073547053 + .long 1073740399 + .long 3163532637 + .long 3707479175 + .long 1073567768 + .long 2789017511 + .long 1014276997 + .long 64696965 + .long 1073588710 + .long 3586233004 + .long 1015962192 + .long 863738719 + .long 1073609879 + .long 129252895 + .long 3162690849 + .long 3884662774 + .long 1073631278 + .long 1614448851 + .long 1014281732 + .long 2728693978 + .long 1073652911 + .long 2413007344 + .long 3163551506 + .long 3999357479 + .long 1073674779 + .long 1101668360 + .long 1015989180 + .long 1533953344 + .long 1073696886 + .long 835814894 + .long 1015702697 + .long 2174652632 + .long 1073719233 + .long 1301400989 + .long 1014466875 + .long 1697350398 + .long 1079448903 + .long 0 + .long 1127743488 + .long 0 + .long 1071644672 + .long 1431652600 + .long 1069897045 + .long 1431670732 + .long 1067799893 + .long 984555731 + .long 1065423122 + .long 472530941 + .long 1062650218 + .long 4277811695 + .long 1082535490 + .long 3715808466 + .long 3230016299 + .long 3576508497 + .long 3230091536 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 1 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 1073741824 + .long 0 + .long 1009778688 + .long 0 + .long 1106771968 + .type _imldExpHATab,@object + .size _imldExpHATab,1176 + .align 8 +.L_2il0floatpacket.77: + .long 0x00000000,0xbff00000 + .type .L_2il0floatpacket.77,@object + .size .L_2il0floatpacket.77,8 diff --git a/numpy/core/src/umath/svml/svml_z0_expm1_s_la.s b/numpy/core/src/umath/svml/svml_z0_expm1_s_la.s new file mode 100644 index 000000000000..3ae3336e8abb --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_expm1_s_la.s @@ -0,0 +1,593 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * After computing exp(x) in high-low parts, an accurate computation is performed to obtain exp(x)-1 + * * Typical exp() implementation, except that: + * * - tables are small (32 elements), allowing for fast gathers + * * - all arguments processed in the main path + * * - final VSCALEF assists branch-free design (correct overflow/underflow and special case responses) + * * - a VAND is used to ensure the reduced argument |R|<2, even for large inputs + * * - RZ mode used to avoid oveflow to +/-Inf for x*log2(e); helps with special case handling + * * + * + */ + + + .text +.L_2__routine_start___svml_expm1f16_z0_0: + + .align 16,0x90 + .globl __svml_expm1f16 + +__svml_expm1f16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 256+__svml_sexpm1_data_internal_avx512(%rip), %zmm5 + vmovups 320+__svml_sexpm1_data_internal_avx512(%rip), %zmm3 + vmovups 512+__svml_sexpm1_data_internal_avx512(%rip), %zmm8 + vmovups 576+__svml_sexpm1_data_internal_avx512(%rip), %zmm4 + vmovups __svml_sexpm1_data_internal_avx512(%rip), %zmm6 + +/* polynomial */ + vmovups 704+__svml_sexpm1_data_internal_avx512(%rip), %zmm9 + vmovups 768+__svml_sexpm1_data_internal_avx512(%rip), %zmm12 + vmovups 128+__svml_sexpm1_data_internal_avx512(%rip), %zmm11 + vmovups 384+__svml_sexpm1_data_internal_avx512(%rip), %zmm2 + +/* Th - 1 */ + vmovups 832+__svml_sexpm1_data_internal_avx512(%rip), %zmm14 + vmovaps %zmm0, %zmm1 + +/* 2^(52-5)*1.5 + x * log2(e) */ + vfmadd213ps {rn-sae}, %zmm3, %zmm1, %zmm5 + vcmpps $29, {sae}, %zmm2, %zmm1, %k0 + +/* Z0 ~ x*log2(e), rounded to 5 fractional bits */ + vsubps {rn-sae}, %zmm3, %zmm5, %zmm7 + vpermt2ps 64+__svml_sexpm1_data_internal_avx512(%rip), %zmm5, %zmm6 + vpermt2ps 192+__svml_sexpm1_data_internal_avx512(%rip), %zmm5, %zmm11 + vandps 448+__svml_sexpm1_data_internal_avx512(%rip), %zmm1, %zmm0 + +/* R = x - Z0*log(2) */ + vfnmadd213ps {rn-sae}, %zmm1, %zmm7, %zmm8 + +/* scale Th */ + vscalefps {rn-sae}, %zmm7, %zmm6, %zmm2 + vfnmadd231ps {rn-sae}, %zmm7, %zmm4, %zmm8 + kmovw %k0, %edx + +/* ensure |R|<2 even for special cases */ + vandps 640+__svml_sexpm1_data_internal_avx512(%rip), %zmm8, %zmm13 + vsubps {rn-sae}, %zmm14, %zmm2, %zmm8 + vmulps {rn-sae}, %zmm13, %zmm13, %zmm10 + vfmadd231ps {rn-sae}, %zmm13, %zmm9, %zmm12 + +/* Tlr + R+ R2*Poly */ + vfmadd213ps {rn-sae}, %zmm11, %zmm10, %zmm12 + vaddps {rn-sae}, %zmm13, %zmm12, %zmm15 + +/* (Th-1)+Th*(Tlr + R+ R*Poly) */ + vfmadd213ps {rn-sae}, %zmm8, %zmm15, %zmm2 + vorps %zmm0, %zmm2, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm1, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_sexpm1_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_expm1f16,@function + .size __svml_expm1f16,.-__svml_expm1f16 +..LN__svml_expm1f16.0: + +.L_2__routine_start___svml_sexpm1_cout_rare_internal_1: + + .align 16,0x90 + +__svml_sexpm1_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movss (%rdi), %xmm8 + pxor %xmm0, %xmm0 + comiss %xmm8, %xmm0 + ja .LBL_2_8 + + + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_9 + + + movss .L_2il0floatpacket.45(%rip), %xmm0 + comiss %xmm8, %xmm0 + jb .LBL_2_6 + + + comiss .L_2il0floatpacket.46(%rip), %xmm8 + jb .LBL_2_7 + + + movss .L_2il0floatpacket.48(%rip), %xmm0 + mulss %xmm8, %xmm0 + movss %xmm0, -24(%rsp) + movss -24(%rsp), %xmm1 + movss .L_2il0floatpacket.49(%rip), %xmm2 + movss .L_2il0floatpacket.56(%rip), %xmm6 + addss %xmm2, %xmm1 + movss %xmm1, -20(%rsp) + movss -20(%rsp), %xmm3 + movss .L_2il0floatpacket.52(%rip), %xmm7 + subss %xmm2, %xmm3 + movss %xmm3, -24(%rsp) + movss -24(%rsp), %xmm4 + mulss .L_2il0floatpacket.50(%rip), %xmm4 + movss -24(%rsp), %xmm5 + subss %xmm4, %xmm8 + mulss .L_2il0floatpacket.51(%rip), %xmm5 + movl -20(%rsp), %edx + subss %xmm5, %xmm8 + mulss %xmm8, %xmm6 + shll $23, %edx + addss .L_2il0floatpacket.55(%rip), %xmm6 + mulss %xmm8, %xmm6 + addss .L_2il0floatpacket.54(%rip), %xmm6 + mulss %xmm8, %xmm6 + addss .L_2il0floatpacket.53(%rip), %xmm6 + mulss %xmm8, %xmm6 + addss %xmm7, %xmm6 + mulss %xmm8, %xmm6 + addss %xmm6, %xmm7 + movss %xmm7, -16(%rsp) + addl -16(%rsp), %edx + movl %edx, (%rsi) + ret + +.LBL_2_6: + + movss .L_2il0floatpacket.47(%rip), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, -16(%rsp) + movl -16(%rsp), %eax + movl %eax, (%rsi) + movl $3, %eax + +.LBL_2_7: + + ret + +.LBL_2_8: + + movl $-1082130432, (%rsi) + ret + +.LBL_2_9: + + movb 3(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_11 + +.LBL_2_10: + + mulss %xmm8, %xmm8 + movss %xmm8, (%rsi) + ret + +.LBL_2_11: + + testl $8388607, (%rdi) + jne .LBL_2_10 + + + movss %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_sexpm1_cout_rare_internal,@function + .size __svml_sexpm1_cout_rare_internal,.-__svml_sexpm1_cout_rare_internal +..LN__svml_sexpm1_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_sexpm1_data_internal_avx512: + .long 1065353216 + .long 1065536903 + .long 1065724611 + .long 1065916431 + .long 1066112450 + .long 1066312762 + .long 1066517459 + .long 1066726640 + .long 1066940400 + .long 1067158842 + .long 1067382066 + .long 1067610179 + .long 1067843287 + .long 1068081499 + .long 1068324927 + .long 1068573686 + .long 1068827891 + .long 1069087663 + .long 1069353124 + .long 1069624397 + .long 1069901610 + .long 1070184894 + .long 1070474380 + .long 1070770206 + .long 1071072509 + .long 1071381432 + .long 1071697119 + .long 1072019719 + .long 1072349383 + .long 1072686266 + .long 1073030525 + .long 1073382323 + .long 0 + .long 3007986186 + .long 860277610 + .long 3010384254 + .long 2991457809 + .long 3008462297 + .long 860562562 + .long 3004532446 + .long 856238081 + .long 3001480295 + .long 857441778 + .long 815380209 + .long 3003456168 + .long 3001196762 + .long 2986372182 + .long 3006683458 + .long 848495278 + .long 851809756 + .long 3003311522 + .long 2995654817 + .long 833868005 + .long 3004843819 + .long 835836658 + .long 3003498340 + .long 2994528642 + .long 3002229827 + .long 2981408986 + .long 2983889551 + .long 2983366846 + .long 3000350873 + .long 833659207 + .long 2987748092 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 1118652779 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 2969756424 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1042983923 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1056964854 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .type __svml_sexpm1_data_internal_avx512,@object + .size __svml_sexpm1_data_internal_avx512,896 + .align 4 +.L_2il0floatpacket.44: + .long 0xbf800000 + .type .L_2il0floatpacket.44,@object + .size .L_2il0floatpacket.44,4 + .align 4 +.L_2il0floatpacket.45: + .long 0x42b17217 + .type .L_2il0floatpacket.45,@object + .size .L_2il0floatpacket.45,4 + .align 4 +.L_2il0floatpacket.46: + .long 0xc2cff1b4 + .type .L_2il0floatpacket.46,@object + .size .L_2il0floatpacket.46,4 + .align 4 +.L_2il0floatpacket.47: + .long 0x7f7fffff + .type .L_2il0floatpacket.47,@object + .size .L_2il0floatpacket.47,4 + .align 4 +.L_2il0floatpacket.48: + .long 0x3fb8aa3b + .type .L_2il0floatpacket.48,@object + .size .L_2il0floatpacket.48,4 + .align 4 +.L_2il0floatpacket.49: + .long 0x4b400000 + .type .L_2il0floatpacket.49,@object + .size .L_2il0floatpacket.49,4 + .align 4 +.L_2il0floatpacket.50: + .long 0x3f317200 + .type .L_2il0floatpacket.50,@object + .size .L_2il0floatpacket.50,4 + .align 4 +.L_2il0floatpacket.51: + .long 0x35bfbe8e + .type .L_2il0floatpacket.51,@object + .size .L_2il0floatpacket.51,4 + .align 4 +.L_2il0floatpacket.52: + .long 0x3f800001 + .type .L_2il0floatpacket.52,@object + .size .L_2il0floatpacket.52,4 + .align 4 +.L_2il0floatpacket.53: + .long 0x3efffe85 + .type .L_2il0floatpacket.53,@object + .size .L_2il0floatpacket.53,4 + .align 4 +.L_2il0floatpacket.54: + .long 0x3e2aa9c6 + .type .L_2il0floatpacket.54,@object + .size .L_2il0floatpacket.54,4 + .align 4 +.L_2il0floatpacket.55: + .long 0x3d2bb1b6 + .type .L_2il0floatpacket.55,@object + .size .L_2il0floatpacket.55,4 + .align 4 +.L_2il0floatpacket.56: + .long 0x3c0950ef + .type .L_2il0floatpacket.56,@object + .size .L_2il0floatpacket.56,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log10_d_la.s b/numpy/core/src/umath/svml/svml_z0_log10_d_la.s new file mode 100644 index 000000000000..58313e4cb348 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log10_d_la.s @@ -0,0 +1,1124 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * log10(x) = VGETEXP(x)*log10(2) + log10(VGETMANT(x)) + * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) + * * mx = VGETMANT(x) is in [1,2) for all x>=0 + * * log10(mx) = -log10(RCP(mx)) + log10(1 +(mx*RCP(mx)-1)) + * * RCP(mx) is rounded to 4 fractional bits, + * * and the table lookup for log(RCP(mx)) is based on a small permute instruction + * * + * + */ + + + .text +.L_2__routine_start___svml_log108_z0_0: + + .align 16,0x90 + .globl __svml_log108 + +__svml_log108: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovaps %zmm0, %zmm7 + +/* GetMant(x), normalized to [1,2) for x>=0, NaN for x<0 */ + vgetmantpd $8, {sae}, %zmm7, %zmm6 + vmovups 128+__svml_dlog10_data_internal_avx512(%rip), %zmm3 + vmovups 512+__svml_dlog10_data_internal_avx512(%rip), %zmm12 + vmovups 640+__svml_dlog10_data_internal_avx512(%rip), %zmm13 + +/* Start polynomial evaluation */ + vmovups 256+__svml_dlog10_data_internal_avx512(%rip), %zmm10 + vmovups 320+__svml_dlog10_data_internal_avx512(%rip), %zmm1 + vmovups 384+__svml_dlog10_data_internal_avx512(%rip), %zmm11 + vmovups 448+__svml_dlog10_data_internal_avx512(%rip), %zmm14 + +/* Prepare exponent correction: DblRcp<0.75? */ + vmovups 192+__svml_dlog10_data_internal_avx512(%rip), %zmm2 + +/* Table lookup */ + vmovups __svml_dlog10_data_internal_avx512(%rip), %zmm5 + +/* GetExp(x) */ + vgetexppd {sae}, %zmm7, %zmm0 + +/* DblRcp ~ 1/Mantissa */ + vrcp14pd %zmm6, %zmm8 + +/* x<=0? */ + vfpclasspd $94, %zmm7, %k0 + +/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ + vrndscalepd $88, {sae}, %zmm8, %zmm4 + vmovups 576+__svml_dlog10_data_internal_avx512(%rip), %zmm8 + kmovw %k0, %edx + +/* Reduced argument: R = DblRcp*Mantissa - 1 */ + vfmsub213pd {rn-sae}, %zmm3, %zmm4, %zmm6 + vcmppd $17, {sae}, %zmm2, %zmm4, %k1 + vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm8 + vmovups 704+__svml_dlog10_data_internal_avx512(%rip), %zmm12 + vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm1 + vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 + vmovups 768+__svml_dlog10_data_internal_avx512(%rip), %zmm2 + +/* R^2 */ + vmulpd {rn-sae}, %zmm6, %zmm6, %zmm15 + vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12 + +/* Prepare table index */ + vpsrlq $48, %zmm4, %zmm9 + +/* add 1 to Expon if DblRcp<0.75 */ + vaddpd {rn-sae}, %zmm3, %zmm0, %zmm0{%k1} + vmulpd {rn-sae}, %zmm15, %zmm15, %zmm13 + vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm1 + vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm8 + vpermt2pd 64+__svml_dlog10_data_internal_avx512(%rip), %zmm9, %zmm5 + +/* polynomial */ + vfmadd213pd {rn-sae}, %zmm8, %zmm13, %zmm1 + vfmadd213pd {rn-sae}, %zmm2, %zmm6, %zmm1 + vfmadd213pd {rn-sae}, %zmm5, %zmm1, %zmm6 + vmovups 832+__svml_dlog10_data_internal_avx512(%rip), %zmm1 + vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm7, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dlog10_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_log108,@function + .size __svml_log108,.-__svml_log108 +..LN__svml_log108.0: + +.L_2__routine_start___svml_dlog10_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dlog10_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 6(%rdi), %edx + andl $32752, %edx + cmpl $32752, %edx + je .LBL_2_12 + + + movsd (%rdi), %xmm2 + xorl %ecx, %ecx + movsd %xmm2, -8(%rsp) + movzwl -2(%rsp), %edx + testl $32752, %edx + jne .LBL_2_4 + + + movsd 1600+__dlog10_la_CoutTab(%rip), %xmm0 + movl $-60, %ecx + mulsd %xmm0, %xmm2 + movsd %xmm2, -8(%rsp) + +.LBL_2_4: + + movsd 1608+__dlog10_la_CoutTab(%rip), %xmm0 + comisd %xmm0, %xmm2 + jbe .LBL_2_8 + + + movaps %xmm2, %xmm1 + subsd .L_2il0floatpacket.89(%rip), %xmm1 + movsd %xmm1, -16(%rsp) + andb $127, -9(%rsp) + movsd -16(%rsp), %xmm0 + comisd 1592+__dlog10_la_CoutTab(%rip), %xmm0 + jbe .LBL_2_7 + + + movsd %xmm2, -16(%rsp) + pxor %xmm7, %xmm7 + movzwl -10(%rsp), %edi + lea __dlog10_la_CoutTab(%rip), %r10 + andl $-32753, %edi + addl $16368, %edi + movw %di, -10(%rsp) + movsd -16(%rsp), %xmm3 + movaps %xmm3, %xmm1 + movaps %xmm3, %xmm2 + movsd 1688+__dlog10_la_CoutTab(%rip), %xmm5 + movzwl -2(%rsp), %edx + andl $32752, %edx + addsd 1576+__dlog10_la_CoutTab(%rip), %xmm1 + addsd 1584+__dlog10_la_CoutTab(%rip), %xmm2 + movsd %xmm1, -24(%rsp) + movl -24(%rsp), %r8d + movsd %xmm2, -24(%rsp) + andl $127, %r8d + movsd -24(%rsp), %xmm8 + movsd 1560+__dlog10_la_CoutTab(%rip), %xmm9 + movsd 1568+__dlog10_la_CoutTab(%rip), %xmm0 + shrl $4, %edx + subsd 1584+__dlog10_la_CoutTab(%rip), %xmm8 + lea (%r8,%r8,2), %r9d + movsd (%r10,%r9,8), %xmm6 + lea -1023(%rcx,%rdx), %ecx + cvtsi2sd %ecx, %xmm7 + subsd %xmm8, %xmm3 + mulsd %xmm6, %xmm8 + mulsd %xmm7, %xmm9 + subsd 1624+__dlog10_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm6 + mulsd %xmm0, %xmm7 + addsd 8(%r10,%r9,8), %xmm9 + addsd 16(%r10,%r9,8), %xmm7 + addsd %xmm8, %xmm9 + movaps %xmm8, %xmm4 + addsd %xmm6, %xmm4 + mulsd %xmm4, %xmm5 + addsd 1680+__dlog10_la_CoutTab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addsd 1672+__dlog10_la_CoutTab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addsd 1664+__dlog10_la_CoutTab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addsd 1656+__dlog10_la_CoutTab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addsd 1648+__dlog10_la_CoutTab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addsd 1640+__dlog10_la_CoutTab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addsd 1632+__dlog10_la_CoutTab(%rip), %xmm5 + mulsd %xmm5, %xmm8 + mulsd %xmm6, %xmm5 + addsd %xmm5, %xmm7 + addsd %xmm6, %xmm7 + addsd %xmm7, %xmm8 + addsd %xmm8, %xmm9 + movsd %xmm9, (%rsi) + ret + +.LBL_2_7: + + movsd 1624+__dlog10_la_CoutTab(%rip), %xmm0 + mulsd %xmm0, %xmm1 + movsd 1688+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1680+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1672+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1664+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1656+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1648+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1640+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1632+__dlog10_la_CoutTab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd %xmm1, %xmm2 + movsd %xmm2, (%rsi) + ret + +.LBL_2_8: + + ucomisd %xmm0, %xmm2 + jp .LBL_2_9 + je .LBL_2_11 + +.LBL_2_9: + + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + movl $1, %eax + + + ret + +.LBL_2_11: + + movsd 1616+__dlog10_la_CoutTab(%rip), %xmm1 + movl $2, %eax + xorps .L_2il0floatpacket.88(%rip), %xmm1 + divsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + ret + +.LBL_2_12: + + movb 7(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_14 + +.LBL_2_13: + + movsd (%rdi), %xmm0 + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_14: + + testl $1048575, 4(%rdi) + jne .LBL_2_13 + + + cmpl $0, (%rdi) + jne .LBL_2_13 + + + movsd 1608+__dlog10_la_CoutTab(%rip), %xmm0 + movl $1, %eax + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dlog10_cout_rare_internal,@function + .size __svml_dlog10_cout_rare_internal,.-__svml_dlog10_cout_rare_internal +..LN__svml_dlog10_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dlog10_data_internal_avx512: + .long 0 + .long 0 + .long 721479184 + .long 3214603769 + .long 3590975466 + .long 3215601833 + .long 1438937368 + .long 3216186160 + .long 948324365 + .long 3216559896 + .long 2869828094 + .long 3216915393 + .long 516509563 + .long 3217142759 + .long 2145647618 + .long 3217304702 + .long 733771779 + .long 1069546492 + .long 3513866211 + .long 1069249052 + .long 3459676924 + .long 1068963280 + .long 1085767695 + .long 1068688295 + .long 3613830132 + .long 1068347678 + .long 1803457173 + .long 1067836310 + .long 3436756955 + .long 1067234191 + .long 930630721 + .long 1066155272 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 675808112 + .long 1068024536 + .long 675808112 + .long 1068024536 + .long 675808112 + .long 1068024536 + .long 675808112 + .long 1068024536 + .long 675808112 + .long 1068024536 + .long 675808112 + .long 1068024536 + .long 675808112 + .long 1068024536 + .long 675808112 + .long 1068024536 + .long 2516752404 + .long 3215710221 + .long 2516752404 + .long 3215710221 + .long 2516752404 + .long 3215710221 + .long 2516752404 + .long 3215710221 + .long 2516752404 + .long 3215710221 + .long 2516752404 + .long 3215710221 + .long 2516752404 + .long 3215710221 + .long 2516752404 + .long 3215710221 + .long 4085995682 + .long 1068483574 + .long 4085995682 + .long 1068483574 + .long 4085995682 + .long 1068483574 + .long 4085995682 + .long 1068483574 + .long 4085995682 + .long 1068483574 + .long 4085995682 + .long 1068483574 + .long 4085995682 + .long 1068483574 + .long 4085995682 + .long 1068483574 + .long 879025280 + .long 3216148390 + .long 879025280 + .long 3216148390 + .long 879025280 + .long 3216148390 + .long 879025280 + .long 3216148390 + .long 879025280 + .long 3216148390 + .long 879025280 + .long 3216148390 + .long 879025280 + .long 3216148390 + .long 879025280 + .long 3216148390 + .long 2004821977 + .long 1068907618 + .long 2004821977 + .long 1068907618 + .long 2004821977 + .long 1068907618 + .long 2004821977 + .long 1068907618 + .long 2004821977 + .long 1068907618 + .long 2004821977 + .long 1068907618 + .long 2004821977 + .long 1068907618 + .long 2004821977 + .long 1068907618 + .long 356255395 + .long 3216755579 + .long 356255395 + .long 3216755579 + .long 356255395 + .long 3216755579 + .long 356255395 + .long 3216755579 + .long 356255395 + .long 3216755579 + .long 356255395 + .long 3216755579 + .long 356255395 + .long 3216755579 + .long 356255395 + .long 3216755579 + .long 1668235916 + .long 1069713319 + .long 1668235916 + .long 1069713319 + .long 1668235916 + .long 1069713319 + .long 1668235916 + .long 1069713319 + .long 1668235916 + .long 1069713319 + .long 1668235916 + .long 1069713319 + .long 1668235916 + .long 1069713319 + .long 1668235916 + .long 1069713319 + .long 354870491 + .long 3217804155 + .long 354870491 + .long 3217804155 + .long 354870491 + .long 3217804155 + .long 354870491 + .long 3217804155 + .long 354870491 + .long 3217804155 + .long 354870491 + .long 3217804155 + .long 354870491 + .long 3217804155 + .long 354870491 + .long 3217804155 + .long 354870542 + .long 1071369083 + .long 354870542 + .long 1071369083 + .long 354870542 + .long 1071369083 + .long 354870542 + .long 1071369083 + .long 354870542 + .long 1071369083 + .long 354870542 + .long 1071369083 + .long 354870542 + .long 1071369083 + .long 354870542 + .long 1071369083 + .long 1352628735 + .long 1070810131 + .long 1352628735 + .long 1070810131 + .long 1352628735 + .long 1070810131 + .long 1352628735 + .long 1070810131 + .long 1352628735 + .long 1070810131 + .long 1352628735 + .long 1070810131 + .long 1352628735 + .long 1070810131 + .long 1352628735 + .long 1070810131 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .type __svml_dlog10_data_internal_avx512,@object + .size __svml_dlog10_data_internal_avx512,1152 + .align 32 +__dlog10_la_CoutTab: + .long 0 + .long 1071366144 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1071337728 + .long 184549376 + .long 1065092008 + .long 2099961998 + .long 3178897324 + .long 0 + .long 1071309312 + .long 931135488 + .long 1066155272 + .long 2365712557 + .long 3178155773 + .long 0 + .long 1071280896 + .long 603979776 + .long 1066752445 + .long 709057215 + .long 1031474920 + .long 0 + .long 1071252480 + .long 3437232128 + .long 1067234191 + .long 1515412199 + .long 3179085970 + .long 0 + .long 1071238272 + .long 1105723392 + .long 1067464226 + .long 153915826 + .long 3178000698 + .long 0 + .long 1071209856 + .long 3328442368 + .long 1067711223 + .long 3899912278 + .long 3177135692 + .long 0 + .long 1071181440 + .long 341835776 + .long 1067962480 + .long 2509208190 + .long 3176531222 + .long 0 + .long 1071167232 + .long 2884632576 + .long 1068089751 + .long 1030636902 + .long 1025224143 + .long 0 + .long 1071138816 + .long 3613917184 + .long 1068347678 + .long 3527163461 + .long 3177529532 + .long 0 + .long 1071124608 + .long 3549954048 + .long 1068478374 + .long 3498894081 + .long 3173000425 + .long 0 + .long 1071096192 + .long 1623785472 + .long 1068621140 + .long 2889825554 + .long 3176375375 + .long 0 + .long 1071081984 + .long 1085800448 + .long 1068688295 + .long 4015256301 + .long 3177184346 + .long 0 + .long 1071053568 + .long 3652976640 + .long 1068824490 + .long 3600693529 + .long 3175753877 + .long 0 + .long 1071039360 + .long 1592393728 + .long 1068893555 + .long 231073830 + .long 3177087939 + .long 0 + .long 1071025152 + .long 3459645440 + .long 1068963280 + .long 1740576090 + .long 1029619435 + .long 0 + .long 1070996736 + .long 3774611456 + .long 1069104765 + .long 3858552785 + .long 1028603845 + .long 0 + .long 1070982528 + .long 845086720 + .long 1069176552 + .long 3138879731 + .long 1029120443 + .long 0 + .long 1070968320 + .long 3513843712 + .long 1069249052 + .long 2107125367 + .long 1029044389 + .long 0 + .long 1070954112 + .long 434503680 + .long 1069322282 + .long 3827602229 + .long 1028932700 + .long 0 + .long 1070939904 + .long 3613851648 + .long 1069396254 + .long 1223751955 + .long 3176465139 + .long 0 + .long 1070911488 + .long 733741056 + .long 1069546492 + .long 1625232067 + .long 1029570781 + .long 0 + .long 1070897280 + .long 1511620608 + .long 1069585154 + .long 3044605139 + .long 1028090775 + .long 0 + .long 1070883072 + .long 1337196544 + .long 1069623706 + .long 2602639001 + .long 3175938675 + .long 0 + .long 1070868864 + .long 2572533760 + .long 1069662670 + .long 3067107955 + .long 1022933137 + .long 0 + .long 1070854656 + .long 559611904 + .long 1069702056 + .long 764145786 + .long 3174041535 + .long 0 + .long 1070840448 + .long 485818368 + .long 1069741872 + .long 2037567072 + .long 3175580956 + .long 0 + .long 1070826240 + .long 259604480 + .long 1069782128 + .long 4012068429 + .long 1027865895 + .long 0 + .long 1070812032 + .long 3454042112 + .long 1069822833 + .long 2867680007 + .long 3174202478 + .long 0 + .long 1070797824 + .long 2188754944 + .long 1069863999 + .long 2538655286 + .long 3175840981 + .long 0 + .long 1070783616 + .long 2965241856 + .long 1069905635 + .long 1338936972 + .long 3176093950 + .long 0 + .long 1070769408 + .long 966279168 + .long 1069947753 + .long 1774547674 + .long 3175051484 + .long 0 + .long 1070755200 + .long 1604042752 + .long 1069990363 + .long 2557470738 + .long 3174667448 + .long 0 + .long 1070740992 + .long 3417833472 + .long 1070033477 + .long 2268255117 + .long 3175678264 + .long 0 + .long 1070740992 + .long 3417833472 + .long 1070033477 + .long 2268255117 + .long 3175678264 + .long 0 + .long 1070726784 + .long 2451292160 + .long 1070077108 + .long 3757728941 + .long 1027943275 + .long 0 + .long 1070712576 + .long 929644544 + .long 1070121268 + .long 899045708 + .long 1027944939 + .long 0 + .long 1070698368 + .long 3057254400 + .long 1070165969 + .long 3880649376 + .long 3172972504 + .long 0 + .long 1070684160 + .long 2231091200 + .long 1070211226 + .long 521319256 + .long 1027600177 + .long 0 + .long 1070684160 + .long 2231091200 + .long 1070211226 + .long 521319256 + .long 1027600177 + .long 0 + .long 1070669952 + .long 2620162048 + .long 1070257052 + .long 1385613369 + .long 3176104036 + .long 0 + .long 1070655744 + .long 2096726016 + .long 1070303462 + .long 3138305819 + .long 3173646777 + .long 0 + .long 1070641536 + .long 944717824 + .long 1070350471 + .long 1065120110 + .long 1027539054 + .long 0 + .long 1070641536 + .long 944717824 + .long 1070350471 + .long 1065120110 + .long 1027539054 + .long 0 + .long 1070627328 + .long 1985789952 + .long 1070398094 + .long 3635943864 + .long 3173136490 + .long 0 + .long 1070613120 + .long 2123825152 + .long 1070446348 + .long 1125219725 + .long 3175615738 + .long 0 + .long 1070598912 + .long 1078378496 + .long 1070495250 + .long 603852726 + .long 3174570526 + .long 0 + .long 1070598912 + .long 1078378496 + .long 1070495250 + .long 603852726 + .long 3174570526 + .long 0 + .long 1070573312 + .long 1537933312 + .long 1070544817 + .long 998069198 + .long 1026662908 + .long 0 + .long 1070544896 + .long 733773824 + .long 1070595068 + .long 4061058002 + .long 3174036009 + .long 0 + .long 1070544896 + .long 733773824 + .long 1070595068 + .long 4061058002 + .long 3174036009 + .long 0 + .long 1070516480 + .long 3897544704 + .long 1070621058 + .long 951856294 + .long 1026731877 + .long 0 + .long 1070516480 + .long 3897544704 + .long 1070621058 + .long 951856294 + .long 1026731877 + .long 0 + .long 1070488064 + .long 493535232 + .long 1070646897 + .long 3852369308 + .long 3173264746 + .long 0 + .long 1070459648 + .long 463249408 + .long 1070673107 + .long 2853152111 + .long 3174564937 + .long 0 + .long 1070459648 + .long 463249408 + .long 1070673107 + .long 2853152111 + .long 3174564937 + .long 0 + .long 1070431232 + .long 3186585600 + .long 1070699699 + .long 1874718356 + .long 3174139933 + .long 0 + .long 1070431232 + .long 3186585600 + .long 1070699699 + .long 1874718356 + .long 3174139933 + .long 0 + .long 1070402816 + .long 1525858304 + .long 1070726686 + .long 3039843523 + .long 1024724665 + .long 0 + .long 1070402816 + .long 1525858304 + .long 1070726686 + .long 3039843523 + .long 1024724665 + .long 0 + .long 1070374400 + .long 3425300480 + .long 1070754078 + .long 1303046649 + .long 1022401701 + .long 0 + .long 1070374400 + .long 3425300480 + .long 1070754078 + .long 1303046649 + .long 1022401701 + .long 0 + .long 1070345984 + .long 1980465152 + .long 1070781889 + .long 3188656319 + .long 1027271390 + .long 0 + .long 1070345984 + .long 1980465152 + .long 1070781889 + .long 3188656319 + .long 1027271390 + .long 0 + .long 1070317568 + .long 1352630272 + .long 1070810131 + .long 3090895658 + .long 3174564915 + .long 1352630272 + .long 1070810131 + .long 3090895658 + .long 3174564915 + .long 64 + .long 1120927744 + .long 0 + .long 1096810496 + .long 0 + .long 1064828928 + .long 0 + .long 1135607808 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 1071366144 + .long 3207479559 + .long 1062894188 + .long 3698831637 + .long 3220339442 + .long 3700832817 + .long 1073506818 + .long 1691624569 + .long 3221787401 + .long 2065628764 + .long 1075227551 + .long 1770847080 + .long 3223701774 + .long 3786517112 + .long 1077250450 + .long 1316351650 + .long 3225793313 + .type __dlog10_la_CoutTab,@object + .size __dlog10_la_CoutTab,1696 + .align 16 +.L_2il0floatpacket.88: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.88,@object + .size .L_2il0floatpacket.88,16 + .align 8 +.L_2il0floatpacket.89: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.89,@object + .size .L_2il0floatpacket.89,8 diff --git a/numpy/core/src/umath/svml/svml_z0_log10_s_la.s b/numpy/core/src/umath/svml/svml_z0_log10_s_la.s new file mode 100644 index 000000000000..4a3dbc96e9b7 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log10_s_la.s @@ -0,0 +1,754 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * log10(x) = VGETEXP(x)*log10(2) + log10(VGETMANT(x)) + * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) + * * mx = VGETMANT(x) is in [1,2) for all x>=0 + * * log10(mx) = -log10(RCP(mx)) + log10(1 +(mx*RCP(mx)-1)) + * * RCP(mx) is rounded to 4 fractional bits, + * * and the table lookup for log(RCP(mx)) is based on a small permute instruction + * * + * * LA, EP versions use interval interpolation (16 intervals) + * * + * + */ + + + .text +.L_2__routine_start___svml_log10f16_z0_0: + + .align 16,0x90 + .globl __svml_log10f16 + +__svml_log10f16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + +/* GetMant(x), normalized to [.75,1.5) for x>=0, NaN for x<0 */ + vgetmantps $11, {sae}, %zmm0, %zmm3 + vmovups __svml_slog10_data_internal_avx512(%rip), %zmm1 + vgetexpps {sae}, %zmm0, %zmm5 + vmovups 320+__svml_slog10_data_internal_avx512(%rip), %zmm10 + vpsrld $19, %zmm3, %zmm7 + vgetexpps {sae}, %zmm3, %zmm6 + vsubps {rn-sae}, %zmm1, %zmm3, %zmm11 + vpermps 64+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm1 + vpermps 128+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm2 + vsubps {rn-sae}, %zmm6, %zmm5, %zmm9 + vpermps 192+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm4 + vpermps 256+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm8 + +/* x<=0? */ + vfpclassps $94, %zmm0, %k0 + vfmadd213ps {rn-sae}, %zmm2, %zmm11, %zmm1 + vmulps {rn-sae}, %zmm10, %zmm9, %zmm12 + vfmadd213ps {rn-sae}, %zmm4, %zmm11, %zmm1 + kmovw %k0, %edx + vfmadd213ps {rn-sae}, %zmm8, %zmm11, %zmm1 + vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm1 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm1, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_slog10_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_log10f16,@function + .size __svml_log10f16,.-__svml_log10f16 +..LN__svml_log10f16.0: + +.L_2__routine_start___svml_slog10_cout_rare_internal_1: + + .align 16,0x90 + +__svml_slog10_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_12 + + + movss (%rdi), %xmm2 + xorl %ecx, %ecx + movss %xmm2, -16(%rsp) + movzwl -14(%rsp), %edx + testl $32640, %edx + jne .LBL_2_4 + + + mulss .L_2il0floatpacket.77(%rip), %xmm2 + movl $-40, %ecx + movss %xmm2, -16(%rsp) + +.LBL_2_4: + + pxor %xmm0, %xmm0 + comiss %xmm0, %xmm2 + jbe .LBL_2_8 + + + movaps %xmm2, %xmm1 + subss .L_2il0floatpacket.93(%rip), %xmm1 + movss %xmm1, -20(%rsp) + andb $127, -17(%rsp) + movss -20(%rsp), %xmm0 + comiss .L_2il0floatpacket.78(%rip), %xmm0 + jbe .LBL_2_7 + + + movss %xmm2, -20(%rsp) + pxor %xmm8, %xmm8 + movzwl -18(%rsp), %edi + lea __slog10_la_CoutTab(%rip), %r10 + andl $-32641, %edi + addl $16256, %edi + movw %di, -18(%rsp) + movss -20(%rsp), %xmm3 + movaps %xmm3, %xmm0 + movss .L_2il0floatpacket.80(%rip), %xmm2 + movaps %xmm2, %xmm1 + addss .L_2il0floatpacket.79(%rip), %xmm0 + addss %xmm3, %xmm1 + movss %xmm0, -24(%rsp) + movl -24(%rsp), %r8d + movss %xmm1, -24(%rsp) + andl $127, %r8d + movss -24(%rsp), %xmm9 + movss .L_2il0floatpacket.89(%rip), %xmm6 + subss %xmm2, %xmm9 + movzwl -14(%rsp), %edx + lea (%r8,%r8,2), %r9d + movss (%r10,%r9,4), %xmm7 + andl $32640, %edx + shrl $7, %edx + subss %xmm9, %xmm3 + mulss %xmm7, %xmm9 + mulss %xmm3, %xmm7 + subss .L_2il0floatpacket.81(%rip), %xmm9 + movaps %xmm9, %xmm4 + lea -127(%rcx,%rdx), %ecx + cvtsi2ss %ecx, %xmm8 + addss %xmm7, %xmm4 + mulss %xmm4, %xmm6 + movss .L_2il0floatpacket.90(%rip), %xmm10 + mulss %xmm8, %xmm10 + addss .L_2il0floatpacket.88(%rip), %xmm6 + addss 4(%r10,%r9,4), %xmm10 + mulss %xmm4, %xmm6 + addss %xmm9, %xmm10 + addss .L_2il0floatpacket.87(%rip), %xmm6 + mulss %xmm4, %xmm6 + movss .L_2il0floatpacket.91(%rip), %xmm5 + mulss %xmm5, %xmm8 + addss .L_2il0floatpacket.86(%rip), %xmm6 + addss 8(%r10,%r9,4), %xmm8 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.85(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.84(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.83(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.82(%rip), %xmm6 + mulss %xmm6, %xmm9 + mulss %xmm7, %xmm6 + addss %xmm6, %xmm8 + addss %xmm7, %xmm8 + addss %xmm8, %xmm9 + addss %xmm9, %xmm10 + movss %xmm10, (%rsi) + ret + +.LBL_2_7: + + movss .L_2il0floatpacket.81(%rip), %xmm0 + mulss %xmm0, %xmm1 + movss .L_2il0floatpacket.89(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.88(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.87(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.86(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.85(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.84(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.83(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.82(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss %xmm1, %xmm2 + movss %xmm2, (%rsi) + ret + +.LBL_2_8: + + ucomiss %xmm0, %xmm2 + jp .LBL_2_9 + je .LBL_2_11 + +.LBL_2_9: + + divss %xmm0, %xmm0 + movss %xmm0, (%rsi) + movl $1, %eax + + + ret + +.LBL_2_11: + + movss .L_2il0floatpacket.92(%rip), %xmm1 + movl $2, %eax + divss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_12: + + movb 3(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_14 + +.LBL_2_13: + + movss (%rdi), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_14: + + testl $8388607, (%rdi) + jne .LBL_2_13 + + + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_slog10_cout_rare_internal,@function + .size __svml_slog10_cout_rare_internal,.-__svml_slog10_cout_rare_internal +..LN__svml_slog10_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_slog10_data_internal_avx512: + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 3184111259 + .long 3181837556 + .long 3180047478 + .long 3177957936 + .long 3175655835 + .long 3173780127 + .long 3172237531 + .long 3170958066 + .long 3196205737 + .long 3194315592 + .long 3192585145 + .long 3191105685 + .long 3189833727 + .long 3188734475 + .long 3187779868 + .long 3186223182 + .long 1041488008 + .long 1041279100 + .long 1040946627 + .long 1040547595 + .long 1040048184 + .long 1039171801 + .long 1038306334 + .long 1037468467 + .long 1034710670 + .long 1037388369 + .long 1039339328 + .long 1040458589 + .long 1040937011 + .long 1041247376 + .long 1041427373 + .long 1041506296 + .long 3193854619 + .long 3193841271 + .long 3193799669 + .long 3193724950 + .long 3193617675 + .long 3193480957 + .long 3193318914 + .long 3193135864 + .long 3194544764 + .long 3194251079 + .long 3194067571 + .long 3193958490 + .long 3193898352 + .long 3193869008 + .long 3193857579 + .long 3193854984 + .long 1054759896 + .long 1054759749 + .long 1054758872 + .long 1054756529 + .long 1054752055 + .long 1054744934 + .long 1054734809 + .long 1054721467 + .long 1054738669 + .long 1054749415 + .long 1054755175 + .long 1054758032 + .long 1054759295 + .long 1054759760 + .long 1054759882 + .long 1054759897 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .long 1050288283 + .type __svml_slog10_data_internal_avx512,@object + .size __svml_slog10_data_internal_avx512,384 + .align 32 +__slog10_la_CoutTab: + .long 1121868800 + .long 0 + .long 0 + .long 1121641104 + .long 1004535808 + .long 912917177 + .long 1121413408 + .long 1013055488 + .long 3065901602 + .long 1121185712 + .long 1017839616 + .long 3083361151 + .long 1120958016 + .long 1021673472 + .long 929297206 + .long 1120844168 + .long 1023524864 + .long 3077496589 + .long 1120616472 + .long 1025499136 + .long 3070500046 + .long 1120388776 + .long 1027506176 + .long 912271551 + .long 1120274928 + .long 1028521984 + .long 927716856 + .long 1120047232 + .long 1030586368 + .long 923757491 + .long 1119933384 + .long 1031634944 + .long 3056752848 + .long 1119705688 + .long 1032775680 + .long 917029265 + .long 1119591840 + .long 1033314304 + .long 3065085585 + .long 1119364144 + .long 1034403840 + .long 3064614024 + .long 1119250296 + .long 1034954752 + .long 921091539 + .long 1119136448 + .long 1035513856 + .long 3057436454 + .long 1118908752 + .long 1036644352 + .long 922468856 + .long 1118794904 + .long 1037219840 + .long 3049155845 + .long 1118681056 + .long 1037799424 + .long 904301451 + .long 1118567208 + .long 1038385152 + .long 908617625 + .long 1118453360 + .long 1038977024 + .long 905362229 + .long 1118225664 + .long 1040179200 + .long 3027570914 + .long 1118111816 + .long 1040488448 + .long 882280038 + .long 1117997968 + .long 1040796672 + .long 911375775 + .long 1117884120 + .long 1041108480 + .long 904500572 + .long 1117770272 + .long 1041423872 + .long 3057579304 + .long 1117656424 + .long 1041742336 + .long 3053334705 + .long 1117542576 + .long 1042064384 + .long 3053389931 + .long 1117428728 + .long 1042390016 + .long 3051561465 + .long 1117314880 + .long 1042719232 + .long 3011187895 + .long 1117201032 + .long 1043052544 + .long 3059907089 + .long 1117087184 + .long 1043389440 + .long 3057005374 + .long 1116973336 + .long 1043729920 + .long 911932638 + .long 1116859488 + .long 1044075008 + .long 892958461 + .long 1116859488 + .long 1044075008 + .long 892958461 + .long 1116745640 + .long 1044424192 + .long 3048660547 + .long 1116631792 + .long 1044777472 + .long 3049032043 + .long 1116517944 + .long 1045134848 + .long 906867152 + .long 1116404096 + .long 1045496832 + .long 911484894 + .long 1116404096 + .long 1045496832 + .long 911484894 + .long 1116290248 + .long 1045863424 + .long 912580963 + .long 1116176400 + .long 1046235136 + .long 3058440244 + .long 1116062552 + .long 1046610944 + .long 895945194 + .long 1116062552 + .long 1046610944 + .long 895945194 + .long 1115948704 + .long 1046991872 + .long 904357324 + .long 1115834856 + .long 1047377920 + .long 902293870 + .long 1115721008 + .long 1047769088 + .long 907149878 + .long 1115721008 + .long 1047769088 + .long 907149878 + .long 1115529456 + .long 1048165888 + .long 3052029263 + .long 1115301760 + .long 1048567808 + .long 3035959522 + .long 1115301760 + .long 1048567808 + .long 3035959522 + .long 1115074064 + .long 1048775680 + .long 892998645 + .long 1115074064 + .long 1048775680 + .long 892998645 + .long 1114846368 + .long 1048982400 + .long 881767775 + .long 1114618672 + .long 1049192064 + .long 893839142 + .long 1114618672 + .long 1049192064 + .long 893839142 + .long 1114390976 + .long 1049404800 + .long 896498651 + .long 1114390976 + .long 1049404800 + .long 896498651 + .long 1114163280 + .long 1049620736 + .long 3033695903 + .long 1114163280 + .long 1049620736 + .long 3033695903 + .long 1113935584 + .long 1049839872 + .long 3029986056 + .long 1113935584 + .long 1049839872 + .long 3029986056 + .long 1113707888 + .long 1050062336 + .long 884671939 + .long 1113707888 + .long 1050062336 + .long 884671939 + .long 1113480192 + .long 1050288256 + .long 894707678 + .long 1050279936 + .long 964848148 + .long 1207959616 + .long 1174405120 + .long 1002438656 + .long 1400897536 + .long 0 + .long 1065353216 + .long 1121868800 + .long 3212771328 + .long 3079888218 + .long 870463078 + .long 2957202361 + .long 749987585 + .long 2838272395 + .long 631921661 + .long 2720751022 + .type __slog10_la_CoutTab,@object + .size __slog10_la_CoutTab,848 + .align 4 +.L_2il0floatpacket.77: + .long 0x53800000 + .type .L_2il0floatpacket.77,@object + .size .L_2il0floatpacket.77,4 + .align 4 +.L_2il0floatpacket.78: + .long 0x3bc00000 + .type .L_2il0floatpacket.78,@object + .size .L_2il0floatpacket.78,4 + .align 4 +.L_2il0floatpacket.79: + .long 0x48000040 + .type .L_2il0floatpacket.79,@object + .size .L_2il0floatpacket.79,4 + .align 4 +.L_2il0floatpacket.80: + .long 0x46000000 + .type .L_2il0floatpacket.80,@object + .size .L_2il0floatpacket.80,4 + .align 4 +.L_2il0floatpacket.81: + .long 0x42de5c00 + .type .L_2il0floatpacket.81,@object + .size .L_2il0floatpacket.81,4 + .align 4 +.L_2il0floatpacket.82: + .long 0xbf7f0000 + .type .L_2il0floatpacket.82,@object + .size .L_2il0floatpacket.82,4 + .align 4 +.L_2il0floatpacket.83: + .long 0xb7935d5a + .type .L_2il0floatpacket.83,@object + .size .L_2il0floatpacket.83,4 + .align 4 +.L_2il0floatpacket.84: + .long 0x33e23666 + .type .L_2il0floatpacket.84,@object + .size .L_2il0floatpacket.84,4 + .align 4 +.L_2il0floatpacket.85: + .long 0xb04353b9 + .type .L_2il0floatpacket.85,@object + .size .L_2il0floatpacket.85,4 + .align 4 +.L_2il0floatpacket.86: + .long 0x2cb3e701 + .type .L_2il0floatpacket.86,@object + .size .L_2il0floatpacket.86,4 + .align 4 +.L_2il0floatpacket.87: + .long 0xa92c998b + .type .L_2il0floatpacket.87,@object + .size .L_2il0floatpacket.87,4 + .align 4 +.L_2il0floatpacket.88: + .long 0x25aa5bfd + .type .L_2il0floatpacket.88,@object + .size .L_2il0floatpacket.88,4 + .align 4 +.L_2il0floatpacket.89: + .long 0xa22b5dae + .type .L_2il0floatpacket.89,@object + .size .L_2il0floatpacket.89,4 + .align 4 +.L_2il0floatpacket.90: + .long 0x3e9a0000 + .type .L_2il0floatpacket.90,@object + .size .L_2il0floatpacket.90,4 + .align 4 +.L_2il0floatpacket.91: + .long 0x39826a14 + .type .L_2il0floatpacket.91,@object + .size .L_2il0floatpacket.91,4 + .align 4 +.L_2il0floatpacket.92: + .long 0xbf800000 + .type .L_2il0floatpacket.92,@object + .size .L_2il0floatpacket.92,4 + .align 4 +.L_2il0floatpacket.93: + .long 0x3f800000 + .type .L_2il0floatpacket.93,@object + .size .L_2il0floatpacket.93,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log1p_d_la.s b/numpy/core/src/umath/svml/svml_z0_log1p_d_la.s new file mode 100644 index 000000000000..6073965a6441 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log1p_d_la.s @@ -0,0 +1,1132 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * Compute 1+_VARG1 in high-low parts. The low part will be + * * incorporated in the reduced argument (with proper scaling). + * * log(x) = VGETEXP(x)*log(2) + log(VGETMANT(x)) + * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) + * * mx = VGETMANT(x) is in [1,2) for all x>=0 + * * log(mx) = -log(RCP(mx)) + log(1 +(mx*RCP(mx)-1)) + * * RCP(mx) is rounded to 4 fractional bits, + * * and the table lookup for log(RCP(mx)) is based on a small permute instruction + * * + * + */ + + + .text +.L_2__routine_start___svml_log1p8_z0_0: + + .align 16,0x90 + .globl __svml_log1p8 + +__svml_log1p8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 128+__svml_dlog1p_data_internal_avx512(%rip), %zmm7 + vmovups 192+__svml_dlog1p_data_internal_avx512(%rip), %zmm14 + vmovaps %zmm0, %zmm9 + vaddpd {rn-sae}, %zmm9, %zmm7, %zmm11 + vandpd %zmm14, %zmm9, %zmm8 + +/* compute 1+x as high, low parts */ + vmaxpd {sae}, %zmm9, %zmm7, %zmm10 + vminpd {sae}, %zmm9, %zmm7, %zmm12 + +/* GetMant(x), normalized to [1,2) for x>=0, NaN for x<0 */ + vgetmantpd $8, {sae}, %zmm11, %zmm6 + +/* GetExp(x) */ + vgetexppd {sae}, %zmm11, %zmm5 + vsubpd {rn-sae}, %zmm10, %zmm11, %zmm13 + +/* DblRcp ~ 1/Mantissa */ + vrcp14pd %zmm6, %zmm15 + +/* Start polynomial evaluation */ + vmovups 320+__svml_dlog1p_data_internal_avx512(%rip), %zmm10 + vmovups 448+__svml_dlog1p_data_internal_avx512(%rip), %zmm11 + +/* Xl */ + vsubpd {rn-sae}, %zmm13, %zmm12, %zmm2 + vxorpd %zmm14, %zmm5, %zmm3 + +/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ + vrndscalepd $88, {sae}, %zmm15, %zmm4 + vmovups 576+__svml_dlog1p_data_internal_avx512(%rip), %zmm12 + vmovups 512+__svml_dlog1p_data_internal_avx512(%rip), %zmm14 + vmovups 704+__svml_dlog1p_data_internal_avx512(%rip), %zmm13 + +/* Xl*2^(-Expon) */ + vscalefpd {rn-sae}, %zmm3, %zmm2, %zmm1 + +/* Reduced argument: R = DblRcp*(Mantissa+Xl) - 1 */ + vfmsub213pd {rn-sae}, %zmm7, %zmm4, %zmm6 + vmovups __svml_dlog1p_data_internal_avx512(%rip), %zmm3 + +/* + * Table lookup + * Prepare exponent correction: DblRcp<0.75? + */ + vmovups 256+__svml_dlog1p_data_internal_avx512(%rip), %zmm2 + +/* Prepare table index */ + vpsrlq $48, %zmm4, %zmm0 + vfmadd231pd {rn-sae}, %zmm4, %zmm1, %zmm6 + vmovups 384+__svml_dlog1p_data_internal_avx512(%rip), %zmm1 + vcmppd $17, {sae}, %zmm2, %zmm4, %k1 + vcmppd $4, {sae}, %zmm6, %zmm6, %k0 + vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm1 + vmovups 640+__svml_dlog1p_data_internal_avx512(%rip), %zmm10 + vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 + vmovups 832+__svml_dlog1p_data_internal_avx512(%rip), %zmm4 + vpermt2pd 64+__svml_dlog1p_data_internal_avx512(%rip), %zmm0, %zmm3 + +/* add 1 to Expon if DblRcp<0.75 */ + vaddpd {rn-sae}, %zmm7, %zmm5, %zmm5{%k1} + +/* R^2 */ + vmulpd {rn-sae}, %zmm6, %zmm6, %zmm0 + vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm10 + vmovups 768+__svml_dlog1p_data_internal_avx512(%rip), %zmm12 + vmulpd {rn-sae}, %zmm0, %zmm0, %zmm15 + vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12 + vfmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm1 + kmovw %k0, %edx + vfmadd213pd {rn-sae}, %zmm12, %zmm0, %zmm10 + +/* polynomial */ + vfmadd213pd {rn-sae}, %zmm10, %zmm15, %zmm1 + vfmadd213pd {rn-sae}, %zmm6, %zmm0, %zmm1 + vaddpd {rn-sae}, %zmm1, %zmm3, %zmm6 + vfmadd213pd {rn-sae}, %zmm6, %zmm4, %zmm5 + vorpd %zmm8, %zmm5, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm9, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dlog1p_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_log1p8,@function + .size __svml_log1p8,.-__svml_log1p8 +..LN__svml_log1p8.0: + +.L_2__routine_start___svml_dlog1p_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dlog1p_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movsd .L_2il0floatpacket.81(%rip), %xmm3 + movsd (%rdi), %xmm2 + addsd %xmm3, %xmm2 + movsd %xmm2, -16(%rsp) + movzwl -10(%rsp), %edx + andl $32752, %edx + cmpl $32752, %edx + je .LBL_2_12 + + + movsd %xmm2, -8(%rsp) + xorl %ecx, %ecx + movzwl -2(%rsp), %edx + testl $32752, %edx + jne .LBL_2_4 + + + mulsd 1600+__dlog1p_la_CoutTab(%rip), %xmm2 + movl $-60, %ecx + movsd %xmm2, -8(%rsp) + +.LBL_2_4: + + movsd 1608+__dlog1p_la_CoutTab(%rip), %xmm0 + comisd %xmm0, %xmm2 + jbe .LBL_2_8 + + + movaps %xmm2, %xmm1 + subsd %xmm3, %xmm1 + movsd %xmm1, -16(%rsp) + andb $127, -9(%rsp) + movsd -16(%rsp), %xmm0 + comisd 1592+__dlog1p_la_CoutTab(%rip), %xmm0 + jbe .LBL_2_7 + + + movsd %xmm2, -16(%rsp) + pxor %xmm7, %xmm7 + movzwl -10(%rsp), %edi + lea __dlog1p_la_CoutTab(%rip), %r10 + andl $-32753, %edi + addl $16368, %edi + movw %di, -10(%rsp) + movsd -16(%rsp), %xmm4 + movaps %xmm4, %xmm1 + movaps %xmm4, %xmm2 + movsd 1672+__dlog1p_la_CoutTab(%rip), %xmm8 + movzwl -2(%rsp), %edx + andl $32752, %edx + addsd 1576+__dlog1p_la_CoutTab(%rip), %xmm1 + addsd 1584+__dlog1p_la_CoutTab(%rip), %xmm2 + movsd %xmm1, -24(%rsp) + movl -24(%rsp), %r8d + movsd %xmm2, -24(%rsp) + andl $127, %r8d + movsd -24(%rsp), %xmm5 + movsd 1560+__dlog1p_la_CoutTab(%rip), %xmm9 + movsd 1568+__dlog1p_la_CoutTab(%rip), %xmm0 + shrl $4, %edx + subsd 1584+__dlog1p_la_CoutTab(%rip), %xmm5 + lea (%r8,%r8,2), %r9d + movsd (%r10,%r9,8), %xmm6 + lea -1023(%rcx,%rdx), %ecx + cvtsi2sd %ecx, %xmm7 + subsd %xmm5, %xmm4 + mulsd %xmm6, %xmm5 + mulsd %xmm7, %xmm9 + subsd %xmm3, %xmm5 + mulsd %xmm4, %xmm6 + mulsd %xmm0, %xmm7 + addsd 8(%r10,%r9,8), %xmm9 + addsd 16(%r10,%r9,8), %xmm7 + addsd %xmm5, %xmm9 + addsd %xmm6, %xmm7 + movaps %xmm5, %xmm3 + addsd %xmm6, %xmm3 + mulsd %xmm3, %xmm8 + addsd 1664+__dlog1p_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1656+__dlog1p_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1648+__dlog1p_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1640+__dlog1p_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1632+__dlog1p_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1624+__dlog1p_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + mulsd %xmm3, %xmm8 + addsd %xmm7, %xmm8 + addsd %xmm8, %xmm9 + movsd %xmm9, (%rsi) + ret + +.LBL_2_7: + + movsd 1672+__dlog1p_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1664+__dlog1p_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1656+__dlog1p_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1648+__dlog1p_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1640+__dlog1p_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1632+__dlog1p_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1624+__dlog1p_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + mulsd %xmm1, %xmm0 + addsd %xmm1, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_8: + + ucomisd %xmm0, %xmm2 + jp .LBL_2_9 + je .LBL_2_11 + +.LBL_2_9: + + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + movl $1, %eax + + + ret + +.LBL_2_11: + + movsd 1616+__dlog1p_la_CoutTab(%rip), %xmm1 + movl $2, %eax + xorps .L_2il0floatpacket.80(%rip), %xmm1 + divsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + ret + +.LBL_2_12: + + movb -9(%rsp), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_14 + +.LBL_2_13: + + mulsd %xmm2, %xmm2 + movsd %xmm2, (%rsi) + ret + +.LBL_2_14: + + testl $1048575, -12(%rsp) + jne .LBL_2_13 + + + cmpl $0, -16(%rsp) + jne .LBL_2_13 + + + movsd 1608+__dlog1p_la_CoutTab(%rip), %xmm0 + movl $1, %eax + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dlog1p_cout_rare_internal,@function + .size __svml_dlog1p_cout_rare_internal,.-__svml_dlog1p_cout_rare_internal +..LN__svml_dlog1p_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dlog1p_data_internal_avx512: + .long 0 + .long 0 + .long 3222364838 + .long 3215919664 + .long 1848308454 + .long 3216910087 + .long 1890030548 + .long 3217424176 + .long 3348797986 + .long 3217854455 + .long 2880153102 + .long 3218171740 + .long 3256639170 + .long 3218366859 + .long 4139503623 + .long 3218553303 + .long 288676754 + .long 1070754146 + .long 1823716217 + .long 1070569756 + .long 1015732707 + .long 1070240749 + .long 1800682930 + .long 1069924160 + .long 2183652476 + .long 1069619086 + .long 1566132617 + .long 1069101918 + .long 3047045639 + .long 1068533144 + .long 2313634884 + .long 1067467101 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .type __svml_dlog1p_data_internal_avx512,@object + .size __svml_dlog1p_data_internal_avx512,1152 + .align 32 +__dlog1p_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072660480 + .long 1486880768 + .long 1066410070 + .long 1813744607 + .long 3179892593 + .long 0 + .long 1072629760 + .long 377487360 + .long 1067416219 + .long 919019713 + .long 3179241129 + .long 0 + .long 1072599040 + .long 1513619456 + .long 1067944025 + .long 874573033 + .long 3178512940 + .long 0 + .long 1072570368 + .long 3221749760 + .long 1068427825 + .long 4181665006 + .long 3177478212 + .long 0 + .long 1072541696 + .long 4162322432 + .long 1068708823 + .long 627020255 + .long 1028629941 + .long 0 + .long 1072513024 + .long 183107584 + .long 1068957907 + .long 2376703469 + .long 1030233118 + .long 0 + .long 1072486400 + .long 1053425664 + .long 1069192557 + .long 696277142 + .long 1030474863 + .long 0 + .long 1072459776 + .long 3996123136 + .long 1069430535 + .long 2630798680 + .long 1028792016 + .long 0 + .long 1072435200 + .long 3452764160 + .long 1069600382 + .long 624954044 + .long 3177101741 + .long 0 + .long 1072409600 + .long 207650816 + .long 1069717971 + .long 3272735636 + .long 3175176575 + .long 0 + .long 1072386048 + .long 2647228416 + .long 1069827627 + .long 3594228712 + .long 1029303785 + .long 0 + .long 1072362496 + .long 2712010752 + .long 1069938736 + .long 3653242769 + .long 3176839013 + .long 0 + .long 1072338944 + .long 374439936 + .long 1070051337 + .long 4072775574 + .long 3176577495 + .long 0 + .long 1072316416 + .long 3707174912 + .long 1070160474 + .long 1486946159 + .long 1023930920 + .long 0 + .long 1072294912 + .long 1443954688 + .long 1070265993 + .long 293532967 + .long 3176278277 + .long 0 + .long 1072273408 + .long 127762432 + .long 1070372856 + .long 3404145447 + .long 3177023955 + .long 0 + .long 1072252928 + .long 2053832704 + .long 1070475911 + .long 1575076358 + .long 1029048544 + .long 0 + .long 1072232448 + .long 3194093568 + .long 1070580248 + .long 1864169120 + .long 1026866084 + .long 0 + .long 1072212992 + .long 3917201408 + .long 1070638340 + .long 2362145246 + .long 3175606197 + .long 0 + .long 1072193536 + .long 3417112576 + .long 1070689116 + .long 70087871 + .long 3174183577 + .long 0 + .long 1072175104 + .long 4226777088 + .long 1070737793 + .long 1620410586 + .long 3174700065 + .long 0 + .long 1072156672 + .long 3168870400 + .long 1070787042 + .long 311238082 + .long 1025781772 + .long 0 + .long 1072139264 + .long 2150580224 + .long 1070834092 + .long 1664262457 + .long 3175299224 + .long 0 + .long 1072120832 + .long 4095672320 + .long 1070884491 + .long 1657121015 + .long 3174674199 + .long 0 + .long 1072104448 + .long 2595577856 + .long 1070929805 + .long 2014006823 + .long 3175423830 + .long 0 + .long 1072087040 + .long 3747176448 + .long 1070978493 + .long 144991708 + .long 3171552042 + .long 0 + .long 1072070656 + .long 1050435584 + .long 1071024840 + .long 3386227432 + .long 1027876916 + .long 0 + .long 1072055296 + .long 255516672 + .long 1071068760 + .long 2637594316 + .long 1028049573 + .long 0 + .long 1072038912 + .long 1640783872 + .long 1071116120 + .long 893247007 + .long 1028452162 + .long 0 + .long 1072023552 + .long 2940411904 + .long 1071161011 + .long 813240633 + .long 1027664048 + .long 0 + .long 1072009216 + .long 882917376 + .long 1071203348 + .long 2376597551 + .long 3175828767 + .long 0 + .long 1071993856 + .long 213966848 + .long 1071249188 + .long 2977204125 + .long 1028350609 + .long 0 + .long 1071979520 + .long 2921504768 + .long 1071292428 + .long 523218347 + .long 1028007004 + .long 0 + .long 1071965184 + .long 3186655232 + .long 1071336119 + .long 2352907891 + .long 1026967097 + .long 0 + .long 1071951872 + .long 2653364224 + .long 1071377101 + .long 2453418583 + .long 3174349512 + .long 0 + .long 1071938560 + .long 3759783936 + .long 1071418487 + .long 3685870403 + .long 3175415611 + .long 0 + .long 1071925248 + .long 2468364288 + .long 1071460286 + .long 1578908842 + .long 3175510517 + .long 0 + .long 1071911936 + .long 81903616 + .long 1071502506 + .long 770710269 + .long 1026742353 + .long 0 + .long 1071899648 + .long 2799321088 + .long 1071541858 + .long 3822266185 + .long 1028434427 + .long 0 + .long 1071886336 + .long 2142265344 + .long 1071584911 + .long 175901806 + .long 3173871540 + .long 0 + .long 1071874048 + .long 2944024576 + .long 1071625048 + .long 2747360403 + .long 1027672159 + .long 0 + .long 1071862784 + .long 3434301440 + .long 1071653426 + .long 4194662196 + .long 3173893003 + .long 0 + .long 1071850496 + .long 1547755520 + .long 1071673870 + .long 4248764681 + .long 3172759087 + .long 0 + .long 1071839232 + .long 4246986752 + .long 1071692786 + .long 2840205638 + .long 3174430911 + .long 0 + .long 1071826944 + .long 3418390528 + .long 1071713619 + .long 3041880823 + .long 1025440860 + .long 0 + .long 1071816704 + .long 4143093760 + .long 1071731139 + .long 2727587401 + .long 3173965207 + .long 0 + .long 1071805440 + .long 3121326080 + .long 1071750582 + .long 3173887692 + .long 3174190163 + .long 0 + .long 1071794176 + .long 1852893184 + .long 1071770207 + .long 3951060252 + .long 1027348295 + .long 0 + .long 1071783936 + .long 3636379648 + .long 1071788208 + .long 1684924001 + .long 3174777086 + .long 0 + .long 1071773696 + .long 516505600 + .long 1071806366 + .long 429181199 + .long 3173211033 + .long 0 + .long 1071763456 + .long 4186185728 + .long 1071824681 + .long 2044904577 + .long 3174967132 + .long 0 + .long 1071753216 + .long 877596672 + .long 1071843159 + .long 1396318105 + .long 3173959727 + .long 0 + .long 1071742976 + .long 2912784384 + .long 1071861800 + .long 448136789 + .long 3174814192 + .long 0 + .long 1071733760 + .long 3722825728 + .long 1071878720 + .long 714165913 + .long 3173439560 + .long 0 + .long 1071723520 + .long 2522374144 + .long 1071897682 + .long 3227240353 + .long 3173394323 + .long 0 + .long 1071714304 + .long 4165410816 + .long 1071914895 + .long 1365684961 + .long 3174365060 + .long 0 + .long 1071705088 + .long 3477135360 + .long 1071932251 + .long 368482985 + .long 3174140821 + .long 0 + .long 1071695872 + .long 2079455232 + .long 1071949752 + .long 1320576317 + .long 1026822714 + .long 0 + .long 1071687680 + .long 851795968 + .long 1071965432 + .long 3702467026 + .long 1025224125 + .long 0 + .long 1071678464 + .long 647743488 + .long 1071983213 + .long 772992109 + .long 3174038459 + .long 0 + .long 1071670272 + .long 26537984 + .long 1071999146 + .long 2360214276 + .long 3174861275 + .long 0 + .long 1071661056 + .long 1547061248 + .long 1072017216 + .long 2886781435 + .long 1026423395 + .long 0 + .long 1071652864 + .long 2854492160 + .long 1072033410 + .long 215631550 + .long 1025638968 + .long 0 + .long 1071644672 + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 64 + .long 1120927744 + .long 0 + .long 1094713344 + .long 0 + .long 1065615360 + .long 0 + .long 1135607808 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 3219128320 + .long 1431655955 + .long 1070945621 + .long 610 + .long 3218079744 + .long 2545118337 + .long 1070176665 + .long 1378399119 + .long 3217380693 + .long 612435357 + .long 1069697472 + .long 94536557 + .long 3217031348 + .type __dlog1p_la_CoutTab,@object + .size __dlog1p_la_CoutTab,1680 + .align 16 +.L_2il0floatpacket.80: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.80,@object + .size .L_2il0floatpacket.80,16 + .align 8 +.L_2il0floatpacket.81: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.81,@object + .size .L_2il0floatpacket.81,8 diff --git a/numpy/core/src/umath/svml/svml_z0_log1p_s_la.s b/numpy/core/src/umath/svml/svml_z0_log1p_s_la.s new file mode 100644 index 000000000000..c6eeec2a4297 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log1p_s_la.s @@ -0,0 +1,1650 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_log1pf16_z0_0: + + .align 16,0x90 + .globl __svml_log1pf16 + +__svml_log1pf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovups 1984+__svml_slog1p_data_internal(%rip), %zmm2 + +/* reduction: compute r,n */ + vmovups 2688+__svml_slog1p_data_internal(%rip), %zmm12 + vmovups 1088+__svml_slog1p_data_internal(%rip), %zmm4 + vmovaps %zmm0, %zmm3 + +/* compute 1+x as high, low parts */ + vmaxps {sae}, %zmm3, %zmm2, %zmm5 + vminps {sae}, %zmm3, %zmm2, %zmm7 + vandnps %zmm3, %zmm4, %zmm1 + vpternlogd $255, %zmm4, %zmm4, %zmm4 + vaddps {rn-sae}, %zmm7, %zmm5, %zmm9 + vpsubd %zmm12, %zmm9, %zmm10 + vsubps {rn-sae}, %zmm9, %zmm5, %zmm6 + +/* check argument value ranges */ + vpaddd 2560+__svml_slog1p_data_internal(%rip), %zmm9, %zmm8 + vpsrad $23, %zmm10, %zmm13 + vmovups 2304+__svml_slog1p_data_internal(%rip), %zmm9 + vpcmpd $5, 2624+__svml_slog1p_data_internal(%rip), %zmm8, %k1 + vpslld $23, %zmm13, %zmm14 + vaddps {rn-sae}, %zmm7, %zmm6, %zmm15 + vcvtdq2ps {rn-sae}, %zmm13, %zmm0 + vpsubd %zmm14, %zmm2, %zmm13 + vmovups 2496+__svml_slog1p_data_internal(%rip), %zmm7 + vmovups 2048+__svml_slog1p_data_internal(%rip), %zmm14 + vmulps {rn-sae}, %zmm13, %zmm15, %zmm6 + vpandd 2752+__svml_slog1p_data_internal(%rip), %zmm10, %zmm11 + vpaddd %zmm12, %zmm11, %zmm5 + vmovups 2240+__svml_slog1p_data_internal(%rip), %zmm10 + vmovups 2176+__svml_slog1p_data_internal(%rip), %zmm11 + vmovups 2112+__svml_slog1p_data_internal(%rip), %zmm12 + +/* polynomial evaluation */ + vsubps {rn-sae}, %zmm2, %zmm5, %zmm2 + vaddps {rn-sae}, %zmm6, %zmm2, %zmm15 + vmovups 2432+__svml_slog1p_data_internal(%rip), %zmm2 + vfmadd231ps {rn-sae}, %zmm15, %zmm7, %zmm2 + vpandnd %zmm8, %zmm8, %zmm4{%k1} + vmovups 2368+__svml_slog1p_data_internal(%rip), %zmm8 + +/* combine and get argument value range mask */ + vptestmd %zmm4, %zmm4, %k0 + vfmadd213ps {rn-sae}, %zmm8, %zmm15, %zmm2 + kmovw %k0, %edx + vfmadd213ps {rn-sae}, %zmm9, %zmm15, %zmm2 + vfmadd213ps {rn-sae}, %zmm10, %zmm15, %zmm2 + vfmadd213ps {rn-sae}, %zmm11, %zmm15, %zmm2 + vfmadd213ps {rn-sae}, %zmm12, %zmm15, %zmm2 + vfmadd213ps {rn-sae}, %zmm14, %zmm15, %zmm2 + vmulps {rn-sae}, %zmm15, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm15, %zmm15, %zmm4 + +/* final reconstruction */ + vmovups 2816+__svml_slog1p_data_internal(%rip), %zmm15 + vfmadd213ps {rn-sae}, %zmm4, %zmm15, %zmm0 + vorps %zmm1, %zmm0, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm3, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_slog1p_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_log1pf16,@function + .size __svml_log1pf16,.-__svml_log1pf16 +..LN__svml_log1pf16.0: + +.L_2__routine_start___svml_slog1p_cout_rare_internal_1: + + .align 16,0x90 + +__svml_slog1p_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movss .L_2il0floatpacket.90(%rip), %xmm1 + xorb %r8b, %r8b + movss (%rdi), %xmm5 + addss %xmm1, %xmm5 + movss %xmm5, -20(%rsp) + movzwl -18(%rsp), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_15 + + + movss %xmm5, -16(%rsp) + xorl %ecx, %ecx + movzwl -14(%rsp), %edx + testl $32640, %edx + jne .LBL_2_4 + + + mulss .L_2il0floatpacket.75(%rip), %xmm5 + movb $1, %r8b + movss %xmm5, -16(%rsp) + movl $-40, %ecx + +.LBL_2_4: + + pxor %xmm3, %xmm3 + comiss %xmm3, %xmm5 + jbe .LBL_2_10 + + + movaps %xmm5, %xmm2 + subss %xmm1, %xmm2 + movss %xmm2, -20(%rsp) + andb $127, -17(%rsp) + movss -20(%rsp), %xmm0 + comiss .L_2il0floatpacket.76(%rip), %xmm0 + jbe .LBL_2_9 + + + movzwl -14(%rsp), %edx + pxor %xmm6, %xmm6 + andl $32640, %edx + shrl $7, %edx + lea -127(%rcx,%rdx), %ecx + cvtsi2ss %ecx, %xmm6 + cmpb $1, %r8b + je .LBL_2_13 + + + movss .L_2il0floatpacket.86(%rip), %xmm4 + movss .L_2il0floatpacket.87(%rip), %xmm0 + mulss %xmm6, %xmm4 + mulss %xmm0, %xmm6 + +.LBL_2_8: + + movss %xmm5, -20(%rsp) + movaps %xmm4, %xmm9 + movzwl -18(%rsp), %edx + lea __slog1p_la_CoutTab(%rip), %r8 + andl $-32641, %edx + addl $16256, %edx + movw %dx, -18(%rsp) + movss -20(%rsp), %xmm8 + movaps %xmm8, %xmm2 + movss .L_2il0floatpacket.89(%rip), %xmm7 + addss .L_2il0floatpacket.88(%rip), %xmm2 + movss %xmm2, -24(%rsp) + movl -24(%rsp), %ecx + andl $127, %ecx + lea (%rcx,%rcx,2), %edi + movss 4(%r8,%rdi,4), %xmm5 + movss (%r8,%rdi,4), %xmm0 + addss %xmm5, %xmm9 + addss 8(%r8,%rdi,4), %xmm6 + movaps %xmm9, %xmm3 + subss %xmm4, %xmm3 + movss %xmm3, -24(%rsp) + movss -24(%rsp), %xmm4 + subss %xmm4, %xmm5 + movss %xmm5, -24(%rsp) + movss -24(%rsp), %xmm10 + addss %xmm6, %xmm10 + movaps %xmm7, %xmm6 + addss %xmm8, %xmm6 + movss %xmm6, -24(%rsp) + movss -24(%rsp), %xmm12 + subss %xmm7, %xmm12 + subss %xmm12, %xmm8 + mulss %xmm0, %xmm12 + subss %xmm1, %xmm12 + mulss %xmm8, %xmm0 + movaps %xmm0, %xmm15 + movaps %xmm12, %xmm2 + addss %xmm10, %xmm15 + addss %xmm9, %xmm12 + addss %xmm0, %xmm2 + movaps %xmm15, %xmm1 + movaps %xmm12, %xmm13 + subss %xmm10, %xmm1 + addss %xmm15, %xmm13 + movss %xmm1, -24(%rsp) + movss -24(%rsp), %xmm11 + subss %xmm11, %xmm0 + movss %xmm0, -24(%rsp) + movss -24(%rsp), %xmm0 + movss %xmm13, (%rsi) + subss %xmm12, %xmm13 + movss .L_2il0floatpacket.83(%rip), %xmm12 + mulss %xmm2, %xmm12 + movss %xmm13, -24(%rsp) + movss -24(%rsp), %xmm14 + addss .L_2il0floatpacket.82(%rip), %xmm12 + subss %xmm14, %xmm15 + mulss %xmm2, %xmm12 + movss %xmm15, -24(%rsp) + movss -24(%rsp), %xmm1 + addss .L_2il0floatpacket.81(%rip), %xmm12 + mulss %xmm2, %xmm12 + addss .L_2il0floatpacket.80(%rip), %xmm12 + mulss %xmm2, %xmm12 + addss .L_2il0floatpacket.79(%rip), %xmm12 + mulss %xmm2, %xmm12 + addss .L_2il0floatpacket.78(%rip), %xmm12 + mulss %xmm2, %xmm12 + addss .L_2il0floatpacket.77(%rip), %xmm12 + mulss %xmm2, %xmm12 + mulss %xmm2, %xmm12 + addss %xmm12, %xmm0 + addss %xmm0, %xmm1 + movss %xmm1, -24(%rsp) + movss -24(%rsp), %xmm3 + addss (%rsi), %xmm3 + movss %xmm3, (%rsi) + ret + +.LBL_2_9: + + movss .L_2il0floatpacket.83(%rip), %xmm0 + mulss %xmm2, %xmm0 + addss .L_2il0floatpacket.82(%rip), %xmm0 + mulss %xmm2, %xmm0 + addss .L_2il0floatpacket.81(%rip), %xmm0 + mulss %xmm2, %xmm0 + addss .L_2il0floatpacket.80(%rip), %xmm0 + mulss %xmm2, %xmm0 + addss .L_2il0floatpacket.79(%rip), %xmm0 + mulss %xmm2, %xmm0 + addss .L_2il0floatpacket.78(%rip), %xmm0 + mulss %xmm2, %xmm0 + addss .L_2il0floatpacket.77(%rip), %xmm0 + mulss %xmm2, %xmm0 + mulss %xmm2, %xmm0 + addss %xmm2, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_10: + + ucomiss %xmm3, %xmm5 + jp .LBL_2_11 + je .LBL_2_14 + +.LBL_2_11: + + divss %xmm3, %xmm3 + movss %xmm3, (%rsi) + movl $1, %eax + + + ret + +.LBL_2_13: + + movss .L_2il0floatpacket.85(%rip), %xmm0 + mulss %xmm0, %xmm6 + movaps %xmm6, %xmm4 + movaps %xmm3, %xmm6 + jmp .LBL_2_8 + +.LBL_2_14: + + movss .L_2il0floatpacket.84(%rip), %xmm0 + movl $2, %eax + divss %xmm3, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_15: + + movb -17(%rsp), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_17 + +.LBL_2_16: + + mulss %xmm5, %xmm5 + movss %xmm5, (%rsi) + ret + +.LBL_2_17: + + testl $8388607, -20(%rsp) + jne .LBL_2_16 + + + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_slog1p_cout_rare_internal,@function + .size __svml_slog1p_cout_rare_internal,.-__svml_slog1p_cout_rare_internal +..LN__svml_slog1p_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_slog1p_data_internal: + .long 3266227256 + .long 3107766024 + .long 3266228276 + .long 3107776882 + .long 3266229284 + .long 3109949545 + .long 3266230292 + .long 3108055846 + .long 3266231292 + .long 3106351937 + .long 3266232276 + .long 3109092567 + .long 3266233260 + .long 3107948216 + .long 3266234236 + .long 3107170960 + .long 3266235204 + .long 3106817287 + .long 3266236164 + .long 3106942449 + .long 3266237116 + .long 3107600489 + .long 3266238060 + .long 3108844279 + .long 3266239004 + .long 3106531253 + .long 3266239932 + .long 3109100650 + .long 3266240860 + .long 3108213420 + .long 3266241780 + .long 3108112381 + .long 3266242692 + .long 3108845034 + .long 3266243604 + .long 3106263589 + .long 3266244500 + .long 3108802209 + .long 3266245396 + .long 3108116909 + .long 3266246284 + .long 3108445707 + .long 3266247164 + .long 3109831435 + .long 3266248044 + .long 3108121760 + .long 3266248916 + .long 3107552123 + .long 3266249780 + .long 3108162844 + .long 3266250644 + .long 3105799146 + .long 3266251492 + .long 3108888393 + .long 3266252340 + .long 3109079979 + .long 3266253188 + .long 3106411173 + .long 3266254020 + .long 3109307139 + .long 3266254852 + .long 3109415127 + .long 3266255684 + .long 3106770317 + .long 3266256500 + .long 3109795834 + .long 3266257324 + .long 3105942641 + .long 3266258132 + .long 3107826892 + .long 3266258940 + .long 3107092610 + .long 3266259740 + .long 3107966131 + .long 3266260540 + .long 3106284596 + .long 3266261332 + .long 3106273188 + .long 3266262116 + .long 3107962226 + .long 3266262900 + .long 3107187186 + .long 3266263676 + .long 3108171617 + .long 3266264452 + .long 3106749947 + .long 3266265220 + .long 3107144703 + .long 3266265980 + .long 3109383615 + .long 3266266740 + .long 3109299629 + .long 3266267500 + .long 3106919521 + .long 3266268252 + .long 3106463913 + .long 3266268996 + .long 3107958670 + .long 3266269740 + .long 3107234917 + .long 3266270476 + .long 3108511954 + .long 3266271212 + .long 3107620056 + .long 3266271940 + .long 3108777693 + .long 3266272668 + .long 3107814325 + .long 3266273388 + .long 3108947630 + .long 3266274108 + .long 3108006290 + .long 3266274820 + .long 3109207222 + .long 3266275532 + .long 3108378366 + .long 3266276236 + .long 3109735912 + .long 3266276940 + .long 3109107087 + .long 3266277644 + .long 3106513079 + .long 3266278340 + .long 3106169044 + .long 3266279028 + .long 3108095503 + .long 3266279716 + .long 3108118349 + .long 3266280404 + .long 3106257463 + .long 3266281084 + .long 3106726720 + .long 3266281756 + .long 3109545389 + .long 3266282436 + .long 3106343833 + .long 3266283100 + .long 3109723642 + .long 3266283772 + .long 3107120300 + .long 3266284436 + .long 3106940529 + .long 3266285092 + .long 3109202170 + .long 3266285748 + .long 3109728494 + .long 3266286404 + .long 3108536808 + .long 3266287052 + .long 3109838471 + .long 3266287700 + .long 3109455977 + .long 3266288348 + .long 3107405879 + .long 3266288988 + .long 3107898790 + .long 3266289628 + .long 3106756477 + .long 3266290260 + .long 3108189081 + .long 3266290892 + .long 3108017907 + .long 3266291524 + .long 3106258339 + .long 3266292148 + .long 3107119845 + .long 3266292772 + .long 3106423069 + .long 3266293388 + .long 3108377050 + .long 3266294004 + .long 3108802011 + .long 3266294620 + .long 3107712277 + .long 3266295228 + .long 3109316274 + .long 3266295836 + .long 3109433625 + .long 3266296444 + .long 3108078064 + .long 3266297044 + .long 3109457438 + .long 3266297644 + .long 3109390801 + .long 3266298244 + .long 3107891329 + .long 3266298836 + .long 3109166323 + .long 3266299428 + .long 3109034299 + .long 3266300020 + .long 3107507904 + .long 3266300604 + .long 3108793919 + .long 3266301188 + .long 3108710352 + .long 3266301772 + .long 3107269350 + .long 3266302348 + .long 3108677203 + .long 3266302924 + .long 3108751436 + .long 3266303500 + .long 3107503720 + .long 3266304068 + .long 3109139881 + .long 3266304636 + .long 3109476985 + .long 3266305204 + .long 3108526254 + .long 3266305772 + .long 3106298768 + .long 3266306332 + .long 3106999765 + .long 3266306892 + .long 3106445739 + .long 3266307444 + .long 3108841650 + .long 3266308004 + .long 3105809415 + .long 3266308548 + .long 3109942336 + .long 3266309100 + .long 3108667760 + .long 3266309652 + .long 3106190122 + .long 3266310196 + .long 3106713732 + .long 3266310740 + .long 3106054165 + .long 3266311276 + .long 3108415484 + .long 3266311812 + .long 3109613023 + .long 3266312348 + .long 3109656301 + .long 3266312884 + .long 3108554723 + .long 3266313420 + .long 3106317576 + .long 3266313948 + .long 3107148341 + .long 3266314476 + .long 3106861780 + .long 3266314996 + .long 3109661153 + .long 3266315524 + .long 3107166702 + .long 3266316044 + .long 3107775778 + .long 3266316564 + .long 3107302717 + .long 3266317076 + .long 3109950361 + .long 3266317596 + .long 3107338539 + .long 3266318108 + .long 3107864196 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 964689920 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 2063597568 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 1051372345 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 3204448310 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 998244352 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 3212836863 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 2055208960 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 4294967040 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 1060205056 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 901758464 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 1051372180 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 3196061070 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 1045225872 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 3190336823 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 1041222418 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 3189430755 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 1041073389 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 16777216 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 25165824 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 1059760811 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 8388607 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 2139095040 + .long 4286578688 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1065353216 + .long 3212836864 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .type __svml_slog1p_data_internal,@object + .size __svml_slog1p_data_internal,3072 + .align 32 +__slog1p_la_CoutTab: + .long 1065353216 + .long 0 + .long 0 + .long 1065091072 + .long 1015087104 + .long 900509991 + .long 1064828928 + .long 1023541248 + .long 925811956 + .long 1064566784 + .long 1027915776 + .long 3084221144 + .long 1064304640 + .long 1032073216 + .long 3066991812 + .long 1064173568 + .long 1033195520 + .long 882149603 + .long 1063911424 + .long 1035468800 + .long 928189163 + .long 1063649280 + .long 1037783040 + .long 927501741 + .long 1063518208 + .long 1038958592 + .long 3076037756 + .long 1063256064 + .long 1040759808 + .long 904405630 + .long 1063124992 + .long 1041361920 + .long 3052231524 + .long 1062862848 + .long 1042581504 + .long 922094799 + .long 1062731776 + .long 1043201024 + .long 3070120623 + .long 1062469632 + .long 1044455424 + .long 3069864633 + .long 1062338560 + .long 1045091328 + .long 3063188516 + .long 1062207488 + .long 1045733376 + .long 3054902185 + .long 1061945344 + .long 1047035904 + .long 920635797 + .long 1061814272 + .long 1047697408 + .long 904920689 + .long 1061683200 + .long 1048365056 + .long 912483742 + .long 1061552128 + .long 1048807936 + .long 3052664405 + .long 1061421056 + .long 1049148416 + .long 912794238 + .long 1061158912 + .long 1049840384 + .long 889474359 + .long 1061027840 + .long 1050191872 + .long 3059868362 + .long 1060896768 + .long 1050546944 + .long 3059256525 + .long 1060765696 + .long 1050905600 + .long 912008988 + .long 1060634624 + .long 1051268352 + .long 912290698 + .long 1060503552 + .long 1051635200 + .long 3037211048 + .long 1060372480 + .long 1052005888 + .long 906226119 + .long 1060241408 + .long 1052380928 + .long 3052480305 + .long 1060110336 + .long 1052760064 + .long 3048768765 + .long 1059979264 + .long 1053143552 + .long 3049975450 + .long 1059848192 + .long 1053531392 + .long 894485718 + .long 1059717120 + .long 1053923840 + .long 897598623 + .long 1059586048 + .long 1054320896 + .long 907355277 + .long 1059586048 + .long 1054320896 + .long 907355277 + .long 1059454976 + .long 1054722816 + .long 881705073 + .long 1059323904 + .long 1055129600 + .long 3049723733 + .long 1059192832 + .long 1055541248 + .long 890353599 + .long 1059061760 + .long 1055958016 + .long 908173938 + .long 1059061760 + .long 1055958016 + .long 908173938 + .long 1058930688 + .long 1056380160 + .long 883644938 + .long 1058799616 + .long 1056807680 + .long 3052015799 + .long 1058668544 + .long 1057102592 + .long 884897284 + .long 1058668544 + .long 1057102592 + .long 884897284 + .long 1058537472 + .long 1057321920 + .long 3037632470 + .long 1058406400 + .long 1057544128 + .long 865017195 + .long 1058275328 + .long 1057769344 + .long 3042936546 + .long 1058275328 + .long 1057769344 + .long 3042936546 + .long 1058144256 + .long 1057997568 + .long 903344518 + .long 1058013184 + .long 1058228992 + .long 897862967 + .long 1058013184 + .long 1058228992 + .long 897862967 + .long 1057882112 + .long 1058463680 + .long 3047822280 + .long 1057882112 + .long 1058463680 + .long 3047822280 + .long 1057751040 + .long 1058701632 + .long 883793293 + .long 1057619968 + .long 1058943040 + .long 851667963 + .long 1057619968 + .long 1058943040 + .long 851667963 + .long 1057488896 + .long 1059187968 + .long 3000004036 + .long 1057488896 + .long 1059187968 + .long 3000004036 + .long 1057357824 + .long 1059436544 + .long 3047430717 + .long 1057357824 + .long 1059436544 + .long 3047430717 + .long 1057226752 + .long 1059688832 + .long 3043802308 + .long 1057226752 + .long 1059688832 + .long 3043802308 + .long 1057095680 + .long 1059944960 + .long 876113044 + .long 1057095680 + .long 1059944960 + .long 876113044 + .long 1056964608 + .long 1060205056 + .long 901758606 + .long 1060205056 + .long 901758606 + .long 1207959616 + .long 1174405120 + .long 1008730112 + .long 1400897536 + .long 0 + .long 1065353216 + .long 3204448256 + .long 1051372203 + .long 3196059648 + .long 1045220557 + .long 3190467243 + .long 1041387009 + .long 3187672480 + .type __slog1p_la_CoutTab,@object + .size __slog1p_la_CoutTab,840 + .align 4 +.L_2il0floatpacket.75: + .long 0x53800000 + .type .L_2il0floatpacket.75,@object + .size .L_2il0floatpacket.75,4 + .align 4 +.L_2il0floatpacket.76: + .long 0x3c200000 + .type .L_2il0floatpacket.76,@object + .size .L_2il0floatpacket.76,4 + .align 4 +.L_2il0floatpacket.77: + .long 0xbf000000 + .type .L_2il0floatpacket.77,@object + .size .L_2il0floatpacket.77,4 + .align 4 +.L_2il0floatpacket.78: + .long 0x3eaaaaab + .type .L_2il0floatpacket.78,@object + .size .L_2il0floatpacket.78,4 + .align 4 +.L_2il0floatpacket.79: + .long 0xbe800000 + .type .L_2il0floatpacket.79,@object + .size .L_2il0floatpacket.79,4 + .align 4 +.L_2il0floatpacket.80: + .long 0x3e4ccccd + .type .L_2il0floatpacket.80,@object + .size .L_2il0floatpacket.80,4 + .align 4 +.L_2il0floatpacket.81: + .long 0xbe2aaaab + .type .L_2il0floatpacket.81,@object + .size .L_2il0floatpacket.81,4 + .align 4 +.L_2il0floatpacket.82: + .long 0x3e124e01 + .type .L_2il0floatpacket.82,@object + .size .L_2il0floatpacket.82,4 + .align 4 +.L_2il0floatpacket.83: + .long 0xbe0005a0 + .type .L_2il0floatpacket.83,@object + .size .L_2il0floatpacket.83,4 + .align 4 +.L_2il0floatpacket.84: + .long 0xbf800000 + .type .L_2il0floatpacket.84,@object + .size .L_2il0floatpacket.84,4 + .align 4 +.L_2il0floatpacket.85: + .long 0x3f317218 + .type .L_2il0floatpacket.85,@object + .size .L_2il0floatpacket.85,4 + .align 4 +.L_2il0floatpacket.86: + .long 0x3f317200 + .type .L_2il0floatpacket.86,@object + .size .L_2il0floatpacket.86,4 + .align 4 +.L_2il0floatpacket.87: + .long 0x35bfbe8e + .type .L_2il0floatpacket.87,@object + .size .L_2il0floatpacket.87,4 + .align 4 +.L_2il0floatpacket.88: + .long 0x48000040 + .type .L_2il0floatpacket.88,@object + .size .L_2il0floatpacket.88,4 + .align 4 +.L_2il0floatpacket.89: + .long 0x46000000 + .type .L_2il0floatpacket.89,@object + .size .L_2il0floatpacket.89,4 + .align 4 +.L_2il0floatpacket.90: + .long 0x3f800000 + .type .L_2il0floatpacket.90,@object + .size .L_2il0floatpacket.90,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log2_d_la.s b/numpy/core/src/umath/svml/svml_z0_log2_d_la.s new file mode 100644 index 000000000000..89d3bbca9f93 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log2_d_la.s @@ -0,0 +1,1714 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * log2(x) = VGETEXP(x) + log2(VGETMANT(x)) + * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) + * * mx = VGETMANT(x) is in [1,2) for all x>=0 + * * log2(mx) = -log2(RCP(mx)) + log2(1 +(mx*RCP(mx)-1)) + * * RCP(mx) is rounded to 4 fractional bits, + * * and the table lookup for log(RCP(mx)) is based on a small permute instruction + * * + * + */ + + + .text +.L_2__routine_start___svml_log28_z0_0: + + .align 16,0x90 + .globl __svml_log28 + +__svml_log28: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovaps %zmm0, %zmm7 + +/* GetMant(x), normalized to [1,2) for x>=0, NaN for x<0 */ + vgetmantpd $8, {sae}, %zmm7, %zmm6 + vmovups 128+__svml_dlog2_data_internal_avx512(%rip), %zmm2 + vmovups 512+__svml_dlog2_data_internal_avx512(%rip), %zmm12 + vmovups 640+__svml_dlog2_data_internal_avx512(%rip), %zmm13 + +/* Start polynomial evaluation */ + vmovups 256+__svml_dlog2_data_internal_avx512(%rip), %zmm10 + vmovups 320+__svml_dlog2_data_internal_avx512(%rip), %zmm0 + vmovups 384+__svml_dlog2_data_internal_avx512(%rip), %zmm11 + vmovups 448+__svml_dlog2_data_internal_avx512(%rip), %zmm14 + +/* Prepare exponent correction: DblRcp<0.75? */ + vmovups 192+__svml_dlog2_data_internal_avx512(%rip), %zmm1 + +/* Table lookup */ + vmovups __svml_dlog2_data_internal_avx512(%rip), %zmm4 + +/* GetExp(x) */ + vgetexppd {sae}, %zmm7, %zmm5 + +/* DblRcp ~ 1/Mantissa */ + vrcp14pd %zmm6, %zmm8 + +/* x<=0? */ + vfpclasspd $94, %zmm7, %k0 + +/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ + vrndscalepd $88, {sae}, %zmm8, %zmm3 + vmovups 576+__svml_dlog2_data_internal_avx512(%rip), %zmm8 + kmovw %k0, %edx + +/* Reduced argument: R = DblRcp*Mantissa - 1 */ + vfmsub213pd {rn-sae}, %zmm2, %zmm3, %zmm6 + vcmppd $17, {sae}, %zmm1, %zmm3, %k1 + vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm8 + vmovups 704+__svml_dlog2_data_internal_avx512(%rip), %zmm12 + vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm0 + vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 + vmovups 768+__svml_dlog2_data_internal_avx512(%rip), %zmm1 + +/* R^2 */ + vmulpd {rn-sae}, %zmm6, %zmm6, %zmm15 + vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12 + +/* Prepare table index */ + vpsrlq $48, %zmm3, %zmm9 + +/* add 1 to Expon if DblRcp<0.75 */ + vaddpd {rn-sae}, %zmm2, %zmm5, %zmm5{%k1} + vmulpd {rn-sae}, %zmm15, %zmm15, %zmm13 + vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm0 + vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm8 + vpermt2pd 64+__svml_dlog2_data_internal_avx512(%rip), %zmm9, %zmm4 + +/* polynomial */ + vfmadd213pd {rn-sae}, %zmm8, %zmm13, %zmm0 + vfmadd213pd {rn-sae}, %zmm1, %zmm6, %zmm0 + vfmadd213pd {rn-sae}, %zmm4, %zmm0, %zmm6 + vaddpd {rn-sae}, %zmm6, %zmm5, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm7, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dlog2_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_log28,@function + .size __svml_log28,.-__svml_log28 +..LN__svml_log28.0: + +.L_2__routine_start___svml_dlog2_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dlog2_cout_rare_internal: + + + .cfi_startproc +..L53: + + movq $0, -64(%rsp) + movsd -64(%rsp), %xmm0 + movsd (%rdi), %xmm1 + movups _zeros.402.0.0.1(%rip), %xmm2 + subsd %xmm0, %xmm1 + movsd %xmm1, -8(%rsp) + movups %xmm2, -56(%rsp) + + + movups _ones.402.0.0.1(%rip), %xmm0 + movups %xmm0, -40(%rsp) + + + movups _infs.402.0.0.1(%rip), %xmm0 + movups %xmm0, -24(%rsp) + + + movl -4(%rsp), %eax + cmpl $2146435072, %eax + jae .LBL_2_19 + + + lea -1072660480(%rax), %edx + cmpl $53248, %edx + jae .LBL_2_14 + + + lea -1072693232(%rax), %edx + cmpl $24, %edx + jae .LBL_2_13 + + + movl -8(%rsp), %edi + movl %eax, %ecx + movl %edi, %edx + shll $11, %ecx + shrl $21, %edx + orl %edx, %ecx + addl $-2147483646, %ecx + cmpl $3, %ecx + jae .LBL_2_12 + + + addl $-1072693248, %eax + orl %edi, %eax + jne .LBL_2_10 + + + movq -56(%rsp), %rax + movq %rax, (%rsi) + jmp .LBL_2_11 + +.LBL_2_10: + + movsd -8(%rsp), %xmm0 + movsd 16+__dlog2_la__Q3(%rip), %xmm2 + movsd 24+__dlog2_la__Q3(%rip), %xmm1 + addsd -32(%rsp), %xmm0 + mulsd %xmm0, %xmm2 + mulsd %xmm0, %xmm1 + addsd 8+__dlog2_la__Q3(%rip), %xmm2 + mulsd %xmm0, %xmm2 + movsd %xmm0, -8(%rsp) + addsd __dlog2_la__Q3(%rip), %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm1, %xmm2 + movsd %xmm2, (%rsi) + +.LBL_2_11: + + xorl %eax, %eax + ret + +.LBL_2_12: + + movsd -8(%rsp), %xmm2 + xorl %eax, %eax + movsd 16+__dlog2_la__Q2(%rip), %xmm1 + movsd 24+__dlog2_la__Q2(%rip), %xmm3 + addsd -32(%rsp), %xmm2 + movaps %xmm2, %xmm0 + mulsd %xmm2, %xmm0 + mulsd %xmm0, %xmm1 + mulsd %xmm0, %xmm3 + addsd __dlog2_la__Q2(%rip), %xmm1 + addsd 8+__dlog2_la__Q2(%rip), %xmm3 + mulsd %xmm2, %xmm1 + mulsd %xmm0, %xmm3 + movsd %xmm2, -8(%rsp) + addsd %xmm1, %xmm3 + movl $0, -8(%rsp) + movsd -8(%rsp), %xmm4 + subsd %xmm4, %xmm2 + addsd %xmm2, %xmm4 + mulsd 32+__dlog2_la__Q2(%rip), %xmm4 + addsd %xmm3, %xmm4 + movsd %xmm4, (%rsi) + ret + +.LBL_2_13: + + movsd -8(%rsp), %xmm2 + xorl %eax, %eax + movsd 72+__dlog2_la__Q1(%rip), %xmm10 + movsd 64+__dlog2_la__Q1(%rip), %xmm4 + movsd __dlog2_la__TWO_32P(%rip), %xmm5 + movsd __dlog2_la__TWO_32P(%rip), %xmm7 + movsd 88+__dlog2_la__Q1(%rip), %xmm14 + movsd __dlog2_la__TWO_32P(%rip), %xmm11 + movsd __dlog2_la__TWO_32P(%rip), %xmm15 + addsd -32(%rsp), %xmm2 + movaps %xmm2, %xmm3 + movaps %xmm2, %xmm6 + mulsd %xmm2, %xmm3 + movaps %xmm2, %xmm0 + mulsd %xmm2, %xmm5 + mulsd __dlog2_la__TWO_32(%rip), %xmm6 + mulsd %xmm3, %xmm10 + mulsd %xmm3, %xmm4 + addsd 56+__dlog2_la__Q1(%rip), %xmm10 + addsd 48+__dlog2_la__Q1(%rip), %xmm4 + mulsd %xmm3, %xmm10 + mulsd %xmm3, %xmm4 + addsd 40+__dlog2_la__Q1(%rip), %xmm10 + addsd 32+__dlog2_la__Q1(%rip), %xmm4 + mulsd %xmm3, %xmm10 + mulsd %xmm3, %xmm4 + addsd 24+__dlog2_la__Q1(%rip), %xmm10 + addsd 16+__dlog2_la__Q1(%rip), %xmm4 + mulsd %xmm3, %xmm10 + mulsd %xmm2, %xmm4 + movsd __dlog2_la__TWO_32(%rip), %xmm3 + addsd %xmm4, %xmm10 + mulsd %xmm10, %xmm7 + movaps %xmm3, %xmm8 + mulsd %xmm10, %xmm8 + movsd %xmm5, -72(%rsp) + movsd -72(%rsp), %xmm1 + movsd %xmm7, -72(%rsp) + subsd %xmm6, %xmm1 + movsd -72(%rsp), %xmm9 + subsd %xmm1, %xmm0 + subsd %xmm8, %xmm9 + movsd %xmm1, -8(%rsp) + subsd %xmm9, %xmm10 + addsd %xmm9, %xmm14 + addsd 8+__dlog2_la__Q1(%rip), %xmm10 + movaps %xmm14, %xmm4 + mulsd %xmm0, %xmm4 + mulsd %xmm2, %xmm10 + mulsd %xmm1, %xmm14 + addsd %xmm0, %xmm1 + addsd %xmm10, %xmm4 + movaps %xmm4, %xmm12 + movsd 80+__dlog2_la__Q1(%rip), %xmm9 + addsd %xmm14, %xmm12 + mulsd %xmm12, %xmm11 + mulsd %xmm3, %xmm12 + movsd %xmm11, -72(%rsp) + movsd -72(%rsp), %xmm13 + subsd %xmm12, %xmm13 + subsd %xmm13, %xmm4 + addsd %xmm13, %xmm9 + addsd %xmm14, %xmm4 + movaps %xmm9, %xmm13 + addsd __dlog2_la__Q1(%rip), %xmm4 + addsd %xmm4, %xmm13 + mulsd %xmm13, %xmm15 + mulsd %xmm3, %xmm13 + movsd %xmm15, -72(%rsp) + movsd -72(%rsp), %xmm14 + subsd %xmm13, %xmm14 + mulsd %xmm14, %xmm1 + subsd %xmm14, %xmm9 + addsd %xmm9, %xmm4 + mulsd %xmm2, %xmm4 + addsd %xmm4, %xmm1 + movsd %xmm1, (%rsi) + ret + +.LBL_2_14: + + movl %eax, %ecx + movl %eax, %edx + shrl $20, %ecx + andl $1048575, %edx + addl $-1023, %ecx + cmpl $1048576, %eax + jae .LBL_2_18 + + + movl %edx, -4(%rsp) + movl -8(%rsp), %edx + orl %edx, %eax + jne .LBL_2_17 + + + movsd -32(%rsp), %xmm0 + movl $2, %eax + divsd -56(%rsp), %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_17: + + movsd -8(%rsp), %xmm0 + mulsd __dlog2_la__TWO_55(%rip), %xmm0 + movsd %xmm0, -8(%rsp) + movl -4(%rsp), %edx + movl %edx, %ecx + shrl $20, %ecx + movl %edx, %eax + addl $-1078, %ecx + +.LBL_2_18: + + shrl $12, %eax + orl $1072693248, %edx + movzbl %al, %edi + pxor %xmm7, %xmm7 + movl %edx, -4(%rsp) + lea __dlog2_la___libm_rcp_table_256(%rip), %rdx + movsd -8(%rsp), %xmm10 + pxor %xmm8, %xmm8 + movl $0, -8(%rsp) + lea __dlog2_la___libm_log2_table_256(%rip), %rax + movsd -8(%rsp), %xmm0 + cvtss2sd (%rdx,%rdi,4), %xmm7 + cvtsi2sd %ecx, %xmm8 + subsd %xmm0, %xmm10 + mulsd %xmm7, %xmm10 + mulsd %xmm0, %xmm7 + movsd 40+__dlog2_la__P(%rip), %xmm4 + movsd 32+__dlog2_la__P(%rip), %xmm3 + movsd 48+__dlog2_la__P(%rip), %xmm5 + movsd __dlog2_la__TWO_32(%rip), %xmm6 + shlq $4, %rdi + addsd -32(%rsp), %xmm7 + movaps %xmm7, %xmm2 + mulsd %xmm5, %xmm7 + addsd %xmm10, %xmm2 + mulsd %xmm5, %xmm10 + addsd %xmm7, %xmm6 + movaps %xmm2, %xmm1 + mulsd %xmm2, %xmm1 + mulsd %xmm1, %xmm4 + mulsd %xmm1, %xmm3 + addsd 24+__dlog2_la__P(%rip), %xmm4 + addsd 16+__dlog2_la__P(%rip), %xmm3 + mulsd %xmm1, %xmm4 + mulsd %xmm1, %xmm3 + addsd 8+__dlog2_la__P(%rip), %xmm4 + addsd __dlog2_la__P(%rip), %xmm3 + mulsd %xmm1, %xmm4 + mulsd %xmm2, %xmm3 + movsd %xmm6, -72(%rsp) + addsd %xmm3, %xmm4 + addsd 8(%rax,%rdi), %xmm8 + addsd %xmm4, %xmm10 + movsd -72(%rsp), %xmm9 + subsd __dlog2_la__TWO_32(%rip), %xmm9 + subsd %xmm9, %xmm7 + addsd %xmm8, %xmm9 + addsd (%rax,%rdi), %xmm7 + movsd %xmm9, -8(%rsp) + xorl %eax, %eax + addsd %xmm7, %xmm10 + addsd %xmm9, %xmm10 + movsd %xmm10, (%rsi) + ret + +.LBL_2_19: + + movl %eax, %edx + andl $2147483647, %edx + cmpl $2146435072, %edx + ja .LBL_2_28 + + + jne .LBL_2_22 + + + cmpl $0, -8(%rsp) + jne .LBL_2_28 + +.LBL_2_22: + + testl $-2147483648, %eax + je .LBL_2_27 + + + movl -8(%rsp), %eax + orl %eax, %edx + movsd -56(%rsp), %xmm1 + jne .LBL_2_25 + + + movsd -32(%rsp), %xmm0 + movl $2, %eax + divsd %xmm1, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_25: + + movsd -24(%rsp), %xmm0 + movl $1, %eax + mulsd %xmm1, %xmm0 + movsd %xmm0, (%rsi) + + + ret + +.LBL_2_27: + + movq -8(%rsp), %rax + movq %rax, (%rsi) + xorl %eax, %eax + ret + +.LBL_2_28: + + movsd -8(%rsp), %xmm0 + xorl %eax, %eax + mulsd -40(%rsp), %xmm0 + movsd %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dlog2_cout_rare_internal,@function + .size __svml_dlog2_cout_rare_internal,.-__svml_dlog2_cout_rare_internal +..LN__svml_dlog2_cout_rare_internal.1: + .section .rodata, "a" + .align 64 + .align 16 +_zeros.402.0.0.1: + .long 0 + .long 0 + .long 0 + .long 2147483648 + .align 16 +_ones.402.0.0.1: + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .align 16 +_infs.402.0.0.1: + .long 0 + .long 2146435072 + .long 0 + .long 4293918720 + + .section .rodata, "a" + .space 16, 0x00 + .align 64 +__svml_dlog2_data_internal_avx512: + .long 0 + .long 0 + .long 4207481622 + .long 3216401398 + .long 972805768 + .long 3217408026 + .long 3103942666 + .long 3218062358 + .long 1271733131 + .long 3218381432 + .long 2300516105 + .long 3218676666 + .long 3761433103 + .long 3218958163 + .long 14039718 + .long 3219177733 + .long 1904282206 + .long 1071288313 + .long 1751501034 + .long 1071041295 + .long 3815829096 + .long 1070803966 + .long 2835758645 + .long 1070555096 + .long 180337970 + .long 1070114968 + .long 3266000023 + .long 1069690285 + .long 2530196300 + .long 1069012484 + .long 3386464469 + .long 1067938708 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 3658358034 + .long 1069846603 + .long 3658358034 + .long 1069846603 + .long 3658358034 + .long 1069846603 + .long 3658358034 + .long 1069846603 + .long 3658358034 + .long 1069846603 + .long 3658358034 + .long 1069846603 + .long 3658358034 + .long 1069846603 + .long 3658358034 + .long 1069846603 + .long 1307270350 + .long 3217498040 + .long 1307270350 + .long 3217498040 + .long 1307270350 + .long 3217498040 + .long 1307270350 + .long 3217498040 + .long 1307270350 + .long 3217498040 + .long 1307270350 + .long 3217498040 + .long 1307270350 + .long 3217498040 + .long 1307270350 + .long 3217498040 + .long 1367442963 + .long 1070227827 + .long 1367442963 + .long 1070227827 + .long 1367442963 + .long 1070227827 + .long 1367442963 + .long 1070227827 + .long 1367442963 + .long 1070227827 + .long 1367442963 + .long 1070227827 + .long 1367442963 + .long 1070227827 + .long 1367442963 + .long 1070227827 + .long 3840087116 + .long 3217999623 + .long 3840087116 + .long 3217999623 + .long 3840087116 + .long 3217999623 + .long 3840087116 + .long 3217999623 + .long 3840087116 + .long 3217999623 + .long 3840087116 + .long 3217999623 + .long 3840087116 + .long 3217999623 + .long 3840087116 + .long 3217999623 + .long 1360320794 + .long 1070757740 + .long 1360320794 + .long 1070757740 + .long 1360320794 + .long 1070757740 + .long 1360320794 + .long 1070757740 + .long 1360320794 + .long 1070757740 + .long 1360320794 + .long 1070757740 + .long 1360320794 + .long 1070757740 + .long 1360320794 + .long 1070757740 + .long 1698500493 + .long 3218543943 + .long 1698500493 + .long 3218543943 + .long 1698500493 + .long 3218543943 + .long 1698500493 + .long 3218543943 + .long 1698500493 + .long 3218543943 + .long 1698500493 + .long 3218543943 + .long 1698500493 + .long 3218543943 + .long 1698500493 + .long 3218543943 + .long 3694789279 + .long 1071564553 + .long 3694789279 + .long 1071564553 + .long 3694789279 + .long 1071564553 + .long 3694789279 + .long 1071564553 + .long 3694789279 + .long 1071564553 + .long 3694789279 + .long 1071564553 + .long 3694789279 + .long 1071564553 + .long 3694789279 + .long 1071564553 + .long 1697350356 + .long 3219592519 + .long 1697350356 + .long 3219592519 + .long 1697350356 + .long 3219592519 + .long 1697350356 + .long 3219592519 + .long 1697350356 + .long 3219592519 + .long 1697350356 + .long 3219592519 + .long 1697350356 + .long 3219592519 + .long 1697350356 + .long 3219592519 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .type __svml_dlog2_data_internal_avx512,@object + .size __svml_dlog2_data_internal_avx512,1088 + .align 64 +__dlog2_la__Q3: + .long 3213221364 + .long 1050233568 + .long 1697350398 + .long 3219592519 + .long 3694789629 + .long 1071564553 + .long 0 + .long 1073157447 + .type __dlog2_la__Q3,@object + .size __dlog2_la__Q3,32 + .space 32, 0x00 + .align 64 +__dlog2_la__Q2: + .long 3213221358 + .long 1050233568 + .long 1697350398 + .long 3219592519 + .long 3695167823 + .long 1071564553 + .long 1697791998 + .long 3218543943 + .long 0 + .long 1073157447 + .type __dlog2_la__Q2,@object + .size __dlog2_la__Q2,40 + .space 24, 0x00 + .align 64 +__dlog2_la__Q1: + .long 3213221370 + .long 1050233568 + .long 3213207734 + .long 3196668640 + .long 3694789628 + .long 1071564553 + .long 1697350743 + .long 3218543943 + .long 1357908666 + .long 1070757740 + .long 3685007067 + .long 3217999625 + .long 96832070 + .long 1070227830 + .long 1140452344 + .long 3217495379 + .long 2606274745 + .long 1069844296 + .long 1933654871 + .long 3217172449 + .long 0 + .long 1073157447 + .long 0 + .long 3219592519 + .type __dlog2_la__Q1,@object + .size __dlog2_la__Q1,96 + .space 32, 0x00 + .align 64 +__dlog2_la__TWO_32P: + .long 1048576 + .long 1106247680 + .type __dlog2_la__TWO_32P,@object + .size __dlog2_la__TWO_32P,8 + .space 56, 0x00 + .align 64 +__dlog2_la__TWO_32: + .long 0 + .long 1106247680 + .type __dlog2_la__TWO_32,@object + .size __dlog2_la__TWO_32,8 + .space 56, 0x00 + .align 64 +__dlog2_la__TWO_55: + .long 0 + .long 1130364928 + .type __dlog2_la__TWO_55,@object + .size __dlog2_la__TWO_55,8 + .space 56, 0x00 + .align 64 +__dlog2_la___libm_rcp_table_256: + .long 0x3f7f8000 + .long 0x3f7e8000 + .long 0x3f7d8000 + .long 0x3f7c8000 + .long 0x3f7ba000 + .long 0x3f7aa000 + .long 0x3f79a000 + .long 0x3f78c000 + .long 0x3f77c000 + .long 0x3f76e000 + .long 0x3f75e000 + .long 0x3f750000 + .long 0x3f742000 + .long 0x3f732000 + .long 0x3f724000 + .long 0x3f716000 + .long 0x3f708000 + .long 0x3f6fa000 + .long 0x3f6ec000 + .long 0x3f6de000 + .long 0x3f6d0000 + .long 0x3f6c2000 + .long 0x3f6b6000 + .long 0x3f6a8000 + .long 0x3f69a000 + .long 0x3f68c000 + .long 0x3f680000 + .long 0x3f672000 + .long 0x3f666000 + .long 0x3f658000 + .long 0x3f64c000 + .long 0x3f640000 + .long 0x3f632000 + .long 0x3f626000 + .long 0x3f61a000 + .long 0x3f60e000 + .long 0x3f600000 + .long 0x3f5f4000 + .long 0x3f5e8000 + .long 0x3f5dc000 + .long 0x3f5d0000 + .long 0x3f5c4000 + .long 0x3f5b8000 + .long 0x3f5ae000 + .long 0x3f5a2000 + .long 0x3f596000 + .long 0x3f58a000 + .long 0x3f57e000 + .long 0x3f574000 + .long 0x3f568000 + .long 0x3f55e000 + .long 0x3f552000 + .long 0x3f546000 + .long 0x3f53c000 + .long 0x3f532000 + .long 0x3f526000 + .long 0x3f51c000 + .long 0x3f510000 + .long 0x3f506000 + .long 0x3f4fc000 + .long 0x3f4f2000 + .long 0x3f4e6000 + .long 0x3f4dc000 + .long 0x3f4d2000 + .long 0x3f4c8000 + .long 0x3f4be000 + .long 0x3f4b4000 + .long 0x3f4aa000 + .long 0x3f4a0000 + .long 0x3f496000 + .long 0x3f48c000 + .long 0x3f482000 + .long 0x3f478000 + .long 0x3f46e000 + .long 0x3f464000 + .long 0x3f45c000 + .long 0x3f452000 + .long 0x3f448000 + .long 0x3f43e000 + .long 0x3f436000 + .long 0x3f42c000 + .long 0x3f422000 + .long 0x3f41a000 + .long 0x3f410000 + .long 0x3f408000 + .long 0x3f3fe000 + .long 0x3f3f6000 + .long 0x3f3ec000 + .long 0x3f3e4000 + .long 0x3f3da000 + .long 0x3f3d2000 + .long 0x3f3ca000 + .long 0x3f3c0000 + .long 0x3f3b8000 + .long 0x3f3b0000 + .long 0x3f3a8000 + .long 0x3f39e000 + .long 0x3f396000 + .long 0x3f38e000 + .long 0x3f386000 + .long 0x3f37e000 + .long 0x3f376000 + .long 0x3f36c000 + .long 0x3f364000 + .long 0x3f35c000 + .long 0x3f354000 + .long 0x3f34c000 + .long 0x3f344000 + .long 0x3f33c000 + .long 0x3f334000 + .long 0x3f32e000 + .long 0x3f326000 + .long 0x3f31e000 + .long 0x3f316000 + .long 0x3f30e000 + .long 0x3f306000 + .long 0x3f2fe000 + .long 0x3f2f8000 + .long 0x3f2f0000 + .long 0x3f2e8000 + .long 0x3f2e2000 + .long 0x3f2da000 + .long 0x3f2d2000 + .long 0x3f2cc000 + .long 0x3f2c4000 + .long 0x3f2bc000 + .long 0x3f2b6000 + .long 0x3f2ae000 + .long 0x3f2a8000 + .long 0x3f2a0000 + .long 0x3f29a000 + .long 0x3f292000 + .long 0x3f28c000 + .long 0x3f284000 + .long 0x3f27e000 + .long 0x3f276000 + .long 0x3f270000 + .long 0x3f268000 + .long 0x3f262000 + .long 0x3f25c000 + .long 0x3f254000 + .long 0x3f24e000 + .long 0x3f248000 + .long 0x3f240000 + .long 0x3f23a000 + .long 0x3f234000 + .long 0x3f22e000 + .long 0x3f226000 + .long 0x3f220000 + .long 0x3f21a000 + .long 0x3f214000 + .long 0x3f20e000 + .long 0x3f206000 + .long 0x3f200000 + .long 0x3f1fa000 + .long 0x3f1f4000 + .long 0x3f1ee000 + .long 0x3f1e8000 + .long 0x3f1e2000 + .long 0x3f1dc000 + .long 0x3f1d6000 + .long 0x3f1d0000 + .long 0x3f1ca000 + .long 0x3f1c4000 + .long 0x3f1be000 + .long 0x3f1b8000 + .long 0x3f1b2000 + .long 0x3f1ac000 + .long 0x3f1a6000 + .long 0x3f1a0000 + .long 0x3f19a000 + .long 0x3f194000 + .long 0x3f190000 + .long 0x3f18a000 + .long 0x3f184000 + .long 0x3f17e000 + .long 0x3f178000 + .long 0x3f172000 + .long 0x3f16e000 + .long 0x3f168000 + .long 0x3f162000 + .long 0x3f15c000 + .long 0x3f158000 + .long 0x3f152000 + .long 0x3f14c000 + .long 0x3f148000 + .long 0x3f142000 + .long 0x3f13c000 + .long 0x3f138000 + .long 0x3f132000 + .long 0x3f12c000 + .long 0x3f128000 + .long 0x3f122000 + .long 0x3f11c000 + .long 0x3f118000 + .long 0x3f112000 + .long 0x3f10e000 + .long 0x3f108000 + .long 0x3f104000 + .long 0x3f0fe000 + .long 0x3f0f8000 + .long 0x3f0f4000 + .long 0x3f0ee000 + .long 0x3f0ea000 + .long 0x3f0e6000 + .long 0x3f0e0000 + .long 0x3f0dc000 + .long 0x3f0d6000 + .long 0x3f0d2000 + .long 0x3f0cc000 + .long 0x3f0c8000 + .long 0x3f0c2000 + .long 0x3f0be000 + .long 0x3f0ba000 + .long 0x3f0b4000 + .long 0x3f0b0000 + .long 0x3f0ac000 + .long 0x3f0a6000 + .long 0x3f0a2000 + .long 0x3f09e000 + .long 0x3f098000 + .long 0x3f094000 + .long 0x3f090000 + .long 0x3f08a000 + .long 0x3f086000 + .long 0x3f082000 + .long 0x3f07e000 + .long 0x3f078000 + .long 0x3f074000 + .long 0x3f070000 + .long 0x3f06c000 + .long 0x3f066000 + .long 0x3f062000 + .long 0x3f05e000 + .long 0x3f05a000 + .long 0x3f056000 + .long 0x3f052000 + .long 0x3f04c000 + .long 0x3f048000 + .long 0x3f044000 + .long 0x3f040000 + .long 0x3f03c000 + .long 0x3f038000 + .long 0x3f034000 + .long 0x3f030000 + .long 0x3f02a000 + .long 0x3f026000 + .long 0x3f022000 + .long 0x3f01e000 + .long 0x3f01a000 + .long 0x3f016000 + .long 0x3f012000 + .long 0x3f00e000 + .long 0x3f00a000 + .long 0x3f006000 + .long 0x3f002000 + .type __dlog2_la___libm_rcp_table_256,@object + .size __dlog2_la___libm_rcp_table_256,1024 + .align 64 +__dlog2_la___libm_log2_table_256: + .long 0xfb44c3b7,0x3e1485cb + .long 0x00000000,0x3f671b0e + .long 0x06028ac0,0x3e31d5d9 + .long 0x00000000,0x3f815cfe + .long 0xb8d7240b,0x3df8b9cb + .long 0x00000000,0x3f8cfee7 + .long 0x0d179106,0x3e38864a + .long 0x00000000,0x3f94564a + .long 0xecba1593,0x3e459c6a + .long 0x00000000,0x3f997723 + .long 0x94120c14,0x3e48d36a + .long 0x00000000,0x3f9f5923 + .long 0xd2571490,0x3e5410ba + .long 0x00000000,0x3fa2a094 + .long 0x1dc036a2,0x3e2776b0 + .long 0x00000000,0x3fa53894 + .long 0x78efe2b1,0x3e537229 + .long 0x00000000,0x3fa8324c + .long 0xfd29dc75,0x3e59c0fa + .long 0x00000000,0x3faacf54 + .long 0x046734f7,0x3e4636b7 + .long 0x00000000,0x3fadced9 + .long 0xd3b410b8,0x3e6f7950 + .long 0x00000000,0x3fb0387e + .long 0x00f2200a,0x3e19d1e7 + .long 0x00000000,0x3fb18ac6 + .long 0x8661ba82,0x3e4f09a9 + .long 0x00000000,0x3fb30edd + .long 0x9367107c,0x3e564d91 + .long 0x00000000,0x3fb463c1 + .long 0x0e4a4ce8,0x3e4e1fd1 + .long 0x00000000,0x3fb5b9e1 + .long 0x3cdb6374,0x3e492cf0 + .long 0x00000000,0x3fb7113f + .long 0x069c4f7f,0x3e61a364 + .long 0x00000000,0x3fb869dd + .long 0x427b631b,0x3e6493a6 + .long 0x00000000,0x3fb9c3be + .long 0xe02b3e8b,0x3e6af2c2 + .long 0x00000000,0x3fbb1ee4 + .long 0x389f4365,0x3e616e1e + .long 0x00000000,0x3fbc7b52 + .long 0x6a31fd96,0x3e4633b7 + .long 0x00000000,0x3fbdd90a + .long 0x0508664d,0x3e62ed84 + .long 0x00000000,0x3fbf05d4 + .long 0xaca1905c,0x3e775dcd + .long 0x00000000,0x3fc032fb + .long 0x094fbeeb,0x3e753e65 + .long 0x00000000,0x3fc0e3b5 + .long 0x96aa4b17,0x3e671f44 + .long 0x00000000,0x3fc19519 + .long 0x92da5a47,0x3e785566 + .long 0x00000000,0x3fc22dad + .long 0xbeb7d722,0x3e518efa + .long 0x00000000,0x3fc2e050 + .long 0xab57551c,0x3e738564 + .long 0x00000000,0x3fc379f7 + .long 0x54a914e3,0x3e55d0da + .long 0x00000000,0x3fc42ddd + .long 0xfe974017,0x3e73cd00 + .long 0x00000000,0x3fc4c89b + .long 0x59064390,0x3e54ffd6 + .long 0x00000000,0x3fc563dc + .long 0x633ab50f,0x3e67d75e + .long 0x00000000,0x3fc619a2 + .long 0xc8877e8a,0x3e77e6ce + .long 0x00000000,0x3fc6b5ff + .long 0x1ab7837f,0x3e7ecc1f + .long 0x00000000,0x3fc752e1 + .long 0xf9d5827a,0x3e7cea7c + .long 0x00000000,0x3fc7f049 + .long 0x64ccd537,0x3e357f7a + .long 0x00000000,0x3fc8a898 + .long 0xf7c9b05b,0x3e7994ca + .long 0x00000000,0x3fc94724 + .long 0xa2f56536,0x3e524b8f + .long 0x00000000,0x3fc9e63a + .long 0x5edaab42,0x3e7fd640 + .long 0x00000000,0x3fca85d8 + .long 0xd163379a,0x3e625f54 + .long 0x00000000,0x3fcb2602 + .long 0x936acd51,0x3e7ebdc3 + .long 0x00000000,0x3fcbc6b6 + .long 0xcfbc0aa0,0x3e7eee14 + .long 0x00000000,0x3fcc67f7 + .long 0xf73bcdad,0x3e764469 + .long 0x00000000,0x3fcceec4 + .long 0x60971b86,0x3e6eb44e + .long 0x00000000,0x3fcd9109 + .long 0xcd2052a5,0x3e65fcf4 + .long 0x00000000,0x3fce33dd + .long 0xc402867b,0x3e61af1e + .long 0x00000000,0x3fced741 + .long 0xa0c956e4,0x3e61bfbd + .long 0x00000000,0x3fcf7b36 + .long 0x831e77ff,0x3e85287b + .long 0x00000000,0x3fd00223 + .long 0xaddfdee2,0x3e7d2fc3 + .long 0x00000000,0x3fd054a4 + .long 0x342052c1,0x3e83724b + .long 0x00000000,0x3fd0999d + .long 0x602bcd34,0x3e7b4ec9 + .long 0x00000000,0x3fd0eca6 + .long 0x3aa20ead,0x3e6742da + .long 0x00000000,0x3fd13ffa + .long 0x9ecdadf4,0x3e713e82 + .long 0x00000000,0x3fd185a4 + .long 0xfef3031b,0x3e52f27e + .long 0x00000000,0x3fd1cb83 + .long 0x79e4af8a,0x3e710739 + .long 0x00000000,0x3fd21fa1 + .long 0xe59ad84a,0x3e637301 + .long 0x00000000,0x3fd265f5 + .long 0x3d7dfd9b,0x3e88697c + .long 0x00000000,0x3fd2baa0 + .long 0x738117b0,0x3e717788 + .long 0x00000000,0x3fd3016b + .long 0xd3c26a97,0x3e6c5514 + .long 0x00000000,0x3fd3486c + .long 0x4c4ff246,0x3e8df550 + .long 0x00000000,0x3fd38fa3 + .long 0x40340fa6,0x3e88102d + .long 0x00000000,0x3fd3e562 + .long 0x4592f4c3,0x3e5f53b6 + .long 0x00000000,0x3fd42d14 + .long 0x8b149a00,0x3e750fc8 + .long 0x00000000,0x3fd474fd + .long 0xa8f50e5f,0x3e86d01c + .long 0x00000000,0x3fd4bd1e + .long 0x7a22a88a,0x3e83c469 + .long 0x00000000,0x3fd50578 + .long 0xdc18b6d2,0x3e79000e + .long 0x00000000,0x3fd54e0b + .long 0x7c00250b,0x3e7870f0 + .long 0x00000000,0x3fd596d7 + .long 0xc1c885ae,0x3e8e3dd5 + .long 0x00000000,0x3fd5dfdc + .long 0xa6ecc47e,0x3e7bf64c + .long 0x00000000,0x3fd6291c + .long 0x0bc16c18,0x3e6bdaca + .long 0x00000000,0x3fd67296 + .long 0x1f925729,0x3e84d25c + .long 0x00000000,0x3fd6bc4a + .long 0xf23978de,0x3e5a5fb4 + .long 0x00000000,0x3fd7063a + .long 0xe2ac7f60,0x3e8e3da0 + .long 0x00000000,0x3fd75064 + .long 0x71f51a7b,0x3e819e20 + .long 0x00000000,0x3fd79acb + .long 0x5b924234,0x3e5e43ae + .long 0x00000000,0x3fd7d67c + .long 0xe9aedf37,0x3e701a2b + .long 0x00000000,0x3fd8214f + .long 0xeddd33ea,0x3e6b6f51 + .long 0x00000000,0x3fd86c5f + .long 0xe732b3c4,0x3e79375f + .long 0x00000000,0x3fd8b7ac + .long 0xe47cb9df,0x3e7e831b + .long 0x00000000,0x3fd8f416 + .long 0xe392d3c8,0x3e8abc37 + .long 0x00000000,0x3fd93fd2 + .long 0x28b35c77,0x3e80852d + .long 0x00000000,0x3fd98bcd + .long 0xd29cea36,0x3e69f374 + .long 0x00000000,0x3fd9c8c3 + .long 0xb3d7b0e6,0x3e542981 + .long 0x00000000,0x3fda152f + .long 0x1fe6d5ac,0x3e8b2bfb + .long 0x00000000,0x3fda527f + .long 0xf32e5dda,0x3e6f6f5c + .long 0x00000000,0x3fda9f5e + .long 0xd34d0d30,0x3e65abaa + .long 0x00000000,0x3fdadd0b + .long 0xe0ac9602,0x3e7bd47f + .long 0x00000000,0x3fdb2a5d + .long 0x7c5c784b,0x3e833601 + .long 0x00000000,0x3fdb6867 + .long 0xd7b0821f,0x3e5b887c + .long 0x00000000,0x3fdbb62f + .long 0xcd0a8f6a,0x3e83eccc + .long 0x00000000,0x3fdbf497 + .long 0x7500a4e8,0x3e7ba0e6 + .long 0x00000000,0x3fdc332a + .long 0xfc8712bb,0x3e885a8b + .long 0x00000000,0x3fdc819d + .long 0xf7a3a78f,0x3e81c336 + .long 0x00000000,0x3fdcc090 + .long 0x4ad8a38b,0x3e7846b4 + .long 0x00000000,0x3fdcffae + .long 0xfcfc3a99,0x3e7db50f + .long 0x00000000,0x3fdd3ef7 + .long 0x433cccd2,0x3e238809 + .long 0x00000000,0x3fdd8e50 + .long 0x6828fa82,0x3e721b2e + .long 0x00000000,0x3fddcdfb + .long 0xfc7c49c1,0x3e82848b + .long 0x00000000,0x3fde0dd2 + .long 0x1fce4d49,0x3e615144 + .long 0x00000000,0x3fde4dd6 + .long 0x77e2e8fd,0x3e68b88a + .long 0x00000000,0x3fde8e06 + .long 0x22a961b0,0x3e8fd353 + .long 0x00000000,0x3fdece62 + .long 0x266f2e1f,0x3e72854e + .long 0x00000000,0x3fdf1f16 + .long 0xc69211fe,0x3e8520c7 + .long 0x00000000,0x3fdf5fd8 + .long 0xaba878d5,0x3e826fcf + .long 0x00000000,0x3fdfa0c8 + .long 0xcd5b35b1,0x3e726ed8 + .long 0x00000000,0x3fdfe1e6 + .long 0x678a4f1c,0x3e49054d + .long 0x00000000,0x3fe01199 + .long 0x3bc19f18,0x3e5d23cb + .long 0x00000000,0x3fe03256 + .long 0x12772acb,0x3e87af35 + .long 0x00000000,0x3fe0532a + .long 0x2849c88a,0x3e67f5fc + .long 0x00000000,0x3fe07416 + .long 0x0e574fa1,0x3e84fce2 + .long 0x00000000,0x3fe08cd6 + .long 0x0ec2b5fa,0x3e857044 + .long 0x00000000,0x3fe0adeb + .long 0xd031f353,0x3e6d5d1d + .long 0x00000000,0x3fe0cf18 + .long 0xdae75c4d,0x3e99a159 + .long 0x00000000,0x3fe0f05c + .long 0x1553afb9,0x3e90eaf1 + .long 0x00000000,0x3fe111b9 + .long 0xdcc5c3c7,0x3e8bc6f3 + .long 0x00000000,0x3fe1332e + .long 0x1109e597,0x3e94ef84 + .long 0x00000000,0x3fe154bb + .long 0xd82adea4,0x3e937f40 + .long 0x00000000,0x3fe16df5 + .long 0x78336a2f,0x3e96dc5a + .long 0x00000000,0x3fe18fad + .long 0x84c2c804,0x3e90935b + .long 0x00000000,0x3fe1b17e + .long 0x04fd30aa,0x3e8a837a + .long 0x00000000,0x3fe1caeb + .long 0xd924b0ac,0x3e99061d + .long 0x00000000,0x3fe1ece7 + .long 0xef9b9d01,0x3e7ed700 + .long 0x00000000,0x3fe20efd + .long 0x202c81ec,0x3e9c6ebb + .long 0x00000000,0x3fe2289d + .long 0xfc0d7d76,0x3e936d4d + .long 0x00000000,0x3fe24adf + .long 0x9f8756ba,0x3e9a35d7 + .long 0x00000000,0x3fe26d3a + .long 0xe7c79d83,0x3e584ee3 + .long 0x00000000,0x3fe28710 + .long 0x942065a0,0x3e7d9e0d + .long 0x00000000,0x3fe2a998 + .long 0x2175afbf,0x3e872108 + .long 0x00000000,0x3fe2c38f + .long 0xfaf6283c,0x3e9f5809 + .long 0x00000000,0x3fe2e644 + .long 0x411d0507,0x3e871209 + .long 0x00000000,0x3fe3005e + .long 0x370c24bf,0x3e9c3b11 + .long 0x00000000,0x3fe32341 + .long 0x8044bb5a,0x3e9bce8e + .long 0x00000000,0x3fe33d7d + .long 0x698ea854,0x3e98aca0 + .long 0x00000000,0x3fe3608f + .long 0xd4d873bb,0x3e972a8e + .long 0x00000000,0x3fe37aee + .long 0x615e8182,0x3e8f669b + .long 0x00000000,0x3fe39e2f + .long 0xdda5b49a,0x3e98d1f4 + .long 0x00000000,0x3fe3b8b1 + .long 0xe72383f7,0x3e9cc279 + .long 0x00000000,0x3fe3dc21 + .long 0x497497f1,0x3e9c6774 + .long 0x00000000,0x3fe3f6c7 + .long 0x801bd0e6,0x3e82c7f6 + .long 0x00000000,0x3fe4117d + .long 0xd0ee28b4,0x3e9dfdd6 + .long 0x00000000,0x3fe43531 + .long 0xb70d3761,0x3e92d3a2 + .long 0x00000000,0x3fe4500b + .long 0xe7d6bcb2,0x3e9c8343 + .long 0x00000000,0x3fe46af4 + .long 0x90d43957,0x3e693179 + .long 0x00000000,0x3fe48eef + .long 0xf12570df,0x3e799eab + .long 0x00000000,0x3fe4a9fd + .long 0x1b88755d,0x3e78c5f8 + .long 0x00000000,0x3fe4c51b + .long 0xdf99a22c,0x3e7369be + .long 0x00000000,0x3fe4e049 + .long 0x6ed50f62,0x3e88fd93 + .long 0x00000000,0x3fe5049f + .long 0x978605ff,0x3e9c6042 + .long 0x00000000,0x3fe51ff2 + .long 0xe6c85f4c,0x3e930ae6 + .long 0x00000000,0x3fe53b56 + .long 0xc3275ba6,0x3e92e7b6 + .long 0x00000000,0x3fe556ca + .long 0x91597938,0x3e9e6401 + .long 0x00000000,0x3fe5724e + .long 0x448ebb62,0x3e3d2dee + .long 0x00000000,0x3fe59719 + .long 0x47501b6d,0x3e9b432e + .long 0x00000000,0x3fe5b2c3 + .long 0x571fa7cd,0x3e83cf9b + .long 0x00000000,0x3fe5ce7f + .long 0x7359819d,0x3e8dc615 + .long 0x00000000,0x3fe5ea4b + .long 0xc78a85ed,0x3e8973c3 + .long 0x00000000,0x3fe60628 + .long 0xc15a9f3d,0x3e77d788 + .long 0x00000000,0x3fe62216 + .long 0x51952736,0x3e9d2538 + .long 0x00000000,0x3fe63e14 + .long 0xde792c07,0x3e94dab9 + .long 0x00000000,0x3fe65a24 + .long 0x5bfa4318,0x3e8f5be1 + .long 0x00000000,0x3fe67645 + .long 0x55090ec8,0x3e903b26 + .long 0x00000000,0x3fe69277 + .long 0xc78b6175,0x3e99236f + .long 0x00000000,0x3fe6aeba + .long 0x3a80db6a,0x3e8a1972 + .long 0x00000000,0x3fe6cb0f + .long 0xf558aa96,0x3e8d43a2 + .long 0x00000000,0x3fe6e775 + .long 0xd9a82f2e,0x3e424ee3 + .long 0x00000000,0x3fe703ed + .long 0x583878f6,0x3e764d8e + .long 0x00000000,0x3fe72076 + .long 0xc1150a3e,0x3e379604 + .long 0x00000000,0x3fe73d11 + .long 0xed85584b,0x3e93b229 + .long 0x00000000,0x3fe759bd + .long 0x451a7b48,0x3e62967a + .long 0x00000000,0x3fe7767c + .long 0xc044e72d,0x3e8e12d7 + .long 0x00000000,0x3fe7934c + .long 0xfdfb6949,0x3e9ca45d + .long 0x00000000,0x3fe7b02e + .long 0xff690fce,0x3e9244fc + .long 0x00000000,0x3fe7c37a + .long 0x81487a2c,0x3e7e9cea + .long 0x00000000,0x3fe7e07b + .long 0xd0ad2d9a,0x3e760da0 + .long 0x00000000,0x3fe7fd8e + .long 0x096f45d9,0x3e8d7703 + .long 0x00000000,0x3fe81ab3 + .long 0x1b17115b,0x3e78dbee + .long 0x00000000,0x3fe837eb + .long 0x7c252ee0,0x3e8dc5a4 + .long 0x00000000,0x3fe85535 + .long 0x42d5123f,0x3e950116 + .long 0x00000000,0x3fe868c6 + .long 0xf11e41be,0x3e4c4eb7 + .long 0x00000000,0x3fe88630 + .long 0xdb2890b4,0x3e7773b8 + .long 0x00000000,0x3fe8a3ac + .long 0x7ffb4479,0x3e7bc8e7 + .long 0x00000000,0x3fe8c13b + .long 0x237693b3,0x3e8c388f + .long 0x00000000,0x3fe8d4fa + .long 0x45fcf1a0,0x3e731cd4 + .long 0x00000000,0x3fe8f2a9 + .long 0xe4895b91,0x3e9fae07 + .long 0x00000000,0x3fe9106a + .long 0x42d2824e,0x3e7d140d + .long 0x00000000,0x3fe9244c + .long 0x39900f67,0x3e75c3c8 + .long 0x00000000,0x3fe9422e + .long 0xa314252b,0x3e902422 + .long 0x00000000,0x3fe96023 + .long 0xf2a6b8ef,0x3e7b9be8 + .long 0x00000000,0x3fe97427 + .long 0x1476f5e9,0x3e66b188 + .long 0x00000000,0x3fe9923d + .long 0xdde10a6f,0x3e93c377 + .long 0x00000000,0x3fe9b066 + .long 0x4944a32c,0x3e817cad + .long 0x00000000,0x3fe9c48d + .long 0xc738e7ef,0x3e9927f2 + .long 0x00000000,0x3fe9e2d7 + .long 0xd25cfd94,0x3e7ccc41 + .long 0x00000000,0x3fea0136 + .long 0x2210e81b,0x3e8382fa + .long 0x00000000,0x3fea1580 + .long 0x1e690ce2,0x3e7752a7 + .long 0x00000000,0x3fea3400 + .long 0x122315d2,0x3e94cfee + .long 0x00000000,0x3fea4860 + .long 0xce98333b,0x3e80536e + .long 0x00000000,0x3fea6702 + .long 0xc30f00e9,0x3e838b7e + .long 0x00000000,0x3fea7b79 + .long 0x05b0c779,0x3e9dc380 + .long 0x00000000,0x3fea9a3c + .long 0xdd6dd3fe,0x3e6be168 + .long 0x00000000,0x3feab915 + .long 0x26e0d276,0x3e966757 + .long 0x00000000,0x3feacdb0 + .long 0x0aad615c,0x3e880252 + .long 0x00000000,0x3feaecab + .long 0x7927096a,0x3e607c31 + .long 0x00000000,0x3feb015e + .long 0x53b3d90e,0x3e596513 + .long 0x00000000,0x3feb161a + .long 0x8f2f0570,0x3e90ec3a + .long 0x00000000,0x3feb3545 + .long 0x81193954,0x3e9cb640 + .long 0x00000000,0x3feb4a18 + .long 0x311e7236,0x3e936479 + .long 0x00000000,0x3feb6967 + .long 0x3a42a413,0x3e9210e8 + .long 0x00000000,0x3feb7e52 + .long 0x4a0daeb2,0x3e9a1717 + .long 0x00000000,0x3feb9dc4 + .long 0xce900653,0x3e925bb7 + .long 0x00000000,0x3febb2c7 + .long 0xb5087588,0x3e95dbb8 + .long 0x00000000,0x3febd25d + .long 0x4a41204c,0x3e8d0aa9 + .long 0x00000000,0x3febe778 + .long 0x69a0d774,0x3e9c772f + .long 0x00000000,0x3febfc9c + .long 0x79d0a9a5,0x3e97b6a0 + .long 0x00000000,0x3fec1c65 + .long 0xd26f1a12,0x3e8f7402 + .long 0x00000000,0x3fec31a2 + .long 0x1243bc84,0x3e4db2f1 + .long 0x00000000,0x3fec46e9 + .long 0x477e1755,0x3e80dcc2 + .long 0x00000000,0x3fec66e5 + .long 0xc2f904c1,0x3e8b1e31 + .long 0x00000000,0x3fec7c44 + .long 0x1785b0c4,0x3e8fb619 + .long 0x00000000,0x3fec91ad + .long 0xedb052ef,0x3e98832d + .long 0x00000000,0x3fecb1dd + .long 0x9e373618,0x3e98c822 + .long 0x00000000,0x3fecc75f + .long 0x32954637,0x3e9a46e7 + .long 0x00000000,0x3fecdceb + .long 0xf0e6b2a9,0x3e996305 + .long 0x00000000,0x3fecfd50 + .long 0x1a6614ee,0x3e68c160 + .long 0x00000000,0x3fed12f6 + .long 0x09e33b28,0x3e9229c4 + .long 0x00000000,0x3fed28a5 + .long 0xe53b994c,0x3e7f281b + .long 0x00000000,0x3fed3e5f + .long 0x1124ac35,0x3e9f27f3 + .long 0x00000000,0x3fed5f08 + .long 0x3d2fdc03,0x3e84e779 + .long 0x00000000,0x3fed74dc + .long 0x1e93fd97,0x3e416c07 + .long 0x00000000,0x3fed8aba + .long 0x91b415ef,0x3e654669 + .long 0x00000000,0x3feda0a2 + .long 0x6495f594,0x3e9712d4 + .long 0x00000000,0x3fedc191 + .long 0x40171789,0x3e9ca7b2 + .long 0x00000000,0x3fedd793 + .long 0xe8fc4323,0x3e929afa + .long 0x00000000,0x3fededa0 + .long 0xeb03bd09,0x3e9a2e96 + .long 0x00000000,0x3fee03b7 + .long 0xca370ea2,0x3e94a63d + .long 0x00000000,0x3fee19d9 + .long 0xe30512ec,0x3e6a3bcb + .long 0x00000000,0x3fee3006 + .long 0x411c95ce,0x3e99d3ed + .long 0x00000000,0x3fee515c + .long 0x35cfaf8e,0x3e3e5b57 + .long 0x00000000,0x3fee67a4 + .long 0x5669df6a,0x3e9fca71 + .long 0x00000000,0x3fee7df5 + .long 0x04f19d94,0x3e9914e2 + .long 0x00000000,0x3fee9452 + .long 0xcaa19134,0x3e8b511c + .long 0x00000000,0x3feeaaba + .long 0x4bb3bfb1,0x3e9ed72f + .long 0x00000000,0x3feec12c + .long 0x3c29d75e,0x3e8be8d6 + .long 0x00000000,0x3feed7aa + .long 0x97da24fd,0x3e9c55d9 + .long 0x00000000,0x3feeee32 + .long 0x983c68ea,0x3e7ddfb1 + .long 0x00000000,0x3fef1014 + .long 0xf4425883,0x3e83ce66 + .long 0x00000000,0x3fef26b8 + .long 0xf7857f23,0x3e9055c3 + .long 0x00000000,0x3fef3d67 + .long 0x2805b525,0x3e9c2223 + .long 0x00000000,0x3fef5421 + .long 0x0c347fcf,0x3e8d59ba + .long 0x00000000,0x3fef6ae7 + .long 0x7c901c44,0x3e82b110 + .long 0x00000000,0x3fef81b8 + .long 0x74d1b482,0x3e8b1394 + .long 0x00000000,0x3fef9894 + .long 0x36fb9eb2,0x3e9ca75b + .long 0x00000000,0x3fefaf7b + .long 0x629b1b7e,0x3e981a0a + .long 0x00000000,0x3fefc66e + .long 0x7b8c1116,0x3e54cc20 + .long 0x00000000,0x3fefdd6d + .long 0xc0babe05,0x3e99ac8b + .long 0x00000000,0x3feff476 + .type __dlog2_la___libm_log2_table_256,@object + .size __dlog2_la___libm_log2_table_256,4096 + .space 512, 0x00 + .align 64 +__dlog2_la__P: + .long 3213235158 + .long 1050233568 + .long 1697350398 + .long 3219592519 + .long 3694740707 + .long 1071564553 + .long 1697260025 + .long 3218543943 + .long 2542794428 + .long 1070757746 + .long 2165113687 + .long 3217999640 + .long 0 + .long 1073157447 + .type __dlog2_la__P,@object + .size __dlog2_la__P,56 diff --git a/numpy/core/src/umath/svml/svml_z0_log2_s_la.s b/numpy/core/src/umath/svml/svml_z0_log2_s_la.s new file mode 100644 index 000000000000..7f26b01b2aff --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log2_s_la.s @@ -0,0 +1,728 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * log2(x) = VGETEXP(x) + log2(VGETMANT(x)) + * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) + * * mx = VGETMANT(x) is in [1,2) for all x>=0 + * * log2(mx) = -log2(RCP(mx)) + log2(1 +(mx*RCP(mx)-1)) + * * RCP(mx) is rounded to 4 fractional bits, + * * and the table lookup for log2(RCP(mx)) is based on a small permute instruction + * * + * * LA, EP versions use interval interpolation (16 intervals) + * * + * + */ + + + .text +.L_2__routine_start___svml_log2f16_z0_0: + + .align 16,0x90 + .globl __svml_log2f16 + +__svml_log2f16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + +/* GetMant(x), normalized to [.75,1.5) for x>=0, NaN for x<0 */ + vgetmantps $11, {sae}, %zmm0, %zmm3 + vmovups __svml_slog2_data_internal_avx512(%rip), %zmm1 + vgetexpps {sae}, %zmm0, %zmm5 + +/* x<=0? */ + vfpclassps $94, %zmm0, %k0 + vsubps {rn-sae}, %zmm1, %zmm3, %zmm9 + vpsrld $19, %zmm3, %zmm7 + vgetexpps {sae}, %zmm3, %zmm6 + vpermps 64+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm1 + vpermps 128+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm2 + vpermps 192+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm4 + vpermps 256+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm8 + vsubps {rn-sae}, %zmm6, %zmm5, %zmm10 + vfmadd213ps {rn-sae}, %zmm2, %zmm9, %zmm1 + kmovw %k0, %edx + vfmadd213ps {rn-sae}, %zmm4, %zmm9, %zmm1 + vfmadd213ps {rn-sae}, %zmm8, %zmm9, %zmm1 + vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm1 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm1, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_slog2_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_log2f16,@function + .size __svml_log2f16,.-__svml_log2f16 +..LN__svml_log2f16.0: + +.L_2__routine_start___svml_slog2_cout_rare_internal_1: + + .align 16,0x90 + +__svml_slog2_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_13 + + + movss (%rdi), %xmm2 + xorl %ecx, %ecx + pxor %xmm1, %xmm1 + movss %xmm2, -16(%rsp) + ucomiss %xmm1, %xmm2 + jp .LBL_2_3 + je .LBL_2_5 + +.LBL_2_3: + + movzwl -14(%rsp), %edx + testl $32640, %edx + jne .LBL_2_5 + + + movss .L_2il0floatpacket.76(%rip), %xmm0 + movl $-27, %ecx + mulss %xmm0, %xmm2 + movss %xmm2, -16(%rsp) + +.LBL_2_5: + + comiss %xmm1, %xmm2 + jbe .LBL_2_9 + + + movaps %xmm2, %xmm1 + subss .L_2il0floatpacket.90(%rip), %xmm1 + movss %xmm1, -20(%rsp) + andb $127, -17(%rsp) + movss -20(%rsp), %xmm0 + comiss .L_2il0floatpacket.77(%rip), %xmm0 + jbe .LBL_2_8 + + + movzwl -14(%rsp), %edx + pxor %xmm8, %xmm8 + andl $32640, %edx + lea __slog2_la_CoutTab(%rip), %r10 + shrl $7, %edx + movss %xmm2, -20(%rsp) + movss .L_2il0floatpacket.79(%rip), %xmm2 + movaps %xmm2, %xmm1 + movss .L_2il0floatpacket.88(%rip), %xmm6 + lea -127(%rcx,%rdx), %r9d + movzwl -18(%rsp), %ecx + andl $-32641, %ecx + addl $16256, %ecx + movw %cx, -18(%rsp) + movss -20(%rsp), %xmm3 + movaps %xmm3, %xmm0 + addss %xmm3, %xmm1 + addss .L_2il0floatpacket.78(%rip), %xmm0 + cvtsi2ss %r9d, %xmm8 + movss %xmm0, -24(%rsp) + movl -24(%rsp), %edi + movss %xmm1, -24(%rsp) + andl $127, %edi + movss -24(%rsp), %xmm7 + subss %xmm2, %xmm7 + lea (%rdi,%rdi,2), %r8d + movss (%r10,%r8,4), %xmm5 + subss %xmm7, %xmm3 + addss 4(%r10,%r8,4), %xmm8 + mulss %xmm5, %xmm7 + mulss %xmm3, %xmm5 + subss .L_2il0floatpacket.80(%rip), %xmm7 + movaps %xmm7, %xmm4 + addss %xmm7, %xmm8 + addss %xmm5, %xmm4 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.87(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.86(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.85(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.84(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.83(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.82(%rip), %xmm6 + mulss %xmm4, %xmm6 + addss .L_2il0floatpacket.81(%rip), %xmm6 + mulss %xmm6, %xmm7 + mulss %xmm5, %xmm6 + addss 8(%r10,%r8,4), %xmm6 + addss %xmm5, %xmm6 + addss %xmm6, %xmm7 + addss %xmm7, %xmm8 + movss %xmm8, (%rsi) + ret + +.LBL_2_8: + + movss .L_2il0floatpacket.80(%rip), %xmm0 + mulss %xmm0, %xmm1 + movss .L_2il0floatpacket.88(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.87(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.86(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.85(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.84(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.83(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.82(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss .L_2il0floatpacket.81(%rip), %xmm2 + mulss %xmm1, %xmm2 + addss %xmm1, %xmm2 + movss %xmm2, (%rsi) + ret + +.LBL_2_9: + + ucomiss %xmm1, %xmm2 + jp .LBL_2_10 + je .LBL_2_12 + +.LBL_2_10: + + divss %xmm1, %xmm1 + movss %xmm1, (%rsi) + movl $1, %eax + + + ret + +.LBL_2_12: + + movss .L_2il0floatpacket.89(%rip), %xmm0 + movl $2, %eax + divss %xmm1, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_13: + + movb 3(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_15 + +.LBL_2_14: + + movss (%rdi), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_15: + + testl $8388607, (%rdi) + jne .LBL_2_14 + + + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_slog2_cout_rare_internal,@function + .size __svml_slog2_cout_rare_internal,.-__svml_slog2_cout_rare_internal +..LN__svml_slog2_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_slog2_data_internal_avx512: + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 3198647882 + .long 3196759613 + .long 3194486322 + .long 3192115638 + .long 3190203785 + .long 3188646043 + .long 3187058849 + .long 3184933705 + .long 3210235473 + .long 3208544417 + .long 3207107312 + .long 3205878647 + .long 3204822309 + .long 3203370544 + .long 3201784975 + .long 3200401796 + .long 1056280844 + .long 1055933857 + .long 1055381630 + .long 1054718852 + .long 1054004959 + .long 1053277138 + .long 1052558383 + .long 1051862550 + .long 1049572249 + .long 1051796030 + .long 1053416266 + .long 1054571017 + .long 1055365658 + .long 1055881163 + .long 1056180132 + .long 1056311220 + .long 3208161588 + .long 3208150502 + .long 3208115952 + .long 3208053899 + .long 3207964810 + .long 3207851268 + .long 3207716694 + .long 3207564674 + .long 3208734740 + .long 3208490840 + .long 3208338440 + .long 3208247850 + .long 3208197907 + .long 3208173537 + .long 3208164045 + .long 3208161890 + .long 1069066811 + .long 1069066688 + .long 1069065960 + .long 1069064014 + .long 1069060299 + .long 1069054385 + .long 1069045976 + .long 1069034896 + .long 1069049182 + .long 1069058106 + .long 1069062890 + .long 1069065263 + .long 1069066312 + .long 1069066697 + .long 1069066799 + .long 1069066811 + .type __svml_slog2_data_internal_avx512,@object + .size __svml_slog2_data_internal_avx512,320 + .align 32 +__slog2_la_CoutTab: + .long 1136175680 + .long 0 + .long 0 + .long 1135986583 + .long 1018822656 + .long 930849160 + .long 1135809305 + .long 1026916352 + .long 941737263 + .long 1135632026 + .long 1032306688 + .long 936581683 + .long 1135466566 + .long 1035100160 + .long 929197062 + .long 1135301106 + .long 1037934592 + .long 897678483 + .long 1135135647 + .long 1040498688 + .long 3059980496 + .long 1134982005 + .long 1041852416 + .long 908010313 + .long 1134828364 + .long 1043226624 + .long 3073739761 + .long 1134686541 + .long 1044510720 + .long 918631281 + .long 1134538809 + .long 1045868544 + .long 3062817788 + .long 1134402896 + .long 1047134208 + .long 3064656237 + .long 1134266982 + .long 1048416256 + .long 3029590737 + .long 1134131069 + .long 1049145856 + .long 903671587 + .long 1134001065 + .long 1049775616 + .long 911388989 + .long 1133876970 + .long 1050384896 + .long 3069885983 + .long 1133752875 + .long 1051001344 + .long 3037530952 + .long 1133634689 + .long 1051596288 + .long 3069922038 + .long 1133516503 + .long 1052198400 + .long 3070222063 + .long 1133404227 + .long 1052776960 + .long 919559368 + .long 1133291951 + .long 1053363200 + .long 840060372 + .long 1133185584 + .long 1053924864 + .long 915603033 + .long 1133079217 + .long 1054493184 + .long 921334924 + .long 1132978759 + .long 1055036416 + .long 896601826 + .long 1132872392 + .long 1055618048 + .long 908913293 + .long 1132777843 + .long 1056141312 + .long 3065728751 + .long 1132677386 + .long 1056702976 + .long 909020429 + .long 1132582837 + .long 1057101312 + .long 3048020321 + .long 1132494198 + .long 1057354752 + .long 3038815896 + .long 1132337219 + .long 1057628160 + .long 3068137421 + .long 1132159940 + .long 1057887232 + .long 3069993595 + .long 1131994480 + .long 1058131456 + .long 3054354312 + .long 1131817202 + .long 1058395904 + .long 910223436 + .long 1131651742 + .long 1058645504 + .long 3046952660 + .long 1131486282 + .long 1058897664 + .long 3057670844 + .long 1131332641 + .long 1059133952 + .long 924929721 + .long 1131178999 + .long 1059373056 + .long 3068093797 + .long 1131025358 + .long 1059614208 + .long 3058851683 + .long 1130871717 + .long 1059857920 + .long 3069897752 + .long 1130729894 + .long 1060084736 + .long 924446297 + .long 1130576253 + .long 1060333312 + .long 903058075 + .long 1130434430 + .long 1060564992 + .long 3052757441 + .long 1130304426 + .long 1060779264 + .long 3045479197 + .long 1130162603 + .long 1061015040 + .long 924699798 + .long 1130032599 + .long 1061233664 + .long 3070937808 + .long 1129890776 + .long 1061473792 + .long 925912756 + .long 1129772591 + .long 1061676032 + .long 923952205 + .long 1129642586 + .long 1061900544 + .long 906547304 + .long 1129512582 + .long 1062127104 + .long 3050351427 + .long 1129394397 + .long 1062334976 + .long 3070601694 + .long 1129276211 + .long 1062544384 + .long 900519722 + .long 1129158025 + .long 1062755840 + .long 3055774932 + .long 1129039840 + .long 1062969088 + .long 3053661845 + .long 1128921654 + .long 1063184384 + .long 3073448373 + .long 1128815287 + .long 1063379456 + .long 907090876 + .long 1128697101 + .long 1063598336 + .long 881051555 + .long 1128590734 + .long 1063796992 + .long 898320955 + .long 1128484367 + .long 1063997440 + .long 3068804107 + .long 1128378000 + .long 1064199168 + .long 923531617 + .long 1128283452 + .long 1064380416 + .long 3070994608 + .long 1128177085 + .long 1064585472 + .long 901920533 + .long 1128082536 + .long 1064769536 + .long 3071653428 + .long 1127976169 + .long 1064977920 + .long 903017594 + .long 1127881621 + .long 1065164800 + .long 911713416 + .long 1127787072 + .long 1065353216 + .long 0 + .long 1065353216 + .long 0 + .long 1207959616 + .long 1174405120 + .long 1002438656 + .long 1291845632 + .long 0 + .long 1065353216 + .long 1136175680 + .long 3212771328 + .long 3065082383 + .long 841219731 + .long 2913632803 + .long 691870088 + .long 2765780188 + .long 545377693 + .long 2619180638 + .type __slog2_la_CoutTab,@object + .size __slog2_la_CoutTab,848 + .align 4 +.L_2il0floatpacket.76: + .long 0x4d000000 + .type .L_2il0floatpacket.76,@object + .size .L_2il0floatpacket.76,4 + .align 4 +.L_2il0floatpacket.77: + .long 0x3bc00000 + .type .L_2il0floatpacket.77,@object + .size .L_2il0floatpacket.77,4 + .align 4 +.L_2il0floatpacket.78: + .long 0x48000040 + .type .L_2il0floatpacket.78,@object + .size .L_2il0floatpacket.78,4 + .align 4 +.L_2il0floatpacket.79: + .long 0x46000000 + .type .L_2il0floatpacket.79,@object + .size .L_2il0floatpacket.79,4 + .align 4 +.L_2il0floatpacket.80: + .long 0x43b8aa40 + .type .L_2il0floatpacket.80,@object + .size .L_2il0floatpacket.80,4 + .align 4 +.L_2il0floatpacket.81: + .long 0xbf7f0000 + .type .L_2il0floatpacket.81,@object + .size .L_2il0floatpacket.81,4 + .align 4 +.L_2il0floatpacket.82: + .long 0xb6b1720f + .type .L_2il0floatpacket.82,@object + .size .L_2il0floatpacket.82,4 + .align 4 +.L_2il0floatpacket.83: + .long 0x3223fe93 + .type .L_2il0floatpacket.83,@object + .size .L_2il0floatpacket.83,4 + .align 4 +.L_2il0floatpacket.84: + .long 0xadaa8223 + .type .L_2il0floatpacket.84,@object + .size .L_2il0floatpacket.84,4 + .align 4 +.L_2il0floatpacket.85: + .long 0x293d1988 + .type .L_2il0floatpacket.85,@object + .size .L_2il0floatpacket.85,4 + .align 4 +.L_2il0floatpacket.86: + .long 0xa4da74dc + .type .L_2il0floatpacket.86,@object + .size .L_2il0floatpacket.86,4 + .align 4 +.L_2il0floatpacket.87: + .long 0x2081cd9d + .type .L_2il0floatpacket.87,@object + .size .L_2il0floatpacket.87,4 + .align 4 +.L_2il0floatpacket.88: + .long 0x9c1d865e + .type .L_2il0floatpacket.88,@object + .size .L_2il0floatpacket.88,4 + .align 4 +.L_2il0floatpacket.89: + .long 0xbf800000 + .type .L_2il0floatpacket.89,@object + .size .L_2il0floatpacket.89,4 + .align 4 +.L_2il0floatpacket.90: + .long 0x3f800000 + .type .L_2il0floatpacket.90,@object + .size .L_2il0floatpacket.90,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log_d_la.s b/numpy/core/src/umath/svml/svml_z0_log_d_la.s new file mode 100644 index 000000000000..42428c5839bb --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log_d_la.s @@ -0,0 +1,1096 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * + * * log(x) = -log(Rcp) + log(Rcp*x), + * * where Rcp ~ 1/x (accuracy ~9 bits, obtained by rounding HW approximation to 1+9 mantissa bits) + * * + * * Reduced argument R=Rcp*x-1 is used to approximate log(1+R) as polynomial + * * + * * log(Rcp) = exponent_Rcp*log(2) + log(mantissa_Rcp) + * * -log(mantissa_Rcp) is obtained from a lookup table, accessed by a 9-bit index + * + */ + + + .text +.L_2__routine_start___svml_log8_z0_0: + + .align 16,0x90 + .globl __svml_log8 + +__svml_log8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vgetmantpd $8, {sae}, %zmm0, %zmm6 + vmovups 128+__svml_dlog_data_internal_avx512(%rip), %zmm4 + vmovups 384+__svml_dlog_data_internal_avx512(%rip), %zmm11 + vmovups 448+__svml_dlog_data_internal_avx512(%rip), %zmm14 + vmovups 512+__svml_dlog_data_internal_avx512(%rip), %zmm12 + vmovups 256+__svml_dlog_data_internal_avx512(%rip), %zmm10 + +/* Start polynomial evaluation */ + vmovups 320+__svml_dlog_data_internal_avx512(%rip), %zmm1 + vmovups 640+__svml_dlog_data_internal_avx512(%rip), %zmm13 + vmovups 704+__svml_dlog_data_internal_avx512(%rip), %zmm15 + +/* Prepare exponent correction: DblRcp<0.75? */ + vmovups 192+__svml_dlog_data_internal_avx512(%rip), %zmm3 + +/* Table lookup */ + vmovups __svml_dlog_data_internal_avx512(%rip), %zmm5 + +/* GetExp(x) */ + vgetexppd {sae}, %zmm0, %zmm7 + +/* DblRcp ~ 1/Mantissa */ + vrcp14pd %zmm6, %zmm8 + +/* x<=0? */ + vfpclasspd $94, %zmm0, %k0 + +/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ + vrndscalepd $88, {sae}, %zmm8, %zmm2 + kmovw %k0, %edx + +/* Reduced argument: R = DblRcp*Mantissa - 1 */ + vfmsub213pd {rn-sae}, %zmm4, %zmm2, %zmm6 + vcmppd $17, {sae}, %zmm3, %zmm2, %k1 + vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 + vmovups 576+__svml_dlog_data_internal_avx512(%rip), %zmm11 + vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm1 + vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm15 + +/* R^2 */ + vmulpd {rn-sae}, %zmm6, %zmm6, %zmm8 + vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm11 + +/* Prepare table index */ + vpsrlq $48, %zmm2, %zmm9 + +/* add 1 to Expon if DblRcp<0.75 */ + vaddpd {rn-sae}, %zmm4, %zmm7, %zmm7{%k1} + vmulpd {rn-sae}, %zmm8, %zmm8, %zmm12 + vfmadd213pd {rn-sae}, %zmm14, %zmm8, %zmm1 + vfmadd213pd {rn-sae}, %zmm15, %zmm8, %zmm11 + vpermt2pd 64+__svml_dlog_data_internal_avx512(%rip), %zmm9, %zmm5 + +/* polynomial */ + vfmadd213pd {rn-sae}, %zmm11, %zmm12, %zmm1 + vfmadd213pd {rn-sae}, %zmm6, %zmm8, %zmm1 + vaddpd {rn-sae}, %zmm1, %zmm5, %zmm2 + vmovups 768+__svml_dlog_data_internal_avx512(%rip), %zmm1 + vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm7 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm7, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm7, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm7 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dlog_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_log8,@function + .size __svml_log8,.-__svml_log8 +..LN__svml_log8.0: + +.L_2__routine_start___svml_dlog_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dlog_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 6(%rdi), %edx + andl $32752, %edx + cmpl $32752, %edx + je .LBL_2_12 + + + movsd (%rdi), %xmm2 + xorl %ecx, %ecx + movsd %xmm2, -8(%rsp) + movzwl -2(%rsp), %edx + testl $32752, %edx + jne .LBL_2_4 + + + mulsd 1600+__dlog_la_CoutTab(%rip), %xmm2 + movl $-60, %ecx + movsd %xmm2, -8(%rsp) + +.LBL_2_4: + + movsd 1608+__dlog_la_CoutTab(%rip), %xmm0 + comisd %xmm0, %xmm2 + jbe .LBL_2_8 + + + movsd .L_2il0floatpacket.80(%rip), %xmm3 + movaps %xmm2, %xmm1 + subsd %xmm3, %xmm1 + movsd %xmm1, -16(%rsp) + andb $127, -9(%rsp) + movsd -16(%rsp), %xmm0 + comisd 1592+__dlog_la_CoutTab(%rip), %xmm0 + jbe .LBL_2_7 + + + movsd %xmm2, -16(%rsp) + pxor %xmm7, %xmm7 + movzwl -10(%rsp), %edi + lea __dlog_la_CoutTab(%rip), %r10 + andl $-32753, %edi + addl $16368, %edi + movw %di, -10(%rsp) + movsd -16(%rsp), %xmm4 + movaps %xmm4, %xmm1 + movaps %xmm4, %xmm2 + movsd 1672+__dlog_la_CoutTab(%rip), %xmm8 + movzwl -2(%rsp), %edx + andl $32752, %edx + addsd 1576+__dlog_la_CoutTab(%rip), %xmm1 + addsd 1584+__dlog_la_CoutTab(%rip), %xmm2 + movsd %xmm1, -24(%rsp) + movl -24(%rsp), %r8d + movsd %xmm2, -24(%rsp) + andl $127, %r8d + movsd -24(%rsp), %xmm5 + movsd 1560+__dlog_la_CoutTab(%rip), %xmm9 + movsd 1568+__dlog_la_CoutTab(%rip), %xmm0 + shrl $4, %edx + subsd 1584+__dlog_la_CoutTab(%rip), %xmm5 + lea (%r8,%r8,2), %r9d + movsd (%r10,%r9,8), %xmm6 + lea -1023(%rcx,%rdx), %ecx + cvtsi2sd %ecx, %xmm7 + subsd %xmm5, %xmm4 + mulsd %xmm6, %xmm5 + mulsd %xmm7, %xmm9 + subsd %xmm3, %xmm5 + mulsd %xmm4, %xmm6 + mulsd %xmm0, %xmm7 + addsd 8(%r10,%r9,8), %xmm9 + addsd 16(%r10,%r9,8), %xmm7 + addsd %xmm5, %xmm9 + addsd %xmm6, %xmm7 + movaps %xmm5, %xmm3 + addsd %xmm6, %xmm3 + mulsd %xmm3, %xmm8 + addsd 1664+__dlog_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1656+__dlog_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1648+__dlog_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1640+__dlog_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1632+__dlog_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + addsd 1624+__dlog_la_CoutTab(%rip), %xmm8 + mulsd %xmm3, %xmm8 + mulsd %xmm3, %xmm8 + addsd %xmm7, %xmm8 + addsd %xmm8, %xmm9 + movsd %xmm9, (%rsi) + ret + +.LBL_2_7: + + movsd 1672+__dlog_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1664+__dlog_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1656+__dlog_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1648+__dlog_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1640+__dlog_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1632+__dlog_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + addsd 1624+__dlog_la_CoutTab(%rip), %xmm0 + mulsd %xmm1, %xmm0 + mulsd %xmm1, %xmm0 + addsd %xmm1, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_8: + + ucomisd %xmm0, %xmm2 + jp .LBL_2_9 + je .LBL_2_11 + +.LBL_2_9: + + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + movl $1, %eax + + + ret + +.LBL_2_11: + + movsd 1616+__dlog_la_CoutTab(%rip), %xmm1 + movl $2, %eax + xorps .L_2il0floatpacket.79(%rip), %xmm1 + divsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + ret + +.LBL_2_12: + + movb 7(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_14 + +.LBL_2_13: + + movsd (%rdi), %xmm0 + mulsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + +.LBL_2_14: + + testl $1048575, 4(%rdi) + jne .LBL_2_13 + + + cmpl $0, (%rdi) + jne .LBL_2_13 + + + movsd 1608+__dlog_la_CoutTab(%rip), %xmm0 + movl $1, %eax + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dlog_cout_rare_internal,@function + .size __svml_dlog_cout_rare_internal,.-__svml_dlog_cout_rare_internal +..LN__svml_dlog_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dlog_data_internal_avx512: + .long 0 + .long 0 + .long 3222364838 + .long 3215919664 + .long 1848308454 + .long 3216910087 + .long 1890030548 + .long 3217424176 + .long 3348797986 + .long 3217854455 + .long 2880153102 + .long 3218171740 + .long 3256639170 + .long 3218366859 + .long 4139503623 + .long 3218553303 + .long 288676754 + .long 1070754146 + .long 1823716217 + .long 1070569756 + .long 1015732707 + .long 1070240749 + .long 1800682930 + .long 1069924160 + .long 2183652476 + .long 1069619086 + .long 1566132617 + .long 1069101918 + .long 3047045639 + .long 1068533144 + .long 2313634884 + .long 1067467101 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 0 + .long 1072168960 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 815627376 + .long 1069318605 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2123607906 + .long 3217033013 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 2632876527 + .long 1069697314 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 4213758726 + .long 3217380691 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 2580324188 + .long 1070176665 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 787901 + .long 3218079744 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 1431655526 + .long 1070945621 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4294967238 + .long 3219128319 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 1072049730 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 0 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .long 4294967295 + .long 2146435071 + .type __svml_dlog_data_internal_avx512,@object + .size __svml_dlog_data_internal_avx512,1088 + .align 32 +__dlog_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072660480 + .long 1486880768 + .long 1066410070 + .long 1813744607 + .long 3179892593 + .long 0 + .long 1072629760 + .long 377487360 + .long 1067416219 + .long 919019713 + .long 3179241129 + .long 0 + .long 1072599040 + .long 1513619456 + .long 1067944025 + .long 874573033 + .long 3178512940 + .long 0 + .long 1072570368 + .long 3221749760 + .long 1068427825 + .long 4181665006 + .long 3177478212 + .long 0 + .long 1072541696 + .long 4162322432 + .long 1068708823 + .long 627020255 + .long 1028629941 + .long 0 + .long 1072513024 + .long 183107584 + .long 1068957907 + .long 2376703469 + .long 1030233118 + .long 0 + .long 1072486400 + .long 1053425664 + .long 1069192557 + .long 696277142 + .long 1030474863 + .long 0 + .long 1072459776 + .long 3996123136 + .long 1069430535 + .long 2630798680 + .long 1028792016 + .long 0 + .long 1072435200 + .long 3452764160 + .long 1069600382 + .long 624954044 + .long 3177101741 + .long 0 + .long 1072409600 + .long 207650816 + .long 1069717971 + .long 3272735636 + .long 3175176575 + .long 0 + .long 1072386048 + .long 2647228416 + .long 1069827627 + .long 3594228712 + .long 1029303785 + .long 0 + .long 1072362496 + .long 2712010752 + .long 1069938736 + .long 3653242769 + .long 3176839013 + .long 0 + .long 1072338944 + .long 374439936 + .long 1070051337 + .long 4072775574 + .long 3176577495 + .long 0 + .long 1072316416 + .long 3707174912 + .long 1070160474 + .long 1486946159 + .long 1023930920 + .long 0 + .long 1072294912 + .long 1443954688 + .long 1070265993 + .long 293532967 + .long 3176278277 + .long 0 + .long 1072273408 + .long 127762432 + .long 1070372856 + .long 3404145447 + .long 3177023955 + .long 0 + .long 1072252928 + .long 2053832704 + .long 1070475911 + .long 1575076358 + .long 1029048544 + .long 0 + .long 1072232448 + .long 3194093568 + .long 1070580248 + .long 1864169120 + .long 1026866084 + .long 0 + .long 1072212992 + .long 3917201408 + .long 1070638340 + .long 2362145246 + .long 3175606197 + .long 0 + .long 1072193536 + .long 3417112576 + .long 1070689116 + .long 70087871 + .long 3174183577 + .long 0 + .long 1072175104 + .long 4226777088 + .long 1070737793 + .long 1620410586 + .long 3174700065 + .long 0 + .long 1072156672 + .long 3168870400 + .long 1070787042 + .long 311238082 + .long 1025781772 + .long 0 + .long 1072139264 + .long 2150580224 + .long 1070834092 + .long 1664262457 + .long 3175299224 + .long 0 + .long 1072120832 + .long 4095672320 + .long 1070884491 + .long 1657121015 + .long 3174674199 + .long 0 + .long 1072104448 + .long 2595577856 + .long 1070929805 + .long 2014006823 + .long 3175423830 + .long 0 + .long 1072087040 + .long 3747176448 + .long 1070978493 + .long 144991708 + .long 3171552042 + .long 0 + .long 1072070656 + .long 1050435584 + .long 1071024840 + .long 3386227432 + .long 1027876916 + .long 0 + .long 1072055296 + .long 255516672 + .long 1071068760 + .long 2637594316 + .long 1028049573 + .long 0 + .long 1072038912 + .long 1640783872 + .long 1071116120 + .long 893247007 + .long 1028452162 + .long 0 + .long 1072023552 + .long 2940411904 + .long 1071161011 + .long 813240633 + .long 1027664048 + .long 0 + .long 1072009216 + .long 882917376 + .long 1071203348 + .long 2376597551 + .long 3175828767 + .long 0 + .long 1071993856 + .long 213966848 + .long 1071249188 + .long 2977204125 + .long 1028350609 + .long 0 + .long 1071979520 + .long 2921504768 + .long 1071292428 + .long 523218347 + .long 1028007004 + .long 0 + .long 1071965184 + .long 3186655232 + .long 1071336119 + .long 2352907891 + .long 1026967097 + .long 0 + .long 1071951872 + .long 2653364224 + .long 1071377101 + .long 2453418583 + .long 3174349512 + .long 0 + .long 1071938560 + .long 3759783936 + .long 1071418487 + .long 3685870403 + .long 3175415611 + .long 0 + .long 1071925248 + .long 2468364288 + .long 1071460286 + .long 1578908842 + .long 3175510517 + .long 0 + .long 1071911936 + .long 81903616 + .long 1071502506 + .long 770710269 + .long 1026742353 + .long 0 + .long 1071899648 + .long 2799321088 + .long 1071541858 + .long 3822266185 + .long 1028434427 + .long 0 + .long 1071886336 + .long 2142265344 + .long 1071584911 + .long 175901806 + .long 3173871540 + .long 0 + .long 1071874048 + .long 2944024576 + .long 1071625048 + .long 2747360403 + .long 1027672159 + .long 0 + .long 1071862784 + .long 3434301440 + .long 1071653426 + .long 4194662196 + .long 3173893003 + .long 0 + .long 1071850496 + .long 1547755520 + .long 1071673870 + .long 4248764681 + .long 3172759087 + .long 0 + .long 1071839232 + .long 4246986752 + .long 1071692786 + .long 2840205638 + .long 3174430911 + .long 0 + .long 1071826944 + .long 3418390528 + .long 1071713619 + .long 3041880823 + .long 1025440860 + .long 0 + .long 1071816704 + .long 4143093760 + .long 1071731139 + .long 2727587401 + .long 3173965207 + .long 0 + .long 1071805440 + .long 3121326080 + .long 1071750582 + .long 3173887692 + .long 3174190163 + .long 0 + .long 1071794176 + .long 1852893184 + .long 1071770207 + .long 3951060252 + .long 1027348295 + .long 0 + .long 1071783936 + .long 3636379648 + .long 1071788208 + .long 1684924001 + .long 3174777086 + .long 0 + .long 1071773696 + .long 516505600 + .long 1071806366 + .long 429181199 + .long 3173211033 + .long 0 + .long 1071763456 + .long 4186185728 + .long 1071824681 + .long 2044904577 + .long 3174967132 + .long 0 + .long 1071753216 + .long 877596672 + .long 1071843159 + .long 1396318105 + .long 3173959727 + .long 0 + .long 1071742976 + .long 2912784384 + .long 1071861800 + .long 448136789 + .long 3174814192 + .long 0 + .long 1071733760 + .long 3722825728 + .long 1071878720 + .long 714165913 + .long 3173439560 + .long 0 + .long 1071723520 + .long 2522374144 + .long 1071897682 + .long 3227240353 + .long 3173394323 + .long 0 + .long 1071714304 + .long 4165410816 + .long 1071914895 + .long 1365684961 + .long 3174365060 + .long 0 + .long 1071705088 + .long 3477135360 + .long 1071932251 + .long 368482985 + .long 3174140821 + .long 0 + .long 1071695872 + .long 2079455232 + .long 1071949752 + .long 1320576317 + .long 1026822714 + .long 0 + .long 1071687680 + .long 851795968 + .long 1071965432 + .long 3702467026 + .long 1025224125 + .long 0 + .long 1071678464 + .long 647743488 + .long 1071983213 + .long 772992109 + .long 3174038459 + .long 0 + .long 1071670272 + .long 26537984 + .long 1071999146 + .long 2360214276 + .long 3174861275 + .long 0 + .long 1071661056 + .long 1547061248 + .long 1072017216 + .long 2886781435 + .long 1026423395 + .long 0 + .long 1071652864 + .long 2854492160 + .long 1072033410 + .long 215631550 + .long 1025638968 + .long 0 + .long 1071644672 + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 64 + .long 1120927744 + .long 0 + .long 1094713344 + .long 0 + .long 1065615360 + .long 0 + .long 1135607808 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 3219128320 + .long 1431655955 + .long 1070945621 + .long 610 + .long 3218079744 + .long 2545118337 + .long 1070176665 + .long 1378399119 + .long 3217380693 + .long 612435357 + .long 1069697472 + .long 94536557 + .long 3217031348 + .type __dlog_la_CoutTab,@object + .size __dlog_la_CoutTab,1680 + .align 16 +.L_2il0floatpacket.79: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.79,@object + .size .L_2il0floatpacket.79,16 + .align 8 +.L_2il0floatpacket.80: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.80,@object + .size .L_2il0floatpacket.80,8 diff --git a/numpy/core/src/umath/svml/svml_z0_log_s_la.s b/numpy/core/src/umath/svml/svml_z0_log_s_la.s new file mode 100644 index 000000000000..d3bcca838d5b --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_log_s_la.s @@ -0,0 +1,930 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * + * * log(x) = exponent_x*log(2) + log(mantissa_x), if mantissa_x<4/3 + * * log(x) = (exponent_x+1)*log(2) + log(0.5*mantissa_x), if mantissa_x>4/3 + * * + * * R = mantissa_x - 1, if mantissa_x<4/3 + * * R = 0.5*mantissa_x - 1, if mantissa_x>4/3 + * * |R|< 1/3 + * * + * * log(1+R) is approximated as a polynomial: degree 9 for 1-ulp, degree 7 for 4-ulp, + * * degree 3 for half-precision + * + */ + + + .text +.L_2__routine_start___svml_logf16_z0_0: + + .align 16,0x90 + .globl __svml_logf16 + +__svml_logf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vgetmantps $11, {sae}, %zmm0, %zmm3 + vmovups __svml_slog_data_internal_avx512(%rip), %zmm1 + vgetexpps {sae}, %zmm0, %zmm5 + vmovups 320+__svml_slog_data_internal_avx512(%rip), %zmm10 + vpsrld $19, %zmm3, %zmm7 + vgetexpps {sae}, %zmm3, %zmm6 + +/* reduced argument */ + vsubps {rn-sae}, %zmm1, %zmm3, %zmm11 + +/* + * read coefficients for polynomial interpolation, + * and evaluate polynomial + */ + vpermps 64+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm1 + vpermps 128+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm2 + vsubps {rn-sae}, %zmm6, %zmm5, %zmm9 + vpermps 192+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm4 + vpermps 256+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm8 + +/* x<=0? */ + vfpclassps $94, %zmm0, %k0 + vfmadd213ps {rn-sae}, %zmm2, %zmm11, %zmm1 + +/* exponent*log(2) */ + vmulps {rn-sae}, %zmm10, %zmm9, %zmm12 + vfmadd213ps {rn-sae}, %zmm4, %zmm11, %zmm1 + kmovw %k0, %edx + vfmadd213ps {rn-sae}, %zmm8, %zmm11, %zmm1 + +/* result */ + vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm1 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm1, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_slog_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_logf16,@function + .size __svml_logf16,.-__svml_logf16 +..LN__svml_logf16.0: + +.L_2__routine_start___svml_slog_cout_rare_internal_1: + + .align 16,0x90 + +__svml_slog_cout_rare_internal: + + + .cfi_startproc +..L53: + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_12 + + + pxor %xmm2, %xmm2 + xorl %ecx, %ecx + cvtss2sd (%rdi), %xmm2 + movsd %xmm2, -8(%rsp) + movzwl -2(%rsp), %edx + testl $32752, %edx + jne .LBL_2_4 + + + mulsd 1600+_imlsLnHATab(%rip), %xmm2 + movl $-60, %ecx + movsd %xmm2, -8(%rsp) + +.LBL_2_4: + + movsd 1608+_imlsLnHATab(%rip), %xmm0 + comisd %xmm0, %xmm2 + jbe .LBL_2_8 + + + movsd .L_2il0floatpacket.73(%rip), %xmm3 + movaps %xmm2, %xmm1 + subsd %xmm3, %xmm1 + movsd %xmm1, -16(%rsp) + andb $127, -9(%rsp) + movsd -16(%rsp), %xmm0 + comisd 1592+_imlsLnHATab(%rip), %xmm0 + jbe .LBL_2_7 + + + movsd %xmm2, -16(%rsp) + pxor %xmm6, %xmm6 + movzwl -10(%rsp), %edi + lea _imlsLnHATab(%rip), %r10 + andl $-32753, %edi + addl $16368, %edi + movw %di, -10(%rsp) + movsd -16(%rsp), %xmm4 + movaps %xmm4, %xmm1 + movaps %xmm4, %xmm2 + movsd 1672+_imlsLnHATab(%rip), %xmm9 + movzwl -2(%rsp), %edx + andl $32752, %edx + addsd 1576+_imlsLnHATab(%rip), %xmm1 + addsd 1584+_imlsLnHATab(%rip), %xmm2 + movsd %xmm1, -24(%rsp) + movl -24(%rsp), %r8d + movsd %xmm2, -24(%rsp) + andl $127, %r8d + movsd -24(%rsp), %xmm7 + movsd 1560+_imlsLnHATab(%rip), %xmm5 + movsd 1568+_imlsLnHATab(%rip), %xmm0 + shrl $4, %edx + subsd 1584+_imlsLnHATab(%rip), %xmm7 + lea (%r8,%r8,2), %r9d + movsd (%r10,%r9,8), %xmm8 + lea -1023(%rcx,%rdx), %ecx + cvtsi2sd %ecx, %xmm6 + subsd %xmm7, %xmm4 + mulsd %xmm8, %xmm7 + mulsd %xmm6, %xmm5 + subsd %xmm3, %xmm7 + mulsd %xmm4, %xmm8 + mulsd %xmm0, %xmm6 + addsd 8(%r10,%r9,8), %xmm5 + addsd 16(%r10,%r9,8), %xmm6 + movaps %xmm7, %xmm3 + addsd %xmm8, %xmm3 + mulsd %xmm3, %xmm9 + addsd 1664+_imlsLnHATab(%rip), %xmm9 + mulsd %xmm3, %xmm9 + addsd 1656+_imlsLnHATab(%rip), %xmm9 + mulsd %xmm3, %xmm9 + addsd 1648+_imlsLnHATab(%rip), %xmm9 + mulsd %xmm3, %xmm9 + addsd 1640+_imlsLnHATab(%rip), %xmm9 + mulsd %xmm3, %xmm9 + addsd 1632+_imlsLnHATab(%rip), %xmm9 + mulsd %xmm3, %xmm9 + mulsd %xmm3, %xmm3 + addsd 1624+_imlsLnHATab(%rip), %xmm9 + mulsd %xmm3, %xmm9 + addsd %xmm5, %xmm9 + addsd %xmm6, %xmm9 + addsd %xmm7, %xmm9 + addsd %xmm8, %xmm9 + cvtsd2ss %xmm9, %xmm9 + movss %xmm9, (%rsi) + ret + +.LBL_2_7: + + movsd 1672+_imlsLnHATab(%rip), %xmm2 + movaps %xmm1, %xmm0 + mulsd %xmm1, %xmm2 + mulsd %xmm1, %xmm0 + addsd 1664+_imlsLnHATab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1656+_imlsLnHATab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1648+_imlsLnHATab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1640+_imlsLnHATab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1632+_imlsLnHATab(%rip), %xmm2 + mulsd %xmm1, %xmm2 + addsd 1624+_imlsLnHATab(%rip), %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm1, %xmm2 + cvtsd2ss %xmm2, %xmm2 + movss %xmm2, (%rsi) + ret + +.LBL_2_8: + + ucomisd %xmm0, %xmm2 + jp .LBL_2_9 + je .LBL_2_11 + +.LBL_2_9: + + divsd %xmm0, %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%rsi) + movl $1, %eax + + + ret + +.LBL_2_11: + + movsd 1616+_imlsLnHATab(%rip), %xmm1 + movl $2, %eax + xorps .L_2il0floatpacket.72(%rip), %xmm1 + divsd %xmm0, %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_12: + + movb 3(%rdi), %dl + andb $-128, %dl + cmpb $-128, %dl + je .LBL_2_14 + +.LBL_2_13: + + movss (%rdi), %xmm0 + mulss %xmm0, %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_14: + + testl $8388607, (%rdi) + jne .LBL_2_13 + + + movsd 1608+_imlsLnHATab(%rip), %xmm0 + movl $1, %eax + divsd %xmm0, %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_slog_cout_rare_internal,@function + .size __svml_slog_cout_rare_internal,.-__svml_slog_cout_rare_internal +..LN__svml_slog_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_slog_data_internal_avx512: + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 3194499567 + .long 3191881870 + .long 3189820965 + .long 3188177733 + .long 3186034033 + .long 3183874545 + .long 3182098566 + .long 3180625528 + .long 3205885581 + .long 3204713431 + .long 3202986354 + .long 3201283063 + .long 3199818667 + .long 3198553107 + .long 3197454075 + .long 3196495328 + .long 1051342523 + .long 1051102009 + .long 1050719235 + .long 1050259833 + .long 1049764999 + .long 1049260512 + .long 1048762310 + .long 1047983990 + .long 1044808958 + .long 1047891773 + .long 1049356949 + .long 1050157361 + .long 1050708164 + .long 1051065485 + .long 1051272715 + .long 1051363578 + .long 3204447891 + .long 3204432523 + .long 3204384627 + .long 3204298603 + .long 3204175099 + .long 3204017696 + .long 3203831137 + .long 3203620393 + .long 3204845352 + .long 3204676294 + .long 3204570658 + .long 3204507866 + .long 3204473248 + .long 3204456356 + .long 3204449777 + .long 3204448283 + .long 1065353216 + .long 1065353045 + .long 1065352036 + .long 1065349339 + .long 1065344188 + .long 1065335989 + .long 1065324332 + .long 1065308972 + .long 1065328777 + .long 1065341148 + .long 1065347780 + .long 1065351069 + .long 1065352524 + .long 1065353058 + .long 1065353199 + .long 1065353216 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 1060205080 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 8388608 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .long 2139095039 + .type __svml_slog_data_internal_avx512,@object + .size __svml_slog_data_internal_avx512,512 + .align 32 +_imlsLnHATab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072660480 + .long 1486880768 + .long 1066410070 + .long 1813744607 + .long 3179892593 + .long 0 + .long 1072629760 + .long 377487360 + .long 1067416219 + .long 919019713 + .long 3179241129 + .long 0 + .long 1072599040 + .long 1513619456 + .long 1067944025 + .long 874573033 + .long 3178512940 + .long 0 + .long 1072570368 + .long 3221749760 + .long 1068427825 + .long 4181665006 + .long 3177478212 + .long 0 + .long 1072541696 + .long 4162322432 + .long 1068708823 + .long 627020255 + .long 1028629941 + .long 0 + .long 1072513024 + .long 183107584 + .long 1068957907 + .long 2376703469 + .long 1030233118 + .long 0 + .long 1072486400 + .long 1053425664 + .long 1069192557 + .long 696277142 + .long 1030474863 + .long 0 + .long 1072459776 + .long 3996123136 + .long 1069430535 + .long 2630798680 + .long 1028792016 + .long 0 + .long 1072435200 + .long 3452764160 + .long 1069600382 + .long 624954044 + .long 3177101741 + .long 0 + .long 1072409600 + .long 207650816 + .long 1069717971 + .long 3272735636 + .long 3175176575 + .long 0 + .long 1072386048 + .long 2647228416 + .long 1069827627 + .long 3594228712 + .long 1029303785 + .long 0 + .long 1072362496 + .long 2712010752 + .long 1069938736 + .long 3653242769 + .long 3176839013 + .long 0 + .long 1072338944 + .long 374439936 + .long 1070051337 + .long 4072775574 + .long 3176577495 + .long 0 + .long 1072316416 + .long 3707174912 + .long 1070160474 + .long 1486946159 + .long 1023930920 + .long 0 + .long 1072294912 + .long 1443954688 + .long 1070265993 + .long 293532967 + .long 3176278277 + .long 0 + .long 1072273408 + .long 127762432 + .long 1070372856 + .long 3404145447 + .long 3177023955 + .long 0 + .long 1072252928 + .long 2053832704 + .long 1070475911 + .long 1575076358 + .long 1029048544 + .long 0 + .long 1072232448 + .long 3194093568 + .long 1070580248 + .long 1864169120 + .long 1026866084 + .long 0 + .long 1072212992 + .long 3917201408 + .long 1070638340 + .long 2362145246 + .long 3175606197 + .long 0 + .long 1072193536 + .long 3417112576 + .long 1070689116 + .long 70087871 + .long 3174183577 + .long 0 + .long 1072175104 + .long 4226777088 + .long 1070737793 + .long 1620410586 + .long 3174700065 + .long 0 + .long 1072156672 + .long 3168870400 + .long 1070787042 + .long 311238082 + .long 1025781772 + .long 0 + .long 1072139264 + .long 2150580224 + .long 1070834092 + .long 1664262457 + .long 3175299224 + .long 0 + .long 1072120832 + .long 4095672320 + .long 1070884491 + .long 1657121015 + .long 3174674199 + .long 0 + .long 1072104448 + .long 2595577856 + .long 1070929805 + .long 2014006823 + .long 3175423830 + .long 0 + .long 1072087040 + .long 3747176448 + .long 1070978493 + .long 144991708 + .long 3171552042 + .long 0 + .long 1072070656 + .long 1050435584 + .long 1071024840 + .long 3386227432 + .long 1027876916 + .long 0 + .long 1072055296 + .long 255516672 + .long 1071068760 + .long 2637594316 + .long 1028049573 + .long 0 + .long 1072038912 + .long 1640783872 + .long 1071116120 + .long 893247007 + .long 1028452162 + .long 0 + .long 1072023552 + .long 2940411904 + .long 1071161011 + .long 813240633 + .long 1027664048 + .long 0 + .long 1072009216 + .long 882917376 + .long 1071203348 + .long 2376597551 + .long 3175828767 + .long 0 + .long 1071993856 + .long 213966848 + .long 1071249188 + .long 2977204125 + .long 1028350609 + .long 0 + .long 1071979520 + .long 2921504768 + .long 1071292428 + .long 523218347 + .long 1028007004 + .long 0 + .long 1071965184 + .long 3186655232 + .long 1071336119 + .long 2352907891 + .long 1026967097 + .long 0 + .long 1071951872 + .long 2653364224 + .long 1071377101 + .long 2453418583 + .long 3174349512 + .long 0 + .long 1071938560 + .long 3759783936 + .long 1071418487 + .long 3685870403 + .long 3175415611 + .long 0 + .long 1071925248 + .long 2468364288 + .long 1071460286 + .long 1578908842 + .long 3175510517 + .long 0 + .long 1071911936 + .long 81903616 + .long 1071502506 + .long 770710269 + .long 1026742353 + .long 0 + .long 1071899648 + .long 2799321088 + .long 1071541858 + .long 3822266185 + .long 1028434427 + .long 0 + .long 1071886336 + .long 2142265344 + .long 1071584911 + .long 175901806 + .long 3173871540 + .long 0 + .long 1071874048 + .long 2944024576 + .long 1071625048 + .long 2747360403 + .long 1027672159 + .long 0 + .long 1071862784 + .long 3434301440 + .long 1071653426 + .long 4194662196 + .long 3173893003 + .long 0 + .long 1071850496 + .long 1547755520 + .long 1071673870 + .long 4248764681 + .long 3172759087 + .long 0 + .long 1071839232 + .long 4246986752 + .long 1071692786 + .long 2840205638 + .long 3174430911 + .long 0 + .long 1071826944 + .long 3418390528 + .long 1071713619 + .long 3041880823 + .long 1025440860 + .long 0 + .long 1071816704 + .long 4143093760 + .long 1071731139 + .long 2727587401 + .long 3173965207 + .long 0 + .long 1071805440 + .long 3121326080 + .long 1071750582 + .long 3173887692 + .long 3174190163 + .long 0 + .long 1071794176 + .long 1852893184 + .long 1071770207 + .long 3951060252 + .long 1027348295 + .long 0 + .long 1071783936 + .long 3636379648 + .long 1071788208 + .long 1684924001 + .long 3174777086 + .long 0 + .long 1071773696 + .long 516505600 + .long 1071806366 + .long 429181199 + .long 3173211033 + .long 0 + .long 1071763456 + .long 4186185728 + .long 1071824681 + .long 2044904577 + .long 3174967132 + .long 0 + .long 1071753216 + .long 877596672 + .long 1071843159 + .long 1396318105 + .long 3173959727 + .long 0 + .long 1071742976 + .long 2912784384 + .long 1071861800 + .long 448136789 + .long 3174814192 + .long 0 + .long 1071733760 + .long 3722825728 + .long 1071878720 + .long 714165913 + .long 3173439560 + .long 0 + .long 1071723520 + .long 2522374144 + .long 1071897682 + .long 3227240353 + .long 3173394323 + .long 0 + .long 1071714304 + .long 4165410816 + .long 1071914895 + .long 1365684961 + .long 3174365060 + .long 0 + .long 1071705088 + .long 3477135360 + .long 1071932251 + .long 368482985 + .long 3174140821 + .long 0 + .long 1071695872 + .long 2079455232 + .long 1071949752 + .long 1320576317 + .long 1026822714 + .long 0 + .long 1071687680 + .long 851795968 + .long 1071965432 + .long 3702467026 + .long 1025224125 + .long 0 + .long 1071678464 + .long 647743488 + .long 1071983213 + .long 772992109 + .long 3174038459 + .long 0 + .long 1071670272 + .long 26537984 + .long 1071999146 + .long 2360214276 + .long 3174861275 + .long 0 + .long 1071661056 + .long 1547061248 + .long 1072017216 + .long 2886781435 + .long 1026423395 + .long 0 + .long 1071652864 + .long 2854492160 + .long 1072033410 + .long 215631550 + .long 1025638968 + .long 0 + .long 1071644672 + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 64 + .long 1120927744 + .long 0 + .long 1094713344 + .long 0 + .long 1065615360 + .long 0 + .long 1135607808 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 3219128320 + .long 1431655955 + .long 1070945621 + .long 610 + .long 3218079744 + .long 2545118337 + .long 1070176665 + .long 1378399119 + .long 3217380693 + .long 612435357 + .long 1069697472 + .long 94536557 + .long 3217031348 + .type _imlsLnHATab,@object + .size _imlsLnHATab,1680 + .align 16 +.L_2il0floatpacket.72: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.72,@object + .size .L_2il0floatpacket.72,16 + .align 8 +.L_2il0floatpacket.73: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.73,@object + .size .L_2il0floatpacket.73,8 diff --git a/numpy/core/src/umath/svml/svml_z0_pow_d_la.s b/numpy/core/src/umath/svml/svml_z0_pow_d_la.s new file mode 100644 index 000000000000..3ae18749d184 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_pow_d_la.s @@ -0,0 +1,3525 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * 1) Calculating log2|x| + * + * Here we use the following formula. + * Let |x|=2^k1*X1, where k1 is integer, 1<=X1<2. + * Let C ~= 1/ln(2), + * Rcp1 ~= 1/X1, X2=Rcp1*X1, + * Rcp2 ~= 1/X2, X3=Rcp2*X2, + * Rcp3 ~= 1/X3, Rcp3C ~= C/X3. + * Then + * + * log2|x| = k1 + log2(1/Rcp1) + log2(1/Rcp2) + log2(C/Rcp3C) + + * + log2(X1*Rcp1*Rcp2*Rcp3C/C), + * + * where X1*Rcp1*Rcp2*Rcp3C = C*(1+q), q is very small. + * + * The values of Rcp1, log2(1/Rcp1), Rcp2, log2(1/Rcp2), + * Rcp3C, log2(C/Rcp3C) are taken from tables. + * Values of Rcp1, Rcp2, Rcp3C are such that RcpC=Rcp1*Rcp2*Rcp3C + * is exactly represented in target precision. + * + * log2(X1*Rcp1*Rcp2*Rcp3C/C) = log2(1+q) = ln(1+q)/ln2 = + * = 1/(ln2)*q - 1/(2ln2)*q^2 + 1/(3ln2)*q^3 - ... = + * = 1/(C*ln2)*cq - 1/(2*C^2*ln2)*cq^2 + 1/(3*C^3*ln2)*cq^3 - ... = + * = (1 + a1)*cq + a2*cq^2 + a3*cq^3 + ..., + * where + * cq=X1*Rcp1*Rcp2*Rcp3C-C, + * a1=1/(C*ln(2))-1 is small, + * a2=1/(2*C^2*ln2), + * a3=1/(3*C^3*ln2), + * ... + * We get 3 parts of log2 result: HH+HL+HLL ~= log2|x|. + * + * 2) Calculation of y*(HH+HL+HLL). + * Split y into YHi+YLo. + * Get high PH and medium PL parts of y*log2|x|. + * Get low PLL part of y*log2|x|. + * Now we have PH+PL+PLL ~= y*log2|x|. + * + * 3) Calculation of 2^(PH+PL+PLL). + * + * Mathematical idea of computing 2^(PH+PL+PLL) is the following. + * Let's represent PH+PL+PLL in the form N + j/2^expK + Z, + * where expK=7 in this implementation, N and j are integers, + * 0<=j<=2^expK-1, |Z|<2^(-expK-1). Hence + * + * 2^(PH+PL+PLL) ~= 2^N * 2^(j/2^expK) * 2^Z, + * + * where 2^(j/2^expK) is stored in a table, and + * + * 2^Z ~= 1 + B1*Z + B2*Z^2 ... + B5*Z^5. + * + * We compute 2^(PH+PL+PLL) as follows. + * + * Break PH into PHH + PHL, where PHH = N + j/2^expK. + * Z = PHL + PL + PLL + * Exp2Poly = B1*Z + B2*Z^2 ... + B5*Z^5 + * Get 2^(j/2^expK) from table in the form THI+TLO. + * Now we have 2^(PH+PL+PLL) ~= 2^N * (THI + TLO) * (1 + Exp2Poly). + * + * Get significand of 2^(PH+PL+PLL) in the form ResHi+ResLo: + * ResHi := THI + * ResLo := THI * Exp2Poly + TLO + * + * Get exponent ERes of the result: + * Res := ResHi + ResLo: + * Result := ex(Res) + N + * + * + */ + + + .text +.L_2__routine_start___svml_pow8_z0_0: + + .align 16,0x90 + .globl __svml_pow8 + +__svml_pow8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $256, %rsp + vgetmantpd $10, {sae}, %zmm0, %zmm10 + +/* Reduced argument: R = (DblRcp*Mantissa - 1) */ + vmovups 640+__svml_dpow_data_internal_avx512(%rip), %zmm15 + +/* Table lookup */ + vmovups __svml_dpow_data_internal_avx512(%rip), %zmm2 + vmovups 128+__svml_dpow_data_internal_avx512(%rip), %zmm3 + vmovups 256+__svml_dpow_data_internal_avx512(%rip), %zmm5 + vmovups 384+__svml_dpow_data_internal_avx512(%rip), %zmm4 + +/* Prepare exponent correction: DblRcp<1.5? -- was 0.75 in initial AVX3 version, which used Mantissa in [1,2) */ + vmovups 704+__svml_dpow_data_internal_avx512(%rip), %zmm14 + +/* GetExp(x) */ + vgetexppd {sae}, %zmm0, %zmm9 + +/* P8_9 */ + vmovups 960+__svml_dpow_data_internal_avx512(%rip), %zmm7 + +/* DblRcp ~ 1/Mantissa */ + vrcp14pd %zmm10, %zmm12 + +/* x<=0 or Inf/NaN? */ + vfpclasspd $223, %zmm0, %k0 + +/* round DblRcp to 5 fractional bits (RN mode, no Precision exception) */ + vrndscalepd $88, {sae}, %zmm12, %zmm13 + vmovups 896+__svml_dpow_data_internal_avx512(%rip), %zmm12 + kmovw %k0, %edx + vfmsub213pd {rn-sae}, %zmm15, %zmm13, %zmm10 + vcmppd $17, {sae}, %zmm14, %zmm13, %k1 + vfmadd231pd {rn-sae}, %zmm10, %zmm12, %zmm7 + +/* Prepare table index */ + vpsrlq $47, %zmm13, %zmm8 + vmovups 1024+__svml_dpow_data_internal_avx512(%rip), %zmm13 + vpermt2pd 64+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm2 + vpermt2pd 192+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm3 + vpermt2pd 320+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm5 + vpermt2pd 448+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm4 + +/* add 1 to Expon if DblRcp<1.5 */ + vaddpd {rn-sae}, %zmm15, %zmm9, %zmm9{%k1} + vmovaps %zmm1, %zmm11 + vpsllq $59, %zmm8, %zmm1 + +/* R^2 */ + vmulpd {rn-sae}, %zmm10, %zmm10, %zmm8 + vpmovq2m %zmm1, %k2 + +/* y Inf/NaN? */ + vfpclasspd $153, %zmm11, %k3 + +/* P6_7 */ + vmovups 1088+__svml_dpow_data_internal_avx512(%rip), %zmm1 + vblendmpd %zmm3, %zmm2, %zmm14{%k2} + vblendmpd %zmm4, %zmm5, %zmm6{%k2} + +/* P4_5 */ + vmovups 1216+__svml_dpow_data_internal_avx512(%rip), %zmm2 + vfmadd231pd {rn-sae}, %zmm10, %zmm13, %zmm1 + vmovups 832+__svml_dpow_data_internal_avx512(%rip), %zmm4 + vmovups 768+__svml_dpow_data_internal_avx512(%rip), %zmm3 + +/* Expon + Th */ + vaddpd {rn-sae}, %zmm9, %zmm14, %zmm15 + vmovups 1152+__svml_dpow_data_internal_avx512(%rip), %zmm9 + +/* P6_9 */ + vfmadd213pd {rn-sae}, %zmm1, %zmm8, %zmm7 + +/* P2_3 */ + vmovups 1344+__svml_dpow_data_internal_avx512(%rip), %zmm1 + +/* P1_2 */ + vmovups 1920+__svml_dpow_data_internal_avx512(%rip), %zmm14 + vfmadd231pd {rn-sae}, %zmm10, %zmm9, %zmm2 + kmovw %k3, %eax + +/* P4_9 */ + vfmadd213pd {rn-sae}, %zmm2, %zmm8, %zmm7 + +/* R2l */ + vmovaps %zmm10, %zmm5 + orl %eax, %edx + vfmsub213pd {rn-sae}, %zmm8, %zmm10, %zmm5 + +/* Tl + R2l*c2h */ + vfmadd213pd {rn-sae}, %zmm6, %zmm4, %zmm5 + vmovups 1280+__svml_dpow_data_internal_avx512(%rip), %zmm6 + vfmadd231pd {rn-sae}, %zmm10, %zmm6, %zmm1 + +/* Expon + Th+ R*c1h */ + vmovaps %zmm15, %zmm12 + vfmadd231pd {rn-sae}, %zmm10, %zmm3, %zmm12 + +/* P2_9 */ + vfmadd213pd {rn-sae}, %zmm1, %zmm8, %zmm7 + +/* (R*c1h)_h */ + vsubpd {rn-sae}, %zmm15, %zmm12, %zmm9 + +/* Tl + R2l*c2h + R2*P2_9 */ + vfmadd231pd {rn-sae}, %zmm8, %zmm7, %zmm5 + vmovups 1408+__svml_dpow_data_internal_avx512(%rip), %zmm7 + +/* (R*c1h)_l */ + vfmsub231pd {rn-sae}, %zmm3, %zmm10, %zmm9 + +/* Expon + Th+ R*c1h + R2*c2h */ + vmovaps %zmm12, %zmm13 + vfmadd231pd {rn-sae}, %zmm8, %zmm4, %zmm13 + +/* R*c1l + (R*c1h)_l */ + vfmadd213pd {rn-sae}, %zmm9, %zmm7, %zmm10 + vmovups 1728+__svml_dpow_data_internal_avx512(%rip), %zmm9 + +/* High2 + Tlh */ + vaddpd {rn-sae}, %zmm5, %zmm13, %zmm6 + +/* (R2*c2h)_h */ + vsubpd {rn-sae}, %zmm12, %zmm13, %zmm2 + +/* P3_4 */ + vmovups 1792+__svml_dpow_data_internal_avx512(%rip), %zmm12 + +/* y*High */ + vmulpd {rz-sae}, %zmm11, %zmm6, %zmm3 + +/* (R2*c2h)_l */ + vfmsub213pd {rn-sae}, %zmm2, %zmm4, %zmm8 + vsubpd {rn-sae}, %zmm13, %zmm6, %zmm1 + +/* (y*High)_low */ + vfmsub213pd {rz-sae}, %zmm3, %zmm11, %zmm6 + +/* Tll */ + vsubpd {rn-sae}, %zmm1, %zmm5, %zmm4 + +/* R*c1l + (R*c1h)_l+(R2*c2h)_l */ + vaddpd {rn-sae}, %zmm8, %zmm10, %zmm10 + vmovups 1472+__svml_dpow_data_internal_avx512(%rip), %zmm1 + vmovups 1600+__svml_dpow_data_internal_avx512(%rip), %zmm8 + +/* Tll + R*c1l + (R*c1h)_l */ + vaddpd {rn-sae}, %zmm10, %zmm4, %zmm5 + vaddpd {rd-sae}, %zmm1, %zmm3, %zmm2 + +/* + * / + * exp2 computation starts here + */ + vreducepd $65, {sae}, %zmm3, %zmm4 + +/* Zl = y*Tll + Zl */ + vfmadd213pd {rz-sae}, %zmm6, %zmm11, %zmm5 + +/* P5_6 */ + vmovups 1664+__svml_dpow_data_internal_avx512(%rip), %zmm1 + vmovups 1856+__svml_dpow_data_internal_avx512(%rip), %zmm10 + vaddpd {rn-sae}, %zmm5, %zmm4, %zmm7 + vandpd 2176+__svml_dpow_data_internal_avx512(%rip), %zmm3, %zmm3 + +/* Table lookup: The, Tle/The */ + vmovups 512+__svml_dpow_data_internal_avx512(%rip), %zmm4 + +/* + * scaled result + * Filter very large |y*log2(x)| and scale final result for LRB2 + */ + vmovups 2240+__svml_dpow_data_internal_avx512(%rip), %zmm5 + +/* ensure |R|<2 even for special cases */ + vandpd 1536+__svml_dpow_data_internal_avx512(%rip), %zmm7, %zmm15 + vpermt2pd 576+__svml_dpow_data_internal_avx512(%rip), %zmm2, %zmm4 + vcmppd $22, {sae}, %zmm5, %zmm3, %k0 + +/* Re^2 */ + vmulpd {rn-sae}, %zmm15, %zmm15, %zmm13 + +/* R*The */ + vmulpd {rn-sae}, %zmm4, %zmm15, %zmm7 + vfmadd231pd {rn-sae}, %zmm15, %zmm8, %zmm1 + vfmadd231pd {rn-sae}, %zmm15, %zmm9, %zmm12 + vfmadd231pd {rn-sae}, %zmm15, %zmm10, %zmm14 + vpsllq $48, %zmm2, %zmm2 + vfmadd213pd {rn-sae}, %zmm12, %zmm13, %zmm1 + vandpd 2304+__svml_dpow_data_internal_avx512(%rip), %zmm2, %zmm2 + kmovw %k0, %ecx + vfmadd213pd {rn-sae}, %zmm14, %zmm13, %zmm1 + +/* The + The*R*poly */ + vfmadd213pd {rn-sae}, %zmm4, %zmm7, %zmm1 + orl %ecx, %edx + vmulpd {rn-sae}, %zmm2, %zmm1, %zmm1 + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm11, 128(%rsp) + vmovups %zmm1, 192(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 192(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + lea 192(%rsp,%r12,8), %rdx + + call __svml_dpow_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_pow8,@function + .size __svml_pow8,.-__svml_pow8 +..LN__svml_pow8.0: + +.L_2__routine_start___svml_dpow_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dpow_cout_rare_internal: + + + .cfi_startproc +..L53: + + pushq %r12 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + pushq %r15 + .cfi_def_cfa_offset 32 + .cfi_offset 15, -32 + pushq %rbx + .cfi_def_cfa_offset 40 + .cfi_offset 3, -40 + movq %rdx, %r8 + movsd 6824+__dpow_la_CoutTab(%rip), %xmm1 + xorl %eax, %eax + movsd (%rdi), %xmm3 + movsd (%rsi), %xmm0 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm0 + movsd %xmm3, -72(%rsp) + movsd %xmm0, -16(%rsp) + movzwl -66(%rsp), %r13d + movzwl -10(%rsp), %edx + andl $32752, %r13d + movzbl -65(%rsp), %r12d + andl $32752, %edx + movb -9(%rsp), %bl + andl $128, %r12d + andb $-128, %bl + shrl $4, %r13d + shrl $4, %edx + shrl $7, %r12d + shrb $7, %bl + testl $1048575, -68(%rsp) + jne .LBL_2_4 + + + cmpl $0, -72(%rsp) + jne .LBL_2_4 + + + movb $1, %r11b + jmp .LBL_2_5 + +.LBL_2_4: + + xorb %r11b, %r11b + +.LBL_2_5: + + movl -12(%rsp), %ecx + movl -16(%rsp), %edi + andl $1048575, %ecx + jne .LBL_2_8 + + + testl %edi, %edi + jne .LBL_2_8 + + + movl $1, %r10d + jmp .LBL_2_9 + +.LBL_2_8: + + xorl %r10d, %r10d + +.LBL_2_9: + + movl %edx, %r9d + xorl %esi, %esi + cmpl $2047, %edx + setne %sil + shll $20, %r9d + orl %ecx, %r9d + movl %edi, %ecx + orl %r9d, %ecx + je .LBL_2_24 + + + lea -1023(%rdx), %ecx + cmpl $1023, %edx + jl .LBL_2_23 + + + testl %esi, %esi + je .LBL_2_23 + + + cmpl $20, %ecx + jg .LBL_2_16 + + + movl %r9d, %r15d + shll %cl, %r15d + shll $12, %r15d + orl %edi, %r15d + je .LBL_2_15 + +.LBL_2_14: + + xorl %r9d, %r9d + jmp .LBL_2_21 + +.LBL_2_15: + + lea -1012(%rdx), %ecx + shll %cl, %r9d + notl %r9d + shrl $31, %r9d + incl %r9d + jmp .LBL_2_21 + +.LBL_2_16: + + cmpl $53, %ecx + jge .LBL_2_20 + + + lea -1012(%rdx), %ecx + shll %cl, %edi + testl $2147483647, %edi + jne .LBL_2_14 + + + notl %edi + shrl $31, %edi + lea 1(%rdi), %r9d + jmp .LBL_2_21 + +.LBL_2_20: + + movl $2, %r9d + +.LBL_2_21: + + testl %r12d, %r12d + jne .LBL_2_29 + + + cmpl $1023, %r13d + jne .LBL_2_29 + jmp .LBL_2_57 + +.LBL_2_23: + + xorl %r9d, %r9d + jmp .LBL_2_25 + +.LBL_2_24: + + movl $2, %r9d + +.LBL_2_25: + + testl %r12d, %r12d + jne .LBL_2_27 + + + cmpl $1023, %r13d + je .LBL_2_74 + +.LBL_2_27: + + testl %edx, %edx + jne .LBL_2_29 + + + testl %r10d, %r10d + jne .LBL_2_55 + +.LBL_2_29: + + cmpl $2047, %r13d + je .LBL_2_31 + +.LBL_2_30: + + movb $1, %cl + jmp .LBL_2_32 + +.LBL_2_31: + + xorb %cl, %cl + +.LBL_2_32: + + orb %cl, %r11b + je .LBL_2_54 + + + orl %esi, %r10d + je .LBL_2_54 + + + movsd 6816+__dpow_la_CoutTab(%rip), %xmm2 + ucomisd %xmm2, %xmm3 + jp .LBL_2_35 + je .LBL_2_71 + +.LBL_2_35: + + ucomisd 6832+__dpow_la_CoutTab(%rip), %xmm3 + jp .LBL_2_36 + je .LBL_2_68 + +.LBL_2_36: + + testb %cl, %cl + je .LBL_2_47 + + + testl %esi, %esi + je .LBL_2_47 + + + comisd %xmm2, %xmm3 + ja .LBL_2_40 + + + testl %r9d, %r9d + je .LBL_2_46 + +.LBL_2_40: + + lea 6824+__dpow_la_CoutTab(%rip), %rcx + andl %r12d, %r9d + movsd %xmm3, -72(%rsp) + andb $127, -65(%rsp) + movsd (%rcx,%r9,8), %xmm0 + xorl %ecx, %ecx + testl %r13d, %r13d + jne .LBL_2_42 + + + movsd -72(%rsp), %xmm2 + movl $-200, %ecx + mulsd 6864+__dpow_la_CoutTab(%rip), %xmm2 + movsd %xmm2, -72(%rsp) + jmp .LBL_2_43 + +.LBL_2_42: + + movsd -72(%rsp), %xmm2 + +.LBL_2_43: + + movzwl -66(%rsp), %esi + pxor %xmm7, %xmm7 + andl $32752, %esi + shrl $4, %esi + movl -68(%rsp), %r9d + shll $20, %esi + andl $1048575, %r9d + movsd %xmm2, -56(%rsp) + orl %r9d, %esi + movzwl -50(%rsp), %edi + addl $-1072152576, %esi + andl $-32753, %edi + addl $16368, %edi + movw %di, -50(%rsp) + sarl $20, %esi + movl -52(%rsp), %r10d + addl %ecx, %esi + lea __dpow_la_CoutTab(%rip), %rcx + andl $1032192, %r10d + addl $16384, %r10d + shrl $15, %r10d + movsd -56(%rsp), %xmm2 + movsd (%rcx,%r10,8), %xmm5 + addl %r10d, %r10d + movaps %xmm5, %xmm6 + movsd 6856+__dpow_la_CoutTab(%rip), %xmm14 + mulsd %xmm2, %xmm6 + cvtsi2sd %esi, %xmm7 + mulsd %xmm2, %xmm14 + addsd 264(%rcx,%r10,8), %xmm7 + movsd %xmm6, -48(%rsp) + movsd %xmm14, -32(%rsp) + movl -44(%rsp), %r11d + andl $64512, %r11d + movsd -32(%rsp), %xmm15 + addl $1024, %r11d + shrl $11, %r11d + subsd -56(%rsp), %xmm15 + movsd 792(%rcx,%r11,8), %xmm12 + addl %r11d, %r11d + mulsd %xmm12, %xmm6 + addsd 1056(%rcx,%r11,8), %xmm7 + mulsd %xmm12, %xmm5 + movsd %xmm15, -24(%rsp) + movsd -32(%rsp), %xmm4 + movsd -24(%rsp), %xmm3 + movsd %xmm6, -40(%rsp) + subsd %xmm3, %xmm4 + movl -36(%rsp), %r12d + andl $4080, %r12d + addl $16, %r12d + movsd %xmm4, -32(%rsp) + shrl $5, %r12d + movsd -32(%rsp), %xmm12 + movsd 1584(%rcx,%r12,8), %xmm13 + addl %r12d, %r12d + mulsd %xmm13, %xmm5 + subsd %xmm12, %xmm2 + addsd 2616(%rcx,%r12,8), %xmm7 + mulsd %xmm13, %xmm6 + movsd %xmm2, -24(%rsp) + movaps %xmm6, %xmm8 + movsd 6856+__dpow_la_CoutTab(%rip), %xmm2 + mulsd %xmm5, %xmm2 + subsd 6848+__dpow_la_CoutTab(%rip), %xmm8 + movsd -32(%rsp), %xmm3 + movsd -24(%rsp), %xmm4 + movsd %xmm2, -32(%rsp) + movsd -32(%rsp), %xmm13 + movsd 272(%rcx,%r10,8), %xmm11 + subsd %xmm5, %xmm13 + movsd %xmm13, -24(%rsp) + movsd -32(%rsp), %xmm2 + movsd -24(%rsp), %xmm14 + movsd 1064(%rcx,%r11,8), %xmm10 + subsd %xmm14, %xmm2 + movsd %xmm2, -32(%rsp) + movaps %xmm3, %xmm2 + movsd -32(%rsp), %xmm15 + movsd 2624(%rcx,%r12,8), %xmm9 + subsd %xmm15, %xmm5 + movsd %xmm5, -24(%rsp) + movsd -32(%rsp), %xmm5 + mulsd %xmm5, %xmm2 + mulsd %xmm4, %xmm5 + subsd %xmm6, %xmm2 + movaps %xmm7, %xmm6 + addsd %xmm5, %xmm2 + addsd %xmm8, %xmm6 + movsd -24(%rsp), %xmm12 + mulsd %xmm12, %xmm3 + mulsd %xmm12, %xmm4 + addsd %xmm3, %xmm2 + movsd %xmm6, -32(%rsp) + addsd %xmm4, %xmm2 + movsd -32(%rsp), %xmm3 + subsd %xmm3, %xmm7 + addsd %xmm8, %xmm7 + movsd %xmm7, -24(%rsp) + movsd -32(%rsp), %xmm4 + movsd %xmm4, -64(%rsp) + movzwl -58(%rsp), %ecx + andl $32752, %ecx + shrl $4, %ecx + addl %edx, %ecx + movsd -24(%rsp), %xmm3 + cmpl $2057, %ecx + jge .LBL_2_67 + + + cmpl $1984, %ecx + jg .LBL_2_58 + + + movsd %xmm1, -32(%rsp) + movsd -32(%rsp), %xmm1 + addsd 6808+__dpow_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -32(%rsp) + movsd -32(%rsp), %xmm2 + mulsd %xmm0, %xmm2 + jmp .LBL_2_56 + +.LBL_2_46: + + movsd %xmm2, -32(%rsp) + movl $1, %eax + movsd -32(%rsp), %xmm1 + movsd -32(%rsp), %xmm0 + divsd %xmm0, %xmm1 + movsd %xmm1, -32(%rsp) + movsd -32(%rsp), %xmm2 + jmp .LBL_2_56 + +.LBL_2_47: + + cmpl $1023, %r13d + jge .LBL_2_51 + + + testb %bl, %bl + je .LBL_2_56 + + + movaps %xmm0, %xmm2 + mulsd %xmm0, %xmm2 + jmp .LBL_2_56 + +.LBL_2_51: + + testb %bl, %bl + je .LBL_2_53 + + + lea 6824+__dpow_la_CoutTab(%rip), %rdx + andl %r12d, %r9d + mulsd (%rdx,%r9,8), %xmm2 + jmp .LBL_2_56 + +.LBL_2_53: + + mulsd %xmm3, %xmm3 + lea 6824+__dpow_la_CoutTab(%rip), %rdx + mulsd %xmm0, %xmm3 + andl %r12d, %r9d + movaps %xmm3, %xmm2 + mulsd (%rdx,%r9,8), %xmm2 + jmp .LBL_2_56 + +.LBL_2_54: + + movaps %xmm3, %xmm2 + addsd %xmm0, %xmm2 + jmp .LBL_2_56 + +.LBL_2_55: + + movq 6824+__dpow_la_CoutTab(%rip), %rdx + addsd %xmm0, %xmm3 + movsd %xmm3, -32(%rsp) + movq %rdx, -24(%rsp) + movb -25(%rsp), %cl + movb -17(%rsp), %bl + andb $-128, %cl + andb $127, %bl + orb %cl, %bl + movb %bl, -17(%rsp) + movsd -24(%rsp), %xmm2 + movsd -24(%rsp), %xmm0 + mulsd %xmm0, %xmm2 + +.LBL_2_56: + + movsd %xmm2, (%r8) + .cfi_restore 3 + popq %rbx + .cfi_def_cfa_offset 32 + .cfi_restore 15 + popq %r15 + .cfi_def_cfa_offset 24 + .cfi_restore 13 + popq %r13 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 + .cfi_def_cfa_offset 8 + ret + .cfi_def_cfa_offset 40 + .cfi_offset 3, -40 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 15, -32 + +.LBL_2_57: + + testb %r11b, %r11b + je .LBL_2_30 + jmp .LBL_2_55 + +.LBL_2_58: + + lea 6752+__dpow_la_CoutTab(%rip), %rdx + movsd (%rdx), %xmm6 + lea 4688+__dpow_la_CoutTab(%rip), %rcx + movsd -64(%rsp), %xmm7 + addsd %xmm2, %xmm8 + addsd %xmm9, %xmm10 + addsd %xmm3, %xmm2 + mulsd %xmm8, %xmm6 + addsd %xmm10, %xmm11 + addsd -8(%rdx), %xmm6 + addsd %xmm2, %xmm11 + mulsd %xmm8, %xmm6 + movaps %xmm11, %xmm9 + addsd -16(%rdx), %xmm6 + mulsd %xmm8, %xmm6 + addsd -24(%rdx), %xmm6 + mulsd %xmm8, %xmm6 + addsd %xmm6, %xmm4 + lea -32(%rsp), %rbx + movsd %xmm4, (%rbx) + movsd (%rbx), %xmm8 + subsd %xmm8, %xmm7 + addsd %xmm6, %xmm7 + lea -24(%rsp), %rsi + movsd %xmm7, (%rsi) + movsd (%rbx), %xmm12 + movsd (%rsi), %xmm5 + addsd %xmm12, %xmm9 + movsd %xmm9, (%rbx) + movsd (%rbx), %xmm10 + subsd %xmm10, %xmm12 + addsd %xmm11, %xmm12 + movsd 104(%rdx), %xmm11 + movsd %xmm12, (%rsi) + movsd (%rbx), %xmm3 + mulsd %xmm3, %xmm11 + movsd (%rsi), %xmm4 + movsd %xmm11, (%rbx) + addsd %xmm5, %xmm4 + movsd (%rbx), %xmm13 + lea -16(%rsp), %rdi + movsd (%rdi), %xmm11 + subsd %xmm3, %xmm13 + mulsd (%rdi), %xmm4 + movsd %xmm13, (%rsi) + movaps %xmm11, %xmm6 + movsd (%rbx), %xmm15 + movsd (%rsi), %xmm14 + mulsd 104(%rdx), %xmm6 + subsd %xmm14, %xmm15 + movsd %xmm15, (%rbx) + movsd (%rbx), %xmm2 + movsd 88(%rdx), %xmm5 + subsd %xmm2, %xmm3 + movsd %xmm3, (%rsi) + movsd (%rbx), %xmm3 + movsd (%rsi), %xmm2 + movsd %xmm6, (%rbx) + movsd (%rbx), %xmm7 + subsd (%rdi), %xmm7 + movsd %xmm7, (%rsi) + movsd (%rbx), %xmm9 + movsd (%rsi), %xmm8 + subsd %xmm8, %xmm9 + movsd %xmm9, (%rbx) + movsd (%rbx), %xmm10 + subsd %xmm10, %xmm11 + movsd %xmm11, (%rsi) + movsd (%rbx), %xmm6 + movaps %xmm6, %xmm14 + mulsd %xmm3, %xmm14 + mulsd %xmm2, %xmm6 + addsd %xmm14, %xmm5 + movsd (%rsi), %xmm15 + mulsd %xmm15, %xmm2 + mulsd %xmm15, %xmm3 + addsd %xmm2, %xmm6 + movsd %xmm5, (%rbx) + addsd %xmm3, %xmm6 + movsd (%rbx), %xmm12 + addsd %xmm4, %xmm6 + subsd 88(%rdx), %xmm12 + movsd %xmm12, -88(%rsp) + movsd -88(%rsp), %xmm13 + movsd 40(%rdx), %xmm3 + subsd %xmm13, %xmm14 + movsd %xmm14, -80(%rsp) + movsd -80(%rsp), %xmm5 + movl (%rbx), %edx + movl %edx, %esi + andl $127, %edx + addsd %xmm6, %xmm5 + mulsd %xmm5, %xmm3 + addl %edx, %edx + movsd -8(%rcx,%rdx,8), %xmm2 + sarl $7, %esi + lea 6784+__dpow_la_CoutTab(%rip), %r9 + addsd (%r9), %xmm3 + mulsd %xmm5, %xmm3 + addsd -8(%r9), %xmm3 + mulsd %xmm5, %xmm3 + addsd -16(%r9), %xmm3 + mulsd %xmm5, %xmm3 + addsd -24(%r9), %xmm3 + mulsd %xmm5, %xmm3 + mulsd %xmm2, %xmm3 + addsd (%rcx,%rdx,8), %xmm3 + movaps %xmm3, %xmm4 + addsd %xmm2, %xmm4 + movsd %xmm4, -72(%rsp) + movzwl -66(%rsp), %ecx + movl %ecx, %ebx + andl $32752, %ebx + shrl $4, %ebx + lea -1023(%rsi,%rbx), %edx + cmpl $1024, %edx + jge .LBL_2_66 + + + cmpl $-1022, %edx + jl .LBL_2_61 + + + andl $-32753, %ecx + lea 1023(%rdx), %edx + andl $2047, %edx + shll $4, %edx + orl %edx, %ecx + movw %cx, -66(%rsp) + movsd -72(%rsp), %xmm2 + mulsd %xmm0, %xmm2 + movsd %xmm2, -72(%rsp) + jmp .LBL_2_56 + +.LBL_2_61: + + cmpl $-1032, %edx + jl .LBL_2_63 + + + lea -32(%rsp), %rcx + movsd %xmm4, (%rcx) + addl $1223, %esi + movsd (%rcx), %xmm1 + andl $2047, %esi + lea 6824+__dpow_la_CoutTab(%rip), %rbx + movq (%rbx), %rdx + subsd %xmm1, %xmm2 + movq %rdx, -64(%rsp) + addsd %xmm2, %xmm3 + lea -24(%rsp), %rdi + movsd %xmm3, (%rdi) + movsd (%rcx), %xmm7 + movsd 32(%rbx), %xmm2 + mulsd %xmm7, %xmm2 + movsd (%rdi), %xmm9 + movsd %xmm2, (%rcx) + movsd (%rcx), %xmm3 + shrq $48, %rdx + subsd %xmm7, %xmm3 + movsd %xmm3, (%rdi) + andl $-32753, %edx + movsd (%rcx), %xmm5 + movsd (%rdi), %xmm4 + shll $4, %esi + subsd %xmm4, %xmm5 + movsd %xmm5, (%rcx) + orl %esi, %edx + lea -32(%rsp), %rsi + movsd (%rsi), %xmm6 + movw %dx, -58(%rsp) + subsd %xmm6, %xmm7 + movsd %xmm7, (%rdi) + movsd (%rsi), %xmm11 + movsd (%rdi), %xmm12 + movsd -64(%rsp), %xmm10 + addsd %xmm9, %xmm12 + mulsd %xmm10, %xmm11 + mulsd %xmm10, %xmm12 + movsd 48(%rbx), %xmm8 + addsd %xmm11, %xmm12 + mulsd %xmm8, %xmm0 + movq -16(%rbx), %rcx + movq %rcx, (%rsi) + lea -32(%rsp), %rcx + movsd (%rcx), %xmm14 + movsd (%rcx), %xmm13 + mulsd %xmm13, %xmm14 + mulsd %xmm12, %xmm0 + movsd %xmm14, (%rcx) + movsd (%rcx), %xmm15 + addsd %xmm15, %xmm0 + movaps %xmm0, %xmm2 + movsd %xmm2, -72(%rsp) + jmp .LBL_2_56 + +.LBL_2_63: + + cmpl $-1084, %edx + jl .LBL_2_65 + + + addl $1223, %esi + andl $2047, %esi + lea 6830+__dpow_la_CoutTab(%rip), %rcx + movzwl (%rcx), %edx + shll $4, %esi + andl $-32753, %edx + movsd %xmm1, -64(%rsp) + orl %esi, %edx + movw %dx, -58(%rsp) + movsd 42(%rcx), %xmm2 + movsd -64(%rsp), %xmm1 + mulsd %xmm2, %xmm0 + mulsd %xmm1, %xmm4 + movq -22(%rcx), %rcx + movq %rcx, -32(%rsp) + mulsd %xmm4, %xmm0 + lea -32(%rsp), %rcx + movsd (%rcx), %xmm4 + movsd (%rcx), %xmm3 + mulsd %xmm3, %xmm4 + movsd %xmm4, (%rcx) + movsd (%rcx), %xmm5 + subsd %xmm5, %xmm0 + movaps %xmm0, %xmm2 + movsd %xmm2, -72(%rsp) + jmp .LBL_2_56 + +.LBL_2_65: + + movq 6808+__dpow_la_CoutTab(%rip), %rdx + movq %rdx, -32(%rsp) + lea -32(%rsp), %rdx + movsd (%rdx), %xmm2 + movsd (%rdx), %xmm1 + mulsd %xmm1, %xmm2 + movsd %xmm2, (%rdx) + movsd (%rdx), %xmm3 + mulsd %xmm3, %xmm0 + movaps %xmm0, %xmm2 + movsd %xmm2, -72(%rsp) + jmp .LBL_2_56 + +.LBL_2_66: + + movq 6800+__dpow_la_CoutTab(%rip), %rdx + movq %rdx, -32(%rsp) + lea -32(%rsp), %rdx + movsd (%rdx), %xmm2 + movsd (%rdx), %xmm1 + mulsd %xmm1, %xmm2 + movsd %xmm2, (%rdx) + movsd (%rdx), %xmm3 + mulsd %xmm3, %xmm0 + movaps %xmm0, %xmm2 + movsd %xmm2, -72(%rsp) + jmp .LBL_2_56 + +.LBL_2_67: + + movb -57(%rsp), %dl + lea 6800+__dpow_la_CoutTab(%rip), %rcx + andb $-128, %dl + shrb $7, %dl + xorb %dl, %bl + movzbl %bl, %ebx + movsd (%rcx,%rbx,8), %xmm2 + mulsd %xmm2, %xmm2 + mulsd %xmm0, %xmm2 + jmp .LBL_2_56 + +.LBL_2_68: + + testl %r9d, %r9d + jne .LBL_2_70 + + + testl %esi, %esi + jne .LBL_2_36 + +.LBL_2_70: + + lea 6824+__dpow_la_CoutTab(%rip), %rdx + andl $1, %r9d + movsd (%rdx,%r9,8), %xmm2 + jmp .LBL_2_56 + +.LBL_2_71: + + mulsd %xmm3, %xmm3 + testb %bl, %bl + je .LBL_2_73 + + + lea 6824+__dpow_la_CoutTab(%rip), %rax + andl %r12d, %r9d + movsd (%rax,%r9,8), %xmm2 + movl $1, %eax + divsd %xmm3, %xmm2 + jmp .LBL_2_56 + +.LBL_2_73: + + lea 6824+__dpow_la_CoutTab(%rip), %rdx + andl %r12d, %r9d + movsd (%rdx,%r9,8), %xmm2 + mulsd %xmm3, %xmm2 + jmp .LBL_2_56 + +.LBL_2_74: + + testb %r11b, %r11b + jne .LBL_2_55 + + + testl %edx, %edx + jne .LBL_2_30 + + + testl %r10d, %r10d + je .LBL_2_30 + jmp .LBL_2_55 + .align 16,0x90 + + .cfi_endproc + + .type __svml_dpow_cout_rare_internal,@function + .size __svml_dpow_cout_rare_internal,.-__svml_dpow_cout_rare_internal +..LN__svml_dpow_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dpow_data_internal_avx512: + .long 0 + .long 0 + .long 1972240384 + .long 3215375059 + .long 4207476736 + .long 3216401398 + .long 2363129856 + .long 3217067096 + .long 972816384 + .long 3217408026 + .long 766836736 + .long 3217739614 + .long 3103948800 + .long 3218062358 + .long 2869821440 + .long 3218228231 + .long 1271726080 + .long 3218381432 + .long 3449618432 + .long 3218530849 + .long 2300510208 + .long 3218676666 + .long 4147675136 + .long 3218819051 + .long 3761438720 + .long 3218958163 + .long 1758134272 + .long 3219094149 + .long 14041088 + .long 3219177733 + .long 513138688 + .long 3219242801 + .long 1904279552 + .long 1071288313 + .long 180338688 + .long 1071163544 + .long 1751498752 + .long 1071041295 + .long 2999894016 + .long 1070921467 + .long 3815833600 + .long 1070803966 + .long 1399062528 + .long 1070688704 + .long 2835742720 + .long 1070555096 + .long 2818572288 + .long 1070333031 + .long 180322304 + .long 1070114968 + .long 704610304 + .long 1069900764 + .long 3265986560 + .long 1069690285 + .long 3908239360 + .long 1069419290 + .long 2530213888 + .long 1069012484 + .long 2785017856 + .long 1068612402 + .long 3386507264 + .long 1067938708 + .long 2250244096 + .long 1066877934 + .long 0 + .long 0 + .long 650173971 + .long 3177165030 + .long 3428024929 + .long 3174241916 + .long 1628324029 + .long 1026060711 + .long 804943611 + .long 1028963376 + .long 518075456 + .long 1027828752 + .long 1462134616 + .long 1028126172 + .long 384118417 + .long 3174884873 + .long 1227618047 + .long 3176893182 + .long 446961290 + .long 3175726255 + .long 2998207852 + .long 3176597684 + .long 2742536172 + .long 3173319968 + .long 3242321520 + .long 1029042433 + .long 1690697745 + .long 3174775608 + .long 4137858450 + .long 1027958429 + .long 2514005062 + .long 1029694520 + .long 804943611 + .long 1027914800 + .long 2871266960 + .long 3173412044 + .long 3679462403 + .long 1027724294 + .long 2476829589 + .long 1026974179 + .long 1572243234 + .long 3176241050 + .long 2514550597 + .long 3175960347 + .long 1207415416 + .long 1029642824 + .long 531120703 + .long 3174459378 + .long 894287639 + .long 1029609779 + .long 1133539114 + .long 1029069062 + .long 1763539348 + .long 1029327721 + .long 1658032750 + .long 3171241178 + .long 825146242 + .long 3176213734 + .long 831162967 + .long 1028990787 + .long 1128763360 + .long 3176457556 + .long 896504796 + .long 3175699769 + .long 0 + .long 1072693248 + .long 1828292879 + .long 1072739672 + .long 1014845819 + .long 1072788152 + .long 1853186616 + .long 1072838778 + .long 171030293 + .long 1072891646 + .long 1276261410 + .long 1072946854 + .long 3577096743 + .long 1073004506 + .long 3712504873 + .long 1073064711 + .long 1719614413 + .long 1073127582 + .long 1944781191 + .long 1073193236 + .long 1110089947 + .long 1073261797 + .long 2191782032 + .long 1073333393 + .long 2572866477 + .long 1073408159 + .long 3716502172 + .long 1073486235 + .long 3707479175 + .long 1073567768 + .long 2728693978 + .long 1073652911 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1073217536 + .long 0 + .long 1073217536 + .long 0 + .long 1073217536 + .long 0 + .long 1073217536 + .long 0 + .long 1073217536 + .long 0 + .long 1073217536 + .long 0 + .long 1073217536 + .long 0 + .long 1073217536 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 3219592519 + .long 1697350398 + .long 3219592519 + .long 1697350398 + .long 3219592519 + .long 1697350398 + .long 3219592519 + .long 1697350398 + .long 3219592519 + .long 1697350398 + .long 3219592519 + .long 1697350398 + .long 3219592519 + .long 1697350398 + .long 3219592519 + .long 4114041750 + .long 1069844377 + .long 4114041750 + .long 1069844377 + .long 4114041750 + .long 1069844377 + .long 4114041750 + .long 1069844377 + .long 4114041750 + .long 1069844377 + .long 4114041750 + .long 1069844377 + .long 4114041750 + .long 1069844377 + .long 4114041750 + .long 1069844377 + .long 2589302621 + .long 3217496037 + .long 2589302621 + .long 3217496037 + .long 2589302621 + .long 3217496037 + .long 2589302621 + .long 3217496037 + .long 2589302621 + .long 3217496037 + .long 2589302621 + .long 3217496037 + .long 2589302621 + .long 3217496037 + .long 2589302621 + .long 3217496037 + .long 4238449923 + .long 1070227829 + .long 4238449923 + .long 1070227829 + .long 4238449923 + .long 1070227829 + .long 4238449923 + .long 1070227829 + .long 4238449923 + .long 1070227829 + .long 4238449923 + .long 1070227829 + .long 4238449923 + .long 1070227829 + .long 4238449923 + .long 1070227829 + .long 3163535583 + .long 3217999625 + .long 3163535583 + .long 3217999625 + .long 3163535583 + .long 3217999625 + .long 3163535583 + .long 3217999625 + .long 3163535583 + .long 3217999625 + .long 3163535583 + .long 3217999625 + .long 3163535583 + .long 3217999625 + .long 3163535583 + .long 3217999625 + .long 1357918834 + .long 1070757740 + .long 1357918834 + .long 1070757740 + .long 1357918834 + .long 1070757740 + .long 1357918834 + .long 1070757740 + .long 1357918834 + .long 1070757740 + .long 1357918834 + .long 1070757740 + .long 1357918834 + .long 1070757740 + .long 1357918834 + .long 1070757740 + .long 1697368554 + .long 3218543943 + .long 1697368554 + .long 3218543943 + .long 1697368554 + .long 3218543943 + .long 1697368554 + .long 3218543943 + .long 1697368554 + .long 3218543943 + .long 1697368554 + .long 3218543943 + .long 1697368554 + .long 3218543943 + .long 1697368554 + .long 3218543943 + .long 3694789628 + .long 1071564553 + .long 3694789628 + .long 1071564553 + .long 3694789628 + .long 1071564553 + .long 3694789628 + .long 1071564553 + .long 3694789628 + .long 1071564553 + .long 3694789628 + .long 1071564553 + .long 3694789628 + .long 1071564553 + .long 3694789628 + .long 1071564553 + .long 3757988711 + .long 1013148509 + .long 3757988711 + .long 1013148509 + .long 3757988711 + .long 1013148509 + .long 3757988711 + .long 1013148509 + .long 3757988711 + .long 1013148509 + .long 3757988711 + .long 1013148509 + .long 3757988711 + .long 1013148509 + .long 3757988711 + .long 1013148509 + .long 3999174959 + .long 1014462451 + .long 3999174959 + .long 1014462451 + .long 3999174959 + .long 1014462451 + .long 3999174959 + .long 1014462451 + .long 3999174959 + .long 1014462451 + .long 3999174959 + .long 1014462451 + .long 3999174959 + .long 1014462451 + .long 3999174959 + .long 1014462451 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 16368 + .long 1123549184 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4294967295 + .long 3221225471 + .long 4119604569 + .long 1059365335 + .long 4119604569 + .long 1059365335 + .long 4119604569 + .long 1059365335 + .long 4119604569 + .long 1059365335 + .long 4119604569 + .long 1059365335 + .long 4119604569 + .long 1059365335 + .long 4119604569 + .long 1059365335 + .long 4119604569 + .long 1059365335 + .long 662950521 + .long 1062590279 + .long 662950521 + .long 1062590279 + .long 662950521 + .long 1062590279 + .long 662950521 + .long 1062590279 + .long 662950521 + .long 1062590279 + .long 662950521 + .long 1062590279 + .long 662950521 + .long 1062590279 + .long 662950521 + .long 1062590279 + .long 454355882 + .long 1065595565 + .long 454355882 + .long 1065595565 + .long 454355882 + .long 1065595565 + .long 454355882 + .long 1065595565 + .long 454355882 + .long 1065595565 + .long 454355882 + .long 1065595565 + .long 454355882 + .long 1065595565 + .long 454355882 + .long 1065595565 + .long 3568144057 + .long 1068264200 + .long 3568144057 + .long 1068264200 + .long 3568144057 + .long 1068264200 + .long 3568144057 + .long 1068264200 + .long 3568144057 + .long 1068264200 + .long 3568144057 + .long 1068264200 + .long 3568144057 + .long 1068264200 + .long 3568144057 + .long 1068264200 + .long 4286862669 + .long 1070514109 + .long 4286862669 + .long 1070514109 + .long 4286862669 + .long 1070514109 + .long 4286862669 + .long 1070514109 + .long 4286862669 + .long 1070514109 + .long 4286862669 + .long 1070514109 + .long 4286862669 + .long 1070514109 + .long 4286862669 + .long 1070514109 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 4277811595 + .long 1072049730 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 248 + .long 0 + .long 248 + .long 0 + .long 248 + .long 0 + .long 248 + .long 0 + .long 248 + .long 0 + .long 248 + .long 0 + .long 248 + .long 0 + .long 248 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 120 + .long 0 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 1083173888 + .long 0 + .long 1083173888 + .long 0 + .long 1083173888 + .long 0 + .long 1083173888 + .long 0 + .long 1083173888 + .long 0 + .long 1083173888 + .long 0 + .long 1083173888 + .long 0 + .long 1083173888 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .type __svml_dpow_data_internal_avx512,@object + .size __svml_dpow_data_internal_avx512,2368 + .align 32 +__dpow_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 1072629696 + .long 0 + .long 1072569856 + .long 0 + .long 1072513472 + .long 0 + .long 1072460224 + .long 0 + .long 1072409856 + .long 0 + .long 1072362112 + .long 0 + .long 1072316864 + .long 0 + .long 1072273792 + .long 0 + .long 1072232896 + .long 0 + .long 1072193920 + .long 0 + .long 1072156736 + .long 0 + .long 1072121280 + .long 0 + .long 1072087424 + .long 0 + .long 1072054976 + .long 0 + .long 1072023936 + .long 0 + .long 1071994176 + .long 0 + .long 1071965696 + .long 0 + .long 1071938304 + .long 0 + .long 1071911936 + .long 0 + .long 1071886656 + .long 0 + .long 1071862272 + .long 0 + .long 1071838848 + .long 0 + .long 1071816256 + .long 0 + .long 1071794496 + .long 0 + .long 1071773440 + .long 0 + .long 1071753152 + .long 0 + .long 1071733504 + .long 0 + .long 1071714560 + .long 0 + .long 1071696256 + .long 0 + .long 1071678528 + .long 0 + .long 1071661312 + .long 0 + .long 1071644672 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2686386176 + .long 1067891457 + .long 1949948785 + .long 1027381598 + .long 1341652992 + .long 1068918120 + .long 2376679344 + .long 1026589938 + .long 2182004736 + .long 1069583575 + .long 297009671 + .long 1026900933 + .long 1687183360 + .long 1069924424 + .long 2120169064 + .long 1026082260 + .long 53207040 + .long 1070255920 + .long 3737096550 + .long 1026438963 + .long 3818315776 + .long 1070578756 + .long 677794872 + .long 1028109305 + .long 2429726720 + .long 1070744485 + .long 3907638365 + .long 1027382133 + .long 2702757888 + .long 1070897876 + .long 1929563302 + .long 1027984695 + .long 2465140736 + .long 1071047207 + .long 243175481 + .long 1026641700 + .long 2657701888 + .long 1071193041 + .long 3841377895 + .long 1028504382 + .long 658427904 + .long 1071335525 + .long 161357665 + .long 1028306250 + .long 539168768 + .long 1071474585 + .long 2531816708 + .long 1025043792 + .long 2658430976 + .long 1071610420 + .long 2178519328 + .long 1028288112 + .long 1355743232 + .long 1071694102 + .long 3943781029 + .long 1028003666 + .long 1854838784 + .long 1071759170 + .long 1812291414 + .long 1027042047 + .long 473251840 + .long 3218771869 + .long 1330616404 + .long 3175482613 + .long 2315530240 + .long 3218647330 + .long 3482179716 + .long 3175726112 + .long 3886694400 + .long 3218525081 + .long 3584491563 + .long 3175164762 + .long 1568866304 + .long 3218405023 + .long 3528175174 + .long 3174626157 + .long 4172640256 + .long 3218287637 + .long 3760034354 + .long 3171774178 + .long 3545214976 + .long 3218172213 + .long 881689765 + .long 3173077446 + .long 2121375744 + .long 3218038698 + .long 549802690 + .long 3174897014 + .long 492560384 + .long 3217816668 + .long 239252792 + .long 3173483664 + .long 155754496 + .long 3217598893 + .long 1693604438 + .long 3175909818 + .long 4285202432 + .long 3217384365 + .long 127148739 + .long 3175942199 + .long 41181184 + .long 3217174003 + .long 3260046653 + .long 3174058211 + .long 2465087488 + .long 3216902292 + .long 4241850247 + .long 3175110025 + .long 1101037568 + .long 3216495763 + .long 3170347605 + .long 3176066808 + .long 3478798336 + .long 3216096373 + .long 329155479 + .long 3175972274 + .long 3246555136 + .long 3215423741 + .long 4071576371 + .long 3174315914 + .long 830078976 + .long 3214361213 + .long 1258533012 + .long 3175547121 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 1072689152 + .long 0 + .long 1072685056 + .long 0 + .long 1072681024 + .long 0 + .long 1072676992 + .long 0 + .long 1072672960 + .long 0 + .long 1072668928 + .long 0 + .long 1072664960 + .long 0 + .long 1072660992 + .long 0 + .long 1072657024 + .long 0 + .long 1072653056 + .long 0 + .long 1072649152 + .long 0 + .long 1072645248 + .long 0 + .long 1072641344 + .long 0 + .long 1072637440 + .long 0 + .long 1072710976 + .long 0 + .long 1072709888 + .long 0 + .long 1072708864 + .long 0 + .long 1072707776 + .long 0 + .long 1072706752 + .long 0 + .long 1072705664 + .long 0 + .long 1072704640 + .long 0 + .long 1072703616 + .long 0 + .long 1072702528 + .long 0 + .long 1072701504 + .long 0 + .long 1072700480 + .long 0 + .long 1072699456 + .long 0 + .long 1072698368 + .long 0 + .long 1072697344 + .long 0 + .long 1072696320 + .long 0 + .long 1072695296 + .long 0 + .long 1072694272 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2754084864 + .long 1063721742 + .long 2557931335 + .long 1028226920 + .long 3228041216 + .long 1064771801 + .long 930662348 + .long 1027873525 + .long 2323251200 + .long 1065436614 + .long 2596299912 + .long 1027915217 + .long 1641152512 + .long 1065811444 + .long 1188689655 + .long 1027383036 + .long 895221760 + .long 1066187001 + .long 2918954073 + .long 1026717129 + .long 3962896384 + .long 1066482539 + .long 1338190555 + .long 1024402868 + .long 2071330816 + .long 1066668054 + .long 2834125591 + .long 1027573772 + .long 830078976 + .long 1066853925 + .long 1683363035 + .long 1027948302 + .long 1828782080 + .long 1067040153 + .long 874130859 + .long 1026348678 + .long 2395996160 + .long 1067226740 + .long 1724975876 + .long 1028585613 + .long 3558866944 + .long 1067410669 + .long 2189961434 + .long 1027936707 + .long 2542927872 + .long 1067522658 + .long 3621009110 + .long 1028493916 + .long 4208394240 + .long 1067614973 + .long 2777386350 + .long 1028255456 + .long 3217162240 + .long 1067707465 + .long 772669574 + .long 1028516547 + .long 824377344 + .long 3214460051 + .long 1593617402 + .long 3175722247 + .long 830078976 + .long 3214361213 + .long 1258533012 + .long 3175547121 + .long 4002480128 + .long 3214268096 + .long 1397883555 + .long 3175764245 + .long 2914385920 + .long 3214169062 + .long 3775067953 + .long 3175176772 + .long 1460142080 + .long 3214075761 + .long 1592372614 + .long 3175907032 + .long 219152384 + .long 3213976530 + .long 1716511551 + .long 3175540921 + .long 3419144192 + .long 3213880645 + .long 1128677462 + .long 3174560569 + .long 3320446976 + .long 3213693490 + .long 2965227743 + .long 3172454196 + .long 677904384 + .long 3213494440 + .long 4029390031 + .long 3174409513 + .long 1290797056 + .long 3213306911 + .long 1477436787 + .long 3173730612 + .long 2800877568 + .long 3213119200 + .long 4281418519 + .long 3173304523 + .long 3692822528 + .long 3212931307 + .long 751117103 + .long 3175382448 + .long 2547253248 + .long 3212626079 + .long 2419265147 + .long 3175328924 + .long 1836580864 + .long 3212249540 + .long 1456335141 + .long 3175441338 + .long 3438542848 + .long 3211872634 + .long 3721652080 + .long 3176073447 + .long 4278714368 + .long 3211202435 + .long 836003693 + .long 3174279974 + .long 926941184 + .long 3210154597 + .long 4249864733 + .long 3174015648 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1073741824 + .long 1073157447 + .long 0 + .long 1073157401 + .long 0 + .long 1073157355 + .long 3221225472 + .long 1073157308 + .long 2147483648 + .long 1073157262 + .long 2147483648 + .long 1073157216 + .long 1073741824 + .long 1073157170 + .long 1073741824 + .long 1073157124 + .long 0 + .long 1073157078 + .long 3221225472 + .long 1073157031 + .long 3221225472 + .long 1073156985 + .long 2147483648 + .long 1073156939 + .long 2147483648 + .long 1073156893 + .long 1073741824 + .long 1073156847 + .long 1073741824 + .long 1073156801 + .long 0 + .long 1073156755 + .long 0 + .long 1073156709 + .long 3221225472 + .long 1073156662 + .long 3221225472 + .long 1073156616 + .long 2147483648 + .long 1073156570 + .long 2147483648 + .long 1073156524 + .long 2147483648 + .long 1073156478 + .long 1073741824 + .long 1073156432 + .long 1073741824 + .long 1073156386 + .long 0 + .long 1073156340 + .long 0 + .long 1073156294 + .long 0 + .long 1073156248 + .long 3221225472 + .long 1073156201 + .long 3221225472 + .long 1073156155 + .long 2147483648 + .long 1073156109 + .long 2147483648 + .long 1073156063 + .long 2147483648 + .long 1073156017 + .long 1073741824 + .long 1073155971 + .long 1073741824 + .long 1073155925 + .long 1073741824 + .long 1073155879 + .long 1073741824 + .long 1073155833 + .long 0 + .long 1073155787 + .long 0 + .long 1073155741 + .long 0 + .long 1073155695 + .long 0 + .long 1073155649 + .long 3221225472 + .long 1073155602 + .long 3221225472 + .long 1073155556 + .long 3221225472 + .long 1073155510 + .long 3221225472 + .long 1073155464 + .long 3221225472 + .long 1073155418 + .long 2147483648 + .long 1073155372 + .long 2147483648 + .long 1073155326 + .long 2147483648 + .long 1073155280 + .long 2147483648 + .long 1073155234 + .long 2147483648 + .long 1073155188 + .long 2147483648 + .long 1073155142 + .long 2147483648 + .long 1073155096 + .long 2147483648 + .long 1073155050 + .long 2147483648 + .long 1073155004 + .long 1073741824 + .long 1073154958 + .long 1073741824 + .long 1073154912 + .long 1073741824 + .long 1073154866 + .long 1073741824 + .long 1073154820 + .long 1073741824 + .long 1073154774 + .long 1073741824 + .long 1073154728 + .long 1073741824 + .long 1073154682 + .long 2147483648 + .long 1073158995 + .long 1073741824 + .long 1073158972 + .long 1073741824 + .long 1073158949 + .long 0 + .long 1073158926 + .long 0 + .long 1073158903 + .long 3221225472 + .long 1073158879 + .long 3221225472 + .long 1073158856 + .long 2147483648 + .long 1073158833 + .long 2147483648 + .long 1073158810 + .long 1073741824 + .long 1073158787 + .long 1073741824 + .long 1073158764 + .long 0 + .long 1073158741 + .long 0 + .long 1073158718 + .long 3221225472 + .long 1073158694 + .long 3221225472 + .long 1073158671 + .long 2147483648 + .long 1073158648 + .long 2147483648 + .long 1073158625 + .long 1073741824 + .long 1073158602 + .long 1073741824 + .long 1073158579 + .long 0 + .long 1073158556 + .long 0 + .long 1073158533 + .long 3221225472 + .long 1073158509 + .long 3221225472 + .long 1073158486 + .long 2147483648 + .long 1073158463 + .long 2147483648 + .long 1073158440 + .long 1073741824 + .long 1073158417 + .long 1073741824 + .long 1073158394 + .long 1073741824 + .long 1073158371 + .long 0 + .long 1073158348 + .long 0 + .long 1073158325 + .long 3221225472 + .long 1073158301 + .long 3221225472 + .long 1073158278 + .long 2147483648 + .long 1073158255 + .long 2147483648 + .long 1073158232 + .long 2147483648 + .long 1073158209 + .long 1073741824 + .long 1073158186 + .long 1073741824 + .long 1073158163 + .long 0 + .long 1073158140 + .long 0 + .long 1073158117 + .long 3221225472 + .long 1073158093 + .long 3221225472 + .long 1073158070 + .long 3221225472 + .long 1073158047 + .long 2147483648 + .long 1073158024 + .long 2147483648 + .long 1073158001 + .long 1073741824 + .long 1073157978 + .long 1073741824 + .long 1073157955 + .long 1073741824 + .long 1073157932 + .long 0 + .long 1073157909 + .long 0 + .long 1073157886 + .long 3221225472 + .long 1073157862 + .long 3221225472 + .long 1073157839 + .long 3221225472 + .long 1073157816 + .long 2147483648 + .long 1073157793 + .long 2147483648 + .long 1073157770 + .long 2147483648 + .long 1073157747 + .long 1073741824 + .long 1073157724 + .long 1073741824 + .long 1073157701 + .long 0 + .long 1073157678 + .long 0 + .long 1073157655 + .long 0 + .long 1073157632 + .long 3221225472 + .long 1073157608 + .long 3221225472 + .long 1073157585 + .long 3221225472 + .long 1073157562 + .long 2147483648 + .long 1073157539 + .long 2147483648 + .long 1073157516 + .long 2147483648 + .long 1073157493 + .long 1073741824 + .long 1073157470 + .long 1073741824 + .long 1073157447 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1342177280 + .long 1057431575 + .long 1679773494 + .long 1024039205 + .long 989855744 + .long 1058476078 + .long 3244478756 + .long 1024589954 + .long 209715200 + .long 1059147828 + .long 152199156 + .long 1027874535 + .long 2449473536 + .long 1059526748 + .long 2343302255 + .long 1022283036 + .long 1560281088 + .long 1059903632 + .long 4038848719 + .long 1027337824 + .long 4282384384 + .long 1060196455 + .long 2325104861 + .long 1027595231 + .long 1665138688 + .long 1060384909 + .long 2934027888 + .long 1026982347 + .long 3263168512 + .long 1060574392 + .long 3208451390 + .long 1027670758 + .long 3980394496 + .long 1060763881 + .long 863587004 + .long 1026973426 + .long 2470445056 + .long 1060952352 + .long 1027097864 + .long 1028644619 + .long 1296039936 + .long 1061141853 + .long 2016162954 + .long 1025089894 + .long 3107979264 + .long 1061244623 + .long 970842239 + .long 1028172704 + .long 3722444800 + .long 1061339379 + .long 2640304163 + .long 1027825546 + .long 2959081472 + .long 1061433626 + .long 306547692 + .long 1028101690 + .long 2631925760 + .long 1061528388 + .long 747377661 + .long 1028120913 + .long 794820608 + .long 1061622641 + .long 3406550266 + .long 1028182206 + .long 3825205248 + .long 1061717408 + .long 3705775220 + .long 1027201825 + .long 916455424 + .long 1061811667 + .long 1432750358 + .long 1028165990 + .long 3011510272 + .long 1061906440 + .long 3361908688 + .long 1027438936 + .long 3330277376 + .long 1062000704 + .long 3560665332 + .long 1027805882 + .long 3082813440 + .long 1062094971 + .long 2539531329 + .long 1028011583 + .long 3747610624 + .long 1062189753 + .long 2232403651 + .long 1025658467 + .long 1218445312 + .long 1062245757 + .long 396499622 + .long 1025861782 + .long 1086324736 + .long 1062293151 + .long 2757240868 + .long 1026731615 + .long 2047868928 + .long 1062340290 + .long 2226191703 + .long 1027982328 + .long 580911104 + .long 1062387431 + .long 1252857417 + .long 1028280924 + .long 1887436800 + .long 1062434829 + .long 659583454 + .long 1025370904 + .long 4186963968 + .long 1062481972 + .long 3587661750 + .long 1028188900 + .long 738197504 + .long 1062529374 + .long 3240696709 + .long 1027025093 + .long 2511339520 + .long 1062576520 + .long 2884432087 + .long 1028614554 + .long 1859125248 + .long 1062623668 + .long 2402099113 + .long 1025699109 + .long 4148166656 + .long 1062671073 + .long 2335237504 + .long 1026835951 + .long 2970615808 + .long 1062718224 + .long 3698719430 + .long 1027808594 + .long 3662675968 + .long 1062765376 + .long 2704653673 + .long 1027603403 + .long 1929379840 + .long 1062812530 + .long 761521627 + .long 1027109120 + .long 3273654272 + .long 1062859941 + .long 470528098 + .long 1027977181 + .long 1019215872 + .long 1062907098 + .long 3704635566 + .long 1027707215 + .long 635437056 + .long 1062954256 + .long 3676592927 + .long 1027502983 + .long 2122317824 + .long 1063001415 + .long 1497197375 + .long 1028267547 + .long 2529165312 + .long 1063048832 + .long 3425827878 + .long 1022000476 + .long 3498049536 + .long 1063095994 + .long 1982476393 + .long 1026289596 + .long 2043674624 + .long 1063143158 + .long 2502680620 + .long 1028471295 + .long 2463105024 + .long 1063190323 + .long 991567028 + .long 1027421239 + .long 460324864 + .long 1063237490 + .long 1461814384 + .long 1026181618 + .long 920125440 + .long 1063270489 + .long 1613472693 + .long 1027845558 + .long 3956277248 + .long 1063294073 + .long 93449747 + .long 1028284502 + .long 1487405056 + .long 1063317659 + .long 1336931403 + .long 1026834156 + .long 2102919168 + .long 1063341245 + .long 319680825 + .long 1027392710 + .long 1508376576 + .long 1063364832 + .long 2474643583 + .long 1027776685 + .long 3999268864 + .long 1063388419 + .long 3104004650 + .long 1024627034 + .long 985137152 + .long 1063412008 + .long 550153379 + .long 1026678253 + .long 1056440320 + .long 1063435597 + .long 672168391 + .long 1027731310 + .long 4213702656 + .long 1063459186 + .long 1805142399 + .long 1026660459 + .long 2772434944 + .long 1063482905 + .long 2448602160 + .long 1028404887 + .long 3528458240 + .long 1063506496 + .long 3457943394 + .long 1027665063 + .long 3075473408 + .long 1063530088 + .long 121314862 + .long 1027996294 + .long 1414004736 + .long 1063553681 + .long 94774013 + .long 1028053481 + .long 2839019520 + .long 1063577274 + .long 1263902834 + .long 1028588748 + .long 3056074752 + .long 1063600868 + .long 369708558 + .long 1028257136 + .long 2065170432 + .long 1063624463 + .long 1634529849 + .long 1027810905 + .long 1769996288 + .long 3210227157 + .long 1054279927 + .long 3174741313 + .long 2442133504 + .long 3210203373 + .long 2067107398 + .long 3175167430 + .long 456130560 + .long 3210179845 + .long 4142755806 + .long 3170825152 + .long 2302672896 + .long 3210156060 + .long 1526169727 + .long 3175523413 + .long 1524629504 + .long 3210132531 + .long 2442955053 + .long 3175425591 + .long 251658240 + .long 3210108746 + .long 2154729168 + .long 3175535488 + .long 681574400 + .long 3210085216 + .long 4275862891 + .long 3176027230 + .long 584056832 + .long 3210061430 + .long 4255852476 + .long 3173565530 + .long 2221932544 + .long 3210037899 + .long 2498876736 + .long 3175149504 + .long 3297771520 + .long 3210014112 + .long 1851620949 + .long 3175688865 + .long 1849688064 + .long 3209990581 + .long 2923055509 + .long 3171310641 + .long 4099932160 + .long 3209966793 + .long 2427653201 + .long 3173037457 + .long 3858759680 + .long 3209943261 + .long 1550068012 + .long 3173027359 + .long 2987393024 + .long 3209919473 + .long 4127650534 + .long 3175851613 + .long 3954180096 + .long 3209895940 + .long 442055840 + .long 3174771669 + .long 4257218560 + .long 3209872151 + .long 4113960829 + .long 3175350854 + .long 2135949312 + .long 3209848618 + .long 2076166727 + .long 3175229825 + .long 3613392896 + .long 3209824828 + .long 3476091171 + .long 3171604778 + .long 2699034624 + .long 3209801294 + .long 1765290157 + .long 3173591669 + .long 1053818880 + .long 3209777504 + .long 3761837094 + .long 3175683182 + .long 1346371584 + .long 3209753969 + .long 1459626820 + .long 3176031561 + .long 875560960 + .long 3209730178 + .long 2402361097 + .long 3174909319 + .long 2375024640 + .long 3209706642 + .long 687754918 + .long 3174943382 + .long 1858076672 + .long 3209674565 + .long 252333183 + .long 3175531572 + .long 2975858688 + .long 3209627492 + .long 1334776821 + .long 3174591557 + .long 2430599168 + .long 3209579907 + .long 1326030186 + .long 3173486707 + .long 1665138688 + .long 3209532833 + .long 737674412 + .long 3174401557 + .long 2122317824 + .long 3209485758 + .long 3987168834 + .long 3175346908 + .long 815792128 + .long 3209438171 + .long 3526910672 + .long 3176068855 + .long 3686793216 + .long 3209391094 + .long 587265932 + .long 3174950865 + .long 429916160 + .long 3209343506 + .long 3143915816 + .long 3175955609 + .long 1417674752 + .long 3209296428 + .long 2918285701 + .long 3174860756 + .long 505413632 + .long 3209248838 + .long 436607152 + .long 3175743066 + .long 3904897024 + .long 3209201758 + .long 2867787430 + .long 3173594277 + .long 4229955584 + .long 3209154678 + .long 3971699810 + .long 3174682560 + .long 2556428288 + .long 3209107086 + .long 3215049067 + .long 3174495054 + .long 998244352 + .long 3209060005 + .long 2424883713 + .long 3173182748 + .long 1667235840 + .long 3209012411 + .long 762177973 + .long 3175232288 + .long 2518679552 + .long 3208965328 + .long 282609672 + .long 3175635057 + .long 1237319680 + .long 3208917733 + .long 1502777354 + .long 3174942228 + .long 203423744 + .long 3208870649 + .long 4128371954 + .long 3175884977 + .long 392167424 + .long 3208823564 + .long 306802084 + .long 3175724146 + .long 2642411520 + .long 3208775966 + .long 2960876517 + .long 3173143647 + .long 945815552 + .long 3208728880 + .long 1800251929 + .long 3170106484 + .long 1241513984 + .long 3208681281 + .long 2675524524 + .long 3173521837 + .long 3904897024 + .long 3208625826 + .long 83988225 + .long 3175795858 + .long 3477078016 + .long 3208531649 + .long 1575792028 + .long 3175657512 + .long 2537553920 + .long 3208436447 + .long 1662079495 + .long 3175916253 + .long 2634022912 + .long 3208342267 + .long 2818347875 + .long 3174383619 + .long 2080374784 + .long 3208247062 + .long 1081767985 + .long 3175779040 + .long 2696937472 + .long 3208152879 + .long 2443744157 + .long 3175275915 + .long 1459617792 + .long 3208058695 + .long 790904149 + .long 3174713637 + .long 3670016000 + .long 3207963485 + .long 581064731 + .long 3173466591 + .long 2952790016 + .long 3207869298 + .long 1008918738 + .long 3171724149 + .long 377487360 + .long 3207775110 + .long 1606538461 + .long 3175837201 + .long 1052770304 + .long 3207679896 + .long 2534546984 + .long 3175060122 + .long 2298478592 + .long 3207577425 + .long 2154814426 + .long 3172198942 + .long 117440512 + .long 3207386992 + .long 1374248651 + .long 3174502065 + .long 1342177280 + .long 3207198603 + .long 4280579335 + .long 3175188313 + .long 3154116608 + .long 3207010211 + .long 3334926656 + .long 3174829419 + .long 2189426688 + .long 3206819769 + .long 3100885346 + .long 3175936751 + .long 746586112 + .long 3206631372 + .long 315615614 + .long 3173018851 + .long 4043309056 + .long 3206340535 + .long 274116456 + .long 3175970612 + .long 268435456 + .long 3205959634 + .long 691182319 + .long 3173304996 + .long 603979776 + .long 3205582822 + .long 112661265 + .long 3170010307 + .long 4194304000 + .long 3204915176 + .long 3717748378 + .long 3174284044 + .long 2885681152 + .long 3203858420 + .long 192153543 + .long 3175961815 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 2851812149 + .long 1072698941 + .long 2595802551 + .long 1016815913 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3899555717 + .long 1072710421 + .long 427280750 + .long 3163595548 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 702412510 + .long 1072722027 + .long 3803266086 + .long 3163328991 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 3402036099 + .long 1072733758 + .long 405889333 + .long 1016154232 + .long 1828292879 + .long 1072739672 + .long 1255956746 + .long 1016636974 + .long 728909815 + .long 1072745618 + .long 383930225 + .long 1016078044 + .long 852742562 + .long 1072751596 + .long 667253586 + .long 1010842135 + .long 2952712987 + .long 1072757606 + .long 3293494651 + .long 3161168877 + .long 3490863953 + .long 1072763649 + .long 960797497 + .long 3163997456 + .long 3228316108 + .long 1072769725 + .long 3010241991 + .long 3159471380 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 3366293073 + .long 1072781976 + .long 3119426313 + .long 1015169130 + .long 1014845819 + .long 1072788152 + .long 3117910645 + .long 3162607681 + .long 948735466 + .long 1072794361 + .long 3516338027 + .long 3163623459 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 2214878420 + .long 1072806880 + .long 892270087 + .long 3164164998 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 586995997 + .long 1072819536 + .long 41662347 + .long 3163676568 + .long 2288159958 + .long 1072825915 + .long 2169144468 + .long 1015924597 + .long 2440944790 + .long 1072832329 + .long 2492769773 + .long 1015196030 + .long 1853186616 + .long 1072838778 + .long 3066496370 + .long 1016705150 + .long 1337108031 + .long 1072845262 + .long 3203724452 + .long 1015726421 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 3790955393 + .long 1072858335 + .long 2352942461 + .long 3164228666 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 3504003472 + .long 1072871551 + .long 3594001059 + .long 3158379228 + .long 2799960843 + .long 1072878213 + .long 1423655380 + .long 1016070727 + .long 2839424854 + .long 1072884911 + .long 1171596163 + .long 1014090255 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 4232894513 + .long 1072898416 + .long 2383938684 + .long 1015717095 + .long 2992903935 + .long 1072905224 + .long 2218154405 + .long 1016276769 + .long 1603444721 + .long 1072912069 + .long 1548633640 + .long 3163249902 + .long 926591435 + .long 1072918951 + .long 3208833761 + .long 3163962090 + .long 1829099622 + .long 1072925870 + .long 1016661180 + .long 3164509581 + .long 887463927 + .long 1072932827 + .long 3596744162 + .long 3161842742 + .long 3272845541 + .long 1072939821 + .long 928852419 + .long 3164536824 + .long 1276261410 + .long 1072946854 + .long 300981947 + .long 1015732745 + .long 78413852 + .long 1072953925 + .long 4183226867 + .long 3164065827 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 3645941911 + .long 1072968181 + .long 3814685080 + .long 3162621917 + .long 1617004845 + .long 1072975368 + .long 82804943 + .long 1011391354 + .long 3978100823 + .long 1072982593 + .long 3513027190 + .long 1016894539 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 4040676318 + .long 1072997162 + .long 4090609238 + .long 1016712034 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 2583551245 + .long 1073011890 + .long 3161094195 + .long 1016655067 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 2731501122 + .long 1073026778 + .long 1774031854 + .long 3163518597 + .long 1453150082 + .long 1073034283 + .long 498154668 + .long 3162536638 + .long 3395129871 + .long 1073041828 + .long 4025345434 + .long 3163383964 + .long 917841882 + .long 1073049415 + .long 18715564 + .long 1016707884 + .long 3566716925 + .long 1073057042 + .long 1536826855 + .long 1015191009 + .long 3712504873 + .long 1073064711 + .long 88491948 + .long 1016476236 + .long 2321106615 + .long 1073072422 + .long 2171176610 + .long 1010584347 + .long 363667784 + .long 1073080175 + .long 813753949 + .long 1016833785 + .long 3111574537 + .long 1073087969 + .long 2606161479 + .long 3163808322 + .long 2956612997 + .long 1073095806 + .long 2118169750 + .long 3163784129 + .long 885834528 + .long 1073103686 + .long 1973258546 + .long 3163310140 + .long 2186617381 + .long 1073111608 + .long 2270764083 + .long 3164321289 + .long 3561793907 + .long 1073119573 + .long 1157054052 + .long 1012938926 + .long 1719614413 + .long 1073127582 + .long 330458197 + .long 3164331316 + .long 1963711167 + .long 1073135634 + .long 1744767756 + .long 3161622870 + .long 1013258799 + .long 1073143730 + .long 1748797610 + .long 3161177658 + .long 4182873220 + .long 1073151869 + .long 629542646 + .long 3163044879 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1218806132 + .long 1073168282 + .long 1818613051 + .long 3163597017 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1339972927 + .long 1073184873 + .long 167908908 + .long 1016620728 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 19972402 + .long 1073201645 + .long 3507899861 + .long 1017057868 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 1413356050 + .long 1073218599 + .long 1651349290 + .long 3163716742 + .long 2571947539 + .long 1073227145 + .long 3558159063 + .long 3164425245 + .long 1176749997 + .long 1073235738 + .long 2738998779 + .long 3163084420 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 3649726105 + .long 1073253063 + .long 4085036346 + .long 1016698050 + .long 1110089947 + .long 1073261797 + .long 1451641638 + .long 1016523249 + .long 380978316 + .long 1073270578 + .long 854188970 + .long 3161511262 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 194117574 + .long 1073288283 + .long 777528611 + .long 3164460665 + .long 2966275557 + .long 1073297207 + .long 2176155323 + .long 3160891335 + .long 3418903055 + .long 1073306180 + .long 2527457337 + .long 3161869180 + .long 2682146384 + .long 1073315202 + .long 2082178512 + .long 3164411995 + .long 1892288442 + .long 1073324273 + .long 2446255666 + .long 3163648957 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 434316067 + .long 1073342563 + .long 2028358766 + .long 1014506698 + .long 2069751141 + .long 1073351782 + .long 1562170674 + .long 3163773257 + .long 3964284211 + .long 1073361051 + .long 2111583915 + .long 1016475740 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 321958744 + .long 1073379742 + .long 3401933766 + .long 1016843134 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 3218338682 + .long 1073398635 + .long 3404164304 + .long 3163525684 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 697153126 + .long 1073417735 + .long 1283515428 + .long 3164331765 + .long 3092190715 + .long 1073427362 + .long 814012167 + .long 3160571998 + .long 2380618042 + .long 1073437042 + .long 3149557219 + .long 3164369375 + .long 4076559943 + .long 1073446774 + .long 2119478330 + .long 3161806927 + .long 815859274 + .long 1073456560 + .long 240396590 + .long 3164536019 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 1540824585 + .long 1073476290 + .long 1064017010 + .long 3164536266 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 1610600570 + .long 1073496235 + .long 3766732298 + .long 1016808759 + .long 777507147 + .long 1073506289 + .long 4282924204 + .long 1016236109 + .long 2483480501 + .long 1073516397 + .long 1216371780 + .long 1014082748 + .long 3706687593 + .long 1073526560 + .long 3521726939 + .long 1014301643 + .long 1432208378 + .long 1073536779 + .long 1401068914 + .long 3163412539 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 135105010 + .long 1073557383 + .long 1906148727 + .long 3164424315 + .long 3707479175 + .long 1073567768 + .long 3613079302 + .long 1015213314 + .long 382305176 + .long 1073578211 + .long 2347622376 + .long 3163627201 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 4076975200 + .long 1073599265 + .long 2029000898 + .long 1016257111 + .long 863738719 + .long 1073609879 + .long 1326992219 + .long 3163661773 + .long 351641897 + .long 1073620550 + .long 2172261526 + .long 3164059175 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 4224142467 + .long 1073642065 + .long 3389820385 + .long 1016255778 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 764307441 + .long 1073663816 + .long 3021057420 + .long 3164378099 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 929806999 + .long 1073685803 + .long 3205336643 + .long 1016308133 + .long 1533953344 + .long 1073696886 + .long 769171850 + .long 1016714209 + .long 2912730644 + .long 1073708029 + .long 3490067721 + .long 3164453650 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 730821105 + .long 1073730498 + .long 2523232743 + .long 1013115764 + .long 2523158504 + .long 1048167334 + .long 1181303047 + .long 3218484803 + .long 1656151777 + .long 1069842388 + .long 714085080 + .long 3216330823 + .long 4277811695 + .long 1072049730 + .long 4286760335 + .long 1070514109 + .long 3607404736 + .long 1068264200 + .long 1874480759 + .long 1065595563 + .long 3884607281 + .long 1062590591 + .long 0 + .long 2145386496 + .long 0 + .long 1048576 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .long 0 + .long 1120403456 + .long 1073741824 + .long 1073157447 + .long 33554432 + .long 1101004800 + .long 0 + .long 1282408448 + .long 0 + .long 862978048 + .type __dpow_la_CoutTab,@object + .size __dpow_la_CoutTab,6880 diff --git a/numpy/core/src/umath/svml/svml_z0_pow_s_la.s b/numpy/core/src/umath/svml/svml_z0_pow_s_la.s new file mode 100644 index 000000000000..743321c85f4e --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_pow_s_la.s @@ -0,0 +1,2012 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * * Typical computation sequences for log2() and exp2(), + * * with smaller tables (32- and 16-element tables) + * * The log2() part uses VGETEXP/VGETMANT (which treat denormals correctly), + * * similar to DP ln() algorithm + * * Branches are not needed for overflow/underflow: + * * - RZ mode used to prevent overflow to +/-Inf in intermediate computations + * * - final VSCALEF properly handles overflow and underflow cases + * * Callout is still used for Inf/NaNs or x<=0 + * * + * + */ + + + .text +.L_2__routine_start___svml_powf16_z0_0: + + .align 16,0x90 + .globl __svml_powf16 + +__svml_powf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $256, %rsp + +/* GetMant(x), normalized to [0.5,1) for x>=0, NaN for x<0 */ + vgetmantps $10, {sae}, %zmm0, %zmm4 + vmovups 384+__svml_spow_data_internal_avx512(%rip), %zmm9 + vmovups 448+__svml_spow_data_internal_avx512(%rip), %zmm11 + vmovups 512+__svml_spow_data_internal_avx512(%rip), %zmm12 + vmovups 320+__svml_spow_data_internal_avx512(%rip), %zmm8 + vmovups 576+__svml_spow_data_internal_avx512(%rip), %zmm15 + +/* GetExp(x) */ + vgetexpps {sae}, %zmm0, %zmm14 + +/* Table lookup */ + vmovups __svml_spow_data_internal_avx512(%rip), %zmm13 + vmovups 128+__svml_spow_data_internal_avx512(%rip), %zmm3 + +/* SglRcp ~ 1/Mantissa */ + vrcp14ps %zmm4, %zmm6 + +/* x<=0 or Inf/NaN? */ + vfpclassps $223, %zmm0, %k0 + +/* round SglRcp to 5 fractional bits (RN mode, no Precision exception) */ + vrndscaleps $88, {sae}, %zmm6, %zmm7 + vmovups 704+__svml_spow_data_internal_avx512(%rip), %zmm6 + kmovw %k0, %edx + +/* Reduced argument: R = (SglRcp*Mantissa - 1) */ + vfmsub213ps {rn-sae}, %zmm9, %zmm7, %zmm4 + +/* Prepare exponent correction: SglRcp<1.5? */ + vcmpps $17, {sae}, %zmm8, %zmm7, %k1 + +/* start polynomial evaluation */ + vfmadd231ps {rn-sae}, %zmm4, %zmm11, %zmm12 + +/* Prepare table index */ + vpsrld $18, %zmm7, %zmm10 + vmovups 768+__svml_spow_data_internal_avx512(%rip), %zmm7 + vfmadd231ps {rn-sae}, %zmm4, %zmm12, %zmm15 + +/* add 1 to Expon if SglRcp<1.5 */ + vaddps {rn-sae}, %zmm9, %zmm14, %zmm14{%k1} + vpermt2ps 64+__svml_spow_data_internal_avx512(%rip), %zmm10, %zmm13 + vpermt2ps 192+__svml_spow_data_internal_avx512(%rip), %zmm10, %zmm3 + +/* Th+Expon */ + vaddps {rn-sae}, %zmm14, %zmm13, %zmm2 + vmovaps %zmm1, %zmm5 + vmovups 640+__svml_spow_data_internal_avx512(%rip), %zmm1 + +/* y Inf/NaN? */ + vfpclassps $153, %zmm5, %k2 + vfmadd231ps {rn-sae}, %zmm4, %zmm15, %zmm1 + kmovw %k2, %eax + +/* Poly_low */ + vfmadd231ps {rn-sae}, %zmm4, %zmm1, %zmm6 + +/* Th+Expon+R*c1h */ + vmovaps %zmm2, %zmm9 + orl %eax, %edx + vfmadd231ps {rn-sae}, %zmm4, %zmm7, %zmm9 + +/* Tl + R*Poly_low */ + vfmadd231ps {rn-sae}, %zmm4, %zmm6, %zmm3 + vmovups 960+__svml_spow_data_internal_avx512(%rip), %zmm6 + +/* (R*c1h)_high */ + vsubps {rn-sae}, %zmm2, %zmm9, %zmm8 + +/* High1 + Tl */ + vaddps {rn-sae}, %zmm3, %zmm9, %zmm11 + +/* (R*c1h)_low */ + vfmsub213ps {rn-sae}, %zmm8, %zmm7, %zmm4 + vmovups 1088+__svml_spow_data_internal_avx512(%rip), %zmm7 + +/* y*High */ + vmulps {rz-sae}, %zmm5, %zmm11, %zmm12 + +/* Tlh */ + vsubps {rn-sae}, %zmm9, %zmm11, %zmm10 + +/* (y*High)_low */ + vfmsub213ps {rz-sae}, %zmm12, %zmm5, %zmm11 + +/* Tll */ + vsubps {rn-sae}, %zmm10, %zmm3, %zmm3 + +/* Tll + (R*c1h)_low */ + vaddps {rn-sae}, %zmm4, %zmm3, %zmm13 + vmovups 832+__svml_spow_data_internal_avx512(%rip), %zmm4 + +/* Zl = y*Tll + Zl */ + vfmadd213ps {rz-sae}, %zmm11, %zmm5, %zmm13 + +/* + * scaled result + * Filter very large |y*log2(x)| and scale final result for LRB2 + */ + vmovups 1408+__svml_spow_data_internal_avx512(%rip), %zmm11 + vaddps {rz-sae}, %zmm13, %zmm12, %zmm2 + vsubps {rn-sae}, %zmm12, %zmm2, %zmm14 + vaddps {rd-sae}, %zmm4, %zmm2, %zmm1 + +/* + * / + * exp2 computation starts here + */ + vreduceps $65, {sae}, %zmm2, %zmm15 + vmovups 1024+__svml_spow_data_internal_avx512(%rip), %zmm12 + vsubps {rn-sae}, %zmm14, %zmm13, %zmm3 + +/* Table lookup: The, Tle/The */ + vpermps 256+__svml_spow_data_internal_avx512(%rip), %zmm1, %zmm10 + vandps 1344+__svml_spow_data_internal_avx512(%rip), %zmm2, %zmm2 + vaddps {rn-sae}, %zmm3, %zmm15, %zmm4 + vpslld $19, %zmm1, %zmm1 + vcmpps $22, {sae}, %zmm11, %zmm2, %k3 + +/* ensure |R|<2 even for special cases */ + vandps 896+__svml_spow_data_internal_avx512(%rip), %zmm4, %zmm8 + vandps 1472+__svml_spow_data_internal_avx512(%rip), %zmm1, %zmm13 + kmovw %k3, %ecx + +/* R*The */ + vmulps {rn-sae}, %zmm8, %zmm10, %zmm9 + +/* polynomial */ + vfmadd231ps {rn-sae}, %zmm8, %zmm6, %zmm12 + vfmadd213ps {rn-sae}, %zmm7, %zmm8, %zmm12 + orl %ecx, %edx + +/* The + The*R*poly */ + vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm12 + vmulps {rn-sae}, %zmm13, %zmm12, %zmm1 + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + vmovaps %zmm1, %zmm0 + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm0, 64(%rsp) + vmovups %zmm5, 128(%rsp) + vmovups %zmm1, 192(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 192(%rsp), %zmm1 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + lea 192(%rsp,%r12,4), %rdx + + call __svml_spow_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_powf16,@function + .size __svml_powf16,.-__svml_powf16 +..LN__svml_powf16.0: + +.L_2__routine_start___spow_la_TestIntFunc_1: + + .align 16,0x90 + +__spow_la_TestIntFunc: + + + .cfi_startproc +..L53: + + movd %xmm0, %edx + andl $2147483647, %edx + lea -1065353216(%rdx), %eax + cmpl $1073741824, %eax + jae .LBL_2_5 + + + cmpl $1266679808, %edx + jge .LBL_2_7 + + + movl %edx, %ecx + andl $-8388608, %ecx + addl $8388608, %ecx + shrl $23, %ecx + shll %cl, %edx + testl $8388607, %edx + jne .LBL_2_5 + + + andl $16777215, %edx + xorl %eax, %eax + cmpl $8388608, %edx + setne %al + incl %eax + ret + +.LBL_2_5: + + xorl %eax, %eax + ret + +.LBL_2_7: + + movl $2, %eax + ret + .align 16,0x90 + + .cfi_endproc + + .type __spow_la_TestIntFunc,@function + .size __spow_la_TestIntFunc,.-__spow_la_TestIntFunc +..LN__spow_la_TestIntFunc.1: + +.L_2__routine_start___svml_spow_cout_rare_internal_2: + + .align 16,0x90 + +__svml_spow_cout_rare_internal: + + + .cfi_startproc +..L56: + + pushq %r12 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + pushq %r14 + .cfi_def_cfa_offset 32 + .cfi_offset 14, -32 + pushq %r15 + .cfi_def_cfa_offset 40 + .cfi_offset 15, -40 + pushq %rbx + .cfi_def_cfa_offset 48 + .cfi_offset 3, -48 + pushq %rbp + .cfi_def_cfa_offset 56 + .cfi_offset 6, -56 + subq $88, %rsp + .cfi_def_cfa_offset 144 + movq %rdx, %r15 + movss (%rdi), %xmm4 + pxor %xmm1, %xmm1 + movss (%rsi), %xmm3 + movaps %xmm4, %xmm2 + movl $0, 64(%rsp) + movaps %xmm3, %xmm0 + ucomiss %xmm1, %xmm4 + jp .LBL_3_2 + je .LBL_3_3 + +.LBL_3_2: + + movss %xmm4, 8(%rsp) + jmp .LBL_3_4 + +.LBL_3_3: + + movaps %xmm4, %xmm2 + addss %xmm4, %xmm2 + movss %xmm2, 8(%rsp) + +.LBL_3_4: + + pxor %xmm1, %xmm1 + ucomiss %xmm1, %xmm3 + jp .LBL_3_5 + je .LBL_3_6 + +.LBL_3_5: + + movss %xmm3, 28(%rsp) + jmp .LBL_3_7 + +.LBL_3_6: + + movaps %xmm3, %xmm0 + addss %xmm3, %xmm0 + movss %xmm0, 28(%rsp) + +.LBL_3_7: + + movb 31(%rsp), %al + xorl %ebx, %ebx + andb $-128, %al + xorl %ebp, %ebp + shrb $7, %al + testl $8388607, 8(%rsp) + movzwl 30(%rsp), %r13d + sete %bl + andl $32640, %r13d + testl $8388607, 28(%rsp) + movzwl 10(%rsp), %r14d + movzbl 11(%rsp), %r12d + sete %bpl + andl $32640, %r14d + andl $128, %r12d + shrl $7, %r13d + shrl $7, %r14d + shrl $7, %r12d + movb %al, 72(%rsp) + cmpl $255, %r13d + je .LBL_3_59 + + + movl $1, 8(%rsp) + movss %xmm2, 32(%rsp) + movss %xmm0, 40(%rsp) + movss %xmm3, 48(%rsp) + movss %xmm4, 56(%rsp) + + call __spow_la_TestIntFunc + + + movss 56(%rsp), %xmm4 + movl %eax, %edx + movss 48(%rsp), %xmm3 + movss 40(%rsp), %xmm0 + movss 32(%rsp), %xmm2 + testl %r12d, %r12d + jne .LBL_3_10 + + + cmpl $127, %r14d + je .LBL_3_56 + +.LBL_3_10: + + testl %r13d, %r13d + jne .LBL_3_12 + +.LBL_3_11: + + testl %ebp, %ebp + jne .LBL_3_38 + +.LBL_3_12: + + cmpl $255, %r14d + je .LBL_3_14 + +.LBL_3_13: + + movl $1, %eax + jmp .LBL_3_15 + +.LBL_3_14: + + xorl %eax, %eax + +.LBL_3_15: + + orl %eax, %ebx + je .LBL_3_37 + + + orl 8(%rsp), %ebp + je .LBL_3_37 + + + pxor %xmm1, %xmm1 + ucomiss %xmm1, %xmm2 + jp .LBL_3_18 + je .LBL_3_53 + +.LBL_3_18: + + ucomiss .L_2il0floatpacket.121(%rip), %xmm2 + jp .LBL_3_19 + je .LBL_3_50 + +.LBL_3_19: + + testl %eax, %eax + je .LBL_3_30 + + + cmpl $0, 8(%rsp) + je .LBL_3_30 + + + pxor %xmm0, %xmm0 + comiss %xmm0, %xmm2 + ja .LBL_3_23 + + + testl %edx, %edx + je .LBL_3_29 + +.LBL_3_23: + + lea 1484+__spow_la_CoutTab(%rip), %rax + andl %r12d, %edx + movss %xmm2, 12(%rsp) + xorl %ecx, %ecx + andb $127, 15(%rsp) + movss (%rax,%rdx,4), %xmm12 + testl %r14d, %r14d + jne .LBL_3_25 + + + movss 12(%rsp), %xmm0 + movl $-64, %ecx + mulss .L_2il0floatpacket.122(%rip), %xmm0 + movss %xmm0, 12(%rsp) + jmp .LBL_3_26 + +.LBL_3_25: + + movss 12(%rsp), %xmm0 + +.LBL_3_26: + + movzwl 14(%rsp), %edi + lea __spow_la_CoutTab(%rip), %rsi + andl $32640, %edi + pxor %xmm1, %xmm1 + shrl $7, %edi + movl 12(%rsp), %edx + shll $23, %edi + andl $8388607, %edx + movss %xmm0, 16(%rsp) + orl %edx, %edi + movzwl 18(%rsp), %eax + addl $-1060634624, %edi + andl $-32641, %eax + addl $16256, %eax + movw %ax, 18(%rsp) + sarl $23, %edi + addl %ecx, %edi + movl 16(%rsp), %ecx + andl $7864320, %ecx + addl $524288, %ecx + cvtsi2ss %edi, %xmm1 + shrl $20, %ecx + movss (%rsi,%rcx,4), %xmm4 + addl %ecx, %ecx + movss 36(%rsi,%rcx,4), %xmm13 + movaps %xmm13, %xmm7 + movss 16(%rsp), %xmm0 + addss %xmm1, %xmm7 + movaps %xmm0, %xmm6 + mulss %xmm4, %xmm6 + movss %xmm7, 20(%rsp) + movss 20(%rsp), %xmm3 + movd %xmm6, %ebx + subss %xmm3, %xmm1 + andl $1966080, %ebx + addss %xmm1, %xmm13 + addl $131072, %ebx + shrl $18, %ebx + movss 108(%rsi,%rbx,4), %xmm11 + addl %ebx, %ebx + movss 144(%rsi,%rbx,4), %xmm5 + movss %xmm13, 24(%rsp) + movaps %xmm5, %xmm14 + movss 20(%rsp), %xmm1 + addss %xmm1, %xmm14 + mulss %xmm11, %xmm6 + mulss %xmm11, %xmm4 + movd %xmm6, %ebp + movss 24(%rsp), %xmm7 + movss %xmm14, 20(%rsp) + movss 20(%rsp), %xmm3 + andl $507904, %ebp + addl $16384, %ebp + subss %xmm3, %xmm1 + shrl $15, %ebp + addss %xmm1, %xmm5 + movss 216(%rsi,%rbp,4), %xmm15 + addl %ebp, %ebp + movss 284(%rsi,%rbp,4), %xmm2 + movss %xmm5, 24(%rsp) + movaps %xmm2, %xmm13 + movss 20(%rsp), %xmm1 + movss 24(%rsp), %xmm5 + addss %xmm1, %xmm13 + mulss %xmm15, %xmm4 + movss %xmm13, 20(%rsp) + movss 20(%rsp), %xmm3 + movss .L_2il0floatpacket.124(%rip), %xmm11 + subss %xmm3, %xmm1 + addss %xmm1, %xmm2 + mulss %xmm15, %xmm6 + movaps %xmm11, %xmm15 + movaps %xmm6, %xmm3 + mulss %xmm0, %xmm15 + subss .L_2il0floatpacket.123(%rip), %xmm3 + movss %xmm2, 24(%rsp) + movss 20(%rsp), %xmm1 + movss 24(%rsp), %xmm2 + movss %xmm15, 20(%rsp) + movss 20(%rsp), %xmm13 + movss 40(%rsi,%rcx,4), %xmm9 + movss 148(%rsi,%rbx,4), %xmm8 + movss 288(%rsi,%rbp,4), %xmm10 + subss 16(%rsp), %xmm13 + movss %xmm13, 24(%rsp) + movss 20(%rsp), %xmm13 + movss 24(%rsp), %xmm14 + subss %xmm14, %xmm13 + movss %xmm13, 20(%rsp) + movss 20(%rsp), %xmm15 + subss %xmm15, %xmm0 + movss %xmm0, 24(%rsp) + movaps %xmm4, %xmm0 + mulss %xmm11, %xmm0 + movss 20(%rsp), %xmm13 + movss 24(%rsp), %xmm14 + movss %xmm0, 20(%rsp) + movss 20(%rsp), %xmm15 + subss %xmm4, %xmm15 + movss %xmm15, 24(%rsp) + movss 20(%rsp), %xmm15 + movss 24(%rsp), %xmm0 + subss %xmm0, %xmm15 + movss %xmm15, 20(%rsp) + movss 20(%rsp), %xmm0 + subss %xmm0, %xmm4 + movaps %xmm13, %xmm0 + movss %xmm4, 24(%rsp) + movss 20(%rsp), %xmm4 + mulss %xmm4, %xmm0 + mulss %xmm14, %xmm4 + subss %xmm6, %xmm0 + movaps %xmm3, %xmm6 + addss %xmm4, %xmm0 + addss %xmm1, %xmm6 + movss 24(%rsp), %xmm15 + movss %xmm6, 20(%rsp) + movss 20(%rsp), %xmm4 + mulss %xmm15, %xmm13 + subss %xmm4, %xmm1 + mulss %xmm15, %xmm14 + addss %xmm13, %xmm0 + addss %xmm3, %xmm1 + addss %xmm14, %xmm0 + movss %xmm1, 24(%rsp) + movss 20(%rsp), %xmm6 + movss %xmm6, 8(%rsp) + movzwl 10(%rsp), %eax + andl $32640, %eax + shrl $7, %eax + addl %r13d, %eax + movss 24(%rsp), %xmm4 + cmpl $265, %eax + jge .LBL_3_49 + + + cmpl $192, %eax + jg .LBL_3_40 + + + movl $1065353216, 20(%rsp) + movss 20(%rsp), %xmm0 + addss .L_2il0floatpacket.133(%rip), %xmm0 + movss %xmm0, 20(%rsp) + movss 20(%rsp), %xmm1 + mulss %xmm12, %xmm1 + movss %xmm1, (%r15) + jmp .LBL_3_39 + +.LBL_3_29: + + movl $1, 64(%rsp) + pxor %xmm0, %xmm0 + movss %xmm0, 20(%rsp) + movss 20(%rsp), %xmm2 + movss 20(%rsp), %xmm1 + divss %xmm1, %xmm2 + movss %xmm2, 20(%rsp) + movl 20(%rsp), %eax + movl %eax, (%r15) + jmp .LBL_3_39 + +.LBL_3_30: + + cmpl $127, %r14d + jge .LBL_3_34 + + + movb 72(%rsp), %al + testb %al, %al + je .LBL_3_33 + + + mulss %xmm0, %xmm0 + movss %xmm0, (%r15) + jmp .LBL_3_39 + +.LBL_3_33: + + pxor %xmm0, %xmm0 + movss %xmm0, (%r15) + jmp .LBL_3_39 + +.LBL_3_34: + + movb 72(%rsp), %al + testb %al, %al + je .LBL_3_36 + + + lea 1512+__spow_la_CoutTab(%rip), %rax + andl %r12d, %edx + movl (%rax,%rdx,4), %ecx + movl %ecx, 12(%rsp) + movl %ecx, (%r15) + jmp .LBL_3_39 + +.LBL_3_36: + + mulss %xmm2, %xmm2 + lea 1484+__spow_la_CoutTab(%rip), %rax + mulss %xmm0, %xmm2 + andl %r12d, %edx + mulss (%rax,%rdx,4), %xmm2 + movss %xmm2, (%r15) + jmp .LBL_3_39 + +.LBL_3_37: + + addss %xmm3, %xmm4 + movss %xmm4, (%r15) + jmp .LBL_3_39 + +.LBL_3_38: + + addss %xmm0, %xmm2 + movss %xmm2, 20(%rsp) + movl $1065353216, 24(%rsp) + movb 23(%rsp), %al + movb 27(%rsp), %dl + andb $-128, %al + andb $127, %dl + orb %al, %dl + movb %dl, 27(%rsp) + movss 24(%rsp), %xmm1 + movss 24(%rsp), %xmm0 + mulss %xmm0, %xmm1 + movss %xmm1, (%r15) + +.LBL_3_39: + + movl 64(%rsp), %eax + addq $88, %rsp + .cfi_def_cfa_offset 56 + .cfi_restore 6 + popq %rbp + .cfi_def_cfa_offset 48 + .cfi_restore 3 + popq %rbx + .cfi_def_cfa_offset 40 + .cfi_restore 15 + popq %r15 + .cfi_def_cfa_offset 32 + .cfi_restore 14 + popq %r14 + .cfi_def_cfa_offset 24 + .cfi_restore 13 + popq %r13 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 + .cfi_def_cfa_offset 8 + ret + .cfi_def_cfa_offset 144 + .cfi_offset 3, -48 + .cfi_offset 6, -56 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -32 + .cfi_offset 15, -40 + +.LBL_3_40: + + movss .L_2il0floatpacket.128(%rip), %xmm1 + lea 424+__spow_la_CoutTab(%rip), %rdx + addss %xmm0, %xmm3 + addss %xmm5, %xmm7 + addss %xmm4, %xmm0 + mulss %xmm3, %xmm1 + addss %xmm7, %xmm2 + addss .L_2il0floatpacket.127(%rip), %xmm1 + addss %xmm2, %xmm9 + mulss %xmm3, %xmm1 + addss %xmm9, %xmm8 + addss .L_2il0floatpacket.126(%rip), %xmm1 + addss %xmm8, %xmm10 + mulss %xmm3, %xmm1 + addss %xmm0, %xmm10 + addss .L_2il0floatpacket.125(%rip), %xmm1 + mulss %xmm3, %xmm1 + movaps %xmm10, %xmm5 + movss 8(%rsp), %xmm4 + movaps %xmm11, %xmm8 + addss %xmm1, %xmm6 + lea 20(%rsp), %rax + movss %xmm6, (%rax) + movss (%rax), %xmm0 + subss %xmm0, %xmm4 + movaps %xmm11, %xmm0 + addss %xmm1, %xmm4 + lea 24(%rsp), %rcx + movss %xmm4, (%rcx) + movss (%rax), %xmm7 + movss (%rcx), %xmm3 + addss %xmm7, %xmm5 + movss %xmm5, (%rax) + movss (%rax), %xmm6 + subss %xmm6, %xmm7 + addss %xmm10, %xmm7 + movss %xmm7, (%rcx) + movss (%rax), %xmm10 + mulss %xmm10, %xmm8 + movss (%rcx), %xmm2 + movss %xmm8, (%rax) + addss %xmm3, %xmm2 + movss (%rax), %xmm9 + lea 28(%rsp), %rbx + movss (%rbx), %xmm7 + subss %xmm10, %xmm9 + mulss %xmm7, %xmm0 + mulss (%rbx), %xmm2 + movss %xmm9, (%rcx) + movss (%rax), %xmm14 + movss (%rcx), %xmm13 + movss .L_2il0floatpacket.129(%rip), %xmm9 + subss %xmm13, %xmm14 + movss %xmm14, (%rax) + movss (%rax), %xmm15 + subss %xmm15, %xmm10 + movss %xmm10, (%rcx) + movss (%rax), %xmm8 + movss (%rcx), %xmm10 + movss %xmm0, (%rax) + movss (%rax), %xmm1 + subss (%rbx), %xmm1 + movss %xmm1, (%rcx) + movss (%rax), %xmm5 + movss (%rcx), %xmm4 + subss %xmm4, %xmm5 + movss %xmm5, (%rax) + movss (%rax), %xmm6 + subss %xmm6, %xmm7 + movss %xmm7, (%rcx) + movss (%rax), %xmm1 + movss (%rcx), %xmm15 + movaps %xmm1, %xmm0 + mulss %xmm8, %xmm0 + mulss %xmm10, %xmm1 + mulss %xmm15, %xmm8 + mulss %xmm15, %xmm10 + addss %xmm8, %xmm1 + movaps %xmm0, %xmm8 + addss %xmm1, %xmm8 + movaps %xmm8, %xmm3 + subss %xmm8, %xmm0 + addss %xmm9, %xmm3 + addss %xmm0, %xmm1 + movss %xmm3, (%rax) + movaps %xmm8, %xmm3 + movss (%rax), %xmm13 + addss %xmm1, %xmm10 + subss %xmm9, %xmm13 + addss %xmm2, %xmm10 + movss %xmm13, (%rsp) + movss (%rsp), %xmm14 + movss .L_2il0floatpacket.132(%rip), %xmm2 + subss %xmm14, %xmm3 + movss %xmm3, 4(%rsp) + movss 4(%rsp), %xmm4 + movl (%rax), %eax + movl %eax, %ebx + andl $127, %eax + addss %xmm10, %xmm4 + mulss %xmm4, %xmm2 + addl %eax, %eax + movss -4(%rdx,%rax,4), %xmm1 + shll $10, %ebx + addss .L_2il0floatpacket.131(%rip), %xmm2 + mulss %xmm4, %xmm2 + sarl $17, %ebx + addss .L_2il0floatpacket.130(%rip), %xmm2 + mulss %xmm4, %xmm2 + mulss %xmm1, %xmm2 + addss (%rdx,%rax,4), %xmm2 + movaps %xmm2, %xmm5 + addss %xmm1, %xmm5 + movss %xmm5, 12(%rsp) + movzwl 14(%rsp), %edx + movl %edx, %ecx + andl $32640, %ecx + shrl $7, %ecx + lea -127(%rbx,%rcx), %eax + cmpl $128, %eax + jge .LBL_3_48 + + + cmpl $-126, %eax + jl .LBL_3_43 + + + andl $-32641, %edx + lea 127(%rax), %eax + movzbl %al, %eax + shll $7, %eax + orl %eax, %edx + movw %dx, 14(%rsp) + movss 12(%rsp), %xmm0 + mulss %xmm12, %xmm0 + movss %xmm0, 12(%rsp) + movss %xmm0, (%r15) + jmp .LBL_3_39 + +.LBL_3_43: + + cmpl $-136, %eax + jl .LBL_3_45 + + + lea 20(%rsp), %rdx + movss %xmm5, (%rdx) + movl $1065353216, %eax + movss (%rdx), %xmm0 + addl $191, %ebx + movl %eax, 8(%rsp) + subss %xmm0, %xmm1 + shrl $16, %eax + addss %xmm1, %xmm2 + movss %xmm2, 24(%rsp) + movss (%rdx), %xmm5 + mulss %xmm5, %xmm11 + movss 24(%rsp), %xmm6 + movss %xmm11, (%rdx) + movss (%rdx), %xmm1 + movzwl %ax, %edx + subss %xmm5, %xmm1 + lea 24(%rsp), %rax + movss %xmm1, (%rax) + andl $-32641, %edx + lea 20(%rsp), %rcx + movss (%rcx), %xmm3 + movss (%rax), %xmm2 + movzbl %bl, %ebx + subss %xmm2, %xmm3 + movss %xmm3, (%rcx) + movss (%rcx), %xmm4 + shll $7, %ebx + subss %xmm4, %xmm5 + movss %xmm5, (%rax) + orl %ebx, %edx + movss (%rcx), %xmm8 + movss (%rax), %xmm14 + movw %dx, 10(%rsp) + addss %xmm6, %xmm14 + movss 8(%rsp), %xmm7 + mulss %xmm7, %xmm14 + mulss %xmm7, %xmm8 + lea 20(%rsp), %rdx + movl $8388608, (%rdx) + addss %xmm8, %xmm14 + movss (%rdx), %xmm10 + movss (%rdx), %xmm9 + mulss %xmm9, %xmm10 + mulss .L_2il0floatpacket.135(%rip), %xmm14 + movss %xmm10, (%rdx) + movss (%rdx), %xmm13 + addss %xmm13, %xmm14 + mulss %xmm14, %xmm12 + movss %xmm14, 12(%rsp) + movss %xmm12, (%r15) + jmp .LBL_3_39 + +.LBL_3_45: + + cmpl $-159, %eax + jl .LBL_3_47 + + + movl $1065353216, %eax + addl $191, %ebx + movl %eax, 8(%rsp) + shrl $16, %eax + movzwl %ax, %edx + movzbl %bl, %ebx + andl $-32641, %edx + shll $7, %ebx + orl %ebx, %edx + movw %dx, 10(%rsp) + movss 8(%rsp), %xmm0 + movss .L_2il0floatpacket.135(%rip), %xmm1 + mulss %xmm0, %xmm5 + mulss %xmm1, %xmm12 + lea 20(%rsp), %rdx + movl $8388608, (%rdx) + movss (%rdx), %xmm3 + movss (%rdx), %xmm2 + mulss %xmm2, %xmm3 + mulss %xmm12, %xmm5 + movss %xmm3, (%rdx) + movss (%rdx), %xmm4 + subss %xmm4, %xmm5 + movss %xmm5, 12(%rsp) + movss %xmm5, (%r15) + jmp .LBL_3_39 + +.LBL_3_47: + + lea 20(%rsp), %rax + movl $8388608, (%rax) + movss (%rax), %xmm1 + movss (%rax), %xmm0 + mulss %xmm0, %xmm1 + movss %xmm1, (%rax) + movss (%rax), %xmm2 + mulss %xmm2, %xmm12 + movss %xmm12, 12(%rsp) + movss %xmm12, (%r15) + jmp .LBL_3_39 + +.LBL_3_48: + + lea 20(%rsp), %rax + movl $2130706432, (%rax) + movss (%rax), %xmm1 + movss (%rax), %xmm0 + mulss %xmm0, %xmm1 + movss %xmm1, (%rax) + movss (%rax), %xmm2 + mulss %xmm2, %xmm12 + movss %xmm12, 12(%rsp) + movss %xmm12, (%r15) + jmp .LBL_3_39 + +.LBL_3_49: + + movb 11(%rsp), %al + lea 1472+__spow_la_CoutTab(%rip), %rcx + andb $-128, %al + movb 72(%rsp), %dl + shrb $7, %al + xorb %al, %dl + movzbl %dl, %ebx + movss (%rcx,%rbx,4), %xmm0 + mulss %xmm0, %xmm0 + mulss %xmm12, %xmm0 + movss %xmm0, (%r15) + jmp .LBL_3_39 + +.LBL_3_50: + + testl %edx, %edx + jne .LBL_3_52 + + + cmpl $0, 8(%rsp) + jne .LBL_3_19 + +.LBL_3_52: + + lea 1484+__spow_la_CoutTab(%rip), %rax + andl $1, %edx + movl (%rax,%rdx,4), %ecx + movl %ecx, (%r15) + jmp .LBL_3_39 + +.LBL_3_53: + + movb 72(%rsp), %al + mulss %xmm2, %xmm2 + testb %al, %al + je .LBL_3_55 + + + lea 1484+__spow_la_CoutTab(%rip), %rax + andl %r12d, %edx + movl $1, 64(%rsp) + movss (%rax,%rdx,4), %xmm0 + divss %xmm2, %xmm0 + movss %xmm0, (%r15) + jmp .LBL_3_39 + +.LBL_3_55: + + lea 1484+__spow_la_CoutTab(%rip), %rax + andl %r12d, %edx + movss (%rax,%rdx,4), %xmm0 + mulss %xmm2, %xmm0 + movss %xmm0, (%r15) + jmp .LBL_3_39 + +.LBL_3_56: + + testl %ebx, %ebx + jne .LBL_3_38 + + + testl %r13d, %r13d + jne .LBL_3_13 + jmp .LBL_3_11 + +.LBL_3_59: + + movl $0, 8(%rsp) + movss %xmm2, 32(%rsp) + movss %xmm0, 40(%rsp) + movss %xmm3, 48(%rsp) + movss %xmm4, 56(%rsp) + + call __spow_la_TestIntFunc + + + movss 56(%rsp), %xmm4 + movl %eax, %edx + movss 48(%rsp), %xmm3 + movss 40(%rsp), %xmm0 + movss 32(%rsp), %xmm2 + testl %r12d, %r12d + jne .LBL_3_12 + + + cmpl $127, %r14d + jne .LBL_3_12 + + + testl %ebx, %ebx + je .LBL_3_13 + jmp .LBL_3_38 + .align 16,0x90 + + .cfi_endproc + + .type __svml_spow_cout_rare_internal,@function + .size __svml_spow_cout_rare_internal,.-__svml_spow_cout_rare_internal +..LN__svml_spow_cout_rare_internal.2: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_spow_data_internal_avx512: + .long 0 + .long 3174420480 + .long 3182632960 + .long 3187958784 + .long 3190685696 + .long 3193338880 + .long 3195920384 + .long 3197247488 + .long 3198473216 + .long 3199668736 + .long 3200835072 + .long 3201974272 + .long 3203086848 + .long 3204174848 + .long 3204843520 + .long 3205364224 + .long 1054113792 + .long 1053115392 + .long 1052137472 + .long 1051179008 + .long 1050238976 + .long 1049316864 + .long 1048248320 + .long 1046471680 + .long 1044726784 + .long 1043013632 + .long 1041329152 + .long 1039161344 + .long 1035907072 + .long 1032706048 + .long 1027317760 + .long 1018830848 + .long 0 + .long 3067311503 + .long 890262383 + .long 916311190 + .long 3058814943 + .long 914835756 + .long 3056977939 + .long 3052757441 + .long 905348701 + .long 921801496 + .long 900652061 + .long 916473404 + .long 3063873943 + .long 3048020321 + .long 3055557319 + .long 921573027 + .long 3050426335 + .long 918574590 + .long 913737309 + .long 3045697063 + .long 3029223305 + .long 866568163 + .long 3063765991 + .long 3057827840 + .long 910185982 + .long 3062847489 + .long 917965485 + .long 903301016 + .long 882039287 + .long 910858241 + .long 3059117133 + .long 3029061382 + .long 1065353216 + .long 1065724611 + .long 1066112450 + .long 1066517459 + .long 1066940400 + .long 1067382066 + .long 1067843287 + .long 1068324927 + .long 1068827891 + .long 1069353124 + .long 1069901610 + .long 1070474380 + .long 1071072509 + .long 1071697119 + .long 1072349383 + .long 1073030525 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 1049872133 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 3199775725 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 1056323663 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 3208161851 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 849703116 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 1228933104 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 3221225471 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1030247627 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1047916908 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 1060205090 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 124 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 60 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 1123745792 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .type __svml_spow_data_internal_avx512,@object + .size __svml_spow_data_internal_avx512,1536 + .align 32 +__spow_la_CoutTab: + .long 1065353216 + .long 1063518208 + .long 1061945344 + .long 1060765696 + .long 1059717120 + .long 1058930688 + .long 1058144256 + .long 1057488896 + .long 1056964608 + .long 0 + .long 0 + .long 1043013120 + .long 912347133 + .long 1051178752 + .long 920491638 + .long 1055650560 + .long 910207939 + .long 3201407744 + .long 3065009147 + .long 3197864192 + .long 3046757530 + .long 3192020992 + .long 3064938684 + .long 3182631936 + .long 3069048210 + .long 0 + .long 0 + .long 1065353216 + .long 1064828928 + .long 1064304640 + .long 1066008576 + .long 1065877504 + .long 1065746432 + .long 1065615360 + .long 1065484288 + .long 1065353216 + .long 0 + .long 0 + .long 1027315712 + .long 915720665 + .long 1035907072 + .long 882039287 + .long 3185459200 + .long 3062137179 + .long 3182631936 + .long 3069048210 + .long 3179763712 + .long 3059908234 + .long 3174420480 + .long 3067311503 + .long 3166121984 + .long 3066774241 + .long 0 + .long 0 + .long 1069056000 + .long 1069006848 + .long 1068957696 + .long 1068908544 + .long 1068875776 + .long 1069318144 + .long 1069301760 + .long 1069268992 + .long 1069252608 + .long 1069219840 + .long 1069203456 + .long 1069170688 + .long 1069154304 + .long 1069121536 + .long 1069105152 + .long 1069072384 + .long 1069056000 + .long 0 + .long 0 + .long 1002471424 + .long 906080490 + .long 1010884608 + .long 916991201 + .long 1016135680 + .long 905081895 + .long 1018261504 + .long 918286540 + .long 3170725888 + .long 3067774196 + .long 3169697792 + .long 3068476631 + .long 3167637504 + .long 3069858259 + .long 3166609408 + .long 3020376912 + .long 3164540928 + .long 3039629966 + .long 3163504640 + .long 3043319364 + .long 3160350720 + .long 3046704089 + .long 3158269952 + .long 3047249178 + .long 3154083840 + .long 3046609959 + .long 3149905920 + .long 3045301896 + .long 3137339392 + .long 3034784887 + .long 0 + .long 0 + .long 1065353216 + .long 0 + .long 1065398766 + .long 3014665830 + .long 1065444562 + .long 2982428624 + .long 1065490608 + .long 3015478276 + .long 1065536902 + .long 865643564 + .long 1065583450 + .long 3014725705 + .long 1065630248 + .long 868461790 + .long 1065677302 + .long 858550072 + .long 1065724612 + .long 3013096376 + .long 1065772178 + .long 3013897664 + .long 1065820002 + .long 3008545510 + .long 1065868086 + .long 3011512679 + .long 1065916430 + .long 864064219 + .long 1065965038 + .long 819487640 + .long 1066013910 + .long 3012212369 + .long 1066063046 + .long 856316133 + .long 1066112450 + .long 2992679841 + .long 1066162122 + .long 3001970243 + .long 1066212064 + .long 3013902756 + .long 1066262276 + .long 847285146 + .long 1066312762 + .long 3010032741 + .long 1066363522 + .long 3018332471 + .long 1066414556 + .long 856041677 + .long 1066465868 + .long 864808677 + .long 1066517460 + .long 3012318446 + .long 1066569330 + .long 863709796 + .long 1066621484 + .long 3016813593 + .long 1066673920 + .long 3018872036 + .long 1066726640 + .long 3006136850 + .long 1066779646 + .long 864474828 + .long 1066832942 + .long 3016286184 + .long 1066886526 + .long 3015052933 + .long 1066940400 + .long 857938801 + .long 1066994568 + .long 2993474036 + .long 1067049030 + .long 3009003152 + .long 1067103786 + .long 872191232 + .long 1067158842 + .long 3003929955 + .long 1067214196 + .long 3013071165 + .long 1067269850 + .long 3006375425 + .long 1067325806 + .long 843377209 + .long 1067382066 + .long 859906882 + .long 1067438632 + .long 848662531 + .long 1067495506 + .long 3018868367 + .long 1067552686 + .long 868910405 + .long 1067610180 + .long 3019699127 + .long 1067667984 + .long 3013023741 + .long 1067726102 + .long 3005475891 + .long 1067784536 + .long 3010626242 + .long 1067843286 + .long 866758993 + .long 1067902356 + .long 869265128 + .long 1067961748 + .long 3004575030 + .long 1068021462 + .long 3018425550 + .long 1068081498 + .long 867494524 + .long 1068141862 + .long 858118433 + .long 1068202554 + .long 3004476802 + .long 1068263574 + .long 866434624 + .long 1068324926 + .long 870990497 + .long 1068386612 + .long 858100843 + .long 1068448632 + .long 867002634 + .long 1068510990 + .long 3000050815 + .long 1068573686 + .long 3011271336 + .long 1068636722 + .long 3006477262 + .long 1068700100 + .long 840255625 + .long 1068763822 + .long 866280780 + .long 1068827892 + .long 3016492578 + .long 1068892308 + .long 3006218836 + .long 1068957074 + .long 2993076596 + .long 1069022192 + .long 3000356208 + .long 1069087664 + .long 3015220484 + .long 1069153490 + .long 856315927 + .long 1069219674 + .long 867308350 + .long 1069286218 + .long 863888852 + .long 1069353124 + .long 3007401960 + .long 1069420392 + .long 832069785 + .long 1069488026 + .long 3004369690 + .long 1069556026 + .long 866250961 + .long 1069624396 + .long 868902513 + .long 1069693138 + .long 851736822 + .long 1069762252 + .long 869934231 + .long 1069831742 + .long 869028661 + .long 1069901610 + .long 839559223 + .long 1069971856 + .long 867543588 + .long 1070042484 + .long 868789178 + .long 1070113496 + .long 859381756 + .long 1070184894 + .long 3010667426 + .long 1070256678 + .long 859604257 + .long 1070328852 + .long 872346226 + .long 1070401420 + .long 3010682756 + .long 1070474380 + .long 841546788 + .long 1070547736 + .long 869210393 + .long 1070621492 + .long 2996061011 + .long 1070695648 + .long 3013455510 + .long 1070770206 + .long 3009158570 + .long 1070845168 + .long 865699227 + .long 1070920538 + .long 866897902 + .long 1070996318 + .long 2955948569 + .long 1071072508 + .long 868931229 + .long 1071149114 + .long 3014890061 + .long 1071226134 + .long 3002473793 + .long 1071303572 + .long 861820308 + .long 1071381432 + .long 3008383516 + .long 1071459714 + .long 3010850715 + .long 1071538420 + .long 864181775 + .long 1071617554 + .long 870234352 + .long 1071697118 + .long 871115413 + .long 1071777114 + .long 872414852 + .long 1071857546 + .long 3012378998 + .long 1071938412 + .long 866137918 + .long 1072019718 + .long 870808707 + .long 1072101466 + .long 866840096 + .long 1072183658 + .long 857766040 + .long 1072266296 + .long 855693471 + .long 1072349382 + .long 870833444 + .long 1072432920 + .long 867585053 + .long 1072516912 + .long 846646433 + .long 1072601360 + .long 3008357562 + .long 1072686266 + .long 3007858250 + .long 1072771632 + .long 866626825 + .long 1072857464 + .long 3015943680 + .long 1072943760 + .long 2995197552 + .long 1073030526 + .long 3018513273 + .long 1073117762 + .long 3012791488 + .long 1073205472 + .long 3012359471 + .long 1073293658 + .long 3003728983 + .long 1073382322 + .long 870019626 + .long 1073471470 + .long 3012762127 + .long 1073561100 + .long 835668076 + .long 1073651218 + .long 3013837936 + .long 980050793 + .long 3199320925 + .long 1042575209 + .long 3182108321 + .long 1060205080 + .long 1047920112 + .long 1029920839 + .long 2130706432 + .long 8388608 + .long 0 + .long 1065353216 + .long 3212836864 + .long 1203765248 + .long 1069056000 + .long 1166018560 + .long 1602224128 + .long 528482304 + .long 0 + .long 2147483648 + .type __spow_la_CoutTab,@object + .size __spow_la_CoutTab,1520 + .align 4 +.L_2il0floatpacket.121: + .long 0xbf800000 + .type .L_2il0floatpacket.121,@object + .size .L_2il0floatpacket.121,4 + .align 4 +.L_2il0floatpacket.122: + .long 0x5f800000 + .type .L_2il0floatpacket.122,@object + .size .L_2il0floatpacket.122,4 + .align 4 +.L_2il0floatpacket.123: + .long 0x3fb88000 + .type .L_2il0floatpacket.123,@object + .size .L_2il0floatpacket.123,4 + .align 4 +.L_2il0floatpacket.124: + .long 0x45800800 + .type .L_2il0floatpacket.124,@object + .size .L_2il0floatpacket.124,4 + .align 4 +.L_2il0floatpacket.125: + .long 0x3a6a6369 + .type .L_2il0floatpacket.125,@object + .size .L_2il0floatpacket.125,4 + .align 4 +.L_2il0floatpacket.126: + .long 0xbeb1c35d + .type .L_2il0floatpacket.126,@object + .size .L_2il0floatpacket.126,4 + .align 4 +.L_2il0floatpacket.127: + .long 0x3e246f69 + .type .L_2il0floatpacket.127,@object + .size .L_2il0floatpacket.127,4 + .align 4 +.L_2il0floatpacket.128: + .long 0xbdab1ea1 + .type .L_2il0floatpacket.128,@object + .size .L_2il0floatpacket.128,4 + .align 4 +.L_2il0floatpacket.129: + .long 0x47c00000 + .type .L_2il0floatpacket.129,@object + .size .L_2il0floatpacket.129,4 + .align 4 +.L_2il0floatpacket.130: + .long 0x3f317218 + .type .L_2il0floatpacket.130,@object + .size .L_2il0floatpacket.130,4 + .align 4 +.L_2il0floatpacket.131: + .long 0x3e75fdf0 + .type .L_2il0floatpacket.131,@object + .size .L_2il0floatpacket.131,4 + .align 4 +.L_2il0floatpacket.132: + .long 0x3d635847 + .type .L_2il0floatpacket.132,@object + .size .L_2il0floatpacket.132,4 + .align 4 +.L_2il0floatpacket.133: + .long 0x00800000 + .type .L_2il0floatpacket.133,@object + .size .L_2il0floatpacket.133,4 + .align 4 +.L_2il0floatpacket.134: + .long 0x7f000000 + .type .L_2il0floatpacket.134,@object + .size .L_2il0floatpacket.134,4 + .align 4 +.L_2il0floatpacket.135: + .long 0x1f800000 + .type .L_2il0floatpacket.135,@object + .size .L_2il0floatpacket.135,4 + .align 4 +.L_2il0floatpacket.136: + .long 0x3f800000 + .type .L_2il0floatpacket.136,@object + .size .L_2il0floatpacket.136,4 diff --git a/numpy/core/src/umath/svml/svml_z0_sin_d_la.s b/numpy/core/src/umath/svml/svml_z0_sin_d_la.s new file mode 100644 index 000000000000..fcd28895f9c1 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_sin_d_la.s @@ -0,0 +1,17544 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * ( low accuracy ( < 4ulp ) or enhanced performance ( half of correct mantissa ) implementation ) + * + * Argument representation: + * arg = N*Pi + R + * + * Result calculation: + * sin(arg) = sin(N*Pi + R) = (-1)^N * sin(R) + * sin(R) is approximated by corresponding polynomial + * + */ + + + .text +.L_2__routine_start___svml_sin8_z0_0: + + .align 16,0x90 + .globl __svml_sin8 + +__svml_sin8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + xorl %edx, %edx + +/* start arg. reduction */ + vmovups 128+__svml_dsin_data_internal(%rip), %zmm3 + vmovups 192+__svml_dsin_data_internal(%rip), %zmm9 + vmovups 640+__svml_dsin_data_internal(%rip), %zmm7 + vmovups 704+__svml_dsin_data_internal(%rip), %zmm5 + vmovups 1216+__svml_dsin_data_internal(%rip), %zmm8 + vmovups 1088+__svml_dsin_data_internal(%rip), %zmm10 + vmovups 1024+__svml_dsin_data_internal(%rip), %zmm11 + vmovups 768+__svml_dsin_data_internal(%rip), %zmm6 + vmovups 960+__svml_dsin_data_internal(%rip), %zmm12 + vmovups 320+__svml_dsin_data_internal(%rip), %zmm4 + vmovups 896+__svml_dsin_data_internal(%rip), %zmm13 + vmovups 64+__svml_dsin_data_internal(%rip), %zmm14 + vmovaps %zmm0, %zmm2 + vfmadd213pd {rn-sae}, %zmm9, %zmm2, %zmm3 + vcmppd $0, {sae}, %zmm4, %zmm2, %k1 + vpsllq $63, %zmm3, %zmm0 + +/* dN */ + vsubpd {rn-sae}, %zmm9, %zmm3, %zmm1 + vandpd __svml_dsin_data_internal(%rip), %zmm2, %zmm9 + vxorpd %zmm2, %zmm0, %zmm0{%k1} + vfnmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm7 + vmovups 1152+__svml_dsin_data_internal(%rip), %zmm3 + vcmppd $22, {sae}, %zmm14, %zmm9, %k1 + vfnmadd231pd {rn-sae}, %zmm1, %zmm5, %zmm7 + +/* will branch if long arg. reduction needed */ + kortestw %k1, %k1 + vmulpd {rn-sae}, %zmm7, %zmm7, %zmm15 + vfnmadd213pd {rn-sae}, %zmm7, %zmm6, %zmm1 + vfmadd231pd {rn-sae}, %zmm15, %zmm8, %zmm3 + vmulpd {rn-sae}, %zmm1, %zmm15, %zmm8 + vfmadd213pd {rn-sae}, %zmm10, %zmm15, %zmm3 + vfmadd213pd {rn-sae}, %zmm11, %zmm15, %zmm3 + vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm3 + vfmadd213pd {rn-sae}, %zmm13, %zmm15, %zmm3 + +/* mask will be used to decide whether long arg. reduction is needed */ + vmovups 832+__svml_dsin_data_internal(%rip), %zmm13 + vfmadd213pd {rn-sae}, %zmm13, %zmm15, %zmm3 + vfmadd213pd {rn-sae}, %zmm1, %zmm8, %zmm3 + vxorpd %zmm0, %zmm3, %zmm0 + jne .LBL_1_12 + +.LBL_1_2: + + testl %edx, %edx + jne .LBL_1_4 + +.LBL_1_3: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_4: + + vmovups %zmm2, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_3 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_8: + + btl %r12d, %r13d + jc .LBL_1_11 + +.LBL_1_9: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_8 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_3 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_11: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dsin_cout_rare_internal + jmp .LBL_1_9 + .cfi_restore 4 + .cfi_restore 5 + .cfi_restore 12 + .cfi_restore 13 + .cfi_restore 122 + .cfi_restore 123 + .cfi_restore 124 + .cfi_restore 125 + +.LBL_1_12: + + +/* ............Check for Inf and NaNs................. */ + vmovups 16512+__svml_dsin_data_internal_ha(%rip), %zmm1 + +/* + * Get the (2^a / 2pi) mod 1 values from the table. + * Because VLANG doesn't have L-type gather, we need a trivial cast + */ + lea __svml_dsin_reduction_data_internal(%rip), %rax + vmovups %zmm2, 64(%rsp) + vmovups %zmm0, (%rsp) + vandpd %zmm9, %zmm1, %zmm6 + vxorpd %zmm2, %zmm9, %zmm8 + vpbroadcastq .L_2il0floatpacket.26(%rip), %zmm11 + vcmppd $4, {sae}, %zmm1, %zmm6, %k2 + vmovups %zmm8, 128(%rsp) + vmovaps %zmm11, %zmm5 + +/* + * The output is _VRES_Z (high) + _VRES_E (low), and the integer part is _VRES_IND + * Now resume the original code. + * ..................... Table look-up ........................ + */ + lea __svml_dsin_data_internal_ha(%rip), %rcx + vpandq .L_2il0floatpacket.27(%rip){1to8}, %zmm9, %zmm4 + vpandnq %zmm6, %zmm6, %zmm5{%k2} + vpsrlq $52, %zmm4, %zmm3 + vcmppd $3, {sae}, %zmm5, %zmm5, %k0 + vpsllq $1, %zmm3, %zmm15 + +/* + * Break the P_xxx and m into 32-bit chunks ready for + * the long multiplication via 32x32->64 multiplications + */ + vpbroadcastq .L_2il0floatpacket.30(%rip), %zmm6 + kxnorw %k0, %k0, %k3 + kxnorw %k0, %k0, %k2 + kmovw %k0, %edx + vpaddq %zmm3, %zmm15, %zmm2 + vpsllq $3, %zmm2, %zmm14 + vpmovqd %zmm14, %ymm12 + vpxord %zmm1, %zmm1, %zmm1 + vgatherdpd (%rax,%ymm12), %zmm1{%k3} + kxnorw %k0, %k0, %k3 + vpsrlq $32, %zmm1, %zmm7 + vpxord %zmm5, %zmm5, %zmm5 + vpxord %zmm4, %zmm4, %zmm4 + vgatherdpd 8(%rax,%ymm12), %zmm5{%k2} + vgatherdpd 16(%rax,%ymm12), %zmm4{%k3} + vpsrlq $32, %zmm5, %zmm10 + vpsrlq $32, %zmm4, %zmm13 + +/* + * Also get the significand as an integer + * NB: adding in the integer bit is wrong for denorms! + * To make this work for denorms we should do something slightly different + */ + vpandq .L_2il0floatpacket.28(%rip){1to8}, %zmm9, %zmm8 + vpaddq .L_2il0floatpacket.29(%rip){1to8}, %zmm8, %zmm15 + vpsrlq $32, %zmm15, %zmm8 + vpmullq %zmm10, %zmm8, %zmm3 + vpandq %zmm6, %zmm1, %zmm0 + vpandq %zmm6, %zmm5, %zmm12 + vpandq %zmm6, %zmm4, %zmm5 + vpandq %zmm6, %zmm15, %zmm14 + +/* Now do the big multiplication and carry propagation */ + vpmullq %zmm0, %zmm8, %zmm4 + vpmullq %zmm12, %zmm8, %zmm2 + vpmullq %zmm13, %zmm8, %zmm1 + vpmullq %zmm5, %zmm8, %zmm8 + vpmullq %zmm0, %zmm14, %zmm5 + vpmullq %zmm12, %zmm14, %zmm0 + vpmullq %zmm13, %zmm14, %zmm13 + vpmullq %zmm7, %zmm14, %zmm7 + vpmullq %zmm10, %zmm14, %zmm10 + vpsrlq $32, %zmm13, %zmm14 + vpsrlq $32, %zmm0, %zmm13 + vpsrlq $32, %zmm5, %zmm12 + vpsrlq $32, %zmm10, %zmm15 + vpaddq %zmm14, %zmm1, %zmm1 + vpaddq %zmm13, %zmm2, %zmm14 + vpaddq %zmm12, %zmm4, %zmm2 + vpaddq %zmm15, %zmm3, %zmm13 + vpandq %zmm6, %zmm7, %zmm7 + vpaddq %zmm2, %zmm7, %zmm4 + vpsrlq $32, %zmm8, %zmm2 + vpandq %zmm6, %zmm0, %zmm0 + vpaddq %zmm1, %zmm0, %zmm1 + vpaddq %zmm1, %zmm2, %zmm15 + vpsrlq $32, %zmm15, %zmm8 + vpandq %zmm6, %zmm10, %zmm10 + vpaddq %zmm14, %zmm10, %zmm0 + vpaddq %zmm0, %zmm8, %zmm12 + +/* + * Now round at the 2^-9 bit position for reduction mod pi/2^8 + * instead of the original 2pi (but still with the same 2pi scaling). + * Use a shifter of 2^43 + 2^42. + * The N we get is our final version; it has an offset of + * 2^9 because of the implicit integer bit, and anyway for negative + * starting value it's a 2s complement thing. But we need to mask + * off the exponent part anyway so it's fine. + */ + vpbroadcastq .L_2il0floatpacket.33(%rip), %zmm0 + vpsrlq $32, %zmm12, %zmm7 + vpandq %zmm6, %zmm5, %zmm3 + vpaddq %zmm13, %zmm3, %zmm5 + vpaddq %zmm5, %zmm7, %zmm3 + vpsllq $32, %zmm12, %zmm7 + vpsrlq $32, %zmm3, %zmm10 + vpaddq %zmm4, %zmm10, %zmm2 + +/* Assemble reduced argument from the pieces */ + vpandq %zmm6, %zmm15, %zmm13 + vpandq %zmm6, %zmm3, %zmm8 + vpsllq $32, %zmm2, %zmm6 + vpaddq %zmm13, %zmm7, %zmm4 + +/* + * If the magnitude of the input is <= 2^-20, then + * just pass through the input, since no reduction will be needed and + * the main path will only work accurately if the reduced argument is + * about >= 2^-70 (which it is for all large pi multiples) + */ + vpbroadcastq .L_2il0floatpacket.42(%rip), %zmm13 + vpaddq %zmm8, %zmm6, %zmm15 + vpsrlq $12, %zmm15, %zmm1 + +/* + * We want to incorporate the original sign now too. + * Do it here for convenience in getting the right N value, + * though we could wait right to the end if we were prepared + * to modify the sign of N later too. + * So get the appropriate sign mask now (or sooner). + */ + vpandq .L_2il0floatpacket.31(%rip){1to8}, %zmm9, %zmm3 + +/* + * Create floating-point high part, implicitly adding integer bit 1 + * Incorporate overall sign at this stage too. + */ + vpxorq .L_2il0floatpacket.32(%rip){1to8}, %zmm3, %zmm6 + vporq %zmm6, %zmm1, %zmm5 + vaddpd {rn-sae}, %zmm5, %zmm0, %zmm2 + vsubpd {rn-sae}, %zmm0, %zmm2, %zmm10 + vsubpd {rn-sae}, %zmm10, %zmm5, %zmm10 + vpandq .L_2il0floatpacket.36(%rip){1to8}, %zmm4, %zmm12 + vpsllq $28, %zmm12, %zmm14 + vpsrlq $24, %zmm4, %zmm4 + vpandq .L_2il0floatpacket.38(%rip){1to8}, %zmm15, %zmm15 + +/* + * Create floating-point low and medium parts, respectively + * lo_23, ... lo_0, 0, ..., 0 + * hi_11, ... hi_0, lo_63, ..., lo_24 + * then subtract off the implicitly added integer bits, + * 2^-104 and 2^-52, respectively. + * Put the original sign into all of them at this stage. + */ + vpxorq .L_2il0floatpacket.35(%rip){1to8}, %zmm3, %zmm7 + vpxorq .L_2il0floatpacket.37(%rip){1to8}, %zmm3, %zmm1 + vpsllq $40, %zmm15, %zmm3 + vporq %zmm7, %zmm14, %zmm8 + vsubpd {rn-sae}, %zmm7, %zmm8, %zmm5 + vandpd .L_2il0floatpacket.41(%rip){1to8}, %zmm9, %zmm14 + vcmppd $22, {sae}, %zmm13, %zmm14, %k3 + vcmppd $26, {sae}, %zmm13, %zmm14, %k2 + vporq %zmm4, %zmm3, %zmm8 + vporq %zmm1, %zmm8, %zmm7 + vsubpd {rn-sae}, %zmm1, %zmm7, %zmm6 + +/* + * Now multiply those numbers all by 2 pi, reasonably accurately. + * (RHi + RLo) * (pi_lead + pi_trail) ~= + * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) + */ + vpbroadcastq .L_2il0floatpacket.39(%rip), %zmm4 + +/* Now add them up into 2 reasonably aligned pieces */ + vaddpd {rn-sae}, %zmm6, %zmm10, %zmm12 + vmulpd {rn-sae}, %zmm4, %zmm12, %zmm15 + vsubpd {rn-sae}, %zmm12, %zmm10, %zmm10 + vmovaps %zmm4, %zmm3 + vfmsub213pd {rn-sae}, %zmm15, %zmm12, %zmm3 + vmovaps %zmm11, %zmm1 + +/* Grab our final N value as an integer, appropriately masked mod 2^9 */ + vpandq .L_2il0floatpacket.34(%rip){1to8}, %zmm2, %zmm0 + vaddpd {rn-sae}, %zmm10, %zmm6, %zmm2 + vaddpd {rn-sae}, %zmm5, %zmm2, %zmm6 + vpbroadcastq .L_2il0floatpacket.40(%rip), %zmm5 + vfmadd213pd {rn-sae}, %zmm3, %zmm5, %zmm12 + vfmadd213pd {rn-sae}, %zmm12, %zmm4, %zmm6 + vmovups 16960+__svml_dsin_data_internal_ha(%rip), %zmm4 + vpandnq %zmm14, %zmm14, %zmm11{%k3} + vandpd %zmm9, %zmm11, %zmm9 + vpsllq $5, %zmm0, %zmm11 + kxnorw %k0, %k0, %k3 + vpandnq %zmm14, %zmm14, %zmm1{%k2} + vandpd %zmm15, %zmm1, %zmm8 + vandpd %zmm6, %zmm1, %zmm1 + vpmovqd %zmm11, %ymm6 + vorpd %zmm8, %zmm9, %zmm7 + vmovups 17216+__svml_dsin_data_internal_ha(%rip), %zmm14 + vmovups 17088+__svml_dsin_data_internal_ha(%rip), %zmm15 + +/* ............... Polynomial approximation ................... */ + vmulpd {rn-sae}, %zmm7, %zmm7, %zmm9 + kxnorw %k0, %k0, %k2 + +/* ................. Reconstruction: res_hi ................... */ + vmovaps %zmm7, %zmm0 + vmovaps %zmm7, %zmm8 + vpxord %zmm10, %zmm10, %zmm10 + vgatherdpd (%rcx,%ymm6), %zmm10{%k2} + kxnorw %k0, %k0, %k2 + vpxord %zmm12, %zmm12, %zmm12 + vpxord %zmm11, %zmm11, %zmm11 + vgatherdpd 8(%rcx,%ymm6), %zmm12{%k3} + vgatherdpd 16(%rcx,%ymm6), %zmm11{%k2} + kxnorw %k0, %k0, %k3 + vfmadd213pd {rn-sae}, %zmm11, %zmm12, %zmm0 + vfmadd132pd {rn-sae}, %zmm10, %zmm0, %zmm8 + +/* ................. Reconstruction: res_lo ................... */ + vsubpd {rn-sae}, %zmm0, %zmm11, %zmm3 + vsubpd {rn-sae}, %zmm8, %zmm0, %zmm2 + vmovups 17024+__svml_dsin_data_internal_ha(%rip), %zmm0 + vfmadd231pd {rn-sae}, %zmm7, %zmm12, %zmm3 + vfmadd231pd {rn-sae}, %zmm10, %zmm7, %zmm2 + vfmadd231pd {rn-sae}, %zmm9, %zmm0, %zmm4 + vaddpd {rn-sae}, %zmm3, %zmm2, %zmm13 + vaddpd {rn-sae}, %zmm12, %zmm10, %zmm2 + vmulpd {rn-sae}, %zmm9, %zmm4, %zmm5 + vmulpd {rn-sae}, %zmm7, %zmm5, %zmm0 + +/* ................. Reconstruction: res_lo+corr ................... */ + vfnmadd213pd {rn-sae}, %zmm2, %zmm11, %zmm7 + vfmadd213pd {rn-sae}, %zmm13, %zmm2, %zmm0 + vmovups 17152+__svml_dsin_data_internal_ha(%rip), %zmm13 + vmovups 64(%rsp), %zmm2 + vfmadd231pd {rn-sae}, %zmm9, %zmm14, %zmm13 + vfmadd213pd {rn-sae}, %zmm15, %zmm9, %zmm13 + vmulpd {rn-sae}, %zmm9, %zmm13, %zmm3 + vfmadd213pd {rn-sae}, %zmm0, %zmm11, %zmm3 + vmovups (%rsp), %zmm0 + vpxord %zmm11, %zmm11, %zmm11 + vgatherdpd 24(%rcx,%ymm6), %zmm11{%k3} + vfmadd213pd {rn-sae}, %zmm11, %zmm7, %zmm1 + vaddpd {rn-sae}, %zmm1, %zmm3, %zmm7 + +/* .................. Final reconstruction ................... */ + vaddpd {rn-sae}, %zmm7, %zmm8, %zmm9 + vxorpd 128(%rsp), %zmm9, %zmm0{%k1} + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_sin8,@function + .size __svml_sin8,.-__svml_sin8 +..LN__svml_sin8.0: + +.L_2__routine_start___svml_dsin_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dsin_cout_rare_internal: + + + .cfi_startproc +..L67: + + movzwl 6(%rdi), %eax + andl $32752, %eax + movsd (%rdi), %xmm1 + movb 7(%rdi), %dl + andb $127, %dl + movsd %xmm1, -8(%rsp) + cmpl $32752, %eax + jne .LBL_2_6 + + + cmpl $0, -8(%rsp) + jne .LBL_2_5 + + + movb %dl, -1(%rsp) + cmpl $2146435072, -4(%rsp) + jne .LBL_2_5 + + + movsd __dsin_la_CoutTab(%rip), %xmm0 + movl $1, %eax + mulsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + ret + +.LBL_2_5: + + mulsd %xmm1, %xmm1 + xorl %eax, %eax + movsd %xmm1, (%rsi) + ret + +.LBL_2_6: + + xorl %eax, %eax + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dsin_cout_rare_internal,@function + .size __svml_dsin_cout_rare_internal,.-__svml_dsin_cout_rare_internal +..LN__svml_dsin_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dsin_data_internal: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 1097859072 + .long 0 + .long 1097859072 + .long 0 + .long 1097859072 + .long 0 + .long 1097859072 + .long 0 + .long 1097859072 + .long 0 + .long 1097859072 + .long 0 + .long 1097859072 + .long 0 + .long 1097859072 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 1841940611 + .long 1070882608 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 1073741824 + .long 1074340347 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 0 + .long 1048855597 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 2147483648 + .long 1023952536 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1880851354 + .long 998820945 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 1413754136 + .long 1074340347 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 856972294 + .long 1017226790 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 688016905 + .long 962338001 + .long 1431655592 + .long 3217380693 + .long 1431655592 + .long 3217380693 + .long 1431655592 + .long 3217380693 + .long 1431655592 + .long 3217380693 + .long 1431655592 + .long 3217380693 + .long 1431655592 + .long 3217380693 + .long 1431655592 + .long 3217380693 + .long 1431655592 + .long 3217380693 + .long 286303603 + .long 1065423121 + .long 286303603 + .long 1065423121 + .long 286303603 + .long 1065423121 + .long 286303603 + .long 1065423121 + .long 286303603 + .long 1065423121 + .long 286303603 + .long 1065423121 + .long 286303603 + .long 1065423121 + .long 286303603 + .long 1065423121 + .long 430332381 + .long 3207201184 + .long 430332381 + .long 3207201184 + .long 430332381 + .long 3207201184 + .long 430332381 + .long 3207201184 + .long 430332381 + .long 3207201184 + .long 430332381 + .long 3207201184 + .long 430332381 + .long 3207201184 + .long 430332381 + .long 3207201184 + .long 2154487066 + .long 1053236707 + .long 2154487066 + .long 1053236707 + .long 2154487066 + .long 1053236707 + .long 2154487066 + .long 1053236707 + .long 2154487066 + .long 1053236707 + .long 2154487066 + .long 1053236707 + .long 2154487066 + .long 1053236707 + .long 2154487066 + .long 1053236707 + .long 1521109587 + .long 3193628213 + .long 1521109587 + .long 3193628213 + .long 1521109587 + .long 3193628213 + .long 1521109587 + .long 3193628213 + .long 1521109587 + .long 3193628213 + .long 1521109587 + .long 3193628213 + .long 1521109587 + .long 3193628213 + .long 1521109587 + .long 3193628213 + .long 3993098302 + .long 1038487147 + .long 3993098302 + .long 1038487147 + .long 3993098302 + .long 1038487147 + .long 3993098302 + .long 1038487147 + .long 3993098302 + .long 1038487147 + .long 3993098302 + .long 1038487147 + .long 3993098302 + .long 1038487147 + .long 3993098302 + .long 1038487147 + .long 2124375536 + .long 3177836881 + .long 2124375536 + .long 3177836881 + .long 2124375536 + .long 3177836881 + .long 2124375536 + .long 3177836881 + .long 2124375536 + .long 3177836881 + .long 2124375536 + .long 3177836881 + .long 2124375536 + .long 3177836881 + .long 2124375536 + .long 3177836881 + .type __svml_dsin_data_internal,@object + .size __svml_dsin_data_internal,1280 + .align 64 +__svml_dsin_data_internal_ha: + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2376373521 + .long 3205741868 + .long 0 + .long 1072693248 + .long 4242458500 + .long 1065951697 + .long 2684354560 + .long 1009354638 + .long 3650591271 + .long 3207838971 + .long 0 + .long 1072693248 + .long 4154680958 + .long 1067000149 + .long 0 + .long 3153796451 + .long 69373323 + .long 3209049152 + .long 0 + .long 1072693248 + .long 1972655565 + .long 1067636837 + .long 1073741824 + .long 1009157878 + .long 220529721 + .long 3209935929 + .long 0 + .long 1072693248 + .long 4044216340 + .long 1068048229 + .long 0 + .long 3156808381 + .long 3810305407 + .long 3210663220 + .long 0 + .long 1072693248 + .long 2046304480 + .long 1068459374 + .long 3758096384 + .long 3156402667 + .long 4269262315 + .long 3211145810 + .long 0 + .long 1072693248 + .long 2462980598 + .long 1068684576 + .long 2684354560 + .long 3158941832 + .long 1118107366 + .long 3211670787 + .long 0 + .long 1072693248 + .long 177906713 + .long 1068889808 + .long 3221225472 + .long 3159310370 + .long 393047345 + .long 3212032302 + .long 0 + .long 1072693248 + .long 3156849708 + .long 1069094822 + .long 3221225472 + .long 3158189848 + .long 1227670166 + .long 3212375297 + .long 0 + .long 1072693248 + .long 3349070549 + .long 1069299589 + .long 3758096384 + .long 3156538269 + .long 2402293340 + .long 3212758471 + .long 0 + .long 1072693248 + .long 1453945614 + .long 1069504078 + .long 1610612736 + .long 1011492612 + .long 2592747447 + .long 3213009315 + .long 0 + .long 1072693248 + .long 3470456183 + .long 1069627888 + .long 1073741824 + .long 3160744771 + .long 1037482584 + .long 3213240992 + .long 0 + .long 1072693248 + .long 1854824762 + .long 1069729808 + .long 2684354560 + .long 1011953664 + .long 3451754846 + .long 3213492662 + .long 0 + .long 1072693248 + .long 2972270170 + .long 1069831542 + .long 1073741824 + .long 3159524770 + .long 1672287667 + .long 3213764289 + .long 0 + .long 1072693248 + .long 1149976518 + .long 1069933076 + .long 1610612736 + .long 1013264895 + .long 2346447124 + .long 3213970635 + .long 0 + .long 1072693248 + .long 3729833777 + .long 1070034393 + .long 3758096384 + .long 1013044718 + .long 18115067 + .long 3214126342 + .long 0 + .long 1072693248 + .long 1013556747 + .long 1070135480 + .long 2684354560 + .long 3160567065 + .long 2660899430 + .long 3214291960 + .long 0 + .long 1072693248 + .long 632292433 + .long 1070236320 + .long 3758096384 + .long 3160963333 + .long 1935888103 + .long 3214467466 + .long 0 + .long 1072693248 + .long 1786662755 + .long 1070336898 + .long 2147483648 + .long 3155882307 + .long 288924873 + .long 3214652833 + .long 0 + .long 1072693248 + .long 3846521617 + .long 1070437199 + .long 536870912 + .long 1013406610 + .long 2377770267 + .long 3214848032 + .long 0 + .long 1072693248 + .long 2065784603 + .long 1070537209 + .long 3758096384 + .long 3160681966 + .long 3250111450 + .long 3214993525 + .long 0 + .long 1072693248 + .long 238550446 + .long 1070616504 + .long 2684354560 + .long 3154383565 + .long 2306566604 + .long 3215100913 + .long 0 + .long 1072693248 + .long 1655830135 + .long 1070666194 + .long 0 + .long 1014506690 + .long 1913604284 + .long 3215213171 + .long 0 + .long 1072693248 + .long 1062001470 + .long 1070715716 + .long 0 + .long 3160875220 + .long 2476548698 + .long 3215330282 + .long 0 + .long 1072693248 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 1261629236 + .long 3215452229 + .long 0 + .long 1072693248 + .long 3269558610 + .long 1070814224 + .long 536870912 + .long 3161705216 + .long 997322465 + .long 3215578993 + .long 0 + .long 1072693248 + .long 2484561409 + .long 1070863196 + .long 1073741824 + .long 1014024572 + .long 1296295961 + .long 3215710555 + .long 0 + .long 1072693248 + .long 1115219818 + .long 1070911970 + .long 0 + .long 1013072242 + .long 2962723252 + .long 3215846895 + .long 0 + .long 1072693248 + .long 1974149085 + .long 1070960538 + .long 3221225472 + .long 3156147648 + .long 4002549419 + .long 3215985292 + .long 0 + .long 1072693248 + .long 3711903686 + .long 1071008893 + .long 1073741824 + .long 1011944747 + .long 1234824733 + .long 3216058210 + .long 0 + .long 1072693248 + .long 821708191 + .long 1071057029 + .long 3758096384 + .long 3161738009 + .long 3996842794 + .long 3216133484 + .long 0 + .long 1072693248 + .long 824036583 + .long 1071104937 + .long 0 + .long 1008313330 + .long 2255197647 + .long 3216211105 + .long 0 + .long 1072693248 + .long 2796464483 + .long 1071152610 + .long 3221225472 + .long 3160878317 + .long 1638976426 + .long 3216291060 + .long 0 + .long 1072693248 + .long 1673302999 + .long 1071200042 + .long 2147483648 + .long 1013351473 + .long 1972483635 + .long 3216373337 + .long 0 + .long 1072693248 + .long 1135144330 + .long 1071247225 + .long 536870912 + .long 1013373569 + .long 1577996576 + .long 3216457924 + .long 0 + .long 1072693248 + .long 728580042 + .long 1071294152 + .long 1610612736 + .long 3162332944 + .long 1578746984 + .long 3216544808 + .long 0 + .long 1072693248 + .long 165764288 + .long 1071340816 + .long 3221225472 + .long 1013298018 + .long 1612193054 + .long 3216633976 + .long 0 + .long 1072693248 + .long 3623952103 + .long 1071387209 + .long 2684354560 + .long 3161985962 + .long 4133449816 + .long 3216725414 + .long 0 + .long 1072693248 + .long 2570175582 + .long 1071433326 + .long 1073741824 + .long 1012303118 + .long 1539072807 + .long 3216819110 + .long 0 + .long 1072693248 + .long 1535566729 + .long 1071479159 + .long 2147483648 + .long 1014321388 + .long 1945768569 + .long 3216915048 + .long 0 + .long 1072693248 + .long 939980347 + .long 1071524701 + .long 0 + .long 1012796809 + .long 3429717432 + .long 3217013214 + .long 0 + .long 1072693248 + .long 1391425750 + .long 1071569945 + .long 3221225472 + .long 3162362103 + .long 1312926554 + .long 3217072381 + .long 0 + .long 1072693248 + .long 3690502842 + .long 1071614884 + .long 3221225472 + .long 3157453855 + .long 1663679671 + .long 3217123670 + .long 0 + .long 1072693248 + .long 2269920951 + .long 1071652092 + .long 3758096384 + .long 3161672245 + .long 3952756490 + .long 3217176050 + .long 0 + .long 1072693248 + .long 2569207790 + .long 1071674247 + .long 1073741824 + .long 3163183617 + .long 69903290 + .long 3217229515 + .long 0 + .long 1072693248 + .long 1297975695 + .long 1071696240 + .long 3221225472 + .long 3163083735 + .long 2678847490 + .long 3217284054 + .long 0 + .long 1072693248 + .long 1411074851 + .long 1071718067 + .long 1610612736 + .long 3163484731 + .long 2272832445 + .long 3217339661 + .long 0 + .long 1072693248 + .long 1675549513 + .long 1071739725 + .long 3221225472 + .long 3163025138 + .long 1539668340 + .long 3217396327 + .long 0 + .long 1072693248 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 2482246777 + .long 3217454043 + .long 0 + .long 1072693248 + .long 2570316633 + .long 1071782521 + .long 1610612736 + .long 3162744753 + .long 2129093113 + .long 3217512801 + .long 0 + .long 1072693248 + .long 1289556703 + .long 1071803653 + .long 536870912 + .long 3162888820 + .long 1129922991 + .long 3217572592 + .long 0 + .long 1072693248 + .long 637203434 + .long 1071824603 + .long 3221225472 + .long 3159443841 + .long 3761365757 + .long 3217633406 + .long 0 + .long 1072693248 + .long 4242632757 + .long 1071845367 + .long 536870912 + .long 3161390278 + .long 752919289 + .long 3217695236 + .long 0 + .long 1072693248 + .long 2969983475 + .long 1071865944 + .long 2684354560 + .long 3162635443 + .long 3652612115 + .long 3217758070 + .long 0 + .long 1072693248 + .long 689983673 + .long 1071886330 + .long 3758096384 + .long 1014906405 + .long 1883353036 + .long 3217821901 + .long 0 + .long 1072693248 + .long 1397053140 + .long 1071906521 + .long 1610612736 + .long 1015245078 + .long 1403757309 + .long 3217886718 + .long 0 + .long 1072693248 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 3239527685 + .long 3217952511 + .long 0 + .long 1072693248 + .long 2610628921 + .long 1071946308 + .long 1610612736 + .long 3162668769 + .long 3489768009 + .long 3218019271 + .long 0 + .long 1072693248 + .long 3152274921 + .long 1071965898 + .long 3758096384 + .long 1013170835 + .long 2371640770 + .long 1070588851 + .long 0 + .long 1071644672 + .long 2460177814 + .long 1071985282 + .long 2147483648 + .long 3162116843 + .long 2309668539 + .long 1070520188 + .long 0 + .long 1071644672 + .long 881650848 + .long 1072004457 + .long 2147483648 + .long 3162986272 + .long 2081278341 + .long 1070450589 + .long 0 + .long 1071644672 + .long 3194290572 + .long 1072023419 + .long 2147483648 + .long 1015048682 + .long 3753901657 + .long 1070380064 + .long 0 + .long 1071644672 + .long 1427975391 + .long 1072042167 + .long 1073741824 + .long 3161608627 + .long 1403691706 + .long 1070308625 + .long 0 + .long 1071644672 + .long 636516413 + .long 1072060697 + .long 3758096384 + .long 1015823716 + .long 2583490354 + .long 1070236281 + .long 0 + .long 1071644672 + .long 1719614413 + .long 1072079006 + .long 0 + .long 3163282740 + .long 2546065654 + .long 1070163044 + .long 0 + .long 1071644672 + .long 1424664751 + .long 1072097092 + .long 3221225472 + .long 3163405315 + .long 1416934267 + .long 1070088925 + .long 0 + .long 1071644672 + .long 938475414 + .long 1072114952 + .long 0 + .long 1015076079 + .long 4187227697 + .long 1070013934 + .long 0 + .long 1071644672 + .long 1594061409 + .long 1072132583 + .long 2147483648 + .long 1014353870 + .long 3526603391 + .long 1069938084 + .long 0 + .long 1071644672 + .long 577417135 + .long 1072149983 + .long 2684354560 + .long 3161519415 + .long 1250776663 + .long 1069861386 + .long 0 + .long 1071644672 + .long 3814135665 + .long 1072167148 + .long 3221225472 + .long 3163146456 + .long 4019165092 + .long 1069783850 + .long 0 + .long 1071644672 + .long 201299822 + .long 1072184078 + .long 3758096384 + .long 3161912352 + .long 1852581091 + .long 1069705490 + .long 0 + .long 1071644672 + .long 263859903 + .long 1072200768 + .long 0 + .long 3162692284 + .long 2485417816 + .long 1069626316 + .long 0 + .long 1071644672 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 2586490530 + .long 1069545162 + .long 0 + .long 1071644672 + .long 2750387213 + .long 1072233420 + .long 2147483648 + .long 3160858537 + .long 1224902090 + .long 1069383633 + .long 0 + .long 1071644672 + .long 1234330619 + .long 1072249378 + .long 2684354560 + .long 1015272473 + .long 2285031318 + .long 1069220549 + .long 0 + .long 1071644672 + .long 4106737474 + .long 1072265086 + .long 2684354560 + .long 3162592377 + .long 3876290983 + .long 1069055935 + .long 0 + .long 1071644672 + .long 1207142209 + .long 1072280544 + .long 2147483648 + .long 3162705634 + .long 802660176 + .long 1068889817 + .long 0 + .long 1071644672 + .long 4012486548 + .long 1072295747 + .long 2684354560 + .long 1014701564 + .long 1726519029 + .long 1068722218 + .long 0 + .long 1071644672 + .long 2688952194 + .long 1072310695 + .long 0 + .long 3161532603 + .long 3382663878 + .long 1068553164 + .long 0 + .long 1071644672 + .long 453180130 + .long 1072325385 + .long 1073741824 + .long 3162411281 + .long 2598800519 + .long 1068266419 + .long 0 + .long 1071644672 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 1038988426 + .long 1067922646 + .long 0 + .long 1071644672 + .long 2653017361 + .long 1072353980 + .long 0 + .long 3162800062 + .long 1102361128 + .long 1067576117 + .long 0 + .long 1071644672 + .long 1477771776 + .long 1072367882 + .long 536870912 + .long 3163104986 + .long 2880516564 + .long 1067003401 + .long 0 + .long 1071644672 + .long 1056266002 + .long 1072381517 + .long 2684354560 + .long 3163469496 + .long 1220541286 + .long 1066197478 + .long 0 + .long 1071644672 + .long 1159294526 + .long 1072394883 + .long 536870912 + .long 3163276959 + .long 1279178457 + .long 1064107143 + .long 0 + .long 1071644672 + .long 1731563730 + .long 1072407978 + .long 536870912 + .long 1015540302 + .long 31019393 + .long 3212646089 + .long 0 + .long 1071644672 + .long 2892993834 + .long 1072420800 + .long 536870912 + .long 3163039143 + .long 3506991783 + .long 3214032490 + .long 0 + .long 1071644672 + .long 645027145 + .long 1072433348 + .long 3221225472 + .long 1012602239 + .long 2140183630 + .long 3214756396 + .long 0 + .long 1071644672 + .long 4051746225 + .long 1072445618 + .long 1610612736 + .long 3161907377 + .long 600368053 + .long 3215209541 + .long 0 + .long 1071644672 + .long 881357723 + .long 1072457611 + .long 3221225472 + .long 1013810890 + .long 913431823 + .long 3215576203 + .long 0 + .long 1071644672 + .long 557060597 + .long 1072469323 + .long 0 + .long 3159554934 + .long 1073154251 + .long 3215945137 + .long 0 + .long 1071644672 + .long 4093443164 + .long 1072480752 + .long 536870912 + .long 1014912865 + .long 3631910143 + .long 3216149439 + .long 0 + .long 1071644672 + .long 4097623923 + .long 1072491898 + .long 2684354560 + .long 3160308587 + .long 1380647130 + .long 3216336095 + .long 0 + .long 1071644672 + .long 1950234076 + .long 1072502759 + .long 536870912 + .long 3159425498 + .long 4049357271 + .long 3216523802 + .long 0 + .long 1071644672 + .long 3511535930 + .long 1072513332 + .long 2147483648 + .long 3162828626 + .long 1896722595 + .long 3216712534 + .long 0 + .long 1071644672 + .long 1942611595 + .long 1072523617 + .long 3221225472 + .long 3162410081 + .long 1699043957 + .long 3216902261 + .long 0 + .long 1071644672 + .long 3476196678 + .long 1072533611 + .long 0 + .long 1014257638 + .long 3296146332 + .long 1069485732 + .long 0 + .long 1070596096 + .long 1647878299 + .long 1072543314 + .long 3758096384 + .long 3162169063 + .long 3286832763 + .long 1069294100 + .long 0 + .long 1070596096 + .long 3066872380 + .long 1072552723 + .long 3221225472 + .long 1015561271 + .long 1962712856 + .long 1069101559 + .long 0 + .long 1070596096 + .long 1647164971 + .long 1072561838 + .long 2147483648 + .long 3162838250 + .long 3601629044 + .long 1068908137 + .long 0 + .long 1070596096 + .long 83265253 + .long 1072570657 + .long 1610612736 + .long 3162510535 + .long 165911977 + .long 1068713865 + .long 0 + .long 1070596096 + .long 1261158782 + .long 1072579178 + .long 2147483648 + .long 1015711544 + .long 1348311045 + .long 1068518770 + .long 0 + .long 1070596096 + .long 3964199186 + .long 1072587400 + .long 3758096384 + .long 3160501078 + .long 386665102 + .long 1068146822 + .long 0 + .long 1070596096 + .long 2873938189 + .long 1072595323 + .long 1610612736 + .long 3162311422 + .long 1991047213 + .long 1067753521 + .long 0 + .long 1070596096 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 4107121629 + .long 1067267139 + .long 0 + .long 1070596096 + .long 3370060660 + .long 1072610264 + .long 1610612736 + .long 1014787212 + .long 723478390 + .long 1066474790 + .long 0 + .long 1070596096 + .long 3882371427 + .long 1072617280 + .long 2147483648 + .long 1014923975 + .long 2382326656 + .long 1064562179 + .long 0 + .long 1070596096 + .long 2749658050 + .long 1072623992 + .long 1610612736 + .long 1015427338 + .long 2614369450 + .long 3212624080 + .long 0 + .long 1070596096 + .long 4220661975 + .long 1072630398 + .long 3221225472 + .long 1014312058 + .long 3587565429 + .long 3214108032 + .long 0 + .long 1070596096 + .long 4151720666 + .long 1072636498 + .long 0 + .long 3162639544 + .long 2886567144 + .long 3214910444 + .long 0 + .long 1070596096 + .long 2892293513 + .long 1072642291 + .long 2684354560 + .long 3162340271 + .long 1765797566 + .long 3215324543 + .long 0 + .long 1070596096 + .long 990588717 + .long 1072647776 + .long 3758096384 + .long 3162041857 + .long 240740309 + .long 3215727903 + .long 0 + .long 1070596096 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 2034433221 + .long 1068349287 + .long 0 + .long 1069547520 + .long 2745245815 + .long 1072657817 + .long 3221225472 + .long 1015566129 + .long 304938777 + .long 1067944017 + .long 0 + .long 1069547520 + .long 4201728937 + .long 1072662372 + .long 1610612736 + .long 1014674006 + .long 3299146087 + .long 1067537882 + .long 0 + .long 1069547520 + .long 617154971 + .long 1072666617 + .long 3758096384 + .long 3163433696 + .long 1953696209 + .long 1066811523 + .long 0 + .long 1069547520 + .long 2131272983 + .long 1072670549 + .long 3221225472 + .long 3163005096 + .long 3987691371 + .long 1065590540 + .long 0 + .long 1069547520 + .long 1905645377 + .long 1072674169 + .long 1610612736 + .long 1014087596 + .long 718380601 + .long 3211081269 + .long 0 + .long 1069547520 + .long 1893834707 + .long 1072677476 + .long 1610612736 + .long 1015147654 + .long 3272206680 + .long 3213771729 + .long 0 + .long 1069547520 + .long 4251821691 + .long 1072680469 + .long 2147483648 + .long 3161841007 + .long 257503056 + .long 3214647653 + .long 0 + .long 1069547520 + .long 2748392742 + .long 1072683149 + .long 536870912 + .long 3163061750 + .long 711626851 + .long 1066916672 + .long 0 + .long 1068498944 + .long 4240268041 + .long 1072685514 + .long 536870912 + .long 1013588963 + .long 2523975598 + .long 1065789700 + .long 0 + .long 1068498944 + .long 2902558778 + .long 1072687565 + .long 3221225472 + .long 1013260780 + .long 3237733378 + .long 3209908784 + .long 0 + .long 1068498944 + .long 1703834029 + .long 1072689301 + .long 3758096384 + .long 1015028364 + .long 1003003824 + .long 3213591144 + .long 0 + .long 1068498944 + .long 3816385918 + .long 1072690721 + .long 536870912 + .long 3161216956 + .long 2896342633 + .long 1064747819 + .long 0 + .long 1067450368 + .long 4026464093 + .long 1072691826 + .long 3221225472 + .long 3163075789 + .long 561145352 + .long 3212540584 + .long 0 + .long 1067450368 + .long 1619315981 + .long 1072692616 + .long 1073741824 + .long 3162584397 + .long 210035182 + .long 3211491512 + .long 0 + .long 1066401792 + .long 379294427 + .long 1072693090 + .long 3221225472 + .long 1015405987 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 210035182 + .long 1064007864 + .long 0 + .long 3213885440 + .long 379294427 + .long 1072693090 + .long 3221225472 + .long 1015405987 + .long 561145352 + .long 1065056936 + .long 0 + .long 3214934016 + .long 1619315981 + .long 1072692616 + .long 1073741824 + .long 3162584397 + .long 2896342633 + .long 3212231467 + .long 0 + .long 3214934016 + .long 4026464093 + .long 1072691826 + .long 3221225472 + .long 3163075789 + .long 1003003824 + .long 1066107496 + .long 0 + .long 3215982592 + .long 3816385918 + .long 1072690721 + .long 536870912 + .long 3161216956 + .long 3237733378 + .long 1062425136 + .long 0 + .long 3215982592 + .long 1703834029 + .long 1072689301 + .long 3758096384 + .long 1015028364 + .long 2523975598 + .long 3213273348 + .long 0 + .long 3215982592 + .long 2902558778 + .long 1072687565 + .long 3221225472 + .long 1013260780 + .long 711626851 + .long 3214400320 + .long 0 + .long 3215982592 + .long 4240268041 + .long 1072685514 + .long 536870912 + .long 1013588963 + .long 257503056 + .long 1067164005 + .long 0 + .long 3217031168 + .long 2748392742 + .long 1072683149 + .long 536870912 + .long 3163061750 + .long 3272206680 + .long 1066288081 + .long 0 + .long 3217031168 + .long 4251821691 + .long 1072680469 + .long 2147483648 + .long 3161841007 + .long 718380601 + .long 1063597621 + .long 0 + .long 3217031168 + .long 1893834707 + .long 1072677476 + .long 1610612736 + .long 1015147654 + .long 3987691371 + .long 3213074188 + .long 0 + .long 3217031168 + .long 1905645377 + .long 1072674169 + .long 1610612736 + .long 1014087596 + .long 1953696209 + .long 3214295171 + .long 0 + .long 3217031168 + .long 2131272983 + .long 1072670549 + .long 3221225472 + .long 3163005096 + .long 3299146087 + .long 3215021530 + .long 0 + .long 3217031168 + .long 617154971 + .long 1072666617 + .long 3758096384 + .long 3163433696 + .long 304938777 + .long 3215427665 + .long 0 + .long 3217031168 + .long 4201728937 + .long 1072662372 + .long 1610612736 + .long 1014674006 + .long 2034433221 + .long 3215832935 + .long 0 + .long 3217031168 + .long 2745245815 + .long 1072657817 + .long 3221225472 + .long 1015566129 + .long 240740309 + .long 1068244255 + .long 0 + .long 3218079744 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 1765797566 + .long 1067840895 + .long 0 + .long 3218079744 + .long 990588717 + .long 1072647776 + .long 3758096384 + .long 3162041857 + .long 2886567144 + .long 1067426796 + .long 0 + .long 3218079744 + .long 2892293513 + .long 1072642291 + .long 2684354560 + .long 3162340271 + .long 3587565429 + .long 1066624384 + .long 0 + .long 3218079744 + .long 4151720666 + .long 1072636498 + .long 0 + .long 3162639544 + .long 2614369450 + .long 1065140432 + .long 0 + .long 3218079744 + .long 4220661975 + .long 1072630398 + .long 3221225472 + .long 1014312058 + .long 2382326656 + .long 3212045827 + .long 0 + .long 3218079744 + .long 2749658050 + .long 1072623992 + .long 1610612736 + .long 1015427338 + .long 723478390 + .long 3213958438 + .long 0 + .long 3218079744 + .long 3882371427 + .long 1072617280 + .long 2147483648 + .long 1014923975 + .long 4107121629 + .long 3214750787 + .long 0 + .long 3218079744 + .long 3370060660 + .long 1072610264 + .long 1610612736 + .long 1014787212 + .long 1991047213 + .long 3215237169 + .long 0 + .long 3218079744 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 386665102 + .long 3215630470 + .long 0 + .long 3218079744 + .long 2873938189 + .long 1072595323 + .long 1610612736 + .long 3162311422 + .long 1348311045 + .long 3216002418 + .long 0 + .long 3218079744 + .long 3964199186 + .long 1072587400 + .long 3758096384 + .long 3160501078 + .long 165911977 + .long 3216197513 + .long 0 + .long 3218079744 + .long 1261158782 + .long 1072579178 + .long 2147483648 + .long 1015711544 + .long 3601629044 + .long 3216391785 + .long 0 + .long 3218079744 + .long 83265253 + .long 1072570657 + .long 1610612736 + .long 3162510535 + .long 1962712856 + .long 3216585207 + .long 0 + .long 3218079744 + .long 1647164971 + .long 1072561838 + .long 2147483648 + .long 3162838250 + .long 3286832763 + .long 3216777748 + .long 0 + .long 3218079744 + .long 3066872380 + .long 1072552723 + .long 3221225472 + .long 1015561271 + .long 3296146332 + .long 3216969380 + .long 0 + .long 3218079744 + .long 1647878299 + .long 1072543314 + .long 3758096384 + .long 3162169063 + .long 1699043957 + .long 1069418613 + .long 0 + .long 3219128320 + .long 3476196678 + .long 1072533611 + .long 0 + .long 1014257638 + .long 1896722595 + .long 1069228886 + .long 0 + .long 3219128320 + .long 1942611595 + .long 1072523617 + .long 3221225472 + .long 3162410081 + .long 4049357271 + .long 1069040154 + .long 0 + .long 3219128320 + .long 3511535930 + .long 1072513332 + .long 2147483648 + .long 3162828626 + .long 1380647130 + .long 1068852447 + .long 0 + .long 3219128320 + .long 1950234076 + .long 1072502759 + .long 536870912 + .long 3159425498 + .long 3631910143 + .long 1068665791 + .long 0 + .long 3219128320 + .long 4097623923 + .long 1072491898 + .long 2684354560 + .long 3160308587 + .long 1073154251 + .long 1068461489 + .long 0 + .long 3219128320 + .long 4093443164 + .long 1072480752 + .long 536870912 + .long 1014912865 + .long 913431823 + .long 1068092555 + .long 0 + .long 3219128320 + .long 557060597 + .long 1072469323 + .long 0 + .long 3159554934 + .long 600368053 + .long 1067725893 + .long 0 + .long 3219128320 + .long 881357723 + .long 1072457611 + .long 3221225472 + .long 1013810890 + .long 2140183630 + .long 1067272748 + .long 0 + .long 3219128320 + .long 4051746225 + .long 1072445618 + .long 1610612736 + .long 3161907377 + .long 3506991783 + .long 1066548842 + .long 0 + .long 3219128320 + .long 645027145 + .long 1072433348 + .long 3221225472 + .long 1012602239 + .long 31019393 + .long 1065162441 + .long 0 + .long 3219128320 + .long 2892993834 + .long 1072420800 + .long 536870912 + .long 3163039143 + .long 1279178457 + .long 3211590791 + .long 0 + .long 3219128320 + .long 1731563730 + .long 1072407978 + .long 536870912 + .long 1015540302 + .long 1220541286 + .long 3213681126 + .long 0 + .long 3219128320 + .long 1159294526 + .long 1072394883 + .long 536870912 + .long 3163276959 + .long 2880516564 + .long 3214487049 + .long 0 + .long 3219128320 + .long 1056266002 + .long 1072381517 + .long 2684354560 + .long 3163469496 + .long 1102361128 + .long 3215059765 + .long 0 + .long 3219128320 + .long 1477771776 + .long 1072367882 + .long 536870912 + .long 3163104986 + .long 1038988426 + .long 3215406294 + .long 0 + .long 3219128320 + .long 2653017361 + .long 1072353980 + .long 0 + .long 3162800062 + .long 2598800519 + .long 3215750067 + .long 0 + .long 3219128320 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 3382663878 + .long 3216036812 + .long 0 + .long 3219128320 + .long 453180130 + .long 1072325385 + .long 1073741824 + .long 3162411281 + .long 1726519029 + .long 3216205866 + .long 0 + .long 3219128320 + .long 2688952194 + .long 1072310695 + .long 0 + .long 3161532603 + .long 802660176 + .long 3216373465 + .long 0 + .long 3219128320 + .long 4012486548 + .long 1072295747 + .long 2684354560 + .long 1014701564 + .long 3876290983 + .long 3216539583 + .long 0 + .long 3219128320 + .long 1207142209 + .long 1072280544 + .long 2147483648 + .long 3162705634 + .long 2285031318 + .long 3216704197 + .long 0 + .long 3219128320 + .long 4106737474 + .long 1072265086 + .long 2684354560 + .long 3162592377 + .long 1224902090 + .long 3216867281 + .long 0 + .long 3219128320 + .long 1234330619 + .long 1072249378 + .long 2684354560 + .long 1015272473 + .long 2586490530 + .long 3217028810 + .long 0 + .long 3219128320 + .long 2750387213 + .long 1072233420 + .long 2147483648 + .long 3160858537 + .long 2485417816 + .long 3217109964 + .long 0 + .long 3219128320 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 1852581091 + .long 3217189138 + .long 0 + .long 3219128320 + .long 263859903 + .long 1072200768 + .long 0 + .long 3162692284 + .long 4019165092 + .long 3217267498 + .long 0 + .long 3219128320 + .long 201299822 + .long 1072184078 + .long 3758096384 + .long 3161912352 + .long 1250776663 + .long 3217345034 + .long 0 + .long 3219128320 + .long 3814135665 + .long 1072167148 + .long 3221225472 + .long 3163146456 + .long 3526603391 + .long 3217421732 + .long 0 + .long 3219128320 + .long 577417135 + .long 1072149983 + .long 2684354560 + .long 3161519415 + .long 4187227697 + .long 3217497582 + .long 0 + .long 3219128320 + .long 1594061409 + .long 1072132583 + .long 2147483648 + .long 1014353870 + .long 1416934267 + .long 3217572573 + .long 0 + .long 3219128320 + .long 938475414 + .long 1072114952 + .long 0 + .long 1015076079 + .long 2546065654 + .long 3217646692 + .long 0 + .long 3219128320 + .long 1424664751 + .long 1072097092 + .long 3221225472 + .long 3163405315 + .long 2583490354 + .long 3217719929 + .long 0 + .long 3219128320 + .long 1719614413 + .long 1072079006 + .long 0 + .long 3163282740 + .long 1403691706 + .long 3217792273 + .long 0 + .long 3219128320 + .long 636516413 + .long 1072060697 + .long 3758096384 + .long 1015823716 + .long 3753901657 + .long 3217863712 + .long 0 + .long 3219128320 + .long 1427975391 + .long 1072042167 + .long 1073741824 + .long 3161608627 + .long 2081278341 + .long 3217934237 + .long 0 + .long 3219128320 + .long 3194290572 + .long 1072023419 + .long 2147483648 + .long 1015048682 + .long 2309668539 + .long 3218003836 + .long 0 + .long 3219128320 + .long 881650848 + .long 1072004457 + .long 2147483648 + .long 3162986272 + .long 2371640770 + .long 3218072499 + .long 0 + .long 3219128320 + .long 2460177814 + .long 1071985282 + .long 2147483648 + .long 3162116843 + .long 3489768009 + .long 1070535623 + .long 0 + .long 3220176896 + .long 3152274921 + .long 1071965898 + .long 3758096384 + .long 1013170835 + .long 3239527685 + .long 1070468863 + .long 0 + .long 3220176896 + .long 2610628921 + .long 1071946308 + .long 1610612736 + .long 3162668769 + .long 1403757309 + .long 1070403070 + .long 0 + .long 3220176896 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 1883353036 + .long 1070338253 + .long 0 + .long 3220176896 + .long 1397053140 + .long 1071906521 + .long 1610612736 + .long 1015245078 + .long 3652612115 + .long 1070274422 + .long 0 + .long 3220176896 + .long 689983673 + .long 1071886330 + .long 3758096384 + .long 1014906405 + .long 752919289 + .long 1070211588 + .long 0 + .long 3220176896 + .long 2969983475 + .long 1071865944 + .long 2684354560 + .long 3162635443 + .long 3761365757 + .long 1070149758 + .long 0 + .long 3220176896 + .long 4242632757 + .long 1071845367 + .long 536870912 + .long 3161390278 + .long 1129922991 + .long 1070088944 + .long 0 + .long 3220176896 + .long 637203434 + .long 1071824603 + .long 3221225472 + .long 3159443841 + .long 2129093113 + .long 1070029153 + .long 0 + .long 3220176896 + .long 1289556703 + .long 1071803653 + .long 536870912 + .long 3162888820 + .long 2482246777 + .long 1069970395 + .long 0 + .long 3220176896 + .long 2570316633 + .long 1071782521 + .long 1610612736 + .long 3162744753 + .long 1539668340 + .long 1069912679 + .long 0 + .long 3220176896 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 2272832445 + .long 1069856013 + .long 0 + .long 3220176896 + .long 1675549513 + .long 1071739725 + .long 3221225472 + .long 3163025138 + .long 2678847490 + .long 1069800406 + .long 0 + .long 3220176896 + .long 1411074851 + .long 1071718067 + .long 1610612736 + .long 3163484731 + .long 69903290 + .long 1069745867 + .long 0 + .long 3220176896 + .long 1297975695 + .long 1071696240 + .long 3221225472 + .long 3163083735 + .long 3952756490 + .long 1069692402 + .long 0 + .long 3220176896 + .long 2569207790 + .long 1071674247 + .long 1073741824 + .long 3163183617 + .long 1663679671 + .long 1069640022 + .long 0 + .long 3220176896 + .long 2269920951 + .long 1071652092 + .long 3758096384 + .long 3161672245 + .long 1312926554 + .long 1069588733 + .long 0 + .long 3220176896 + .long 3690502842 + .long 1071614884 + .long 3221225472 + .long 3157453855 + .long 3429717432 + .long 1069529566 + .long 0 + .long 3220176896 + .long 1391425750 + .long 1071569945 + .long 3221225472 + .long 3162362103 + .long 1945768569 + .long 1069431400 + .long 0 + .long 3220176896 + .long 939980347 + .long 1071524701 + .long 0 + .long 1012796809 + .long 1539072807 + .long 1069335462 + .long 0 + .long 3220176896 + .long 1535566729 + .long 1071479159 + .long 2147483648 + .long 1014321388 + .long 4133449816 + .long 1069241766 + .long 0 + .long 3220176896 + .long 2570175582 + .long 1071433326 + .long 1073741824 + .long 1012303118 + .long 1612193054 + .long 1069150328 + .long 0 + .long 3220176896 + .long 3623952103 + .long 1071387209 + .long 2684354560 + .long 3161985962 + .long 1578746984 + .long 1069061160 + .long 0 + .long 3220176896 + .long 165764288 + .long 1071340816 + .long 3221225472 + .long 1013298018 + .long 1577996576 + .long 1068974276 + .long 0 + .long 3220176896 + .long 728580042 + .long 1071294152 + .long 1610612736 + .long 3162332944 + .long 1972483635 + .long 1068889689 + .long 0 + .long 3220176896 + .long 1135144330 + .long 1071247225 + .long 536870912 + .long 1013373569 + .long 1638976426 + .long 1068807412 + .long 0 + .long 3220176896 + .long 1673302999 + .long 1071200042 + .long 2147483648 + .long 1013351473 + .long 2255197647 + .long 1068727457 + .long 0 + .long 3220176896 + .long 2796464483 + .long 1071152610 + .long 3221225472 + .long 3160878317 + .long 3996842794 + .long 1068649836 + .long 0 + .long 3220176896 + .long 824036583 + .long 1071104937 + .long 0 + .long 1008313330 + .long 1234824733 + .long 1068574562 + .long 0 + .long 3220176896 + .long 821708191 + .long 1071057029 + .long 3758096384 + .long 3161738009 + .long 4002549419 + .long 1068501644 + .long 0 + .long 3220176896 + .long 3711903686 + .long 1071008893 + .long 1073741824 + .long 1011944747 + .long 2962723252 + .long 1068363247 + .long 0 + .long 3220176896 + .long 1974149085 + .long 1070960538 + .long 3221225472 + .long 3156147648 + .long 1296295961 + .long 1068226907 + .long 0 + .long 3220176896 + .long 1115219818 + .long 1070911970 + .long 0 + .long 1013072242 + .long 997322465 + .long 1068095345 + .long 0 + .long 3220176896 + .long 2484561409 + .long 1070863196 + .long 1073741824 + .long 1014024572 + .long 1261629236 + .long 1067968581 + .long 0 + .long 3220176896 + .long 3269558610 + .long 1070814224 + .long 536870912 + .long 3161705216 + .long 2476548698 + .long 1067846634 + .long 0 + .long 3220176896 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 1913604284 + .long 1067729523 + .long 0 + .long 3220176896 + .long 1062001470 + .long 1070715716 + .long 0 + .long 3160875220 + .long 2306566604 + .long 1067617265 + .long 0 + .long 3220176896 + .long 1655830135 + .long 1070666194 + .long 0 + .long 1014506690 + .long 3250111450 + .long 1067509877 + .long 0 + .long 3220176896 + .long 238550446 + .long 1070616504 + .long 2684354560 + .long 3154383565 + .long 2377770267 + .long 1067364384 + .long 0 + .long 3220176896 + .long 2065784603 + .long 1070537209 + .long 3758096384 + .long 3160681966 + .long 288924873 + .long 1067169185 + .long 0 + .long 3220176896 + .long 3846521617 + .long 1070437199 + .long 536870912 + .long 1013406610 + .long 1935888103 + .long 1066983818 + .long 0 + .long 3220176896 + .long 1786662755 + .long 1070336898 + .long 2147483648 + .long 3155882307 + .long 2660899430 + .long 1066808312 + .long 0 + .long 3220176896 + .long 632292433 + .long 1070236320 + .long 3758096384 + .long 3160963333 + .long 18115067 + .long 1066642694 + .long 0 + .long 3220176896 + .long 1013556747 + .long 1070135480 + .long 2684354560 + .long 3160567065 + .long 2346447124 + .long 1066486987 + .long 0 + .long 3220176896 + .long 3729833777 + .long 1070034393 + .long 3758096384 + .long 1013044718 + .long 1672287667 + .long 1066280641 + .long 0 + .long 3220176896 + .long 1149976518 + .long 1069933076 + .long 1610612736 + .long 1013264895 + .long 3451754846 + .long 1066009014 + .long 0 + .long 3220176896 + .long 2972270170 + .long 1069831542 + .long 1073741824 + .long 3159524770 + .long 1037482584 + .long 1065757344 + .long 0 + .long 3220176896 + .long 1854824762 + .long 1069729808 + .long 2684354560 + .long 1011953664 + .long 2592747447 + .long 1065525667 + .long 0 + .long 3220176896 + .long 3470456183 + .long 1069627888 + .long 1073741824 + .long 3160744771 + .long 2402293340 + .long 1065274823 + .long 0 + .long 3220176896 + .long 1453945614 + .long 1069504078 + .long 1610612736 + .long 1011492612 + .long 1227670166 + .long 1064891649 + .long 0 + .long 3220176896 + .long 3349070549 + .long 1069299589 + .long 3758096384 + .long 3156538269 + .long 393047345 + .long 1064548654 + .long 0 + .long 3220176896 + .long 3156849708 + .long 1069094822 + .long 3221225472 + .long 3158189848 + .long 1118107366 + .long 1064187139 + .long 0 + .long 3220176896 + .long 177906713 + .long 1068889808 + .long 3221225472 + .long 3159310370 + .long 4269262315 + .long 1063662162 + .long 0 + .long 3220176896 + .long 2462980598 + .long 1068684576 + .long 2684354560 + .long 3158941832 + .long 3810305407 + .long 1063179572 + .long 0 + .long 3220176896 + .long 2046304480 + .long 1068459374 + .long 3758096384 + .long 3156402667 + .long 220529721 + .long 1062452281 + .long 0 + .long 3220176896 + .long 4044216340 + .long 1068048229 + .long 0 + .long 3156808381 + .long 69373323 + .long 1061565504 + .long 0 + .long 3220176896 + .long 1972655565 + .long 1067636837 + .long 1073741824 + .long 1009157878 + .long 3650591271 + .long 1060355323 + .long 0 + .long 3220176896 + .long 4154680958 + .long 1067000149 + .long 0 + .long 3153796451 + .long 2376373521 + .long 1058258220 + .long 0 + .long 3220176896 + .long 4242458500 + .long 1065951697 + .long 2684354560 + .long 1009354638 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2376373521 + .long 1058258220 + .long 0 + .long 3220176896 + .long 4242458500 + .long 3213435345 + .long 2684354560 + .long 3156838286 + .long 3650591271 + .long 1060355323 + .long 0 + .long 3220176896 + .long 4154680958 + .long 3214483797 + .long 0 + .long 1006312803 + .long 69373323 + .long 1061565504 + .long 0 + .long 3220176896 + .long 1972655565 + .long 3215120485 + .long 1073741824 + .long 3156641526 + .long 220529721 + .long 1062452281 + .long 0 + .long 3220176896 + .long 4044216340 + .long 3215531877 + .long 0 + .long 1009324733 + .long 3810305407 + .long 1063179572 + .long 0 + .long 3220176896 + .long 2046304480 + .long 3215943022 + .long 3758096384 + .long 1008919019 + .long 4269262315 + .long 1063662162 + .long 0 + .long 3220176896 + .long 2462980598 + .long 3216168224 + .long 2684354560 + .long 1011458184 + .long 1118107366 + .long 1064187139 + .long 0 + .long 3220176896 + .long 177906713 + .long 3216373456 + .long 3221225472 + .long 1011826722 + .long 393047345 + .long 1064548654 + .long 0 + .long 3220176896 + .long 3156849708 + .long 3216578470 + .long 3221225472 + .long 1010706200 + .long 1227670166 + .long 1064891649 + .long 0 + .long 3220176896 + .long 3349070549 + .long 3216783237 + .long 3758096384 + .long 1009054621 + .long 2402293340 + .long 1065274823 + .long 0 + .long 3220176896 + .long 1453945614 + .long 3216987726 + .long 1610612736 + .long 3158976260 + .long 2592747447 + .long 1065525667 + .long 0 + .long 3220176896 + .long 3470456183 + .long 3217111536 + .long 1073741824 + .long 1013261123 + .long 1037482584 + .long 1065757344 + .long 0 + .long 3220176896 + .long 1854824762 + .long 3217213456 + .long 2684354560 + .long 3159437312 + .long 3451754846 + .long 1066009014 + .long 0 + .long 3220176896 + .long 2972270170 + .long 3217315190 + .long 1073741824 + .long 1012041122 + .long 1672287667 + .long 1066280641 + .long 0 + .long 3220176896 + .long 1149976518 + .long 3217416724 + .long 1610612736 + .long 3160748543 + .long 2346447124 + .long 1066486987 + .long 0 + .long 3220176896 + .long 3729833777 + .long 3217518041 + .long 3758096384 + .long 3160528366 + .long 18115067 + .long 1066642694 + .long 0 + .long 3220176896 + .long 1013556747 + .long 3217619128 + .long 2684354560 + .long 1013083417 + .long 2660899430 + .long 1066808312 + .long 0 + .long 3220176896 + .long 632292433 + .long 3217719968 + .long 3758096384 + .long 1013479685 + .long 1935888103 + .long 1066983818 + .long 0 + .long 3220176896 + .long 1786662755 + .long 3217820546 + .long 2147483648 + .long 1008398659 + .long 288924873 + .long 1067169185 + .long 0 + .long 3220176896 + .long 3846521617 + .long 3217920847 + .long 536870912 + .long 3160890258 + .long 2377770267 + .long 1067364384 + .long 0 + .long 3220176896 + .long 2065784603 + .long 3218020857 + .long 3758096384 + .long 1013198318 + .long 3250111450 + .long 1067509877 + .long 0 + .long 3220176896 + .long 238550446 + .long 3218100152 + .long 2684354560 + .long 1006899917 + .long 2306566604 + .long 1067617265 + .long 0 + .long 3220176896 + .long 1655830135 + .long 3218149842 + .long 0 + .long 3161990338 + .long 1913604284 + .long 1067729523 + .long 0 + .long 3220176896 + .long 1062001470 + .long 3218199364 + .long 0 + .long 1013391572 + .long 2476548698 + .long 1067846634 + .long 0 + .long 3220176896 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 1261629236 + .long 1067968581 + .long 0 + .long 3220176896 + .long 3269558610 + .long 3218297872 + .long 536870912 + .long 1014221568 + .long 997322465 + .long 1068095345 + .long 0 + .long 3220176896 + .long 2484561409 + .long 3218346844 + .long 1073741824 + .long 3161508220 + .long 1296295961 + .long 1068226907 + .long 0 + .long 3220176896 + .long 1115219818 + .long 3218395618 + .long 0 + .long 3160555890 + .long 2962723252 + .long 1068363247 + .long 0 + .long 3220176896 + .long 1974149085 + .long 3218444186 + .long 3221225472 + .long 1008664000 + .long 4002549419 + .long 1068501644 + .long 0 + .long 3220176896 + .long 3711903686 + .long 3218492541 + .long 1073741824 + .long 3159428395 + .long 1234824733 + .long 1068574562 + .long 0 + .long 3220176896 + .long 821708191 + .long 3218540677 + .long 3758096384 + .long 1014254361 + .long 3996842794 + .long 1068649836 + .long 0 + .long 3220176896 + .long 824036583 + .long 3218588585 + .long 0 + .long 3155796978 + .long 2255197647 + .long 1068727457 + .long 0 + .long 3220176896 + .long 2796464483 + .long 3218636258 + .long 3221225472 + .long 1013394669 + .long 1638976426 + .long 1068807412 + .long 0 + .long 3220176896 + .long 1673302999 + .long 3218683690 + .long 2147483648 + .long 3160835121 + .long 1972483635 + .long 1068889689 + .long 0 + .long 3220176896 + .long 1135144330 + .long 3218730873 + .long 536870912 + .long 3160857217 + .long 1577996576 + .long 1068974276 + .long 0 + .long 3220176896 + .long 728580042 + .long 3218777800 + .long 1610612736 + .long 1014849296 + .long 1578746984 + .long 1069061160 + .long 0 + .long 3220176896 + .long 165764288 + .long 3218824464 + .long 3221225472 + .long 3160781666 + .long 1612193054 + .long 1069150328 + .long 0 + .long 3220176896 + .long 3623952103 + .long 3218870857 + .long 2684354560 + .long 1014502314 + .long 4133449816 + .long 1069241766 + .long 0 + .long 3220176896 + .long 2570175582 + .long 3218916974 + .long 1073741824 + .long 3159786766 + .long 1539072807 + .long 1069335462 + .long 0 + .long 3220176896 + .long 1535566729 + .long 3218962807 + .long 2147483648 + .long 3161805036 + .long 1945768569 + .long 1069431400 + .long 0 + .long 3220176896 + .long 939980347 + .long 3219008349 + .long 0 + .long 3160280457 + .long 3429717432 + .long 1069529566 + .long 0 + .long 3220176896 + .long 1391425750 + .long 3219053593 + .long 3221225472 + .long 1014878455 + .long 1312926554 + .long 1069588733 + .long 0 + .long 3220176896 + .long 3690502842 + .long 3219098532 + .long 3221225472 + .long 1009970207 + .long 1663679671 + .long 1069640022 + .long 0 + .long 3220176896 + .long 2269920951 + .long 3219135740 + .long 3758096384 + .long 1014188597 + .long 3952756490 + .long 1069692402 + .long 0 + .long 3220176896 + .long 2569207790 + .long 3219157895 + .long 1073741824 + .long 1015699969 + .long 69903290 + .long 1069745867 + .long 0 + .long 3220176896 + .long 1297975695 + .long 3219179888 + .long 3221225472 + .long 1015600087 + .long 2678847490 + .long 1069800406 + .long 0 + .long 3220176896 + .long 1411074851 + .long 3219201715 + .long 1610612736 + .long 1016001083 + .long 2272832445 + .long 1069856013 + .long 0 + .long 3220176896 + .long 1675549513 + .long 3219223373 + .long 3221225472 + .long 1015541490 + .long 1539668340 + .long 1069912679 + .long 0 + .long 3220176896 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 2482246777 + .long 1069970395 + .long 0 + .long 3220176896 + .long 2570316633 + .long 3219266169 + .long 1610612736 + .long 1015261105 + .long 2129093113 + .long 1070029153 + .long 0 + .long 3220176896 + .long 1289556703 + .long 3219287301 + .long 536870912 + .long 1015405172 + .long 1129922991 + .long 1070088944 + .long 0 + .long 3220176896 + .long 637203434 + .long 3219308251 + .long 3221225472 + .long 1011960193 + .long 3761365757 + .long 1070149758 + .long 0 + .long 3220176896 + .long 4242632757 + .long 3219329015 + .long 536870912 + .long 1013906630 + .long 752919289 + .long 1070211588 + .long 0 + .long 3220176896 + .long 2969983475 + .long 3219349592 + .long 2684354560 + .long 1015151795 + .long 3652612115 + .long 1070274422 + .long 0 + .long 3220176896 + .long 689983673 + .long 3219369978 + .long 3758096384 + .long 3162390053 + .long 1883353036 + .long 1070338253 + .long 0 + .long 3220176896 + .long 1397053140 + .long 3219390169 + .long 1610612736 + .long 3162728726 + .long 1403757309 + .long 1070403070 + .long 0 + .long 3220176896 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 3239527685 + .long 1070468863 + .long 0 + .long 3220176896 + .long 2610628921 + .long 3219429956 + .long 1610612736 + .long 1015185121 + .long 3489768009 + .long 1070535623 + .long 0 + .long 3220176896 + .long 3152274921 + .long 3219449546 + .long 3758096384 + .long 3160654483 + .long 2371640770 + .long 3218072499 + .long 0 + .long 3219128320 + .long 2460177814 + .long 3219468930 + .long 2147483648 + .long 1014633195 + .long 2309668539 + .long 3218003836 + .long 0 + .long 3219128320 + .long 881650848 + .long 3219488105 + .long 2147483648 + .long 1015502624 + .long 2081278341 + .long 3217934237 + .long 0 + .long 3219128320 + .long 3194290572 + .long 3219507067 + .long 2147483648 + .long 3162532330 + .long 3753901657 + .long 3217863712 + .long 0 + .long 3219128320 + .long 1427975391 + .long 3219525815 + .long 1073741824 + .long 1014124979 + .long 1403691706 + .long 3217792273 + .long 0 + .long 3219128320 + .long 636516413 + .long 3219544345 + .long 3758096384 + .long 3163307364 + .long 2583490354 + .long 3217719929 + .long 0 + .long 3219128320 + .long 1719614413 + .long 3219562654 + .long 0 + .long 1015799092 + .long 2546065654 + .long 3217646692 + .long 0 + .long 3219128320 + .long 1424664751 + .long 3219580740 + .long 3221225472 + .long 1015921667 + .long 1416934267 + .long 3217572573 + .long 0 + .long 3219128320 + .long 938475414 + .long 3219598600 + .long 0 + .long 3162559727 + .long 4187227697 + .long 3217497582 + .long 0 + .long 3219128320 + .long 1594061409 + .long 3219616231 + .long 2147483648 + .long 3161837518 + .long 3526603391 + .long 3217421732 + .long 0 + .long 3219128320 + .long 577417135 + .long 3219633631 + .long 2684354560 + .long 1014035767 + .long 1250776663 + .long 3217345034 + .long 0 + .long 3219128320 + .long 3814135665 + .long 3219650796 + .long 3221225472 + .long 1015662808 + .long 4019165092 + .long 3217267498 + .long 0 + .long 3219128320 + .long 201299822 + .long 3219667726 + .long 3758096384 + .long 1014428704 + .long 1852581091 + .long 3217189138 + .long 0 + .long 3219128320 + .long 263859903 + .long 3219684416 + .long 0 + .long 1015208636 + .long 2485417816 + .long 3217109964 + .long 0 + .long 3219128320 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 2586490530 + .long 3217028810 + .long 0 + .long 3219128320 + .long 2750387213 + .long 3219717068 + .long 2147483648 + .long 1013374889 + .long 1224902090 + .long 3216867281 + .long 0 + .long 3219128320 + .long 1234330619 + .long 3219733026 + .long 2684354560 + .long 3162756121 + .long 2285031318 + .long 3216704197 + .long 0 + .long 3219128320 + .long 4106737474 + .long 3219748734 + .long 2684354560 + .long 1015108729 + .long 3876290983 + .long 3216539583 + .long 0 + .long 3219128320 + .long 1207142209 + .long 3219764192 + .long 2147483648 + .long 1015221986 + .long 802660176 + .long 3216373465 + .long 0 + .long 3219128320 + .long 4012486548 + .long 3219779395 + .long 2684354560 + .long 3162185212 + .long 1726519029 + .long 3216205866 + .long 0 + .long 3219128320 + .long 2688952194 + .long 3219794343 + .long 0 + .long 1014048955 + .long 3382663878 + .long 3216036812 + .long 0 + .long 3219128320 + .long 453180130 + .long 3219809033 + .long 1073741824 + .long 1014927633 + .long 2598800519 + .long 3215750067 + .long 0 + .long 3219128320 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 1038988426 + .long 3215406294 + .long 0 + .long 3219128320 + .long 2653017361 + .long 3219837628 + .long 0 + .long 1015316414 + .long 1102361128 + .long 3215059765 + .long 0 + .long 3219128320 + .long 1477771776 + .long 3219851530 + .long 536870912 + .long 1015621338 + .long 2880516564 + .long 3214487049 + .long 0 + .long 3219128320 + .long 1056266002 + .long 3219865165 + .long 2684354560 + .long 1015985848 + .long 1220541286 + .long 3213681126 + .long 0 + .long 3219128320 + .long 1159294526 + .long 3219878531 + .long 536870912 + .long 1015793311 + .long 1279178457 + .long 3211590791 + .long 0 + .long 3219128320 + .long 1731563730 + .long 3219891626 + .long 536870912 + .long 3163023950 + .long 31019393 + .long 1065162441 + .long 0 + .long 3219128320 + .long 2892993834 + .long 3219904448 + .long 536870912 + .long 1015555495 + .long 3506991783 + .long 1066548842 + .long 0 + .long 3219128320 + .long 645027145 + .long 3219916996 + .long 3221225472 + .long 3160085887 + .long 2140183630 + .long 1067272748 + .long 0 + .long 3219128320 + .long 4051746225 + .long 3219929266 + .long 1610612736 + .long 1014423729 + .long 600368053 + .long 1067725893 + .long 0 + .long 3219128320 + .long 881357723 + .long 3219941259 + .long 3221225472 + .long 3161294538 + .long 913431823 + .long 1068092555 + .long 0 + .long 3219128320 + .long 557060597 + .long 3219952971 + .long 0 + .long 1012071286 + .long 1073154251 + .long 1068461489 + .long 0 + .long 3219128320 + .long 4093443164 + .long 3219964400 + .long 536870912 + .long 3162396513 + .long 3631910143 + .long 1068665791 + .long 0 + .long 3219128320 + .long 4097623923 + .long 3219975546 + .long 2684354560 + .long 1012824939 + .long 1380647130 + .long 1068852447 + .long 0 + .long 3219128320 + .long 1950234076 + .long 3219986407 + .long 536870912 + .long 1011941850 + .long 4049357271 + .long 1069040154 + .long 0 + .long 3219128320 + .long 3511535930 + .long 3219996980 + .long 2147483648 + .long 1015344978 + .long 1896722595 + .long 1069228886 + .long 0 + .long 3219128320 + .long 1942611595 + .long 3220007265 + .long 3221225472 + .long 1014926433 + .long 1699043957 + .long 1069418613 + .long 0 + .long 3219128320 + .long 3476196678 + .long 3220017259 + .long 0 + .long 3161741286 + .long 3296146332 + .long 3216969380 + .long 0 + .long 3218079744 + .long 1647878299 + .long 3220026962 + .long 3758096384 + .long 1014685415 + .long 3286832763 + .long 3216777748 + .long 0 + .long 3218079744 + .long 3066872380 + .long 3220036371 + .long 3221225472 + .long 3163044919 + .long 1962712856 + .long 3216585207 + .long 0 + .long 3218079744 + .long 1647164971 + .long 3220045486 + .long 2147483648 + .long 1015354602 + .long 3601629044 + .long 3216391785 + .long 0 + .long 3218079744 + .long 83265253 + .long 3220054305 + .long 1610612736 + .long 1015026887 + .long 165911977 + .long 3216197513 + .long 0 + .long 3218079744 + .long 1261158782 + .long 3220062826 + .long 2147483648 + .long 3163195192 + .long 1348311045 + .long 3216002418 + .long 0 + .long 3218079744 + .long 3964199186 + .long 3220071048 + .long 3758096384 + .long 1013017430 + .long 386665102 + .long 3215630470 + .long 0 + .long 3218079744 + .long 2873938189 + .long 3220078971 + .long 1610612736 + .long 1014827774 + .long 1991047213 + .long 3215237169 + .long 0 + .long 3218079744 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 4107121629 + .long 3214750787 + .long 0 + .long 3218079744 + .long 3370060660 + .long 3220093912 + .long 1610612736 + .long 3162270860 + .long 723478390 + .long 3213958438 + .long 0 + .long 3218079744 + .long 3882371427 + .long 3220100928 + .long 2147483648 + .long 3162407623 + .long 2382326656 + .long 3212045827 + .long 0 + .long 3218079744 + .long 2749658050 + .long 3220107640 + .long 1610612736 + .long 3162910986 + .long 2614369450 + .long 1065140432 + .long 0 + .long 3218079744 + .long 4220661975 + .long 3220114046 + .long 3221225472 + .long 3161795706 + .long 3587565429 + .long 1066624384 + .long 0 + .long 3218079744 + .long 4151720666 + .long 3220120146 + .long 0 + .long 1015155896 + .long 2886567144 + .long 1067426796 + .long 0 + .long 3218079744 + .long 2892293513 + .long 3220125939 + .long 2684354560 + .long 1014856623 + .long 1765797566 + .long 1067840895 + .long 0 + .long 3218079744 + .long 990588717 + .long 3220131424 + .long 3758096384 + .long 1014558209 + .long 240740309 + .long 1068244255 + .long 0 + .long 3218079744 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 2034433221 + .long 3215832935 + .long 0 + .long 3217031168 + .long 2745245815 + .long 3220141465 + .long 3221225472 + .long 3163049777 + .long 304938777 + .long 3215427665 + .long 0 + .long 3217031168 + .long 4201728937 + .long 3220146020 + .long 1610612736 + .long 3162157654 + .long 3299146087 + .long 3215021530 + .long 0 + .long 3217031168 + .long 617154971 + .long 3220150265 + .long 3758096384 + .long 1015950048 + .long 1953696209 + .long 3214295171 + .long 0 + .long 3217031168 + .long 2131272983 + .long 3220154197 + .long 3221225472 + .long 1015521448 + .long 3987691371 + .long 3213074188 + .long 0 + .long 3217031168 + .long 1905645377 + .long 3220157817 + .long 1610612736 + .long 3161571244 + .long 718380601 + .long 1063597621 + .long 0 + .long 3217031168 + .long 1893834707 + .long 3220161124 + .long 1610612736 + .long 3162631302 + .long 3272206680 + .long 1066288081 + .long 0 + .long 3217031168 + .long 4251821691 + .long 3220164117 + .long 2147483648 + .long 1014357359 + .long 257503056 + .long 1067164005 + .long 0 + .long 3217031168 + .long 2748392742 + .long 3220166797 + .long 536870912 + .long 1015578102 + .long 711626851 + .long 3214400320 + .long 0 + .long 3215982592 + .long 4240268041 + .long 3220169162 + .long 536870912 + .long 3161072611 + .long 2523975598 + .long 3213273348 + .long 0 + .long 3215982592 + .long 2902558778 + .long 3220171213 + .long 3221225472 + .long 3160744428 + .long 3237733378 + .long 1062425136 + .long 0 + .long 3215982592 + .long 1703834029 + .long 3220172949 + .long 3758096384 + .long 3162512012 + .long 1003003824 + .long 1066107496 + .long 0 + .long 3215982592 + .long 3816385918 + .long 3220174369 + .long 536870912 + .long 1013733308 + .long 2896342633 + .long 3212231467 + .long 0 + .long 3214934016 + .long 4026464093 + .long 3220175474 + .long 3221225472 + .long 1015592141 + .long 561145352 + .long 1065056936 + .long 0 + .long 3214934016 + .long 1619315981 + .long 3220176264 + .long 1073741824 + .long 1015100749 + .long 210035182 + .long 1064007864 + .long 0 + .long 3213885440 + .long 379294427 + .long 3220176738 + .long 3221225472 + .long 3162889635 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 210035182 + .long 3211491512 + .long 0 + .long 1066401792 + .long 379294427 + .long 3220176738 + .long 3221225472 + .long 3162889635 + .long 561145352 + .long 3212540584 + .long 0 + .long 1067450368 + .long 1619315981 + .long 3220176264 + .long 1073741824 + .long 1015100749 + .long 2896342633 + .long 1064747819 + .long 0 + .long 1067450368 + .long 4026464093 + .long 3220175474 + .long 3221225472 + .long 1015592141 + .long 1003003824 + .long 3213591144 + .long 0 + .long 1068498944 + .long 3816385918 + .long 3220174369 + .long 536870912 + .long 1013733308 + .long 3237733378 + .long 3209908784 + .long 0 + .long 1068498944 + .long 1703834029 + .long 3220172949 + .long 3758096384 + .long 3162512012 + .long 2523975598 + .long 1065789700 + .long 0 + .long 1068498944 + .long 2902558778 + .long 3220171213 + .long 3221225472 + .long 3160744428 + .long 711626851 + .long 1066916672 + .long 0 + .long 1068498944 + .long 4240268041 + .long 3220169162 + .long 536870912 + .long 3161072611 + .long 257503056 + .long 3214647653 + .long 0 + .long 1069547520 + .long 2748392742 + .long 3220166797 + .long 536870912 + .long 1015578102 + .long 3272206680 + .long 3213771729 + .long 0 + .long 1069547520 + .long 4251821691 + .long 3220164117 + .long 2147483648 + .long 1014357359 + .long 718380601 + .long 3211081269 + .long 0 + .long 1069547520 + .long 1893834707 + .long 3220161124 + .long 1610612736 + .long 3162631302 + .long 3987691371 + .long 1065590540 + .long 0 + .long 1069547520 + .long 1905645377 + .long 3220157817 + .long 1610612736 + .long 3161571244 + .long 1953696209 + .long 1066811523 + .long 0 + .long 1069547520 + .long 2131272983 + .long 3220154197 + .long 3221225472 + .long 1015521448 + .long 3299146087 + .long 1067537882 + .long 0 + .long 1069547520 + .long 617154971 + .long 3220150265 + .long 3758096384 + .long 1015950048 + .long 304938777 + .long 1067944017 + .long 0 + .long 1069547520 + .long 4201728937 + .long 3220146020 + .long 1610612736 + .long 3162157654 + .long 2034433221 + .long 1068349287 + .long 0 + .long 1069547520 + .long 2745245815 + .long 3220141465 + .long 3221225472 + .long 3163049777 + .long 240740309 + .long 3215727903 + .long 0 + .long 1070596096 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 1765797566 + .long 3215324543 + .long 0 + .long 1070596096 + .long 990588717 + .long 3220131424 + .long 3758096384 + .long 1014558209 + .long 2886567144 + .long 3214910444 + .long 0 + .long 1070596096 + .long 2892293513 + .long 3220125939 + .long 2684354560 + .long 1014856623 + .long 3587565429 + .long 3214108032 + .long 0 + .long 1070596096 + .long 4151720666 + .long 3220120146 + .long 0 + .long 1015155896 + .long 2614369450 + .long 3212624080 + .long 0 + .long 1070596096 + .long 4220661975 + .long 3220114046 + .long 3221225472 + .long 3161795706 + .long 2382326656 + .long 1064562179 + .long 0 + .long 1070596096 + .long 2749658050 + .long 3220107640 + .long 1610612736 + .long 3162910986 + .long 723478390 + .long 1066474790 + .long 0 + .long 1070596096 + .long 3882371427 + .long 3220100928 + .long 2147483648 + .long 3162407623 + .long 4107121629 + .long 1067267139 + .long 0 + .long 1070596096 + .long 3370060660 + .long 3220093912 + .long 1610612736 + .long 3162270860 + .long 1991047213 + .long 1067753521 + .long 0 + .long 1070596096 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 386665102 + .long 1068146822 + .long 0 + .long 1070596096 + .long 2873938189 + .long 3220078971 + .long 1610612736 + .long 1014827774 + .long 1348311045 + .long 1068518770 + .long 0 + .long 1070596096 + .long 3964199186 + .long 3220071048 + .long 3758096384 + .long 1013017430 + .long 165911977 + .long 1068713865 + .long 0 + .long 1070596096 + .long 1261158782 + .long 3220062826 + .long 2147483648 + .long 3163195192 + .long 3601629044 + .long 1068908137 + .long 0 + .long 1070596096 + .long 83265253 + .long 3220054305 + .long 1610612736 + .long 1015026887 + .long 1962712856 + .long 1069101559 + .long 0 + .long 1070596096 + .long 1647164971 + .long 3220045486 + .long 2147483648 + .long 1015354602 + .long 3286832763 + .long 1069294100 + .long 0 + .long 1070596096 + .long 3066872380 + .long 3220036371 + .long 3221225472 + .long 3163044919 + .long 3296146332 + .long 1069485732 + .long 0 + .long 1070596096 + .long 1647878299 + .long 3220026962 + .long 3758096384 + .long 1014685415 + .long 1699043957 + .long 3216902261 + .long 0 + .long 1071644672 + .long 3476196678 + .long 3220017259 + .long 0 + .long 3161741286 + .long 1896722595 + .long 3216712534 + .long 0 + .long 1071644672 + .long 1942611595 + .long 3220007265 + .long 3221225472 + .long 1014926433 + .long 4049357271 + .long 3216523802 + .long 0 + .long 1071644672 + .long 3511535930 + .long 3219996980 + .long 2147483648 + .long 1015344978 + .long 1380647130 + .long 3216336095 + .long 0 + .long 1071644672 + .long 1950234076 + .long 3219986407 + .long 536870912 + .long 1011941850 + .long 3631910143 + .long 3216149439 + .long 0 + .long 1071644672 + .long 4097623923 + .long 3219975546 + .long 2684354560 + .long 1012824939 + .long 1073154251 + .long 3215945137 + .long 0 + .long 1071644672 + .long 4093443164 + .long 3219964400 + .long 536870912 + .long 3162396513 + .long 913431823 + .long 3215576203 + .long 0 + .long 1071644672 + .long 557060597 + .long 3219952971 + .long 0 + .long 1012071286 + .long 600368053 + .long 3215209541 + .long 0 + .long 1071644672 + .long 881357723 + .long 3219941259 + .long 3221225472 + .long 3161294538 + .long 2140183630 + .long 3214756396 + .long 0 + .long 1071644672 + .long 4051746225 + .long 3219929266 + .long 1610612736 + .long 1014423729 + .long 3506991783 + .long 3214032490 + .long 0 + .long 1071644672 + .long 645027145 + .long 3219916996 + .long 3221225472 + .long 3160085887 + .long 31019393 + .long 3212646089 + .long 0 + .long 1071644672 + .long 2892993834 + .long 3219904448 + .long 536870912 + .long 1015555495 + .long 1279178457 + .long 1064107143 + .long 0 + .long 1071644672 + .long 1731563730 + .long 3219891626 + .long 536870912 + .long 3163023950 + .long 1220541286 + .long 1066197478 + .long 0 + .long 1071644672 + .long 1159294526 + .long 3219878531 + .long 536870912 + .long 1015793311 + .long 2880516564 + .long 1067003401 + .long 0 + .long 1071644672 + .long 1056266002 + .long 3219865165 + .long 2684354560 + .long 1015985848 + .long 1102361128 + .long 1067576117 + .long 0 + .long 1071644672 + .long 1477771776 + .long 3219851530 + .long 536870912 + .long 1015621338 + .long 1038988426 + .long 1067922646 + .long 0 + .long 1071644672 + .long 2653017361 + .long 3219837628 + .long 0 + .long 1015316414 + .long 2598800519 + .long 1068266419 + .long 0 + .long 1071644672 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 3382663878 + .long 1068553164 + .long 0 + .long 1071644672 + .long 453180130 + .long 3219809033 + .long 1073741824 + .long 1014927633 + .long 1726519029 + .long 1068722218 + .long 0 + .long 1071644672 + .long 2688952194 + .long 3219794343 + .long 0 + .long 1014048955 + .long 802660176 + .long 1068889817 + .long 0 + .long 1071644672 + .long 4012486548 + .long 3219779395 + .long 2684354560 + .long 3162185212 + .long 3876290983 + .long 1069055935 + .long 0 + .long 1071644672 + .long 1207142209 + .long 3219764192 + .long 2147483648 + .long 1015221986 + .long 2285031318 + .long 1069220549 + .long 0 + .long 1071644672 + .long 4106737474 + .long 3219748734 + .long 2684354560 + .long 1015108729 + .long 1224902090 + .long 1069383633 + .long 0 + .long 1071644672 + .long 1234330619 + .long 3219733026 + .long 2684354560 + .long 3162756121 + .long 2586490530 + .long 1069545162 + .long 0 + .long 1071644672 + .long 2750387213 + .long 3219717068 + .long 2147483648 + .long 1013374889 + .long 2485417816 + .long 1069626316 + .long 0 + .long 1071644672 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 1852581091 + .long 1069705490 + .long 0 + .long 1071644672 + .long 263859903 + .long 3219684416 + .long 0 + .long 1015208636 + .long 4019165092 + .long 1069783850 + .long 0 + .long 1071644672 + .long 201299822 + .long 3219667726 + .long 3758096384 + .long 1014428704 + .long 1250776663 + .long 1069861386 + .long 0 + .long 1071644672 + .long 3814135665 + .long 3219650796 + .long 3221225472 + .long 1015662808 + .long 3526603391 + .long 1069938084 + .long 0 + .long 1071644672 + .long 577417135 + .long 3219633631 + .long 2684354560 + .long 1014035767 + .long 4187227697 + .long 1070013934 + .long 0 + .long 1071644672 + .long 1594061409 + .long 3219616231 + .long 2147483648 + .long 3161837518 + .long 1416934267 + .long 1070088925 + .long 0 + .long 1071644672 + .long 938475414 + .long 3219598600 + .long 0 + .long 3162559727 + .long 2546065654 + .long 1070163044 + .long 0 + .long 1071644672 + .long 1424664751 + .long 3219580740 + .long 3221225472 + .long 1015921667 + .long 2583490354 + .long 1070236281 + .long 0 + .long 1071644672 + .long 1719614413 + .long 3219562654 + .long 0 + .long 1015799092 + .long 1403691706 + .long 1070308625 + .long 0 + .long 1071644672 + .long 636516413 + .long 3219544345 + .long 3758096384 + .long 3163307364 + .long 3753901657 + .long 1070380064 + .long 0 + .long 1071644672 + .long 1427975391 + .long 3219525815 + .long 1073741824 + .long 1014124979 + .long 2081278341 + .long 1070450589 + .long 0 + .long 1071644672 + .long 3194290572 + .long 3219507067 + .long 2147483648 + .long 3162532330 + .long 2309668539 + .long 1070520188 + .long 0 + .long 1071644672 + .long 881650848 + .long 3219488105 + .long 2147483648 + .long 1015502624 + .long 2371640770 + .long 1070588851 + .long 0 + .long 1071644672 + .long 2460177814 + .long 3219468930 + .long 2147483648 + .long 1014633195 + .long 3489768009 + .long 3218019271 + .long 0 + .long 1072693248 + .long 3152274921 + .long 3219449546 + .long 3758096384 + .long 3160654483 + .long 3239527685 + .long 3217952511 + .long 0 + .long 1072693248 + .long 2610628921 + .long 3219429956 + .long 1610612736 + .long 1015185121 + .long 1403757309 + .long 3217886718 + .long 0 + .long 1072693248 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 1883353036 + .long 3217821901 + .long 0 + .long 1072693248 + .long 1397053140 + .long 3219390169 + .long 1610612736 + .long 3162728726 + .long 3652612115 + .long 3217758070 + .long 0 + .long 1072693248 + .long 689983673 + .long 3219369978 + .long 3758096384 + .long 3162390053 + .long 752919289 + .long 3217695236 + .long 0 + .long 1072693248 + .long 2969983475 + .long 3219349592 + .long 2684354560 + .long 1015151795 + .long 3761365757 + .long 3217633406 + .long 0 + .long 1072693248 + .long 4242632757 + .long 3219329015 + .long 536870912 + .long 1013906630 + .long 1129922991 + .long 3217572592 + .long 0 + .long 1072693248 + .long 637203434 + .long 3219308251 + .long 3221225472 + .long 1011960193 + .long 2129093113 + .long 3217512801 + .long 0 + .long 1072693248 + .long 1289556703 + .long 3219287301 + .long 536870912 + .long 1015405172 + .long 2482246777 + .long 3217454043 + .long 0 + .long 1072693248 + .long 2570316633 + .long 3219266169 + .long 1610612736 + .long 1015261105 + .long 1539668340 + .long 3217396327 + .long 0 + .long 1072693248 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 2272832445 + .long 3217339661 + .long 0 + .long 1072693248 + .long 1675549513 + .long 3219223373 + .long 3221225472 + .long 1015541490 + .long 2678847490 + .long 3217284054 + .long 0 + .long 1072693248 + .long 1411074851 + .long 3219201715 + .long 1610612736 + .long 1016001083 + .long 69903290 + .long 3217229515 + .long 0 + .long 1072693248 + .long 1297975695 + .long 3219179888 + .long 3221225472 + .long 1015600087 + .long 3952756490 + .long 3217176050 + .long 0 + .long 1072693248 + .long 2569207790 + .long 3219157895 + .long 1073741824 + .long 1015699969 + .long 1663679671 + .long 3217123670 + .long 0 + .long 1072693248 + .long 2269920951 + .long 3219135740 + .long 3758096384 + .long 1014188597 + .long 1312926554 + .long 3217072381 + .long 0 + .long 1072693248 + .long 3690502842 + .long 3219098532 + .long 3221225472 + .long 1009970207 + .long 3429717432 + .long 3217013214 + .long 0 + .long 1072693248 + .long 1391425750 + .long 3219053593 + .long 3221225472 + .long 1014878455 + .long 1945768569 + .long 3216915048 + .long 0 + .long 1072693248 + .long 939980347 + .long 3219008349 + .long 0 + .long 3160280457 + .long 1539072807 + .long 3216819110 + .long 0 + .long 1072693248 + .long 1535566729 + .long 3218962807 + .long 2147483648 + .long 3161805036 + .long 4133449816 + .long 3216725414 + .long 0 + .long 1072693248 + .long 2570175582 + .long 3218916974 + .long 1073741824 + .long 3159786766 + .long 1612193054 + .long 3216633976 + .long 0 + .long 1072693248 + .long 3623952103 + .long 3218870857 + .long 2684354560 + .long 1014502314 + .long 1578746984 + .long 3216544808 + .long 0 + .long 1072693248 + .long 165764288 + .long 3218824464 + .long 3221225472 + .long 3160781666 + .long 1577996576 + .long 3216457924 + .long 0 + .long 1072693248 + .long 728580042 + .long 3218777800 + .long 1610612736 + .long 1014849296 + .long 1972483635 + .long 3216373337 + .long 0 + .long 1072693248 + .long 1135144330 + .long 3218730873 + .long 536870912 + .long 3160857217 + .long 1638976426 + .long 3216291060 + .long 0 + .long 1072693248 + .long 1673302999 + .long 3218683690 + .long 2147483648 + .long 3160835121 + .long 2255197647 + .long 3216211105 + .long 0 + .long 1072693248 + .long 2796464483 + .long 3218636258 + .long 3221225472 + .long 1013394669 + .long 3996842794 + .long 3216133484 + .long 0 + .long 1072693248 + .long 824036583 + .long 3218588585 + .long 0 + .long 3155796978 + .long 1234824733 + .long 3216058210 + .long 0 + .long 1072693248 + .long 821708191 + .long 3218540677 + .long 3758096384 + .long 1014254361 + .long 4002549419 + .long 3215985292 + .long 0 + .long 1072693248 + .long 3711903686 + .long 3218492541 + .long 1073741824 + .long 3159428395 + .long 2962723252 + .long 3215846895 + .long 0 + .long 1072693248 + .long 1974149085 + .long 3218444186 + .long 3221225472 + .long 1008664000 + .long 1296295961 + .long 3215710555 + .long 0 + .long 1072693248 + .long 1115219818 + .long 3218395618 + .long 0 + .long 3160555890 + .long 997322465 + .long 3215578993 + .long 0 + .long 1072693248 + .long 2484561409 + .long 3218346844 + .long 1073741824 + .long 3161508220 + .long 1261629236 + .long 3215452229 + .long 0 + .long 1072693248 + .long 3269558610 + .long 3218297872 + .long 536870912 + .long 1014221568 + .long 2476548698 + .long 3215330282 + .long 0 + .long 1072693248 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 1913604284 + .long 3215213171 + .long 0 + .long 1072693248 + .long 1062001470 + .long 3218199364 + .long 0 + .long 1013391572 + .long 2306566604 + .long 3215100913 + .long 0 + .long 1072693248 + .long 1655830135 + .long 3218149842 + .long 0 + .long 3161990338 + .long 3250111450 + .long 3214993525 + .long 0 + .long 1072693248 + .long 238550446 + .long 3218100152 + .long 2684354560 + .long 1006899917 + .long 2377770267 + .long 3214848032 + .long 0 + .long 1072693248 + .long 2065784603 + .long 3218020857 + .long 3758096384 + .long 1013198318 + .long 288924873 + .long 3214652833 + .long 0 + .long 1072693248 + .long 3846521617 + .long 3217920847 + .long 536870912 + .long 3160890258 + .long 1935888103 + .long 3214467466 + .long 0 + .long 1072693248 + .long 1786662755 + .long 3217820546 + .long 2147483648 + .long 1008398659 + .long 2660899430 + .long 3214291960 + .long 0 + .long 1072693248 + .long 632292433 + .long 3217719968 + .long 3758096384 + .long 1013479685 + .long 18115067 + .long 3214126342 + .long 0 + .long 1072693248 + .long 1013556747 + .long 3217619128 + .long 2684354560 + .long 1013083417 + .long 2346447124 + .long 3213970635 + .long 0 + .long 1072693248 + .long 3729833777 + .long 3217518041 + .long 3758096384 + .long 3160528366 + .long 1672287667 + .long 3213764289 + .long 0 + .long 1072693248 + .long 1149976518 + .long 3217416724 + .long 1610612736 + .long 3160748543 + .long 3451754846 + .long 3213492662 + .long 0 + .long 1072693248 + .long 2972270170 + .long 3217315190 + .long 1073741824 + .long 1012041122 + .long 1037482584 + .long 3213240992 + .long 0 + .long 1072693248 + .long 1854824762 + .long 3217213456 + .long 2684354560 + .long 3159437312 + .long 2592747447 + .long 3213009315 + .long 0 + .long 1072693248 + .long 3470456183 + .long 3217111536 + .long 1073741824 + .long 1013261123 + .long 2402293340 + .long 3212758471 + .long 0 + .long 1072693248 + .long 1453945614 + .long 3216987726 + .long 1610612736 + .long 3158976260 + .long 1227670166 + .long 3212375297 + .long 0 + .long 1072693248 + .long 3349070549 + .long 3216783237 + .long 3758096384 + .long 1009054621 + .long 393047345 + .long 3212032302 + .long 0 + .long 1072693248 + .long 3156849708 + .long 3216578470 + .long 3221225472 + .long 1010706200 + .long 1118107366 + .long 3211670787 + .long 0 + .long 1072693248 + .long 177906713 + .long 3216373456 + .long 3221225472 + .long 1011826722 + .long 4269262315 + .long 3211145810 + .long 0 + .long 1072693248 + .long 2462980598 + .long 3216168224 + .long 2684354560 + .long 1011458184 + .long 3810305407 + .long 3210663220 + .long 0 + .long 1072693248 + .long 2046304480 + .long 3215943022 + .long 3758096384 + .long 1008919019 + .long 220529721 + .long 3209935929 + .long 0 + .long 1072693248 + .long 4044216340 + .long 3215531877 + .long 0 + .long 1009324733 + .long 69373323 + .long 3209049152 + .long 0 + .long 1072693248 + .long 1972655565 + .long 3215120485 + .long 1073741824 + .long 3156641526 + .long 3650591271 + .long 3207838971 + .long 0 + .long 1072693248 + .long 4154680958 + .long 3214483797 + .long 0 + .long 1006312803 + .long 2376373521 + .long 3205741868 + .long 0 + .long 1072693248 + .long 4242458500 + .long 3213435345 + .long 2684354560 + .long 3156838286 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 239972940 + .long 1089470464 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 1431651400 + .long 3217380693 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 2880656668 + .long 1065423119 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 0 + .long 3219128320 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 1431653583 + .long 1067799893 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .long 2976101079 + .long 3210133866 + .type __svml_dsin_data_internal_ha,@object + .size __svml_dsin_data_internal_ha,17280 + .align 64 +__svml_dsin_reduction_data_internal: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 20 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 40 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 81 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 162 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 325 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 651 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1173554908 + .long 1 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2347109817 + .long 2 + .long 0 + .long 0 + .long 0 + .long 0 + .long 399252338 + .long 5 + .long 0 + .long 0 + .long 0 + .long 0 + .long 798504676 + .long 10 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1597009353 + .long 20 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3194018707 + .long 40 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2093070119 + .long 81 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4186140238 + .long 162 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4077313180 + .long 325 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3859659065 + .long 651 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3424350834 + .long 1303 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2553734372 + .long 2607 + .long 0 + .long 0 + .long 0 + .long 0 + .long 812501448 + .long 5215 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1625002897 + .long 10430 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3250005794 + .long 20860 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2205044292 + .long 41721 + .long 0 + .long 0 + .long 0 + .long 0 + .long 115121288 + .long 83443 + .long 0 + .long 0 + .long 0 + .long 0 + .long 230242576 + .long 166886 + .long 0 + .long 0 + .long 0 + .long 0 + .long 460485152 + .long 333772 + .long 0 + .long 0 + .long 0 + .long 0 + .long 920970305 + .long 667544 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1841940610 + .long 1335088 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3683881221 + .long 2670176 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3072795146 + .long 5340353 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1850622997 + .long 10680707 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3701245994 + .long 21361414 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3107524692 + .long 42722829 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1920082089 + .long 85445659 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3840164178 + .long 170891318 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3385361061 + .long 341782637 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2475754826 + .long 683565275 + .long 0 + .long 0 + .long 0 + .long 0 + .long 656542356 + .long 1367130551 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1313084713 + .long 2734261102 + .long 0 + .long 0 + .long 1 + .long 0 + .long 2626169427 + .long 1173554908 + .long 0 + .long 0 + .long 2 + .long 0 + .long 957371559 + .long 2347109817 + .long 0 + .long 0 + .long 5 + .long 0 + .long 1914743119 + .long 399252338 + .long 0 + .long 0 + .long 10 + .long 0 + .long 3829486239 + .long 798504676 + .long 0 + .long 0 + .long 20 + .long 0 + .long 3364005183 + .long 1597009353 + .long 0 + .long 0 + .long 40 + .long 0 + .long 2433043071 + .long 3194018707 + .long 0 + .long 0 + .long 81 + .long 0 + .long 571118846 + .long 2093070119 + .long 0 + .long 0 + .long 162 + .long 0 + .long 1142237692 + .long 4186140238 + .long 0 + .long 0 + .long 325 + .long 0 + .long 2284475384 + .long 4077313180 + .long 0 + .long 0 + .long 651 + .long 0 + .long 273983472 + .long 3859659065 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 547966945 + .long 3424350834 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 1095933890 + .long 2553734372 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 2191867780 + .long 812501448 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 88768265 + .long 1625002897 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 177536531 + .long 3250005794 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 355073063 + .long 2205044292 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 710146126 + .long 115121288 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 1420292253 + .long 230242576 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 2840584506 + .long 460485152 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 1386201717 + .long 920970305 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 2772403434 + .long 1841940610 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 1249839573 + .long 3683881221 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 2499679147 + .long 3072795146 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 704390999 + .long 1850622997 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 1408781999 + .long 3701245994 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 2817563999 + .long 3107524692 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 1340160702 + .long 1920082089 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 2680321405 + .long 3840164178 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 1065675514 + .long 3385361061 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 2131351028 + .long 2475754826 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 4262702056 + .long 656542356 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 4230436817 + .long 1313084713 + .long 0 + .long 0 + .long 1173554908 + .long 1 + .long 4165906339 + .long 2626169427 + .long 0 + .long 0 + .long 2347109817 + .long 2 + .long 4036845383 + .long 957371559 + .long 0 + .long 0 + .long 399252338 + .long 5 + .long 3778723471 + .long 1914743119 + .long 0 + .long 0 + .long 798504676 + .long 10 + .long 3262479647 + .long 3829486239 + .long 0 + .long 0 + .long 1597009353 + .long 20 + .long 2229991998 + .long 3364005183 + .long 0 + .long 0 + .long 3194018707 + .long 40 + .long 165016701 + .long 2433043071 + .long 0 + .long 0 + .long 2093070119 + .long 81 + .long 330033402 + .long 571118846 + .long 0 + .long 0 + .long 4186140238 + .long 162 + .long 660066805 + .long 1142237692 + .long 0 + .long 0 + .long 4077313180 + .long 325 + .long 1320133610 + .long 2284475384 + .long 0 + .long 0 + .long 3859659065 + .long 651 + .long 2640267220 + .long 273983472 + .long 0 + .long 0 + .long 3424350834 + .long 1303 + .long 985567145 + .long 547966945 + .long 0 + .long 0 + .long 2553734372 + .long 2607 + .long 1971134291 + .long 1095933890 + .long 0 + .long 0 + .long 812501448 + .long 5215 + .long 3942268582 + .long 2191867780 + .long 0 + .long 0 + .long 1625002897 + .long 10430 + .long 3589569869 + .long 88768265 + .long 0 + .long 0 + .long 3250005794 + .long 20860 + .long 2884172442 + .long 177536531 + .long 0 + .long 0 + .long 2205044292 + .long 41721 + .long 1473377588 + .long 355073063 + .long 0 + .long 0 + .long 115121288 + .long 83443 + .long 2946755177 + .long 710146126 + .long 0 + .long 0 + .long 230242576 + .long 166886 + .long 1598543059 + .long 1420292253 + .long 0 + .long 0 + .long 460485152 + .long 333772 + .long 3197086118 + .long 2840584506 + .long 0 + .long 0 + .long 920970305 + .long 667544 + .long 2099204941 + .long 1386201717 + .long 0 + .long 0 + .long 1841940610 + .long 1335088 + .long 4198409883 + .long 2772403434 + .long 0 + .long 0 + .long 3683881221 + .long 2670176 + .long 4101852471 + .long 1249839573 + .long 0 + .long 0 + .long 3072795146 + .long 5340353 + .long 3908737646 + .long 2499679147 + .long 0 + .long 0 + .long 1850622997 + .long 10680707 + .long 3522507997 + .long 704390999 + .long 0 + .long 0 + .long 3701245994 + .long 21361414 + .long 2750048699 + .long 1408781999 + .long 0 + .long 0 + .long 3107524692 + .long 42722829 + .long 1205130103 + .long 2817563999 + .long 0 + .long 0 + .long 1920082089 + .long 85445659 + .long 2410260206 + .long 1340160702 + .long 0 + .long 0 + .long 3840164178 + .long 170891318 + .long 525553116 + .long 2680321405 + .long 0 + .long 0 + .long 3385361061 + .long 341782637 + .long 1051106232 + .long 1065675514 + .long 0 + .long 0 + .long 2475754826 + .long 683565275 + .long 2102212464 + .long 2131351028 + .long 0 + .long 0 + .long 656542356 + .long 1367130551 + .long 4204424928 + .long 4262702056 + .long 0 + .long 0 + .long 1313084713 + .long 2734261102 + .long 4113882560 + .long 4230436817 + .long 1 + .long 0 + .long 2626169427 + .long 1173554908 + .long 3932797825 + .long 4165906339 + .long 2 + .long 0 + .long 957371559 + .long 2347109817 + .long 3570628355 + .long 4036845383 + .long 5 + .long 0 + .long 1914743119 + .long 399252338 + .long 2846289414 + .long 3778723471 + .long 10 + .long 0 + .long 3829486239 + .long 798504676 + .long 1397611533 + .long 3262479647 + .long 20 + .long 0 + .long 3364005183 + .long 1597009353 + .long 2795223067 + .long 2229991998 + .long 40 + .long 0 + .long 2433043071 + .long 3194018707 + .long 1295478838 + .long 165016701 + .long 81 + .long 0 + .long 571118846 + .long 2093070119 + .long 2590957677 + .long 330033402 + .long 162 + .long 0 + .long 1142237692 + .long 4186140238 + .long 886948059 + .long 660066805 + .long 325 + .long 0 + .long 2284475384 + .long 4077313180 + .long 1773896118 + .long 1320133610 + .long 651 + .long 0 + .long 273983472 + .long 3859659065 + .long 3547792237 + .long 2640267220 + .long 1303 + .long 0 + .long 547966945 + .long 3424350834 + .long 2800617179 + .long 985567145 + .long 2607 + .long 0 + .long 1095933890 + .long 2553734372 + .long 1306267062 + .long 1971134291 + .long 5215 + .long 0 + .long 2191867780 + .long 812501448 + .long 2612534124 + .long 3942268582 + .long 10430 + .long 0 + .long 88768265 + .long 1625002897 + .long 930100952 + .long 3589569869 + .long 20860 + .long 0 + .long 177536531 + .long 3250005794 + .long 1860201905 + .long 2884172442 + .long 41721 + .long 0 + .long 355073063 + .long 2205044292 + .long 3720403810 + .long 1473377588 + .long 83443 + .long 0 + .long 710146126 + .long 115121288 + .long 3145840325 + .long 2946755177 + .long 166886 + .long 0 + .long 1420292253 + .long 230242576 + .long 1996713354 + .long 1598543059 + .long 333772 + .long 0 + .long 2840584506 + .long 460485152 + .long 3993426708 + .long 3197086118 + .long 667544 + .long 0 + .long 1386201717 + .long 920970305 + .long 3691886121 + .long 2099204941 + .long 1335088 + .long 0 + .long 2772403434 + .long 1841940610 + .long 3088804946 + .long 4198409883 + .long 2670176 + .long 0 + .long 1249839573 + .long 3683881221 + .long 1882642597 + .long 4101852471 + .long 5340353 + .long 0 + .long 2499679147 + .long 3072795146 + .long 3765285194 + .long 3908737646 + .long 10680707 + .long 0 + .long 704390999 + .long 1850622997 + .long 3235603093 + .long 3522507997 + .long 21361414 + .long 0 + .long 1408781999 + .long 3701245994 + .long 2176238891 + .long 2750048699 + .long 42722829 + .long 0 + .long 2817563999 + .long 3107524692 + .long 57510486 + .long 1205130103 + .long 85445659 + .long 0 + .long 1340160702 + .long 1920082089 + .long 115020972 + .long 2410260206 + .long 170891318 + .long 0 + .long 2680321405 + .long 3840164178 + .long 230041945 + .long 525553116 + .long 341782637 + .long 0 + .long 1065675514 + .long 3385361061 + .long 460083891 + .long 1051106232 + .long 683565275 + .long 0 + .long 2131351028 + .long 2475754826 + .long 920167782 + .long 2102212464 + .long 1367130551 + .long 0 + .long 4262702056 + .long 656542356 + .long 1840335564 + .long 4204424928 + .long 2734261102 + .long 0 + .long 4230436817 + .long 1313084713 + .long 3680671129 + .long 4113882560 + .long 1173554908 + .long 1 + .long 4165906339 + .long 2626169427 + .long 3066374962 + .long 3932797825 + .long 2347109817 + .long 2 + .long 4036845383 + .long 957371559 + .long 1837782628 + .long 3570628355 + .long 399252338 + .long 5 + .long 3778723471 + .long 1914743119 + .long 3675565257 + .long 2846289414 + .long 798504676 + .long 10 + .long 3262479647 + .long 3829486239 + .long 3056163219 + .long 1397611533 + .long 1597009353 + .long 20 + .long 2229991998 + .long 3364005183 + .long 1817359143 + .long 2795223067 + .long 3194018707 + .long 40 + .long 165016701 + .long 2433043071 + .long 3634718287 + .long 1295478838 + .long 2093070119 + .long 81 + .long 330033402 + .long 571118846 + .long 2974469278 + .long 2590957677 + .long 4186140238 + .long 162 + .long 660066805 + .long 1142237692 + .long 1653971260 + .long 886948059 + .long 4077313180 + .long 325 + .long 1320133610 + .long 2284475384 + .long 3307942520 + .long 1773896118 + .long 3859659065 + .long 651 + .long 2640267220 + .long 273983472 + .long 2320917745 + .long 3547792237 + .long 3424350834 + .long 1303 + .long 985567145 + .long 547966945 + .long 346868194 + .long 2800617179 + .long 2553734372 + .long 2607 + .long 1971134291 + .long 1095933890 + .long 693736388 + .long 1306267062 + .long 812501448 + .long 5215 + .long 3942268582 + .long 2191867780 + .long 1387472776 + .long 2612534124 + .long 1625002897 + .long 10430 + .long 3589569869 + .long 88768265 + .long 2774945552 + .long 930100952 + .long 3250005794 + .long 20860 + .long 2884172442 + .long 177536531 + .long 1254923809 + .long 1860201905 + .long 2205044292 + .long 41721 + .long 1473377588 + .long 355073063 + .long 2509847619 + .long 3720403810 + .long 115121288 + .long 83443 + .long 2946755177 + .long 710146126 + .long 724727943 + .long 3145840325 + .long 230242576 + .long 166886 + .long 1598543059 + .long 1420292253 + .long 1449455886 + .long 1996713354 + .long 460485152 + .long 333772 + .long 3197086118 + .long 2840584506 + .long 2898911772 + .long 3993426708 + .long 920970305 + .long 667544 + .long 2099204941 + .long 1386201717 + .long 1502856249 + .long 3691886121 + .long 1841940610 + .long 1335088 + .long 4198409883 + .long 2772403434 + .long 3005712498 + .long 3088804946 + .long 3683881221 + .long 2670176 + .long 4101852471 + .long 1249839573 + .long 1716457700 + .long 1882642597 + .long 3072795146 + .long 5340353 + .long 3908737646 + .long 2499679147 + .long 3432915400 + .long 3765285194 + .long 1850622997 + .long 10680707 + .long 3522507997 + .long 704390999 + .long 2570863504 + .long 3235603093 + .long 3701245994 + .long 21361414 + .long 2750048699 + .long 1408781999 + .long 846759712 + .long 2176238891 + .long 3107524692 + .long 42722829 + .long 1205130103 + .long 2817563999 + .long 1693519425 + .long 57510486 + .long 1920082089 + .long 85445659 + .long 2410260206 + .long 1340160702 + .long 3387038850 + .long 115020972 + .long 3840164178 + .long 170891318 + .long 525553116 + .long 2680321405 + .long 2479110404 + .long 230041945 + .long 3385361061 + .long 341782637 + .long 1051106232 + .long 1065675514 + .long 663253512 + .long 460083891 + .long 2475754826 + .long 683565275 + .long 2102212464 + .long 2131351028 + .long 1326507024 + .long 920167782 + .long 656542356 + .long 1367130551 + .long 4204424928 + .long 4262702056 + .long 2653014048 + .long 1840335564 + .long 1313084713 + .long 2734261102 + .long 4113882560 + .long 4230436817 + .long 1011060801 + .long 3680671129 + .long 2626169427 + .long 1173554908 + .long 3932797825 + .long 4165906339 + .long 2022121603 + .long 3066374962 + .long 957371559 + .long 2347109817 + .long 3570628355 + .long 4036845383 + .long 4044243207 + .long 1837782628 + .long 1914743119 + .long 399252338 + .long 2846289414 + .long 3778723471 + .long 3793519119 + .long 3675565257 + .long 3829486239 + .long 798504676 + .long 1397611533 + .long 3262479647 + .long 3292070943 + .long 3056163219 + .long 3364005183 + .long 1597009353 + .long 2795223067 + .long 2229991998 + .long 2289174591 + .long 1817359143 + .long 2433043071 + .long 3194018707 + .long 1295478838 + .long 165016701 + .long 283381887 + .long 3634718287 + .long 571118846 + .long 2093070119 + .long 2590957677 + .long 330033402 + .long 566763775 + .long 2974469278 + .long 1142237692 + .long 4186140238 + .long 886948059 + .long 660066805 + .long 1133527550 + .long 1653971260 + .long 2284475384 + .long 4077313180 + .long 1773896118 + .long 1320133610 + .long 2267055100 + .long 3307942520 + .long 273983472 + .long 3859659065 + .long 3547792237 + .long 2640267220 + .long 239142905 + .long 2320917745 + .long 547966945 + .long 3424350834 + .long 2800617179 + .long 985567145 + .long 478285810 + .long 346868194 + .long 1095933890 + .long 2553734372 + .long 1306267062 + .long 1971134291 + .long 956571621 + .long 693736388 + .long 2191867780 + .long 812501448 + .long 2612534124 + .long 3942268582 + .long 1913143242 + .long 1387472776 + .long 88768265 + .long 1625002897 + .long 930100952 + .long 3589569869 + .long 3826286484 + .long 2774945552 + .long 177536531 + .long 3250005794 + .long 1860201905 + .long 2884172442 + .long 3357605672 + .long 1254923809 + .long 355073063 + .long 2205044292 + .long 3720403810 + .long 1473377588 + .long 2420244049 + .long 2509847619 + .long 710146126 + .long 115121288 + .long 3145840325 + .long 2946755177 + .long 545520802 + .long 724727943 + .long 1420292253 + .long 230242576 + .long 1996713354 + .long 1598543059 + .long 1091041605 + .long 1449455886 + .long 2840584506 + .long 460485152 + .long 3993426708 + .long 3197086118 + .long 2182083211 + .long 2898911772 + .long 1386201717 + .long 920970305 + .long 3691886121 + .long 2099204941 + .long 69199126 + .long 1502856249 + .long 2772403434 + .long 1841940610 + .long 3088804946 + .long 4198409883 + .long 138398252 + .long 3005712498 + .long 1249839573 + .long 3683881221 + .long 1882642597 + .long 4101852471 + .long 276796504 + .long 1716457700 + .long 2499679147 + .long 3072795146 + .long 3765285194 + .long 3908737646 + .long 553593009 + .long 3432915400 + .long 704390999 + .long 1850622997 + .long 3235603093 + .long 3522507997 + .long 1107186019 + .long 2570863504 + .long 1408781999 + .long 3701245994 + .long 2176238891 + .long 2750048699 + .long 2214372039 + .long 846759712 + .long 2817563999 + .long 3107524692 + .long 57510486 + .long 1205130103 + .long 133776782 + .long 1693519425 + .long 1340160702 + .long 1920082089 + .long 115020972 + .long 2410260206 + .long 267553565 + .long 3387038850 + .long 2680321405 + .long 3840164178 + .long 230041945 + .long 525553116 + .long 535107130 + .long 2479110404 + .long 1065675514 + .long 3385361061 + .long 460083891 + .long 1051106232 + .long 1070214261 + .long 663253512 + .long 2131351028 + .long 2475754826 + .long 920167782 + .long 2102212464 + .long 2140428522 + .long 1326507024 + .long 4262702056 + .long 656542356 + .long 1840335564 + .long 4204424928 + .long 4280857045 + .long 2653014048 + .long 4230436817 + .long 1313084713 + .long 3680671129 + .long 4113882560 + .long 4266746795 + .long 1011060801 + .long 4165906339 + .long 2626169427 + .long 3066374962 + .long 3932797825 + .long 4238526295 + .long 2022121603 + .long 4036845383 + .long 957371559 + .long 1837782628 + .long 3570628355 + .long 4182085295 + .long 4044243207 + .long 3778723471 + .long 1914743119 + .long 3675565257 + .long 2846289414 + .long 4069203294 + .long 3793519119 + .long 3262479647 + .long 3829486239 + .long 3056163219 + .long 1397611533 + .long 3843439293 + .long 3292070943 + .long 2229991998 + .long 3364005183 + .long 1817359143 + .long 2795223067 + .long 3391911291 + .long 2289174591 + .long 165016701 + .long 2433043071 + .long 3634718287 + .long 1295478838 + .long 2488855287 + .long 283381887 + .long 330033402 + .long 571118846 + .long 2974469278 + .long 2590957677 + .long 682743279 + .long 566763775 + .long 660066805 + .long 1142237692 + .long 1653971260 + .long 886948059 + .long 1365486558 + .long 1133527550 + .long 1320133610 + .long 2284475384 + .long 3307942520 + .long 1773896118 + .long 2730973117 + .long 2267055100 + .long 2640267220 + .long 273983472 + .long 2320917745 + .long 3547792237 + .long 1166978938 + .long 239142905 + .long 985567145 + .long 547966945 + .long 346868194 + .long 2800617179 + .long 2333957877 + .long 478285810 + .long 1971134291 + .long 1095933890 + .long 693736388 + .long 1306267062 + .long 372948459 + .long 956571621 + .long 3942268582 + .long 2191867780 + .long 1387472776 + .long 2612534124 + .long 745896919 + .long 1913143242 + .long 3589569869 + .long 88768265 + .long 2774945552 + .long 930100952 + .long 1491793838 + .long 3826286484 + .long 2884172442 + .long 177536531 + .long 1254923809 + .long 1860201905 + .long 2983587677 + .long 3357605672 + .long 1473377588 + .long 355073063 + .long 2509847619 + .long 3720403810 + .long 1672208059 + .long 2420244049 + .long 2946755177 + .long 710146126 + .long 724727943 + .long 3145840325 + .long 3344416119 + .long 545520802 + .long 1598543059 + .long 1420292253 + .long 1449455886 + .long 1996713354 + .long 2393864943 + .long 1091041605 + .long 3197086118 + .long 2840584506 + .long 2898911772 + .long 3993426708 + .long 492762590 + .long 2182083211 + .long 2099204941 + .long 1386201717 + .long 1502856249 + .long 3691886121 + .long 985525180 + .long 69199126 + .long 4198409883 + .long 2772403434 + .long 3005712498 + .long 3088804946 + .long 1971050360 + .long 138398252 + .long 4101852471 + .long 1249839573 + .long 1716457700 + .long 1882642597 + .long 3942100721 + .long 276796504 + .long 3908737646 + .long 2499679147 + .long 3432915400 + .long 3765285194 + .long 3589234146 + .long 553593009 + .long 3522507997 + .long 704390999 + .long 2570863504 + .long 3235603093 + .long 2883500997 + .long 1107186019 + .long 2750048699 + .long 1408781999 + .long 846759712 + .long 2176238891 + .long 1472034698 + .long 2214372039 + .long 1205130103 + .long 2817563999 + .long 1693519425 + .long 57510486 + .long 2944069397 + .long 133776782 + .long 2410260206 + .long 1340160702 + .long 3387038850 + .long 115020972 + .long 1593171499 + .long 267553565 + .long 525553116 + .long 2680321405 + .long 2479110404 + .long 230041945 + .long 3186342998 + .long 535107130 + .long 1051106232 + .long 1065675514 + .long 663253512 + .long 460083891 + .long 2077718700 + .long 1070214261 + .long 2102212464 + .long 2131351028 + .long 1326507024 + .long 920167782 + .long 4155437400 + .long 2140428522 + .long 4204424928 + .long 4262702056 + .long 2653014048 + .long 1840335564 + .long 4015907504 + .long 4280857045 + .long 4113882560 + .long 4230436817 + .long 1011060801 + .long 3680671129 + .long 3736847713 + .long 4266746795 + .long 3932797825 + .long 4165906339 + .long 2022121603 + .long 3066374962 + .long 3178728131 + .long 4238526295 + .long 3570628355 + .long 4036845383 + .long 4044243207 + .long 1837782628 + .long 2062488966 + .long 4182085295 + .long 2846289414 + .long 3778723471 + .long 3793519119 + .long 3675565257 + .long 4124977933 + .long 4069203294 + .long 1397611533 + .long 3262479647 + .long 3292070943 + .long 3056163219 + .long 3954988571 + .long 3843439293 + .long 2795223067 + .long 2229991998 + .long 2289174591 + .long 1817359143 + .long 3615009846 + .long 3391911291 + .long 1295478838 + .long 165016701 + .long 283381887 + .long 3634718287 + .long 2935052397 + .long 2488855287 + .long 2590957677 + .long 330033402 + .long 566763775 + .long 2974469278 + .long 1575137499 + .long 682743279 + .long 886948059 + .long 660066805 + .long 1133527550 + .long 1653971260 + .long 3150274999 + .long 1365486558 + .long 1773896118 + .long 1320133610 + .long 2267055100 + .long 3307942520 + .long 2005582702 + .long 2730973117 + .long 3547792237 + .long 2640267220 + .long 239142905 + .long 2320917745 + .long 4011165404 + .long 1166978938 + .long 2800617179 + .long 985567145 + .long 478285810 + .long 346868194 + .long 3727363513 + .long 2333957877 + .long 1306267062 + .long 1971134291 + .long 956571621 + .long 693736388 + .long 3159759730 + .long 372948459 + .long 2612534124 + .long 3942268582 + .long 1913143242 + .long 1387472776 + .long 2024552164 + .long 745896919 + .long 930100952 + .long 3589569869 + .long 3826286484 + .long 2774945552 + .long 4049104329 + .long 1491793838 + .long 1860201905 + .long 2884172442 + .long 3357605672 + .long 1254923809 + .long 3803241362 + .long 2983587677 + .long 3720403810 + .long 1473377588 + .long 2420244049 + .long 2509847619 + .long 3311515428 + .long 1672208059 + .long 3145840325 + .long 2946755177 + .long 545520802 + .long 724727943 + .long 2328063560 + .long 3344416119 + .long 1996713354 + .long 1598543059 + .long 1091041605 + .long 1449455886 + .long 361159825 + .long 2393864943 + .long 3993426708 + .long 3197086118 + .long 2182083211 + .long 2898911772 + .long 722319651 + .long 492762590 + .long 3691886121 + .long 2099204941 + .long 69199126 + .long 1502856249 + .long 1444639302 + .long 985525180 + .long 3088804946 + .long 4198409883 + .long 138398252 + .long 3005712498 + .long 2889278605 + .long 1971050360 + .long 1882642597 + .long 4101852471 + .long 276796504 + .long 1716457700 + .long 1483589915 + .long 3942100721 + .long 3765285194 + .long 3908737646 + .long 553593009 + .long 3432915400 + .long 2967179831 + .long 3589234146 + .long 3235603093 + .long 3522507997 + .long 1107186019 + .long 2570863504 + .long 1639392366 + .long 2883500997 + .long 2176238891 + .long 2750048699 + .long 2214372039 + .long 846759712 + .long 3278784732 + .long 1472034698 + .long 57510486 + .long 1205130103 + .long 133776782 + .long 1693519425 + .long 2262602168 + .long 2944069397 + .long 115020972 + .long 2410260206 + .long 267553565 + .long 3387038850 + .long 230237041 + .long 1593171499 + .long 230041945 + .long 525553116 + .long 535107130 + .long 2479110404 + .long 460474083 + .long 3186342998 + .long 460083891 + .long 1051106232 + .long 1070214261 + .long 663253512 + .long 920948167 + .long 2077718700 + .long 920167782 + .long 2102212464 + .long 2140428522 + .long 1326507024 + .long 1841896334 + .long 4155437400 + .long 1840335564 + .long 4204424928 + .long 4280857045 + .long 2653014048 + .long 3683792669 + .long 4015907504 + .long 3680671129 + .long 4113882560 + .long 4266746795 + .long 1011060801 + .long 3072618042 + .long 3736847713 + .long 3066374962 + .long 3932797825 + .long 4238526295 + .long 2022121603 + .long 1850268788 + .long 3178728131 + .long 1837782628 + .long 3570628355 + .long 4182085295 + .long 4044243207 + .long 3700537577 + .long 2062488966 + .long 3675565257 + .long 2846289414 + .long 4069203294 + .long 3793519119 + .long 3106107858 + .long 4124977933 + .long 3056163219 + .long 1397611533 + .long 3843439293 + .long 3292070943 + .long 1917248420 + .long 3954988571 + .long 1817359143 + .long 2795223067 + .long 3391911291 + .long 2289174591 + .long 3834496840 + .long 3615009846 + .long 3634718287 + .long 1295478838 + .long 2488855287 + .long 283381887 + .long 3374026384 + .long 2935052397 + .long 2974469278 + .long 2590957677 + .long 682743279 + .long 566763775 + .long 2453085473 + .long 1575137499 + .long 1653971260 + .long 886948059 + .long 1365486558 + .long 1133527550 + .long 611203650 + .long 3150274999 + .long 3307942520 + .long 1773896118 + .long 2730973117 + .long 2267055100 + .long 1222407300 + .long 2005582702 + .long 2320917745 + .long 3547792237 + .long 1166978938 + .long 239142905 + .long 2444814601 + .long 4011165404 + .long 346868194 + .long 2800617179 + .long 2333957877 + .long 478285810 + .long 594661906 + .long 3727363513 + .long 693736388 + .long 1306267062 + .long 372948459 + .long 956571621 + .long 1189323812 + .long 3159759730 + .long 1387472776 + .long 2612534124 + .long 745896919 + .long 1913143242 + .long 2378647625 + .long 2024552164 + .long 2774945552 + .long 930100952 + .long 1491793838 + .long 3826286484 + .long 462327955 + .long 4049104329 + .long 1254923809 + .long 1860201905 + .long 2983587677 + .long 3357605672 + .long 924655910 + .long 3803241362 + .long 2509847619 + .long 3720403810 + .long 1672208059 + .long 2420244049 + .long 1849311821 + .long 3311515428 + .long 724727943 + .long 3145840325 + .long 3344416119 + .long 545520802 + .long 3698623643 + .long 2328063560 + .long 1449455886 + .long 1996713354 + .long 2393864943 + .long 1091041605 + .long 3102279991 + .long 361159825 + .long 2898911772 + .long 3993426708 + .long 492762590 + .long 2182083211 + .long 1909592686 + .long 722319651 + .long 1502856249 + .long 3691886121 + .long 985525180 + .long 69199126 + .long 3819185373 + .long 1444639302 + .long 3005712498 + .long 3088804946 + .long 1971050360 + .long 138398252 + .long 3343403450 + .long 2889278605 + .long 1716457700 + .long 1882642597 + .long 3942100721 + .long 276796504 + .long 2391839604 + .long 1483589915 + .long 3432915400 + .long 3765285194 + .long 3589234146 + .long 553593009 + .long 488711913 + .long 2967179831 + .long 2570863504 + .long 3235603093 + .long 2883500997 + .long 1107186019 + .long 977423826 + .long 1639392366 + .long 846759712 + .long 2176238891 + .long 1472034698 + .long 2214372039 + .long 1954847653 + .long 3278784732 + .long 1693519425 + .long 57510486 + .long 2944069397 + .long 133776782 + .long 3909695307 + .long 2262602168 + .long 3387038850 + .long 115020972 + .long 1593171499 + .long 267553565 + .long 3524423319 + .long 230237041 + .long 2479110404 + .long 230041945 + .long 3186342998 + .long 535107130 + .long 2753879342 + .long 460474083 + .long 663253512 + .long 460083891 + .long 2077718700 + .long 1070214261 + .long 1212791388 + .long 920948167 + .long 1326507024 + .long 920167782 + .long 4155437400 + .long 2140428522 + .long 2425582776 + .long 1841896334 + .long 2653014048 + .long 1840335564 + .long 4015907504 + .long 4280857045 + .long 556198256 + .long 3683792669 + .long 1011060801 + .long 3680671129 + .long 3736847713 + .long 4266746795 + .long 1112396512 + .long 3072618042 + .long 2022121603 + .long 3066374962 + .long 3178728131 + .long 4238526295 + .long 2224793024 + .long 1850268788 + .long 4044243207 + .long 1837782628 + .long 2062488966 + .long 4182085295 + .long 154618752 + .long 3700537577 + .long 3793519119 + .long 3675565257 + .long 4124977933 + .long 4069203294 + .long 309237504 + .long 3106107858 + .long 3292070943 + .long 3056163219 + .long 3954988571 + .long 3843439293 + .long 618475008 + .long 1917248420 + .long 2289174591 + .long 1817359143 + .long 3615009846 + .long 3391911291 + .long 1236950016 + .long 3834496840 + .long 283381887 + .long 3634718287 + .long 2935052397 + .long 2488855287 + .long 2473900033 + .long 3374026384 + .long 566763775 + .long 2974469278 + .long 1575137499 + .long 682743279 + .long 652832771 + .long 2453085473 + .long 1133527550 + .long 1653971260 + .long 3150274999 + .long 1365486558 + .long 1305665542 + .long 611203650 + .long 2267055100 + .long 3307942520 + .long 2005582702 + .long 2730973117 + .long 2611331084 + .long 1222407300 + .long 239142905 + .long 2320917745 + .long 4011165404 + .long 1166978938 + .long 927694873 + .long 2444814601 + .long 478285810 + .long 346868194 + .long 3727363513 + .long 2333957877 + .long 1855389746 + .long 594661906 + .long 956571621 + .long 693736388 + .long 3159759730 + .long 372948459 + .long 3710779492 + .long 1189323812 + .long 1913143242 + .long 1387472776 + .long 2024552164 + .long 745896919 + .long 3126591689 + .long 2378647625 + .long 3826286484 + .long 2774945552 + .long 4049104329 + .long 1491793838 + .long 1958216082 + .long 462327955 + .long 3357605672 + .long 1254923809 + .long 3803241362 + .long 2983587677 + .long 3916432164 + .long 924655910 + .long 2420244049 + .long 2509847619 + .long 3311515428 + .long 1672208059 + .long 3537897033 + .long 1849311821 + .long 545520802 + .long 724727943 + .long 2328063560 + .long 3344416119 + .long 2780826770 + .long 3698623643 + .long 1091041605 + .long 1449455886 + .long 361159825 + .long 2393864943 + .long 1266686244 + .long 3102279991 + .long 2182083211 + .long 2898911772 + .long 722319651 + .long 492762590 + .long 2533372489 + .long 1909592686 + .long 69199126 + .long 1502856249 + .long 1444639302 + .long 985525180 + .long 771777682 + .long 3819185373 + .long 138398252 + .long 3005712498 + .long 2889278605 + .long 1971050360 + .long 1543555365 + .long 3343403450 + .long 276796504 + .long 1716457700 + .long 1483589915 + .long 3942100721 + .long 3087110731 + .long 2391839604 + .long 553593009 + .long 3432915400 + .long 2967179831 + .long 3589234146 + .long 1879254167 + .long 488711913 + .long 1107186019 + .long 2570863504 + .long 1639392366 + .long 2883500997 + .long 3758508334 + .long 977423826 + .long 2214372039 + .long 846759712 + .long 3278784732 + .long 1472034698 + .long 3222049373 + .long 1954847653 + .long 133776782 + .long 1693519425 + .long 2262602168 + .long 2944069397 + .long 2149131451 + .long 3909695307 + .long 267553565 + .long 3387038850 + .long 230237041 + .long 1593171499 + .long 3295607 + .long 3524423319 + .long 535107130 + .long 2479110404 + .long 460474083 + .long 3186342998 + .long 6591214 + .long 2753879342 + .long 1070214261 + .long 663253512 + .long 920948167 + .long 2077718700 + .long 13182429 + .long 1212791388 + .long 2140428522 + .long 1326507024 + .long 1841896334 + .long 4155437400 + .long 26364858 + .long 2425582776 + .long 4280857045 + .long 2653014048 + .long 3683792669 + .long 4015907504 + .long 52729717 + .long 556198256 + .long 4266746795 + .long 1011060801 + .long 3072618042 + .long 3736847713 + .long 105459434 + .long 1112396512 + .long 4238526295 + .long 2022121603 + .long 1850268788 + .long 3178728131 + .long 210918868 + .long 2224793024 + .long 4182085295 + .long 4044243207 + .long 3700537577 + .long 2062488966 + .long 421837736 + .long 154618752 + .long 4069203294 + .long 3793519119 + .long 3106107858 + .long 4124977933 + .long 843675472 + .long 309237504 + .long 3843439293 + .long 3292070943 + .long 1917248420 + .long 3954988571 + .long 1687350944 + .long 618475008 + .long 3391911291 + .long 2289174591 + .long 3834496840 + .long 3615009846 + .long 3374701889 + .long 1236950016 + .long 2488855287 + .long 283381887 + .long 3374026384 + .long 2935052397 + .long 2454436482 + .long 2473900033 + .long 682743279 + .long 566763775 + .long 2453085473 + .long 1575137499 + .long 613905668 + .long 652832771 + .long 1365486558 + .long 1133527550 + .long 611203650 + .long 3150274999 + .long 1227811337 + .long 1305665542 + .long 2730973117 + .long 2267055100 + .long 1222407300 + .long 2005582702 + .long 2455622675 + .long 2611331084 + .long 1166978938 + .long 239142905 + .long 2444814601 + .long 4011165404 + .long 616278055 + .long 927694873 + .long 2333957877 + .long 478285810 + .long 594661906 + .long 3727363513 + .long 1232556110 + .long 1855389746 + .long 372948459 + .long 956571621 + .long 1189323812 + .long 3159759730 + .long 2465112221 + .long 3710779492 + .long 745896919 + .long 1913143242 + .long 2378647625 + .long 2024552164 + .long 635257146 + .long 3126591689 + .long 1491793838 + .long 3826286484 + .long 462327955 + .long 4049104329 + .long 1270514292 + .long 1958216082 + .long 2983587677 + .long 3357605672 + .long 924655910 + .long 3803241362 + .long 2541028584 + .long 3916432164 + .long 1672208059 + .long 2420244049 + .long 1849311821 + .long 3311515428 + .long 787089873 + .long 3537897033 + .long 3344416119 + .long 545520802 + .long 3698623643 + .long 2328063560 + .long 1574179747 + .long 2780826770 + .long 2393864943 + .long 1091041605 + .long 3102279991 + .long 361159825 + .long 3148359494 + .long 1266686244 + .long 492762590 + .long 2182083211 + .long 1909592686 + .long 722319651 + .long 2001751692 + .long 2533372489 + .long 985525180 + .long 69199126 + .long 3819185373 + .long 1444639302 + .long 4003503385 + .long 771777682 + .long 1971050360 + .long 138398252 + .long 3343403450 + .long 2889278605 + .long 3712039474 + .long 1543555365 + .long 3942100721 + .long 276796504 + .long 2391839604 + .long 1483589915 + .long 3129111652 + .long 3087110731 + .long 3589234146 + .long 553593009 + .long 488711913 + .long 2967179831 + .long 1963256009 + .long 1879254167 + .long 2883500997 + .long 1107186019 + .long 977423826 + .long 1639392366 + .long 3926512018 + .long 3758508334 + .long 1472034698 + .long 2214372039 + .long 1954847653 + .long 3278784732 + .long 3558056740 + .long 3222049373 + .long 2944069397 + .long 133776782 + .long 3909695307 + .long 2262602168 + .long 2821146184 + .long 2149131451 + .long 1593171499 + .long 267553565 + .long 3524423319 + .long 230237041 + .long 1347325072 + .long 3295607 + .long 3186342998 + .long 535107130 + .long 2753879342 + .long 460474083 + .long 2694650145 + .long 6591214 + .long 2077718700 + .long 1070214261 + .long 1212791388 + .long 920948167 + .long 1094332995 + .long 13182429 + .long 4155437400 + .long 2140428522 + .long 2425582776 + .long 1841896334 + .long 2188665991 + .long 26364858 + .long 4015907504 + .long 4280857045 + .long 556198256 + .long 3683792669 + .long 82364686 + .long 52729717 + .long 3736847713 + .long 4266746795 + .long 1112396512 + .long 3072618042 + .long 164729372 + .long 105459434 + .long 3178728131 + .long 4238526295 + .long 2224793024 + .long 1850268788 + .long 329458745 + .long 210918868 + .long 2062488966 + .long 4182085295 + .long 154618752 + .long 3700537577 + .long 658917491 + .long 421837736 + .long 4124977933 + .long 4069203294 + .long 309237504 + .long 3106107858 + .long 1317834983 + .long 843675472 + .long 3954988571 + .long 3843439293 + .long 618475008 + .long 1917248420 + .long 2635669967 + .long 1687350944 + .long 3615009846 + .long 3391911291 + .long 1236950016 + .long 3834496840 + .long 976372639 + .long 3374701889 + .long 2935052397 + .long 2488855287 + .long 2473900033 + .long 3374026384 + .long 1952745279 + .long 2454436482 + .long 1575137499 + .long 682743279 + .long 652832771 + .long 2453085473 + .long 3905490559 + .long 613905668 + .long 3150274999 + .long 1365486558 + .long 1305665542 + .long 611203650 + .long 3516013822 + .long 1227811337 + .long 2005582702 + .long 2730973117 + .long 2611331084 + .long 1222407300 + .long 2737060348 + .long 2455622675 + .long 4011165404 + .long 1166978938 + .long 927694873 + .long 2444814601 + .long 1179153400 + .long 616278055 + .long 3727363513 + .long 2333957877 + .long 1855389746 + .long 594661906 + .long 2358306800 + .long 1232556110 + .long 3159759730 + .long 372948459 + .long 3710779492 + .long 1189323812 + .long 421646305 + .long 2465112221 + .long 2024552164 + .long 745896919 + .long 3126591689 + .long 2378647625 + .long 843292611 + .long 635257146 + .long 4049104329 + .long 1491793838 + .long 1958216082 + .long 462327955 + .long 1686585223 + .long 1270514292 + .long 3803241362 + .long 2983587677 + .long 3916432164 + .long 924655910 + .long 3373170446 + .long 2541028584 + .long 3311515428 + .long 1672208059 + .long 3537897033 + .long 1849311821 + .long 2451373597 + .long 787089873 + .long 2328063560 + .long 3344416119 + .long 2780826770 + .long 3698623643 + .long 607779899 + .long 1574179747 + .long 361159825 + .long 2393864943 + .long 1266686244 + .long 3102279991 + .long 1215559799 + .long 3148359494 + .long 722319651 + .long 492762590 + .long 2533372489 + .long 1909592686 + .long 2431119599 + .long 2001751692 + .long 1444639302 + .long 985525180 + .long 771777682 + .long 3819185373 + .long 567271902 + .long 4003503385 + .long 2889278605 + .long 1971050360 + .long 1543555365 + .long 3343403450 + .long 1134543805 + .long 3712039474 + .long 1483589915 + .long 3942100721 + .long 3087110731 + .long 2391839604 + .long 2269087610 + .long 3129111652 + .long 2967179831 + .long 3589234146 + .long 1879254167 + .long 488711913 + .long 243207925 + .long 1963256009 + .long 1639392366 + .long 2883500997 + .long 3758508334 + .long 977423826 + .long 486415851 + .long 3926512018 + .long 3278784732 + .long 1472034698 + .long 3222049373 + .long 1954847653 + .long 972831702 + .long 3558056740 + .long 2262602168 + .long 2944069397 + .long 2149131451 + .long 3909695307 + .long 1945663404 + .long 2821146184 + .long 230237041 + .long 1593171499 + .long 3295607 + .long 3524423319 + .long 3891326808 + .long 1347325072 + .long 460474083 + .long 3186342998 + .long 6591214 + .long 2753879342 + .long 3487686321 + .long 2694650145 + .long 920948167 + .long 2077718700 + .long 13182429 + .long 1212791388 + .long 2680405347 + .long 1094332995 + .long 1841896334 + .long 4155437400 + .long 26364858 + .long 2425582776 + .long 1065843399 + .long 2188665991 + .long 3683792669 + .long 4015907504 + .long 52729717 + .long 556198256 + .long 2131686798 + .long 82364686 + .long 3072618042 + .long 3736847713 + .long 105459434 + .long 1112396512 + .long 4263373596 + .long 164729372 + .long 1850268788 + .long 3178728131 + .long 210918868 + .long 2224793024 + .long 4231779897 + .long 329458745 + .long 3700537577 + .long 2062488966 + .long 421837736 + .long 154618752 + .long 4168592498 + .long 658917491 + .long 3106107858 + .long 4124977933 + .long 843675472 + .long 309237504 + .long 4042217701 + .long 1317834983 + .long 1917248420 + .long 3954988571 + .long 1687350944 + .long 618475008 + .long 3789468107 + .long 2635669967 + .long 3834496840 + .long 3615009846 + .long 3374701889 + .long 1236950016 + .long 3283968918 + .long 976372639 + .long 3374026384 + .long 2935052397 + .long 2454436482 + .long 2473900033 + .long 2272970540 + .long 1952745279 + .long 2453085473 + .long 1575137499 + .long 613905668 + .long 652832771 + .long 250973784 + .long 3905490559 + .long 611203650 + .long 3150274999 + .long 1227811337 + .long 1305665542 + .long 501947569 + .long 3516013822 + .long 1222407300 + .long 2005582702 + .long 2455622675 + .long 2611331084 + .long 1003895138 + .long 2737060348 + .long 2444814601 + .long 4011165404 + .long 616278055 + .long 927694873 + .long 2007790276 + .long 1179153400 + .long 594661906 + .long 3727363513 + .long 1232556110 + .long 1855389746 + .long 4015580553 + .long 2358306800 + .long 1189323812 + .long 3159759730 + .long 2465112221 + .long 3710779492 + .long 3736193810 + .long 421646305 + .long 2378647625 + .long 2024552164 + .long 635257146 + .long 3126591689 + .long 3177420325 + .long 843292611 + .long 462327955 + .long 4049104329 + .long 1270514292 + .long 1958216082 + .long 2059873354 + .long 1686585223 + .long 924655910 + .long 3803241362 + .long 2541028584 + .long 3916432164 + .long 4119746708 + .long 3373170446 + .long 1849311821 + .long 3311515428 + .long 787089873 + .long 3537897033 + .long 3944526121 + .long 2451373597 + .long 3698623643 + .long 2328063560 + .long 1574179747 + .long 2780826770 + .long 3594084947 + .long 607779899 + .long 3102279991 + .long 361159825 + .long 3148359494 + .long 1266686244 + .long 2893202598 + .long 1215559799 + .long 1909592686 + .long 722319651 + .long 2001751692 + .long 2533372489 + .long 1491437901 + .long 2431119599 + .long 3819185373 + .long 1444639302 + .long 4003503385 + .long 771777682 + .long 2982875802 + .long 567271902 + .long 3343403450 + .long 2889278605 + .long 3712039474 + .long 1543555365 + .long 1670784308 + .long 1134543805 + .long 2391839604 + .long 1483589915 + .long 3129111652 + .long 3087110731 + .long 3341568617 + .long 2269087610 + .long 488711913 + .long 2967179831 + .long 1963256009 + .long 1879254167 + .long 2388169939 + .long 243207925 + .long 977423826 + .long 1639392366 + .long 3926512018 + .long 3758508334 + .long 481372583 + .long 486415851 + .long 1954847653 + .long 3278784732 + .long 3558056740 + .long 3222049373 + .long 962745166 + .long 972831702 + .long 3909695307 + .long 2262602168 + .long 2821146184 + .long 2149131451 + .long 1925490332 + .long 1945663404 + .long 3524423319 + .long 230237041 + .long 1347325072 + .long 3295607 + .long 3850980665 + .long 3891326808 + .long 2753879342 + .long 460474083 + .long 2694650145 + .long 6591214 + .long 3406994035 + .long 3487686321 + .long 1212791388 + .long 920948167 + .long 1094332995 + .long 13182429 + .long 2519020775 + .long 2680405347 + .long 2425582776 + .long 1841896334 + .long 2188665991 + .long 26364858 + .long 743074255 + .long 1065843399 + .long 556198256 + .long 3683792669 + .long 82364686 + .long 52729717 + .long 1486148511 + .long 2131686798 + .long 1112396512 + .long 3072618042 + .long 164729372 + .long 105459434 + .long 2972297022 + .long 4263373596 + .long 2224793024 + .long 1850268788 + .long 329458745 + .long 210918868 + .long 1649626749 + .long 4231779897 + .long 154618752 + .long 3700537577 + .long 658917491 + .long 421837736 + .long 3299253499 + .long 4168592498 + .long 309237504 + .long 3106107858 + .long 1317834983 + .long 843675472 + .long 2303539703 + .long 4042217701 + .long 618475008 + .long 1917248420 + .long 2635669967 + .long 1687350944 + .long 312112110 + .long 3789468107 + .long 1236950016 + .long 3834496840 + .long 976372639 + .long 3374701889 + .long 624224221 + .long 3283968918 + .long 2473900033 + .long 3374026384 + .long 1952745279 + .long 2454436482 + .long 1248448442 + .long 2272970540 + .long 652832771 + .long 2453085473 + .long 3905490559 + .long 613905668 + .long 2496896884 + .long 250973784 + .long 1305665542 + .long 611203650 + .long 3516013822 + .long 1227811337 + .long 698826472 + .long 501947569 + .long 2611331084 + .long 1222407300 + .long 2737060348 + .long 2455622675 + .long 1397652945 + .long 1003895138 + .long 927694873 + .long 2444814601 + .long 1179153400 + .long 616278055 + .long 2795305890 + .long 2007790276 + .long 1855389746 + .long 594661906 + .long 2358306800 + .long 1232556110 + .long 1295644484 + .long 4015580553 + .long 3710779492 + .long 1189323812 + .long 421646305 + .long 2465112221 + .long 2591288968 + .long 3736193810 + .long 3126591689 + .long 2378647625 + .long 843292611 + .long 635257146 + .long 887610640 + .long 3177420325 + .long 1958216082 + .long 462327955 + .long 1686585223 + .long 1270514292 + .long 1775221280 + .long 2059873354 + .long 3916432164 + .long 924655910 + .long 3373170446 + .long 2541028584 + .long 3550442561 + .long 4119746708 + .long 3537897033 + .long 1849311821 + .long 2451373597 + .long 787089873 + .long 2805917826 + .long 3944526121 + .long 2780826770 + .long 3698623643 + .long 607779899 + .long 1574179747 + .long 1316868356 + .long 3594084947 + .long 1266686244 + .long 3102279991 + .long 1215559799 + .long 3148359494 + .long 2633736712 + .long 2893202598 + .long 2533372489 + .long 1909592686 + .long 2431119599 + .long 2001751692 + .long 972506129 + .long 1491437901 + .long 771777682 + .long 3819185373 + .long 567271902 + .long 4003503385 + .long 1945012259 + .long 2982875802 + .long 1543555365 + .long 3343403450 + .long 1134543805 + .long 3712039474 + .long 3890024518 + .long 1670784308 + .long 3087110731 + .long 2391839604 + .long 2269087610 + .long 3129111652 + .long 3485081741 + .long 3341568617 + .long 1879254167 + .long 488711913 + .long 243207925 + .long 1963256009 + .long 2675196186 + .long 2388169939 + .long 3758508334 + .long 977423826 + .long 486415851 + .long 3926512018 + .long 1055425077 + .long 481372583 + .long 3222049373 + .long 1954847653 + .long 972831702 + .long 3558056740 + .long 2110850155 + .long 962745166 + .long 2149131451 + .long 3909695307 + .long 1945663404 + .long 2821146184 + .long 4221700311 + .long 1925490332 + .long 3295607 + .long 3524423319 + .long 3891326808 + .long 1347325072 + .long 4148433327 + .long 3850980665 + .long 6591214 + .long 2753879342 + .long 3487686321 + .long 2694650145 + .long 4001899359 + .long 3406994035 + .long 13182429 + .long 1212791388 + .long 2680405347 + .long 1094332995 + .long 3708831422 + .long 2519020775 + .long 26364858 + .long 2425582776 + .long 1065843399 + .long 2188665991 + .long 3122695549 + .long 743074255 + .long 52729717 + .long 556198256 + .long 2131686798 + .long 82364686 + .long 1950423802 + .long 1486148511 + .long 105459434 + .long 1112396512 + .long 4263373596 + .long 164729372 + .long 3900847605 + .long 2972297022 + .long 210918868 + .long 2224793024 + .long 4231779897 + .long 329458745 + .long 3506727914 + .long 1649626749 + .long 421837736 + .long 154618752 + .long 4168592498 + .long 658917491 + .long 2718488532 + .long 3299253499 + .long 843675472 + .long 309237504 + .long 4042217701 + .long 1317834983 + .long 1142009769 + .long 2303539703 + .long 1687350944 + .long 618475008 + .long 3789468107 + .long 2635669967 + .long 2284019538 + .long 312112110 + .long 3374701889 + .long 1236950016 + .long 3283968918 + .long 976372639 + .long 273071781 + .long 624224221 + .long 2454436482 + .long 2473900033 + .long 2272970540 + .long 1952745279 + .long 546143563 + .long 1248448442 + .long 613905668 + .long 652832771 + .long 250973784 + .long 3905490559 + .long 1092287127 + .long 2496896884 + .long 1227811337 + .long 1305665542 + .long 501947569 + .long 3516013822 + .long 2184574254 + .long 698826472 + .long 2455622675 + .long 2611331084 + .long 1003895138 + .long 2737060348 + .long 74181213 + .long 1397652945 + .long 616278055 + .long 927694873 + .long 2007790276 + .long 1179153400 + .long 148362426 + .long 2795305890 + .long 1232556110 + .long 1855389746 + .long 4015580553 + .long 2358306800 + .long 296724853 + .long 1295644484 + .long 2465112221 + .long 3710779492 + .long 3736193810 + .long 421646305 + .long 593449707 + .long 2591288968 + .long 635257146 + .long 3126591689 + .long 3177420325 + .long 843292611 + .long 1186899415 + .long 887610640 + .long 1270514292 + .long 1958216082 + .long 2059873354 + .long 1686585223 + .long 2373798830 + .long 1775221280 + .long 2541028584 + .long 3916432164 + .long 4119746708 + .long 3373170446 + .long 452630365 + .long 3550442561 + .long 787089873 + .long 3537897033 + .long 3944526121 + .long 2451373597 + .long 905260731 + .long 2805917826 + .long 1574179747 + .long 2780826770 + .long 3594084947 + .long 607779899 + .long 1810521462 + .long 1316868356 + .long 3148359494 + .long 1266686244 + .long 2893202598 + .long 1215559799 + .long 3621042925 + .long 2633736712 + .long 2001751692 + .long 2533372489 + .long 1491437901 + .long 2431119599 + .long 2947118554 + .long 972506129 + .long 4003503385 + .long 771777682 + .long 2982875802 + .long 567271902 + .long 1599269812 + .long 1945012259 + .long 3712039474 + .long 1543555365 + .long 1670784308 + .long 1134543805 + .long 3198539624 + .long 3890024518 + .long 3129111652 + .long 3087110731 + .long 3341568617 + .long 2269087610 + .long 2102111953 + .long 3485081741 + .long 1963256009 + .long 1879254167 + .long 2388169939 + .long 243207925 + .long 4204223906 + .long 2675196186 + .long 3926512018 + .long 3758508334 + .long 481372583 + .long 486415851 + .long 4113480516 + .long 1055425077 + .long 3558056740 + .long 3222049373 + .long 962745166 + .long 972831702 + .long 3931993737 + .long 2110850155 + .long 2821146184 + .long 2149131451 + .long 1925490332 + .long 1945663404 + .long 3569020178 + .long 4221700311 + .long 1347325072 + .long 3295607 + .long 3850980665 + .long 3891326808 + .long 2843073060 + .long 4148433327 + .long 2694650145 + .long 6591214 + .long 3406994035 + .long 3487686321 + .long 1391178824 + .long 4001899359 + .long 1094332995 + .long 13182429 + .long 2519020775 + .long 2680405347 + .long 2782357648 + .long 3708831422 + .long 2188665991 + .long 26364858 + .long 743074255 + .long 1065843399 + .long 1269748001 + .long 3122695549 + .long 82364686 + .long 52729717 + .long 1486148511 + .long 2131686798 + .long 2539496002 + .long 1950423802 + .long 164729372 + .long 105459434 + .long 2972297022 + .long 4263373596 + .long 784024708 + .long 3900847605 + .long 329458745 + .long 210918868 + .long 1649626749 + .long 4231779897 + .long 1568049417 + .long 3506727914 + .long 658917491 + .long 421837736 + .long 3299253499 + .long 4168592498 + .long 3136098835 + .long 2718488532 + .long 1317834983 + .long 843675472 + .long 2303539703 + .long 4042217701 + .long 1977230375 + .long 1142009769 + .long 2635669967 + .long 1687350944 + .long 312112110 + .long 3789468107 + .long 3954460750 + .long 2284019538 + .long 976372639 + .long 3374701889 + .long 624224221 + .long 3283968918 + .long 3613954205 + .long 273071781 + .long 1952745279 + .long 2454436482 + .long 1248448442 + .long 2272970540 + .long 2932941114 + .long 546143563 + .long 3905490559 + .long 613905668 + .long 2496896884 + .long 250973784 + .long 1570914932 + .long 1092287127 + .long 3516013822 + .long 1227811337 + .long 698826472 + .long 501947569 + .long 3141829865 + .long 2184574254 + .long 2737060348 + .long 2455622675 + .long 1397652945 + .long 1003895138 + .long 1988692435 + .long 74181213 + .long 1179153400 + .long 616278055 + .long 2795305890 + .long 2007790276 + .long 3977384870 + .long 148362426 + .long 2358306800 + .long 1232556110 + .long 1295644484 + .long 4015580553 + .long 3659802444 + .long 296724853 + .long 421646305 + .long 2465112221 + .long 2591288968 + .long 3736193810 + .long 3024637593 + .long 593449707 + .long 843292611 + .long 635257146 + .long 887610640 + .long 3177420325 + .long 1754307891 + .long 1186899415 + .long 1686585223 + .long 1270514292 + .long 1775221280 + .long 2059873354 + .long 3508615783 + .long 2373798830 + .long 3373170446 + .long 2541028584 + .long 3550442561 + .long 4119746708 + .long 2722264270 + .long 452630365 + .long 2451373597 + .long 787089873 + .long 2805917826 + .long 3944526121 + .long 1149561244 + .long 905260731 + .long 607779899 + .long 1574179747 + .long 1316868356 + .long 3594084947 + .long 2299122488 + .long 1810521462 + .long 1215559799 + .long 3148359494 + .long 2633736712 + .long 2893202598 + .long 303277681 + .long 3621042925 + .long 2431119599 + .long 2001751692 + .long 972506129 + .long 1491437901 + .long 606555363 + .long 2947118554 + .long 567271902 + .long 4003503385 + .long 1945012259 + .long 2982875802 + .long 1213110727 + .long 1599269812 + .long 1134543805 + .long 3712039474 + .long 3890024518 + .long 1670784308 + .long 2426221454 + .long 3198539624 + .long 2269087610 + .long 3129111652 + .long 3485081741 + .long 3341568617 + .long 557475612 + .long 2102111953 + .long 243207925 + .long 1963256009 + .long 2675196186 + .long 2388169939 + .long 1114951224 + .long 4204223906 + .long 486415851 + .long 3926512018 + .long 1055425077 + .long 481372583 + .long 2229902448 + .long 4113480516 + .long 972831702 + .long 3558056740 + .long 2110850155 + .long 962745166 + .long 164837600 + .long 3931993737 + .long 1945663404 + .long 2821146184 + .long 4221700311 + .long 1925490332 + .long 329675200 + .long 3569020178 + .long 3891326808 + .long 1347325072 + .long 4148433327 + .long 3850980665 + .long 659350401 + .long 2843073060 + .long 3487686321 + .long 2694650145 + .long 4001899359 + .long 3406994035 + .long 1318700802 + .long 1391178824 + .long 2680405347 + .long 1094332995 + .long 3708831422 + .long 2519020775 + .long 2637401604 + .long 2782357648 + .long 1065843399 + .long 2188665991 + .long 3122695549 + .long 743074255 + .long 979835913 + .long 1269748001 + .long 2131686798 + .long 82364686 + .long 1950423802 + .long 1486148511 + .long 1959671827 + .long 2539496002 + .long 4263373596 + .long 164729372 + .long 3900847605 + .long 2972297022 + .long 3919343654 + .long 784024708 + .long 4231779897 + .long 329458745 + .long 3506727914 + .long 1649626749 + .long 3543720013 + .long 1568049417 + .long 4168592498 + .long 658917491 + .long 2718488532 + .long 3299253499 + .long 2792472730 + .long 3136098835 + .long 4042217701 + .long 1317834983 + .long 1142009769 + .long 2303539703 + .long 1289978165 + .long 1977230375 + .long 3789468107 + .long 2635669967 + .long 2284019538 + .long 312112110 + .long 2579956331 + .long 3954460750 + .long 3283968918 + .long 976372639 + .long 273071781 + .long 624224221 + .long 864945366 + .long 3613954205 + .long 2272970540 + .long 1952745279 + .long 546143563 + .long 1248448442 + .long 1729890733 + .long 2932941114 + .long 250973784 + .long 3905490559 + .long 1092287127 + .long 2496896884 + .long 3459781466 + .long 1570914932 + .long 501947569 + .long 3516013822 + .long 2184574254 + .long 698826472 + .long 2624595636 + .long 3141829865 + .long 1003895138 + .long 2737060348 + .long 74181213 + .long 1397652945 + .long 954223976 + .long 1988692435 + .long 2007790276 + .long 1179153400 + .long 148362426 + .long 2795305890 + .long 1908447953 + .long 3977384870 + .long 4015580553 + .long 2358306800 + .long 296724853 + .long 1295644484 + .long 3816895906 + .long 3659802444 + .long 3736193810 + .long 421646305 + .long 593449707 + .long 2591288968 + .long 3338824517 + .long 3024637593 + .long 3177420325 + .long 843292611 + .long 1186899415 + .long 887610640 + .long 2382681739 + .long 1754307891 + .long 2059873354 + .long 1686585223 + .long 2373798830 + .long 1775221280 + .long 470396183 + .long 3508615783 + .long 4119746708 + .long 3373170446 + .long 452630365 + .long 3550442561 + .long 940792367 + .long 2722264270 + .long 3944526121 + .long 2451373597 + .long 905260731 + .long 2805917826 + .long 1881584735 + .long 1149561244 + .long 3594084947 + .long 607779899 + .long 1810521462 + .long 1316868356 + .long 3763169470 + .long 2299122488 + .long 2893202598 + .long 1215559799 + .long 3621042925 + .long 2633736712 + .long 3231371645 + .long 303277681 + .long 1491437901 + .long 2431119599 + .long 2947118554 + .long 972506129 + .long 2167775995 + .long 606555363 + .long 2982875802 + .long 567271902 + .long 1599269812 + .long 1945012259 + .long 40584695 + .long 1213110727 + .long 1670784308 + .long 1134543805 + .long 3198539624 + .long 3890024518 + .long 81169391 + .long 2426221454 + .long 3341568617 + .long 2269087610 + .long 2102111953 + .long 3485081741 + .long 162338783 + .long 557475612 + .long 2388169939 + .long 243207925 + .long 4204223906 + .long 2675196186 + .long 324677567 + .long 1114951224 + .long 481372583 + .long 486415851 + .long 4113480516 + .long 1055425077 + .long 649355134 + .long 2229902448 + .long 962745166 + .long 972831702 + .long 3931993737 + .long 2110850155 + .long 1298710268 + .long 164837600 + .long 1925490332 + .long 1945663404 + .long 3569020178 + .long 4221700311 + .long 2597420537 + .long 329675200 + .long 3850980665 + .long 3891326808 + .long 2843073060 + .long 4148433327 + .long 899873778 + .long 659350401 + .long 3406994035 + .long 3487686321 + .long 1391178824 + .long 4001899359 + .long 1799747556 + .long 1318700802 + .long 2519020775 + .long 2680405347 + .long 2782357648 + .long 3708831422 + .long 3599495112 + .long 2637401604 + .long 743074255 + .long 1065843399 + .long 1269748001 + .long 3122695549 + .long 2904022928 + .long 979835913 + .long 1486148511 + .long 2131686798 + .long 2539496002 + .long 1950423802 + .long 1513078560 + .long 1959671827 + .long 2972297022 + .long 4263373596 + .long 784024708 + .long 3900847605 + .long 3026157121 + .long 3919343654 + .long 1649626749 + .long 4231779897 + .long 1568049417 + .long 3506727914 + .long 1757346946 + .long 3543720013 + .long 3299253499 + .long 4168592498 + .long 3136098835 + .long 2718488532 + .long 3514693892 + .long 2792472730 + .long 2303539703 + .long 4042217701 + .long 1977230375 + .long 1142009769 + .long 2734420489 + .long 1289978165 + .long 312112110 + .long 3789468107 + .long 3954460750 + .long 2284019538 + .long 1173873683 + .long 2579956331 + .long 624224221 + .long 3283968918 + .long 3613954205 + .long 273071781 + .long 2347747367 + .long 864945366 + .long 1248448442 + .long 2272970540 + .long 2932941114 + .long 546143563 + .long 400527438 + .long 1729890733 + .long 2496896884 + .long 250973784 + .long 1570914932 + .long 1092287127 + .long 801054876 + .long 3459781466 + .long 698826472 + .long 501947569 + .long 3141829865 + .long 2184574254 + .long 1602109753 + .long 2624595636 + .long 1397652945 + .long 1003895138 + .long 1988692435 + .long 74181213 + .long 3204219507 + .long 954223976 + .long 2795305890 + .long 2007790276 + .long 3977384870 + .long 148362426 + .long 2113471718 + .long 1908447953 + .long 1295644484 + .long 4015580553 + .long 3659802444 + .long 296724853 + .long 4226943436 + .long 3816895906 + .long 2591288968 + .long 3736193810 + .long 3024637593 + .long 593449707 + .long 4158919577 + .long 3338824517 + .long 887610640 + .long 3177420325 + .long 1754307891 + .long 1186899415 + .long 4022871858 + .long 2382681739 + .long 1775221280 + .long 2059873354 + .long 3508615783 + .long 2373798830 + .long 3750776420 + .long 470396183 + .long 3550442561 + .long 4119746708 + .long 2722264270 + .long 452630365 + .long 3206585544 + .long 940792367 + .long 2805917826 + .long 3944526121 + .long 1149561244 + .long 905260731 + .long 2118203793 + .long 1881584735 + .long 1316868356 + .long 3594084947 + .long 2299122488 + .long 1810521462 + .long 4236407587 + .long 3763169470 + .long 2633736712 + .long 2893202598 + .long 303277681 + .long 3621042925 + .long 4177847879 + .long 3231371645 + .long 972506129 + .long 1491437901 + .long 606555363 + .long 2947118554 + .long 4060728462 + .long 2167775995 + .long 1945012259 + .long 2982875802 + .long 1213110727 + .long 1599269812 + .long 3826489629 + .long 40584695 + .long 3890024518 + .long 1670784308 + .long 2426221454 + .long 3198539624 + .long 3358011962 + .long 81169391 + .long 3485081741 + .long 3341568617 + .long 557475612 + .long 2102111953 + .long 2421056629 + .long 162338783 + .long 2675196186 + .long 2388169939 + .long 1114951224 + .long 4204223906 + .long 547145963 + .long 324677567 + .long 1055425077 + .long 481372583 + .long 2229902448 + .long 4113480516 + .long 1094291926 + .long 649355134 + .long 2110850155 + .long 962745166 + .long 164837600 + .long 3931993737 + .long 2188583852 + .long 1298710268 + .long 4221700311 + .long 1925490332 + .long 329675200 + .long 3569020178 + .long 82200408 + .long 2597420537 + .long 4148433327 + .long 3850980665 + .long 659350401 + .long 2843073060 + .long 164400817 + .long 899873778 + .long 4001899359 + .long 3406994035 + .long 1318700802 + .long 1391178824 + .long 328801635 + .long 1799747556 + .long 3708831422 + .long 2519020775 + .long 2637401604 + .long 2782357648 + .long 657603271 + .long 3599495112 + .long 3122695549 + .long 743074255 + .long 979835913 + .long 1269748001 + .long 1315206542 + .long 2904022928 + .long 1950423802 + .long 1486148511 + .long 1959671827 + .long 2539496002 + .long 2630413084 + .long 1513078560 + .long 3900847605 + .long 2972297022 + .long 3919343654 + .long 784024708 + .long 965858873 + .long 3026157121 + .long 3506727914 + .long 1649626749 + .long 3543720013 + .long 1568049417 + .long 1931717747 + .long 1757346946 + .long 2718488532 + .long 3299253499 + .long 2792472730 + .long 3136098835 + .long 3863435494 + .long 3514693892 + .long 1142009769 + .long 2303539703 + .long 1289978165 + .long 1977230375 + .long 3431903692 + .long 2734420489 + .long 2284019538 + .long 312112110 + .long 2579956331 + .long 3954460750 + .long 2568840088 + .long 1173873683 + .long 273071781 + .long 624224221 + .long 864945366 + .long 3613954205 + .long 842712880 + .long 2347747367 + .long 546143563 + .long 1248448442 + .long 1729890733 + .long 2932941114 + .long 1685425760 + .long 400527438 + .long 1092287127 + .long 2496896884 + .long 3459781466 + .long 1570914932 + .long 3370851521 + .long 801054876 + .long 2184574254 + .long 698826472 + .long 2624595636 + .long 3141829865 + .long 2446735747 + .long 1602109753 + .long 74181213 + .long 1397652945 + .long 954223976 + .long 1988692435 + .long 598504198 + .long 3204219507 + .long 148362426 + .long 2795305890 + .long 1908447953 + .long 3977384870 + .long 1197008397 + .long 2113471718 + .long 296724853 + .long 1295644484 + .long 3816895906 + .long 3659802444 + .long 2394016794 + .long 4226943436 + .long 593449707 + .long 2591288968 + .long 3338824517 + .long 3024637593 + .long 493066293 + .long 4158919577 + .long 1186899415 + .long 887610640 + .long 2382681739 + .long 1754307891 + .long 986132586 + .long 4022871858 + .long 2373798830 + .long 1775221280 + .long 470396183 + .long 3508615783 + .long 1972265172 + .long 3750776420 + .long 452630365 + .long 3550442561 + .long 940792367 + .long 2722264270 + .long 3944530345 + .long 3206585544 + .long 905260731 + .long 2805917826 + .long 1881584735 + .long 1149561244 + .long 3594093395 + .long 2118203793 + .long 1810521462 + .long 1316868356 + .long 3763169470 + .long 2299122488 + .long 2893219494 + .long 4236407587 + .long 3621042925 + .long 2633736712 + .long 3231371645 + .long 303277681 + .long 1491471692 + .long 4177847879 + .long 2947118554 + .long 972506129 + .long 2167775995 + .long 606555363 + .long 2982943385 + .long 4060728462 + .long 1599269812 + .long 1945012259 + .long 40584695 + .long 1213110727 + .long 1670919475 + .long 3826489629 + .long 3198539624 + .long 3890024518 + .long 81169391 + .long 2426221454 + .long 3341838951 + .long 3358011962 + .long 2102111953 + .long 3485081741 + .long 162338783 + .long 557475612 + .long 2388710606 + .long 2421056629 + .long 4204223906 + .long 2675196186 + .long 324677567 + .long 1114951224 + .long 482453916 + .long 547145963 + .long 4113480516 + .long 1055425077 + .long 649355134 + .long 2229902448 + .long 964907833 + .long 1094291926 + .long 3931993737 + .long 2110850155 + .long 1298710268 + .long 164837600 + .long 1929815667 + .long 2188583852 + .long 3569020178 + .long 4221700311 + .long 2597420537 + .long 329675200 + .long 3859631335 + .long 82200408 + .long 2843073060 + .long 4148433327 + .long 899873778 + .long 659350401 + .long 3424295375 + .long 164400817 + .long 1391178824 + .long 4001899359 + .long 1799747556 + .long 1318700802 + .long 2553623455 + .long 328801635 + .long 2782357648 + .long 3708831422 + .long 3599495112 + .long 2637401604 + .long 812279614 + .long 657603271 + .long 1269748001 + .long 3122695549 + .long 2904022928 + .long 979835913 + .long 1624559229 + .long 1315206542 + .long 2539496002 + .long 1950423802 + .long 1513078560 + .long 1959671827 + .long 3249118458 + .long 2630413084 + .long 784024708 + .long 3900847605 + .long 3026157121 + .long 3919343654 + .long 2203269620 + .long 965858873 + .long 1568049417 + .long 3506727914 + .long 1757346946 + .long 3543720013 + .long 111571945 + .long 1931717747 + .long 3136098835 + .long 2718488532 + .long 3514693892 + .long 2792472730 + .long 223143890 + .long 3863435494 + .long 1977230375 + .long 1142009769 + .long 2734420489 + .long 1289978165 + .long 446287780 + .long 3431903692 + .long 3954460750 + .long 2284019538 + .long 1173873683 + .long 2579956331 + .long 892575561 + .long 2568840088 + .long 3613954205 + .long 273071781 + .long 2347747367 + .long 864945366 + .long 1785151123 + .long 842712880 + .long 2932941114 + .long 546143563 + .long 400527438 + .long 1729890733 + .long 3570302247 + .long 1685425760 + .long 1570914932 + .long 1092287127 + .long 801054876 + .long 3459781466 + .long 2845637198 + .long 3370851521 + .long 3141829865 + .long 2184574254 + .long 1602109753 + .long 2624595636 + .long 1396307100 + .long 2446735747 + .long 1988692435 + .long 74181213 + .long 3204219507 + .long 954223976 + .long 2792614201 + .long 598504198 + .long 3977384870 + .long 148362426 + .long 2113471718 + .long 1908447953 + .long 1290261106 + .long 1197008397 + .long 3659802444 + .long 296724853 + .long 4226943436 + .long 3816895906 + .long 2580522212 + .long 2394016794 + .long 3024637593 + .long 593449707 + .long 4158919577 + .long 3338824517 + .long 866077128 + .long 493066293 + .long 1754307891 + .long 1186899415 + .long 4022871858 + .long 2382681739 + .long 1732154256 + .long 986132586 + .long 3508615783 + .long 2373798830 + .long 3750776420 + .long 470396183 + .long 3464308513 + .long 1972265172 + .long 2722264270 + .long 452630365 + .long 3206585544 + .long 940792367 + .long 2633649730 + .long 3944530345 + .long 1149561244 + .long 905260731 + .long 2118203793 + .long 1881584735 + .long 972332164 + .long 3594093395 + .long 2299122488 + .long 1810521462 + .long 4236407587 + .long 3763169470 + .long 1944664328 + .long 2893219494 + .long 303277681 + .long 3621042925 + .long 4177847879 + .long 3231371645 + .long 3889328657 + .long 1491471692 + .long 606555363 + .long 2947118554 + .long 4060728462 + .long 2167775995 + .long 3483690018 + .long 2982943385 + .long 1213110727 + .long 1599269812 + .long 3826489629 + .long 40584695 + .long 2672412741 + .long 1670919475 + .long 2426221454 + .long 3198539624 + .long 3358011962 + .long 81169391 + .long 1049858187 + .long 3341838951 + .long 557475612 + .long 2102111953 + .long 2421056629 + .long 162338783 + .long 2099716375 + .long 2388710606 + .long 1114951224 + .long 4204223906 + .long 547145963 + .long 324677567 + .long 4199432751 + .long 482453916 + .long 2229902448 + .long 4113480516 + .long 1094291926 + .long 649355134 + .long 4103898207 + .long 964907833 + .long 164837600 + .long 3931993737 + .long 2188583852 + .long 1298710268 + .long 3912829119 + .long 1929815667 + .long 329675200 + .long 3569020178 + .long 82200408 + .long 2597420537 + .long 3530690942 + .long 3859631335 + .long 659350401 + .long 2843073060 + .long 164400817 + .long 899873778 + .long 2766414588 + .long 3424295375 + .long 1318700802 + .long 1391178824 + .long 328801635 + .long 1799747556 + .long 1237861880 + .long 2553623455 + .long 2637401604 + .long 2782357648 + .long 657603271 + .long 3599495112 + .long 2475723761 + .long 812279614 + .long 979835913 + .long 1269748001 + .long 1315206542 + .long 2904022928 + .long 656480226 + .long 1624559229 + .long 1959671827 + .long 2539496002 + .long 2630413084 + .long 1513078560 + .long 1312960453 + .long 3249118458 + .long 3919343654 + .long 784024708 + .long 965858873 + .long 3026157121 + .long 2625920907 + .long 2203269620 + .long 3543720013 + .long 1568049417 + .long 1931717747 + .long 1757346946 + .long 956874519 + .long 111571945 + .long 2792472730 + .long 3136098835 + .long 3863435494 + .long 3514693892 + .long 1913749038 + .long 223143890 + .long 1289978165 + .long 1977230375 + .long 3431903692 + .long 2734420489 + .long 3827498077 + .long 446287780 + .long 2579956331 + .long 3954460750 + .long 2568840088 + .long 1173873683 + .long 3360028859 + .long 892575561 + .long 864945366 + .long 3613954205 + .long 842712880 + .long 2347747367 + .long 2425090423 + .long 1785151123 + .long 1729890733 + .long 2932941114 + .long 1685425760 + .long 400527438 + .long 555213551 + .long 3570302247 + .long 3459781466 + .long 1570914932 + .long 3370851521 + .long 801054876 + .long 1110427102 + .long 2845637198 + .long 2624595636 + .long 3141829865 + .long 2446735747 + .long 1602109753 + .long 2220854205 + .long 1396307100 + .long 954223976 + .long 1988692435 + .long 598504198 + .long 3204219507 + .long 146741115 + .long 2792614201 + .long 1908447953 + .long 3977384870 + .long 1197008397 + .long 2113471718 + .long 293482231 + .long 1290261106 + .long 3816895906 + .long 3659802444 + .long 2394016794 + .long 4226943436 + .long 586964463 + .long 2580522212 + .long 3338824517 + .long 3024637593 + .long 493066293 + .long 4158919577 + .long 1173928927 + .long 866077128 + .long 2382681739 + .long 1754307891 + .long 986132586 + .long 4022871858 + .long 2347857855 + .long 1732154256 + .long 470396183 + .long 3508615783 + .long 1972265172 + .long 3750776420 + .long 400748414 + .long 3464308513 + .long 940792367 + .long 2722264270 + .long 3944530345 + .long 3206585544 + .long 801496828 + .long 2633649730 + .long 1881584735 + .long 1149561244 + .long 3594093395 + .long 2118203793 + .long 1602993657 + .long 972332164 + .long 3763169470 + .long 2299122488 + .long 2893219494 + .long 4236407587 + .long 3205987314 + .long 1944664328 + .long 3231371645 + .long 303277681 + .long 1491471692 + .long 4177847879 + .long 2117007332 + .long 3889328657 + .long 2167775995 + .long 606555363 + .long 2982943385 + .long 4060728462 + .long 4234014665 + .long 3483690018 + .long 40584695 + .long 1213110727 + .long 1670919475 + .long 3826489629 + .long 4173062034 + .long 2672412741 + .long 81169391 + .long 2426221454 + .long 3341838951 + .long 3358011962 + .long 4051156773 + .long 1049858187 + .long 162338783 + .long 557475612 + .long 2388710606 + .long 2421056629 + .long 3807346250 + .long 2099716375 + .long 324677567 + .long 1114951224 + .long 482453916 + .long 547145963 + .long 3319725204 + .long 4199432751 + .long 649355134 + .long 2229902448 + .long 964907833 + .long 1094291926 + .long 2344483112 + .long 4103898207 + .long 1298710268 + .long 164837600 + .long 1929815667 + .long 2188583852 + .long 393998928 + .long 3912829119 + .long 2597420537 + .long 329675200 + .long 3859631335 + .long 82200408 + .long 787997856 + .long 3530690942 + .long 899873778 + .long 659350401 + .long 3424295375 + .long 164400817 + .long 1575995713 + .long 2766414588 + .long 1799747556 + .long 1318700802 + .long 2553623455 + .long 328801635 + .long 3151991427 + .long 1237861880 + .long 3599495112 + .long 2637401604 + .long 812279614 + .long 657603271 + .long 2009015559 + .long 2475723761 + .long 2904022928 + .long 979835913 + .long 1624559229 + .long 1315206542 + .long 4018031118 + .long 656480226 + .long 1513078560 + .long 1959671827 + .long 3249118458 + .long 2630413084 + .long 3741094941 + .long 1312960453 + .long 3026157121 + .long 3919343654 + .long 2203269620 + .long 965858873 + .long 3187222587 + .long 2625920907 + .long 1757346946 + .long 3543720013 + .long 111571945 + .long 1931717747 + .long 2079477878 + .long 956874519 + .long 3514693892 + .long 2792472730 + .long 223143890 + .long 3863435494 + .long 4158955756 + .long 1913749038 + .long 2734420489 + .long 1289978165 + .long 446287780 + .long 3431903692 + .long 4022944216 + .long 3827498077 + .long 1173873683 + .long 2579956331 + .long 892575561 + .long 2568840088 + .long 3750921137 + .long 3360028859 + .long 2347747367 + .long 864945366 + .long 1785151123 + .long 842712880 + .long 3206874979 + .long 2425090423 + .long 400527438 + .long 1729890733 + .long 3570302247 + .long 1685425760 + .long 2118782663 + .long 555213551 + .long 801054876 + .long 3459781466 + .long 2845637198 + .long 3370851521 + .long 4237565327 + .long 1110427102 + .long 1602109753 + .long 2624595636 + .long 1396307100 + .long 2446735747 + .long 4180163359 + .long 2220854205 + .long 3204219507 + .long 954223976 + .long 2792614201 + .long 598504198 + .long 4065359423 + .long 146741115 + .long 2113471718 + .long 1908447953 + .long 1290261106 + .long 1197008397 + .long 3835751551 + .long 293482231 + .long 4226943436 + .long 3816895906 + .long 2580522212 + .long 2394016794 + .long 3376535807 + .long 586964463 + .long 4158919577 + .long 3338824517 + .long 866077128 + .long 493066293 + .long 2458104319 + .long 1173928927 + .long 4022871858 + .long 2382681739 + .long 1732154256 + .long 986132586 + .long 621241343 + .long 2347857855 + .long 3750776420 + .long 470396183 + .long 3464308513 + .long 1972265172 + .long 1242482686 + .long 400748414 + .long 3206585544 + .long 940792367 + .long 2633649730 + .long 3944530345 + .long 2484965372 + .long 801496828 + .long 2118203793 + .long 1881584735 + .long 972332164 + .long 3594093395 + .long 674963448 + .long 1602993657 + .long 4236407587 + .long 3763169470 + .long 1944664328 + .long 2893219494 + .long 1349926897 + .long 3205987314 + .long 4177847879 + .long 3231371645 + .long 3889328657 + .long 1491471692 + .long 2699853794 + .long 2117007332 + .long 4060728462 + .long 2167775995 + .long 3483690018 + .long 2982943385 + .long 1104740292 + .long 4234014665 + .long 3826489629 + .long 40584695 + .long 2672412741 + .long 1670919475 + .long 2209480585 + .long 4173062034 + .long 3358011962 + .long 81169391 + .long 1049858187 + .long 3341838951 + .long 123993874 + .long 4051156773 + .long 2421056629 + .long 162338783 + .long 2099716375 + .long 2388710606 + .long 247987749 + .long 3807346250 + .long 547145963 + .long 324677567 + .long 4199432751 + .long 482453916 + .long 495975499 + .long 3319725204 + .long 1094291926 + .long 649355134 + .long 4103898207 + .long 964907833 + .long 991950999 + .long 2344483112 + .long 2188583852 + .long 1298710268 + .long 3912829119 + .long 1929815667 + .long 1983901999 + .long 393998928 + .long 82200408 + .long 2597420537 + .long 3530690942 + .long 3859631335 + .long 3967803999 + .long 787997856 + .long 164400817 + .long 899873778 + .long 2766414588 + .long 3424295375 + .long 3640640703 + .long 1575995713 + .long 328801635 + .long 1799747556 + .long 1237861880 + .long 2553623455 + .long 2986314111 + .long 3151991427 + .long 657603271 + .long 3599495112 + .long 2475723761 + .long 812279614 + .long 1677660927 + .long 2009015559 + .long 1315206542 + .long 2904022928 + .long 656480226 + .long 1624559229 + .long 3355321855 + .long 4018031118 + .long 2630413084 + .long 1513078560 + .long 1312960453 + .long 3249118458 + .long 2415676415 + .long 3741094941 + .long 965858873 + .long 3026157121 + .long 2625920907 + .long 2203269620 + .long 536385535 + .long 3187222587 + .long 1931717747 + .long 1757346946 + .long 956874519 + .long 111571945 + .long 1072771071 + .long 2079477878 + .long 3863435494 + .long 3514693892 + .long 1913749038 + .long 223143890 + .long 2145542143 + .long 4158955756 + .long 3431903692 + .long 2734420489 + .long 3827498077 + .long 446287780 + .long 4291084286 + .long 4022944216 + .long 2568840088 + .long 1173873683 + .long 3360028859 + .long 892575561 + .long 4287201277 + .long 3750921137 + .long 842712880 + .long 2347747367 + .long 2425090423 + .long 1785151123 + .long 4279435259 + .long 3206874979 + .long 1685425760 + .long 400527438 + .long 555213551 + .long 3570302247 + .long 4263903223 + .long 2118782663 + .long 3370851521 + .long 801054876 + .long 1110427102 + .long 2845637198 + .long 4232839151 + .long 4237565327 + .long 2446735747 + .long 1602109753 + .long 2220854205 + .long 1396307100 + .long 4170711006 + .long 4180163359 + .long 598504198 + .long 3204219507 + .long 146741115 + .long 2792614201 + .long 4046454716 + .long 4065359423 + .long 1197008397 + .long 2113471718 + .long 293482231 + .long 1290261106 + .long 3797942136 + .long 3835751551 + .long 2394016794 + .long 4226943436 + .long 586964463 + .long 2580522212 + .long 3300916976 + .long 3376535807 + .long 493066293 + .long 4158919577 + .long 1173928927 + .long 866077128 + .long 2306866656 + .long 2458104319 + .long 986132586 + .long 4022871858 + .long 2347857855 + .long 1732154256 + .long 318766016 + .long 621241343 + .long 1972265172 + .long 3750776420 + .long 400748414 + .long 3464308513 + .long 637532033 + .long 1242482686 + .long 3944530345 + .long 3206585544 + .long 801496828 + .long 2633649730 + .long 1275064066 + .long 2484965372 + .long 3594093395 + .long 2118203793 + .long 1602993657 + .long 972332164 + .long 2550128133 + .long 674963448 + .long 2893219494 + .long 4236407587 + .long 3205987314 + .long 1944664328 + .long 805288971 + .long 1349926897 + .long 1491471692 + .long 4177847879 + .long 2117007332 + .long 3889328657 + .long 1610577942 + .long 2699853794 + .long 2982943385 + .long 4060728462 + .long 4234014665 + .long 3483690018 + .long 3221155884 + .long 1104740292 + .long 1670919475 + .long 3826489629 + .long 4173062034 + .long 2672412741 + .long 2147344473 + .long 2209480585 + .long 3341838951 + .long 3358011962 + .long 4051156773 + .long 1049858187 + .long 4294688947 + .long 123993874 + .long 2388710606 + .long 2421056629 + .long 3807346250 + .long 2099716375 + .long 4294410598 + .long 247987749 + .long 482453916 + .long 547145963 + .long 3319725204 + .long 4199432751 + .long 4293853900 + .long 495975499 + .long 964907833 + .long 1094291926 + .long 2344483112 + .long 4103898207 + .long 4292740504 + .long 991950999 + .long 1929815667 + .long 2188583852 + .long 393998928 + .long 3912829119 + .long 4290513712 + .long 1983901999 + .long 3859631335 + .long 82200408 + .long 787997856 + .long 3530690942 + .long 4286060128 + .long 3967803999 + .long 3424295375 + .long 164400817 + .long 1575995713 + .long 2766414588 + .long 4277152960 + .long 3640640703 + .long 2553623455 + .long 328801635 + .long 3151991427 + .long 1237861880 + .long 4259338624 + .long 2986314111 + .long 812279614 + .long 657603271 + .long 2009015559 + .long 2475723761 + .long 4223709953 + .long 1677660927 + .long 1624559229 + .long 1315206542 + .long 4018031118 + .long 656480226 + .long 4152452611 + .long 3355321855 + .long 3249118458 + .long 2630413084 + .long 3741094941 + .long 1312960453 + .long 4009937927 + .long 2415676415 + .long 2203269620 + .long 965858873 + .long 3187222587 + .long 2625920907 + .long 3724908559 + .long 536385535 + .long 111571945 + .long 1931717747 + .long 2079477878 + .long 956874519 + .long 3154849823 + .long 1072771071 + .long 223143890 + .long 3863435494 + .long 4158955756 + .long 1913749038 + .long 2014732351 + .long 2145542143 + .long 446287780 + .long 3431903692 + .long 4022944216 + .long 3827498077 + .long 4029464703 + .long 4291084286 + .long 892575561 + .long 2568840088 + .long 3750921137 + .long 3360028859 + .long 3763962110 + .long 4287201277 + .long 1785151123 + .long 842712880 + .long 3206874979 + .long 2425090423 + .long 3232956925 + .long 4279435259 + .long 3570302247 + .long 1685425760 + .long 2118782663 + .long 555213551 + .long 2170946555 + .long 4263903223 + .long 2845637198 + .long 3370851521 + .long 4237565327 + .long 1110427102 + .long 46925815 + .long 4232839151 + .long 1396307100 + .long 2446735747 + .long 4180163359 + .long 2220854205 + .long 93851631 + .long 4170711006 + .long 2792614201 + .long 598504198 + .long 4065359423 + .long 146741115 + .long 187703262 + .long 4046454716 + .long 1290261106 + .long 1197008397 + .long 3835751551 + .long 293482231 + .long 375406524 + .long 3797942136 + .long 2580522212 + .long 2394016794 + .long 3376535807 + .long 586964463 + .long 750813049 + .long 3300916976 + .long 866077128 + .long 493066293 + .long 2458104319 + .long 1173928927 + .long 1501626098 + .long 2306866656 + .long 1732154256 + .long 986132586 + .long 621241343 + .long 2347857855 + .long 3003252197 + .long 318766016 + .long 3464308513 + .long 1972265172 + .long 1242482686 + .long 400748414 + .long 1711537099 + .long 637532033 + .long 2633649730 + .long 3944530345 + .long 2484965372 + .long 801496828 + .long 3423074199 + .long 1275064066 + .long 972332164 + .long 3594093395 + .long 674963448 + .long 1602993657 + .long 2551181103 + .long 2550128133 + .long 1944664328 + .long 2893219494 + .long 1349926897 + .long 3205987314 + .long 807394910 + .long 805288971 + .long 3889328657 + .long 1491471692 + .long 2699853794 + .long 2117007332 + .long 1614789820 + .long 1610577942 + .long 3483690018 + .long 2982943385 + .long 1104740292 + .long 4234014665 + .long 3229579640 + .long 3221155884 + .long 2672412741 + .long 1670919475 + .long 2209480585 + .long 4173062034 + .long 2164191985 + .long 2147344473 + .long 1049858187 + .long 3341838951 + .long 123993874 + .long 4051156773 + .long 33416674 + .long 4294688947 + .long 2099716375 + .long 2388710606 + .long 247987749 + .long 3807346250 + .long 66833348 + .long 4294410598 + .long 4199432751 + .long 482453916 + .long 495975499 + .long 3319725204 + .long 133666696 + .long 4293853900 + .long 4103898207 + .long 964907833 + .long 991950999 + .long 2344483112 + .long 267333393 + .long 4292740504 + .long 3912829119 + .long 1929815667 + .long 1983901999 + .long 393998928 + .long 534666787 + .long 4290513712 + .long 3530690942 + .long 3859631335 + .long 3967803999 + .long 787997856 + .long 1069333574 + .long 4286060128 + .long 2766414588 + .long 3424295375 + .long 3640640703 + .long 1575995713 + .long 2138667148 + .long 4277152960 + .long 1237861880 + .long 2553623455 + .long 2986314111 + .long 3151991427 + .long 4277334296 + .long 4259338624 + .long 2475723761 + .long 812279614 + .long 1677660927 + .long 2009015559 + .long 4259701297 + .long 4223709953 + .long 656480226 + .long 1624559229 + .long 3355321855 + .long 4018031118 + .long 4224435298 + .long 4152452611 + .long 1312960453 + .long 3249118458 + .long 2415676415 + .long 3741094941 + .long 4153903301 + .long 4009937927 + .long 2625920907 + .long 2203269620 + .long 536385535 + .long 3187222587 + .long 4012839307 + .long 3724908559 + .long 956874519 + .long 111571945 + .long 1072771071 + .long 2079477878 + .long 3730711318 + .long 3154849823 + .long 1913749038 + .long 223143890 + .long 2145542143 + .long 4158955756 + .long 3166455341 + .long 2014732351 + .long 3827498077 + .long 446287780 + .long 4291084286 + .long 4022944216 + .long 2037943386 + .long 4029464703 + .long 3360028859 + .long 892575561 + .long 4287201277 + .long 3750921137 + .long 4075886773 + .long 3763962110 + .long 2425090423 + .long 1785151123 + .long 4279435259 + .long 3206874979 + .long 3856806251 + .long 3232956925 + .long 555213551 + .long 3570302247 + .long 4263903223 + .long 2118782663 + .long 3418645206 + .long 2170946555 + .long 1110427102 + .long 2845637198 + .long 4232839151 + .long 4237565327 + .long 2542323117 + .long 46925815 + .long 2220854205 + .long 1396307100 + .long 4170711006 + .long 4180163359 + .long 789678938 + .long 93851631 + .long 146741115 + .long 2792614201 + .long 4046454716 + .long 4065359423 + .long 1579357876 + .long 187703262 + .long 293482231 + .long 1290261106 + .long 3797942136 + .long 3835751551 + .long 3158715752 + .long 375406524 + .long 586964463 + .long 2580522212 + .long 3300916976 + .long 3376535807 + .long 2022464208 + .long 750813049 + .long 1173928927 + .long 866077128 + .long 2306866656 + .long 2458104319 + .long 4044928416 + .long 1501626098 + .long 2347857855 + .long 1732154256 + .long 318766016 + .long 621241343 + .long 3794889537 + .long 3003252197 + .long 400748414 + .long 3464308513 + .long 637532033 + .long 1242482686 + .long 3294811778 + .long 1711537099 + .long 801496828 + .long 2633649730 + .long 1275064066 + .long 2484965372 + .long 2294656261 + .long 3423074199 + .long 1602993657 + .long 972332164 + .long 2550128133 + .long 674963448 + .long 294345226 + .long 2551181103 + .long 3205987314 + .long 1944664328 + .long 805288971 + .long 1349926897 + .long 588690452 + .long 807394910 + .long 2117007332 + .long 3889328657 + .long 1610577942 + .long 2699853794 + .long 1177380905 + .long 1614789820 + .long 4234014665 + .long 3483690018 + .long 3221155884 + .long 1104740292 + .long 2354761811 + .long 3229579640 + .long 4173062034 + .long 2672412741 + .long 2147344473 + .long 2209480585 + .long 414556326 + .long 2164191985 + .long 4051156773 + .long 1049858187 + .long 4294688947 + .long 123993874 + .long 829112653 + .long 33416674 + .long 3807346250 + .long 2099716375 + .long 4294410598 + .long 247987749 + .long 1658225307 + .long 66833348 + .long 3319725204 + .long 4199432751 + .long 4293853900 + .long 495975499 + .long 3316450614 + .long 133666696 + .long 2344483112 + .long 4103898207 + .long 4292740504 + .long 991950999 + .long 2337933933 + .long 267333393 + .long 393998928 + .long 3912829119 + .long 4290513712 + .long 1983901999 + .long 380900570 + .long 534666787 + .long 787997856 + .long 3530690942 + .long 4286060128 + .long 3967803999 + .long 761801140 + .long 1069333574 + .long 1575995713 + .long 2766414588 + .long 4277152960 + .long 3640640703 + .long 1523602280 + .long 2138667148 + .long 3151991427 + .long 1237861880 + .long 4259338624 + .long 2986314111 + .long 3047204561 + .long 4277334296 + .long 2009015559 + .long 2475723761 + .long 4223709953 + .long 1677660927 + .long 1799441827 + .long 4259701297 + .long 4018031118 + .long 656480226 + .long 4152452611 + .long 3355321855 + .long 3598883655 + .long 4224435298 + .long 3741094941 + .long 1312960453 + .long 4009937927 + .long 2415676415 + .long 2902800015 + .long 4153903301 + .long 3187222587 + .long 2625920907 + .long 3724908559 + .long 536385535 + .long 1510632735 + .long 4012839307 + .long 2079477878 + .long 956874519 + .long 3154849823 + .long 1072771071 + .long 3021265470 + .long 3730711318 + .long 4158955756 + .long 1913749038 + .long 2014732351 + .long 2145542143 + .long 1747563645 + .long 3166455341 + .long 4022944216 + .long 3827498077 + .long 4029464703 + .long 4291084286 + .long 3495127291 + .long 2037943386 + .long 3750921137 + .long 3360028859 + .long 3763962110 + .long 4287201277 + .long 2695287286 + .long 4075886773 + .long 3206874979 + .long 2425090423 + .long 3232956925 + .long 4279435259 + .long 1095607277 + .long 3856806251 + .long 2118782663 + .long 555213551 + .long 2170946555 + .long 4263903223 + .long 2191214555 + .long 3418645206 + .long 4237565327 + .long 1110427102 + .long 46925815 + .long 4232839151 + .long 87461814 + .long 2542323117 + .long 4180163359 + .long 2220854205 + .long 93851631 + .long 4170711006 + .long 174923629 + .long 789678938 + .long 4065359423 + .long 146741115 + .long 187703262 + .long 4046454716 + .long 349847258 + .long 1579357876 + .long 3835751551 + .long 293482231 + .long 375406524 + .long 3797942136 + .long 699694516 + .long 3158715752 + .long 3376535807 + .long 586964463 + .long 750813049 + .long 3300916976 + .long 1399389033 + .long 2022464208 + .long 2458104319 + .long 1173928927 + .long 1501626098 + .long 2306866656 + .long 2798778067 + .long 4044928416 + .long 621241343 + .long 2347857855 + .long 3003252197 + .long 318766016 + .long 1302588838 + .long 3794889537 + .long 1242482686 + .long 400748414 + .long 1711537099 + .long 637532033 + .long 2605177677 + .long 3294811778 + .long 2484965372 + .long 801496828 + .long 3423074199 + .long 1275064066 + .long 915388059 + .long 2294656261 + .long 674963448 + .long 1602993657 + .long 2551181103 + .long 2550128133 + .long 1830776118 + .long 294345226 + .long 1349926897 + .long 3205987314 + .long 807394910 + .long 805288971 + .long 3661552236 + .long 588690452 + .long 2699853794 + .long 2117007332 + .long 1614789820 + .long 1610577942 + .long 3028137177 + .long 1177380905 + .long 1104740292 + .long 4234014665 + .long 3229579640 + .long 3221155884 + .long 1761307059 + .long 2354761811 + .long 2209480585 + .long 4173062034 + .long 2164191985 + .long 2147344473 + .long 3522614119 + .long 414556326 + .long 123993874 + .long 4051156773 + .long 33416674 + .long 4294688947 + .long 2750260943 + .long 829112653 + .long 247987749 + .long 3807346250 + .long 66833348 + .long 4294410598 + .long 1205554591 + .long 1658225307 + .long 495975499 + .long 3319725204 + .long 133666696 + .long 4293853900 + .long 2411109183 + .long 3316450614 + .long 991950999 + .long 2344483112 + .long 267333393 + .long 4292740504 + .long 527251070 + .long 2337933933 + .long 1983901999 + .long 393998928 + .long 534666787 + .long 4290513712 + .long 1054502141 + .long 380900570 + .long 3967803999 + .long 787997856 + .long 1069333574 + .long 4286060128 + .long 2109004283 + .long 761801140 + .long 3640640703 + .long 1575995713 + .long 2138667148 + .long 4277152960 + .long 4218008566 + .long 1523602280 + .long 2986314111 + .long 3151991427 + .long 4277334296 + .long 4259338624 + .long 4141049836 + .long 3047204561 + .long 1677660927 + .long 2009015559 + .long 4259701297 + .long 4223709953 + .long 3987132377 + .long 1799441827 + .long 3355321855 + .long 4018031118 + .long 4224435298 + .long 4152452611 + .long 3679297459 + .long 3598883655 + .long 2415676415 + .long 3741094941 + .long 4153903301 + .long 4009937927 + .long 3063627623 + .long 2902800015 + .long 536385535 + .long 3187222587 + .long 4012839307 + .long 3724908559 + .long 1832287951 + .long 1510632735 + .long 1072771071 + .long 2079477878 + .long 3730711318 + .long 3154849823 + .long 3664575902 + .long 3021265470 + .long 2145542143 + .long 4158955756 + .long 3166455341 + .long 2014732351 + .long 3034184508 + .long 1747563645 + .long 4291084286 + .long 4022944216 + .long 2037943386 + .long 4029464703 + .long 1773401721 + .long 3495127291 + .long 4287201277 + .long 3750921137 + .long 4075886773 + .long 3763962110 + .long 3546803442 + .long 2695287286 + .long 4279435259 + .long 3206874979 + .long 3856806251 + .long 3232956925 + .long 2798639588 + .long 1095607277 + .long 4263903223 + .long 2118782663 + .long 3418645206 + .long 2170946555 + .long 1302311881 + .long 2191214555 + .long 4232839151 + .long 4237565327 + .long 2542323117 + .long 46925815 + .long 2604623763 + .long 87461814 + .long 4170711006 + .long 4180163359 + .long 789678938 + .long 93851631 + .long 914280231 + .long 174923629 + .long 4046454716 + .long 4065359423 + .long 1579357876 + .long 187703262 + .long 1828560463 + .long 349847258 + .long 3797942136 + .long 3835751551 + .long 3158715752 + .long 375406524 + .long 3657120927 + .long 699694516 + .long 3300916976 + .long 3376535807 + .long 2022464208 + .long 750813049 + .long 3019274558 + .long 1399389033 + .long 2306866656 + .long 2458104319 + .long 4044928416 + .long 1501626098 + .long 1743581820 + .long 2798778067 + .long 318766016 + .long 621241343 + .long 3794889537 + .long 3003252197 + .long 3487163641 + .long 1302588838 + .long 637532033 + .long 1242482686 + .long 3294811778 + .long 1711537099 + .long 2679359986 + .long 2605177677 + .long 1275064066 + .long 2484965372 + .long 2294656261 + .long 3423074199 + .long 1063752677 + .long 915388059 + .long 2550128133 + .long 674963448 + .long 294345226 + .long 2551181103 + .long 2127505355 + .long 1830776118 + .long 805288971 + .long 1349926897 + .long 588690452 + .long 807394910 + .long 4255010710 + .long 3661552236 + .long 1610577942 + .long 2699853794 + .long 1177380905 + .long 1614789820 + .long 4215054124 + .long 3028137177 + .long 3221155884 + .long 1104740292 + .long 2354761811 + .long 3229579640 + .long 4135140952 + .long 1761307059 + .long 2147344473 + .long 2209480585 + .long 414556326 + .long 2164191985 + .long 3975314608 + .long 3522614119 + .long 4294688947 + .long 123993874 + .long 829112653 + .long 33416674 + .long 3655661921 + .long 2750260943 + .long 4294410598 + .long 247987749 + .long 1658225307 + .long 66833348 + .long 3016356546 + .long 1205554591 + .long 4293853900 + .long 495975499 + .long 3316450614 + .long 133666696 + .long 1737745796 + .long 2411109183 + .long 4292740504 + .long 991950999 + .long 2337933933 + .long 267333393 + .long 3475491593 + .long 527251070 + .long 4290513712 + .long 1983901999 + .long 380900570 + .long 534666787 + .long 2656015891 + .long 1054502141 + .long 4286060128 + .long 3967803999 + .long 761801140 + .long 1069333574 + .long 1017064486 + .long 2109004283 + .long 4277152960 + .long 3640640703 + .long 1523602280 + .long 2138667148 + .long 2034128973 + .long 4218008566 + .long 4259338624 + .long 2986314111 + .long 3047204561 + .long 4277334296 + .long 4068257947 + .long 4141049836 + .long 4223709953 + .long 1677660927 + .long 1799441827 + .long 4259701297 + .long 3841548598 + .long 3987132377 + .long 4152452611 + .long 3355321855 + .long 3598883655 + .long 4224435298 + .long 3388129901 + .long 3679297459 + .long 4009937927 + .long 2415676415 + .long 2902800015 + .long 4153903301 + .long 2481292507 + .long 3063627623 + .long 3724908559 + .long 536385535 + .long 1510632735 + .long 4012839307 + .long 667617719 + .long 1832287951 + .long 3154849823 + .long 1072771071 + .long 3021265470 + .long 3730711318 + .long 1335235438 + .long 3664575902 + .long 2014732351 + .long 2145542143 + .long 1747563645 + .long 3166455341 + .long 2670470877 + .long 3034184508 + .long 4029464703 + .long 4291084286 + .long 3495127291 + .long 2037943386 + .long 1045974458 + .long 1773401721 + .long 3763962110 + .long 4287201277 + .long 2695287286 + .long 4075886773 + .long 2091948916 + .long 3546803442 + .long 3232956925 + .long 4279435259 + .long 1095607277 + .long 3856806251 + .long 4183897833 + .long 2798639588 + .long 2170946555 + .long 4263903223 + .long 2191214555 + .long 3418645206 + .long 4072828371 + .long 1302311881 + .long 46925815 + .long 4232839151 + .long 87461814 + .long 2542323117 + .long 3850689447 + .long 2604623763 + .long 93851631 + .long 4170711006 + .long 174923629 + .long 789678938 + .long 3406411599 + .long 914280231 + .long 187703262 + .long 4046454716 + .long 349847258 + .long 1579357876 + .long 2517855902 + .long 1828560463 + .long 375406524 + .long 3797942136 + .long 699694516 + .long 3158715752 + .long 740744509 + .long 3657120927 + .long 750813049 + .long 3300916976 + .long 1399389033 + .long 2022464208 + .long 1481489018 + .long 3019274558 + .long 1501626098 + .long 2306866656 + .long 2798778067 + .long 4044928416 + .long 2962978036 + .long 1743581820 + .long 3003252197 + .long 318766016 + .long 1302588838 + .long 3794889537 + .long 1630988776 + .long 3487163641 + .long 1711537099 + .long 637532033 + .long 2605177677 + .long 3294811778 + .long 3261977553 + .long 2679359986 + .long 3423074199 + .long 1275064066 + .long 915388059 + .long 2294656261 + .long 2228987811 + .long 1063752677 + .long 2551181103 + .long 2550128133 + .long 1830776118 + .long 294345226 + .long 163008326 + .long 2127505355 + .long 807394910 + .long 805288971 + .long 3661552236 + .long 588690452 + .long 326016652 + .long 4255010710 + .long 1614789820 + .long 1610577942 + .long 3028137177 + .long 1177380905 + .long 652033304 + .long 4215054124 + .long 3229579640 + .long 3221155884 + .long 1761307059 + .long 2354761811 + .long 1304066609 + .long 4135140952 + .long 2164191985 + .long 2147344473 + .long 3522614119 + .long 414556326 + .long 2608133219 + .long 3975314608 + .long 33416674 + .long 4294688947 + .long 2750260943 + .long 829112653 + .long 921299143 + .long 3655661921 + .long 66833348 + .long 4294410598 + .long 1205554591 + .long 1658225307 + .long 1842598287 + .long 3016356546 + .long 133666696 + .long 4293853900 + .long 2411109183 + .long 3316450614 + .long 3685196575 + .long 1737745796 + .long 267333393 + .long 4292740504 + .long 527251070 + .long 2337933933 + .long 3075425855 + .long 3475491593 + .long 534666787 + .long 4290513712 + .long 1054502141 + .long 380900570 + .long 1855884414 + .long 2656015891 + .long 1069333574 + .long 4286060128 + .long 2109004283 + .long 761801140 + .long 3711768829 + .long 1017064486 + .long 2138667148 + .long 4277152960 + .long 4218008566 + .long 1523602280 + .long 3128570363 + .long 2034128973 + .long 4277334296 + .long 4259338624 + .long 4141049836 + .long 3047204561 + .long 1962173430 + .long 4068257947 + .long 4259701297 + .long 4223709953 + .long 3987132377 + .long 1799441827 + .long 3924346860 + .long 3841548598 + .long 4224435298 + .long 4152452611 + .long 3679297459 + .long 3598883655 + .long 3553726425 + .long 3388129901 + .long 4153903301 + .long 4009937927 + .long 3063627623 + .long 2902800015 + .long 2812485555 + .long 2481292507 + .long 4012839307 + .long 3724908559 + .long 1832287951 + .long 1510632735 + .long 1330003814 + .long 667617719 + .long 3730711318 + .long 3154849823 + .long 3664575902 + .long 3021265470 + .long 2660007629 + .long 1335235438 + .long 3166455341 + .long 2014732351 + .long 3034184508 + .long 1747563645 + .long 1025047962 + .long 2670470877 + .long 2037943386 + .long 4029464703 + .long 1773401721 + .long 3495127291 + .long 2050095924 + .long 1045974458 + .long 4075886773 + .long 3763962110 + .long 3546803442 + .long 2695287286 + .long 4100191849 + .long 2091948916 + .long 3856806251 + .long 3232956925 + .long 2798639588 + .long 1095607277 + .long 3905416403 + .long 4183897833 + .long 3418645206 + .long 2170946555 + .long 1302311881 + .long 2191214555 + .long 3515865511 + .long 4072828371 + .long 2542323117 + .long 46925815 + .long 2604623763 + .long 87461814 + .long 2736763727 + .long 3850689447 + .long 789678938 + .long 93851631 + .long 914280231 + .long 174923629 + .long 1178560158 + .long 3406411599 + .long 1579357876 + .long 187703262 + .long 1828560463 + .long 349847258 + .long 2357120316 + .long 2517855902 + .long 3158715752 + .long 375406524 + .long 3657120927 + .long 699694516 + .long 419273337 + .long 740744509 + .long 2022464208 + .long 750813049 + .long 3019274558 + .long 1399389033 + .long 838546674 + .long 1481489018 + .long 4044928416 + .long 1501626098 + .long 1743581820 + .long 2798778067 + .long 1677093349 + .long 2962978036 + .long 3794889537 + .long 3003252197 + .long 3487163641 + .long 1302588838 + .long 3354186699 + .long 1630988776 + .long 3294811778 + .long 1711537099 + .long 2679359986 + .long 2605177677 + .long 2413406103 + .long 3261977553 + .long 2294656261 + .long 3423074199 + .long 1063752677 + .long 915388059 + .long 531844911 + .long 2228987811 + .long 294345226 + .long 2551181103 + .long 2127505355 + .long 1830776118 + .long 1063689823 + .long 163008326 + .long 588690452 + .long 807394910 + .long 4255010710 + .long 3661552236 + .long 2127379647 + .long 326016652 + .long 1177380905 + .long 1614789820 + .long 4215054124 + .long 3028137177 + .long 4254759295 + .long 652033304 + .long 2354761811 + .long 3229579640 + .long 4135140952 + .long 1761307059 + .long 4214551295 + .long 1304066609 + .long 414556326 + .long 2164191985 + .long 3975314608 + .long 3522614119 + .long 4134135294 + .long 2608133219 + .long 829112653 + .long 33416674 + .long 3655661921 + .long 2750260943 + .long 3973303293 + .long 921299143 + .long 1658225307 + .long 66833348 + .long 3016356546 + .long 1205554591 + .long 3651639290 + .long 1842598287 + .long 3316450614 + .long 133666696 + .long 1737745796 + .long 2411109183 + .long 3008311285 + .long 3685196575 + .long 2337933933 + .long 267333393 + .long 3475491593 + .long 527251070 + .long 1721655274 + .long 3075425855 + .long 380900570 + .long 534666787 + .long 2656015891 + .long 1054502141 + .long 3443310548 + .long 1855884414 + .long 761801140 + .long 1069333574 + .long 1017064486 + .long 2109004283 + .long 2591653800 + .long 3711768829 + .long 1523602280 + .long 2138667148 + .long 2034128973 + .long 4218008566 + .long 888340305 + .long 3128570363 + .long 3047204561 + .long 4277334296 + .long 4068257947 + .long 4141049836 + .long 1776680610 + .long 1962173430 + .long 1799441827 + .long 4259701297 + .long 3841548598 + .long 3987132377 + .long 3553361221 + .long 3924346860 + .long 3598883655 + .long 4224435298 + .long 3388129901 + .long 3679297459 + .long 2811755147 + .long 3553726425 + .long 2902800015 + .long 4153903301 + .long 2481292507 + .long 3063627623 + .long 1328542998 + .long 2812485555 + .long 1510632735 + .long 4012839307 + .long 667617719 + .long 1832287951 + .long 2657085997 + .long 1330003814 + .long 3021265470 + .long 3730711318 + .long 1335235438 + .long 3664575902 + .long 1019204698 + .long 2660007629 + .long 1747563645 + .long 3166455341 + .long 2670470877 + .long 3034184508 + .long 2038409397 + .long 1025047962 + .long 3495127291 + .long 2037943386 + .long 1045974458 + .long 1773401721 + .long 4076818795 + .long 2050095924 + .long 2695287286 + .long 4075886773 + .long 2091948916 + .long 3546803442 + .long 3858670295 + .long 4100191849 + .long 1095607277 + .long 3856806251 + .long 4183897833 + .long 2798639588 + .long 3422373294 + .long 3905416403 + .long 2191214555 + .long 3418645206 + .long 4072828371 + .long 1302311881 + .long 2549779293 + .long 3515865511 + .long 87461814 + .long 2542323117 + .long 3850689447 + .long 2604623763 + .long 804591290 + .long 2736763727 + .long 174923629 + .long 789678938 + .long 3406411599 + .long 914280231 + .long 1609182581 + .long 1178560158 + .long 349847258 + .long 1579357876 + .long 2517855902 + .long 1828560463 + .long 3218365162 + .long 2357120316 + .long 699694516 + .long 3158715752 + .long 740744509 + .long 3657120927 + .long 2141763028 + .long 419273337 + .long 1399389033 + .long 2022464208 + .long 1481489018 + .long 3019274558 + .long 4283526057 + .long 838546674 + .long 2798778067 + .long 4044928416 + .long 2962978036 + .long 1743581820 + .long 4272084818 + .long 1677093349 + .long 1302588838 + .long 3794889537 + .long 1630988776 + .long 3487163641 + .long 4249202340 + .long 3354186699 + .long 2605177677 + .long 3294811778 + .long 3261977553 + .long 2679359986 + .long 4203437385 + .long 2413406103 + .long 915388059 + .long 2294656261 + .long 2228987811 + .long 1063752677 + .long 4111907475 + .long 531844911 + .long 1830776118 + .long 294345226 + .long 163008326 + .long 2127505355 + .long 3928847655 + .long 1063689823 + .long 3661552236 + .long 588690452 + .long 326016652 + .long 4255010710 + .long 3562728015 + .long 2127379647 + .long 3028137177 + .long 1177380905 + .long 652033304 + .long 4215054124 + .long 2830488734 + .long 4254759295 + .long 1761307059 + .long 2354761811 + .long 1304066609 + .long 4135140952 + .long 1366010173 + .long 4214551295 + .long 3522614119 + .long 414556326 + .long 2608133219 + .long 3975314608 + .long 2732020347 + .long 4134135294 + .long 2750260943 + .long 829112653 + .long 921299143 + .long 3655661921 + .long 1169073399 + .long 3973303293 + .long 1205554591 + .long 1658225307 + .long 1842598287 + .long 3016356546 + .long 2338146798 + .long 3651639290 + .long 2411109183 + .long 3316450614 + .long 3685196575 + .long 1737745796 + .long 381326301 + .long 3008311285 + .long 527251070 + .long 2337933933 + .long 3075425855 + .long 3475491593 + .long 762652602 + .long 1721655274 + .long 1054502141 + .long 380900570 + .long 1855884414 + .long 2656015891 + .long 1525305205 + .long 3443310548 + .long 2109004283 + .long 761801140 + .long 3711768829 + .long 1017064486 + .long 3050610411 + .long 2591653800 + .long 4218008566 + .long 1523602280 + .long 3128570363 + .long 2034128973 + .long 1806253526 + .long 888340305 + .long 4141049836 + .long 3047204561 + .long 1962173430 + .long 4068257947 + .long 3612507052 + .long 1776680610 + .long 3987132377 + .long 1799441827 + .long 3924346860 + .long 3841548598 + .long 2930046808 + .long 3553361221 + .long 3679297459 + .long 3598883655 + .long 3553726425 + .long 3388129901 + .long 1565126321 + .long 2811755147 + .long 3063627623 + .long 2902800015 + .long 2812485555 + .long 2481292507 + .long 3130252643 + .long 1328542998 + .long 1832287951 + .long 1510632735 + .long 1330003814 + .long 667617719 + .long 1965537991 + .long 2657085997 + .long 3664575902 + .long 3021265470 + .long 2660007629 + .long 1335235438 + .long 3931075983 + .long 1019204698 + .long 3034184508 + .long 1747563645 + .long 1025047962 + .long 2670470877 + .long 3567184671 + .long 2038409397 + .long 1773401721 + .long 3495127291 + .long 2050095924 + .long 1045974458 + .long 2839402047 + .long 4076818795 + .long 3546803442 + .long 2695287286 + .long 4100191849 + .long 2091948916 + .long 1383836798 + .long 3858670295 + .long 2798639588 + .long 1095607277 + .long 3905416403 + .long 4183897833 + .long 2767673597 + .long 3422373294 + .long 1302311881 + .long 2191214555 + .long 3515865511 + .long 4072828371 + .long 1240379898 + .long 2549779293 + .long 2604623763 + .long 87461814 + .long 2736763727 + .long 3850689447 + .long 2480759797 + .long 804591290 + .long 914280231 + .long 174923629 + .long 1178560158 + .long 3406411599 + .long 666552299 + .long 1609182581 + .long 1828560463 + .long 349847258 + .long 2357120316 + .long 2517855902 + .long 1333104599 + .long 3218365162 + .long 3657120927 + .long 699694516 + .long 419273337 + .long 740744509 + .long 2666209199 + .long 2141763028 + .long 3019274558 + .long 1399389033 + .long 838546674 + .long 1481489018 + .long 1037451103 + .long 4283526057 + .long 1743581820 + .long 2798778067 + .long 1677093349 + .long 2962978036 + .long 2074902206 + .long 4272084818 + .long 3487163641 + .long 1302588838 + .long 3354186699 + .long 1630988776 + .long 4149804412 + .long 4249202340 + .long 2679359986 + .long 2605177677 + .long 2413406103 + .long 3261977553 + .long 4004641529 + .long 4203437385 + .long 1063752677 + .long 915388059 + .long 531844911 + .long 2228987811 + .long 3714315762 + .long 4111907475 + .long 2127505355 + .long 1830776118 + .long 1063689823 + .long 163008326 + .long 3133664229 + .long 3928847655 + .long 4255010710 + .long 3661552236 + .long 2127379647 + .long 326016652 + .long 1972361163 + .long 3562728015 + .long 4215054124 + .long 3028137177 + .long 4254759295 + .long 652033304 + .long 3944722327 + .long 2830488734 + .long 4135140952 + .long 1761307059 + .long 4214551295 + .long 1304066609 + .long 3594477359 + .long 1366010173 + .long 3975314608 + .long 3522614119 + .long 4134135294 + .long 2608133219 + .long 2893987423 + .long 2732020347 + .long 3655661921 + .long 2750260943 + .long 3973303293 + .long 921299143 + .long 1493007550 + .long 1169073399 + .long 3016356546 + .long 1205554591 + .long 3651639290 + .long 1842598287 + .long 2986015100 + .long 2338146798 + .long 1737745796 + .long 2411109183 + .long 3008311285 + .long 3685196575 + .long 1677062904 + .long 381326301 + .long 3475491593 + .long 527251070 + .long 1721655274 + .long 3075425855 + .long 3354125809 + .long 762652602 + .long 2656015891 + .long 1054502141 + .long 3443310548 + .long 1855884414 + .long 2413284322 + .long 1525305205 + .long 1017064486 + .long 2109004283 + .long 2591653800 + .long 3711768829 + .long 531601349 + .long 3050610411 + .long 2034128973 + .long 4218008566 + .long 888340305 + .long 3128570363 + .long 1063202699 + .long 1806253526 + .long 4068257947 + .long 4141049836 + .long 1776680610 + .long 1962173430 + .long 2126405399 + .long 3612507052 + .long 3841548598 + .long 3987132377 + .long 3553361221 + .long 3924346860 + .long 4252810799 + .long 2930046808 + .long 3388129901 + .long 3679297459 + .long 2811755147 + .long 3553726425 + .long 4210654302 + .long 1565126321 + .long 2481292507 + .long 3063627623 + .long 1328542998 + .long 2812485555 + .long 4126341309 + .long 3130252643 + .long 667617719 + .long 1832287951 + .long 2657085997 + .long 1330003814 + .long 3957715323 + .long 1965537991 + .long 1335235438 + .long 3664575902 + .long 1019204698 + .long 2660007629 + .long 3620463350 + .long 3931075983 + .long 2670470877 + .long 3034184508 + .long 2038409397 + .long 1025047962 + .long 2945959404 + .long 3567184671 + .long 1045974458 + .long 1773401721 + .long 4076818795 + .long 2050095924 + .long 1596951513 + .long 2839402047 + .long 2091948916 + .long 3546803442 + .long 3858670295 + .long 4100191849 + .long 3193903027 + .long 1383836798 + .long 4183897833 + .long 2798639588 + .long 3422373294 + .long 3905416403 + .long 2092838759 + .long 2767673597 + .long 4072828371 + .long 1302311881 + .long 2549779293 + .long 3515865511 + .long 4185677519 + .long 1240379898 + .long 3850689447 + .long 2604623763 + .long 804591290 + .long 2736763727 + .long 4076387742 + .long 2480759797 + .long 3406411599 + .long 914280231 + .long 1609182581 + .long 1178560158 + .long 3857808189 + .long 666552299 + .long 2517855902 + .long 1828560463 + .long 3218365162 + .long 2357120316 + .long 3420649082 + .long 1333104599 + .long 740744509 + .long 3657120927 + .long 2141763028 + .long 419273337 + .long 2546330868 + .long 2666209199 + .long 1481489018 + .long 3019274558 + .long 4283526057 + .long 838546674 + .long 797694440 + .long 1037451103 + .long 2962978036 + .long 1743581820 + .long 4272084818 + .long 1677093349 + .long 1595388880 + .long 2074902206 + .long 1630988776 + .long 3487163641 + .long 4249202340 + .long 3354186699 + .long 3190777760 + .long 4149804412 + .long 3261977553 + .long 2679359986 + .long 4203437385 + .long 2413406103 + .long 2086588225 + .long 4004641529 + .long 2228987811 + .long 1063752677 + .long 4111907475 + .long 531844911 + .long 4173176451 + .long 3714315762 + .long 163008326 + .long 2127505355 + .long 3928847655 + .long 1063689823 + .long 4051385607 + .long 3133664229 + .long 326016652 + .long 4255010710 + .long 3562728015 + .long 2127379647 + .long 3807803918 + .long 1972361163 + .long 652033304 + .long 4215054124 + .long 2830488734 + .long 4254759295 + .long 3320640540 + .long 3944722327 + .long 1304066609 + .long 4135140952 + .long 1366010173 + .long 4214551295 + .long 2346313785 + .long 3594477359 + .long 2608133219 + .long 3975314608 + .long 2732020347 + .long 4134135294 + .long 397660275 + .long 2893987423 + .long 921299143 + .long 3655661921 + .long 1169073399 + .long 3973303293 + .long 795320551 + .long 1493007550 + .long 1842598287 + .long 3016356546 + .long 2338146798 + .long 3651639290 + .long 1590641102 + .long 2986015100 + .long 3685196575 + .long 1737745796 + .long 381326301 + .long 3008311285 + .long 3181282204 + .long 1677062904 + .long 3075425855 + .long 3475491593 + .long 762652602 + .long 1721655274 + .long 2067597113 + .long 3354125809 + .long 1855884414 + .long 2656015891 + .long 1525305205 + .long 3443310548 + .long 4135194227 + .long 2413284322 + .long 3711768829 + .long 1017064486 + .long 3050610411 + .long 2591653800 + .long 3975421159 + .long 531601349 + .long 3128570363 + .long 2034128973 + .long 1806253526 + .long 888340305 + .long 3655875023 + .long 1063202699 + .long 1962173430 + .long 4068257947 + .long 3612507052 + .long 1776680610 + .long 3016782751 + .long 2126405399 + .long 3924346860 + .long 3841548598 + .long 2930046808 + .long 3553361221 + .long 1738598206 + .long 4252810799 + .long 3553726425 + .long 3388129901 + .long 1565126321 + .long 2811755147 + .long 3477196413 + .long 4210654302 + .long 2812485555 + .long 2481292507 + .long 3130252643 + .long 1328542998 + .long 2659425531 + .long 4126341309 + .long 1330003814 + .long 667617719 + .long 1965537991 + .long 2657085997 + .long 1023883767 + .long 3957715323 + .long 2660007629 + .long 1335235438 + .long 3931075983 + .long 1019204698 + .long 2047767535 + .long 3620463350 + .long 1025047962 + .long 2670470877 + .long 3567184671 + .long 2038409397 + .long 4095535070 + .long 2945959404 + .long 2050095924 + .long 1045974458 + .long 2839402047 + .long 4076818795 + .long 3896102844 + .long 1596951513 + .long 4100191849 + .long 2091948916 + .long 1383836798 + .long 3858670295 + .long 3497238392 + .long 3193903027 + .long 3905416403 + .long 4183897833 + .long 2767673597 + .long 3422373294 + .long 2699509489 + .long 2092838759 + .long 3515865511 + .long 4072828371 + .long 1240379898 + .long 2549779293 + .long 1104051682 + .long 4185677519 + .long 2736763727 + .long 3850689447 + .long 2480759797 + .long 804591290 + .long 2208103365 + .long 4076387742 + .long 1178560158 + .long 3406411599 + .long 666552299 + .long 1609182581 + .long 121239434 + .long 3857808189 + .long 2357120316 + .long 2517855902 + .long 1333104599 + .long 3218365162 + .long 242478868 + .long 3420649082 + .long 419273337 + .long 740744509 + .long 2666209199 + .long 2141763028 + .long 484957737 + .long 2546330868 + .long 838546674 + .long 1481489018 + .long 1037451103 + .long 4283526057 + .long 969915474 + .long 797694440 + .long 1677093349 + .long 2962978036 + .long 2074902206 + .long 4272084818 + .long 1939830949 + .long 1595388880 + .long 3354186699 + .long 1630988776 + .long 4149804412 + .long 4249202340 + .long 3879661898 + .long 3190777760 + .long 2413406103 + .long 3261977553 + .long 4004641529 + .long 4203437385 + .long 3464356500 + .long 2086588225 + .long 531844911 + .long 2228987811 + .long 3714315762 + .long 4111907475 + .long 2633745705 + .long 4173176451 + .long 1063689823 + .long 163008326 + .long 3133664229 + .long 3928847655 + .long 972524114 + .long 4051385607 + .long 2127379647 + .long 326016652 + .long 1972361163 + .long 3562728015 + .long 1945048229 + .long 3807803918 + .long 4254759295 + .long 652033304 + .long 3944722327 + .long 2830488734 + .long 3890096458 + .long 3320640540 + .long 4214551295 + .long 1304066609 + .long 3594477359 + .long 1366010173 + .long 3485225620 + .long 2346313785 + .long 4134135294 + .long 2608133219 + .long 2893987423 + .long 2732020347 + .long 2675483945 + .long 397660275 + .long 3973303293 + .long 921299143 + .long 1493007550 + .long 1169073399 + .long 1056000594 + .long 795320551 + .long 3651639290 + .long 1842598287 + .long 2986015100 + .long 2338146798 + .long 2112001188 + .long 1590641102 + .long 3008311285 + .long 3685196575 + .long 1677062904 + .long 381326301 + .long 4224002377 + .long 3181282204 + .long 1721655274 + .long 3075425855 + .long 3354125809 + .long 762652602 + .long 4153037458 + .long 2067597113 + .long 3443310548 + .long 1855884414 + .long 2413284322 + .long 1525305205 + .long 4011107621 + .long 4135194227 + .long 2591653800 + .long 3711768829 + .long 531601349 + .long 3050610411 + .long 3727247947 + .long 3975421159 + .long 888340305 + .long 3128570363 + .long 1063202699 + .long 1806253526 + .long 3159528599 + .long 3655875023 + .long 1776680610 + .long 1962173430 + .long 2126405399 + .long 3612507052 + .long 2024089902 + .long 3016782751 + .long 3553361221 + .long 3924346860 + .long 4252810799 + .long 2930046808 + .long 4048179805 + .long 1738598206 + .long 2811755147 + .long 3553726425 + .long 4210654302 + .long 1565126321 + .long 3801392314 + .long 3477196413 + .long 1328542998 + .long 2812485555 + .long 4126341309 + .long 3130252643 + .long 3307817333 + .long 2659425531 + .long 2657085997 + .long 1330003814 + .long 3957715323 + .long 1965537991 + .long 2320667370 + .long 1023883767 + .long 1019204698 + .long 2660007629 + .long 3620463350 + .long 3931075983 + .long 346367444 + .long 2047767535 + .long 2038409397 + .long 1025047962 + .long 2945959404 + .long 3567184671 + .long 692734889 + .long 4095535070 + .long 4076818795 + .long 2050095924 + .long 1596951513 + .long 2839402047 + .long 1385469779 + .long 3896102844 + .long 3858670295 + .long 4100191849 + .long 3193903027 + .long 1383836798 + .long 2770939558 + .long 3497238392 + .long 3422373294 + .long 3905416403 + .long 2092838759 + .long 2767673597 + .long 1246911821 + .long 2699509489 + .long 2549779293 + .long 3515865511 + .long 4185677519 + .long 1240379898 + .long 2493823642 + .long 1104051682 + .long 804591290 + .long 2736763727 + .long 4076387742 + .long 2480759797 + .long 692679989 + .long 2208103365 + .long 1609182581 + .long 1178560158 + .long 3857808189 + .long 666552299 + .long 1385359979 + .long 121239434 + .long 3218365162 + .long 2357120316 + .long 3420649082 + .long 1333104599 + .long 2770719959 + .long 242478868 + .long 2141763028 + .long 419273337 + .long 2546330868 + .long 2666209199 + .long 1246472623 + .long 484957737 + .long 4283526057 + .long 838546674 + .long 797694440 + .long 1037451103 + .long 2492945247 + .long 969915474 + .long 4272084818 + .long 1677093349 + .long 1595388880 + .long 2074902206 + .long 690923199 + .long 1939830949 + .long 4249202340 + .long 3354186699 + .long 3190777760 + .long 4149804412 + .long 1381846399 + .long 3879661898 + .long 4203437385 + .long 2413406103 + .long 2086588225 + .long 4004641529 + .long 2763692798 + .long 3464356500 + .long 4111907475 + .long 531844911 + .long 4173176451 + .long 3714315762 + .long 1232418301 + .long 2633745705 + .long 3928847655 + .long 1063689823 + .long 4051385607 + .long 3133664229 + .long 2464836603 + .long 972524114 + .long 3562728015 + .long 2127379647 + .long 3807803918 + .long 1972361163 + .long 634705910 + .long 1945048229 + .long 2830488734 + .long 4254759295 + .long 3320640540 + .long 3944722327 + .long 1269411821 + .long 3890096458 + .long 1366010173 + .long 4214551295 + .long 2346313785 + .long 3594477359 + .long 2538823642 + .long 3485225620 + .long 2732020347 + .long 4134135294 + .long 397660275 + .long 2893987423 + .long 782679989 + .long 2675483945 + .long 1169073399 + .long 3973303293 + .long 795320551 + .long 1493007550 + .long 1565359979 + .long 1056000594 + .long 2338146798 + .long 3651639290 + .long 1590641102 + .long 2986015100 + .long 3130719959 + .long 2112001188 + .long 381326301 + .long 3008311285 + .long 3181282204 + .long 1677062904 + .long 1966472623 + .long 4224002377 + .long 762652602 + .long 1721655274 + .long 2067597113 + .long 3354125809 + .long 3932945247 + .long 4153037458 + .long 1525305205 + .long 3443310548 + .long 4135194227 + .long 2413284322 + .long 3570923199 + .long 4011107621 + .long 3050610411 + .long 2591653800 + .long 3975421159 + .long 531601349 + .long 2846879102 + .long 3727247947 + .long 1806253526 + .long 888340305 + .long 3655875023 + .long 1063202699 + .long 1398790909 + .long 3159528599 + .long 3612507052 + .long 1776680610 + .long 3016782751 + .long 2126405399 + .long 2797581819 + .long 2024089902 + .long 2930046808 + .long 3553361221 + .long 1738598206 + .long 4252810799 + .long 1300196342 + .long 4048179805 + .long 1565126321 + .long 2811755147 + .long 3477196413 + .long 4210654302 + .long 2600392684 + .long 3801392314 + .long 3130252643 + .long 1328542998 + .long 2659425531 + .long 4126341309 + .long 905818072 + .long 3307817333 + .long 1965537991 + .long 2657085997 + .long 1023883767 + .long 3957715323 + .long 1811636145 + .long 2320667370 + .long 3931075983 + .long 1019204698 + .long 2047767535 + .long 3620463350 + .long 3623272290 + .long 346367444 + .long 3567184671 + .long 2038409397 + .long 4095535070 + .long 2945959404 + .long 2951577284 + .long 692734889 + .long 2839402047 + .long 4076818795 + .long 3896102844 + .long 1596951513 + .long 1608187272 + .long 1385469779 + .long 1383836798 + .long 3858670295 + .long 3497238392 + .long 3193903027 + .long 3216374545 + .long 2770939558 + .long 2767673597 + .long 3422373294 + .long 2699509489 + .long 2092838759 + .long 2137781795 + .long 1246911821 + .long 1240379898 + .long 2549779293 + .long 1104051682 + .long 4185677519 + .long 4275563591 + .long 2493823642 + .long 2480759797 + .long 804591290 + .long 2208103365 + .long 4076387742 + .long 4256159887 + .long 692679989 + .long 666552299 + .long 1609182581 + .long 121239434 + .long 3857808189 + .long 4217352479 + .long 1385359979 + .long 1333104599 + .long 3218365162 + .long 242478868 + .long 3420649082 + .long 4139737663 + .long 2770719959 + .long 2666209199 + .long 2141763028 + .long 484957737 + .long 2546330868 + .long 3984508030 + .long 1246472623 + .long 1037451103 + .long 4283526057 + .long 969915474 + .long 797694440 + .long 3674048764 + .long 2492945247 + .long 2074902206 + .long 4272084818 + .long 1939830949 + .long 1595388880 + .long 3053130232 + .long 690923199 + .long 4149804412 + .long 4249202340 + .long 3879661898 + .long 3190777760 + .long 1811293169 + .long 1381846399 + .long 4004641529 + .long 4203437385 + .long 3464356500 + .long 2086588225 + .long 3622586339 + .long 2763692798 + .long 3714315762 + .long 4111907475 + .long 2633745705 + .long 4173176451 + .long 2950205382 + .long 1232418301 + .long 3133664229 + .long 3928847655 + .long 972524114 + .long 4051385607 + .long 1605443469 + .long 2464836603 + .long 1972361163 + .long 3562728015 + .long 1945048229 + .long 3807803918 + .long 3210886938 + .long 634705910 + .long 3944722327 + .long 2830488734 + .long 3890096458 + .long 3320640540 + .long 2126806581 + .long 1269411821 + .long 3594477359 + .long 1366010173 + .long 3485225620 + .long 2346313785 + .long 4253613162 + .long 2538823642 + .long 2893987423 + .long 2732020347 + .long 2675483945 + .long 397660275 + .long 4212259029 + .long 782679989 + .long 1493007550 + .long 1169073399 + .long 1056000594 + .long 795320551 + .long 4129550763 + .long 1565359979 + .long 2986015100 + .long 2338146798 + .long 2112001188 + .long 1590641102 + .long 3964134231 + .long 3130719959 + .long 1677062904 + .long 381326301 + .long 4224002377 + .long 3181282204 + .long 3633301166 + .long 1966472623 + .long 3354125809 + .long 762652602 + .long 4153037458 + .long 2067597113 + .long 2971635037 + .long 3932945247 + .long 2413284322 + .long 1525305205 + .long 4011107621 + .long 4135194227 + .long 1648302778 + .long 3570923199 + .long 531601349 + .long 3050610411 + .long 3727247947 + .long 3975421159 + .long 3296605556 + .long 2846879102 + .long 1063202699 + .long 1806253526 + .long 3159528599 + .long 3655875023 + .long 2298243816 + .long 1398790909 + .long 2126405399 + .long 3612507052 + .long 2024089902 + .long 3016782751 + .long 301520336 + .long 2797581819 + .long 4252810799 + .long 2930046808 + .long 4048179805 + .long 1738598206 + .long 603040673 + .long 1300196342 + .long 4210654302 + .long 1565126321 + .long 3801392314 + .long 3477196413 + .long 1206081346 + .long 2600392684 + .long 4126341309 + .long 3130252643 + .long 3307817333 + .long 2659425531 + .long 2412162692 + .long 905818072 + .long 3957715323 + .long 1965537991 + .long 2320667370 + .long 1023883767 + .long 529358088 + .long 1811636145 + .long 3620463350 + .long 3931075983 + .long 346367444 + .long 2047767535 + .long 1058716176 + .long 3623272290 + .long 2945959404 + .long 3567184671 + .long 692734889 + .long 4095535070 + .long 2117432353 + .long 2951577284 + .long 1596951513 + .long 2839402047 + .long 1385469779 + .long 3896102844 + .long 4234864706 + .long 1608187272 + .long 3193903027 + .long 1383836798 + .long 2770939558 + .long 3497238392 + .long 4174762117 + .long 3216374545 + .long 2092838759 + .long 2767673597 + .long 1246911821 + .long 2699509489 + .long 4054556938 + .long 2137781795 + .long 4185677519 + .long 1240379898 + .long 2493823642 + .long 1104051682 + .long 3814146581 + .long 4275563591 + .long 4076387742 + .long 2480759797 + .long 692679989 + .long 2208103365 + .long 3333325867 + .long 4256159887 + .long 3857808189 + .long 666552299 + .long 1385359979 + .long 121239434 + .long 2371684438 + .long 4217352479 + .long 3420649082 + .long 1333104599 + .long 2770719959 + .long 242478868 + .long 448401580 + .long 4139737663 + .long 2546330868 + .long 2666209199 + .long 1246472623 + .long 484957737 + .long 896803160 + .long 3984508030 + .type __svml_dsin_reduction_data_internal,@object + .size __svml_dsin_reduction_data_internal,49152 + .space 512, 0x00 + .align 8 +.L_2il0floatpacket.26: + .long 0xffffffff,0xffffffff + .type .L_2il0floatpacket.26,@object + .size .L_2il0floatpacket.26,8 + .align 8 +.L_2il0floatpacket.27: + .long 0x00000000,0x7ff00000 + .type .L_2il0floatpacket.27,@object + .size .L_2il0floatpacket.27,8 + .align 8 +.L_2il0floatpacket.28: + .long 0xffffffff,0x000fffff + .type .L_2il0floatpacket.28,@object + .size .L_2il0floatpacket.28,8 + .align 8 +.L_2il0floatpacket.29: + .long 0x00000000,0x00100000 + .type .L_2il0floatpacket.29,@object + .size .L_2il0floatpacket.29,8 + .align 8 +.L_2il0floatpacket.30: + .long 0xffffffff,0x00000000 + .type .L_2il0floatpacket.30,@object + .size .L_2il0floatpacket.30,8 + .align 8 +.L_2il0floatpacket.31: + .long 0x00000000,0x80000000 + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,8 + .align 8 +.L_2il0floatpacket.32: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.32,@object + .size .L_2il0floatpacket.32,8 + .align 8 +.L_2il0floatpacket.33: + .long 0x00000000,0x42a80000 + .type .L_2il0floatpacket.33,@object + .size .L_2il0floatpacket.33,8 + .align 8 +.L_2il0floatpacket.34: + .long 0x000001ff,0x00000000 + .type .L_2il0floatpacket.34,@object + .size .L_2il0floatpacket.34,8 + .align 8 +.L_2il0floatpacket.35: + .long 0x00000000,0x39700000 + .type .L_2il0floatpacket.35,@object + .size .L_2il0floatpacket.35,8 + .align 8 +.L_2il0floatpacket.36: + .long 0x00ffffff,0x00000000 + .type .L_2il0floatpacket.36,@object + .size .L_2il0floatpacket.36,8 + .align 8 +.L_2il0floatpacket.37: + .long 0x00000000,0x3cb00000 + .type .L_2il0floatpacket.37,@object + .size .L_2il0floatpacket.37,8 + .align 8 +.L_2il0floatpacket.38: + .long 0x00000fff,0x00000000 + .type .L_2il0floatpacket.38,@object + .size .L_2il0floatpacket.38,8 + .align 8 +.L_2il0floatpacket.39: + .long 0x54442d18,0x401921fb + .type .L_2il0floatpacket.39,@object + .size .L_2il0floatpacket.39,8 + .align 8 +.L_2il0floatpacket.40: + .long 0x33145c07,0x3cb1a626 + .type .L_2il0floatpacket.40,@object + .size .L_2il0floatpacket.40,8 + .align 8 +.L_2il0floatpacket.41: + .long 0xffffffff,0x7fffffff + .type .L_2il0floatpacket.41,@object + .size .L_2il0floatpacket.41,8 + .align 8 +.L_2il0floatpacket.42: + .long 0x00000000,0x3eb00000 + .type .L_2il0floatpacket.42,@object + .size .L_2il0floatpacket.42,8 + .align 8 +__dsin_la_CoutTab: + .long 0 + .long 0 + .long 0 + .long 2146435072 + .type __dsin_la_CoutTab,@object + .size __dsin_la_CoutTab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_sin_s_la.s b/numpy/core/src/umath/svml/svml_z0_sin_s_la.s new file mode 100644 index 000000000000..33ffbfaade45 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_sin_s_la.s @@ -0,0 +1,2751 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * 1) Range reduction to [-Pi/2; +Pi/2] interval + * a) Grab sign from source argument and save it. + * b) Remove sign using AND operation + * c) Getting octant Y by 1/Pi multiplication + * d) Add "Right Shifter" value + * e) Treat obtained value as integer for destination sign setting. + * Shift first bit of this value to the last (sign) position + * f) Change destination sign if source sign is negative + * using XOR operation. + * g) Subtract "Right Shifter" value + * h) Subtract Y*PI from X argument, where PI divided to 4 parts: + * X = X - Y*PI1 - Y*PI2 - Y*PI3 - Y*PI4; + * 2) Polynomial (minimax for sin within [-Pi/2; +Pi/2] interval) + * a) Calculate X^2 = X * X + * b) Calculate polynomial: + * R = X + X * X^2 * (A3 + x^2 * (A5 + ...... + * 3) Destination sign setting + * a) Set shifted destination sign using XOR operation: + * R = XOR( R, S ); + * + */ + + + .text +.L_2__routine_start___svml_sinf16_z0_0: + + .align 16,0x90 + .globl __svml_sinf16 + +__svml_sinf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + xorl %edx, %edx + vmovups 4096+__svml_ssin_data_internal(%rip), %zmm7 + vmovups 5248+__svml_ssin_data_internal(%rip), %zmm2 + vmovups 5312+__svml_ssin_data_internal(%rip), %zmm3 + vmovups 4800+__svml_ssin_data_internal(%rip), %zmm6 + vmovups 4864+__svml_ssin_data_internal(%rip), %zmm4 + vmovups 4928+__svml_ssin_data_internal(%rip), %zmm5 + vmovups 5184+__svml_ssin_data_internal(%rip), %zmm10 + vmovups 5120+__svml_ssin_data_internal(%rip), %zmm14 + vmovups 5056+__svml_ssin_data_internal(%rip), %zmm12 + vmovups 4992+__svml_ssin_data_internal(%rip), %zmm13 + vmovaps %zmm0, %zmm11 + +/* b) Remove sign using AND operation */ + vandps %zmm7, %zmm11, %zmm1 + +/* + * f) Change destination sign if source sign is negative + * using XOR operation. + */ + vandnps %zmm11, %zmm7, %zmm0 + +/* + * c) Getting octant Y by 1/Pi multiplication + * d) Add "Right Shifter" value + */ + vfmadd213ps {rn-sae}, %zmm3, %zmm1, %zmm2 + +/* g) Subtract "Right Shifter" value */ + vsubps {rn-sae}, %zmm3, %zmm2, %zmm8 + +/* + * e) Treat obtained value as integer for destination sign setting. + * Shift first bit of this value to the last (sign) position + */ + vpslld $31, %zmm2, %zmm9 + +/* Check for large and special values */ + vmovups 4160+__svml_ssin_data_internal(%rip), %zmm2 + +/* + * h) Subtract Y*PI from X argument, where PI divided to 4 parts: + * X = X - Y*PI1 - Y*PI2 - Y*PI3; + */ + vfnmadd213ps {rn-sae}, %zmm1, %zmm8, %zmm6 + vcmpps $18, {sae}, %zmm2, %zmm1, %k1 + vfnmadd231ps {rn-sae}, %zmm8, %zmm4, %zmm6 + vfnmadd213ps {rn-sae}, %zmm6, %zmm5, %zmm8 + +/* + * 2) Polynomial (minimax for sin within [-Pi/2; +Pi/2] interval) + * a) Calculate X^2 = X * X + * b) Calculate polynomial: + * R = X + X * X^2 * (A3 + x^2 * (A5 + ...... + */ + vmulps {rn-sae}, %zmm8, %zmm8, %zmm15 + vxorps %zmm9, %zmm8, %zmm8 + vfmadd231ps {rn-sae}, %zmm15, %zmm10, %zmm14 + vpternlogd $255, %zmm10, %zmm10, %zmm10 + vfmadd213ps {rn-sae}, %zmm12, %zmm15, %zmm14 + vfmadd213ps {rn-sae}, %zmm13, %zmm15, %zmm14 + vmulps {rn-sae}, %zmm15, %zmm14, %zmm9 + vfmadd213ps {rn-sae}, %zmm8, %zmm8, %zmm9 + +/* + * 3) Destination sign setting + * a) Set shifted destination sign using XOR operation: + * R = XOR( R, S ); + */ + vxorps %zmm0, %zmm9, %zmm0 + vpandnd %zmm1, %zmm1, %zmm10{%k1} + vptestmd %zmm10, %zmm10, %k0 + kortestw %k0, %k0 + jne .LBL_1_12 + +.LBL_1_2: + + testl %edx, %edx + jne .LBL_1_4 + +.LBL_1_3: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_4: + + vmovups %zmm11, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_3 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_8: + + btl %r12d, %r13d + jc .LBL_1_11 + +.LBL_1_9: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_8 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_3 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_11: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_ssin_cout_rare_internal + jmp .LBL_1_9 + .cfi_restore 4 + .cfi_restore 5 + .cfi_restore 12 + .cfi_restore 13 + .cfi_restore 122 + .cfi_restore 123 + .cfi_restore 124 + .cfi_restore 125 + +.LBL_1_12: + + vmovups 4224+__svml_ssin_data_internal(%rip), %zmm8 + +/* + * Get the (2^a / 2pi) mod 1 values from the table. + * Because VLANG doesn't have I-type gather, we need a trivial cast + */ + lea __svml_ssin_reduction_data_internal(%rip), %rax + vmovups %zmm0, (%rsp) + vandps %zmm1, %zmm8, %zmm6 + vpternlogd $255, %zmm1, %zmm1, %zmm1 + vcmpps $4, {sae}, %zmm8, %zmm6, %k1 + +/* ..................... Table look-up ........................ */ + lea __svml_ssin_data_internal(%rip), %rcx + vpandd .L_2il0floatpacket.21(%rip), %zmm11, %zmm12 + vpandnd %zmm6, %zmm6, %zmm1{%k1} + vpsrld $23, %zmm12, %zmm13 + vptestmd %zmm1, %zmm1, %k0 + +/* + * Break the P_xxx and m into 16-bit chunks ready for + * the long multiplication via 16x16->32 multiplications + */ + vmovups .L_2il0floatpacket.24(%rip), %zmm6 + vpslld $1, %zmm13, %zmm4 + kxnorw %k0, %k0, %k3 + kxnorw %k0, %k0, %k1 + kxnorw %k0, %k0, %k2 + kmovw %k0, %edx + vpaddd %zmm13, %zmm4, %zmm9 + vpslld $2, %zmm9, %zmm5 + vpxord %zmm3, %zmm3, %zmm3 + vpxord %zmm14, %zmm14, %zmm14 + vpxord %zmm8, %zmm8, %zmm8 + vgatherdps 4(%rax,%zmm5), %zmm3{%k3} + vgatherdps 8(%rax,%zmm5), %zmm14{%k1} + vgatherdps (%rax,%zmm5), %zmm8{%k2} + vpsrld $16, %zmm3, %zmm15 + vpsrld $16, %zmm14, %zmm13 + vpsrld $16, %zmm8, %zmm7 + kxnorw %k0, %k0, %k1 + +/* + * Also get the significand as an integer + * NB: adding in the integer bit is wrong for denorms! + * To make this work for denorms we should do something slightly different + */ + vpandd .L_2il0floatpacket.22(%rip), %zmm11, %zmm2 + vpaddd .L_2il0floatpacket.23(%rip), %zmm2, %zmm1 + vpsrld $16, %zmm1, %zmm9 + vpandd %zmm6, %zmm8, %zmm0 + vpandd %zmm6, %zmm3, %zmm12 + vpandd %zmm6, %zmm14, %zmm5 + vpandd %zmm6, %zmm1, %zmm14 + +/* Now do the big multiplication and carry propagation */ + vpmulld %zmm0, %zmm9, %zmm4 + vpmulld %zmm15, %zmm9, %zmm3 + vpmulld %zmm12, %zmm9, %zmm2 + vpmulld %zmm13, %zmm9, %zmm1 + vpmulld %zmm5, %zmm9, %zmm8 + vpmulld %zmm15, %zmm14, %zmm9 + vpmulld %zmm13, %zmm14, %zmm15 + vpmulld %zmm7, %zmm14, %zmm7 + vpmulld %zmm0, %zmm14, %zmm5 + vpmulld %zmm12, %zmm14, %zmm0 + vpsrld $16, %zmm15, %zmm14 + vpsrld $16, %zmm9, %zmm15 + vpsrld $16, %zmm0, %zmm13 + vpsrld $16, %zmm5, %zmm12 + vpaddd %zmm15, %zmm3, %zmm3 + vpaddd %zmm14, %zmm1, %zmm1 + vpaddd %zmm13, %zmm2, %zmm14 + vpaddd %zmm12, %zmm4, %zmm2 + vpandd %zmm6, %zmm5, %zmm4 + vpaddd %zmm3, %zmm4, %zmm3 + vpsrld $16, %zmm8, %zmm4 + vpandd %zmm6, %zmm0, %zmm0 + vpaddd %zmm1, %zmm0, %zmm13 + vpandd %zmm6, %zmm7, %zmm7 + vpaddd %zmm2, %zmm7, %zmm0 + vpaddd %zmm13, %zmm4, %zmm7 + vpandd %zmm6, %zmm9, %zmm12 + vpsrld $16, %zmm7, %zmm9 + vpaddd %zmm14, %zmm12, %zmm5 + vpaddd %zmm5, %zmm9, %zmm1 + vpsrld $16, %zmm1, %zmm2 + vpslld $16, %zmm1, %zmm13 + vpaddd %zmm3, %zmm2, %zmm15 + vpsrld $16, %zmm15, %zmm8 + vpaddd %zmm0, %zmm8, %zmm14 + +/* Assemble reduced argument from the pieces */ + vpandd %zmm6, %zmm7, %zmm12 + vpandd %zmm6, %zmm15, %zmm4 + vpslld $16, %zmm14, %zmm6 + vpaddd %zmm12, %zmm13, %zmm13 + vpaddd %zmm4, %zmm6, %zmm9 + +/* + * Now round at the 2^-8 bit position for reduction mod pi/2^7 + * instead of the original 2pi (but still with the same 2pi scaling). + * Use a shifter of 2^15 + 2^14. + * The N we get is our final version; it has an offset of + * 2^8 because of the implicit integer bit, and anyway for negative + * starting value it's a 2s complement thing. But we need to mask + * off the exponent part anyway so it's fine. + */ + vmovups .L_2il0floatpacket.27(%rip), %zmm6 + vpsrld $9, %zmm9, %zmm2 + vpandd .L_2il0floatpacket.30(%rip), %zmm13, %zmm15 + vpslld $5, %zmm15, %zmm1 + vpsrld $18, %zmm13, %zmm13 + +/* + * We want to incorporate the original sign now too. + * Do it here for convenience in getting the right N value, + * though we could wait right to the end if we were prepared + * to modify the sign of N later too. + * So get the appropriate sign mask now (or sooner). + */ + vpandd .L_2il0floatpacket.25(%rip), %zmm11, %zmm5 + +/* + * Create floating-point high part, implicitly adding integer bit 1 + * Incorporate overall sign at this stage too. + */ + vpxord .L_2il0floatpacket.26(%rip), %zmm5, %zmm8 + vpord %zmm8, %zmm2, %zmm3 + vaddps {rn-sae}, %zmm3, %zmm6, %zmm7 + vsubps {rn-sae}, %zmm6, %zmm7, %zmm0 + vsubps {rn-sae}, %zmm0, %zmm3, %zmm14 + vandps .L_2il0floatpacket.35(%rip), %zmm11, %zmm3 + vpternlogd $255, %zmm0, %zmm0, %zmm0 + +/* + * Create floating-point low and medium parts, respectively + * lo_17, ... lo_0, 0, ..., 0 + * hi_8, ... hi_0, lo_31, ..., lo_18 + * then subtract off the implicitly added integer bits, + * 2^-46 and 2^-23, respectively. + * Put the original sign into all of them at this stage. + */ + vpxord .L_2il0floatpacket.29(%rip), %zmm5, %zmm8 + vpord %zmm8, %zmm1, %zmm2 + vpandd .L_2il0floatpacket.32(%rip), %zmm9, %zmm9 + vsubps {rn-sae}, %zmm8, %zmm2, %zmm15 + vpxord .L_2il0floatpacket.31(%rip), %zmm5, %zmm2 + vpslld $14, %zmm9, %zmm5 + vpord %zmm13, %zmm5, %zmm5 + vpord %zmm2, %zmm5, %zmm9 + vsubps {rn-sae}, %zmm2, %zmm9, %zmm8 + +/* + * Now multiply those numbers all by 2 pi, reasonably accurately. + * (RHi + RLo) * (pi_lead + pi_trail) ~= + * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) + */ + vmovups .L_2il0floatpacket.33(%rip), %zmm9 + vmovups .L_2il0floatpacket.34(%rip), %zmm2 + +/* Now add them up into 2 reasonably aligned pieces */ + vaddps {rn-sae}, %zmm8, %zmm14, %zmm6 + vsubps {rn-sae}, %zmm6, %zmm14, %zmm14 + vmovaps %zmm9, %zmm5 + vaddps {rn-sae}, %zmm14, %zmm8, %zmm13 + +/* + * If the magnitude of the input is <= 2^-20, then + * just pass through the input, since no reduction will be needed and + * the main path will only work accurately if the reduced argument is + * about >= 2^-40 (which it is for all large pi multiples) + */ + vmovups .L_2il0floatpacket.36(%rip), %zmm8 + vaddps {rn-sae}, %zmm15, %zmm13, %zmm14 + vpternlogd $255, %zmm15, %zmm15, %zmm15 + vcmpps $26, {sae}, %zmm8, %zmm3, %k2 + vcmpps $22, {sae}, %zmm8, %zmm3, %k3 + +/* Grab our final N value as an integer, appropriately masked mod 2^8 */ + vpandd .L_2il0floatpacket.28(%rip), %zmm7, %zmm4 + vmulps {rn-sae}, %zmm9, %zmm6, %zmm7 + vfmsub213ps {rn-sae}, %zmm7, %zmm6, %zmm5 + vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm6 + vfmadd213ps {rn-sae}, %zmm6, %zmm9, %zmm14 + vpslld $4, %zmm4, %zmm9 + vpandnd %zmm3, %zmm3, %zmm15{%k2} + vpandnd %zmm3, %zmm3, %zmm0{%k3} + kxnorw %k0, %k0, %k2 + kxnorw %k0, %k0, %k3 + vandps %zmm7, %zmm15, %zmm12 + vandps %zmm11, %zmm0, %zmm1 + vandps %zmm14, %zmm15, %zmm2 + vorps %zmm12, %zmm1, %zmm13 + +/* ............... Polynomial approximation ................... */ + vmovups 4352+__svml_ssin_data_internal(%rip), %zmm12 + +/* + * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND + * Set sRp2 = _VRES_R^2 and then resume the original code. + */ + vmulps {rn-sae}, %zmm13, %zmm13, %zmm3 + +/* ................. Reconstruction: res_hi ................... */ + vmovaps %zmm13, %zmm8 + vmovaps %zmm13, %zmm4 + vpxord %zmm5, %zmm5, %zmm5 + vpxord %zmm7, %zmm7, %zmm7 + vgatherdps 4(%rcx,%zmm9), %zmm5{%k2} + vgatherdps 12(%rcx,%zmm9), %zmm7{%k3} + vfmadd213ps {rn-sae}, %zmm5, %zmm7, %zmm8 + vsubps {rn-sae}, %zmm8, %zmm5, %zmm1 + vfmadd231ps {rn-sae}, %zmm13, %zmm7, %zmm1 + vpxord %zmm0, %zmm0, %zmm0 + vgatherdps (%rcx,%zmm9), %zmm0{%k1} + +/* ................. Reconstruction: res_lo=corr+polS+polC+res_lo0 ................... */ + kxnorw %k0, %k0, %k1 + vfmadd132ps {rn-sae}, %zmm0, %zmm8, %zmm4 + vsubps {rn-sae}, %zmm4, %zmm8, %zmm6 + vfmadd231ps {rn-sae}, %zmm0, %zmm13, %zmm6 + vaddps {rn-sae}, %zmm1, %zmm6, %zmm8 + vaddps {rn-sae}, %zmm7, %zmm0, %zmm1 + vmovups 4288+__svml_ssin_data_internal(%rip), %zmm6 + vmovups 4480+__svml_ssin_data_internal(%rip), %zmm0 + vmovups 4416+__svml_ssin_data_internal(%rip), %zmm7 + vfmadd231ps {rn-sae}, %zmm3, %zmm12, %zmm6 + vfmadd231ps {rn-sae}, %zmm3, %zmm0, %zmm7 + vmulps {rn-sae}, %zmm3, %zmm6, %zmm14 + vmulps {rn-sae}, %zmm3, %zmm7, %zmm0 + vmulps {rn-sae}, %zmm13, %zmm14, %zmm6 + vfnmadd213ps {rn-sae}, %zmm1, %zmm5, %zmm13 + vfmadd213ps {rn-sae}, %zmm8, %zmm13, %zmm6 + vpxord %zmm3, %zmm3, %zmm3 + vgatherdps 8(%rcx,%zmm9), %zmm3{%k1} + vfmadd213ps {rn-sae}, %zmm3, %zmm13, %zmm2 + vfmadd213ps {rn-sae}, %zmm2, %zmm5, %zmm0 + vaddps {rn-sae}, %zmm6, %zmm0, %zmm2 + +/* .................. Final reconstruction ................... */ + vaddps {rn-sae}, %zmm2, %zmm4, %zmm4 + +/* + * ---------------------------------------------------------- + * End of large arguments path + * ---------------------------------------------------------- + * Merge results from main and large paths: + */ + vpandnd (%rsp), %zmm10, %zmm0 + vpandd %zmm10, %zmm4, %zmm10 + vpord %zmm10, %zmm0, %zmm0 + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_sinf16,@function + .size __svml_sinf16,.-__svml_sinf16 +..LN__svml_sinf16.0: + +.L_2__routine_start___svml_ssin_cout_rare_internal_1: + + .align 16,0x90 + +__svml_ssin_cout_rare_internal: + + + .cfi_startproc +..L63: + + movl (%rdi), %edx + movzwl 2(%rdi), %eax + movl %edx, -8(%rsp) + andl $32640, %eax + shrl $24, %edx + andl $127, %edx + movss (%rdi), %xmm1 + cmpl $32640, %eax + jne .LBL_2_6 + + + movb %dl, -5(%rsp) + cmpl $2139095040, -8(%rsp) + jne .LBL_2_4 + + + movss __ssin_la__vmlsSinHATab(%rip), %xmm0 + movl $1, %eax + mulss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_4: + + mulss (%rdi), %xmm1 + xorl %eax, %eax + movss %xmm1, (%rsi) + + + ret + +.LBL_2_6: + + xorl %eax, %eax + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_ssin_cout_rare_internal,@function + .size __svml_ssin_cout_rare_internal,.-__svml_ssin_cout_rare_internal +..LN__svml_ssin_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.21: + .long 0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000 + .type .L_2il0floatpacket.21,@object + .size .L_2il0floatpacket.21,64 + .align 64 +.L_2il0floatpacket.22: + .long 0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff + .type .L_2il0floatpacket.22,@object + .size .L_2il0floatpacket.22,64 + .align 64 +.L_2il0floatpacket.23: + .long 0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000 + .type .L_2il0floatpacket.23,@object + .size .L_2il0floatpacket.23,64 + .align 64 +.L_2il0floatpacket.24: + .long 0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff + .type .L_2il0floatpacket.24,@object + .size .L_2il0floatpacket.24,64 + .align 64 +.L_2il0floatpacket.25: + .long 0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000 + .type .L_2il0floatpacket.25,@object + .size .L_2il0floatpacket.25,64 + .align 64 +.L_2il0floatpacket.26: + .long 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000 + .type .L_2il0floatpacket.26,@object + .size .L_2il0floatpacket.26,64 + .align 64 +.L_2il0floatpacket.27: + .long 0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000 + .type .L_2il0floatpacket.27,@object + .size .L_2il0floatpacket.27,64 + .align 64 +.L_2il0floatpacket.28: + .long 0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff + .type .L_2il0floatpacket.28,@object + .size .L_2il0floatpacket.28,64 + .align 64 +.L_2il0floatpacket.29: + .long 0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000 + .type .L_2il0floatpacket.29,@object + .size .L_2il0floatpacket.29,64 + .align 64 +.L_2il0floatpacket.30: + .long 0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff + .type .L_2il0floatpacket.30,@object + .size .L_2il0floatpacket.30,64 + .align 64 +.L_2il0floatpacket.31: + .long 0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000 + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,64 + .align 64 +.L_2il0floatpacket.32: + .long 0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff + .type .L_2il0floatpacket.32,@object + .size .L_2il0floatpacket.32,64 + .align 64 +.L_2il0floatpacket.33: + .long 0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb + .type .L_2il0floatpacket.33,@object + .size .L_2il0floatpacket.33,64 + .align 64 +.L_2il0floatpacket.34: + .long 0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e + .type .L_2il0floatpacket.34,@object + .size .L_2il0floatpacket.34,64 + .align 64 +.L_2il0floatpacket.35: + .long 0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff + .type .L_2il0floatpacket.35,@object + .size .L_2il0floatpacket.35,64 + .align 64 +.L_2il0floatpacket.36: + .long 0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000 + .type .L_2il0floatpacket.36,@object + .size .L_2il0floatpacket.36,64 + .align 64 +__svml_ssin_data_internal: + .long 0 + .long 0 + .long 0 + .long 1065353216 + .long 3114133471 + .long 1019808432 + .long 2953169304 + .long 1065353216 + .long 3130909128 + .long 1028193072 + .long 2968461951 + .long 1065353216 + .long 3140588184 + .long 1033283845 + .long 2975014497 + .long 1065353216 + .long 3147680113 + .long 1036565814 + .long 2960495349 + .long 1065353216 + .long 3153489468 + .long 1039839859 + .long 2970970319 + .long 1065353216 + .long 3157349634 + .long 1041645699 + .long 837346836 + .long 1065353216 + .long 3161536011 + .long 1043271842 + .long 823224313 + .long 1065353216 + .long 3164432432 + .long 1044891074 + .long 2967836285 + .long 1065353216 + .long 3167161428 + .long 1046502419 + .long 833086710 + .long 1065353216 + .long 3170205956 + .long 1048104908 + .long 2971391005 + .long 1065353216 + .long 3172229004 + .long 1049136787 + .long 824999326 + .long 1065353216 + .long 3174063957 + .long 1049927729 + .long 846027248 + .long 1065353216 + .long 3176053642 + .long 1050712805 + .long 2990442912 + .long 1065353216 + .long 3178196862 + .long 1051491540 + .long 2988789250 + .long 1065353216 + .long 3179887378 + .long 1052263466 + .long 2993707942 + .long 1065353216 + .long 3181110540 + .long 1053028117 + .long 836097324 + .long 1065353216 + .long 3182408396 + .long 1053785034 + .long 829045603 + .long 1065353216 + .long 3183780163 + .long 1054533760 + .long 840832460 + .long 1065353216 + .long 3185225016 + .long 1055273845 + .long 2983839604 + .long 1065353216 + .long 3186742084 + .long 1056004842 + .long 2986287417 + .long 1065353216 + .long 3188000746 + .long 1056726311 + .long 2978016425 + .long 1065353216 + .long 3188830103 + .long 1057201213 + .long 2992349186 + .long 1065353216 + .long 3189694133 + .long 1057551771 + .long 2998815566 + .long 1065353216 + .long 3190592315 + .long 1057896922 + .long 2991207143 + .long 1065353216 + .long 3191524108 + .long 1058236458 + .long 852349230 + .long 1065353216 + .long 3192488951 + .long 1058570176 + .long 2982650867 + .long 1065353216 + .long 3193486263 + .long 1058897873 + .long 848430348 + .long 1065353216 + .long 3194515443 + .long 1059219353 + .long 841032635 + .long 1065353216 + .long 3195575871 + .long 1059534422 + .long 2986574659 + .long 1065353216 + .long 3196363278 + .long 1059842890 + .long 2998350134 + .long 1065353216 + .long 3196923773 + .long 1060144571 + .long 2997759282 + .long 1065353216 + .long 3197498906 + .long 1060439283 + .long 844097402 + .long 1065353216 + .long 1044518635 + .long 1060726850 + .long 2994798599 + .long 1056964608 + .long 1043311911 + .long 1061007097 + .long 832220140 + .long 1056964608 + .long 1042078039 + .long 1061279856 + .long 851442039 + .long 1056964608 + .long 1040817765 + .long 1061544963 + .long 850481524 + .long 1056964608 + .long 1038876298 + .long 1061802258 + .long 848897600 + .long 1056964608 + .long 1036254719 + .long 1062051586 + .long 847147240 + .long 1056964608 + .long 1033584979 + .long 1062292797 + .long 806113028 + .long 1056964608 + .long 1029938589 + .long 1062525745 + .long 848357914 + .long 1056964608 + .long 1024416170 + .long 1062750291 + .long 2994560960 + .long 1056964608 + .long 1013387058 + .long 1062966298 + .long 841166280 + .long 1056964608 + .long 3152590408 + .long 1063173637 + .long 851900755 + .long 1056964608 + .long 3169472868 + .long 1063372184 + .long 3001545765 + .long 1056964608 + .long 3176031322 + .long 1063561817 + .long 823789818 + .long 1056964608 + .long 3180617215 + .long 1063742424 + .long 2998678409 + .long 1056964608 + .long 3183612120 + .long 1063913895 + .long 3001754476 + .long 1056964608 + .long 3186639787 + .long 1064076126 + .long 854796500 + .long 1056964608 + .long 3188684717 + .long 1064229022 + .long 2995991516 + .long 1056964608 + .long 1035072335 + .long 1064372488 + .long 840880349 + .long 1048576000 + .long 1031957395 + .long 1064506439 + .long 851742225 + .long 1048576000 + .long 1025835404 + .long 1064630795 + .long 2996018466 + .long 1048576000 + .long 1015605553 + .long 1064745479 + .long 846006572 + .long 1048576000 + .long 3152414341 + .long 1064850424 + .long 2987244005 + .long 1048576000 + .long 3170705253 + .long 1064945565 + .long 851856985 + .long 1048576000 + .long 3177244920 + .long 1065030846 + .long 855602635 + .long 1048576000 + .long 1027359369 + .long 1065106216 + .long 2989610635 + .long 1040187392 + .long 1018299420 + .long 1065171628 + .long 2969000681 + .long 1040187392 + .long 3140071849 + .long 1065227044 + .long 3002197507 + .long 1040187392 + .long 3168602920 + .long 1065272429 + .long 838093129 + .long 1040187392 + .long 1010124837 + .long 1065307757 + .long 852498564 + .long 1031798784 + .long 3160150850 + .long 1065333007 + .long 836655967 + .long 1031798784 + .long 3151746369 + .long 1065348163 + .long 814009613 + .long 1023410176 + .long 0 + .long 1065353216 + .long 0 + .long 0 + .long 1004262721 + .long 1065348163 + .long 814009613 + .long 3170893824 + .long 1012667202 + .long 1065333007 + .long 836655967 + .long 3179282432 + .long 3157608485 + .long 1065307757 + .long 852498564 + .long 3179282432 + .long 1021119272 + .long 1065272429 + .long 838093129 + .long 3187671040 + .long 992588201 + .long 1065227044 + .long 3002197507 + .long 3187671040 + .long 3165783068 + .long 1065171628 + .long 2969000681 + .long 3187671040 + .long 3174843017 + .long 1065106216 + .long 2989610635 + .long 3187671040 + .long 1029761272 + .long 1065030846 + .long 855602635 + .long 3196059648 + .long 1023221605 + .long 1064945565 + .long 851856985 + .long 3196059648 + .long 1004930693 + .long 1064850424 + .long 2987244005 + .long 3196059648 + .long 3163089201 + .long 1064745479 + .long 846006572 + .long 3196059648 + .long 3173319052 + .long 1064630795 + .long 2996018466 + .long 3196059648 + .long 3179441043 + .long 1064506439 + .long 851742225 + .long 3196059648 + .long 3182555983 + .long 1064372488 + .long 840880349 + .long 3196059648 + .long 1041201069 + .long 1064229022 + .long 2995991516 + .long 3204448256 + .long 1039156139 + .long 1064076126 + .long 854796500 + .long 3204448256 + .long 1036128472 + .long 1063913895 + .long 3001754476 + .long 3204448256 + .long 1033133567 + .long 1063742424 + .long 2998678409 + .long 3204448256 + .long 1028547674 + .long 1063561817 + .long 823789818 + .long 3204448256 + .long 1021989220 + .long 1063372184 + .long 3001545765 + .long 3204448256 + .long 1005106760 + .long 1063173637 + .long 851900755 + .long 3204448256 + .long 3160870706 + .long 1062966298 + .long 841166280 + .long 3204448256 + .long 3171899818 + .long 1062750291 + .long 2994560960 + .long 3204448256 + .long 3177422237 + .long 1062525745 + .long 848357914 + .long 3204448256 + .long 3181068627 + .long 1062292797 + .long 806113028 + .long 3204448256 + .long 3183738367 + .long 1062051586 + .long 847147240 + .long 3204448256 + .long 3186359946 + .long 1061802258 + .long 848897600 + .long 3204448256 + .long 3188301413 + .long 1061544963 + .long 850481524 + .long 3204448256 + .long 3189561687 + .long 1061279856 + .long 851442039 + .long 3204448256 + .long 3190795559 + .long 1061007097 + .long 832220140 + .long 3204448256 + .long 3192002283 + .long 1060726850 + .long 2994798599 + .long 3204448256 + .long 1050015258 + .long 1060439283 + .long 844097402 + .long 3212836864 + .long 1049440125 + .long 1060144571 + .long 2997759282 + .long 3212836864 + .long 1048879630 + .long 1059842890 + .long 2998350134 + .long 3212836864 + .long 1048092223 + .long 1059534422 + .long 2986574659 + .long 3212836864 + .long 1047031795 + .long 1059219353 + .long 841032635 + .long 3212836864 + .long 1046002615 + .long 1058897873 + .long 848430348 + .long 3212836864 + .long 1045005303 + .long 1058570176 + .long 2982650867 + .long 3212836864 + .long 1044040460 + .long 1058236458 + .long 852349230 + .long 3212836864 + .long 1043108667 + .long 1057896922 + .long 2991207143 + .long 3212836864 + .long 1042210485 + .long 1057551771 + .long 2998815566 + .long 3212836864 + .long 1041346455 + .long 1057201213 + .long 2992349186 + .long 3212836864 + .long 1040517098 + .long 1056726311 + .long 2978016425 + .long 3212836864 + .long 1039258436 + .long 1056004842 + .long 2986287417 + .long 3212836864 + .long 1037741368 + .long 1055273845 + .long 2983839604 + .long 3212836864 + .long 1036296515 + .long 1054533760 + .long 840832460 + .long 3212836864 + .long 1034924748 + .long 1053785034 + .long 829045603 + .long 3212836864 + .long 1033626892 + .long 1053028117 + .long 836097324 + .long 3212836864 + .long 1032403730 + .long 1052263466 + .long 2993707942 + .long 3212836864 + .long 1030713214 + .long 1051491540 + .long 2988789250 + .long 3212836864 + .long 1028569994 + .long 1050712805 + .long 2990442912 + .long 3212836864 + .long 1026580309 + .long 1049927729 + .long 846027248 + .long 3212836864 + .long 1024745356 + .long 1049136787 + .long 824999326 + .long 3212836864 + .long 1022722308 + .long 1048104908 + .long 2971391005 + .long 3212836864 + .long 1019677780 + .long 1046502419 + .long 833086710 + .long 3212836864 + .long 1016948784 + .long 1044891074 + .long 2967836285 + .long 3212836864 + .long 1014052363 + .long 1043271842 + .long 823224313 + .long 3212836864 + .long 1009865986 + .long 1041645699 + .long 837346836 + .long 3212836864 + .long 1006005820 + .long 1039839859 + .long 2970970319 + .long 3212836864 + .long 1000196465 + .long 1036565814 + .long 2960495349 + .long 3212836864 + .long 993104536 + .long 1033283845 + .long 2975014497 + .long 3212836864 + .long 983425480 + .long 1028193072 + .long 2968461951 + .long 3212836864 + .long 966649823 + .long 1019808432 + .long 2953169304 + .long 3212836864 + .long 0 + .long 0 + .long 0 + .long 3212836864 + .long 966649823 + .long 3167292080 + .long 805685656 + .long 3212836864 + .long 983425480 + .long 3175676720 + .long 820978303 + .long 3212836864 + .long 993104536 + .long 3180767493 + .long 827530849 + .long 3212836864 + .long 1000196465 + .long 3184049462 + .long 813011701 + .long 3212836864 + .long 1006005820 + .long 3187323507 + .long 823486671 + .long 3212836864 + .long 1009865986 + .long 3189129347 + .long 2984830484 + .long 3212836864 + .long 1014052363 + .long 3190755490 + .long 2970707961 + .long 3212836864 + .long 1016948784 + .long 3192374722 + .long 820352637 + .long 3212836864 + .long 1019677780 + .long 3193986067 + .long 2980570358 + .long 3212836864 + .long 1022722308 + .long 3195588556 + .long 823907357 + .long 3212836864 + .long 1024745356 + .long 3196620435 + .long 2972482974 + .long 3212836864 + .long 1026580309 + .long 3197411377 + .long 2993510896 + .long 3212836864 + .long 1028569994 + .long 3198196453 + .long 842959264 + .long 3212836864 + .long 1030713214 + .long 3198975188 + .long 841305602 + .long 3212836864 + .long 1032403730 + .long 3199747114 + .long 846224294 + .long 3212836864 + .long 1033626892 + .long 3200511765 + .long 2983580972 + .long 3212836864 + .long 1034924748 + .long 3201268682 + .long 2976529251 + .long 3212836864 + .long 1036296515 + .long 3202017408 + .long 2988316108 + .long 3212836864 + .long 1037741368 + .long 3202757493 + .long 836355956 + .long 3212836864 + .long 1039258436 + .long 3203488490 + .long 838803769 + .long 3212836864 + .long 1040517098 + .long 3204209959 + .long 830532777 + .long 3212836864 + .long 1041346455 + .long 3204684861 + .long 844865538 + .long 3212836864 + .long 1042210485 + .long 3205035419 + .long 851331918 + .long 3212836864 + .long 1043108667 + .long 3205380570 + .long 843723495 + .long 3212836864 + .long 1044040460 + .long 3205720106 + .long 2999832878 + .long 3212836864 + .long 1045005303 + .long 3206053824 + .long 835167219 + .long 3212836864 + .long 1046002615 + .long 3206381521 + .long 2995913996 + .long 3212836864 + .long 1047031795 + .long 3206703001 + .long 2988516283 + .long 3212836864 + .long 1048092223 + .long 3207018070 + .long 839091011 + .long 3212836864 + .long 1048879630 + .long 3207326538 + .long 850866486 + .long 3212836864 + .long 1049440125 + .long 3207628219 + .long 850275634 + .long 3212836864 + .long 1050015258 + .long 3207922931 + .long 2991581050 + .long 3212836864 + .long 3192002283 + .long 3208210498 + .long 847314951 + .long 3204448256 + .long 3190795559 + .long 3208490745 + .long 2979703788 + .long 3204448256 + .long 3189561687 + .long 3208763504 + .long 2998925687 + .long 3204448256 + .long 3188301413 + .long 3209028611 + .long 2997965172 + .long 3204448256 + .long 3186359946 + .long 3209285906 + .long 2996381248 + .long 3204448256 + .long 3183738367 + .long 3209535234 + .long 2994630888 + .long 3204448256 + .long 3181068627 + .long 3209776445 + .long 2953596676 + .long 3204448256 + .long 3177422237 + .long 3210009393 + .long 2995841562 + .long 3204448256 + .long 3171899818 + .long 3210233939 + .long 847077312 + .long 3204448256 + .long 3160870706 + .long 3210449946 + .long 2988649928 + .long 3204448256 + .long 1005106760 + .long 3210657285 + .long 2999384403 + .long 3204448256 + .long 1021989220 + .long 3210855832 + .long 854062117 + .long 3204448256 + .long 1028547674 + .long 3211045465 + .long 2971273466 + .long 3204448256 + .long 1033133567 + .long 3211226072 + .long 851194761 + .long 3204448256 + .long 1036128472 + .long 3211397543 + .long 854270828 + .long 3204448256 + .long 1039156139 + .long 3211559774 + .long 3002280148 + .long 3204448256 + .long 1041201069 + .long 3211712670 + .long 848507868 + .long 3204448256 + .long 3182555983 + .long 3211856136 + .long 2988363997 + .long 3196059648 + .long 3179441043 + .long 3211990087 + .long 2999225873 + .long 3196059648 + .long 3173319052 + .long 3212114443 + .long 848534818 + .long 3196059648 + .long 3163089201 + .long 3212229127 + .long 2993490220 + .long 3196059648 + .long 1004930693 + .long 3212334072 + .long 839760357 + .long 3196059648 + .long 1023221605 + .long 3212429213 + .long 2999340633 + .long 3196059648 + .long 1029761272 + .long 3212514494 + .long 3003086283 + .long 3196059648 + .long 3174843017 + .long 3212589864 + .long 842126987 + .long 3187671040 + .long 3165783068 + .long 3212655276 + .long 821517033 + .long 3187671040 + .long 992588201 + .long 3212710692 + .long 854713859 + .long 3187671040 + .long 1021119272 + .long 3212756077 + .long 2985576777 + .long 3187671040 + .long 3157608485 + .long 3212791405 + .long 2999982212 + .long 3179282432 + .long 1012667202 + .long 3212816655 + .long 2984139615 + .long 3179282432 + .long 1004262721 + .long 3212831811 + .long 2961493261 + .long 3170893824 + .long 0 + .long 3212836864 + .long 0 + .long 0 + .long 3151746369 + .long 3212831811 + .long 2961493261 + .long 1023410176 + .long 3160150850 + .long 3212816655 + .long 2984139615 + .long 1031798784 + .long 1010124837 + .long 3212791405 + .long 2999982212 + .long 1031798784 + .long 3168602920 + .long 3212756077 + .long 2985576777 + .long 1040187392 + .long 3140071849 + .long 3212710692 + .long 854713859 + .long 1040187392 + .long 1018299420 + .long 3212655276 + .long 821517033 + .long 1040187392 + .long 1027359369 + .long 3212589864 + .long 842126987 + .long 1040187392 + .long 3177244920 + .long 3212514494 + .long 3003086283 + .long 1048576000 + .long 3170705253 + .long 3212429213 + .long 2999340633 + .long 1048576000 + .long 3152414341 + .long 3212334072 + .long 839760357 + .long 1048576000 + .long 1015605553 + .long 3212229127 + .long 2993490220 + .long 1048576000 + .long 1025835404 + .long 3212114443 + .long 848534818 + .long 1048576000 + .long 1031957395 + .long 3211990087 + .long 2999225873 + .long 1048576000 + .long 1035072335 + .long 3211856136 + .long 2988363997 + .long 1048576000 + .long 3188684717 + .long 3211712670 + .long 848507868 + .long 1056964608 + .long 3186639787 + .long 3211559774 + .long 3002280148 + .long 1056964608 + .long 3183612120 + .long 3211397543 + .long 854270828 + .long 1056964608 + .long 3180617215 + .long 3211226072 + .long 851194761 + .long 1056964608 + .long 3176031322 + .long 3211045465 + .long 2971273466 + .long 1056964608 + .long 3169472868 + .long 3210855832 + .long 854062117 + .long 1056964608 + .long 3152590408 + .long 3210657285 + .long 2999384403 + .long 1056964608 + .long 1013387058 + .long 3210449946 + .long 2988649928 + .long 1056964608 + .long 1024416170 + .long 3210233939 + .long 847077312 + .long 1056964608 + .long 1029938589 + .long 3210009393 + .long 2995841562 + .long 1056964608 + .long 1033584979 + .long 3209776445 + .long 2953596676 + .long 1056964608 + .long 1036254719 + .long 3209535234 + .long 2994630888 + .long 1056964608 + .long 1038876298 + .long 3209285906 + .long 2996381248 + .long 1056964608 + .long 1040817765 + .long 3209028611 + .long 2997965172 + .long 1056964608 + .long 1042078039 + .long 3208763504 + .long 2998925687 + .long 1056964608 + .long 1043311911 + .long 3208490745 + .long 2979703788 + .long 1056964608 + .long 1044518635 + .long 3208210498 + .long 847314951 + .long 1056964608 + .long 3197498906 + .long 3207922931 + .long 2991581050 + .long 1065353216 + .long 3196923773 + .long 3207628219 + .long 850275634 + .long 1065353216 + .long 3196363278 + .long 3207326538 + .long 850866486 + .long 1065353216 + .long 3195575871 + .long 3207018070 + .long 839091011 + .long 1065353216 + .long 3194515443 + .long 3206703001 + .long 2988516283 + .long 1065353216 + .long 3193486263 + .long 3206381521 + .long 2995913996 + .long 1065353216 + .long 3192488951 + .long 3206053824 + .long 835167219 + .long 1065353216 + .long 3191524108 + .long 3205720106 + .long 2999832878 + .long 1065353216 + .long 3190592315 + .long 3205380570 + .long 843723495 + .long 1065353216 + .long 3189694133 + .long 3205035419 + .long 851331918 + .long 1065353216 + .long 3188830103 + .long 3204684861 + .long 844865538 + .long 1065353216 + .long 3188000746 + .long 3204209959 + .long 830532777 + .long 1065353216 + .long 3186742084 + .long 3203488490 + .long 838803769 + .long 1065353216 + .long 3185225016 + .long 3202757493 + .long 836355956 + .long 1065353216 + .long 3183780163 + .long 3202017408 + .long 2988316108 + .long 1065353216 + .long 3182408396 + .long 3201268682 + .long 2976529251 + .long 1065353216 + .long 3181110540 + .long 3200511765 + .long 2983580972 + .long 1065353216 + .long 3179887378 + .long 3199747114 + .long 846224294 + .long 1065353216 + .long 3178196862 + .long 3198975188 + .long 841305602 + .long 1065353216 + .long 3176053642 + .long 3198196453 + .long 842959264 + .long 1065353216 + .long 3174063957 + .long 3197411377 + .long 2993510896 + .long 1065353216 + .long 3172229004 + .long 3196620435 + .long 2972482974 + .long 1065353216 + .long 3170205956 + .long 3195588556 + .long 823907357 + .long 1065353216 + .long 3167161428 + .long 3193986067 + .long 2980570358 + .long 1065353216 + .long 3164432432 + .long 3192374722 + .long 820352637 + .long 1065353216 + .long 3161536011 + .long 3190755490 + .long 2970707961 + .long 1065353216 + .long 3157349634 + .long 3189129347 + .long 2984830484 + .long 1065353216 + .long 3153489468 + .long 3187323507 + .long 823486671 + .long 1065353216 + .long 3147680113 + .long 3184049462 + .long 813011701 + .long 1065353216 + .long 3140588184 + .long 3180767493 + .long 827530849 + .long 1065353216 + .long 3130909128 + .long 3175676720 + .long 820978303 + .long 1065353216 + .long 3114133471 + .long 3167292080 + .long 805685656 + .long 1065353216 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 1176256512 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 3190467243 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 1007192156 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 3204448256 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1026206332 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 1078525952 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 981311488 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 874651648 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 750018842 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 1078530011 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 3015425326 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 2809605357 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 3190467238 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 1007191910 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 3109009407 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 909041400 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1050868099 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .type __svml_ssin_data_internal,@object + .size __svml_ssin_data_internal,5376 + .align 64 +__svml_ssin_reduction_data_internal: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1 + .long 0 + .long 0 + .long 2 + .long 0 + .long 0 + .long 5 + .long 0 + .long 0 + .long 10 + .long 0 + .long 0 + .long 20 + .long 0 + .long 0 + .long 40 + .long 0 + .long 0 + .long 81 + .long 0 + .long 0 + .long 162 + .long 0 + .long 0 + .long 325 + .long 0 + .long 0 + .long 651 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 1 + .long 1173554908 + .long 0 + .long 2 + .long 2347109817 + .long 0 + .long 5 + .long 399252338 + .long 0 + .long 10 + .long 798504676 + .long 0 + .long 20 + .long 1597009353 + .long 0 + .long 40 + .long 3194018707 + .long 0 + .long 81 + .long 2093070119 + .long 0 + .long 162 + .long 4186140238 + .long 0 + .long 325 + .long 4077313180 + .long 0 + .long 651 + .long 3859659065 + .long 0 + .long 1303 + .long 3424350834 + .long 0 + .long 2607 + .long 2553734372 + .long 0 + .long 5215 + .long 812501448 + .long 0 + .long 10430 + .long 1625002897 + .long 0 + .long 20860 + .long 3250005794 + .long 0 + .long 41721 + .long 2205044292 + .long 0 + .long 83443 + .long 115121288 + .long 0 + .long 166886 + .long 230242576 + .long 0 + .long 333772 + .long 460485152 + .long 0 + .long 667544 + .long 920970305 + .long 0 + .long 1335088 + .long 1841940610 + .long 0 + .long 2670176 + .long 3683881221 + .long 0 + .long 5340353 + .long 3072795146 + .long 0 + .long 10680707 + .long 1850622997 + .long 0 + .long 21361414 + .long 3701245994 + .long 0 + .long 42722829 + .long 3107524692 + .long 0 + .long 85445659 + .long 1920082089 + .long 0 + .long 170891318 + .long 3840164178 + .long 0 + .long 341782637 + .long 3385361061 + .long 0 + .long 683565275 + .long 2475754826 + .long 0 + .long 1367130551 + .long 656542356 + .long 0 + .long 2734261102 + .long 1313084713 + .long 1 + .long 1173554908 + .long 2626169427 + .long 2 + .long 2347109817 + .long 957371559 + .long 5 + .long 399252338 + .long 1914743119 + .long 10 + .long 798504676 + .long 3829486239 + .long 20 + .long 1597009353 + .long 3364005183 + .long 40 + .long 3194018707 + .long 2433043071 + .long 81 + .long 2093070119 + .long 571118846 + .long 162 + .long 4186140238 + .long 1142237692 + .long 325 + .long 4077313180 + .long 2284475384 + .long 651 + .long 3859659065 + .long 273983472 + .long 1303 + .long 3424350834 + .long 547966945 + .long 2607 + .long 2553734372 + .long 1095933890 + .long 5215 + .long 812501448 + .long 2191867780 + .long 10430 + .long 1625002897 + .long 88768265 + .long 20860 + .long 3250005794 + .long 177536531 + .long 41721 + .long 2205044292 + .long 355073063 + .long 83443 + .long 115121288 + .long 710146126 + .long 166886 + .long 230242576 + .long 1420292253 + .long 333772 + .long 460485152 + .long 2840584506 + .long 667544 + .long 920970305 + .long 1386201717 + .long 1335088 + .long 1841940610 + .long 2772403434 + .long 2670176 + .long 3683881221 + .long 1249839573 + .long 5340353 + .long 3072795146 + .long 2499679147 + .long 10680707 + .long 1850622997 + .long 704390999 + .long 21361414 + .long 3701245994 + .long 1408781999 + .long 42722829 + .long 3107524692 + .long 2817563999 + .long 85445659 + .long 1920082089 + .long 1340160702 + .long 170891318 + .long 3840164178 + .long 2680321405 + .long 341782637 + .long 3385361061 + .long 1065675514 + .long 683565275 + .long 2475754826 + .long 2131351028 + .long 1367130551 + .long 656542356 + .long 4262702056 + .long 2734261102 + .long 1313084713 + .long 4230436817 + .long 1173554908 + .long 2626169427 + .long 4165906339 + .long 2347109817 + .long 957371559 + .long 4036845383 + .long 399252338 + .long 1914743119 + .long 3778723471 + .long 798504676 + .long 3829486239 + .long 3262479647 + .long 1597009353 + .long 3364005183 + .long 2229991998 + .long 3194018707 + .long 2433043071 + .long 165016701 + .long 2093070119 + .long 571118846 + .long 330033402 + .long 4186140238 + .long 1142237692 + .long 660066805 + .long 4077313180 + .long 2284475384 + .long 1320133610 + .long 3859659065 + .long 273983472 + .long 2640267220 + .long 3424350834 + .long 547966945 + .long 985567145 + .long 2553734372 + .long 1095933890 + .long 1971134291 + .long 812501448 + .long 2191867780 + .long 3942268582 + .long 1625002897 + .long 88768265 + .long 3589569869 + .long 3250005794 + .long 177536531 + .long 2884172442 + .long 2205044292 + .long 355073063 + .long 1473377588 + .long 115121288 + .long 710146126 + .long 2946755177 + .long 230242576 + .long 1420292253 + .long 1598543059 + .long 460485152 + .long 2840584506 + .long 3197086118 + .long 920970305 + .long 1386201717 + .long 2099204941 + .long 1841940610 + .long 2772403434 + .long 4198409883 + .long 3683881221 + .long 1249839573 + .long 4101852471 + .long 3072795146 + .long 2499679147 + .long 3908737646 + .long 1850622997 + .long 704390999 + .long 3522507997 + .long 3701245994 + .long 1408781999 + .long 2750048699 + .long 3107524692 + .long 2817563999 + .long 1205130103 + .long 1920082089 + .long 1340160702 + .long 2410260206 + .long 3840164178 + .long 2680321405 + .long 525553116 + .long 3385361061 + .long 1065675514 + .long 1051106232 + .long 2475754826 + .long 2131351028 + .long 2102212464 + .long 656542356 + .long 4262702056 + .long 4204424928 + .long 1313084713 + .long 4230436817 + .long 4113882560 + .long 2626169427 + .long 4165906339 + .long 3932797825 + .long 957371559 + .long 4036845383 + .long 3570628355 + .long 1914743119 + .long 3778723471 + .long 2846289414 + .long 3829486239 + .long 3262479647 + .long 1397611533 + .long 3364005183 + .long 2229991998 + .long 2795223067 + .long 2433043071 + .long 165016701 + .long 1295478838 + .long 571118846 + .long 330033402 + .long 2590957677 + .long 1142237692 + .long 660066805 + .long 886948059 + .long 2284475384 + .long 1320133610 + .long 1773896118 + .long 273983472 + .long 2640267220 + .long 3547792237 + .long 547966945 + .long 985567145 + .long 2800617179 + .long 1095933890 + .long 1971134291 + .long 1306267062 + .long 2191867780 + .long 3942268582 + .long 2612534124 + .long 88768265 + .long 3589569869 + .long 930100952 + .long 177536531 + .long 2884172442 + .long 1860201905 + .long 355073063 + .long 1473377588 + .long 3720403810 + .long 710146126 + .long 2946755177 + .long 3145840325 + .long 1420292253 + .long 1598543059 + .long 1996713354 + .long 2840584506 + .long 3197086118 + .long 3993426708 + .long 1386201717 + .long 2099204941 + .long 3691886121 + .long 2772403434 + .long 4198409883 + .long 3088804946 + .long 1249839573 + .long 4101852471 + .long 1882642597 + .long 2499679147 + .long 3908737646 + .long 3765285194 + .long 704390999 + .long 3522507997 + .long 3235603093 + .long 1408781999 + .long 2750048699 + .long 2176238891 + .long 2817563999 + .long 1205130103 + .long 57510486 + .long 1340160702 + .long 2410260206 + .long 115020972 + .long 2680321405 + .long 525553116 + .long 230041945 + .long 1065675514 + .long 1051106232 + .long 460083891 + .long 2131351028 + .long 2102212464 + .long 920167782 + .long 4262702056 + .long 4204424928 + .long 1840335564 + .long 4230436817 + .long 4113882560 + .long 3680671129 + .long 4165906339 + .long 3932797825 + .long 3066374962 + .long 4036845383 + .long 3570628355 + .long 1837782628 + .long 3778723471 + .long 2846289414 + .long 3675565257 + .long 3262479647 + .long 1397611533 + .long 3056163219 + .long 2229991998 + .long 2795223067 + .long 1817359143 + .long 165016701 + .long 1295478838 + .long 3634718287 + .long 330033402 + .long 2590957677 + .long 2974469278 + .long 660066805 + .long 886948059 + .long 1653971260 + .long 1320133610 + .long 1773896118 + .long 3307942520 + .long 2640267220 + .long 3547792237 + .long 2320917745 + .long 985567145 + .long 2800617179 + .long 346868194 + .long 1971134291 + .long 1306267062 + .long 693736388 + .long 3942268582 + .long 2612534124 + .long 1387472776 + .long 3589569869 + .long 930100952 + .long 2774945552 + .long 2884172442 + .long 1860201905 + .long 1254923809 + .long 1473377588 + .long 3720403810 + .long 2509847619 + .long 2946755177 + .long 3145840325 + .long 724727943 + .long 1598543059 + .long 1996713354 + .long 1449455886 + .long 3197086118 + .long 3993426708 + .long 2898911772 + .long 2099204941 + .long 3691886121 + .long 1502856249 + .long 4198409883 + .long 3088804946 + .long 3005712498 + .long 4101852471 + .long 1882642597 + .long 1716457700 + .long 3908737646 + .long 3765285194 + .long 3432915400 + .long 3522507997 + .long 3235603093 + .long 2570863504 + .long 2750048699 + .long 2176238891 + .long 846759712 + .long 1205130103 + .long 57510486 + .long 1693519425 + .long 2410260206 + .long 115020972 + .long 3387038850 + .long 525553116 + .long 230041945 + .long 2479110404 + .long 1051106232 + .long 460083891 + .long 663253512 + .long 2102212464 + .long 920167782 + .long 1326507024 + .long 4204424928 + .long 1840335564 + .long 2653014048 + .long 4113882560 + .long 3680671129 + .long 1011060801 + .long 3932797825 + .long 3066374962 + .long 2022121603 + .long 3570628355 + .long 1837782628 + .long 4044243207 + .long 2846289414 + .long 3675565257 + .long 3793519119 + .long 1397611533 + .long 3056163219 + .long 3292070943 + .long 2795223067 + .long 1817359143 + .long 2289174591 + .long 1295478838 + .long 3634718287 + .long 283381887 + .long 2590957677 + .long 2974469278 + .long 566763775 + .type __svml_ssin_reduction_data_internal,@object + .size __svml_ssin_reduction_data_internal,3072 + .align 4 +__ssin_la__vmlsSinHATab: + .long 0 + .long 2139095040 + .type __ssin_la__vmlsSinHATab,@object + .size __ssin_la__vmlsSinHATab,8 diff --git a/numpy/core/src/umath/svml/svml_z0_sinh_d_la.s b/numpy/core/src/umath/svml/svml_z0_sinh_d_la.s new file mode 100644 index 000000000000..5b4bcbb6ad9c --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_sinh_d_la.s @@ -0,0 +1,2052 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_sinh8_z0_0: + + .align 16,0x90 + .globl __svml_sinh8 + +__svml_sinh8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + lea 1608+__svml_dsinh_data_internal(%rip), %rax + vmovaps %zmm0, %zmm8 + +/* ............... Abs argument ............................ */ + vandpd 1408+__svml_dsinh_data_internal(%rip), %zmm8, %zmm7 + vmovups 3648+__svml_dsinh_data_internal(%rip), %zmm13 + +/* + * ............... Load argument ............................ + * dM = x*2^K/log(2) + RShifter + */ + vmovups 1216+__svml_dsinh_data_internal(%rip), %zmm12 + vmovups 1280+__svml_dsinh_data_internal(%rip), %zmm14 + vmovups 4032+__svml_dsinh_data_internal(%rip), %zmm6 + +/* VLOAD_CONST( D, dPC[0], TAB._dPC1 ); */ + vmovups 3968+__svml_dsinh_data_internal(%rip), %zmm4 + vxorpd %zmm8, %zmm7, %zmm5 + kxnorw %k0, %k0, %k1 + kxnorw %k0, %k0, %k2 + vfmadd213pd {rn-sae}, %zmm13, %zmm5, %zmm12 + +/* + * ...............Check for overflow\underflow ............. + * + */ + vpsrlq $32, %zmm5, %zmm9 + +/* + * ................... R ................................... + * dN = dM - RShifter + */ + vsubpd {rn-sae}, %zmm13, %zmm12, %zmm2 + vpmovqd %zmm9, %ymm10 + vmovups 1344+__svml_dsinh_data_internal(%rip), %zmm9 + +/* dR = dX - dN*Log2_hi/2^K */ + vfnmadd231pd {rn-sae}, %zmm14, %zmm2, %zmm5 + +/* + * ....sinh(r) = r*((a1=1)+r^2*(a3+r^2*a5)) = r + r*(r^2*(a3+r^2*a5)) .... + * dSinh_r = (a3+r^2*a5) + */ + vmovups 3904+__svml_dsinh_data_internal(%rip), %zmm14 + +/* dR = (dX - dN*Log2_hi/2^K) - dN*Log2_lo/2^K */ + vfnmadd231pd {rn-sae}, %zmm9, %zmm2, %zmm5 + vpcmpgtd 3712+__svml_dsinh_data_internal(%rip), %ymm10, %ymm11 + vmovmskps %ymm11, %edx + +/* dR2 = dR^2 */ + vmulpd {rn-sae}, %zmm5, %zmm5, %zmm2 + vfmadd231pd {rn-sae}, %zmm2, %zmm6, %zmm14 + +/* + * .............. Index and lookup ......................... + * j + */ + vpandq 4224+__svml_dsinh_data_internal(%rip), %zmm12, %zmm15 + vpsllq $4, %zmm15, %zmm1 + vpmovqd %zmm1, %ymm0 + vpxord %zmm11, %zmm11, %zmm11 + vpxord %zmm10, %zmm10, %zmm10 + vgatherdpd (%rax,%ymm0), %zmm11{%k1} + vgatherdpd -8(%rax,%ymm0), %zmm10{%k2} + +/* split j and N */ + vpxorq %zmm15, %zmm12, %zmm3 + +/* + * ............... G1,G2,G3: dTdif,dTn * 2^N,2^(-N) ........... + * lM now is an EXP(2^N) + */ + vpsllq $45, %zmm3, %zmm3 + vpaddq %zmm3, %zmm10, %zmm1 + +/* */ + vpaddq %zmm3, %zmm11, %zmm12 + +/* */ + vpsubq %zmm3, %zmm11, %zmm13 + +/* dSinh_r = r^2*(a3+r^2*a5) */ + vmulpd {rn-sae}, %zmm2, %zmm14, %zmm3 + +/* dG2 = dTn*2^N - dTn*2^-N */ + vsubpd {rn-sae}, %zmm13, %zmm12, %zmm15 + +/* dG3 = dTn*2^N + dTn*2^-N */ + vaddpd {rn-sae}, %zmm13, %zmm12, %zmm0 + +/* dSinh_r = r + r*(r^2*(a3+r^2*a5)) */ + vfmadd213pd {rn-sae}, %zmm5, %zmm5, %zmm3 + +/* + * poly(r) = (dG2+dG1)+dG3*sinh(dR)+dG1*sinh(dR)+(dG1+dG2)*dR2*(a2 +a4*dR2) + * dOut = (a2 +a4*dR2) + */ + vmovups 3840+__svml_dsinh_data_internal(%rip), %zmm5 + +/* dG1 += dG3 */ + vaddpd {rn-sae}, %zmm0, %zmm1, %zmm6 + vfmadd231pd {rn-sae}, %zmm2, %zmm4, %zmm5 + +/* dOut = dR2*(a2 +a4*dR2) */ + vmulpd {rn-sae}, %zmm2, %zmm5, %zmm4 + +/* dG2 += dG1 */ + vaddpd {rn-sae}, %zmm15, %zmm1, %zmm2 + +/* dOut = dG2*dR2*(a2 +a4*dR2) */ + vmulpd {rn-sae}, %zmm2, %zmm4, %zmm4 + +/* dOut = dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */ + vfmadd213pd {rn-sae}, %zmm4, %zmm6, %zmm3 + +/* dOut = dG2 + dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */ + vaddpd {rn-sae}, %zmm2, %zmm3, %zmm0 + +/* ................... Ret H ...................... */ + vorpd %zmm0, %zmm7, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm8, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dsinh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_sinh8,@function + .size __svml_sinh8,.-__svml_sinh8 +..LN__svml_sinh8.0: + +.L_2__routine_start___svml_dsinh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dsinh_cout_rare_internal: + + + .cfi_startproc +..L53: + + movq %rsi, %r9 + movzwl 6(%rdi), %ecx + xorl %eax, %eax + andl $32752, %ecx + shrl $4, %ecx + movsd (%rdi), %xmm2 + movb 7(%rdi), %dl + movsd %xmm2, -8(%rsp) + cmpl $2047, %ecx + je .LBL_2_17 + + + testl %ecx, %ecx + jle .LBL_2_16 + + + andb $127, %dl + movsd %xmm2, -32(%rsp) + movb %dl, -25(%rsp) + cmpl $969, %ecx + jle .LBL_2_14 + + + movsd -32(%rsp), %xmm0 + movsd 1136+__dsinh_la_CoutTab(%rip), %xmm1 + comisd %xmm0, %xmm1 + jbe .LBL_2_13 + + + movsd 1184+__dsinh_la_CoutTab(%rip), %xmm1 + comisd %xmm0, %xmm1 + jbe .LBL_2_9 + + + comisd 1176+__dsinh_la_CoutTab(%rip), %xmm0 + jb .LBL_2_8 + + + movsd 1112+__dsinh_la_CoutTab(%rip), %xmm1 + lea __dsinh_la_CoutTab(%rip), %rcx + mulsd %xmm0, %xmm1 + movsd 1144+__dsinh_la_CoutTab(%rip), %xmm4 + movq 8+__dsinh_la_CoutTab(%rip), %r10 + movq %r10, %rsi + shrq $48, %rsi + addsd 1120+__dsinh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -40(%rsp) + andl $-32753, %esi + movsd -40(%rsp), %xmm10 + movl -40(%rsp), %r8d + movl %r8d, %r11d + shrl $6, %r11d + andl $63, %r8d + movq %r10, -16(%rsp) + subsd 1120+__dsinh_la_CoutTab(%rip), %xmm10 + mulsd %xmm10, %xmm4 + lea 1023(%r11), %edi + xorps .L_2il0floatpacket.97(%rip), %xmm10 + addl $1022, %r11d + mulsd 1152+__dsinh_la_CoutTab(%rip), %xmm10 + subsd %xmm4, %xmm0 + movaps %xmm10, %xmm2 + movaps %xmm0, %xmm8 + andl $2047, %r11d + lea (%r8,%r8), %edx + negl %edi + lea 1(%r8,%r8), %r8d + movsd (%rcx,%rdx,8), %xmm9 + negl %edx + shll $4, %r11d + addl $-4, %edi + orl %r11d, %esi + andl $2047, %edi + movw %si, -10(%rsp) + andl $-32753, %esi + shll $4, %edi + addsd %xmm0, %xmm2 + movsd %xmm2, -24(%rsp) + orl %edi, %esi + movsd -24(%rsp), %xmm6 + movsd 1128+__dsinh_la_CoutTab(%rip), %xmm2 + subsd %xmm6, %xmm8 + movsd %xmm8, -56(%rsp) + movsd -24(%rsp), %xmm12 + movsd -56(%rsp), %xmm11 + movsd (%rcx,%r8,8), %xmm7 + addsd %xmm11, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -56(%rsp), %xmm5 + addsd %xmm5, %xmm10 + movsd -16(%rsp), %xmm5 + mulsd %xmm5, %xmm9 + mulsd %xmm5, %xmm7 + movsd %xmm10, -56(%rsp) + movaps %xmm9, %xmm10 + movsd -48(%rsp), %xmm13 + movw %si, -10(%rsp) + lea 128(%rdx), %esi + movsd -16(%rsp), %xmm14 + addl $129, %edx + subsd %xmm13, %xmm0 + movsd %xmm0, -48(%rsp) + movsd -56(%rsp), %xmm1 + movsd -48(%rsp), %xmm15 + addsd %xmm15, %xmm1 + movsd %xmm1, -48(%rsp) + movsd -24(%rsp), %xmm4 + mulsd %xmm4, %xmm2 + movaps %xmm4, %xmm3 + mulsd %xmm4, %xmm3 + movsd -48(%rsp), %xmm1 + movaps %xmm4, %xmm0 + movsd %xmm2, -24(%rsp) + movsd -24(%rsp), %xmm6 + movsd 1064+__dsinh_la_CoutTab(%rip), %xmm2 + subsd %xmm4, %xmm6 + mulsd %xmm3, %xmm2 + movsd %xmm6, -56(%rsp) + movsd -24(%rsp), %xmm11 + movsd -56(%rsp), %xmm8 + subsd %xmm8, %xmm11 + addsd 1048+__dsinh_la_CoutTab(%rip), %xmm2 + movsd %xmm11, -24(%rsp) + movsd 1072+__dsinh_la_CoutTab(%rip), %xmm11 + mulsd %xmm3, %xmm11 + mulsd %xmm3, %xmm2 + addsd 1056+__dsinh_la_CoutTab(%rip), %xmm11 + mulsd %xmm4, %xmm2 + mulsd %xmm3, %xmm11 + movsd -24(%rsp), %xmm12 + addsd 1040+__dsinh_la_CoutTab(%rip), %xmm11 + subsd %xmm12, %xmm0 + mulsd %xmm3, %xmm11 + movsd (%rcx,%rsi,8), %xmm3 + movaps %xmm9, %xmm12 + mulsd %xmm14, %xmm3 + movsd %xmm0, -56(%rsp) + subsd %xmm3, %xmm10 + movsd -24(%rsp), %xmm8 + movsd -56(%rsp), %xmm6 + movsd %xmm10, -24(%rsp) + movsd -24(%rsp), %xmm13 + movsd (%rcx,%rdx,8), %xmm0 + subsd %xmm13, %xmm12 + mulsd %xmm14, %xmm0 + subsd %xmm3, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -24(%rsp), %xmm14 + movsd -56(%rsp), %xmm12 + movaps %xmm14, %xmm5 + movb -1(%rsp), %cl + addsd %xmm7, %xmm12 + addsd %xmm0, %xmm7 + subsd %xmm0, %xmm12 + andb $-128, %cl + addsd %xmm12, %xmm5 + movsd %xmm5, -24(%rsp) + movaps %xmm9, %xmm5 + movsd -24(%rsp), %xmm15 + addsd %xmm3, %xmm5 + subsd %xmm15, %xmm14 + addsd %xmm14, %xmm12 + movsd %xmm12, -56(%rsp) + movsd -24(%rsp), %xmm10 + movsd -56(%rsp), %xmm12 + movsd %xmm5, -24(%rsp) + movsd -24(%rsp), %xmm13 + subsd %xmm13, %xmm9 + addsd %xmm9, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -24(%rsp), %xmm3 + movsd -56(%rsp), %xmm5 + addsd %xmm7, %xmm5 + movaps %xmm3, %xmm7 + addsd %xmm5, %xmm7 + movsd %xmm7, -24(%rsp) + movsd -24(%rsp), %xmm9 + movsd 1128+__dsinh_la_CoutTab(%rip), %xmm7 + subsd %xmm9, %xmm3 + addsd %xmm3, %xmm5 + movsd %xmm5, -56(%rsp) + movsd -24(%rsp), %xmm0 + mulsd %xmm0, %xmm7 + movsd -56(%rsp), %xmm3 + movsd %xmm7, -24(%rsp) + movaps %xmm0, %xmm7 + movsd -24(%rsp), %xmm14 + mulsd %xmm3, %xmm4 + subsd %xmm0, %xmm14 + movsd %xmm14, -56(%rsp) + movsd -24(%rsp), %xmm13 + movsd -56(%rsp), %xmm9 + subsd %xmm9, %xmm13 + movsd %xmm13, -24(%rsp) + movaps %xmm0, %xmm13 + movsd -24(%rsp), %xmm15 + mulsd %xmm2, %xmm13 + subsd %xmm15, %xmm7 + mulsd %xmm1, %xmm0 + mulsd %xmm3, %xmm1 + mulsd %xmm3, %xmm2 + movaps %xmm10, %xmm15 + movaps %xmm13, %xmm5 + mulsd %xmm11, %xmm15 + mulsd %xmm12, %xmm11 + addsd %xmm15, %xmm5 + addsd %xmm12, %xmm11 + movsd %xmm7, -56(%rsp) + addsd %xmm0, %xmm11 + movsd -24(%rsp), %xmm9 + addsd %xmm1, %xmm11 + movsd -56(%rsp), %xmm7 + addsd %xmm2, %xmm11 + movsd %xmm5, -24(%rsp) + addsd %xmm4, %xmm11 + movsd -24(%rsp), %xmm14 + subsd %xmm14, %xmm13 + addsd %xmm13, %xmm15 + movsd %xmm15, -56(%rsp) + movaps %xmm8, %xmm15 + mulsd %xmm9, %xmm15 + mulsd %xmm6, %xmm9 + mulsd %xmm7, %xmm6 + mulsd %xmm7, %xmm8 + movsd -24(%rsp), %xmm14 + movaps %xmm15, %xmm13 + movsd -56(%rsp), %xmm5 + addsd %xmm14, %xmm13 + addsd %xmm9, %xmm5 + movsd %xmm13, -24(%rsp) + addsd %xmm6, %xmm5 + movsd -24(%rsp), %xmm13 + addsd %xmm8, %xmm5 + subsd %xmm13, %xmm15 + addsd %xmm5, %xmm11 + addsd %xmm15, %xmm14 + movsd %xmm14, -56(%rsp) + movaps %xmm10, %xmm15 + movsd -24(%rsp), %xmm13 + movsd -56(%rsp), %xmm14 + addsd %xmm13, %xmm15 + addsd %xmm14, %xmm11 + movsd %xmm15, -24(%rsp) + movsd -24(%rsp), %xmm15 + subsd %xmm15, %xmm10 + addsd %xmm10, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -24(%rsp), %xmm13 + movsd -56(%rsp), %xmm10 + addsd %xmm10, %xmm11 + addsd %xmm11, %xmm13 + movsd %xmm13, -32(%rsp) + movb -25(%rsp), %dil + andb $127, %dil + orb %cl, %dil + movb %dil, -25(%rsp) + movq -32(%rsp), %r10 + movq %r10, (%r9) + ret + +.LBL_2_8: + + movaps %xmm0, %xmm2 + mulsd %xmm0, %xmm2 + movsd 1104+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm2, %xmm1 + movb -1(%rsp), %dl + andb $-128, %dl + addsd 1096+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm2, %xmm1 + addsd 1088+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm2, %xmm1 + addsd 1080+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm1, %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm2, %xmm0 + movsd %xmm0, -32(%rsp) + movb -25(%rsp), %cl + andb $127, %cl + orb %dl, %cl + movb %cl, -25(%rsp) + movq -32(%rsp), %rsi + movq %rsi, (%r9) + ret + +.LBL_2_9: + + movsd 1112+__dsinh_la_CoutTab(%rip), %xmm1 + lea __dsinh_la_CoutTab(%rip), %r8 + mulsd %xmm0, %xmm1 + movsd 1144+__dsinh_la_CoutTab(%rip), %xmm2 + movsd 1152+__dsinh_la_CoutTab(%rip), %xmm3 + movq 8+__dsinh_la_CoutTab(%rip), %rdx + movq %rdx, -16(%rsp) + addsd 1120+__dsinh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -40(%rsp) + movsd -40(%rsp), %xmm4 + movsd 1072+__dsinh_la_CoutTab(%rip), %xmm1 + movl -40(%rsp), %edx + movl %edx, %esi + andl $63, %esi + subsd 1120+__dsinh_la_CoutTab(%rip), %xmm4 + mulsd %xmm4, %xmm2 + lea (%rsi,%rsi), %ecx + mulsd %xmm3, %xmm4 + subsd %xmm2, %xmm0 + movsd (%r8,%rcx,8), %xmm5 + lea 1(%rsi,%rsi), %edi + shrl $6, %edx + subsd %xmm4, %xmm0 + mulsd %xmm0, %xmm1 + addl $1022, %edx + andl $2047, %edx + addsd 1064+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1056+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1048+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1040+__dsinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + mulsd %xmm0, %xmm1 + addsd %xmm0, %xmm1 + mulsd %xmm5, %xmm1 + addsd (%r8,%rdi,8), %xmm1 + addsd %xmm5, %xmm1 + cmpl $2046, %edx + ja .LBL_2_11 + + + movq 8+__dsinh_la_CoutTab(%rip), %rcx + shrq $48, %rcx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -10(%rsp) + movsd -16(%rsp), %xmm0 + mulsd %xmm0, %xmm1 + movsd %xmm1, -32(%rsp) + jmp .LBL_2_12 + +.LBL_2_11: + + decl %edx + andl $2047, %edx + movzwl -10(%rsp), %ecx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -10(%rsp) + movsd -16(%rsp), %xmm0 + mulsd %xmm0, %xmm1 + mulsd 1024+__dsinh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -32(%rsp) + +.LBL_2_12: + + movb -25(%rsp), %cl + movb -1(%rsp), %dl + andb $127, %cl + andb $-128, %dl + orb %dl, %cl + movb %cl, -25(%rsp) + movq -32(%rsp), %rsi + movq %rsi, (%r9) + ret + +.LBL_2_13: + + movsd 1168+__dsinh_la_CoutTab(%rip), %xmm0 + movl $3, %eax + mulsd %xmm2, %xmm0 + movsd %xmm0, (%r9) + ret + +.LBL_2_14: + + movsd __dsinh_la_CoutTab(%rip), %xmm0 + addsd 1160+__dsinh_la_CoutTab(%rip), %xmm0 + mulsd %xmm2, %xmm0 + movsd %xmm0, (%r9) + + + ret + +.LBL_2_16: + + movsd 1160+__dsinh_la_CoutTab(%rip), %xmm0 + mulsd %xmm0, %xmm2 + movsd %xmm2, -24(%rsp) + movsd -24(%rsp), %xmm1 + movq 8+__dsinh_la_CoutTab(%rip), %rdx + movq %rdx, -16(%rsp) + addsd -8(%rsp), %xmm1 + movsd %xmm1, (%r9) + ret + +.LBL_2_17: + + addsd %xmm2, %xmm2 + movsd %xmm2, (%r9) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dsinh_cout_rare_internal,@function + .size __svml_dsinh_cout_rare_internal,.-__svml_dsinh_cout_rare_internal +..LN__svml_dsinh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dsinh_data_internal: + .long 0 + .long 1071644672 + .long 1828292879 + .long 1071691096 + .long 1014845819 + .long 1071739576 + .long 1853186616 + .long 1071790202 + .long 171030293 + .long 1071843070 + .long 1276261410 + .long 1071898278 + .long 3577096743 + .long 1071955930 + .long 3712504873 + .long 1072016135 + .long 1719614413 + .long 1072079006 + .long 1944781191 + .long 1072144660 + .long 1110089947 + .long 1072213221 + .long 2191782032 + .long 1072284817 + .long 2572866477 + .long 1072359583 + .long 3716502172 + .long 1072437659 + .long 3707479175 + .long 1072519192 + .long 2728693978 + .long 1072604335 + .long 0 + .long 0 + .long 1255956747 + .long 1015588398 + .long 3117910646 + .long 3161559105 + .long 3066496371 + .long 1015656574 + .long 3526460132 + .long 1014428778 + .long 300981948 + .long 1014684169 + .long 2951496418 + .long 1013793687 + .long 88491949 + .long 1015427660 + .long 330458198 + .long 3163282740 + .long 3993278767 + .long 3161724279 + .long 1451641639 + .long 1015474673 + .long 2960257726 + .long 1013742662 + .long 878562433 + .long 1015521741 + .long 2303740125 + .long 1014042725 + .long 3613079303 + .long 1014164738 + .long 396109971 + .long 3163462691 + .long 0 + .long 1071644672 + .long 2728693978 + .long 1071555759 + .long 3707479175 + .long 1071470616 + .long 3716502172 + .long 1071389083 + .long 2572866477 + .long 1071311007 + .long 2191782032 + .long 1071236241 + .long 1110089947 + .long 1071164645 + .long 1944781191 + .long 1071096084 + .long 1719614413 + .long 1071030430 + .long 3712504873 + .long 1070967559 + .long 3577096743 + .long 1070907354 + .long 1276261410 + .long 1070849702 + .long 171030293 + .long 1070794494 + .long 1853186616 + .long 1070741626 + .long 1014845819 + .long 1070691000 + .long 1828292879 + .long 1070642520 + .long 0 + .long 0 + .long 396109971 + .long 3162414115 + .long 3613079303 + .long 1013116162 + .long 2303740125 + .long 1012994149 + .long 878562433 + .long 1014473165 + .long 2960257726 + .long 1012694086 + .long 1451641639 + .long 1014426097 + .long 3993278767 + .long 3160675703 + .long 330458198 + .long 3162234164 + .long 88491949 + .long 1014379084 + .long 2951496418 + .long 1012745111 + .long 300981948 + .long 1013635593 + .long 3526460132 + .long 1013380202 + .long 3066496371 + .long 1014607998 + .long 3117910646 + .long 3160510529 + .long 1255956747 + .long 1014539822 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 0 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1 + .long 1123549184 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 1082453555 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 15 + .long 0 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 1431657638 + .long 1069897045 + .long 1431657638 + .long 1069897045 + .long 1431657638 + .long 1069897045 + .long 1431657638 + .long 1069897045 + .long 1431657638 + .long 1069897045 + .long 1431657638 + .long 1069897045 + .long 1431657638 + .long 1069897045 + .long 1431657638 + .long 1069897045 + .long 1431653196 + .long 1067799893 + .long 1431653196 + .long 1067799893 + .long 1431653196 + .long 1067799893 + .long 1431653196 + .long 1067799893 + .long 1431653196 + .long 1067799893 + .long 1431653196 + .long 1067799893 + .long 1431653196 + .long 1067799893 + .long 1431653196 + .long 1067799893 + .long 249327322 + .long 1065423121 + .long 249327322 + .long 1065423121 + .long 249327322 + .long 1065423121 + .long 249327322 + .long 1065423121 + .long 249327322 + .long 1065423121 + .long 249327322 + .long 1065423121 + .long 249327322 + .long 1065423121 + .long 249327322 + .long 1065423121 + .long 419584011 + .long 1062650220 + .long 419584011 + .long 1062650220 + .long 419584011 + .long 1062650220 + .long 419584011 + .long 1062650220 + .long 419584011 + .long 1062650220 + .long 419584011 + .long 1062650220 + .long 419584011 + .long 1062650220 + .long 419584011 + .long 1062650220 + .long 100753094 + .long 1059717741 + .long 100753094 + .long 1059717741 + .long 100753094 + .long 1059717741 + .long 100753094 + .long 1059717741 + .long 100753094 + .long 1059717741 + .long 100753094 + .long 1059717741 + .long 100753094 + .long 1059717741 + .long 100753094 + .long 1059717741 + .long 461398617 + .long 1056571820 + .long 461398617 + .long 1056571820 + .long 461398617 + .long 1056571820 + .long 461398617 + .long 1056571820 + .long 461398617 + .long 1056571820 + .long 461398617 + .long 1056571820 + .long 461398617 + .long 1056571820 + .long 461398617 + .long 1056571820 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 1697350398 + .long 1073157447 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 4277796864 + .long 1072049730 + .long 3164486458 + .long 1031600026 + .long 3164486458 + .long 1031600026 + .long 3164486458 + .long 1031600026 + .long 3164486458 + .long 1031600026 + .long 3164486458 + .long 1031600026 + .long 3164486458 + .long 1031600026 + .long 3164486458 + .long 1031600026 + .long 3164486458 + .long 1031600026 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1071644672 + .long 431824500 + .long 1064709706 + .long 730821105 + .long 1071633346 + .long 1779301686 + .long 1065758303 + .long 2174652632 + .long 1071622081 + .long 872681311 + .long 1066443490 + .long 2912730644 + .long 1071610877 + .long 2882296449 + .long 1066806964 + .long 1533953344 + .long 1071599734 + .long 3305321028 + .long 1067170481 + .long 929806999 + .long 1071588651 + .long 340716357 + .long 1067492210 + .long 3999357479 + .long 1071577627 + .long 1073477808 + .long 1067674027 + .long 764307441 + .long 1071566664 + .long 3128166954 + .long 1067855881 + .long 2728693978 + .long 1071555759 + .long 3639221082 + .long 1068037778 + .long 4224142467 + .long 1071544913 + .long 4041415279 + .long 1068219723 + .long 3884662774 + .long 1071534126 + .long 1480599658 + .long 1068401722 + .long 351641897 + .long 1071523398 + .long 2997120266 + .long 1068541361 + .long 863738719 + .long 1071512727 + .long 928693471 + .long 1068632422 + .long 4076975200 + .long 1071502113 + .long 1708958952 + .long 1068723517 + .long 64696965 + .long 1071491558 + .long 3926287402 + .long 1068814649 + .long 382305176 + .long 1071481059 + .long 1878784442 + .long 1068905822 + .long 3707479175 + .long 1071470616 + .long 2754496392 + .long 1068997037 + .long 135105010 + .long 1071460231 + .long 861943228 + .long 1069088298 + .long 1242007932 + .long 1071449901 + .long 3400259254 + .long 1069179606 + .long 1432208378 + .long 1071439627 + .long 394759087 + .long 1069270966 + .long 3706687593 + .long 1071429408 + .long 3351980561 + .long 1069362378 + .long 2483480501 + .long 1071419245 + .long 2310349189 + .long 1069453847 + .long 777507147 + .long 1071409137 + .long 200254151 + .long 1069545375 + .long 1610600570 + .long 1071399083 + .long 4274709417 + .long 1069592241 + .long 3716502172 + .long 1071389083 + .long 2266782956 + .long 1069638068 + .long 1540824585 + .long 1071379138 + .long 1995599824 + .long 1069683928 + .long 2420883922 + .long 1071369246 + .long 647201135 + .long 1069729823 + .long 815859274 + .long 1071359408 + .long 4001939191 + .long 1069775753 + .long 4076559943 + .long 1071349622 + .long 664843213 + .long 1069821722 + .long 2380618042 + .long 1071339890 + .long 720494647 + .long 1069867729 + .long 3092190715 + .long 1071330210 + .long 1373458573 + .long 1069913776 + .long 697153126 + .long 1071320583 + .long 4128322810 + .long 1069959864 + .long 2572866477 + .long 1071311007 + .long 1904966097 + .long 1070005996 + .long 3218338682 + .long 1071301483 + .long 513564799 + .long 1070052172 + .long 1434058175 + .long 1071292011 + .long 1474894098 + .long 1070098393 + .long 321958744 + .long 1071282590 + .long 2020498546 + .long 1070144661 + .long 2990417245 + .long 1071273219 + .long 3682797359 + .long 1070190977 + .long 3964284211 + .long 1071263899 + .long 3705320722 + .long 1070237343 + .long 2069751141 + .long 1071254630 + .long 3632815436 + .long 1070283760 + .long 434316067 + .long 1071245411 + .long 721481577 + .long 1070330230 + .long 2191782032 + .long 1071236241 + .long 824045819 + .long 1070376753 + .long 1892288442 + .long 1071227121 + .long 1210063881 + .long 1070423331 + .long 2682146384 + .long 1071218050 + .long 3450994238 + .long 1070469965 + .long 3418903055 + .long 1071209028 + .long 535468266 + .long 1070516658 + .long 2966275557 + .long 1071200055 + .long 2639266259 + .long 1070563409 + .long 194117574 + .long 1071191131 + .long 3530359402 + .long 1070603158 + .long 2568320822 + .long 1071182254 + .long 3405407025 + .long 1070626595 + .long 380978316 + .long 1071173426 + .long 1749136243 + .long 1070650064 + .long 1110089947 + .long 1071164645 + .long 1517376385 + .long 1070673565 + .long 3649726105 + .long 1071155911 + .long 1375061601 + .long 1070697099 + .long 2604962541 + .long 1071147225 + .long 4286252247 + .long 1070720666 + .long 1176749997 + .long 1071138586 + .long 334352625 + .long 1070744269 + .long 2571947539 + .long 1071129993 + .long 1081936396 + .long 1070767906 + .long 1413356050 + .long 1071121447 + .long 916128083 + .long 1070791579 + .long 919555682 + .long 1071112947 + .long 2818494152 + .long 1070815288 + .long 19972402 + .long 1071104493 + .long 1185261260 + .long 1070839035 + .long 1944781191 + .long 1071096084 + .long 3302240303 + .long 1070862819 + .long 1339972927 + .long 1071087721 + .long 3575110344 + .long 1070886642 + .long 1447192521 + .long 1071079403 + .long 709375646 + .long 1070910505 + .long 1218806132 + .long 1071071130 + .long 2005420950 + .long 1070934407 + .long 3907805044 + .long 1071062901 + .long 1883763132 + .long 1070958350 + .long 4182873220 + .long 1071054717 + .long 3359975962 + .long 1070982334 + .long 1013258799 + .long 1071046578 + .long 864909351 + .long 1071006361 + .long 1963711167 + .long 1071038482 + .long 1719614413 + .long 1071030430 + .long 1719614413 + .long 1071030430 + .long 365628427 + .long 1071054543 + .long 3561793907 + .long 1071022421 + .long 4134867513 + .long 1071078699 + .long 2186617381 + .long 1071014456 + .long 3184944616 + .long 1071102901 + .long 885834528 + .long 1071006534 + .long 564029795 + .long 1071127149 + .long 2956612997 + .long 1070998654 + .long 3621005023 + .long 1071151442 + .long 3111574537 + .long 1070990817 + .long 2530717257 + .long 1071175783 + .long 363667784 + .long 1070983023 + .long 358839240 + .long 1071200172 + .long 2321106615 + .long 1070975270 + .long 177057508 + .long 1071224609 + .long 3712504873 + .long 1070967559 + .long 768195176 + .long 1071249095 + .long 3566716925 + .long 1070959890 + .long 921269482 + .long 1071273631 + .long 917841882 + .long 1070952263 + .long 3726549525 + .long 1071298217 + .long 3395129871 + .long 1070944676 + .long 3690744995 + .long 1071322855 + .long 1453150082 + .long 1070937131 + .long 3916966168 + .long 1071347545 + .long 2731501122 + .long 1070929626 + .long 3219913010 + .long 1071372288 + .long 1990012071 + .long 1070922162 + .long 420933669 + .long 1071397085 + .long 2583551245 + .long 1070914738 + .long 2938050448 + .long 1071421935 + .long 3577096743 + .long 1070907354 + .long 1016247609 + .long 1071446841 + .long 4040676318 + .long 1070900010 + .long 2087301532 + .long 1071471802 + .long 3049340112 + .long 1070892706 + .long 705101620 + .long 1071496820 + .long 3978100823 + .long 1070885441 + .long 20578973 + .long 1071521895 + .long 1617004845 + .long 1070878216 + .long 3191864199 + .long 1071547027 + .long 3645941911 + .long 1070871029 + .long 499478133 + .long 1071572219 + .long 569847338 + .long 1070863882 + .long 3706163032 + .long 1071597469 + .long 78413852 + .long 1070856773 + .long 3107302654 + .long 1071622780 + .long 1276261410 + .long 1070849702 + .long 945376945 + .long 1071646412 + .long 3272845541 + .long 1070842669 + .long 3773502825 + .long 1071659128 + .long 887463927 + .long 1070835675 + .long 3049734401 + .long 1071671876 + .long 1829099622 + .long 1070828718 + .long 379637879 + .long 1071684656 + .long 926591435 + .long 1070821799 + .long 1667720032 + .long 1071697467 + .long 1603444721 + .long 1070814917 + .long 4232573504 + .long 1071710310 + .long 2992903935 + .long 1070808072 + .long 1101891425 + .long 1071723187 + .long 4232894513 + .long 1070801264 + .long 2487351331 + .long 1071736096 + .long 171030293 + .long 1070794494 + .long 1424924347 + .long 1071749039 + .long 2839424854 + .long 1070787759 + .long 3839693941 + .long 1071762015 + .long 2799960843 + .long 1070781061 + .long 2776099954 + .long 1071775026 + .long 3504003472 + .long 1070774399 + .long 4167790294 + .long 1071788071 + .long 4112506593 + .long 1070767773 + .long 1067865225 + .long 1071801152 + .long 3790955393 + .long 1070761183 + .long 3713696612 + .long 1071814267 + .long 1709341917 + .long 1070754629 + .long 872270569 + .long 1071827419 + .long 1337108031 + .long 1070748110 + .long 2789908864 + .long 1071840606 + .long 1853186616 + .long 1070741626 + .long 2537611823 + .long 1071853830 + .long 2440944790 + .long 1070735177 + .long 1780910816 + .long 1071867091 + .long 2288159958 + .long 1070728763 + .long 2189982503 + .long 1071880389 + .long 586995997 + .long 1070722384 + .long 1144730516 + .long 1071893725 + .long 828946858 + .long 1070716039 + .long 324769168 + .long 1071907099 + .long 2214878420 + .long 1070709728 + .long 1414505409 + .long 1071920511 + .long 3949972341 + .long 1070703451 + .long 1808220925 + .long 1071933962 + .long 948735466 + .long 1070697209 + .long 3200056266 + .long 1071947452 + .long 1014845819 + .long 1070691000 + .long 2994125935 + .long 1071960982 + .long 3366293073 + .long 1070684824 + .long 2894502806 + .long 1071974552 + .long 2930322912 + .long 1070678682 + .long 315333498 + .long 1071988163 + .long 3228316108 + .long 1070672573 + .long 1265790390 + .long 1072001814 + .long 3490863953 + .long 1070666497 + .long 3170252699 + .long 1072015506 + .long 2952712987 + .long 1070660454 + .long 3458291493 + .long 1072029240 + .long 852742562 + .long 1070654444 + .long 3859687560 + .long 1072043016 + .long 728909815 + .long 1070648466 + .long 1814547538 + .long 1072056835 + .long 1828292879 + .long 1070642520 + .long 3358256687 + .long 1072070696 + .long 3402036099 + .long 1070636606 + .long 1646693443 + .long 1072084601 + .long 410360776 + .long 1070630725 + .long 2726084392 + .long 1072098549 + .long 702412510 + .long 1070624875 + .long 4058219142 + .long 1072112541 + .long 3541402996 + .long 1070619056 + .long 3110436433 + .long 1072126578 + .long 3899555717 + .long 1070613269 + .long 1650643112 + .long 1072140660 + .long 1048019041 + .long 1070607514 + .long 1452398678 + .long 1072154787 + .long 2851812149 + .long 1070601789 + .long 0 + .long 1120403456 + .long 0 + .long 1120403456 + .long 0 + .long 1120403456 + .long 0 + .long 1120403456 + .long 0 + .long 1120403456 + .long 0 + .long 1120403456 + .long 0 + .long 1120403456 + .long 0 + .long 1120403456 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 1082531225 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 4294966717 + .long 1071644671 + .long 1431655597 + .long 1069897045 + .long 1431655597 + .long 1069897045 + .long 1431655597 + .long 1069897045 + .long 1431655597 + .long 1069897045 + .long 1431655597 + .long 1069897045 + .long 1431655597 + .long 1069897045 + .long 1431655597 + .long 1069897045 + .long 1431655597 + .long 1069897045 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 3474379417 + .long 1067799893 + .long 1460859941 + .long 1065423121 + .long 1460859941 + .long 1065423121 + .long 1460859941 + .long 1065423121 + .long 1460859941 + .long 1065423121 + .long 1460859941 + .long 1065423121 + .long 1460859941 + .long 1065423121 + .long 1460859941 + .long 1065423121 + .long 1460859941 + .long 1065423121 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 127 + .long 0 + .long 127 + .long 0 + .long 127 + .long 0 + .long 127 + .long 0 + .long 127 + .long 0 + .long 127 + .long 0 + .long 127 + .long 0 + .long 127 + .long 0 + .type __svml_dsinh_data_internal,@object + .size __svml_dsinh_data_internal,4288 + .space 320, 0x00 + .align 32 +__dsinh_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 852742562 + .long 1072751596 + .long 667253587 + .long 1010842135 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 3706687593 + .long 1073526560 + .long 3521726939 + .long 1014301643 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 0 + .long 1071644672 + .long 1431652600 + .long 1069897045 + .long 1431670732 + .long 1067799893 + .long 984555731 + .long 1065423122 + .long 472530941 + .long 1062650218 + .long 1431655765 + .long 1069897045 + .long 286331153 + .long 1065423121 + .long 436314138 + .long 1059717536 + .long 2773927732 + .long 1053236707 + .long 1697350398 + .long 1079448903 + .long 0 + .long 1127743488 + .long 33554432 + .long 1101004800 + .long 2411329662 + .long 1082536910 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 1 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 3671843104 + .long 1067178892 + .long 3875694624 + .long 1077247184 + .type __dsinh_la_CoutTab,@object + .size __dsinh_la_CoutTab,1192 + .space 8, 0x00 + .align 16 +.L_2il0floatpacket.97: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.97,@object + .size .L_2il0floatpacket.97,16 diff --git a/numpy/core/src/umath/svml/svml_z0_sinh_s_la.s b/numpy/core/src/umath/svml/svml_z0_sinh_s_la.s new file mode 100644 index 000000000000..f2101e52a633 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_sinh_s_la.s @@ -0,0 +1,1446 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + + .text +.L_2__routine_start___svml_sinhf16_z0_0: + + .align 16,0x90 + .globl __svml_sinhf16 + +__svml_sinhf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovaps %zmm0, %zmm5 + +/* + * ----------------------------------- Implementation --------------------- + * ............... Abs argument ............................ + */ + vandps 1152+__svml_ssinh_data_internal(%rip), %zmm5, %zmm4 + +/* + * ...............Check for overflow\underflow ............. + */ + vpternlogd $255, %zmm6, %zmm6, %zmm6 + vmovups 1280+__svml_ssinh_data_internal(%rip), %zmm7 + +/* + * ............... Load argument ............................ + * dM = x/log(2) + RShifter + */ + vmovups 960+__svml_ssinh_data_internal(%rip), %zmm11 + vmovups 1024+__svml_ssinh_data_internal(%rip), %zmm8 + vmovups 1088+__svml_ssinh_data_internal(%rip), %zmm10 + vmovups 1856+__svml_ssinh_data_internal(%rip), %zmm12 + vmovups 1728+__svml_ssinh_data_internal(%rip), %zmm0 + vmovups 1792+__svml_ssinh_data_internal(%rip), %zmm3 + +/* x^2 */ + vmovups 1536+__svml_ssinh_data_internal(%rip), %zmm2 + vxorps %zmm5, %zmm4, %zmm1 + vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm11 + vpcmpd $2, 1408+__svml_ssinh_data_internal(%rip), %zmm1, %k1 + +/* + * ............... G1,G2 2^N,2^(-N) ........... + * iM now is an EXP(2^N) + */ + vpslld $23, %zmm11, %zmm13 + +/* + * ................... R ................................... + * sN = sM - RShifter + */ + vsubps {rn-sae}, %zmm7, %zmm11, %zmm9 + vpaddd %zmm13, %zmm12, %zmm14 + vpsubd %zmm13, %zmm12, %zmm15 + +/* sG1 = 2^(N-1)+2^(-N-1) */ + vaddps {rn-sae}, %zmm15, %zmm14, %zmm7 + vpandnd %zmm1, %zmm1, %zmm6{%k1} + +/* sR = sX - sN*Log2_hi */ + vfnmadd231ps {rn-sae}, %zmm8, %zmm9, %zmm1 + vptestmd %zmm6, %zmm6, %k0 + +/* sG2 = 2^(N-1)-2^(-N-1) */ + vsubps {rn-sae}, %zmm15, %zmm14, %zmm8 + +/* sR = (sX - sN*Log2_hi) - sN*Log2_lo */ + vfnmadd231ps {rn-sae}, %zmm10, %zmm9, %zmm1 + +/* + * ....sinh(r) = r*((a1=1)+r^2*(a3+r^2*(a5+{v1 r^2*a7})))) = r + r*(r^2*(a3+r^2*(a5+r^2*a7))) .... + * sSinh_r = (a3+r^2*a5) + */ + vmovups 1600+__svml_ssinh_data_internal(%rip), %zmm14 + kmovw %k0, %edx + +/* sR2 = sR^2 */ + vmulps {rn-sae}, %zmm1, %zmm1, %zmm6 + vfmadd231ps {rn-sae}, %zmm6, %zmm0, %zmm14 + +/* sSinh_r = r^2*(a3+r^2*a5) */ + vmulps {rn-sae}, %zmm6, %zmm14, %zmm0 + +/* sSinh_r = r + r*(r^2*(a3+r^2*a5)) */ + vfmadd213ps {rn-sae}, %zmm1, %zmm1, %zmm0 + +/* + * sinh(X) = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2) + * sOut = (a4 +a6*sR2) + */ + vmovups 1664+__svml_ssinh_data_internal(%rip), %zmm1 + vfmadd231ps {rn-sae}, %zmm6, %zmm3, %zmm1 + +/* sOut = a2+sR2*(a4+a6*sR2) */ + vfmadd213ps {rn-sae}, %zmm2, %zmm6, %zmm1 + +/* sOut = sR2*(a2+sR2*(a4+a6*sR2) */ + vmulps {rn-sae}, %zmm6, %zmm1, %zmm2 + +/* sOut = sG2*sR2*(a2+sR2*(a4+a6*sR2) */ + vmulps {rn-sae}, %zmm8, %zmm2, %zmm3 + +/* sOut = sG1*sinh(dR)+sG2*sR2*(a2+sR2*(a4+a6*sR2) */ + vfmadd213ps {rn-sae}, %zmm3, %zmm0, %zmm7 + +/* sOut = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2) */ + vaddps {rn-sae}, %zmm8, %zmm7, %zmm9 + +/* ................... Ret H ...................... */ + vorps %zmm9, %zmm4, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm5, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_ssinh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_sinhf16,@function + .size __svml_sinhf16,.-__svml_sinhf16 +..LN__svml_sinhf16.0: + +.L_2__routine_start___svml_ssinh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_ssinh_cout_rare_internal: + + + .cfi_startproc +..L53: + + movq %rsi, %r9 + movzwl 2(%rdi), %edx + xorl %eax, %eax + andl $32640, %edx + movss (%rdi), %xmm2 + cmpl $32640, %edx + je .LBL_2_17 + + + cvtss2sd %xmm2, %xmm2 + movsd %xmm2, -8(%rsp) + movzwl -2(%rsp), %edx + andl $32752, %edx + movsd %xmm2, -32(%rsp) + shrl $4, %edx + andb $127, -25(%rsp) + testl %edx, %edx + jle .LBL_2_16 + + + cmpl $969, %edx + jle .LBL_2_14 + + + movsd -32(%rsp), %xmm0 + movsd 1136+__ssinh_la_CoutTab(%rip), %xmm1 + comisd %xmm0, %xmm1 + jbe .LBL_2_13 + + + movsd 1184+__ssinh_la_CoutTab(%rip), %xmm1 + comisd %xmm0, %xmm1 + jbe .LBL_2_9 + + + comisd 1176+__ssinh_la_CoutTab(%rip), %xmm0 + jb .LBL_2_8 + + + movsd 1112+__ssinh_la_CoutTab(%rip), %xmm3 + lea __ssinh_la_CoutTab(%rip), %rcx + mulsd %xmm0, %xmm3 + movsd 1144+__ssinh_la_CoutTab(%rip), %xmm10 + movq 8+__ssinh_la_CoutTab(%rip), %r10 + movq %r10, %rsi + shrq $48, %rsi + addsd 1120+__ssinh_la_CoutTab(%rip), %xmm3 + movsd %xmm3, -40(%rsp) + andl $-32753, %esi + movsd -40(%rsp), %xmm13 + movl -40(%rsp), %r8d + movl %r8d, %r11d + shrl $6, %r11d + andl $63, %r8d + movq %r10, -16(%rsp) + subsd 1120+__ssinh_la_CoutTab(%rip), %xmm13 + mulsd %xmm13, %xmm10 + lea 1023(%r11), %edi + xorps .L_2il0floatpacket.98(%rip), %xmm13 + addl $1022, %r11d + mulsd 1152+__ssinh_la_CoutTab(%rip), %xmm13 + subsd %xmm10, %xmm0 + movaps %xmm0, %xmm5 + movaps %xmm0, %xmm11 + andl $2047, %r11d + lea (%r8,%r8), %edx + negl %edi + lea 1(%r8,%r8), %r8d + movsd (%rcx,%rdx,8), %xmm8 + negl %edx + shll $4, %r11d + addl $-4, %edi + orl %r11d, %esi + andl $2047, %edi + movw %si, -10(%rsp) + andl $-32753, %esi + shll $4, %edi + addsd %xmm13, %xmm5 + movsd %xmm5, -24(%rsp) + orl %edi, %esi + movsd -24(%rsp), %xmm7 + movsd 1128+__ssinh_la_CoutTab(%rip), %xmm5 + subsd %xmm7, %xmm11 + movsd %xmm11, -56(%rsp) + movsd -24(%rsp), %xmm4 + movsd -56(%rsp), %xmm12 + movsd (%rcx,%r8,8), %xmm6 + addsd %xmm12, %xmm4 + movsd %xmm4, -48(%rsp) + movsd -56(%rsp), %xmm9 + movsd -16(%rsp), %xmm4 + addsd %xmm9, %xmm13 + mulsd %xmm4, %xmm8 + mulsd %xmm4, %xmm6 + movsd %xmm13, -56(%rsp) + movaps %xmm8, %xmm9 + movsd -48(%rsp), %xmm15 + movw %si, -10(%rsp) + lea 128(%rdx), %esi + movsd -16(%rsp), %xmm14 + addl $129, %edx + subsd %xmm15, %xmm0 + movaps %xmm8, %xmm15 + movsd %xmm0, -48(%rsp) + movsd -56(%rsp), %xmm3 + movsd -48(%rsp), %xmm0 + addsd %xmm0, %xmm3 + movsd %xmm3, -48(%rsp) + movsd -24(%rsp), %xmm10 + mulsd %xmm10, %xmm5 + movaps %xmm10, %xmm2 + mulsd %xmm10, %xmm2 + movsd -48(%rsp), %xmm3 + movaps %xmm10, %xmm1 + movsd %xmm5, -24(%rsp) + movsd -24(%rsp), %xmm7 + subsd %xmm10, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -24(%rsp), %xmm12 + movsd -56(%rsp), %xmm11 + subsd %xmm11, %xmm12 + movsd 1064+__ssinh_la_CoutTab(%rip), %xmm11 + mulsd %xmm2, %xmm11 + movsd %xmm12, -24(%rsp) + movsd 1072+__ssinh_la_CoutTab(%rip), %xmm12 + mulsd %xmm2, %xmm12 + addsd 1048+__ssinh_la_CoutTab(%rip), %xmm11 + mulsd %xmm2, %xmm11 + addsd 1056+__ssinh_la_CoutTab(%rip), %xmm12 + mulsd %xmm2, %xmm12 + mulsd %xmm10, %xmm11 + addsd 1040+__ssinh_la_CoutTab(%rip), %xmm12 + addsd %xmm11, %xmm10 + mulsd %xmm2, %xmm12 + movsd (%rcx,%rsi,8), %xmm2 + mulsd %xmm14, %xmm2 + movsd -24(%rsp), %xmm0 + subsd %xmm2, %xmm9 + subsd %xmm0, %xmm1 + movsd %xmm1, -56(%rsp) + movsd -24(%rsp), %xmm7 + movsd -56(%rsp), %xmm5 + movsd %xmm9, -24(%rsp) + movsd -24(%rsp), %xmm13 + movsd (%rcx,%rdx,8), %xmm1 + subsd %xmm13, %xmm15 + mulsd %xmm14, %xmm1 + subsd %xmm2, %xmm15 + movsd %xmm15, -56(%rsp) + movaps %xmm8, %xmm13 + movsd -24(%rsp), %xmm14 + addsd %xmm2, %xmm13 + movsd -56(%rsp), %xmm9 + movaps %xmm14, %xmm0 + movb -1(%rsp), %cl + addsd %xmm6, %xmm9 + addsd %xmm1, %xmm6 + subsd %xmm1, %xmm9 + andb $-128, %cl + addsd %xmm9, %xmm0 + movsd %xmm0, -24(%rsp) + movsd -24(%rsp), %xmm4 + subsd %xmm4, %xmm14 + addsd %xmm14, %xmm9 + movsd %xmm9, -56(%rsp) + movsd -24(%rsp), %xmm9 + movsd -56(%rsp), %xmm0 + movsd %xmm13, -24(%rsp) + movsd -24(%rsp), %xmm15 + subsd %xmm15, %xmm8 + addsd %xmm8, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -24(%rsp), %xmm2 + movsd -56(%rsp), %xmm4 + addsd %xmm6, %xmm4 + movaps %xmm2, %xmm6 + addsd %xmm4, %xmm6 + movsd %xmm6, -24(%rsp) + movsd -24(%rsp), %xmm8 + movsd 1128+__ssinh_la_CoutTab(%rip), %xmm6 + subsd %xmm8, %xmm2 + addsd %xmm2, %xmm4 + movsd %xmm4, -56(%rsp) + movsd -24(%rsp), %xmm1 + mulsd %xmm1, %xmm6 + movsd -56(%rsp), %xmm2 + movsd %xmm6, -24(%rsp) + movaps %xmm1, %xmm6 + movsd -24(%rsp), %xmm14 + mulsd %xmm2, %xmm10 + subsd %xmm1, %xmm14 + movsd %xmm14, -56(%rsp) + movsd -24(%rsp), %xmm13 + movsd -56(%rsp), %xmm8 + subsd %xmm8, %xmm13 + movsd %xmm13, -24(%rsp) + movaps %xmm11, %xmm13 + movsd -24(%rsp), %xmm15 + mulsd %xmm1, %xmm13 + subsd %xmm15, %xmm6 + mulsd %xmm3, %xmm1 + mulsd %xmm2, %xmm3 + movaps %xmm12, %xmm15 + movaps %xmm13, %xmm4 + mulsd %xmm9, %xmm15 + mulsd %xmm0, %xmm12 + addsd %xmm15, %xmm4 + addsd %xmm0, %xmm12 + movsd %xmm6, -56(%rsp) + addsd %xmm1, %xmm12 + movsd -24(%rsp), %xmm8 + addsd %xmm3, %xmm12 + movsd -56(%rsp), %xmm6 + movsd %xmm4, -24(%rsp) + movsd -24(%rsp), %xmm14 + subsd %xmm14, %xmm13 + addsd %xmm13, %xmm15 + movsd %xmm15, -56(%rsp) + movaps %xmm7, %xmm15 + mulsd %xmm8, %xmm15 + mulsd %xmm5, %xmm8 + mulsd %xmm6, %xmm5 + mulsd %xmm6, %xmm7 + movsd -24(%rsp), %xmm14 + movaps %xmm14, %xmm13 + movsd -56(%rsp), %xmm4 + addsd %xmm15, %xmm13 + addsd %xmm8, %xmm4 + movsd %xmm13, -24(%rsp) + addsd %xmm5, %xmm4 + movsd -24(%rsp), %xmm13 + addsd %xmm7, %xmm4 + subsd %xmm13, %xmm15 + addsd %xmm4, %xmm12 + addsd %xmm15, %xmm14 + movsd %xmm14, -56(%rsp) + movaps %xmm9, %xmm15 + movsd -24(%rsp), %xmm13 + movsd -56(%rsp), %xmm14 + addsd %xmm13, %xmm15 + addsd %xmm14, %xmm12 + movsd %xmm15, -24(%rsp) + movsd -24(%rsp), %xmm15 + subsd %xmm15, %xmm9 + addsd %xmm9, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -24(%rsp), %xmm13 + movsd -56(%rsp), %xmm9 + addsd %xmm9, %xmm12 + addsd %xmm12, %xmm13 + addsd %xmm13, %xmm10 + movsd %xmm10, -32(%rsp) + movb -25(%rsp), %dil + andb $127, %dil + orb %cl, %dil + movb %dil, -25(%rsp) + movsd -32(%rsp), %xmm10 + cvtsd2ss %xmm10, %xmm10 + movss %xmm10, (%r9) + ret + +.LBL_2_8: + + movaps %xmm0, %xmm2 + mulsd %xmm0, %xmm2 + movsd 1104+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm2, %xmm1 + movb -1(%rsp), %dl + andb $-128, %dl + addsd 1096+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm2, %xmm1 + addsd 1088+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm2, %xmm1 + addsd 1080+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm1, %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm2, %xmm0 + movsd %xmm0, -32(%rsp) + movb -25(%rsp), %cl + andb $127, %cl + orb %dl, %cl + movb %cl, -25(%rsp) + movsd -32(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r9) + ret + +.LBL_2_9: + + movsd 1112+__ssinh_la_CoutTab(%rip), %xmm1 + lea __ssinh_la_CoutTab(%rip), %r8 + mulsd %xmm0, %xmm1 + movsd 1144+__ssinh_la_CoutTab(%rip), %xmm2 + movsd 1152+__ssinh_la_CoutTab(%rip), %xmm3 + movq 8+__ssinh_la_CoutTab(%rip), %rdx + movq %rdx, -16(%rsp) + addsd 1120+__ssinh_la_CoutTab(%rip), %xmm1 + movsd %xmm1, -40(%rsp) + movsd -40(%rsp), %xmm4 + movsd 1072+__ssinh_la_CoutTab(%rip), %xmm1 + movl -40(%rsp), %edx + movl %edx, %esi + andl $63, %esi + subsd 1120+__ssinh_la_CoutTab(%rip), %xmm4 + mulsd %xmm4, %xmm2 + lea (%rsi,%rsi), %ecx + mulsd %xmm3, %xmm4 + subsd %xmm2, %xmm0 + movsd (%r8,%rcx,8), %xmm5 + lea 1(%rsi,%rsi), %edi + shrl $6, %edx + subsd %xmm4, %xmm0 + mulsd %xmm0, %xmm1 + addl $1022, %edx + andl $2047, %edx + addsd 1064+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1056+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1048+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + addsd 1040+__ssinh_la_CoutTab(%rip), %xmm1 + mulsd %xmm0, %xmm1 + mulsd %xmm0, %xmm1 + addsd %xmm0, %xmm1 + mulsd %xmm5, %xmm1 + addsd (%r8,%rdi,8), %xmm1 + addsd %xmm5, %xmm1 + cmpl $2046, %edx + ja .LBL_2_11 + + + movq 8+__ssinh_la_CoutTab(%rip), %rcx + shrq $48, %rcx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -10(%rsp) + movsd -16(%rsp), %xmm0 + mulsd %xmm1, %xmm0 + movsd %xmm0, -32(%rsp) + jmp .LBL_2_12 + +.LBL_2_11: + + decl %edx + andl $2047, %edx + movzwl -10(%rsp), %ecx + shll $4, %edx + andl $-32753, %ecx + orl %edx, %ecx + movw %cx, -10(%rsp) + movsd -16(%rsp), %xmm0 + mulsd %xmm1, %xmm0 + mulsd 1024+__ssinh_la_CoutTab(%rip), %xmm0 + movsd %xmm0, -32(%rsp) + +.LBL_2_12: + + movb -25(%rsp), %cl + movb -1(%rsp), %dl + andb $127, %cl + andb $-128, %dl + orb %dl, %cl + movb %cl, -25(%rsp) + movsd -32(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r9) + ret + +.LBL_2_13: + + movsd 1168+__ssinh_la_CoutTab(%rip), %xmm0 + movl $3, %eax + mulsd %xmm2, %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r9) + ret + +.LBL_2_14: + + movsd __ssinh_la_CoutTab(%rip), %xmm0 + addsd 1160+__ssinh_la_CoutTab(%rip), %xmm0 + mulsd %xmm2, %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, (%r9) + + + ret + +.LBL_2_16: + + movsd 1160+__ssinh_la_CoutTab(%rip), %xmm0 + mulsd %xmm0, %xmm2 + movsd %xmm2, -24(%rsp) + pxor %xmm2, %xmm2 + cvtss2sd (%rdi), %xmm2 + movsd -24(%rsp), %xmm1 + movq 8+__ssinh_la_CoutTab(%rip), %rdx + addsd %xmm1, %xmm2 + cvtsd2ss %xmm2, %xmm2 + movq %rdx, -16(%rsp) + movss %xmm2, (%r9) + ret + +.LBL_2_17: + + addss %xmm2, %xmm2 + movss %xmm2, (%r9) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_ssinh_cout_rare_internal,@function + .size __svml_ssinh_cout_rare_internal,.-__svml_ssinh_cout_rare_internal +..LN__svml_ssinh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_ssinh_data_internal: + .long 1056964608 + .long 1057148295 + .long 1057336003 + .long 1057527823 + .long 1057723842 + .long 1057924154 + .long 1058128851 + .long 1058338032 + .long 1058551792 + .long 1058770234 + .long 1058993458 + .long 1059221571 + .long 1059454679 + .long 1059692891 + .long 1059936319 + .long 1060185078 + .long 1060439283 + .long 1060699055 + .long 1060964516 + .long 1061235789 + .long 1061513002 + .long 1061796286 + .long 1062085772 + .long 1062381598 + .long 1062683901 + .long 1062992824 + .long 1063308511 + .long 1063631111 + .long 1063960775 + .long 1064297658 + .long 1064641917 + .long 1064993715 + .long 0 + .long 2999887785 + .long 852465809 + .long 3003046475 + .long 2984291233 + .long 3001644133 + .long 854021668 + .long 2997748242 + .long 849550193 + .long 2995541347 + .long 851518274 + .long 809701978 + .long 2997656926 + .long 2996185864 + .long 2980965110 + .long 3002882728 + .long 844097402 + .long 848217591 + .long 2999013352 + .long 2992006718 + .long 831170615 + .long 3002278818 + .long 833158180 + .long 3000769962 + .long 2991891850 + .long 2999994908 + .long 2979965785 + .long 2982419430 + .long 2982221534 + .long 2999469642 + .long 833168438 + .long 2987538264 + .long 1056964608 + .long 1056605107 + .long 1056253309 + .long 1055909050 + .long 1055572167 + .long 1055242503 + .long 1054919903 + .long 1054604216 + .long 1054295293 + .long 1053992990 + .long 1053697164 + .long 1053407678 + .long 1053124394 + .long 1052847181 + .long 1052575908 + .long 1052310447 + .long 1052050675 + .long 1051796470 + .long 1051547711 + .long 1051304283 + .long 1051066071 + .long 1050832963 + .long 1050604850 + .long 1050381626 + .long 1050163184 + .long 1049949424 + .long 1049740243 + .long 1049535546 + .long 1049335234 + .long 1049139215 + .long 1048947395 + .long 1048759687 + .long 0 + .long 2979149656 + .long 824779830 + .long 2991081034 + .long 2973832926 + .long 2974030822 + .long 2971577177 + .long 2991606300 + .long 2983503242 + .long 2992381354 + .long 824769572 + .long 2993890210 + .long 822782007 + .long 2983618110 + .long 2990624744 + .long 839828983 + .long 835708794 + .long 2994494120 + .long 2972576502 + .long 2987797256 + .long 2989268318 + .long 801313370 + .long 843129666 + .long 2987152739 + .long 841161585 + .long 2989359634 + .long 845633060 + .long 2993255525 + .long 2975902625 + .long 2994657867 + .long 844077201 + .long 2991499177 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542464 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 1220542465 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1118743631 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1056964676 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1042983605 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1069066811 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 1060204544 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 939916788 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 31 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1118743630 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1042983511 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1026206322 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 1007228001 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 985049251 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .type __svml_ssinh_data_internal,@object + .size __svml_ssinh_data_internal,1920 + .align 32 +__ssinh_la_CoutTab: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 852742562 + .long 1072751596 + .long 667253587 + .long 1010842135 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 3706687593 + .long 1073526560 + .long 3521726939 + .long 1014301643 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 0 + .long 1071644672 + .long 1431652600 + .long 1069897045 + .long 1431670732 + .long 1067799893 + .long 984555731 + .long 1065423122 + .long 472530941 + .long 1062650218 + .long 1431655765 + .long 1069897045 + .long 286331153 + .long 1065423121 + .long 436314138 + .long 1059717536 + .long 2773927732 + .long 1053236707 + .long 1697350398 + .long 1079448903 + .long 0 + .long 1127743488 + .long 33554432 + .long 1101004800 + .long 2684354560 + .long 1079401119 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 1 + .long 1048576 + .long 4294967295 + .long 2146435071 + .long 3671843104 + .long 1067178892 + .long 3875694624 + .long 1077247184 + .type __ssinh_la_CoutTab,@object + .size __ssinh_la_CoutTab,1192 + .space 8, 0x00 + .align 16 +.L_2il0floatpacket.98: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.98,@object + .size .L_2il0floatpacket.98,16 diff --git a/numpy/core/src/umath/svml/svml_z0_tan_d_la.s b/numpy/core/src/umath/svml/svml_z0_tan_d_la.s new file mode 100644 index 000000000000..3f5df19d3b3a --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_tan_d_la.s @@ -0,0 +1,20219 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * ( optimized for throughput, with small table lookup, works when HW FMA is available ) + * + * Implementation reduces argument x to |R|64 multiplications + */ + vpbroadcastq .L_2il0floatpacket.22(%rip), %zmm6 + kxnorw %k0, %k0, %k3 + kxnorw %k0, %k0, %k2 + kmovw %k0, %edx + vpxord %zmm2, %zmm2, %zmm2 + vgatherdpd (%rax,%ymm3), %zmm2{%k3} + kxnorw %k0, %k0, %k3 + vpsrlq $32, %zmm2, %zmm5 + vpxord %zmm1, %zmm1, %zmm1 + vpxord %zmm8, %zmm8, %zmm8 + vgatherdpd 8(%rax,%ymm3), %zmm1{%k2} + vgatherdpd 16(%rax,%ymm3), %zmm8{%k3} + vpsrlq $32, %zmm1, %zmm0 + vpsrlq $32, %zmm8, %zmm13 + +/* + * Also get the significand as an integer + * NB: adding in the integer bit is wrong for denorms! + * To make this work for denorms we should do something slightly different + */ + vpandq .L_2il0floatpacket.20(%rip){1to8}, %zmm11, %zmm15 + vpaddq .L_2il0floatpacket.21(%rip){1to8}, %zmm15, %zmm14 + vpsrlq $32, %zmm14, %zmm7 + vpmullq %zmm0, %zmm7, %zmm3 + vpandq %zmm6, %zmm2, %zmm10 + vpandq %zmm6, %zmm1, %zmm12 + vpandq %zmm6, %zmm8, %zmm15 + vpandq %zmm6, %zmm14, %zmm14 + +/* Now do the big multiplication and carry propagation */ + vpmullq %zmm10, %zmm7, %zmm4 + vpmullq %zmm12, %zmm7, %zmm2 + vpmullq %zmm13, %zmm7, %zmm1 + vpmullq %zmm15, %zmm7, %zmm8 + vpmullq %zmm5, %zmm14, %zmm7 + vpmullq %zmm10, %zmm14, %zmm5 + vpmullq %zmm0, %zmm14, %zmm10 + vpmullq %zmm12, %zmm14, %zmm0 + vpmullq %zmm13, %zmm14, %zmm12 + vpsrlq $32, %zmm10, %zmm15 + vpsrlq $32, %zmm0, %zmm13 + vpsrlq $32, %zmm12, %zmm14 + vpsrlq $32, %zmm5, %zmm12 + vpsrlq $32, %zmm8, %zmm8 + vpaddq %zmm14, %zmm1, %zmm1 + vpaddq %zmm13, %zmm2, %zmm2 + vpaddq %zmm15, %zmm3, %zmm15 + vpaddq %zmm12, %zmm4, %zmm3 + vpandq %zmm6, %zmm0, %zmm13 + vpaddq %zmm1, %zmm13, %zmm4 + vpaddq %zmm4, %zmm8, %zmm14 + vpsrlq $32, %zmm14, %zmm0 + vpandq %zmm6, %zmm10, %zmm10 + vpaddq %zmm2, %zmm10, %zmm1 + vpaddq %zmm1, %zmm0, %zmm8 + +/* + * Now round at the 2^-9 bit position for reduction mod pi/2^8 + * instead of the original 2pi (but still with the same 2pi scaling). + * Use a shifter of 2^43 + 2^42. + * The N we get is our final version; it has an offset of + * 2^9 because of the implicit integer bit, and anyway for negative + * starting value it's a 2s complement thing. But we need to mask + * off the exponent part anyway so it's fine. + */ + vpbroadcastq .L_2il0floatpacket.25(%rip), %zmm1 + vpandq %zmm6, %zmm7, %zmm7 + vpaddq %zmm3, %zmm7, %zmm13 + vpsrlq $32, %zmm8, %zmm3 + vpandq %zmm6, %zmm5, %zmm5 + vpaddq %zmm15, %zmm5, %zmm2 + vpaddq %zmm2, %zmm3, %zmm15 + vpsrlq $32, %zmm15, %zmm12 + vpaddq %zmm13, %zmm12, %zmm5 + +/* Assemble reduced argument from the pieces */ + vpandq %zmm6, %zmm14, %zmm10 + vpandq %zmm6, %zmm15, %zmm7 + vpsllq $32, %zmm5, %zmm6 + vpsllq $32, %zmm8, %zmm5 + vpaddq %zmm7, %zmm6, %zmm4 + vpaddq %zmm10, %zmm5, %zmm10 + vpsrlq $12, %zmm4, %zmm6 + +/* + * We want to incorporate the original sign now too. + * Do it here for convenience in getting the right N value, + * though we could wait right to the end if we were prepared + * to modify the sign of N later too. + * So get the appropriate sign mask now (or sooner). + */ + vpandq .L_2il0floatpacket.23(%rip){1to8}, %zmm11, %zmm0 + vpandq .L_2il0floatpacket.28(%rip){1to8}, %zmm10, %zmm13 + vpsllq $28, %zmm13, %zmm14 + +/* + * Create floating-point high part, implicitly adding integer bit 1 + * Incorporate overall sign at this stage too. + */ + vpxorq .L_2il0floatpacket.24(%rip){1to8}, %zmm0, %zmm8 + vporq %zmm8, %zmm6, %zmm2 + vaddpd {rn-sae}, %zmm2, %zmm1, %zmm12 + vsubpd {rn-sae}, %zmm1, %zmm12, %zmm3 + vsubpd {rn-sae}, %zmm3, %zmm2, %zmm7 + +/* + * Create floating-point low and medium parts, respectively + * lo_23, ... lo_0, 0, ..., 0 + * hi_11, ... hi_0, lo_63, ..., lo_24 + * then subtract off the implicitly added integer bits, + * 2^-104 and 2^-52, respectively. + * Put the original sign into all of them at this stage. + */ + vpxorq .L_2il0floatpacket.27(%rip){1to8}, %zmm0, %zmm6 + vporq %zmm6, %zmm14, %zmm15 + vpandq .L_2il0floatpacket.30(%rip){1to8}, %zmm4, %zmm4 + vsubpd {rn-sae}, %zmm6, %zmm15, %zmm8 + +/* + * If the magnitude of the input is <= 2^-20, then + * just pass through the input, since no reduction will be needed and + * the main path will only work accurately if the reduced argument is + * about >= 2^-70 (which it is for all large pi multiples) + */ + vpbroadcastq .L_2il0floatpacket.34(%rip), %zmm14 + vandpd .L_2il0floatpacket.33(%rip){1to8}, %zmm11, %zmm15 + vpsrlq $24, %zmm10, %zmm6 + vcmppd $26, {sae}, %zmm14, %zmm15, %k2 + vcmppd $22, {sae}, %zmm14, %zmm15, %k3 + vpxorq .L_2il0floatpacket.29(%rip){1to8}, %zmm0, %zmm1 + vpsllq $40, %zmm4, %zmm0 + vporq %zmm6, %zmm0, %zmm0 + vporq %zmm1, %zmm0, %zmm4 + vsubpd {rn-sae}, %zmm1, %zmm4, %zmm2 + +/* Now add them up into 2 reasonably aligned pieces */ + vaddpd {rn-sae}, %zmm2, %zmm7, %zmm13 + vsubpd {rn-sae}, %zmm13, %zmm7, %zmm7 + vaddpd {rn-sae}, %zmm7, %zmm2, %zmm3 + vaddpd {rn-sae}, %zmm8, %zmm3, %zmm0 + vpbroadcastq .L_2il0floatpacket.32(%rip), %zmm8 + +/* Grab our final N value as an integer, appropriately masked mod 2^9 */ + vpandq .L_2il0floatpacket.26(%rip){1to8}, %zmm12, %zmm5 + +/* + * Now multiply those numbers all by 2 pi, reasonably accurately. + * (RHi + RLo) * (pi_lead + pi_trail) ~= + * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) + */ + vpbroadcastq .L_2il0floatpacket.31(%rip), %zmm12 + +/* The output is _VRES_Z (high) + _VRES_E (low), and the integer part is _VRES_IND */ + vpmovqd %zmm5, %ymm4 + vmulpd {rn-sae}, %zmm12, %zmm13, %zmm6 + vmovaps %zmm12, %zmm10 + vfmsub213pd {rn-sae}, %zmm6, %zmm13, %zmm10 + vfmadd213pd {rn-sae}, %zmm10, %zmm8, %zmm13 + vpbroadcastq .L_2il0floatpacket.37(%rip), %zmm10 + vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm0 + vpbroadcastq .L_2il0floatpacket.36(%rip), %zmm12 + vmovaps %zmm9, %zmm8 + vpandnq %zmm15, %zmm15, %zmm8{%k2} + vpandnq %zmm15, %zmm15, %zmm9{%k3} + vandpd %zmm11, %zmm9, %zmm9 + vandpd %zmm6, %zmm8, %zmm14 + vorpd %zmm14, %zmm9, %zmm6 + vandpd %zmm0, %zmm8, %zmm9 + vmovdqu .L_2il0floatpacket.35(%rip), %ymm0 + vpsrlq $32, %zmm6, %zmm5 + vpmovqd %zmm5, %ymm5 + vpsrld $31, %ymm5, %ymm1 + vpsubd %ymm1, %ymm0, %ymm2 + +/* + * ---------------------------------------------------------- + * End of large arguments path + * ---------------------------------------------------------- + * Merge results from main and large paths: + */ + vmovups (%rsp), %zmm1 + vpaddd %ymm2, %ymm4, %ymm3 + vpsrld $4, %ymm3, %ymm14 + vpslld $4, %ymm14, %ymm7 + vpmovzxdq %ymm14, %zmm1{%k1} + vpsubd %ymm7, %ymm4, %ymm8 + vcvtdq2pd %ymm8, %zmm15 + vmovups 64(%rsp), %zmm8 + vfmadd231pd {rn-sae}, %zmm15, %zmm10, %zmm9 + vaddpd {rn-sae}, %zmm6, %zmm9, %zmm13 + vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm15 + vblendmpd %zmm15, %zmm8, %zmm8{%k1} + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_tan8,@function + .size __svml_tan8,.-__svml_tan8 +..LN__svml_tan8.0: + +.L_2__routine_start___svml_dtan_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dtan_cout_rare_internal: + + + .cfi_startproc +..L65: + + xorl %eax, %eax + movzwl 6(%rdi), %ecx + movsd (%rdi), %xmm1 + andl $32752, %ecx + movb 7(%rdi), %dl + andb $127, %dl + movsd %xmm1, -8(%rsp) + movb %dl, -1(%rsp) + cmpl $32752, %ecx + je .LBL_2_3 + + + ret + +.LBL_2_3: + + cmpl $0, -8(%rsp) + jne .LBL_2_6 + + + cmpl $2146435072, -4(%rsp) + jne .LBL_2_6 + + + movsd __dtan_la_Tab(%rip), %xmm0 + movl $1, %eax + mulsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + ret + +.LBL_2_6: + + mulsd %xmm1, %xmm1 + movsd %xmm1, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_dtan_cout_rare_internal,@function + .size __svml_dtan_cout_rare_internal,.-__svml_dtan_cout_rare_internal +..LN__svml_dtan_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dtan_data_internal: + .long 1841940611 + .long 1075076912 + .long 1841940611 + .long 1075076912 + .long 1841940611 + .long 1075076912 + .long 1841940611 + .long 1075076912 + .long 1841940611 + .long 1075076912 + .long 1841940611 + .long 1075076912 + .long 1841940611 + .long 1075076912 + .long 1841940611 + .long 1075076912 + .long 1413754136 + .long 1070146043 + .long 1413754136 + .long 1070146043 + .long 1413754136 + .long 1070146043 + .long 1413754136 + .long 1070146043 + .long 1413754136 + .long 1070146043 + .long 1413754136 + .long 1070146043 + .long 1413754136 + .long 1070146043 + .long 1413754136 + .long 1070146043 + .long 856972294 + .long 1013032486 + .long 856972294 + .long 1013032486 + .long 856972294 + .long 1013032486 + .long 856972294 + .long 1013032486 + .long 856972294 + .long 1013032486 + .long 856972294 + .long 1013032486 + .long 856972294 + .long 1013032486 + .long 856972294 + .long 1013032486 + .long 688016905 + .long 958143697 + .long 688016905 + .long 958143697 + .long 688016905 + .long 958143697 + .long 688016905 + .long 958143697 + .long 688016905 + .long 958143697 + .long 688016905 + .long 958143697 + .long 688016905 + .long 958143697 + .long 688016905 + .long 958143697 + .long 855638016 + .long 1013032486 + .long 855638016 + .long 1013032486 + .long 855638016 + .long 1013032486 + .long 855638016 + .long 1013032486 + .long 855638016 + .long 1013032486 + .long 855638016 + .long 1013032486 + .long 855638016 + .long 1013032486 + .long 855638016 + .long 1013032486 + .long 3773204808 + .long 979655686 + .long 3773204808 + .long 979655686 + .long 3773204808 + .long 979655686 + .long 3773204808 + .long 979655686 + .long 3773204808 + .long 979655686 + .long 3773204808 + .long 979655686 + .long 3773204808 + .long 979655686 + .long 3773204808 + .long 979655686 + .long 0 + .long 2147483648 + .long 3763679576 + .long 1070167541 + .long 2583490354 + .long 1071284857 + .long 716700048 + .long 1071997368 + .long 0 + .long 1072693248 + .long 3797578849 + .long 1073213976 + .long 859807206 + .long 1073958991 + .long 3795994481 + .long 1075059710 + .long 4294967295 + .long 4293918719 + .long 3795994481 + .long 3222543358 + .long 859807206 + .long 3221442639 + .long 3797578849 + .long 3220697624 + .long 0 + .long 3220176896 + .long 716700048 + .long 3219481016 + .long 2583490354 + .long 3218768505 + .long 3763679576 + .long 3217651189 + .long 0 + .long 2147483648 + .long 1732516166 + .long 1009710547 + .long 2973134505 + .long 1014008623 + .long 561165941 + .long 1015523525 + .long 0 + .long 0 + .long 1767150223 + .long 1016338938 + .long 4129738197 + .long 1017254245 + .long 4275273486 + .long 1015088902 + .long 0 + .long 4238344192 + .long 4275273486 + .long 3162572550 + .long 4129738197 + .long 3164737893 + .long 1767150223 + .long 3163822586 + .long 0 + .long 0 + .long 561165941 + .long 3163007173 + .long 2973134505 + .long 3161492271 + .long 1732516166 + .long 3157194195 + .long 1431655900 + .long 1070945621 + .long 1431655900 + .long 1070945621 + .long 1431655900 + .long 1070945621 + .long 1431655900 + .long 1070945621 + .long 1431655900 + .long 1070945621 + .long 1431655900 + .long 1070945621 + .long 1431655900 + .long 1070945621 + .long 1431655900 + .long 1070945621 + .long 285935618 + .long 1069617425 + .long 285935618 + .long 1069617425 + .long 285935618 + .long 1069617425 + .long 285935618 + .long 1069617425 + .long 285935618 + .long 1069617425 + .long 285935618 + .long 1069617425 + .long 285935618 + .long 1069617425 + .long 285935618 + .long 1069617425 + .long 1218258378 + .long 1068212666 + .long 1218258378 + .long 1068212666 + .long 1218258378 + .long 1068212666 + .long 1218258378 + .long 1068212666 + .long 1218258378 + .long 1068212666 + .long 1218258378 + .long 1068212666 + .long 1218258378 + .long 1068212666 + .long 1218258378 + .long 1068212666 + .long 1716452265 + .long 1066820779 + .long 1716452265 + .long 1066820779 + .long 1716452265 + .long 1066820779 + .long 1716452265 + .long 1066820779 + .long 1716452265 + .long 1066820779 + .long 1716452265 + .long 1066820779 + .long 1716452265 + .long 1066820779 + .long 1716452265 + .long 1066820779 + .long 3351902813 + .long 1065508044 + .long 3351902813 + .long 1065508044 + .long 3351902813 + .long 1065508044 + .long 3351902813 + .long 1065508044 + .long 3351902813 + .long 1065508044 + .long 3351902813 + .long 1065508044 + .long 3351902813 + .long 1065508044 + .long 3351902813 + .long 1065508044 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 1413480448 + .long 1065951739 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 442499072 + .long 1029747809 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 771977331 + .long 993204618 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 511 + .long 0 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1841940611 + .long 1079271216 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1431655769 + .long 1070945621 + .long 0 + .long 0 + .long 285114973 + .long 1069617425 + .long 0 + .long 0 + .long 3223786787 + .long 1068212718 + .long 1570481342 + .long 1073278903 + .long 2595802427 + .long 1014369127 + .long 0 + .long 0 + .long 75380366 + .long 1065951822 + .long 2999349512 + .long 3155830414 + .long 0 + .long 1072693248 + .long 2911696896 + .long 1059306942 + .long 451505506 + .long 1065952070 + .long 3089290734 + .long 1070946463 + .long 3705470160 + .long 1065403174 + .long 2568117119 + .long 1069618857 + .long 643394266 + .long 1064501452 + .long 501385640 + .long 1068202863 + .long 1727208548 + .long 1073266035 + .long 2531251621 + .long 3162145225 + .long 0 + .long 0 + .long 612012528 + .long 1067000646 + .long 549540416 + .long 3153143513 + .long 0 + .long 1072693248 + .long 2064191488 + .long 1061404484 + .long 4042886527 + .long 1067001638 + .long 149923164 + .long 1070948993 + .long 104448276 + .long 1066453158 + .long 2663431480 + .long 1069623160 + .long 4100741303 + .long 1065552806 + .long 3253087105 + .long 1068220130 + .long 1883935754 + .long 1073253167 + .long 2988318241 + .long 3163734974 + .long 0 + .long 0 + .long 3919601072 + .long 1067637674 + .long 2391050108 + .long 3158536696 + .long 0 + .long 1072693248 + .long 1803946752 + .long 1062615560 + .long 2247013512 + .long 1067639351 + .long 3277043521 + .long 1070953215 + .long 578207594 + .long 1067006653 + .long 1619551617 + .long 1069630354 + .long 2647612950 + .long 1066183733 + .long 2691224773 + .long 1068193529 + .long 2040662960 + .long 1073240299 + .long 4270081753 + .long 3164530442 + .long 0 + .long 0 + .long 2319126882 + .long 1068050215 + .long 2052183488 + .long 1006305725 + .long 0 + .long 1072693248 + .long 2962101888 + .long 1063503197 + .long 3966050657 + .long 1068054193 + .long 3178024141 + .long 1070959142 + .long 1146831000 + .long 1067507381 + .long 1630003540 + .long 1069640468 + .long 2204487828 + .long 1066612393 + .long 783402153 + .long 1068243248 + .long 2197390165 + .long 1073227431 + .long 3038089327 + .long 1016395176 + .long 0 + .long 0 + .long 3930011523 + .long 1068463253 + .long 3574549514 + .long 3158343440 + .long 0 + .long 1072693248 + .long 930814464 + .long 1064233867 + .long 3218126771 + .long 1068471034 + .long 873740287 + .long 1070966789 + .long 1580060562 + .long 1067789097 + .long 1505280051 + .long 1069653548 + .long 2221338604 + .long 1066937592 + .long 2641117162 + .long 1068312400 + .long 2354117371 + .long 1073214563 + .long 3512651629 + .long 1015129272 + .long 0 + .long 0 + .long 3439278129 + .long 1068687929 + .long 1073016494 + .long 1012431341 + .long 0 + .long 1072693248 + .long 2934847296 + .long 1064716672 + .long 2625704508 + .long 1068694663 + .long 3692939630 + .long 1070976174 + .long 3072165553 + .long 1068074393 + .long 223733198 + .long 1069669653 + .long 1158528257 + .long 1067269817 + .long 3197805108 + .long 1068357327 + .long 2510844577 + .long 1073201695 + .long 498468876 + .long 3161098111 + .long 0 + .long 0 + .long 1972895212 + .long 1068895135 + .long 3208334872 + .long 1010638399 + .long 0 + .long 1072693248 + .long 4107853760 + .long 1065246718 + .long 2229347510 + .long 1068905849 + .long 4172638464 + .long 1070987323 + .long 212469442 + .long 1068364021 + .long 1989165656 + .long 1069688852 + .long 4131454312 + .long 1067530480 + .long 3453538591 + .long 1068469531 + .long 2667571783 + .long 1073188827 + .long 1614402419 + .long 3163482232 + .long 0 + .long 0 + .long 2354785698 + .long 1069102779 + .long 959196066 + .long 1012432163 + .long 0 + .long 1072693248 + .long 2828230112 + .long 1065606626 + .long 3693284264 + .long 1069118808 + .long 1996210616 + .long 1071000265 + .long 3053541878 + .long 1068578846 + .long 1133334569 + .long 1069711236 + .long 977677893 + .long 1067705915 + .long 347264115 + .long 1068436198 + .long 2824298989 + .long 1073175959 + .long 2088964722 + .long 3164313480 + .long 0 + .long 0 + .long 931121154 + .long 1069310926 + .long 1121692745 + .long 3159637885 + .long 0 + .long 1072693248 + .long 709357472 + .long 1065955296 + .long 29972165 + .long 1069333808 + .long 254360647 + .long 1071015033 + .long 3732687627 + .long 1068729157 + .long 3224370683 + .long 1069736900 + .long 202592779 + .long 1067887231 + .long 1420423314 + .long 1068491719 + .long 2981026194 + .long 1073163091 + .long 924239062 + .long 1016612139 + .long 0 + .long 0 + .long 982366697 + .long 1069519640 + .long 1160213218 + .long 3158385836 + .long 0 + .long 1072693248 + .long 404678272 + .long 1066346403 + .long 1419607756 + .long 1069549319 + .long 1800406832 + .long 1071031665 + .long 3144361055 + .long 1068882825 + .long 1744148040 + .long 1069765960 + .long 3211597674 + .long 1068075289 + .long 404952187 + .long 1068609434 + .long 3137753400 + .long 1073150223 + .long 3579918397 + .long 1015563197 + .long 0 + .long 0 + .long 2242453104 + .long 1069638253 + .long 1143545012 + .long 3159361608 + .long 0 + .long 1072693248 + .long 1016752608 + .long 1066591110 + .long 1270001991 + .long 1069659269 + .long 1410785275 + .long 1071050206 + .long 1103929722 + .long 1069040275 + .long 3268015215 + .long 1069798554 + .long 957665168 + .long 1068270980 + .long 1067662813 + .long 1068610012 + .long 3294480606 + .long 1073137355 + .long 1489607747 + .long 3151418907 + .long 0 + .long 0 + .long 1940260416 + .long 1069743276 + .long 4144715194 + .long 1012060053 + .long 0 + .long 1072693248 + .long 1135818128 + .long 1066829850 + .long 867512158 + .long 1069770656 + .long 3821819258 + .long 1071070704 + .long 2890864845 + .long 1069201948 + .long 918459419 + .long 1069834828 + .long 797472495 + .long 1068475275 + .long 4093958433 + .long 1068635569 + .long 3451207812 + .long 1073124487 + .long 1547135652 + .long 3163048307 + .long 0 + .long 0 + .long 1959743063 + .long 1069848682 + .long 607727474 + .long 1013558026 + .long 0 + .long 1072693248 + .long 225834432 + .long 1067090614 + .long 732340398 + .long 1069883626 + .long 3221152670 + .long 1071093215 + .long 2810588359 + .long 1069368307 + .long 612200458 + .long 1069874948 + .long 645427023 + .long 1068594071 + .long 1966294363 + .long 1068694214 + .long 3607935018 + .long 1073111619 + .long 4202814986 + .long 3164096517 + .long 0 + .long 0 + .long 2429422902 + .long 1069954505 + .long 3297515896 + .long 3160006592 + .long 0 + .long 1072693248 + .long 528565440 + .long 1067373727 + .long 2395999282 + .long 1069998329 + .long 1512953454 + .long 1071117799 + .long 2702142222 + .long 1069539835 + .long 3515899576 + .long 1069919100 + .long 2767905785 + .long 1068706391 + .long 3127207959 + .long 1068808800 + .long 3764662223 + .long 1073098751 + .long 3105356094 + .long 1016829101 + .long 0 + .long 0 + .long 1425758568 + .long 1070060780 + .long 1224256500 + .long 1011856982 + .long 0 + .long 1072693248 + .long 2086713664 + .long 1067564956 + .long 1688303979 + .long 1070114921 + .long 938619730 + .long 1071144522 + .long 526120622 + .long 1069632280 + .long 3819295667 + .long 1069967496 + .long 2059466202 + .long 1068824653 + .long 4035080204 + .long 1068903334 + .long 3921389429 + .long 1073085883 + .long 3647185164 + .long 1015997122 + .long 0 + .long 0 + .long 3763679576 + .long 1070167541 + .long 448465424 + .long 1009708707 + .long 0 + .long 1072693248 + .long 64931152 + .long 1067729411 + .long 3593250320 + .long 1070233561 + .long 1127364104 + .long 1071173457 + .long 21320967 + .long 1069723988 + .long 4036384112 + .long 1070020367 + .long 3394693835 + .long 1068949482 + .long 4171096556 + .long 1068939101 + .long 4078116635 + .long 1073073015 + .long 39665264 + .long 1013608617 + .long 0 + .long 0 + .long 4023957346 + .long 1070274825 + .long 2652053984 + .long 1012417284 + .long 0 + .long 1072693248 + .long 1548193280 + .long 1067905620 + .long 2849460080 + .long 1070354416 + .long 586099284 + .long 1071204684 + .long 2426038050 + .long 1069819083 + .long 1209882932 + .long 1070077962 + .long 204929667 + .long 1069081561 + .long 2951798640 + .long 1069077118 + .long 4234843841 + .long 1073060147 + .long 1479868884 + .long 3162614382 + .long 0 + .long 0 + .long 3947580658 + .long 1070382668 + .long 4153467944 + .long 1013228820 + .long 0 + .long 1072693248 + .long 1306970432 + .long 1068093810 + .long 3320658510 + .long 1070477657 + .long 2638377394 + .long 1071238289 + .long 1218095092 + .long 1069917865 + .long 506153462 + .long 1070140566 + .long 2096772755 + .long 1069221614 + .long 2058474785 + .long 1069148484 + .long 96603751 + .long 1073047280 + .long 2021697954 + .long 3163879555 + .long 0 + .long 0 + .long 4068253482 + .long 1070491107 + .long 3098804354 + .long 1013932712 + .long 0 + .long 1072693248 + .long 3555466384 + .long 1068294223 + .long 3714292293 + .long 1070599779 + .long 58004546 + .long 1071274368 + .long 2889916307 + .long 1070020649 + .long 2725223781 + .long 1070208483 + .long 1960889140 + .long 1069370437 + .long 2173066945 + .long 1069259864 + .long 253330956 + .long 1073034412 + .long 991505830 + .long 1017046064 + .long 0 + .long 0 + .long 1971725998 + .long 1070598138 + .long 2628060598 + .long 1013294571 + .long 0 + .long 1072693248 + .long 3850616508 + .long 1068503032 + .long 715485429 + .long 1070664058 + .long 2831870887 + .long 1071313021 + .long 276112813 + .long 1070127773 + .long 4071473622 + .long 1070282053 + .long 3678820497 + .long 1069528889 + .long 928174949 + .long 1069392578 + .long 410058162 + .long 1073021544 + .long 4004709614 + .long 1016250595 + .long 0 + .long 0 + .long 1197423420 + .long 1070653011 + .long 176404688 + .long 1013428940 + .long 0 + .long 1072693248 + .long 3614211808 + .long 1068615863 + .long 2638984897 + .long 1070729808 + .long 1695604536 + .long 1071354361 + .long 2372043566 + .long 1070239593 + .long 136909610 + .long 1070361652 + .long 3640039434 + .long 1069622710 + .long 4088329288 + .long 1069449448 + .long 566785368 + .long 1073008676 + .long 2301849815 + .long 1014658654 + .long 0 + .long 0 + .long 1026922473 + .long 1070708240 + .long 4275552176 + .long 1013759157 + .long 0 + .long 1072693248 + .long 865263972 + .long 1068735226 + .long 1189261043 + .long 1070797132 + .long 602895285 + .long 1071398507 + .long 457371263 + .long 1070356493 + .long 1846858239 + .long 1070447677 + .long 3060498109 + .long 1069713009 + .long 4267979072 + .long 1069596604 + .long 723512574 + .long 1072995808 + .long 2825204233 + .long 3161855698 + .long 0 + .long 0 + .long 2664093517 + .long 1070763845 + .long 3574550848 + .long 1009790086 + .long 0 + .long 1072693248 + .long 2465054196 + .long 1068861279 + .long 3495559184 + .long 1070866134 + .long 2180799467 + .long 1071445588 + .long 3760731789 + .long 1070478879 + .long 3108073741 + .long 1070540584 + .long 1955989611 + .long 1069809654 + .long 166740423 + .long 1069654305 + .long 880239780 + .long 1072982940 + .long 4135548218 + .long 3163662592 + .long 0 + .long 0 + .long 895247324 + .long 1070819848 + .long 3063999364 + .long 3161289029 + .long 0 + .long 1072693248 + .long 729983844 + .long 1068994194 + .long 3631919317 + .long 1070936926 + .long 2031343772 + .long 1071495745 + .long 1505593195 + .long 1070601643 + .long 519428998 + .long 1070618477 + .long 3710689648 + .long 1069913254 + .long 3156018952 + .long 1069741343 + .long 1036966986 + .long 1072970072 + .long 1122344434 + .long 3164458061 + .long 0 + .long 0 + .long 1412148370 + .long 1070876269 + .long 2689479793 + .long 3161477235 + .long 0 + .long 1072693248 + .long 1375255072 + .long 1069134151 + .long 1493266594 + .long 1071009624 + .long 487968719 + .long 1071549129 + .long 4010395236 + .long 1070668994 + .long 2875570533 + .long 1070672565 + .long 2596803931 + .long 1070024476 + .long 2843491938 + .long 1069843051 + .long 1193694191 + .long 1072957204 + .long 1890859349 + .long 1016467558 + .long 0 + .long 0 + .long 3782220567 + .long 1070933130 + .long 2488122455 + .long 1014753484 + .long 0 + .long 1072693248 + .long 91372748 + .long 1069281344 + .long 318776714 + .long 1071084349 + .long 1791786485 + .long 1071605902 + .long 245863368 + .long 1070739794 + .long 3306699314 + .long 1070730899 + .long 492155886 + .long 1070144051 + .long 504705110 + .long 1069961586 + .long 1350421397 + .long 1072944336 + .long 1218191675 + .long 1015274036 + .long 0 + .long 0 + .long 1606100959 + .long 1070990455 + .long 3385800912 + .long 1013630535 + .long 0 + .long 1072693248 + .long 2255302008 + .long 1069435977 + .long 54085333 + .long 1071161229 + .long 2504974906 + .long 1071655456 + .long 4169947836 + .long 1070814310 + .long 2891827400 + .long 1070793803 + .long 1030744926 + .long 1070272780 + .long 2378131433 + .long 1070036506 + .long 1507148603 + .long 1072931468 + .long 1086374101 + .long 3160519057 + .long 0 + .long 0 + .long 4158096969 + .long 1071048265 + .long 3224523546 + .long 1013419306 + .long 0 + .long 1072693248 + .long 4240313622 + .long 1069572894 + .long 3745046477 + .long 1071240398 + .long 1955120038 + .long 1071687503 + .long 2661530988 + .long 1070892836 + .long 2615081511 + .long 1070861626 + .long 3172686013 + .long 1070411548 + .long 3468537064 + .long 1070173373 + .long 1663875809 + .long 1072918600 + .long 3908862373 + .long 3163337468 + .long 0 + .long 0 + .long 2200768388 + .long 1071106586 + .long 302579070 + .long 3162432935 + .long 0 + .long 1072693248 + .long 2338248308 + .long 1069657986 + .long 2617403810 + .long 1071322000 + .long 60078074 + .long 1071721530 + .long 2753634668 + .long 1070975684 + .long 626020947 + .long 1070934758 + .long 25846105 + .long 1070561329 + .long 1123371528 + .long 1070307499 + .long 1820603015 + .long 1072905732 + .long 3236194699 + .long 3164241098 + .long 0 + .long 0 + .long 2528366626 + .long 1071165441 + .long 3808697588 + .long 3160880158 + .long 0 + .long 1072693248 + .long 1938261590 + .long 1069747146 + .long 4282399603 + .long 1071406183 + .long 1922568281 + .long 1071757646 + .long 2428166646 + .long 1071063193 + .long 717464826 + .long 1071013623 + .long 2205664064 + .long 1070659645 + .long 1525962144 + .long 1070438229 + .long 1977330220 + .long 1072892864 + .long 4071976381 + .long 1016684520 + .long 0 + .long 0 + .long 2390846448 + .long 1071224856 + .long 3510510824 + .long 1014225707 + .long 0 + .long 1072693248 + .long 1208409702 + .long 1069840505 + .long 1006199412 + .long 1071493107 + .long 2504246873 + .long 1071795971 + .long 1040653613 + .long 1071155729 + .long 1713268218 + .long 1071098686 + .long 462276291 + .long 1070747214 + .long 4239134769 + .long 1070603989 + .long 2134057426 + .long 1072879996 + .long 1285458442 + .long 1015707961 + .long 0 + .long 0 + .long 2583490354 + .long 1071284857 + .long 27154665 + .long 1014008337 + .long 0 + .long 1072693248 + .long 2550940470 + .long 1069938201 + .long 2616040293 + .long 1071582937 + .long 2529278955 + .long 1071836633 + .long 2244405849 + .long 1071253687 + .long 2064814125 + .long 1071190460 + .long 1527853242 + .long 1070842074 + .long 354304617 + .long 1070708112 + .long 2290784632 + .long 1072867128 + .long 2660353234 + .long 1011979525 + .long 0 + .long 0 + .long 3368427099 + .long 1071345471 + .long 2187847358 + .long 3161070788 + .long 0 + .long 1072693248 + .long 1708021028 + .long 1070040382 + .long 459972195 + .long 1071660262 + .long 3210514347 + .long 1071879770 + .long 955408873 + .long 1071357497 + .long 1911386086 + .long 1071289511 + .long 3563284025 + .long 1070944951 + .long 547392146 + .long 1070790031 + .long 2447511838 + .long 1072854260 + .long 3841595606 + .long 3162903543 + .long 0 + .long 0 + .long 408840118 + .long 1071406727 + .long 4048150272 + .long 1011870625 + .long 0 + .long 1072693248 + .long 2794370512 + .long 1070147203 + .long 1550993351 + .long 1071708355 + .long 1305093678 + .long 1071925532 + .long 1748211158 + .long 1071467623 + .long 3244212116 + .long 1071396455 + .long 2145665988 + .long 1071056651 + .long 1098394636 + .long 1070891096 + .long 2604239044 + .long 1072841392 + .long 1055077667 + .long 3164024136 + .long 0 + .long 0 + .long 2191706112 + .long 1071468652 + .long 333457838 + .long 1013847700 + .long 0 + .long 1072693248 + .long 3435408456 + .long 1070258830 + .long 487319719 + .long 1071758184 + .long 1713711059 + .long 1071974079 + .long 130753286 + .long 1071584571 + .long 909725129 + .long 1071511974 + .long 2762442355 + .long 1071178067 + .long 932699057 + .long 1071027067 + .long 2760966249 + .long 1072828524 + .long 1958126117 + .long 1016901483 + .long 0 + .long 0 + .long 220675706 + .long 1071531278 + .long 3158460941 + .long 1014240139 + .long 0 + .long 1072693248 + .long 1565030890 + .long 1070375439 + .long 335263687 + .long 1071809854 + .long 419816567 + .long 1072025586 + .long 2098048102 + .long 1071676780 + .long 257229334 + .long 1071636821 + .long 3464457175 + .long 1071310192 + .long 2745951745 + .long 1071158056 + .long 2917693455 + .long 1072815656 + .long 676362605 + .long 1016106015 + .long 0 + .long 0 + .long 3649427950 + .long 1071594634 + .long 4113913432 + .long 1011178545 + .long 0 + .long 1072693248 + .long 2424145432 + .long 1070497215 + .long 2715404890 + .long 1071863477 + .long 2238283673 + .long 1072080240 + .long 1186867211 + .long 1071742923 + .long 660318792 + .long 1071708248 + .long 2091427899 + .long 1071454132 + .long 2591062578 + .long 1071291190 + .long 3074420661 + .long 1072802788 + .long 1873363667 + .long 1014080331 + .long 0 + .long 0 + .long 2606398711 + .long 1071651713 + .long 2533078623 + .long 1015070425 + .long 0 + .long 1072693248 + .long 2151361100 + .long 1070610226 + .long 1532348096 + .long 1071919174 + .long 408604530 + .long 1072138246 + .long 1039538740 + .long 1071813375 + .long 1234598850 + .long 1071781284 + .long 692507560 + .long 1071611119 + .long 4090315823 + .long 1071451983 + .long 3231147867 + .long 1072789920 + .long 3253690381 + .long 3162434021 + .long 0 + .long 0 + .long 1505561933 + .long 1071684172 + .long 2813788960 + .long 3158646164 + .long 0 + .long 1072693248 + .long 2997217365 + .long 1070676584 + .long 2681788575 + .long 1071977071 + .long 3989126937 + .long 1072199822 + .long 1049115510 + .long 1071888491 + .long 511642057 + .long 1071860360 + .long 4034728042 + .long 1071713598 + .long 1788921063 + .long 1071639550 + .long 3387875073 + .long 1072777052 + .long 3168927931 + .long 3163807173 + .long 0 + .long 0 + .long 419968236 + .long 1071717047 + .long 131821922 + .long 3163445114 + .long 0 + .long 1072693248 + .long 2960267235 + .long 1070745841 + .long 1037049094 + .long 1072037305 + .long 1447436626 + .long 1072265209 + .long 3197232138 + .long 1071968658 + .long 4004685083 + .long 1071946034 + .long 1412816411 + .long 1071807280 + .long 3184767140 + .long 1071740610 + .long 3544602278 + .long 1072764184 + .long 4139243149 + .long 1017118445 + .long 0 + .long 0 + .long 4270735453 + .long 1071750355 + .long 3565353881 + .long 3162826177 + .long 0 + .long 1072693248 + .long 2915760230 + .long 1070818115 + .long 638580392 + .long 1072100020 + .long 2252948193 + .long 1072334663 + .long 1194731830 + .long 1072054301 + .long 1353002943 + .long 1072038927 + .long 422364777 + .long 1071909798 + .long 3669605864 + .long 1071842023 + .long 3701329484 + .long 1072751316 + .long 2857479637 + .long 1016322977 + .long 0 + .long 0 + .long 4010047525 + .long 1071784117 + .long 3339961616 + .long 1012589046 + .long 0 + .long 1072693248 + .long 966450668 + .long 1070893532 + .long 803989702 + .long 1072165371 + .long 1934453966 + .long 1072408465 + .long 1455077850 + .long 1072145882 + .long 2709264343 + .long 1072139721 + .long 1918064545 + .long 1072022114 + .long 1476733491 + .long 1071960574 + .long 3858056690 + .long 1072738448 + .long 2007897202 + .long 1014948181 + .long 0 + .long 0 + .long 2591355529 + .long 1071818352 + .long 2351346752 + .long 1014424505 + .long 0 + .long 1072693248 + .long 3206845590 + .long 1070972224 + .long 4023349050 + .long 1072233523 + .long 3838822434 + .long 1072486918 + .long 3122427157 + .long 1072243909 + .long 2261703628 + .long 1072249178 + .long 1764870085 + .long 1072145307 + .long 3201774398 + .long 1072093301 + .long 4014783896 + .long 1072725580 + .long 3119156846 + .long 3161566171 + .long 0 + .long 0 + .long 2298773501 + .long 1071853080 + .long 4027796943 + .long 3162574088 + .long 0 + .long 1072693248 + .long 312748411 + .long 1071054335 + .long 2723913091 + .long 1072304655 + .long 3207063211 + .long 1072570353 + .long 1845780128 + .long 1072348940 + .long 752659336 + .long 1072368142 + .long 1097207438 + .long 1072280589 + .long 407427378 + .long 1072246732 + .long 4171511102 + .long 1072712712 + .long 987810900 + .long 3163590211 + .long 0 + .long 0 + .long 681498355 + .long 1071888323 + .long 3542613740 + .long 3163311347 + .long 0 + .long 1072693248 + .long 168222332 + .long 1071140014 + .long 776736583 + .long 1072378956 + .long 2405401100 + .long 1072659128 + .long 430546584 + .long 1072461586 + .long 2974083787 + .long 1072497552 + .long 849442051 + .long 1072429322 + .long 2727422945 + .long 1072409680 + .long 33271012 + .long 1072699845 + .long 2269574412 + .long 3164385679 + .long 0 + .long 0 + .long 3684492763 + .long 1071924102 + .long 2905877726 + .long 3163193209 + .long 0 + .long 1072693248 + .long 585640690 + .long 1071229422 + .long 1068301595 + .long 1072456629 + .long 2953900489 + .long 1072723440 + .long 950237889 + .long 1072582519 + .long 109735426 + .long 1072638455 + .long 792610960 + .long 1072593041 + .long 2904161704 + .long 1072594405 + .long 379996435 + .long 1072680706 + .long 2807708551 + .long 3162614199 + .long 0 + .long 0 + .long 142288477 + .long 1071960443 + .long 1256321232 + .long 3162016428 + .long 0 + .long 1072693248 + .long 925074332 + .long 1071322730 + .long 2134728327 + .long 1072537893 + .long 1886408555 + .long 1072773770 + .long 101893267 + .long 1072702864 + .long 2020085224 + .long 1072742631 + .long 2955803851 + .long 1072733362 + .long 343310803 + .long 1072748161 + .long 693450846 + .long 1072654970 + .long 3218699017 + .long 1015418799 + .long 0 + .long 0 + .long 716700048 + .long 1071997368 + .long 1043856658 + .long 1015522810 + .long 0 + .long 1072693248 + .long 1097907398 + .long 1071420120 + .long 3912524876 + .long 1072622983 + .long 4107784306 + .long 1072827408 + .long 937056065 + .long 1072772766 + .long 4128945134 + .long 1072826390 + .long 1032262383 + .long 1072832917 + .long 1825923576 + .long 1072864423 + .long 1006905258 + .long 1072629234 + .long 3348558652 + .long 3159471942 + .long 0 + .long 0 + .long 3841229102 + .long 1072034903 + .long 1782837269 + .long 1016032992 + .long 0 + .long 1072693248 + .long 866896685 + .long 1071521786 + .long 2743435231 + .long 1072702700 + .long 3017984361 + .long 1072884608 + .long 1491919678 + .long 1072848040 + .long 1507535811 + .long 1072917857 + .long 1966124961 + .long 1072942914 + .long 381628626 + .long 1072992589 + .long 1320359670 + .long 1072603498 + .long 1908355032 + .long 3163192705 + .long 0 + .long 0 + .long 343219638 + .long 1072073077 + .long 2238302242 + .long 1014248160 + .long 0 + .long 1072693248 + .long 3768132253 + .long 1071627934 + .long 3895546569 + .long 1072749460 + .long 1613056473 + .long 1072945645 + .long 3409294908 + .long 1072929183 + .long 3138966349 + .long 1073017844 + .long 3799067273 + .long 1073064607 + .long 359470462 + .long 1073133087 + .long 1633814081 + .long 1072577762 + .long 3941137777 + .long 1014659019 + .long 0 + .long 0 + .long 3860971117 + .long 1072111915 + .long 2891637204 + .long 1015730508 + .long 0 + .long 1073741824 + .long 80822128 + .long 3219034205 + .long 2077635078 + .long 1072798543 + .long 1552870456 + .long 1073010820 + .long 3607700650 + .long 1073016746 + .long 249538440 + .long 1073127265 + .long 2233833066 + .long 1073199420 + .long 2436428201 + .long 1073293556 + .long 1947268493 + .long 1072552026 + .long 1185916272 + .long 3161855333 + .long 0 + .long 0 + .long 3978924239 + .long 1072151449 + .long 680748782 + .long 3163204529 + .long 0 + .long 1073741824 + .long 3528982175 + .long 3218918413 + .long 3018376188 + .long 1072850106 + .long 2093086652 + .long 1073080463 + .long 451029217 + .long 1073111339 + .long 1097121536 + .long 1073247142 + .long 2277789226 + .long 1073348969 + .long 149166906 + .long 1073478822 + .long 2260722904 + .long 1072526290 + .long 3285965784 + .long 1015852724 + .long 0 + .long 0 + .long 997287281 + .long 1072191710 + .long 3612277486 + .long 1015833408 + .long 0 + .long 1073741824 + .long 3037674984 + .long 3218797431 + .long 2624215131 + .long 1072904321 + .long 464779768 + .long 1073154936 + .long 3700763630 + .long 1073213636 + .long 1200926910 + .long 1073378628 + .long 2934576429 + .long 1073515096 + .long 3287041855 + .long 1073681673 + .long 2574177316 + .long 1072500554 + .long 2889755040 + .long 1013031024 + .long 0 + .long 0 + .long 2079874795 + .long 1072232729 + .long 1885505696 + .long 3161954077 + .long 0 + .long 1073741824 + .long 1656469901 + .long 3218670989 + .long 823761676 + .long 1072961373 + .long 2491445454 + .long 1073234634 + .long 1584341555 + .long 1073324391 + .long 1976688438 + .long 1073523018 + .long 3918313340 + .long 1073699902 + .long 3178717687 + .long 1073829019 + .long 2887631728 + .long 1072474818 + .long 1841088264 + .long 3162758780 + .long 0 + .long 0 + .long 258163604 + .long 1072274542 + .long 3299923807 + .long 1015128357 + .long 0 + .long 1073741824 + .long 2865277319 + .long 3218538798 + .long 3110066496 + .long 1073021461 + .long 723074889 + .long 1073319994 + .long 1618819009 + .long 1073444438 + .long 1176243936 + .long 1073681775 + .long 1223848987 + .long 1073823806 + .long 2369274010 + .long 1073957581 + .long 3201086139 + .long 1072449082 + .long 4185319304 + .long 1015274218 + .long 0 + .long 0 + .long 719595600 + .long 1072317184 + .long 114895218 + .long 3162143748 + .long 0 + .long 1073741824 + .long 3811788216 + .long 3218400550 + .long 1264738948 + .long 1073084804 + .long 1958933439 + .long 1073411493 + .long 4246310163 + .long 1073574708 + .long 1367842247 + .long 1073799186 + .long 4112596162 + .long 1073938662 + .long 2100954442 + .long 1074105254 + .long 3514540551 + .long 1072423346 + .long 2102765473 + .long 3160518326 + .long 0 + .long 0 + .long 4189730214 + .long 1072360693 + .long 873070368 + .long 1011168520 + .long 0 + .long 1073741824 + .long 760634709 + .long 3218255915 + .long 2067827628 + .long 1073151636 + .long 1386756408 + .long 1073509659 + .long 404552634 + .long 1073716242 + .long 1143062645 + .long 1073895515 + .long 555342321 + .long 1074067009 + .long 3470170865 + .long 1074271418 + .long 3827994963 + .long 1072397610 + .long 941734744 + .long 3163337286 + .long 0 + .long 0 + .long 3247184626 + .long 1072405111 + .long 1245412628 + .long 1014426137 + .long 0 + .long 1073741824 + .long 2381906911 + .long 3218104536 + .long 1010924947 + .long 1073222214 + .long 2481381005 + .long 1073615072 + .long 1356661294 + .long 1073806011 + .long 1527070582 + .long 1074001844 + .long 3061693388 + .long 1074210655 + .long 1993183195 + .long 1074463435 + .long 4141449374 + .long 1072371874 + .long 1579411055 + .long 1014369858 + .long 0 + .long 0 + .long 166164867 + .long 1072450480 + .long 2304058808 + .long 3159574198 + .long 0 + .long 1073741824 + .long 2798667120 + .long 3217812323 + .long 4203596829 + .long 1073296815 + .long 1473339147 + .long 1073728374 + .long 4243021652 + .long 1073889850 + .long 1638747017 + .long 1074119375 + .long 1512673096 + .long 1074371687 + .long 2338684787 + .long 1074678259 + .long 159936490 + .long 1072346139 + .long 3547642993 + .long 3162144494 + .long 0 + .long 0 + .long 3342355758 + .long 1072496843 + .long 1667048854 + .long 1014547708 + .long 0 + .long 1073741824 + .long 2271288998 + .long 3217480250 + .long 4111284847 + .long 1073375744 + .long 2796272966 + .long 1073796048 + .long 1730314448 + .long 1073981280 + .long 1813001552 + .long 1074249474 + .long 603251414 + .long 1074552509 + .long 3079042420 + .long 1074856525 + .long 473390901 + .long 1072320403 + .long 4252586071 + .long 1015708143 + .long 0 + .long 0 + .long 2308259791 + .long 1072544250 + .long 4116261952 + .long 1009282152 + .long 0 + .long 1073741824 + .long 411343470 + .long 3217132228 + .long 3760686807 + .long 1073459331 + .long 4171367426 + .long 1073861688 + .long 1878500541 + .long 1074081117 + .long 108767834 + .long 1074393698 + .long 2824899539 + .long 1074755901 + .long 3321235986 + .long 1074997439 + .long 786845313 + .long 1072294667 + .long 627570489 + .long 1011980987 + .long 0 + .long 0 + .long 2949191430 + .long 1072592750 + .long 3989207545 + .long 1015613028 + .long 0 + .long 1073741824 + .long 2909112164 + .long 3216503445 + .long 3682557528 + .long 1073547937 + .long 4184421718 + .long 1073932454 + .long 380803270 + .long 1074190282 + .long 3399744364 + .long 1074553823 + .long 3842864947 + .long 1074887742 + .long 748075417 + .long 1075157395 + .long 1100299725 + .long 1072268931 + .long 874467977 + .long 3162903361 + .long 0 + .long 0 + .long 2668510354 + .long 1072642397 + .long 1701265160 + .long 3159690220 + .long 0 + .long 1073741824 + .long 1404962112 + .long 3215492924 + .long 3327263454 + .long 1073641957 + .long 1987673213 + .long 1074008829 + .long 231222583 + .long 1074309811 + .long 1756671652 + .long 1074731884 + .long 3921518313 + .long 1075017100 + .long 2691193077 + .long 1075341426 + .long 1413754136 + .long 1072243195 + .long 856972295 + .long 1015129638 + .long 0 + .long 1072693248 + .long 3072795147 + .long 3218177217 + .long 2531204756 + .long 1014677625 + .long 0 + .long 1071644672 + .long 573338107 + .long 3216966390 + .long 1757081539 + .long 3216009405 + .long 1043378852 + .long 1067696161 + .long 2698850995 + .long 3213513876 + .long 495882814 + .long 1064911053 + .long 3842541443 + .long 3210988571 + .long 2725665262 + .long 1061135526 + .long 1727208548 + .long 1072217459 + .long 2531251621 + .long 3161096649 + .long 0 + .long 1072693248 + .long 963359913 + .long 3218157757 + .long 2464811394 + .long 1013284229 + .long 0 + .long 1071644672 + .long 1498613974 + .long 3216992493 + .long 4138103782 + .long 3215985771 + .long 2840947366 + .long 1067675293 + .long 209537977 + .long 3213463826 + .long 3590357530 + .long 1064864171 + .long 73959547 + .long 3210940132 + .long 1511606549 + .long 1062390487 + .long 2040662960 + .long 1072191723 + .long 4270081753 + .long 3163481866 + .long 0 + .long 1072693248 + .long 4002124759 + .long 3218138375 + .long 3453342566 + .long 3160907529 + .long 0 + .long 1071644672 + .long 774562305 + .long 3217018021 + .long 377617675 + .long 3215942442 + .long 2495478050 + .long 1067655031 + .long 1508050213 + .long 3213415186 + .long 1921336534 + .long 1064819067 + .long 975923672 + .long 3210893594 + .long 2289965811 + .long 1060505011 + .long 2354117371 + .long 1072165987 + .long 3512651629 + .long 1014080696 + .long 0 + .long 1072693248 + .long 373017919 + .long 3218119072 + .long 3647199073 + .long 3162144529 + .long 0 + .long 1070596096 + .long 933359764 + .long 1069535705 + .long 1391441088 + .long 3215896667 + .long 53106651 + .long 1067635358 + .long 4157835043 + .long 3213367904 + .long 4055868050 + .long 1064775611 + .long 1529330423 + .long 3210848884 + .long 325278885 + .long 1062325273 + .long 2667571783 + .long 1072140251 + .long 1614402419 + .long 3162433656 + .long 0 + .long 1072693248 + .long 4148643959 + .long 3218099843 + .long 2887822595 + .long 3161698583 + .long 0 + .long 1070596096 + .long 4101770849 + .long 1069511300 + .long 1167052501 + .long 3215851606 + .long 2569727718 + .long 1067616256 + .long 1681502493 + .long 3213321931 + .long 3685967947 + .long 1064733780 + .long 2973319847 + .long 3210805911 + .long 472683240 + .long 1062549181 + .long 2981026194 + .long 1072114515 + .long 924239062 + .long 1015563563 + .long 0 + .long 1072693248 + .long 3747221382 + .long 3218080689 + .long 1912303920 + .long 3161550059 + .long 0 + .long 1070596096 + .long 1727686788 + .long 1069487445 + .long 681802874 + .long 3215807238 + .long 2531789465 + .long 1067597711 + .long 331202638 + .long 3213277217 + .long 2627596737 + .long 1064693515 + .long 566979211 + .long 3210764596 + .long 2424396143 + .long 1061741710 + .long 3294480606 + .long 1072088779 + .long 1489607747 + .long 3150370331 + .long 0 + .long 1072693248 + .long 1167858038 + .long 3218043472 + .long 2180016084 + .long 3158357424 + .long 0 + .long 1070596096 + .long 772792549 + .long 1069464130 + .long 3356872770 + .long 3215763542 + .long 3524844777 + .long 1067579707 + .long 1521756467 + .long 3213233715 + .long 3931969740 + .long 1064654734 + .long 2908114613 + .long 3210710011 + .long 3523476919 + .long 1061374592 + .long 3607935018 + .long 1072063043 + .long 4202814986 + .long 3163047941 + .long 0 + .long 1072693248 + .long 955408364 + .long 3218005450 + .long 2659929740 + .long 1013295819 + .long 0 + .long 1070596096 + .long 659174847 + .long 1069441347 + .long 2081794994 + .long 3215720500 + .long 2956616392 + .long 1067562230 + .long 1461867065 + .long 3213191381 + .long 879427918 + .long 1064617384 + .long 209598599 + .long 3210633576 + .long 60948554 + .long 1061529630 + .long 3921389429 + .long 1072037307 + .long 3647185164 + .long 1014948546 + .long 0 + .long 1072693248 + .long 1526324265 + .long 3217967566 + .long 4056331296 + .long 1010311990 + .long 0 + .long 1070596096 + .long 1830915900 + .long 1069419088 + .long 602185706 + .long 3215678092 + .long 555210277 + .long 1067545266 + .long 3690136761 + .long 3213150171 + .long 4115917121 + .long 1064581405 + .long 589230607 + .long 3210560017 + .long 3446641745 + .long 1062382364 + .long 4234843841 + .long 1072011571 + .long 1479868884 + .long 3161565806 + .long 0 + .long 1072693248 + .long 2049842017 + .long 3217929817 + .long 2491067243 + .long 1013757722 + .long 0 + .long 1070596096 + .long 1431833764 + .long 1069397346 + .long 551048935 + .long 3215636299 + .long 2575917112 + .long 1067528800 + .long 1559777140 + .long 3213110045 + .long 743322344 + .long 1064546764 + .long 1974991822 + .long 3210489213 + .long 3456487690 + .long 1062460308 + .long 253330956 + .long 1071985836 + .long 991505830 + .long 1015997488 + .long 0 + .long 1072693248 + .long 1894214069 + .long 3217892200 + .long 2182661104 + .long 3159506151 + .long 0 + .long 1070596096 + .long 1869133310 + .long 1069376113 + .long 1368144043 + .long 3215595103 + .long 242783364 + .long 1067512821 + .long 3692616565 + .long 3213070961 + .long 2890683542 + .long 1064513419 + .long 2407947192 + .long 3210421028 + .long 3811448635 + .long 1060561671 + .long 566785368 + .long 1071960100 + .long 2301849815 + .long 1013610078 + .long 0 + .long 1072693248 + .long 620845047 + .long 3217854712 + .long 314567190 + .long 3160767875 + .long 0 + .long 1070596096 + .long 2198158867 + .long 1069355382 + .long 222370857 + .long 3215554487 + .long 4028822361 + .long 1067497314 + .long 3610397327 + .long 3213032882 + .long 171354848 + .long 1064481283 + .long 693369877 + .long 3210355362 + .long 164303632 + .long 1061632559 + .long 880239780 + .long 1071934364 + .long 4135548218 + .long 3162614016 + .long 0 + .long 1072693248 + .long 2273547475 + .long 3217817349 + .long 4162051772 + .long 3158862098 + .long 0 + .long 1070596096 + .long 2392983423 + .long 1069335146 + .long 526970473 + .long 3215514433 + .long 628322840 + .long 1067482270 + .long 924033682 + .long 3212995771 + .long 854746898 + .long 1064450346 + .long 4004963123 + .long 3210292086 + .long 1474471147 + .long 1060747995 + .long 1193694191 + .long 1071908628 + .long 1890859349 + .long 1015418982 + .long 0 + .long 1072693248 + .long 2488075121 + .long 3217780109 + .long 1856288899 + .long 1013767581 + .long 0 + .long 1070596096 + .long 3322930631 + .long 1069315398 + .long 3277607933 + .long 3215474924 + .long 130253043 + .long 1067467675 + .long 1057196725 + .long 3212959591 + .long 3278604843 + .long 1064420531 + .long 4197429676 + .long 3210231108 + .long 1627850508 + .long 1062399550 + .long 1507148603 + .long 1071882892 + .long 1086374101 + .long 3159470481 + .long 0 + .long 1072693248 + .long 1371601499 + .long 3217742989 + .long 3050542164 + .long 3159667536 + .long 0 + .long 1070596096 + .long 2434996648 + .long 1069296132 + .long 2688049294 + .long 3215435945 + .long 1586964757 + .long 1067453518 + .long 2102156419 + .long 3212924308 + .long 2974407249 + .long 1064391847 + .long 249545848 + .long 3210172310 + .long 118754132 + .long 1061128535 + .long 1820603015 + .long 1071857156 + .long 3236194699 + .long 3163192522 + .long 0 + .long 1072693248 + .long 3497432648 + .long 3217705985 + .long 3403982176 + .long 3159219350 + .long 0 + .long 1070596096 + .long 2322009458 + .long 1069277341 + .long 3303184211 + .long 3215397479 + .long 3079386980 + .long 1067429210 + .long 3158396776 + .long 3212889889 + .long 500122468 + .long 1064364204 + .long 3226667041 + .long 3210115604 + .long 1839377740 + .long 1062167069 + .long 2134057426 + .long 1071831420 + .long 1285458442 + .long 1014659385 + .long 0 + .long 1072693248 + .long 719981842 + .long 3217669096 + .long 3396799415 + .long 1013109014 + .long 0 + .long 1070596096 + .long 2111724540 + .long 1069259019 + .long 2754706540 + .long 3215359511 + .long 790037588 + .long 1067402587 + .long 4097286835 + .long 3212856302 + .long 2918356813 + .long 1064337614 + .long 980543884 + .long 3210060878 + .long 1759882364 + .long 3204685716 + .long 2447511838 + .long 1071805684 + .long 3841595606 + .long 3161854967 + .long 0 + .long 1072693248 + .long 2234510834 + .long 3217632317 + .long 1077830624 + .long 3156276711 + .long 0 + .long 1070596096 + .long 1741599179 + .long 1069241160 + .long 288887764 + .long 3215322026 + .long 438316229 + .long 1067376778 + .long 2074161178 + .long 3212810170 + .long 2132352512 + .long 1064311981 + .long 321000190 + .long 3210008077 + .long 2574541397 + .long 1061549566 + .long 2760966249 + .long 1071779948 + .long 1958126117 + .long 1015852907 + .long 0 + .long 1072693248 + .long 212483252 + .long 3217595647 + .long 3496985358 + .long 1013615952 + .long 0 + .long 1070596096 + .long 1939348811 + .long 1069223758 + .long 1001569645 + .long 3215285008 + .long 764537997 + .long 1067351764 + .long 2326690580 + .long 3212746141 + .long 60750538 + .long 1064270005 + .long 2745665118 + .long 3209957083 + .long 1586280401 + .long 1060807371 + .long 3074420661 + .long 1071754212 + .long 1873363667 + .long 1013031755 + .long 0 + .long 1072693248 + .long 4156511795 + .long 3217559081 + .long 1791782369 + .long 3160930544 + .long 0 + .long 1070596096 + .long 4204226438 + .long 1069206807 + .long 2895376501 + .long 3215248443 + .long 3600185398 + .long 1067327526 + .long 2087275384 + .long 3212683597 + .long 347703885 + .long 1064222543 + .long 301495371 + .long 3209907826 + .long 876688468 + .long 3206713553 + .long 3387875073 + .long 1071728476 + .long 3168927931 + .long 3162758597 + .long 0 + .long 1072693248 + .long 2240974125 + .long 3217522619 + .long 3786179077 + .long 1012998644 + .long 0 + .long 1070596096 + .long 2199065489 + .long 1069190303 + .long 1118792048 + .long 3215212318 + .long 875809397 + .long 1067304048 + .long 2927616918 + .long 3212622482 + .long 3494337727 + .long 1064176822 + .long 4219965681 + .long 3209860241 + .long 4249954841 + .long 1060574506 + .long 3701329484 + .long 1071702740 + .long 2857479637 + .long 1015274401 + .long 0 + .long 1072693248 + .long 4257115870 + .long 3217486256 + .long 39728399 + .long 3160493923 + .long 0 + .long 1070596096 + .long 3207767847 + .long 1069174239 + .long 797077063 + .long 3215176618 + .long 287980713 + .long 1067281311 + .long 1596666478 + .long 3212562743 + .long 2775364 + .long 1064132847 + .long 3823518214 + .long 3209814240 + .long 3101392498 + .long 1060290467 + .long 4014783896 + .long 1071677004 + .long 3119156846 + .long 3160517595 + .long 0 + .long 1072693248 + .long 2953879462 + .long 3217449991 + .long 651182982 + .long 3159737324 + .long 0 + .long 1070596096 + .long 2348802841 + .long 1069158611 + .long 4095204310 + .long 3215141329 + .long 3730066556 + .long 1067259298 + .long 2541564470 + .long 3212504327 + .long 1012137407 + .long 1064090541 + .long 3007493349 + .long 3209769752 + .long 304719606 + .long 1058732349 + .long 33271012 + .long 1071651269 + .long 2269574412 + .long 3163337103 + .long 0 + .long 1072693248 + .long 4098310206 + .long 3217413820 + .long 678867490 + .long 1013738598 + .long 0 + .long 1070596096 + .long 4033975882 + .long 1069143413 + .long 1577500332 + .long 3215106440 + .long 2904242360 + .long 1067237995 + .long 383406633 + .long 3212447185 + .long 511745182 + .long 1064049810 + .long 3472404602 + .long 3209726723 + .long 3493824410 + .long 1061932631 + .long 693450846 + .long 1071606394 + .long 3218699017 + .long 1014370223 + .long 0 + .long 1072693248 + .long 701484222 + .long 3217377742 + .long 1189134796 + .long 1013549080 + .long 0 + .long 1070596096 + .long 478132658 + .long 1069128642 + .long 2223654597 + .long 3215071936 + .long 706118045 + .long 1067217386 + .long 1066336370 + .long 3212391267 + .long 3310393795 + .long 1064010705 + .long 1920669086 + .long 3209678984 + .long 1209448644 + .long 3206743753 + .long 1320359670 + .long 1071554922 + .long 1908355032 + .long 3162144129 + .long 0 + .long 1072693248 + .long 3079104278 + .long 3217341752 + .long 2593237472 + .long 3159688198 + .long 0 + .long 1070596096 + .long 1749059456 + .long 1069114291 + .long 3316773722 + .long 3215037805 + .long 2555119580 + .long 1067197455 + .long 59306268 + .long 3212336527 + .long 1944001738 + .long 1063973040 + .long 3607966944 + .long 3209598336 + .long 1548002341 + .long 1061515569 + .long 1947268493 + .long 1071503450 + .long 1185916272 + .long 3160806757 + .long 0 + .long 1072693248 + .long 192708373 + .long 3217305850 + .long 1013564964 + .long 3160609117 + .long 0 + .long 1070596096 + .long 1393443609 + .long 1069100357 + .long 3282624502 + .long 3215004035 + .long 3423023493 + .long 1067178189 + .long 3539283610 + .long 3212282918 + .long 1358653293 + .long 1063936902 + .long 1383848795 + .long 3209520160 + .long 1170879540 + .long 3207439782 + .long 2574177316 + .long 1071451978 + .long 2889755040 + .long 1011982448 + .long 0 + .long 1072693248 + .long 2595342993 + .long 3217270031 + .long 1222182906 + .long 3159411259 + .long 0 + .long 1070596096 + .long 2192927435 + .long 1069086835 + .long 1645422722 + .long 3214970614 + .long 648269084 + .long 1067159575 + .long 2319737250 + .long 3212230398 + .long 1121494038 + .long 1063902126 + .long 897314833 + .long 3209444434 + .long 2659165416 + .long 1060259181 + .long 3201086139 + .long 1071400506 + .long 4185319304 + .long 1014225642 + .long 0 + .long 1072693248 + .long 3772940467 + .long 3217234294 + .long 3998164722 + .long 1013347606 + .long 0 + .long 1070596096 + .long 3265990537 + .long 1069073721 + .long 3279971426 + .long 3214937529 + .long 2447085124 + .long 1067141598 + .long 1649985592 + .long 3212178923 + .long 3334399491 + .long 1063868754 + .long 454991634 + .long 3209370985 + .long 1938913543 + .long 3204215126 + .long 3827994963 + .long 1071349034 + .long 941734744 + .long 3162288710 + .long 0 + .long 1072693248 + .long 1615317960 + .long 3217198637 + .long 1400808192 + .long 1007479474 + .long 0 + .long 1070596096 + .long 55251407 + .long 1069061012 + .long 2380564598 + .long 3214875524 + .long 2078095393 + .long 1067124247 + .long 3759475360 + .long 3212128451 + .long 800747756 + .long 1063836662 + .long 3361780736 + .long 3209299766 + .long 3643416391 + .long 1062249457 + .long 159936490 + .long 1071297563 + .long 3547642993 + .long 3161095918 + .long 0 + .long 1072693248 + .long 2707383656 + .long 3217163056 + .long 554608178 + .long 3160521551 + .long 0 + .long 1070596096 + .long 1495139838 + .long 1069048702 + .long 183291521 + .long 3214810633 + .long 3540584774 + .long 1067107509 + .long 3317896890 + .long 3212078943 + .long 3844035447 + .long 1063805952 + .long 3695033041 + .long 3209230570 + .long 3731872264 + .long 3207727795 + .long 786845313 + .long 1071246091 + .long 627570489 + .long 1010932411 + .long 0 + .long 1072693248 + .long 850612498 + .long 3217127550 + .long 3957837480 + .long 1012739461 + .long 0 + .long 1070596096 + .long 4230382869 + .long 1069036788 + .long 2678394493 + .long 3214746346 + .long 42048419 + .long 1067091374 + .long 61549345 + .long 3212030360 + .long 3326100968 + .long 1063776440 + .long 377176410 + .long 3209163411 + .long 1539171840 + .long 3206122484 + .long 1413754136 + .long 1071194619 + .long 856972295 + .long 1014081062 + .long 0 + .long 1072693248 + .long 2829232582 + .long 3217092115 + .long 1037840994 + .long 1012412582 + .long 0 + .long 1070596096 + .long 1194701220 + .long 1069025268 + .long 1485063562 + .long 3214682643 + .long 3996610205 + .long 1067075828 + .long 2865183303 + .long 3211982662 + .long 2185691626 + .long 1063748117 + .long 435906073 + .long 3209098183 + .long 1583986254 + .long 1061922957 + .long 2040662960 + .long 1071143147 + .long 4270081753 + .long 3162433290 + .long 0 + .long 1072693248 + .long 2636871548 + .long 3217056750 + .long 3635907996 + .long 3159234439 + .long 0 + .long 1070596096 + .long 3074865967 + .long 1069014136 + .long 2827594877 + .long 3214619501 + .long 4018616278 + .long 1067060863 + .long 3744630852 + .long 3211935814 + .long 967547233 + .long 1063721046 + .long 1523268333 + .long 3209034706 + .long 370739821 + .long 1057912410 + .long 2667571783 + .long 1071091675 + .long 1614402419 + .long 3161385080 + .long 0 + .long 1072693248 + .long 1600848691 + .long 3217011737 + .long 3799011534 + .long 3158825865 + .long 0 + .long 1070596096 + .long 3940625627 + .long 1069003390 + .long 1694054617 + .long 3214556900 + .long 3525212904 + .long 1067046468 + .long 3400170401 + .long 3211889780 + .long 2025409789 + .long 1063695095 + .long 1861695371 + .long 3208972985 + .long 2099431114 + .long 1058280175 + .long 3294480606 + .long 1071040203 + .long 1489607747 + .long 3149321755 + .long 0 + .long 1072693248 + .long 163325898 + .long 3216941271 + .long 272531312 + .long 3158872717 + .long 0 + .long 1070596096 + .long 2709640876 + .long 1068993027 + .long 3241569416 + .long 3214494818 + .long 3499770285 + .long 1067032633 + .long 2428916378 + .long 3211844525 + .long 796870242 + .long 1063670282 + .long 2401385551 + .long 3208912885 + .long 417337253 + .long 3207953615 + .long 3921389429 + .long 1070988731 + .long 3647185164 + .long 1013899970 + .long 0 + .long 1072693248 + .long 2357811071 + .long 3216870929 + .long 1815527340 + .long 3157476592 + .long 0 + .long 1070596096 + .long 3138003653 + .long 1068983043 + .long 1253835798 + .long 3214433236 + .long 2444914170 + .long 1067019349 + .long 1113961907 + .long 3211800015 + .long 1725681990 + .long 1063646503 + .long 2521427548 + .long 3208854407 + .long 2469316955 + .long 1061668474 + .long 253330956 + .long 1070937260 + .long 991505830 + .long 1014948912 + .long 0 + .long 1072693248 + .long 1152452440 + .long 3216800708 + .long 2988871182 + .long 1011946816 + .long 0 + .long 1070596096 + .long 926263936 + .long 1068973436 + .long 3845070713 + .long 3214372132 + .long 626397172 + .long 1067006607 + .long 2777085683 + .long 3211724145 + .long 2172777456 + .long 1063623822 + .long 3188732906 + .long 3208797386 + .long 250185439 + .long 1062033866 + .long 880239780 + .long 1070885788 + .long 4135548218 + .long 3161565440 + .long 0 + .long 1072693248 + .long 2555242223 + .long 3216730602 + .long 1132402578 + .long 1012350135 + .long 0 + .long 1070596096 + .long 890626350 + .long 1068964202 + .long 3331100648 + .long 3214311488 + .long 30508518 + .long 1066994398 + .long 397665884 + .long 3211637908 + .long 1048931291 + .long 1063602233 + .long 4152525626 + .long 3208741715 + .long 51864355 + .long 3208005790 + .long 1507148603 + .long 1070834316 + .long 1086374101 + .long 3158421905 + .long 0 + .long 1072693248 + .long 4132779814 + .long 3216660607 + .long 3895880616 + .long 1012226511 + .long 0 + .long 1070596096 + .long 4069764223 + .long 1068955338 + .long 1936654463 + .long 3214251284 + .long 27137259 + .long 1066982714 + .long 112447739 + .long 3211552967 + .long 3681308921 + .long 1063581561 + .long 3611917249 + .long 3208687484 + .long 2182292750 + .long 1061868473 + .long 2134057426 + .long 1070782844 + .long 1285458442 + .long 1013610809 + .long 0 + .long 1072693248 + .long 3593905368 + .long 3216590719 + .long 2989246530 + .long 1011901384 + .long 0 + .long 1070596096 + .long 3421947019 + .long 1068946843 + .long 3144465174 + .long 3214191500 + .long 1618007405 + .long 1066971547 + .long 584787122 + .long 3211469261 + .long 1465845707 + .long 1063561956 + .long 939979903 + .long 3208626315 + .long 1695262346 + .long 3204506663 + .long 2760966249 + .long 1070731372 + .long 1958126117 + .long 1014804331 + .long 0 + .long 1072693248 + .long 3078460826 + .long 3216520933 + .long 4285081068 + .long 3159473614 + .long 0 + .long 1070596096 + .long 997373752 + .long 1068938714 + .long 3045840714 + .long 3214132118 + .long 3110377520 + .long 1066960890 + .long 2323415564 + .long 3211386730 + .long 18309569 + .long 1063543250 + .long 551124926 + .long 3208522770 + .long 249182975 + .long 1061811122 + .long 3387875073 + .long 1070679900 + .long 3168927931 + .long 3161710021 + .long 0 + .long 1072693248 + .long 561239310 + .long 3216451245 + .long 210497392 + .long 3156201161 + .long 0 + .long 1070596096 + .long 3636030687 + .long 1068930947 + .long 3167463735 + .long 3214073119 + .long 73152643 + .long 1066950737 + .long 3108019154 + .long 3211305316 + .long 2100498319 + .long 1063525559 + .long 282708930 + .long 3208421353 + .long 2551775895 + .long 3207605450 + .long 4014783896 + .long 1070628428 + .long 3119156846 + .long 3159469019 + .long 0 + .long 1072693248 + .long 2730856872 + .long 3216381649 + .long 4254293712 + .long 1009711154 + .long 0 + .long 1070596096 + .long 1486032260 + .long 1068923542 + .long 1824674436 + .long 3214014485 + .long 2488677748 + .long 1066941079 + .long 1925770461 + .long 3211224962 + .long 2531500940 + .long 1063508710 + .long 3007508061 + .long 3208322267 + .long 994458799 + .long 1061806090 + .long 693450846 + .long 1070557818 + .long 3218699017 + .long 1013321647 + .long 0 + .long 1072693248 + .long 3508967486 + .long 3216312142 + .long 3021155724 + .long 1011969550 + .long 0 + .long 1070596096 + .long 2356881417 + .long 1068916495 + .long 2655870529 + .long 3213956197 + .long 352865498 + .long 1066931912 + .long 3008575053 + .long 3211145611 + .long 2622088932 + .long 1063492845 + .long 3834913422 + .long 3208225014 + .long 1497815285 + .long 3207511002 + .long 1947268493 + .long 1070454874 + .long 1185916272 + .long 3159758181 + .long 0 + .long 1072693248 + .long 1224261120 + .long 3216242720 + .long 3122470664 + .long 3159031070 + .long 0 + .long 1070596096 + .long 1648557593 + .long 1068909805 + .long 1683250226 + .long 3213898238 + .long 2306165388 + .long 1066923228 + .long 2600821843 + .long 3211067209 + .long 3406795398 + .long 1063477798 + .long 3582359304 + .long 3208129845 + .long 3199024961 + .long 1061038571 + .long 3201086139 + .long 1070351930 + .long 4185319304 + .long 1013177066 + .long 0 + .long 1072693248 + .long 2901633254 + .long 3216173377 + .long 2788221280 + .long 1009319756 + .long 0 + .long 1070596096 + .long 3820542338 + .long 1068903469 + .long 288942435 + .long 3213795740 + .long 1237884341 + .long 1066915023 + .long 1606294444 + .long 3210989702 + .long 223992189 + .long 1063463656 + .long 1499707213 + .long 3208036378 + .long 3416758850 + .long 1060053511 + .long 159936490 + .long 1070248987 + .long 3547642993 + .long 3160047342 + .long 0 + .long 1072693248 + .long 2781619933 + .long 3216104110 + .long 3145354644 + .long 1011963772 + .long 0 + .long 1070596096 + .long 911495412 + .long 1068897487 + .long 290976546 + .long 3213681030 + .long 33241894 + .long 1066907291 + .long 977031819 + .long 3210913037 + .long 119357659 + .long 1063450345 + .long 1846248446 + .long 3207944648 + .long 4276662282 + .long 1061269448 + .long 1413754136 + .long 1070146043 + .long 856972295 + .long 1013032486 + .long 0 + .long 1072693248 + .long 3789571175 + .long 3216034914 + .long 2061677164 + .long 3158802525 + .long 0 + .long 1070596096 + .long 2598855658 + .long 1068891855 + .long 628750565 + .long 3213566872 + .long 2954249465 + .long 1066900026 + .long 1468236324 + .long 3210837162 + .long 3701994667 + .long 1063437912 + .long 310421843 + .long 3207854373 + .long 393637210 + .long 3207421006 + .long 2667571783 + .long 1070043099 + .long 1614402419 + .long 3160336504 + .long 0 + .long 1072693248 + .long 700360492 + .long 3215948980 + .long 4067889956 + .long 3158309941 + .long 0 + .long 1070596096 + .long 1834243786 + .long 1068886573 + .long 92010622 + .long 3213453232 + .long 2733460853 + .long 1066893225 + .long 3349627764 + .long 3210762026 + .long 2326014508 + .long 1063426279 + .long 2491557920 + .long 3207765637 + .long 2159546056 + .long 3208108974 + .long 3921389429 + .long 1069940155 + .long 3647185164 + .long 1012851394 + .long 0 + .long 1072693248 + .long 4008519973 + .long 3215810847 + .long 1156806192 + .long 3157002565 + .long 0 + .long 1070596096 + .long 608713188 + .long 1068881639 + .long 3200221055 + .long 3213340075 + .long 2024185290 + .long 1066886883 + .long 3737414605 + .long 3210635448 + .long 4102026093 + .long 1063415403 + .long 3274310324 + .long 3207678452 + .long 4280744879 + .long 1061910091 + .long 880239780 + .long 1069837212 + .long 4135548218 + .long 3160516864 + .long 0 + .long 1072693248 + .long 2381996637 + .long 3215672832 + .long 639270832 + .long 1008532593 + .long 0 + .long 1070596096 + .long 1358563144 + .long 1068877051 + .long 2925458633 + .long 3213227369 + .long 492833071 + .long 1066880996 + .long 4104628456 + .long 3210487835 + .long 3054991409 + .long 1063405423 + .long 2594255061 + .long 3207590366 + .long 2100320188 + .long 3208479772 + .long 2134057426 + .long 1069734268 + .long 1285458442 + .long 1012562233 + .long 0 + .long 1072693248 + .long 2319612510 + .long 3215534925 + .long 1111071278 + .long 3158888695 + .long 0 + .long 1070596096 + .long 2666415304 + .long 1068872808 + .long 2071510147 + .long 3213115080 + .long 3395467108 + .long 1066875559 + .long 2423946868 + .long 3210341405 + .long 80612299 + .long 1063396131 + .long 2656867111 + .long 3207420929 + .long 3004001956 + .long 1061836610 + .long 3387875073 + .long 1069631324 + .long 3168927931 + .long 3160661445 + .long 0 + .long 1072693248 + .long 1865079417 + .long 3215397118 + .long 2937833612 + .long 1011350737 + .long 0 + .long 1070596096 + .long 3552516355 + .long 1068868909 + .long 294617109 + .long 3213003175 + .long 76221622 + .long 1066870571 + .long 3376425735 + .long 3210196061 + .long 2723275475 + .long 1063387705 + .long 3315521969 + .long 3207252871 + .long 3590370444 + .long 3207679867 + .long 693450846 + .long 1069509242 + .long 3218699017 + .long 1012273071 + .long 0 + .long 1072693248 + .long 3481201957 + .long 3215259402 + .long 1636311970 + .long 3157709699 + .long 0 + .long 1070596096 + .long 3471360849 + .long 1068865353 + .long 2600335524 + .long 3212891620 + .long 2613792462 + .long 1066866026 + .long 3847698423 + .long 3210051709 + .long 663967578 + .long 1063380003 + .long 493409710 + .long 3207087119 + .long 1127477260 + .long 3207199264 + .long 3201086139 + .long 1069303354 + .long 4185319304 + .long 1012128490 + .long 0 + .long 1072693248 + .long 1154356116 + .long 3215121770 + .long 1840040117 + .long 3159097207 + .long 0 + .long 1070596096 + .long 2308597781 + .long 1068862139 + .long 4143524575 + .long 3212723904 + .long 2850915343 + .long 1066861923 + .long 1191668407 + .long 3209908256 + .long 2952843839 + .long 1063373033 + .long 3172237721 + .long 3206923432 + .long 2684115468 + .long 1061237060 + .long 1413754136 + .long 1069097467 + .long 856972295 + .long 1011983910 + .long 0 + .long 1072693248 + .long 1858778712 + .long 3214984212 + .long 552307712 + .long 1007653492 + .long 0 + .long 1070596096 + .long 378217452 + .long 1068859266 + .long 2507068679 + .long 3212502004 + .long 2446302718 + .long 1066858259 + .long 1361087111 + .long 3209765608 + .long 761263112 + .long 1063366881 + .long 2488333367 + .long 3206760542 + .long 3134826447 + .long 3208438003 + .long 3921389429 + .long 1068891579 + .long 3647185164 + .long 1011802818 + .long 0 + .long 1072693248 + .long 3847531748 + .long 3214759425 + .long 2484055616 + .long 1005679197 + .long 0 + .long 1070596096 + .long 2714982805 + .long 1068856732 + .long 2649074978 + .long 3212280611 + .long 4275478210 + .long 1066855031 + .long 2325700054 + .long 3209556212 + .long 3568629394 + .long 1063361434 + .long 1419097007 + .long 3206599479 + .long 3667282369 + .long 3208404843 + .long 2134057426 + .long 1068685692 + .long 1285458442 + .long 1011513657 + .long 0 + .long 1072693248 + .long 4111272116 + .long 3214484558 + .long 3215369808 + .long 3153450047 + .long 0 + .long 1070596096 + .long 1892298670 + .long 1068854538 + .long 4017792039 + .long 3212059661 + .long 3825916209 + .long 1066852238 + .long 1674419437 + .long 3209273590 + .long 2761556401 + .long 1063356717 + .long 4123887123 + .long 3206334117 + .long 39803485 + .long 3207166447 + .long 693450846 + .long 1068460666 + .long 3218699017 + .long 1011224495 + .long 0 + .long 1072693248 + .long 1769817487 + .long 3214209791 + .long 226900428 + .long 3157084142 + .long 0 + .long 1070596096 + .long 3790025843 + .long 1068852682 + .long 2975452701 + .long 3211839091 + .long 2074002222 + .long 1066849878 + .long 2835406423 + .long 3208992033 + .long 2160688582 + .long 1063352737 + .long 438342636 + .long 3206016666 + .long 598064701 + .long 3205441692 + .long 1413754136 + .long 1068048891 + .long 856972295 + .long 1010935334 + .long 0 + .long 1072693248 + .long 2796861084 + .long 3213935106 + .long 4160910146 + .long 1008936729 + .long 0 + .long 1070596096 + .long 1822957307 + .long 1068851165 + .long 2426092900 + .long 3211449386 + .long 1181651297 + .long 1066847949 + .long 11113416 + .long 3208711363 + .long 2350522541 + .long 1063349490 + .long 1110749705 + .long 3205700769 + .long 1529834450 + .long 3204806002 + .long 2134057426 + .long 1067637116 + .long 1285458442 + .long 1010465081 + .long 0 + .long 1072693248 + .long 766684177 + .long 3213435536 + .long 4183922317 + .long 3156428395 + .long 0 + .long 1070596096 + .long 2709169804 + .long 1068849985 + .long 2562652885 + .long 3211009382 + .long 194304310 + .long 1066846450 + .long 285423324 + .long 3208220240 + .long 4164698302 + .long 1063346958 + .long 490316583 + .long 3205276877 + .long 1161999017 + .long 1059948714 + .long 1413754136 + .long 1067000315 + .long 856972295 + .long 1009886758 + .long 0 + .long 1072693248 + .long 1373484687 + .long 3212886398 + .long 3463806808 + .long 3156987378 + .long 0 + .long 1070596096 + .long 699034059 + .long 1068849143 + .long 4196075177 + .long 3210399801 + .long 3624794075 + .long 1066845379 + .long 1212360239 + .long 3207661374 + .long 4225594870 + .long 1063345136 + .long 4142831282 + .long 3204654696 + .long 3419780486 + .long 1061860029 + .long 1413754136 + .long 1065951739 + .long 856972295 + .long 1008838182 + .long 0 + .long 1072693248 + .long 1048210722 + .long 3211837789 + .long 322286546 + .long 3154320084 + .long 0 + .long 1070596096 + .long 3344097458 + .long 1068848637 + .long 4078525744 + .long 3209350973 + .long 4268457311 + .long 1066844737 + .long 1752199129 + .long 3206612445 + .long 2933973771 + .long 1063344076 + .long 1552329397 + .long 3203604713 + .long 4286470131 + .long 1060555865 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1070596096 + .long 1431655765 + .long 1068848469 + .long 0 + .long 0 + .long 381986942 + .long 1066844524 + .long 0 + .long 0 + .long 3364860459 + .long 1063343704 + .long 0 + .long 0 + .long 3669941704 + .long 1061551801 + .long 1413754136 + .long 3213435387 + .long 856972295 + .long 3156321830 + .long 0 + .long 1072693248 + .long 1048210722 + .long 1064354141 + .long 310222654 + .long 1006836436 + .long 0 + .long 1070596096 + .long 3344097458 + .long 1068848637 + .long 4078525744 + .long 1061867325 + .long 4268457311 + .long 1066844737 + .long 1752199185 + .long 1059128797 + .long 2933974085 + .long 1063344076 + .long 1541627965 + .long 1056121065 + .long 4213857106 + .long 1060555865 + .long 1413754136 + .long 3214483963 + .long 856972295 + .long 3157370406 + .long 0 + .long 1072693248 + .long 1373484687 + .long 1065402750 + .long 3463778643 + .long 1009503730 + .long 0 + .long 1070596096 + .long 699034059 + .long 1068849143 + .long 4196075177 + .long 1062916153 + .long 3624794075 + .long 1066845379 + .long 1212360238 + .long 1060177726 + .long 4225594899 + .long 1063345136 + .long 4143059094 + .long 1057171048 + .long 3416473992 + .long 1061860029 + .long 2134057426 + .long 3215120764 + .long 1285458442 + .long 3157948729 + .long 0 + .long 1072693248 + .long 766684177 + .long 1065951888 + .long 4184103028 + .long 1008944747 + .long 0 + .long 1070596096 + .long 2709169804 + .long 1068849985 + .long 2562652885 + .long 1063525734 + .long 194304310 + .long 1066846450 + .long 285423316 + .long 1060736592 + .long 4164698149 + .long 1063346958 + .long 492080240 + .long 1057793229 + .long 1233082996 + .long 1059948714 + .long 1413754136 + .long 3215532539 + .long 856972295 + .long 3158418982 + .long 0 + .long 1072693248 + .long 2796861084 + .long 1066451458 + .long 4163800696 + .long 3156420377 + .long 0 + .long 1070596096 + .long 1822957307 + .long 1068851165 + .long 2426092900 + .long 1063965738 + .long 1181651297 + .long 1066847949 + .long 11113467 + .long 1061227715 + .long 2350524377 + .long 1063349490 + .long 1099629520 + .long 1058217121 + .long 647421766 + .long 3204806003 + .long 693450846 + .long 3215944314 + .long 3218699017 + .long 3158708143 + .long 0 + .long 1072693248 + .long 1769817487 + .long 1066726143 + .long 226750770 + .long 1009600494 + .long 0 + .long 1070596096 + .long 3790025843 + .long 1068852682 + .long 2975452701 + .long 1064355443 + .long 2074002222 + .long 1066849878 + .long 2835406424 + .long 1061508385 + .long 2160688720 + .long 1063352737 + .long 438143169 + .long 1058533018 + .long 848462310 + .long 3205441692 + .long 2134057426 + .long 3216169340 + .long 1285458442 + .long 3158997305 + .long 0 + .long 1072693248 + .long 4111272116 + .long 1067000910 + .long 3213429568 + .long 1005966399 + .long 0 + .long 1070596096 + .long 1892298670 + .long 1068854538 + .long 4017792039 + .long 1064576013 + .long 3825916209 + .long 1066852238 + .long 1674419438 + .long 1061789942 + .long 2761556545 + .long 1063356717 + .long 4123711083 + .long 1058850469 + .long 104595699 + .long 3207166447 + .long 3921389429 + .long 3216375227 + .long 3647185164 + .long 3159286466 + .long 0 + .long 1072693248 + .long 3847531748 + .long 1067275777 + .long 2487971824 + .long 3153162845 + .long 0 + .long 1070596096 + .long 2714982805 + .long 1068856732 + .long 2649074978 + .long 1064796963 + .long 4275478210 + .long 1066855031 + .long 2325700056 + .long 1062072564 + .long 3568629551 + .long 1063361434 + .long 1418922081 + .long 1059115831 + .long 3702148884 + .long 3208404843 + .long 1413754136 + .long 3216581115 + .long 856972295 + .long 3159467558 + .long 0 + .long 1072693248 + .long 1858778712 + .long 1067500564 + .long 554450480 + .long 3155137140 + .long 0 + .long 1070596096 + .long 378217452 + .long 1068859266 + .long 2507068679 + .long 1065018356 + .long 2446302718 + .long 1066858259 + .long 1361087112 + .long 1062281960 + .long 761263211 + .long 1063366881 + .long 2488165471 + .long 1059276894 + .long 3156241770 + .long 3208438003 + .long 3201086139 + .long 3216787002 + .long 4185319304 + .long 3159612138 + .long 0 + .long 1072693248 + .long 1154356116 + .long 1067638122 + .long 1840130764 + .long 1011613559 + .long 0 + .long 1070596096 + .long 2308597781 + .long 1068862139 + .long 4143524575 + .long 1065240256 + .long 2850915343 + .long 1066861923 + .long 1191668406 + .long 1062424608 + .long 2952843813 + .long 1063373033 + .long 3172428186 + .long 1059439784 + .long 2686776959 + .long 1061237060 + .long 693450846 + .long 3216992890 + .long 3218699017 + .long 3159756719 + .long 0 + .long 1072693248 + .long 3481201957 + .long 1067775754 + .long 1635996196 + .long 1010226051 + .long 0 + .long 1070596096 + .long 3471360849 + .long 1068865353 + .long 2600335524 + .long 1065407972 + .long 2613792462 + .long 1066866026 + .long 3847698425 + .long 1062568061 + .long 663967590 + .long 1063380003 + .long 493016801 + .long 1059603471 + .long 1131084659 + .long 3207199264 + .long 3387875073 + .long 3217114972 + .long 3168927931 + .long 1013177797 + .long 0 + .long 1072693248 + .long 1865079417 + .long 1067913470 + .long 2938003329 + .long 3158834385 + .long 0 + .long 1070596096 + .long 3552516355 + .long 1068868909 + .long 294617109 + .long 1065519527 + .long 76221622 + .long 1066870571 + .long 3376425737 + .long 1062712413 + .long 2723275461 + .long 1063387705 + .long 3315136619 + .long 1059769223 + .long 3585984604 + .long 3207679867 + .long 2134057426 + .long 3217217916 + .long 1285458442 + .long 3160045881 + .long 0 + .long 1072693248 + .long 2319612510 + .long 1068051277 + .long 1111303258 + .long 1011405047 + .long 0 + .long 1070596096 + .long 2666415304 + .long 1068872808 + .long 2071510147 + .long 1065631432 + .long 3395467108 + .long 1066875559 + .long 2423946865 + .long 1062857757 + .long 80612341 + .long 1063396131 + .long 2657457026 + .long 1059937281 + .long 2998464421 + .long 1061836610 + .long 880239780 + .long 3217320860 + .long 4135548218 + .long 1013033216 + .long 0 + .long 1072693248 + .long 2381996637 + .long 1068189184 + .long 639224640 + .long 3156016241 + .long 0 + .long 1070596096 + .long 1358563144 + .long 1068877051 + .long 2925458633 + .long 1065743721 + .long 492833071 + .long 1066880996 + .long 4104628456 + .long 1063004187 + .long 3054991518 + .long 1063405423 + .long 2594252722 + .long 1060106718 + .long 2125241622 + .long 3208479772 + .long 3921389429 + .long 3217423803 + .long 3647185164 + .long 3160335042 + .long 0 + .long 1072693248 + .long 4008519973 + .long 1068327199 + .long 1156786808 + .long 1009518917 + .long 0 + .long 1070596096 + .long 608713188 + .long 1068881639 + .long 3200221055 + .long 1065856427 + .long 2024185290 + .long 1066886883 + .long 3737414605 + .long 1063151800 + .long 4102026005 + .long 1063415403 + .long 3274311301 + .long 1060194804 + .long 4290805031 + .long 1061910091 + .long 2667571783 + .long 3217526747 + .long 1614402419 + .long 1012852856 + .long 0 + .long 1072693248 + .long 700360492 + .long 1068465332 + .long 4067897658 + .long 1010826293 + .long 0 + .long 1070596096 + .long 1834243786 + .long 1068886573 + .long 92010622 + .long 1065969584 + .long 2733460853 + .long 1066893225 + .long 3349627764 + .long 1063278378 + .long 2326014613 + .long 1063426279 + .long 2491557128 + .long 1060281989 + .long 2183550903 + .long 3208108974 + .long 1413754136 + .long 3217629691 + .long 856972295 + .long 3160516134 + .long 0 + .long 1072693248 + .long 3789571175 + .long 1068551266 + .long 2061680020 + .long 1011318877 + .long 0 + .long 1070596096 + .long 2598855658 + .long 1068891855 + .long 628750565 + .long 1066083224 + .long 2954249465 + .long 1066900026 + .long 1468236324 + .long 1063353514 + .long 3701994745 + .long 1063437912 + .long 310421258 + .long 1060370725 + .long 429301190 + .long 3207421006 + .long 159936490 + .long 3217732635 + .long 3547642993 + .long 1012563694 + .long 0 + .long 1072693248 + .long 2781619933 + .long 1068620462 + .long 3145355490 + .long 3159447420 + .long 0 + .long 1070596096 + .long 911495412 + .long 1068897487 + .long 290976546 + .long 1066197382 + .long 33241894 + .long 1066907291 + .long 977031819 + .long 1063429389 + .long 119357612 + .long 1063450345 + .long 1846248792 + .long 1060461000 + .long 4282034711 + .long 1061269448 + .long 3201086139 + .long 3217835578 + .long 4185319304 + .long 3160660714 + .long 0 + .long 1072693248 + .long 2901633254 + .long 1068689729 + .long 2788220944 + .long 3156803404 + .long 0 + .long 1070596096 + .long 3820542338 + .long 1068903469 + .long 288942435 + .long 1066312092 + .long 1237884341 + .long 1066915023 + .long 1606294444 + .long 1063506054 + .long 223992191 + .long 1063463656 + .long 1499707196 + .long 1060552730 + .long 3415844307 + .long 1060053511 + .long 1947268493 + .long 3217938522 + .long 1185916272 + .long 1012274533 + .long 0 + .long 1072693248 + .long 1224261120 + .long 1068759072 + .long 3122469562 + .long 1011547422 + .long 0 + .long 1070596096 + .long 1648557593 + .long 1068909805 + .long 1683250226 + .long 1066414590 + .long 2306165388 + .long 1066923228 + .long 2600821843 + .long 1063583561 + .long 3406795366 + .long 1063477798 + .long 3582359528 + .long 1060646197 + .long 3206340638 + .long 1061038571 + .long 693450846 + .long 3218041466 + .long 3218699017 + .long 3160805295 + .long 0 + .long 1072693248 + .long 3508967486 + .long 1068828494 + .long 3021154406 + .long 3159453198 + .long 0 + .long 1070596096 + .long 2356881417 + .long 1068916495 + .long 2655870529 + .long 1066472549 + .long 352865498 + .long 1066931912 + .long 3008575053 + .long 1063661963 + .long 2622089007 + .long 1063492845 + .long 3834912888 + .long 1060741366 + .long 1532107502 + .long 3207511002 + .long 4014783896 + .long 3218112076 + .long 3119156846 + .long 1011985371 + .long 0 + .long 1072693248 + .long 2730856872 + .long 1068898001 + .long 4254304408 + .long 3157194802 + .long 0 + .long 1070596096 + .long 1486032260 + .long 1068923542 + .long 1824674436 + .long 1066530837 + .long 2488677748 + .long 1066941079 + .long 1925770461 + .long 1063741314 + .long 2531500863 + .long 1063508710 + .long 3007508602 + .long 1060838619 + .long 1003260451 + .long 1061806090 + .long 3387875073 + .long 3218163548 + .long 3168927931 + .long 1014226373 + .long 0 + .long 1072693248 + .long 561239310 + .long 1068967597 + .long 210518352 + .long 1008717513 + .long 0 + .long 1070596096 + .long 3636030687 + .long 1068930947 + .long 3167463735 + .long 1066589471 + .long 73152643 + .long 1066950737 + .long 3108019154 + .long 1063821668 + .long 2100498394 + .long 1063525559 + .long 282708402 + .long 1060937705 + .long 2568921764 + .long 3207605450 + .long 2760966249 + .long 3218215020 + .long 1958126117 + .long 3162287979 + .long 0 + .long 1072693248 + .long 3078460826 + .long 1069037285 + .long 4285079825 + .long 1011989966 + .long 0 + .long 1070596096 + .long 997373752 + .long 1068938714 + .long 3045840714 + .long 1066648470 + .long 3110377520 + .long 1066960890 + .long 2323415564 + .long 1063903082 + .long 18309497 + .long 1063543250 + .long 551125427 + .long 1061039122 + .long 257413032 + .long 1061811122 + .long 2134057426 + .long 3218266492 + .long 1285458442 + .long 3161094457 + .long 0 + .long 1072693248 + .long 3593905368 + .long 1069107071 + .long 2989245764 + .long 3159385032 + .long 0 + .long 1070596096 + .long 3421947019 + .long 1068946843 + .long 3144465174 + .long 1066707852 + .long 1618007405 + .long 1066971547 + .long 584787122 + .long 1063985613 + .long 1465845750 + .long 1063561956 + .long 939979596 + .long 1061142667 + .long 1773905530 + .long 3204506663 + .long 1507148603 + .long 3218317964 + .long 1086374101 + .long 1010938257 + .long 0 + .long 1072693248 + .long 4132779814 + .long 1069176959 + .long 3895881848 + .long 3159710159 + .long 0 + .long 1070596096 + .long 4069764223 + .long 1068955338 + .long 1936654463 + .long 1066767636 + .long 27137259 + .long 1066982714 + .long 112447739 + .long 1064069319 + .long 3681308850 + .long 1063581561 + .long 3611917496 + .long 1061203836 + .long 2190408434 + .long 1061868473 + .long 880239780 + .long 3218369436 + .long 4135548218 + .long 1014081792 + .long 0 + .long 1072693248 + .long 2555242223 + .long 1069246954 + .long 1132401098 + .long 3159833783 + .long 0 + .long 1070596096 + .long 890626350 + .long 1068964202 + .long 3331100648 + .long 1066827840 + .long 30508518 + .long 1066994398 + .long 397665884 + .long 1064154260 + .long 1048931375 + .long 1063602233 + .long 4152525330 + .long 1061258067 + .long 71067649 + .long 3208005790 + .long 253330956 + .long 3218420908 + .long 991505830 + .long 3162432560 + .long 0 + .long 1072693248 + .long 1152452440 + .long 1069317060 + .long 2988872515 + .long 3159430464 + .long 0 + .long 1070596096 + .long 926263936 + .long 1068973436 + .long 3845070713 + .long 1066888484 + .long 626397172 + .long 1067006607 + .long 2777085683 + .long 1064240497 + .long 2172777379 + .long 1063623822 + .long 3188733172 + .long 1061313738 + .long 258986845 + .long 1062033866 + .long 3921389429 + .long 3218472379 + .long 3647185164 + .long 3161383618 + .long 0 + .long 1072693248 + .long 2357811071 + .long 1069387281 + .long 1815523692 + .long 1009992944 + .long 0 + .long 1070596096 + .long 3138003653 + .long 1068983043 + .long 1253835798 + .long 1066949588 + .long 2444914170 + .long 1067019349 + .long 1113961907 + .long 1064316367 + .long 1725681937 + .long 1063646503 + .long 2521427730 + .long 1061370759 + .long 2475375033 + .long 1061668474 + .long 3294480606 + .long 3218523851 + .long 1489607747 + .long 1001838107 + .long 0 + .long 1072693248 + .long 163325898 + .long 1069457623 + .long 272534188 + .long 1011389069 + .long 0 + .long 1070596096 + .long 2709640876 + .long 1068993027 + .long 3241569416 + .long 1067011170 + .long 3499770285 + .long 1067032633 + .long 2428916378 + .long 1064360877 + .long 796870323 + .long 1063670282 + .long 2401385265 + .long 1061429237 + .long 435854613 + .long 3207953615 + .long 2667571783 + .long 3218575323 + .long 1614402419 + .long 1013901432 + .long 0 + .long 1072693248 + .long 1600848691 + .long 1069528089 + .long 3799012648 + .long 1011342217 + .long 0 + .long 1070596096 + .long 3940625627 + .long 1069003390 + .long 1694054617 + .long 1067073252 + .long 3525212904 + .long 1067046468 + .long 3400170401 + .long 1064406132 + .long 2025409820 + .long 1063695095 + .long 1861695260 + .long 1061489337 + .long 2071083481 + .long 1058280175 + .long 2040662960 + .long 3218626795 + .long 4270081753 + .long 1014949642 + .long 0 + .long 1072693248 + .long 2636871548 + .long 1069573102 + .long 3635909220 + .long 1011750791 + .long 0 + .long 1070596096 + .long 3074865967 + .long 1069014136 + .long 2827594877 + .long 1067135853 + .long 4018616278 + .long 1067060863 + .long 3744630852 + .long 1064452166 + .long 967547267 + .long 1063721046 + .long 1523268212 + .long 1061551058 + .long 308558327 + .long 1057912410 + .long 1413754136 + .long 3218678267 + .long 856972295 + .long 3161564710 + .long 0 + .long 1072693248 + .long 2829232582 + .long 1069608467 + .long 1037842028 + .long 3159896230 + .long 0 + .long 1070596096 + .long 1194701220 + .long 1069025268 + .long 1485063562 + .long 1067198995 + .long 3996610205 + .long 1067075828 + .long 2865183303 + .long 1064499014 + .long 2185691567 + .long 1063748117 + .long 435906278 + .long 1061614535 + .long 1590730193 + .long 1061922957 + .long 786845313 + .long 3218729739 + .long 627570489 + .long 3158416059 + .long 0 + .long 1072693248 + .long 850612498 + .long 1069643902 + .long 3957836518 + .long 3160223109 + .long 0 + .long 1070596096 + .long 4230382869 + .long 1069036788 + .long 2678394493 + .long 1067262698 + .long 42048419 + .long 1067091374 + .long 61549345 + .long 1064546712 + .long 3326101021 + .long 1063776440 + .long 377176219 + .long 1061679763 + .long 1587637306 + .long 3206122484 + .long 159936490 + .long 3218781211 + .long 3547642993 + .long 1013612270 + .long 0 + .long 1072693248 + .long 2707383656 + .long 1069679408 + .long 554608849 + .long 1013037903 + .long 0 + .long 1070596096 + .long 1495139838 + .long 1069048702 + .long 183291521 + .long 1067326985 + .long 3540584774 + .long 1067107509 + .long 3317896890 + .long 1064595295 + .long 3844035522 + .long 1063805952 + .long 3695032775 + .long 1061746922 + .long 3749017783 + .long 3207727795 + .long 3827994963 + .long 3218832682 + .long 941734744 + .long 1014805062 + .long 0 + .long 1072693248 + .long 1615317960 + .long 1069714989 + .long 1400849280 + .long 3154963122 + .long 0 + .long 1070596096 + .long 55251407 + .long 1069061012 + .long 2380564598 + .long 1067391876 + .long 2078095393 + .long 1067124247 + .long 3759475360 + .long 1064644803 + .long 800747683 + .long 1063836662 + .long 3361780990 + .long 1061816118 + .long 3647588455 + .long 1062249457 + .long 3201086139 + .long 3218884154 + .long 4185319304 + .long 3161709290 + .long 0 + .long 1072693248 + .long 3772940467 + .long 1069750646 + .long 3998164292 + .long 3160831254 + .long 0 + .long 1070596096 + .long 3265990537 + .long 1069073721 + .long 3279971426 + .long 1067453881 + .long 2447085124 + .long 1067141598 + .long 1649985592 + .long 1064695275 + .long 3334399538 + .long 1063868754 + .long 454991464 + .long 1061887337 + .long 2110827584 + .long 3204215126 + .long 2574177316 + .long 3218935626 + .long 2889755040 + .long 3159466096 + .long 0 + .long 1072693248 + .long 2595342993 + .long 1069786383 + .long 1222183174 + .long 1011927611 + .long 0 + .long 1070596096 + .long 2192927435 + .long 1069086835 + .long 1645422722 + .long 1067486966 + .long 648269084 + .long 1067159575 + .long 2319737250 + .long 1064746750 + .long 1121494052 + .long 1063902126 + .long 897314780 + .long 1061960786 + .long 2655964904 + .long 1060259181 + .long 1947268493 + .long 3218987098 + .long 1185916272 + .long 1013323109 + .long 0 + .long 1072693248 + .long 192708373 + .long 1069822202 + .long 1013565611 + .long 1013125469 + .long 0 + .long 1070596096 + .long 1393443609 + .long 1069100357 + .long 3282624502 + .long 1067520387 + .long 3423023493 + .long 1067178189 + .long 3539283610 + .long 1064799270 + .long 1358653364 + .long 1063936902 + .long 1383848540 + .long 1062036512 + .long 1203341716 + .long 3207439782 + .long 1320359670 + .long 3219038570 + .long 1908355032 + .long 1014660481 + .long 0 + .long 1072693248 + .long 3079104278 + .long 1069858104 + .long 2593237048 + .long 1012204550 + .long 0 + .long 1070596096 + .long 1749059456 + .long 1069114291 + .long 3316773722 + .long 1067554157 + .long 2555119580 + .long 1067197455 + .long 59306268 + .long 1064852879 + .long 1944001714 + .long 1063973040 + .long 3607967027 + .long 1062114688 + .long 1550745665 + .long 1061515569 + .long 693450846 + .long 3219090042 + .long 3218699017 + .long 3161853871 + .long 0 + .long 1072693248 + .long 701484222 + .long 1069894094 + .long 1189134214 + .long 3161032728 + .long 0 + .long 1070596096 + .long 478132658 + .long 1069128642 + .long 2223654597 + .long 1067588288 + .long 706118045 + .long 1067217386 + .long 1066336370 + .long 1064907619 + .long 3310393859 + .long 1064010705 + .long 1920668857 + .long 1062195336 + .long 1238710124 + .long 3206743753 + .long 33271012 + .long 3219134917 + .long 2269574412 + .long 1015853455 + .long 0 + .long 1072693248 + .long 4098310206 + .long 1069930172 + .long 678867859 + .long 3161222246 + .long 0 + .long 1070596096 + .long 4033975882 + .long 1069143413 + .long 1577500332 + .long 1067622792 + .long 2904242360 + .long 1067237995 + .long 383406633 + .long 1064963537 + .long 511745140 + .long 1064049810 + .long 3472404675 + .long 1062243075 + .long 3498625096 + .long 1061932631 + .long 4014783896 + .long 3219160652 + .long 3119156846 + .long 1013033947 + .long 0 + .long 1072693248 + .long 2953879462 + .long 1069966343 + .long 651183718 + .long 1012253676 + .long 0 + .long 1070596096 + .long 2348802841 + .long 1069158611 + .long 4095204310 + .long 1067657681 + .long 3730066556 + .long 1067259298 + .long 2541564470 + .long 1065020679 + .long 1012137447 + .long 1064090541 + .long 3007493277 + .long 1062286104 + .long 268143184 + .long 1058732349 + .long 3701329484 + .long 3219186388 + .long 2857479637 + .long 3162758049 + .long 0 + .long 1072693248 + .long 4257115870 + .long 1070002608 + .long 39728604 + .long 1013010275 + .long 0 + .long 1070596096 + .long 3207767847 + .long 1069174239 + .long 797077063 + .long 1067692970 + .long 287980713 + .long 1067281311 + .long 1596666478 + .long 1065079095 + .long 2775385 + .long 1064132847 + .long 3823518174 + .long 1062330592 + .long 3096591665 + .long 1060290467 + .long 3387875073 + .long 3219212124 + .long 3168927931 + .long 1015274949 + .long 0 + .long 1072693248 + .long 2240974125 + .long 1070038971 + .long 3786178918 + .long 3160482292 + .long 0 + .long 1070596096 + .long 2199065489 + .long 1069190303 + .long 1118792048 + .long 1067728670 + .long 875809397 + .long 1067304048 + .long 2927616918 + .long 1065138834 + .long 3494337743 + .long 1064176822 + .long 4219965650 + .long 1062376593 + .long 4246297104 + .long 1060574506 + .long 3074420661 + .long 3219237860 + .long 1873363667 + .long 3160515403 + .long 0 + .long 1072693248 + .long 4156511795 + .long 1070075433 + .long 1791783009 + .long 1013446896 + .long 0 + .long 1070596096 + .long 4204226438 + .long 1069206807 + .long 2895376501 + .long 1067764795 + .long 3600185398 + .long 1067327526 + .long 2087275384 + .long 1065199949 + .long 347703954 + .long 1064222543 + .long 301495246 + .long 1062424178 + .long 908235914 + .long 3206713553 + .long 2760966249 + .long 3219263596 + .long 1958126117 + .long 3163336555 + .long 0 + .long 1072693248 + .long 212483252 + .long 1070111999 + .long 3496985219 + .long 3161099600 + .long 0 + .long 1070596096 + .long 1939348811 + .long 1069223758 + .long 1001569645 + .long 1067801360 + .long 764537997 + .long 1067351764 + .long 2326690580 + .long 1065262493 + .long 60750552 + .long 1064270005 + .long 2745665091 + .long 1062473435 + .long 1583079917 + .long 1060807371 + .long 2447511838 + .long 3219289332 + .long 3841595606 + .long 1014371319 + .long 0 + .long 1072693248 + .long 2234510834 + .long 1070148669 + .long 1077829152 + .long 1008793063 + .long 0 + .long 1070596096 + .long 1741599179 + .long 1069241160 + .long 288887764 + .long 1067838378 + .long 438316229 + .long 1067376778 + .long 2074161178 + .long 1065326522 + .long 2132352506 + .long 1064311981 + .long 321000208 + .long 1062524429 + .long 2575912902 + .long 1061549566 + .long 2134057426 + .long 3219315068 + .long 1285458442 + .long 3162143033 + .long 0 + .long 1072693248 + .long 719981842 + .long 1070185448 + .long 3396798827 + .long 3160592662 + .long 0 + .long 1070596096 + .long 2111724540 + .long 1069259019 + .long 2754706540 + .long 1067875863 + .long 790037588 + .long 1067402587 + .long 4097286835 + .long 1065372654 + .long 2918356845 + .long 1064337614 + .long 980543769 + .long 1062577230 + .long 1876925371 + .long 3204685716 + .long 1820603015 + .long 3219340804 + .long 3236194699 + .long 1015708874 + .long 0 + .long 1072693248 + .long 3497432648 + .long 1070222337 + .long 3403980908 + .long 1011735702 + .long 0 + .long 1070596096 + .long 2322009458 + .long 1069277341 + .long 3303184211 + .long 1067913831 + .long 3079386980 + .long 1067429210 + .long 3158396776 + .long 1065406241 + .long 500122450 + .long 1064364204 + .long 3226667103 + .long 1062631956 + .long 1843492548 + .long 1062167069 + .long 1507148603 + .long 3219366540 + .long 1086374101 + .long 1011986833 + .long 0 + .long 1072693248 + .long 1371601499 + .long 1070259341 + .long 3050542448 + .long 1012183888 + .long 0 + .long 1070596096 + .long 2434996648 + .long 1069296132 + .long 2688049294 + .long 1067952297 + .long 1586964757 + .long 1067453518 + .long 2102156419 + .long 1065440660 + .long 2974407256 + .long 1064391847 + .long 249545820 + .long 1062688662 + .long 115553579 + .long 1061128535 + .long 1193694191 + .long 3219392276 + .long 1890859349 + .long 3162902630 + .long 0 + .long 1072693248 + .long 2488075121 + .long 1070296461 + .long 1856289345 + .long 3161251229 + .long 0 + .long 1070596096 + .long 3322930631 + .long 1069315398 + .long 3277607933 + .long 1067991276 + .long 130253043 + .long 1067467675 + .long 1057196725 + .long 1065475943 + .long 3278604818 + .long 1064420531 + .long 4197429763 + .long 1062747460 + .long 1630708049 + .long 1062399550 + .long 880239780 + .long 3219418012 + .long 4135548218 + .long 1015130368 + .long 0 + .long 1072693248 + .long 2273547475 + .long 1070333701 + .long 4162052844 + .long 1011378450 + .long 0 + .long 1070596096 + .long 2392983423 + .long 1069335146 + .long 526970473 + .long 1068030785 + .long 628322840 + .long 1067482270 + .long 924033682 + .long 1065512123 + .long 854746912 + .long 1064450346 + .long 4004963071 + .long 1062808438 + .long 1468070334 + .long 1060747995 + .long 566785368 + .long 3219443748 + .long 2301849815 + .long 3161093726 + .long 0 + .long 1072693248 + .long 620845047 + .long 1070371064 + .long 314567191 + .long 1013284227 + .long 0 + .long 1070596096 + .long 2198158867 + .long 1069355382 + .long 222370857 + .long 1068070839 + .long 4028822361 + .long 1067497314 + .long 3610397327 + .long 1065549234 + .long 171354847 + .long 1064481283 + .long 693369877 + .long 1062871714 + .long 164532117 + .long 1061632559 + .long 253330956 + .long 3219469484 + .long 991505830 + .long 3163481136 + .long 0 + .long 1072693248 + .long 1894214069 + .long 1070408552 + .long 2182661802 + .long 1012022503 + .long 0 + .long 1070596096 + .long 1869133310 + .long 1069376113 + .long 1368144043 + .long 1068111455 + .long 242783364 + .long 1067512821 + .long 3692616565 + .long 1065587313 + .long 2890683560 + .long 1064513419 + .long 2407947124 + .long 1062937380 + .long 3803218812 + .long 1060561671 + .long 4234843841 + .long 3219495219 + .long 1479868884 + .long 1014082158 + .long 0 + .long 1072693248 + .long 2049842017 + .long 1070446169 + .long 2491067638 + .long 3161241370 + .long 0 + .long 1070596096 + .long 1431833764 + .long 1069397346 + .long 551048935 + .long 1068152651 + .long 2575917112 + .long 1067528800 + .long 1559777140 + .long 1065626397 + .long 743322322 + .long 1064546764 + .long 1974991899 + .long 1063005565 + .long 3459002328 + .long 1062460308 + .long 3921389429 + .long 3219520955 + .long 3647185164 + .long 3162432194 + .long 0 + .long 1072693248 + .long 1526324265 + .long 1070483918 + .long 4056333712 + .long 3157795638 + .long 0 + .long 1070596096 + .long 1830915900 + .long 1069419088 + .long 602185706 + .long 1068194444 + .long 555210277 + .long 1067545266 + .long 3690136761 + .long 1065666523 + .long 4115917104 + .long 1064581405 + .long 589230666 + .long 1063076369 + .long 3448584873 + .long 1062382364 + .long 3607935018 + .long 3219546691 + .long 4202814986 + .long 1015564293 + .long 0 + .long 1072693248 + .long 955408364 + .long 1070521802 + .long 2659929592 + .long 3160779467 + .long 0 + .long 1070596096 + .long 659174847 + .long 1069441347 + .long 2081794994 + .long 1068236852 + .long 2956616392 + .long 1067562230 + .long 1461867065 + .long 1065707733 + .long 879427925 + .long 1064617384 + .long 209598570 + .long 1063149928 + .long 59348277 + .long 1061529630 + .long 3294480606 + .long 3219572427 + .long 1489607747 + .long 1002886683 + .long 0 + .long 1072693248 + .long 1167858038 + .long 1070559824 + .long 2180017056 + .long 1010873776 + .long 0 + .long 1070596096 + .long 772792549 + .long 1069464130 + .long 3356872770 + .long 1068279894 + .long 3524844777 + .long 1067579707 + .long 1521756467 + .long 1065750067 + .long 3931969752 + .long 1064654734 + .long 2908114566 + .long 1063226363 + .long 3520733649 + .long 1061374592 + .long 2981026194 + .long 3219598163 + .long 924239062 + .long 3163047211 + .long 0 + .long 1072693248 + .long 3747221382 + .long 1070597041 + .long 1912303979 + .long 1014066411 + .long 0 + .long 1070596096 + .long 1727686788 + .long 1069487445 + .long 681802874 + .long 1068323590 + .long 2531789465 + .long 1067597711 + .long 331202638 + .long 1065793569 + .long 2627596742 + .long 1064693515 + .long 566979200 + .long 1063280948 + .long 2423252998 + .long 1061741710 + .long 2667571783 + .long 3219623899 + .long 1614402419 + .long 1014950008 + .long 0 + .long 1072693248 + .long 4148643959 + .long 1070616195 + .long 2887822437 + .long 1014214935 + .long 0 + .long 1070596096 + .long 4101770849 + .long 1069511300 + .long 1167052501 + .long 1068367958 + .long 2569727718 + .long 1067616256 + .long 1681502493 + .long 1065838283 + .long 3685967929 + .long 1064733780 + .long 2973319878 + .long 1063322263 + .long 474740638 + .long 1062549181 + .long 2354117371 + .long 3219649635 + .long 3512651629 + .long 3161564344 + .long 0 + .long 1072693248 + .long 373017919 + .long 1070635424 + .long 3647199022 + .long 1014660881 + .long 0 + .long 1070596096 + .long 933359764 + .long 1069535705 + .long 1391441088 + .long 1068413019 + .long 53106651 + .long 1067635358 + .long 4157835043 + .long 1065884256 + .long 4055868043 + .long 1064775611 + .long 1529330433 + .long 1063365236 + .long 326078913 + .long 1062325273 + .long 2040662960 + .long 3219675371 + .long 4270081753 + .long 1015998218 + .long 0 + .long 1072693248 + .long 4002124759 + .long 1070654727 + .long 3453343154 + .long 1013423881 + .long 0 + .long 1071644672 + .long 774562305 + .long 3217018021 + .long 377617675 + .long 1068458794 + .long 2495478050 + .long 1067655031 + .long 1508050213 + .long 1065931538 + .long 1921336565 + .long 1064819067 + .long 975923615 + .long 1063409946 + .long 2275792800 + .long 1060505011 + .long 1727208548 + .long 3219701107 + .long 2531251621 + .long 1013613001 + .long 0 + .long 1072693248 + .long 963359913 + .long 1070674109 + .long 2464811476 + .long 3160767877 + .long 0 + .long 1071644672 + .long 1498613974 + .long 3216992493 + .long 4138103782 + .long 1068502123 + .long 2840947366 + .long 1067675293 + .long 209537977 + .long 1065980178 + .long 3590357525 + .long 1064864171 + .long 73959555 + .long 1063456484 + .long 1512178095 + .long 1062390487 + .long 1413754136 + .long 3219726843 + .long 856972295 + .long 3162613286 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 1994327296 + .long 1006932657 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 266 + .long 3221225472 + .long 1431655956 + .long 1074091349 + .long 2828070733 + .long 3221924522 + .long 268536947 + .long 1074860305 + .long 4220652043 + .long 3222647048 + .long 3597047153 + .long 1075552901 + .long 1100299725 + .long 3219752579 + .long 874467977 + .long 1015419713 + .long 0 + .long 0 + .long 2668510354 + .long 3220126045 + .long 1701998120 + .long 1012206572 + .long 0 + .long 1073741824 + .long 1404962112 + .long 3215492924 + .long 3327263454 + .long 3221125605 + .long 1987673213 + .long 1074008829 + .long 231222583 + .long 3221793459 + .long 1756671652 + .long 1074731884 + .long 3921518330 + .long 3222500748 + .long 2691193109 + .long 1075341426 + .long 786845313 + .long 3219778315 + .long 627570489 + .long 3159464635 + .long 0 + .long 0 + .long 2949191430 + .long 3220076398 + .long 3989126963 + .long 3163096676 + .long 0 + .long 1073741824 + .long 2909112164 + .long 3216503445 + .long 3682557528 + .long 3221031585 + .long 4184421718 + .long 1073932454 + .long 380803270 + .long 3221673930 + .long 3399744364 + .long 1074553823 + .long 3842864962 + .long 3222371390 + .long 748075446 + .long 1075157395 + .long 473390901 + .long 3219804051 + .long 4252586071 + .long 3163191791 + .long 0 + .long 0 + .long 2308259791 + .long 3220027898 + .long 4111771200 + .long 3156765800 + .long 0 + .long 1073741824 + .long 411343470 + .long 3217132228 + .long 3760686807 + .long 3220942979 + .long 4171367426 + .long 1073861688 + .long 1878500541 + .long 3221564765 + .long 108767834 + .long 1074393698 + .long 2824899565 + .long 3222239549 + .long 3321236009 + .long 1074997439 + .long 159936490 + .long 3219829787 + .long 3547642993 + .long 1014660846 + .long 0 + .long 0 + .long 3342355758 + .long 3219980491 + .long 1666924640 + .long 3162031356 + .long 0 + .long 1073741824 + .long 2271288998 + .long 3217480250 + .long 4111284847 + .long 3220859392 + .long 2796272966 + .long 1073796048 + .long 1730314448 + .long 3221464928 + .long 1813001552 + .long 1074249474 + .long 603251437 + .long 3222036157 + .long 3079042443 + .long 1074856525 + .long 4141449374 + .long 3219855522 + .long 1579411055 + .long 3161853506 + .long 0 + .long 0 + .long 166164867 + .long 3219934128 + .long 2304492376 + .long 1012090550 + .long 0 + .long 1073741824 + .long 2798667120 + .long 3217812323 + .long 4203596829 + .long 3220780463 + .long 1473339147 + .long 1073728374 + .long 4243021652 + .long 3221373498 + .long 1638747017 + .long 1074119375 + .long 1512673116 + .long 3221855335 + .long 2338684822 + .long 1074678259 + .long 3827994963 + .long 3219881258 + .long 941734744 + .long 1015853638 + .long 0 + .long 0 + .long 3247184626 + .long 3219888759 + .long 1245319390 + .long 3161909785 + .long 0 + .long 1073741824 + .long 2381906911 + .long 3218104536 + .long 1010924947 + .long 3220705862 + .long 2481381005 + .long 1073615072 + .long 1356661294 + .long 3221289659 + .long 1527070583 + .long 1074001844 + .long 3061693405 + .long 3221694303 + .long 1993154673 + .long 1074463435 + .long 3514540551 + .long 3219906994 + .long 2102765473 + .long 1013034678 + .long 0 + .long 0 + .long 4189730214 + .long 3219844341 + .long 872357632 + .long 3158652168 + .long 0 + .long 1073741824 + .long 760634709 + .long 3218255915 + .long 2067827628 + .long 3220635284 + .long 1386756408 + .long 1073509659 + .long 404552634 + .long 3221199890 + .long 1143062644 + .long 1073895515 + .long 555342338 + .long 3221550657 + .long 3470199450 + .long 1074271418 + .long 3201086139 + .long 3219932730 + .long 4185319304 + .long 3162757866 + .long 0 + .long 0 + .long 719595600 + .long 3219800832 + .long 114970824 + .long 1014660100 + .long 0 + .long 1073741824 + .long 3811788216 + .long 3218400550 + .long 1264738948 + .long 3220568452 + .long 1958933439 + .long 1073411493 + .long 4246310163 + .long 3221058356 + .long 1367842247 + .long 1073799186 + .long 4112596176 + .long 3221422310 + .long 2100954469 + .long 1074105254 + .long 2887631728 + .long 3219958466 + .long 1841088264 + .long 1015275132 + .long 0 + .long 0 + .long 258163604 + .long 3219758190 + .long 3299889334 + .long 3162612005 + .long 0 + .long 1073741824 + .long 2865277319 + .long 3218538798 + .long 3110066496 + .long 3220505109 + .long 723074889 + .long 1073319994 + .long 1618819009 + .long 3220928086 + .long 1176243935 + .long 1073681775 + .long 1223849000 + .long 3221307454 + .long 2369288310 + .long 1073957581 + .long 2574177316 + .long 3219984202 + .long 2889755040 + .long 3160514672 + .long 0 + .long 0 + .long 2079874795 + .long 3219716377 + .long 1885564844 + .long 1014470429 + .long 0 + .long 1073741824 + .long 1656469901 + .long 3218670989 + .long 823761676 + .long 3220445021 + .long 2491445454 + .long 1073234634 + .long 1584341555 + .long 3220808039 + .long 1976688438 + .long 1073523018 + .long 3918313362 + .long 3221183550 + .long 3178717701 + .long 1073829019 + .long 2260722904 + .long 3220009938 + .long 3285965784 + .long 3163336372 + .long 0 + .long 0 + .long 997287281 + .long 3219675358 + .long 3612251184 + .long 3163317056 + .long 0 + .long 1073741824 + .long 3037674984 + .long 3218797431 + .long 2624215131 + .long 3220387969 + .long 464779768 + .long 1073154936 + .long 3700763630 + .long 3220697284 + .long 1200926910 + .long 1073378628 + .long 2934576448 + .long 3220998744 + .long 3287041894 + .long 1073681673 + .long 1947268493 + .long 3220035674 + .long 1185916272 + .long 1014371685 + .long 0 + .long 0 + .long 3978924239 + .long 3219635097 + .long 680771999 + .long 1015720881 + .long 0 + .long 1073741824 + .long 3528982175 + .long 3218918413 + .long 3018376188 + .long 3220333754 + .long 2093086652 + .long 1073080463 + .long 451029217 + .long 3220594987 + .long 1097121537 + .long 1073247142 + .long 2277789243 + .long 3220832617 + .long 149138386 + .long 1073478822 + .long 1633814081 + .long 3220061410 + .long 3941137777 + .long 3162142667 + .long 0 + .long 0 + .long 3860971117 + .long 3219595563 + .long 2891614774 + .long 3163214156 + .long 0 + .long 1073741824 + .long 80822128 + .long 3219034205 + .long 2077635078 + .long 3220282191 + .long 1552870456 + .long 1073010820 + .long 3607700650 + .long 3220500394 + .long 249538439 + .long 1073127265 + .long 2233833083 + .long 3220683068 + .long 2436456793 + .long 1073293556 + .long 1320359670 + .long 3220087146 + .long 1908355032 + .long 1015709057 + .long 0 + .long 0 + .long 343219638 + .long 3219556725 + .long 2238262736 + .long 3161731808 + .long 0 + .long 1072693248 + .long 3768132253 + .long 1071627934 + .long 3895546569 + .long 3220233108 + .long 1613056473 + .long 1072945645 + .long 3409294908 + .long 3220412831 + .long 3138966349 + .long 1073017844 + .long 3799067288 + .long 3220548255 + .long 359470498 + .long 1073133087 + .long 1006905258 + .long 3220112882 + .long 3348558652 + .long 1011988294 + .long 0 + .long 0 + .long 3841229102 + .long 3219518551 + .long 1782820117 + .long 3163516640 + .long 0 + .long 1072693248 + .long 866896685 + .long 1071521786 + .long 2743435231 + .long 3220186348 + .long 3017984361 + .long 1072884608 + .long 1491919678 + .long 3220331688 + .long 1507535811 + .long 1072917857 + .long 1966124974 + .long 3220426562 + .long 381628641 + .long 1072992589 + .long 693450846 + .long 3220138618 + .long 3218699017 + .long 3162902447 + .long 0 + .long 0 + .long 716700048 + .long 3219481016 + .long 1043841701 + .long 3163006458 + .long 0 + .long 1072693248 + .long 1097907398 + .long 1071420120 + .long 3912524876 + .long 3220106631 + .long 4107784306 + .long 1072827408 + .long 937056065 + .long 3220256414 + .long 4128945134 + .long 1072826390 + .long 1032262394 + .long 3220316565 + .long 1825923585 + .long 1072864423 + .long 379996435 + .long 3220164354 + .long 2807708551 + .long 1015130551 + .long 0 + .long 0 + .long 142288477 + .long 3219444091 + .long 1256348500 + .long 1014532780 + .long 0 + .long 1072693248 + .long 925074332 + .long 1071322730 + .long 2134728327 + .long 3220021541 + .long 1886408555 + .long 1072773770 + .long 101893267 + .long 3220186512 + .long 2020085224 + .long 1072742631 + .long 2955803861 + .long 3220217010 + .long 343310816 + .long 1072748161 + .long 33271012 + .long 3220183493 + .long 2269574412 + .long 1016902031 + .long 0 + .long 0 + .long 3684492763 + .long 3219407750 + .long 2905890526 + .long 1015709561 + .long 0 + .long 1072693248 + .long 585640690 + .long 1071229422 + .long 1068301595 + .long 3219940277 + .long 2953900489 + .long 1072723440 + .long 950237889 + .long 3220066167 + .long 109735425 + .long 1072638455 + .long 792610979 + .long 3220076689 + .long 2904190292 + .long 1072594405 + .long 4171511102 + .long 3220196360 + .long 987810900 + .long 1016106563 + .long 0 + .long 0 + .long 681498355 + .long 3219371971 + .long 3542625299 + .long 1015827699 + .long 0 + .long 1072693248 + .long 168222332 + .long 1071140014 + .long 776736583 + .long 3219862604 + .long 2405401100 + .long 1072659128 + .long 430546584 + .long 3219945234 + .long 2974083786 + .long 1072497552 + .long 849442068 + .long 3219912970 + .long 2727451532 + .long 1072409680 + .long 4014783896 + .long 3220209228 + .long 3119156846 + .long 1014082523 + .long 0 + .long 0 + .long 2298773501 + .long 3219336728 + .long 4027807132 + .long 1015090440 + .long 0 + .long 1072693248 + .long 312748411 + .long 1071054335 + .long 2723913091 + .long 3219788303 + .long 3207063211 + .long 1072570353 + .long 1845780128 + .long 3219832588 + .long 752659336 + .long 1072368142 + .long 1097207453 + .long 3219764237 + .long 407427403 + .long 1072246732 + .long 3858056690 + .long 3220222096 + .long 2007897202 + .long 3162431829 + .long 0 + .long 0 + .long 2591355529 + .long 3219302000 + .long 2351326818 + .long 3161908153 + .long 0 + .long 1072693248 + .long 3206845590 + .long 1070972224 + .long 4023349050 + .long 3219717171 + .long 3838822434 + .long 1072486918 + .long 3122427157 + .long 3219727557 + .long 2261703627 + .long 1072249178 + .long 1764870100 + .long 3219628955 + .long 3201802997 + .long 1072093301 + .long 3701329484 + .long 3220234964 + .long 2857479637 + .long 3163806625 + .long 0 + .long 0 + .long 4010047525 + .long 3219267765 + .long 3339891512 + .long 3160072694 + .long 0 + .long 1072693248 + .long 966450668 + .long 1070893532 + .long 803989702 + .long 3219649019 + .long 1934453966 + .long 1072408465 + .long 1455077850 + .long 3219629530 + .long 2709264343 + .long 1072139721 + .long 1918064558 + .long 3219505762 + .long 1476733535 + .long 1071960574 + .long 3544602278 + .long 3220247832 + .long 4139243149 + .long 3164602093 + .long 0 + .long 0 + .long 4270735453 + .long 3219234003 + .long 3565361953 + .long 1015342529 + .long 0 + .long 1072693248 + .long 2915760230 + .long 1070818115 + .long 638580392 + .long 3219583668 + .long 2252948193 + .long 1072334663 + .long 1194731830 + .long 3219537949 + .long 1353002942 + .long 1072038927 + .long 422364789 + .long 3219393446 + .long 3669634446 + .long 1071842023 + .long 3387875073 + .long 3220260700 + .long 3168927931 + .long 1016323525 + .long 0 + .long 0 + .long 419968236 + .long 3219200695 + .long 131828542 + .long 1015961466 + .long 0 + .long 1072693248 + .long 2960267235 + .long 1070745841 + .long 1037049094 + .long 3219520953 + .long 1447436626 + .long 1072265209 + .long 3197232138 + .long 3219452306 + .long 4004685084 + .long 1071946034 + .long 1412816421 + .long 3219290928 + .long 3184738590 + .long 1071740610 + .long 3231147867 + .long 3220273568 + .long 3253690381 + .long 1014950373 + .long 0 + .long 0 + .long 1505561933 + .long 3219167820 + .long 2813885200 + .long 1011162516 + .long 0 + .long 1072693248 + .long 2997217365 + .long 1070676584 + .long 2681788575 + .long 3219460719 + .long 3989126937 + .long 1072199822 + .long 1049115510 + .long 3219372139 + .long 511642058 + .long 1071860360 + .long 4034728051 + .long 3219197246 + .long 1788863965 + .long 1071639550 + .long 3074420661 + .long 3220286436 + .long 1873363667 + .long 3161563979 + .long 0 + .long 0 + .long 2606398711 + .long 3219135361 + .long 2533072598 + .long 3162554073 + .long 0 + .long 1072693248 + .long 2151361100 + .long 1070610226 + .long 1532348096 + .long 3219402822 + .long 408604530 + .long 1072138246 + .long 1039538740 + .long 3219297023 + .long 1234598850 + .long 1071781284 + .long 692507578 + .long 3219094767 + .long 4090315877 + .long 1071451983 + .long 2917693455 + .long 3220299304 + .long 676362605 + .long 3163589663 + .long 0 + .long 0 + .long 3649427950 + .long 3219078282 + .long 4113825640 + .long 3158662193 + .long 0 + .long 1072693248 + .long 2424145432 + .long 1070497215 + .long 2715404890 + .long 3219347125 + .long 2238283673 + .long 1072080240 + .long 1186867211 + .long 3219226571 + .long 660318792 + .long 1071708248 + .long 2091427915 + .long 3218937780 + .long 2591062635 + .long 1071291190 + .long 2760966249 + .long 3220312172 + .long 1958126117 + .long 3164385131 + .long 0 + .long 0 + .long 220675706 + .long 3219014926 + .long 3158451653 + .long 3161723787 + .long 0 + .long 1072693248 + .long 1565030890 + .long 1070375439 + .long 335263687 + .long 3219293502 + .long 419816567 + .long 1072025586 + .long 2098048102 + .long 3219160428 + .long 257229335 + .long 1071636821 + .long 3464457189 + .long 3218793840 + .long 2745923191 + .long 1071158056 + .long 2604239044 + .long 3220325040 + .long 1055077667 + .long 1016540488 + .long 0 + .long 0 + .long 2191706112 + .long 3218952300 + .long 333441366 + .long 3161331348 + .long 0 + .long 1072693248 + .long 3435408456 + .long 1070258830 + .long 487319719 + .long 3219241832 + .long 1713711059 + .long 1071974079 + .long 130753286 + .long 3219068219 + .long 909725130 + .long 1071511974 + .long 2762442367 + .long 3218661715 + .long 932670499 + .long 1071027067 + .long 2447511838 + .long 3220337908 + .long 3841595606 + .long 1015419895 + .long 0 + .long 0 + .long 408840118 + .long 3218890375 + .long 4048072104 + .long 3159354273 + .long 0 + .long 1072693248 + .long 2794370512 + .long 1070147203 + .long 1550993351 + .long 3219192003 + .long 1305093678 + .long 1071925532 + .long 1748211158 + .long 3218951271 + .long 3244212114 + .long 1071396455 + .long 2145666003 + .long 3218540299 + .long 1098451822 + .long 1070891096 + .long 2290784632 + .long 3220350776 + .long 2660353234 + .long 3159463173 + .long 0 + .long 0 + .long 3368427099 + .long 3218829119 + .long 2187864186 + .long 1013587140 + .long 0 + .long 1072693248 + .long 1708021028 + .long 1070040382 + .long 459972195 + .long 3219143910 + .long 3210514347 + .long 1071879770 + .long 955408873 + .long 3218841145 + .long 1911386085 + .long 1071289511 + .long 3563284038 + .long 3218428599 + .long 547420745 + .long 1070790031 + .long 2134057426 + .long 3220363644 + .long 1285458442 + .long 3163191609 + .long 0 + .long 0 + .long 2583490354 + .long 3218768505 + .long 27148750 + .long 3161491985 + .long 0 + .long 1072693248 + .long 2550940470 + .long 1069938201 + .long 2616040293 + .long 3219066585 + .long 2529278955 + .long 1071836633 + .long 2244405849 + .long 3218737335 + .long 2064814127 + .long 1071190460 + .long 1527853251 + .long 3218325722 + .long 354247476 + .long 1070708112 + .long 1977330220 + .long 3220376512 + .long 4071976381 + .long 3164168168 + .long 0 + .long 0 + .long 2390846448 + .long 3218708504 + .long 3510503948 + .long 3161709355 + .long 0 + .long 1072693248 + .long 1208409702 + .long 1069840505 + .long 1006199412 + .long 3218976755 + .long 2504246873 + .long 1071795971 + .long 1040653613 + .long 3218639377 + .long 1713268217 + .long 1071098686 + .long 462276301 + .long 3218230862 + .long 4239163357 + .long 1070603989 + .long 1820603015 + .long 3220389380 + .long 3236194699 + .long 1016757450 + .long 0 + .long 0 + .long 2528366626 + .long 3218649089 + .long 3808712102 + .long 1013396510 + .long 0 + .long 1072693248 + .long 1938261590 + .long 1069747146 + .long 4282399603 + .long 3218889831 + .long 1922568281 + .long 1071757646 + .long 2428166646 + .long 3218546841 + .long 717464824 + .long 1071013623 + .long 2205664075 + .long 3218143293 + .long 1526076492 + .long 1070438229 + .long 1663875809 + .long 3220402248 + .long 3908862373 + .long 1015853820 + .long 0 + .long 0 + .long 2200768388 + .long 3218590234 + .long 302584884 + .long 1014949287 + .long 0 + .long 1072693248 + .long 2338248308 + .long 1069657986 + .long 2617403810 + .long 3218805648 + .long 60078074 + .long 1071721530 + .long 2753634668 + .long 3218459332 + .long 626020946 + .long 1070934758 + .long 25846122 + .long 3218044977 + .long 1123428672 + .long 1070307499 + .long 1507148603 + .long 3220415116 + .long 1086374101 + .long 1013035409 + .long 0 + .long 0 + .long 4158096969 + .long 3218531913 + .long 3224512900 + .long 3160902954 + .long 0 + .long 1072693248 + .long 4240313622 + .long 1069572894 + .long 3745046477 + .long 3218724046 + .long 1955120038 + .long 1071687503 + .long 2661530988 + .long 3218376484 + .long 2615081511 + .long 1070861626 + .long 3172686029 + .long 3217895196 + .long 3468537113 + .long 1070173373 + .long 1350421397 + .long 3220427984 + .long 1218191675 + .long 3162757684 + .long 0 + .long 0 + .long 1606100959 + .long 3218474103 + .long 3385789004 + .long 3161114183 + .long 0 + .long 1072693248 + .long 2255302008 + .long 1069435977 + .long 54085333 + .long 3218644877 + .long 2504974906 + .long 1071655456 + .long 4169947836 + .long 3218297958 + .long 2891827398 + .long 1070793803 + .long 1030744944 + .long 3217756428 + .long 2378245768 + .long 1070036506 + .long 1193694191 + .long 3220440852 + .long 1890859349 + .long 3163951206 + .long 0 + .long 0 + .long 3782220567 + .long 3218416778 + .long 2488119274 + .long 3162237132 + .long 0 + .long 1072693248 + .long 91372748 + .long 1069281344 + .long 318776714 + .long 3218567997 + .long 1791786485 + .long 1071605902 + .long 245863368 + .long 3218223442 + .long 3306699316 + .long 1070730899 + .long 492155895 + .long 3217627699 + .long 504590813 + .long 1069961586 + .long 1036966986 + .long 3220453720 + .long 1122344434 + .long 1016974413 + .long 0 + .long 0 + .long 1412148370 + .long 3218359917 + .long 2689483850 + .long 1013993587 + .long 0 + .long 1072693248 + .long 1375255072 + .long 1069134151 + .long 1493266594 + .long 3218493272 + .long 487968719 + .long 1071549129 + .long 4010395236 + .long 3218152642 + .long 2875570533 + .long 1070672565 + .long 2596803943 + .long 3217508124 + .long 2843491945 + .long 1069843051 + .long 880239780 + .long 3220466588 + .long 4135548218 + .long 1016178944 + .long 0 + .long 0 + .long 895247324 + .long 3218303496 + .long 3064008070 + .long 1013805381 + .long 0 + .long 1072693248 + .long 729983844 + .long 1068994194 + .long 3631919317 + .long 3218420574 + .long 2031343772 + .long 1071495745 + .long 1505593195 + .long 3218085291 + .long 519428997 + .long 1070618477 + .long 3710689661 + .long 3217396902 + .long 3156076115 + .long 1069741343 + .long 723512574 + .long 3220479456 + .long 2825204233 + .long 1014372050 + .long 0 + .long 0 + .long 2664093517 + .long 3218247493 + .long 3574482624 + .long 3157273734 + .long 0 + .long 1072693248 + .long 2465054196 + .long 1068861279 + .long 3495559184 + .long 3218349782 + .long 2180799467 + .long 1071445588 + .long 3760731789 + .long 3217962527 + .long 3108073739 + .long 1070540584 + .long 1955989624 + .long 3217293302 + .long 166797605 + .long 1069654305 + .long 566785368 + .long 3220492324 + .long 2301849815 + .long 3162142302 + .long 0 + .long 0 + .long 1026922473 + .long 3218191888 + .long 4275547180 + .long 3161242805 + .long 0 + .long 1072693248 + .long 865263972 + .long 1068735226 + .long 1189261043 + .long 3218280780 + .long 602895285 + .long 1071398507 + .long 457371263 + .long 3217840141 + .long 1846858242 + .long 1070447677 + .long 3060498116 + .long 3217196657 + .long 4267893365 + .long 1069596604 + .long 410058162 + .long 3220505192 + .long 4004709614 + .long 3163734243 + .long 0 + .long 0 + .long 1197423420 + .long 3218136659 + .long 176395860 + .long 3160912588 + .long 0 + .long 1072693248 + .long 3614211808 + .long 1068615863 + .long 2638984897 + .long 3218213456 + .long 1695604536 + .long 1071354361 + .long 2372043566 + .long 3217723241 + .long 136909605 + .long 1070361652 + .long 3640039447 + .long 3217106358 + .long 4088615056 + .long 1069449448 + .long 253330956 + .long 3220518060 + .long 991505830 + .long 3164529712 + .long 0 + .long 0 + .long 1971725998 + .long 3218081786 + .long 2628057466 + .long 3160778219 + .long 0 + .long 1072693248 + .long 3850616508 + .long 1068503032 + .long 715485429 + .long 3218147706 + .long 2831870887 + .long 1071313021 + .long 276112813 + .long 3217611421 + .long 4071473627 + .long 1070282053 + .long 3678820506 + .long 3217012537 + .long 927889203 + .long 1069392578 + .long 96603751 + .long 3220530928 + .long 2021697954 + .long 1016395907 + .long 0 + .long 0 + .long 4068253482 + .long 3217974755 + .long 3098800802 + .long 3161416360 + .long 0 + .long 1072693248 + .long 3555466384 + .long 1068294223 + .long 3714292293 + .long 3218083427 + .long 58004546 + .long 1071274368 + .long 2889916307 + .long 3217504297 + .long 2725223785 + .long 1070208483 + .long 1960889150 + .long 3216854085 + .long 2172838405 + .long 1069259864 + .long 4234843841 + .long 3220543795 + .long 1479868884 + .long 1015130734 + .long 0 + .long 0 + .long 3947580658 + .long 3217866316 + .long 4153464200 + .long 3160712468 + .long 0 + .long 1072693248 + .long 1306970432 + .long 1068093810 + .long 3320658510 + .long 3217961305 + .long 2638377394 + .long 1071238289 + .long 1218095092 + .long 3217401513 + .long 506153465 + .long 1070140566 + .long 2096772766 + .long 3216705262 + .long 2058303373 + .long 1069148484 + .long 4078116635 + .long 3220556663 + .long 39665264 + .long 3161092265 + .long 0 + .long 0 + .long 4023957346 + .long 3217758473 + .long 2652051644 + .long 3159900932 + .long 0 + .long 1072693248 + .long 1548193280 + .long 1067905620 + .long 2849460080 + .long 3217838064 + .long 586099284 + .long 1071204684 + .long 2426038050 + .long 3217302731 + .long 1209882939 + .long 1070077962 + .long 204929670 + .long 3216565209 + .long 2951398611 + .long 1069077118 + .long 3921389429 + .long 3220569531 + .long 3647185164 + .long 3163480770 + .long 0 + .long 0 + .long 3763679576 + .long 3217651189 + .long 448385104 + .long 3157192355 + .long 0 + .long 1072693248 + .long 64931152 + .long 1067729411 + .long 3593250320 + .long 3217717209 + .long 1127364104 + .long 1071173457 + .long 21320967 + .long 3217207636 + .long 4036384111 + .long 1070020367 + .long 3394693850 + .long 3216433130 + .long 4171153724 + .long 1068939101 + .long 3764662223 + .long 3220582399 + .long 3105356094 + .long 3164312749 + .long 0 + .long 0 + .long 1425758568 + .long 3217544428 + .long 1224254624 + .long 3159340630 + .long 0 + .long 1072693248 + .long 2086713664 + .long 1067564956 + .long 1688303979 + .long 3217598569 + .long 938619730 + .long 1071144522 + .long 526120622 + .long 3217115928 + .long 3819295674 + .long 1069967496 + .long 2059466203 + .long 3216308301 + .long 4034680199 + .long 1068903334 + .long 3607935018 + .long 3220595267 + .long 4202814986 + .long 1016612869 + .long 0 + .long 0 + .long 2429422902 + .long 3217438153 + .long 3297520416 + .long 1012522944 + .long 0 + .long 1072693248 + .long 528565440 + .long 1067373727 + .long 2395999282 + .long 3217481977 + .long 1512953454 + .long 1071117799 + .long 2702142222 + .long 3217023483 + .long 3515899579 + .long 1069919100 + .long 2767905791 + .long 3216190039 + .long 3127036520 + .long 1068808800 + .long 3451207812 + .long 3220608135 + .long 1547135652 + .long 1015564659 + .long 0 + .long 0 + .long 1959743063 + .long 3217332330 + .long 607720656 + .long 3161041674 + .long 0 + .long 1072693248 + .long 225834432 + .long 1067090614 + .long 732340398 + .long 3217367274 + .long 3221152670 + .long 1071093215 + .long 2810588359 + .long 3216851955 + .long 612200454 + .long 1069874948 + .long 645427044 + .long 3216077719 + .long 1966523063 + .long 1068694214 + .long 3294480606 + .long 3220621003 + .long 1489607747 + .long 1003935259 + .long 0 + .long 0 + .long 1940260416 + .long 3217226924 + .long 4144841612 + .long 3159543701 + .long 0 + .long 1072693248 + .long 1135818128 + .long 1066829850 + .long 867512158 + .long 3217254304 + .long 3821819258 + .long 1071070704 + .long 2890864845 + .long 3216685596 + .long 918459421 + .long 1069834828 + .long 797471869 + .long 3215958923 + .long 4093823457 + .long 1068635569 + .long 3137753400 + .long 3220633871 + .long 3579918397 + .long 3163046845 + .long 0 + .long 0 + .long 2242453104 + .long 3217121901 + .long 1143544320 + .long 1011877960 + .long 0 + .long 1072693248 + .long 1016752608 + .long 1066591110 + .long 1270001991 + .long 3217142917 + .long 1410785275 + .long 1071050206 + .long 1103929722 + .long 3216523923 + .long 3268015214 + .long 1069798554 + .long 957665123 + .long 3215754628 + .long 1067716675 + .long 1068610012 + .long 2981026194 + .long 3220646739 + .long 924239062 + .long 3164095787 + .long 0 + .long 0 + .long 982366697 + .long 3217003288 + .long 1160619554 + .long 1010902188 + .long 0 + .long 1072693248 + .long 404678272 + .long 1066346403 + .long 1419607756 + .long 3217032967 + .long 1800406832 + .long 1071031665 + .long 3144361055 + .long 3216366473 + .long 1744148039 + .long 1069765960 + .long 3211598528 + .long 3215558937 + .long 405031618 + .long 1068609434 + .long 2824298989 + .long 3220659607 + .long 2088964722 + .long 1016829832 + .long 0 + .long 0 + .long 931121154 + .long 3216794574 + .long 1121583044 + .long 1012154237 + .long 0 + .long 1072693248 + .long 709357472 + .long 1065955296 + .long 29972165 + .long 3216817456 + .long 254360647 + .long 1071015033 + .long 3732687627 + .long 3216212805 + .long 3224370681 + .long 1069736900 + .long 202592280 + .long 3215370879 + .long 1420621447 + .long 1068491719 + .long 2667571783 + .long 3220672475 + .long 1614402419 + .long 1015998584 + .long 0 + .long 0 + .long 2354785698 + .long 3216586427 + .long 959264268 + .long 3159915811 + .long 0 + .long 1072693248 + .long 2828230112 + .long 1065606626 + .long 3693284264 + .long 3216602456 + .long 1996210616 + .long 1071000265 + .long 3053541878 + .long 3216062494 + .long 1133334567 + .long 1069711236 + .long 977677585 + .long 3215189563 + .long 347473669 + .long 1068436198 + .long 2510844577 + .long 3220685343 + .long 498468876 + .long 1013614463 + .long 0 + .long 0 + .long 1972895212 + .long 3216378783 + .long 3207896256 + .long 3158122047 + .long 0 + .long 1072693248 + .long 4107853760 + .long 1065246718 + .long 2229347510 + .long 3216389497 + .long 4172638464 + .long 1070987323 + .long 212469442 + .long 3215847669 + .long 1989165661 + .long 1069688852 + .long 4131454738 + .long 3215014128 + .long 3452987325 + .long 1068469531 + .long 2354117371 + .long 3220698211 + .long 3512651629 + .long 3162612920 + .long 0 + .long 0 + .long 3439278129 + .long 3216171577 + .long 1073008748 + .long 3159914989 + .long 0 + .long 1072693248 + .long 2934847296 + .long 1064716672 + .long 2625704508 + .long 3216178311 + .long 3692939630 + .long 1070976174 + .long 3072165553 + .long 3215558041 + .long 223733198 + .long 1069669653 + .long 1158528288 + .long 3214753465 + .long 3197803998 + .long 1068357327 + .long 2197390165 + .long 3220711079 + .long 3038089327 + .long 3163878824 + .long 0 + .long 0 + .long 3930011523 + .long 3215946901 + .long 3574565577 + .long 1010859792 + .long 0 + .long 1072693248 + .long 930814464 + .long 1064233867 + .long 3218126771 + .long 3215954682 + .long 873740287 + .long 1070966789 + .long 1580060562 + .long 3215272745 + .long 1505280051 + .long 1069653548 + .long 2221338643 + .long 3214421240 + .long 2641116540 + .long 1068312400 + .long 2040662960 + .long 3220723947 + .long 4270081753 + .long 1017046794 + .long 0 + .long 0 + .long 2319126882 + .long 3215533863 + .long 2132624928 + .long 3153789373 + .long 0 + .long 1072693248 + .long 2962101888 + .long 1063503197 + .long 3966050657 + .long 3215537841 + .long 3178024141 + .long 1070959142 + .long 1146830997 + .long 3214991029 + .long 1630003424 + .long 1069640468 + .long 2204651989 + .long 3214096041 + .long 796867276 + .long 1068243248 + .long 1883935754 + .long 3220736815 + .long 2988318241 + .long 1016251326 + .long 0 + .long 0 + .long 3919601072 + .long 3215121322 + .long 2384023593 + .long 1011053048 + .long 0 + .long 1072693248 + .long 1803946752 + .long 1062615560 + .long 2247013512 + .long 3215122999 + .long 3277043521 + .long 1070953215 + .long 578207576 + .long 3214490301 + .long 1619551293 + .long 1069630354 + .long 2648603598 + .long 3213667381 + .long 2728840488 + .long 1068193529 + .long 1727208548 + .long 3220749683 + .long 2531251621 + .long 1014661577 + .long 0 + .long 0 + .long 612012528 + .long 3214484294 + .long 549859680 + .long 1005659865 + .long 0 + .long 1072693248 + .long 2064191488 + .long 1061404484 + .long 4042886527 + .long 3214485286 + .long 149923164 + .long 1070948993 + .long 104448276 + .long 3213936806 + .long 2663431480 + .long 1069623160 + .long 4100741337 + .long 3213036454 + .long 3253086979 + .long 1068220130 + .long 1570481342 + .long 3220762551 + .long 2595802427 + .long 3161852775 + .long 0 + .long 0 + .long 75380366 + .long 3213435470 + .long 3015416698 + .long 1008346766 + .long 0 + .long 1072693248 + .long 2911696896 + .long 1059306942 + .long 451505506 + .long 3213435718 + .long 3089290734 + .long 1070946463 + .long 3705470162 + .long 3212886822 + .long 2568117130 + .long 1069618857 + .long 643302148 + .long 3211985100 + .long 500114129 + .long 1068202863 + .long 0 + .long 1090469888 + .long 0 + .long 1090469888 + .long 0 + .long 1090469888 + .long 0 + .long 1090469888 + .long 0 + .long 1090469888 + .long 0 + .long 1090469888 + .long 0 + .long 1090469888 + .long 0 + .long 1090469888 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1071931184 + .long 1413742592 + .long 1073291771 + .long 1413742592 + .long 1073291771 + .long 1413742592 + .long 1073291771 + .long 1413742592 + .long 1073291771 + .long 1413742592 + .long 1073291771 + .long 1413742592 + .long 1073291771 + .long 1413742592 + .long 1073291771 + .long 1413742592 + .long 1073291771 + .long 1280049152 + .long 1032227875 + .long 1280049152 + .long 1032227875 + .long 1280049152 + .long 1032227875 + .long 1280049152 + .long 1032227875 + .long 1280049152 + .long 1032227875 + .long 1280049152 + .long 1032227875 + .long 1280049152 + .long 1032227875 + .long 1280049152 + .long 1032227875 + .long 57701189 + .long 992578094 + .long 57701189 + .long 992578094 + .long 57701189 + .long 992578094 + .long 57701189 + .long 992578094 + .long 57701189 + .long 992578094 + .long 57701189 + .long 992578094 + .long 57701189 + .long 992578094 + .long 57701189 + .long 992578094 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 856972294 + .long 1016178214 + .long 856972294 + .long 1016178214 + .long 856972294 + .long 1016178214 + .long 856972294 + .long 1016178214 + .long 856972294 + .long 1016178214 + .long 856972294 + .long 1016178214 + .long 856972294 + .long 1016178214 + .long 856972294 + .long 1016178214 + .long 688016905 + .long 961289425 + .long 688016905 + .long 961289425 + .long 688016905 + .long 961289425 + .long 688016905 + .long 961289425 + .long 688016905 + .long 961289425 + .long 688016905 + .long 961289425 + .long 688016905 + .long 961289425 + .long 688016905 + .long 961289425 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 3191264137 + .long 3217058711 + .long 3191264137 + .long 3217058711 + .long 3191264137 + .long 3217058711 + .long 3191264137 + .long 3217058711 + .long 3191264137 + .long 3217058711 + .long 3191264137 + .long 3217058711 + .long 3191264137 + .long 3217058711 + .long 3191264137 + .long 3217058711 + .long 3706049281 + .long 1063713903 + .long 3706049281 + .long 1063713903 + .long 3706049281 + .long 1063713903 + .long 3706049281 + .long 1063713903 + .long 3706049281 + .long 1063713903 + .long 3706049281 + .long 1063713903 + .long 3706049281 + .long 1063713903 + .long 3706049281 + .long 1063713903 + .long 3458873344 + .long 3202311037 + .long 3458873344 + .long 3202311037 + .long 3458873344 + .long 3202311037 + .long 3458873344 + .long 3202311037 + .long 3458873344 + .long 3202311037 + .long 3458873344 + .long 3202311037 + .long 3458873344 + .long 3202311037 + .long 3458873344 + .long 3202311037 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 879804142 + .long 3218967329 + .long 879804142 + .long 3218967329 + .long 879804142 + .long 3218967329 + .long 879804142 + .long 3218967329 + .long 879804142 + .long 3218967329 + .long 879804142 + .long 3218967329 + .long 879804142 + .long 3218967329 + .long 879804142 + .long 3218967329 + .long 2328005206 + .long 1066919862 + .long 2328005206 + .long 1066919862 + .long 2328005206 + .long 1066919862 + .long 2328005206 + .long 1066919862 + .long 2328005206 + .long 1066919862 + .long 2328005206 + .long 1066919862 + .long 2328005206 + .long 1066919862 + .long 2328005206 + .long 1066919862 + .long 62689958 + .long 3207287387 + .long 62689958 + .long 3207287387 + .long 62689958 + .long 3207287387 + .long 62689958 + .long 3207287387 + .long 62689958 + .long 3207287387 + .long 62689958 + .long 3207287387 + .long 62689958 + .long 3207287387 + .long 62689958 + .long 3207287387 + .type __svml_dtan_data_internal,@object + .size __svml_dtan_data_internal,29248 + .align 64 +__svml_dtan_reduction_data_internal: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 20 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 40 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 81 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 162 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 325 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 651 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1173554908 + .long 1 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2347109817 + .long 2 + .long 0 + .long 0 + .long 0 + .long 0 + .long 399252338 + .long 5 + .long 0 + .long 0 + .long 0 + .long 0 + .long 798504676 + .long 10 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1597009353 + .long 20 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3194018707 + .long 40 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2093070119 + .long 81 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4186140238 + .long 162 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4077313180 + .long 325 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3859659065 + .long 651 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3424350834 + .long 1303 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2553734372 + .long 2607 + .long 0 + .long 0 + .long 0 + .long 0 + .long 812501448 + .long 5215 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1625002897 + .long 10430 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3250005794 + .long 20860 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2205044292 + .long 41721 + .long 0 + .long 0 + .long 0 + .long 0 + .long 115121288 + .long 83443 + .long 0 + .long 0 + .long 0 + .long 0 + .long 230242576 + .long 166886 + .long 0 + .long 0 + .long 0 + .long 0 + .long 460485152 + .long 333772 + .long 0 + .long 0 + .long 0 + .long 0 + .long 920970305 + .long 667544 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1841940610 + .long 1335088 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3683881221 + .long 2670176 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3072795146 + .long 5340353 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1850622997 + .long 10680707 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3701245994 + .long 21361414 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3107524692 + .long 42722829 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1920082089 + .long 85445659 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3840164178 + .long 170891318 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3385361061 + .long 341782637 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2475754826 + .long 683565275 + .long 0 + .long 0 + .long 0 + .long 0 + .long 656542356 + .long 1367130551 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1313084713 + .long 2734261102 + .long 0 + .long 0 + .long 1 + .long 0 + .long 2626169427 + .long 1173554908 + .long 0 + .long 0 + .long 2 + .long 0 + .long 957371559 + .long 2347109817 + .long 0 + .long 0 + .long 5 + .long 0 + .long 1914743119 + .long 399252338 + .long 0 + .long 0 + .long 10 + .long 0 + .long 3829486239 + .long 798504676 + .long 0 + .long 0 + .long 20 + .long 0 + .long 3364005183 + .long 1597009353 + .long 0 + .long 0 + .long 40 + .long 0 + .long 2433043071 + .long 3194018707 + .long 0 + .long 0 + .long 81 + .long 0 + .long 571118846 + .long 2093070119 + .long 0 + .long 0 + .long 162 + .long 0 + .long 1142237692 + .long 4186140238 + .long 0 + .long 0 + .long 325 + .long 0 + .long 2284475384 + .long 4077313180 + .long 0 + .long 0 + .long 651 + .long 0 + .long 273983472 + .long 3859659065 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 547966945 + .long 3424350834 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 1095933890 + .long 2553734372 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 2191867780 + .long 812501448 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 88768265 + .long 1625002897 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 177536531 + .long 3250005794 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 355073063 + .long 2205044292 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 710146126 + .long 115121288 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 1420292253 + .long 230242576 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 2840584506 + .long 460485152 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 1386201717 + .long 920970305 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 2772403434 + .long 1841940610 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 1249839573 + .long 3683881221 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 2499679147 + .long 3072795146 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 704390999 + .long 1850622997 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 1408781999 + .long 3701245994 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 2817563999 + .long 3107524692 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 1340160702 + .long 1920082089 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 2680321405 + .long 3840164178 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 1065675514 + .long 3385361061 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 2131351028 + .long 2475754826 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 4262702056 + .long 656542356 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 4230436817 + .long 1313084713 + .long 0 + .long 0 + .long 1173554908 + .long 1 + .long 4165906339 + .long 2626169427 + .long 0 + .long 0 + .long 2347109817 + .long 2 + .long 4036845383 + .long 957371559 + .long 0 + .long 0 + .long 399252338 + .long 5 + .long 3778723471 + .long 1914743119 + .long 0 + .long 0 + .long 798504676 + .long 10 + .long 3262479647 + .long 3829486239 + .long 0 + .long 0 + .long 1597009353 + .long 20 + .long 2229991998 + .long 3364005183 + .long 0 + .long 0 + .long 3194018707 + .long 40 + .long 165016701 + .long 2433043071 + .long 0 + .long 0 + .long 2093070119 + .long 81 + .long 330033402 + .long 571118846 + .long 0 + .long 0 + .long 4186140238 + .long 162 + .long 660066805 + .long 1142237692 + .long 0 + .long 0 + .long 4077313180 + .long 325 + .long 1320133610 + .long 2284475384 + .long 0 + .long 0 + .long 3859659065 + .long 651 + .long 2640267220 + .long 273983472 + .long 0 + .long 0 + .long 3424350834 + .long 1303 + .long 985567145 + .long 547966945 + .long 0 + .long 0 + .long 2553734372 + .long 2607 + .long 1971134291 + .long 1095933890 + .long 0 + .long 0 + .long 812501448 + .long 5215 + .long 3942268582 + .long 2191867780 + .long 0 + .long 0 + .long 1625002897 + .long 10430 + .long 3589569869 + .long 88768265 + .long 0 + .long 0 + .long 3250005794 + .long 20860 + .long 2884172442 + .long 177536531 + .long 0 + .long 0 + .long 2205044292 + .long 41721 + .long 1473377588 + .long 355073063 + .long 0 + .long 0 + .long 115121288 + .long 83443 + .long 2946755177 + .long 710146126 + .long 0 + .long 0 + .long 230242576 + .long 166886 + .long 1598543059 + .long 1420292253 + .long 0 + .long 0 + .long 460485152 + .long 333772 + .long 3197086118 + .long 2840584506 + .long 0 + .long 0 + .long 920970305 + .long 667544 + .long 2099204941 + .long 1386201717 + .long 0 + .long 0 + .long 1841940610 + .long 1335088 + .long 4198409883 + .long 2772403434 + .long 0 + .long 0 + .long 3683881221 + .long 2670176 + .long 4101852471 + .long 1249839573 + .long 0 + .long 0 + .long 3072795146 + .long 5340353 + .long 3908737646 + .long 2499679147 + .long 0 + .long 0 + .long 1850622997 + .long 10680707 + .long 3522507997 + .long 704390999 + .long 0 + .long 0 + .long 3701245994 + .long 21361414 + .long 2750048699 + .long 1408781999 + .long 0 + .long 0 + .long 3107524692 + .long 42722829 + .long 1205130103 + .long 2817563999 + .long 0 + .long 0 + .long 1920082089 + .long 85445659 + .long 2410260206 + .long 1340160702 + .long 0 + .long 0 + .long 3840164178 + .long 170891318 + .long 525553116 + .long 2680321405 + .long 0 + .long 0 + .long 3385361061 + .long 341782637 + .long 1051106232 + .long 1065675514 + .long 0 + .long 0 + .long 2475754826 + .long 683565275 + .long 2102212464 + .long 2131351028 + .long 0 + .long 0 + .long 656542356 + .long 1367130551 + .long 4204424928 + .long 4262702056 + .long 0 + .long 0 + .long 1313084713 + .long 2734261102 + .long 4113882560 + .long 4230436817 + .long 1 + .long 0 + .long 2626169427 + .long 1173554908 + .long 3932797825 + .long 4165906339 + .long 2 + .long 0 + .long 957371559 + .long 2347109817 + .long 3570628355 + .long 4036845383 + .long 5 + .long 0 + .long 1914743119 + .long 399252338 + .long 2846289414 + .long 3778723471 + .long 10 + .long 0 + .long 3829486239 + .long 798504676 + .long 1397611533 + .long 3262479647 + .long 20 + .long 0 + .long 3364005183 + .long 1597009353 + .long 2795223067 + .long 2229991998 + .long 40 + .long 0 + .long 2433043071 + .long 3194018707 + .long 1295478838 + .long 165016701 + .long 81 + .long 0 + .long 571118846 + .long 2093070119 + .long 2590957677 + .long 330033402 + .long 162 + .long 0 + .long 1142237692 + .long 4186140238 + .long 886948059 + .long 660066805 + .long 325 + .long 0 + .long 2284475384 + .long 4077313180 + .long 1773896118 + .long 1320133610 + .long 651 + .long 0 + .long 273983472 + .long 3859659065 + .long 3547792237 + .long 2640267220 + .long 1303 + .long 0 + .long 547966945 + .long 3424350834 + .long 2800617179 + .long 985567145 + .long 2607 + .long 0 + .long 1095933890 + .long 2553734372 + .long 1306267062 + .long 1971134291 + .long 5215 + .long 0 + .long 2191867780 + .long 812501448 + .long 2612534124 + .long 3942268582 + .long 10430 + .long 0 + .long 88768265 + .long 1625002897 + .long 930100952 + .long 3589569869 + .long 20860 + .long 0 + .long 177536531 + .long 3250005794 + .long 1860201905 + .long 2884172442 + .long 41721 + .long 0 + .long 355073063 + .long 2205044292 + .long 3720403810 + .long 1473377588 + .long 83443 + .long 0 + .long 710146126 + .long 115121288 + .long 3145840325 + .long 2946755177 + .long 166886 + .long 0 + .long 1420292253 + .long 230242576 + .long 1996713354 + .long 1598543059 + .long 333772 + .long 0 + .long 2840584506 + .long 460485152 + .long 3993426708 + .long 3197086118 + .long 667544 + .long 0 + .long 1386201717 + .long 920970305 + .long 3691886121 + .long 2099204941 + .long 1335088 + .long 0 + .long 2772403434 + .long 1841940610 + .long 3088804946 + .long 4198409883 + .long 2670176 + .long 0 + .long 1249839573 + .long 3683881221 + .long 1882642597 + .long 4101852471 + .long 5340353 + .long 0 + .long 2499679147 + .long 3072795146 + .long 3765285194 + .long 3908737646 + .long 10680707 + .long 0 + .long 704390999 + .long 1850622997 + .long 3235603093 + .long 3522507997 + .long 21361414 + .long 0 + .long 1408781999 + .long 3701245994 + .long 2176238891 + .long 2750048699 + .long 42722829 + .long 0 + .long 2817563999 + .long 3107524692 + .long 57510486 + .long 1205130103 + .long 85445659 + .long 0 + .long 1340160702 + .long 1920082089 + .long 115020972 + .long 2410260206 + .long 170891318 + .long 0 + .long 2680321405 + .long 3840164178 + .long 230041945 + .long 525553116 + .long 341782637 + .long 0 + .long 1065675514 + .long 3385361061 + .long 460083891 + .long 1051106232 + .long 683565275 + .long 0 + .long 2131351028 + .long 2475754826 + .long 920167782 + .long 2102212464 + .long 1367130551 + .long 0 + .long 4262702056 + .long 656542356 + .long 1840335564 + .long 4204424928 + .long 2734261102 + .long 0 + .long 4230436817 + .long 1313084713 + .long 3680671129 + .long 4113882560 + .long 1173554908 + .long 1 + .long 4165906339 + .long 2626169427 + .long 3066374962 + .long 3932797825 + .long 2347109817 + .long 2 + .long 4036845383 + .long 957371559 + .long 1837782628 + .long 3570628355 + .long 399252338 + .long 5 + .long 3778723471 + .long 1914743119 + .long 3675565257 + .long 2846289414 + .long 798504676 + .long 10 + .long 3262479647 + .long 3829486239 + .long 3056163219 + .long 1397611533 + .long 1597009353 + .long 20 + .long 2229991998 + .long 3364005183 + .long 1817359143 + .long 2795223067 + .long 3194018707 + .long 40 + .long 165016701 + .long 2433043071 + .long 3634718287 + .long 1295478838 + .long 2093070119 + .long 81 + .long 330033402 + .long 571118846 + .long 2974469278 + .long 2590957677 + .long 4186140238 + .long 162 + .long 660066805 + .long 1142237692 + .long 1653971260 + .long 886948059 + .long 4077313180 + .long 325 + .long 1320133610 + .long 2284475384 + .long 3307942520 + .long 1773896118 + .long 3859659065 + .long 651 + .long 2640267220 + .long 273983472 + .long 2320917745 + .long 3547792237 + .long 3424350834 + .long 1303 + .long 985567145 + .long 547966945 + .long 346868194 + .long 2800617179 + .long 2553734372 + .long 2607 + .long 1971134291 + .long 1095933890 + .long 693736388 + .long 1306267062 + .long 812501448 + .long 5215 + .long 3942268582 + .long 2191867780 + .long 1387472776 + .long 2612534124 + .long 1625002897 + .long 10430 + .long 3589569869 + .long 88768265 + .long 2774945552 + .long 930100952 + .long 3250005794 + .long 20860 + .long 2884172442 + .long 177536531 + .long 1254923809 + .long 1860201905 + .long 2205044292 + .long 41721 + .long 1473377588 + .long 355073063 + .long 2509847619 + .long 3720403810 + .long 115121288 + .long 83443 + .long 2946755177 + .long 710146126 + .long 724727943 + .long 3145840325 + .long 230242576 + .long 166886 + .long 1598543059 + .long 1420292253 + .long 1449455886 + .long 1996713354 + .long 460485152 + .long 333772 + .long 3197086118 + .long 2840584506 + .long 2898911772 + .long 3993426708 + .long 920970305 + .long 667544 + .long 2099204941 + .long 1386201717 + .long 1502856249 + .long 3691886121 + .long 1841940610 + .long 1335088 + .long 4198409883 + .long 2772403434 + .long 3005712498 + .long 3088804946 + .long 3683881221 + .long 2670176 + .long 4101852471 + .long 1249839573 + .long 1716457700 + .long 1882642597 + .long 3072795146 + .long 5340353 + .long 3908737646 + .long 2499679147 + .long 3432915400 + .long 3765285194 + .long 1850622997 + .long 10680707 + .long 3522507997 + .long 704390999 + .long 2570863504 + .long 3235603093 + .long 3701245994 + .long 21361414 + .long 2750048699 + .long 1408781999 + .long 846759712 + .long 2176238891 + .long 3107524692 + .long 42722829 + .long 1205130103 + .long 2817563999 + .long 1693519425 + .long 57510486 + .long 1920082089 + .long 85445659 + .long 2410260206 + .long 1340160702 + .long 3387038850 + .long 115020972 + .long 3840164178 + .long 170891318 + .long 525553116 + .long 2680321405 + .long 2479110404 + .long 230041945 + .long 3385361061 + .long 341782637 + .long 1051106232 + .long 1065675514 + .long 663253512 + .long 460083891 + .long 2475754826 + .long 683565275 + .long 2102212464 + .long 2131351028 + .long 1326507024 + .long 920167782 + .long 656542356 + .long 1367130551 + .long 4204424928 + .long 4262702056 + .long 2653014048 + .long 1840335564 + .long 1313084713 + .long 2734261102 + .long 4113882560 + .long 4230436817 + .long 1011060801 + .long 3680671129 + .long 2626169427 + .long 1173554908 + .long 3932797825 + .long 4165906339 + .long 2022121603 + .long 3066374962 + .long 957371559 + .long 2347109817 + .long 3570628355 + .long 4036845383 + .long 4044243207 + .long 1837782628 + .long 1914743119 + .long 399252338 + .long 2846289414 + .long 3778723471 + .long 3793519119 + .long 3675565257 + .long 3829486239 + .long 798504676 + .long 1397611533 + .long 3262479647 + .long 3292070943 + .long 3056163219 + .long 3364005183 + .long 1597009353 + .long 2795223067 + .long 2229991998 + .long 2289174591 + .long 1817359143 + .long 2433043071 + .long 3194018707 + .long 1295478838 + .long 165016701 + .long 283381887 + .long 3634718287 + .long 571118846 + .long 2093070119 + .long 2590957677 + .long 330033402 + .long 566763775 + .long 2974469278 + .long 1142237692 + .long 4186140238 + .long 886948059 + .long 660066805 + .long 1133527550 + .long 1653971260 + .long 2284475384 + .long 4077313180 + .long 1773896118 + .long 1320133610 + .long 2267055100 + .long 3307942520 + .long 273983472 + .long 3859659065 + .long 3547792237 + .long 2640267220 + .long 239142905 + .long 2320917745 + .long 547966945 + .long 3424350834 + .long 2800617179 + .long 985567145 + .long 478285810 + .long 346868194 + .long 1095933890 + .long 2553734372 + .long 1306267062 + .long 1971134291 + .long 956571621 + .long 693736388 + .long 2191867780 + .long 812501448 + .long 2612534124 + .long 3942268582 + .long 1913143242 + .long 1387472776 + .long 88768265 + .long 1625002897 + .long 930100952 + .long 3589569869 + .long 3826286484 + .long 2774945552 + .long 177536531 + .long 3250005794 + .long 1860201905 + .long 2884172442 + .long 3357605672 + .long 1254923809 + .long 355073063 + .long 2205044292 + .long 3720403810 + .long 1473377588 + .long 2420244049 + .long 2509847619 + .long 710146126 + .long 115121288 + .long 3145840325 + .long 2946755177 + .long 545520802 + .long 724727943 + .long 1420292253 + .long 230242576 + .long 1996713354 + .long 1598543059 + .long 1091041605 + .long 1449455886 + .long 2840584506 + .long 460485152 + .long 3993426708 + .long 3197086118 + .long 2182083211 + .long 2898911772 + .long 1386201717 + .long 920970305 + .long 3691886121 + .long 2099204941 + .long 69199126 + .long 1502856249 + .long 2772403434 + .long 1841940610 + .long 3088804946 + .long 4198409883 + .long 138398252 + .long 3005712498 + .long 1249839573 + .long 3683881221 + .long 1882642597 + .long 4101852471 + .long 276796504 + .long 1716457700 + .long 2499679147 + .long 3072795146 + .long 3765285194 + .long 3908737646 + .long 553593009 + .long 3432915400 + .long 704390999 + .long 1850622997 + .long 3235603093 + .long 3522507997 + .long 1107186019 + .long 2570863504 + .long 1408781999 + .long 3701245994 + .long 2176238891 + .long 2750048699 + .long 2214372039 + .long 846759712 + .long 2817563999 + .long 3107524692 + .long 57510486 + .long 1205130103 + .long 133776782 + .long 1693519425 + .long 1340160702 + .long 1920082089 + .long 115020972 + .long 2410260206 + .long 267553565 + .long 3387038850 + .long 2680321405 + .long 3840164178 + .long 230041945 + .long 525553116 + .long 535107130 + .long 2479110404 + .long 1065675514 + .long 3385361061 + .long 460083891 + .long 1051106232 + .long 1070214261 + .long 663253512 + .long 2131351028 + .long 2475754826 + .long 920167782 + .long 2102212464 + .long 2140428522 + .long 1326507024 + .long 4262702056 + .long 656542356 + .long 1840335564 + .long 4204424928 + .long 4280857045 + .long 2653014048 + .long 4230436817 + .long 1313084713 + .long 3680671129 + .long 4113882560 + .long 4266746795 + .long 1011060801 + .long 4165906339 + .long 2626169427 + .long 3066374962 + .long 3932797825 + .long 4238526295 + .long 2022121603 + .long 4036845383 + .long 957371559 + .long 1837782628 + .long 3570628355 + .long 4182085295 + .long 4044243207 + .long 3778723471 + .long 1914743119 + .long 3675565257 + .long 2846289414 + .long 4069203294 + .long 3793519119 + .long 3262479647 + .long 3829486239 + .long 3056163219 + .long 1397611533 + .long 3843439293 + .long 3292070943 + .long 2229991998 + .long 3364005183 + .long 1817359143 + .long 2795223067 + .long 3391911291 + .long 2289174591 + .long 165016701 + .long 2433043071 + .long 3634718287 + .long 1295478838 + .long 2488855287 + .long 283381887 + .long 330033402 + .long 571118846 + .long 2974469278 + .long 2590957677 + .long 682743279 + .long 566763775 + .long 660066805 + .long 1142237692 + .long 1653971260 + .long 886948059 + .long 1365486558 + .long 1133527550 + .long 1320133610 + .long 2284475384 + .long 3307942520 + .long 1773896118 + .long 2730973117 + .long 2267055100 + .long 2640267220 + .long 273983472 + .long 2320917745 + .long 3547792237 + .long 1166978938 + .long 239142905 + .long 985567145 + .long 547966945 + .long 346868194 + .long 2800617179 + .long 2333957877 + .long 478285810 + .long 1971134291 + .long 1095933890 + .long 693736388 + .long 1306267062 + .long 372948459 + .long 956571621 + .long 3942268582 + .long 2191867780 + .long 1387472776 + .long 2612534124 + .long 745896919 + .long 1913143242 + .long 3589569869 + .long 88768265 + .long 2774945552 + .long 930100952 + .long 1491793838 + .long 3826286484 + .long 2884172442 + .long 177536531 + .long 1254923809 + .long 1860201905 + .long 2983587677 + .long 3357605672 + .long 1473377588 + .long 355073063 + .long 2509847619 + .long 3720403810 + .long 1672208059 + .long 2420244049 + .long 2946755177 + .long 710146126 + .long 724727943 + .long 3145840325 + .long 3344416119 + .long 545520802 + .long 1598543059 + .long 1420292253 + .long 1449455886 + .long 1996713354 + .long 2393864943 + .long 1091041605 + .long 3197086118 + .long 2840584506 + .long 2898911772 + .long 3993426708 + .long 492762590 + .long 2182083211 + .long 2099204941 + .long 1386201717 + .long 1502856249 + .long 3691886121 + .long 985525180 + .long 69199126 + .long 4198409883 + .long 2772403434 + .long 3005712498 + .long 3088804946 + .long 1971050360 + .long 138398252 + .long 4101852471 + .long 1249839573 + .long 1716457700 + .long 1882642597 + .long 3942100721 + .long 276796504 + .long 3908737646 + .long 2499679147 + .long 3432915400 + .long 3765285194 + .long 3589234146 + .long 553593009 + .long 3522507997 + .long 704390999 + .long 2570863504 + .long 3235603093 + .long 2883500997 + .long 1107186019 + .long 2750048699 + .long 1408781999 + .long 846759712 + .long 2176238891 + .long 1472034698 + .long 2214372039 + .long 1205130103 + .long 2817563999 + .long 1693519425 + .long 57510486 + .long 2944069397 + .long 133776782 + .long 2410260206 + .long 1340160702 + .long 3387038850 + .long 115020972 + .long 1593171499 + .long 267553565 + .long 525553116 + .long 2680321405 + .long 2479110404 + .long 230041945 + .long 3186342998 + .long 535107130 + .long 1051106232 + .long 1065675514 + .long 663253512 + .long 460083891 + .long 2077718700 + .long 1070214261 + .long 2102212464 + .long 2131351028 + .long 1326507024 + .long 920167782 + .long 4155437400 + .long 2140428522 + .long 4204424928 + .long 4262702056 + .long 2653014048 + .long 1840335564 + .long 4015907504 + .long 4280857045 + .long 4113882560 + .long 4230436817 + .long 1011060801 + .long 3680671129 + .long 3736847713 + .long 4266746795 + .long 3932797825 + .long 4165906339 + .long 2022121603 + .long 3066374962 + .long 3178728131 + .long 4238526295 + .long 3570628355 + .long 4036845383 + .long 4044243207 + .long 1837782628 + .long 2062488966 + .long 4182085295 + .long 2846289414 + .long 3778723471 + .long 3793519119 + .long 3675565257 + .long 4124977933 + .long 4069203294 + .long 1397611533 + .long 3262479647 + .long 3292070943 + .long 3056163219 + .long 3954988571 + .long 3843439293 + .long 2795223067 + .long 2229991998 + .long 2289174591 + .long 1817359143 + .long 3615009846 + .long 3391911291 + .long 1295478838 + .long 165016701 + .long 283381887 + .long 3634718287 + .long 2935052397 + .long 2488855287 + .long 2590957677 + .long 330033402 + .long 566763775 + .long 2974469278 + .long 1575137499 + .long 682743279 + .long 886948059 + .long 660066805 + .long 1133527550 + .long 1653971260 + .long 3150274999 + .long 1365486558 + .long 1773896118 + .long 1320133610 + .long 2267055100 + .long 3307942520 + .long 2005582702 + .long 2730973117 + .long 3547792237 + .long 2640267220 + .long 239142905 + .long 2320917745 + .long 4011165404 + .long 1166978938 + .long 2800617179 + .long 985567145 + .long 478285810 + .long 346868194 + .long 3727363513 + .long 2333957877 + .long 1306267062 + .long 1971134291 + .long 956571621 + .long 693736388 + .long 3159759730 + .long 372948459 + .long 2612534124 + .long 3942268582 + .long 1913143242 + .long 1387472776 + .long 2024552164 + .long 745896919 + .long 930100952 + .long 3589569869 + .long 3826286484 + .long 2774945552 + .long 4049104329 + .long 1491793838 + .long 1860201905 + .long 2884172442 + .long 3357605672 + .long 1254923809 + .long 3803241362 + .long 2983587677 + .long 3720403810 + .long 1473377588 + .long 2420244049 + .long 2509847619 + .long 3311515428 + .long 1672208059 + .long 3145840325 + .long 2946755177 + .long 545520802 + .long 724727943 + .long 2328063560 + .long 3344416119 + .long 1996713354 + .long 1598543059 + .long 1091041605 + .long 1449455886 + .long 361159825 + .long 2393864943 + .long 3993426708 + .long 3197086118 + .long 2182083211 + .long 2898911772 + .long 722319651 + .long 492762590 + .long 3691886121 + .long 2099204941 + .long 69199126 + .long 1502856249 + .long 1444639302 + .long 985525180 + .long 3088804946 + .long 4198409883 + .long 138398252 + .long 3005712498 + .long 2889278605 + .long 1971050360 + .long 1882642597 + .long 4101852471 + .long 276796504 + .long 1716457700 + .long 1483589915 + .long 3942100721 + .long 3765285194 + .long 3908737646 + .long 553593009 + .long 3432915400 + .long 2967179831 + .long 3589234146 + .long 3235603093 + .long 3522507997 + .long 1107186019 + .long 2570863504 + .long 1639392366 + .long 2883500997 + .long 2176238891 + .long 2750048699 + .long 2214372039 + .long 846759712 + .long 3278784732 + .long 1472034698 + .long 57510486 + .long 1205130103 + .long 133776782 + .long 1693519425 + .long 2262602168 + .long 2944069397 + .long 115020972 + .long 2410260206 + .long 267553565 + .long 3387038850 + .long 230237041 + .long 1593171499 + .long 230041945 + .long 525553116 + .long 535107130 + .long 2479110404 + .long 460474083 + .long 3186342998 + .long 460083891 + .long 1051106232 + .long 1070214261 + .long 663253512 + .long 920948167 + .long 2077718700 + .long 920167782 + .long 2102212464 + .long 2140428522 + .long 1326507024 + .long 1841896334 + .long 4155437400 + .long 1840335564 + .long 4204424928 + .long 4280857045 + .long 2653014048 + .long 3683792669 + .long 4015907504 + .long 3680671129 + .long 4113882560 + .long 4266746795 + .long 1011060801 + .long 3072618042 + .long 3736847713 + .long 3066374962 + .long 3932797825 + .long 4238526295 + .long 2022121603 + .long 1850268788 + .long 3178728131 + .long 1837782628 + .long 3570628355 + .long 4182085295 + .long 4044243207 + .long 3700537577 + .long 2062488966 + .long 3675565257 + .long 2846289414 + .long 4069203294 + .long 3793519119 + .long 3106107858 + .long 4124977933 + .long 3056163219 + .long 1397611533 + .long 3843439293 + .long 3292070943 + .long 1917248420 + .long 3954988571 + .long 1817359143 + .long 2795223067 + .long 3391911291 + .long 2289174591 + .long 3834496840 + .long 3615009846 + .long 3634718287 + .long 1295478838 + .long 2488855287 + .long 283381887 + .long 3374026384 + .long 2935052397 + .long 2974469278 + .long 2590957677 + .long 682743279 + .long 566763775 + .long 2453085473 + .long 1575137499 + .long 1653971260 + .long 886948059 + .long 1365486558 + .long 1133527550 + .long 611203650 + .long 3150274999 + .long 3307942520 + .long 1773896118 + .long 2730973117 + .long 2267055100 + .long 1222407300 + .long 2005582702 + .long 2320917745 + .long 3547792237 + .long 1166978938 + .long 239142905 + .long 2444814601 + .long 4011165404 + .long 346868194 + .long 2800617179 + .long 2333957877 + .long 478285810 + .long 594661906 + .long 3727363513 + .long 693736388 + .long 1306267062 + .long 372948459 + .long 956571621 + .long 1189323812 + .long 3159759730 + .long 1387472776 + .long 2612534124 + .long 745896919 + .long 1913143242 + .long 2378647625 + .long 2024552164 + .long 2774945552 + .long 930100952 + .long 1491793838 + .long 3826286484 + .long 462327955 + .long 4049104329 + .long 1254923809 + .long 1860201905 + .long 2983587677 + .long 3357605672 + .long 924655910 + .long 3803241362 + .long 2509847619 + .long 3720403810 + .long 1672208059 + .long 2420244049 + .long 1849311821 + .long 3311515428 + .long 724727943 + .long 3145840325 + .long 3344416119 + .long 545520802 + .long 3698623643 + .long 2328063560 + .long 1449455886 + .long 1996713354 + .long 2393864943 + .long 1091041605 + .long 3102279991 + .long 361159825 + .long 2898911772 + .long 3993426708 + .long 492762590 + .long 2182083211 + .long 1909592686 + .long 722319651 + .long 1502856249 + .long 3691886121 + .long 985525180 + .long 69199126 + .long 3819185373 + .long 1444639302 + .long 3005712498 + .long 3088804946 + .long 1971050360 + .long 138398252 + .long 3343403450 + .long 2889278605 + .long 1716457700 + .long 1882642597 + .long 3942100721 + .long 276796504 + .long 2391839604 + .long 1483589915 + .long 3432915400 + .long 3765285194 + .long 3589234146 + .long 553593009 + .long 488711913 + .long 2967179831 + .long 2570863504 + .long 3235603093 + .long 2883500997 + .long 1107186019 + .long 977423826 + .long 1639392366 + .long 846759712 + .long 2176238891 + .long 1472034698 + .long 2214372039 + .long 1954847653 + .long 3278784732 + .long 1693519425 + .long 57510486 + .long 2944069397 + .long 133776782 + .long 3909695307 + .long 2262602168 + .long 3387038850 + .long 115020972 + .long 1593171499 + .long 267553565 + .long 3524423319 + .long 230237041 + .long 2479110404 + .long 230041945 + .long 3186342998 + .long 535107130 + .long 2753879342 + .long 460474083 + .long 663253512 + .long 460083891 + .long 2077718700 + .long 1070214261 + .long 1212791388 + .long 920948167 + .long 1326507024 + .long 920167782 + .long 4155437400 + .long 2140428522 + .long 2425582776 + .long 1841896334 + .long 2653014048 + .long 1840335564 + .long 4015907504 + .long 4280857045 + .long 556198256 + .long 3683792669 + .long 1011060801 + .long 3680671129 + .long 3736847713 + .long 4266746795 + .long 1112396512 + .long 3072618042 + .long 2022121603 + .long 3066374962 + .long 3178728131 + .long 4238526295 + .long 2224793024 + .long 1850268788 + .long 4044243207 + .long 1837782628 + .long 2062488966 + .long 4182085295 + .long 154618752 + .long 3700537577 + .long 3793519119 + .long 3675565257 + .long 4124977933 + .long 4069203294 + .long 309237504 + .long 3106107858 + .long 3292070943 + .long 3056163219 + .long 3954988571 + .long 3843439293 + .long 618475008 + .long 1917248420 + .long 2289174591 + .long 1817359143 + .long 3615009846 + .long 3391911291 + .long 1236950016 + .long 3834496840 + .long 283381887 + .long 3634718287 + .long 2935052397 + .long 2488855287 + .long 2473900033 + .long 3374026384 + .long 566763775 + .long 2974469278 + .long 1575137499 + .long 682743279 + .long 652832771 + .long 2453085473 + .long 1133527550 + .long 1653971260 + .long 3150274999 + .long 1365486558 + .long 1305665542 + .long 611203650 + .long 2267055100 + .long 3307942520 + .long 2005582702 + .long 2730973117 + .long 2611331084 + .long 1222407300 + .long 239142905 + .long 2320917745 + .long 4011165404 + .long 1166978938 + .long 927694873 + .long 2444814601 + .long 478285810 + .long 346868194 + .long 3727363513 + .long 2333957877 + .long 1855389746 + .long 594661906 + .long 956571621 + .long 693736388 + .long 3159759730 + .long 372948459 + .long 3710779492 + .long 1189323812 + .long 1913143242 + .long 1387472776 + .long 2024552164 + .long 745896919 + .long 3126591689 + .long 2378647625 + .long 3826286484 + .long 2774945552 + .long 4049104329 + .long 1491793838 + .long 1958216082 + .long 462327955 + .long 3357605672 + .long 1254923809 + .long 3803241362 + .long 2983587677 + .long 3916432164 + .long 924655910 + .long 2420244049 + .long 2509847619 + .long 3311515428 + .long 1672208059 + .long 3537897033 + .long 1849311821 + .long 545520802 + .long 724727943 + .long 2328063560 + .long 3344416119 + .long 2780826770 + .long 3698623643 + .long 1091041605 + .long 1449455886 + .long 361159825 + .long 2393864943 + .long 1266686244 + .long 3102279991 + .long 2182083211 + .long 2898911772 + .long 722319651 + .long 492762590 + .long 2533372489 + .long 1909592686 + .long 69199126 + .long 1502856249 + .long 1444639302 + .long 985525180 + .long 771777682 + .long 3819185373 + .long 138398252 + .long 3005712498 + .long 2889278605 + .long 1971050360 + .long 1543555365 + .long 3343403450 + .long 276796504 + .long 1716457700 + .long 1483589915 + .long 3942100721 + .long 3087110731 + .long 2391839604 + .long 553593009 + .long 3432915400 + .long 2967179831 + .long 3589234146 + .long 1879254167 + .long 488711913 + .long 1107186019 + .long 2570863504 + .long 1639392366 + .long 2883500997 + .long 3758508334 + .long 977423826 + .long 2214372039 + .long 846759712 + .long 3278784732 + .long 1472034698 + .long 3222049373 + .long 1954847653 + .long 133776782 + .long 1693519425 + .long 2262602168 + .long 2944069397 + .long 2149131451 + .long 3909695307 + .long 267553565 + .long 3387038850 + .long 230237041 + .long 1593171499 + .long 3295607 + .long 3524423319 + .long 535107130 + .long 2479110404 + .long 460474083 + .long 3186342998 + .long 6591214 + .long 2753879342 + .long 1070214261 + .long 663253512 + .long 920948167 + .long 2077718700 + .long 13182429 + .long 1212791388 + .long 2140428522 + .long 1326507024 + .long 1841896334 + .long 4155437400 + .long 26364858 + .long 2425582776 + .long 4280857045 + .long 2653014048 + .long 3683792669 + .long 4015907504 + .long 52729717 + .long 556198256 + .long 4266746795 + .long 1011060801 + .long 3072618042 + .long 3736847713 + .long 105459434 + .long 1112396512 + .long 4238526295 + .long 2022121603 + .long 1850268788 + .long 3178728131 + .long 210918868 + .long 2224793024 + .long 4182085295 + .long 4044243207 + .long 3700537577 + .long 2062488966 + .long 421837736 + .long 154618752 + .long 4069203294 + .long 3793519119 + .long 3106107858 + .long 4124977933 + .long 843675472 + .long 309237504 + .long 3843439293 + .long 3292070943 + .long 1917248420 + .long 3954988571 + .long 1687350944 + .long 618475008 + .long 3391911291 + .long 2289174591 + .long 3834496840 + .long 3615009846 + .long 3374701889 + .long 1236950016 + .long 2488855287 + .long 283381887 + .long 3374026384 + .long 2935052397 + .long 2454436482 + .long 2473900033 + .long 682743279 + .long 566763775 + .long 2453085473 + .long 1575137499 + .long 613905668 + .long 652832771 + .long 1365486558 + .long 1133527550 + .long 611203650 + .long 3150274999 + .long 1227811337 + .long 1305665542 + .long 2730973117 + .long 2267055100 + .long 1222407300 + .long 2005582702 + .long 2455622675 + .long 2611331084 + .long 1166978938 + .long 239142905 + .long 2444814601 + .long 4011165404 + .long 616278055 + .long 927694873 + .long 2333957877 + .long 478285810 + .long 594661906 + .long 3727363513 + .long 1232556110 + .long 1855389746 + .long 372948459 + .long 956571621 + .long 1189323812 + .long 3159759730 + .long 2465112221 + .long 3710779492 + .long 745896919 + .long 1913143242 + .long 2378647625 + .long 2024552164 + .long 635257146 + .long 3126591689 + .long 1491793838 + .long 3826286484 + .long 462327955 + .long 4049104329 + .long 1270514292 + .long 1958216082 + .long 2983587677 + .long 3357605672 + .long 924655910 + .long 3803241362 + .long 2541028584 + .long 3916432164 + .long 1672208059 + .long 2420244049 + .long 1849311821 + .long 3311515428 + .long 787089873 + .long 3537897033 + .long 3344416119 + .long 545520802 + .long 3698623643 + .long 2328063560 + .long 1574179747 + .long 2780826770 + .long 2393864943 + .long 1091041605 + .long 3102279991 + .long 361159825 + .long 3148359494 + .long 1266686244 + .long 492762590 + .long 2182083211 + .long 1909592686 + .long 722319651 + .long 2001751692 + .long 2533372489 + .long 985525180 + .long 69199126 + .long 3819185373 + .long 1444639302 + .long 4003503385 + .long 771777682 + .long 1971050360 + .long 138398252 + .long 3343403450 + .long 2889278605 + .long 3712039474 + .long 1543555365 + .long 3942100721 + .long 276796504 + .long 2391839604 + .long 1483589915 + .long 3129111652 + .long 3087110731 + .long 3589234146 + .long 553593009 + .long 488711913 + .long 2967179831 + .long 1963256009 + .long 1879254167 + .long 2883500997 + .long 1107186019 + .long 977423826 + .long 1639392366 + .long 3926512018 + .long 3758508334 + .long 1472034698 + .long 2214372039 + .long 1954847653 + .long 3278784732 + .long 3558056740 + .long 3222049373 + .long 2944069397 + .long 133776782 + .long 3909695307 + .long 2262602168 + .long 2821146184 + .long 2149131451 + .long 1593171499 + .long 267553565 + .long 3524423319 + .long 230237041 + .long 1347325072 + .long 3295607 + .long 3186342998 + .long 535107130 + .long 2753879342 + .long 460474083 + .long 2694650145 + .long 6591214 + .long 2077718700 + .long 1070214261 + .long 1212791388 + .long 920948167 + .long 1094332995 + .long 13182429 + .long 4155437400 + .long 2140428522 + .long 2425582776 + .long 1841896334 + .long 2188665991 + .long 26364858 + .long 4015907504 + .long 4280857045 + .long 556198256 + .long 3683792669 + .long 82364686 + .long 52729717 + .long 3736847713 + .long 4266746795 + .long 1112396512 + .long 3072618042 + .long 164729372 + .long 105459434 + .long 3178728131 + .long 4238526295 + .long 2224793024 + .long 1850268788 + .long 329458745 + .long 210918868 + .long 2062488966 + .long 4182085295 + .long 154618752 + .long 3700537577 + .long 658917491 + .long 421837736 + .long 4124977933 + .long 4069203294 + .long 309237504 + .long 3106107858 + .long 1317834983 + .long 843675472 + .long 3954988571 + .long 3843439293 + .long 618475008 + .long 1917248420 + .long 2635669967 + .long 1687350944 + .long 3615009846 + .long 3391911291 + .long 1236950016 + .long 3834496840 + .long 976372639 + .long 3374701889 + .long 2935052397 + .long 2488855287 + .long 2473900033 + .long 3374026384 + .long 1952745279 + .long 2454436482 + .long 1575137499 + .long 682743279 + .long 652832771 + .long 2453085473 + .long 3905490559 + .long 613905668 + .long 3150274999 + .long 1365486558 + .long 1305665542 + .long 611203650 + .long 3516013822 + .long 1227811337 + .long 2005582702 + .long 2730973117 + .long 2611331084 + .long 1222407300 + .long 2737060348 + .long 2455622675 + .long 4011165404 + .long 1166978938 + .long 927694873 + .long 2444814601 + .long 1179153400 + .long 616278055 + .long 3727363513 + .long 2333957877 + .long 1855389746 + .long 594661906 + .long 2358306800 + .long 1232556110 + .long 3159759730 + .long 372948459 + .long 3710779492 + .long 1189323812 + .long 421646305 + .long 2465112221 + .long 2024552164 + .long 745896919 + .long 3126591689 + .long 2378647625 + .long 843292611 + .long 635257146 + .long 4049104329 + .long 1491793838 + .long 1958216082 + .long 462327955 + .long 1686585223 + .long 1270514292 + .long 3803241362 + .long 2983587677 + .long 3916432164 + .long 924655910 + .long 3373170446 + .long 2541028584 + .long 3311515428 + .long 1672208059 + .long 3537897033 + .long 1849311821 + .long 2451373597 + .long 787089873 + .long 2328063560 + .long 3344416119 + .long 2780826770 + .long 3698623643 + .long 607779899 + .long 1574179747 + .long 361159825 + .long 2393864943 + .long 1266686244 + .long 3102279991 + .long 1215559799 + .long 3148359494 + .long 722319651 + .long 492762590 + .long 2533372489 + .long 1909592686 + .long 2431119599 + .long 2001751692 + .long 1444639302 + .long 985525180 + .long 771777682 + .long 3819185373 + .long 567271902 + .long 4003503385 + .long 2889278605 + .long 1971050360 + .long 1543555365 + .long 3343403450 + .long 1134543805 + .long 3712039474 + .long 1483589915 + .long 3942100721 + .long 3087110731 + .long 2391839604 + .long 2269087610 + .long 3129111652 + .long 2967179831 + .long 3589234146 + .long 1879254167 + .long 488711913 + .long 243207925 + .long 1963256009 + .long 1639392366 + .long 2883500997 + .long 3758508334 + .long 977423826 + .long 486415851 + .long 3926512018 + .long 3278784732 + .long 1472034698 + .long 3222049373 + .long 1954847653 + .long 972831702 + .long 3558056740 + .long 2262602168 + .long 2944069397 + .long 2149131451 + .long 3909695307 + .long 1945663404 + .long 2821146184 + .long 230237041 + .long 1593171499 + .long 3295607 + .long 3524423319 + .long 3891326808 + .long 1347325072 + .long 460474083 + .long 3186342998 + .long 6591214 + .long 2753879342 + .long 3487686321 + .long 2694650145 + .long 920948167 + .long 2077718700 + .long 13182429 + .long 1212791388 + .long 2680405347 + .long 1094332995 + .long 1841896334 + .long 4155437400 + .long 26364858 + .long 2425582776 + .long 1065843399 + .long 2188665991 + .long 3683792669 + .long 4015907504 + .long 52729717 + .long 556198256 + .long 2131686798 + .long 82364686 + .long 3072618042 + .long 3736847713 + .long 105459434 + .long 1112396512 + .long 4263373596 + .long 164729372 + .long 1850268788 + .long 3178728131 + .long 210918868 + .long 2224793024 + .long 4231779897 + .long 329458745 + .long 3700537577 + .long 2062488966 + .long 421837736 + .long 154618752 + .long 4168592498 + .long 658917491 + .long 3106107858 + .long 4124977933 + .long 843675472 + .long 309237504 + .long 4042217701 + .long 1317834983 + .long 1917248420 + .long 3954988571 + .long 1687350944 + .long 618475008 + .long 3789468107 + .long 2635669967 + .long 3834496840 + .long 3615009846 + .long 3374701889 + .long 1236950016 + .long 3283968918 + .long 976372639 + .long 3374026384 + .long 2935052397 + .long 2454436482 + .long 2473900033 + .long 2272970540 + .long 1952745279 + .long 2453085473 + .long 1575137499 + .long 613905668 + .long 652832771 + .long 250973784 + .long 3905490559 + .long 611203650 + .long 3150274999 + .long 1227811337 + .long 1305665542 + .long 501947569 + .long 3516013822 + .long 1222407300 + .long 2005582702 + .long 2455622675 + .long 2611331084 + .long 1003895138 + .long 2737060348 + .long 2444814601 + .long 4011165404 + .long 616278055 + .long 927694873 + .long 2007790276 + .long 1179153400 + .long 594661906 + .long 3727363513 + .long 1232556110 + .long 1855389746 + .long 4015580553 + .long 2358306800 + .long 1189323812 + .long 3159759730 + .long 2465112221 + .long 3710779492 + .long 3736193810 + .long 421646305 + .long 2378647625 + .long 2024552164 + .long 635257146 + .long 3126591689 + .long 3177420325 + .long 843292611 + .long 462327955 + .long 4049104329 + .long 1270514292 + .long 1958216082 + .long 2059873354 + .long 1686585223 + .long 924655910 + .long 3803241362 + .long 2541028584 + .long 3916432164 + .long 4119746708 + .long 3373170446 + .long 1849311821 + .long 3311515428 + .long 787089873 + .long 3537897033 + .long 3944526121 + .long 2451373597 + .long 3698623643 + .long 2328063560 + .long 1574179747 + .long 2780826770 + .long 3594084947 + .long 607779899 + .long 3102279991 + .long 361159825 + .long 3148359494 + .long 1266686244 + .long 2893202598 + .long 1215559799 + .long 1909592686 + .long 722319651 + .long 2001751692 + .long 2533372489 + .long 1491437901 + .long 2431119599 + .long 3819185373 + .long 1444639302 + .long 4003503385 + .long 771777682 + .long 2982875802 + .long 567271902 + .long 3343403450 + .long 2889278605 + .long 3712039474 + .long 1543555365 + .long 1670784308 + .long 1134543805 + .long 2391839604 + .long 1483589915 + .long 3129111652 + .long 3087110731 + .long 3341568617 + .long 2269087610 + .long 488711913 + .long 2967179831 + .long 1963256009 + .long 1879254167 + .long 2388169939 + .long 243207925 + .long 977423826 + .long 1639392366 + .long 3926512018 + .long 3758508334 + .long 481372583 + .long 486415851 + .long 1954847653 + .long 3278784732 + .long 3558056740 + .long 3222049373 + .long 962745166 + .long 972831702 + .long 3909695307 + .long 2262602168 + .long 2821146184 + .long 2149131451 + .long 1925490332 + .long 1945663404 + .long 3524423319 + .long 230237041 + .long 1347325072 + .long 3295607 + .long 3850980665 + .long 3891326808 + .long 2753879342 + .long 460474083 + .long 2694650145 + .long 6591214 + .long 3406994035 + .long 3487686321 + .long 1212791388 + .long 920948167 + .long 1094332995 + .long 13182429 + .long 2519020775 + .long 2680405347 + .long 2425582776 + .long 1841896334 + .long 2188665991 + .long 26364858 + .long 743074255 + .long 1065843399 + .long 556198256 + .long 3683792669 + .long 82364686 + .long 52729717 + .long 1486148511 + .long 2131686798 + .long 1112396512 + .long 3072618042 + .long 164729372 + .long 105459434 + .long 2972297022 + .long 4263373596 + .long 2224793024 + .long 1850268788 + .long 329458745 + .long 210918868 + .long 1649626749 + .long 4231779897 + .long 154618752 + .long 3700537577 + .long 658917491 + .long 421837736 + .long 3299253499 + .long 4168592498 + .long 309237504 + .long 3106107858 + .long 1317834983 + .long 843675472 + .long 2303539703 + .long 4042217701 + .long 618475008 + .long 1917248420 + .long 2635669967 + .long 1687350944 + .long 312112110 + .long 3789468107 + .long 1236950016 + .long 3834496840 + .long 976372639 + .long 3374701889 + .long 624224221 + .long 3283968918 + .long 2473900033 + .long 3374026384 + .long 1952745279 + .long 2454436482 + .long 1248448442 + .long 2272970540 + .long 652832771 + .long 2453085473 + .long 3905490559 + .long 613905668 + .long 2496896884 + .long 250973784 + .long 1305665542 + .long 611203650 + .long 3516013822 + .long 1227811337 + .long 698826472 + .long 501947569 + .long 2611331084 + .long 1222407300 + .long 2737060348 + .long 2455622675 + .long 1397652945 + .long 1003895138 + .long 927694873 + .long 2444814601 + .long 1179153400 + .long 616278055 + .long 2795305890 + .long 2007790276 + .long 1855389746 + .long 594661906 + .long 2358306800 + .long 1232556110 + .long 1295644484 + .long 4015580553 + .long 3710779492 + .long 1189323812 + .long 421646305 + .long 2465112221 + .long 2591288968 + .long 3736193810 + .long 3126591689 + .long 2378647625 + .long 843292611 + .long 635257146 + .long 887610640 + .long 3177420325 + .long 1958216082 + .long 462327955 + .long 1686585223 + .long 1270514292 + .long 1775221280 + .long 2059873354 + .long 3916432164 + .long 924655910 + .long 3373170446 + .long 2541028584 + .long 3550442561 + .long 4119746708 + .long 3537897033 + .long 1849311821 + .long 2451373597 + .long 787089873 + .long 2805917826 + .long 3944526121 + .long 2780826770 + .long 3698623643 + .long 607779899 + .long 1574179747 + .long 1316868356 + .long 3594084947 + .long 1266686244 + .long 3102279991 + .long 1215559799 + .long 3148359494 + .long 2633736712 + .long 2893202598 + .long 2533372489 + .long 1909592686 + .long 2431119599 + .long 2001751692 + .long 972506129 + .long 1491437901 + .long 771777682 + .long 3819185373 + .long 567271902 + .long 4003503385 + .long 1945012259 + .long 2982875802 + .long 1543555365 + .long 3343403450 + .long 1134543805 + .long 3712039474 + .long 3890024518 + .long 1670784308 + .long 3087110731 + .long 2391839604 + .long 2269087610 + .long 3129111652 + .long 3485081741 + .long 3341568617 + .long 1879254167 + .long 488711913 + .long 243207925 + .long 1963256009 + .long 2675196186 + .long 2388169939 + .long 3758508334 + .long 977423826 + .long 486415851 + .long 3926512018 + .long 1055425077 + .long 481372583 + .long 3222049373 + .long 1954847653 + .long 972831702 + .long 3558056740 + .long 2110850155 + .long 962745166 + .long 2149131451 + .long 3909695307 + .long 1945663404 + .long 2821146184 + .long 4221700311 + .long 1925490332 + .long 3295607 + .long 3524423319 + .long 3891326808 + .long 1347325072 + .long 4148433327 + .long 3850980665 + .long 6591214 + .long 2753879342 + .long 3487686321 + .long 2694650145 + .long 4001899359 + .long 3406994035 + .long 13182429 + .long 1212791388 + .long 2680405347 + .long 1094332995 + .long 3708831422 + .long 2519020775 + .long 26364858 + .long 2425582776 + .long 1065843399 + .long 2188665991 + .long 3122695549 + .long 743074255 + .long 52729717 + .long 556198256 + .long 2131686798 + .long 82364686 + .long 1950423802 + .long 1486148511 + .long 105459434 + .long 1112396512 + .long 4263373596 + .long 164729372 + .long 3900847605 + .long 2972297022 + .long 210918868 + .long 2224793024 + .long 4231779897 + .long 329458745 + .long 3506727914 + .long 1649626749 + .long 421837736 + .long 154618752 + .long 4168592498 + .long 658917491 + .long 2718488532 + .long 3299253499 + .long 843675472 + .long 309237504 + .long 4042217701 + .long 1317834983 + .long 1142009769 + .long 2303539703 + .long 1687350944 + .long 618475008 + .long 3789468107 + .long 2635669967 + .long 2284019538 + .long 312112110 + .long 3374701889 + .long 1236950016 + .long 3283968918 + .long 976372639 + .long 273071781 + .long 624224221 + .long 2454436482 + .long 2473900033 + .long 2272970540 + .long 1952745279 + .long 546143563 + .long 1248448442 + .long 613905668 + .long 652832771 + .long 250973784 + .long 3905490559 + .long 1092287127 + .long 2496896884 + .long 1227811337 + .long 1305665542 + .long 501947569 + .long 3516013822 + .long 2184574254 + .long 698826472 + .long 2455622675 + .long 2611331084 + .long 1003895138 + .long 2737060348 + .long 74181213 + .long 1397652945 + .long 616278055 + .long 927694873 + .long 2007790276 + .long 1179153400 + .long 148362426 + .long 2795305890 + .long 1232556110 + .long 1855389746 + .long 4015580553 + .long 2358306800 + .long 296724853 + .long 1295644484 + .long 2465112221 + .long 3710779492 + .long 3736193810 + .long 421646305 + .long 593449707 + .long 2591288968 + .long 635257146 + .long 3126591689 + .long 3177420325 + .long 843292611 + .long 1186899415 + .long 887610640 + .long 1270514292 + .long 1958216082 + .long 2059873354 + .long 1686585223 + .long 2373798830 + .long 1775221280 + .long 2541028584 + .long 3916432164 + .long 4119746708 + .long 3373170446 + .long 452630365 + .long 3550442561 + .long 787089873 + .long 3537897033 + .long 3944526121 + .long 2451373597 + .long 905260731 + .long 2805917826 + .long 1574179747 + .long 2780826770 + .long 3594084947 + .long 607779899 + .long 1810521462 + .long 1316868356 + .long 3148359494 + .long 1266686244 + .long 2893202598 + .long 1215559799 + .long 3621042925 + .long 2633736712 + .long 2001751692 + .long 2533372489 + .long 1491437901 + .long 2431119599 + .long 2947118554 + .long 972506129 + .long 4003503385 + .long 771777682 + .long 2982875802 + .long 567271902 + .long 1599269812 + .long 1945012259 + .long 3712039474 + .long 1543555365 + .long 1670784308 + .long 1134543805 + .long 3198539624 + .long 3890024518 + .long 3129111652 + .long 3087110731 + .long 3341568617 + .long 2269087610 + .long 2102111953 + .long 3485081741 + .long 1963256009 + .long 1879254167 + .long 2388169939 + .long 243207925 + .long 4204223906 + .long 2675196186 + .long 3926512018 + .long 3758508334 + .long 481372583 + .long 486415851 + .long 4113480516 + .long 1055425077 + .long 3558056740 + .long 3222049373 + .long 962745166 + .long 972831702 + .long 3931993737 + .long 2110850155 + .long 2821146184 + .long 2149131451 + .long 1925490332 + .long 1945663404 + .long 3569020178 + .long 4221700311 + .long 1347325072 + .long 3295607 + .long 3850980665 + .long 3891326808 + .long 2843073060 + .long 4148433327 + .long 2694650145 + .long 6591214 + .long 3406994035 + .long 3487686321 + .long 1391178824 + .long 4001899359 + .long 1094332995 + .long 13182429 + .long 2519020775 + .long 2680405347 + .long 2782357648 + .long 3708831422 + .long 2188665991 + .long 26364858 + .long 743074255 + .long 1065843399 + .long 1269748001 + .long 3122695549 + .long 82364686 + .long 52729717 + .long 1486148511 + .long 2131686798 + .long 2539496002 + .long 1950423802 + .long 164729372 + .long 105459434 + .long 2972297022 + .long 4263373596 + .long 784024708 + .long 3900847605 + .long 329458745 + .long 210918868 + .long 1649626749 + .long 4231779897 + .long 1568049417 + .long 3506727914 + .long 658917491 + .long 421837736 + .long 3299253499 + .long 4168592498 + .long 3136098835 + .long 2718488532 + .long 1317834983 + .long 843675472 + .long 2303539703 + .long 4042217701 + .long 1977230375 + .long 1142009769 + .long 2635669967 + .long 1687350944 + .long 312112110 + .long 3789468107 + .long 3954460750 + .long 2284019538 + .long 976372639 + .long 3374701889 + .long 624224221 + .long 3283968918 + .long 3613954205 + .long 273071781 + .long 1952745279 + .long 2454436482 + .long 1248448442 + .long 2272970540 + .long 2932941114 + .long 546143563 + .long 3905490559 + .long 613905668 + .long 2496896884 + .long 250973784 + .long 1570914932 + .long 1092287127 + .long 3516013822 + .long 1227811337 + .long 698826472 + .long 501947569 + .long 3141829865 + .long 2184574254 + .long 2737060348 + .long 2455622675 + .long 1397652945 + .long 1003895138 + .long 1988692435 + .long 74181213 + .long 1179153400 + .long 616278055 + .long 2795305890 + .long 2007790276 + .long 3977384870 + .long 148362426 + .long 2358306800 + .long 1232556110 + .long 1295644484 + .long 4015580553 + .long 3659802444 + .long 296724853 + .long 421646305 + .long 2465112221 + .long 2591288968 + .long 3736193810 + .long 3024637593 + .long 593449707 + .long 843292611 + .long 635257146 + .long 887610640 + .long 3177420325 + .long 1754307891 + .long 1186899415 + .long 1686585223 + .long 1270514292 + .long 1775221280 + .long 2059873354 + .long 3508615783 + .long 2373798830 + .long 3373170446 + .long 2541028584 + .long 3550442561 + .long 4119746708 + .long 2722264270 + .long 452630365 + .long 2451373597 + .long 787089873 + .long 2805917826 + .long 3944526121 + .long 1149561244 + .long 905260731 + .long 607779899 + .long 1574179747 + .long 1316868356 + .long 3594084947 + .long 2299122488 + .long 1810521462 + .long 1215559799 + .long 3148359494 + .long 2633736712 + .long 2893202598 + .long 303277681 + .long 3621042925 + .long 2431119599 + .long 2001751692 + .long 972506129 + .long 1491437901 + .long 606555363 + .long 2947118554 + .long 567271902 + .long 4003503385 + .long 1945012259 + .long 2982875802 + .long 1213110727 + .long 1599269812 + .long 1134543805 + .long 3712039474 + .long 3890024518 + .long 1670784308 + .long 2426221454 + .long 3198539624 + .long 2269087610 + .long 3129111652 + .long 3485081741 + .long 3341568617 + .long 557475612 + .long 2102111953 + .long 243207925 + .long 1963256009 + .long 2675196186 + .long 2388169939 + .long 1114951224 + .long 4204223906 + .long 486415851 + .long 3926512018 + .long 1055425077 + .long 481372583 + .long 2229902448 + .long 4113480516 + .long 972831702 + .long 3558056740 + .long 2110850155 + .long 962745166 + .long 164837600 + .long 3931993737 + .long 1945663404 + .long 2821146184 + .long 4221700311 + .long 1925490332 + .long 329675200 + .long 3569020178 + .long 3891326808 + .long 1347325072 + .long 4148433327 + .long 3850980665 + .long 659350401 + .long 2843073060 + .long 3487686321 + .long 2694650145 + .long 4001899359 + .long 3406994035 + .long 1318700802 + .long 1391178824 + .long 2680405347 + .long 1094332995 + .long 3708831422 + .long 2519020775 + .long 2637401604 + .long 2782357648 + .long 1065843399 + .long 2188665991 + .long 3122695549 + .long 743074255 + .long 979835913 + .long 1269748001 + .long 2131686798 + .long 82364686 + .long 1950423802 + .long 1486148511 + .long 1959671827 + .long 2539496002 + .long 4263373596 + .long 164729372 + .long 3900847605 + .long 2972297022 + .long 3919343654 + .long 784024708 + .long 4231779897 + .long 329458745 + .long 3506727914 + .long 1649626749 + .long 3543720013 + .long 1568049417 + .long 4168592498 + .long 658917491 + .long 2718488532 + .long 3299253499 + .long 2792472730 + .long 3136098835 + .long 4042217701 + .long 1317834983 + .long 1142009769 + .long 2303539703 + .long 1289978165 + .long 1977230375 + .long 3789468107 + .long 2635669967 + .long 2284019538 + .long 312112110 + .long 2579956331 + .long 3954460750 + .long 3283968918 + .long 976372639 + .long 273071781 + .long 624224221 + .long 864945366 + .long 3613954205 + .long 2272970540 + .long 1952745279 + .long 546143563 + .long 1248448442 + .long 1729890733 + .long 2932941114 + .long 250973784 + .long 3905490559 + .long 1092287127 + .long 2496896884 + .long 3459781466 + .long 1570914932 + .long 501947569 + .long 3516013822 + .long 2184574254 + .long 698826472 + .long 2624595636 + .long 3141829865 + .long 1003895138 + .long 2737060348 + .long 74181213 + .long 1397652945 + .long 954223976 + .long 1988692435 + .long 2007790276 + .long 1179153400 + .long 148362426 + .long 2795305890 + .long 1908447953 + .long 3977384870 + .long 4015580553 + .long 2358306800 + .long 296724853 + .long 1295644484 + .long 3816895906 + .long 3659802444 + .long 3736193810 + .long 421646305 + .long 593449707 + .long 2591288968 + .long 3338824517 + .long 3024637593 + .long 3177420325 + .long 843292611 + .long 1186899415 + .long 887610640 + .long 2382681739 + .long 1754307891 + .long 2059873354 + .long 1686585223 + .long 2373798830 + .long 1775221280 + .long 470396183 + .long 3508615783 + .long 4119746708 + .long 3373170446 + .long 452630365 + .long 3550442561 + .long 940792367 + .long 2722264270 + .long 3944526121 + .long 2451373597 + .long 905260731 + .long 2805917826 + .long 1881584735 + .long 1149561244 + .long 3594084947 + .long 607779899 + .long 1810521462 + .long 1316868356 + .long 3763169470 + .long 2299122488 + .long 2893202598 + .long 1215559799 + .long 3621042925 + .long 2633736712 + .long 3231371645 + .long 303277681 + .long 1491437901 + .long 2431119599 + .long 2947118554 + .long 972506129 + .long 2167775995 + .long 606555363 + .long 2982875802 + .long 567271902 + .long 1599269812 + .long 1945012259 + .long 40584695 + .long 1213110727 + .long 1670784308 + .long 1134543805 + .long 3198539624 + .long 3890024518 + .long 81169391 + .long 2426221454 + .long 3341568617 + .long 2269087610 + .long 2102111953 + .long 3485081741 + .long 162338783 + .long 557475612 + .long 2388169939 + .long 243207925 + .long 4204223906 + .long 2675196186 + .long 324677567 + .long 1114951224 + .long 481372583 + .long 486415851 + .long 4113480516 + .long 1055425077 + .long 649355134 + .long 2229902448 + .long 962745166 + .long 972831702 + .long 3931993737 + .long 2110850155 + .long 1298710268 + .long 164837600 + .long 1925490332 + .long 1945663404 + .long 3569020178 + .long 4221700311 + .long 2597420537 + .long 329675200 + .long 3850980665 + .long 3891326808 + .long 2843073060 + .long 4148433327 + .long 899873778 + .long 659350401 + .long 3406994035 + .long 3487686321 + .long 1391178824 + .long 4001899359 + .long 1799747556 + .long 1318700802 + .long 2519020775 + .long 2680405347 + .long 2782357648 + .long 3708831422 + .long 3599495112 + .long 2637401604 + .long 743074255 + .long 1065843399 + .long 1269748001 + .long 3122695549 + .long 2904022928 + .long 979835913 + .long 1486148511 + .long 2131686798 + .long 2539496002 + .long 1950423802 + .long 1513078560 + .long 1959671827 + .long 2972297022 + .long 4263373596 + .long 784024708 + .long 3900847605 + .long 3026157121 + .long 3919343654 + .long 1649626749 + .long 4231779897 + .long 1568049417 + .long 3506727914 + .long 1757346946 + .long 3543720013 + .long 3299253499 + .long 4168592498 + .long 3136098835 + .long 2718488532 + .long 3514693892 + .long 2792472730 + .long 2303539703 + .long 4042217701 + .long 1977230375 + .long 1142009769 + .long 2734420489 + .long 1289978165 + .long 312112110 + .long 3789468107 + .long 3954460750 + .long 2284019538 + .long 1173873683 + .long 2579956331 + .long 624224221 + .long 3283968918 + .long 3613954205 + .long 273071781 + .long 2347747367 + .long 864945366 + .long 1248448442 + .long 2272970540 + .long 2932941114 + .long 546143563 + .long 400527438 + .long 1729890733 + .long 2496896884 + .long 250973784 + .long 1570914932 + .long 1092287127 + .long 801054876 + .long 3459781466 + .long 698826472 + .long 501947569 + .long 3141829865 + .long 2184574254 + .long 1602109753 + .long 2624595636 + .long 1397652945 + .long 1003895138 + .long 1988692435 + .long 74181213 + .long 3204219507 + .long 954223976 + .long 2795305890 + .long 2007790276 + .long 3977384870 + .long 148362426 + .long 2113471718 + .long 1908447953 + .long 1295644484 + .long 4015580553 + .long 3659802444 + .long 296724853 + .long 4226943436 + .long 3816895906 + .long 2591288968 + .long 3736193810 + .long 3024637593 + .long 593449707 + .long 4158919577 + .long 3338824517 + .long 887610640 + .long 3177420325 + .long 1754307891 + .long 1186899415 + .long 4022871858 + .long 2382681739 + .long 1775221280 + .long 2059873354 + .long 3508615783 + .long 2373798830 + .long 3750776420 + .long 470396183 + .long 3550442561 + .long 4119746708 + .long 2722264270 + .long 452630365 + .long 3206585544 + .long 940792367 + .long 2805917826 + .long 3944526121 + .long 1149561244 + .long 905260731 + .long 2118203793 + .long 1881584735 + .long 1316868356 + .long 3594084947 + .long 2299122488 + .long 1810521462 + .long 4236407587 + .long 3763169470 + .long 2633736712 + .long 2893202598 + .long 303277681 + .long 3621042925 + .long 4177847879 + .long 3231371645 + .long 972506129 + .long 1491437901 + .long 606555363 + .long 2947118554 + .long 4060728462 + .long 2167775995 + .long 1945012259 + .long 2982875802 + .long 1213110727 + .long 1599269812 + .long 3826489629 + .long 40584695 + .long 3890024518 + .long 1670784308 + .long 2426221454 + .long 3198539624 + .long 3358011962 + .long 81169391 + .long 3485081741 + .long 3341568617 + .long 557475612 + .long 2102111953 + .long 2421056629 + .long 162338783 + .long 2675196186 + .long 2388169939 + .long 1114951224 + .long 4204223906 + .long 547145963 + .long 324677567 + .long 1055425077 + .long 481372583 + .long 2229902448 + .long 4113480516 + .long 1094291926 + .long 649355134 + .long 2110850155 + .long 962745166 + .long 164837600 + .long 3931993737 + .long 2188583852 + .long 1298710268 + .long 4221700311 + .long 1925490332 + .long 329675200 + .long 3569020178 + .long 82200408 + .long 2597420537 + .long 4148433327 + .long 3850980665 + .long 659350401 + .long 2843073060 + .long 164400817 + .long 899873778 + .long 4001899359 + .long 3406994035 + .long 1318700802 + .long 1391178824 + .long 328801635 + .long 1799747556 + .long 3708831422 + .long 2519020775 + .long 2637401604 + .long 2782357648 + .long 657603271 + .long 3599495112 + .long 3122695549 + .long 743074255 + .long 979835913 + .long 1269748001 + .long 1315206542 + .long 2904022928 + .long 1950423802 + .long 1486148511 + .long 1959671827 + .long 2539496002 + .long 2630413084 + .long 1513078560 + .long 3900847605 + .long 2972297022 + .long 3919343654 + .long 784024708 + .long 965858873 + .long 3026157121 + .long 3506727914 + .long 1649626749 + .long 3543720013 + .long 1568049417 + .long 1931717747 + .long 1757346946 + .long 2718488532 + .long 3299253499 + .long 2792472730 + .long 3136098835 + .long 3863435494 + .long 3514693892 + .long 1142009769 + .long 2303539703 + .long 1289978165 + .long 1977230375 + .long 3431903692 + .long 2734420489 + .long 2284019538 + .long 312112110 + .long 2579956331 + .long 3954460750 + .long 2568840088 + .long 1173873683 + .long 273071781 + .long 624224221 + .long 864945366 + .long 3613954205 + .long 842712880 + .long 2347747367 + .long 546143563 + .long 1248448442 + .long 1729890733 + .long 2932941114 + .long 1685425760 + .long 400527438 + .long 1092287127 + .long 2496896884 + .long 3459781466 + .long 1570914932 + .long 3370851521 + .long 801054876 + .long 2184574254 + .long 698826472 + .long 2624595636 + .long 3141829865 + .long 2446735747 + .long 1602109753 + .long 74181213 + .long 1397652945 + .long 954223976 + .long 1988692435 + .long 598504198 + .long 3204219507 + .long 148362426 + .long 2795305890 + .long 1908447953 + .long 3977384870 + .long 1197008397 + .long 2113471718 + .long 296724853 + .long 1295644484 + .long 3816895906 + .long 3659802444 + .long 2394016794 + .long 4226943436 + .long 593449707 + .long 2591288968 + .long 3338824517 + .long 3024637593 + .long 493066293 + .long 4158919577 + .long 1186899415 + .long 887610640 + .long 2382681739 + .long 1754307891 + .long 986132586 + .long 4022871858 + .long 2373798830 + .long 1775221280 + .long 470396183 + .long 3508615783 + .long 1972265172 + .long 3750776420 + .long 452630365 + .long 3550442561 + .long 940792367 + .long 2722264270 + .long 3944530345 + .long 3206585544 + .long 905260731 + .long 2805917826 + .long 1881584735 + .long 1149561244 + .long 3594093395 + .long 2118203793 + .long 1810521462 + .long 1316868356 + .long 3763169470 + .long 2299122488 + .long 2893219494 + .long 4236407587 + .long 3621042925 + .long 2633736712 + .long 3231371645 + .long 303277681 + .long 1491471692 + .long 4177847879 + .long 2947118554 + .long 972506129 + .long 2167775995 + .long 606555363 + .long 2982943385 + .long 4060728462 + .long 1599269812 + .long 1945012259 + .long 40584695 + .long 1213110727 + .long 1670919475 + .long 3826489629 + .long 3198539624 + .long 3890024518 + .long 81169391 + .long 2426221454 + .long 3341838951 + .long 3358011962 + .long 2102111953 + .long 3485081741 + .long 162338783 + .long 557475612 + .long 2388710606 + .long 2421056629 + .long 4204223906 + .long 2675196186 + .long 324677567 + .long 1114951224 + .long 482453916 + .long 547145963 + .long 4113480516 + .long 1055425077 + .long 649355134 + .long 2229902448 + .long 964907833 + .long 1094291926 + .long 3931993737 + .long 2110850155 + .long 1298710268 + .long 164837600 + .long 1929815667 + .long 2188583852 + .long 3569020178 + .long 4221700311 + .long 2597420537 + .long 329675200 + .long 3859631335 + .long 82200408 + .long 2843073060 + .long 4148433327 + .long 899873778 + .long 659350401 + .long 3424295375 + .long 164400817 + .long 1391178824 + .long 4001899359 + .long 1799747556 + .long 1318700802 + .long 2553623455 + .long 328801635 + .long 2782357648 + .long 3708831422 + .long 3599495112 + .long 2637401604 + .long 812279614 + .long 657603271 + .long 1269748001 + .long 3122695549 + .long 2904022928 + .long 979835913 + .long 1624559229 + .long 1315206542 + .long 2539496002 + .long 1950423802 + .long 1513078560 + .long 1959671827 + .long 3249118458 + .long 2630413084 + .long 784024708 + .long 3900847605 + .long 3026157121 + .long 3919343654 + .long 2203269620 + .long 965858873 + .long 1568049417 + .long 3506727914 + .long 1757346946 + .long 3543720013 + .long 111571945 + .long 1931717747 + .long 3136098835 + .long 2718488532 + .long 3514693892 + .long 2792472730 + .long 223143890 + .long 3863435494 + .long 1977230375 + .long 1142009769 + .long 2734420489 + .long 1289978165 + .long 446287780 + .long 3431903692 + .long 3954460750 + .long 2284019538 + .long 1173873683 + .long 2579956331 + .long 892575561 + .long 2568840088 + .long 3613954205 + .long 273071781 + .long 2347747367 + .long 864945366 + .long 1785151123 + .long 842712880 + .long 2932941114 + .long 546143563 + .long 400527438 + .long 1729890733 + .long 3570302247 + .long 1685425760 + .long 1570914932 + .long 1092287127 + .long 801054876 + .long 3459781466 + .long 2845637198 + .long 3370851521 + .long 3141829865 + .long 2184574254 + .long 1602109753 + .long 2624595636 + .long 1396307100 + .long 2446735747 + .long 1988692435 + .long 74181213 + .long 3204219507 + .long 954223976 + .long 2792614201 + .long 598504198 + .long 3977384870 + .long 148362426 + .long 2113471718 + .long 1908447953 + .long 1290261106 + .long 1197008397 + .long 3659802444 + .long 296724853 + .long 4226943436 + .long 3816895906 + .long 2580522212 + .long 2394016794 + .long 3024637593 + .long 593449707 + .long 4158919577 + .long 3338824517 + .long 866077128 + .long 493066293 + .long 1754307891 + .long 1186899415 + .long 4022871858 + .long 2382681739 + .long 1732154256 + .long 986132586 + .long 3508615783 + .long 2373798830 + .long 3750776420 + .long 470396183 + .long 3464308513 + .long 1972265172 + .long 2722264270 + .long 452630365 + .long 3206585544 + .long 940792367 + .long 2633649730 + .long 3944530345 + .long 1149561244 + .long 905260731 + .long 2118203793 + .long 1881584735 + .long 972332164 + .long 3594093395 + .long 2299122488 + .long 1810521462 + .long 4236407587 + .long 3763169470 + .long 1944664328 + .long 2893219494 + .long 303277681 + .long 3621042925 + .long 4177847879 + .long 3231371645 + .long 3889328657 + .long 1491471692 + .long 606555363 + .long 2947118554 + .long 4060728462 + .long 2167775995 + .long 3483690018 + .long 2982943385 + .long 1213110727 + .long 1599269812 + .long 3826489629 + .long 40584695 + .long 2672412741 + .long 1670919475 + .long 2426221454 + .long 3198539624 + .long 3358011962 + .long 81169391 + .long 1049858187 + .long 3341838951 + .long 557475612 + .long 2102111953 + .long 2421056629 + .long 162338783 + .long 2099716375 + .long 2388710606 + .long 1114951224 + .long 4204223906 + .long 547145963 + .long 324677567 + .long 4199432751 + .long 482453916 + .long 2229902448 + .long 4113480516 + .long 1094291926 + .long 649355134 + .long 4103898207 + .long 964907833 + .long 164837600 + .long 3931993737 + .long 2188583852 + .long 1298710268 + .long 3912829119 + .long 1929815667 + .long 329675200 + .long 3569020178 + .long 82200408 + .long 2597420537 + .long 3530690942 + .long 3859631335 + .long 659350401 + .long 2843073060 + .long 164400817 + .long 899873778 + .long 2766414588 + .long 3424295375 + .long 1318700802 + .long 1391178824 + .long 328801635 + .long 1799747556 + .long 1237861880 + .long 2553623455 + .long 2637401604 + .long 2782357648 + .long 657603271 + .long 3599495112 + .long 2475723761 + .long 812279614 + .long 979835913 + .long 1269748001 + .long 1315206542 + .long 2904022928 + .long 656480226 + .long 1624559229 + .long 1959671827 + .long 2539496002 + .long 2630413084 + .long 1513078560 + .long 1312960453 + .long 3249118458 + .long 3919343654 + .long 784024708 + .long 965858873 + .long 3026157121 + .long 2625920907 + .long 2203269620 + .long 3543720013 + .long 1568049417 + .long 1931717747 + .long 1757346946 + .long 956874519 + .long 111571945 + .long 2792472730 + .long 3136098835 + .long 3863435494 + .long 3514693892 + .long 1913749038 + .long 223143890 + .long 1289978165 + .long 1977230375 + .long 3431903692 + .long 2734420489 + .long 3827498077 + .long 446287780 + .long 2579956331 + .long 3954460750 + .long 2568840088 + .long 1173873683 + .long 3360028859 + .long 892575561 + .long 864945366 + .long 3613954205 + .long 842712880 + .long 2347747367 + .long 2425090423 + .long 1785151123 + .long 1729890733 + .long 2932941114 + .long 1685425760 + .long 400527438 + .long 555213551 + .long 3570302247 + .long 3459781466 + .long 1570914932 + .long 3370851521 + .long 801054876 + .long 1110427102 + .long 2845637198 + .long 2624595636 + .long 3141829865 + .long 2446735747 + .long 1602109753 + .long 2220854205 + .long 1396307100 + .long 954223976 + .long 1988692435 + .long 598504198 + .long 3204219507 + .long 146741115 + .long 2792614201 + .long 1908447953 + .long 3977384870 + .long 1197008397 + .long 2113471718 + .long 293482231 + .long 1290261106 + .long 3816895906 + .long 3659802444 + .long 2394016794 + .long 4226943436 + .long 586964463 + .long 2580522212 + .long 3338824517 + .long 3024637593 + .long 493066293 + .long 4158919577 + .long 1173928927 + .long 866077128 + .long 2382681739 + .long 1754307891 + .long 986132586 + .long 4022871858 + .long 2347857855 + .long 1732154256 + .long 470396183 + .long 3508615783 + .long 1972265172 + .long 3750776420 + .long 400748414 + .long 3464308513 + .long 940792367 + .long 2722264270 + .long 3944530345 + .long 3206585544 + .long 801496828 + .long 2633649730 + .long 1881584735 + .long 1149561244 + .long 3594093395 + .long 2118203793 + .long 1602993657 + .long 972332164 + .long 3763169470 + .long 2299122488 + .long 2893219494 + .long 4236407587 + .long 3205987314 + .long 1944664328 + .long 3231371645 + .long 303277681 + .long 1491471692 + .long 4177847879 + .long 2117007332 + .long 3889328657 + .long 2167775995 + .long 606555363 + .long 2982943385 + .long 4060728462 + .long 4234014665 + .long 3483690018 + .long 40584695 + .long 1213110727 + .long 1670919475 + .long 3826489629 + .long 4173062034 + .long 2672412741 + .long 81169391 + .long 2426221454 + .long 3341838951 + .long 3358011962 + .long 4051156773 + .long 1049858187 + .long 162338783 + .long 557475612 + .long 2388710606 + .long 2421056629 + .long 3807346250 + .long 2099716375 + .long 324677567 + .long 1114951224 + .long 482453916 + .long 547145963 + .long 3319725204 + .long 4199432751 + .long 649355134 + .long 2229902448 + .long 964907833 + .long 1094291926 + .long 2344483112 + .long 4103898207 + .long 1298710268 + .long 164837600 + .long 1929815667 + .long 2188583852 + .long 393998928 + .long 3912829119 + .long 2597420537 + .long 329675200 + .long 3859631335 + .long 82200408 + .long 787997856 + .long 3530690942 + .long 899873778 + .long 659350401 + .long 3424295375 + .long 164400817 + .long 1575995713 + .long 2766414588 + .long 1799747556 + .long 1318700802 + .long 2553623455 + .long 328801635 + .long 3151991427 + .long 1237861880 + .long 3599495112 + .long 2637401604 + .long 812279614 + .long 657603271 + .long 2009015559 + .long 2475723761 + .long 2904022928 + .long 979835913 + .long 1624559229 + .long 1315206542 + .long 4018031118 + .long 656480226 + .long 1513078560 + .long 1959671827 + .long 3249118458 + .long 2630413084 + .long 3741094941 + .long 1312960453 + .long 3026157121 + .long 3919343654 + .long 2203269620 + .long 965858873 + .long 3187222587 + .long 2625920907 + .long 1757346946 + .long 3543720013 + .long 111571945 + .long 1931717747 + .long 2079477878 + .long 956874519 + .long 3514693892 + .long 2792472730 + .long 223143890 + .long 3863435494 + .long 4158955756 + .long 1913749038 + .long 2734420489 + .long 1289978165 + .long 446287780 + .long 3431903692 + .long 4022944216 + .long 3827498077 + .long 1173873683 + .long 2579956331 + .long 892575561 + .long 2568840088 + .long 3750921137 + .long 3360028859 + .long 2347747367 + .long 864945366 + .long 1785151123 + .long 842712880 + .long 3206874979 + .long 2425090423 + .long 400527438 + .long 1729890733 + .long 3570302247 + .long 1685425760 + .long 2118782663 + .long 555213551 + .long 801054876 + .long 3459781466 + .long 2845637198 + .long 3370851521 + .long 4237565327 + .long 1110427102 + .long 1602109753 + .long 2624595636 + .long 1396307100 + .long 2446735747 + .long 4180163359 + .long 2220854205 + .long 3204219507 + .long 954223976 + .long 2792614201 + .long 598504198 + .long 4065359423 + .long 146741115 + .long 2113471718 + .long 1908447953 + .long 1290261106 + .long 1197008397 + .long 3835751551 + .long 293482231 + .long 4226943436 + .long 3816895906 + .long 2580522212 + .long 2394016794 + .long 3376535807 + .long 586964463 + .long 4158919577 + .long 3338824517 + .long 866077128 + .long 493066293 + .long 2458104319 + .long 1173928927 + .long 4022871858 + .long 2382681739 + .long 1732154256 + .long 986132586 + .long 621241343 + .long 2347857855 + .long 3750776420 + .long 470396183 + .long 3464308513 + .long 1972265172 + .long 1242482686 + .long 400748414 + .long 3206585544 + .long 940792367 + .long 2633649730 + .long 3944530345 + .long 2484965372 + .long 801496828 + .long 2118203793 + .long 1881584735 + .long 972332164 + .long 3594093395 + .long 674963448 + .long 1602993657 + .long 4236407587 + .long 3763169470 + .long 1944664328 + .long 2893219494 + .long 1349926897 + .long 3205987314 + .long 4177847879 + .long 3231371645 + .long 3889328657 + .long 1491471692 + .long 2699853794 + .long 2117007332 + .long 4060728462 + .long 2167775995 + .long 3483690018 + .long 2982943385 + .long 1104740292 + .long 4234014665 + .long 3826489629 + .long 40584695 + .long 2672412741 + .long 1670919475 + .long 2209480585 + .long 4173062034 + .long 3358011962 + .long 81169391 + .long 1049858187 + .long 3341838951 + .long 123993874 + .long 4051156773 + .long 2421056629 + .long 162338783 + .long 2099716375 + .long 2388710606 + .long 247987749 + .long 3807346250 + .long 547145963 + .long 324677567 + .long 4199432751 + .long 482453916 + .long 495975499 + .long 3319725204 + .long 1094291926 + .long 649355134 + .long 4103898207 + .long 964907833 + .long 991950999 + .long 2344483112 + .long 2188583852 + .long 1298710268 + .long 3912829119 + .long 1929815667 + .long 1983901999 + .long 393998928 + .long 82200408 + .long 2597420537 + .long 3530690942 + .long 3859631335 + .long 3967803999 + .long 787997856 + .long 164400817 + .long 899873778 + .long 2766414588 + .long 3424295375 + .long 3640640703 + .long 1575995713 + .long 328801635 + .long 1799747556 + .long 1237861880 + .long 2553623455 + .long 2986314111 + .long 3151991427 + .long 657603271 + .long 3599495112 + .long 2475723761 + .long 812279614 + .long 1677660927 + .long 2009015559 + .long 1315206542 + .long 2904022928 + .long 656480226 + .long 1624559229 + .long 3355321855 + .long 4018031118 + .long 2630413084 + .long 1513078560 + .long 1312960453 + .long 3249118458 + .long 2415676415 + .long 3741094941 + .long 965858873 + .long 3026157121 + .long 2625920907 + .long 2203269620 + .long 536385535 + .long 3187222587 + .long 1931717747 + .long 1757346946 + .long 956874519 + .long 111571945 + .long 1072771071 + .long 2079477878 + .long 3863435494 + .long 3514693892 + .long 1913749038 + .long 223143890 + .long 2145542143 + .long 4158955756 + .long 3431903692 + .long 2734420489 + .long 3827498077 + .long 446287780 + .long 4291084286 + .long 4022944216 + .long 2568840088 + .long 1173873683 + .long 3360028859 + .long 892575561 + .long 4287201277 + .long 3750921137 + .long 842712880 + .long 2347747367 + .long 2425090423 + .long 1785151123 + .long 4279435259 + .long 3206874979 + .long 1685425760 + .long 400527438 + .long 555213551 + .long 3570302247 + .long 4263903223 + .long 2118782663 + .long 3370851521 + .long 801054876 + .long 1110427102 + .long 2845637198 + .long 4232839151 + .long 4237565327 + .long 2446735747 + .long 1602109753 + .long 2220854205 + .long 1396307100 + .long 4170711006 + .long 4180163359 + .long 598504198 + .long 3204219507 + .long 146741115 + .long 2792614201 + .long 4046454716 + .long 4065359423 + .long 1197008397 + .long 2113471718 + .long 293482231 + .long 1290261106 + .long 3797942136 + .long 3835751551 + .long 2394016794 + .long 4226943436 + .long 586964463 + .long 2580522212 + .long 3300916976 + .long 3376535807 + .long 493066293 + .long 4158919577 + .long 1173928927 + .long 866077128 + .long 2306866656 + .long 2458104319 + .long 986132586 + .long 4022871858 + .long 2347857855 + .long 1732154256 + .long 318766016 + .long 621241343 + .long 1972265172 + .long 3750776420 + .long 400748414 + .long 3464308513 + .long 637532033 + .long 1242482686 + .long 3944530345 + .long 3206585544 + .long 801496828 + .long 2633649730 + .long 1275064066 + .long 2484965372 + .long 3594093395 + .long 2118203793 + .long 1602993657 + .long 972332164 + .long 2550128133 + .long 674963448 + .long 2893219494 + .long 4236407587 + .long 3205987314 + .long 1944664328 + .long 805288971 + .long 1349926897 + .long 1491471692 + .long 4177847879 + .long 2117007332 + .long 3889328657 + .long 1610577942 + .long 2699853794 + .long 2982943385 + .long 4060728462 + .long 4234014665 + .long 3483690018 + .long 3221155884 + .long 1104740292 + .long 1670919475 + .long 3826489629 + .long 4173062034 + .long 2672412741 + .long 2147344473 + .long 2209480585 + .long 3341838951 + .long 3358011962 + .long 4051156773 + .long 1049858187 + .long 4294688947 + .long 123993874 + .long 2388710606 + .long 2421056629 + .long 3807346250 + .long 2099716375 + .long 4294410598 + .long 247987749 + .long 482453916 + .long 547145963 + .long 3319725204 + .long 4199432751 + .long 4293853900 + .long 495975499 + .long 964907833 + .long 1094291926 + .long 2344483112 + .long 4103898207 + .long 4292740504 + .long 991950999 + .long 1929815667 + .long 2188583852 + .long 393998928 + .long 3912829119 + .long 4290513712 + .long 1983901999 + .long 3859631335 + .long 82200408 + .long 787997856 + .long 3530690942 + .long 4286060128 + .long 3967803999 + .long 3424295375 + .long 164400817 + .long 1575995713 + .long 2766414588 + .long 4277152960 + .long 3640640703 + .long 2553623455 + .long 328801635 + .long 3151991427 + .long 1237861880 + .long 4259338624 + .long 2986314111 + .long 812279614 + .long 657603271 + .long 2009015559 + .long 2475723761 + .long 4223709953 + .long 1677660927 + .long 1624559229 + .long 1315206542 + .long 4018031118 + .long 656480226 + .long 4152452611 + .long 3355321855 + .long 3249118458 + .long 2630413084 + .long 3741094941 + .long 1312960453 + .long 4009937927 + .long 2415676415 + .long 2203269620 + .long 965858873 + .long 3187222587 + .long 2625920907 + .long 3724908559 + .long 536385535 + .long 111571945 + .long 1931717747 + .long 2079477878 + .long 956874519 + .long 3154849823 + .long 1072771071 + .long 223143890 + .long 3863435494 + .long 4158955756 + .long 1913749038 + .long 2014732351 + .long 2145542143 + .long 446287780 + .long 3431903692 + .long 4022944216 + .long 3827498077 + .long 4029464703 + .long 4291084286 + .long 892575561 + .long 2568840088 + .long 3750921137 + .long 3360028859 + .long 3763962110 + .long 4287201277 + .long 1785151123 + .long 842712880 + .long 3206874979 + .long 2425090423 + .long 3232956925 + .long 4279435259 + .long 3570302247 + .long 1685425760 + .long 2118782663 + .long 555213551 + .long 2170946555 + .long 4263903223 + .long 2845637198 + .long 3370851521 + .long 4237565327 + .long 1110427102 + .long 46925815 + .long 4232839151 + .long 1396307100 + .long 2446735747 + .long 4180163359 + .long 2220854205 + .long 93851631 + .long 4170711006 + .long 2792614201 + .long 598504198 + .long 4065359423 + .long 146741115 + .long 187703262 + .long 4046454716 + .long 1290261106 + .long 1197008397 + .long 3835751551 + .long 293482231 + .long 375406524 + .long 3797942136 + .long 2580522212 + .long 2394016794 + .long 3376535807 + .long 586964463 + .long 750813049 + .long 3300916976 + .long 866077128 + .long 493066293 + .long 2458104319 + .long 1173928927 + .long 1501626098 + .long 2306866656 + .long 1732154256 + .long 986132586 + .long 621241343 + .long 2347857855 + .long 3003252197 + .long 318766016 + .long 3464308513 + .long 1972265172 + .long 1242482686 + .long 400748414 + .long 1711537099 + .long 637532033 + .long 2633649730 + .long 3944530345 + .long 2484965372 + .long 801496828 + .long 3423074199 + .long 1275064066 + .long 972332164 + .long 3594093395 + .long 674963448 + .long 1602993657 + .long 2551181103 + .long 2550128133 + .long 1944664328 + .long 2893219494 + .long 1349926897 + .long 3205987314 + .long 807394910 + .long 805288971 + .long 3889328657 + .long 1491471692 + .long 2699853794 + .long 2117007332 + .long 1614789820 + .long 1610577942 + .long 3483690018 + .long 2982943385 + .long 1104740292 + .long 4234014665 + .long 3229579640 + .long 3221155884 + .long 2672412741 + .long 1670919475 + .long 2209480585 + .long 4173062034 + .long 2164191985 + .long 2147344473 + .long 1049858187 + .long 3341838951 + .long 123993874 + .long 4051156773 + .long 33416674 + .long 4294688947 + .long 2099716375 + .long 2388710606 + .long 247987749 + .long 3807346250 + .long 66833348 + .long 4294410598 + .long 4199432751 + .long 482453916 + .long 495975499 + .long 3319725204 + .long 133666696 + .long 4293853900 + .long 4103898207 + .long 964907833 + .long 991950999 + .long 2344483112 + .long 267333393 + .long 4292740504 + .long 3912829119 + .long 1929815667 + .long 1983901999 + .long 393998928 + .long 534666787 + .long 4290513712 + .long 3530690942 + .long 3859631335 + .long 3967803999 + .long 787997856 + .long 1069333574 + .long 4286060128 + .long 2766414588 + .long 3424295375 + .long 3640640703 + .long 1575995713 + .long 2138667148 + .long 4277152960 + .long 1237861880 + .long 2553623455 + .long 2986314111 + .long 3151991427 + .long 4277334296 + .long 4259338624 + .long 2475723761 + .long 812279614 + .long 1677660927 + .long 2009015559 + .long 4259701297 + .long 4223709953 + .long 656480226 + .long 1624559229 + .long 3355321855 + .long 4018031118 + .long 4224435298 + .long 4152452611 + .long 1312960453 + .long 3249118458 + .long 2415676415 + .long 3741094941 + .long 4153903301 + .long 4009937927 + .long 2625920907 + .long 2203269620 + .long 536385535 + .long 3187222587 + .long 4012839307 + .long 3724908559 + .long 956874519 + .long 111571945 + .long 1072771071 + .long 2079477878 + .long 3730711318 + .long 3154849823 + .long 1913749038 + .long 223143890 + .long 2145542143 + .long 4158955756 + .long 3166455341 + .long 2014732351 + .long 3827498077 + .long 446287780 + .long 4291084286 + .long 4022944216 + .long 2037943386 + .long 4029464703 + .long 3360028859 + .long 892575561 + .long 4287201277 + .long 3750921137 + .long 4075886773 + .long 3763962110 + .long 2425090423 + .long 1785151123 + .long 4279435259 + .long 3206874979 + .long 3856806251 + .long 3232956925 + .long 555213551 + .long 3570302247 + .long 4263903223 + .long 2118782663 + .long 3418645206 + .long 2170946555 + .long 1110427102 + .long 2845637198 + .long 4232839151 + .long 4237565327 + .long 2542323117 + .long 46925815 + .long 2220854205 + .long 1396307100 + .long 4170711006 + .long 4180163359 + .long 789678938 + .long 93851631 + .long 146741115 + .long 2792614201 + .long 4046454716 + .long 4065359423 + .long 1579357876 + .long 187703262 + .long 293482231 + .long 1290261106 + .long 3797942136 + .long 3835751551 + .long 3158715752 + .long 375406524 + .long 586964463 + .long 2580522212 + .long 3300916976 + .long 3376535807 + .long 2022464208 + .long 750813049 + .long 1173928927 + .long 866077128 + .long 2306866656 + .long 2458104319 + .long 4044928416 + .long 1501626098 + .long 2347857855 + .long 1732154256 + .long 318766016 + .long 621241343 + .long 3794889537 + .long 3003252197 + .long 400748414 + .long 3464308513 + .long 637532033 + .long 1242482686 + .long 3294811778 + .long 1711537099 + .long 801496828 + .long 2633649730 + .long 1275064066 + .long 2484965372 + .long 2294656261 + .long 3423074199 + .long 1602993657 + .long 972332164 + .long 2550128133 + .long 674963448 + .long 294345226 + .long 2551181103 + .long 3205987314 + .long 1944664328 + .long 805288971 + .long 1349926897 + .long 588690452 + .long 807394910 + .long 2117007332 + .long 3889328657 + .long 1610577942 + .long 2699853794 + .long 1177380905 + .long 1614789820 + .long 4234014665 + .long 3483690018 + .long 3221155884 + .long 1104740292 + .long 2354761811 + .long 3229579640 + .long 4173062034 + .long 2672412741 + .long 2147344473 + .long 2209480585 + .long 414556326 + .long 2164191985 + .long 4051156773 + .long 1049858187 + .long 4294688947 + .long 123993874 + .long 829112653 + .long 33416674 + .long 3807346250 + .long 2099716375 + .long 4294410598 + .long 247987749 + .long 1658225307 + .long 66833348 + .long 3319725204 + .long 4199432751 + .long 4293853900 + .long 495975499 + .long 3316450614 + .long 133666696 + .long 2344483112 + .long 4103898207 + .long 4292740504 + .long 991950999 + .long 2337933933 + .long 267333393 + .long 393998928 + .long 3912829119 + .long 4290513712 + .long 1983901999 + .long 380900570 + .long 534666787 + .long 787997856 + .long 3530690942 + .long 4286060128 + .long 3967803999 + .long 761801140 + .long 1069333574 + .long 1575995713 + .long 2766414588 + .long 4277152960 + .long 3640640703 + .long 1523602280 + .long 2138667148 + .long 3151991427 + .long 1237861880 + .long 4259338624 + .long 2986314111 + .long 3047204561 + .long 4277334296 + .long 2009015559 + .long 2475723761 + .long 4223709953 + .long 1677660927 + .long 1799441827 + .long 4259701297 + .long 4018031118 + .long 656480226 + .long 4152452611 + .long 3355321855 + .long 3598883655 + .long 4224435298 + .long 3741094941 + .long 1312960453 + .long 4009937927 + .long 2415676415 + .long 2902800015 + .long 4153903301 + .long 3187222587 + .long 2625920907 + .long 3724908559 + .long 536385535 + .long 1510632735 + .long 4012839307 + .long 2079477878 + .long 956874519 + .long 3154849823 + .long 1072771071 + .long 3021265470 + .long 3730711318 + .long 4158955756 + .long 1913749038 + .long 2014732351 + .long 2145542143 + .long 1747563645 + .long 3166455341 + .long 4022944216 + .long 3827498077 + .long 4029464703 + .long 4291084286 + .long 3495127291 + .long 2037943386 + .long 3750921137 + .long 3360028859 + .long 3763962110 + .long 4287201277 + .long 2695287286 + .long 4075886773 + .long 3206874979 + .long 2425090423 + .long 3232956925 + .long 4279435259 + .long 1095607277 + .long 3856806251 + .long 2118782663 + .long 555213551 + .long 2170946555 + .long 4263903223 + .long 2191214555 + .long 3418645206 + .long 4237565327 + .long 1110427102 + .long 46925815 + .long 4232839151 + .long 87461814 + .long 2542323117 + .long 4180163359 + .long 2220854205 + .long 93851631 + .long 4170711006 + .long 174923629 + .long 789678938 + .long 4065359423 + .long 146741115 + .long 187703262 + .long 4046454716 + .long 349847258 + .long 1579357876 + .long 3835751551 + .long 293482231 + .long 375406524 + .long 3797942136 + .long 699694516 + .long 3158715752 + .long 3376535807 + .long 586964463 + .long 750813049 + .long 3300916976 + .long 1399389033 + .long 2022464208 + .long 2458104319 + .long 1173928927 + .long 1501626098 + .long 2306866656 + .long 2798778067 + .long 4044928416 + .long 621241343 + .long 2347857855 + .long 3003252197 + .long 318766016 + .long 1302588838 + .long 3794889537 + .long 1242482686 + .long 400748414 + .long 1711537099 + .long 637532033 + .long 2605177677 + .long 3294811778 + .long 2484965372 + .long 801496828 + .long 3423074199 + .long 1275064066 + .long 915388059 + .long 2294656261 + .long 674963448 + .long 1602993657 + .long 2551181103 + .long 2550128133 + .long 1830776118 + .long 294345226 + .long 1349926897 + .long 3205987314 + .long 807394910 + .long 805288971 + .long 3661552236 + .long 588690452 + .long 2699853794 + .long 2117007332 + .long 1614789820 + .long 1610577942 + .long 3028137177 + .long 1177380905 + .long 1104740292 + .long 4234014665 + .long 3229579640 + .long 3221155884 + .long 1761307059 + .long 2354761811 + .long 2209480585 + .long 4173062034 + .long 2164191985 + .long 2147344473 + .long 3522614119 + .long 414556326 + .long 123993874 + .long 4051156773 + .long 33416674 + .long 4294688947 + .long 2750260943 + .long 829112653 + .long 247987749 + .long 3807346250 + .long 66833348 + .long 4294410598 + .long 1205554591 + .long 1658225307 + .long 495975499 + .long 3319725204 + .long 133666696 + .long 4293853900 + .long 2411109183 + .long 3316450614 + .long 991950999 + .long 2344483112 + .long 267333393 + .long 4292740504 + .long 527251070 + .long 2337933933 + .long 1983901999 + .long 393998928 + .long 534666787 + .long 4290513712 + .long 1054502141 + .long 380900570 + .long 3967803999 + .long 787997856 + .long 1069333574 + .long 4286060128 + .long 2109004283 + .long 761801140 + .long 3640640703 + .long 1575995713 + .long 2138667148 + .long 4277152960 + .long 4218008566 + .long 1523602280 + .long 2986314111 + .long 3151991427 + .long 4277334296 + .long 4259338624 + .long 4141049836 + .long 3047204561 + .long 1677660927 + .long 2009015559 + .long 4259701297 + .long 4223709953 + .long 3987132377 + .long 1799441827 + .long 3355321855 + .long 4018031118 + .long 4224435298 + .long 4152452611 + .long 3679297459 + .long 3598883655 + .long 2415676415 + .long 3741094941 + .long 4153903301 + .long 4009937927 + .long 3063627623 + .long 2902800015 + .long 536385535 + .long 3187222587 + .long 4012839307 + .long 3724908559 + .long 1832287951 + .long 1510632735 + .long 1072771071 + .long 2079477878 + .long 3730711318 + .long 3154849823 + .long 3664575902 + .long 3021265470 + .long 2145542143 + .long 4158955756 + .long 3166455341 + .long 2014732351 + .long 3034184508 + .long 1747563645 + .long 4291084286 + .long 4022944216 + .long 2037943386 + .long 4029464703 + .long 1773401721 + .long 3495127291 + .long 4287201277 + .long 3750921137 + .long 4075886773 + .long 3763962110 + .long 3546803442 + .long 2695287286 + .long 4279435259 + .long 3206874979 + .long 3856806251 + .long 3232956925 + .long 2798639588 + .long 1095607277 + .long 4263903223 + .long 2118782663 + .long 3418645206 + .long 2170946555 + .long 1302311881 + .long 2191214555 + .long 4232839151 + .long 4237565327 + .long 2542323117 + .long 46925815 + .long 2604623763 + .long 87461814 + .long 4170711006 + .long 4180163359 + .long 789678938 + .long 93851631 + .long 914280231 + .long 174923629 + .long 4046454716 + .long 4065359423 + .long 1579357876 + .long 187703262 + .long 1828560463 + .long 349847258 + .long 3797942136 + .long 3835751551 + .long 3158715752 + .long 375406524 + .long 3657120927 + .long 699694516 + .long 3300916976 + .long 3376535807 + .long 2022464208 + .long 750813049 + .long 3019274558 + .long 1399389033 + .long 2306866656 + .long 2458104319 + .long 4044928416 + .long 1501626098 + .long 1743581820 + .long 2798778067 + .long 318766016 + .long 621241343 + .long 3794889537 + .long 3003252197 + .long 3487163641 + .long 1302588838 + .long 637532033 + .long 1242482686 + .long 3294811778 + .long 1711537099 + .long 2679359986 + .long 2605177677 + .long 1275064066 + .long 2484965372 + .long 2294656261 + .long 3423074199 + .long 1063752677 + .long 915388059 + .long 2550128133 + .long 674963448 + .long 294345226 + .long 2551181103 + .long 2127505355 + .long 1830776118 + .long 805288971 + .long 1349926897 + .long 588690452 + .long 807394910 + .long 4255010710 + .long 3661552236 + .long 1610577942 + .long 2699853794 + .long 1177380905 + .long 1614789820 + .long 4215054124 + .long 3028137177 + .long 3221155884 + .long 1104740292 + .long 2354761811 + .long 3229579640 + .long 4135140952 + .long 1761307059 + .long 2147344473 + .long 2209480585 + .long 414556326 + .long 2164191985 + .long 3975314608 + .long 3522614119 + .long 4294688947 + .long 123993874 + .long 829112653 + .long 33416674 + .long 3655661921 + .long 2750260943 + .long 4294410598 + .long 247987749 + .long 1658225307 + .long 66833348 + .long 3016356546 + .long 1205554591 + .long 4293853900 + .long 495975499 + .long 3316450614 + .long 133666696 + .long 1737745796 + .long 2411109183 + .long 4292740504 + .long 991950999 + .long 2337933933 + .long 267333393 + .long 3475491593 + .long 527251070 + .long 4290513712 + .long 1983901999 + .long 380900570 + .long 534666787 + .long 2656015891 + .long 1054502141 + .long 4286060128 + .long 3967803999 + .long 761801140 + .long 1069333574 + .long 1017064486 + .long 2109004283 + .long 4277152960 + .long 3640640703 + .long 1523602280 + .long 2138667148 + .long 2034128973 + .long 4218008566 + .long 4259338624 + .long 2986314111 + .long 3047204561 + .long 4277334296 + .long 4068257947 + .long 4141049836 + .long 4223709953 + .long 1677660927 + .long 1799441827 + .long 4259701297 + .long 3841548598 + .long 3987132377 + .long 4152452611 + .long 3355321855 + .long 3598883655 + .long 4224435298 + .long 3388129901 + .long 3679297459 + .long 4009937927 + .long 2415676415 + .long 2902800015 + .long 4153903301 + .long 2481292507 + .long 3063627623 + .long 3724908559 + .long 536385535 + .long 1510632735 + .long 4012839307 + .long 667617719 + .long 1832287951 + .long 3154849823 + .long 1072771071 + .long 3021265470 + .long 3730711318 + .long 1335235438 + .long 3664575902 + .long 2014732351 + .long 2145542143 + .long 1747563645 + .long 3166455341 + .long 2670470877 + .long 3034184508 + .long 4029464703 + .long 4291084286 + .long 3495127291 + .long 2037943386 + .long 1045974458 + .long 1773401721 + .long 3763962110 + .long 4287201277 + .long 2695287286 + .long 4075886773 + .long 2091948916 + .long 3546803442 + .long 3232956925 + .long 4279435259 + .long 1095607277 + .long 3856806251 + .long 4183897833 + .long 2798639588 + .long 2170946555 + .long 4263903223 + .long 2191214555 + .long 3418645206 + .long 4072828371 + .long 1302311881 + .long 46925815 + .long 4232839151 + .long 87461814 + .long 2542323117 + .long 3850689447 + .long 2604623763 + .long 93851631 + .long 4170711006 + .long 174923629 + .long 789678938 + .long 3406411599 + .long 914280231 + .long 187703262 + .long 4046454716 + .long 349847258 + .long 1579357876 + .long 2517855902 + .long 1828560463 + .long 375406524 + .long 3797942136 + .long 699694516 + .long 3158715752 + .long 740744509 + .long 3657120927 + .long 750813049 + .long 3300916976 + .long 1399389033 + .long 2022464208 + .long 1481489018 + .long 3019274558 + .long 1501626098 + .long 2306866656 + .long 2798778067 + .long 4044928416 + .long 2962978036 + .long 1743581820 + .long 3003252197 + .long 318766016 + .long 1302588838 + .long 3794889537 + .long 1630988776 + .long 3487163641 + .long 1711537099 + .long 637532033 + .long 2605177677 + .long 3294811778 + .long 3261977553 + .long 2679359986 + .long 3423074199 + .long 1275064066 + .long 915388059 + .long 2294656261 + .long 2228987811 + .long 1063752677 + .long 2551181103 + .long 2550128133 + .long 1830776118 + .long 294345226 + .long 163008326 + .long 2127505355 + .long 807394910 + .long 805288971 + .long 3661552236 + .long 588690452 + .long 326016652 + .long 4255010710 + .long 1614789820 + .long 1610577942 + .long 3028137177 + .long 1177380905 + .long 652033304 + .long 4215054124 + .long 3229579640 + .long 3221155884 + .long 1761307059 + .long 2354761811 + .long 1304066609 + .long 4135140952 + .long 2164191985 + .long 2147344473 + .long 3522614119 + .long 414556326 + .long 2608133219 + .long 3975314608 + .long 33416674 + .long 4294688947 + .long 2750260943 + .long 829112653 + .long 921299143 + .long 3655661921 + .long 66833348 + .long 4294410598 + .long 1205554591 + .long 1658225307 + .long 1842598287 + .long 3016356546 + .long 133666696 + .long 4293853900 + .long 2411109183 + .long 3316450614 + .long 3685196575 + .long 1737745796 + .long 267333393 + .long 4292740504 + .long 527251070 + .long 2337933933 + .long 3075425855 + .long 3475491593 + .long 534666787 + .long 4290513712 + .long 1054502141 + .long 380900570 + .long 1855884414 + .long 2656015891 + .long 1069333574 + .long 4286060128 + .long 2109004283 + .long 761801140 + .long 3711768829 + .long 1017064486 + .long 2138667148 + .long 4277152960 + .long 4218008566 + .long 1523602280 + .long 3128570363 + .long 2034128973 + .long 4277334296 + .long 4259338624 + .long 4141049836 + .long 3047204561 + .long 1962173430 + .long 4068257947 + .long 4259701297 + .long 4223709953 + .long 3987132377 + .long 1799441827 + .long 3924346860 + .long 3841548598 + .long 4224435298 + .long 4152452611 + .long 3679297459 + .long 3598883655 + .long 3553726425 + .long 3388129901 + .long 4153903301 + .long 4009937927 + .long 3063627623 + .long 2902800015 + .long 2812485555 + .long 2481292507 + .long 4012839307 + .long 3724908559 + .long 1832287951 + .long 1510632735 + .long 1330003814 + .long 667617719 + .long 3730711318 + .long 3154849823 + .long 3664575902 + .long 3021265470 + .long 2660007629 + .long 1335235438 + .long 3166455341 + .long 2014732351 + .long 3034184508 + .long 1747563645 + .long 1025047962 + .long 2670470877 + .long 2037943386 + .long 4029464703 + .long 1773401721 + .long 3495127291 + .long 2050095924 + .long 1045974458 + .long 4075886773 + .long 3763962110 + .long 3546803442 + .long 2695287286 + .long 4100191849 + .long 2091948916 + .long 3856806251 + .long 3232956925 + .long 2798639588 + .long 1095607277 + .long 3905416403 + .long 4183897833 + .long 3418645206 + .long 2170946555 + .long 1302311881 + .long 2191214555 + .long 3515865511 + .long 4072828371 + .long 2542323117 + .long 46925815 + .long 2604623763 + .long 87461814 + .long 2736763727 + .long 3850689447 + .long 789678938 + .long 93851631 + .long 914280231 + .long 174923629 + .long 1178560158 + .long 3406411599 + .long 1579357876 + .long 187703262 + .long 1828560463 + .long 349847258 + .long 2357120316 + .long 2517855902 + .long 3158715752 + .long 375406524 + .long 3657120927 + .long 699694516 + .long 419273337 + .long 740744509 + .long 2022464208 + .long 750813049 + .long 3019274558 + .long 1399389033 + .long 838546674 + .long 1481489018 + .long 4044928416 + .long 1501626098 + .long 1743581820 + .long 2798778067 + .long 1677093349 + .long 2962978036 + .long 3794889537 + .long 3003252197 + .long 3487163641 + .long 1302588838 + .long 3354186699 + .long 1630988776 + .long 3294811778 + .long 1711537099 + .long 2679359986 + .long 2605177677 + .long 2413406103 + .long 3261977553 + .long 2294656261 + .long 3423074199 + .long 1063752677 + .long 915388059 + .long 531844911 + .long 2228987811 + .long 294345226 + .long 2551181103 + .long 2127505355 + .long 1830776118 + .long 1063689823 + .long 163008326 + .long 588690452 + .long 807394910 + .long 4255010710 + .long 3661552236 + .long 2127379647 + .long 326016652 + .long 1177380905 + .long 1614789820 + .long 4215054124 + .long 3028137177 + .long 4254759295 + .long 652033304 + .long 2354761811 + .long 3229579640 + .long 4135140952 + .long 1761307059 + .long 4214551295 + .long 1304066609 + .long 414556326 + .long 2164191985 + .long 3975314608 + .long 3522614119 + .long 4134135294 + .long 2608133219 + .long 829112653 + .long 33416674 + .long 3655661921 + .long 2750260943 + .long 3973303293 + .long 921299143 + .long 1658225307 + .long 66833348 + .long 3016356546 + .long 1205554591 + .long 3651639290 + .long 1842598287 + .long 3316450614 + .long 133666696 + .long 1737745796 + .long 2411109183 + .long 3008311285 + .long 3685196575 + .long 2337933933 + .long 267333393 + .long 3475491593 + .long 527251070 + .long 1721655274 + .long 3075425855 + .long 380900570 + .long 534666787 + .long 2656015891 + .long 1054502141 + .long 3443310548 + .long 1855884414 + .long 761801140 + .long 1069333574 + .long 1017064486 + .long 2109004283 + .long 2591653800 + .long 3711768829 + .long 1523602280 + .long 2138667148 + .long 2034128973 + .long 4218008566 + .long 888340305 + .long 3128570363 + .long 3047204561 + .long 4277334296 + .long 4068257947 + .long 4141049836 + .long 1776680610 + .long 1962173430 + .long 1799441827 + .long 4259701297 + .long 3841548598 + .long 3987132377 + .long 3553361221 + .long 3924346860 + .long 3598883655 + .long 4224435298 + .long 3388129901 + .long 3679297459 + .long 2811755147 + .long 3553726425 + .long 2902800015 + .long 4153903301 + .long 2481292507 + .long 3063627623 + .long 1328542998 + .long 2812485555 + .long 1510632735 + .long 4012839307 + .long 667617719 + .long 1832287951 + .long 2657085997 + .long 1330003814 + .long 3021265470 + .long 3730711318 + .long 1335235438 + .long 3664575902 + .long 1019204698 + .long 2660007629 + .long 1747563645 + .long 3166455341 + .long 2670470877 + .long 3034184508 + .long 2038409397 + .long 1025047962 + .long 3495127291 + .long 2037943386 + .long 1045974458 + .long 1773401721 + .long 4076818795 + .long 2050095924 + .long 2695287286 + .long 4075886773 + .long 2091948916 + .long 3546803442 + .long 3858670295 + .long 4100191849 + .long 1095607277 + .long 3856806251 + .long 4183897833 + .long 2798639588 + .long 3422373294 + .long 3905416403 + .long 2191214555 + .long 3418645206 + .long 4072828371 + .long 1302311881 + .long 2549779293 + .long 3515865511 + .long 87461814 + .long 2542323117 + .long 3850689447 + .long 2604623763 + .long 804591290 + .long 2736763727 + .long 174923629 + .long 789678938 + .long 3406411599 + .long 914280231 + .long 1609182581 + .long 1178560158 + .long 349847258 + .long 1579357876 + .long 2517855902 + .long 1828560463 + .long 3218365162 + .long 2357120316 + .long 699694516 + .long 3158715752 + .long 740744509 + .long 3657120927 + .long 2141763028 + .long 419273337 + .long 1399389033 + .long 2022464208 + .long 1481489018 + .long 3019274558 + .long 4283526057 + .long 838546674 + .long 2798778067 + .long 4044928416 + .long 2962978036 + .long 1743581820 + .long 4272084818 + .long 1677093349 + .long 1302588838 + .long 3794889537 + .long 1630988776 + .long 3487163641 + .long 4249202340 + .long 3354186699 + .long 2605177677 + .long 3294811778 + .long 3261977553 + .long 2679359986 + .long 4203437385 + .long 2413406103 + .long 915388059 + .long 2294656261 + .long 2228987811 + .long 1063752677 + .long 4111907475 + .long 531844911 + .long 1830776118 + .long 294345226 + .long 163008326 + .long 2127505355 + .long 3928847655 + .long 1063689823 + .long 3661552236 + .long 588690452 + .long 326016652 + .long 4255010710 + .long 3562728015 + .long 2127379647 + .long 3028137177 + .long 1177380905 + .long 652033304 + .long 4215054124 + .long 2830488734 + .long 4254759295 + .long 1761307059 + .long 2354761811 + .long 1304066609 + .long 4135140952 + .long 1366010173 + .long 4214551295 + .long 3522614119 + .long 414556326 + .long 2608133219 + .long 3975314608 + .long 2732020347 + .long 4134135294 + .long 2750260943 + .long 829112653 + .long 921299143 + .long 3655661921 + .long 1169073399 + .long 3973303293 + .long 1205554591 + .long 1658225307 + .long 1842598287 + .long 3016356546 + .long 2338146798 + .long 3651639290 + .long 2411109183 + .long 3316450614 + .long 3685196575 + .long 1737745796 + .long 381326301 + .long 3008311285 + .long 527251070 + .long 2337933933 + .long 3075425855 + .long 3475491593 + .long 762652602 + .long 1721655274 + .long 1054502141 + .long 380900570 + .long 1855884414 + .long 2656015891 + .long 1525305205 + .long 3443310548 + .long 2109004283 + .long 761801140 + .long 3711768829 + .long 1017064486 + .long 3050610411 + .long 2591653800 + .long 4218008566 + .long 1523602280 + .long 3128570363 + .long 2034128973 + .long 1806253526 + .long 888340305 + .long 4141049836 + .long 3047204561 + .long 1962173430 + .long 4068257947 + .long 3612507052 + .long 1776680610 + .long 3987132377 + .long 1799441827 + .long 3924346860 + .long 3841548598 + .long 2930046808 + .long 3553361221 + .long 3679297459 + .long 3598883655 + .long 3553726425 + .long 3388129901 + .long 1565126321 + .long 2811755147 + .long 3063627623 + .long 2902800015 + .long 2812485555 + .long 2481292507 + .long 3130252643 + .long 1328542998 + .long 1832287951 + .long 1510632735 + .long 1330003814 + .long 667617719 + .long 1965537991 + .long 2657085997 + .long 3664575902 + .long 3021265470 + .long 2660007629 + .long 1335235438 + .long 3931075983 + .long 1019204698 + .long 3034184508 + .long 1747563645 + .long 1025047962 + .long 2670470877 + .long 3567184671 + .long 2038409397 + .long 1773401721 + .long 3495127291 + .long 2050095924 + .long 1045974458 + .long 2839402047 + .long 4076818795 + .long 3546803442 + .long 2695287286 + .long 4100191849 + .long 2091948916 + .long 1383836798 + .long 3858670295 + .long 2798639588 + .long 1095607277 + .long 3905416403 + .long 4183897833 + .long 2767673597 + .long 3422373294 + .long 1302311881 + .long 2191214555 + .long 3515865511 + .long 4072828371 + .long 1240379898 + .long 2549779293 + .long 2604623763 + .long 87461814 + .long 2736763727 + .long 3850689447 + .long 2480759797 + .long 804591290 + .long 914280231 + .long 174923629 + .long 1178560158 + .long 3406411599 + .long 666552299 + .long 1609182581 + .long 1828560463 + .long 349847258 + .long 2357120316 + .long 2517855902 + .long 1333104599 + .long 3218365162 + .long 3657120927 + .long 699694516 + .long 419273337 + .long 740744509 + .long 2666209199 + .long 2141763028 + .long 3019274558 + .long 1399389033 + .long 838546674 + .long 1481489018 + .long 1037451103 + .long 4283526057 + .long 1743581820 + .long 2798778067 + .long 1677093349 + .long 2962978036 + .long 2074902206 + .long 4272084818 + .long 3487163641 + .long 1302588838 + .long 3354186699 + .long 1630988776 + .long 4149804412 + .long 4249202340 + .long 2679359986 + .long 2605177677 + .long 2413406103 + .long 3261977553 + .long 4004641529 + .long 4203437385 + .long 1063752677 + .long 915388059 + .long 531844911 + .long 2228987811 + .long 3714315762 + .long 4111907475 + .long 2127505355 + .long 1830776118 + .long 1063689823 + .long 163008326 + .long 3133664229 + .long 3928847655 + .long 4255010710 + .long 3661552236 + .long 2127379647 + .long 326016652 + .long 1972361163 + .long 3562728015 + .long 4215054124 + .long 3028137177 + .long 4254759295 + .long 652033304 + .long 3944722327 + .long 2830488734 + .long 4135140952 + .long 1761307059 + .long 4214551295 + .long 1304066609 + .long 3594477359 + .long 1366010173 + .long 3975314608 + .long 3522614119 + .long 4134135294 + .long 2608133219 + .long 2893987423 + .long 2732020347 + .long 3655661921 + .long 2750260943 + .long 3973303293 + .long 921299143 + .long 1493007550 + .long 1169073399 + .long 3016356546 + .long 1205554591 + .long 3651639290 + .long 1842598287 + .long 2986015100 + .long 2338146798 + .long 1737745796 + .long 2411109183 + .long 3008311285 + .long 3685196575 + .long 1677062904 + .long 381326301 + .long 3475491593 + .long 527251070 + .long 1721655274 + .long 3075425855 + .long 3354125809 + .long 762652602 + .long 2656015891 + .long 1054502141 + .long 3443310548 + .long 1855884414 + .long 2413284322 + .long 1525305205 + .long 1017064486 + .long 2109004283 + .long 2591653800 + .long 3711768829 + .long 531601349 + .long 3050610411 + .long 2034128973 + .long 4218008566 + .long 888340305 + .long 3128570363 + .long 1063202699 + .long 1806253526 + .long 4068257947 + .long 4141049836 + .long 1776680610 + .long 1962173430 + .long 2126405399 + .long 3612507052 + .long 3841548598 + .long 3987132377 + .long 3553361221 + .long 3924346860 + .long 4252810799 + .long 2930046808 + .long 3388129901 + .long 3679297459 + .long 2811755147 + .long 3553726425 + .long 4210654302 + .long 1565126321 + .long 2481292507 + .long 3063627623 + .long 1328542998 + .long 2812485555 + .long 4126341309 + .long 3130252643 + .long 667617719 + .long 1832287951 + .long 2657085997 + .long 1330003814 + .long 3957715323 + .long 1965537991 + .long 1335235438 + .long 3664575902 + .long 1019204698 + .long 2660007629 + .long 3620463350 + .long 3931075983 + .long 2670470877 + .long 3034184508 + .long 2038409397 + .long 1025047962 + .long 2945959404 + .long 3567184671 + .long 1045974458 + .long 1773401721 + .long 4076818795 + .long 2050095924 + .long 1596951513 + .long 2839402047 + .long 2091948916 + .long 3546803442 + .long 3858670295 + .long 4100191849 + .long 3193903027 + .long 1383836798 + .long 4183897833 + .long 2798639588 + .long 3422373294 + .long 3905416403 + .long 2092838759 + .long 2767673597 + .long 4072828371 + .long 1302311881 + .long 2549779293 + .long 3515865511 + .long 4185677519 + .long 1240379898 + .long 3850689447 + .long 2604623763 + .long 804591290 + .long 2736763727 + .long 4076387742 + .long 2480759797 + .long 3406411599 + .long 914280231 + .long 1609182581 + .long 1178560158 + .long 3857808189 + .long 666552299 + .long 2517855902 + .long 1828560463 + .long 3218365162 + .long 2357120316 + .long 3420649082 + .long 1333104599 + .long 740744509 + .long 3657120927 + .long 2141763028 + .long 419273337 + .long 2546330868 + .long 2666209199 + .long 1481489018 + .long 3019274558 + .long 4283526057 + .long 838546674 + .long 797694440 + .long 1037451103 + .long 2962978036 + .long 1743581820 + .long 4272084818 + .long 1677093349 + .long 1595388880 + .long 2074902206 + .long 1630988776 + .long 3487163641 + .long 4249202340 + .long 3354186699 + .long 3190777760 + .long 4149804412 + .long 3261977553 + .long 2679359986 + .long 4203437385 + .long 2413406103 + .long 2086588225 + .long 4004641529 + .long 2228987811 + .long 1063752677 + .long 4111907475 + .long 531844911 + .long 4173176451 + .long 3714315762 + .long 163008326 + .long 2127505355 + .long 3928847655 + .long 1063689823 + .long 4051385607 + .long 3133664229 + .long 326016652 + .long 4255010710 + .long 3562728015 + .long 2127379647 + .long 3807803918 + .long 1972361163 + .long 652033304 + .long 4215054124 + .long 2830488734 + .long 4254759295 + .long 3320640540 + .long 3944722327 + .long 1304066609 + .long 4135140952 + .long 1366010173 + .long 4214551295 + .long 2346313785 + .long 3594477359 + .long 2608133219 + .long 3975314608 + .long 2732020347 + .long 4134135294 + .long 397660275 + .long 2893987423 + .long 921299143 + .long 3655661921 + .long 1169073399 + .long 3973303293 + .long 795320551 + .long 1493007550 + .long 1842598287 + .long 3016356546 + .long 2338146798 + .long 3651639290 + .long 1590641102 + .long 2986015100 + .long 3685196575 + .long 1737745796 + .long 381326301 + .long 3008311285 + .long 3181282204 + .long 1677062904 + .long 3075425855 + .long 3475491593 + .long 762652602 + .long 1721655274 + .long 2067597113 + .long 3354125809 + .long 1855884414 + .long 2656015891 + .long 1525305205 + .long 3443310548 + .long 4135194227 + .long 2413284322 + .long 3711768829 + .long 1017064486 + .long 3050610411 + .long 2591653800 + .long 3975421159 + .long 531601349 + .long 3128570363 + .long 2034128973 + .long 1806253526 + .long 888340305 + .long 3655875023 + .long 1063202699 + .long 1962173430 + .long 4068257947 + .long 3612507052 + .long 1776680610 + .long 3016782751 + .long 2126405399 + .long 3924346860 + .long 3841548598 + .long 2930046808 + .long 3553361221 + .long 1738598206 + .long 4252810799 + .long 3553726425 + .long 3388129901 + .long 1565126321 + .long 2811755147 + .long 3477196413 + .long 4210654302 + .long 2812485555 + .long 2481292507 + .long 3130252643 + .long 1328542998 + .long 2659425531 + .long 4126341309 + .long 1330003814 + .long 667617719 + .long 1965537991 + .long 2657085997 + .long 1023883767 + .long 3957715323 + .long 2660007629 + .long 1335235438 + .long 3931075983 + .long 1019204698 + .long 2047767535 + .long 3620463350 + .long 1025047962 + .long 2670470877 + .long 3567184671 + .long 2038409397 + .long 4095535070 + .long 2945959404 + .long 2050095924 + .long 1045974458 + .long 2839402047 + .long 4076818795 + .long 3896102844 + .long 1596951513 + .long 4100191849 + .long 2091948916 + .long 1383836798 + .long 3858670295 + .long 3497238392 + .long 3193903027 + .long 3905416403 + .long 4183897833 + .long 2767673597 + .long 3422373294 + .long 2699509489 + .long 2092838759 + .long 3515865511 + .long 4072828371 + .long 1240379898 + .long 2549779293 + .long 1104051682 + .long 4185677519 + .long 2736763727 + .long 3850689447 + .long 2480759797 + .long 804591290 + .long 2208103365 + .long 4076387742 + .long 1178560158 + .long 3406411599 + .long 666552299 + .long 1609182581 + .long 121239434 + .long 3857808189 + .long 2357120316 + .long 2517855902 + .long 1333104599 + .long 3218365162 + .long 242478868 + .long 3420649082 + .long 419273337 + .long 740744509 + .long 2666209199 + .long 2141763028 + .long 484957737 + .long 2546330868 + .long 838546674 + .long 1481489018 + .long 1037451103 + .long 4283526057 + .long 969915474 + .long 797694440 + .long 1677093349 + .long 2962978036 + .long 2074902206 + .long 4272084818 + .long 1939830949 + .long 1595388880 + .long 3354186699 + .long 1630988776 + .long 4149804412 + .long 4249202340 + .long 3879661898 + .long 3190777760 + .long 2413406103 + .long 3261977553 + .long 4004641529 + .long 4203437385 + .long 3464356500 + .long 2086588225 + .long 531844911 + .long 2228987811 + .long 3714315762 + .long 4111907475 + .long 2633745705 + .long 4173176451 + .long 1063689823 + .long 163008326 + .long 3133664229 + .long 3928847655 + .long 972524114 + .long 4051385607 + .long 2127379647 + .long 326016652 + .long 1972361163 + .long 3562728015 + .long 1945048229 + .long 3807803918 + .long 4254759295 + .long 652033304 + .long 3944722327 + .long 2830488734 + .long 3890096458 + .long 3320640540 + .long 4214551295 + .long 1304066609 + .long 3594477359 + .long 1366010173 + .long 3485225620 + .long 2346313785 + .long 4134135294 + .long 2608133219 + .long 2893987423 + .long 2732020347 + .long 2675483945 + .long 397660275 + .long 3973303293 + .long 921299143 + .long 1493007550 + .long 1169073399 + .long 1056000594 + .long 795320551 + .long 3651639290 + .long 1842598287 + .long 2986015100 + .long 2338146798 + .long 2112001188 + .long 1590641102 + .long 3008311285 + .long 3685196575 + .long 1677062904 + .long 381326301 + .long 4224002377 + .long 3181282204 + .long 1721655274 + .long 3075425855 + .long 3354125809 + .long 762652602 + .long 4153037458 + .long 2067597113 + .long 3443310548 + .long 1855884414 + .long 2413284322 + .long 1525305205 + .long 4011107621 + .long 4135194227 + .long 2591653800 + .long 3711768829 + .long 531601349 + .long 3050610411 + .long 3727247947 + .long 3975421159 + .long 888340305 + .long 3128570363 + .long 1063202699 + .long 1806253526 + .long 3159528599 + .long 3655875023 + .long 1776680610 + .long 1962173430 + .long 2126405399 + .long 3612507052 + .long 2024089902 + .long 3016782751 + .long 3553361221 + .long 3924346860 + .long 4252810799 + .long 2930046808 + .long 4048179805 + .long 1738598206 + .long 2811755147 + .long 3553726425 + .long 4210654302 + .long 1565126321 + .long 3801392314 + .long 3477196413 + .long 1328542998 + .long 2812485555 + .long 4126341309 + .long 3130252643 + .long 3307817333 + .long 2659425531 + .long 2657085997 + .long 1330003814 + .long 3957715323 + .long 1965537991 + .long 2320667370 + .long 1023883767 + .long 1019204698 + .long 2660007629 + .long 3620463350 + .long 3931075983 + .long 346367444 + .long 2047767535 + .long 2038409397 + .long 1025047962 + .long 2945959404 + .long 3567184671 + .long 692734889 + .long 4095535070 + .long 4076818795 + .long 2050095924 + .long 1596951513 + .long 2839402047 + .long 1385469779 + .long 3896102844 + .long 3858670295 + .long 4100191849 + .long 3193903027 + .long 1383836798 + .long 2770939558 + .long 3497238392 + .long 3422373294 + .long 3905416403 + .long 2092838759 + .long 2767673597 + .long 1246911821 + .long 2699509489 + .long 2549779293 + .long 3515865511 + .long 4185677519 + .long 1240379898 + .long 2493823642 + .long 1104051682 + .long 804591290 + .long 2736763727 + .long 4076387742 + .long 2480759797 + .long 692679989 + .long 2208103365 + .long 1609182581 + .long 1178560158 + .long 3857808189 + .long 666552299 + .long 1385359979 + .long 121239434 + .long 3218365162 + .long 2357120316 + .long 3420649082 + .long 1333104599 + .long 2770719959 + .long 242478868 + .long 2141763028 + .long 419273337 + .long 2546330868 + .long 2666209199 + .long 1246472623 + .long 484957737 + .long 4283526057 + .long 838546674 + .long 797694440 + .long 1037451103 + .long 2492945247 + .long 969915474 + .long 4272084818 + .long 1677093349 + .long 1595388880 + .long 2074902206 + .long 690923199 + .long 1939830949 + .long 4249202340 + .long 3354186699 + .long 3190777760 + .long 4149804412 + .long 1381846399 + .long 3879661898 + .long 4203437385 + .long 2413406103 + .long 2086588225 + .long 4004641529 + .long 2763692798 + .long 3464356500 + .long 4111907475 + .long 531844911 + .long 4173176451 + .long 3714315762 + .long 1232418301 + .long 2633745705 + .long 3928847655 + .long 1063689823 + .long 4051385607 + .long 3133664229 + .long 2464836603 + .long 972524114 + .long 3562728015 + .long 2127379647 + .long 3807803918 + .long 1972361163 + .long 634705910 + .long 1945048229 + .long 2830488734 + .long 4254759295 + .long 3320640540 + .long 3944722327 + .long 1269411821 + .long 3890096458 + .long 1366010173 + .long 4214551295 + .long 2346313785 + .long 3594477359 + .long 2538823642 + .long 3485225620 + .long 2732020347 + .long 4134135294 + .long 397660275 + .long 2893987423 + .long 782679989 + .long 2675483945 + .long 1169073399 + .long 3973303293 + .long 795320551 + .long 1493007550 + .long 1565359979 + .long 1056000594 + .long 2338146798 + .long 3651639290 + .long 1590641102 + .long 2986015100 + .long 3130719959 + .long 2112001188 + .long 381326301 + .long 3008311285 + .long 3181282204 + .long 1677062904 + .long 1966472623 + .long 4224002377 + .long 762652602 + .long 1721655274 + .long 2067597113 + .long 3354125809 + .long 3932945247 + .long 4153037458 + .long 1525305205 + .long 3443310548 + .long 4135194227 + .long 2413284322 + .long 3570923199 + .long 4011107621 + .long 3050610411 + .long 2591653800 + .long 3975421159 + .long 531601349 + .long 2846879102 + .long 3727247947 + .long 1806253526 + .long 888340305 + .long 3655875023 + .long 1063202699 + .long 1398790909 + .long 3159528599 + .long 3612507052 + .long 1776680610 + .long 3016782751 + .long 2126405399 + .long 2797581819 + .long 2024089902 + .long 2930046808 + .long 3553361221 + .long 1738598206 + .long 4252810799 + .long 1300196342 + .long 4048179805 + .long 1565126321 + .long 2811755147 + .long 3477196413 + .long 4210654302 + .long 2600392684 + .long 3801392314 + .long 3130252643 + .long 1328542998 + .long 2659425531 + .long 4126341309 + .long 905818072 + .long 3307817333 + .long 1965537991 + .long 2657085997 + .long 1023883767 + .long 3957715323 + .long 1811636145 + .long 2320667370 + .long 3931075983 + .long 1019204698 + .long 2047767535 + .long 3620463350 + .long 3623272290 + .long 346367444 + .long 3567184671 + .long 2038409397 + .long 4095535070 + .long 2945959404 + .long 2951577284 + .long 692734889 + .long 2839402047 + .long 4076818795 + .long 3896102844 + .long 1596951513 + .long 1608187272 + .long 1385469779 + .long 1383836798 + .long 3858670295 + .long 3497238392 + .long 3193903027 + .long 3216374545 + .long 2770939558 + .long 2767673597 + .long 3422373294 + .long 2699509489 + .long 2092838759 + .long 2137781795 + .long 1246911821 + .long 1240379898 + .long 2549779293 + .long 1104051682 + .long 4185677519 + .long 4275563591 + .long 2493823642 + .long 2480759797 + .long 804591290 + .long 2208103365 + .long 4076387742 + .long 4256159887 + .long 692679989 + .long 666552299 + .long 1609182581 + .long 121239434 + .long 3857808189 + .long 4217352479 + .long 1385359979 + .long 1333104599 + .long 3218365162 + .long 242478868 + .long 3420649082 + .long 4139737663 + .long 2770719959 + .long 2666209199 + .long 2141763028 + .long 484957737 + .long 2546330868 + .long 3984508030 + .long 1246472623 + .long 1037451103 + .long 4283526057 + .long 969915474 + .long 797694440 + .long 3674048764 + .long 2492945247 + .long 2074902206 + .long 4272084818 + .long 1939830949 + .long 1595388880 + .long 3053130232 + .long 690923199 + .long 4149804412 + .long 4249202340 + .long 3879661898 + .long 3190777760 + .long 1811293169 + .long 1381846399 + .long 4004641529 + .long 4203437385 + .long 3464356500 + .long 2086588225 + .long 3622586339 + .long 2763692798 + .long 3714315762 + .long 4111907475 + .long 2633745705 + .long 4173176451 + .long 2950205382 + .long 1232418301 + .long 3133664229 + .long 3928847655 + .long 972524114 + .long 4051385607 + .long 1605443469 + .long 2464836603 + .long 1972361163 + .long 3562728015 + .long 1945048229 + .long 3807803918 + .long 3210886938 + .long 634705910 + .long 3944722327 + .long 2830488734 + .long 3890096458 + .long 3320640540 + .long 2126806581 + .long 1269411821 + .long 3594477359 + .long 1366010173 + .long 3485225620 + .long 2346313785 + .long 4253613162 + .long 2538823642 + .long 2893987423 + .long 2732020347 + .long 2675483945 + .long 397660275 + .long 4212259029 + .long 782679989 + .long 1493007550 + .long 1169073399 + .long 1056000594 + .long 795320551 + .long 4129550763 + .long 1565359979 + .long 2986015100 + .long 2338146798 + .long 2112001188 + .long 1590641102 + .long 3964134231 + .long 3130719959 + .long 1677062904 + .long 381326301 + .long 4224002377 + .long 3181282204 + .long 3633301166 + .long 1966472623 + .long 3354125809 + .long 762652602 + .long 4153037458 + .long 2067597113 + .long 2971635037 + .long 3932945247 + .long 2413284322 + .long 1525305205 + .long 4011107621 + .long 4135194227 + .long 1648302778 + .long 3570923199 + .long 531601349 + .long 3050610411 + .long 3727247947 + .long 3975421159 + .long 3296605556 + .long 2846879102 + .long 1063202699 + .long 1806253526 + .long 3159528599 + .long 3655875023 + .long 2298243816 + .long 1398790909 + .long 2126405399 + .long 3612507052 + .long 2024089902 + .long 3016782751 + .long 301520336 + .long 2797581819 + .long 4252810799 + .long 2930046808 + .long 4048179805 + .long 1738598206 + .long 603040673 + .long 1300196342 + .long 4210654302 + .long 1565126321 + .long 3801392314 + .long 3477196413 + .long 1206081346 + .long 2600392684 + .long 4126341309 + .long 3130252643 + .long 3307817333 + .long 2659425531 + .long 2412162692 + .long 905818072 + .long 3957715323 + .long 1965537991 + .long 2320667370 + .long 1023883767 + .long 529358088 + .long 1811636145 + .long 3620463350 + .long 3931075983 + .long 346367444 + .long 2047767535 + .long 1058716176 + .long 3623272290 + .long 2945959404 + .long 3567184671 + .long 692734889 + .long 4095535070 + .long 2117432353 + .long 2951577284 + .long 1596951513 + .long 2839402047 + .long 1385469779 + .long 3896102844 + .long 4234864706 + .long 1608187272 + .long 3193903027 + .long 1383836798 + .long 2770939558 + .long 3497238392 + .long 4174762117 + .long 3216374545 + .long 2092838759 + .long 2767673597 + .long 1246911821 + .long 2699509489 + .long 4054556938 + .long 2137781795 + .long 4185677519 + .long 1240379898 + .long 2493823642 + .long 1104051682 + .long 3814146581 + .long 4275563591 + .long 4076387742 + .long 2480759797 + .long 692679989 + .long 2208103365 + .long 3333325867 + .long 4256159887 + .long 3857808189 + .long 666552299 + .long 1385359979 + .long 121239434 + .long 2371684438 + .long 4217352479 + .long 3420649082 + .long 1333104599 + .long 2770719959 + .long 242478868 + .long 448401580 + .long 4139737663 + .long 2546330868 + .long 2666209199 + .long 1246472623 + .long 484957737 + .long 896803160 + .long 3984508030 + .type __svml_dtan_reduction_data_internal,@object + .size __svml_dtan_reduction_data_internal,49152 + .space 512, 0x00 + .align 32 +.L_2il0floatpacket.35: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.35,@object + .size .L_2il0floatpacket.35,32 + .align 8 +.L_2il0floatpacket.18: + .long 0xffffffff,0xffffffff + .type .L_2il0floatpacket.18,@object + .size .L_2il0floatpacket.18,8 + .align 8 +.L_2il0floatpacket.19: + .long 0x00000000,0x7ff00000 + .type .L_2il0floatpacket.19,@object + .size .L_2il0floatpacket.19,8 + .align 8 +.L_2il0floatpacket.20: + .long 0xffffffff,0x000fffff + .type .L_2il0floatpacket.20,@object + .size .L_2il0floatpacket.20,8 + .align 8 +.L_2il0floatpacket.21: + .long 0x00000000,0x00100000 + .type .L_2il0floatpacket.21,@object + .size .L_2il0floatpacket.21,8 + .align 8 +.L_2il0floatpacket.22: + .long 0xffffffff,0x00000000 + .type .L_2il0floatpacket.22,@object + .size .L_2il0floatpacket.22,8 + .align 8 +.L_2il0floatpacket.23: + .long 0x00000000,0x80000000 + .type .L_2il0floatpacket.23,@object + .size .L_2il0floatpacket.23,8 + .align 8 +.L_2il0floatpacket.24: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.24,@object + .size .L_2il0floatpacket.24,8 + .align 8 +.L_2il0floatpacket.25: + .long 0x00000000,0x42a80000 + .type .L_2il0floatpacket.25,@object + .size .L_2il0floatpacket.25,8 + .align 8 +.L_2il0floatpacket.26: + .long 0x000001ff,0x00000000 + .type .L_2il0floatpacket.26,@object + .size .L_2il0floatpacket.26,8 + .align 8 +.L_2il0floatpacket.27: + .long 0x00000000,0x39700000 + .type .L_2il0floatpacket.27,@object + .size .L_2il0floatpacket.27,8 + .align 8 +.L_2il0floatpacket.28: + .long 0x00ffffff,0x00000000 + .type .L_2il0floatpacket.28,@object + .size .L_2il0floatpacket.28,8 + .align 8 +.L_2il0floatpacket.29: + .long 0x00000000,0x3cb00000 + .type .L_2il0floatpacket.29,@object + .size .L_2il0floatpacket.29,8 + .align 8 +.L_2il0floatpacket.30: + .long 0x00000fff,0x00000000 + .type .L_2il0floatpacket.30,@object + .size .L_2il0floatpacket.30,8 + .align 8 +.L_2il0floatpacket.31: + .long 0x54442d18,0x401921fb + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,8 + .align 8 +.L_2il0floatpacket.32: + .long 0x33145c07,0x3cb1a626 + .type .L_2il0floatpacket.32,@object + .size .L_2il0floatpacket.32,8 + .align 8 +.L_2il0floatpacket.33: + .long 0xffffffff,0x7fffffff + .type .L_2il0floatpacket.33,@object + .size .L_2il0floatpacket.33,8 + .align 8 +.L_2il0floatpacket.34: + .long 0x00000000,0x3eb00000 + .type .L_2il0floatpacket.34,@object + .size .L_2il0floatpacket.34,8 + .align 8 +.L_2il0floatpacket.36: + .long 0x54442d18,0x3f8921fb + .type .L_2il0floatpacket.36,@object + .size .L_2il0floatpacket.36,8 + .align 8 +.L_2il0floatpacket.37: + .long 0x33145c07,0x3c21a626 + .type .L_2il0floatpacket.37,@object + .size .L_2il0floatpacket.37,8 + .align 8 +__dtan_la_Tab: + .long 0 + .long 0 + .long 0 + .long 2146435072 + .type __dtan_la_Tab,@object + .size __dtan_la_Tab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_tan_s_la.s b/numpy/core/src/umath/svml/svml_z0_tan_s_la.s new file mode 100644 index 000000000000..befb6edbafdb --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_tan_s_la.s @@ -0,0 +1,3177 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * ( optimized for throughput, with small table lookup, works when HW FMA is available ) + * + * Implementation reduces argument x to |R|32 multiplications + */ + vmovups .L_2il0floatpacket.18(%rip), %zmm6 + kxnorw %k0, %k0, %k2 + kxnorw %k0, %k0, %k3 + kmovw %k0, %edx + vpandd .L_2il0floatpacket.15(%rip), %zmm11, %zmm5 + vpsrld $23, %zmm5, %zmm7 + vpslld $1, %zmm7, %zmm8 + vpaddd %zmm7, %zmm8, %zmm9 + vpslld $2, %zmm9, %zmm4 + vpxord %zmm3, %zmm3, %zmm3 + vgatherdps (%rax,%zmm4), %zmm3{%k2} + kxnorw %k0, %k0, %k2 + vpsrld $16, %zmm3, %zmm5 + vpxord %zmm15, %zmm15, %zmm15 + vpxord %zmm2, %zmm2, %zmm2 + vgatherdps 4(%rax,%zmm4), %zmm15{%k3} + vgatherdps 8(%rax,%zmm4), %zmm2{%k2} + vpsrld $16, %zmm2, %zmm13 + +/* + * Also get the significand as an integer + * NB: adding in the integer bit is wrong for denorms! + * To make this work for denorms we should do something slightly different + */ + vpandd .L_2il0floatpacket.16(%rip), %zmm11, %zmm0 + vpaddd .L_2il0floatpacket.17(%rip), %zmm0, %zmm1 + vpsrld $16, %zmm15, %zmm0 + vpsrld $16, %zmm1, %zmm8 + vpandd %zmm6, %zmm3, %zmm9 + vpandd %zmm6, %zmm15, %zmm12 + vpandd %zmm6, %zmm2, %zmm7 + vpandd %zmm6, %zmm1, %zmm14 + +/* Now do the big multiplication and carry propagation */ + vpmulld %zmm9, %zmm8, %zmm4 + vpmulld %zmm0, %zmm8, %zmm3 + vpmulld %zmm12, %zmm8, %zmm2 + vpmulld %zmm13, %zmm8, %zmm1 + vpmulld %zmm7, %zmm8, %zmm8 + vpmulld %zmm5, %zmm14, %zmm7 + vpmulld %zmm9, %zmm14, %zmm5 + vpmulld %zmm0, %zmm14, %zmm9 + vpmulld %zmm12, %zmm14, %zmm0 + vpmulld %zmm13, %zmm14, %zmm12 + vpsrld $16, %zmm12, %zmm14 + vpsrld $16, %zmm0, %zmm13 + vpsrld $16, %zmm9, %zmm15 + vpsrld $16, %zmm5, %zmm12 + vpsrld $16, %zmm8, %zmm8 + vpaddd %zmm14, %zmm1, %zmm1 + vpaddd %zmm13, %zmm2, %zmm2 + vpaddd %zmm15, %zmm3, %zmm15 + vpaddd %zmm12, %zmm4, %zmm3 + vpandd %zmm6, %zmm0, %zmm13 + vpaddd %zmm1, %zmm13, %zmm4 + vpaddd %zmm4, %zmm8, %zmm14 + vpsrld $16, %zmm14, %zmm0 + vpandd %zmm6, %zmm9, %zmm9 + vpaddd %zmm2, %zmm9, %zmm1 + vpaddd %zmm1, %zmm0, %zmm8 + +/* + * Now round at the 2^-8 bit position for reduction mod pi/2^7 + * instead of the original 2pi (but still with the same 2pi scaling). + * Use a shifter of 2^15 + 2^14. + * The N we get is our final version; it has an offset of + * 2^8 because of the implicit integer bit, and anyway for negative + * starting value it's a 2s complement thing. But we need to mask + * off the exponent part anyway so it's fine. + */ + vmovups .L_2il0floatpacket.21(%rip), %zmm1 + vpandd %zmm6, %zmm7, %zmm7 + vpaddd %zmm3, %zmm7, %zmm13 + vpsrld $16, %zmm8, %zmm3 + vpandd %zmm6, %zmm5, %zmm5 + vpaddd %zmm15, %zmm5, %zmm2 + vpaddd %zmm2, %zmm3, %zmm15 + vpsrld $16, %zmm15, %zmm12 + vpaddd %zmm13, %zmm12, %zmm5 + +/* Assemble reduced argument from the pieces */ + vpandd %zmm6, %zmm14, %zmm9 + vpandd %zmm6, %zmm15, %zmm7 + vpslld $16, %zmm5, %zmm6 + vpslld $16, %zmm8, %zmm5 + vpaddd %zmm7, %zmm6, %zmm4 + vpaddd %zmm9, %zmm5, %zmm9 + vpsrld $9, %zmm4, %zmm6 + +/* + * We want to incorporate the original sign now too. + * Do it here for convenience in getting the right N value, + * though we could wait right to the end if we were prepared + * to modify the sign of N later too. + * So get the appropriate sign mask now (or sooner). + */ + vpandd .L_2il0floatpacket.19(%rip), %zmm11, %zmm0 + vpandd .L_2il0floatpacket.24(%rip), %zmm9, %zmm13 + vpslld $5, %zmm13, %zmm14 + +/* + * Create floating-point high part, implicitly adding integer bit 1 + * Incorporate overall sign at this stage too. + */ + vpxord .L_2il0floatpacket.20(%rip), %zmm0, %zmm8 + vpord %zmm8, %zmm6, %zmm2 + vaddps {rn-sae}, %zmm2, %zmm1, %zmm12 + vsubps {rn-sae}, %zmm1, %zmm12, %zmm3 + vsubps {rn-sae}, %zmm3, %zmm2, %zmm7 + +/* + * Create floating-point low and medium parts, respectively + * lo_17, ... lo_0, 0, ..., 0 + * hi_8, ... hi_0, lo_31, ..., lo_18 + * then subtract off the implicitly added integer bits, + * 2^-46 and 2^-23, respectively. + * Put the original sign into all of them at this stage. + */ + vpxord .L_2il0floatpacket.23(%rip), %zmm0, %zmm6 + vpord %zmm6, %zmm14, %zmm15 + vpandd .L_2il0floatpacket.26(%rip), %zmm4, %zmm4 + vsubps {rn-sae}, %zmm6, %zmm15, %zmm8 + vandps .L_2il0floatpacket.29(%rip), %zmm11, %zmm15 + vpsrld $18, %zmm9, %zmm6 + +/* + * If the magnitude of the input is <= 2^-20, then + * just pass through the input, since no reduction will be needed and + * the main path will only work accurately if the reduced argument is + * about >= 2^-40 (which it is for all large pi multiples) + */ + vmovups .L_2il0floatpacket.30(%rip), %zmm14 + vcmpps $26, {sae}, %zmm14, %zmm15, %k3 + vcmpps $22, {sae}, %zmm14, %zmm15, %k2 + vpxord .L_2il0floatpacket.25(%rip), %zmm0, %zmm1 + vpslld $14, %zmm4, %zmm0 + vpord %zmm6, %zmm0, %zmm0 + vpord %zmm1, %zmm0, %zmm4 + vsubps {rn-sae}, %zmm1, %zmm4, %zmm2 + vpternlogd $255, %zmm6, %zmm6, %zmm6 + +/* Now add them up into 2 reasonably aligned pieces */ + vaddps {rn-sae}, %zmm2, %zmm7, %zmm13 + vsubps {rn-sae}, %zmm13, %zmm7, %zmm7 + vaddps {rn-sae}, %zmm7, %zmm2, %zmm3 + +/* + * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND + * Set sRp2 = _VRES_R^2 and then resume the original code. + */ + vmovups .L_2il0floatpacket.31(%rip), %zmm2 + vaddps {rn-sae}, %zmm8, %zmm3, %zmm1 + vmovups .L_2il0floatpacket.28(%rip), %zmm8 + +/* Grab our final N value as an integer, appropriately masked mod 2^8 */ + vpandd .L_2il0floatpacket.22(%rip), %zmm12, %zmm5 + +/* + * Now multiply those numbers all by 2 pi, reasonably accurately. + * (RHi + RLo) * (pi_lead + pi_trail) ~= + * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) + */ + vmovups .L_2il0floatpacket.27(%rip), %zmm12 + vmulps {rn-sae}, %zmm12, %zmm13, %zmm0 + vmovaps %zmm12, %zmm9 + vfmsub213ps {rn-sae}, %zmm0, %zmm13, %zmm9 + vfmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm13 + vmovaps %zmm6, %zmm8 + vfmadd213ps {rn-sae}, %zmm13, %zmm12, %zmm1 + vpandnd %zmm15, %zmm15, %zmm8{%k3} + vpandnd %zmm15, %zmm15, %zmm6{%k2} + vandps %zmm11, %zmm6, %zmm14 + vandps %zmm0, %zmm8, %zmm15 + vandps %zmm1, %zmm8, %zmm12 + vorps %zmm15, %zmm14, %zmm6 + vpsrld $31, %zmm6, %zmm3 + vpsubd %zmm3, %zmm2, %zmm4 + vpaddd %zmm4, %zmm5, %zmm7 + vpsrld $2, %zmm7, %zmm13 + vpslld $2, %zmm13, %zmm9 + +/* + * ---------------------------------------------------------- + * End of large arguments path + * ---------------------------------------------------------- + * Merge results from main and large paths: + */ + vblendmps %zmm13, %zmm10, %zmm10{%k1} + vpsubd %zmm9, %zmm5, %zmm5 + vmovups .L_2il0floatpacket.32(%rip), %zmm9 + vcvtdq2ps {rn-sae}, %zmm5, %zmm0 + vmovups .L_2il0floatpacket.33(%rip), %zmm5 + vfmadd231ps {rn-sae}, %zmm0, %zmm5, %zmm12 + vmovups (%rsp), %zmm5 + vaddps {rn-sae}, %zmm6, %zmm12, %zmm6 + vfmadd213ps {rn-sae}, %zmm6, %zmm9, %zmm0 + vblendmps %zmm0, %zmm5, %zmm5{%k1} + jmp .LBL_1_2 + .align 16,0x90 + + .cfi_endproc + + .type __svml_tanf16,@function + .size __svml_tanf16,.-__svml_tanf16 +..LN__svml_tanf16.0: + +.L_2__routine_start___svml_stan_cout_rare_internal_1: + + .align 16,0x90 + +__svml_stan_cout_rare_internal: + + + .cfi_startproc +..L63: + + xorl %eax, %eax + movl (%rdi), %edx + movzwl 2(%rdi), %ecx + movl %edx, -8(%rsp) + andl $32640, %ecx + shrl $24, %edx + andl $127, %edx + movb %dl, -5(%rsp) + cmpl $32640, %ecx + je .LBL_2_3 + + + ret + +.LBL_2_3: + + cmpl $2139095040, -8(%rsp) + jne .LBL_2_5 + + + movss (%rdi), %xmm0 + movl $1, %eax + mulss __stan_la__vmlsTanTab(%rip), %xmm0 + movss %xmm0, (%rsi) + ret + +.LBL_2_5: + + movss (%rdi), %xmm0 + mulss (%rdi), %xmm0 + movss %xmm0, (%rsi) + ret + .align 16,0x90 + + .cfi_endproc + + .type __svml_stan_cout_rare_internal,@function + .size __svml_stan_cout_rare_internal,.-__svml_stan_cout_rare_internal +..LN__svml_stan_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.15: + .long 0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000 + .type .L_2il0floatpacket.15,@object + .size .L_2il0floatpacket.15,64 + .align 64 +.L_2il0floatpacket.16: + .long 0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff + .type .L_2il0floatpacket.16,@object + .size .L_2il0floatpacket.16,64 + .align 64 +.L_2il0floatpacket.17: + .long 0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000 + .type .L_2il0floatpacket.17,@object + .size .L_2il0floatpacket.17,64 + .align 64 +.L_2il0floatpacket.18: + .long 0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff + .type .L_2il0floatpacket.18,@object + .size .L_2il0floatpacket.18,64 + .align 64 +.L_2il0floatpacket.19: + .long 0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000 + .type .L_2il0floatpacket.19,@object + .size .L_2il0floatpacket.19,64 + .align 64 +.L_2il0floatpacket.20: + .long 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000 + .type .L_2il0floatpacket.20,@object + .size .L_2il0floatpacket.20,64 + .align 64 +.L_2il0floatpacket.21: + .long 0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000 + .type .L_2il0floatpacket.21,@object + .size .L_2il0floatpacket.21,64 + .align 64 +.L_2il0floatpacket.22: + .long 0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff + .type .L_2il0floatpacket.22,@object + .size .L_2il0floatpacket.22,64 + .align 64 +.L_2il0floatpacket.23: + .long 0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000 + .type .L_2il0floatpacket.23,@object + .size .L_2il0floatpacket.23,64 + .align 64 +.L_2il0floatpacket.24: + .long 0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff + .type .L_2il0floatpacket.24,@object + .size .L_2il0floatpacket.24,64 + .align 64 +.L_2il0floatpacket.25: + .long 0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000 + .type .L_2il0floatpacket.25,@object + .size .L_2il0floatpacket.25,64 + .align 64 +.L_2il0floatpacket.26: + .long 0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff + .type .L_2il0floatpacket.26,@object + .size .L_2il0floatpacket.26,64 + .align 64 +.L_2il0floatpacket.27: + .long 0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb + .type .L_2il0floatpacket.27,@object + .size .L_2il0floatpacket.27,64 + .align 64 +.L_2il0floatpacket.28: + .long 0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e + .type .L_2il0floatpacket.28,@object + .size .L_2il0floatpacket.28,64 + .align 64 +.L_2il0floatpacket.29: + .long 0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff + .type .L_2il0floatpacket.29,@object + .size .L_2il0floatpacket.29,64 + .align 64 +.L_2il0floatpacket.30: + .long 0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000 + .type .L_2il0floatpacket.30,@object + .size .L_2il0floatpacket.30,64 + .align 64 +.L_2il0floatpacket.31: + .long 0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002 + .type .L_2il0floatpacket.31,@object + .size .L_2il0floatpacket.31,64 + .align 64 +.L_2il0floatpacket.32: + .long 0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb + .type .L_2il0floatpacket.32,@object + .size .L_2il0floatpacket.32,64 + .align 64 +.L_2il0floatpacket.33: + .long 0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e + .type .L_2il0floatpacket.33,@object + .size .L_2il0floatpacket.33,64 + .align 64 +__svml_stan_data_internal: + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1092811139 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 1036586970 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 832708968 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 633484485 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 832708608 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 708075802 + .long 2147483648 + .long 1036629468 + .long 1045147567 + .long 1050366018 + .long 1054086093 + .long 1057543609 + .long 1059786177 + .long 1062344705 + .long 1065353216 + .long 1067186156 + .long 1069519047 + .long 1072658590 + .long 1075479162 + .long 1079179983 + .long 1084284919 + .long 1092776803 + .long 4286578687 + .long 3240260451 + .long 3231768567 + .long 3226663631 + .long 3222962810 + .long 3220142238 + .long 3217002695 + .long 3214669804 + .long 3212836864 + .long 3209828353 + .long 3207269825 + .long 3205027257 + .long 3201569741 + .long 3197849666 + .long 3192631215 + .long 3184113116 + .long 2147483648 + .long 826651354 + .long 791306928 + .long 2989111746 + .long 2982175258 + .long 2992568675 + .long 850100121 + .long 850281093 + .long 0 + .long 861435400 + .long 840342808 + .long 3003924160 + .long 3016492578 + .long 865099790 + .long 856723932 + .long 3025444934 + .long 4085252096 + .long 877961286 + .long 3004207580 + .long 3012583438 + .long 869008930 + .long 856440512 + .long 2987826456 + .long 3008919048 + .long 0 + .long 2997764741 + .long 2997583769 + .long 845085027 + .long 834691610 + .long 841628098 + .long 2938790576 + .long 2974135002 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1051372198 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1040758920 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 1059256707 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 2139095040 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1262485504 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1174470656 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 1070137344 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 972922880 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 866263040 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 741630234 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 2801216749 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 3183752116 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 1065353212 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 3202070443 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1008677739 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1070141403 + .long 3007036718 + .long 0 + .long 0 + .long 0 + .long 1065353216 + .long 0 + .long 0 + .long 1051372765 + .long 0 + .long 1069935515 + .long 853435276 + .long 0 + .long 1019812401 + .long 797871386 + .long 1065353216 + .long 975043072 + .long 1019820333 + .long 1051400329 + .long 1015569723 + .long 1069729628 + .long 2999697034 + .long 0 + .long 1028208956 + .long 816029531 + .long 1065353216 + .long 991832832 + .long 1028240852 + .long 1051479824 + .long 1023251493 + .long 1069523740 + .long 860164016 + .long 0 + .long 1033310670 + .long 827321128 + .long 1065353216 + .long 1001540608 + .long 1033364538 + .long 1051617929 + .long 1028458464 + .long 1069317853 + .long 2977958621 + .long 0 + .long 1036629468 + .long 826649990 + .long 1065353216 + .long 1008660256 + .long 1036757738 + .long 1051807326 + .long 1032162226 + .long 1069111966 + .long 3009745511 + .long 0 + .long 1039964354 + .long 2964214364 + .long 1065353216 + .long 1014578464 + .long 1040201797 + .long 1052059423 + .long 1034708638 + .long 1068906078 + .long 848017692 + .long 0 + .long 1041753444 + .long 2982519524 + .long 1065353216 + .long 1018446032 + .long 1041972480 + .long 1052374628 + .long 1037453248 + .long 1068700191 + .long 3004118141 + .long 0 + .long 1043443277 + .long 2985501265 + .long 1065353216 + .long 1022797056 + .long 1043793882 + .long 1052746889 + .long 1039915463 + .long 1068494303 + .long 857455223 + .long 0 + .long 1045147567 + .long 791292384 + .long 1065353216 + .long 1025642520 + .long 1045675728 + .long 1053195814 + .long 1041590498 + .long 1068288416 + .long 2992986704 + .long 0 + .long 1046868583 + .long 833925599 + .long 1065353216 + .long 1028557712 + .long 1047628490 + .long 1053716836 + .long 1043186017 + .long 1068082528 + .long 863082593 + .long 0 + .long 1048592340 + .long 2988940902 + .long 1065353216 + .long 1031831496 + .long 1049119700 + .long 1054310701 + .long 1044788971 + .long 1067876641 + .long 837040812 + .long 0 + .long 1049473154 + .long 2972885556 + .long 1065353216 + .long 1033689040 + .long 1050184288 + .long 1054999523 + .long 1046698028 + .long 1067670754 + .long 3006826934 + .long 0 + .long 1050366018 + .long 2989112046 + .long 1065353216 + .long 1035760784 + .long 1051302645 + .long 1055777031 + .long 1048635818 + .long 1067464866 + .long 853854846 + .long 0 + .long 1051272279 + .long 817367088 + .long 1065353216 + .long 1038057984 + .long 1052482025 + .long 1056656040 + .long 1049723582 + .long 1067258979 + .long 2999277465 + .long 0 + .long 1052193360 + .long 2986510371 + .long 1065353216 + .long 1040390392 + .long 1053730424 + .long 1057307751 + .long 1050943059 + .long 1067053091 + .long 860373800 + .long 0 + .long 1053130765 + .long 2987705281 + .long 1065353216 + .long 1041784404 + .long 1055056706 + .long 1057868403 + .long 1052298273 + .long 1066847204 + .long 2974604846 + .long 0 + .long 1054086093 + .long 2982175058 + .long 1065353216 + .long 1043312844 + .long 1056470731 + .long 1058502663 + .long 1053852727 + .long 1066641317 + .long 3009535726 + .long 0 + .long 1055061049 + .long 2985572766 + .long 1065353216 + .long 1044984860 + .long 1057474074 + .long 1059214863 + .long 1055565854 + .long 1066435429 + .long 848437261 + .long 0 + .long 1056057456 + .long 844263924 + .long 1065353216 + .long 1046810746 + .long 1058286064 + .long 1060014844 + .long 1057227928 + .long 1066229542 + .long 3003908357 + .long 0 + .long 1057020941 + .long 2987700082 + .long 1065353216 + .long 1048689044 + .long 1059160627 + .long 1060914481 + .long 1058313864 + .long 1066023654 + .long 857665008 + .long 0 + .long 1057543609 + .long 2992568718 + .long 1065353216 + .long 1049773965 + .long 1060105673 + .long 1061932376 + .long 1059565214 + .long 1065817767 + .long 2992147565 + .long 0 + .long 1058080175 + .long 854607280 + .long 1065353216 + .long 1050955490 + .long 1061130203 + .long 1063075792 + .long 1060964899 + .long 1065611879 + .long 863292377 + .long 0 + .long 1058631876 + .long 848316488 + .long 1065353216 + .long 1052241912 + .long 1062244476 + .long 1064374250 + .long 1062608877 + .long 1065405992 + .long 838719090 + .long 0 + .long 1059200055 + .long 2987155932 + .long 1065353216 + .long 1053642609 + .long 1063460266 + .long 1065596017 + .long 1064468970 + .long 1065046993 + .long 848647046 + .long 0 + .long 1059786177 + .long 850099898 + .long 1065353216 + .long 1055168194 + .long 1064791104 + .long 1066427841 + .long 1065988022 + .long 1064635218 + .long 854274415 + .long 0 + .long 1060391849 + .long 2998448362 + .long 1065353216 + .long 1056830711 + .long 1065802920 + .long 1067373883 + .long 1067237086 + .long 1064223444 + .long 2998857895 + .long 0 + .long 1061018831 + .long 852661766 + .long 1073741824 + .long 3202769007 + .long 1066608086 + .long 1068453481 + .long 1068697612 + .long 1063811669 + .long 2991727995 + .long 0 + .long 1061669068 + .long 2986407194 + .long 1073741824 + .long 3200789612 + .long 1067498217 + .long 1069688111 + .long 1070408903 + .long 1063399894 + .long 2971248290 + .long 0 + .long 1062344705 + .long 850280824 + .long 1073741824 + .long 3198626104 + .long 1068485666 + .long 1071103306 + .long 1072410651 + .long 1062988119 + .long 839209514 + .long 0 + .long 1063048126 + .long 826671880 + .long 1073741824 + .long 3196257989 + .long 1069584946 + .long 1072731698 + .long 1074256640 + .long 1062576344 + .long 848856831 + .long 0 + .long 1063781982 + .long 845614362 + .long 1073741824 + .long 3191263702 + .long 1070813191 + .long 1074178145 + .long 1075661786 + .long 1062164569 + .long 854484200 + .long 0 + .long 1064549237 + .long 855412877 + .long 1073741824 + .long 3183449264 + .long 1072190735 + .long 1075269479 + .long 1077331464 + .long 1061752795 + .long 2998648110 + .long 1065353216 + .long 3196839438 + .long 839748996 + .long 1056964608 + .long 3187152817 + .long 3179496939 + .long 1025375660 + .long 3159543663 + .long 1061341020 + .long 2991308426 + .long 1065353216 + .long 3196528703 + .long 2993207654 + .long 1056964608 + .long 3187565865 + .long 3178961235 + .long 1025040649 + .long 3158667440 + .long 1060929245 + .long 2969570013 + .long 1065353216 + .long 3196220448 + .long 839617357 + .long 1048576000 + .long 1039897640 + .long 3178234548 + .long 1024731756 + .long 3157936127 + .long 1060517470 + .long 839629084 + .long 1065353216 + .long 3195769474 + .long 2972943314 + .long 1048576000 + .long 1039520273 + .long 3177530035 + .long 1024452069 + .long 3157392148 + .long 1060105695 + .long 849066615 + .long 1065353216 + .long 3195162227 + .long 824230882 + .long 1048576000 + .long 1039159939 + .long 3176846430 + .long 1024176063 + .long 3156719803 + .long 1059693920 + .long 854693985 + .long 1065353216 + .long 3194559300 + .long 837912886 + .long 1048576000 + .long 1038816139 + .long 3176182519 + .long 1023917626 + .long 3156100775 + .long 1059282146 + .long 2998438326 + .long 1065353216 + .long 3193960492 + .long 2976936506 + .long 1048576000 + .long 1038488404 + .long 3175537158 + .long 1023672824 + .long 3155484691 + .long 1058870371 + .long 2990888857 + .long 1065353216 + .long 3193365611 + .long 837021697 + .long 1048576000 + .long 1038176293 + .long 3174909264 + .long 1023428141 + .long 3154717848 + .long 1058458596 + .long 2966216238 + .long 1065353216 + .long 3192774465 + .long 2981011604 + .long 1048576000 + .long 1037879388 + .long 3174297790 + .long 1023026096 + .long 3154246903 + .long 1058046821 + .long 840048653 + .long 1065353216 + .long 3192186872 + .long 2982847435 + .long 1048576000 + .long 1037597300 + .long 3173701765 + .long 1022609285 + .long 3153191752 + .long 1057635046 + .long 849276400 + .long 1065353216 + .long 3191602652 + .long 2972865050 + .long 1048576000 + .long 1037329660 + .long 3173120241 + .long 1022242934 + .long 3152466531 + .long 1057223271 + .long 854903769 + .long 1065353216 + .long 3191021630 + .long 838792638 + .long 1048576000 + .long 1037076124 + .long 3172552332 + .long 1021893801 + .long 3151682133 + .long 1056658385 + .long 840258438 + .long 1065353216 + .long 3190443633 + .long 2979855596 + .long 1048576000 + .long 1036836369 + .long 3171997189 + .long 1021543079 + .long 3150495127 + .long 1055834836 + .long 2990469287 + .long 1065353216 + .long 3189868496 + .long 2981611511 + .long 1048576000 + .long 1036610091 + .long 3171453986 + .long 1021220110 + .long 3149437649 + .long 1055011286 + .long 2962859682 + .long 1065353216 + .long 3189296055 + .long 2950857776 + .long 1048576000 + .long 1036397006 + .long 3170921933 + .long 1020942892 + .long 3148919762 + .long 1054187736 + .long 840468223 + .long 1065353216 + .long 3188726149 + .long 2955915960 + .long 1048576000 + .long 1036196851 + .long 3169906765 + .long 1020660679 + .long 3147905210 + .long 1053364187 + .long 2990259502 + .long 1065353216 + .long 3188158621 + .long 2978622083 + .long 1048576000 + .long 1036009378 + .long 3168882838 + .long 1020421234 + .long 3147436656 + .long 1052540637 + .long 2961181405 + .long 1065353216 + .long 3187515595 + .long 789904544 + .long 1048576000 + .long 1035834359 + .long 3167876891 + .long 1020189995 + .long 3146799430 + .long 1051717087 + .long 840678007 + .long 1065353216 + .long 3186389132 + .long 2974324164 + .long 1048576000 + .long 1035671582 + .long 3166887590 + .long 1019957287 + .long 3145677161 + .long 1050893538 + .long 2990049718 + .long 1065353216 + .long 3185266517 + .long 821445502 + .long 1048576000 + .long 1035520850 + .long 3165913616 + .long 1019751749 + .long 3143905397 + .long 1050069988 + .long 2957827630 + .long 1065353216 + .long 3184147455 + .long 823956970 + .long 1048576000 + .long 1035381982 + .long 3164953691 + .long 1019591684 + .long 3143870825 + .long 1049246438 + .long 840887792 + .long 1065353216 + .long 3183031657 + .long 2948197632 + .long 1048576000 + .long 1035254815 + .long 3164006661 + .long 1019406069 + .long 3141406886 + .long 1048269777 + .long 831869830 + .long 1065353216 + .long 3181918839 + .long 829265530 + .long 1048576000 + .long 1035139196 + .long 3163071263 + .long 1019275107 + .long 3141473894 + .long 1046622678 + .long 2954471074 + .long 1065353216 + .long 3180808717 + .long 2974758491 + .long 1048576000 + .long 1035034991 + .long 3161787608 + .long 1019131285 + .long 3139614851 + .long 1044975579 + .long 2981870894 + .long 1065353216 + .long 3179701015 + .long 2951749952 + .long 1048576000 + .long 1034942077 + .long 3159956688 + .long 1019002541 + .long 3137649644 + .long 1043328479 + .long 832289399 + .long 1065353216 + .long 3177908479 + .long 2968441398 + .long 1048576000 + .long 1034860345 + .long 3158142289 + .long 1018906717 + .long 3137336762 + .long 1041681380 + .long 2949439022 + .long 1065353216 + .long 3175701100 + .long 2963548093 + .long 1048576000 + .long 1034789701 + .long 3156342344 + .long 1018810804 + .long 3133887847 + .long 1039881169 + .long 823481222 + .long 1065353216 + .long 3173496918 + .long 2969038481 + .long 1048576000 + .long 1034730062 + .long 3154554595 + .long 1018750428 + .long 3136028910 + .long 1036586971 + .long 2973482286 + .long 1065353216 + .long 3171295395 + .long 2968300352 + .long 1048576000 + .long 1034681361 + .long 3151437839 + .long 1018664053 + .long 3123383004 + .long 1033292772 + .long 2941050414 + .long 1065353216 + .long 3167298168 + .long 808398440 + .long 1048576000 + .long 1034643540 + .long 3147899215 + .long 1018610153 + .long 943964915 + .long 1028198363 + .long 2965093678 + .long 1065353216 + .long 3162902549 + .long 2950073902 + .long 1048576000 + .long 1034616555 + .long 3143016255 + .long 1018603598 + .long 3133555092 + .long 1019809755 + .long 2956705070 + .long 1065353216 + .long 3154512883 + .long 803361198 + .long 1048576000 + .long 1034600377 + .long 3134618720 + .long 1018580133 + .long 3134056577 + .long 0 + .long 0 + .long 1065353216 + .long 0 + .long 0 + .long 1048576000 + .long 1034594987 + .long 0 + .long 1018552971 + .long 0 + .long 3167293403 + .long 809221422 + .long 1065353216 + .long 1007029235 + .long 2950844846 + .long 1048576000 + .long 1034600377 + .long 987135072 + .long 1018580133 + .long 986572929 + .long 3175682011 + .long 817610030 + .long 1065353216 + .long 1015418901 + .long 802590254 + .long 1048576000 + .long 1034616555 + .long 995532607 + .long 1018603598 + .long 986071444 + .long 3180776420 + .long 793566766 + .long 1065353216 + .long 1019814520 + .long 2955882088 + .long 1048576000 + .long 1034643540 + .long 1000415567 + .long 1018610153 + .long 3091448562 + .long 3184070619 + .long 825998638 + .long 1065353216 + .long 1023811747 + .long 820816704 + .long 1048576000 + .long 1034681361 + .long 1003954191 + .long 1018664053 + .long 975899356 + .long 3187364817 + .long 2970964870 + .long 1065353216 + .long 1026013270 + .long 821554833 + .long 1048576000 + .long 1034730062 + .long 1007070947 + .long 1018750428 + .long 988545262 + .long 3189165028 + .long 801955374 + .long 1065353216 + .long 1028217452 + .long 816064445 + .long 1048576000 + .long 1034789701 + .long 1008858696 + .long 1018810804 + .long 986404199 + .long 3190812127 + .long 2979773047 + .long 1065353216 + .long 1030424831 + .long 820957750 + .long 1048576000 + .long 1034860345 + .long 1010658641 + .long 1018906717 + .long 989853114 + .long 3192459227 + .long 834387246 + .long 1065353216 + .long 1032217367 + .long 804266304 + .long 1048576000 + .long 1034942077 + .long 1012473040 + .long 1019002541 + .long 990165996 + .long 3194106326 + .long 806987426 + .long 1065353216 + .long 1033325069 + .long 827274843 + .long 1048576000 + .long 1035034991 + .long 1014303960 + .long 1019131285 + .long 992131203 + .long 3195753425 + .long 2979353478 + .long 1065353216 + .long 1034435191 + .long 2976749178 + .long 1048576000 + .long 1035139196 + .long 1015587615 + .long 1019275107 + .long 993990246 + .long 3196730086 + .long 2988371440 + .long 1065353216 + .long 1035548009 + .long 800713984 + .long 1048576000 + .long 1035254815 + .long 1016523013 + .long 1019406069 + .long 993923238 + .long 3197553636 + .long 810343982 + .long 1065353216 + .long 1036663807 + .long 2971440618 + .long 1048576000 + .long 1035381982 + .long 1017470043 + .long 1019591684 + .long 996387177 + .long 3198377186 + .long 842566070 + .long 1065353216 + .long 1037782869 + .long 2968929150 + .long 1048576000 + .long 1035520850 + .long 1018429968 + .long 1019751749 + .long 996421749 + .long 3199200735 + .long 2988161655 + .long 1065353216 + .long 1038905484 + .long 826840516 + .long 1048576000 + .long 1035671582 + .long 1019403942 + .long 1019957287 + .long 998193513 + .long 3200024285 + .long 813697757 + .long 1065353216 + .long 1040031947 + .long 2937388192 + .long 1048576000 + .long 1035834359 + .long 1020393243 + .long 1020189995 + .long 999315782 + .long 3200847835 + .long 842775854 + .long 1065353216 + .long 1040674973 + .long 831138435 + .long 1048576000 + .long 1036009378 + .long 1021399190 + .long 1020421234 + .long 999953008 + .long 3201671384 + .long 2987951871 + .long 1065353216 + .long 1041242501 + .long 808432312 + .long 1048576000 + .long 1036196851 + .long 1022423117 + .long 1020660679 + .long 1000421562 + .long 3202494934 + .long 815376034 + .long 1065353216 + .long 1041812407 + .long 803374128 + .long 1048576000 + .long 1036397006 + .long 1023438285 + .long 1020942892 + .long 1001436114 + .long 3203318484 + .long 842985639 + .long 1065353216 + .long 1042384848 + .long 834127863 + .long 1048576000 + .long 1036610091 + .long 1023970338 + .long 1021220110 + .long 1001954001 + .long 3204142033 + .long 2987742086 + .long 1065353216 + .long 1042959985 + .long 832371948 + .long 1048576000 + .long 1036836369 + .long 1024513541 + .long 1021543079 + .long 1003011479 + .long 3204706919 + .long 3002387417 + .long 1065353216 + .long 1043537982 + .long 2986276286 + .long 1048576000 + .long 1037076124 + .long 1025068684 + .long 1021893801 + .long 1004198485 + .long 3205118694 + .long 2996760048 + .long 1065353216 + .long 1044119004 + .long 825381402 + .long 1048576000 + .long 1037329660 + .long 1025636593 + .long 1022242934 + .long 1004982883 + .long 3205530469 + .long 2987532301 + .long 1065353216 + .long 1044703224 + .long 835363787 + .long 1048576000 + .long 1037597300 + .long 1026218117 + .long 1022609285 + .long 1005708104 + .long 3205942244 + .long 818732590 + .long 1065353216 + .long 1045290817 + .long 833527956 + .long 1048576000 + .long 1037879388 + .long 1026814142 + .long 1023026096 + .long 1006763255 + .long 3206354019 + .long 843405209 + .long 1065353216 + .long 1045881963 + .long 2984505345 + .long 1048576000 + .long 1038176293 + .long 1027425616 + .long 1023428141 + .long 1007234200 + .long 3206765794 + .long 850954678 + .long 1065353216 + .long 1046476844 + .long 829452858 + .long 1048576000 + .long 1038488404 + .long 1028053510 + .long 1023672824 + .long 1008001043 + .long 3207177568 + .long 3002177633 + .long 1065353216 + .long 1047075652 + .long 2985396534 + .long 1048576000 + .long 1038816139 + .long 1028698871 + .long 1023917626 + .long 1008617127 + .long 3207589343 + .long 2996550263 + .long 1065353216 + .long 1047678579 + .long 2971714530 + .long 1048576000 + .long 1039159939 + .long 1029362782 + .long 1024176063 + .long 1009236155 + .long 3208001118 + .long 2987112732 + .long 1065353216 + .long 1048285826 + .long 825459666 + .long 1048576000 + .long 1039520273 + .long 1030046387 + .long 1024452069 + .long 1009908500 + .long 3208412893 + .long 822086365 + .long 1065353216 + .long 1048736800 + .long 2987101005 + .long 1048576000 + .long 1039897640 + .long 1030750900 + .long 1024731756 + .long 1010452479 + .long 3208824668 + .long 843824778 + .long 1065353216 + .long 1049045055 + .long 845724006 + .long 1056964608 + .long 3187565865 + .long 1031477587 + .long 1025040649 + .long 1011183792 + .long 3209236443 + .long 851164462 + .long 0 + .long 3212836864 + .long 725680128 + .long 1073741824 + .long 3003121664 + .long 3221225472 + .long 1076541384 + .long 3226821083 + .long 3209648217 + .long 3001967848 + .long 0 + .long 3212032885 + .long 3002896525 + .long 1073741824 + .long 3183449264 + .long 3219674383 + .long 1075269479 + .long 3224815112 + .long 3210059992 + .long 2996340479 + .long 0 + .long 3211265630 + .long 2993098010 + .long 1073741824 + .long 3191263702 + .long 3218296839 + .long 1074178145 + .long 3223145434 + .long 3210471767 + .long 2986693162 + .long 0 + .long 3210531774 + .long 2974155528 + .long 1073741824 + .long 3196257989 + .long 3217068594 + .long 1072731698 + .long 3221740288 + .long 3210883542 + .long 823764642 + .long 0 + .long 3209828353 + .long 2997764472 + .long 1073741824 + .long 3198626104 + .long 3215969314 + .long 1071103306 + .long 3219894299 + .long 3211295317 + .long 844244347 + .long 0 + .long 3209152716 + .long 838923546 + .long 1073741824 + .long 3200789612 + .long 3214981865 + .long 1069688111 + .long 3217892551 + .long 3211707092 + .long 851374247 + .long 0 + .long 3208502479 + .long 3000145414 + .long 1073741824 + .long 3202769007 + .long 3214091734 + .long 1068453481 + .long 3216181260 + .long 3212118866 + .long 3001758063 + .long 0 + .long 3207875497 + .long 850964714 + .long 1065353216 + .long 1056830711 + .long 3213286568 + .long 1067373883 + .long 3214720734 + .long 3212530641 + .long 2996130694 + .long 0 + .long 3207269825 + .long 2997583546 + .long 1065353216 + .long 1055168194 + .long 3212274752 + .long 1066427841 + .long 3213471670 + .long 3212889640 + .long 2986202738 + .long 0 + .long 3206683703 + .long 839672284 + .long 1065353216 + .long 1053642609 + .long 3210943914 + .long 1065596017 + .long 3211952618 + .long 3213095527 + .long 3010776025 + .long 0 + .long 3206115524 + .long 2995800136 + .long 1065353216 + .long 1052241912 + .long 3209728124 + .long 1064374250 + .long 3210092525 + .long 3213301415 + .long 844663917 + .long 0 + .long 3205563823 + .long 3002090928 + .long 1065353216 + .long 1050955490 + .long 3208613851 + .long 1063075792 + .long 3208448547 + .long 3213507302 + .long 3005148656 + .long 0 + .long 3205027257 + .long 845085070 + .long 1065353216 + .long 1049773965 + .long 3207589321 + .long 1061932376 + .long 3207048862 + .long 3213713190 + .long 856424709 + .long 0 + .long 3204504589 + .long 840216434 + .long 1065353216 + .long 1048689044 + .long 3206644275 + .long 1060914481 + .long 3205797512 + .long 3213919077 + .long 2995920909 + .long 0 + .long 3203541104 + .long 2991747572 + .long 1065353216 + .long 1046810746 + .long 3205769712 + .long 1060014844 + .long 3204711576 + .long 3214124965 + .long 862052078 + .long 0 + .long 3202544697 + .long 838089118 + .long 1065353216 + .long 1044984860 + .long 3204957722 + .long 1059214863 + .long 3203049502 + .long 3214330852 + .long 827121198 + .long 0 + .long 3201569741 + .long 834691410 + .long 1065353216 + .long 1043312844 + .long 3203954379 + .long 1058502663 + .long 3201336375 + .long 3214536739 + .long 3007857448 + .long 0 + .long 3200614413 + .long 840221633 + .long 1065353216 + .long 1041784404 + .long 3202540354 + .long 1057868403 + .long 3199781921 + .long 3214742627 + .long 851793817 + .long 0 + .long 3199677008 + .long 839026723 + .long 1065353216 + .long 1040390392 + .long 3201214072 + .long 1057307751 + .long 3198426707 + .long 3214948514 + .long 3001338494 + .long 0 + .long 3198755927 + .long 2964850736 + .long 1065353216 + .long 1038057984 + .long 3199965673 + .long 1056656040 + .long 3197207230 + .long 3215154402 + .long 859343286 + .long 0 + .long 3197849666 + .long 841628398 + .long 1065353216 + .long 1035760784 + .long 3198786293 + .long 1055777031 + .long 3196119466 + .long 3215360289 + .long 2984524460 + .long 0 + .long 3196956802 + .long 825401908 + .long 1065353216 + .long 1033689040 + .long 3197667936 + .long 1054999523 + .long 3194181676 + .long 3215566176 + .long 3010566241 + .long 0 + .long 3196075988 + .long 841457254 + .long 1065353216 + .long 1031831496 + .long 3196603348 + .long 1054310701 + .long 3192272619 + .long 3215772064 + .long 845503056 + .long 0 + .long 3194352231 + .long 2981409247 + .long 1065353216 + .long 1028557712 + .long 3195112138 + .long 1053716836 + .long 3190669665 + .long 3215977951 + .long 3004938871 + .long 0 + .long 3192631215 + .long 2938776032 + .long 1065353216 + .long 1025642520 + .long 3193159376 + .long 1053195814 + .long 3189074146 + .long 3216183839 + .long 856634493 + .long 0 + .long 3190926925 + .long 838017617 + .long 1065353216 + .long 1022797056 + .long 3191277530 + .long 1052746889 + .long 3187399111 + .long 3216389726 + .long 2995501340 + .long 0 + .long 3189237092 + .long 835035876 + .long 1065353216 + .long 1018446032 + .long 3189456128 + .long 1052374628 + .long 3184936896 + .long 3216595614 + .long 862261863 + .long 0 + .long 3187448002 + .long 816730716 + .long 1065353216 + .long 1014578464 + .long 3187685445 + .long 1052059423 + .long 3182192286 + .long 3216801501 + .long 830474973 + .long 0 + .long 3184113116 + .long 2974133638 + .long 1065353216 + .long 1008660256 + .long 3184241386 + .long 1051807326 + .long 3179645874 + .long 3217007388 + .long 3007647664 + .long 0 + .long 3180794318 + .long 2974804776 + .long 1065353216 + .long 1001540608 + .long 3180848186 + .long 1051617929 + .long 3175942112 + .long 3217213276 + .long 852213386 + .long 0 + .long 3175692604 + .long 2963513179 + .long 1065353216 + .long 991832832 + .long 3175724500 + .long 1051479824 + .long 3170735141 + .long 3217419163 + .long 3000918924 + .long 0 + .long 3167296049 + .long 2945355034 + .long 1065353216 + .long 975043072 + .long 3167303981 + .long 1051400329 + .long 3163053371 + .type __svml_stan_data_internal,@object + .size __svml_stan_data_internal,7232 + .align 64 +__svml_stan_reduction_data_internal: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1 + .long 0 + .long 0 + .long 2 + .long 0 + .long 0 + .long 5 + .long 0 + .long 0 + .long 10 + .long 0 + .long 0 + .long 20 + .long 0 + .long 0 + .long 40 + .long 0 + .long 0 + .long 81 + .long 0 + .long 0 + .long 162 + .long 0 + .long 0 + .long 325 + .long 0 + .long 0 + .long 651 + .long 0 + .long 0 + .long 1303 + .long 0 + .long 0 + .long 2607 + .long 0 + .long 0 + .long 5215 + .long 0 + .long 0 + .long 10430 + .long 0 + .long 0 + .long 20860 + .long 0 + .long 0 + .long 41721 + .long 0 + .long 0 + .long 83443 + .long 0 + .long 0 + .long 166886 + .long 0 + .long 0 + .long 333772 + .long 0 + .long 0 + .long 667544 + .long 0 + .long 0 + .long 1335088 + .long 0 + .long 0 + .long 2670176 + .long 0 + .long 0 + .long 5340353 + .long 0 + .long 0 + .long 10680707 + .long 0 + .long 0 + .long 21361414 + .long 0 + .long 0 + .long 42722829 + .long 0 + .long 0 + .long 85445659 + .long 0 + .long 0 + .long 170891318 + .long 0 + .long 0 + .long 341782637 + .long 0 + .long 0 + .long 683565275 + .long 0 + .long 0 + .long 1367130551 + .long 0 + .long 0 + .long 2734261102 + .long 0 + .long 1 + .long 1173554908 + .long 0 + .long 2 + .long 2347109817 + .long 0 + .long 5 + .long 399252338 + .long 0 + .long 10 + .long 798504676 + .long 0 + .long 20 + .long 1597009353 + .long 0 + .long 40 + .long 3194018707 + .long 0 + .long 81 + .long 2093070119 + .long 0 + .long 162 + .long 4186140238 + .long 0 + .long 325 + .long 4077313180 + .long 0 + .long 651 + .long 3859659065 + .long 0 + .long 1303 + .long 3424350834 + .long 0 + .long 2607 + .long 2553734372 + .long 0 + .long 5215 + .long 812501448 + .long 0 + .long 10430 + .long 1625002897 + .long 0 + .long 20860 + .long 3250005794 + .long 0 + .long 41721 + .long 2205044292 + .long 0 + .long 83443 + .long 115121288 + .long 0 + .long 166886 + .long 230242576 + .long 0 + .long 333772 + .long 460485152 + .long 0 + .long 667544 + .long 920970305 + .long 0 + .long 1335088 + .long 1841940610 + .long 0 + .long 2670176 + .long 3683881221 + .long 0 + .long 5340353 + .long 3072795146 + .long 0 + .long 10680707 + .long 1850622997 + .long 0 + .long 21361414 + .long 3701245994 + .long 0 + .long 42722829 + .long 3107524692 + .long 0 + .long 85445659 + .long 1920082089 + .long 0 + .long 170891318 + .long 3840164178 + .long 0 + .long 341782637 + .long 3385361061 + .long 0 + .long 683565275 + .long 2475754826 + .long 0 + .long 1367130551 + .long 656542356 + .long 0 + .long 2734261102 + .long 1313084713 + .long 1 + .long 1173554908 + .long 2626169427 + .long 2 + .long 2347109817 + .long 957371559 + .long 5 + .long 399252338 + .long 1914743119 + .long 10 + .long 798504676 + .long 3829486239 + .long 20 + .long 1597009353 + .long 3364005183 + .long 40 + .long 3194018707 + .long 2433043071 + .long 81 + .long 2093070119 + .long 571118846 + .long 162 + .long 4186140238 + .long 1142237692 + .long 325 + .long 4077313180 + .long 2284475384 + .long 651 + .long 3859659065 + .long 273983472 + .long 1303 + .long 3424350834 + .long 547966945 + .long 2607 + .long 2553734372 + .long 1095933890 + .long 5215 + .long 812501448 + .long 2191867780 + .long 10430 + .long 1625002897 + .long 88768265 + .long 20860 + .long 3250005794 + .long 177536531 + .long 41721 + .long 2205044292 + .long 355073063 + .long 83443 + .long 115121288 + .long 710146126 + .long 166886 + .long 230242576 + .long 1420292253 + .long 333772 + .long 460485152 + .long 2840584506 + .long 667544 + .long 920970305 + .long 1386201717 + .long 1335088 + .long 1841940610 + .long 2772403434 + .long 2670176 + .long 3683881221 + .long 1249839573 + .long 5340353 + .long 3072795146 + .long 2499679147 + .long 10680707 + .long 1850622997 + .long 704390999 + .long 21361414 + .long 3701245994 + .long 1408781999 + .long 42722829 + .long 3107524692 + .long 2817563999 + .long 85445659 + .long 1920082089 + .long 1340160702 + .long 170891318 + .long 3840164178 + .long 2680321405 + .long 341782637 + .long 3385361061 + .long 1065675514 + .long 683565275 + .long 2475754826 + .long 2131351028 + .long 1367130551 + .long 656542356 + .long 4262702056 + .long 2734261102 + .long 1313084713 + .long 4230436817 + .long 1173554908 + .long 2626169427 + .long 4165906339 + .long 2347109817 + .long 957371559 + .long 4036845383 + .long 399252338 + .long 1914743119 + .long 3778723471 + .long 798504676 + .long 3829486239 + .long 3262479647 + .long 1597009353 + .long 3364005183 + .long 2229991998 + .long 3194018707 + .long 2433043071 + .long 165016701 + .long 2093070119 + .long 571118846 + .long 330033402 + .long 4186140238 + .long 1142237692 + .long 660066805 + .long 4077313180 + .long 2284475384 + .long 1320133610 + .long 3859659065 + .long 273983472 + .long 2640267220 + .long 3424350834 + .long 547966945 + .long 985567145 + .long 2553734372 + .long 1095933890 + .long 1971134291 + .long 812501448 + .long 2191867780 + .long 3942268582 + .long 1625002897 + .long 88768265 + .long 3589569869 + .long 3250005794 + .long 177536531 + .long 2884172442 + .long 2205044292 + .long 355073063 + .long 1473377588 + .long 115121288 + .long 710146126 + .long 2946755177 + .long 230242576 + .long 1420292253 + .long 1598543059 + .long 460485152 + .long 2840584506 + .long 3197086118 + .long 920970305 + .long 1386201717 + .long 2099204941 + .long 1841940610 + .long 2772403434 + .long 4198409883 + .long 3683881221 + .long 1249839573 + .long 4101852471 + .long 3072795146 + .long 2499679147 + .long 3908737646 + .long 1850622997 + .long 704390999 + .long 3522507997 + .long 3701245994 + .long 1408781999 + .long 2750048699 + .long 3107524692 + .long 2817563999 + .long 1205130103 + .long 1920082089 + .long 1340160702 + .long 2410260206 + .long 3840164178 + .long 2680321405 + .long 525553116 + .long 3385361061 + .long 1065675514 + .long 1051106232 + .long 2475754826 + .long 2131351028 + .long 2102212464 + .long 656542356 + .long 4262702056 + .long 4204424928 + .long 1313084713 + .long 4230436817 + .long 4113882560 + .long 2626169427 + .long 4165906339 + .long 3932797825 + .long 957371559 + .long 4036845383 + .long 3570628355 + .long 1914743119 + .long 3778723471 + .long 2846289414 + .long 3829486239 + .long 3262479647 + .long 1397611533 + .long 3364005183 + .long 2229991998 + .long 2795223067 + .long 2433043071 + .long 165016701 + .long 1295478838 + .long 571118846 + .long 330033402 + .long 2590957677 + .long 1142237692 + .long 660066805 + .long 886948059 + .long 2284475384 + .long 1320133610 + .long 1773896118 + .long 273983472 + .long 2640267220 + .long 3547792237 + .long 547966945 + .long 985567145 + .long 2800617179 + .long 1095933890 + .long 1971134291 + .long 1306267062 + .long 2191867780 + .long 3942268582 + .long 2612534124 + .long 88768265 + .long 3589569869 + .long 930100952 + .long 177536531 + .long 2884172442 + .long 1860201905 + .long 355073063 + .long 1473377588 + .long 3720403810 + .long 710146126 + .long 2946755177 + .long 3145840325 + .long 1420292253 + .long 1598543059 + .long 1996713354 + .long 2840584506 + .long 3197086118 + .long 3993426708 + .long 1386201717 + .long 2099204941 + .long 3691886121 + .long 2772403434 + .long 4198409883 + .long 3088804946 + .long 1249839573 + .long 4101852471 + .long 1882642597 + .long 2499679147 + .long 3908737646 + .long 3765285194 + .long 704390999 + .long 3522507997 + .long 3235603093 + .long 1408781999 + .long 2750048699 + .long 2176238891 + .long 2817563999 + .long 1205130103 + .long 57510486 + .long 1340160702 + .long 2410260206 + .long 115020972 + .long 2680321405 + .long 525553116 + .long 230041945 + .long 1065675514 + .long 1051106232 + .long 460083891 + .long 2131351028 + .long 2102212464 + .long 920167782 + .long 4262702056 + .long 4204424928 + .long 1840335564 + .long 4230436817 + .long 4113882560 + .long 3680671129 + .long 4165906339 + .long 3932797825 + .long 3066374962 + .long 4036845383 + .long 3570628355 + .long 1837782628 + .long 3778723471 + .long 2846289414 + .long 3675565257 + .long 3262479647 + .long 1397611533 + .long 3056163219 + .long 2229991998 + .long 2795223067 + .long 1817359143 + .long 165016701 + .long 1295478838 + .long 3634718287 + .long 330033402 + .long 2590957677 + .long 2974469278 + .long 660066805 + .long 886948059 + .long 1653971260 + .long 1320133610 + .long 1773896118 + .long 3307942520 + .long 2640267220 + .long 3547792237 + .long 2320917745 + .long 985567145 + .long 2800617179 + .long 346868194 + .long 1971134291 + .long 1306267062 + .long 693736388 + .long 3942268582 + .long 2612534124 + .long 1387472776 + .long 3589569869 + .long 930100952 + .long 2774945552 + .long 2884172442 + .long 1860201905 + .long 1254923809 + .long 1473377588 + .long 3720403810 + .long 2509847619 + .long 2946755177 + .long 3145840325 + .long 724727943 + .long 1598543059 + .long 1996713354 + .long 1449455886 + .long 3197086118 + .long 3993426708 + .long 2898911772 + .long 2099204941 + .long 3691886121 + .long 1502856249 + .long 4198409883 + .long 3088804946 + .long 3005712498 + .long 4101852471 + .long 1882642597 + .long 1716457700 + .long 3908737646 + .long 3765285194 + .long 3432915400 + .long 3522507997 + .long 3235603093 + .long 2570863504 + .long 2750048699 + .long 2176238891 + .long 846759712 + .long 1205130103 + .long 57510486 + .long 1693519425 + .long 2410260206 + .long 115020972 + .long 3387038850 + .long 525553116 + .long 230041945 + .long 2479110404 + .long 1051106232 + .long 460083891 + .long 663253512 + .long 2102212464 + .long 920167782 + .long 1326507024 + .long 4204424928 + .long 1840335564 + .long 2653014048 + .long 4113882560 + .long 3680671129 + .long 1011060801 + .long 3932797825 + .long 3066374962 + .long 2022121603 + .long 3570628355 + .long 1837782628 + .long 4044243207 + .long 2846289414 + .long 3675565257 + .long 3793519119 + .long 1397611533 + .long 3056163219 + .long 3292070943 + .long 2795223067 + .long 1817359143 + .long 2289174591 + .long 1295478838 + .long 3634718287 + .long 283381887 + .long 2590957677 + .long 2974469278 + .long 566763775 + .type __svml_stan_reduction_data_internal,@object + .size __svml_stan_reduction_data_internal,3072 + .align 4 +__stan_la__vmlsTanTab: + .long 0 + .long 2139095040 + .type __stan_la__vmlsTanTab,@object + .size __stan_la__vmlsTanTab,8 diff --git a/numpy/core/src/umath/svml/svml_z0_tanh_d_la.s b/numpy/core/src/umath/svml/svml_z0_tanh_d_la.s new file mode 100644 index 000000000000..e9c3db611fc8 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_tanh_d_la.s @@ -0,0 +1,3046 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * NOTE: Since the hyperbolic tangent function is odd + * (tanh(x) = -tanh(-x)), below algorithm deals with the absolute + * value of the argument |x|: tanh(x) = sign(x) * tanh(|x|) + * + * We use a table lookup method to compute tanh(|x|). + * The basic idea is to split the input range into a number of subintervals + * and to approximate tanh(.) with a polynomial on each of them. + * + * IEEE SPECIAL CONDITIONS: + * x = [+,-]0, r = [+,-]0 + * x = +Inf, r = +1 + * x = -Inf, r = -1 + * x = QNaN, r = QNaN + * x = SNaN, r = QNaN + * + * + * ALGORITHM DETAILS + * We handle special values in a callout function, aside from main path + * computations. "Special" for this algorithm are: + * INF, NAN, |x| > HUGE_THRESHOLD + * + * + * Main path computations are organized as follows: + * Actually we split the interval [0, SATURATION_THRESHOLD) + * into a number of subintervals. On each subinterval we approximate tanh(.) + * with a minimax polynomial of pre-defined degree. Polynomial coefficients + * are computed beforehand and stored in table. We also use + * + * y := |x| + B, + * + * here B depends on subinterval and is used to make argument + * closer to zero. + * We also add large fake interval [SATURATION_THRESHOLD, HUGE_THRESHOLD], + * where 1.0 + 0.0*y + 0.0*y^2 ... coefficients are stored - just to + * preserve main path computation logic but return 1.0 for all arguments. + * + * Hence reconstruction looks as follows: + * we extract proper polynomial and range reduction coefficients + * (Pj and B), corresponding to subinterval, to which |x| belongs, + * and return + * + * r := sign(x) * (P0 + P1 * y + ... + Pn * y^n) + * + * NOTE: we use multiprecision technique to multiply and sum the first + * K terms of the polynomial. So Pj, j = 0..K are stored in + * table each as a pair of target precision numbers (Pj and PLj) to + * achieve wider than target precision. + * + * -- + * + */ + + + .text +.L_2__routine_start___svml_tanh8_z0_0: + + .align 16,0x90 + .globl __svml_tanh8 + +__svml_tanh8: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $320, %rsp + vpsrlq $32, %zmm0, %zmm4 + vmovups %zmm0, (%rsp) + vmovups __svml_dtanh_data_internal(%rip), %zmm14 + vmovups 128+__svml_dtanh_data_internal(%rip), %zmm15 + vpmovqd %zmm4, %ymm5 + +/* -------------------- Constant loading ------------------- */ + vandpd 10432+__svml_dtanh_data_internal(%rip), %zmm0, %zmm13 + vandpd 10368+__svml_dtanh_data_internal(%rip), %zmm0, %zmm3 + +/* Here huge arguments, INF and NaNs are filtered out to callout. */ + vpand 2432+__svml_dtanh_data_internal(%rip), %ymm5, %ymm7 + vmovups 384+__svml_dtanh_data_internal(%rip), %zmm0 + vmovups 2176+__svml_dtanh_data_internal(%rip), %zmm4 + vmovups 2048+__svml_dtanh_data_internal(%rip), %zmm5 + vmovups %zmm3, 64(%rsp) + vmovups 512+__svml_dtanh_data_internal(%rip), %zmm3 + vpsubd 2496+__svml_dtanh_data_internal(%rip), %ymm7, %ymm8 + +/* if VMIN, VMAX is defined for I type */ + vxorps %ymm9, %ymm9, %ymm9 + vpmaxsd %ymm9, %ymm8, %ymm10 + vpminsd 2560+__svml_dtanh_data_internal(%rip), %ymm10, %ymm11 + vpsrld $19, %ymm11, %ymm12 + vmovups 1664+__svml_dtanh_data_internal(%rip), %zmm8 + vmovups 1536+__svml_dtanh_data_internal(%rip), %zmm9 + vmovups 1408+__svml_dtanh_data_internal(%rip), %zmm10 + vmovups 1280+__svml_dtanh_data_internal(%rip), %zmm11 + vpmovzxdq %ymm12, %zmm2 + vmovups 1152+__svml_dtanh_data_internal(%rip), %zmm12 + vpermt2pd 448+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 + vpermt2pd 64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 + vpermt2pd 2240+__svml_dtanh_data_internal(%rip), %zmm2, %zmm4 + vpermt2pd 2112+__svml_dtanh_data_internal(%rip), %zmm2, %zmm5 + vsubpd {rn-sae}, %zmm14, %zmm13, %zmm1 + vpermt2pd 1728+__svml_dtanh_data_internal(%rip), %zmm2, %zmm8 + vpermt2pd 1600+__svml_dtanh_data_internal(%rip), %zmm2, %zmm9 + vpermt2pd 1472+__svml_dtanh_data_internal(%rip), %zmm2, %zmm10 + vpermt2pd 1344+__svml_dtanh_data_internal(%rip), %zmm2, %zmm11 + vpermt2pd 1216+__svml_dtanh_data_internal(%rip), %zmm2, %zmm12 + vpermt2pd 576+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 + vpermt2pd 192+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 + vmovups %zmm0, 192(%rsp) + vmovups 2304+__svml_dtanh_data_internal(%rip), %zmm0 + vmovups 1024+__svml_dtanh_data_internal(%rip), %zmm13 + vmovups 896+__svml_dtanh_data_internal(%rip), %zmm14 + vmovups %zmm3, 256(%rsp) + vmovups 768+__svml_dtanh_data_internal(%rip), %zmm3 + vmovups %zmm15, 128(%rsp) + vmovups 640+__svml_dtanh_data_internal(%rip), %zmm15 + vpermt2pd 2368+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 + vpermt2pd 1088+__svml_dtanh_data_internal(%rip), %zmm2, %zmm13 + vpermt2pd 960+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 + vpermt2pd 832+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 + vpermt2pd 704+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 + vfmadd213pd {rn-sae}, %zmm4, %zmm1, %zmm0 + vpcmpgtd 10560+__svml_dtanh_data_internal(%rip), %ymm7, %ymm6 + vmovmskps %ymm6, %edx + vmovups 1920+__svml_dtanh_data_internal(%rip), %zmm6 + vfmadd213pd {rn-sae}, %zmm5, %zmm1, %zmm0 + vmovups 1792+__svml_dtanh_data_internal(%rip), %zmm7 + vpermt2pd 1984+__svml_dtanh_data_internal(%rip), %zmm2, %zmm6 + vpermt2pd 1856+__svml_dtanh_data_internal(%rip), %zmm2, %zmm7 + vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm0 + vmovups 256(%rsp), %zmm2 + vfmadd213pd {rn-sae}, %zmm7, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm8, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm9, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm10, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm11, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm12, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm13, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm14, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 + vmovups 128(%rsp), %zmm3 + vfmadd213pd {rn-sae}, %zmm15, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 + vmovups 192(%rsp), %zmm2 + vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 + vorpd 64(%rsp), %zmm0, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups (%rsp), %zmm1 + vmovups %zmm0, 128(%rsp) + vmovups %zmm1, 64(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xfe, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + + call __svml_dtanh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_tanh8,@function + .size __svml_tanh8,.-__svml_tanh8 +..LN__svml_tanh8.0: + +.L_2__routine_start___svml_dtanh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_dtanh_cout_rare_internal: + + + .cfi_startproc +..L63: + + lea __dtanh_la__imldTanhTab(%rip), %rdx + movb 7(%rdi), %al + andb $-128, %al + shrb $7, %al + movzbl %al, %ecx + movzwl 6(%rdi), %eax + andl $32752, %eax + shrl $4, %eax + movq (%rdx,%rcx,8), %rdx + cmpl $2047, %eax + je .LBL_2_6 + + + cmpl $2046, %eax + jne .LBL_2_4 + +.LBL_2_3: + + movq %rdx, (%rsi) + jmp .LBL_2_5 + +.LBL_2_4: + + movsd (%rdi), %xmm1 + movsd __dtanh_la__imldTanhTab(%rip), %xmm0 + addsd %xmm1, %xmm0 + mulsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + +.LBL_2_5: + + xorl %eax, %eax + ret + +.LBL_2_6: + + testl $1048575, 4(%rdi) + jne .LBL_2_9 + + + cmpl $0, (%rdi) + je .LBL_2_3 + +.LBL_2_9: + + movsd (%rdi), %xmm0 + addsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + jmp .LBL_2_5 + .align 16,0x90 + + .cfi_endproc + + .type __svml_dtanh_cout_rare_internal,@function + .size __svml_dtanh_cout_rare_internal,.-__svml_dtanh_cout_rare_internal +..LN__svml_dtanh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_dtanh_data_internal: + .long 0 + .long 0 + .long 0 + .long 1070333952 + .long 0 + .long 1070858240 + .long 0 + .long 1071382528 + .long 0 + .long 1071906816 + .long 0 + .long 1072431104 + .long 0 + .long 1072955392 + .long 0 + .long 1073479680 + .long 0 + .long 1074003968 + .long 0 + .long 1074528256 + .long 0 + .long 1075052544 + .long 0 + .long 1075576832 + .long 0 + .long 1076101120 + .long 0 + .long 1076625408 + .long 0 + .long 1077149696 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1097497746 + .long 1070305232 + .long 2699715854 + .long 1070817176 + .long 3997728823 + .long 1071273769 + .long 3938160533 + .long 1071759175 + .long 193732629 + .long 1072072293 + .long 3144363502 + .long 1072375075 + .long 2548249895 + .long 1072570303 + .long 638218690 + .long 1072665176 + .long 3325726839 + .long 1072689426 + .long 2523455249 + .long 1072693057 + .long 2200391922 + .long 1072693244 + .long 4257836853 + .long 1072693247 + .long 4294954840 + .long 1072693247 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 3167993022 + .long 1013310014 + .long 2889539328 + .long 3159121931 + .long 394645568 + .long 1013728265 + .long 2799920971 + .long 1015161303 + .long 754366556 + .long 1013577885 + .long 3960180508 + .long 1014215657 + .long 69774042 + .long 3162475851 + .long 2161066944 + .long 3162264280 + .long 923362432 + .long 1014879086 + .long 2160345802 + .long 1014714211 + .long 3729195158 + .long 3161626453 + .long 675671997 + .long 1015336837 + .long 1141527416 + .long 1013957883 + .long 2209699952 + .long 3160643600 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 2750448946 + .long 1072596012 + .long 1257606939 + .long 1072501079 + .long 2619663609 + .long 1072338011 + .long 863303701 + .long 1072048204 + .long 2694810990 + .long 1071654144 + .long 837003456 + .long 1070723665 + .long 472162617 + .long 1069359818 + .long 532307062 + .long 1067137790 + .long 431106849 + .long 1064162173 + .long 329904022 + .long 1059572972 + .long 4080160942 + .long 1053550275 + .long 1402271583 + .long 1044493446 + .long 467296040 + .long 1032344560 + .long 26734424 + .long 1014207804 + .long 0 + .long 0 + .long 1071622681 + .long 3153114090 + .long 3948133409 + .long 3217705130 + .long 4096956694 + .long 3218184481 + .long 2616164369 + .long 3218465008 + .long 2620770434 + .long 3218641845 + .long 3075958072 + .long 3218520700 + .long 1950184789 + .long 3217978001 + .long 2686385024 + .long 3216731525 + .long 1489441818 + .long 3214597550 + .long 1992796697 + .long 3211642259 + .long 1952936976 + .long 3207056478 + .long 3904162951 + .long 3201033920 + .long 1382745445 + .long 3191977094 + .long 468673444 + .long 3179828208 + .long 3843669553 + .long 3161691483 + .long 0 + .long 0 + .long 1431655765 + .long 3218429269 + .long 3264395793 + .long 3218178991 + .long 60595194 + .long 3217824331 + .long 1837960166 + .long 3217124894 + .long 1964918946 + .long 3214033516 + .long 2998587684 + .long 1068822866 + .long 3421467326 + .long 1069267520 + .long 952003133 + .long 1068506016 + .long 1215426504 + .long 1066495476 + .long 2650572912 + .long 1063503494 + .long 4178958376 + .long 1059043758 + .long 3799805457 + .long 1052940753 + .long 3704238924 + .long 1043831645 + .long 2076585114 + .long 1031813109 + .long 1352847351 + .long 1013591371 + .long 0 + .long 0 + .long 3830371894 + .long 3169224254 + .long 74893150 + .long 1069567437 + .long 1235750664 + .long 1069825332 + .long 916043751 + .long 1069924975 + .long 4138411315 + .long 1069655686 + .long 829220656 + .long 1068441660 + .long 663246204 + .long 3213477792 + .long 652268865 + .long 3214415230 + .long 3251098232 + .long 3212868437 + .long 1480792335 + .long 3209929101 + .long 3365608027 + .long 3205478075 + .long 3330582883 + .long 3199375817 + .long 3573234945 + .long 3190266717 + .long 2061970086 + .long 3178248181 + .long 3148320390 + .long 3160026274 + .long 0 + .long 0 + .long 286337717 + .long 1069617425 + .long 4261152941 + .long 1068876190 + .long 3694459820 + .long 1067928728 + .long 2399079031 + .long 3212381546 + .long 394897286 + .long 3215735810 + .long 3073534041 + .long 3215860118 + .long 301960234 + .long 3214124960 + .long 3353887502 + .long 1064191753 + .long 4200665425 + .long 1063741482 + .long 2003926207 + .long 1061090030 + .long 2196865207 + .long 1056528964 + .long 2107880963 + .long 1050526402 + .long 3656860478 + .long 1041425071 + .long 881228218 + .long 1029305120 + .long 2612840768 + .long 1011136029 + .long 0 + .long 0 + .long 3722294196 + .long 3181505049 + .long 2573001951 + .long 3216029919 + .long 4095639908 + .long 3216151900 + .long 3272210374 + .long 3215957253 + .long 3439280785 + .long 3214441767 + .long 628273304 + .long 1066085542 + .long 3354767370 + .long 1066343670 + .long 300170709 + .long 1063270296 + .long 1870156670 + .long 3209139074 + .long 1580606479 + .long 3206808937 + .long 3818710870 + .long 3202408589 + .long 3126817102 + .long 3196311305 + .long 3320734688 + .long 3187224127 + .long 821170446 + .long 3175173312 + .long 3906480775 + .long 3156975650 + .long 0 + .long 0 + .long 428888587 + .long 3215696314 + .long 3125999356 + .long 3214336891 + .long 407196569 + .long 1053816799 + .long 886258254 + .long 1066874408 + .long 2149075781 + .long 1067351939 + .long 3888390356 + .long 1065784643 + .long 1226056234 + .long 3211994813 + .long 178100474 + .long 3210723675 + .long 4201249718 + .long 1058328572 + .long 3854015760 + .long 1057324616 + .long 3621220964 + .long 1052982118 + .long 1468766992 + .long 1046916174 + .long 2369608770 + .long 1037879115 + .long 327127732 + .long 1025754505 + .long 747046817 + .long 1007714190 + .long 0 + .long 0 + .long 4036362527 + .long 3191151783 + .long 839661649 + .long 1067363059 + .long 4269154241 + .long 1067251747 + .long 391446303 + .long 1066410535 + .long 2090623151 + .long 3211993063 + .long 1751510141 + .long 3213141508 + .long 4072216875 + .long 3209470961 + .long 3769618983 + .long 1061976030 + .long 3462945146 + .long 1057228123 + .long 3030849095 + .long 3202531084 + .long 4269010901 + .long 3198361258 + .long 742615277 + .long 3192302512 + .long 3397417437 + .long 3183265609 + .long 943110610 + .long 3171141000 + .long 371608300 + .long 3153099348 + .long 0 + .long 0 + .long 1315619150 + .long 1066820857 + .long 1001273821 + .long 3214201652 + .long 3859675203 + .long 3212560200 + .long 725858949 + .long 3213658423 + .long 2464052346 + .long 3212913056 + .long 1297319750 + .long 1063307355 + .long 563735576 + .long 1062988089 + .long 2756222736 + .long 3207203944 + .long 31207338 + .long 3204466214 + .long 434022900 + .long 1052227234 + .long 2370591882 + .long 1048628172 + .long 588930601 + .long 1042556347 + .long 3198977634 + .long 1033474724 + .long 1590950759 + .long 1021415866 + .long 195904708 + .long 1003000389 + .long 0 + .long 0 + .long 4252521214 + .long 3198731457 + .long 2969857811 + .long 3217870358 + .long 575387574 + .long 3212943727 + .long 67550217 + .long 3210922992 + .long 2955736731 + .long 1064678043 + .long 4193848343 + .long 1063288304 + .long 1845975253 + .long 3209397546 + .long 1025213509 + .long 3204479174 + .long 3713384058 + .long 1055658730 + .long 4120057883 + .long 3194988032 + .long 1573797757 + .long 3193584787 + .long 2514726550 + .long 3187678317 + .long 15343571 + .long 3178526042 + .long 104576940 + .long 3166444652 + .long 1147207168 + .long 3148070554 + .long 0 + .long 0 + .long 1467656669 + .long 3212977156 + .long 4154993315 + .long 1077775111 + .long 2465966858 + .long 3214886059 + .long 71777642 + .long 1068690118 + .long 2419763912 + .long 1061550205 + .long 1896047360 + .long 3210612806 + .long 3723555648 + .long 1058651288 + .long 3163703016 + .long 1057833732 + .long 1601936705 + .long 3201383489 + .long 2535509424 + .long 3195153293 + .long 3610885824 + .long 1043474022 + .long 1031698712 + .long 1037527637 + .long 1497459257 + .long 1028514042 + .long 3476455860 + .long 1016366870 + .long 758110873 + .long 998719391 + .long 0 + .long 0 + .long 572446067 + .long 3204307354 + .long 926268084 + .long 1081104698 + .long 1313112926 + .long 3217861477 + .long 3660716 + .long 1070677720 + .long 124568711 + .long 3210757561 + .long 2123022704 + .long 1059096046 + .long 576783408 + .long 1059279430 + .long 1651052980 + .long 3204387494 + .long 3164866735 + .long 1051430920 + .long 409335328 + .long 1046695415 + .long 3481520755 + .long 3188046619 + .long 1140549474 + .long 3182373569 + .long 708689751 + .long 3173247717 + .long 2627769694 + .long 3161153086 + .long 3804346926 + .long 3143551592 + .long 0 + .long 0 + .long 2302818369 + .long 1064188902 + .long 526101185 + .long 3235013457 + .long 2975776348 + .long 1075224435 + .long 1103981749 + .long 3223699933 + .long 4261798097 + .long 3210280329 + .long 30781306 + .long 1064564655 + .long 3939597931 + .long 3206430909 + .long 1816466405 + .long 1055007949 + .long 3868125859 + .long 3190076997 + .long 4218600579 + .long 3192569835 + .long 4167655123 + .long 1037376568 + .long 952533803 + .long 1032000428 + .long 895641221 + .long 1022851193 + .long 1237761065 + .long 1010835452 + .long 2902086315 + .long 3133082401 + .long 0 + .long 0 + .long 1899646778 + .long 3207205638 + .long 2434183270 + .long 3238288976 + .long 621380814 + .long 1078065849 + .long 247717525 + .long 3225783561 + .long 1611742563 + .long 3212088477 + .long 537725662 + .long 1065131990 + .long 3769436831 + .long 1057148224 + .long 3759797009 + .long 3196422840 + .long 842759416 + .long 3195613094 + .long 1736926210 + .long 1043198029 + .long 3915271468 + .long 3180709675 + .long 807416070 + .long 3176507548 + .long 3147759461 + .long 3167409843 + .long 3443382404 + .long 3155325020 + .long 1202615797 + .long 3129870924 + .long 0 + .long 0 + .long 1841653873 + .long 3210074087 + .long 2157744327 + .long 1095928888 + .long 3038317314 + .long 3229013375 + .long 2291108570 + .long 1082519711 + .long 707775397 + .long 1067599411 + .long 445214669 + .long 3216153989 + .long 3815354898 + .long 1054410330 + .long 1285070896 + .long 3199787450 + .long 1722630166 + .long 1047526663 + .long 2672844635 + .long 3188483010 + .long 1805520457 + .long 3179260705 + .long 542550567 + .long 1026041526 + .long 392361251 + .long 1017320419 + .long 562647833 + .long 1005205418 + .long 4253488278 + .long 988137457 + .long 0 + .long 0 + .long 3077187303 + .long 1060497018 + .long 1652392454 + .long 1099206368 + .long 414484972 + .long 3231848150 + .long 130592591 + .long 1084602513 + .long 1951534810 + .long 1068932483 + .long 2677544726 + .long 3216895313 + .long 2338009969 + .long 3203411240 + .long 302629286 + .long 1051889816 + .long 1274412910 + .long 3193339538 + .long 3731558070 + .long 1038350327 + .long 3135499196 + .long 1030352152 + .long 1329461873 + .long 3170325324 + .long 4058709792 + .long 3161656179 + .long 2167788642 + .long 3149540607 + .long 1602064437 + .long 3132466971 + .long 0 + .long 0 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 1069547520 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 7864320 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 3616958675 + .long 3172564458 + .long 1431547708 + .long 3218429269 + .long 3390261318 + .long 3188010876 + .long 1446529494 + .long 1069617425 + .long 913571762 + .long 3199219810 + .long 1583612462 + .long 3215695720 + .long 2995724807 + .long 3207222498 + .long 847913742 + .long 1066913721 + .long 1634876930 + .long 3212167789 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1694159514 + .long 1010239653 + .long 966318664 + .long 1069606551 + .long 2992375944 + .long 1072656686 + .long 1870405289 + .long 3217070889 + .long 1411308967 + .long 3218333047 + .long 4096824853 + .long 1068863484 + .long 2220740425 + .long 1069365950 + .long 1401698298 + .long 3215430111 + .long 4137473768 + .long 3215259762 + .long 2666938667 + .long 1066889956 + .long 121190665 + .long 1066187784 + .long 821637913 + .long 3213226090 + .long 0 + .long 3217096704 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1463410348 + .long 1012925678 + .long 2389577058 + .long 1069735062 + .long 1617794783 + .long 1072647710 + .long 1889094329 + .long 3217191869 + .long 1210518828 + .long 3218309813 + .long 1479174953 + .long 1069010221 + .long 3435917531 + .long 1069290104 + .long 291210913 + .long 3215575029 + .long 464478606 + .long 3215159746 + .long 1063797118 + .long 1067014292 + .long 3489481042 + .long 1065955541 + .long 2916293494 + .long 3213319415 + .long 0 + .long 3217227776 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1308961311 + .long 1014934498 + .long 2204208241 + .long 1069862983 + .long 2945950899 + .long 1072637797 + .long 1107689125 + .long 3217310565 + .long 545938327 + .long 3218284334 + .long 3174275192 + .long 1069150773 + .long 3754729793 + .long 1069207728 + .long 1611554958 + .long 3215708601 + .long 2936527704 + .long 3215052478 + .long 2983784402 + .long 1067121823 + .long 1327150338 + .long 1065710404 + .long 3371320326 + .long 3213391099 + .long 0 + .long 3217358848 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3546392464 + .long 1015001497 + .long 631120375 + .long 1069990256 + .long 1201634405 + .long 1072626967 + .long 266657677 + .long 3217426771 + .long 1567732958 + .long 3218256710 + .long 883708059 + .long 1069284653 + .long 1008115966 + .long 1069119372 + .long 2657338981 + .long 3215830093 + .long 3402640736 + .long 3214939036 + .long 1000796573 + .long 1067211764 + .long 53805889 + .long 1065455799 + .long 1736607114 + .long 3213440608 + .long 0 + .long 3217489920 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2741128528 + .long 1013617020 + .long 3111451323 + .long 1070116823 + .long 1649040643 + .long 1072615239 + .long 3411009101 + .long 3217540290 + .long 3408666525 + .long 3218227049 + .long 60831764 + .long 1069411415 + .long 64016149 + .long 1069025616 + .long 1202785467 + .long 3215938891 + .long 1072151579 + .long 3214707060 + .long 1534357116 + .long 1067283570 + .long 4218468492 + .long 1065037194 + .long 2285827787 + .long 3213467810 + .long 0 + .long 3217620992 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2659584459 + .long 1014368295 + .long 3537749475 + .long 1070242630 + .long 3072983457 + .long 1072602635 + .long 3507245872 + .long 3217650938 + .long 3434758212 + .long 3218195466 + .long 3801643091 + .long 1069530660 + .long 1128653951 + .long 1068927067 + .long 3580298628 + .long 3216008547 + .long 1645082338 + .long 3214462237 + .long 1048857889 + .long 1067336943 + .long 21547694 + .long 1064510970 + .long 1433152914 + .long 3213472968 + .long 0 + .long 3217752064 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2718912981 + .long 1013914074 + .long 1823051285 + .long 1070367623 + .long 1714227149 + .long 1072589179 + .long 2128046799 + .long 3217758540 + .long 2655098722 + .long 3218162081 + .long 1690074008 + .long 1069594780 + .long 353091525 + .long 1068824353 + .long 4206393496 + .long 3216049578 + .long 824478721 + .long 3214211899 + .long 3850924188 + .long 1067371825 + .long 2738209029 + .long 1063668369 + .long 853664366 + .long 3213456718 + .long 0 + .long 3217883136 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2312638749 + .long 1013630664 + .long 4267025360 + .long 1070491748 + .long 3776362539 + .long 1072574894 + .long 3063840907 + .long 3217862932 + .long 2436606365 + .long 3218127019 + .long 582931594 + .long 1069646387 + .long 3079837843 + .long 1068718114 + .long 3430470362 + .long 3216083715 + .long 1015897693 + .long 3213958348 + .long 765047087 + .long 1067388396 + .long 2337193368 + .long 1061824569 + .long 3002775972 + .long 3213420044 + .long 0 + .long 3218014208 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2001712669 + .long 1015665334 + .long 1330879460 + .long 1070636148 + .long 2956987714 + .long 1072551971 + .long 4281360332 + .long 3218013175 + .long 3304213057 + .long 3218063389 + .long 3261945160 + .long 1069715874 + .long 3866284424 + .long 1068553570 + .long 3423706630 + .long 3216121886 + .long 259493169 + .long 3213268437 + .long 4223676832 + .long 1067379852 + .long 2765317642 + .long 3210752240 + .long 2292494069 + .long 3213329490 + .long 0 + .long 3218145280 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1632443533 + .long 1015769771 + .long 3788472163 + .long 1070757367 + .long 2406795724 + .long 1072518757 + .long 1173083542 + .long 3218140352 + .long 3726086528 + .long 3217906251 + .long 1205028711 + .long 1069793280 + .long 2231197855 + .long 1068156878 + .long 2368637763 + .long 3216148628 + .long 2866127296 + .long 3211617797 + .long 2424606359 + .long 1067309831 + .long 2444940724 + .long 3212180962 + .long 3308128888 + .long 3213151909 + .long 0 + .long 3218276352 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 478834383 + .long 1014053288 + .long 1342399495 + .long 1070876422 + .long 2650660168 + .long 1072482726 + .long 976724127 + .long 3218226669 + .long 962417089 + .long 3217740546 + .long 1060150306 + .long 1069852926 + .long 411739190 + .long 1067700577 + .long 3846786712 + .long 3216148687 + .long 4007187252 + .long 1064073475 + .long 3455779574 + .long 1067180067 + .long 1865169557 + .long 3212900393 + .long 1200620699 + .long 3212923615 + .long 0 + .long 3218407424 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 267289397 + .long 1014452734 + .long 302318249 + .long 1070993143 + .long 1373990511 + .long 1072444121 + .long 1606419704 + .long 3218305061 + .long 3955669825 + .long 3217568496 + .long 2701083439 + .long 1069894809 + .long 3425188888 + .long 1067047616 + .long 2305426029 + .long 3216123827 + .long 1692531481 + .long 1065641523 + .long 232815703 + .long 1067000535 + .long 3949954748 + .long 3213214884 + .long 558890519 + .long 3212487521 + .long 0 + .long 3218538496 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1719941932 + .long 1006528498 + .long 368840470 + .long 1071107377 + .long 1825320027 + .long 1072403193 + .long 538136722 + .long 3218375283 + .long 1431312010 + .long 3217392305 + .long 2586725425 + .long 1069919291 + .long 2680871675 + .long 1065941593 + .long 4123661982 + .long 3216076488 + .long 4235496382 + .long 1066406926 + .long 2618960092 + .long 1066782660 + .long 2333865044 + .long 3213444845 + .long 1545458959 + .long 3211934181 + .long 0 + .long 3218669568 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 26286236 + .long 1013191219 + .long 990113957 + .long 1071218987 + .long 3284199501 + .long 1072360200 + .long 2981906127 + .long 3218437190 + .long 3154396333 + .long 3217214106 + .long 4182117656 + .long 1069927061 + .long 903677379 + .long 3207343530 + .long 384743261 + .long 3216009637 + .long 1679228359 + .long 1066734193 + .long 3407026595 + .long 1066538544 + .long 784962854 + .long 3213588186 + .long 1956733412 + .long 3210979700 + .long 0 + .long 3218800640 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1468217372 + .long 1015658399 + .long 2570814109 + .long 1071327852 + .long 532296332 + .long 1072315404 + .long 318213600 + .long 3218490738 + .long 3661105766 + .long 3217035931 + .long 4085840862 + .long 1069919095 + .long 2798312316 + .long 3213370099 + .long 1668326589 + .long 3215870599 + .long 3158013712 + .long 1066998409 + .long 673205579 + .long 1066158659 + .long 486665227 + .long 3213647762 + .long 3317145528 + .long 3208570948 + .long 0 + .long 3218931712 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2060955015 + .long 1014233667 + .long 2567098181 + .long 1071433868 + .long 1159081245 + .long 1072269064 + .long 1492598184 + .long 3218535971 + .long 1567055841 + .long 3216688180 + .long 2821222425 + .long 1069896605 + .long 3691290783 + .long 3214336992 + .long 343679101 + .long 3215679175 + .long 1878686296 + .long 1067197462 + .long 125933636 + .long 1065636281 + .long 421076939 + .long 3213630573 + .long 3748848474 + .long 1062499186 + .long 0 + .long 3219062784 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1860475216 + .long 1015320544 + .long 439764829 + .long 1071587361 + .long 3870821058 + .long 1072197223 + .long 1430736283 + .long 3218588540 + .long 1597812790 + .long 3216174065 + .long 2398544810 + .long 1069838732 + .long 961452807 + .long 3215095800 + .long 716310499 + .long 3215360049 + .long 2337792646 + .long 1067375770 + .long 3863538422 + .long 1064417477 + .long 2203480844 + .long 3213482785 + .long 2389621902 + .long 1063978354 + .long 0 + .long 3219193856 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 517838046 + .long 1015294339 + .long 2114713104 + .long 1071713012 + .long 2046328558 + .long 1072098392 + .long 29352448 + .long 3218631376 + .long 1533416325 + .long 3215079684 + .long 765247815 + .long 1069724759 + .long 24381189 + .long 3215564623 + .long 1213155449 + .long 3214886044 + .long 379420126 + .long 1067409218 + .long 3127061143 + .long 3210809777 + .long 3193663073 + .long 3213128287 + .long 2557278876 + .long 1064581282 + .long 0 + .long 3219324928 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 201012485 + .long 1013704982 + .long 4147262407 + .long 1071803766 + .long 3048814903 + .long 1071997795 + .long 1260857726 + .long 3218645540 + .long 270462819 + .long 3209873967 + .long 874660781 + .long 1069580732 + .long 1251156804 + .long 3215866075 + .long 3568210118 + .long 3214014484 + .long 3784557811 + .long 1067255146 + .long 47772576 + .long 3212562613 + .long 2075700783 + .long 3212539455 + .long 1121561449 + .long 1064698735 + .long 0 + .long 3219456000 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 72370286 + .long 1015768239 + .long 2345366573 + .long 1071888223 + .long 3155310239 + .long 1071897123 + .long 4105462806 + .long 3218634383 + .long 2329529114 + .long 1067280331 + .long 3078782452 + .long 1069291148 + .long 2210998062 + .long 3215997483 + .long 1498585052 + .long 3212353515 + .long 3032692199 + .long 1066974465 + .long 809329973 + .long 3213081308 + .long 2713838579 + .long 3211547879 + .long 1266611175 + .long 1064568889 + .long 0 + .long 3219587072 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2137918782 + .long 1013598293 + .long 2511343836 + .long 1071966424 + .long 4205808243 + .long 1071797842 + .long 2776384587 + .long 3218601667 + .long 3824787134 + .long 1068202086 + .long 4101819712 + .long 1068956189 + .long 3547601806 + .long 3216004360 + .long 4156237724 + .long 1064058621 + .long 3714924071 + .long 1066627770 + .long 2925917146 + .long 3213234133 + .long 4211598888 + .long 3209111151 + .long 2569808389 + .long 1064277859 + .long 0 + .long 3219718144 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2979324843 + .long 1013692066 + .long 2595126306 + .long 1072038496 + .long 4263058559 + .long 1071701178 + .long 2217257467 + .long 3218551298 + .long 2310932059 + .long 1068685603 + .long 3368327571 + .long 1068627625 + .long 3037419246 + .long 3215935424 + .long 3509936675 + .long 1065724141 + .long 1557247226 + .long 1066131548 + .long 3830787958 + .long 3213205743 + .long 1781883284 + .long 1062575914 + .long 3918078093 + .long 1063614197 + .long 0 + .long 3219849216 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3630992244 + .long 1015034507 + .long 461360001 + .long 1072104635 + .long 2866201612 + .long 1071571556 + .long 1021729265 + .long 3218487113 + .long 1039036234 + .long 1068940858 + .long 1685105679 + .long 1068140011 + .long 1856275853 + .long 3215769620 + .long 2211306181 + .long 1066373046 + .long 3739405201 + .long 1065456917 + .long 3870269089 + .long 3213053509 + .long 427599213 + .long 1063593231 + .long 40698732 + .long 1062709094 + .long 0 + .long 3219980288 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4017840557 + .long 1014067070 + .long 2764932206 + .long 1072165089 + .long 3362970633 + .long 1071394124 + .long 2677206355 + .long 3218412713 + .long 1827861303 + .long 1069122666 + .long 2476388705 + .long 1067583638 + .long 523365901 + .long 3215556224 + .long 1203249285 + .long 1066574111 + .long 4264074292 + .long 1064402288 + .long 3556167213 + .long 3212827889 + .long 3894081206 + .long 1063908871 + .long 2161178761 + .long 1061130844 + .long 0 + .long 3220111360 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3622330478 + .long 1016273425 + .long 923638641 + .long 1072245755 + .long 239419665 + .long 1071146518 + .long 4085259706 + .long 3218288969 + .long 1284806809 + .long 1069276013 + .long 2806747971 + .long 1066232498 + .long 75259250 + .long 3215197393 + .long 2597116185 + .long 1066648701 + .long 1680670491 + .long 3208755029 + .long 446818184 + .long 3212096816 + .long 1529495144 + .long 1063888972 + .long 808619025 + .long 3208443000 + .long 0 + .long 3220242432 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 462410646 + .long 1015565639 + .long 3157363066 + .long 1072336316 + .long 87541994 + .long 1070853747 + .long 2905067058 + .long 3218115077 + .long 1081050294 + .long 1069306453 + .long 4130581086 + .long 3212259234 + .long 1279737796 + .long 3214531982 + .long 901138781 + .long 1066501065 + .long 978916480 + .long 3211806490 + .long 1307294116 + .long 3210755549 + .long 1154728319 + .long 1063409950 + .long 983243444 + .long 3209435485 + .long 0 + .long 3220373504 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2617212772 + .long 1016126748 + .long 2762378177 + .long 1072409936 + .long 1926160805 + .long 1070604218 + .long 4131898582 + .long 3217810482 + .long 3068505203 + .long 1069203346 + .long 2854543895 + .long 3214027139 + .long 1276437050 + .long 3213652513 + .long 523800203 + .long 1066060621 + .long 3030576699 + .long 3212054264 + .long 210618624 + .long 3205409267 + .long 3515290542 + .long 1062456384 + .long 1613351841 + .long 3209185464 + .long 0 + .long 3220504576 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2178033281 + .long 1016051223 + .long 859883711 + .long 1072469258 + .long 4248327203 + .long 1070195167 + .long 4170103331 + .long 3217497647 + .long 3497702842 + .long 1069026027 + .long 669705965 + .long 3214426190 + .long 548733038 + .long 3212258725 + .long 1756337187 + .long 1065503890 + .long 1830841059 + .long 3211930343 + .long 1445563742 + .long 1061912703 + .long 2113494314 + .long 1060991234 + .long 1734825467 + .long 3208559895 + .long 0 + .long 3220635648 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1674478116 + .long 1016412476 + .long 1178764976 + .long 1072516719 + .long 1119346206 + .long 1069851736 + .long 1526584272 + .long 3217221512 + .long 3575463915 + .long 1068817773 + .long 2913683612 + .long 3214542291 + .long 1135909212 + .long 3207879094 + .long 1952394810 + .long 1064725296 + .long 508910559 + .long 3211537545 + .long 225204077 + .long 1062311155 + .long 1009857186 + .long 1056234420 + .long 2872841632 + .long 3207480811 + .long 0 + .long 3220766720 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1768234410 + .long 1014305046 + .long 1496797583 + .long 1072554475 + .long 3351833521 + .long 1069572393 + .long 68183265 + .long 3216938851 + .long 4178655528 + .long 1068606905 + .long 60791550 + .long 3214483781 + .long 1856281737 + .long 1063701265 + .long 4260560897 + .long 1063778674 + .long 2539586291 + .long 3210979253 + .long 2272785608 + .long 1062198907 + .long 1986161572 + .long 3206910344 + .long 1016667904 + .long 3205797138 + .long 0 + .long 3220897792 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3074583847 + .long 1017063845 + .long 4092570620 + .long 1072584374 + .long 3645618684 + .long 1069147119 + .long 1980755111 + .long 3216542681 + .long 889928399 + .long 1068320928 + .long 1360064809 + .long 3214330986 + .long 2266432388 + .long 1064407878 + .long 4147854841 + .long 1062471610 + .long 1812350685 + .long 3210287970 + .long 3710399832 + .long 1061728481 + .long 2458127659 + .long 3207279138 + .long 287360833 + .long 3197756422 + .long 0 + .long 3221028864 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 68970445 + .long 1013643458 + .long 3990219923 + .long 1072607967 + .long 97498680 + .long 1068787106 + .long 4136450559 + .long 3216216395 + .long 147179316 + .long 1067971098 + .long 1625987424 + .long 3214138005 + .long 3965878798 + .long 1064539455 + .long 3777445436 + .long 1059539413 + .long 3029913178 + .long 3209512624 + .long 2162291908 + .long 1061245910 + .long 351053474 + .long 3207087984 + .long 3766283083 + .long 1056943188 + .long 0 + .long 3221159936 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3139580402 + .long 1014663922 + .long 3748810696 + .long 1072634260 + .long 3154943320 + .long 1068262833 + .long 3181856712 + .long 3215694135 + .long 3656356636 + .long 1067539266 + .long 3897588284 + .long 3213798616 + .long 1461831298 + .long 1064461217 + .long 2900114226 + .long 3208814642 + .long 2606420357 + .long 3207868903 + .long 1741152094 + .long 1060222230 + .long 1469206701 + .long 3206514441 + .long 3518993813 + .long 1057090958 + .long 0 + .long 3221291008 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3285908565 + .long 1015477239 + .long 1797956315 + .long 1072657271 + .long 3302471936 + .long 1067543167 + .long 2151339553 + .long 3215007235 + .long 362228095 + .long 1066797401 + .long 3986406156 + .long 3213131380 + .long 388353381 + .long 1064042359 + .long 4147910906 + .long 3209239839 + .long 1739922885 + .long 1056259812 + .long 3188561056 + .long 1058406709 + .long 489122368 + .long 3205182155 + .long 202560853 + .long 1056234231 + .long 0 + .long 3221422080 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3806705628 + .long 1008327668 + .long 884432573 + .long 1072671353 + .long 137405484 + .long 1066747168 + .long 3531994812 + .long 3214216262 + .long 3217445183 + .long 1066105333 + .long 2910288024 + .long 3212464301 + .long 3196212707 + .long 1063467545 + .long 3156563895 + .long 3208963593 + .long 3591285453 + .long 1058733242 + .long 2889132271 + .long 1055392886 + .long 1038377961 + .long 3203561698 + .long 4084672077 + .long 1055001082 + .long 0 + .long 3221553152 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1881957148 + .long 1016569186 + .long 3451706443 + .long 1072679940 + .long 143468186 + .long 1066002557 + .long 553724800 + .long 3213475431 + .long 1049442771 + .long 1065415105 + .long 3378521943 + .long 3211821787 + .long 3176008209 + .long 1062800361 + .long 4016898691 + .long 3208498219 + .long 1548390021 + .long 1058670598 + .long 2097418483 + .long 3202689041 + .long 2756703589 + .long 3201351283 + .long 506736184 + .long 1053405377 + .long 0 + .long 3221684224 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 450339788 + .long 1015040915 + .long 2959639058 + .long 1072685166 + .long 2289443405 + .long 1065320893 + .long 3331959139 + .long 3212796584 + .long 724199976 + .long 1064616734 + .long 938566183 + .long 3211030741 + .long 1640535667 + .long 1062186735 + .long 187996035 + .long 3207841256 + .long 822311531 + .long 1058246461 + .long 160890851 + .long 3203087480 + .long 3163291388 + .long 1050479733 + .long 578249940 + .long 1051474021 + .long 0 + .long 3221815296 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 539445753 + .long 1012635531 + .long 3085578536 + .long 1072688342 + .long 2019637246 + .long 1064510347 + .long 2901018414 + .long 3211991061 + .long 2171427566 + .long 1063868144 + .long 678185093 + .long 3210287638 + .long 2685165718 + .long 1061401571 + .long 710336199 + .long 3207152667 + .long 2733135798 + .long 1057659331 + .long 886948177 + .long 3202751664 + .long 3345834247 + .long 1052218043 + .long 908728048 + .long 1047925874 + .long 0 + .long 3221946368 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4240302093 + .long 1016867082 + .long 1832260410 + .long 1072690271 + .long 154153694 + .long 1063730412 + .long 2094548181 + .long 3211211898 + .long 1392727515 + .long 1063180837 + .long 3132890025 + .long 3209604411 + .long 483611698 + .long 1060651750 + .long 4246355421 + .long 3206519479 + .long 1424637421 + .long 1057044161 + .long 2138185318 + .long 3202290304 + .long 2276282642 + .long 1052095798 + .long 4227780935 + .long 3196067472 + .long 0 + .long 3222077440 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2485733495 + .long 1017000498 + .long 484092514 + .long 1072691442 + .long 1653085170 + .long 1063007344 + .long 2893019346 + .long 3210489400 + .long 878866243 + .long 1062388018 + .long 2113174452 + .long 3208818852 + .long 2654141437 + .long 1059959432 + .long 3578550869 + .long 3205727739 + .long 315005006 + .long 1056288680 + .long 3246956604 + .long 3201593495 + .long 2197286540 + .long 1051718329 + .long 3044885069 + .long 3196227269 + .long 0 + .long 3222208512 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2794994668 + .long 1016833037 + .long 3287420517 + .long 1072692394 + .long 4133778764 + .long 1061857404 + .long 689562148 + .long 3209340342 + .long 1404089106 + .long 1061273627 + .long 1292441425 + .long 3207706805 + .long 93671116 + .long 1058816787 + .long 2903327974 + .long 3204626398 + .long 4279279273 + .long 1055202414 + .long 134688023 + .long 3200552187 + .long 3315379764 + .long 1050761310 + .long 2945780649 + .long 3195568939 + .long 0 + .long 3222339584 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2135621136 + .long 1016053539 + .long 309961636 + .long 1072692934 + .long 672792810 + .long 1060347512 + .long 2960305506 + .long 3207830967 + .long 1703867620 + .long 1059726750 + .long 824905914 + .long 3206160796 + .long 3036017847 + .long 1057284422 + .long 923304464 + .long 3203122673 + .long 1848642304 + .long 1053791859 + .long 2215350763 + .long 3199158388 + .long 3049848127 + .long 1049324210 + .long 3861893815 + .long 3194293196 + .long 0 + .long 3222470656 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2236028675 + .long 1016891036 + .long 2177293363 + .long 1072693132 + .long 776830057 + .long 1058856794 + .long 4190004158 + .long 3206340337 + .long 209955488 + .long 1058225857 + .long 845130443 + .long 3204660651 + .long 4204313304 + .long 1055835544 + .long 364525198 + .long 3201597210 + .long 3889299905 + .long 1052205563 + .long 1514389355 + .long 3197586647 + .long 1706817756 + .long 1047834665 + .long 3817417318 + .long 3192934132 + .long 0 + .long 3222601728 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1074033072 + .long 1013200912 + .long 2197899301 + .long 1072693205 + .long 1097614282 + .long 1057308273 + .long 209489097 + .long 3204791893 + .long 3641526339 + .long 1056723664 + .long 1792794946 + .long 3203158586 + .long 584598707 + .long 1054254910 + .long 253996240 + .long 3200135633 + .long 642640562 + .long 1050754580 + .long 3147361740 + .long 3196139610 + .long 1167319222 + .long 1046395158 + .long 3488053038 + .long 3191370264 + .long 0 + .long 3222732800 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 871679747 + .long 1016222468 + .long 1586311569 + .long 1072693232 + .long 4199724405 + .long 1055867613 + .long 3041006250 + .long 3203351246 + .long 482130003 + .long 1055184672 + .long 1689676855 + .long 3201619703 + .long 116121201 + .long 1052814264 + .long 4166318198 + .long 3198564764 + .long 388552649 + .long 1049191609 + .long 1384400086 + .long 3194577312 + .long 135589376 + .long 1044819515 + .long 2497367318 + .long 3189906305 + .long 0 + .long 3222863872 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 752986014 + .long 1014740322 + .long 1072834312 + .long 1072693242 + .long 1389704451 + .long 1054277685 + .long 817998738 + .long 3201761329 + .long 996777029 + .long 1053731553 + .long 811547911 + .long 3200166603 + .long 1604093935 + .long 1051232383 + .long 2381858127 + .long 3197131472 + .long 806055999 + .long 1047703656 + .long 443662424 + .long 3193089938 + .long 2855612429 + .long 1043379518 + .long 3671581230 + .long 3188373004 + .long 0 + .long 3222994944 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4161630806 + .long 1015796140 + .long 3799386689 + .long 1072693245 + .long 516062805 + .long 1052830799 + .long 6188716 + .long 3200314446 + .long 79447568 + .long 1052151909 + .long 223529141 + .long 3198586975 + .long 1557009707 + .long 1049758991 + .long 1527834451 + .long 3195539792 + .long 3841571054 + .long 1046184222 + .long 3228035136 + .long 3191570603 + .long 2497745717 + .long 1041799395 + .long 3127975351 + .long 3186863029 + .long 0 + .long 3223126016 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3013228433 + .long 1015734301 + .long 952591976 + .long 1072693247 + .long 3849195912 + .long 1051256594 + .long 1248135057 + .long 3198740242 + .long 1658384276 + .long 1050712587 + .long 3312197895 + .long 3197147657 + .long 2426751598 + .long 1048219658 + .long 2075412918 + .long 3194074453 + .long 1194511818 + .long 1044659399 + .long 2861395540 + .long 3190045864 + .long 1105252788 + .long 1040325059 + .long 278204179 + .long 3185374362 + .long 0 + .long 3223257088 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4084683796 + .long 1014352664 + .long 3549182448 + .long 1072693247 + .long 4170486715 + .long 1048984034 + .long 3652359522 + .long 3196467682 + .long 1780445294 + .long 1048420995 + .long 3329441198 + .long 3194856066 + .long 663245309 + .long 1045935418 + .long 1918070306 + .long 3191839818 + .long 4225866973 + .long 1042419329 + .long 1974315224 + .long 3187805832 + .long 847480060 + .long 1038120500 + .long 2386310431 + .long 3183105031 + .long 0 + .long 3223388160 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 951119343 + .long 1016641415 + .long 4194036288 + .long 1072693247 + .long 4207053894 + .long 1045958742 + .long 4131013457 + .long 3193442390 + .long 2503178506 + .long 1045433060 + .long 2309798544 + .long 3191868132 + .long 1503762043 + .long 1042918157 + .long 762244907 + .long 3188792499 + .long 3745081608 + .long 1039371450 + .long 3106729171 + .long 3184757959 + .long 3799011378 + .long 1035063995 + .long 693003136 + .long 3180102041 + .long 0 + .long 3223519232 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1712896388 + .long 1016000193 + .long 4281307769 + .long 1072693247 + .long 3495080264 + .long 1042943408 + .long 3483806577 + .long 3190427056 + .long 3577360645 + .long 1042374261 + .long 3557467263 + .long 3188809333 + .long 3692227868 + .long 1039911516 + .long 1459944482 + .long 3185739496 + .long 624248087 + .long 1036331657 + .long 3930021706 + .long 3181718167 + .long 439009527 + .long 1032014849 + .long 3184212578 + .long 3177110789 + .long 0 + .long 3223650304 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1958475666 + .long 1013700788 + .long 4293118680 + .long 1072693247 + .long 3829159519 + .long 1039938855 + .long 3827364885 + .long 3187422503 + .long 2374004141 + .long 1039322650 + .long 2380228874 + .long 3185757722 + .long 853065064 + .long 1036916376 + .long 3897809499 + .long 3182694159 + .long 2467115425 + .long 1033300621 + .long 2966460473 + .long 3178687133 + .long 4249027489 + .long 1028973684 + .long 3391824522 + .long 3174085926 + .long 0 + .long 3223781376 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1028808661 + .long 1012328597 + .long 4294717113 + .long 1072693247 + .long 2759857858 + .long 1036945975 + .long 2759440340 + .long 3184429623 + .long 217750550 + .long 1036278821 + .long 228557927 + .long 3182713893 + .long 868996329 + .long 1033914811 + .long 130294465 + .long 3179657124 + .long 3979034581 + .long 1030279068 + .long 1690522291 + .long 3175665582 + .long 141102418 + .long 1025941166 + .long 3942643114 + .long 3171030731 + .long 0 + .long 3223912448 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2461075155 + .long 1015729939 + .long 4294933437 + .long 1072693247 + .long 2559161110 + .long 1033930834 + .long 2559046852 + .long 3181414482 + .long 3206412049 + .long 1033243416 + .long 3218709064 + .long 3179678488 + .long 2091270467 + .long 1030857342 + .long 245853585 + .long 3176629075 + .long 1555900931 + .long 1027267783 + .long 1186881303 + .long 3172654298 + .long 1695278520 + .long 1022918007 + .long 1853146834 + .long 3167983022 + .long 0 + .long 3224043520 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2502502488 + .long 1016572066 + .long 4294962713 + .long 1072693247 + .long 3137376149 + .long 1030874690 + .long 3137268820 + .long 3178358338 + .long 1097103169 + .long 1030217134 + .long 1110504267 + .long 3176652206 + .long 1068377398 + .long 1027807171 + .long 222176953 + .long 3173610756 + .long 3440315131 + .long 1024267613 + .long 1199778592 + .long 3169654130 + .long 257981480 + .long 1019904983 + .long 1388437918 + .long 3164943417 + .long 0 + .long 3224174592 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3418697838 + .long 1016821878 + .long 4294966675 + .long 1072693247 + .long 3798207862 + .long 1027825953 + .long 3798094058 + .long 3175309601 + .long 3391459718 + .long 1027200727 + .long 3405981646 + .long 3173635799 + .long 3694208074 + .long 1024764900 + .long 2192272311 + .long 3170602971 + .long 1464408928 + .long 1021279479 + .long 2201370875 + .long 3166665997 + .long 4139632468 + .long 1016902930 + .long 2981161402 + .long 3161912586 + .long 0 + .long 3224305664 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3589768515 + .long 1013972501 + .long 4294967265 + .long 1072693247 + .long 2293865510 + .long 1023336450 + .long 2097549026 + .long 3170820098 + .long 2721138850 + .long 1022661962 + .long 1571631120 + .long 3169097035 + .long 3716649917 + .long 1020295299 + .long 3146231247 + .long 3166041588 + .long 84506245 + .long 1016656297 + .long 2231398946 + .long 3162043093 + .long 3305646943 + .long 1012441980 + .long 402214167 + .long 3157503609 + .long 0 + .long 3224436736 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2152156943 + .long 1016184605 + .long 4294967294 + .long 1072693247 + .long 1074684533 + .long 1018634353 + .long 1074437943 + .long 3166118001 + .long 967276073 + .long 1018090988 + .long 995296768 + .long 3164526060 + .long 4275132894 + .long 1015589675 + .long 304133116 + .long 3161485853 + .long 1232215992 + .long 1012058464 + .long 559363548 + .long 3157444977 + .long 1487618473 + .long 1007759094 + .long 2355811294 + .long 3152771929 + .long 3381626085 + .long 3224537056 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 4294967295 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2147352576 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 1069416448 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 7733248 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .long 535822336 + .type __svml_dtanh_data_internal,@object + .size __svml_dtanh_data_internal,10816 + .align 8 +__dtanh_la__imldTanhTab: + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .type __dtanh_la__imldTanhTab,@object + .size __dtanh_la__imldTanhTab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_tanh_s_la.s b/numpy/core/src/umath/svml/svml_z0_tanh_s_la.s new file mode 100644 index 000000000000..1d5f4582b858 --- /dev/null +++ b/numpy/core/src/umath/svml/svml_z0_tanh_s_la.s @@ -0,0 +1,1791 @@ +/******************************************* +* Copyright (C) 2021 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + +/* + * ALGORITHM DESCRIPTION: + * + * NOTE: Since the hyperbolic tangent function is odd + * (tanh(x) = -tanh(-x)), below algorithm deals with the absolute + * value of the argument |x|: tanh(x) = sign(x) * tanh(|x|) + * + * We use a table lookup method to compute tanh(|x|). + * The basic idea is to split the input range into a number of subintervals + * and to approximate tanh(.) with a polynomial on each of them. + * + * IEEE SPECIAL CONDITIONS: + * x = [+,-]0, r = [+,-]0 + * x = +Inf, r = +1 + * x = -Inf, r = -1 + * x = QNaN, r = QNaN + * x = SNaN, r = QNaN + * + * + * ALGORITHM DETAILS + * We handle special values in a callout function, aside from main path + * computations. "Special" for this algorithm are: + * INF, NAN, |x| > HUGE_THRESHOLD + * + * + * Main path computations are organized as follows: + * Actually we split the interval [0, SATURATION_THRESHOLD) + * into a number of subintervals. On each subinterval we approximate tanh(.) + * with a minimax polynomial of pre-defined degree. Polynomial coefficients + * are computed beforehand and stored in table. We also use + * + * y := |x| + B, + * + * here B depends on subinterval and is used to make argument + * closer to zero. + * We also add large fake interval [SATURATION_THRESHOLD, HUGE_THRESHOLD], + * where 1.0 + 0.0*y + 0.0*y^2 ... coefficients are stored - just to + * preserve main path computation logic but return 1.0 for all arguments. + * + * Hence reconstruction looks as follows: + * we extract proper polynomial and range reduction coefficients + * (Pj and B), corresponding to subinterval, to which |x| belongs, + * and return + * + * r := sign(x) * (P0 + P1 * y + ... + Pn * y^n) + * + * NOTE: we use multiprecision technique to multiply and sum the first + * K terms of the polynomial. So Pj, j = 0..K are stored in + * table each as a pair of target precision numbers (Pj and PLj) to + * achieve wider than target precision. + * + * -- + * + */ + + + .text +.L_2__routine_start___svml_tanhf16_z0_0: + + .align 16,0x90 + .globl __svml_tanhf16 + +__svml_tanhf16: + + + .cfi_startproc +..L2: + + pushq %rbp + .cfi_def_cfa_offset 16 + movq %rsp, %rbp + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp + subq $192, %rsp + vmovaps %zmm0, %zmm1 + vmovups __svml_stanh_data_internal(%rip), %zmm9 + vmovups 896+__svml_stanh_data_internal(%rip), %zmm11 + vmovups 768+__svml_stanh_data_internal(%rip), %zmm12 + vmovups 640+__svml_stanh_data_internal(%rip), %zmm13 + vmovups 512+__svml_stanh_data_internal(%rip), %zmm14 + vmovups 384+__svml_stanh_data_internal(%rip), %zmm15 + vpternlogd $255, %zmm2, %zmm2, %zmm2 + vandps 5696+__svml_stanh_data_internal(%rip), %zmm1, %zmm8 + vandps 5632+__svml_stanh_data_internal(%rip), %zmm1, %zmm0 + +/* Here huge arguments, INF and NaNs are filtered out to callout. */ + vpandd 1152+__svml_stanh_data_internal(%rip), %zmm1, %zmm3 + vpsubd 1216+__svml_stanh_data_internal(%rip), %zmm3, %zmm4 + vpcmpd $2, 5824+__svml_stanh_data_internal(%rip), %zmm3, %k1 + +/* + * * small table specific variables * + * ********************************** + * -------------------- Constant loading ------------------- + */ + vpxord %zmm5, %zmm5, %zmm5 + +/* if VMIN, VMAX is defined for I type */ + vpmaxsd %zmm5, %zmm4, %zmm6 + vpminsd 1280+__svml_stanh_data_internal(%rip), %zmm6, %zmm7 + vpsrld $21, %zmm7, %zmm10 + vmovups 1024+__svml_stanh_data_internal(%rip), %zmm4 + vpermt2ps 64+__svml_stanh_data_internal(%rip), %zmm10, %zmm9 + vpermt2ps 960+__svml_stanh_data_internal(%rip), %zmm10, %zmm11 + vpermt2ps 1088+__svml_stanh_data_internal(%rip), %zmm10, %zmm4 + vpermt2ps 832+__svml_stanh_data_internal(%rip), %zmm10, %zmm12 + vpermt2ps 704+__svml_stanh_data_internal(%rip), %zmm10, %zmm13 + vpermt2ps 576+__svml_stanh_data_internal(%rip), %zmm10, %zmm14 + vpermt2ps 448+__svml_stanh_data_internal(%rip), %zmm10, %zmm15 + vpandnd %zmm3, %zmm3, %zmm2{%k1} + vptestmd %zmm2, %zmm2, %k0 + vmovups 128+__svml_stanh_data_internal(%rip), %zmm3 + vsubps {rn-sae}, %zmm9, %zmm8, %zmm2 + kmovw %k0, %edx + vfmadd213ps {rn-sae}, %zmm11, %zmm2, %zmm4 + vpermt2ps 192+__svml_stanh_data_internal(%rip), %zmm10, %zmm3 + vfmadd213ps {rn-sae}, %zmm12, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm13, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm14, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm15, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm3, %zmm2, %zmm4 + vorps %zmm0, %zmm4, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + + +/* no invcbrt in libm, so taking it out here */ + movq %rbp, %rsp + popq %rbp + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + +.LBL_1_3: + + vmovups %zmm1, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + + + xorl %eax, %eax + + + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + + + kmovw 24(%rsp), %k4 + .cfi_restore 122 + kmovw 16(%rsp), %k5 + .cfi_restore 123 + kmovw 8(%rsp), %k6 + .cfi_restore 124 + kmovw (%rsp), %k7 + .cfi_restore 125 + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + .cfi_restore 4 + movq 32(%rsp), %rdi + .cfi_restore 5 + movq 56(%rsp), %r12 + .cfi_restore 12 + movq 48(%rsp), %r13 + .cfi_restore 13 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + + call __svml_stanh_cout_rare_internal + jmp .LBL_1_8 + .align 16,0x90 + + .cfi_endproc + + .type __svml_tanhf16,@function + .size __svml_tanhf16,.-__svml_tanhf16 +..LN__svml_tanhf16.0: + +.L_2__routine_start___svml_stanh_cout_rare_internal_1: + + .align 16,0x90 + +__svml_stanh_cout_rare_internal: + + + .cfi_startproc +..L53: + + lea __stanh_la__imlsTanhTab(%rip), %rdx + movb 3(%rdi), %al + andb $-128, %al + shrb $7, %al + movzbl %al, %ecx + movzwl 2(%rdi), %r8d + andl $32640, %r8d + movl (%rdx,%rcx,4), %eax + cmpl $32640, %r8d + je .LBL_2_4 + +.LBL_2_2: + + movl %eax, (%rsi) + +.LBL_2_3: + + xorl %eax, %eax + ret + +.LBL_2_4: + + testl $8388607, (%rdi) + je .LBL_2_2 + + + movss (%rdi), %xmm0 + addss %xmm0, %xmm0 + movss %xmm0, (%rsi) + jmp .LBL_2_3 + .align 16,0x90 + + .cfi_endproc + + .type __svml_stanh_cout_rare_internal,@function + .size __svml_stanh_cout_rare_internal,.-__svml_stanh_cout_rare_internal +..LN__svml_stanh_cout_rare_internal.1: + + .section .rodata, "a" + .align 64 + .align 64 +__svml_stanh_data_internal: + .long 0 + .long 1030750208 + .long 1032847360 + .long 1034944512 + .long 1037041664 + .long 1039138816 + .long 1041235968 + .long 1043333120 + .long 1045430272 + .long 1047527424 + .long 1049624576 + .long 1051721728 + .long 1053818880 + .long 1055916032 + .long 1058013184 + .long 1060110336 + .long 1062207488 + .long 1064304640 + .long 1066401792 + .long 1068498944 + .long 1070596096 + .long 1072693248 + .long 1074790400 + .long 1076887552 + .long 1078984704 + .long 1081081856 + .long 1083179008 + .long 1085276160 + .long 1087373312 + .long 1089470464 + .long 1091567616 + .long 0 + .long 0 + .long 1030732233 + .long 1032831839 + .long 1034916201 + .long 1036994987 + .long 1039067209 + .long 1041174248 + .long 1043220868 + .long 1045245838 + .long 1047245614 + .long 1049383373 + .long 1051287907 + .long 1053115377 + .long 1054857013 + .long 1057129528 + .long 1058581488 + .long 1059832960 + .long 1060891676 + .long 1062153819 + .long 1063337043 + .long 1064100733 + .long 1064582223 + .long 1064984555 + .long 1065216645 + .long 1065302845 + .long 1065334668 + .long 1065349076 + .long 1065352656 + .long 1065353140 + .long 1065353206 + .long 1065353215 + .long 1065353216 + .long 0 + .long 2963361822 + .long 2971470750 + .long 2945658640 + .long 821708412 + .long 824483568 + .long 824941280 + .long 2984085072 + .long 2957298688 + .long 838449816 + .long 2966046080 + .long 2988320324 + .long 2989804564 + .long 842626356 + .long 3000013710 + .long 2972725824 + .long 3002017674 + .long 853753500 + .long 2987104448 + .long 3000350914 + .long 855535800 + .long 852410906 + .long 851608946 + .long 2988641656 + .long 2997011000 + .long 2989576736 + .long 3000884068 + .long 2999984336 + .long 840950056 + .long 2995215280 + .long 855269702 + .long 0 + .long 1065353216 + .long 1065295748 + .long 1065270545 + .long 1065229919 + .long 1065181343 + .long 1065124909 + .long 1065025765 + .long 1064867200 + .long 1064679597 + .long 1064464345 + .long 1064093083 + .long 1063517074 + .long 1062862743 + .long 1062146519 + .long 1060992371 + .long 1059386208 + .long 1057800167 + .long 1055660649 + .long 1051764737 + .long 1046959010 + .long 1041444634 + .long 1035462611 + .long 1026689093 + .long 1015337940 + .long 1002731447 + .long 990958554 + .long 973168670 + .long 948705851 + .long 924299482 + .long 899955662 + .long 864224966 + .long 0 + .long 2956213371 + .long 3178161821 + .long 3180268967 + .long 3182315389 + .long 3184339487 + .long 3186337805 + .long 3188474939 + .long 3190373619 + .long 3192189570 + .long 3193910865 + .long 3196176320 + .long 3197556682 + .long 3198679950 + .long 3199536798 + .long 3200331518 + .long 3200564882 + .long 3200049264 + .long 3199029518 + .long 3197040598 + .long 3192620804 + .long 3188208183 + .long 3182392393 + .long 3173916356 + .long 3162750726 + .long 3150176437 + .long 3138431708 + .long 3120650203 + .long 3096189170 + .long 3071783062 + .long 3047439278 + .long 3011707180 + .long 0 + .long 3198855845 + .long 3198879250 + .long 3198677023 + .long 3198476576 + .long 3198388151 + .long 3198245218 + .long 3197982711 + .long 3197594458 + .long 3197117197 + .long 3196587519 + .long 3195304371 + .long 3192667528 + .long 3189843074 + .long 3186330810 + .long 3177085101 + .long 1013669486 + .long 1032032579 + .long 1036132065 + .long 1038305199 + .long 1036774550 + .long 1033498413 + .long 1028927137 + .long 1021175553 + .long 1009568359 + .long 998361895 + .long 985691041 + .long 967585842 + .long 943363289 + .long 919210013 + .long 895139148 + .long 858471606 + .long 0 + .long 3077428921 + .long 3189516141 + .long 1008586543 + .long 1036101517 + .long 1033304453 + .long 1034073627 + .long 1036071831 + .long 1037235824 + .long 1039436298 + .long 1040631208 + .long 1041906362 + .long 1042793477 + .long 1043232976 + .long 1043086916 + .long 1042100375 + .long 1039444212 + .long 1034126600 + .long 1026638186 + .long 995501655 + .long 3165579977 + .long 3167654937 + .long 3165317828 + .long 3158960080 + .long 3148291549 + .long 3137354510 + .long 3124730373 + .long 3106670759 + .long 3082457650 + .long 3058305807 + .long 3034235241 + .long 2997581996 + .long 0 + .long 1040781545 + .long 1131811139 + .long 1097198812 + .long 3247503190 + .long 3230402941 + .long 3224086547 + .long 3212798938 + .long 1059790272 + .long 1053691997 + .long 1061317268 + .long 3134918084 + .long 1034173207 + .long 3176246152 + .long 3165561405 + .long 3174788493 + .long 3178015405 + .long 3178847213 + .long 3177176538 + .long 3171127099 + .long 3155996003 + .long 985352038 + .long 999682315 + .long 998398067 + .long 989522534 + .long 977926264 + .long 966355955 + .long 948911724 + .long 924561635 + .long 900244966 + .long 875993879 + .long 841254832 + .long 0 + .long 3155046246 + .long 1175181842 + .long 1138112751 + .long 3286309950 + .long 3267011817 + .long 3259619885 + .long 3246758786 + .long 1088248663 + .long 1078543936 + .long 1086795944 + .long 3205436942 + .long 1043392367 + .long 3198686087 + .long 3182586396 + .long 3174374999 + .long 3142320544 + .long 1008565243 + .long 1014115537 + .long 1016545052 + .long 1010017051 + .long 998649588 + .long 975680464 + .long 3124451591 + .long 3121544226 + .long 3112148751 + .long 3100159824 + .long 3082673659 + .long 3058641232 + .long 3034613169 + .long 3010665978 + .long 2975473412 + .long 0 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 2145386496 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 1027604480 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 65011712 + .long 0 + .long 0 + .long 36466923 + .long 1072693248 + .long 2365563284 + .long 3201306247 + .long 1829111721 + .long 3218428278 + .long 3823420055 + .long 3193165324 + .long 1098370908 + .long 1072693250 + .long 2493848101 + .long 3205978300 + .long 1742787824 + .long 3218423470 + .long 4013086462 + .long 3193609799 + .long 3667406935 + .long 1072693250 + .long 1352570026 + .long 3206273363 + .long 1445916117 + .long 3218422747 + .long 3835089556 + .long 3194065339 + .long 2420711447 + .long 1072693251 + .long 2169133006 + .long 3206574718 + .long 101347106 + .long 3218421982 + .long 713636389 + .long 3194411770 + .long 1709214929 + .long 1072693252 + .long 1710199222 + .long 3206758855 + .long 2216669086 + .long 3218421174 + .long 3814844772 + .long 3194836884 + .long 1591910603 + .long 1072693253 + .long 2011589771 + .long 3206962796 + .long 3721194918 + .long 3218420324 + .long 1295469166 + .long 3195182212 + .long 2130808979 + .long 1072693254 + .long 1222040805 + .long 3207187539 + .long 555871541 + .long 3218419433 + .long 401254514 + .long 3195493098 + .long 3390924472 + .long 1072693255 + .long 3112838711 + .long 3207434078 + .long 1558155560 + .long 3218418499 + .long 683885552 + .long 3195864282 + .long 1145294069 + .long 1072693257 + .long 1821670117 + .long 3207648695 + .long 2692181933 + .long 3218417523 + .long 2704036295 + .long 3196181879 + .long 4054831834 + .long 1072693258 + .long 1649153664 + .long 3207795248 + .long 4228604383 + .long 3218416505 + .long 4004758581 + .long 3196440654 + .long 3603542514 + .long 1072693260 + .long 1123737044 + .long 3207954183 + .long 2154630785 + .long 3218415446 + .long 2606327835 + .long 3196743208 + .long 4163276658 + .long 1072693262 + .long 2048619642 + .long 3208125991 + .long 1058893780 + .long 3218414345 + .long 250194901 + .long 3197094852 + .long 1518877548 + .long 1072693265 + .long 3379868633 + .long 3208311162 + .long 1246516380 + .long 3218413202 + .long 1621358934 + .long 3197304764 + .long 48033162 + .long 1072693268 + .long 957106177 + .long 3208510185 + .long 3034045498 + .long 3218412017 + .long 798414253 + .long 3197538466 + .long 4131323741 + .long 1072693270 + .long 2207647163 + .long 3208683052 + .long 2454449664 + .long 3218410791 + .long 1709648499 + .long 3197805932 + .long 972334142 + .long 1072693274 + .long 1279092327 + .long 3208797143 + .long 4141984674 + .long 3218409523 + .long 4279927728 + .long 3198110676 + .long 3547307714 + .long 1072693277 + .long 873763845 + .long 3208918886 + .long 4152286949 + .long 3218408214 + .long 947630201 + .long 3198400037 + .long 3779918761 + .long 1072693283 + .long 2452756690 + .long 3209115951 + .long 2900277560 + .long 3218406175 + .long 4114829322 + .long 3198840356 + .long 1550746642 + .long 1072693293 + .long 3179273584 + .long 3209408258 + .long 1697097694 + .long 3218403310 + .long 3189856208 + .long 3199299134 + .long 2567958063 + .long 1072693304 + .long 2177201355 + .long 3209713300 + .long 663593652 + .long 3218400281 + .long 1915839956 + .long 3199641526 + .long 3400799630 + .long 1072693317 + .long 2625933576 + .long 3209895292 + .long 3140727122 + .long 3218397088 + .long 2825210621 + .long 3200061154 + .long 661592278 + .long 1072693333 + .long 2751163500 + .long 3210096603 + .long 4055449010 + .long 3218393733 + .long 57286782 + .long 3200412116 + .long 3889851982 + .long 1072693350 + .long 2680384314 + .long 3210318153 + .long 2804057046 + .long 3218390217 + .long 1812582369 + .long 3200718155 + .long 1191734144 + .long 1072693371 + .long 867498228 + .long 3210560852 + .long 3250577733 + .long 3218386540 + .long 3326742410 + .long 3201083020 + .long 2188854007 + .long 1072693394 + .long 363145135 + .long 3210782655 + .long 840173644 + .long 3218382704 + .long 1735074843 + .long 3201408616 + .long 3657661222 + .long 1072693420 + .long 2204762872 + .long 3210926495 + .long 4072217384 + .long 3218378708 + .long 2965875284 + .long 3201662196 + .long 2413420961 + .long 1072693450 + .long 1162405510 + .long 3211082241 + .long 138720143 + .long 3218374556 + .long 454705634 + .long 3201958187 + .long 3899194868 + .long 1072693483 + .long 669033796 + .long 3211250324 + .long 2167069495 + .long 3218370246 + .long 1542529428 + .long 3202301612 + .long 710018948 + .long 1072693521 + .long 2883210692 + .long 3211431169 + .long 1973418570 + .long 3218365781 + .long 3156689511 + .long 3202524481 + .long 2656657906 + .long 1072693562 + .long 3498100032 + .long 3211625196 + .long 125419693 + .long 3218361162 + .long 1620715508 + .long 3202751895 + .long 2404819887 + .long 1072693608 + .long 4021715948 + .long 3211810552 + .long 1645154164 + .long 3218356389 + .long 703452016 + .long 3203011668 + .long 1243884135 + .long 1072693659 + .long 480742811 + .long 3211921363 + .long 3122063309 + .long 3218351464 + .long 223504399 + .long 3203307063 + .long 495862037 + .long 1072693715 + .long 300794004 + .long 3212039372 + .long 1300653287 + .long 3218346389 + .long 1176592120 + .long 3203610816 + .long 3274452673 + .long 1072693808 + .long 2613861807 + .long 3212229889 + .long 359514654 + .long 3218338503 + .long 2923503278 + .long 3204034910 + .long 3741678157 + .long 1072693954 + .long 3651935792 + .long 3212511436 + .long 2702507736 + .long 3218327463 + .long 2210624435 + .long 3204506468 + .long 1100251351 + .long 1072694127 + .long 3514265607 + .long 3212825173 + .long 957470414 + .long 3218315845 + .long 1305550937 + .long 3204833184 + .long 2996845965 + .long 1072694328 + .long 3142229264 + .long 3213004685 + .long 1883674585 + .long 3218303659 + .long 3326598907 + .long 3205231584 + .long 274977645 + .long 1072694562 + .long 3016319234 + .long 3213195820 + .long 1539002348 + .long 3218290918 + .long 3984366897 + .long 3205604614 + .long 1292806442 + .long 1072694830 + .long 3262520051 + .long 3213405058 + .long 2372653574 + .long 3218277634 + .long 2452462577 + .long 3205892032 + .long 1815353697 + .long 1072695136 + .long 3662183375 + .long 3213632998 + .long 250148789 + .long 3218263821 + .long 2158010733 + .long 3206232708 + .long 2150433494 + .long 1072695483 + .long 3919565056 + .long 3213880202 + .long 1540395291 + .long 3218249491 + .long 3182910565 + .long 3206589369 + .long 2808974545 + .long 1072695874 + .long 1965799910 + .long 3214016317 + .long 1545570484 + .long 3218234659 + .long 1413633121 + .long 3206823218 + .long 164723038 + .long 1072696313 + .long 81021250 + .long 3214159950 + .long 1583468454 + .long 3218219339 + .long 18571726 + .long 3207094384 + .long 3588317822 + .long 1072696801 + .long 4095098713 + .long 3214313941 + .long 298038316 + .long 3218203546 + .long 912947688 + .long 3207406859 + .long 1041448961 + .long 1072697344 + .long 4179586945 + .long 3214478495 + .long 2148027612 + .long 3218187294 + .long 3720520462 + .long 3207679413 + .long 1980273179 + .long 1072697943 + .long 1752543433 + .long 3214653794 + .long 124299728 + .long 3218170600 + .long 864061540 + .long 3207883361 + .long 2949417123 + .long 1072698602 + .long 4190073881 + .long 3214839998 + .long 1415544749 + .long 3218153478 + .long 3694676202 + .long 3208114560 + .long 420771937 + .long 1072699325 + .long 1282420231 + .long 3214985633 + .long 1533345938 + .long 3218135945 + .long 2892854837 + .long 3208375402 + .long 3632588569 + .long 1072700113 + .long 2712748874 + .long 3215089842 + .long 1386124246 + .long 3218118017 + .long 1634175019 + .long 3208733922 + .long 347483009 + .long 1072701423 + .long 1161341506 + .long 3215256321 + .long 1877668895 + .long 3218090451 + .long 4108664264 + .long 3209099007 + .long 3038559136 + .long 1072703435 + .long 2683048238 + .long 3215498732 + .long 1179454900 + .long 3218025113 + .long 1332126937 + .long 3209546908 + .long 3486307715 + .long 1072705767 + .long 2508275841 + .long 3215764027 + .long 359393231 + .long 3217946511 + .long 1961215910 + .long 3209890029 + .long 2252418763 + .long 1072708441 + .long 2827865151 + .long 3216017387 + .long 3509880367 + .long 3217865627 + .long 3222140085 + .long 3210213923 + .long 1486994624 + .long 1072711477 + .long 3160629487 + .long 3216172802 + .long 1178047112 + .long 3217782741 + .long 1901428593 + .long 3210596649 + .long 3746562216 + .long 1072714893 + .long 1033996001 + .long 3216339382 + .long 39866696 + .long 3217698130 + .long 2908573463 + .long 3210891953 + .long 2324761591 + .long 1072718707 + .long 2389401627 + .long 3216516876 + .long 3645939838 + .long 3217612071 + .long 2440236284 + .long 3211151116 + .long 1761407793 + .long 1072722932 + .long 2502005220 + .long 3216704962 + .long 1997398717 + .long 3217524842 + .long 2895026412 + .long 3211448596 + .long 4114502182 + .long 1072727579 + .long 2605061383 + .long 3216903247 + .long 58515002 + .long 3217436714 + .long 711731960 + .long 3211787230 + .long 3951984035 + .long 1072732658 + .long 3516063216 + .long 3217071220 + .long 3638757279 + .long 3217347953 + .long 3233370794 + .long 3211979005 + .long 658281779 + .long 1072738175 + .long 309554960 + .long 3217179845 + .long 1331214594 + .long 3217258823 + .long 2937534811 + .long 3212193451 + .long 2289001467 + .long 1072744131 + .long 2442043690 + .long 3217292793 + .long 2664085653 + .long 3217169576 + .long 3462081454 + .long 3212432263 + .long 3795084150 + .long 1072750527 + .long 1130374688 + .long 3217409754 + .long 3638257201 + .long 3217080459 + .long 3906637920 + .long 3212696488 + .long 4040275044 + .long 1072757360 + .long 3643517564 + .long 3217530392 + .long 4148962921 + .long 3216952251 + .long 1995056602 + .long 3212911950 + .long 1479928784 + .long 1072764624 + .long 2653868580 + .long 3217654355 + .long 1010106713 + .long 3216775940 + .long 3129357315 + .long 3213070764 + .long 2856812514 + .long 1072772308 + .long 1621093115 + .long 3217781272 + .long 1824031529 + .long 3216601249 + .long 2296680075 + .long 3213333328 + .long 2460843475 + .long 1072784536 + .long 3722925065 + .long 3217975665 + .long 3901534801 + .long 3216343697 + .long 741495589 + .long 3213734822 + .long 13033194 + .long 1072802249 + .long 1706090638 + .long 3218161084 + .long 4129724113 + .long 3216008854 + .long 2582831738 + .long 3214039094 + .long 3092949488 + .long 1072821329 + .long 4163404160 + .long 3218296789 + .long 673560195 + .long 3215391593 + .long 1852259695 + .long 3214295490 + .long 3663604487 + .long 1072841572 + .long 2783926416 + .long 3218433189 + .long 538028418 + .long 3214623601 + .long 955002681 + .long 3214577680 + .long 1457520314 + .long 1072862739 + .long 2977011911 + .long 3218568683 + .long 2456605794 + .long 3213048602 + .long 1782979473 + .long 3214883178 + .long 3136246603 + .long 1072884563 + .long 4172123069 + .long 3218701739 + .long 1041205303 + .long 1065062250 + .long 1494191018 + .long 3215071352 + .long 2030188257 + .long 1072906761 + .long 242335435 + .long 3218830924 + .long 3225388224 + .long 1066807264 + .long 2597486284 + .long 3215242091 + .long 1527970838 + .long 1072929036 + .long 2966426512 + .long 3218954923 + .long 1554080475 + .long 1067589039 + .long 1299968651 + .long 3215418462 + .long 3575385503 + .long 1072951087 + .long 2115725422 + .long 3219072567 + .long 1970202642 + .long 1068007486 + .long 633750547 + .long 3215597833 + .long 4170701031 + .long 1072972617 + .long 46586082 + .long 3219155579 + .long 1194653136 + .long 1068384025 + .long 4171340731 + .long 3215777352 + .long 3578160514 + .long 1072993337 + .long 3238411740 + .long 3219206599 + .long 3278559237 + .long 1068609006 + .long 2404931200 + .long 3215954013 + .long 533888921 + .long 1073012973 + .long 1507597629 + .long 3219253160 + .long 2386969249 + .long 1068756225 + .long 272720058 + .long 3216053653 + .long 54544651 + .long 1073031269 + .long 3020671348 + .long 3219294996 + .long 4122670807 + .long 1068883785 + .long 2536786852 + .long 3216134458 + .long 230026772 + .long 1073047994 + .long 2830531360 + .long 3219331923 + .long 2545616196 + .long 1068992498 + .long 3897096954 + .long 3216209170 + .long 867435464 + .long 1073062943 + .long 3935983781 + .long 3219363830 + .long 4280666630 + .long 1069083305 + .long 1614478429 + .long 3216276286 + .long 3991143559 + .long 1073075939 + .long 3165050417 + .long 3219390677 + .long 248866814 + .long 1069157251 + .long 2328429718 + .long 3216358398 + .long 1880129173 + .long 1073091258 + .long 4059723411 + .long 3219421162 + .long 3082848917 + .long 1069238148 + .long 1081358649 + .long 3216430553 + .long 1955557582 + .long 1073104040 + .long 2869422647 + .long 3219445318 + .long 1310544530 + .long 1069299023 + .long 434435025 + .long 3216450109 + .long 3947018234 + .long 1073107343 + .long 3414641036 + .long 3219451270 + .long 4069313179 + .long 1069313321 + .long 1392468754 + .long 3216410502 + .long 3271741504 + .long 1073101128 + .long 3884994071 + .long 3219440866 + .long 1456085694 + .long 1069290099 + .long 2332856790 + .long 3216307665 + .long 3950891192 + .long 1073085735 + .long 439037894 + .long 3219416288 + .long 1197951536 + .long 1069237765 + .long 4195788421 + .long 3216139842 + .long 3990997338 + .long 1073061787 + .long 550042602 + .long 3219379833 + .long 2832452545 + .long 1069163766 + .long 1200943255 + .long 3215832361 + .long 2073883731 + .long 1073030122 + .long 3042850267 + .long 3219333800 + .long 991641143 + .long 1069074535 + .long 1637244010 + .long 3215243222 + .long 3805163810 + .long 1072991715 + .long 3517445189 + .long 3219280382 + .long 2680864185 + .long 1068975465 + .long 1457843741 + .long 3214140932 + .long 1315080793 + .long 1072947617 + .long 3059804278 + .long 3219221594 + .long 2861308047 + .long 1068870963 + .long 3296491873 + .long 1064537111 + .long 3728462150 + .long 1072898893 + .long 3615137083 + .long 3219159232 + .long 3017963192 + .long 1068764532 + .long 3972434375 + .long 1067468619 + .long 1336398218 + .long 1072846587 + .long 1068664290 + .long 3219061390 + .long 122240345 + .long 1068658880 + .long 508009436 + .long 1068456917 + .long 3501538245 + .long 1072791681 + .long 968690691 + .long 3218931236 + .long 1514516445 + .long 1068556030 + .long 671541798 + .long 1069006173 + .long 3814409280 + .long 1072735081 + .long 1553551847 + .long 3218801852 + .long 2849431279 + .long 1068415930 + .long 285838780 + .long 1069554660 + .long 2881499585 + .long 1072661949 + .long 928028610 + .long 3218674977 + .long 8837506 + .long 1068229231 + .long 4283922105 + .long 1069842903 + .long 1813934616 + .long 1072546640 + .long 2296020303 + .long 3218551962 + .long 3757630126 + .long 1068054242 + .long 4184842874 + .long 1070138481 + .long 1612285858 + .long 1072432209 + .long 3568867548 + .long 3218433820 + .long 2489334631 + .long 1067891605 + .long 3119354956 + .long 1070586029 + .long 1945534618 + .long 1072265408 + .long 12375465 + .long 3218268030 + .long 869568690 + .long 1067671872 + .long 313517472 + .long 1070892138 + .long 1205077106 + .long 1072052753 + .long 2329101392 + .long 3218055718 + .long 31064032 + .long 1067390210 + .long 1106783211 + .long 1071186310 + .long 571472860 + .long 1071856508 + .long 2279775366 + .long 3217706561 + .long 3977902324 + .long 1066976012 + .long 1438560376 + .long 1071467394 + .long 433300635 + .long 1071678859 + .long 2662131044 + .long 3217407122 + .long 3461865003 + .long 1066639491 + .long 3761842524 + .long 1071687909 + .long 591758334 + .long 1071396321 + .long 1311878841 + .long 3217153539 + .long 3007781852 + .long 1066335723 + .long 1614590629 + .long 1071809819 + .long 1253814918 + .long 1071117476 + .long 1728609767 + .long 3216850667 + .long 2200561853 + .long 1065903347 + .long 3821226689 + .long 1071921115 + .long 2022982069 + .long 1070874479 + .long 2030156196 + .long 3216496942 + .long 874711265 + .long 1065560045 + .long 2003227996 + .long 1072021655 + .long 2808404217 + .long 1070664514 + .long 1372837647 + .long 3216204595 + .long 822053276 + .long 1065224094 + .long 3767175364 + .long 1072111660 + .long 3043371777 + .long 1070372670 + .long 1442419211 + .long 3215945892 + .long 298752438 + .long 1064796452 + .long 1111528881 + .long 1072191609 + .long 3513208196 + .long 1070065467 + .long 3837735739 + .long 3215552388 + .long 3701924119 + .long 1064460397 + .long 1230501085 + .long 1072262142 + .long 2161267832 + .long 1069804871 + .long 4188367704 + .long 3215231429 + .long 401190186 + .long 1064089052 + .long 3002339892 + .long 1072323996 + .long 1480019407 + .long 1069584807 + .long 1833655520 + .long 3214970435 + .long 2907956919 + .long 1063676311 + .long 875346000 + .long 1072377952 + .long 3150437403 + .long 1069251888 + .long 876861923 + .long 3214583482 + .long 1689748747 + .long 1063353511 + .long 2795554744 + .long 1072424793 + .long 3869705215 + .long 1068941581 + .long 1837883894 + .long 3214240854 + .long 2762317048 + .long 1062946513 + .long 2491972100 + .long 1072465284 + .long 4114823501 + .long 1068682289 + .long 2146865463 + .long 3213964103 + .long 800804261 + .long 1062552648 + .long 2634953449 + .long 1072500149 + .long 2952556276 + .long 1068433515 + .long 1872935290 + .long 3213596436 + .long 525130857 + .long 1062245296 + .long 3287041404 + .long 1072542855 + .long 164674845 + .long 1067923724 + .long 3273134342 + .long 3213089271 + .long 171708004 + .long 1061610314 + .long 3035032320 + .long 1072586748 + .long 3976243935 + .long 1067403539 + .long 3504708444 + .long 3212404491 + .long 3955947885 + .long 1060882840 + .long 513098494 + .long 1072618404 + .long 416924237 + .long 1066726877 + .long 1788945081 + .long 3211801737 + .long 1199639353 + .long 1060166859 + .long 2284134637 + .long 1072641010 + .long 754275327 + .long 1066136447 + .long 94803481 + .long 3211042671 + .long 3377507017 + .long 1059354147 + .long 1467291457 + .long 1072657015 + .long 2435597312 + .long 1065520743 + .long 2819017772 + .long 3210358609 + .long 1988617747 + .long 1058591581 + .long 633705514 + .long 1072668259 + .long 392269686 + .long 1064864433 + .long 2964449929 + .long 3209729770 + .long 3963893163 + .long 1057889872 + .long 2214892393 + .long 1072676103 + .long 2190738271 + .long 1064315837 + .long 3773826451 + .long 3208969045 + .long 3609404170 + .long 1057113308 + .long 3795216963 + .long 1072681541 + .long 3959981107 + .long 1063599490 + .long 1577139384 + .long 3208281591 + .long 1777963469 + .long 1056319886 + .long 2768813161 + .long 1072685290 + .long 452197850 + .long 1062981751 + .long 625862001 + .long 3207639777 + .long 1894515286 + .long 1055580811 + .long 809336726 + .long 1072687861 + .long 325412222 + .long 1062349073 + .long 3494772326 + .long 3206874482 + .long 3143092609 + .long 1054887561 + .long 1391578948 + .long 1072689615 + .long 370441451 + .long 1061660435 + .long 67458841 + .long 3206180214 + .long 1971759196 + .long 1054066692 + .long 57274217 + .long 1072690807 + .long 293665776 + .long 1061075750 + .long 1340185983 + .long 3205535605 + .long 2210177191 + .long 1053294335 + .long 1110907588 + .long 1072691613 + .long 3961986905 + .long 1060367146 + .long 3774614905 + .long 3204763416 + .long 3590429673 + .long 1052580827 + .long 2737507729 + .long 1072692156 + .long 370479370 + .long 1059701790 + .long 1033751386 + .long 3204059641 + .long 1162278823 + .long 1051830218 + .long 2341375458 + .long 1072692521 + .long 760364123 + .long 1059103172 + .long 910883556 + .long 3203420282 + .long 401067508 + .long 1051028170 + .long 3358303651 + .long 1072692765 + .long 3104773993 + .long 1058369139 + .long 2043715743 + .long 3202639413 + .long 4274377921 + .long 1050278646 + .long 3501940353 + .long 1072692984 + .long 2710387139 + .long 1057384557 + .long 2550611600 + .long 3201592258 + .long 2260324605 + .long 1049158690 + .long 3160989127 + .long 1072693133 + .long 1403521776 + .long 1056074537 + .long 760745859 + .long 3200238663 + .long 1163121055 + .long 1047679067 + .long 3509020169 + .long 1072693198 + .long 3352058101 + .long 1054743188 + .long 2289323607 + .long 3198722761 + .long 918272756 + .long 1046147840 + .long 4268817660 + .long 1072693226 + .long 1580550645 + .long 1053325591 + .long 1736251411 + .long 3197308470 + .long 1531106447 + .long 1044632576 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2146959360 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 2130706432 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 1022885888 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .long 69730304 + .type __svml_stanh_data_internal,@object + .size __svml_stanh_data_internal,6016 + .align 4 +__stanh_la__imlsTanhTab: + .long 1065353216 + .long 3212836864 + .type __stanh_la__imlsTanhTab,@object + .size __stanh_la__imlsTanhTab,8 From 113c507a779f63a5d2b50543f47795bcb109b5fc Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 16 Apr 2021 13:28:50 -0700 Subject: [PATCH 02/17] ENH, SIMD: Leverage SVML for AVX512 versions of ufuncs --- numpy/core/code_generators/generate_umath.py | 32 ++++++ numpy/core/setup.py | 9 ++ numpy/core/src/common/npy_svml.h | 37 ++++++ numpy/core/src/umath/fast_loop_macros.h | 5 + numpy/core/src/umath/loops.c.src | 31 +++++ numpy/core/src/umath/loops.h.src | 16 +++ numpy/core/src/umath/simd.inc.src | 113 +++++++++++++++++++ 7 files changed, 243 insertions(+) create mode 100644 numpy/core/src/common/npy_svml.h diff --git a/numpy/core/code_generators/generate_umath.py b/numpy/core/code_generators/generate_umath.py index 4891e8f2318a..b68a5d3a9607 100644 --- a/numpy/core/code_generators/generate_umath.py +++ b/numpy/core/code_generators/generate_umath.py @@ -635,6 +635,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arccos'), None, + TD('e', f='acos', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='acos', astype={'e':'f'}), TD(P, f='arccos'), ), @@ -642,6 +644,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arccosh'), None, + TD('e', f='acosh', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='acosh', astype={'e':'f'}), TD(P, f='arccosh'), ), @@ -649,6 +653,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arcsin'), None, + TD('e', f='asin', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='asin', astype={'e':'f'}), TD(P, f='arcsin'), ), @@ -656,6 +662,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arcsinh'), None, + TD('e', f='asinh', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='asinh', astype={'e':'f'}), TD(P, f='arcsinh'), ), @@ -663,6 +671,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arctan'), None, + TD('e', f='atan', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='atan', astype={'e':'f'}), TD(P, f='arctan'), ), @@ -670,6 +680,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arctanh'), None, + TD('e', f='atanh', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='atanh', astype={'e':'f'}), TD(P, f='arctanh'), ), @@ -695,6 +707,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.tan'), None, + TD('e', f='tan', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='tan', astype={'e':'f'}), TD(P, f='tan'), ), @@ -702,6 +716,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.cosh'), None, + TD('e', f='cosh', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='cosh', astype={'e':'f'}), TD(P, f='cosh'), ), @@ -709,6 +725,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.sinh'), None, + TD('e', f='sinh', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='sinh', astype={'e':'f'}), TD(P, f='sinh'), ), @@ -716,6 +734,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.tanh'), None, + TD('e', f='tanh', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='tanh', astype={'e':'f'}), TD(P, f='tanh'), ), @@ -732,6 +752,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.exp2'), None, + TD('e', f='exp2', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='exp2', astype={'e':'f'}), TD(P, f='exp2'), ), @@ -739,6 +761,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.expm1'), None, + TD('e', f='expm1', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='expm1', astype={'e':'f'}), TD(P, f='expm1'), ), @@ -755,6 +779,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.log2'), None, + TD('e', f='log2', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='log2', astype={'e':'f'}), TD(P, f='log2'), ), @@ -762,6 +788,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.log10'), None, + TD('e', f='log10', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='log10', astype={'e':'f'}), TD(P, f='log10'), ), @@ -769,6 +797,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.log1p'), None, + TD('e', f='log1p', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(inexact, f='log1p', astype={'e':'f'}), TD(P, f='log1p'), ), @@ -785,6 +815,8 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.cbrt'), None, + TD('e', f='cbrt', astype={'e':'f'}), + TD('fd', simd=[('avx512_skx', 'fd')]), TD(flts, f='cbrt', astype={'e':'f'}), TD(P, f='cbrt'), ), diff --git a/numpy/core/setup.py b/numpy/core/setup.py index c20320910d22..51573aa73a2f 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -727,6 +727,7 @@ def get_mathlib_info(*args): join('src', 'common', 'npy_import.h'), join('src', 'common', 'npy_hashtable.h'), join('src', 'common', 'npy_longdouble.h'), + join('src', 'common', 'npy_svml.h'), join('src', 'common', 'templ_common.h.src'), join('src', 'common', 'ucsnarrow.h'), join('src', 'common', 'ufunc_override.h'), @@ -951,6 +952,13 @@ def generate_umath_c(ext, build_dir): join(codegen_dir, 'generate_ufunc_api.py'), ] + + svml_objs = [] + if "x86" in platform.machine(): + for svmlsrc in os.listdir("numpy/core/src/umath/svml"): + if svmlsrc.endswith(".s"): + svml_objs.append(join('src', 'umath', 'svml', svmlsrc)) + config.add_extension('_multiarray_umath', sources=multiarray_src + umath_src + common_src + @@ -965,6 +973,7 @@ def generate_umath_c(ext, build_dir): depends=deps + multiarray_deps + umath_deps + common_deps, libraries=['npymath'], + extra_objects=svml_objs, extra_info=extra_info) ####################################################################### diff --git a/numpy/core/src/common/npy_svml.h b/numpy/core/src/common/npy_svml.h new file mode 100644 index 000000000000..3e7348a64596 --- /dev/null +++ b/numpy/core/src/common/npy_svml.h @@ -0,0 +1,37 @@ +#if defined HAVE_ATTRIBUTE_TARGET_AVX512F_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +extern __m512 __svml_exp2f16(__m512 x); +extern __m512 __svml_log2f16(__m512 x); +extern __m512 __svml_log10f16(__m512 x); +extern __m512 __svml_expm1f16(__m512 x); +extern __m512 __svml_log1pf16(__m512 x); +extern __m512 __svml_cbrtf16(__m512 x); +extern __m512 __svml_tanf16(__m512 x); +extern __m512 __svml_asinf16(__m512 x); +extern __m512 __svml_acosf16(__m512 x); +extern __m512 __svml_atanf16(__m512 x); +extern __m512 __svml_atan2f16(__m512 x); +extern __m512 __svml_sinhf16(__m512 x); +extern __m512 __svml_coshf16(__m512 x); +extern __m512 __svml_tanhf16(__m512 x); +extern __m512 __svml_asinhf16(__m512 x); +extern __m512 __svml_acoshf16(__m512 x); +extern __m512 __svml_atanhf16(__m512 x); + +extern __m512d __svml_exp28(__m512d x); +extern __m512d __svml_log28(__m512d x); +extern __m512d __svml_log108(__m512d x); +extern __m512d __svml_expm18(__m512d x); +extern __m512d __svml_log1p8(__m512d x); +extern __m512d __svml_cbrt8(__m512d x); +extern __m512d __svml_tan8(__m512d x); +extern __m512d __svml_asin8(__m512d x); +extern __m512d __svml_acos8(__m512d x); +extern __m512d __svml_atan8(__m512d x); +extern __m512d __svml_atan28(__m512d x); +extern __m512d __svml_sinh8(__m512d x); +extern __m512d __svml_cosh8(__m512d x); +extern __m512d __svml_tanh8(__m512d x); +extern __m512d __svml_asinh8(__m512d x); +extern __m512d __svml_acosh8(__m512d x); +extern __m512d __svml_atanh8(__m512d x); +#endif diff --git a/numpy/core/src/umath/fast_loop_macros.h b/numpy/core/src/umath/fast_loop_macros.h index 4a36c9721879..a621d1a5a838 100644 --- a/numpy/core/src/umath/fast_loop_macros.h +++ b/numpy/core/src/umath/fast_loop_macros.h @@ -284,6 +284,11 @@ abs_ptrdiff(char *a, char *b) * ensures this. The condition also requires that the input and output arrays * should have no overlap in memory. */ +#define IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP \ + ((labs(steps[0]) < MAX_STEP_SIZE) && \ + (labs(steps[1]) < MAX_STEP_SIZE) && \ + (nomemoverlap(args[0], steps[0] * dimensions[0], args[1], steps[1] * dimensions[0]))) + #define IS_BINARY_SMALL_STEPS_AND_NOMEMOVERLAP \ ((labs(steps[0]) < MAX_STEP_SIZE) && \ (labs(steps[1]) < MAX_STEP_SIZE) && \ diff --git a/numpy/core/src/umath/loops.c.src b/numpy/core/src/umath/loops.c.src index b1afa69a7b80..f0818ab476d9 100644 --- a/numpy/core/src/umath/loops.c.src +++ b/numpy/core/src/umath/loops.c.src @@ -1531,6 +1531,37 @@ TIMEDELTA_mm_qm_divmod(char **args, npy_intp const *dimensions, npy_intp const * ***************************************************************************** */ +/**begin repeat + * #TYPE = DOUBLE, FLOAT# + * #type = npy_double, npy_float# + * #vsub = , f# + */ + +/**begin repeat1 + * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, arcsin, arccos, arctan, sinh, cosh, arcsinh, arccosh, arctanh# + * #glibcfunc = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# + */ + +NPY_NO_EXPORT NPY_GCC_OPT_3 void +@TYPE@_@func@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data)) +{ + UNARY_LOOP { + const @type@ in1 = *(@type@ *)ip1; + *(@type@ *)op1 = npy_@glibcfunc@@vsub@(in1); + } +} + +NPY_NO_EXPORT NPY_GCC_OPT_3 void +@TYPE@_@func@_avx512_skx(char **args, npy_intp *dimensions, npy_intp *steps, void *data) +{ + if (!run_unary_avx512_skx_@glibcfunc@_@TYPE@(args, dimensions, steps)) { + @TYPE@_@func@(args, dimensions, steps, data); + } +} + +/**end repeat1**/ +/**end repeat**/ + /**begin repeat * #func = rint, ceil, floor, trunc# * #scalarf = npy_rint, npy_ceil, npy_floor, npy_trunc# diff --git a/numpy/core/src/umath/loops.h.src b/numpy/core/src/umath/loops.h.src index 02d749a5eb5b..9612a1b39bc3 100644 --- a/numpy/core/src/umath/loops.h.src +++ b/numpy/core/src/umath/loops.h.src @@ -210,6 +210,22 @@ NPY_CPU_DISPATCH_DECLARE(NPY_NO_EXPORT void @TYPE@_@kind@, /**end repeat1**/ /**end repeat**/ +/**begin repeat + * #TYPE = FLOAT, DOUBLE# + */ +/**begin repeat1 + * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, arcsin, arccos, arctan, sinh, cosh, arcsinh, arccosh, arctanh# + */ + +NPY_NO_EXPORT void +@TYPE@_@func@(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); + +NPY_NO_EXPORT void +@TYPE@_@func@_avx512_skx(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); + +/**end repeat1**/ +/**end repeat**/ + /**begin repeat * #TYPE = FLOAT, DOUBLE# */ diff --git a/numpy/core/src/umath/simd.inc.src b/numpy/core/src/umath/simd.inc.src index 654ab81cc370..2a03804b51a4 100644 --- a/numpy/core/src/umath/simd.inc.src +++ b/numpy/core/src/umath/simd.inc.src @@ -33,6 +33,7 @@ #include #include #include /* for memcpy */ +#include "npy_svml.h" #define VECTOR_SIZE_BYTES 16 @@ -116,7 +117,36 @@ run_binary_avx512f_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_in #endif return 0; } +/**end repeat1**/ + +/**end repeat**/ +/**begin repeat + * #type = npy_float, npy_double# + * #TYPE = FLOAT, DOUBLE# + */ +/**begin repeat1 + * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# + */ + +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void +AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps); +#endif + +static NPY_INLINE int +run_unary_avx512_skx_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps) +{ +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS + if (IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP) { + AVX512_SKX_@func@_@TYPE@(args, dimensions, steps); + return 1; + } + else + return 0; +#endif + return 0; +} /**end repeat1**/ /**end repeat**/ @@ -1133,6 +1163,88 @@ NPY_FINLINE NPY_GCC_OPT_3 NPY_GCC_TARGET_@ISA@ @vtype@d #endif /**end repeat**/ + +/**begin repeat + * #type = npy_float, npy_double# + * #TYPE = FLOAT, DOUBLE# + * #num_lanes = 16, 8# + * #func_suffix = f16, 8# + * #mask = __mmask16, __mmask8# + * #vtype = __m512, __m512d# + * #vsuffix = ps, pd# + * #scale = 4, 8# + * #vindextype = __m512i, __m256i# + * #vindexload = _mm512_loadu_si512, _mm256_loadu_si256# + */ + +/**begin repeat1 + * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# + * #default_val = 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0# + */ + +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void +AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps) +{ + @type@* ip = (@type@*) args[0]; + @type@* op = (@type@*) args[1]; + const npy_intp array_size = dimensions[0]; + const npy_intp stride_ip = steps[0] / (npy_intp)sizeof(@type@); + const npy_intp stride_op = steps[1] / (npy_intp)sizeof(@type@); + npy_intp num_remaining_elements = array_size; + + @mask@ load_mask = avx512_get_full_load_mask_@vsuffix@(); + + /* + * Note: while generally indices are npy_intp, we ensure that our maximum + * index will fit in an int32 as a precondition for this function via + * IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP + */ + + npy_int32 index_ip[@num_lanes@]; + for (npy_int32 ii = 0; ii < @num_lanes@; ii++) { + index_ip[ii] = ii*stride_ip; + } + npy_int32 index_op[@num_lanes@]; + for (npy_int32 ii = 0; ii < @num_lanes@; ii++) { + index_op[ii] = ii*stride_op; + } + const @vindextype@ vindex_ip = @vindexload@((@vindextype@*)&index_ip[0]); + const @vindextype@ vindex_op = @vindexload@((@vindextype@*)&index_op[0]); + + const @vtype@ val_f = _mm512_set1_@vsuffix@(@default_val@); + + while (num_remaining_elements > 0) { + if (num_remaining_elements < @num_lanes@) { + load_mask = avx512_get_partial_load_mask_@vsuffix@(num_remaining_elements, @num_lanes@); + } + + @vtype@ x1; + if (stride_ip == 1) { + x1 = _mm512_mask_loadu_@vsuffix@(val_f, load_mask, ip); + } + else { + x1 = _mm512_mask_i32gather_@vsuffix@(val_f, load_mask, vindex_ip, ip, @scale@); + } + + @vtype@ out = __svml_@func@@func_suffix@(x1); + + if (stride_op == 1) { + _mm512_mask_storeu_@vsuffix@(op, load_mask, out); + } + else { + _mm512_mask_i32scatter_@vsuffix@(op, load_mask, vindex_op, out, @scale@); + } + + ip += @num_lanes@*stride_ip; + op += @num_lanes@*stride_op; + num_remaining_elements -= @num_lanes@; + } +} +#endif +/**end repeat1**/ +/**end repeat**/ + /**begin repeat * #type = npy_float, npy_double# * #TYPE = FLOAT, DOUBLE# @@ -1152,6 +1264,7 @@ NPY_FINLINE NPY_GCC_OPT_3 NPY_GCC_TARGET_@ISA@ @vtype@d * #is_finite = 0, 1, 0, 0# * #is_signbit = 0, 0, 0, 1# */ + #if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void AVX512_SKX_@func@_@TYPE@(npy_bool* op, @type@* ip, const npy_intp array_size, const npy_intp steps) From 2ff00617f660da93105510a212c4cd1a99413588 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 26 May 2021 14:29:11 -0700 Subject: [PATCH 03/17] ENH: Use SVML to compute double precision sin and cos --- numpy/core/code_generators/generate_umath.py | 2 + numpy/core/src/common/npy_svml.h | 4 + numpy/core/src/umath/loops.c.src | 22 +++++ numpy/core/src/umath/loops.h.src | 12 +++ numpy/core/src/umath/simd.inc.src | 91 ++++++++++++++++++++ 5 files changed, 131 insertions(+) diff --git a/numpy/core/code_generators/generate_umath.py b/numpy/core/code_generators/generate_umath.py index b68a5d3a9607..e03f52fae7bd 100644 --- a/numpy/core/code_generators/generate_umath.py +++ b/numpy/core/code_generators/generate_umath.py @@ -691,6 +691,7 @@ def english_upper(s): None, TD('e', f='cos', astype={'e':'f'}), TD('f', dispatch=[('loops_trigonometric', 'f')]), + TD('d', simd=[('avx512_skx', 'd')]), TD('fdg' + cmplx, f='cos'), TD(P, f='cos'), ), @@ -700,6 +701,7 @@ def english_upper(s): None, TD('e', f='sin', astype={'e':'f'}), TD('f', dispatch=[('loops_trigonometric', 'f')]), + TD('d', simd=[('avx512_skx', 'd')]), TD('fdg' + cmplx, f='sin'), TD(P, f='sin'), ), diff --git a/numpy/core/src/common/npy_svml.h b/numpy/core/src/common/npy_svml.h index 3e7348a64596..da98a7ff16fd 100644 --- a/numpy/core/src/common/npy_svml.h +++ b/numpy/core/src/common/npy_svml.h @@ -5,6 +5,8 @@ extern __m512 __svml_log10f16(__m512 x); extern __m512 __svml_expm1f16(__m512 x); extern __m512 __svml_log1pf16(__m512 x); extern __m512 __svml_cbrtf16(__m512 x); +extern __m512 __svml_sinf16(__m512 x); +extern __m512 __svml_cosf16(__m512 x); extern __m512 __svml_tanf16(__m512 x); extern __m512 __svml_asinf16(__m512 x); extern __m512 __svml_acosf16(__m512 x); @@ -23,6 +25,8 @@ extern __m512d __svml_log108(__m512d x); extern __m512d __svml_expm18(__m512d x); extern __m512d __svml_log1p8(__m512d x); extern __m512d __svml_cbrt8(__m512d x); +extern __m512d __svml_sin8(__m512d x); +extern __m512d __svml_cos8(__m512d x); extern __m512d __svml_tan8(__m512d x); extern __m512d __svml_asin8(__m512d x); extern __m512d __svml_acos8(__m512d x); diff --git a/numpy/core/src/umath/loops.c.src b/numpy/core/src/umath/loops.c.src index f0818ab476d9..5b27e618e468 100644 --- a/numpy/core/src/umath/loops.c.src +++ b/numpy/core/src/umath/loops.c.src @@ -1562,6 +1562,28 @@ NPY_NO_EXPORT NPY_GCC_OPT_3 void /**end repeat1**/ /**end repeat**/ +/**begin repeat + * #func = sin, cos# + */ + +NPY_NO_EXPORT NPY_GCC_OPT_3 void +DOUBLE_@func@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data)) +{ + UNARY_LOOP { + const npy_double in1 = *(npy_double *)ip1; + *(npy_double *)op1 = npy_@func@(in1); + } +} + +NPY_NO_EXPORT NPY_GCC_OPT_3 void +DOUBLE_@func@_avx512_skx(char **args, npy_intp *dimensions, npy_intp *steps, void *data) +{ + if (!run_unary_avx512_skx_@func@_DOUBLE(args, dimensions, steps)) { + DOUBLE_@func@(args, dimensions, steps, data); + } +} +/**end repeat**/ + /**begin repeat * #func = rint, ceil, floor, trunc# * #scalarf = npy_rint, npy_ceil, npy_floor, npy_trunc# diff --git a/numpy/core/src/umath/loops.h.src b/numpy/core/src/umath/loops.h.src index 9612a1b39bc3..feb95ad8299c 100644 --- a/numpy/core/src/umath/loops.h.src +++ b/numpy/core/src/umath/loops.h.src @@ -226,6 +226,18 @@ NPY_NO_EXPORT void /**end repeat1**/ /**end repeat**/ +/**begin repeat + * #func = sin, cos# + */ + +NPY_NO_EXPORT void +DOUBLE_@func@(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); + +NPY_NO_EXPORT void +DOUBLE_@func@_avx512_skx(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); + +/**end repeat**/ + /**begin repeat * #TYPE = FLOAT, DOUBLE# */ diff --git a/numpy/core/src/umath/simd.inc.src b/numpy/core/src/umath/simd.inc.src index 2a03804b51a4..552e584d07b3 100644 --- a/numpy/core/src/umath/simd.inc.src +++ b/numpy/core/src/umath/simd.inc.src @@ -151,6 +151,31 @@ run_unary_avx512_skx_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_ /**end repeat1**/ /**end repeat**/ +/**begin repeat + * #func = sin, cos# + */ + +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void +AVX512_SKX_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps); +#endif + +static NPY_INLINE int +run_unary_avx512_skx_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps) +{ +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS + if (IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP) { + AVX512_SKX_@func@_DOUBLE(args, dimensions, steps); + return 1; + } + else + return 0; +#endif + return 0; +} + +/**end repeat**/ + /**begin repeat * #type = npy_float, npy_double, npy_longdouble# * #TYPE = FLOAT, DOUBLE, LONGDOUBLE# @@ -1245,6 +1270,72 @@ AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const /**end repeat1**/ /**end repeat**/ +/**begin repeat + * #func = sin, cos# + */ + +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void +AVX512_SKX_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps) +{ + npy_double* ip = (npy_double*) args[0]; + npy_double* op = (npy_double*) args[1]; + const npy_intp array_size = dimensions[0]; + const npy_intp stride_ip = steps[0] / (npy_intp)sizeof(npy_double); + const npy_intp stride_op = steps[1] / (npy_intp)sizeof(npy_double); + npy_intp num_remaining_elements = array_size; + + __mmask8 load_mask = avx512_get_full_load_mask_pd(); + + /* + * Note: while generally indices are npy_intp, we ensure that our maximum + * index will fit in an int32 as a precondition for this function via + * IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP + */ + + npy_int32 index_ip[8]; + for (npy_int32 ii = 0; ii < 8; ii++) { + index_ip[ii] = ii*stride_ip; + } + npy_int32 index_op[8]; + for (npy_int32 ii = 0; ii < 8; ii++) { + index_op[ii] = ii*stride_op; + } + const __m256i vindex_ip = _mm256_loadu_si256((__m256i*)&index_ip[0]); + const __m256i vindex_op = _mm256_loadu_si256((__m256i*)&index_op[0]); + + const __m512d val_f = _mm512_setzero_pd(); + + while (num_remaining_elements > 0) { + if (num_remaining_elements < 8) { + load_mask = avx512_get_partial_load_mask_pd(num_remaining_elements, 8); + } + + __m512d x1; + if (stride_ip == 1) { + x1 = _mm512_mask_loadu_pd(val_f, load_mask, ip); + } + else { + x1 = _mm512_mask_i32gather_pd(val_f, load_mask, vindex_ip, ip, 8); + } + + __m512d out = __svml_@func@8(x1); + + if (stride_op == 1) { + _mm512_mask_storeu_pd(op, load_mask, out); + } + else { + _mm512_mask_i32scatter_pd(op, load_mask, vindex_op, out, 8); + } + + ip += 8*stride_ip; + op += 8*stride_op; + num_remaining_elements -= 8; + } +} +#endif +/**end repeat**/ + /**begin repeat * #type = npy_float, npy_double# * #TYPE = FLOAT, DOUBLE# From 6fe51131fdd0c9221f23d0f43077bb62915abf67 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Thu, 15 Jul 2021 14:29:31 -0700 Subject: [PATCH 04/17] MAINT: Adhering to pep8 style guide --- numpy/core/code_generators/generate_umath.py | 106 +++++++++---------- numpy/core/setup.py | 1 - 2 files changed, 53 insertions(+), 54 deletions(-) diff --git a/numpy/core/code_generators/generate_umath.py b/numpy/core/code_generators/generate_umath.py index e03f52fae7bd..66f053a43943 100644 --- a/numpy/core/code_generators/generate_umath.py +++ b/numpy/core/code_generators/generate_umath.py @@ -359,7 +359,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.fmod'), None, TD(ints), - TD(flts, f='fmod', astype={'e':'f'}), + TD(flts, f='fmod', astype={'e': 'f'}), TD(P, f='fmod'), ), 'square': @@ -390,7 +390,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.power'), None, TD(ints), - TD(inexact, f='pow', astype={'e':'f'}), + TD(inexact, f='pow', astype={'e': 'f'}), TD(O, f='npy_ObjectPower'), ), 'float_power': @@ -551,13 +551,13 @@ def english_upper(s): Ufunc(2, 1, MinusInfinity, docstrings.get('numpy.core.umath.logaddexp'), None, - TD(flts, f="logaddexp", astype={'e':'f'}) + TD(flts, f="logaddexp", astype={'e': 'f'}) ), 'logaddexp2': Ufunc(2, 1, MinusInfinity, docstrings.get('numpy.core.umath.logaddexp2'), None, - TD(flts, f="logaddexp2", astype={'e':'f'}) + TD(flts, f="logaddexp2", astype={'e': 'f'}) ), 'bitwise_and': Ufunc(2, 1, AllOnes, @@ -605,91 +605,91 @@ def english_upper(s): Ufunc(2, 1, None, docstrings.get('numpy.core.umath.heaviside'), None, - TD(flts, f='heaviside', astype={'e':'f'}), + TD(flts, f='heaviside', astype={'e': 'f'}), ), 'degrees': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.degrees'), None, - TD(fltsP, f='degrees', astype={'e':'f'}), + TD(fltsP, f='degrees', astype={'e': 'f'}), ), 'rad2deg': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.rad2deg'), None, - TD(fltsP, f='rad2deg', astype={'e':'f'}), + TD(fltsP, f='rad2deg', astype={'e': 'f'}), ), 'radians': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.radians'), None, - TD(fltsP, f='radians', astype={'e':'f'}), + TD(fltsP, f='radians', astype={'e': 'f'}), ), 'deg2rad': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.deg2rad'), None, - TD(fltsP, f='deg2rad', astype={'e':'f'}), + TD(fltsP, f='deg2rad', astype={'e': 'f'}), ), 'arccos': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arccos'), None, - TD('e', f='acos', astype={'e':'f'}), + TD('e', f='acos', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='acos', astype={'e':'f'}), + TD(inexact, f='acos', astype={'e': 'f'}), TD(P, f='arccos'), ), 'arccosh': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arccosh'), None, - TD('e', f='acosh', astype={'e':'f'}), + TD('e', f='acosh', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='acosh', astype={'e':'f'}), + TD(inexact, f='acosh', astype={'e': 'f'}), TD(P, f='arccosh'), ), 'arcsin': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arcsin'), None, - TD('e', f='asin', astype={'e':'f'}), + TD('e', f='asin', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='asin', astype={'e':'f'}), + TD(inexact, f='asin', astype={'e': 'f'}), TD(P, f='arcsin'), ), 'arcsinh': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arcsinh'), None, - TD('e', f='asinh', astype={'e':'f'}), + TD('e', f='asinh', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='asinh', astype={'e':'f'}), + TD(inexact, f='asinh', astype={'e': 'f'}), TD(P, f='arcsinh'), ), 'arctan': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arctan'), None, - TD('e', f='atan', astype={'e':'f'}), + TD('e', f='atan', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='atan', astype={'e':'f'}), + TD(inexact, f='atan', astype={'e': 'f'}), TD(P, f='arctan'), ), 'arctanh': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.arctanh'), None, - TD('e', f='atanh', astype={'e':'f'}), + TD('e', f='atanh', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='atanh', astype={'e':'f'}), + TD(inexact, f='atanh', astype={'e': 'f'}), TD(P, f='arctanh'), ), 'cos': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.cos'), None, - TD('e', f='cos', astype={'e':'f'}), + TD('e', f='cos', astype={'e': 'f'}), TD('f', dispatch=[('loops_trigonometric', 'f')]), TD('d', simd=[('avx512_skx', 'd')]), TD('fdg' + cmplx, f='cos'), @@ -699,7 +699,7 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.sin'), None, - TD('e', f='sin', astype={'e':'f'}), + TD('e', f='sin', astype={'e': 'f'}), TD('f', dispatch=[('loops_trigonometric', 'f')]), TD('d', simd=[('avx512_skx', 'd')]), TD('fdg' + cmplx, f='sin'), @@ -709,43 +709,43 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.tan'), None, - TD('e', f='tan', astype={'e':'f'}), + TD('e', f='tan', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='tan', astype={'e':'f'}), + TD(inexact, f='tan', astype={'e': 'f'}), TD(P, f='tan'), ), 'cosh': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.cosh'), None, - TD('e', f='cosh', astype={'e':'f'}), + TD('e', f='cosh', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='cosh', astype={'e':'f'}), + TD(inexact, f='cosh', astype={'e': 'f'}), TD(P, f='cosh'), ), 'sinh': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.sinh'), None, - TD('e', f='sinh', astype={'e':'f'}), + TD('e', f='sinh', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='sinh', astype={'e':'f'}), + TD(inexact, f='sinh', astype={'e': 'f'}), TD(P, f='sinh'), ), 'tanh': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.tanh'), None, - TD('e', f='tanh', astype={'e':'f'}), + TD('e', f='tanh', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='tanh', astype={'e':'f'}), + TD(inexact, f='tanh', astype={'e': 'f'}), TD(P, f='tanh'), ), 'exp': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.exp'), None, - TD('e', f='exp', astype={'e':'f'}), + TD('e', f='exp', astype={'e': 'f'}), TD('fd', dispatch=[('loops_exponent_log', 'fd')]), TD('fdg' + cmplx, f='exp'), TD(P, f='exp'), @@ -754,25 +754,25 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.exp2'), None, - TD('e', f='exp2', astype={'e':'f'}), + TD('e', f='exp2', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='exp2', astype={'e':'f'}), + TD(inexact, f='exp2', astype={'e': 'f'}), TD(P, f='exp2'), ), 'expm1': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.expm1'), None, - TD('e', f='expm1', astype={'e':'f'}), + TD('e', f='expm1', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='expm1', astype={'e':'f'}), + TD(inexact, f='expm1', astype={'e': 'f'}), TD(P, f='expm1'), ), 'log': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.log'), None, - TD('e', f='log', astype={'e':'f'}), + TD('e', f='log', astype={'e': 'f'}), TD('fd', dispatch=[('loops_exponent_log', 'fd')]), TD('fdg' + cmplx, f='log'), TD(P, f='log'), @@ -781,34 +781,34 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.log2'), None, - TD('e', f='log2', astype={'e':'f'}), + TD('e', f='log2', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='log2', astype={'e':'f'}), + TD(inexact, f='log2', astype={'e': 'f'}), TD(P, f='log2'), ), 'log10': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.log10'), None, - TD('e', f='log10', astype={'e':'f'}), + TD('e', f='log10', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='log10', astype={'e':'f'}), + TD(inexact, f='log10', astype={'e': 'f'}), TD(P, f='log10'), ), 'log1p': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.log1p'), None, - TD('e', f='log1p', astype={'e':'f'}), + TD('e', f='log1p', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(inexact, f='log1p', astype={'e':'f'}), + TD(inexact, f='log1p', astype={'e': 'f'}), TD(P, f='log1p'), ), 'sqrt': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.sqrt'), None, - TD('e', f='sqrt', astype={'e':'f'}), + TD('e', f='sqrt', astype={'e': 'f'}), TD(inexactvec, dispatch=[('loops_unary_fp', 'fd')]), TD('fdg' + cmplx, f='sqrt'), TD(P, f='sqrt'), @@ -817,16 +817,16 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.cbrt'), None, - TD('e', f='cbrt', astype={'e':'f'}), + TD('e', f='cbrt', astype={'e': 'f'}), TD('fd', simd=[('avx512_skx', 'fd')]), - TD(flts, f='cbrt', astype={'e':'f'}), + TD(flts, f='cbrt', astype={'e': 'f'}), TD(P, f='cbrt'), ), 'ceil': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.ceil'), None, - TD('e', f='ceil', astype={'e':'f'}), + TD('e', f='ceil', astype={'e': 'f'}), TD(inexactvec, simd=[('fma', 'fd'), ('avx512f', 'fd')]), TD('fdg', f='ceil'), TD(O, f='npy_ObjectCeil'), @@ -835,7 +835,7 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.trunc'), None, - TD('e', f='trunc', astype={'e':'f'}), + TD('e', f='trunc', astype={'e': 'f'}), TD(inexactvec, simd=[('fma', 'fd'), ('avx512f', 'fd')]), TD('fdg', f='trunc'), TD(O, f='npy_ObjectTrunc'), @@ -844,14 +844,14 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.fabs'), None, - TD(flts, f='fabs', astype={'e':'f'}), + TD(flts, f='fabs', astype={'e': 'f'}), TD(P, f='fabs'), ), 'floor': Ufunc(1, 1, None, docstrings.get('numpy.core.umath.floor'), None, - TD('e', f='floor', astype={'e':'f'}), + TD('e', f='floor', astype={'e': 'f'}), TD(inexactvec, simd=[('fma', 'fd'), ('avx512f', 'fd')]), TD('fdg', f='floor'), TD(O, f='npy_ObjectFloor'), @@ -860,7 +860,7 @@ def english_upper(s): Ufunc(1, 1, None, docstrings.get('numpy.core.umath.rint'), None, - TD('e', f='rint', astype={'e':'f'}), + TD('e', f='rint', astype={'e': 'f'}), TD(inexactvec, simd=[('fma', 'fd'), ('avx512f', 'fd')]), TD('fdg' + cmplx, f='rint'), TD(P, f='rint'), @@ -869,7 +869,7 @@ def english_upper(s): Ufunc(2, 1, None, docstrings.get('numpy.core.umath.arctan2'), None, - TD(flts, f='atan2', astype={'e':'f'}), + TD(flts, f='atan2', astype={'e': 'f'}), TD(P, f='arctan2'), ), 'remainder': @@ -892,7 +892,7 @@ def english_upper(s): Ufunc(2, 1, Zero, docstrings.get('numpy.core.umath.hypot'), None, - TD(flts, f='hypot', astype={'e':'f'}), + TD(flts, f='hypot', astype={'e': 'f'}), TD(P, f='hypot'), ), 'isnan': diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 51573aa73a2f..f9a264e83385 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -952,7 +952,6 @@ def generate_umath_c(ext, build_dir): join(codegen_dir, 'generate_ufunc_api.py'), ] - svml_objs = [] if "x86" in platform.machine(): for svmlsrc in os.listdir("numpy/core/src/umath/svml"): From 84ced527f53a0a2e0b937ece69c56fd57fd391d1 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Thu, 15 Jul 2021 14:38:27 -0700 Subject: [PATCH 05/17] TST: increase error tol from 12 to 11 decimal places for test_approximation SVML library is accurate upto 4ULP and hence reduces the accuracy slightly --- numpy/polynomial/tests/test_classes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/numpy/polynomial/tests/test_classes.py b/numpy/polynomial/tests/test_classes.py index 8e71a19459bc..6322062f29ec 100644 --- a/numpy/polynomial/tests/test_classes.py +++ b/numpy/polynomial/tests/test_classes.py @@ -597,4 +597,4 @@ def powx(x, p): for deg in range(0, 10): for t in range(0, deg + 1): p = Chebyshev.interpolate(powx, deg, domain=[0, 2], args=(t,)) - assert_almost_equal(p(x), powx(x, t), decimal=12) + assert_almost_equal(p(x), powx(x, t), decimal=11) From 984ddd428394aa35b26ad452506cdd68a6e8e222 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 21 Jul 2021 11:11:15 -0700 Subject: [PATCH 06/17] MAINT: Enable SVML for linux only --- numpy/core/setup.py | 13 ++++++++++++- numpy/core/src/umath/simd.inc.src | 12 ++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/numpy/core/setup.py b/numpy/core/setup.py index f9a264e83385..0a1d6c8c3c86 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -63,6 +63,14 @@ def check_complex(self, *a, **kw): out = copy.deepcopy(pickle.loads(self._check_complex)) return out +def can_link_svml(): + """SVML library is supported only on x86_64 architecture and currently + only on linux + """ + machine = platform.machine() + system = platform.system() + return "x86_64" in machine and system == "Linux" + def pythonlib_dir(): """return path where libpython* is.""" if sys.platform == 'win32': @@ -455,6 +463,9 @@ def generate_config_h(ext, build_dir): # Inline check inline = config_cmd.check_inline() + if can_link_svml(): + moredefs.append(('NPY_CAN_LINK_SVML', 1)) + # Use relaxed stride checking if NPY_RELAXED_STRIDES_CHECKING: moredefs.append(('NPY_RELAXED_STRIDES_CHECKING', 1)) @@ -953,7 +964,7 @@ def generate_umath_c(ext, build_dir): ] svml_objs = [] - if "x86" in platform.machine(): + if can_link_svml(): for svmlsrc in os.listdir("numpy/core/src/umath/svml"): if svmlsrc.endswith(".s"): svml_objs.append(join('src', 'umath', 'svml', svmlsrc)) diff --git a/numpy/core/src/umath/simd.inc.src b/numpy/core/src/umath/simd.inc.src index 552e584d07b3..bca6af36094c 100644 --- a/numpy/core/src/umath/simd.inc.src +++ b/numpy/core/src/umath/simd.inc.src @@ -129,7 +129,7 @@ run_binary_avx512f_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_in * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# */ -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps); #endif @@ -137,7 +137,7 @@ AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const static NPY_INLINE int run_unary_avx512_skx_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps) { -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML if (IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP) { AVX512_SKX_@func@_@TYPE@(args, dimensions, steps); return 1; @@ -155,7 +155,7 @@ run_unary_avx512_skx_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_ * #func = sin, cos# */ -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void AVX512_SKX_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps); #endif @@ -163,7 +163,7 @@ AVX512_SKX_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const static NPY_INLINE int run_unary_avx512_skx_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps) { -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML if (IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP) { AVX512_SKX_@func@_DOUBLE(args, dimensions, steps); return 1; @@ -1207,7 +1207,7 @@ NPY_FINLINE NPY_GCC_OPT_3 NPY_GCC_TARGET_@ISA@ @vtype@d * #default_val = 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0# */ -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps) { @@ -1274,7 +1274,7 @@ AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const * #func = sin, cos# */ -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void AVX512_SKX_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps) { From 1e112a0b2e3a785c58df851abe98a06fc5552abe Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 21 Jul 2021 12:53:37 -0700 Subject: [PATCH 07/17] Adding svml sources to gitattributes as linguist-vendored --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 8723dd9dc95a..1830531c1662 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,6 +11,7 @@ numpy/linalg/lapack_lite/f2c.c linguist-vendored numpy/linalg/lapack_lite/f2c.h linguist-vendored tools/npy_tempita/* linguist-vendored numpy/core/include/numpy/libdivide/* linguist-vendored +numpy/core/src/umath/svml/* linguist-vendored # Mark some files as generated numpy/linalg/lapack_lite/f2c_*.c linguist-generated From 4532a967e6200797dff92877e46fab4e033570f2 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Mon, 26 Jul 2021 10:46:00 -0700 Subject: [PATCH 08/17] MAINT: Use Universal Intrinsics framework to leverage SVML --- numpy/core/code_generators/generate_umath.py | 36 ++-- numpy/core/setup.py | 1 + numpy/core/src/common/npy_svml.h | 2 +- numpy/core/src/umath/loops.c.src | 53 ----- numpy/core/src/umath/loops.h.src | 18 +- .../src/umath/loops_umath_fp.dispatch.c.src | 141 ++++++++++++ numpy/core/src/umath/simd.inc.src | 204 ------------------ 7 files changed, 169 insertions(+), 286 deletions(-) create mode 100644 numpy/core/src/umath/loops_umath_fp.dispatch.c.src diff --git a/numpy/core/code_generators/generate_umath.py b/numpy/core/code_generators/generate_umath.py index 66f053a43943..3a27a34cdd51 100644 --- a/numpy/core/code_generators/generate_umath.py +++ b/numpy/core/code_generators/generate_umath.py @@ -636,7 +636,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.arccos'), None, TD('e', f='acos', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='acos', astype={'e': 'f'}), TD(P, f='arccos'), ), @@ -645,7 +645,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.arccosh'), None, TD('e', f='acosh', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='acosh', astype={'e': 'f'}), TD(P, f='arccosh'), ), @@ -654,7 +654,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.arcsin'), None, TD('e', f='asin', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='asin', astype={'e': 'f'}), TD(P, f='arcsin'), ), @@ -663,7 +663,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.arcsinh'), None, TD('e', f='asinh', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='asinh', astype={'e': 'f'}), TD(P, f='arcsinh'), ), @@ -672,7 +672,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.arctan'), None, TD('e', f='atan', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='atan', astype={'e': 'f'}), TD(P, f='arctan'), ), @@ -681,7 +681,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.arctanh'), None, TD('e', f='atanh', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='atanh', astype={'e': 'f'}), TD(P, f='arctanh'), ), @@ -691,7 +691,7 @@ def english_upper(s): None, TD('e', f='cos', astype={'e': 'f'}), TD('f', dispatch=[('loops_trigonometric', 'f')]), - TD('d', simd=[('avx512_skx', 'd')]), + TD('d', dispatch=[('loops_umath_fp', 'd')]), TD('fdg' + cmplx, f='cos'), TD(P, f='cos'), ), @@ -701,7 +701,7 @@ def english_upper(s): None, TD('e', f='sin', astype={'e': 'f'}), TD('f', dispatch=[('loops_trigonometric', 'f')]), - TD('d', simd=[('avx512_skx', 'd')]), + TD('d', dispatch=[('loops_umath_fp', 'd')]), TD('fdg' + cmplx, f='sin'), TD(P, f='sin'), ), @@ -710,7 +710,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.tan'), None, TD('e', f='tan', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='tan', astype={'e': 'f'}), TD(P, f='tan'), ), @@ -719,7 +719,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.cosh'), None, TD('e', f='cosh', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='cosh', astype={'e': 'f'}), TD(P, f='cosh'), ), @@ -728,7 +728,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.sinh'), None, TD('e', f='sinh', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='sinh', astype={'e': 'f'}), TD(P, f='sinh'), ), @@ -737,7 +737,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.tanh'), None, TD('e', f='tanh', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='tanh', astype={'e': 'f'}), TD(P, f='tanh'), ), @@ -755,7 +755,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.exp2'), None, TD('e', f='exp2', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='exp2', astype={'e': 'f'}), TD(P, f='exp2'), ), @@ -764,7 +764,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.expm1'), None, TD('e', f='expm1', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='expm1', astype={'e': 'f'}), TD(P, f='expm1'), ), @@ -782,7 +782,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.log2'), None, TD('e', f='log2', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='log2', astype={'e': 'f'}), TD(P, f='log2'), ), @@ -791,7 +791,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.log10'), None, TD('e', f='log10', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='log10', astype={'e': 'f'}), TD(P, f='log10'), ), @@ -800,7 +800,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.log1p'), None, TD('e', f='log1p', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(inexact, f='log1p', astype={'e': 'f'}), TD(P, f='log1p'), ), @@ -818,7 +818,7 @@ def english_upper(s): docstrings.get('numpy.core.umath.cbrt'), None, TD('e', f='cbrt', astype={'e': 'f'}), - TD('fd', simd=[('avx512_skx', 'fd')]), + TD('fd', dispatch=[('loops_umath_fp', 'fd')]), TD(flts, f='cbrt', astype={'e': 'f'}), TD(P, f='cbrt'), ), diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 0a1d6c8c3c86..26836e00483b 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -935,6 +935,7 @@ def generate_umath_c(ext, build_dir): join('src', 'umath', 'loops_arithm_fp.dispatch.c.src'), join('src', 'umath', 'loops_arithmetic.dispatch.c.src'), join('src', 'umath', 'loops_trigonometric.dispatch.c.src'), + join('src', 'umath', 'loops_umath_fp.dispatch.c.src'), join('src', 'umath', 'loops_exponent_log.dispatch.c.src'), join('src', 'umath', 'matmul.h.src'), join('src', 'umath', 'matmul.c.src'), diff --git a/numpy/core/src/common/npy_svml.h b/numpy/core/src/common/npy_svml.h index da98a7ff16fd..4292f7090333 100644 --- a/numpy/core/src/common/npy_svml.h +++ b/numpy/core/src/common/npy_svml.h @@ -1,4 +1,4 @@ -#if defined HAVE_ATTRIBUTE_TARGET_AVX512F_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS +#if NPY_SIMD && defined(NPY_HAVE_AVX512_SKX) && defined(NPY_CAN_LINK_SVML) extern __m512 __svml_exp2f16(__m512 x); extern __m512 __svml_log2f16(__m512 x); extern __m512 __svml_log10f16(__m512 x); diff --git a/numpy/core/src/umath/loops.c.src b/numpy/core/src/umath/loops.c.src index 5b27e618e468..b1afa69a7b80 100644 --- a/numpy/core/src/umath/loops.c.src +++ b/numpy/core/src/umath/loops.c.src @@ -1531,59 +1531,6 @@ TIMEDELTA_mm_qm_divmod(char **args, npy_intp const *dimensions, npy_intp const * ***************************************************************************** */ -/**begin repeat - * #TYPE = DOUBLE, FLOAT# - * #type = npy_double, npy_float# - * #vsub = , f# - */ - -/**begin repeat1 - * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, arcsin, arccos, arctan, sinh, cosh, arcsinh, arccosh, arctanh# - * #glibcfunc = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# - */ - -NPY_NO_EXPORT NPY_GCC_OPT_3 void -@TYPE@_@func@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data)) -{ - UNARY_LOOP { - const @type@ in1 = *(@type@ *)ip1; - *(@type@ *)op1 = npy_@glibcfunc@@vsub@(in1); - } -} - -NPY_NO_EXPORT NPY_GCC_OPT_3 void -@TYPE@_@func@_avx512_skx(char **args, npy_intp *dimensions, npy_intp *steps, void *data) -{ - if (!run_unary_avx512_skx_@glibcfunc@_@TYPE@(args, dimensions, steps)) { - @TYPE@_@func@(args, dimensions, steps, data); - } -} - -/**end repeat1**/ -/**end repeat**/ - -/**begin repeat - * #func = sin, cos# - */ - -NPY_NO_EXPORT NPY_GCC_OPT_3 void -DOUBLE_@func@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data)) -{ - UNARY_LOOP { - const npy_double in1 = *(npy_double *)ip1; - *(npy_double *)op1 = npy_@func@(in1); - } -} - -NPY_NO_EXPORT NPY_GCC_OPT_3 void -DOUBLE_@func@_avx512_skx(char **args, npy_intp *dimensions, npy_intp *steps, void *data) -{ - if (!run_unary_avx512_skx_@func@_DOUBLE(args, dimensions, steps)) { - DOUBLE_@func@(args, dimensions, steps, data); - } -} -/**end repeat**/ - /**begin repeat * #func = rint, ceil, floor, trunc# * #scalarf = npy_rint, npy_ceil, npy_floor, npy_trunc# diff --git a/numpy/core/src/umath/loops.h.src b/numpy/core/src/umath/loops.h.src index feb95ad8299c..0938cd050f58 100644 --- a/numpy/core/src/umath/loops.h.src +++ b/numpy/core/src/umath/loops.h.src @@ -210,6 +210,10 @@ NPY_CPU_DISPATCH_DECLARE(NPY_NO_EXPORT void @TYPE@_@kind@, /**end repeat1**/ /**end repeat**/ +#ifndef NPY_DISABLE_OPTIMIZATION + #include "loops_umath_fp.dispatch.h" +#endif + /**begin repeat * #TYPE = FLOAT, DOUBLE# */ @@ -217,11 +221,8 @@ NPY_CPU_DISPATCH_DECLARE(NPY_NO_EXPORT void @TYPE@_@kind@, * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, arcsin, arccos, arctan, sinh, cosh, arcsinh, arccosh, arctanh# */ -NPY_NO_EXPORT void -@TYPE@_@func@(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); - -NPY_NO_EXPORT void -@TYPE@_@func@_avx512_skx(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); +NPY_CPU_DISPATCH_DECLARE(NPY_NO_EXPORT void @TYPE@_@func@, + (char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func))) /**end repeat1**/ /**end repeat**/ @@ -230,11 +231,8 @@ NPY_NO_EXPORT void * #func = sin, cos# */ -NPY_NO_EXPORT void -DOUBLE_@func@(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); - -NPY_NO_EXPORT void -DOUBLE_@func@_avx512_skx(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)); +NPY_CPU_DISPATCH_DECLARE(NPY_NO_EXPORT void DOUBLE_@func@, + (char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func))) /**end repeat**/ diff --git a/numpy/core/src/umath/loops_umath_fp.dispatch.c.src b/numpy/core/src/umath/loops_umath_fp.dispatch.c.src new file mode 100644 index 000000000000..8526046556a7 --- /dev/null +++ b/numpy/core/src/umath/loops_umath_fp.dispatch.c.src @@ -0,0 +1,141 @@ +/*@targets + ** $maxopt baseline avx512_skx + */ +#include "numpy/npy_math.h" +#include "simd/simd.h" +#include "loops_utils.h" +#include "loops.h" +#include "npy_svml.h" +#include "fast_loop_macros.h" + +#if NPY_SIMD && defined(NPY_HAVE_AVX512_SKX) && defined(NPY_CAN_LINK_SVML) +/**begin repeat + * #sfx = f32, f64# + * #func_suffix = f16, 8# + */ +/**begin repeat1 + * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# + * #default_val = 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0# + */ +static void +simd_@func@_@sfx@(const npyv_lanetype_@sfx@ *src, npy_intp ssrc, + npyv_lanetype_@sfx@ *dst, npy_intp sdst, npy_intp len) +{ + const int vstep = npyv_nlanes_@sfx@; + for (; len > 0; len -= vstep, src += ssrc*vstep, dst += sdst*vstep) { + npyv_@sfx@ x; + #if @default_val@ + if (ssrc == 1) { + x = npyv_load_till_@sfx@(src, len, @default_val@); + } else { + x = npyv_loadn_till_@sfx@(src, ssrc, len, @default_val@); + } + #else + if (ssrc == 1) { + x = npyv_load_tillz_@sfx@(src, len); + } else { + x = npyv_loadn_tillz_@sfx@(src, ssrc, len); + } + #endif + npyv_@sfx@ out = __svml_@func@@func_suffix@(x); + if (sdst == 1) { + npyv_store_till_@sfx@(dst, len, out); + } else { + npyv_storen_till_@sfx@(dst, sdst, len, out); + } + } + npyv_cleanup(); +} +/**end repeat1**/ +/**end repeat**/ + +/**begin repeat + * #func = sin, cos# + */ +static void +simd_@func@_f64(const double *src, npy_intp ssrc, + double *dst, npy_intp sdst, npy_intp len) +{ + const int vstep = npyv_nlanes_f64; + for (; len > 0; len -= vstep, src += ssrc*vstep, dst += sdst*vstep) { + npyv_f64 x; + if (ssrc == 1) { + x = npyv_load_tillz_f64(src, len); + } else { + x = npyv_loadn_tillz_f64(src, ssrc, len); + } + npyv_f64 out = __svml_@func@8(x); + if (sdst == 1) { + npyv_store_till_f64(dst, len, out); + } else { + npyv_storen_till_f64(dst, sdst, len, out); + } + } + npyv_cleanup(); +} +/**end repeat**/ +#endif + +/**begin repeat + * #TYPE = DOUBLE, FLOAT# + * #type = npy_double, npy_float# + * #vsub = , f# + * #sfx = f64, f32# + */ +/**begin repeat1 + * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, arcsin, arccos, arctan, sinh, cosh, arcsinh, arccosh, arctanh# + * #intrin = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# + */ +NPY_NO_EXPORT void NPY_CPU_DISPATCH_CURFX(@TYPE@_@func@) +(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(data)) +{ +#if NPY_SIMD && defined(NPY_HAVE_AVX512_SKX) && defined(NPY_CAN_LINK_SVML) + const @type@ *src = (@type@*)args[0]; + @type@ *dst = (@type@*)args[1]; + const int lsize = sizeof(src[0]); + const npy_intp ssrc = steps[0] / lsize; + const npy_intp sdst = steps[1] / lsize; + const npy_intp len = dimensions[0]; + assert(steps[0] % lsize == 0 && steps[1] % lsize == 0); + if (!is_mem_overlap(src, steps[0], dst, steps[1], len) && + npyv_loadable_stride_@sfx@(ssrc) && + npyv_storable_stride_@sfx@(sdst)) { + simd_@intrin@_@sfx@(src, ssrc, dst, sdst, len); + return; + } +#endif + UNARY_LOOP { + const @type@ in1 = *(@type@ *)ip1; + *(@type@ *)op1 = npy_@intrin@@vsub@(in1); + } +} +/**end repeat1**/ +/**end repeat**/ + +/**begin repeat + * #func = sin, cos# + */ +NPY_NO_EXPORT void NPY_CPU_DISPATCH_CURFX(DOUBLE_@func@) +(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(data)) +{ +#if NPY_SIMD && defined(NPY_HAVE_AVX512_SKX) && defined(NPY_CAN_LINK_SVML) + const double *src = (double*)args[0]; + double *dst = (double*)args[1]; + const int lsize = sizeof(src[0]); + const npy_intp ssrc = steps[0] / lsize; + const npy_intp sdst = steps[1] / lsize; + const npy_intp len = dimensions[0]; + assert(steps[0] % lsize == 0 && steps[1] % lsize == 0); + if (!is_mem_overlap(src, steps[0], dst, steps[1], len) && + npyv_loadable_stride_f64(ssrc) && + npyv_storable_stride_f64(sdst)) { + simd_@func@_f64(src, ssrc, dst, sdst, len); + return; + } +#endif + UNARY_LOOP { + const npy_double in1 = *(npy_double *)ip1; + *(npy_double *)op1 = npy_@func@(in1); + } +} +/**end repeat**/ diff --git a/numpy/core/src/umath/simd.inc.src b/numpy/core/src/umath/simd.inc.src index bca6af36094c..d47be9a30fd3 100644 --- a/numpy/core/src/umath/simd.inc.src +++ b/numpy/core/src/umath/simd.inc.src @@ -33,7 +33,6 @@ #include #include #include /* for memcpy */ -#include "npy_svml.h" #define VECTOR_SIZE_BYTES 16 @@ -121,61 +120,6 @@ run_binary_avx512f_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_in /**end repeat**/ -/**begin repeat - * #type = npy_float, npy_double# - * #TYPE = FLOAT, DOUBLE# - */ -/**begin repeat1 - * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# - */ - -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML -static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void -AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps); -#endif - -static NPY_INLINE int -run_unary_avx512_skx_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps) -{ -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML - if (IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP) { - AVX512_SKX_@func@_@TYPE@(args, dimensions, steps); - return 1; - } - else - return 0; -#endif - return 0; -} - -/**end repeat1**/ -/**end repeat**/ - -/**begin repeat - * #func = sin, cos# - */ - -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML -static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void -AVX512_SKX_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps); -#endif - -static NPY_INLINE int -run_unary_avx512_skx_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps) -{ -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML - if (IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP) { - AVX512_SKX_@func@_DOUBLE(args, dimensions, steps); - return 1; - } - else - return 0; -#endif - return 0; -} - -/**end repeat**/ - /**begin repeat * #type = npy_float, npy_double, npy_longdouble# * #TYPE = FLOAT, DOUBLE, LONGDOUBLE# @@ -1188,154 +1132,6 @@ NPY_FINLINE NPY_GCC_OPT_3 NPY_GCC_TARGET_@ISA@ @vtype@d #endif /**end repeat**/ - -/**begin repeat - * #type = npy_float, npy_double# - * #TYPE = FLOAT, DOUBLE# - * #num_lanes = 16, 8# - * #func_suffix = f16, 8# - * #mask = __mmask16, __mmask8# - * #vtype = __m512, __m512d# - * #vsuffix = ps, pd# - * #scale = 4, 8# - * #vindextype = __m512i, __m256i# - * #vindexload = _mm512_loadu_si512, _mm256_loadu_si256# - */ - -/**begin repeat1 - * #func = tanh, exp2, log2, log10, expm1, log1p, cbrt, tan, asin, acos, atan, sinh, cosh, asinh, acosh, atanh# - * #default_val = 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0# - */ - -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML -static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void -AVX512_SKX_@func@_@TYPE@(char **args, npy_intp const *dimensions, npy_intp const *steps) -{ - @type@* ip = (@type@*) args[0]; - @type@* op = (@type@*) args[1]; - const npy_intp array_size = dimensions[0]; - const npy_intp stride_ip = steps[0] / (npy_intp)sizeof(@type@); - const npy_intp stride_op = steps[1] / (npy_intp)sizeof(@type@); - npy_intp num_remaining_elements = array_size; - - @mask@ load_mask = avx512_get_full_load_mask_@vsuffix@(); - - /* - * Note: while generally indices are npy_intp, we ensure that our maximum - * index will fit in an int32 as a precondition for this function via - * IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP - */ - - npy_int32 index_ip[@num_lanes@]; - for (npy_int32 ii = 0; ii < @num_lanes@; ii++) { - index_ip[ii] = ii*stride_ip; - } - npy_int32 index_op[@num_lanes@]; - for (npy_int32 ii = 0; ii < @num_lanes@; ii++) { - index_op[ii] = ii*stride_op; - } - const @vindextype@ vindex_ip = @vindexload@((@vindextype@*)&index_ip[0]); - const @vindextype@ vindex_op = @vindexload@((@vindextype@*)&index_op[0]); - - const @vtype@ val_f = _mm512_set1_@vsuffix@(@default_val@); - - while (num_remaining_elements > 0) { - if (num_remaining_elements < @num_lanes@) { - load_mask = avx512_get_partial_load_mask_@vsuffix@(num_remaining_elements, @num_lanes@); - } - - @vtype@ x1; - if (stride_ip == 1) { - x1 = _mm512_mask_loadu_@vsuffix@(val_f, load_mask, ip); - } - else { - x1 = _mm512_mask_i32gather_@vsuffix@(val_f, load_mask, vindex_ip, ip, @scale@); - } - - @vtype@ out = __svml_@func@@func_suffix@(x1); - - if (stride_op == 1) { - _mm512_mask_storeu_@vsuffix@(op, load_mask, out); - } - else { - _mm512_mask_i32scatter_@vsuffix@(op, load_mask, vindex_op, out, @scale@); - } - - ip += @num_lanes@*stride_ip; - op += @num_lanes@*stride_op; - num_remaining_elements -= @num_lanes@; - } -} -#endif -/**end repeat1**/ -/**end repeat**/ - -/**begin repeat - * #func = sin, cos# - */ - -#if defined HAVE_ATTRIBUTE_TARGET_AVX512_SKX_WITH_INTRINSICS && defined NPY_HAVE_SSE2_INTRINSICS && defined NPY_CAN_LINK_SVML -static NPY_INLINE NPY_GCC_TARGET_AVX512_SKX void -AVX512_SKX_@func@_DOUBLE(char **args, npy_intp const *dimensions, npy_intp const *steps) -{ - npy_double* ip = (npy_double*) args[0]; - npy_double* op = (npy_double*) args[1]; - const npy_intp array_size = dimensions[0]; - const npy_intp stride_ip = steps[0] / (npy_intp)sizeof(npy_double); - const npy_intp stride_op = steps[1] / (npy_intp)sizeof(npy_double); - npy_intp num_remaining_elements = array_size; - - __mmask8 load_mask = avx512_get_full_load_mask_pd(); - - /* - * Note: while generally indices are npy_intp, we ensure that our maximum - * index will fit in an int32 as a precondition for this function via - * IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP - */ - - npy_int32 index_ip[8]; - for (npy_int32 ii = 0; ii < 8; ii++) { - index_ip[ii] = ii*stride_ip; - } - npy_int32 index_op[8]; - for (npy_int32 ii = 0; ii < 8; ii++) { - index_op[ii] = ii*stride_op; - } - const __m256i vindex_ip = _mm256_loadu_si256((__m256i*)&index_ip[0]); - const __m256i vindex_op = _mm256_loadu_si256((__m256i*)&index_op[0]); - - const __m512d val_f = _mm512_setzero_pd(); - - while (num_remaining_elements > 0) { - if (num_remaining_elements < 8) { - load_mask = avx512_get_partial_load_mask_pd(num_remaining_elements, 8); - } - - __m512d x1; - if (stride_ip == 1) { - x1 = _mm512_mask_loadu_pd(val_f, load_mask, ip); - } - else { - x1 = _mm512_mask_i32gather_pd(val_f, load_mask, vindex_ip, ip, 8); - } - - __m512d out = __svml_@func@8(x1); - - if (stride_op == 1) { - _mm512_mask_storeu_pd(op, load_mask, out); - } - else { - _mm512_mask_i32scatter_pd(op, load_mask, vindex_op, out, 8); - } - - ip += 8*stride_ip; - op += 8*stride_op; - num_remaining_elements -= 8; - } -} -#endif -/**end repeat**/ - /**begin repeat * #type = npy_float, npy_double# * #TYPE = FLOAT, DOUBLE# From 05bc52dffffa542a09d775612d8eebfba97064e3 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Sun, 8 Aug 2021 21:22:53 -0700 Subject: [PATCH 09/17] MAINT: Get rid of unnecessary macro --- numpy/core/src/umath/fast_loop_macros.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/numpy/core/src/umath/fast_loop_macros.h b/numpy/core/src/umath/fast_loop_macros.h index a621d1a5a838..4a36c9721879 100644 --- a/numpy/core/src/umath/fast_loop_macros.h +++ b/numpy/core/src/umath/fast_loop_macros.h @@ -284,11 +284,6 @@ abs_ptrdiff(char *a, char *b) * ensures this. The condition also requires that the input and output arrays * should have no overlap in memory. */ -#define IS_UNARY_SMALL_STEPS_AND_NOMEMOVERLAP \ - ((labs(steps[0]) < MAX_STEP_SIZE) && \ - (labs(steps[1]) < MAX_STEP_SIZE) && \ - (nomemoverlap(args[0], steps[0] * dimensions[0], args[1], steps[1] * dimensions[0]))) - #define IS_BINARY_SMALL_STEPS_AND_NOMEMOVERLAP \ ((labs(steps[0]) < MAX_STEP_SIZE) && \ (labs(steps[1]) < MAX_STEP_SIZE) && \ From d7ff5036c90568d10086a411221e4f858e7a09ed Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 13 Aug 2021 12:16:10 -0700 Subject: [PATCH 10/17] MAINT: Remove SVML sources from NumPy repo --- numpy/core/src/umath/svml/svml_z0_acos_d_la.s | 2642 -- numpy/core/src/umath/svml/svml_z0_acos_s_la.s | 2292 -- .../core/src/umath/svml/svml_z0_acosh_d_la.s | 891 - .../core/src/umath/svml/svml_z0_acosh_s_la.s | 685 - numpy/core/src/umath/svml/svml_z0_asin_d_la.s | 2551 -- numpy/core/src/umath/svml/svml_z0_asin_s_la.s | 2199 -- .../core/src/umath/svml/svml_z0_asinh_d_la.s | 874 - .../core/src/umath/svml/svml_z0_asinh_s_la.s | 673 - .../core/src/umath/svml/svml_z0_atan2_d_la.s | 2393 -- .../core/src/umath/svml/svml_z0_atan2_s_la.s | 2074 -- numpy/core/src/umath/svml/svml_z0_atan_d_la.s | 1352 -- numpy/core/src/umath/svml/svml_z0_atan_s_la.s | 355 - .../core/src/umath/svml/svml_z0_atanh_d_la.s | 656 - .../core/src/umath/svml/svml_z0_atanh_s_la.s | 558 - numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s | 911 - numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s | 1012 - numpy/core/src/umath/svml/svml_z0_cos_d_la.s | 17674 -------------- numpy/core/src/umath/svml/svml_z0_cos_s_la.s | 2854 --- numpy/core/src/umath/svml/svml_z0_cosh_d_la.s | 1715 -- numpy/core/src/umath/svml/svml_z0_cosh_s_la.s | 1211 - numpy/core/src/umath/svml/svml_z0_exp2_d_la.s | 830 - numpy/core/src/umath/svml/svml_z0_exp2_s_la.s | 494 - numpy/core/src/umath/svml/svml_z0_exp_d_la.s | 1074 - numpy/core/src/umath/svml/svml_z0_exp_s_la.s | 772 - .../core/src/umath/svml/svml_z0_expm1_d_la.s | 1089 - .../core/src/umath/svml/svml_z0_expm1_s_la.s | 593 - .../core/src/umath/svml/svml_z0_log10_d_la.s | 1124 - .../core/src/umath/svml/svml_z0_log10_s_la.s | 754 - .../core/src/umath/svml/svml_z0_log1p_d_la.s | 1132 - .../core/src/umath/svml/svml_z0_log1p_s_la.s | 1650 -- numpy/core/src/umath/svml/svml_z0_log2_d_la.s | 1714 -- numpy/core/src/umath/svml/svml_z0_log2_s_la.s | 728 - numpy/core/src/umath/svml/svml_z0_log_d_la.s | 1096 - numpy/core/src/umath/svml/svml_z0_log_s_la.s | 930 - numpy/core/src/umath/svml/svml_z0_pow_d_la.s | 3525 --- numpy/core/src/umath/svml/svml_z0_pow_s_la.s | 2012 -- numpy/core/src/umath/svml/svml_z0_sin_d_la.s | 17544 -------------- numpy/core/src/umath/svml/svml_z0_sin_s_la.s | 2751 --- numpy/core/src/umath/svml/svml_z0_sinh_d_la.s | 2052 -- numpy/core/src/umath/svml/svml_z0_sinh_s_la.s | 1446 -- numpy/core/src/umath/svml/svml_z0_tan_d_la.s | 20219 ---------------- numpy/core/src/umath/svml/svml_z0_tan_s_la.s | 3177 --- numpy/core/src/umath/svml/svml_z0_tanh_d_la.s | 3046 --- numpy/core/src/umath/svml/svml_z0_tanh_s_la.s | 1791 -- 44 files changed, 117115 deletions(-) delete mode 100644 numpy/core/src/umath/svml/svml_z0_acos_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_acos_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_acosh_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_acosh_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_asin_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_asin_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_asinh_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_asinh_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_atan2_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_atan2_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_atan_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_atan_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_atanh_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_atanh_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_cos_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_cos_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_cosh_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_cosh_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_exp2_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_exp2_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_exp_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_exp_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_expm1_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_expm1_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log10_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log10_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log1p_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log1p_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log2_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log2_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_log_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_pow_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_pow_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_sin_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_sin_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_sinh_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_sinh_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_tan_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_tan_s_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_tanh_d_la.s delete mode 100644 numpy/core/src/umath/svml/svml_z0_tanh_s_la.s diff --git a/numpy/core/src/umath/svml/svml_z0_acos_d_la.s b/numpy/core/src/umath/svml/svml_z0_acos_d_la.s deleted file mode 100644 index 779b9105fd8d..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_acos_d_la.s +++ /dev/null @@ -1,2642 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_acos8_z0_0: - - .align 16,0x90 - .globl __svml_acos8 - -__svml_acos8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups __svml_dacos_data_internal(%rip), %zmm7 - vmovups 64+__svml_dacos_data_internal(%rip), %zmm8 - -/* S ~ 2*sqrt(Y) */ - vmovups 128+__svml_dacos_data_internal(%rip), %zmm11 - vmovups 384+__svml_dacos_data_internal(%rip), %zmm14 - vmovups 448+__svml_dacos_data_internal(%rip), %zmm15 - vmovups 512+__svml_dacos_data_internal(%rip), %zmm2 - vmovups 576+__svml_dacos_data_internal(%rip), %zmm1 - vmovups 256+__svml_dacos_data_internal(%rip), %zmm10 - vmovaps %zmm0, %zmm6 - -/* x = -|arg| */ - vorpd %zmm6, %zmm7, %zmm5 - vandpd %zmm6, %zmm7, %zmm4 - -/* Y = 0.5 + 0.5*(-x) */ - vfmadd231pd {rn-sae}, %zmm5, %zmm8, %zmm8 - -/* x^2 */ - vmulpd {rn-sae}, %zmm5, %zmm5, %zmm9 - vrsqrt14pd %zmm8, %zmm12 - vcmppd $17, {sae}, %zmm11, %zmm8, %k2 - vcmppd $17, {sae}, %zmm10, %zmm5, %k0 - vmovups 960+__svml_dacos_data_internal(%rip), %zmm10 - vmovups 1088+__svml_dacos_data_internal(%rip), %zmm11 - vminpd {sae}, %zmm8, %zmm9, %zmm3 - vmovups 832+__svml_dacos_data_internal(%rip), %zmm9 - vxorpd %zmm12, %zmm12, %zmm12{%k2} - vaddpd {rn-sae}, %zmm8, %zmm8, %zmm0 - vcmppd $21, {sae}, %zmm8, %zmm3, %k1 - -/* Xx then a=-x, b=y, PIO2=Pi/2 - */ - vmovups 64+__svml_datan2_data_internal(%rip), %zmm3 - vandpd %zmm4, %zmm0, %zmm11 - vmovaps %zmm1, %zmm7 - vandpd %zmm4, %zmm7, %zmm2 - vandpd %zmm6, %zmm7, %zmm5 - vandpd %zmm6, %zmm0, %zmm4 - vorpd %zmm6, %zmm2, %zmm12 - vcmppd $17, {sae}, %zmm2, %zmm11, %k1 - vmovdqu 1664+__svml_datan2_data_internal(%rip), %ymm6 - vmovups %zmm11, 64(%rsp) - -/* Check if y and x are on main path. */ - vpsrlq $32, %zmm2, %zmm9 - vblendmpd %zmm11, %zmm12, %zmm13{%k1} - vblendmpd %zmm2, %zmm11, %zmm15{%k1} - vpsrlq $32, %zmm11, %zmm8 - vmovdqu 1600+__svml_datan2_data_internal(%rip), %ymm12 - vdivpd {rn-sae}, %zmm15, %zmm13, %zmm1 - vmovups %zmm15, (%rsp) - vpmovqd %zmm9, %ymm14 - vpmovqd %zmm8, %ymm10 - vxorpd %zmm3, %zmm3, %zmm3{%k1} - vpsubd %ymm12, %ymm14, %ymm13 - vpsubd %ymm12, %ymm10, %ymm9 - -/* Polynomial. */ - vmulpd {rn-sae}, %zmm1, %zmm1, %zmm12 - vpcmpgtd %ymm6, %ymm13, %ymm15 - vpcmpeqd %ymm6, %ymm13, %ymm11 - vmulpd {rn-sae}, %zmm12, %zmm12, %zmm13 - vpor %ymm11, %ymm15, %ymm8 - vmovups 256+__svml_datan2_data_internal(%rip), %zmm11 - vmovups 512+__svml_datan2_data_internal(%rip), %zmm15 - vpcmpgtd %ymm6, %ymm9, %ymm14 - vpcmpeqd %ymm6, %ymm9, %ymm6 - vpor %ymm6, %ymm14, %ymm10 - vmulpd {rn-sae}, %zmm13, %zmm13, %zmm14 - vmovups 320+__svml_datan2_data_internal(%rip), %zmm9 - vpor %ymm10, %ymm8, %ymm6 - vmovups 384+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd231pd {rn-sae}, %zmm14, %zmm11, %zmm15 - vmovups 576+__svml_datan2_data_internal(%rip), %zmm11 - vmovups 704+__svml_datan2_data_internal(%rip), %zmm8 - vfmadd231pd {rn-sae}, %zmm14, %zmm9, %zmm11 - vmovups 640+__svml_datan2_data_internal(%rip), %zmm9 - vfmadd231pd {rn-sae}, %zmm14, %zmm10, %zmm9 - vmovups 448+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd231pd {rn-sae}, %zmm14, %zmm10, %zmm8 - vmovups 768+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15 - vmovups 832+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11 - vmovups 896+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9 - vmovups 960+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm8 - vmovups 1024+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15 - vmovups 1088+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11 - vmovups 1152+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9 - vmovups 1216+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm8 - vmovups 1280+__svml_datan2_data_internal(%rip), %zmm10 - -/* A00=1.0, account for it later VQFMA(D, dP4, dP4, dR8, dA00); */ - vmulpd {rn-sae}, %zmm14, %zmm8, %zmm8 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15 - vmovups 1344+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11 - vmovups 1408+__svml_datan2_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm11, %zmm12, %zmm15 - vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9 - vfmadd213pd {rn-sae}, %zmm8, %zmm12, %zmm9 - vmovups __svml_datan2_data_internal(%rip), %zmm8 - vfmadd213pd {rn-sae}, %zmm9, %zmm13, %zmm15 - -/* - * Reconstruction. - * dP=(R+R*dP) + dPIO2 - */ - vfmadd213pd {rn-sae}, %zmm1, %zmm1, %zmm15 - vaddpd {rn-sae}, %zmm3, %zmm15, %zmm1 - vorpd %zmm5, %zmm1, %zmm9 - -/* if x<0, dPI = Pi, else dPI =0 */ - vmovups 1792+__svml_datan2_data_internal(%rip), %zmm1 - vcmppd $18, {sae}, %zmm1, %zmm7, %k2 - vaddpd {rn-sae}, %zmm8, %zmm9, %zmm9{%k2} - vmovmskps %ymm6, %eax - vorpd %zmm4, %zmm9, %zmm11 - -/* =========== Special branch for fast (vector) processing of zero arguments ================ */ - vmovups 64(%rsp), %zmm9 - testl %eax, %eax - jne .LBL_1_12 - -.LBL_1_2: - - -/* - * =========== Special branch for fast (vector) processing of zero arguments ================ - * -------------- The end of implementation ---------------- - */ - testl %edx, %edx - jne .LBL_1_4 - -.LBL_1_3: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm11, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_4: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm7, 128(%rsp) - vmovups %zmm11, 192(%rsp) - je .LBL_1_3 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_8: - - btl %r12d, %r13d - jc .LBL_1_11 - -.LBL_1_9: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_8 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 192(%rsp), %zmm11 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_3 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_11: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - lea 192(%rsp,%r12,8), %rdx - - call __svml_datan2_cout_rare_internal - jmp .LBL_1_9 - .cfi_restore 4 - .cfi_restore 5 - .cfi_restore 12 - .cfi_restore 13 - .cfi_restore 122 - .cfi_restore 123 - .cfi_restore 124 - .cfi_restore 125 - -.LBL_1_12: - - -/* Check if both X & Y are not NaNs: iXYnotNAN */ - vcmppd $3, {sae}, %zmm7, %zmm7, %k1 - vcmppd $3, {sae}, %zmm0, %zmm0, %k2 - -/* Check if at least on of Y or Y is zero: iAXAYZERO */ - vmovups 1792+__svml_datan2_data_internal(%rip), %zmm8 - vpbroadcastq .L_2il0floatpacket.31(%rip), %zmm10 - vcmppd $4, {sae}, %zmm8, %zmm2, %k3 - vmovaps %zmm10, %zmm12 - vmovaps %zmm10, %zmm15 - vmovaps %zmm10, %zmm13 - vpandnq %zmm7, %zmm7, %zmm12{%k1} - vcmppd $4, {sae}, %zmm8, %zmm9, %k1 - vpandnq %zmm2, %zmm2, %zmm15{%k3} - vmovaps %zmm10, %zmm2 - -/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */ - vpcmpgtq %zmm7, %zmm8, %k3 - vpandnq %zmm0, %zmm0, %zmm13{%k2} - vpandnq %zmm9, %zmm9, %zmm2{%k1} - vandpd %zmm13, %zmm12, %zmm14 - vorpd %zmm2, %zmm15, %zmm9 - vpsrlq $32, %zmm14, %zmm1 - vpsrlq $32, %zmm9, %zmm2 - vpmovqd %zmm1, %ymm1 - vpmovqd %zmm2, %ymm9 - -/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */ - vpand %ymm1, %ymm9, %ymm2 - -/* - * -------- Path for zero arguments (at least one of both) -------------- - * Check if both args are zeros (den. is zero) - */ - vmovups (%rsp), %zmm1 - -/* Exclude from previous callout mask zero (and not NaN) arguments */ - vpandn %ymm6, %ymm2, %ymm6 - vcmppd $4, {sae}, %zmm8, %zmm1, %k2 - -/* Go to callout */ - vmovmskps %ymm6, %edx - vpandnq %zmm1, %zmm1, %zmm10{%k2} - -/* Set sPIO2 to zero if den. is zero */ - vpandnq %zmm3, %zmm10, %zmm3 - vpandq %zmm10, %zmm8, %zmm1 - vporq %zmm1, %zmm3, %zmm3 - vorpd %zmm5, %zmm3, %zmm1 - vmovups __svml_datan2_data_internal(%rip), %zmm5 - vaddpd {rn-sae}, %zmm5, %zmm1, %zmm1{%k3} - vorpd %zmm4, %zmm1, %zmm1 - -/* Merge results from main and spec path */ - vpmovzxdq %ymm2, %zmm4 - vpsllq $32, %zmm4, %zmm2 - vpord %zmm2, %zmm4, %zmm3 - vpandnq %zmm11, %zmm3, %zmm11 - vpandq %zmm3, %zmm1, %zmm1 - vporq %zmm1, %zmm11, %zmm11 - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_atan28,@function - .size __svml_atan28,.-__svml_atan28 -..LN__svml_atan28.0: - -.L_2__routine_start___svml_datan2_cout_rare_internal_1: - - .align 16,0x90 - -__svml_datan2_cout_rare_internal: - - - .cfi_startproc -..L65: - - movq %rdx, %rcx - movsd 1888+__datan2_la_CoutTab(%rip), %xmm1 - movsd (%rdi), %xmm2 - movsd (%rsi), %xmm0 - mulsd %xmm1, %xmm2 - mulsd %xmm0, %xmm1 - movsd %xmm2, -48(%rsp) - movsd %xmm1, -40(%rsp) - movzwl -42(%rsp), %r9d - andl $32752, %r9d - movb -33(%rsp), %al - movzwl -34(%rsp), %r8d - andb $-128, %al - andl $32752, %r8d - shrl $4, %r9d - movb -41(%rsp), %dl - shrb $7, %dl - shrb $7, %al - shrl $4, %r8d - cmpl $2047, %r9d - je .LBL_2_49 - - - cmpl $2047, %r8d - je .LBL_2_38 - - - testl %r9d, %r9d - jne .LBL_2_6 - - - testl $1048575, -44(%rsp) - jne .LBL_2_6 - - - cmpl $0, -48(%rsp) - je .LBL_2_31 - -.LBL_2_6: - - testl %r8d, %r8d - jne .LBL_2_9 - - - testl $1048575, -36(%rsp) - jne .LBL_2_9 - - - cmpl $0, -40(%rsp) - je .LBL_2_29 - -.LBL_2_9: - - negl %r8d - movsd %xmm2, -48(%rsp) - addl %r9d, %r8d - movsd %xmm1, -40(%rsp) - movb -41(%rsp), %dil - movb -33(%rsp), %sil - andb $127, %dil - andb $127, %sil - cmpl $-54, %r8d - jle .LBL_2_24 - - - cmpl $54, %r8d - jge .LBL_2_21 - - - movb %sil, -33(%rsp) - movb %dil, -41(%rsp) - testb %al, %al - jne .LBL_2_13 - - - movsd 1976+__datan2_la_CoutTab(%rip), %xmm1 - movaps %xmm1, %xmm0 - jmp .LBL_2_14 - -.LBL_2_13: - - movsd 1936+__datan2_la_CoutTab(%rip), %xmm1 - movsd 1944+__datan2_la_CoutTab(%rip), %xmm0 - -.LBL_2_14: - - movsd -48(%rsp), %xmm4 - movsd -40(%rsp), %xmm2 - movaps %xmm4, %xmm5 - divsd %xmm2, %xmm5 - movzwl -42(%rsp), %esi - movsd %xmm5, -16(%rsp) - testl %r9d, %r9d - jle .LBL_2_37 - - - cmpl $2046, %r9d - jge .LBL_2_17 - - - andl $-32753, %esi - addl $-1023, %r9d - movsd %xmm4, -48(%rsp) - addl $16368, %esi - movw %si, -42(%rsp) - jmp .LBL_2_18 - -.LBL_2_17: - - movsd 1992+__datan2_la_CoutTab(%rip), %xmm3 - movl $1022, %r9d - mulsd %xmm3, %xmm4 - movsd %xmm4, -48(%rsp) - -.LBL_2_18: - - negl %r9d - addl $1023, %r9d - andl $2047, %r9d - movzwl 1894+__datan2_la_CoutTab(%rip), %esi - movsd 1888+__datan2_la_CoutTab(%rip), %xmm3 - andl $-32753, %esi - shll $4, %r9d - movsd %xmm3, -40(%rsp) - orl %r9d, %esi - movw %si, -34(%rsp) - movsd -40(%rsp), %xmm4 - mulsd %xmm4, %xmm2 - comisd 1880+__datan2_la_CoutTab(%rip), %xmm5 - jb .LBL_2_20 - - - movsd 2000+__datan2_la_CoutTab(%rip), %xmm12 - movaps %xmm2, %xmm3 - mulsd %xmm2, %xmm12 - movsd %xmm12, -72(%rsp) - movsd -72(%rsp), %xmm13 - movsd %xmm5, -24(%rsp) - subsd %xmm2, %xmm13 - movsd %xmm13, -64(%rsp) - movsd -72(%rsp), %xmm15 - movsd -64(%rsp), %xmm14 - movl -20(%rsp), %r8d - movl %r8d, %r9d - andl $-524288, %r8d - andl $-1048576, %r9d - addl $262144, %r8d - subsd %xmm14, %xmm15 - movsd %xmm15, -72(%rsp) - andl $1048575, %r8d - movsd -72(%rsp), %xmm4 - orl %r8d, %r9d - movl $0, -24(%rsp) - subsd %xmm4, %xmm3 - movl %r9d, -20(%rsp) - movsd %xmm3, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -24(%rsp), %xmm11 - movsd -64(%rsp), %xmm9 - mulsd %xmm11, %xmm5 - mulsd %xmm11, %xmm9 - movsd 1968+__datan2_la_CoutTab(%rip), %xmm8 - mulsd %xmm8, %xmm5 - mulsd %xmm8, %xmm9 - movaps %xmm5, %xmm7 - movzwl -10(%rsp), %edi - addsd %xmm9, %xmm7 - movsd %xmm7, -72(%rsp) - andl $32752, %edi - movsd -72(%rsp), %xmm6 - shrl $4, %edi - subsd %xmm6, %xmm5 - movl -12(%rsp), %esi - addsd %xmm5, %xmm9 - movsd %xmm9, -64(%rsp) - andl $1048575, %esi - movsd -48(%rsp), %xmm9 - movsd -72(%rsp), %xmm3 - movaps %xmm9, %xmm12 - movsd -64(%rsp), %xmm10 - movaps %xmm9, %xmm14 - movaps %xmm9, %xmm6 - addsd %xmm3, %xmm12 - movsd %xmm12, -72(%rsp) - movsd -72(%rsp), %xmm13 - shll $20, %edi - subsd %xmm13, %xmm14 - movsd %xmm14, -64(%rsp) - orl %esi, %edi - movsd -72(%rsp), %xmm4 - addl $-1069547520, %edi - movsd -64(%rsp), %xmm15 - movl $113, %esi - movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 - addsd %xmm15, %xmm4 - movsd %xmm4, -56(%rsp) - movsd -64(%rsp), %xmm8 - sarl $19, %edi - addsd %xmm3, %xmm8 - movsd %xmm8, -64(%rsp) - cmpl $113, %edi - movsd -56(%rsp), %xmm7 - cmovl %edi, %esi - subsd %xmm7, %xmm6 - movsd %xmm6, -56(%rsp) - addl %esi, %esi - movsd -64(%rsp), %xmm12 - lea __datan2_la_CoutTab(%rip), %rdi - movsd -56(%rsp), %xmm5 - movslq %esi, %rsi - addsd %xmm5, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -72(%rsp), %xmm7 - mulsd %xmm7, %xmm13 - movsd -56(%rsp), %xmm8 - movsd %xmm13, -72(%rsp) - addsd %xmm10, %xmm8 - movsd -72(%rsp), %xmm4 - movaps %xmm9, %xmm10 - mulsd 2000+__datan2_la_CoutTab(%rip), %xmm10 - subsd %xmm7, %xmm4 - movsd %xmm4, -64(%rsp) - movsd -72(%rsp), %xmm3 - movsd -64(%rsp), %xmm14 - subsd %xmm14, %xmm3 - movsd %xmm3, -72(%rsp) - movsd -72(%rsp), %xmm15 - subsd %xmm15, %xmm7 - movsd %xmm7, -64(%rsp) - movsd -72(%rsp), %xmm7 - movsd -64(%rsp), %xmm4 - movsd %xmm10, -72(%rsp) - movaps %xmm2, %xmm10 - addsd %xmm4, %xmm8 - movsd -72(%rsp), %xmm4 - subsd -48(%rsp), %xmm4 - movsd %xmm4, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm3 - subsd %xmm3, %xmm6 - movaps %xmm2, %xmm3 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm5 - subsd %xmm5, %xmm9 - movsd %xmm9, -64(%rsp) - movsd -72(%rsp), %xmm12 - movsd -64(%rsp), %xmm9 - mulsd %xmm11, %xmm12 - mulsd %xmm11, %xmm9 - movaps %xmm12, %xmm11 - addsd %xmm9, %xmm11 - movsd %xmm11, -72(%rsp) - movsd -72(%rsp), %xmm4 - subsd %xmm4, %xmm12 - addsd %xmm9, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -72(%rsp), %xmm15 - movsd -64(%rsp), %xmm6 - addsd %xmm15, %xmm3 - movsd %xmm3, -72(%rsp) - movsd -72(%rsp), %xmm5 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm3 - subsd %xmm5, %xmm10 - movsd %xmm10, -64(%rsp) - movsd -72(%rsp), %xmm13 - movsd -64(%rsp), %xmm11 - addsd %xmm11, %xmm13 - movsd %xmm13, -56(%rsp) - movsd -64(%rsp), %xmm14 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 - addsd %xmm14, %xmm15 - movsd %xmm15, -64(%rsp) - movsd -56(%rsp), %xmm4 - movsd 1888+__datan2_la_CoutTab(%rip), %xmm14 - subsd %xmm4, %xmm2 - movsd %xmm2, -56(%rsp) - movsd -64(%rsp), %xmm4 - movsd -56(%rsp), %xmm2 - addsd %xmm2, %xmm4 - movsd %xmm4, -56(%rsp) - movsd -72(%rsp), %xmm12 - mulsd %xmm12, %xmm3 - movsd -56(%rsp), %xmm5 - movsd %xmm3, -72(%rsp) - addsd %xmm6, %xmm5 - movsd -72(%rsp), %xmm9 - subsd %xmm12, %xmm9 - movsd %xmm9, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm2 - subsd %xmm2, %xmm10 - movsd %xmm10, -72(%rsp) - movsd -72(%rsp), %xmm11 - subsd %xmm11, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -72(%rsp), %xmm9 - divsd %xmm9, %xmm14 - mulsd %xmm14, %xmm13 - movsd -64(%rsp), %xmm10 - movsd %xmm13, -64(%rsp) - addsd %xmm10, %xmm5 - movsd -64(%rsp), %xmm15 - movsd 1888+__datan2_la_CoutTab(%rip), %xmm12 - subsd %xmm14, %xmm15 - movsd %xmm15, -56(%rsp) - movsd -64(%rsp), %xmm2 - movsd -56(%rsp), %xmm4 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 - subsd %xmm4, %xmm2 - movsd %xmm2, -56(%rsp) - movsd -56(%rsp), %xmm3 - mulsd %xmm3, %xmm9 - movsd -56(%rsp), %xmm11 - subsd %xmm9, %xmm12 - mulsd %xmm11, %xmm5 - movsd %xmm5, -64(%rsp) - movsd -64(%rsp), %xmm5 - subsd %xmm5, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -64(%rsp), %xmm2 - movq -56(%rsp), %r10 - movsd -64(%rsp), %xmm6 - movsd -56(%rsp), %xmm4 - movq %r10, -40(%rsp) - movsd -40(%rsp), %xmm3 - movaps %xmm3, %xmm5 - addsd 1888+__datan2_la_CoutTab(%rip), %xmm2 - mulsd %xmm7, %xmm5 - mulsd %xmm6, %xmm2 - mulsd %xmm4, %xmm2 - mulsd %xmm2, %xmm7 - mulsd %xmm8, %xmm2 - mulsd %xmm3, %xmm8 - addsd %xmm2, %xmm7 - movsd 1872+__datan2_la_CoutTab(%rip), %xmm3 - addsd %xmm8, %xmm7 - movsd %xmm7, -72(%rsp) - movaps %xmm5, %xmm7 - movsd -72(%rsp), %xmm4 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm6 - addsd %xmm4, %xmm7 - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm8 - subsd %xmm8, %xmm5 - addsd %xmm4, %xmm5 - movsd %xmm5, -64(%rsp) - movsd -72(%rsp), %xmm11 - movaps %xmm11, %xmm2 - mulsd %xmm11, %xmm2 - mulsd %xmm11, %xmm6 - mulsd %xmm2, %xmm3 - movsd -64(%rsp), %xmm4 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm7 - addsd 1864+__datan2_la_CoutTab(%rip), %xmm3 - subsd %xmm11, %xmm7 - mulsd %xmm2, %xmm3 - movsd %xmm7, -64(%rsp) - movsd -72(%rsp), %xmm9 - movsd -64(%rsp), %xmm8 - addsd 1856+__datan2_la_CoutTab(%rip), %xmm3 - subsd %xmm8, %xmm9 - mulsd %xmm2, %xmm3 - movsd %xmm9, -72(%rsp) - movsd -72(%rsp), %xmm10 - addsd 1848+__datan2_la_CoutTab(%rip), %xmm3 - subsd %xmm10, %xmm11 - mulsd %xmm2, %xmm3 - movsd %xmm11, -64(%rsp) - addsd 1840+__datan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - addsd 1832+__datan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - addsd 1824+__datan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - mulsd %xmm3, %xmm13 - movsd -72(%rsp), %xmm2 - movsd -64(%rsp), %xmm12 - movsd %xmm13, -72(%rsp) - addsd %xmm12, %xmm4 - movsd -72(%rsp), %xmm14 - subsd %xmm3, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm15 - subsd %xmm15, %xmm5 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm6 - subsd %xmm6, %xmm3 - movsd %xmm3, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm5 - movaps %xmm6, %xmm12 - movaps %xmm5, %xmm3 - mulsd %xmm4, %xmm6 - mulsd %xmm4, %xmm3 - mulsd %xmm2, %xmm5 - mulsd %xmm2, %xmm12 - addsd %xmm3, %xmm6 - movaps %xmm12, %xmm7 - movaps %xmm12, %xmm8 - addsd %xmm5, %xmm6 - addsd %xmm2, %xmm7 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm5 - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm3 - subsd %xmm3, %xmm8 - movsd %xmm8, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movsd -64(%rsp), %xmm11 - addsd %xmm11, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -56(%rsp), %xmm2 - subsd %xmm2, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -64(%rsp), %xmm14 - movsd -56(%rsp), %xmm13 - addsd %xmm13, %xmm14 - movsd %xmm14, -56(%rsp) - movq -72(%rsp), %r11 - movsd -56(%rsp), %xmm15 - movq %r11, -40(%rsp) - addsd %xmm15, %xmm4 - movsd -40(%rsp), %xmm8 - addsd %xmm5, %xmm4 - movsd %xmm4, -32(%rsp) - movaps %xmm8, %xmm4 - movaps %xmm8, %xmm2 - addsd (%rdi,%rsi,8), %xmm4 - movsd %xmm4, -72(%rsp) - movsd -72(%rsp), %xmm4 - subsd %xmm4, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm3 - addsd %xmm3, %xmm5 - movsd %xmm5, -56(%rsp) - movsd -64(%rsp), %xmm6 - addsd (%rdi,%rsi,8), %xmm6 - movsd %xmm6, -64(%rsp) - movsd -56(%rsp), %xmm7 - subsd %xmm7, %xmm8 - movsd %xmm8, -56(%rsp) - movsd -64(%rsp), %xmm10 - movsd -56(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movq -72(%rsp), %r8 - movq %r8, -40(%rsp) - - - movsd -56(%rsp), %xmm2 - movaps %xmm1, %xmm3 - shrq $56, %r8 - addsd -32(%rsp), %xmm2 - shlb $7, %dl - addsd 8(%rdi,%rsi,8), %xmm2 - movb %al, %sil - andb $127, %r8b - shlb $7, %sil - movsd %xmm2, -32(%rsp) - orb %sil, %r8b - movb %r8b, -33(%rsp) - movsd -40(%rsp), %xmm9 - movaps %xmm9, %xmm5 - addsd %xmm9, %xmm3 - movsd %xmm3, -72(%rsp) - movsd -72(%rsp), %xmm4 - movb -25(%rsp), %dil - movb %dil, %r9b - shrb $7, %dil - subsd %xmm4, %xmm5 - movsd %xmm5, -64(%rsp) - movsd -72(%rsp), %xmm7 - movsd -64(%rsp), %xmm6 - xorb %dil, %al - andb $127, %r9b - shlb $7, %al - addsd %xmm6, %xmm7 - movsd %xmm7, -56(%rsp) - movsd -64(%rsp), %xmm8 - addsd %xmm8, %xmm1 - movsd %xmm1, -64(%rsp) - orb %al, %r9b - movsd -56(%rsp), %xmm1 - movb %r9b, -25(%rsp) - subsd %xmm1, %xmm9 - movsd %xmm9, -56(%rsp) - movsd -64(%rsp), %xmm11 - movsd -56(%rsp), %xmm10 - addsd %xmm10, %xmm11 - movsd %xmm11, -56(%rsp) - movq -72(%rsp), %rax - movsd -56(%rsp), %xmm12 - movq %rax, -40(%rsp) - addsd %xmm12, %xmm0 - movsd -40(%rsp), %xmm13 - addsd -32(%rsp), %xmm0 - movsd %xmm0, -32(%rsp) - addsd %xmm0, %xmm13 - movsd %xmm13, -24(%rsp) - movb -17(%rsp), %r10b - andb $127, %r10b - orb %dl, %r10b - movb %r10b, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_20: - - movsd -48(%rsp), %xmm12 - movb %al, %r8b - movaps %xmm12, %xmm7 - mulsd 2000+__datan2_la_CoutTab(%rip), %xmm7 - shlb $7, %r8b - shlb $7, %dl - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm8 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 - movsd 1888+__datan2_la_CoutTab(%rip), %xmm7 - mulsd %xmm2, %xmm13 - subsd -48(%rsp), %xmm8 - movsd %xmm8, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm9 - subsd %xmm9, %xmm10 - movsd %xmm10, -72(%rsp) - movsd -72(%rsp), %xmm11 - subsd %xmm11, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm5 - movsd %xmm13, -72(%rsp) - movsd -72(%rsp), %xmm14 - subsd %xmm2, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -72(%rsp), %xmm4 - movsd -64(%rsp), %xmm15 - subsd %xmm15, %xmm4 - movsd %xmm4, -72(%rsp) - movsd -72(%rsp), %xmm3 - movsd 1888+__datan2_la_CoutTab(%rip), %xmm4 - subsd %xmm3, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -72(%rsp), %xmm12 - divsd %xmm12, %xmm7 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm2 - mulsd %xmm7, %xmm2 - movsd -64(%rsp), %xmm14 - movsd %xmm2, -64(%rsp) - movsd -64(%rsp), %xmm8 - subsd %xmm7, %xmm8 - movsd %xmm8, -56(%rsp) - movsd -64(%rsp), %xmm10 - movsd -56(%rsp), %xmm9 - subsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movsd -56(%rsp), %xmm11 - mulsd %xmm11, %xmm12 - movsd -56(%rsp), %xmm13 - subsd %xmm12, %xmm4 - mulsd %xmm13, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -64(%rsp), %xmm15 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm13 - subsd %xmm15, %xmm4 - movsd %xmm4, -64(%rsp) - movsd -64(%rsp), %xmm7 - movq -56(%rsp), %rsi - movsd -64(%rsp), %xmm2 - movsd -56(%rsp), %xmm3 - movq %rsi, -40(%rsp) - movsd -40(%rsp), %xmm8 - movaps %xmm8, %xmm9 - addsd 1888+__datan2_la_CoutTab(%rip), %xmm7 - mulsd %xmm6, %xmm9 - mulsd %xmm5, %xmm8 - mulsd %xmm2, %xmm7 - movsd -16(%rsp), %xmm2 - mulsd %xmm2, %xmm2 - mulsd %xmm3, %xmm7 - movsd 1872+__datan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - mulsd %xmm7, %xmm6 - mulsd %xmm5, %xmm7 - addsd 1864+__datan2_la_CoutTab(%rip), %xmm3 - addsd %xmm7, %xmm6 - mulsd %xmm2, %xmm3 - addsd %xmm8, %xmm6 - addsd 1856+__datan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - movaps %xmm9, %xmm5 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm4 - addsd 1848+__datan2_la_CoutTab(%rip), %xmm3 - addsd %xmm4, %xmm5 - mulsd %xmm2, %xmm3 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm6 - movsd 2000+__datan2_la_CoutTab(%rip), %xmm5 - subsd %xmm6, %xmm9 - addsd 1840+__datan2_la_CoutTab(%rip), %xmm3 - addsd %xmm4, %xmm9 - mulsd %xmm2, %xmm3 - movsd %xmm9, -64(%rsp) - movsd -72(%rsp), %xmm11 - mulsd %xmm11, %xmm5 - addsd 1832+__datan2_la_CoutTab(%rip), %xmm3 - movsd -64(%rsp), %xmm4 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm7 - mulsd %xmm2, %xmm3 - subsd %xmm11, %xmm7 - movsd %xmm7, -64(%rsp) - movsd -72(%rsp), %xmm8 - movsd -64(%rsp), %xmm6 - addsd 1824+__datan2_la_CoutTab(%rip), %xmm3 - subsd %xmm6, %xmm8 - mulsd %xmm2, %xmm3 - movsd %xmm8, -72(%rsp) - movsd -72(%rsp), %xmm10 - mulsd %xmm3, %xmm13 - subsd %xmm10, %xmm11 - movsd %xmm11, -64(%rsp) - movsd -72(%rsp), %xmm2 - movsd -64(%rsp), %xmm12 - movsd %xmm13, -72(%rsp) - addsd %xmm12, %xmm4 - movsd -72(%rsp), %xmm14 - subsd %xmm3, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm15 - subsd %xmm15, %xmm5 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm6 - subsd %xmm6, %xmm3 - movsd %xmm3, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm5 - movaps %xmm6, %xmm12 - movaps %xmm5, %xmm3 - mulsd %xmm4, %xmm6 - mulsd %xmm4, %xmm3 - mulsd %xmm2, %xmm5 - mulsd %xmm2, %xmm12 - addsd %xmm3, %xmm6 - movaps %xmm12, %xmm7 - movaps %xmm12, %xmm8 - addsd %xmm5, %xmm6 - addsd %xmm2, %xmm7 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm5 - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm3 - subsd %xmm3, %xmm8 - movsd %xmm8, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movsd -64(%rsp), %xmm11 - addsd %xmm11, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -56(%rsp), %xmm2 - subsd %xmm2, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -64(%rsp), %xmm14 - movsd -56(%rsp), %xmm13 - addsd %xmm13, %xmm14 - movsd %xmm14, -56(%rsp) - movq -72(%rsp), %rdi - movsd -56(%rsp), %xmm15 - movq %rdi, -40(%rsp) - addsd %xmm15, %xmm4 - shrq $56, %rdi - addsd %xmm5, %xmm4 - andb $127, %dil - orb %r8b, %dil - movb %dil, -33(%rsp) - movsd %xmm4, -32(%rsp) - movaps %xmm1, %xmm4 - movsd -40(%rsp), %xmm7 - movaps %xmm7, %xmm2 - addsd %xmm7, %xmm4 - movsd %xmm4, -72(%rsp) - movsd -72(%rsp), %xmm4 - movb -25(%rsp), %r9b - movb %r9b, %r10b - shrb $7, %r9b - subsd %xmm4, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm3 - xorb %r9b, %al - andb $127, %r10b - shlb $7, %al - addsd %xmm3, %xmm5 - movsd %xmm5, -56(%rsp) - movsd -64(%rsp), %xmm6 - addsd %xmm6, %xmm1 - movsd %xmm1, -64(%rsp) - orb %al, %r10b - movsd -56(%rsp), %xmm1 - movb %r10b, -25(%rsp) - subsd %xmm1, %xmm7 - movsd %xmm7, -56(%rsp) - movsd -64(%rsp), %xmm2 - movsd -56(%rsp), %xmm1 - addsd %xmm1, %xmm2 - movsd %xmm2, -56(%rsp) - movq -72(%rsp), %rax - movsd -56(%rsp), %xmm3 - movq %rax, -40(%rsp) - addsd %xmm3, %xmm0 - movsd -40(%rsp), %xmm4 - addsd -32(%rsp), %xmm0 - movsd %xmm0, -32(%rsp) - addsd %xmm0, %xmm4 - movsd %xmm4, -24(%rsp) - movb -17(%rsp), %r11b - andb $127, %r11b - orb %dl, %r11b - movb %r11b, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_21: - - cmpl $74, %r8d - jge .LBL_2_53 - - - movb %dil, -41(%rsp) - divsd -48(%rsp), %xmm1 - movsd 1928+__datan2_la_CoutTab(%rip), %xmm0 - shlb $7, %dl - subsd %xmm1, %xmm0 - addsd 1920+__datan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_24: - - testb %al, %al - jne .LBL_2_35 - - - movb %dil, -41(%rsp) - movb %sil, -33(%rsp) - movsd -48(%rsp), %xmm2 - divsd -40(%rsp), %xmm2 - movsd %xmm2, -24(%rsp) - movzwl -18(%rsp), %eax - testl $32752, %eax - je .LBL_2_27 - - - movsd 1888+__datan2_la_CoutTab(%rip), %xmm0 - shlb $7, %dl - addsd %xmm2, %xmm0 - movsd %xmm0, -72(%rsp) - movsd -72(%rsp), %xmm1 - mulsd %xmm1, %xmm2 - movsd %xmm2, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_27: - - mulsd %xmm2, %xmm2 - shlb $7, %dl - movsd %xmm2, -72(%rsp) - movsd -72(%rsp), %xmm0 - addsd -24(%rsp), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_29: - - testl %r9d, %r9d - jne .LBL_2_53 - - - testl $1048575, -44(%rsp) - jne .LBL_2_53 - jmp .LBL_2_57 - -.LBL_2_31: - - jne .LBL_2_53 - -.LBL_2_33: - - testb %al, %al - jne .LBL_2_35 - -.LBL_2_34: - - shlb $7, %dl - movq 1976+__datan2_la_CoutTab(%rip), %rax - movq %rax, -24(%rsp) - shrq $56, %rax - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_35: - - movsd 1936+__datan2_la_CoutTab(%rip), %xmm0 - shlb $7, %dl - addsd 1944+__datan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - -.LBL_2_36: - - xorl %eax, %eax - ret - -.LBL_2_37: - - movsd 1984+__datan2_la_CoutTab(%rip), %xmm3 - movl $-1022, %r9d - mulsd %xmm3, %xmm4 - movsd %xmm4, -48(%rsp) - jmp .LBL_2_18 - -.LBL_2_38: - - cmpl $2047, %r9d - je .LBL_2_49 - -.LBL_2_39: - - testl $1048575, -36(%rsp) - jne .LBL_2_41 - - - cmpl $0, -40(%rsp) - je .LBL_2_42 - -.LBL_2_41: - - addsd %xmm1, %xmm2 - movsd %xmm2, (%rcx) - jmp .LBL_2_36 - -.LBL_2_42: - - cmpl $2047, %r9d - je .LBL_2_46 - - - testb %al, %al - je .LBL_2_34 - jmp .LBL_2_35 - -.LBL_2_46: - - testb %al, %al - jne .LBL_2_48 - - - movsd 1904+__datan2_la_CoutTab(%rip), %xmm0 - shlb $7, %dl - addsd 1912+__datan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_48: - - movsd 1952+__datan2_la_CoutTab(%rip), %xmm0 - shlb $7, %dl - addsd 1960+__datan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_49: - - testl $1048575, -44(%rsp) - jne .LBL_2_41 - - - cmpl $0, -48(%rsp) - jne .LBL_2_41 - - - cmpl $2047, %r8d - je .LBL_2_39 - -.LBL_2_53: - - movsd 1920+__datan2_la_CoutTab(%rip), %xmm0 - shlb $7, %dl - addsd 1928+__datan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %dl, %al - movb %al, -17(%rsp) - movq -24(%rsp), %rdx - movq %rdx, (%rcx) - jmp .LBL_2_36 - -.LBL_2_57: - - cmpl $0, -48(%rsp) - jne .LBL_2_53 - jmp .LBL_2_33 - .align 16,0x90 - - .cfi_endproc - - .type __svml_datan2_cout_rare_internal,@function - .size __svml_datan2_cout_rare_internal,.-__svml_datan2_cout_rare_internal -..LN__svml_datan2_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_datan2_data_internal: - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 17919630 - .long 3202334474 - .long 17919630 - .long 3202334474 - .long 17919630 - .long 3202334474 - .long 17919630 - .long 3202334474 - .long 17919630 - .long 3202334474 - .long 17919630 - .long 3202334474 - .long 17919630 - .long 3202334474 - .long 17919630 - .long 3202334474 - .long 350522012 - .long 1058555694 - .long 350522012 - .long 1058555694 - .long 350522012 - .long 1058555694 - .long 350522012 - .long 1058555694 - .long 350522012 - .long 1058555694 - .long 350522012 - .long 1058555694 - .long 350522012 - .long 1058555694 - .long 350522012 - .long 1058555694 - .long 934004643 - .long 3203726773 - .long 934004643 - .long 3203726773 - .long 934004643 - .long 3203726773 - .long 934004643 - .long 3203726773 - .long 934004643 - .long 3203726773 - .long 934004643 - .long 3203726773 - .long 934004643 - .long 3203726773 - .long 934004643 - .long 3203726773 - .long 912675337 - .long 1059908874 - .long 912675337 - .long 1059908874 - .long 912675337 - .long 1059908874 - .long 912675337 - .long 1059908874 - .long 912675337 - .long 1059908874 - .long 912675337 - .long 1059908874 - .long 912675337 - .long 1059908874 - .long 912675337 - .long 1059908874 - .long 2476035107 - .long 3209881212 - .long 2476035107 - .long 3209881212 - .long 2476035107 - .long 3209881212 - .long 2476035107 - .long 3209881212 - .long 2476035107 - .long 3209881212 - .long 2476035107 - .long 3209881212 - .long 2476035107 - .long 3209881212 - .long 2476035107 - .long 3209881212 - .long 2927800243 - .long 1064262173 - .long 2927800243 - .long 1064262173 - .long 2927800243 - .long 1064262173 - .long 2927800243 - .long 1064262173 - .long 2927800243 - .long 1064262173 - .long 2927800243 - .long 1064262173 - .long 2927800243 - .long 1064262173 - .long 2927800243 - .long 1064262173 - .long 1636715437 - .long 3213013740 - .long 1636715437 - .long 3213013740 - .long 1636715437 - .long 3213013740 - .long 1636715437 - .long 3213013740 - .long 1636715437 - .long 3213013740 - .long 1636715437 - .long 3213013740 - .long 1636715437 - .long 3213013740 - .long 1636715437 - .long 3213013740 - .long 1712395941 - .long 1066487628 - .long 1712395941 - .long 1066487628 - .long 1712395941 - .long 1066487628 - .long 1712395941 - .long 1066487628 - .long 1712395941 - .long 1066487628 - .long 1712395941 - .long 1066487628 - .long 1712395941 - .long 1066487628 - .long 1712395941 - .long 1066487628 - .long 2961307292 - .long 3214564995 - .long 2961307292 - .long 3214564995 - .long 2961307292 - .long 3214564995 - .long 2961307292 - .long 3214564995 - .long 2961307292 - .long 3214564995 - .long 2961307292 - .long 3214564995 - .long 2961307292 - .long 3214564995 - .long 2961307292 - .long 3214564995 - .long 213298511 - .long 1067542936 - .long 213298511 - .long 1067542936 - .long 213298511 - .long 1067542936 - .long 213298511 - .long 1067542936 - .long 213298511 - .long 1067542936 - .long 213298511 - .long 1067542936 - .long 213298511 - .long 1067542936 - .long 213298511 - .long 1067542936 - .long 3848520124 - .long 3215257506 - .long 3848520124 - .long 3215257506 - .long 3848520124 - .long 3215257506 - .long 3848520124 - .long 3215257506 - .long 3848520124 - .long 3215257506 - .long 3848520124 - .long 3215257506 - .long 3848520124 - .long 3215257506 - .long 3848520124 - .long 3215257506 - .long 3159386171 - .long 1067969551 - .long 3159386171 - .long 1067969551 - .long 3159386171 - .long 1067969551 - .long 3159386171 - .long 1067969551 - .long 3159386171 - .long 1067969551 - .long 3159386171 - .long 1067969551 - .long 3159386171 - .long 1067969551 - .long 3159386171 - .long 1067969551 - .long 3936393556 - .long 3215643233 - .long 3936393556 - .long 3215643233 - .long 3936393556 - .long 3215643233 - .long 3936393556 - .long 3215643233 - .long 3936393556 - .long 3215643233 - .long 3936393556 - .long 3215643233 - .long 3936393556 - .long 3215643233 - .long 3936393556 - .long 3215643233 - .long 3177262543 - .long 1068373833 - .long 3177262543 - .long 1068373833 - .long 3177262543 - .long 1068373833 - .long 3177262543 - .long 1068373833 - .long 3177262543 - .long 1068373833 - .long 3177262543 - .long 1068373833 - .long 3177262543 - .long 1068373833 - .long 3177262543 - .long 1068373833 - .long 9713120 - .long 3216052356 - .long 9713120 - .long 3216052356 - .long 9713120 - .long 3216052356 - .long 9713120 - .long 3216052356 - .long 9713120 - .long 3216052356 - .long 9713120 - .long 3216052356 - .long 9713120 - .long 3216052356 - .long 9713120 - .long 3216052356 - .long 1227445841 - .long 1068740906 - .long 1227445841 - .long 1068740906 - .long 1227445841 - .long 1068740906 - .long 1227445841 - .long 1068740906 - .long 1227445841 - .long 1068740906 - .long 1227445841 - .long 1068740906 - .long 1227445841 - .long 1068740906 - .long 1227445841 - .long 1068740906 - .long 163240596 - .long 3216459216 - .long 163240596 - .long 3216459216 - .long 163240596 - .long 3216459216 - .long 163240596 - .long 3216459216 - .long 163240596 - .long 3216459216 - .long 163240596 - .long 3216459216 - .long 163240596 - .long 3216459216 - .long 163240596 - .long 3216459216 - .long 133682613 - .long 1069314503 - .long 133682613 - .long 1069314503 - .long 133682613 - .long 1069314503 - .long 133682613 - .long 1069314503 - .long 133682613 - .long 1069314503 - .long 133682613 - .long 1069314503 - .long 133682613 - .long 1069314503 - .long 133682613 - .long 1069314503 - .long 2448315847 - .long 3217180964 - .long 2448315847 - .long 3217180964 - .long 2448315847 - .long 3217180964 - .long 2448315847 - .long 3217180964 - .long 2448315847 - .long 3217180964 - .long 2448315847 - .long 3217180964 - .long 2448315847 - .long 3217180964 - .long 2448315847 - .long 3217180964 - .long 2576870964 - .long 1070176665 - .long 2576870964 - .long 1070176665 - .long 2576870964 - .long 1070176665 - .long 2576870964 - .long 1070176665 - .long 2576870964 - .long 1070176665 - .long 2576870964 - .long 1070176665 - .long 2576870964 - .long 1070176665 - .long 2576870964 - .long 1070176665 - .long 1431655365 - .long 3218429269 - .long 1431655365 - .long 3218429269 - .long 1431655365 - .long 3218429269 - .long 1431655365 - .long 3218429269 - .long 1431655365 - .long 3218429269 - .long 1431655365 - .long 3218429269 - .long 1431655365 - .long 3218429269 - .long 1431655365 - .long 3218429269 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 2150629376 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4258267136 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 4293918720 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 133169152 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .type __svml_datan2_data_internal,@object - .size __svml_datan2_data_internal,2304 - .align 32 -__datan2_la_CoutTab: - .long 3892314112 - .long 1069799150 - .long 2332892550 - .long 1039715405 - .long 1342177280 - .long 1070305495 - .long 270726690 - .long 1041535749 - .long 939524096 - .long 1070817911 - .long 2253973841 - .long 3188654726 - .long 3221225472 - .long 1071277294 - .long 3853927037 - .long 1043226911 - .long 2818572288 - .long 1071767563 - .long 2677759107 - .long 1044314101 - .long 3355443200 - .long 1072103591 - .long 1636578514 - .long 3191094734 - .long 1476395008 - .long 1072475260 - .long 1864703685 - .long 3188646936 - .long 805306368 - .long 1072747407 - .long 192551812 - .long 3192726267 - .long 2013265920 - .long 1072892781 - .long 2240369452 - .long 1043768538 - .long 0 - .long 1072999953 - .long 3665168337 - .long 3192705970 - .long 402653184 - .long 1073084787 - .long 1227953434 - .long 3192313277 - .long 2013265920 - .long 1073142981 - .long 3853283127 - .long 1045277487 - .long 805306368 - .long 1073187261 - .long 1676192264 - .long 3192868861 - .long 134217728 - .long 1073217000 - .long 4290763938 - .long 1042034855 - .long 671088640 - .long 1073239386 - .long 994303084 - .long 3189643768 - .long 402653184 - .long 1073254338 - .long 1878067156 - .long 1042652475 - .long 1610612736 - .long 1073265562 - .long 670314820 - .long 1045138554 - .long 3221225472 - .long 1073273048 - .long 691126919 - .long 3189987794 - .long 3489660928 - .long 1073278664 - .long 1618990832 - .long 3188194509 - .long 1207959552 - .long 1073282409 - .long 2198872939 - .long 1044806069 - .long 3489660928 - .long 1073285217 - .long 2633982383 - .long 1042307894 - .long 939524096 - .long 1073287090 - .long 1059367786 - .long 3189114230 - .long 2281701376 - .long 1073288494 - .long 3158525533 - .long 1044484961 - .long 3221225472 - .long 1073289430 - .long 286581777 - .long 1044893263 - .long 4026531840 - .long 1073290132 - .long 2000245215 - .long 3191647611 - .long 134217728 - .long 1073290601 - .long 4205071590 - .long 1045035927 - .long 536870912 - .long 1073290952 - .long 2334392229 - .long 1043447393 - .long 805306368 - .long 1073291186 - .long 2281458177 - .long 3188885569 - .long 3087007744 - .long 1073291361 - .long 691611507 - .long 1044733832 - .long 3221225472 - .long 1073291478 - .long 1816229550 - .long 1044363390 - .long 2281701376 - .long 1073291566 - .long 1993843750 - .long 3189837440 - .long 134217728 - .long 1073291625 - .long 3654754496 - .long 1044970837 - .long 4026531840 - .long 1073291668 - .long 3224300229 - .long 3191935390 - .long 805306368 - .long 1073291698 - .long 2988777976 - .long 3188950659 - .long 536870912 - .long 1073291720 - .long 1030371341 - .long 1043402665 - .long 3221225472 - .long 1073291734 - .long 1524463765 - .long 1044361356 - .long 3087007744 - .long 1073291745 - .long 2754295320 - .long 1044731036 - .long 134217728 - .long 1073291753 - .long 3099629057 - .long 1044970710 - .long 2281701376 - .long 1073291758 - .long 962914160 - .long 3189838838 - .long 805306368 - .long 1073291762 - .long 3543908206 - .long 3188950786 - .long 4026531840 - .long 1073291764 - .long 1849909620 - .long 3191935434 - .long 3221225472 - .long 1073291766 - .long 1641333636 - .long 1044361352 - .long 536870912 - .long 1073291768 - .long 1373968792 - .long 1043402654 - .long 134217728 - .long 1073291769 - .long 2033191599 - .long 1044970710 - .long 3087007744 - .long 1073291769 - .long 4117947437 - .long 1044731035 - .long 805306368 - .long 1073291770 - .long 315378368 - .long 3188950787 - .long 2281701376 - .long 1073291770 - .long 2428571750 - .long 3189838838 - .long 3221225472 - .long 1073291770 - .long 1608007466 - .long 1044361352 - .long 4026531840 - .long 1073291770 - .long 1895711420 - .long 3191935434 - .long 134217728 - .long 1073291771 - .long 2031108713 - .long 1044970710 - .long 536870912 - .long 1073291771 - .long 1362518342 - .long 1043402654 - .long 805306368 - .long 1073291771 - .long 317461253 - .long 3188950787 - .long 939524096 - .long 1073291771 - .long 4117231784 - .long 1044731035 - .long 1073741824 - .long 1073291771 - .long 1607942376 - .long 1044361352 - .long 1207959552 - .long 1073291771 - .long 2428929577 - .long 3189838838 - .long 1207959552 - .long 1073291771 - .long 2031104645 - .long 1044970710 - .long 1342177280 - .long 1073291771 - .long 1895722602 - .long 3191935434 - .long 1342177280 - .long 1073291771 - .long 317465322 - .long 3188950787 - .long 1342177280 - .long 1073291771 - .long 1362515546 - .long 1043402654 - .long 1342177280 - .long 1073291771 - .long 1607942248 - .long 1044361352 - .long 1342177280 - .long 1073291771 - .long 4117231610 - .long 1044731035 - .long 1342177280 - .long 1073291771 - .long 2031104637 - .long 1044970710 - .long 1342177280 - .long 1073291771 - .long 1540251232 - .long 1045150466 - .long 1342177280 - .long 1073291771 - .long 2644671394 - .long 1045270303 - .long 1342177280 - .long 1073291771 - .long 2399244691 - .long 1045360181 - .long 1342177280 - .long 1073291771 - .long 803971124 - .long 1045420100 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192879152 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192849193 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192826724 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192811744 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192800509 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192793019 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192787402 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192783657 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192780848 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192778976 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192777572 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192776635 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192775933 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192775465 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192775114 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774880 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774704 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774587 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774500 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774441 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774397 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774368 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774346 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774331 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774320 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774313 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774308 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774304 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774301 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774299 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774298 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774297 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1466225875 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1343512524 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1251477510 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1190120835 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1144103328 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1113424990 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1090416237 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1075077068 - .long 3192774295 - .long 1431655765 - .long 3218429269 - .long 2576978363 - .long 1070176665 - .long 2453154343 - .long 3217180964 - .long 4189149139 - .long 1069314502 - .long 1775019125 - .long 3216459198 - .long 273199057 - .long 1068739452 - .long 874748308 - .long 3215993277 - .long 0 - .long 1069547520 - .long 0 - .long 1072693248 - .long 0 - .long 1073741824 - .long 1413754136 - .long 1072243195 - .long 856972295 - .long 1015129638 - .long 1413754136 - .long 1073291771 - .long 856972295 - .long 1016178214 - .long 1413754136 - .long 1074340347 - .long 856972295 - .long 1017226790 - .long 2134057426 - .long 1073928572 - .long 1285458442 - .long 1016756537 - .long 0 - .long 3220176896 - .long 0 - .long 0 - .long 0 - .long 2144337920 - .long 0 - .long 1048576 - .long 33554432 - .long 1101004800 - .type __datan2_la_CoutTab,@object - .size __datan2_la_CoutTab,2008 - .align 8 -.L_2il0floatpacket.31: - .long 0xffffffff,0xffffffff - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,8 diff --git a/numpy/core/src/umath/svml/svml_z0_atan2_s_la.s b/numpy/core/src/umath/svml/svml_z0_atan2_s_la.s deleted file mode 100644 index 25f12f36c9a9..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_atan2_s_la.s +++ /dev/null @@ -1,2074 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x) - * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x) - * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x) - * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x) - * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x - * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16. - * -- - * - */ - - - .text -.L_2__routine_start___svml_atan2f16_z0_0: - - .align 16,0x90 - .globl __svml_atan2f16 - -__svml_atan2f16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $256, %rsp - xorl %edx, %edx - - - vmovups 256+__svml_satan2_data_internal(%rip), %zmm6 - vmovups 64+__svml_satan2_data_internal(%rip), %zmm3 - -/* Testing on working interval. */ - vmovups 1024+__svml_satan2_data_internal(%rip), %zmm9 - vmovups 1088+__svml_satan2_data_internal(%rip), %zmm14 - -/* - * 1) If yx then a=-x, b=y, PIO2=Pi/2 - */ - vmovups 320+__svml_satan2_data_internal(%rip), %zmm4 - vpternlogd $255, %zmm13, %zmm13, %zmm13 - vmovaps %zmm1, %zmm8 - vandps %zmm6, %zmm8, %zmm2 - vandps %zmm6, %zmm0, %zmm1 - vorps 192+__svml_satan2_data_internal(%rip), %zmm2, %zmm5 - vpsubd %zmm9, %zmm2, %zmm10 - vpsubd %zmm9, %zmm1, %zmm12 - vxorps %zmm2, %zmm8, %zmm7 - vxorps %zmm1, %zmm0, %zmm6 - vcmpps $17, {sae}, %zmm2, %zmm1, %k1 - vpcmpgtd %zmm10, %zmm14, %k2 - vpcmpgtd %zmm12, %zmm14, %k3 - vmovups 576+__svml_satan2_data_internal(%rip), %zmm14 - vblendmps %zmm1, %zmm5, %zmm11{%k1} - vblendmps %zmm2, %zmm1, %zmm5{%k1} - vxorps %zmm4, %zmm4, %zmm4{%k1} - -/* - * Division a/b. - * Enabled when FMA is available and - * performance is better with NR iteration - */ - vrcp14ps %zmm5, %zmm15 - vfnmadd231ps {rn-sae}, %zmm5, %zmm15, %zmm3 - vfmadd213ps {rn-sae}, %zmm15, %zmm3, %zmm15 - vmulps {rn-sae}, %zmm15, %zmm11, %zmm3 - vfnmadd231ps {rn-sae}, %zmm5, %zmm3, %zmm11 - vfmadd213ps {rn-sae}, %zmm3, %zmm11, %zmm15 - vmovups 448+__svml_satan2_data_internal(%rip), %zmm11 - vpternlogd $255, %zmm3, %zmm3, %zmm3 - -/* Polynomial. */ - vmulps {rn-sae}, %zmm15, %zmm15, %zmm9 - vpandnd %zmm10, %zmm10, %zmm13{%k2} - vmulps {rn-sae}, %zmm9, %zmm9, %zmm10 - vfmadd231ps {rn-sae}, %zmm10, %zmm11, %zmm14 - vmovups 640+__svml_satan2_data_internal(%rip), %zmm11 - vpandnd %zmm12, %zmm12, %zmm3{%k3} - vpord %zmm3, %zmm13, %zmm3 - vmovups 704+__svml_satan2_data_internal(%rip), %zmm13 - vmovups 512+__svml_satan2_data_internal(%rip), %zmm12 - vptestmd %zmm3, %zmm3, %k0 - vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14 - vfmadd231ps {rn-sae}, %zmm10, %zmm12, %zmm11 - vmovups 768+__svml_satan2_data_internal(%rip), %zmm12 - vmovups 832+__svml_satan2_data_internal(%rip), %zmm13 - -/* =========== Special branch for fast (vector) processing of zero arguments ================ */ - kortestw %k0, %k0 - vfmadd213ps {rn-sae}, %zmm12, %zmm10, %zmm11 - vmovups 896+__svml_satan2_data_internal(%rip), %zmm12 - vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14 - vmovups 960+__svml_satan2_data_internal(%rip), %zmm13 - vfmadd213ps {rn-sae}, %zmm12, %zmm10, %zmm11 - vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14 - vfmadd213ps {rn-sae}, %zmm14, %zmm9, %zmm11 - -/* Reconstruction. */ - vfmadd213ps {rn-sae}, %zmm4, %zmm15, %zmm11 - -/* if x<0, sPI = Pi, else sPI =0 */ - vmovups __svml_satan2_data_internal(%rip), %zmm15 - vorps %zmm7, %zmm11, %zmm9 - vcmpps $18, {sae}, %zmm15, %zmm8, %k1 - vmovups 384+__svml_satan2_data_internal(%rip), %zmm11 - vaddps {rn-sae}, %zmm11, %zmm9, %zmm9{%k1} - vorps %zmm6, %zmm9, %zmm10 - jne .LBL_1_12 - -.LBL_1_2: - - -/* - * =========== Special branch for fast (vector) processing of zero arguments ================ - * -------------- The end of implementation ---------------- - */ - testl %edx, %edx - jne .LBL_1_4 - -.LBL_1_3: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm10, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_4: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm8, 128(%rsp) - vmovups %zmm10, 192(%rsp) - je .LBL_1_3 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_8: - - btl %r12d, %r13d - jc .LBL_1_11 - -.LBL_1_9: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_8 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 192(%rsp), %zmm10 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_3 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_11: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - lea 192(%rsp,%r12,4), %rdx - - call __svml_satan2_cout_rare_internal - jmp .LBL_1_9 - .cfi_restore 4 - .cfi_restore 5 - .cfi_restore 12 - .cfi_restore 13 - .cfi_restore 122 - .cfi_restore 123 - .cfi_restore 124 - .cfi_restore 125 - -.LBL_1_12: - - -/* Check if at least on of Y or Y is zero: iAXAYZERO */ - vmovups __svml_satan2_data_internal(%rip), %zmm9 - -/* Check if both X & Y are not NaNs: iXYnotNAN */ - vcmpps $3, {sae}, %zmm8, %zmm8, %k1 - vcmpps $3, {sae}, %zmm0, %zmm0, %k2 - vpcmpd $4, %zmm9, %zmm2, %k3 - vpternlogd $255, %zmm12, %zmm12, %zmm12 - vpternlogd $255, %zmm13, %zmm13, %zmm13 - vpternlogd $255, %zmm14, %zmm14, %zmm14 - vpandnd %zmm8, %zmm8, %zmm12{%k1} - vpcmpd $4, %zmm9, %zmm1, %k1 - vpandnd %zmm0, %zmm0, %zmm13{%k2} - -/* - * -------- Path for zero arguments (at least one of both) -------------- - * Check if both args are zeros (den. is zero) - */ - vcmpps $4, {sae}, %zmm9, %zmm5, %k2 - vandps %zmm13, %zmm12, %zmm12 - vpandnd %zmm2, %zmm2, %zmm14{%k3} - vpternlogd $255, %zmm2, %zmm2, %zmm2 - -/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */ - vpcmpgtd %zmm8, %zmm9, %k3 - vpandnd %zmm1, %zmm1, %zmm2{%k1} - vpord %zmm2, %zmm14, %zmm15 - vpternlogd $255, %zmm2, %zmm2, %zmm2 - vpandnd %zmm5, %zmm5, %zmm2{%k2} - -/* Set sPIO2 to zero if den. is zero */ - vpandnd %zmm4, %zmm2, %zmm4 - vpandd %zmm2, %zmm9, %zmm5 - vpord %zmm5, %zmm4, %zmm2 - vorps %zmm7, %zmm2, %zmm7 - vaddps {rn-sae}, %zmm11, %zmm7, %zmm7{%k3} - vorps %zmm6, %zmm7, %zmm6 - -/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */ - vpandd %zmm12, %zmm15, %zmm1 - -/* Exclude from previous callout mask zero (and not NaN) arguments */ - vpandnd %zmm3, %zmm1, %zmm3 - -/* Go to callout */ - vptestmd %zmm3, %zmm3, %k0 - kmovw %k0, %edx - -/* Merge results from main and spec path */ - vpandnd %zmm10, %zmm1, %zmm10 - vpandd %zmm1, %zmm6, %zmm11 - vpord %zmm11, %zmm10, %zmm10 - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_atan2f16,@function - .size __svml_atan2f16,.-__svml_atan2f16 -..LN__svml_atan2f16.0: - -.L_2__routine_start___svml_satan2_cout_rare_internal_1: - - .align 16,0x90 - -__svml_satan2_cout_rare_internal: - - - .cfi_startproc -..L61: - - pxor %xmm0, %xmm0 - movss (%rdi), %xmm3 - pxor %xmm1, %xmm1 - movss (%rsi), %xmm2 - movq %rdx, %r8 - cvtss2sd %xmm3, %xmm0 - cvtss2sd %xmm2, %xmm1 - movss %xmm3, -32(%rsp) - movss %xmm2, -28(%rsp) - movsd %xmm0, -48(%rsp) - movsd %xmm1, -40(%rsp) - movzwl -30(%rsp), %edi - andl $32640, %edi - movb -25(%rsp), %dl - movzwl -42(%rsp), %eax - andb $-128, %dl - movzwl -34(%rsp), %r9d - andl $32752, %eax - andl $32752, %r9d - shrl $7, %edi - movb -29(%rsp), %cl - shrb $7, %cl - shrb $7, %dl - shrl $4, %eax - shrl $4, %r9d - cmpl $255, %edi - je .LBL_2_35 - - - movzwl -26(%rsp), %esi - andl $32640, %esi - cmpl $32640, %esi - je .LBL_2_35 - - - testl %eax, %eax - jne .LBL_2_5 - - - testl $8388607, -32(%rsp) - je .LBL_2_30 - -.LBL_2_5: - - testl %r9d, %r9d - jne .LBL_2_7 - - - testl $8388607, -28(%rsp) - je .LBL_2_27 - -.LBL_2_7: - - negl %r9d - movsd %xmm0, -48(%rsp) - addl %eax, %r9d - movsd %xmm1, -40(%rsp) - movb -41(%rsp), %dil - movb -33(%rsp), %sil - andb $127, %dil - andb $127, %sil - cmpl $-54, %r9d - jle .LBL_2_22 - - - cmpl $54, %r9d - jge .LBL_2_19 - - - movb %sil, -33(%rsp) - movb %dil, -41(%rsp) - testb %dl, %dl - jne .LBL_2_11 - - - movsd 1976+__satan2_la_CoutTab(%rip), %xmm1 - movaps %xmm1, %xmm0 - jmp .LBL_2_12 - -.LBL_2_11: - - movsd 1936+__satan2_la_CoutTab(%rip), %xmm1 - movsd 1944+__satan2_la_CoutTab(%rip), %xmm0 - -.LBL_2_12: - - movsd -48(%rsp), %xmm4 - movsd -40(%rsp), %xmm2 - movaps %xmm4, %xmm5 - divsd %xmm2, %xmm5 - movzwl -42(%rsp), %esi - movsd %xmm5, -16(%rsp) - testl %eax, %eax - jle .LBL_2_34 - - - cmpl $2046, %eax - jge .LBL_2_15 - - - andl $-32753, %esi - addl $-1023, %eax - movsd %xmm4, -48(%rsp) - addl $16368, %esi - movw %si, -42(%rsp) - jmp .LBL_2_16 - -.LBL_2_15: - - movsd 1992+__satan2_la_CoutTab(%rip), %xmm3 - movl $1022, %eax - mulsd %xmm3, %xmm4 - movsd %xmm4, -48(%rsp) - -.LBL_2_16: - - negl %eax - movq 1888+__satan2_la_CoutTab(%rip), %rsi - addl $1023, %eax - movq %rsi, -40(%rsp) - andl $2047, %eax - shrq $48, %rsi - shll $4, %eax - andl $-32753, %esi - orl %eax, %esi - movw %si, -34(%rsp) - movsd -40(%rsp), %xmm3 - mulsd %xmm3, %xmm2 - comisd 1880+__satan2_la_CoutTab(%rip), %xmm5 - jb .LBL_2_18 - - - movsd 2000+__satan2_la_CoutTab(%rip), %xmm12 - movaps %xmm2, %xmm3 - mulsd %xmm2, %xmm12 - movsd %xmm12, -72(%rsp) - movsd -72(%rsp), %xmm13 - movsd %xmm5, -24(%rsp) - subsd %xmm2, %xmm13 - movsd %xmm13, -64(%rsp) - movsd -72(%rsp), %xmm15 - movsd -64(%rsp), %xmm14 - movl -20(%rsp), %edi - movl %edi, %r9d - andl $-524288, %edi - andl $-1048576, %r9d - addl $262144, %edi - subsd %xmm14, %xmm15 - movsd %xmm15, -72(%rsp) - andl $1048575, %edi - movsd -72(%rsp), %xmm4 - orl %edi, %r9d - movl $0, -24(%rsp) - subsd %xmm4, %xmm3 - movl %r9d, -20(%rsp) - movsd %xmm3, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -24(%rsp), %xmm11 - movsd -64(%rsp), %xmm9 - mulsd %xmm11, %xmm5 - mulsd %xmm11, %xmm9 - movsd 1968+__satan2_la_CoutTab(%rip), %xmm8 - mulsd %xmm8, %xmm5 - mulsd %xmm8, %xmm9 - movaps %xmm5, %xmm7 - movzwl -10(%rsp), %esi - addsd %xmm9, %xmm7 - movsd %xmm7, -72(%rsp) - andl $32752, %esi - movsd -72(%rsp), %xmm6 - shrl $4, %esi - subsd %xmm6, %xmm5 - movl -12(%rsp), %eax - addsd %xmm5, %xmm9 - movsd %xmm9, -64(%rsp) - andl $1048575, %eax - movsd -48(%rsp), %xmm9 - movsd -72(%rsp), %xmm3 - movaps %xmm9, %xmm12 - movsd -64(%rsp), %xmm10 - movaps %xmm9, %xmm14 - movaps %xmm9, %xmm6 - addsd %xmm3, %xmm12 - movsd %xmm12, -72(%rsp) - movsd -72(%rsp), %xmm13 - shll $20, %esi - subsd %xmm13, %xmm14 - movsd %xmm14, -64(%rsp) - orl %eax, %esi - movsd -72(%rsp), %xmm4 - addl $-1069547520, %esi - movsd -64(%rsp), %xmm15 - movl $113, %eax - movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 - addsd %xmm15, %xmm4 - movsd %xmm4, -56(%rsp) - movsd -64(%rsp), %xmm8 - sarl $19, %esi - addsd %xmm3, %xmm8 - movsd %xmm8, -64(%rsp) - cmpl $113, %esi - movsd -56(%rsp), %xmm7 - cmovl %esi, %eax - subsd %xmm7, %xmm6 - movsd %xmm6, -56(%rsp) - addl %eax, %eax - movsd -64(%rsp), %xmm12 - lea __satan2_la_CoutTab(%rip), %rsi - movsd -56(%rsp), %xmm5 - movslq %eax, %rax - addsd %xmm5, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -72(%rsp), %xmm7 - mulsd %xmm7, %xmm13 - movsd -56(%rsp), %xmm8 - movsd %xmm13, -72(%rsp) - addsd %xmm10, %xmm8 - movsd -72(%rsp), %xmm4 - movaps %xmm9, %xmm10 - mulsd 2000+__satan2_la_CoutTab(%rip), %xmm10 - subsd %xmm7, %xmm4 - movsd %xmm4, -64(%rsp) - movsd -72(%rsp), %xmm3 - movsd -64(%rsp), %xmm14 - subsd %xmm14, %xmm3 - movsd %xmm3, -72(%rsp) - movsd -72(%rsp), %xmm15 - subsd %xmm15, %xmm7 - movsd %xmm7, -64(%rsp) - movsd -72(%rsp), %xmm7 - movsd -64(%rsp), %xmm4 - movsd %xmm10, -72(%rsp) - movaps %xmm2, %xmm10 - addsd %xmm4, %xmm8 - movsd -72(%rsp), %xmm4 - subsd -48(%rsp), %xmm4 - movsd %xmm4, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm3 - subsd %xmm3, %xmm6 - movaps %xmm2, %xmm3 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm5 - subsd %xmm5, %xmm9 - movsd %xmm9, -64(%rsp) - movsd -72(%rsp), %xmm12 - movsd -64(%rsp), %xmm9 - mulsd %xmm11, %xmm12 - mulsd %xmm11, %xmm9 - movaps %xmm12, %xmm11 - addsd %xmm9, %xmm11 - movsd %xmm11, -72(%rsp) - movsd -72(%rsp), %xmm4 - subsd %xmm4, %xmm12 - addsd %xmm9, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -72(%rsp), %xmm15 - movsd -64(%rsp), %xmm6 - addsd %xmm15, %xmm3 - movsd %xmm3, -72(%rsp) - movsd -72(%rsp), %xmm5 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm3 - subsd %xmm5, %xmm10 - movsd %xmm10, -64(%rsp) - movsd -72(%rsp), %xmm13 - movsd -64(%rsp), %xmm11 - addsd %xmm11, %xmm13 - movsd %xmm13, -56(%rsp) - movsd -64(%rsp), %xmm14 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 - addsd %xmm14, %xmm15 - movsd %xmm15, -64(%rsp) - movsd -56(%rsp), %xmm4 - movsd 1888+__satan2_la_CoutTab(%rip), %xmm14 - subsd %xmm4, %xmm2 - movsd %xmm2, -56(%rsp) - movsd -64(%rsp), %xmm4 - movsd -56(%rsp), %xmm2 - addsd %xmm2, %xmm4 - movsd %xmm4, -56(%rsp) - movsd -72(%rsp), %xmm12 - mulsd %xmm12, %xmm3 - movsd -56(%rsp), %xmm5 - movsd %xmm3, -72(%rsp) - addsd %xmm6, %xmm5 - movsd -72(%rsp), %xmm9 - subsd %xmm12, %xmm9 - movsd %xmm9, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm2 - subsd %xmm2, %xmm10 - movsd %xmm10, -72(%rsp) - movsd -72(%rsp), %xmm11 - subsd %xmm11, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -72(%rsp), %xmm9 - divsd %xmm9, %xmm14 - mulsd %xmm14, %xmm13 - movsd -64(%rsp), %xmm10 - movsd %xmm13, -64(%rsp) - addsd %xmm10, %xmm5 - movsd -64(%rsp), %xmm15 - movsd 1888+__satan2_la_CoutTab(%rip), %xmm12 - subsd %xmm14, %xmm15 - movsd %xmm15, -56(%rsp) - movsd -64(%rsp), %xmm2 - movsd -56(%rsp), %xmm4 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 - subsd %xmm4, %xmm2 - movsd %xmm2, -56(%rsp) - movsd -56(%rsp), %xmm3 - mulsd %xmm3, %xmm9 - movsd -56(%rsp), %xmm11 - subsd %xmm9, %xmm12 - mulsd %xmm11, %xmm5 - movsd %xmm5, -64(%rsp) - movsd -64(%rsp), %xmm5 - subsd %xmm5, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -64(%rsp), %xmm2 - movq -56(%rsp), %r10 - movsd -64(%rsp), %xmm6 - movsd -56(%rsp), %xmm4 - movq %r10, -40(%rsp) - movsd -40(%rsp), %xmm3 - movaps %xmm3, %xmm5 - addsd 1888+__satan2_la_CoutTab(%rip), %xmm2 - mulsd %xmm7, %xmm5 - mulsd %xmm6, %xmm2 - mulsd %xmm4, %xmm2 - mulsd %xmm2, %xmm7 - mulsd %xmm8, %xmm2 - mulsd %xmm3, %xmm8 - addsd %xmm2, %xmm7 - movsd 1872+__satan2_la_CoutTab(%rip), %xmm3 - addsd %xmm8, %xmm7 - movsd %xmm7, -72(%rsp) - movaps %xmm5, %xmm7 - movsd -72(%rsp), %xmm4 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm6 - addsd %xmm4, %xmm7 - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm8 - subsd %xmm8, %xmm5 - addsd %xmm4, %xmm5 - movsd %xmm5, -64(%rsp) - movsd -72(%rsp), %xmm11 - movaps %xmm11, %xmm2 - mulsd %xmm11, %xmm2 - mulsd %xmm11, %xmm6 - mulsd %xmm2, %xmm3 - movsd -64(%rsp), %xmm4 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm7 - addsd 1864+__satan2_la_CoutTab(%rip), %xmm3 - subsd %xmm11, %xmm7 - mulsd %xmm2, %xmm3 - movsd %xmm7, -64(%rsp) - movsd -72(%rsp), %xmm9 - movsd -64(%rsp), %xmm8 - addsd 1856+__satan2_la_CoutTab(%rip), %xmm3 - subsd %xmm8, %xmm9 - mulsd %xmm2, %xmm3 - movsd %xmm9, -72(%rsp) - movsd -72(%rsp), %xmm10 - addsd 1848+__satan2_la_CoutTab(%rip), %xmm3 - subsd %xmm10, %xmm11 - mulsd %xmm2, %xmm3 - movsd %xmm11, -64(%rsp) - addsd 1840+__satan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - addsd 1832+__satan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - addsd 1824+__satan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - mulsd %xmm3, %xmm13 - movsd -72(%rsp), %xmm2 - movsd -64(%rsp), %xmm12 - movsd %xmm13, -72(%rsp) - addsd %xmm12, %xmm4 - movsd -72(%rsp), %xmm14 - subsd %xmm3, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm15 - subsd %xmm15, %xmm5 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm6 - subsd %xmm6, %xmm3 - movsd %xmm3, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm5 - movaps %xmm6, %xmm12 - movaps %xmm5, %xmm3 - mulsd %xmm4, %xmm6 - mulsd %xmm4, %xmm3 - mulsd %xmm2, %xmm5 - mulsd %xmm2, %xmm12 - addsd %xmm3, %xmm6 - movaps %xmm12, %xmm7 - movaps %xmm12, %xmm8 - addsd %xmm5, %xmm6 - addsd %xmm2, %xmm7 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm5 - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm3 - subsd %xmm3, %xmm8 - movsd %xmm8, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movsd -64(%rsp), %xmm11 - addsd %xmm11, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -56(%rsp), %xmm2 - subsd %xmm2, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -64(%rsp), %xmm14 - movsd -56(%rsp), %xmm13 - addsd %xmm13, %xmm14 - movsd %xmm14, -56(%rsp) - movq -72(%rsp), %r11 - movsd -56(%rsp), %xmm15 - movq %r11, -40(%rsp) - addsd %xmm15, %xmm4 - movsd -40(%rsp), %xmm8 - addsd %xmm5, %xmm4 - movsd %xmm4, -32(%rsp) - movaps %xmm8, %xmm4 - movaps %xmm8, %xmm2 - addsd (%rsi,%rax,8), %xmm4 - movsd %xmm4, -72(%rsp) - movsd -72(%rsp), %xmm4 - subsd %xmm4, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm3 - addsd %xmm3, %xmm5 - movsd %xmm5, -56(%rsp) - movsd -64(%rsp), %xmm6 - addsd (%rsi,%rax,8), %xmm6 - movsd %xmm6, -64(%rsp) - movsd -56(%rsp), %xmm7 - subsd %xmm7, %xmm8 - movsd %xmm8, -56(%rsp) - movsd -64(%rsp), %xmm10 - movsd -56(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movq -72(%rsp), %rdi - movq %rdi, -40(%rsp) - - - movsd -56(%rsp), %xmm2 - movaps %xmm1, %xmm3 - shrq $56, %rdi - addsd -32(%rsp), %xmm2 - shlb $7, %cl - addsd 8(%rsi,%rax,8), %xmm2 - movb %dl, %al - andb $127, %dil - shlb $7, %al - movsd %xmm2, -32(%rsp) - orb %al, %dil - movb %dil, -33(%rsp) - movsd -40(%rsp), %xmm9 - movaps %xmm9, %xmm5 - addsd %xmm9, %xmm3 - movsd %xmm3, -72(%rsp) - movsd -72(%rsp), %xmm4 - movb -25(%rsp), %sil - movb %sil, %r9b - shrb $7, %sil - subsd %xmm4, %xmm5 - movsd %xmm5, -64(%rsp) - movsd -72(%rsp), %xmm7 - movsd -64(%rsp), %xmm6 - xorb %sil, %dl - andb $127, %r9b - shlb $7, %dl - addsd %xmm6, %xmm7 - movsd %xmm7, -56(%rsp) - movsd -64(%rsp), %xmm8 - addsd %xmm8, %xmm1 - movsd %xmm1, -64(%rsp) - orb %dl, %r9b - movsd -56(%rsp), %xmm1 - movb %r9b, -25(%rsp) - subsd %xmm1, %xmm9 - movsd %xmm9, -56(%rsp) - movsd -64(%rsp), %xmm11 - movsd -56(%rsp), %xmm10 - addsd %xmm10, %xmm11 - movsd %xmm11, -56(%rsp) - movq -72(%rsp), %rdx - movsd -56(%rsp), %xmm12 - movq %rdx, -40(%rsp) - addsd %xmm12, %xmm0 - movsd -40(%rsp), %xmm13 - addsd -32(%rsp), %xmm0 - movsd %xmm0, -32(%rsp) - addsd %xmm0, %xmm13 - movsd %xmm13, -24(%rsp) - movb -17(%rsp), %r10b - andb $127, %r10b - orb %cl, %r10b - movb %r10b, -17(%rsp) - movsd -24(%rsp), %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r8) - jmp .LBL_2_33 - -.LBL_2_18: - - movsd -48(%rsp), %xmm12 - movb %dl, %dil - movaps %xmm12, %xmm7 - mulsd 2000+__satan2_la_CoutTab(%rip), %xmm7 - shlb $7, %dil - shlb $7, %cl - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm8 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 - movsd 1888+__satan2_la_CoutTab(%rip), %xmm7 - mulsd %xmm2, %xmm13 - subsd -48(%rsp), %xmm8 - movsd %xmm8, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm9 - subsd %xmm9, %xmm10 - movsd %xmm10, -72(%rsp) - movsd -72(%rsp), %xmm11 - subsd %xmm11, %xmm12 - movsd %xmm12, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm5 - movsd %xmm13, -72(%rsp) - movsd -72(%rsp), %xmm14 - subsd %xmm2, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -72(%rsp), %xmm4 - movsd -64(%rsp), %xmm15 - subsd %xmm15, %xmm4 - movsd %xmm4, -72(%rsp) - movsd -72(%rsp), %xmm3 - movsd 1888+__satan2_la_CoutTab(%rip), %xmm4 - subsd %xmm3, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -72(%rsp), %xmm12 - divsd %xmm12, %xmm7 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm2 - mulsd %xmm7, %xmm2 - movsd -64(%rsp), %xmm14 - movsd %xmm2, -64(%rsp) - movsd -64(%rsp), %xmm8 - subsd %xmm7, %xmm8 - movsd %xmm8, -56(%rsp) - movsd -64(%rsp), %xmm10 - movsd -56(%rsp), %xmm9 - subsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movsd -56(%rsp), %xmm11 - mulsd %xmm11, %xmm12 - movsd -56(%rsp), %xmm13 - subsd %xmm12, %xmm4 - mulsd %xmm13, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -64(%rsp), %xmm15 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm13 - subsd %xmm15, %xmm4 - movsd %xmm4, -64(%rsp) - movsd -64(%rsp), %xmm7 - movq -56(%rsp), %rax - movsd -64(%rsp), %xmm2 - movsd -56(%rsp), %xmm3 - movq %rax, -40(%rsp) - movsd -40(%rsp), %xmm8 - movaps %xmm8, %xmm9 - addsd 1888+__satan2_la_CoutTab(%rip), %xmm7 - mulsd %xmm6, %xmm9 - mulsd %xmm5, %xmm8 - mulsd %xmm2, %xmm7 - movsd -16(%rsp), %xmm2 - mulsd %xmm2, %xmm2 - mulsd %xmm3, %xmm7 - movsd 1872+__satan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - mulsd %xmm7, %xmm6 - mulsd %xmm5, %xmm7 - addsd 1864+__satan2_la_CoutTab(%rip), %xmm3 - addsd %xmm7, %xmm6 - mulsd %xmm2, %xmm3 - addsd %xmm8, %xmm6 - addsd 1856+__satan2_la_CoutTab(%rip), %xmm3 - mulsd %xmm2, %xmm3 - movaps %xmm9, %xmm5 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm4 - addsd 1848+__satan2_la_CoutTab(%rip), %xmm3 - addsd %xmm4, %xmm5 - mulsd %xmm2, %xmm3 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm6 - movsd 2000+__satan2_la_CoutTab(%rip), %xmm5 - subsd %xmm6, %xmm9 - addsd 1840+__satan2_la_CoutTab(%rip), %xmm3 - addsd %xmm4, %xmm9 - mulsd %xmm2, %xmm3 - movsd %xmm9, -64(%rsp) - movsd -72(%rsp), %xmm11 - mulsd %xmm11, %xmm5 - addsd 1832+__satan2_la_CoutTab(%rip), %xmm3 - movsd -64(%rsp), %xmm4 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm7 - mulsd %xmm2, %xmm3 - subsd %xmm11, %xmm7 - movsd %xmm7, -64(%rsp) - movsd -72(%rsp), %xmm8 - movsd -64(%rsp), %xmm6 - addsd 1824+__satan2_la_CoutTab(%rip), %xmm3 - subsd %xmm6, %xmm8 - mulsd %xmm2, %xmm3 - movsd %xmm8, -72(%rsp) - movsd -72(%rsp), %xmm10 - mulsd %xmm3, %xmm13 - subsd %xmm10, %xmm11 - movsd %xmm11, -64(%rsp) - movsd -72(%rsp), %xmm2 - movsd -64(%rsp), %xmm12 - movsd %xmm13, -72(%rsp) - addsd %xmm12, %xmm4 - movsd -72(%rsp), %xmm14 - subsd %xmm3, %xmm14 - movsd %xmm14, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm15 - subsd %xmm15, %xmm5 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm6 - subsd %xmm6, %xmm3 - movsd %xmm3, -64(%rsp) - movsd -72(%rsp), %xmm6 - movsd -64(%rsp), %xmm5 - movaps %xmm6, %xmm12 - movaps %xmm5, %xmm3 - mulsd %xmm4, %xmm6 - mulsd %xmm4, %xmm3 - mulsd %xmm2, %xmm5 - mulsd %xmm2, %xmm12 - addsd %xmm3, %xmm6 - movaps %xmm12, %xmm7 - movaps %xmm12, %xmm8 - addsd %xmm5, %xmm6 - addsd %xmm2, %xmm7 - movsd %xmm6, -72(%rsp) - movsd -72(%rsp), %xmm5 - movsd %xmm7, -72(%rsp) - movsd -72(%rsp), %xmm3 - subsd %xmm3, %xmm8 - movsd %xmm8, -64(%rsp) - movsd -72(%rsp), %xmm10 - movsd -64(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -56(%rsp) - movsd -64(%rsp), %xmm11 - addsd %xmm11, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -56(%rsp), %xmm2 - subsd %xmm2, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -64(%rsp), %xmm14 - movsd -56(%rsp), %xmm13 - addsd %xmm13, %xmm14 - movsd %xmm14, -56(%rsp) - movq -72(%rsp), %rsi - movsd -56(%rsp), %xmm15 - movq %rsi, -40(%rsp) - addsd %xmm15, %xmm4 - shrq $56, %rsi - addsd %xmm5, %xmm4 - andb $127, %sil - orb %dil, %sil - movb %sil, -33(%rsp) - movsd %xmm4, -32(%rsp) - movaps %xmm1, %xmm4 - movsd -40(%rsp), %xmm7 - movaps %xmm7, %xmm2 - addsd %xmm7, %xmm4 - movsd %xmm4, -72(%rsp) - movsd -72(%rsp), %xmm4 - movb -25(%rsp), %r9b - movb %r9b, %r10b - shrb $7, %r9b - subsd %xmm4, %xmm2 - movsd %xmm2, -64(%rsp) - movsd -72(%rsp), %xmm5 - movsd -64(%rsp), %xmm3 - xorb %r9b, %dl - andb $127, %r10b - shlb $7, %dl - addsd %xmm3, %xmm5 - movsd %xmm5, -56(%rsp) - movsd -64(%rsp), %xmm6 - addsd %xmm6, %xmm1 - movsd %xmm1, -64(%rsp) - orb %dl, %r10b - movsd -56(%rsp), %xmm1 - movb %r10b, -25(%rsp) - subsd %xmm1, %xmm7 - movsd %xmm7, -56(%rsp) - movsd -64(%rsp), %xmm2 - movsd -56(%rsp), %xmm1 - addsd %xmm1, %xmm2 - movsd %xmm2, -56(%rsp) - movq -72(%rsp), %rdx - movsd -56(%rsp), %xmm3 - movq %rdx, -40(%rsp) - addsd %xmm3, %xmm0 - movsd -40(%rsp), %xmm4 - addsd -32(%rsp), %xmm0 - movsd %xmm0, -32(%rsp) - addsd %xmm0, %xmm4 - movsd %xmm4, -24(%rsp) - movb -17(%rsp), %r11b - andb $127, %r11b - orb %cl, %r11b - movb %r11b, -17(%rsp) - movsd -24(%rsp), %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r8) - jmp .LBL_2_33 - -.LBL_2_19: - - cmpl $74, %r9d - jge .LBL_2_21 - - - movb %dil, -41(%rsp) - divsd -48(%rsp), %xmm1 - movsd 1928+__satan2_la_CoutTab(%rip), %xmm0 - shlb $7, %cl - subsd %xmm1, %xmm0 - addsd 1920+__satan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm1 - cvtsd2ss %xmm1, %xmm1 - movss %xmm1, (%r8) - jmp .LBL_2_33 - -.LBL_2_21: - - movsd 1920+__satan2_la_CoutTab(%rip), %xmm0 - shlb $7, %cl - addsd 1928+__satan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm1 - cvtsd2ss %xmm1, %xmm1 - movss %xmm1, (%r8) - jmp .LBL_2_33 - -.LBL_2_22: - - testb %dl, %dl - jne .LBL_2_32 - - - movb %dil, -41(%rsp) - pxor %xmm0, %xmm0 - movb %sil, -33(%rsp) - movsd -48(%rsp), %xmm2 - divsd -40(%rsp), %xmm2 - cvtsd2ss %xmm2, %xmm0 - movss %xmm0, -8(%rsp) - movzwl -6(%rsp), %eax - movsd %xmm2, -24(%rsp) - testl $32640, %eax - je .LBL_2_25 - - - movsd 1888+__satan2_la_CoutTab(%rip), %xmm0 - shlb $7, %cl - addsd %xmm2, %xmm0 - movsd %xmm0, -72(%rsp) - movsd -72(%rsp), %xmm1 - mulsd %xmm1, %xmm2 - movsd %xmm2, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm2 - cvtsd2ss %xmm2, %xmm2 - movss %xmm2, (%r8) - jmp .LBL_2_33 - -.LBL_2_25: - - movsd -24(%rsp), %xmm0 - cvtsd2ss %xmm0, %xmm0 - shlb $7, %cl - movss %xmm0, -8(%rsp) - movss -8(%rsp), %xmm2 - movss -8(%rsp), %xmm1 - mulss %xmm1, %xmm2 - movss %xmm2, -8(%rsp) - movss -8(%rsp), %xmm3 - cvtss2sd %xmm3, %xmm3 - addsd -24(%rsp), %xmm3 - movsd %xmm3, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm4 - cvtsd2ss %xmm4, %xmm4 - movss %xmm4, (%r8) - jmp .LBL_2_33 - -.LBL_2_27: - - testl %eax, %eax - jne .LBL_2_21 - - - testl $8388607, -32(%rsp) - jne .LBL_2_21 - -.LBL_2_30: - - testb %dl, %dl - jne .LBL_2_32 - -.LBL_2_31: - - shlb $7, %cl - movq 1976+__satan2_la_CoutTab(%rip), %rax - movq %rax, -24(%rsp) - shrq $56, %rax - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r8) - jmp .LBL_2_33 - -.LBL_2_32: - - movsd 1936+__satan2_la_CoutTab(%rip), %xmm0 - shlb $7, %cl - addsd 1944+__satan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm1 - cvtsd2ss %xmm1, %xmm1 - movss %xmm1, (%r8) - -.LBL_2_33: - - xorl %eax, %eax - ret - -.LBL_2_34: - - movsd 1984+__satan2_la_CoutTab(%rip), %xmm3 - movl $-1022, %eax - mulsd %xmm3, %xmm4 - movsd %xmm4, -48(%rsp) - jmp .LBL_2_16 - -.LBL_2_35: - - cmpl $2047, %eax - je .LBL_2_48 - -.LBL_2_36: - - cmpl $2047, %r9d - je .LBL_2_46 - -.LBL_2_37: - - movzwl -26(%rsp), %eax - andl $32640, %eax - cmpl $32640, %eax - jne .LBL_2_21 - - - cmpl $255, %edi - je .LBL_2_43 - - - testb %dl, %dl - je .LBL_2_31 - jmp .LBL_2_32 - -.LBL_2_43: - - testb %dl, %dl - jne .LBL_2_45 - - - movsd 1904+__satan2_la_CoutTab(%rip), %xmm0 - shlb $7, %cl - addsd 1912+__satan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm1 - cvtsd2ss %xmm1, %xmm1 - movss %xmm1, (%r8) - jmp .LBL_2_33 - -.LBL_2_45: - - movsd 1952+__satan2_la_CoutTab(%rip), %xmm0 - shlb $7, %cl - addsd 1960+__satan2_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %al - andb $127, %al - orb %cl, %al - movb %al, -17(%rsp) - movsd -24(%rsp), %xmm1 - cvtsd2ss %xmm1, %xmm1 - movss %xmm1, (%r8) - jmp .LBL_2_33 - -.LBL_2_46: - - testl $8388607, -28(%rsp) - je .LBL_2_37 - -.LBL_2_47: - - addss %xmm2, %xmm3 - movss %xmm3, (%r8) - jmp .LBL_2_33 - -.LBL_2_48: - - testl $8388607, -32(%rsp) - jne .LBL_2_47 - jmp .LBL_2_36 - .align 16,0x90 - - .cfi_endproc - - .type __svml_satan2_cout_rare_internal,@function - .size __svml_satan2_cout_rare_internal,.-__svml_satan2_cout_rare_internal -..LN__svml_satan2_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_satan2_data_internal: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 993144000 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 3162449457 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 1026278276 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 3180885545 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 1037657204 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 3188810232 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 1045215135 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 3198855753 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 2164260864 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .long 4227858432 - .type __svml_satan2_data_internal,@object - .size __svml_satan2_data_internal,1152 - .align 32 -__satan2_la_CoutTab: - .long 3892314112 - .long 1069799150 - .long 2332892550 - .long 1039715405 - .long 1342177280 - .long 1070305495 - .long 270726690 - .long 1041535749 - .long 939524096 - .long 1070817911 - .long 2253973841 - .long 3188654726 - .long 3221225472 - .long 1071277294 - .long 3853927037 - .long 1043226911 - .long 2818572288 - .long 1071767563 - .long 2677759107 - .long 1044314101 - .long 3355443200 - .long 1072103591 - .long 1636578514 - .long 3191094734 - .long 1476395008 - .long 1072475260 - .long 1864703685 - .long 3188646936 - .long 805306368 - .long 1072747407 - .long 192551812 - .long 3192726267 - .long 2013265920 - .long 1072892781 - .long 2240369452 - .long 1043768538 - .long 0 - .long 1072999953 - .long 3665168337 - .long 3192705970 - .long 402653184 - .long 1073084787 - .long 1227953434 - .long 3192313277 - .long 2013265920 - .long 1073142981 - .long 3853283127 - .long 1045277487 - .long 805306368 - .long 1073187261 - .long 1676192264 - .long 3192868861 - .long 134217728 - .long 1073217000 - .long 4290763938 - .long 1042034855 - .long 671088640 - .long 1073239386 - .long 994303084 - .long 3189643768 - .long 402653184 - .long 1073254338 - .long 1878067156 - .long 1042652475 - .long 1610612736 - .long 1073265562 - .long 670314820 - .long 1045138554 - .long 3221225472 - .long 1073273048 - .long 691126919 - .long 3189987794 - .long 3489660928 - .long 1073278664 - .long 1618990832 - .long 3188194509 - .long 1207959552 - .long 1073282409 - .long 2198872939 - .long 1044806069 - .long 3489660928 - .long 1073285217 - .long 2633982383 - .long 1042307894 - .long 939524096 - .long 1073287090 - .long 1059367786 - .long 3189114230 - .long 2281701376 - .long 1073288494 - .long 3158525533 - .long 1044484961 - .long 3221225472 - .long 1073289430 - .long 286581777 - .long 1044893263 - .long 4026531840 - .long 1073290132 - .long 2000245215 - .long 3191647611 - .long 134217728 - .long 1073290601 - .long 4205071590 - .long 1045035927 - .long 536870912 - .long 1073290952 - .long 2334392229 - .long 1043447393 - .long 805306368 - .long 1073291186 - .long 2281458177 - .long 3188885569 - .long 3087007744 - .long 1073291361 - .long 691611507 - .long 1044733832 - .long 3221225472 - .long 1073291478 - .long 1816229550 - .long 1044363390 - .long 2281701376 - .long 1073291566 - .long 1993843750 - .long 3189837440 - .long 134217728 - .long 1073291625 - .long 3654754496 - .long 1044970837 - .long 4026531840 - .long 1073291668 - .long 3224300229 - .long 3191935390 - .long 805306368 - .long 1073291698 - .long 2988777976 - .long 3188950659 - .long 536870912 - .long 1073291720 - .long 1030371341 - .long 1043402665 - .long 3221225472 - .long 1073291734 - .long 1524463765 - .long 1044361356 - .long 3087007744 - .long 1073291745 - .long 2754295320 - .long 1044731036 - .long 134217728 - .long 1073291753 - .long 3099629057 - .long 1044970710 - .long 2281701376 - .long 1073291758 - .long 962914160 - .long 3189838838 - .long 805306368 - .long 1073291762 - .long 3543908206 - .long 3188950786 - .long 4026531840 - .long 1073291764 - .long 1849909620 - .long 3191935434 - .long 3221225472 - .long 1073291766 - .long 1641333636 - .long 1044361352 - .long 536870912 - .long 1073291768 - .long 1373968792 - .long 1043402654 - .long 134217728 - .long 1073291769 - .long 2033191599 - .long 1044970710 - .long 3087007744 - .long 1073291769 - .long 4117947437 - .long 1044731035 - .long 805306368 - .long 1073291770 - .long 315378368 - .long 3188950787 - .long 2281701376 - .long 1073291770 - .long 2428571750 - .long 3189838838 - .long 3221225472 - .long 1073291770 - .long 1608007466 - .long 1044361352 - .long 4026531840 - .long 1073291770 - .long 1895711420 - .long 3191935434 - .long 134217728 - .long 1073291771 - .long 2031108713 - .long 1044970710 - .long 536870912 - .long 1073291771 - .long 1362518342 - .long 1043402654 - .long 805306368 - .long 1073291771 - .long 317461253 - .long 3188950787 - .long 939524096 - .long 1073291771 - .long 4117231784 - .long 1044731035 - .long 1073741824 - .long 1073291771 - .long 1607942376 - .long 1044361352 - .long 1207959552 - .long 1073291771 - .long 2428929577 - .long 3189838838 - .long 1207959552 - .long 1073291771 - .long 2031104645 - .long 1044970710 - .long 1342177280 - .long 1073291771 - .long 1895722602 - .long 3191935434 - .long 1342177280 - .long 1073291771 - .long 317465322 - .long 3188950787 - .long 1342177280 - .long 1073291771 - .long 1362515546 - .long 1043402654 - .long 1342177280 - .long 1073291771 - .long 1607942248 - .long 1044361352 - .long 1342177280 - .long 1073291771 - .long 4117231610 - .long 1044731035 - .long 1342177280 - .long 1073291771 - .long 2031104637 - .long 1044970710 - .long 1342177280 - .long 1073291771 - .long 1540251232 - .long 1045150466 - .long 1342177280 - .long 1073291771 - .long 2644671394 - .long 1045270303 - .long 1342177280 - .long 1073291771 - .long 2399244691 - .long 1045360181 - .long 1342177280 - .long 1073291771 - .long 803971124 - .long 1045420100 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192879152 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192849193 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192826724 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192811744 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192800509 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192793019 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192787402 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192783657 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192780848 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192778976 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192777572 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192776635 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192775933 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192775465 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192775114 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774880 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774704 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774587 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774500 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774441 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774397 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774368 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774346 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774331 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774320 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774313 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774308 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774304 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774301 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774299 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774298 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774297 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1466225875 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1343512524 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1251477510 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1190120835 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1144103328 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1113424990 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1090416237 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1075077068 - .long 3192774295 - .long 1431655765 - .long 3218429269 - .long 2576978363 - .long 1070176665 - .long 2453154343 - .long 3217180964 - .long 4189149139 - .long 1069314502 - .long 1775019125 - .long 3216459198 - .long 273199057 - .long 1068739452 - .long 874748308 - .long 3215993277 - .long 0 - .long 1069547520 - .long 0 - .long 1072693248 - .long 0 - .long 1073741824 - .long 1413754136 - .long 1072243195 - .long 856972295 - .long 1015129638 - .long 1413754136 - .long 1073291771 - .long 856972295 - .long 1016178214 - .long 1413754136 - .long 1074340347 - .long 856972295 - .long 1017226790 - .long 2134057426 - .long 1073928572 - .long 1285458442 - .long 1016756537 - .long 0 - .long 3220176896 - .long 0 - .long 0 - .long 0 - .long 2144337920 - .long 0 - .long 1048576 - .long 33554432 - .long 1101004800 - .type __satan2_la_CoutTab,@object - .size __satan2_la_CoutTab,2008 diff --git a/numpy/core/src/umath/svml/svml_z0_atan_d_la.s b/numpy/core/src/umath/svml/svml_z0_atan_d_la.s deleted file mode 100644 index 01564372eaaf..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_atan_d_la.s +++ /dev/null @@ -1,1352 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x) - * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x) - * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x) - * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x) - * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x - * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16. - * - */ - - - .text -.L_2__routine_start___svml_atan8_z0_0: - - .align 16,0x90 - .globl __svml_atan8 - -__svml_atan8: - - - .cfi_startproc -..L2: - - vmovups 64+__svml_datan_data_internal_avx512(%rip), %zmm4 - vmovups 128+__svml_datan_data_internal_avx512(%rip), %zmm3 - vmovups 256+__svml_datan_data_internal_avx512(%rip), %zmm9 - -/* saturate X range */ - vmovups 320+__svml_datan_data_internal_avx512(%rip), %zmm7 - - vandpd __svml_datan_data_internal_avx512(%rip), %zmm0, %zmm8 - -/* R+Rl = DiffX/Y */ - vbroadcastsd .L_2il0floatpacket.14(%rip), %zmm15 - vaddpd {rn-sae}, %zmm4, %zmm8, %zmm2 - vxorpd %zmm0, %zmm8, %zmm1 - vcmppd $29, {sae}, %zmm3, %zmm8, %k2 - -/* round to 2 bits after binary point */ - vreducepd $40, {sae}, %zmm8, %zmm6 - vsubpd {rn-sae}, %zmm4, %zmm2, %zmm5 - -/* - * if|X|>=MaxThreshold, set DiffX=-1 - * VMSUB(D, DiffX, LargeMask, Zero, One); - */ - vblendmpd 192+__svml_datan_data_internal_avx512(%rip), %zmm6, %zmm10{%k2} - vfmadd231pd {rn-sae}, %zmm8, %zmm5, %zmm9 - vmovups 960+__svml_datan_data_internal_avx512(%rip), %zmm5 - -/* table lookup sequence */ - vmovups 448+__svml_datan_data_internal_avx512(%rip), %zmm6 - vgetmantpd $0, {sae}, %zmm10, %zmm14 - vgetexppd {sae}, %zmm10, %zmm11 - vmovups 1408+__svml_datan_data_internal_avx512(%rip), %zmm10 - -/* - * if|X|>=MaxThreshold, set Y=X - * VMADD(D, Y, LargeMask, X, Zero); - */ - vminpd {sae}, %zmm8, %zmm7, %zmm9{%k2} - vcmppd $29, {sae}, %zmm5, %zmm2, %k1 - vmovups 576+__svml_datan_data_internal_avx512(%rip), %zmm7 - vmovups 1152+__svml_datan_data_internal_avx512(%rip), %zmm8 - vgetmantpd $0, {sae}, %zmm9, %zmm3 - vgetexppd {sae}, %zmm9, %zmm12 - vmovups 1280+__svml_datan_data_internal_avx512(%rip), %zmm9 - vpermt2pd 512+__svml_datan_data_internal_avx512(%rip), %zmm2, %zmm6 - vsubpd {rn-sae}, %zmm12, %zmm11, %zmm4 - vpermt2pd 640+__svml_datan_data_internal_avx512(%rip), %zmm2, %zmm7 - vrcp14pd %zmm3, %zmm13 - vmovups 1344+__svml_datan_data_internal_avx512(%rip), %zmm12 - vmovups 1472+__svml_datan_data_internal_avx512(%rip), %zmm11 - vblendmpd %zmm7, %zmm6, %zmm2{%k1} - vmulpd {rn-sae}, %zmm13, %zmm14, %zmm0 - vfnmadd231pd {rn-sae}, %zmm3, %zmm13, %zmm15 - vfnmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm3 - vfmadd213pd {rn-sae}, %zmm15, %zmm15, %zmm15 - vfmadd213pd {rn-sae}, %zmm13, %zmm13, %zmm15 - vfmadd213pd {rn-sae}, %zmm0, %zmm15, %zmm3 - vscalefpd {rn-sae}, %zmm4, %zmm3, %zmm0 - -/* set table value to Pi/2 for large X */ - vblendmpd 1024+__svml_datan_data_internal_avx512(%rip), %zmm2, %zmm3{%k2} - vmovups 1216+__svml_datan_data_internal_avx512(%rip), %zmm2 - -/* polynomial evaluation */ - vmulpd {rn-sae}, %zmm0, %zmm0, %zmm14 - vmulpd {rn-sae}, %zmm14, %zmm14, %zmm13 - vmulpd {rn-sae}, %zmm0, %zmm14, %zmm15 - vfmadd231pd {rn-sae}, %zmm14, %zmm8, %zmm2 - vfmadd231pd {rn-sae}, %zmm14, %zmm9, %zmm12 - vfmadd213pd {rn-sae}, %zmm11, %zmm10, %zmm14 - vfmadd213pd {rn-sae}, %zmm12, %zmm13, %zmm2 - vfmadd213pd {rn-sae}, %zmm14, %zmm13, %zmm2 - vfmadd213pd {rn-sae}, %zmm0, %zmm15, %zmm2 - vaddpd {rn-sae}, %zmm3, %zmm2, %zmm0 - vxorpd %zmm1, %zmm0, %zmm0 - -/* no invcbrt in libm, so taking it out here */ - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_atan8,@function - .size __svml_atan8,.-__svml_atan8 -..LN__svml_atan8.0: - -.L_2__routine_start___svml_datan_cout_rare_internal_1: - - .align 16,0x90 - -__svml_datan_cout_rare_internal: - - - .cfi_startproc -..L5: - - movzwl 6(%rdi), %r8d - andl $32752, %r8d - shrl $4, %r8d - cmpl $2047, %r8d - je .LBL_2_12 - - - movq (%rdi), %rdx - movq %rdx, -16(%rsp) - shrq $56, %rdx - movb 7(%rdi), %al - andl $127, %edx - movb %dl, -9(%rsp) - movsd -16(%rsp), %xmm0 - shrb $7, %al - comisd 1888+__datan_la_CoutTab(%rip), %xmm0 - movl -12(%rsp), %ecx - jb .LBL_2_6 - - - movsd 1896+__datan_la_CoutTab(%rip), %xmm1 - comisd %xmm0, %xmm1 - jbe .LBL_2_5 - - - movl 4(%rdi), %edx - movl %ecx, %edi - andl $-524288, %ecx - andl $-1048576, %edi - addl $262144, %ecx - movaps %xmm0, %xmm9 - andl $1048575, %ecx - movaps %xmm0, %xmm10 - movsd %xmm0, -56(%rsp) - orl %ecx, %edi - movl $0, -56(%rsp) - andl $1048575, %edx - movl %edi, -52(%rsp) - lea __datan_la_CoutTab(%rip), %rcx - movsd 1928+__datan_la_CoutTab(%rip), %xmm4 - movsd -56(%rsp), %xmm15 - shll $20, %r8d - subsd -56(%rsp), %xmm9 - mulsd 1928+__datan_la_CoutTab(%rip), %xmm10 - shlb $7, %al - mulsd %xmm9, %xmm4 - movsd %xmm4, -48(%rsp) - orl %edx, %r8d - movsd -48(%rsp), %xmm5 - addl $-1069547520, %r8d - sarl $18, %r8d - subsd %xmm9, %xmm5 - movsd %xmm5, -40(%rsp) - andl $-2, %r8d - movsd -48(%rsp), %xmm7 - movsd -40(%rsp), %xmm6 - movslq %r8d, %r8 - subsd %xmm6, %xmm7 - movsd %xmm7, -48(%rsp) - movsd -48(%rsp), %xmm8 - movsd 1904+__datan_la_CoutTab(%rip), %xmm6 - subsd %xmm8, %xmm9 - movsd %xmm9, -40(%rsp) - movsd -48(%rsp), %xmm2 - movsd -40(%rsp), %xmm3 - movsd %xmm10, -48(%rsp) - movsd -48(%rsp), %xmm11 - movsd 1904+__datan_la_CoutTab(%rip), %xmm8 - subsd -16(%rsp), %xmm11 - movsd %xmm11, -40(%rsp) - movsd -48(%rsp), %xmm13 - movsd -40(%rsp), %xmm12 - subsd %xmm12, %xmm13 - movsd %xmm13, -48(%rsp) - movsd -48(%rsp), %xmm14 - subsd %xmm14, %xmm0 - movsd 1904+__datan_la_CoutTab(%rip), %xmm14 - movsd %xmm0, -40(%rsp) - movsd -48(%rsp), %xmm5 - movsd -40(%rsp), %xmm4 - mulsd %xmm15, %xmm5 - mulsd %xmm15, %xmm4 - movaps %xmm5, %xmm1 - addsd %xmm4, %xmm1 - movsd %xmm1, -48(%rsp) - movsd -48(%rsp), %xmm0 - subsd %xmm0, %xmm5 - addsd %xmm4, %xmm5 - movsd 1928+__datan_la_CoutTab(%rip), %xmm4 - movsd %xmm5, -40(%rsp) - movsd -48(%rsp), %xmm11 - movsd -40(%rsp), %xmm1 - addsd %xmm11, %xmm6 - movsd %xmm6, -48(%rsp) - movsd -48(%rsp), %xmm7 - subsd %xmm7, %xmm8 - movsd %xmm8, -40(%rsp) - movsd -48(%rsp), %xmm10 - movsd -40(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -32(%rsp) - movsd -40(%rsp), %xmm12 - movsd 1928+__datan_la_CoutTab(%rip), %xmm10 - addsd %xmm11, %xmm12 - movsd %xmm12, -40(%rsp) - movsd -32(%rsp), %xmm13 - movsd 1904+__datan_la_CoutTab(%rip), %xmm11 - subsd %xmm13, %xmm14 - movsd %xmm14, -32(%rsp) - movsd -40(%rsp), %xmm0 - movsd -32(%rsp), %xmm15 - addsd %xmm15, %xmm0 - movsd %xmm0, -32(%rsp) - movsd -48(%rsp), %xmm9 - mulsd %xmm9, %xmm4 - movsd -32(%rsp), %xmm0 - movsd %xmm4, -48(%rsp) - addsd %xmm1, %xmm0 - movsd -48(%rsp), %xmm5 - subsd %xmm9, %xmm5 - movsd %xmm5, -40(%rsp) - movsd -48(%rsp), %xmm7 - movsd -40(%rsp), %xmm6 - subsd %xmm6, %xmm7 - movsd 1904+__datan_la_CoutTab(%rip), %xmm6 - movsd %xmm7, -48(%rsp) - movsd -48(%rsp), %xmm8 - subsd %xmm8, %xmm9 - movsd %xmm9, -40(%rsp) - movsd -48(%rsp), %xmm4 - divsd %xmm4, %xmm11 - mulsd %xmm11, %xmm10 - movsd -40(%rsp), %xmm5 - movsd %xmm10, -40(%rsp) - addsd %xmm0, %xmm5 - movsd -40(%rsp), %xmm12 - subsd %xmm11, %xmm12 - movsd %xmm12, -32(%rsp) - movsd -40(%rsp), %xmm10 - movsd -32(%rsp), %xmm13 - subsd %xmm13, %xmm10 - movsd %xmm10, -32(%rsp) - movsd -32(%rsp), %xmm14 - mulsd %xmm14, %xmm4 - movsd -32(%rsp), %xmm15 - subsd %xmm4, %xmm6 - mulsd %xmm15, %xmm5 - movsd %xmm5, -40(%rsp) - movsd -40(%rsp), %xmm1 - subsd %xmm1, %xmm6 - movsd %xmm6, -40(%rsp) - movsd -40(%rsp), %xmm4 - movsd -32(%rsp), %xmm5 - movsd -40(%rsp), %xmm0 - movaps %xmm5, %xmm7 - movsd -32(%rsp), %xmm1 - mulsd %xmm3, %xmm5 - addsd 1904+__datan_la_CoutTab(%rip), %xmm4 - mulsd %xmm2, %xmm7 - mulsd %xmm0, %xmm4 - mulsd %xmm1, %xmm4 - mulsd %xmm4, %xmm3 - mulsd %xmm4, %xmm2 - addsd %xmm3, %xmm5 - movsd 1872+__datan_la_CoutTab(%rip), %xmm6 - addsd %xmm2, %xmm5 - movsd %xmm5, -48(%rsp) - movaps %xmm7, %xmm2 - movsd -48(%rsp), %xmm4 - addsd %xmm4, %xmm2 - movsd %xmm2, -48(%rsp) - movsd -48(%rsp), %xmm3 - movsd (%rcx,%r8,8), %xmm2 - subsd %xmm3, %xmm7 - addsd %xmm4, %xmm7 - movsd %xmm7, -40(%rsp) - movsd -48(%rsp), %xmm3 - movaps %xmm3, %xmm5 - movaps %xmm3, %xmm0 - mulsd %xmm3, %xmm5 - addsd %xmm2, %xmm0 - mulsd %xmm5, %xmm6 - movsd -40(%rsp), %xmm10 - movsd %xmm0, -48(%rsp) - movsd -48(%rsp), %xmm1 - addsd 1864+__datan_la_CoutTab(%rip), %xmm6 - subsd %xmm1, %xmm2 - mulsd %xmm5, %xmm6 - addsd %xmm3, %xmm2 - addsd 1856+__datan_la_CoutTab(%rip), %xmm6 - mulsd %xmm5, %xmm6 - movsd %xmm2, -40(%rsp) - movsd -48(%rsp), %xmm9 - movsd -40(%rsp), %xmm8 - addsd 1848+__datan_la_CoutTab(%rip), %xmm6 - mulsd %xmm5, %xmm6 - addsd 1840+__datan_la_CoutTab(%rip), %xmm6 - mulsd %xmm5, %xmm6 - addsd 1832+__datan_la_CoutTab(%rip), %xmm6 - mulsd %xmm5, %xmm6 - addsd 1824+__datan_la_CoutTab(%rip), %xmm6 - mulsd %xmm5, %xmm6 - mulsd %xmm3, %xmm6 - addsd %xmm6, %xmm10 - addsd 8(%rcx,%r8,8), %xmm10 - addsd %xmm8, %xmm10 - addsd %xmm9, %xmm10 - movsd %xmm10, -24(%rsp) - movb -17(%rsp), %r9b - andb $127, %r9b - orb %al, %r9b - movb %r9b, -17(%rsp) - movq -24(%rsp), %rax - movq %rax, (%rsi) - jmp .LBL_2_11 - -.LBL_2_5: - - movsd 1912+__datan_la_CoutTab(%rip), %xmm0 - shlb $7, %al - addsd 1920+__datan_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %dl - andb $127, %dl - orb %al, %dl - movb %dl, -17(%rsp) - movq -24(%rsp), %rax - movq %rax, (%rsi) - jmp .LBL_2_11 - -.LBL_2_6: - - comisd 1880+__datan_la_CoutTab(%rip), %xmm0 - jb .LBL_2_8 - - - movaps %xmm0, %xmm1 - mulsd %xmm0, %xmm1 - shlb $7, %al - movsd 1872+__datan_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1864+__datan_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1856+__datan_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1848+__datan_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1840+__datan_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1832+__datan_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1824+__datan_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - mulsd %xmm0, %xmm2 - addsd %xmm0, %xmm2 - movsd %xmm2, -24(%rsp) - movb -17(%rsp), %dl - andb $127, %dl - orb %al, %dl - movb %dl, -17(%rsp) - movq -24(%rsp), %rax - movq %rax, (%rsi) - jmp .LBL_2_11 - -.LBL_2_8: - - movzwl -10(%rsp), %edx - testl $32752, %edx - je .LBL_2_10 - - - movsd 1904+__datan_la_CoutTab(%rip), %xmm1 - shlb $7, %al - addsd %xmm0, %xmm1 - movsd %xmm1, -48(%rsp) - movsd -48(%rsp), %xmm0 - mulsd -16(%rsp), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %dl - andb $127, %dl - orb %al, %dl - movb %dl, -17(%rsp) - movq -24(%rsp), %rax - movq %rax, (%rsi) - jmp .LBL_2_11 - -.LBL_2_10: - - mulsd %xmm0, %xmm0 - shlb $7, %al - movsd %xmm0, -48(%rsp) - movsd -48(%rsp), %xmm0 - addsd -16(%rsp), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %dl - andb $127, %dl - orb %al, %dl - movb %dl, -17(%rsp) - movq -24(%rsp), %rax - movq %rax, (%rsi) - -.LBL_2_11: - - xorl %eax, %eax - ret - -.LBL_2_12: - - testl $1048575, 4(%rdi) - jne .LBL_2_15 - - - cmpl $0, (%rdi) - jne .LBL_2_15 - - - movsd 1912+__datan_la_CoutTab(%rip), %xmm0 - movb 7(%rdi), %al - andb $-128, %al - addsd 1920+__datan_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -24(%rsp) - movb -17(%rsp), %dl - andb $127, %dl - orb %al, %dl - movb %dl, -17(%rsp) - movq -24(%rsp), %rcx - movq %rcx, (%rsi) - jmp .LBL_2_11 - -.LBL_2_15: - - movsd (%rdi), %xmm0 - addsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - jmp .LBL_2_11 - .align 16,0x90 - - .cfi_endproc - - .type __svml_datan_cout_rare_internal,@function - .size __svml_datan_cout_rare_internal,.-__svml_datan_cout_rare_internal -..LN__svml_datan_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_datan_data_internal_avx512: - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 1125646336 - .long 0 - .long 1125646336 - .long 0 - .long 1125646336 - .long 0 - .long 1125646336 - .long 0 - .long 1125646336 - .long 0 - .long 1125646336 - .long 0 - .long 1125646336 - .long 0 - .long 1125646336 - .long 0 - .long 1075806208 - .long 0 - .long 1075806208 - .long 0 - .long 1075806208 - .long 0 - .long 1075806208 - .long 0 - .long 1075806208 - .long 0 - .long 1075806208 - .long 0 - .long 1075806208 - .long 0 - .long 1075806208 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1206910976 - .long 0 - .long 1206910976 - .long 0 - .long 1206910976 - .long 0 - .long 1206910976 - .long 0 - .long 1206910976 - .long 0 - .long 1206910976 - .long 0 - .long 1206910976 - .long 0 - .long 1206910976 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4180443357 - .long 1070553973 - .long 90291023 - .long 1071492199 - .long 2737217249 - .long 1071945615 - .long 1413754136 - .long 1072243195 - .long 1468297118 - .long 1072475260 - .long 3531732635 - .long 1072657163 - .long 744202399 - .long 1072747407 - .long 2464923204 - .long 1072805601 - .long 1436891685 - .long 1072853231 - .long 2037009832 - .long 1072892781 - .long 1826698067 - .long 1072926058 - .long 1803191648 - .long 1072954391 - .long 2205372832 - .long 1072978772 - .long 4234512805 - .long 1072999952 - .long 3932628503 - .long 1073018509 - .long 2501811453 - .long 1073034892 - .long 866379431 - .long 1073049455 - .long 1376865888 - .long 1073062480 - .long 3290094269 - .long 1073074195 - .long 354764887 - .long 1073084787 - .long 3332975497 - .long 1073094406 - .long 1141460092 - .long 1073103181 - .long 745761286 - .long 1073111216 - .long 1673304509 - .long 1073118600 - .long 983388243 - .long 1073125409 - .long 3895509104 - .long 1073131706 - .long 2128523669 - .long 1073137548 - .long 2075485693 - .long 1073142981 - .long 121855980 - .long 1073148047 - .long 4181733783 - .long 1073152780 - .long 2887813284 - .long 1073157214 - .long 0 - .long 0 - .long 1022865341 - .long 1013492590 - .long 573531618 - .long 1014639487 - .long 2280825944 - .long 1014120858 - .long 856972295 - .long 1015129638 - .long 986810987 - .long 1015077601 - .long 2062601149 - .long 1013974920 - .long 589036912 - .long 3164328156 - .long 1787331214 - .long 1016798022 - .long 2942272763 - .long 3164235441 - .long 2956702105 - .long 1016472908 - .long 3903328092 - .long 3162582135 - .long 3175026820 - .long 3158589859 - .long 787328196 - .long 1014621351 - .long 2317874517 - .long 3163795518 - .long 4071621134 - .long 1016673529 - .long 2492111345 - .long 3164172103 - .long 3606178875 - .long 3162371821 - .long 3365790232 - .long 1014547152 - .long 2710887773 - .long 1017086651 - .long 2755350986 - .long 3162706257 - .long 198095269 - .long 3162802133 - .long 2791076759 - .long 3164364640 - .long 4214434319 - .long 3162164074 - .long 773754012 - .long 3164190653 - .long 139561443 - .long 3164313657 - .long 2197796619 - .long 3164066219 - .long 3592486882 - .long 1016669082 - .long 1148791015 - .long 3163724934 - .long 386789398 - .long 3163117479 - .long 2518816264 - .long 3162291736 - .long 2545101323 - .long 3164592727 - .long 16 - .long 1125646336 - .long 16 - .long 1125646336 - .long 16 - .long 1125646336 - .long 16 - .long 1125646336 - .long 16 - .long 1125646336 - .long 16 - .long 1125646336 - .long 16 - .long 1125646336 - .long 16 - .long 1125646336 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 856972295 - .long 1016178214 - .long 856972295 - .long 1016178214 - .long 856972295 - .long 1016178214 - .long 856972295 - .long 1016178214 - .long 856972295 - .long 1016178214 - .long 856972295 - .long 1016178214 - .long 856972295 - .long 1016178214 - .long 856972295 - .long 1016178214 - .long 4123328151 - .long 1068689849 - .long 4123328151 - .long 1068689849 - .long 4123328151 - .long 1068689849 - .long 4123328151 - .long 1068689849 - .long 4123328151 - .long 1068689849 - .long 4123328151 - .long 1068689849 - .long 4123328151 - .long 1068689849 - .long 4123328151 - .long 1068689849 - .long 3295121612 - .long 3216458327 - .long 3295121612 - .long 3216458327 - .long 3295121612 - .long 3216458327 - .long 3295121612 - .long 3216458327 - .long 3295121612 - .long 3216458327 - .long 3295121612 - .long 3216458327 - .long 3295121612 - .long 3216458327 - .long 3295121612 - .long 3216458327 - .long 4026078880 - .long 1069314495 - .long 4026078880 - .long 1069314495 - .long 4026078880 - .long 1069314495 - .long 4026078880 - .long 1069314495 - .long 4026078880 - .long 1069314495 - .long 4026078880 - .long 1069314495 - .long 4026078880 - .long 1069314495 - .long 4026078880 - .long 1069314495 - .long 2398029018 - .long 3217180964 - .long 2398029018 - .long 3217180964 - .long 2398029018 - .long 3217180964 - .long 2398029018 - .long 3217180964 - .long 2398029018 - .long 3217180964 - .long 2398029018 - .long 3217180964 - .long 2398029018 - .long 3217180964 - .long 2398029018 - .long 3217180964 - .long 2576905246 - .long 1070176665 - .long 2576905246 - .long 1070176665 - .long 2576905246 - .long 1070176665 - .long 2576905246 - .long 1070176665 - .long 2576905246 - .long 1070176665 - .long 2576905246 - .long 1070176665 - .long 2576905246 - .long 1070176665 - .long 2576905246 - .long 1070176665 - .long 1431655757 - .long 3218429269 - .long 1431655757 - .long 3218429269 - .long 1431655757 - .long 3218429269 - .long 1431655757 - .long 3218429269 - .long 1431655757 - .long 3218429269 - .long 1431655757 - .long 3218429269 - .long 1431655757 - .long 3218429269 - .long 1431655757 - .long 3218429269 - .type __svml_datan_data_internal_avx512,@object - .size __svml_datan_data_internal_avx512,1536 - .align 32 -__datan_la_CoutTab: - .long 3892314112 - .long 1069799150 - .long 2332892550 - .long 1039715405 - .long 1342177280 - .long 1070305495 - .long 270726690 - .long 1041535749 - .long 939524096 - .long 1070817911 - .long 2253973841 - .long 3188654726 - .long 3221225472 - .long 1071277294 - .long 3853927037 - .long 1043226911 - .long 2818572288 - .long 1071767563 - .long 2677759107 - .long 1044314101 - .long 3355443200 - .long 1072103591 - .long 1636578514 - .long 3191094734 - .long 1476395008 - .long 1072475260 - .long 1864703685 - .long 3188646936 - .long 805306368 - .long 1072747407 - .long 192551812 - .long 3192726267 - .long 2013265920 - .long 1072892781 - .long 2240369452 - .long 1043768538 - .long 0 - .long 1072999953 - .long 3665168337 - .long 3192705970 - .long 402653184 - .long 1073084787 - .long 1227953434 - .long 3192313277 - .long 2013265920 - .long 1073142981 - .long 3853283127 - .long 1045277487 - .long 805306368 - .long 1073187261 - .long 1676192264 - .long 3192868861 - .long 134217728 - .long 1073217000 - .long 4290763938 - .long 1042034855 - .long 671088640 - .long 1073239386 - .long 994303084 - .long 3189643768 - .long 402653184 - .long 1073254338 - .long 1878067156 - .long 1042652475 - .long 1610612736 - .long 1073265562 - .long 670314820 - .long 1045138554 - .long 3221225472 - .long 1073273048 - .long 691126919 - .long 3189987794 - .long 3489660928 - .long 1073278664 - .long 1618990832 - .long 3188194509 - .long 1207959552 - .long 1073282409 - .long 2198872939 - .long 1044806069 - .long 3489660928 - .long 1073285217 - .long 2633982383 - .long 1042307894 - .long 939524096 - .long 1073287090 - .long 1059367786 - .long 3189114230 - .long 2281701376 - .long 1073288494 - .long 3158525533 - .long 1044484961 - .long 3221225472 - .long 1073289430 - .long 286581777 - .long 1044893263 - .long 4026531840 - .long 1073290132 - .long 2000245215 - .long 3191647611 - .long 134217728 - .long 1073290601 - .long 4205071590 - .long 1045035927 - .long 536870912 - .long 1073290952 - .long 2334392229 - .long 1043447393 - .long 805306368 - .long 1073291186 - .long 2281458177 - .long 3188885569 - .long 3087007744 - .long 1073291361 - .long 691611507 - .long 1044733832 - .long 3221225472 - .long 1073291478 - .long 1816229550 - .long 1044363390 - .long 2281701376 - .long 1073291566 - .long 1993843750 - .long 3189837440 - .long 134217728 - .long 1073291625 - .long 3654754496 - .long 1044970837 - .long 4026531840 - .long 1073291668 - .long 3224300229 - .long 3191935390 - .long 805306368 - .long 1073291698 - .long 2988777976 - .long 3188950659 - .long 536870912 - .long 1073291720 - .long 1030371341 - .long 1043402665 - .long 3221225472 - .long 1073291734 - .long 1524463765 - .long 1044361356 - .long 3087007744 - .long 1073291745 - .long 2754295320 - .long 1044731036 - .long 134217728 - .long 1073291753 - .long 3099629057 - .long 1044970710 - .long 2281701376 - .long 1073291758 - .long 962914160 - .long 3189838838 - .long 805306368 - .long 1073291762 - .long 3543908206 - .long 3188950786 - .long 4026531840 - .long 1073291764 - .long 1849909620 - .long 3191935434 - .long 3221225472 - .long 1073291766 - .long 1641333636 - .long 1044361352 - .long 536870912 - .long 1073291768 - .long 1373968792 - .long 1043402654 - .long 134217728 - .long 1073291769 - .long 2033191599 - .long 1044970710 - .long 3087007744 - .long 1073291769 - .long 4117947437 - .long 1044731035 - .long 805306368 - .long 1073291770 - .long 315378368 - .long 3188950787 - .long 2281701376 - .long 1073291770 - .long 2428571750 - .long 3189838838 - .long 3221225472 - .long 1073291770 - .long 1608007466 - .long 1044361352 - .long 4026531840 - .long 1073291770 - .long 1895711420 - .long 3191935434 - .long 134217728 - .long 1073291771 - .long 2031108713 - .long 1044970710 - .long 536870912 - .long 1073291771 - .long 1362518342 - .long 1043402654 - .long 805306368 - .long 1073291771 - .long 317461253 - .long 3188950787 - .long 939524096 - .long 1073291771 - .long 4117231784 - .long 1044731035 - .long 1073741824 - .long 1073291771 - .long 1607942376 - .long 1044361352 - .long 1207959552 - .long 1073291771 - .long 2428929577 - .long 3189838838 - .long 1207959552 - .long 1073291771 - .long 2031104645 - .long 1044970710 - .long 1342177280 - .long 1073291771 - .long 1895722602 - .long 3191935434 - .long 1342177280 - .long 1073291771 - .long 317465322 - .long 3188950787 - .long 1342177280 - .long 1073291771 - .long 1362515546 - .long 1043402654 - .long 1342177280 - .long 1073291771 - .long 1607942248 - .long 1044361352 - .long 1342177280 - .long 1073291771 - .long 4117231610 - .long 1044731035 - .long 1342177280 - .long 1073291771 - .long 2031104637 - .long 1044970710 - .long 1342177280 - .long 1073291771 - .long 1540251232 - .long 1045150466 - .long 1342177280 - .long 1073291771 - .long 2644671394 - .long 1045270303 - .long 1342177280 - .long 1073291771 - .long 2399244691 - .long 1045360181 - .long 1342177280 - .long 1073291771 - .long 803971124 - .long 1045420100 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192879152 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192849193 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192826724 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192811744 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192800509 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192793019 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192787402 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192783657 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192780848 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192778976 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192777572 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192776635 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192775933 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192775465 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192775114 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774880 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774704 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774587 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774500 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774441 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774397 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774368 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774346 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774331 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774320 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774313 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774308 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774304 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774301 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774299 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774298 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774297 - .long 1476395008 - .long 1073291771 - .long 3613709523 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 177735686 - .long 3192774296 - .long 1476395008 - .long 1073291771 - .long 3490996172 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 2754716064 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 2263862659 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1895722605 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1650295902 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1466225875 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1343512524 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1251477510 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1190120835 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1144103328 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1113424990 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1090416237 - .long 3192774295 - .long 1476395008 - .long 1073291771 - .long 1075077068 - .long 3192774295 - .long 1431655765 - .long 3218429269 - .long 2576978363 - .long 1070176665 - .long 2453154343 - .long 3217180964 - .long 4189149139 - .long 1069314502 - .long 1775019125 - .long 3216459198 - .long 273199057 - .long 1068739452 - .long 874748308 - .long 3215993277 - .long 0 - .long 1017118720 - .long 0 - .long 1069547520 - .long 0 - .long 1129316352 - .long 0 - .long 1072693248 - .long 1413754136 - .long 1073291771 - .long 856972295 - .long 1016178214 - .long 33554432 - .long 1101004800 - .type __datan_la_CoutTab,@object - .size __datan_la_CoutTab,1936 - .align 8 -.L_2il0floatpacket.14: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.14,@object - .size .L_2il0floatpacket.14,8 diff --git a/numpy/core/src/umath/svml/svml_z0_atan_s_la.s b/numpy/core/src/umath/svml/svml_z0_atan_s_la.s deleted file mode 100644 index c1386beb56f0..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_atan_s_la.s +++ /dev/null @@ -1,355 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x) - * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x) - * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x) - * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x) - * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x - * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16. - * - */ - - - .text -.L_2__routine_start___svml_atanf16_z0_0: - - .align 16,0x90 - .globl __svml_atanf16 - -__svml_atanf16: - - - .cfi_startproc -..L2: - - vandps __svml_satan_data_internal_avx512(%rip), %zmm0, %zmm7 - vmovups 128+__svml_satan_data_internal_avx512(%rip), %zmm3 - vmovups 256+__svml_satan_data_internal_avx512(%rip), %zmm8 - -/* round to 2 bits after binary point */ - vreduceps $40, {sae}, %zmm7, %zmm5 - -/* saturate X range */ - vmovups 320+__svml_satan_data_internal_avx512(%rip), %zmm6 - vmovups 64+__svml_satan_data_internal_avx512(%rip), %zmm2 - vcmpps $29, {sae}, %zmm3, %zmm7, %k1 - -/* table lookup sequence */ - vmovups 448+__svml_satan_data_internal_avx512(%rip), %zmm3 - vsubps {rn-sae}, %zmm5, %zmm7, %zmm4 - vaddps {rn-sae}, %zmm2, %zmm7, %zmm1 - vxorps %zmm0, %zmm7, %zmm0 - vfmadd231ps {rn-sae}, %zmm7, %zmm4, %zmm8 - vmovups 896+__svml_satan_data_internal_avx512(%rip), %zmm4 - -/* if|X|>=MaxThreshold, set DiffX=-1 */ - vblendmps 192+__svml_satan_data_internal_avx512(%rip), %zmm5, %zmm9{%k1} - vmovups 960+__svml_satan_data_internal_avx512(%rip), %zmm5 - -/* if|X|>=MaxThreshold, set Y=X */ - vminps {sae}, %zmm7, %zmm6, %zmm8{%k1} - -/* R+Rl = DiffX/Y */ - vgetmantps $0, {sae}, %zmm9, %zmm12 - vgetexpps {sae}, %zmm9, %zmm10 - vpermt2ps 512+__svml_satan_data_internal_avx512(%rip), %zmm1, %zmm3 - vgetmantps $0, {sae}, %zmm8, %zmm15 - vgetexpps {sae}, %zmm8, %zmm11 - vmovups 832+__svml_satan_data_internal_avx512(%rip), %zmm1 - -/* set table value to Pi/2 for large X */ - vblendmps 704+__svml_satan_data_internal_avx512(%rip), %zmm3, %zmm9{%k1} - vrcp14ps %zmm15, %zmm13 - vsubps {rn-sae}, %zmm11, %zmm10, %zmm2 - vmulps {rn-sae}, %zmm13, %zmm12, %zmm14 - vfnmadd213ps {rn-sae}, %zmm12, %zmm14, %zmm15 - vfmadd213ps {rn-sae}, %zmm14, %zmm13, %zmm15 - vscalefps {rn-sae}, %zmm2, %zmm15, %zmm7 - -/* polynomial evaluation */ - vmulps {rn-sae}, %zmm7, %zmm7, %zmm8 - vmulps {rn-sae}, %zmm7, %zmm8, %zmm6 - vfmadd231ps {rn-sae}, %zmm8, %zmm1, %zmm4 - vfmadd213ps {rn-sae}, %zmm5, %zmm4, %zmm8 - vfmadd213ps {rn-sae}, %zmm7, %zmm6, %zmm8 - vaddps {rn-sae}, %zmm9, %zmm8, %zmm10 - vxorps %zmm0, %zmm10, %zmm0 - -/* no invcbrt in libm, so taking it out here */ - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_atanf16,@function - .size __svml_atanf16,.-__svml_atanf16 -..LN__svml_atanf16.0: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_satan_data_internal_avx512: - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1241513984 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 1089994752 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 1333788672 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1048239024 - .long 1055744824 - .long 1059372157 - .long 1061752795 - .long 1063609315 - .long 1065064543 - .long 1065786489 - .long 1066252045 - .long 1066633083 - .long 1066949484 - .long 1067215699 - .long 1067442363 - .long 1067637412 - .long 1067806856 - .long 1067955311 - .long 1068086373 - .long 1068202874 - .long 1068307075 - .long 1068400798 - .long 1068485529 - .long 1068562486 - .long 1068632682 - .long 1068696961 - .long 1068756035 - .long 1068810506 - .long 1068860887 - .long 1068907620 - .long 1068951084 - .long 1068991608 - .long 1069029480 - .long 1069064949 - .long 0 - .long 2975494116 - .long 833369962 - .long 835299256 - .long 2998648110 - .long 2995239174 - .long 3000492182 - .long 860207626 - .long 3008447516 - .long 3005590622 - .long 3000153675 - .long 860754741 - .long 859285590 - .long 844944488 - .long 2993069463 - .long 858157665 - .long 3006142000 - .long 3007693206 - .long 3009342234 - .long 847469400 - .long 3006114683 - .long 852829553 - .long 847325583 - .long 860305056 - .long 846145135 - .long 2997638646 - .long 855837703 - .long 2979047222 - .long 2995344192 - .long 854092798 - .long 3000498637 - .long 859965578 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 3188697310 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 1045219554 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .long 3198855850 - .type __svml_satan_data_internal_avx512,@object - .size __svml_satan_data_internal_avx512,1024 diff --git a/numpy/core/src/umath/svml/svml_z0_atanh_d_la.s b/numpy/core/src/umath/svml/svml_z0_atanh_d_la.s deleted file mode 100644 index fbcd15015115..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_atanh_d_la.s +++ /dev/null @@ -1,656 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * - * * Compute 0.5*[log(1+x)-log(1-x)], using small table - * * lookups that map to AVX3 permute instructions - * * - * - */ - - - .text -.L_2__routine_start___svml_atanh8_z0_0: - - .align 16,0x90 - .globl __svml_atanh8 - -__svml_atanh8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 256+__svml_datanh_data_internal_avx512(%rip), %zmm15 - -/* round reciprocals to 1+4b mantissas */ - vmovups 384+__svml_datanh_data_internal_avx512(%rip), %zmm6 - vmovups 448+__svml_datanh_data_internal_avx512(%rip), %zmm9 - vmovaps %zmm0, %zmm2 - vandpd 320+__svml_datanh_data_internal_avx512(%rip), %zmm2, %zmm13 - -/* 1+y */ - vaddpd {rn-sae}, %zmm15, %zmm13, %zmm0 - -/* 1-y */ - vsubpd {rn-sae}, %zmm13, %zmm15, %zmm4 - vxorpd %zmm13, %zmm2, %zmm1 - -/* Yp_high */ - vsubpd {rn-sae}, %zmm15, %zmm0, %zmm7 - -/* -Ym_high */ - vsubpd {rn-sae}, %zmm15, %zmm4, %zmm12 - -/* RcpP ~ 1/Yp */ - vrcp14pd %zmm0, %zmm3 - -/* RcpM ~ 1/Ym */ - vrcp14pd %zmm4, %zmm5 - -/* input outside (-1, 1) ? */ - vcmppd $21, {sae}, %zmm15, %zmm13, %k0 - vpaddq %zmm6, %zmm3, %zmm11 - vpaddq %zmm6, %zmm5, %zmm10 - -/* Yp_low */ - vsubpd {rn-sae}, %zmm7, %zmm13, %zmm8 - vandpd %zmm9, %zmm11, %zmm14 - vandpd %zmm9, %zmm10, %zmm3 - -/* Ym_low */ - vaddpd {rn-sae}, %zmm12, %zmm13, %zmm12 - -/* Reduced argument: Rp = (RcpP*Yp - 1)+RcpP*Yp_low */ - vfmsub213pd {rn-sae}, %zmm15, %zmm14, %zmm0 - -/* Reduced argument: Rm = (RcpM*Ym - 1)+RcpM*Ym_low */ - vfmsub231pd {rn-sae}, %zmm3, %zmm4, %zmm15 - -/* exponents */ - vgetexppd {sae}, %zmm14, %zmm5 - vgetexppd {sae}, %zmm3, %zmm4 - -/* Table lookups */ - vmovups __svml_datanh_data_internal_avx512(%rip), %zmm9 - vmovups 64+__svml_datanh_data_internal_avx512(%rip), %zmm13 - vmovups 128+__svml_datanh_data_internal_avx512(%rip), %zmm7 - vfmadd231pd {rn-sae}, %zmm14, %zmm8, %zmm0 - vfnmadd231pd {rn-sae}, %zmm3, %zmm12, %zmm15 - -/* Prepare table index */ - vpsrlq $48, %zmm14, %zmm11 - vpsrlq $48, %zmm3, %zmm8 - vmovups 192+__svml_datanh_data_internal_avx512(%rip), %zmm14 - -/* polynomials */ - vmovups 512+__svml_datanh_data_internal_avx512(%rip), %zmm3 - -/* Km-Kp */ - vsubpd {rn-sae}, %zmm5, %zmm4, %zmm5 - vmovups 576+__svml_datanh_data_internal_avx512(%rip), %zmm4 - kmovw %k0, %edx - vmovaps %zmm11, %zmm10 - vmovaps %zmm4, %zmm6 - vpermi2pd %zmm13, %zmm9, %zmm10 - vpermi2pd %zmm14, %zmm7, %zmm11 - vpermt2pd %zmm13, %zmm8, %zmm9 - vpermt2pd %zmm14, %zmm8, %zmm7 - vmovups 640+__svml_datanh_data_internal_avx512(%rip), %zmm8 - vfmadd231pd {rn-sae}, %zmm0, %zmm3, %zmm6 - vfmadd231pd {rn-sae}, %zmm15, %zmm3, %zmm4 - vmovups 832+__svml_datanh_data_internal_avx512(%rip), %zmm13 - vmovups 896+__svml_datanh_data_internal_avx512(%rip), %zmm14 - vfmadd213pd {rn-sae}, %zmm8, %zmm0, %zmm6 - vfmadd213pd {rn-sae}, %zmm8, %zmm15, %zmm4 - vmovups 1024+__svml_datanh_data_internal_avx512(%rip), %zmm8 - vsubpd {rn-sae}, %zmm11, %zmm7, %zmm12 - -/* table values */ - vsubpd {rn-sae}, %zmm10, %zmm9, %zmm3 - vmovups 704+__svml_datanh_data_internal_avx512(%rip), %zmm7 - vmovups 768+__svml_datanh_data_internal_avx512(%rip), %zmm9 - -/* K*L2H + Th */ - vmovups 1152+__svml_datanh_data_internal_avx512(%rip), %zmm10 - -/* K*L2L + Tl */ - vmovups 1216+__svml_datanh_data_internal_avx512(%rip), %zmm11 - vfmadd213pd {rn-sae}, %zmm7, %zmm0, %zmm6 - vfmadd213pd {rn-sae}, %zmm7, %zmm15, %zmm4 - vmovups 960+__svml_datanh_data_internal_avx512(%rip), %zmm7 - vfmadd231pd {rn-sae}, %zmm5, %zmm10, %zmm3 - vfmadd213pd {rn-sae}, %zmm12, %zmm11, %zmm5 - vfmadd213pd {rn-sae}, %zmm9, %zmm0, %zmm6 - vfmadd213pd {rn-sae}, %zmm9, %zmm15, %zmm4 - vfmadd213pd {rn-sae}, %zmm13, %zmm0, %zmm6 - vfmadd213pd {rn-sae}, %zmm13, %zmm15, %zmm4 - vfmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm6 - vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm4 - vfmadd213pd {rn-sae}, %zmm7, %zmm0, %zmm6 - vfmadd213pd {rn-sae}, %zmm7, %zmm15, %zmm4 - vfmadd213pd {rn-sae}, %zmm8, %zmm0, %zmm6 - vfmadd213pd {rn-sae}, %zmm8, %zmm15, %zmm4 - -/* (K*L2L + Tl) + Rp*PolyP */ - vfmadd213pd {rn-sae}, %zmm5, %zmm0, %zmm6 - vorpd 1088+__svml_datanh_data_internal_avx512(%rip), %zmm1, %zmm0 - -/* (K*L2L + Tl) + Rp*PolyP -Rm*PolyM */ - vfnmadd213pd {rn-sae}, %zmm6, %zmm15, %zmm4 - vaddpd {rn-sae}, %zmm4, %zmm3, %zmm1 - vmulpd {rn-sae}, %zmm0, %zmm1, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm2, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_datanh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_atanh8,@function - .size __svml_atanh8,.-__svml_atanh8 -..LN__svml_atanh8.0: - -.L_2__routine_start___svml_datanh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_datanh_cout_rare_internal: - - - .cfi_startproc -..L53: - - movzwl 6(%rdi), %eax - andl $32752, %eax - movsd (%rdi), %xmm0 - movb 7(%rdi), %dl - andb $127, %dl - movsd %xmm0, -8(%rsp) - cmpl $32752, %eax - je .LBL_2_6 - -.LBL_2_2: - - cmpl $0, -8(%rsp) - jne .LBL_2_5 - - - movb %dl, -1(%rsp) - cmpl $1072693248, -4(%rsp) - jne .LBL_2_5 - - - divsd 8+__datanh_la_CoutTab(%rip), %xmm0 - movsd %xmm0, (%rsi) - movl $2, %eax - ret - -.LBL_2_5: - - movsd 8+__datanh_la_CoutTab(%rip), %xmm0 - movl $1, %eax - mulsd 16+__datanh_la_CoutTab(%rip), %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_6: - - testl $1048575, 4(%rdi) - jne .LBL_2_8 - - - cmpl $0, (%rdi) - je .LBL_2_2 - -.LBL_2_8: - - mulsd %xmm0, %xmm0 - xorl %eax, %eax - movsd %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_datanh_cout_rare_internal,@function - .size __svml_datanh_cout_rare_internal,.-__svml_datanh_cout_rare_internal -..LN__svml_datanh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_datanh_data_internal_avx512: - .long 0 - .long 0 - .long 3222274048 - .long 1068436016 - .long 1848246272 - .long 1069426439 - .long 1890058240 - .long 1069940528 - .long 3348824064 - .long 1070370807 - .long 2880143360 - .long 1070688092 - .long 3256647680 - .long 1070883211 - .long 4139515904 - .long 1071069655 - .long 3971973120 - .long 1071248163 - .long 3348791296 - .long 1071419383 - .long 1605304320 - .long 1071583887 - .long 3827646464 - .long 1071693426 - .long 1584414720 - .long 1071769695 - .long 860815360 - .long 1071843287 - .long 3896934400 - .long 1071914383 - .long 643547136 - .long 1071983149 - .long 0 - .long 0 - .long 399283991 - .long 1030105702 - .long 1028718588 - .long 1030642877 - .long 3808918910 - .long 3177909005 - .long 4136237123 - .long 3177805716 - .long 3462654649 - .long 1029900033 - .long 2051171366 - .long 3177225921 - .long 2396640771 - .long 3177708721 - .long 3062724207 - .long 1029196786 - .long 634920691 - .long 1029317036 - .long 1913570380 - .long 1027322573 - .long 1734886604 - .long 3177545033 - .long 2335489660 - .long 1025116093 - .long 3046154741 - .long 1029750303 - .long 914782743 - .long 3176833847 - .long 3743595607 - .long 1028041657 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 32768 - .long 0 - .long 32768 - .long 0 - .long 32768 - .long 0 - .long 32768 - .long 0 - .long 32768 - .long 0 - .long 32768 - .long 0 - .long 32768 - .long 0 - .long 32768 - .long 0 - .long 4294901760 - .long 0 - .long 4294901760 - .long 0 - .long 4294901760 - .long 0 - .long 4294901760 - .long 0 - .long 4294901760 - .long 0 - .long 4294901760 - .long 0 - .long 4294901760 - .long 0 - .long 4294901760 - .long 1087603010 - .long 1069318621 - .long 1087603010 - .long 1069318621 - .long 1087603010 - .long 1069318621 - .long 1087603010 - .long 1069318621 - .long 1087603010 - .long 1069318621 - .long 1087603010 - .long 1069318621 - .long 1087603010 - .long 1069318621 - .long 1087603010 - .long 1069318621 - .long 3090058096 - .long 3217033020 - .long 3090058096 - .long 3217033020 - .long 3090058096 - .long 3217033020 - .long 3090058096 - .long 3217033020 - .long 3090058096 - .long 3217033020 - .long 3090058096 - .long 3217033020 - .long 3090058096 - .long 3217033020 - .long 3090058096 - .long 3217033020 - .long 2566904552 - .long 1069697314 - .long 2566904552 - .long 1069697314 - .long 2566904552 - .long 1069697314 - .long 2566904552 - .long 1069697314 - .long 2566904552 - .long 1069697314 - .long 2566904552 - .long 1069697314 - .long 2566904552 - .long 1069697314 - .long 2566904552 - .long 1069697314 - .long 4168213957 - .long 3217380691 - .long 4168213957 - .long 3217380691 - .long 4168213957 - .long 3217380691 - .long 4168213957 - .long 3217380691 - .long 4168213957 - .long 3217380691 - .long 4168213957 - .long 3217380691 - .long 4168213957 - .long 3217380691 - .long 4168213957 - .long 3217380691 - .long 2580363594 - .long 1070176665 - .long 2580363594 - .long 1070176665 - .long 2580363594 - .long 1070176665 - .long 2580363594 - .long 1070176665 - .long 2580363594 - .long 1070176665 - .long 2580363594 - .long 1070176665 - .long 2580363594 - .long 1070176665 - .long 2580363594 - .long 1070176665 - .long 797185 - .long 3218079744 - .long 797185 - .long 3218079744 - .long 797185 - .long 3218079744 - .long 797185 - .long 3218079744 - .long 797185 - .long 3218079744 - .long 797185 - .long 3218079744 - .long 797185 - .long 3218079744 - .long 797185 - .long 3218079744 - .long 1431655522 - .long 1070945621 - .long 1431655522 - .long 1070945621 - .long 1431655522 - .long 1070945621 - .long 1431655522 - .long 1070945621 - .long 1431655522 - .long 1070945621 - .long 1431655522 - .long 1070945621 - .long 1431655522 - .long 1070945621 - .long 1431655522 - .long 1070945621 - .long 4294967237 - .long 3219128319 - .long 4294967237 - .long 3219128319 - .long 4294967237 - .long 3219128319 - .long 4294967237 - .long 3219128319 - .long 4294967237 - .long 3219128319 - .long 4294967237 - .long 3219128319 - .long 4294967237 - .long 3219128319 - .long 4294967237 - .long 3219128319 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 3164471296 - .long 1031600026 - .long 3164471296 - .long 1031600026 - .long 3164471296 - .long 1031600026 - .long 3164471296 - .long 1031600026 - .long 3164471296 - .long 1031600026 - .long 3164471296 - .long 1031600026 - .long 3164471296 - .long 1031600026 - .long 3164471296 - .long 1031600026 - .type __svml_datanh_data_internal_avx512,@object - .size __svml_datanh_data_internal_avx512,1280 - .align 8 -__datanh_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 2146435072 - .long 0 - .long 4293918720 - .type __datanh_la_CoutTab,@object - .size __datanh_la_CoutTab,32 diff --git a/numpy/core/src/umath/svml/svml_z0_atanh_s_la.s b/numpy/core/src/umath/svml/svml_z0_atanh_s_la.s deleted file mode 100644 index 9177c0d955c4..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_atanh_s_la.s +++ /dev/null @@ -1,558 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * - * * Compute 0.5*[log(1+x)-log(1-x)], using small table - * * lookups that map to AVX3 permute instructions - * * - * - */ - - - .text -.L_2__routine_start___svml_atanhf16_z0_0: - - .align 16,0x90 - .globl __svml_atanhf16 - -__svml_atanhf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 256+__svml_satanh_data_internal_avx512(%rip), %zmm4 - -/* round reciprocals to 1+5b mantissas */ - vmovups 384+__svml_satanh_data_internal_avx512(%rip), %zmm14 - vmovups 448+__svml_satanh_data_internal_avx512(%rip), %zmm1 - vmovaps %zmm0, %zmm11 - vandps 320+__svml_satanh_data_internal_avx512(%rip), %zmm11, %zmm6 - -/* 1+y */ - vaddps {rn-sae}, %zmm4, %zmm6, %zmm9 - -/* 1-y */ - vsubps {rn-sae}, %zmm6, %zmm4, %zmm8 - vxorps %zmm6, %zmm11, %zmm10 - -/* Yp_high */ - vsubps {rn-sae}, %zmm4, %zmm9, %zmm2 - -/* -Ym_high */ - vsubps {rn-sae}, %zmm4, %zmm8, %zmm5 - -/* RcpP ~ 1/Yp */ - vrcp14ps %zmm9, %zmm12 - -/* RcpM ~ 1/Ym */ - vrcp14ps %zmm8, %zmm13 - -/* input outside (-1, 1) ? */ - vcmpps $21, {sae}, %zmm4, %zmm6, %k0 - vpaddd %zmm14, %zmm12, %zmm15 - vpaddd %zmm14, %zmm13, %zmm0 - -/* Yp_low */ - vsubps {rn-sae}, %zmm2, %zmm6, %zmm3 - vandps %zmm1, %zmm15, %zmm7 - vandps %zmm1, %zmm0, %zmm12 - -/* Ym_low */ - vaddps {rn-sae}, %zmm5, %zmm6, %zmm5 - -/* Reduced argument: Rp = (RcpP*Yp - 1)+RcpP*Yp_low */ - vfmsub213ps {rn-sae}, %zmm4, %zmm7, %zmm9 - -/* Reduced argument: Rm = (RcpM*Ym - 1)+RcpM*Ym_low */ - vfmsub231ps {rn-sae}, %zmm12, %zmm8, %zmm4 - vmovups 128+__svml_satanh_data_internal_avx512(%rip), %zmm8 - vmovups 192+__svml_satanh_data_internal_avx512(%rip), %zmm13 - -/* exponents */ - vgetexpps {sae}, %zmm7, %zmm15 - vfmadd231ps {rn-sae}, %zmm7, %zmm3, %zmm9 - -/* Table lookups */ - vmovups __svml_satanh_data_internal_avx512(%rip), %zmm6 - vgetexpps {sae}, %zmm12, %zmm14 - vfnmadd231ps {rn-sae}, %zmm12, %zmm5, %zmm4 - -/* Prepare table index */ - vpsrld $18, %zmm7, %zmm3 - vpsrld $18, %zmm12, %zmm2 - vmovups 64+__svml_satanh_data_internal_avx512(%rip), %zmm7 - vmovups 640+__svml_satanh_data_internal_avx512(%rip), %zmm12 - -/* Km-Kp */ - vsubps {rn-sae}, %zmm15, %zmm14, %zmm1 - kmovw %k0, %edx - vmovaps %zmm3, %zmm0 - vpermi2ps %zmm13, %zmm8, %zmm3 - vpermt2ps %zmm13, %zmm2, %zmm8 - vpermi2ps %zmm7, %zmm6, %zmm0 - vpermt2ps %zmm7, %zmm2, %zmm6 - vsubps {rn-sae}, %zmm3, %zmm8, %zmm5 - -/* K*L2H + Th */ - vmovups 832+__svml_satanh_data_internal_avx512(%rip), %zmm2 - -/* K*L2L + Tl */ - vmovups 896+__svml_satanh_data_internal_avx512(%rip), %zmm3 - -/* polynomials */ - vmovups 512+__svml_satanh_data_internal_avx512(%rip), %zmm7 - vmovups 704+__svml_satanh_data_internal_avx512(%rip), %zmm13 - -/* table values */ - vsubps {rn-sae}, %zmm0, %zmm6, %zmm0 - vfmadd231ps {rn-sae}, %zmm1, %zmm2, %zmm0 - vfmadd213ps {rn-sae}, %zmm5, %zmm3, %zmm1 - vmovups 576+__svml_satanh_data_internal_avx512(%rip), %zmm3 - vmovaps %zmm3, %zmm2 - vfmadd231ps {rn-sae}, %zmm9, %zmm7, %zmm2 - vfmadd231ps {rn-sae}, %zmm4, %zmm7, %zmm3 - vfmadd213ps {rn-sae}, %zmm12, %zmm9, %zmm2 - vfmadd213ps {rn-sae}, %zmm12, %zmm4, %zmm3 - vfmadd213ps {rn-sae}, %zmm13, %zmm9, %zmm2 - vfmadd213ps {rn-sae}, %zmm13, %zmm4, %zmm3 - -/* (K*L2L + Tl) + Rp*PolyP */ - vfmadd213ps {rn-sae}, %zmm1, %zmm9, %zmm2 - vorps 768+__svml_satanh_data_internal_avx512(%rip), %zmm10, %zmm9 - -/* (K*L2L + Tl) + Rp*PolyP -Rm*PolyM */ - vfnmadd213ps {rn-sae}, %zmm2, %zmm4, %zmm3 - vaddps {rn-sae}, %zmm3, %zmm0, %zmm4 - vmulps {rn-sae}, %zmm9, %zmm4, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm11, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_satanh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_atanhf16,@function - .size __svml_atanhf16,.-__svml_atanhf16 -..LN__svml_atanhf16.0: - -.L_2__routine_start___svml_satanh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_satanh_cout_rare_internal: - - - .cfi_startproc -..L53: - - movzwl 2(%rdi), %edx - movss (%rdi), %xmm1 - andl $32640, %edx - movb 3(%rdi), %al - andb $127, %al - movss %xmm1, -8(%rsp) - movb %al, -5(%rsp) - cmpl $32640, %edx - je .LBL_2_6 - - - cmpl $1065353216, -8(%rsp) - jne .LBL_2_4 - - - divss 4+__satanh_la__imlsAtanhTab(%rip), %xmm1 - movss %xmm1, (%rsi) - movl $2, %eax - ret - -.LBL_2_4: - - movss 8+__satanh_la__imlsAtanhTab(%rip), %xmm0 - movl $1, %eax - mulss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0 - movss %xmm0, (%rsi) - - - ret - -.LBL_2_6: - - cmpl $2139095040, -8(%rsp) - jne .LBL_2_8 - - - movss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0 - movl $1, %eax - mulss %xmm0, %xmm1 - movss %xmm1, (%rsi) - ret - -.LBL_2_8: - - mulss (%rdi), %xmm1 - xorl %eax, %eax - movss %xmm1, (%rsi) - - - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_satanh_cout_rare_internal,@function - .size __svml_satanh_cout_rare_internal,.-__svml_satanh_cout_rare_internal -..LN__svml_satanh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_satanh_data_internal_avx512: - .long 0 - .long 1023148032 - .long 1031274496 - .long 1035436032 - .long 1039204352 - .long 1041547264 - .long 1043333120 - .long 1045069824 - .long 1046773760 - .long 1048428544 - .long 1049313280 - .long 1050099712 - .long 1050869760 - .long 1051623424 - .long 1052360704 - .long 1053089792 - .long 1053794304 - .long 1054482432 - .long 1055162368 - .long 1055825920 - .long 1056481280 - .long 1057042432 - .long 1057353728 - .long 1057660928 - .long 1057964032 - .long 1058263040 - .long 1058553856 - .long 1058840576 - .long 1059123200 - .long 1059397632 - .long 1059672064 - .long 1059942400 - .long 0 - .long 925287326 - .long 950209537 - .long 928156389 - .long 954265029 - .long 3098231288 - .long 3083833176 - .long 949397309 - .long 3045295702 - .long 940324527 - .long 3089323092 - .long 945994465 - .long 952492302 - .long 954130348 - .long 954989406 - .long 3102096543 - .long 3093041984 - .long 947354573 - .long 3053684310 - .long 936642948 - .long 3099086888 - .long 3098368602 - .long 946194506 - .long 952357621 - .long 943635681 - .long 3097619830 - .long 3080925892 - .long 3078186319 - .long 3093311347 - .long 955801008 - .long 934582639 - .long 3099571146 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 131072 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 4294705152 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 3196061712 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 1051373854 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .type __svml_satanh_data_internal_avx512,@object - .size __svml_satanh_data_internal_avx512,960 - .align 4 -__satanh_la__imlsAtanhTab: - .long 1065353216 - .long 0 - .long 2139095040 - .type __satanh_la__imlsAtanhTab,@object - .size __satanh_la__imlsAtanhTab,12 diff --git a/numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s b/numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s deleted file mode 100644 index e9aa25590ed0..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_cbrt_d_la.s +++ /dev/null @@ -1,911 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * x=2^{3*k+j} * 1.b1 b2 ... b5 b6 ... b52 - * Let r=(x*2^{-3k-j} - 1.b1 b2 ... b5 1)* rcp[b1 b2 ..b5], - * where rcp[b1 b2 .. b5]=1/(1.b1 b2 b3 b4 b5 1) in double precision - * cbrt(2^j * 1. b1 b2 .. b5 1) is approximated as T[j][b1..b5]+D[j][b1..b5] - * (T stores the high 53 bits, D stores the low order bits) - * Result=2^k*T+(2^k*T*r)*P+2^k*D - * where P=p1+p2*r+..+p8*r^7 - * - */ - - - .text -.L_2__routine_start___svml_cbrt8_z0_0: - - .align 16,0x90 - .globl __svml_cbrt8 - -__svml_cbrt8: - - - .cfi_startproc -..L2: - - vgetmantpd $0, {sae}, %zmm0, %zmm14 - -/* GetExp(x) */ - vgetexppd {sae}, %zmm0, %zmm7 - vmovups 384+__svml_dcbrt_data_internal_avx512(%rip), %zmm8 - -/* exponent/3 */ - vmovups 512+__svml_dcbrt_data_internal_avx512(%rip), %zmm9 - vmovups 576+__svml_dcbrt_data_internal_avx512(%rip), %zmm10 - -/* Reduced argument: R = DblRcp*Mantissa - 1 */ - vmovups 704+__svml_dcbrt_data_internal_avx512(%rip), %zmm2 - -/* exponent%3 (to be used as index) */ - vmovups 640+__svml_dcbrt_data_internal_avx512(%rip), %zmm11 - -/* DblRcp ~ 1/Mantissa */ - vrcp14pd %zmm14, %zmm13 - vaddpd {rn-sae}, %zmm8, %zmm7, %zmm12 - vandpd 448+__svml_dcbrt_data_internal_avx512(%rip), %zmm0, %zmm6 - -/* round DblRcp to 3 fractional bits (RN mode, no Precision exception) */ - vrndscalepd $72, {sae}, %zmm13, %zmm15 - vfmsub231pd {rn-sae}, %zmm12, %zmm9, %zmm10 - -/* polynomial */ - vmovups 768+__svml_dcbrt_data_internal_avx512(%rip), %zmm0 - vmovups 896+__svml_dcbrt_data_internal_avx512(%rip), %zmm7 - vmovups 960+__svml_dcbrt_data_internal_avx512(%rip), %zmm9 - vfmsub231pd {rn-sae}, %zmm15, %zmm14, %zmm2 - vrndscalepd $9, {sae}, %zmm10, %zmm5 - -/* Table lookup */ - vmovups 128+__svml_dcbrt_data_internal_avx512(%rip), %zmm10 - vmovups 1024+__svml_dcbrt_data_internal_avx512(%rip), %zmm8 - vmovups 1216+__svml_dcbrt_data_internal_avx512(%rip), %zmm13 - vfmadd231pd {rn-sae}, %zmm2, %zmm7, %zmm9 - vfnmadd231pd {rn-sae}, %zmm5, %zmm11, %zmm12 - vmovups 1088+__svml_dcbrt_data_internal_avx512(%rip), %zmm11 - vmovups 1344+__svml_dcbrt_data_internal_avx512(%rip), %zmm14 - -/* Prepare table index */ - vpsrlq $49, %zmm15, %zmm1 - -/* Table lookup: 2^(exponent%3) */ - vpermpd __svml_dcbrt_data_internal_avx512(%rip), %zmm12, %zmm4 - vpermpd 64+__svml_dcbrt_data_internal_avx512(%rip), %zmm12, %zmm3 - vpermt2pd 192+__svml_dcbrt_data_internal_avx512(%rip), %zmm1, %zmm10 - vmovups 832+__svml_dcbrt_data_internal_avx512(%rip), %zmm1 - vfmadd231pd {rn-sae}, %zmm2, %zmm8, %zmm11 - vmovups 1280+__svml_dcbrt_data_internal_avx512(%rip), %zmm12 - vscalefpd {rn-sae}, %zmm5, %zmm10, %zmm15 - vfmadd231pd {rn-sae}, %zmm2, %zmm0, %zmm1 - vmovups 1152+__svml_dcbrt_data_internal_avx512(%rip), %zmm5 - vfmadd231pd {rn-sae}, %zmm2, %zmm12, %zmm14 - vmulpd {rn-sae}, %zmm2, %zmm2, %zmm0 - vfmadd231pd {rn-sae}, %zmm2, %zmm5, %zmm13 - -/* Sh*R */ - vmulpd {rn-sae}, %zmm2, %zmm4, %zmm2 - vfmadd213pd {rn-sae}, %zmm9, %zmm0, %zmm1 - vfmadd213pd {rn-sae}, %zmm11, %zmm0, %zmm1 - vfmadd213pd {rn-sae}, %zmm13, %zmm0, %zmm1 - vfmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm1 - -/* Sl + (Sh*R)*Poly */ - vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm2 - -/* - * branch-free - * scaled_Th*(Sh+Sl+Sh*R*Poly) - */ - vaddpd {rn-sae}, %zmm4, %zmm2, %zmm3 - vmulpd {rn-sae}, %zmm15, %zmm3, %zmm4 - vorpd %zmm6, %zmm4, %zmm0 - -/* no invcbrt in libm, so taking it out here */ - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_cbrt8,@function - .size __svml_cbrt8,.-__svml_cbrt8 -..LN__svml_cbrt8.0: - -.L_2__routine_start___svml_dcbrt_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dcbrt_cout_rare_internal: - - - .cfi_startproc -..L5: - - movq %rsi, %r8 - movzwl 6(%rdi), %r9d - andl $32752, %r9d - shrl $4, %r9d - movb 7(%rdi), %sil - movsd (%rdi), %xmm1 - cmpl $2047, %r9d - je .LBL_2_9 - - - ucomisd 432+__dcbrt_la__vmldCbrtTab(%rip), %xmm1 - jp .LBL_2_3 - je .LBL_2_8 - -.LBL_2_3: - - movb %sil, %al - lea 440+__dcbrt_la__vmldCbrtTab(%rip), %rdx - andb $-128, %al - andb $127, %sil - shrb $7, %al - xorl %edi, %edi - movsd %xmm1, -56(%rsp) - movzbl %al, %ecx - movb %sil, -49(%rsp) - movsd (%rdx,%rcx,8), %xmm5 - testl %r9d, %r9d - jne .LBL_2_5 - - - movsd -56(%rsp), %xmm0 - movl $100, %edi - mulsd 360+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - movsd %xmm0, -56(%rsp) - jmp .LBL_2_6 - -.LBL_2_5: - - movsd -56(%rsp), %xmm0 - -.LBL_2_6: - - movzwl -50(%rsp), %esi - movl $1431655766, %eax - andl $32752, %esi - lea __dcbrt_la__vmldCbrtTab(%rip), %r11 - shrl $4, %esi - movsd %xmm0, -40(%rsp) - movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm14 - imull %esi - movl $1431655766, %eax - lea (%rdx,%rdx,2), %ecx - negl %ecx - addl %esi, %ecx - subl %ecx, %esi - addl %ecx, %ecx - addl $-1023, %esi - imull %esi - sarl $31, %esi - subl %esi, %edx - addl $1023, %edx - subl %edi, %edx - movzwl -34(%rsp), %edi - andl $2047, %edx - andl $-32753, %edi - addl $16368, %edi - movw %di, -34(%rsp) - movsd -40(%rsp), %xmm11 - movaps %xmm11, %xmm6 - mulsd 376+__dcbrt_la__vmldCbrtTab(%rip), %xmm6 - movsd %xmm6, -32(%rsp) - movsd -32(%rsp), %xmm7 - movl -36(%rsp), %r10d - andl $1048575, %r10d - subsd -40(%rsp), %xmm7 - movsd %xmm7, -24(%rsp) - movsd -32(%rsp), %xmm9 - movsd -24(%rsp), %xmm8 - shrl $15, %r10d - subsd %xmm8, %xmm9 - movsd %xmm9, -32(%rsp) - movsd -32(%rsp), %xmm10 - movsd (%r11,%r10,8), %xmm4 - subsd %xmm10, %xmm11 - movaps %xmm4, %xmm12 - movaps %xmm4, %xmm13 - mulsd %xmm4, %xmm12 - movsd %xmm11, -24(%rsp) - movsd -32(%rsp), %xmm2 - mulsd %xmm12, %xmm2 - mulsd %xmm2, %xmm13 - movsd 440+__dcbrt_la__vmldCbrtTab(%rip), %xmm6 - movsd -24(%rsp), %xmm3 - subsd %xmm13, %xmm6 - mulsd %xmm12, %xmm3 - mulsd %xmm6, %xmm14 - mulsd %xmm3, %xmm4 - movsd %xmm14, -32(%rsp) - movsd -32(%rsp), %xmm15 - xorps .L_2il0floatpacket.81(%rip), %xmm4 - subsd %xmm6, %xmm15 - movsd %xmm15, -24(%rsp) - movsd -32(%rsp), %xmm1 - movsd -24(%rsp), %xmm0 - movsd 256+__dcbrt_la__vmldCbrtTab(%rip), %xmm9 - subsd %xmm0, %xmm1 - movsd %xmm1, -32(%rsp) - movsd -32(%rsp), %xmm13 - movsd 352+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - subsd %xmm13, %xmm6 - movsd %xmm6, -24(%rsp) - movsd -32(%rsp), %xmm1 - movsd -24(%rsp), %xmm7 - movaps %xmm1, %xmm8 - movsd 256+__dcbrt_la__vmldCbrtTab(%rip), %xmm11 - addsd %xmm7, %xmm4 - movsd 256+__dcbrt_la__vmldCbrtTab(%rip), %xmm7 - addsd %xmm4, %xmm8 - mulsd %xmm8, %xmm0 - movslq %ecx, %rcx - addsd 344+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - movq 440+__dcbrt_la__vmldCbrtTab(%rip), %r9 - movq %r9, -48(%rsp) - shrq $48, %r9 - addsd 336+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - andl $-32753, %r9d - shll $4, %edx - addsd 328+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - orl %edx, %r9d - movw %r9w, -42(%rsp) - addsd 320+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - addsd 312+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - addsd 304+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - addsd 296+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - addsd 288+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - addsd 280+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - addsd 272+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm8, %xmm0 - addsd %xmm0, %xmm9 - movsd %xmm9, -32(%rsp) - movsd -32(%rsp), %xmm10 - movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm9 - subsd %xmm10, %xmm11 - movsd %xmm11, -24(%rsp) - movsd -32(%rsp), %xmm14 - movsd -24(%rsp), %xmm12 - addsd %xmm12, %xmm14 - movsd %xmm14, -16(%rsp) - movaps %xmm2, %xmm14 - movsd -24(%rsp), %xmm6 - addsd %xmm0, %xmm6 - movsd %xmm6, -24(%rsp) - movsd -16(%rsp), %xmm15 - subsd %xmm15, %xmm7 - movsd %xmm7, -16(%rsp) - movsd -24(%rsp), %xmm8 - movsd -16(%rsp), %xmm0 - addsd %xmm0, %xmm8 - movsd %xmm8, -16(%rsp) - movaps %xmm1, %xmm8 - movsd -32(%rsp), %xmm13 - mulsd %xmm13, %xmm9 - movsd -16(%rsp), %xmm0 - movsd %xmm9, -32(%rsp) - movsd -32(%rsp), %xmm10 - subsd %xmm13, %xmm10 - addsd 264+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - movsd %xmm10, -24(%rsp) - movsd -32(%rsp), %xmm11 - movsd -24(%rsp), %xmm6 - subsd %xmm6, %xmm11 - movsd %xmm11, -32(%rsp) - movsd -32(%rsp), %xmm12 - subsd %xmm12, %xmm13 - movsd %xmm13, -24(%rsp) - movsd -32(%rsp), %xmm7 - movsd -24(%rsp), %xmm6 - mulsd %xmm7, %xmm8 - addsd %xmm0, %xmm6 - mulsd %xmm4, %xmm7 - mulsd %xmm6, %xmm4 - mulsd %xmm6, %xmm1 - addsd %xmm4, %xmm7 - movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm4 - addsd %xmm1, %xmm7 - mulsd %xmm8, %xmm4 - movsd %xmm7, -32(%rsp) - movsd -32(%rsp), %xmm10 - movsd %xmm4, -32(%rsp) - movsd -32(%rsp), %xmm0 - subsd %xmm8, %xmm0 - movsd %xmm0, -24(%rsp) - movsd -32(%rsp), %xmm1 - movsd -24(%rsp), %xmm4 - subsd %xmm4, %xmm1 - movsd %xmm1, -32(%rsp) - movsd -32(%rsp), %xmm6 - subsd %xmm6, %xmm8 - movsd %xmm8, -24(%rsp) - movsd -32(%rsp), %xmm9 - movsd -24(%rsp), %xmm7 - movaps %xmm9, %xmm1 - mulsd %xmm3, %xmm9 - addsd %xmm7, %xmm10 - mulsd %xmm2, %xmm1 - movaps %xmm10, %xmm11 - movaps %xmm1, %xmm12 - mulsd %xmm3, %xmm10 - addsd %xmm2, %xmm12 - mulsd %xmm2, %xmm11 - addsd %xmm9, %xmm10 - addsd %xmm10, %xmm11 - movsd %xmm11, -32(%rsp) - movsd -32(%rsp), %xmm0 - movsd %xmm12, -32(%rsp) - movsd -32(%rsp), %xmm13 - subsd %xmm13, %xmm14 - movsd %xmm14, -24(%rsp) - movsd -32(%rsp), %xmm9 - movsd -24(%rsp), %xmm15 - addsd %xmm15, %xmm9 - movsd %xmm9, -16(%rsp) - movsd -24(%rsp), %xmm10 - addsd %xmm10, %xmm1 - movsd %xmm1, -24(%rsp) - movsd -16(%rsp), %xmm4 - subsd %xmm4, %xmm2 - movsd 368+__dcbrt_la__vmldCbrtTab(%rip), %xmm4 - movsd %xmm2, -16(%rsp) - movsd -24(%rsp), %xmm1 - movsd -16(%rsp), %xmm2 - addsd %xmm2, %xmm1 - movsd %xmm1, -16(%rsp) - movsd -32(%rsp), %xmm9 - mulsd %xmm9, %xmm4 - movsd -16(%rsp), %xmm11 - movsd %xmm4, -32(%rsp) - movsd -32(%rsp), %xmm6 - subsd %xmm9, %xmm6 - movsd %xmm6, -24(%rsp) - movsd -32(%rsp), %xmm7 - movsd -24(%rsp), %xmm2 - subsd %xmm2, %xmm7 - movsd %xmm7, -32(%rsp) - movsd -32(%rsp), %xmm8 - subsd %xmm8, %xmm9 - movsd %xmm9, -24(%rsp) - movsd -32(%rsp), %xmm12 - movsd -24(%rsp), %xmm10 - addsd %xmm0, %xmm10 - addsd %xmm3, %xmm10 - movsd 392(%r11,%rcx,8), %xmm3 - movaps %xmm3, %xmm0 - addsd %xmm10, %xmm11 - mulsd %xmm12, %xmm3 - mulsd %xmm11, %xmm0 - movsd 384(%r11,%rcx,8), %xmm10 - addsd %xmm3, %xmm0 - mulsd %xmm10, %xmm11 - mulsd %xmm10, %xmm12 - addsd %xmm11, %xmm0 - movsd %xmm0, -32(%rsp) - movsd -32(%rsp), %xmm3 - addsd %xmm3, %xmm12 - mulsd -48(%rsp), %xmm12 - mulsd %xmm12, %xmm5 - movsd %xmm5, (%r8) - -.LBL_2_7: - - xorl %eax, %eax - ret - -.LBL_2_8: - - movsd 440+__dcbrt_la__vmldCbrtTab(%rip), %xmm0 - mulsd %xmm0, %xmm1 - movsd %xmm1, (%r8) - jmp .LBL_2_7 - -.LBL_2_9: - - addsd %xmm1, %xmm1 - movsd %xmm1, (%r8) - jmp .LBL_2_7 - .align 16,0x90 - - .cfi_endproc - - .type __svml_dcbrt_cout_rare_internal,@function - .size __svml_dcbrt_cout_rare_internal,.-__svml_dcbrt_cout_rare_internal -..LN__svml_dcbrt_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dcbrt_data_internal_avx512: - .long 0 - .long 1072693248 - .long 4186796683 - .long 1072965794 - .long 2772266557 - .long 1073309182 - .long 0 - .long 0 - .long 0 - .long 3220176896 - .long 4186796683 - .long 3220449442 - .long 2772266557 - .long 3220792830 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1418634270 - .long 3162364962 - .long 2576690953 - .long 3164558313 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1418634270 - .long 1014881314 - .long 2576690953 - .long 1017074665 - .long 0 - .long 0 - .long 4186796683 - .long 1072965794 - .long 1554061055 - .long 1072914931 - .long 3992368458 - .long 1072871093 - .long 3714535808 - .long 1072832742 - .long 954824104 - .long 1072798779 - .long 3256858690 - .long 1072768393 - .long 3858344660 - .long 1072740974 - .long 1027250248 - .long 1072716050 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1418634270 - .long 3162364962 - .long 629721892 - .long 1016287007 - .long 1776620500 - .long 3163956186 - .long 648592220 - .long 1016269578 - .long 1295766103 - .long 3161896715 - .long 1348094586 - .long 3164476360 - .long 2407028709 - .long 1015925873 - .long 497428409 - .long 1014435402 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 1431655766 - .long 1070945621 - .long 1431655766 - .long 1070945621 - .long 1431655766 - .long 1070945621 - .long 1431655766 - .long 1070945621 - .long 1431655766 - .long 1070945621 - .long 1431655766 - .long 1070945621 - .long 1431655766 - .long 1070945621 - .long 1431655766 - .long 1070945621 - .long 0 - .long 1126170624 - .long 0 - .long 1126170624 - .long 0 - .long 1126170624 - .long 0 - .long 1126170624 - .long 0 - .long 1126170624 - .long 0 - .long 1126170624 - .long 0 - .long 1126170624 - .long 0 - .long 1126170624 - .long 0 - .long 1074266112 - .long 0 - .long 1074266112 - .long 0 - .long 1074266112 - .long 0 - .long 1074266112 - .long 0 - .long 1074266112 - .long 0 - .long 1074266112 - .long 0 - .long 1074266112 - .long 0 - .long 1074266112 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 1792985698 - .long 3213372987 - .long 1792985698 - .long 3213372987 - .long 1792985698 - .long 3213372987 - .long 1792985698 - .long 3213372987 - .long 1792985698 - .long 3213372987 - .long 1792985698 - .long 3213372987 - .long 1792985698 - .long 3213372987 - .long 1792985698 - .long 3213372987 - .long 3135539317 - .long 1066129956 - .long 3135539317 - .long 1066129956 - .long 3135539317 - .long 1066129956 - .long 3135539317 - .long 1066129956 - .long 3135539317 - .long 1066129956 - .long 3135539317 - .long 1066129956 - .long 3135539317 - .long 1066129956 - .long 3135539317 - .long 1066129956 - .long 2087834975 - .long 3213899448 - .long 2087834975 - .long 3213899448 - .long 2087834975 - .long 3213899448 - .long 2087834975 - .long 3213899448 - .long 2087834975 - .long 3213899448 - .long 2087834975 - .long 3213899448 - .long 2087834975 - .long 3213899448 - .long 2087834975 - .long 3213899448 - .long 2476259604 - .long 1066628333 - .long 2476259604 - .long 1066628333 - .long 2476259604 - .long 1066628333 - .long 2476259604 - .long 1066628333 - .long 2476259604 - .long 1066628333 - .long 2476259604 - .long 1066628333 - .long 2476259604 - .long 1066628333 - .long 2476259604 - .long 1066628333 - .long 2012366478 - .long 3214412045 - .long 2012366478 - .long 3214412045 - .long 2012366478 - .long 3214412045 - .long 2012366478 - .long 3214412045 - .long 2012366478 - .long 3214412045 - .long 2012366478 - .long 3214412045 - .long 2012366478 - .long 3214412045 - .long 2012366478 - .long 3214412045 - .long 1104999785 - .long 1067378449 - .long 1104999785 - .long 1067378449 - .long 1104999785 - .long 1067378449 - .long 1104999785 - .long 1067378449 - .long 1104999785 - .long 1067378449 - .long 1104999785 - .long 1067378449 - .long 1104999785 - .long 1067378449 - .long 1104999785 - .long 1067378449 - .long 3534763582 - .long 3215266280 - .long 3534763582 - .long 3215266280 - .long 3534763582 - .long 3215266280 - .long 3534763582 - .long 3215266280 - .long 3534763582 - .long 3215266280 - .long 3534763582 - .long 3215266280 - .long 3534763582 - .long 3215266280 - .long 3534763582 - .long 3215266280 - .long 1007386161 - .long 1068473053 - .long 1007386161 - .long 1068473053 - .long 1007386161 - .long 1068473053 - .long 1007386161 - .long 1068473053 - .long 1007386161 - .long 1068473053 - .long 1007386161 - .long 1068473053 - .long 1007386161 - .long 1068473053 - .long 1007386161 - .long 1068473053 - .long 477218625 - .long 3216798151 - .long 477218625 - .long 3216798151 - .long 477218625 - .long 3216798151 - .long 477218625 - .long 3216798151 - .long 477218625 - .long 3216798151 - .long 477218625 - .long 3216798151 - .long 477218625 - .long 3216798151 - .long 477218625 - .long 3216798151 - .long 1431655767 - .long 1070945621 - .long 1431655767 - .long 1070945621 - .long 1431655767 - .long 1070945621 - .long 1431655767 - .long 1070945621 - .long 1431655767 - .long 1070945621 - .long 1431655767 - .long 1070945621 - .long 1431655767 - .long 1070945621 - .long 1431655767 - .long 1070945621 - .type __svml_dcbrt_data_internal_avx512,@object - .size __svml_dcbrt_data_internal_avx512,1408 - .align 32 -__dcbrt_la__vmldCbrtTab: - .long 0 - .long 1072693248 - .long 0 - .long 1072668672 - .long 0 - .long 1072644096 - .long 0 - .long 1072627712 - .long 0 - .long 1072611328 - .long 0 - .long 1072586752 - .long 0 - .long 1072570368 - .long 0 - .long 1072553984 - .long 0 - .long 1072537600 - .long 0 - .long 1072521216 - .long 0 - .long 1072504832 - .long 0 - .long 1072488448 - .long 0 - .long 1072480256 - .long 0 - .long 1072463872 - .long 0 - .long 1072447488 - .long 0 - .long 1072439296 - .long 0 - .long 1072422912 - .long 0 - .long 1072414720 - .long 0 - .long 1072398336 - .long 0 - .long 1072390144 - .long 0 - .long 1072373760 - .long 0 - .long 1072365568 - .long 0 - .long 1072357376 - .long 0 - .long 1072340992 - .long 0 - .long 1072332800 - .long 0 - .long 1072324608 - .long 0 - .long 1072308224 - .long 0 - .long 1072300032 - .long 0 - .long 1072291840 - .long 0 - .long 1072283648 - .long 0 - .long 1072275456 - .long 0 - .long 1072267264 - .long 1431655765 - .long 1071994197 - .long 1431655765 - .long 1015371093 - .long 1908874354 - .long 1071761180 - .long 1007461464 - .long 1071618781 - .long 565592401 - .long 1071446176 - .long 241555088 - .long 1071319599 - .long 943963244 - .long 1071221150 - .long 2330668378 - .long 1071141453 - .long 2770428108 - .long 1071075039 - .long 3622256836 - .long 1071018464 - .long 1497196870 - .long 1070969433 - .long 280472551 - .long 1070926345 - .long 1585032765 - .long 1070888044 - .long 0 - .long 1387266048 - .long 33554432 - .long 1101004800 - .long 512 - .long 1117782016 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 4160749568 - .long 1072965794 - .long 2921479643 - .long 1043912488 - .long 2684354560 - .long 1073309182 - .long 4060791142 - .long 1045755320 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 3220176896 - .type __dcbrt_la__vmldCbrtTab,@object - .size __dcbrt_la__vmldCbrtTab,456 - .space 8, 0x00 - .align 16 -.L_2il0floatpacket.81: - .long 0x00000000,0x80000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.81,@object - .size .L_2il0floatpacket.81,16 diff --git a/numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s b/numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s deleted file mode 100644 index b257437ef346..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_cbrt_s_la.s +++ /dev/null @@ -1,1012 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * x=2^{3*k+j} * 1.b1 b2 ... b5 b6 ... b52 - * Let r=(x*2^{-3k-j} - 1.b1 b2 ... b5 1)* rcp[b1 b2 ..b5], - * where rcp[b1 b2 .. b5]=1/(1.b1 b2 b3 b4 b5 1) in single precision - * cbrtf(2^j * 1. b1 b2 .. b5 1) is approximated as T[j][b1..b5]+D[j][b1..b5] - * (T stores the high 24 bits, D stores the low order bits) - * Result=2^k*T+(2^k*T*r)*P+2^k*D - * where P=p1+p2*r+.. - * - */ - - - .text -.L_2__routine_start___svml_cbrtf16_z0_0: - - .align 16,0x90 - .globl __svml_cbrtf16 - -__svml_cbrtf16: - - - .cfi_startproc -..L2: - - vgetmantps $0, {sae}, %zmm0, %zmm8 - -/* GetExp(x) */ - vgetexpps {sae}, %zmm0, %zmm1 - vmovups 384+__svml_scbrt_data_internal_avx512(%rip), %zmm2 - -/* exponent/3 */ - vmovups 512+__svml_scbrt_data_internal_avx512(%rip), %zmm3 - vmovups 576+__svml_scbrt_data_internal_avx512(%rip), %zmm4 - vmovups 704+__svml_scbrt_data_internal_avx512(%rip), %zmm15 - -/* exponent%3 (to be used as index) */ - vmovups 640+__svml_scbrt_data_internal_avx512(%rip), %zmm5 - -/* polynomial */ - vmovups 768+__svml_scbrt_data_internal_avx512(%rip), %zmm11 - vmovups 896+__svml_scbrt_data_internal_avx512(%rip), %zmm14 - -/* Table lookup */ - vmovups 128+__svml_scbrt_data_internal_avx512(%rip), %zmm12 - -/* DblRcp ~ 1/Mantissa */ - vrcp14ps %zmm8, %zmm7 - vaddps {rn-sae}, %zmm2, %zmm1, %zmm6 - vandps 448+__svml_scbrt_data_internal_avx512(%rip), %zmm0, %zmm0 - -/* round DblRcp to 3 fractional bits (RN mode, no Precision exception) */ - vrndscaleps $88, {sae}, %zmm7, %zmm9 - vfmsub231ps {rn-sae}, %zmm6, %zmm3, %zmm4 - vmovups 832+__svml_scbrt_data_internal_avx512(%rip), %zmm7 - -/* Reduced argument: R = DblRcp*Mantissa - 1 */ - vfmsub231ps {rn-sae}, %zmm9, %zmm8, %zmm15 - vrndscaleps $9, {sae}, %zmm4, %zmm13 - -/* Prepare table index */ - vpsrld $19, %zmm9, %zmm10 - vfmadd231ps {rn-sae}, %zmm15, %zmm11, %zmm7 - vfnmadd231ps {rn-sae}, %zmm13, %zmm5, %zmm6 - vpermt2ps 192+__svml_scbrt_data_internal_avx512(%rip), %zmm10, %zmm12 - vfmadd213ps {rn-sae}, %zmm14, %zmm15, %zmm7 - vscalefps {rn-sae}, %zmm13, %zmm12, %zmm2 - -/* Table lookup: 2^(exponent%3) */ - vpermps __svml_scbrt_data_internal_avx512(%rip), %zmm6, %zmm1 - vpermps 64+__svml_scbrt_data_internal_avx512(%rip), %zmm6, %zmm6 - -/* Sh*R */ - vmulps {rn-sae}, %zmm15, %zmm1, %zmm14 - -/* Sl + (Sh*R)*Poly */ - vfmadd213ps {rn-sae}, %zmm6, %zmm7, %zmm14 - -/* - * branch-free - * scaled_Th*(Sh+Sl+Sh*R*Poly) - */ - vaddps {rn-sae}, %zmm1, %zmm14, %zmm15 - vmulps {rn-sae}, %zmm2, %zmm15, %zmm3 - vorps %zmm0, %zmm3, %zmm0 - -/* no invcbrt in libm, so taking it out here */ - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_cbrtf16,@function - .size __svml_cbrtf16,.-__svml_cbrtf16 -..LN__svml_cbrtf16.0: - -.L_2__routine_start___svml_scbrt_cout_rare_internal_1: - - .align 16,0x90 - -__svml_scbrt_cout_rare_internal: - - - .cfi_startproc -..L5: - - movq %rsi, %r9 - movl $1065353216, -24(%rsp) - movss (%rdi), %xmm0 - movss -24(%rsp), %xmm1 - mulss %xmm0, %xmm1 - movss %xmm1, -4(%rsp) - movzwl -2(%rsp), %eax - andl $32640, %eax - shrl $7, %eax - cmpl $255, %eax - je .LBL_2_9 - - - pxor %xmm0, %xmm0 - ucomiss %xmm0, %xmm1 - jp .LBL_2_3 - je .LBL_2_8 - -.LBL_2_3: - - testl %eax, %eax - jne .LBL_2_5 - - - movl $2122317824, -24(%rsp) - movl $713031680, -20(%rsp) - jmp .LBL_2_6 - -.LBL_2_5: - - movl $1065353216, %eax - movl %eax, -24(%rsp) - movl %eax, -20(%rsp) - -.LBL_2_6: - - movss -24(%rsp), %xmm0 - lea __scbrt_la_vscbrt_ha_cout_data(%rip), %rsi - mulss %xmm0, %xmm1 - movd %xmm1, %ecx - movss %xmm1, -4(%rsp) - movl %ecx, %r10d - movl %ecx, %edi - andl $8388607, %r10d - movl %ecx, %r11d - shrl $23, %edi - andl $8257536, %r11d - orl $-1082130432, %r10d - orl $-1081999360, %r11d - movl %r10d, -16(%rsp) - movl %ecx, %edx - movzbl %dil, %r8d - andl $2147483647, %ecx - movl %r11d, -12(%rsp) - andl $-256, %edi - movss -16(%rsp), %xmm1 - addl $2139095040, %ecx - shrl $16, %edx - subss -12(%rsp), %xmm1 - andl $124, %edx - lea (%r8,%r8,4), %r10d - mulss (%rsi,%rdx), %xmm1 - lea (%r10,%r10), %r11d - movss .L_2il0floatpacket.35(%rip), %xmm4 - lea (%r11,%r11), %eax - addl %eax, %eax - lea (%r10,%r11,8), %r10d - addl %eax, %eax - decl %r8d - mulss %xmm1, %xmm4 - shll $7, %r8d - lea (%r10,%rax,8), %r11d - lea (%r11,%rax,8), %r10d - shrl $12, %r10d - addss .L_2il0floatpacket.34(%rip), %xmm4 - mulss %xmm1, %xmm4 - lea 85(%r10), %eax - orl %edi, %eax - xorl %edi, %edi - cmpl $-16777217, %ecx - addss .L_2il0floatpacket.33(%rip), %xmm4 - setg %dil - shll $7, %r10d - negl %edi - subl %r10d, %r8d - addl %r10d, %r10d - subl %r10d, %r8d - notl %edi - addl %r8d, %edx - andl %edx, %edi - shll $23, %eax - addl %edi, %edi - movl %eax, -8(%rsp) - movss 128(%rdi,%rsi), %xmm5 - movss -8(%rsp), %xmm2 - mulss %xmm1, %xmm4 - mulss %xmm2, %xmm5 - addss .L_2il0floatpacket.32(%rip), %xmm4 - mulss %xmm5, %xmm1 - movss 132(%rsi,%rdi), %xmm3 - mulss %xmm1, %xmm4 - mulss %xmm2, %xmm3 - addss %xmm3, %xmm4 - addss %xmm4, %xmm5 - mulss -20(%rsp), %xmm5 - movss %xmm5, (%r9) - -.LBL_2_7: - - xorl %eax, %eax - ret - -.LBL_2_8: - - movss %xmm1, (%r9) - jmp .LBL_2_7 - -.LBL_2_9: - - addss %xmm0, %xmm0 - movss %xmm0, (%r9) - jmp .LBL_2_7 - .align 16,0x90 - - .cfi_endproc - - .type __svml_scbrt_cout_rare_internal,@function - .size __svml_scbrt_cout_rare_internal,.-__svml_scbrt_cout_rare_internal -..LN__svml_scbrt_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_scbrt_data_internal_avx512: - .long 1065353216 - .long 1067533592 - .long 1070280693 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2999865775 - .long 849849800 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1067533592 - .long 1067322155 - .long 1067126683 - .long 1066945178 - .long 1066775983 - .long 1066617708 - .long 1066469175 - .long 1066329382 - .long 1066197466 - .long 1066072682 - .long 1065954382 - .long 1065841998 - .long 1065735031 - .long 1065633040 - .long 1065535634 - .long 1065442463 - .long 1065353216 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2999865775 - .long 849353281 - .long 2992093760 - .long 858369405 - .long 861891413 - .long 3001900484 - .long 2988845984 - .long 3009185201 - .long 3001209163 - .long 847824101 - .long 839380496 - .long 845124191 - .long 851391835 - .long 856440803 - .long 2989578734 - .long 852890174 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1249902592 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1077936128 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 1031603580 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 3185812323 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .long 1051372202 - .type __svml_scbrt_data_internal_avx512,@object - .size __svml_scbrt_data_internal_avx512,960 - .align 64 -__scbrt_la_vscbrt_ha_cout_data: - .long 3212578753 - .long 3212085645 - .long 3211621124 - .long 3211182772 - .long 3210768440 - .long 3210376206 - .long 3210004347 - .long 3209651317 - .long 3209315720 - .long 3208996296 - .long 3208691905 - .long 3208401508 - .long 3208124163 - .long 3207859009 - .long 3207605259 - .long 3207362194 - .long 3207129151 - .long 3206905525 - .long 3206690755 - .long 3206484326 - .long 3206285761 - .long 3206094618 - .long 3205910490 - .long 3205732998 - .long 3205561788 - .long 3205396533 - .long 3205236929 - .long 3205082689 - .long 3204933547 - .long 3204789256 - .long 3204649583 - .long 3204514308 - .long 1065396681 - .long 839340838 - .long 1065482291 - .long 867750258 - .long 1065566215 - .long 851786446 - .long 1065648532 - .long 853949398 - .long 1065729317 - .long 864938789 - .long 1065808640 - .long 864102364 - .long 1065886565 - .long 864209792 - .long 1065963152 - .long 865422805 - .long 1066038457 - .long 867593594 - .long 1066112533 - .long 854482593 - .long 1066185428 - .long 848298042 - .long 1066257188 - .long 860064854 - .long 1066327857 - .long 844792593 - .long 1066397474 - .long 870701309 - .long 1066466079 - .long 872023170 - .long 1066533708 - .long 860255342 - .long 1066600394 - .long 849966899 - .long 1066666169 - .long 863561479 - .long 1066731064 - .long 869115319 - .long 1066795108 - .long 871961375 - .long 1066858329 - .long 859537336 - .long 1066920751 - .long 871954398 - .long 1066982401 - .long 863817578 - .long 1067043301 - .long 861687921 - .long 1067103474 - .long 849594757 - .long 1067162941 - .long 816486846 - .long 1067221722 - .long 858183533 - .long 1067279837 - .long 864500406 - .long 1067337305 - .long 850523240 - .long 1067394143 - .long 808125243 - .long 1067450368 - .long 0 - .long 1067505996 - .long 861173761 - .long 1067588354 - .long 859000219 - .long 1067696217 - .long 823158129 - .long 1067801953 - .long 871826232 - .long 1067905666 - .long 871183196 - .long 1068007450 - .long 839030530 - .long 1068107390 - .long 867690638 - .long 1068205570 - .long 840440923 - .long 1068302063 - .long 868033274 - .long 1068396942 - .long 855856030 - .long 1068490271 - .long 865094453 - .long 1068582113 - .long 860418487 - .long 1068672525 - .long 866225006 - .long 1068761562 - .long 866458226 - .long 1068849275 - .long 865124659 - .long 1068935712 - .long 864837702 - .long 1069020919 - .long 811742505 - .long 1069104937 - .long 869432099 - .long 1069187809 - .long 864584201 - .long 1069269572 - .long 864183978 - .long 1069350263 - .long 844810573 - .long 1069429915 - .long 869245699 - .long 1069508563 - .long 859556409 - .long 1069586236 - .long 870675446 - .long 1069662966 - .long 814190139 - .long 1069738778 - .long 870686941 - .long 1069813702 - .long 861800510 - .long 1069887762 - .long 855649163 - .long 1069960982 - .long 869347119 - .long 1070033387 - .long 864252033 - .long 1070104998 - .long 867276215 - .long 1070175837 - .long 868189817 - .long 1070245925 - .long 849541095 - .long 1070349689 - .long 866633177 - .long 1070485588 - .long 843967686 - .long 1070618808 - .long 857522493 - .long 1070749478 - .long 862339487 - .long 1070877717 - .long 850054662 - .long 1071003634 - .long 864048556 - .long 1071127332 - .long 868027089 - .long 1071248907 - .long 848093931 - .long 1071368446 - .long 865355299 - .long 1071486034 - .long 848111485 - .long 1071601747 - .long 865557362 - .long 1071715659 - .long 870297525 - .long 1071827839 - .long 863416216 - .long 1071938350 - .long 869675693 - .long 1072047254 - .long 865888071 - .long 1072154608 - .long 825332584 - .long 1072260465 - .long 843309506 - .long 1072364876 - .long 870885636 - .long 1072467891 - .long 869119784 - .long 1072569555 - .long 865466648 - .long 1072669911 - .long 867459244 - .long 1072769001 - .long 861192764 - .long 1072866863 - .long 871247716 - .long 1072963536 - .long 864927982 - .long 1073059054 - .long 869195129 - .long 1073153452 - .long 864849564 - .long 1073246762 - .long 840005936 - .long 1073339014 - .long 852579258 - .long 1073430238 - .long 860852782 - .long 1073520462 - .long 869711141 - .long 1073609714 - .long 862506141 - .long 1073698019 - .long 837959274 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 3173551943 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 1031591658 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 3185806905 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 1051372203 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 8257536 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 3212967936 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 85 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 1 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 2155872256 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .long 4278190079 - .type __scbrt_la_vscbrt_ha_cout_data,@object - .size __scbrt_la_vscbrt_ha_cout_data,1920 - .align 4 -.L_2il0floatpacket.28: - .long 0x007fffff - .type .L_2il0floatpacket.28,@object - .size .L_2il0floatpacket.28,4 - .align 4 -.L_2il0floatpacket.29: - .long 0x007e0000 - .type .L_2il0floatpacket.29,@object - .size .L_2il0floatpacket.29,4 - .align 4 -.L_2il0floatpacket.30: - .long 0xbf800000 - .type .L_2il0floatpacket.30,@object - .size .L_2il0floatpacket.30,4 - .align 4 -.L_2il0floatpacket.31: - .long 0xbf820000 - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,4 - .align 4 -.L_2il0floatpacket.32: - .long 0x3eaaaaab - .type .L_2il0floatpacket.32,@object - .size .L_2il0floatpacket.32,4 - .align 4 -.L_2il0floatpacket.33: - .long 0xbde38e39 - .type .L_2il0floatpacket.33,@object - .size .L_2il0floatpacket.33,4 - .align 4 -.L_2il0floatpacket.34: - .long 0x3d7cd6ea - .type .L_2il0floatpacket.34,@object - .size .L_2il0floatpacket.34,4 - .align 4 -.L_2il0floatpacket.35: - .long 0xbd288f47 - .type .L_2il0floatpacket.35,@object - .size .L_2il0floatpacket.35,4 diff --git a/numpy/core/src/umath/svml/svml_z0_cos_d_la.s b/numpy/core/src/umath/svml/svml_z0_cos_d_la.s deleted file mode 100644 index 51d72fe1d3af..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_cos_d_la.s +++ /dev/null @@ -1,17674 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * ( low accuracy ( < 4ulp ) or enhanced performance ( half of correct mantissa ) implementation ) - * - * Argument representation: - * arg + Pi/2 = (N*Pi + R) - * - * Result calculation: - * cos(arg) = sin(arg+Pi/2) = sin(N*Pi + R) = (-1)^N * sin(R) - * sin(R) is approximated by corresponding polynomial - * - */ - - - .text -.L_2__routine_start___svml_cos8_z0_0: - - .align 16,0x90 - .globl __svml_cos8 - -__svml_cos8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - xorl %edx, %edx - vmovups 1472+__svml_dcos_data_internal(%rip), %zmm2 - vmovups 1536+__svml_dcos_data_internal(%rip), %zmm5 - -/* dN + .5 */ - vmovups 1600+__svml_dcos_data_internal(%rip), %zmm3 - -/* mask will be used to decide whether long arg. reduction is needed */ - vmovups 640+__svml_dcos_data_internal(%rip), %zmm8 - vmovups 704+__svml_dcos_data_internal(%rip), %zmm6 - -/* ............... Polynomial approximation ................... */ - vmovups 1280+__svml_dcos_data_internal(%rip), %zmm9 - vmovups 1152+__svml_dcos_data_internal(%rip), %zmm10 - vmovups 1088+__svml_dcos_data_internal(%rip), %zmm12 - vmovups 768+__svml_dcos_data_internal(%rip), %zmm7 - vmovups 1024+__svml_dcos_data_internal(%rip), %zmm13 - -/* large arg. condition mask */ - vmovups 1664+__svml_dcos_data_internal(%rip), %zmm4 - vmovaps %zmm0, %zmm11 - vandpd 1408+__svml_dcos_data_internal(%rip), %zmm11, %zmm1 - vmovups 1728+__svml_dcos_data_internal(%rip), %zmm0 - vfmadd231pd {rz-sae}, %zmm1, %zmm2, %zmm5 - vcmppd $17, {sae}, %zmm0, %zmm1, %k2 - vcmppd $22, {sae}, %zmm4, %zmm5, %k1 - vpsllq $63, %zmm5, %zmm15 - vsubpd {rn-sae}, %zmm3, %zmm5, %zmm14 - vmovups 1216+__svml_dcos_data_internal(%rip), %zmm3 - vfmsub213pd {rn-sae}, %zmm1, %zmm14, %zmm8 - -/* will branch if long arg. reduction needed */ - kortestw %k1, %k1 - vfmadd231pd {rn-sae}, %zmm14, %zmm6, %zmm8 - vmulpd {rn-sae}, %zmm8, %zmm8, %zmm2 - vfmadd213pd {rn-sae}, %zmm8, %zmm7, %zmm14 - vfmadd231pd {rn-sae}, %zmm2, %zmm9, %zmm3 - vmovups 960+__svml_dcos_data_internal(%rip), %zmm9 - vfmadd213pd {rn-sae}, %zmm10, %zmm2, %zmm3 - vmovups 832+__svml_dcos_data_internal(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm12, %zmm2, %zmm3 - vfmadd213pd {rn-sae}, %zmm13, %zmm2, %zmm3 - vxorpd %zmm15, %zmm14, %zmm13 - vfmadd213pd {rn-sae}, %zmm9, %zmm2, %zmm3 - vmulpd {rn-sae}, %zmm2, %zmm13, %zmm12 - vfmadd213pd {rn-sae}, %zmm10, %zmm2, %zmm3 - vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm3 - -/* result = minabs(result, 1.0) with sign of result preserved */ - vblendmpd 1344+__svml_dcos_data_internal(%rip), %zmm3, %zmm0{%k2} - jne .LBL_1_12 - -.LBL_1_2: - - testl %edx, %edx - jne .LBL_1_4 - -.LBL_1_3: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_4: - - vmovups %zmm11, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_3 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_8: - - btl %r12d, %r13d - jc .LBL_1_11 - -.LBL_1_9: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_8 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_3 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_11: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dcos_cout_rare_internal - jmp .LBL_1_9 - .cfi_restore 4 - .cfi_restore 5 - .cfi_restore 12 - .cfi_restore 13 - .cfi_restore 122 - .cfi_restore 123 - .cfi_restore 124 - .cfi_restore 125 - -.LBL_1_12: - - -/* ............Check for Inf and NaNs................. */ - vmovups 16512+__svml_dcos_data_internal_ha(%rip), %zmm7 - -/* - * Get the (2^a / 2pi) mod 1 values from the table. - * Because VLANG doesn't have L-type gather, we need a trivial cast - */ - lea __svml_dcos_reduction_data_internal(%rip), %rax - vpbroadcastq .L_2il0floatpacket.28(%rip), %zmm9 - vmovups %zmm0, (%rsp) - vandpd %zmm11, %zmm7, %zmm8 - vcmppd $4, {sae}, %zmm7, %zmm8, %k2 - -/* - * The output is _VRES_Z (high) + _VRES_E (low), and the integer part is _VRES_IND - * Now resume the original code. - * ..................... Table look-up ........................ - */ - lea __svml_dcos_data_internal_ha(%rip), %rcx - vmovaps %zmm9, %zmm6 - vpandq .L_2il0floatpacket.29(%rip){1to8}, %zmm11, %zmm3 - vpsrlq $52, %zmm3, %zmm12 - vpsllq $1, %zmm12, %zmm1 - vpaddq %zmm12, %zmm1, %zmm10 - vpsllq $3, %zmm10, %zmm4 - vpmovqd %zmm4, %ymm0 - vpandnq %zmm8, %zmm8, %zmm6{%k2} - vcmppd $3, {sae}, %zmm6, %zmm6, %k0 - -/* - * Break the P_xxx and m into 32-bit chunks ready for - * the long multiplication via 32x32->64 multiplications - */ - vpbroadcastq .L_2il0floatpacket.32(%rip), %zmm6 - kxnorw %k0, %k0, %k3 - kxnorw %k0, %k0, %k2 - kmovw %k0, %edx - vpxord %zmm7, %zmm7, %zmm7 - vgatherdpd (%rax,%ymm0), %zmm7{%k3} - kxnorw %k0, %k0, %k3 - vpxord %zmm8, %zmm8, %zmm8 - vpxord %zmm2, %zmm2, %zmm2 - vgatherdpd 8(%rax,%ymm0), %zmm8{%k2} - vgatherdpd 16(%rax,%ymm0), %zmm2{%k3} - vpsrlq $32, %zmm7, %zmm0 - vpsrlq $32, %zmm8, %zmm15 - vpsrlq $32, %zmm2, %zmm13 - -/* - * Also get the significand as an integer - * NB: adding in the integer bit is wrong for denorms! - * To make this work for denorms we should do something slightly different - */ - vpandq .L_2il0floatpacket.30(%rip){1to8}, %zmm11, %zmm5 - vpaddq .L_2il0floatpacket.31(%rip){1to8}, %zmm5, %zmm3 - vpsrlq $32, %zmm3, %zmm10 - vpmullq %zmm13, %zmm10, %zmm1 - vpandq %zmm6, %zmm7, %zmm5 - vpandq %zmm6, %zmm8, %zmm12 - vpandq %zmm6, %zmm2, %zmm7 - vpandq %zmm6, %zmm3, %zmm14 - -/* Now do the big multiplication and carry propagation */ - vpmullq %zmm5, %zmm10, %zmm4 - vpmullq %zmm15, %zmm10, %zmm3 - vpmullq %zmm12, %zmm10, %zmm2 - vpmullq %zmm7, %zmm10, %zmm8 - vpmullq %zmm15, %zmm14, %zmm10 - vpmullq %zmm13, %zmm14, %zmm15 - vpmullq %zmm0, %zmm14, %zmm7 - vpmullq %zmm12, %zmm14, %zmm0 - vpmullq %zmm5, %zmm14, %zmm5 - vpsrlq $32, %zmm15, %zmm13 - vpsrlq $32, %zmm0, %zmm14 - vpsrlq $32, %zmm5, %zmm12 - vpsrlq $32, %zmm10, %zmm15 - vpaddq %zmm13, %zmm1, %zmm1 - vpaddq %zmm14, %zmm2, %zmm13 - vpaddq %zmm12, %zmm4, %zmm4 - vpaddq %zmm15, %zmm3, %zmm2 - vpandq %zmm6, %zmm0, %zmm14 - vpandq %zmm6, %zmm10, %zmm12 - vpandq %zmm6, %zmm5, %zmm10 - vpaddq %zmm1, %zmm14, %zmm5 - vpaddq %zmm2, %zmm10, %zmm2 - vpsrlq $32, %zmm8, %zmm1 - vpaddq %zmm5, %zmm1, %zmm8 - vpsrlq $32, %zmm8, %zmm10 - vpandq %zmm6, %zmm7, %zmm0 - vpaddq %zmm13, %zmm12, %zmm7 - vpaddq %zmm4, %zmm0, %zmm3 - vpaddq %zmm7, %zmm10, %zmm14 - -/* - * Now round at the 2^-9 bit position for reduction mod pi/2^8 - * instead of the original 2pi (but still with the same 2pi scaling). - * Use a shifter of 2^43 + 2^42. - * The N we get is our final version; it has an offset of - * 2^9 because of the implicit integer bit, and anyway for negative - * starting value it's a 2s complement thing. But we need to mask - * off the exponent part anyway so it's fine. - */ - vpbroadcastq .L_2il0floatpacket.35(%rip), %zmm7 - vpsrlq $32, %zmm14, %zmm4 - vpaddq %zmm2, %zmm4, %zmm15 - vpsllq $32, %zmm14, %zmm4 - vpsrlq $32, %zmm15, %zmm0 - vpaddq %zmm3, %zmm0, %zmm13 - -/* Assemble reduced argument from the pieces */ - vpandq %zmm6, %zmm8, %zmm1 - vpandq %zmm6, %zmm15, %zmm10 - vpsllq $32, %zmm13, %zmm6 - vpaddq %zmm1, %zmm4, %zmm13 - vpaddq %zmm10, %zmm6, %zmm10 - vpsrlq $12, %zmm10, %zmm0 - vpandq .L_2il0floatpacket.38(%rip){1to8}, %zmm13, %zmm3 - vpsllq $28, %zmm3, %zmm12 - vpsrlq $24, %zmm13, %zmm13 - -/* - * We want to incorporate the original sign now too. - * Do it here for convenience in getting the right N value, - * though we could wait right to the end if we were prepared - * to modify the sign of N later too. - * So get the appropriate sign mask now (or sooner). - */ - vpandq .L_2il0floatpacket.33(%rip){1to8}, %zmm11, %zmm14 - -/* - * Create floating-point high part, implicitly adding integer bit 1 - * Incorporate overall sign at this stage too. - */ - vpxorq .L_2il0floatpacket.34(%rip){1to8}, %zmm14, %zmm5 - vporq %zmm5, %zmm0, %zmm8 - vaddpd {rn-sae}, %zmm8, %zmm7, %zmm2 - vsubpd {rn-sae}, %zmm7, %zmm2, %zmm6 - vsubpd {rn-sae}, %zmm6, %zmm8, %zmm15 - -/* - * If the magnitude of the input is <= 2^-20, then - * just pass through the input, since no reduction will be needed and - * the main path will only work accurately if the reduced argument is - * about >= 2^-70 (which it is for all large pi multiples) - */ - vpbroadcastq .L_2il0floatpacket.44(%rip), %zmm8 - vandpd .L_2il0floatpacket.43(%rip){1to8}, %zmm11, %zmm6 - vcmppd $26, {sae}, %zmm8, %zmm6, %k2 - vcmppd $22, {sae}, %zmm8, %zmm6, %k3 - -/* - * Create floating-point low and medium parts, respectively - * lo_23, ... lo_0, 0, ..., 0 - * hi_11, ... hi_0, lo_63, ..., lo_24 - * then subtract off the implicitly added integer bits, - * 2^-104 and 2^-52, respectively. - * Put the original sign into all of them at this stage. - */ - vpxorq .L_2il0floatpacket.37(%rip){1to8}, %zmm14, %zmm0 - vporq %zmm0, %zmm12, %zmm4 - vsubpd {rn-sae}, %zmm0, %zmm4, %zmm3 - vpxorq .L_2il0floatpacket.39(%rip){1to8}, %zmm14, %zmm0 - vpandq .L_2il0floatpacket.40(%rip){1to8}, %zmm10, %zmm14 - vpsllq $40, %zmm14, %zmm10 - vmovups 17152+__svml_dcos_data_internal_ha(%rip), %zmm14 - vporq %zmm13, %zmm10, %zmm10 - vporq %zmm0, %zmm10, %zmm4 - vsubpd {rn-sae}, %zmm0, %zmm4, %zmm5 - vpbroadcastq .L_2il0floatpacket.42(%rip), %zmm4 - -/* Now add them up into 2 reasonably aligned pieces */ - vaddpd {rn-sae}, %zmm5, %zmm15, %zmm7 - vsubpd {rn-sae}, %zmm7, %zmm15, %zmm15 - vaddpd {rn-sae}, %zmm15, %zmm5, %zmm10 - -/* - * Now multiply those numbers all by 2 pi, reasonably accurately. - * (RHi + RLo) * (pi_lead + pi_trail) ~= - * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) - */ - vpbroadcastq .L_2il0floatpacket.41(%rip), %zmm5 - vaddpd {rn-sae}, %zmm3, %zmm10, %zmm12 - vmulpd {rn-sae}, %zmm5, %zmm7, %zmm1 - vmovaps %zmm5, %zmm0 - vfmsub213pd {rn-sae}, %zmm1, %zmm7, %zmm0 - vfmadd213pd {rn-sae}, %zmm0, %zmm4, %zmm7 - vfmadd213pd {rn-sae}, %zmm7, %zmm5, %zmm12 - vmovaps %zmm9, %zmm3 - -/* Grab our final N value as an integer, appropriately masked mod 2^9 */ - vpandq .L_2il0floatpacket.36(%rip){1to8}, %zmm2, %zmm2 - vpsllq $5, %zmm2, %zmm5 - vpmovqd %zmm5, %ymm5 - vpandnq %zmm6, %zmm6, %zmm3{%k2} - kxnorw %k0, %k0, %k2 - vandpd %zmm1, %zmm3, %zmm4 - vandpd %zmm12, %zmm3, %zmm0 - vmovups 16960+__svml_dcos_data_internal_ha(%rip), %zmm3 - vpandnq %zmm6, %zmm6, %zmm9{%k3} - vandpd %zmm11, %zmm9, %zmm10 - kxnorw %k0, %k0, %k3 - vorpd %zmm4, %zmm10, %zmm4 - -/* ................. Reconstruction: res_hi ................... */ - vmovaps %zmm4, %zmm2 - vmovaps %zmm4, %zmm10 - vpxord %zmm9, %zmm9, %zmm9 - vgatherdpd (%rcx,%ymm5), %zmm9{%k2} - -/* VGATHER_TABLE( L2D, dSLo, TAB_HA._dT, lIndex, 0, T_ITEM_SIZE, T_ITEM_GRAN, 3 ); */ - kxnorw %k0, %k0, %k2 - vpxord %zmm7, %zmm7, %zmm7 - vpxord %zmm6, %zmm6, %zmm6 - vgatherdpd 16(%rcx,%ymm5), %zmm7{%k3} - vgatherdpd 8(%rcx,%ymm5), %zmm6{%k2} - kxnorw %k0, %k0, %k3 - vfmadd213pd {rn-sae}, %zmm7, %zmm6, %zmm2 - vfmadd132pd {rn-sae}, %zmm9, %zmm2, %zmm10 - -/* ................. Reconstruction: res_lo ................... */ - vsubpd {rn-sae}, %zmm2, %zmm7, %zmm1 - vsubpd {rn-sae}, %zmm10, %zmm2, %zmm8 - vfmadd231pd {rn-sae}, %zmm4, %zmm6, %zmm1 - vmovups 17024+__svml_dcos_data_internal_ha(%rip), %zmm2 - vfmadd231pd {rn-sae}, %zmm9, %zmm4, %zmm8 - vaddpd {rn-sae}, %zmm1, %zmm8, %zmm13 - vaddpd {rn-sae}, %zmm6, %zmm9, %zmm1 - -/* ............... Polynomial approximation ................... */ - vmulpd {rn-sae}, %zmm4, %zmm4, %zmm8 - vmovups 17216+__svml_dcos_data_internal_ha(%rip), %zmm6 - vmovups 17088+__svml_dcos_data_internal_ha(%rip), %zmm9 - vfmadd231pd {rn-sae}, %zmm8, %zmm2, %zmm3 - vfmadd231pd {rn-sae}, %zmm8, %zmm6, %zmm14 - vmulpd {rn-sae}, %zmm8, %zmm3, %zmm12 - vfmadd213pd {rn-sae}, %zmm9, %zmm8, %zmm14 - vmulpd {rn-sae}, %zmm4, %zmm12, %zmm15 - vmulpd {rn-sae}, %zmm8, %zmm14, %zmm2 - -/* ................. Reconstruction: res_lo+corr ................... */ - vfnmadd213pd {rn-sae}, %zmm1, %zmm7, %zmm4 - vfmadd213pd {rn-sae}, %zmm13, %zmm1, %zmm15 - vfmadd213pd {rn-sae}, %zmm15, %zmm7, %zmm2 - vpxord %zmm7, %zmm7, %zmm7 - vgatherdpd 24(%rcx,%ymm5), %zmm7{%k3} - vfmadd213pd {rn-sae}, %zmm7, %zmm4, %zmm0 - vaddpd {rn-sae}, %zmm0, %zmm2, %zmm1 - -/* .................. Final reconstruction ................... */ - vmovups (%rsp), %zmm0 - vaddpd {rn-sae}, %zmm1, %zmm10, %zmm0{%k1} - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_cos8,@function - .size __svml_cos8,.-__svml_cos8 -..LN__svml_cos8.0: - -.L_2__routine_start___svml_dcos_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dcos_cout_rare_internal: - - - .cfi_startproc -..L63: - - movzwl 6(%rdi), %eax - andl $32752, %eax - movsd (%rdi), %xmm1 - movb 7(%rdi), %dl - andb $127, %dl - movsd %xmm1, -8(%rsp) - cmpl $32752, %eax - jne .LBL_2_6 - - - cmpl $0, -8(%rsp) - jne .LBL_2_5 - - - movb %dl, -1(%rsp) - cmpl $2146435072, -4(%rsp) - jne .LBL_2_5 - - - movsd __dcos_la_CoutTab(%rip), %xmm0 - movl $1, %eax - mulsd %xmm0, %xmm1 - movsd %xmm1, (%rsi) - ret - -.LBL_2_5: - - mulsd %xmm1, %xmm1 - xorl %eax, %eax - movsd %xmm1, (%rsi) - ret - -.LBL_2_6: - - xorl %eax, %eax - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dcos_cout_rare_internal,@function - .size __svml_dcos_cout_rare_internal,.-__svml_dcos_cout_rare_internal -..LN__svml_dcos_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dcos_data_internal: - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 1096810496 - .long 0 - .long 1096810496 - .long 0 - .long 1096810496 - .long 0 - .long 1096810496 - .long 0 - .long 1096810496 - .long 0 - .long 1096810496 - .long 0 - .long 1096810496 - .long 0 - .long 1096810496 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 1431655591 - .long 3217380693 - .long 1431655591 - .long 3217380693 - .long 1431655591 - .long 3217380693 - .long 1431655591 - .long 3217380693 - .long 1431655591 - .long 3217380693 - .long 1431655591 - .long 3217380693 - .long 1431655591 - .long 3217380693 - .long 1431655591 - .long 3217380693 - .long 286303399 - .long 1065423121 - .long 286303399 - .long 1065423121 - .long 286303399 - .long 1065423121 - .long 286303399 - .long 1065423121 - .long 286303399 - .long 1065423121 - .long 286303399 - .long 1065423121 - .long 286303399 - .long 1065423121 - .long 286303399 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 286303400 - .long 1065423121 - .long 430291067 - .long 3207201184 - .long 430291067 - .long 3207201184 - .long 430291067 - .long 3207201184 - .long 430291067 - .long 3207201184 - .long 430291067 - .long 3207201184 - .long 430291067 - .long 3207201184 - .long 430291067 - .long 3207201184 - .long 430291067 - .long 3207201184 - .long 2150694560 - .long 1053236707 - .long 2150694560 - .long 1053236707 - .long 2150694560 - .long 1053236707 - .long 2150694560 - .long 1053236707 - .long 2150694560 - .long 1053236707 - .long 2150694560 - .long 1053236707 - .long 2150694560 - .long 1053236707 - .long 2150694560 - .long 1053236707 - .long 1174413873 - .long 3193628213 - .long 1174413873 - .long 3193628213 - .long 1174413873 - .long 3193628213 - .long 1174413873 - .long 3193628213 - .long 1174413873 - .long 3193628213 - .long 1174413873 - .long 3193628213 - .long 1174413873 - .long 3193628213 - .long 1174413873 - .long 3193628213 - .long 1470296608 - .long 1038487144 - .long 1470296608 - .long 1038487144 - .long 1470296608 - .long 1038487144 - .long 1470296608 - .long 1038487144 - .long 1470296608 - .long 1038487144 - .long 1470296608 - .long 1038487144 - .long 1470296608 - .long 1038487144 - .long 1470296608 - .long 1038487144 - .long 135375560 - .long 3177836758 - .long 135375560 - .long 3177836758 - .long 135375560 - .long 3177836758 - .long 135375560 - .long 3177836758 - .long 135375560 - .long 3177836758 - .long 135375560 - .long 3177836758 - .long 135375560 - .long 3177836758 - .long 135375560 - .long 3177836758 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 0 - .long 1127219200 - .long 0 - .long 1127219200 - .long 0 - .long 1127219200 - .long 0 - .long 1127219200 - .long 0 - .long 1127219200 - .long 0 - .long 1127219200 - .long 0 - .long 1127219200 - .long 0 - .long 1127219200 - .long 4294967295 - .long 1127219199 - .long 4294967295 - .long 1127219199 - .long 4294967295 - .long 1127219199 - .long 4294967295 - .long 1127219199 - .long 4294967295 - .long 1127219199 - .long 4294967295 - .long 1127219199 - .long 4294967295 - .long 1127219199 - .long 4294967295 - .long 1127219199 - .long 8388606 - .long 1127219200 - .long 8388606 - .long 1127219200 - .long 8388606 - .long 1127219200 - .long 8388606 - .long 1127219200 - .long 8388606 - .long 1127219200 - .long 8388606 - .long 1127219200 - .long 8388606 - .long 1127219200 - .long 8388606 - .long 1127219200 - .long 0 - .long 1044381696 - .long 0 - .long 1044381696 - .long 0 - .long 1044381696 - .long 0 - .long 1044381696 - .long 0 - .long 1044381696 - .long 0 - .long 1044381696 - .long 0 - .long 1044381696 - .long 0 - .long 1044381696 - .type __svml_dcos_data_internal,@object - .size __svml_dcos_data_internal,1792 - .align 64 -__svml_dcos_data_internal_ha: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 210035182 - .long 1064007864 - .long 0 - .long 3213885440 - .long 379294427 - .long 1072693090 - .long 3221225472 - .long 1015405987 - .long 561145352 - .long 1065056936 - .long 0 - .long 3214934016 - .long 1619315981 - .long 1072692616 - .long 1073741824 - .long 3162584397 - .long 2896342633 - .long 3212231467 - .long 0 - .long 3214934016 - .long 4026464093 - .long 1072691826 - .long 3221225472 - .long 3163075789 - .long 1003003824 - .long 1066107496 - .long 0 - .long 3215982592 - .long 3816385918 - .long 1072690721 - .long 536870912 - .long 3161216956 - .long 3237733378 - .long 1062425136 - .long 0 - .long 3215982592 - .long 1703834029 - .long 1072689301 - .long 3758096384 - .long 1015028364 - .long 2523975598 - .long 3213273348 - .long 0 - .long 3215982592 - .long 2902558778 - .long 1072687565 - .long 3221225472 - .long 1013260780 - .long 711626851 - .long 3214400320 - .long 0 - .long 3215982592 - .long 4240268041 - .long 1072685514 - .long 536870912 - .long 1013588963 - .long 257503056 - .long 1067164005 - .long 0 - .long 3217031168 - .long 2748392742 - .long 1072683149 - .long 536870912 - .long 3163061750 - .long 3272206680 - .long 1066288081 - .long 0 - .long 3217031168 - .long 4251821691 - .long 1072680469 - .long 2147483648 - .long 3161841007 - .long 718380601 - .long 1063597621 - .long 0 - .long 3217031168 - .long 1893834707 - .long 1072677476 - .long 1610612736 - .long 1015147654 - .long 3987691371 - .long 3213074188 - .long 0 - .long 3217031168 - .long 1905645377 - .long 1072674169 - .long 1610612736 - .long 1014087596 - .long 1953696209 - .long 3214295171 - .long 0 - .long 3217031168 - .long 2131272983 - .long 1072670549 - .long 3221225472 - .long 3163005096 - .long 3299146087 - .long 3215021530 - .long 0 - .long 3217031168 - .long 617154971 - .long 1072666617 - .long 3758096384 - .long 3163433696 - .long 304938777 - .long 3215427665 - .long 0 - .long 3217031168 - .long 4201728937 - .long 1072662372 - .long 1610612736 - .long 1014674006 - .long 2034433221 - .long 3215832935 - .long 0 - .long 3217031168 - .long 2745245815 - .long 1072657817 - .long 3221225472 - .long 1015566129 - .long 240740309 - .long 1068244255 - .long 0 - .long 3218079744 - .long 3489094832 - .long 1072652951 - .long 536870912 - .long 1014325783 - .long 1765797566 - .long 1067840895 - .long 0 - .long 3218079744 - .long 990588717 - .long 1072647776 - .long 3758096384 - .long 3162041857 - .long 2886567144 - .long 1067426796 - .long 0 - .long 3218079744 - .long 2892293513 - .long 1072642291 - .long 2684354560 - .long 3162340271 - .long 3587565429 - .long 1066624384 - .long 0 - .long 3218079744 - .long 4151720666 - .long 1072636498 - .long 0 - .long 3162639544 - .long 2614369450 - .long 1065140432 - .long 0 - .long 3218079744 - .long 4220661975 - .long 1072630398 - .long 3221225472 - .long 1014312058 - .long 2382326656 - .long 3212045827 - .long 0 - .long 3218079744 - .long 2749658050 - .long 1072623992 - .long 1610612736 - .long 1015427338 - .long 723478390 - .long 3213958438 - .long 0 - .long 3218079744 - .long 3882371427 - .long 1072617280 - .long 2147483648 - .long 1014923975 - .long 4107121629 - .long 3214750787 - .long 0 - .long 3218079744 - .long 3370060660 - .long 1072610264 - .long 1610612736 - .long 1014787212 - .long 1991047213 - .long 3215237169 - .long 0 - .long 3218079744 - .long 1455828442 - .long 1072602945 - .long 3758096384 - .long 1015505073 - .long 386665102 - .long 3215630470 - .long 0 - .long 3218079744 - .long 2873938189 - .long 1072595323 - .long 1610612736 - .long 3162311422 - .long 1348311045 - .long 3216002418 - .long 0 - .long 3218079744 - .long 3964199186 - .long 1072587400 - .long 3758096384 - .long 3160501078 - .long 165911977 - .long 3216197513 - .long 0 - .long 3218079744 - .long 1261158782 - .long 1072579178 - .long 2147483648 - .long 1015711544 - .long 3601629044 - .long 3216391785 - .long 0 - .long 3218079744 - .long 83265253 - .long 1072570657 - .long 1610612736 - .long 3162510535 - .long 1962712856 - .long 3216585207 - .long 0 - .long 3218079744 - .long 1647164971 - .long 1072561838 - .long 2147483648 - .long 3162838250 - .long 3286832763 - .long 3216777748 - .long 0 - .long 3218079744 - .long 3066872380 - .long 1072552723 - .long 3221225472 - .long 1015561271 - .long 3296146332 - .long 3216969380 - .long 0 - .long 3218079744 - .long 1647878299 - .long 1072543314 - .long 3758096384 - .long 3162169063 - .long 1699043957 - .long 1069418613 - .long 0 - .long 3219128320 - .long 3476196678 - .long 1072533611 - .long 0 - .long 1014257638 - .long 1896722595 - .long 1069228886 - .long 0 - .long 3219128320 - .long 1942611595 - .long 1072523617 - .long 3221225472 - .long 3162410081 - .long 4049357271 - .long 1069040154 - .long 0 - .long 3219128320 - .long 3511535930 - .long 1072513332 - .long 2147483648 - .long 3162828626 - .long 1380647130 - .long 1068852447 - .long 0 - .long 3219128320 - .long 1950234076 - .long 1072502759 - .long 536870912 - .long 3159425498 - .long 3631910143 - .long 1068665791 - .long 0 - .long 3219128320 - .long 4097623923 - .long 1072491898 - .long 2684354560 - .long 3160308587 - .long 1073154251 - .long 1068461489 - .long 0 - .long 3219128320 - .long 4093443164 - .long 1072480752 - .long 536870912 - .long 1014912865 - .long 913431823 - .long 1068092555 - .long 0 - .long 3219128320 - .long 557060597 - .long 1072469323 - .long 0 - .long 3159554934 - .long 600368053 - .long 1067725893 - .long 0 - .long 3219128320 - .long 881357723 - .long 1072457611 - .long 3221225472 - .long 1013810890 - .long 2140183630 - .long 1067272748 - .long 0 - .long 3219128320 - .long 4051746225 - .long 1072445618 - .long 1610612736 - .long 3161907377 - .long 3506991783 - .long 1066548842 - .long 0 - .long 3219128320 - .long 645027145 - .long 1072433348 - .long 3221225472 - .long 1012602239 - .long 31019393 - .long 1065162441 - .long 0 - .long 3219128320 - .long 2892993834 - .long 1072420800 - .long 536870912 - .long 3163039143 - .long 1279178457 - .long 3211590791 - .long 0 - .long 3219128320 - .long 1731563730 - .long 1072407978 - .long 536870912 - .long 1015540302 - .long 1220541286 - .long 3213681126 - .long 0 - .long 3219128320 - .long 1159294526 - .long 1072394883 - .long 536870912 - .long 3163276959 - .long 2880516564 - .long 3214487049 - .long 0 - .long 3219128320 - .long 1056266002 - .long 1072381517 - .long 2684354560 - .long 3163469496 - .long 1102361128 - .long 3215059765 - .long 0 - .long 3219128320 - .long 1477771776 - .long 1072367882 - .long 536870912 - .long 3163104986 - .long 1038988426 - .long 3215406294 - .long 0 - .long 3219128320 - .long 2653017361 - .long 1072353980 - .long 0 - .long 3162800062 - .long 2598800519 - .long 3215750067 - .long 0 - .long 3219128320 - .long 688824739 - .long 1072339814 - .long 3758096384 - .long 1010431536 - .long 3382663878 - .long 3216036812 - .long 0 - .long 3219128320 - .long 453180130 - .long 1072325385 - .long 1073741824 - .long 3162411281 - .long 1726519029 - .long 3216205866 - .long 0 - .long 3219128320 - .long 2688952194 - .long 1072310695 - .long 0 - .long 3161532603 - .long 802660176 - .long 3216373465 - .long 0 - .long 3219128320 - .long 4012486548 - .long 1072295747 - .long 2684354560 - .long 1014701564 - .long 3876290983 - .long 3216539583 - .long 0 - .long 3219128320 - .long 1207142209 - .long 1072280544 - .long 2147483648 - .long 3162705634 - .long 2285031318 - .long 3216704197 - .long 0 - .long 3219128320 - .long 4106737474 - .long 1072265086 - .long 2684354560 - .long 3162592377 - .long 1224902090 - .long 3216867281 - .long 0 - .long 3219128320 - .long 1234330619 - .long 1072249378 - .long 2684354560 - .long 1015272473 - .long 2586490530 - .long 3217028810 - .long 0 - .long 3219128320 - .long 2750387213 - .long 1072233420 - .long 2147483648 - .long 3160858537 - .long 2485417816 - .long 3217109964 - .long 0 - .long 3219128320 - .long 1796544321 - .long 1072217216 - .long 536870912 - .long 3162686945 - .long 1852581091 - .long 3217189138 - .long 0 - .long 3219128320 - .long 263859903 - .long 1072200768 - .long 0 - .long 3162692284 - .long 4019165092 - .long 3217267498 - .long 0 - .long 3219128320 - .long 201299822 - .long 1072184078 - .long 3758096384 - .long 3161912352 - .long 1250776663 - .long 3217345034 - .long 0 - .long 3219128320 - .long 3814135665 - .long 1072167148 - .long 3221225472 - .long 3163146456 - .long 3526603391 - .long 3217421732 - .long 0 - .long 3219128320 - .long 577417135 - .long 1072149983 - .long 2684354560 - .long 3161519415 - .long 4187227697 - .long 3217497582 - .long 0 - .long 3219128320 - .long 1594061409 - .long 1072132583 - .long 2147483648 - .long 1014353870 - .long 1416934267 - .long 3217572573 - .long 0 - .long 3219128320 - .long 938475414 - .long 1072114952 - .long 0 - .long 1015076079 - .long 2546065654 - .long 3217646692 - .long 0 - .long 3219128320 - .long 1424664751 - .long 1072097092 - .long 3221225472 - .long 3163405315 - .long 2583490354 - .long 3217719929 - .long 0 - .long 3219128320 - .long 1719614413 - .long 1072079006 - .long 0 - .long 3163282740 - .long 1403691706 - .long 3217792273 - .long 0 - .long 3219128320 - .long 636516413 - .long 1072060697 - .long 3758096384 - .long 1015823716 - .long 3753901657 - .long 3217863712 - .long 0 - .long 3219128320 - .long 1427975391 - .long 1072042167 - .long 1073741824 - .long 3161608627 - .long 2081278341 - .long 3217934237 - .long 0 - .long 3219128320 - .long 3194290572 - .long 1072023419 - .long 2147483648 - .long 1015048682 - .long 2309668539 - .long 3218003836 - .long 0 - .long 3219128320 - .long 881650848 - .long 1072004457 - .long 2147483648 - .long 3162986272 - .long 2371640770 - .long 3218072499 - .long 0 - .long 3219128320 - .long 2460177814 - .long 1071985282 - .long 2147483648 - .long 3162116843 - .long 3489768009 - .long 1070535623 - .long 0 - .long 3220176896 - .long 3152274921 - .long 1071965898 - .long 3758096384 - .long 1013170835 - .long 3239527685 - .long 1070468863 - .long 0 - .long 3220176896 - .long 2610628921 - .long 1071946308 - .long 1610612736 - .long 3162668769 - .long 1403757309 - .long 1070403070 - .long 0 - .long 3220176896 - .long 621354454 - .long 1071926515 - .long 536870912 - .long 1013450602 - .long 1883353036 - .long 1070338253 - .long 0 - .long 3220176896 - .long 1397053140 - .long 1071906521 - .long 1610612736 - .long 1015245078 - .long 3652612115 - .long 1070274422 - .long 0 - .long 3220176896 - .long 689983673 - .long 1071886330 - .long 3758096384 - .long 1014906405 - .long 752919289 - .long 1070211588 - .long 0 - .long 3220176896 - .long 2969983475 - .long 1071865944 - .long 2684354560 - .long 3162635443 - .long 3761365757 - .long 1070149758 - .long 0 - .long 3220176896 - .long 4242632757 - .long 1071845367 - .long 536870912 - .long 3161390278 - .long 1129922991 - .long 1070088944 - .long 0 - .long 3220176896 - .long 637203434 - .long 1071824603 - .long 3221225472 - .long 3159443841 - .long 2129093113 - .long 1070029153 - .long 0 - .long 3220176896 - .long 1289556703 - .long 1071803653 - .long 536870912 - .long 3162888820 - .long 2482246777 - .long 1069970395 - .long 0 - .long 3220176896 - .long 2570316633 - .long 1071782521 - .long 1610612736 - .long 3162744753 - .long 1539668340 - .long 1069912679 - .long 0 - .long 3220176896 - .long 967731400 - .long 1071761211 - .long 536870912 - .long 1015752157 - .long 2272832445 - .long 1069856013 - .long 0 - .long 3220176896 - .long 1675549513 - .long 1071739725 - .long 3221225472 - .long 3163025138 - .long 2678847490 - .long 1069800406 - .long 0 - .long 3220176896 - .long 1411074851 - .long 1071718067 - .long 1610612736 - .long 3163484731 - .long 69903290 - .long 1069745867 - .long 0 - .long 3220176896 - .long 1297975695 - .long 1071696240 - .long 3221225472 - .long 3163083735 - .long 3952756490 - .long 1069692402 - .long 0 - .long 3220176896 - .long 2569207790 - .long 1071674247 - .long 1073741824 - .long 3163183617 - .long 1663679671 - .long 1069640022 - .long 0 - .long 3220176896 - .long 2269920951 - .long 1071652092 - .long 3758096384 - .long 3161672245 - .long 1312926554 - .long 1069588733 - .long 0 - .long 3220176896 - .long 3690502842 - .long 1071614884 - .long 3221225472 - .long 3157453855 - .long 3429717432 - .long 1069529566 - .long 0 - .long 3220176896 - .long 1391425750 - .long 1071569945 - .long 3221225472 - .long 3162362103 - .long 1945768569 - .long 1069431400 - .long 0 - .long 3220176896 - .long 939980347 - .long 1071524701 - .long 0 - .long 1012796809 - .long 1539072807 - .long 1069335462 - .long 0 - .long 3220176896 - .long 1535566729 - .long 1071479159 - .long 2147483648 - .long 1014321388 - .long 4133449816 - .long 1069241766 - .long 0 - .long 3220176896 - .long 2570175582 - .long 1071433326 - .long 1073741824 - .long 1012303118 - .long 1612193054 - .long 1069150328 - .long 0 - .long 3220176896 - .long 3623952103 - .long 1071387209 - .long 2684354560 - .long 3161985962 - .long 1578746984 - .long 1069061160 - .long 0 - .long 3220176896 - .long 165764288 - .long 1071340816 - .long 3221225472 - .long 1013298018 - .long 1577996576 - .long 1068974276 - .long 0 - .long 3220176896 - .long 728580042 - .long 1071294152 - .long 1610612736 - .long 3162332944 - .long 1972483635 - .long 1068889689 - .long 0 - .long 3220176896 - .long 1135144330 - .long 1071247225 - .long 536870912 - .long 1013373569 - .long 1638976426 - .long 1068807412 - .long 0 - .long 3220176896 - .long 1673302999 - .long 1071200042 - .long 2147483648 - .long 1013351473 - .long 2255197647 - .long 1068727457 - .long 0 - .long 3220176896 - .long 2796464483 - .long 1071152610 - .long 3221225472 - .long 3160878317 - .long 3996842794 - .long 1068649836 - .long 0 - .long 3220176896 - .long 824036583 - .long 1071104937 - .long 0 - .long 1008313330 - .long 1234824733 - .long 1068574562 - .long 0 - .long 3220176896 - .long 821708191 - .long 1071057029 - .long 3758096384 - .long 3161738009 - .long 4002549419 - .long 1068501644 - .long 0 - .long 3220176896 - .long 3711903686 - .long 1071008893 - .long 1073741824 - .long 1011944747 - .long 2962723252 - .long 1068363247 - .long 0 - .long 3220176896 - .long 1974149085 - .long 1070960538 - .long 3221225472 - .long 3156147648 - .long 1296295961 - .long 1068226907 - .long 0 - .long 3220176896 - .long 1115219818 - .long 1070911970 - .long 0 - .long 1013072242 - .long 997322465 - .long 1068095345 - .long 0 - .long 3220176896 - .long 2484561409 - .long 1070863196 - .long 1073741824 - .long 1014024572 - .long 1261629236 - .long 1067968581 - .long 0 - .long 3220176896 - .long 3269558610 - .long 1070814224 - .long 536870912 - .long 3161705216 - .long 2476548698 - .long 1067846634 - .long 0 - .long 3220176896 - .long 785751814 - .long 1070765062 - .long 2684354560 - .long 3161838221 - .long 1913604284 - .long 1067729523 - .long 0 - .long 3220176896 - .long 1062001470 - .long 1070715716 - .long 0 - .long 3160875220 - .long 2306566604 - .long 1067617265 - .long 0 - .long 3220176896 - .long 1655830135 - .long 1070666194 - .long 0 - .long 1014506690 - .long 3250111450 - .long 1067509877 - .long 0 - .long 3220176896 - .long 238550446 - .long 1070616504 - .long 2684354560 - .long 3154383565 - .long 2377770267 - .long 1067364384 - .long 0 - .long 3220176896 - .long 2065784603 - .long 1070537209 - .long 3758096384 - .long 3160681966 - .long 288924873 - .long 1067169185 - .long 0 - .long 3220176896 - .long 3846521617 - .long 1070437199 - .long 536870912 - .long 1013406610 - .long 1935888103 - .long 1066983818 - .long 0 - .long 3220176896 - .long 1786662755 - .long 1070336898 - .long 2147483648 - .long 3155882307 - .long 2660899430 - .long 1066808312 - .long 0 - .long 3220176896 - .long 632292433 - .long 1070236320 - .long 3758096384 - .long 3160963333 - .long 18115067 - .long 1066642694 - .long 0 - .long 3220176896 - .long 1013556747 - .long 1070135480 - .long 2684354560 - .long 3160567065 - .long 2346447124 - .long 1066486987 - .long 0 - .long 3220176896 - .long 3729833777 - .long 1070034393 - .long 3758096384 - .long 1013044718 - .long 1672287667 - .long 1066280641 - .long 0 - .long 3220176896 - .long 1149976518 - .long 1069933076 - .long 1610612736 - .long 1013264895 - .long 3451754846 - .long 1066009014 - .long 0 - .long 3220176896 - .long 2972270170 - .long 1069831542 - .long 1073741824 - .long 3159524770 - .long 1037482584 - .long 1065757344 - .long 0 - .long 3220176896 - .long 1854824762 - .long 1069729808 - .long 2684354560 - .long 1011953664 - .long 2592747447 - .long 1065525667 - .long 0 - .long 3220176896 - .long 3470456183 - .long 1069627888 - .long 1073741824 - .long 3160744771 - .long 2402293340 - .long 1065274823 - .long 0 - .long 3220176896 - .long 1453945614 - .long 1069504078 - .long 1610612736 - .long 1011492612 - .long 1227670166 - .long 1064891649 - .long 0 - .long 3220176896 - .long 3349070549 - .long 1069299589 - .long 3758096384 - .long 3156538269 - .long 393047345 - .long 1064548654 - .long 0 - .long 3220176896 - .long 3156849708 - .long 1069094822 - .long 3221225472 - .long 3158189848 - .long 1118107366 - .long 1064187139 - .long 0 - .long 3220176896 - .long 177906713 - .long 1068889808 - .long 3221225472 - .long 3159310370 - .long 4269262315 - .long 1063662162 - .long 0 - .long 3220176896 - .long 2462980598 - .long 1068684576 - .long 2684354560 - .long 3158941832 - .long 3810305407 - .long 1063179572 - .long 0 - .long 3220176896 - .long 2046304480 - .long 1068459374 - .long 3758096384 - .long 3156402667 - .long 220529721 - .long 1062452281 - .long 0 - .long 3220176896 - .long 4044216340 - .long 1068048229 - .long 0 - .long 3156808381 - .long 69373323 - .long 1061565504 - .long 0 - .long 3220176896 - .long 1972655565 - .long 1067636837 - .long 1073741824 - .long 1009157878 - .long 3650591271 - .long 1060355323 - .long 0 - .long 3220176896 - .long 4154680958 - .long 1067000149 - .long 0 - .long 3153796451 - .long 2376373521 - .long 1058258220 - .long 0 - .long 3220176896 - .long 4242458500 - .long 1065951697 - .long 2684354560 - .long 1009354638 - .long 0 - .long 0 - .long 0 - .long 3220176896 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2376373521 - .long 1058258220 - .long 0 - .long 3220176896 - .long 4242458500 - .long 3213435345 - .long 2684354560 - .long 3156838286 - .long 3650591271 - .long 1060355323 - .long 0 - .long 3220176896 - .long 4154680958 - .long 3214483797 - .long 0 - .long 1006312803 - .long 69373323 - .long 1061565504 - .long 0 - .long 3220176896 - .long 1972655565 - .long 3215120485 - .long 1073741824 - .long 3156641526 - .long 220529721 - .long 1062452281 - .long 0 - .long 3220176896 - .long 4044216340 - .long 3215531877 - .long 0 - .long 1009324733 - .long 3810305407 - .long 1063179572 - .long 0 - .long 3220176896 - .long 2046304480 - .long 3215943022 - .long 3758096384 - .long 1008919019 - .long 4269262315 - .long 1063662162 - .long 0 - .long 3220176896 - .long 2462980598 - .long 3216168224 - .long 2684354560 - .long 1011458184 - .long 1118107366 - .long 1064187139 - .long 0 - .long 3220176896 - .long 177906713 - .long 3216373456 - .long 3221225472 - .long 1011826722 - .long 393047345 - .long 1064548654 - .long 0 - .long 3220176896 - .long 3156849708 - .long 3216578470 - .long 3221225472 - .long 1010706200 - .long 1227670166 - .long 1064891649 - .long 0 - .long 3220176896 - .long 3349070549 - .long 3216783237 - .long 3758096384 - .long 1009054621 - .long 2402293340 - .long 1065274823 - .long 0 - .long 3220176896 - .long 1453945614 - .long 3216987726 - .long 1610612736 - .long 3158976260 - .long 2592747447 - .long 1065525667 - .long 0 - .long 3220176896 - .long 3470456183 - .long 3217111536 - .long 1073741824 - .long 1013261123 - .long 1037482584 - .long 1065757344 - .long 0 - .long 3220176896 - .long 1854824762 - .long 3217213456 - .long 2684354560 - .long 3159437312 - .long 3451754846 - .long 1066009014 - .long 0 - .long 3220176896 - .long 2972270170 - .long 3217315190 - .long 1073741824 - .long 1012041122 - .long 1672287667 - .long 1066280641 - .long 0 - .long 3220176896 - .long 1149976518 - .long 3217416724 - .long 1610612736 - .long 3160748543 - .long 2346447124 - .long 1066486987 - .long 0 - .long 3220176896 - .long 3729833777 - .long 3217518041 - .long 3758096384 - .long 3160528366 - .long 18115067 - .long 1066642694 - .long 0 - .long 3220176896 - .long 1013556747 - .long 3217619128 - .long 2684354560 - .long 1013083417 - .long 2660899430 - .long 1066808312 - .long 0 - .long 3220176896 - .long 632292433 - .long 3217719968 - .long 3758096384 - .long 1013479685 - .long 1935888103 - .long 1066983818 - .long 0 - .long 3220176896 - .long 1786662755 - .long 3217820546 - .long 2147483648 - .long 1008398659 - .long 288924873 - .long 1067169185 - .long 0 - .long 3220176896 - .long 3846521617 - .long 3217920847 - .long 536870912 - .long 3160890258 - .long 2377770267 - .long 1067364384 - .long 0 - .long 3220176896 - .long 2065784603 - .long 3218020857 - .long 3758096384 - .long 1013198318 - .long 3250111450 - .long 1067509877 - .long 0 - .long 3220176896 - .long 238550446 - .long 3218100152 - .long 2684354560 - .long 1006899917 - .long 2306566604 - .long 1067617265 - .long 0 - .long 3220176896 - .long 1655830135 - .long 3218149842 - .long 0 - .long 3161990338 - .long 1913604284 - .long 1067729523 - .long 0 - .long 3220176896 - .long 1062001470 - .long 3218199364 - .long 0 - .long 1013391572 - .long 2476548698 - .long 1067846634 - .long 0 - .long 3220176896 - .long 785751814 - .long 3218248710 - .long 2684354560 - .long 1014354573 - .long 1261629236 - .long 1067968581 - .long 0 - .long 3220176896 - .long 3269558610 - .long 3218297872 - .long 536870912 - .long 1014221568 - .long 997322465 - .long 1068095345 - .long 0 - .long 3220176896 - .long 2484561409 - .long 3218346844 - .long 1073741824 - .long 3161508220 - .long 1296295961 - .long 1068226907 - .long 0 - .long 3220176896 - .long 1115219818 - .long 3218395618 - .long 0 - .long 3160555890 - .long 2962723252 - .long 1068363247 - .long 0 - .long 3220176896 - .long 1974149085 - .long 3218444186 - .long 3221225472 - .long 1008664000 - .long 4002549419 - .long 1068501644 - .long 0 - .long 3220176896 - .long 3711903686 - .long 3218492541 - .long 1073741824 - .long 3159428395 - .long 1234824733 - .long 1068574562 - .long 0 - .long 3220176896 - .long 821708191 - .long 3218540677 - .long 3758096384 - .long 1014254361 - .long 3996842794 - .long 1068649836 - .long 0 - .long 3220176896 - .long 824036583 - .long 3218588585 - .long 0 - .long 3155796978 - .long 2255197647 - .long 1068727457 - .long 0 - .long 3220176896 - .long 2796464483 - .long 3218636258 - .long 3221225472 - .long 1013394669 - .long 1638976426 - .long 1068807412 - .long 0 - .long 3220176896 - .long 1673302999 - .long 3218683690 - .long 2147483648 - .long 3160835121 - .long 1972483635 - .long 1068889689 - .long 0 - .long 3220176896 - .long 1135144330 - .long 3218730873 - .long 536870912 - .long 3160857217 - .long 1577996576 - .long 1068974276 - .long 0 - .long 3220176896 - .long 728580042 - .long 3218777800 - .long 1610612736 - .long 1014849296 - .long 1578746984 - .long 1069061160 - .long 0 - .long 3220176896 - .long 165764288 - .long 3218824464 - .long 3221225472 - .long 3160781666 - .long 1612193054 - .long 1069150328 - .long 0 - .long 3220176896 - .long 3623952103 - .long 3218870857 - .long 2684354560 - .long 1014502314 - .long 4133449816 - .long 1069241766 - .long 0 - .long 3220176896 - .long 2570175582 - .long 3218916974 - .long 1073741824 - .long 3159786766 - .long 1539072807 - .long 1069335462 - .long 0 - .long 3220176896 - .long 1535566729 - .long 3218962807 - .long 2147483648 - .long 3161805036 - .long 1945768569 - .long 1069431400 - .long 0 - .long 3220176896 - .long 939980347 - .long 3219008349 - .long 0 - .long 3160280457 - .long 3429717432 - .long 1069529566 - .long 0 - .long 3220176896 - .long 1391425750 - .long 3219053593 - .long 3221225472 - .long 1014878455 - .long 1312926554 - .long 1069588733 - .long 0 - .long 3220176896 - .long 3690502842 - .long 3219098532 - .long 3221225472 - .long 1009970207 - .long 1663679671 - .long 1069640022 - .long 0 - .long 3220176896 - .long 2269920951 - .long 3219135740 - .long 3758096384 - .long 1014188597 - .long 3952756490 - .long 1069692402 - .long 0 - .long 3220176896 - .long 2569207790 - .long 3219157895 - .long 1073741824 - .long 1015699969 - .long 69903290 - .long 1069745867 - .long 0 - .long 3220176896 - .long 1297975695 - .long 3219179888 - .long 3221225472 - .long 1015600087 - .long 2678847490 - .long 1069800406 - .long 0 - .long 3220176896 - .long 1411074851 - .long 3219201715 - .long 1610612736 - .long 1016001083 - .long 2272832445 - .long 1069856013 - .long 0 - .long 3220176896 - .long 1675549513 - .long 3219223373 - .long 3221225472 - .long 1015541490 - .long 1539668340 - .long 1069912679 - .long 0 - .long 3220176896 - .long 967731400 - .long 3219244859 - .long 536870912 - .long 3163235805 - .long 2482246777 - .long 1069970395 - .long 0 - .long 3220176896 - .long 2570316633 - .long 3219266169 - .long 1610612736 - .long 1015261105 - .long 2129093113 - .long 1070029153 - .long 0 - .long 3220176896 - .long 1289556703 - .long 3219287301 - .long 536870912 - .long 1015405172 - .long 1129922991 - .long 1070088944 - .long 0 - .long 3220176896 - .long 637203434 - .long 3219308251 - .long 3221225472 - .long 1011960193 - .long 3761365757 - .long 1070149758 - .long 0 - .long 3220176896 - .long 4242632757 - .long 3219329015 - .long 536870912 - .long 1013906630 - .long 752919289 - .long 1070211588 - .long 0 - .long 3220176896 - .long 2969983475 - .long 3219349592 - .long 2684354560 - .long 1015151795 - .long 3652612115 - .long 1070274422 - .long 0 - .long 3220176896 - .long 689983673 - .long 3219369978 - .long 3758096384 - .long 3162390053 - .long 1883353036 - .long 1070338253 - .long 0 - .long 3220176896 - .long 1397053140 - .long 3219390169 - .long 1610612736 - .long 3162728726 - .long 1403757309 - .long 1070403070 - .long 0 - .long 3220176896 - .long 621354454 - .long 3219410163 - .long 536870912 - .long 3160934250 - .long 3239527685 - .long 1070468863 - .long 0 - .long 3220176896 - .long 2610628921 - .long 3219429956 - .long 1610612736 - .long 1015185121 - .long 3489768009 - .long 1070535623 - .long 0 - .long 3220176896 - .long 3152274921 - .long 3219449546 - .long 3758096384 - .long 3160654483 - .long 2371640770 - .long 3218072499 - .long 0 - .long 3219128320 - .long 2460177814 - .long 3219468930 - .long 2147483648 - .long 1014633195 - .long 2309668539 - .long 3218003836 - .long 0 - .long 3219128320 - .long 881650848 - .long 3219488105 - .long 2147483648 - .long 1015502624 - .long 2081278341 - .long 3217934237 - .long 0 - .long 3219128320 - .long 3194290572 - .long 3219507067 - .long 2147483648 - .long 3162532330 - .long 3753901657 - .long 3217863712 - .long 0 - .long 3219128320 - .long 1427975391 - .long 3219525815 - .long 1073741824 - .long 1014124979 - .long 1403691706 - .long 3217792273 - .long 0 - .long 3219128320 - .long 636516413 - .long 3219544345 - .long 3758096384 - .long 3163307364 - .long 2583490354 - .long 3217719929 - .long 0 - .long 3219128320 - .long 1719614413 - .long 3219562654 - .long 0 - .long 1015799092 - .long 2546065654 - .long 3217646692 - .long 0 - .long 3219128320 - .long 1424664751 - .long 3219580740 - .long 3221225472 - .long 1015921667 - .long 1416934267 - .long 3217572573 - .long 0 - .long 3219128320 - .long 938475414 - .long 3219598600 - .long 0 - .long 3162559727 - .long 4187227697 - .long 3217497582 - .long 0 - .long 3219128320 - .long 1594061409 - .long 3219616231 - .long 2147483648 - .long 3161837518 - .long 3526603391 - .long 3217421732 - .long 0 - .long 3219128320 - .long 577417135 - .long 3219633631 - .long 2684354560 - .long 1014035767 - .long 1250776663 - .long 3217345034 - .long 0 - .long 3219128320 - .long 3814135665 - .long 3219650796 - .long 3221225472 - .long 1015662808 - .long 4019165092 - .long 3217267498 - .long 0 - .long 3219128320 - .long 201299822 - .long 3219667726 - .long 3758096384 - .long 1014428704 - .long 1852581091 - .long 3217189138 - .long 0 - .long 3219128320 - .long 263859903 - .long 3219684416 - .long 0 - .long 1015208636 - .long 2485417816 - .long 3217109964 - .long 0 - .long 3219128320 - .long 1796544321 - .long 3219700864 - .long 536870912 - .long 1015203297 - .long 2586490530 - .long 3217028810 - .long 0 - .long 3219128320 - .long 2750387213 - .long 3219717068 - .long 2147483648 - .long 1013374889 - .long 1224902090 - .long 3216867281 - .long 0 - .long 3219128320 - .long 1234330619 - .long 3219733026 - .long 2684354560 - .long 3162756121 - .long 2285031318 - .long 3216704197 - .long 0 - .long 3219128320 - .long 4106737474 - .long 3219748734 - .long 2684354560 - .long 1015108729 - .long 3876290983 - .long 3216539583 - .long 0 - .long 3219128320 - .long 1207142209 - .long 3219764192 - .long 2147483648 - .long 1015221986 - .long 802660176 - .long 3216373465 - .long 0 - .long 3219128320 - .long 4012486548 - .long 3219779395 - .long 2684354560 - .long 3162185212 - .long 1726519029 - .long 3216205866 - .long 0 - .long 3219128320 - .long 2688952194 - .long 3219794343 - .long 0 - .long 1014048955 - .long 3382663878 - .long 3216036812 - .long 0 - .long 3219128320 - .long 453180130 - .long 3219809033 - .long 1073741824 - .long 1014927633 - .long 2598800519 - .long 3215750067 - .long 0 - .long 3219128320 - .long 688824739 - .long 3219823462 - .long 3758096384 - .long 3157915184 - .long 1038988426 - .long 3215406294 - .long 0 - .long 3219128320 - .long 2653017361 - .long 3219837628 - .long 0 - .long 1015316414 - .long 1102361128 - .long 3215059765 - .long 0 - .long 3219128320 - .long 1477771776 - .long 3219851530 - .long 536870912 - .long 1015621338 - .long 2880516564 - .long 3214487049 - .long 0 - .long 3219128320 - .long 1056266002 - .long 3219865165 - .long 2684354560 - .long 1015985848 - .long 1220541286 - .long 3213681126 - .long 0 - .long 3219128320 - .long 1159294526 - .long 3219878531 - .long 536870912 - .long 1015793311 - .long 1279178457 - .long 3211590791 - .long 0 - .long 3219128320 - .long 1731563730 - .long 3219891626 - .long 536870912 - .long 3163023950 - .long 31019393 - .long 1065162441 - .long 0 - .long 3219128320 - .long 2892993834 - .long 3219904448 - .long 536870912 - .long 1015555495 - .long 3506991783 - .long 1066548842 - .long 0 - .long 3219128320 - .long 645027145 - .long 3219916996 - .long 3221225472 - .long 3160085887 - .long 2140183630 - .long 1067272748 - .long 0 - .long 3219128320 - .long 4051746225 - .long 3219929266 - .long 1610612736 - .long 1014423729 - .long 600368053 - .long 1067725893 - .long 0 - .long 3219128320 - .long 881357723 - .long 3219941259 - .long 3221225472 - .long 3161294538 - .long 913431823 - .long 1068092555 - .long 0 - .long 3219128320 - .long 557060597 - .long 3219952971 - .long 0 - .long 1012071286 - .long 1073154251 - .long 1068461489 - .long 0 - .long 3219128320 - .long 4093443164 - .long 3219964400 - .long 536870912 - .long 3162396513 - .long 3631910143 - .long 1068665791 - .long 0 - .long 3219128320 - .long 4097623923 - .long 3219975546 - .long 2684354560 - .long 1012824939 - .long 1380647130 - .long 1068852447 - .long 0 - .long 3219128320 - .long 1950234076 - .long 3219986407 - .long 536870912 - .long 1011941850 - .long 4049357271 - .long 1069040154 - .long 0 - .long 3219128320 - .long 3511535930 - .long 3219996980 - .long 2147483648 - .long 1015344978 - .long 1896722595 - .long 1069228886 - .long 0 - .long 3219128320 - .long 1942611595 - .long 3220007265 - .long 3221225472 - .long 1014926433 - .long 1699043957 - .long 1069418613 - .long 0 - .long 3219128320 - .long 3476196678 - .long 3220017259 - .long 0 - .long 3161741286 - .long 3296146332 - .long 3216969380 - .long 0 - .long 3218079744 - .long 1647878299 - .long 3220026962 - .long 3758096384 - .long 1014685415 - .long 3286832763 - .long 3216777748 - .long 0 - .long 3218079744 - .long 3066872380 - .long 3220036371 - .long 3221225472 - .long 3163044919 - .long 1962712856 - .long 3216585207 - .long 0 - .long 3218079744 - .long 1647164971 - .long 3220045486 - .long 2147483648 - .long 1015354602 - .long 3601629044 - .long 3216391785 - .long 0 - .long 3218079744 - .long 83265253 - .long 3220054305 - .long 1610612736 - .long 1015026887 - .long 165911977 - .long 3216197513 - .long 0 - .long 3218079744 - .long 1261158782 - .long 3220062826 - .long 2147483648 - .long 3163195192 - .long 1348311045 - .long 3216002418 - .long 0 - .long 3218079744 - .long 3964199186 - .long 3220071048 - .long 3758096384 - .long 1013017430 - .long 386665102 - .long 3215630470 - .long 0 - .long 3218079744 - .long 2873938189 - .long 3220078971 - .long 1610612736 - .long 1014827774 - .long 1991047213 - .long 3215237169 - .long 0 - .long 3218079744 - .long 1455828442 - .long 3220086593 - .long 3758096384 - .long 3162988721 - .long 4107121629 - .long 3214750787 - .long 0 - .long 3218079744 - .long 3370060660 - .long 3220093912 - .long 1610612736 - .long 3162270860 - .long 723478390 - .long 3213958438 - .long 0 - .long 3218079744 - .long 3882371427 - .long 3220100928 - .long 2147483648 - .long 3162407623 - .long 2382326656 - .long 3212045827 - .long 0 - .long 3218079744 - .long 2749658050 - .long 3220107640 - .long 1610612736 - .long 3162910986 - .long 2614369450 - .long 1065140432 - .long 0 - .long 3218079744 - .long 4220661975 - .long 3220114046 - .long 3221225472 - .long 3161795706 - .long 3587565429 - .long 1066624384 - .long 0 - .long 3218079744 - .long 4151720666 - .long 3220120146 - .long 0 - .long 1015155896 - .long 2886567144 - .long 1067426796 - .long 0 - .long 3218079744 - .long 2892293513 - .long 3220125939 - .long 2684354560 - .long 1014856623 - .long 1765797566 - .long 1067840895 - .long 0 - .long 3218079744 - .long 990588717 - .long 3220131424 - .long 3758096384 - .long 1014558209 - .long 240740309 - .long 1068244255 - .long 0 - .long 3218079744 - .long 3489094832 - .long 3220136599 - .long 536870912 - .long 3161809431 - .long 2034433221 - .long 3215832935 - .long 0 - .long 3217031168 - .long 2745245815 - .long 3220141465 - .long 3221225472 - .long 3163049777 - .long 304938777 - .long 3215427665 - .long 0 - .long 3217031168 - .long 4201728937 - .long 3220146020 - .long 1610612736 - .long 3162157654 - .long 3299146087 - .long 3215021530 - .long 0 - .long 3217031168 - .long 617154971 - .long 3220150265 - .long 3758096384 - .long 1015950048 - .long 1953696209 - .long 3214295171 - .long 0 - .long 3217031168 - .long 2131272983 - .long 3220154197 - .long 3221225472 - .long 1015521448 - .long 3987691371 - .long 3213074188 - .long 0 - .long 3217031168 - .long 1905645377 - .long 3220157817 - .long 1610612736 - .long 3161571244 - .long 718380601 - .long 1063597621 - .long 0 - .long 3217031168 - .long 1893834707 - .long 3220161124 - .long 1610612736 - .long 3162631302 - .long 3272206680 - .long 1066288081 - .long 0 - .long 3217031168 - .long 4251821691 - .long 3220164117 - .long 2147483648 - .long 1014357359 - .long 257503056 - .long 1067164005 - .long 0 - .long 3217031168 - .long 2748392742 - .long 3220166797 - .long 536870912 - .long 1015578102 - .long 711626851 - .long 3214400320 - .long 0 - .long 3215982592 - .long 4240268041 - .long 3220169162 - .long 536870912 - .long 3161072611 - .long 2523975598 - .long 3213273348 - .long 0 - .long 3215982592 - .long 2902558778 - .long 3220171213 - .long 3221225472 - .long 3160744428 - .long 3237733378 - .long 1062425136 - .long 0 - .long 3215982592 - .long 1703834029 - .long 3220172949 - .long 3758096384 - .long 3162512012 - .long 1003003824 - .long 1066107496 - .long 0 - .long 3215982592 - .long 3816385918 - .long 3220174369 - .long 536870912 - .long 1013733308 - .long 2896342633 - .long 3212231467 - .long 0 - .long 3214934016 - .long 4026464093 - .long 3220175474 - .long 3221225472 - .long 1015592141 - .long 561145352 - .long 1065056936 - .long 0 - .long 3214934016 - .long 1619315981 - .long 3220176264 - .long 1073741824 - .long 1015100749 - .long 210035182 - .long 1064007864 - .long 0 - .long 3213885440 - .long 379294427 - .long 3220176738 - .long 3221225472 - .long 3162889635 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3220176896 - .long 0 - .long 0 - .long 210035182 - .long 3211491512 - .long 0 - .long 1066401792 - .long 379294427 - .long 3220176738 - .long 3221225472 - .long 3162889635 - .long 561145352 - .long 3212540584 - .long 0 - .long 1067450368 - .long 1619315981 - .long 3220176264 - .long 1073741824 - .long 1015100749 - .long 2896342633 - .long 1064747819 - .long 0 - .long 1067450368 - .long 4026464093 - .long 3220175474 - .long 3221225472 - .long 1015592141 - .long 1003003824 - .long 3213591144 - .long 0 - .long 1068498944 - .long 3816385918 - .long 3220174369 - .long 536870912 - .long 1013733308 - .long 3237733378 - .long 3209908784 - .long 0 - .long 1068498944 - .long 1703834029 - .long 3220172949 - .long 3758096384 - .long 3162512012 - .long 2523975598 - .long 1065789700 - .long 0 - .long 1068498944 - .long 2902558778 - .long 3220171213 - .long 3221225472 - .long 3160744428 - .long 711626851 - .long 1066916672 - .long 0 - .long 1068498944 - .long 4240268041 - .long 3220169162 - .long 536870912 - .long 3161072611 - .long 257503056 - .long 3214647653 - .long 0 - .long 1069547520 - .long 2748392742 - .long 3220166797 - .long 536870912 - .long 1015578102 - .long 3272206680 - .long 3213771729 - .long 0 - .long 1069547520 - .long 4251821691 - .long 3220164117 - .long 2147483648 - .long 1014357359 - .long 718380601 - .long 3211081269 - .long 0 - .long 1069547520 - .long 1893834707 - .long 3220161124 - .long 1610612736 - .long 3162631302 - .long 3987691371 - .long 1065590540 - .long 0 - .long 1069547520 - .long 1905645377 - .long 3220157817 - .long 1610612736 - .long 3161571244 - .long 1953696209 - .long 1066811523 - .long 0 - .long 1069547520 - .long 2131272983 - .long 3220154197 - .long 3221225472 - .long 1015521448 - .long 3299146087 - .long 1067537882 - .long 0 - .long 1069547520 - .long 617154971 - .long 3220150265 - .long 3758096384 - .long 1015950048 - .long 304938777 - .long 1067944017 - .long 0 - .long 1069547520 - .long 4201728937 - .long 3220146020 - .long 1610612736 - .long 3162157654 - .long 2034433221 - .long 1068349287 - .long 0 - .long 1069547520 - .long 2745245815 - .long 3220141465 - .long 3221225472 - .long 3163049777 - .long 240740309 - .long 3215727903 - .long 0 - .long 1070596096 - .long 3489094832 - .long 3220136599 - .long 536870912 - .long 3161809431 - .long 1765797566 - .long 3215324543 - .long 0 - .long 1070596096 - .long 990588717 - .long 3220131424 - .long 3758096384 - .long 1014558209 - .long 2886567144 - .long 3214910444 - .long 0 - .long 1070596096 - .long 2892293513 - .long 3220125939 - .long 2684354560 - .long 1014856623 - .long 3587565429 - .long 3214108032 - .long 0 - .long 1070596096 - .long 4151720666 - .long 3220120146 - .long 0 - .long 1015155896 - .long 2614369450 - .long 3212624080 - .long 0 - .long 1070596096 - .long 4220661975 - .long 3220114046 - .long 3221225472 - .long 3161795706 - .long 2382326656 - .long 1064562179 - .long 0 - .long 1070596096 - .long 2749658050 - .long 3220107640 - .long 1610612736 - .long 3162910986 - .long 723478390 - .long 1066474790 - .long 0 - .long 1070596096 - .long 3882371427 - .long 3220100928 - .long 2147483648 - .long 3162407623 - .long 4107121629 - .long 1067267139 - .long 0 - .long 1070596096 - .long 3370060660 - .long 3220093912 - .long 1610612736 - .long 3162270860 - .long 1991047213 - .long 1067753521 - .long 0 - .long 1070596096 - .long 1455828442 - .long 3220086593 - .long 3758096384 - .long 3162988721 - .long 386665102 - .long 1068146822 - .long 0 - .long 1070596096 - .long 2873938189 - .long 3220078971 - .long 1610612736 - .long 1014827774 - .long 1348311045 - .long 1068518770 - .long 0 - .long 1070596096 - .long 3964199186 - .long 3220071048 - .long 3758096384 - .long 1013017430 - .long 165911977 - .long 1068713865 - .long 0 - .long 1070596096 - .long 1261158782 - .long 3220062826 - .long 2147483648 - .long 3163195192 - .long 3601629044 - .long 1068908137 - .long 0 - .long 1070596096 - .long 83265253 - .long 3220054305 - .long 1610612736 - .long 1015026887 - .long 1962712856 - .long 1069101559 - .long 0 - .long 1070596096 - .long 1647164971 - .long 3220045486 - .long 2147483648 - .long 1015354602 - .long 3286832763 - .long 1069294100 - .long 0 - .long 1070596096 - .long 3066872380 - .long 3220036371 - .long 3221225472 - .long 3163044919 - .long 3296146332 - .long 1069485732 - .long 0 - .long 1070596096 - .long 1647878299 - .long 3220026962 - .long 3758096384 - .long 1014685415 - .long 1699043957 - .long 3216902261 - .long 0 - .long 1071644672 - .long 3476196678 - .long 3220017259 - .long 0 - .long 3161741286 - .long 1896722595 - .long 3216712534 - .long 0 - .long 1071644672 - .long 1942611595 - .long 3220007265 - .long 3221225472 - .long 1014926433 - .long 4049357271 - .long 3216523802 - .long 0 - .long 1071644672 - .long 3511535930 - .long 3219996980 - .long 2147483648 - .long 1015344978 - .long 1380647130 - .long 3216336095 - .long 0 - .long 1071644672 - .long 1950234076 - .long 3219986407 - .long 536870912 - .long 1011941850 - .long 3631910143 - .long 3216149439 - .long 0 - .long 1071644672 - .long 4097623923 - .long 3219975546 - .long 2684354560 - .long 1012824939 - .long 1073154251 - .long 3215945137 - .long 0 - .long 1071644672 - .long 4093443164 - .long 3219964400 - .long 536870912 - .long 3162396513 - .long 913431823 - .long 3215576203 - .long 0 - .long 1071644672 - .long 557060597 - .long 3219952971 - .long 0 - .long 1012071286 - .long 600368053 - .long 3215209541 - .long 0 - .long 1071644672 - .long 881357723 - .long 3219941259 - .long 3221225472 - .long 3161294538 - .long 2140183630 - .long 3214756396 - .long 0 - .long 1071644672 - .long 4051746225 - .long 3219929266 - .long 1610612736 - .long 1014423729 - .long 3506991783 - .long 3214032490 - .long 0 - .long 1071644672 - .long 645027145 - .long 3219916996 - .long 3221225472 - .long 3160085887 - .long 31019393 - .long 3212646089 - .long 0 - .long 1071644672 - .long 2892993834 - .long 3219904448 - .long 536870912 - .long 1015555495 - .long 1279178457 - .long 1064107143 - .long 0 - .long 1071644672 - .long 1731563730 - .long 3219891626 - .long 536870912 - .long 3163023950 - .long 1220541286 - .long 1066197478 - .long 0 - .long 1071644672 - .long 1159294526 - .long 3219878531 - .long 536870912 - .long 1015793311 - .long 2880516564 - .long 1067003401 - .long 0 - .long 1071644672 - .long 1056266002 - .long 3219865165 - .long 2684354560 - .long 1015985848 - .long 1102361128 - .long 1067576117 - .long 0 - .long 1071644672 - .long 1477771776 - .long 3219851530 - .long 536870912 - .long 1015621338 - .long 1038988426 - .long 1067922646 - .long 0 - .long 1071644672 - .long 2653017361 - .long 3219837628 - .long 0 - .long 1015316414 - .long 2598800519 - .long 1068266419 - .long 0 - .long 1071644672 - .long 688824739 - .long 3219823462 - .long 3758096384 - .long 3157915184 - .long 3382663878 - .long 1068553164 - .long 0 - .long 1071644672 - .long 453180130 - .long 3219809033 - .long 1073741824 - .long 1014927633 - .long 1726519029 - .long 1068722218 - .long 0 - .long 1071644672 - .long 2688952194 - .long 3219794343 - .long 0 - .long 1014048955 - .long 802660176 - .long 1068889817 - .long 0 - .long 1071644672 - .long 4012486548 - .long 3219779395 - .long 2684354560 - .long 3162185212 - .long 3876290983 - .long 1069055935 - .long 0 - .long 1071644672 - .long 1207142209 - .long 3219764192 - .long 2147483648 - .long 1015221986 - .long 2285031318 - .long 1069220549 - .long 0 - .long 1071644672 - .long 4106737474 - .long 3219748734 - .long 2684354560 - .long 1015108729 - .long 1224902090 - .long 1069383633 - .long 0 - .long 1071644672 - .long 1234330619 - .long 3219733026 - .long 2684354560 - .long 3162756121 - .long 2586490530 - .long 1069545162 - .long 0 - .long 1071644672 - .long 2750387213 - .long 3219717068 - .long 2147483648 - .long 1013374889 - .long 2485417816 - .long 1069626316 - .long 0 - .long 1071644672 - .long 1796544321 - .long 3219700864 - .long 536870912 - .long 1015203297 - .long 1852581091 - .long 1069705490 - .long 0 - .long 1071644672 - .long 263859903 - .long 3219684416 - .long 0 - .long 1015208636 - .long 4019165092 - .long 1069783850 - .long 0 - .long 1071644672 - .long 201299822 - .long 3219667726 - .long 3758096384 - .long 1014428704 - .long 1250776663 - .long 1069861386 - .long 0 - .long 1071644672 - .long 3814135665 - .long 3219650796 - .long 3221225472 - .long 1015662808 - .long 3526603391 - .long 1069938084 - .long 0 - .long 1071644672 - .long 577417135 - .long 3219633631 - .long 2684354560 - .long 1014035767 - .long 4187227697 - .long 1070013934 - .long 0 - .long 1071644672 - .long 1594061409 - .long 3219616231 - .long 2147483648 - .long 3161837518 - .long 1416934267 - .long 1070088925 - .long 0 - .long 1071644672 - .long 938475414 - .long 3219598600 - .long 0 - .long 3162559727 - .long 2546065654 - .long 1070163044 - .long 0 - .long 1071644672 - .long 1424664751 - .long 3219580740 - .long 3221225472 - .long 1015921667 - .long 2583490354 - .long 1070236281 - .long 0 - .long 1071644672 - .long 1719614413 - .long 3219562654 - .long 0 - .long 1015799092 - .long 1403691706 - .long 1070308625 - .long 0 - .long 1071644672 - .long 636516413 - .long 3219544345 - .long 3758096384 - .long 3163307364 - .long 3753901657 - .long 1070380064 - .long 0 - .long 1071644672 - .long 1427975391 - .long 3219525815 - .long 1073741824 - .long 1014124979 - .long 2081278341 - .long 1070450589 - .long 0 - .long 1071644672 - .long 3194290572 - .long 3219507067 - .long 2147483648 - .long 3162532330 - .long 2309668539 - .long 1070520188 - .long 0 - .long 1071644672 - .long 881650848 - .long 3219488105 - .long 2147483648 - .long 1015502624 - .long 2371640770 - .long 1070588851 - .long 0 - .long 1071644672 - .long 2460177814 - .long 3219468930 - .long 2147483648 - .long 1014633195 - .long 3489768009 - .long 3218019271 - .long 0 - .long 1072693248 - .long 3152274921 - .long 3219449546 - .long 3758096384 - .long 3160654483 - .long 3239527685 - .long 3217952511 - .long 0 - .long 1072693248 - .long 2610628921 - .long 3219429956 - .long 1610612736 - .long 1015185121 - .long 1403757309 - .long 3217886718 - .long 0 - .long 1072693248 - .long 621354454 - .long 3219410163 - .long 536870912 - .long 3160934250 - .long 1883353036 - .long 3217821901 - .long 0 - .long 1072693248 - .long 1397053140 - .long 3219390169 - .long 1610612736 - .long 3162728726 - .long 3652612115 - .long 3217758070 - .long 0 - .long 1072693248 - .long 689983673 - .long 3219369978 - .long 3758096384 - .long 3162390053 - .long 752919289 - .long 3217695236 - .long 0 - .long 1072693248 - .long 2969983475 - .long 3219349592 - .long 2684354560 - .long 1015151795 - .long 3761365757 - .long 3217633406 - .long 0 - .long 1072693248 - .long 4242632757 - .long 3219329015 - .long 536870912 - .long 1013906630 - .long 1129922991 - .long 3217572592 - .long 0 - .long 1072693248 - .long 637203434 - .long 3219308251 - .long 3221225472 - .long 1011960193 - .long 2129093113 - .long 3217512801 - .long 0 - .long 1072693248 - .long 1289556703 - .long 3219287301 - .long 536870912 - .long 1015405172 - .long 2482246777 - .long 3217454043 - .long 0 - .long 1072693248 - .long 2570316633 - .long 3219266169 - .long 1610612736 - .long 1015261105 - .long 1539668340 - .long 3217396327 - .long 0 - .long 1072693248 - .long 967731400 - .long 3219244859 - .long 536870912 - .long 3163235805 - .long 2272832445 - .long 3217339661 - .long 0 - .long 1072693248 - .long 1675549513 - .long 3219223373 - .long 3221225472 - .long 1015541490 - .long 2678847490 - .long 3217284054 - .long 0 - .long 1072693248 - .long 1411074851 - .long 3219201715 - .long 1610612736 - .long 1016001083 - .long 69903290 - .long 3217229515 - .long 0 - .long 1072693248 - .long 1297975695 - .long 3219179888 - .long 3221225472 - .long 1015600087 - .long 3952756490 - .long 3217176050 - .long 0 - .long 1072693248 - .long 2569207790 - .long 3219157895 - .long 1073741824 - .long 1015699969 - .long 1663679671 - .long 3217123670 - .long 0 - .long 1072693248 - .long 2269920951 - .long 3219135740 - .long 3758096384 - .long 1014188597 - .long 1312926554 - .long 3217072381 - .long 0 - .long 1072693248 - .long 3690502842 - .long 3219098532 - .long 3221225472 - .long 1009970207 - .long 3429717432 - .long 3217013214 - .long 0 - .long 1072693248 - .long 1391425750 - .long 3219053593 - .long 3221225472 - .long 1014878455 - .long 1945768569 - .long 3216915048 - .long 0 - .long 1072693248 - .long 939980347 - .long 3219008349 - .long 0 - .long 3160280457 - .long 1539072807 - .long 3216819110 - .long 0 - .long 1072693248 - .long 1535566729 - .long 3218962807 - .long 2147483648 - .long 3161805036 - .long 4133449816 - .long 3216725414 - .long 0 - .long 1072693248 - .long 2570175582 - .long 3218916974 - .long 1073741824 - .long 3159786766 - .long 1612193054 - .long 3216633976 - .long 0 - .long 1072693248 - .long 3623952103 - .long 3218870857 - .long 2684354560 - .long 1014502314 - .long 1578746984 - .long 3216544808 - .long 0 - .long 1072693248 - .long 165764288 - .long 3218824464 - .long 3221225472 - .long 3160781666 - .long 1577996576 - .long 3216457924 - .long 0 - .long 1072693248 - .long 728580042 - .long 3218777800 - .long 1610612736 - .long 1014849296 - .long 1972483635 - .long 3216373337 - .long 0 - .long 1072693248 - .long 1135144330 - .long 3218730873 - .long 536870912 - .long 3160857217 - .long 1638976426 - .long 3216291060 - .long 0 - .long 1072693248 - .long 1673302999 - .long 3218683690 - .long 2147483648 - .long 3160835121 - .long 2255197647 - .long 3216211105 - .long 0 - .long 1072693248 - .long 2796464483 - .long 3218636258 - .long 3221225472 - .long 1013394669 - .long 3996842794 - .long 3216133484 - .long 0 - .long 1072693248 - .long 824036583 - .long 3218588585 - .long 0 - .long 3155796978 - .long 1234824733 - .long 3216058210 - .long 0 - .long 1072693248 - .long 821708191 - .long 3218540677 - .long 3758096384 - .long 1014254361 - .long 4002549419 - .long 3215985292 - .long 0 - .long 1072693248 - .long 3711903686 - .long 3218492541 - .long 1073741824 - .long 3159428395 - .long 2962723252 - .long 3215846895 - .long 0 - .long 1072693248 - .long 1974149085 - .long 3218444186 - .long 3221225472 - .long 1008664000 - .long 1296295961 - .long 3215710555 - .long 0 - .long 1072693248 - .long 1115219818 - .long 3218395618 - .long 0 - .long 3160555890 - .long 997322465 - .long 3215578993 - .long 0 - .long 1072693248 - .long 2484561409 - .long 3218346844 - .long 1073741824 - .long 3161508220 - .long 1261629236 - .long 3215452229 - .long 0 - .long 1072693248 - .long 3269558610 - .long 3218297872 - .long 536870912 - .long 1014221568 - .long 2476548698 - .long 3215330282 - .long 0 - .long 1072693248 - .long 785751814 - .long 3218248710 - .long 2684354560 - .long 1014354573 - .long 1913604284 - .long 3215213171 - .long 0 - .long 1072693248 - .long 1062001470 - .long 3218199364 - .long 0 - .long 1013391572 - .long 2306566604 - .long 3215100913 - .long 0 - .long 1072693248 - .long 1655830135 - .long 3218149842 - .long 0 - .long 3161990338 - .long 3250111450 - .long 3214993525 - .long 0 - .long 1072693248 - .long 238550446 - .long 3218100152 - .long 2684354560 - .long 1006899917 - .long 2377770267 - .long 3214848032 - .long 0 - .long 1072693248 - .long 2065784603 - .long 3218020857 - .long 3758096384 - .long 1013198318 - .long 288924873 - .long 3214652833 - .long 0 - .long 1072693248 - .long 3846521617 - .long 3217920847 - .long 536870912 - .long 3160890258 - .long 1935888103 - .long 3214467466 - .long 0 - .long 1072693248 - .long 1786662755 - .long 3217820546 - .long 2147483648 - .long 1008398659 - .long 2660899430 - .long 3214291960 - .long 0 - .long 1072693248 - .long 632292433 - .long 3217719968 - .long 3758096384 - .long 1013479685 - .long 18115067 - .long 3214126342 - .long 0 - .long 1072693248 - .long 1013556747 - .long 3217619128 - .long 2684354560 - .long 1013083417 - .long 2346447124 - .long 3213970635 - .long 0 - .long 1072693248 - .long 3729833777 - .long 3217518041 - .long 3758096384 - .long 3160528366 - .long 1672287667 - .long 3213764289 - .long 0 - .long 1072693248 - .long 1149976518 - .long 3217416724 - .long 1610612736 - .long 3160748543 - .long 3451754846 - .long 3213492662 - .long 0 - .long 1072693248 - .long 2972270170 - .long 3217315190 - .long 1073741824 - .long 1012041122 - .long 1037482584 - .long 3213240992 - .long 0 - .long 1072693248 - .long 1854824762 - .long 3217213456 - .long 2684354560 - .long 3159437312 - .long 2592747447 - .long 3213009315 - .long 0 - .long 1072693248 - .long 3470456183 - .long 3217111536 - .long 1073741824 - .long 1013261123 - .long 2402293340 - .long 3212758471 - .long 0 - .long 1072693248 - .long 1453945614 - .long 3216987726 - .long 1610612736 - .long 3158976260 - .long 1227670166 - .long 3212375297 - .long 0 - .long 1072693248 - .long 3349070549 - .long 3216783237 - .long 3758096384 - .long 1009054621 - .long 393047345 - .long 3212032302 - .long 0 - .long 1072693248 - .long 3156849708 - .long 3216578470 - .long 3221225472 - .long 1010706200 - .long 1118107366 - .long 3211670787 - .long 0 - .long 1072693248 - .long 177906713 - .long 3216373456 - .long 3221225472 - .long 1011826722 - .long 4269262315 - .long 3211145810 - .long 0 - .long 1072693248 - .long 2462980598 - .long 3216168224 - .long 2684354560 - .long 1011458184 - .long 3810305407 - .long 3210663220 - .long 0 - .long 1072693248 - .long 2046304480 - .long 3215943022 - .long 3758096384 - .long 1008919019 - .long 220529721 - .long 3209935929 - .long 0 - .long 1072693248 - .long 4044216340 - .long 3215531877 - .long 0 - .long 1009324733 - .long 69373323 - .long 3209049152 - .long 0 - .long 1072693248 - .long 1972655565 - .long 3215120485 - .long 1073741824 - .long 3156641526 - .long 3650591271 - .long 3207838971 - .long 0 - .long 1072693248 - .long 4154680958 - .long 3214483797 - .long 0 - .long 1006312803 - .long 2376373521 - .long 3205741868 - .long 0 - .long 1072693248 - .long 4242458500 - .long 3213435345 - .long 2684354560 - .long 3156838286 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2376373521 - .long 3205741868 - .long 0 - .long 1072693248 - .long 4242458500 - .long 1065951697 - .long 2684354560 - .long 1009354638 - .long 3650591271 - .long 3207838971 - .long 0 - .long 1072693248 - .long 4154680958 - .long 1067000149 - .long 0 - .long 3153796451 - .long 69373323 - .long 3209049152 - .long 0 - .long 1072693248 - .long 1972655565 - .long 1067636837 - .long 1073741824 - .long 1009157878 - .long 220529721 - .long 3209935929 - .long 0 - .long 1072693248 - .long 4044216340 - .long 1068048229 - .long 0 - .long 3156808381 - .long 3810305407 - .long 3210663220 - .long 0 - .long 1072693248 - .long 2046304480 - .long 1068459374 - .long 3758096384 - .long 3156402667 - .long 4269262315 - .long 3211145810 - .long 0 - .long 1072693248 - .long 2462980598 - .long 1068684576 - .long 2684354560 - .long 3158941832 - .long 1118107366 - .long 3211670787 - .long 0 - .long 1072693248 - .long 177906713 - .long 1068889808 - .long 3221225472 - .long 3159310370 - .long 393047345 - .long 3212032302 - .long 0 - .long 1072693248 - .long 3156849708 - .long 1069094822 - .long 3221225472 - .long 3158189848 - .long 1227670166 - .long 3212375297 - .long 0 - .long 1072693248 - .long 3349070549 - .long 1069299589 - .long 3758096384 - .long 3156538269 - .long 2402293340 - .long 3212758471 - .long 0 - .long 1072693248 - .long 1453945614 - .long 1069504078 - .long 1610612736 - .long 1011492612 - .long 2592747447 - .long 3213009315 - .long 0 - .long 1072693248 - .long 3470456183 - .long 1069627888 - .long 1073741824 - .long 3160744771 - .long 1037482584 - .long 3213240992 - .long 0 - .long 1072693248 - .long 1854824762 - .long 1069729808 - .long 2684354560 - .long 1011953664 - .long 3451754846 - .long 3213492662 - .long 0 - .long 1072693248 - .long 2972270170 - .long 1069831542 - .long 1073741824 - .long 3159524770 - .long 1672287667 - .long 3213764289 - .long 0 - .long 1072693248 - .long 1149976518 - .long 1069933076 - .long 1610612736 - .long 1013264895 - .long 2346447124 - .long 3213970635 - .long 0 - .long 1072693248 - .long 3729833777 - .long 1070034393 - .long 3758096384 - .long 1013044718 - .long 18115067 - .long 3214126342 - .long 0 - .long 1072693248 - .long 1013556747 - .long 1070135480 - .long 2684354560 - .long 3160567065 - .long 2660899430 - .long 3214291960 - .long 0 - .long 1072693248 - .long 632292433 - .long 1070236320 - .long 3758096384 - .long 3160963333 - .long 1935888103 - .long 3214467466 - .long 0 - .long 1072693248 - .long 1786662755 - .long 1070336898 - .long 2147483648 - .long 3155882307 - .long 288924873 - .long 3214652833 - .long 0 - .long 1072693248 - .long 3846521617 - .long 1070437199 - .long 536870912 - .long 1013406610 - .long 2377770267 - .long 3214848032 - .long 0 - .long 1072693248 - .long 2065784603 - .long 1070537209 - .long 3758096384 - .long 3160681966 - .long 3250111450 - .long 3214993525 - .long 0 - .long 1072693248 - .long 238550446 - .long 1070616504 - .long 2684354560 - .long 3154383565 - .long 2306566604 - .long 3215100913 - .long 0 - .long 1072693248 - .long 1655830135 - .long 1070666194 - .long 0 - .long 1014506690 - .long 1913604284 - .long 3215213171 - .long 0 - .long 1072693248 - .long 1062001470 - .long 1070715716 - .long 0 - .long 3160875220 - .long 2476548698 - .long 3215330282 - .long 0 - .long 1072693248 - .long 785751814 - .long 1070765062 - .long 2684354560 - .long 3161838221 - .long 1261629236 - .long 3215452229 - .long 0 - .long 1072693248 - .long 3269558610 - .long 1070814224 - .long 536870912 - .long 3161705216 - .long 997322465 - .long 3215578993 - .long 0 - .long 1072693248 - .long 2484561409 - .long 1070863196 - .long 1073741824 - .long 1014024572 - .long 1296295961 - .long 3215710555 - .long 0 - .long 1072693248 - .long 1115219818 - .long 1070911970 - .long 0 - .long 1013072242 - .long 2962723252 - .long 3215846895 - .long 0 - .long 1072693248 - .long 1974149085 - .long 1070960538 - .long 3221225472 - .long 3156147648 - .long 4002549419 - .long 3215985292 - .long 0 - .long 1072693248 - .long 3711903686 - .long 1071008893 - .long 1073741824 - .long 1011944747 - .long 1234824733 - .long 3216058210 - .long 0 - .long 1072693248 - .long 821708191 - .long 1071057029 - .long 3758096384 - .long 3161738009 - .long 3996842794 - .long 3216133484 - .long 0 - .long 1072693248 - .long 824036583 - .long 1071104937 - .long 0 - .long 1008313330 - .long 2255197647 - .long 3216211105 - .long 0 - .long 1072693248 - .long 2796464483 - .long 1071152610 - .long 3221225472 - .long 3160878317 - .long 1638976426 - .long 3216291060 - .long 0 - .long 1072693248 - .long 1673302999 - .long 1071200042 - .long 2147483648 - .long 1013351473 - .long 1972483635 - .long 3216373337 - .long 0 - .long 1072693248 - .long 1135144330 - .long 1071247225 - .long 536870912 - .long 1013373569 - .long 1577996576 - .long 3216457924 - .long 0 - .long 1072693248 - .long 728580042 - .long 1071294152 - .long 1610612736 - .long 3162332944 - .long 1578746984 - .long 3216544808 - .long 0 - .long 1072693248 - .long 165764288 - .long 1071340816 - .long 3221225472 - .long 1013298018 - .long 1612193054 - .long 3216633976 - .long 0 - .long 1072693248 - .long 3623952103 - .long 1071387209 - .long 2684354560 - .long 3161985962 - .long 4133449816 - .long 3216725414 - .long 0 - .long 1072693248 - .long 2570175582 - .long 1071433326 - .long 1073741824 - .long 1012303118 - .long 1539072807 - .long 3216819110 - .long 0 - .long 1072693248 - .long 1535566729 - .long 1071479159 - .long 2147483648 - .long 1014321388 - .long 1945768569 - .long 3216915048 - .long 0 - .long 1072693248 - .long 939980347 - .long 1071524701 - .long 0 - .long 1012796809 - .long 3429717432 - .long 3217013214 - .long 0 - .long 1072693248 - .long 1391425750 - .long 1071569945 - .long 3221225472 - .long 3162362103 - .long 1312926554 - .long 3217072381 - .long 0 - .long 1072693248 - .long 3690502842 - .long 1071614884 - .long 3221225472 - .long 3157453855 - .long 1663679671 - .long 3217123670 - .long 0 - .long 1072693248 - .long 2269920951 - .long 1071652092 - .long 3758096384 - .long 3161672245 - .long 3952756490 - .long 3217176050 - .long 0 - .long 1072693248 - .long 2569207790 - .long 1071674247 - .long 1073741824 - .long 3163183617 - .long 69903290 - .long 3217229515 - .long 0 - .long 1072693248 - .long 1297975695 - .long 1071696240 - .long 3221225472 - .long 3163083735 - .long 2678847490 - .long 3217284054 - .long 0 - .long 1072693248 - .long 1411074851 - .long 1071718067 - .long 1610612736 - .long 3163484731 - .long 2272832445 - .long 3217339661 - .long 0 - .long 1072693248 - .long 1675549513 - .long 1071739725 - .long 3221225472 - .long 3163025138 - .long 1539668340 - .long 3217396327 - .long 0 - .long 1072693248 - .long 967731400 - .long 1071761211 - .long 536870912 - .long 1015752157 - .long 2482246777 - .long 3217454043 - .long 0 - .long 1072693248 - .long 2570316633 - .long 1071782521 - .long 1610612736 - .long 3162744753 - .long 2129093113 - .long 3217512801 - .long 0 - .long 1072693248 - .long 1289556703 - .long 1071803653 - .long 536870912 - .long 3162888820 - .long 1129922991 - .long 3217572592 - .long 0 - .long 1072693248 - .long 637203434 - .long 1071824603 - .long 3221225472 - .long 3159443841 - .long 3761365757 - .long 3217633406 - .long 0 - .long 1072693248 - .long 4242632757 - .long 1071845367 - .long 536870912 - .long 3161390278 - .long 752919289 - .long 3217695236 - .long 0 - .long 1072693248 - .long 2969983475 - .long 1071865944 - .long 2684354560 - .long 3162635443 - .long 3652612115 - .long 3217758070 - .long 0 - .long 1072693248 - .long 689983673 - .long 1071886330 - .long 3758096384 - .long 1014906405 - .long 1883353036 - .long 3217821901 - .long 0 - .long 1072693248 - .long 1397053140 - .long 1071906521 - .long 1610612736 - .long 1015245078 - .long 1403757309 - .long 3217886718 - .long 0 - .long 1072693248 - .long 621354454 - .long 1071926515 - .long 536870912 - .long 1013450602 - .long 3239527685 - .long 3217952511 - .long 0 - .long 1072693248 - .long 2610628921 - .long 1071946308 - .long 1610612736 - .long 3162668769 - .long 3489768009 - .long 3218019271 - .long 0 - .long 1072693248 - .long 3152274921 - .long 1071965898 - .long 3758096384 - .long 1013170835 - .long 2371640770 - .long 1070588851 - .long 0 - .long 1071644672 - .long 2460177814 - .long 1071985282 - .long 2147483648 - .long 3162116843 - .long 2309668539 - .long 1070520188 - .long 0 - .long 1071644672 - .long 881650848 - .long 1072004457 - .long 2147483648 - .long 3162986272 - .long 2081278341 - .long 1070450589 - .long 0 - .long 1071644672 - .long 3194290572 - .long 1072023419 - .long 2147483648 - .long 1015048682 - .long 3753901657 - .long 1070380064 - .long 0 - .long 1071644672 - .long 1427975391 - .long 1072042167 - .long 1073741824 - .long 3161608627 - .long 1403691706 - .long 1070308625 - .long 0 - .long 1071644672 - .long 636516413 - .long 1072060697 - .long 3758096384 - .long 1015823716 - .long 2583490354 - .long 1070236281 - .long 0 - .long 1071644672 - .long 1719614413 - .long 1072079006 - .long 0 - .long 3163282740 - .long 2546065654 - .long 1070163044 - .long 0 - .long 1071644672 - .long 1424664751 - .long 1072097092 - .long 3221225472 - .long 3163405315 - .long 1416934267 - .long 1070088925 - .long 0 - .long 1071644672 - .long 938475414 - .long 1072114952 - .long 0 - .long 1015076079 - .long 4187227697 - .long 1070013934 - .long 0 - .long 1071644672 - .long 1594061409 - .long 1072132583 - .long 2147483648 - .long 1014353870 - .long 3526603391 - .long 1069938084 - .long 0 - .long 1071644672 - .long 577417135 - .long 1072149983 - .long 2684354560 - .long 3161519415 - .long 1250776663 - .long 1069861386 - .long 0 - .long 1071644672 - .long 3814135665 - .long 1072167148 - .long 3221225472 - .long 3163146456 - .long 4019165092 - .long 1069783850 - .long 0 - .long 1071644672 - .long 201299822 - .long 1072184078 - .long 3758096384 - .long 3161912352 - .long 1852581091 - .long 1069705490 - .long 0 - .long 1071644672 - .long 263859903 - .long 1072200768 - .long 0 - .long 3162692284 - .long 2485417816 - .long 1069626316 - .long 0 - .long 1071644672 - .long 1796544321 - .long 1072217216 - .long 536870912 - .long 3162686945 - .long 2586490530 - .long 1069545162 - .long 0 - .long 1071644672 - .long 2750387213 - .long 1072233420 - .long 2147483648 - .long 3160858537 - .long 1224902090 - .long 1069383633 - .long 0 - .long 1071644672 - .long 1234330619 - .long 1072249378 - .long 2684354560 - .long 1015272473 - .long 2285031318 - .long 1069220549 - .long 0 - .long 1071644672 - .long 4106737474 - .long 1072265086 - .long 2684354560 - .long 3162592377 - .long 3876290983 - .long 1069055935 - .long 0 - .long 1071644672 - .long 1207142209 - .long 1072280544 - .long 2147483648 - .long 3162705634 - .long 802660176 - .long 1068889817 - .long 0 - .long 1071644672 - .long 4012486548 - .long 1072295747 - .long 2684354560 - .long 1014701564 - .long 1726519029 - .long 1068722218 - .long 0 - .long 1071644672 - .long 2688952194 - .long 1072310695 - .long 0 - .long 3161532603 - .long 3382663878 - .long 1068553164 - .long 0 - .long 1071644672 - .long 453180130 - .long 1072325385 - .long 1073741824 - .long 3162411281 - .long 2598800519 - .long 1068266419 - .long 0 - .long 1071644672 - .long 688824739 - .long 1072339814 - .long 3758096384 - .long 1010431536 - .long 1038988426 - .long 1067922646 - .long 0 - .long 1071644672 - .long 2653017361 - .long 1072353980 - .long 0 - .long 3162800062 - .long 1102361128 - .long 1067576117 - .long 0 - .long 1071644672 - .long 1477771776 - .long 1072367882 - .long 536870912 - .long 3163104986 - .long 2880516564 - .long 1067003401 - .long 0 - .long 1071644672 - .long 1056266002 - .long 1072381517 - .long 2684354560 - .long 3163469496 - .long 1220541286 - .long 1066197478 - .long 0 - .long 1071644672 - .long 1159294526 - .long 1072394883 - .long 536870912 - .long 3163276959 - .long 1279178457 - .long 1064107143 - .long 0 - .long 1071644672 - .long 1731563730 - .long 1072407978 - .long 536870912 - .long 1015540302 - .long 31019393 - .long 3212646089 - .long 0 - .long 1071644672 - .long 2892993834 - .long 1072420800 - .long 536870912 - .long 3163039143 - .long 3506991783 - .long 3214032490 - .long 0 - .long 1071644672 - .long 645027145 - .long 1072433348 - .long 3221225472 - .long 1012602239 - .long 2140183630 - .long 3214756396 - .long 0 - .long 1071644672 - .long 4051746225 - .long 1072445618 - .long 1610612736 - .long 3161907377 - .long 600368053 - .long 3215209541 - .long 0 - .long 1071644672 - .long 881357723 - .long 1072457611 - .long 3221225472 - .long 1013810890 - .long 913431823 - .long 3215576203 - .long 0 - .long 1071644672 - .long 557060597 - .long 1072469323 - .long 0 - .long 3159554934 - .long 1073154251 - .long 3215945137 - .long 0 - .long 1071644672 - .long 4093443164 - .long 1072480752 - .long 536870912 - .long 1014912865 - .long 3631910143 - .long 3216149439 - .long 0 - .long 1071644672 - .long 4097623923 - .long 1072491898 - .long 2684354560 - .long 3160308587 - .long 1380647130 - .long 3216336095 - .long 0 - .long 1071644672 - .long 1950234076 - .long 1072502759 - .long 536870912 - .long 3159425498 - .long 4049357271 - .long 3216523802 - .long 0 - .long 1071644672 - .long 3511535930 - .long 1072513332 - .long 2147483648 - .long 3162828626 - .long 1896722595 - .long 3216712534 - .long 0 - .long 1071644672 - .long 1942611595 - .long 1072523617 - .long 3221225472 - .long 3162410081 - .long 1699043957 - .long 3216902261 - .long 0 - .long 1071644672 - .long 3476196678 - .long 1072533611 - .long 0 - .long 1014257638 - .long 3296146332 - .long 1069485732 - .long 0 - .long 1070596096 - .long 1647878299 - .long 1072543314 - .long 3758096384 - .long 3162169063 - .long 3286832763 - .long 1069294100 - .long 0 - .long 1070596096 - .long 3066872380 - .long 1072552723 - .long 3221225472 - .long 1015561271 - .long 1962712856 - .long 1069101559 - .long 0 - .long 1070596096 - .long 1647164971 - .long 1072561838 - .long 2147483648 - .long 3162838250 - .long 3601629044 - .long 1068908137 - .long 0 - .long 1070596096 - .long 83265253 - .long 1072570657 - .long 1610612736 - .long 3162510535 - .long 165911977 - .long 1068713865 - .long 0 - .long 1070596096 - .long 1261158782 - .long 1072579178 - .long 2147483648 - .long 1015711544 - .long 1348311045 - .long 1068518770 - .long 0 - .long 1070596096 - .long 3964199186 - .long 1072587400 - .long 3758096384 - .long 3160501078 - .long 386665102 - .long 1068146822 - .long 0 - .long 1070596096 - .long 2873938189 - .long 1072595323 - .long 1610612736 - .long 3162311422 - .long 1991047213 - .long 1067753521 - .long 0 - .long 1070596096 - .long 1455828442 - .long 1072602945 - .long 3758096384 - .long 1015505073 - .long 4107121629 - .long 1067267139 - .long 0 - .long 1070596096 - .long 3370060660 - .long 1072610264 - .long 1610612736 - .long 1014787212 - .long 723478390 - .long 1066474790 - .long 0 - .long 1070596096 - .long 3882371427 - .long 1072617280 - .long 2147483648 - .long 1014923975 - .long 2382326656 - .long 1064562179 - .long 0 - .long 1070596096 - .long 2749658050 - .long 1072623992 - .long 1610612736 - .long 1015427338 - .long 2614369450 - .long 3212624080 - .long 0 - .long 1070596096 - .long 4220661975 - .long 1072630398 - .long 3221225472 - .long 1014312058 - .long 3587565429 - .long 3214108032 - .long 0 - .long 1070596096 - .long 4151720666 - .long 1072636498 - .long 0 - .long 3162639544 - .long 2886567144 - .long 3214910444 - .long 0 - .long 1070596096 - .long 2892293513 - .long 1072642291 - .long 2684354560 - .long 3162340271 - .long 1765797566 - .long 3215324543 - .long 0 - .long 1070596096 - .long 990588717 - .long 1072647776 - .long 3758096384 - .long 3162041857 - .long 240740309 - .long 3215727903 - .long 0 - .long 1070596096 - .long 3489094832 - .long 1072652951 - .long 536870912 - .long 1014325783 - .long 2034433221 - .long 1068349287 - .long 0 - .long 1069547520 - .long 2745245815 - .long 1072657817 - .long 3221225472 - .long 1015566129 - .long 304938777 - .long 1067944017 - .long 0 - .long 1069547520 - .long 4201728937 - .long 1072662372 - .long 1610612736 - .long 1014674006 - .long 3299146087 - .long 1067537882 - .long 0 - .long 1069547520 - .long 617154971 - .long 1072666617 - .long 3758096384 - .long 3163433696 - .long 1953696209 - .long 1066811523 - .long 0 - .long 1069547520 - .long 2131272983 - .long 1072670549 - .long 3221225472 - .long 3163005096 - .long 3987691371 - .long 1065590540 - .long 0 - .long 1069547520 - .long 1905645377 - .long 1072674169 - .long 1610612736 - .long 1014087596 - .long 718380601 - .long 3211081269 - .long 0 - .long 1069547520 - .long 1893834707 - .long 1072677476 - .long 1610612736 - .long 1015147654 - .long 3272206680 - .long 3213771729 - .long 0 - .long 1069547520 - .long 4251821691 - .long 1072680469 - .long 2147483648 - .long 3161841007 - .long 257503056 - .long 3214647653 - .long 0 - .long 1069547520 - .long 2748392742 - .long 1072683149 - .long 536870912 - .long 3163061750 - .long 711626851 - .long 1066916672 - .long 0 - .long 1068498944 - .long 4240268041 - .long 1072685514 - .long 536870912 - .long 1013588963 - .long 2523975598 - .long 1065789700 - .long 0 - .long 1068498944 - .long 2902558778 - .long 1072687565 - .long 3221225472 - .long 1013260780 - .long 3237733378 - .long 3209908784 - .long 0 - .long 1068498944 - .long 1703834029 - .long 1072689301 - .long 3758096384 - .long 1015028364 - .long 1003003824 - .long 3213591144 - .long 0 - .long 1068498944 - .long 3816385918 - .long 1072690721 - .long 536870912 - .long 3161216956 - .long 2896342633 - .long 1064747819 - .long 0 - .long 1067450368 - .long 4026464093 - .long 1072691826 - .long 3221225472 - .long 3163075789 - .long 561145352 - .long 3212540584 - .long 0 - .long 1067450368 - .long 1619315981 - .long 1072692616 - .long 1073741824 - .long 3162584397 - .long 210035182 - .long 3211491512 - .long 0 - .long 1066401792 - .long 379294427 - .long 1072693090 - .long 3221225472 - .long 1015405987 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .type __svml_dcos_data_internal_ha,@object - .size __svml_dcos_data_internal_ha,17280 - .align 64 -__svml_dcos_reduction_data_internal: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 20 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 40 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 81 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 162 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 325 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 651 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1173554908 - .long 1 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2347109817 - .long 2 - .long 0 - .long 0 - .long 0 - .long 0 - .long 399252338 - .long 5 - .long 0 - .long 0 - .long 0 - .long 0 - .long 798504676 - .long 10 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1597009353 - .long 20 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3194018707 - .long 40 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2093070119 - .long 81 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4186140238 - .long 162 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4077313180 - .long 325 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3859659065 - .long 651 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3424350834 - .long 1303 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2553734372 - .long 2607 - .long 0 - .long 0 - .long 0 - .long 0 - .long 812501448 - .long 5215 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1625002897 - .long 10430 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3250005794 - .long 20860 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2205044292 - .long 41721 - .long 0 - .long 0 - .long 0 - .long 0 - .long 115121288 - .long 83443 - .long 0 - .long 0 - .long 0 - .long 0 - .long 230242576 - .long 166886 - .long 0 - .long 0 - .long 0 - .long 0 - .long 460485152 - .long 333772 - .long 0 - .long 0 - .long 0 - .long 0 - .long 920970305 - .long 667544 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1841940610 - .long 1335088 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3683881221 - .long 2670176 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3072795146 - .long 5340353 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1850622997 - .long 10680707 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3701245994 - .long 21361414 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3107524692 - .long 42722829 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1920082089 - .long 85445659 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3840164178 - .long 170891318 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3385361061 - .long 341782637 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2475754826 - .long 683565275 - .long 0 - .long 0 - .long 0 - .long 0 - .long 656542356 - .long 1367130551 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1313084713 - .long 2734261102 - .long 0 - .long 0 - .long 1 - .long 0 - .long 2626169427 - .long 1173554908 - .long 0 - .long 0 - .long 2 - .long 0 - .long 957371559 - .long 2347109817 - .long 0 - .long 0 - .long 5 - .long 0 - .long 1914743119 - .long 399252338 - .long 0 - .long 0 - .long 10 - .long 0 - .long 3829486239 - .long 798504676 - .long 0 - .long 0 - .long 20 - .long 0 - .long 3364005183 - .long 1597009353 - .long 0 - .long 0 - .long 40 - .long 0 - .long 2433043071 - .long 3194018707 - .long 0 - .long 0 - .long 81 - .long 0 - .long 571118846 - .long 2093070119 - .long 0 - .long 0 - .long 162 - .long 0 - .long 1142237692 - .long 4186140238 - .long 0 - .long 0 - .long 325 - .long 0 - .long 2284475384 - .long 4077313180 - .long 0 - .long 0 - .long 651 - .long 0 - .long 273983472 - .long 3859659065 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 547966945 - .long 3424350834 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 1095933890 - .long 2553734372 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 2191867780 - .long 812501448 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 88768265 - .long 1625002897 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 177536531 - .long 3250005794 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 355073063 - .long 2205044292 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 710146126 - .long 115121288 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 1420292253 - .long 230242576 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 2840584506 - .long 460485152 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 1386201717 - .long 920970305 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 2772403434 - .long 1841940610 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 1249839573 - .long 3683881221 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 2499679147 - .long 3072795146 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 704390999 - .long 1850622997 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 1408781999 - .long 3701245994 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 2817563999 - .long 3107524692 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 1340160702 - .long 1920082089 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 2680321405 - .long 3840164178 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 1065675514 - .long 3385361061 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 2131351028 - .long 2475754826 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 4262702056 - .long 656542356 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 4230436817 - .long 1313084713 - .long 0 - .long 0 - .long 1173554908 - .long 1 - .long 4165906339 - .long 2626169427 - .long 0 - .long 0 - .long 2347109817 - .long 2 - .long 4036845383 - .long 957371559 - .long 0 - .long 0 - .long 399252338 - .long 5 - .long 3778723471 - .long 1914743119 - .long 0 - .long 0 - .long 798504676 - .long 10 - .long 3262479647 - .long 3829486239 - .long 0 - .long 0 - .long 1597009353 - .long 20 - .long 2229991998 - .long 3364005183 - .long 0 - .long 0 - .long 3194018707 - .long 40 - .long 165016701 - .long 2433043071 - .long 0 - .long 0 - .long 2093070119 - .long 81 - .long 330033402 - .long 571118846 - .long 0 - .long 0 - .long 4186140238 - .long 162 - .long 660066805 - .long 1142237692 - .long 0 - .long 0 - .long 4077313180 - .long 325 - .long 1320133610 - .long 2284475384 - .long 0 - .long 0 - .long 3859659065 - .long 651 - .long 2640267220 - .long 273983472 - .long 0 - .long 0 - .long 3424350834 - .long 1303 - .long 985567145 - .long 547966945 - .long 0 - .long 0 - .long 2553734372 - .long 2607 - .long 1971134291 - .long 1095933890 - .long 0 - .long 0 - .long 812501448 - .long 5215 - .long 3942268582 - .long 2191867780 - .long 0 - .long 0 - .long 1625002897 - .long 10430 - .long 3589569869 - .long 88768265 - .long 0 - .long 0 - .long 3250005794 - .long 20860 - .long 2884172442 - .long 177536531 - .long 0 - .long 0 - .long 2205044292 - .long 41721 - .long 1473377588 - .long 355073063 - .long 0 - .long 0 - .long 115121288 - .long 83443 - .long 2946755177 - .long 710146126 - .long 0 - .long 0 - .long 230242576 - .long 166886 - .long 1598543059 - .long 1420292253 - .long 0 - .long 0 - .long 460485152 - .long 333772 - .long 3197086118 - .long 2840584506 - .long 0 - .long 0 - .long 920970305 - .long 667544 - .long 2099204941 - .long 1386201717 - .long 0 - .long 0 - .long 1841940610 - .long 1335088 - .long 4198409883 - .long 2772403434 - .long 0 - .long 0 - .long 3683881221 - .long 2670176 - .long 4101852471 - .long 1249839573 - .long 0 - .long 0 - .long 3072795146 - .long 5340353 - .long 3908737646 - .long 2499679147 - .long 0 - .long 0 - .long 1850622997 - .long 10680707 - .long 3522507997 - .long 704390999 - .long 0 - .long 0 - .long 3701245994 - .long 21361414 - .long 2750048699 - .long 1408781999 - .long 0 - .long 0 - .long 3107524692 - .long 42722829 - .long 1205130103 - .long 2817563999 - .long 0 - .long 0 - .long 1920082089 - .long 85445659 - .long 2410260206 - .long 1340160702 - .long 0 - .long 0 - .long 3840164178 - .long 170891318 - .long 525553116 - .long 2680321405 - .long 0 - .long 0 - .long 3385361061 - .long 341782637 - .long 1051106232 - .long 1065675514 - .long 0 - .long 0 - .long 2475754826 - .long 683565275 - .long 2102212464 - .long 2131351028 - .long 0 - .long 0 - .long 656542356 - .long 1367130551 - .long 4204424928 - .long 4262702056 - .long 0 - .long 0 - .long 1313084713 - .long 2734261102 - .long 4113882560 - .long 4230436817 - .long 1 - .long 0 - .long 2626169427 - .long 1173554908 - .long 3932797825 - .long 4165906339 - .long 2 - .long 0 - .long 957371559 - .long 2347109817 - .long 3570628355 - .long 4036845383 - .long 5 - .long 0 - .long 1914743119 - .long 399252338 - .long 2846289414 - .long 3778723471 - .long 10 - .long 0 - .long 3829486239 - .long 798504676 - .long 1397611533 - .long 3262479647 - .long 20 - .long 0 - .long 3364005183 - .long 1597009353 - .long 2795223067 - .long 2229991998 - .long 40 - .long 0 - .long 2433043071 - .long 3194018707 - .long 1295478838 - .long 165016701 - .long 81 - .long 0 - .long 571118846 - .long 2093070119 - .long 2590957677 - .long 330033402 - .long 162 - .long 0 - .long 1142237692 - .long 4186140238 - .long 886948059 - .long 660066805 - .long 325 - .long 0 - .long 2284475384 - .long 4077313180 - .long 1773896118 - .long 1320133610 - .long 651 - .long 0 - .long 273983472 - .long 3859659065 - .long 3547792237 - .long 2640267220 - .long 1303 - .long 0 - .long 547966945 - .long 3424350834 - .long 2800617179 - .long 985567145 - .long 2607 - .long 0 - .long 1095933890 - .long 2553734372 - .long 1306267062 - .long 1971134291 - .long 5215 - .long 0 - .long 2191867780 - .long 812501448 - .long 2612534124 - .long 3942268582 - .long 10430 - .long 0 - .long 88768265 - .long 1625002897 - .long 930100952 - .long 3589569869 - .long 20860 - .long 0 - .long 177536531 - .long 3250005794 - .long 1860201905 - .long 2884172442 - .long 41721 - .long 0 - .long 355073063 - .long 2205044292 - .long 3720403810 - .long 1473377588 - .long 83443 - .long 0 - .long 710146126 - .long 115121288 - .long 3145840325 - .long 2946755177 - .long 166886 - .long 0 - .long 1420292253 - .long 230242576 - .long 1996713354 - .long 1598543059 - .long 333772 - .long 0 - .long 2840584506 - .long 460485152 - .long 3993426708 - .long 3197086118 - .long 667544 - .long 0 - .long 1386201717 - .long 920970305 - .long 3691886121 - .long 2099204941 - .long 1335088 - .long 0 - .long 2772403434 - .long 1841940610 - .long 3088804946 - .long 4198409883 - .long 2670176 - .long 0 - .long 1249839573 - .long 3683881221 - .long 1882642597 - .long 4101852471 - .long 5340353 - .long 0 - .long 2499679147 - .long 3072795146 - .long 3765285194 - .long 3908737646 - .long 10680707 - .long 0 - .long 704390999 - .long 1850622997 - .long 3235603093 - .long 3522507997 - .long 21361414 - .long 0 - .long 1408781999 - .long 3701245994 - .long 2176238891 - .long 2750048699 - .long 42722829 - .long 0 - .long 2817563999 - .long 3107524692 - .long 57510486 - .long 1205130103 - .long 85445659 - .long 0 - .long 1340160702 - .long 1920082089 - .long 115020972 - .long 2410260206 - .long 170891318 - .long 0 - .long 2680321405 - .long 3840164178 - .long 230041945 - .long 525553116 - .long 341782637 - .long 0 - .long 1065675514 - .long 3385361061 - .long 460083891 - .long 1051106232 - .long 683565275 - .long 0 - .long 2131351028 - .long 2475754826 - .long 920167782 - .long 2102212464 - .long 1367130551 - .long 0 - .long 4262702056 - .long 656542356 - .long 1840335564 - .long 4204424928 - .long 2734261102 - .long 0 - .long 4230436817 - .long 1313084713 - .long 3680671129 - .long 4113882560 - .long 1173554908 - .long 1 - .long 4165906339 - .long 2626169427 - .long 3066374962 - .long 3932797825 - .long 2347109817 - .long 2 - .long 4036845383 - .long 957371559 - .long 1837782628 - .long 3570628355 - .long 399252338 - .long 5 - .long 3778723471 - .long 1914743119 - .long 3675565257 - .long 2846289414 - .long 798504676 - .long 10 - .long 3262479647 - .long 3829486239 - .long 3056163219 - .long 1397611533 - .long 1597009353 - .long 20 - .long 2229991998 - .long 3364005183 - .long 1817359143 - .long 2795223067 - .long 3194018707 - .long 40 - .long 165016701 - .long 2433043071 - .long 3634718287 - .long 1295478838 - .long 2093070119 - .long 81 - .long 330033402 - .long 571118846 - .long 2974469278 - .long 2590957677 - .long 4186140238 - .long 162 - .long 660066805 - .long 1142237692 - .long 1653971260 - .long 886948059 - .long 4077313180 - .long 325 - .long 1320133610 - .long 2284475384 - .long 3307942520 - .long 1773896118 - .long 3859659065 - .long 651 - .long 2640267220 - .long 273983472 - .long 2320917745 - .long 3547792237 - .long 3424350834 - .long 1303 - .long 985567145 - .long 547966945 - .long 346868194 - .long 2800617179 - .long 2553734372 - .long 2607 - .long 1971134291 - .long 1095933890 - .long 693736388 - .long 1306267062 - .long 812501448 - .long 5215 - .long 3942268582 - .long 2191867780 - .long 1387472776 - .long 2612534124 - .long 1625002897 - .long 10430 - .long 3589569869 - .long 88768265 - .long 2774945552 - .long 930100952 - .long 3250005794 - .long 20860 - .long 2884172442 - .long 177536531 - .long 1254923809 - .long 1860201905 - .long 2205044292 - .long 41721 - .long 1473377588 - .long 355073063 - .long 2509847619 - .long 3720403810 - .long 115121288 - .long 83443 - .long 2946755177 - .long 710146126 - .long 724727943 - .long 3145840325 - .long 230242576 - .long 166886 - .long 1598543059 - .long 1420292253 - .long 1449455886 - .long 1996713354 - .long 460485152 - .long 333772 - .long 3197086118 - .long 2840584506 - .long 2898911772 - .long 3993426708 - .long 920970305 - .long 667544 - .long 2099204941 - .long 1386201717 - .long 1502856249 - .long 3691886121 - .long 1841940610 - .long 1335088 - .long 4198409883 - .long 2772403434 - .long 3005712498 - .long 3088804946 - .long 3683881221 - .long 2670176 - .long 4101852471 - .long 1249839573 - .long 1716457700 - .long 1882642597 - .long 3072795146 - .long 5340353 - .long 3908737646 - .long 2499679147 - .long 3432915400 - .long 3765285194 - .long 1850622997 - .long 10680707 - .long 3522507997 - .long 704390999 - .long 2570863504 - .long 3235603093 - .long 3701245994 - .long 21361414 - .long 2750048699 - .long 1408781999 - .long 846759712 - .long 2176238891 - .long 3107524692 - .long 42722829 - .long 1205130103 - .long 2817563999 - .long 1693519425 - .long 57510486 - .long 1920082089 - .long 85445659 - .long 2410260206 - .long 1340160702 - .long 3387038850 - .long 115020972 - .long 3840164178 - .long 170891318 - .long 525553116 - .long 2680321405 - .long 2479110404 - .long 230041945 - .long 3385361061 - .long 341782637 - .long 1051106232 - .long 1065675514 - .long 663253512 - .long 460083891 - .long 2475754826 - .long 683565275 - .long 2102212464 - .long 2131351028 - .long 1326507024 - .long 920167782 - .long 656542356 - .long 1367130551 - .long 4204424928 - .long 4262702056 - .long 2653014048 - .long 1840335564 - .long 1313084713 - .long 2734261102 - .long 4113882560 - .long 4230436817 - .long 1011060801 - .long 3680671129 - .long 2626169427 - .long 1173554908 - .long 3932797825 - .long 4165906339 - .long 2022121603 - .long 3066374962 - .long 957371559 - .long 2347109817 - .long 3570628355 - .long 4036845383 - .long 4044243207 - .long 1837782628 - .long 1914743119 - .long 399252338 - .long 2846289414 - .long 3778723471 - .long 3793519119 - .long 3675565257 - .long 3829486239 - .long 798504676 - .long 1397611533 - .long 3262479647 - .long 3292070943 - .long 3056163219 - .long 3364005183 - .long 1597009353 - .long 2795223067 - .long 2229991998 - .long 2289174591 - .long 1817359143 - .long 2433043071 - .long 3194018707 - .long 1295478838 - .long 165016701 - .long 283381887 - .long 3634718287 - .long 571118846 - .long 2093070119 - .long 2590957677 - .long 330033402 - .long 566763775 - .long 2974469278 - .long 1142237692 - .long 4186140238 - .long 886948059 - .long 660066805 - .long 1133527550 - .long 1653971260 - .long 2284475384 - .long 4077313180 - .long 1773896118 - .long 1320133610 - .long 2267055100 - .long 3307942520 - .long 273983472 - .long 3859659065 - .long 3547792237 - .long 2640267220 - .long 239142905 - .long 2320917745 - .long 547966945 - .long 3424350834 - .long 2800617179 - .long 985567145 - .long 478285810 - .long 346868194 - .long 1095933890 - .long 2553734372 - .long 1306267062 - .long 1971134291 - .long 956571621 - .long 693736388 - .long 2191867780 - .long 812501448 - .long 2612534124 - .long 3942268582 - .long 1913143242 - .long 1387472776 - .long 88768265 - .long 1625002897 - .long 930100952 - .long 3589569869 - .long 3826286484 - .long 2774945552 - .long 177536531 - .long 3250005794 - .long 1860201905 - .long 2884172442 - .long 3357605672 - .long 1254923809 - .long 355073063 - .long 2205044292 - .long 3720403810 - .long 1473377588 - .long 2420244049 - .long 2509847619 - .long 710146126 - .long 115121288 - .long 3145840325 - .long 2946755177 - .long 545520802 - .long 724727943 - .long 1420292253 - .long 230242576 - .long 1996713354 - .long 1598543059 - .long 1091041605 - .long 1449455886 - .long 2840584506 - .long 460485152 - .long 3993426708 - .long 3197086118 - .long 2182083211 - .long 2898911772 - .long 1386201717 - .long 920970305 - .long 3691886121 - .long 2099204941 - .long 69199126 - .long 1502856249 - .long 2772403434 - .long 1841940610 - .long 3088804946 - .long 4198409883 - .long 138398252 - .long 3005712498 - .long 1249839573 - .long 3683881221 - .long 1882642597 - .long 4101852471 - .long 276796504 - .long 1716457700 - .long 2499679147 - .long 3072795146 - .long 3765285194 - .long 3908737646 - .long 553593009 - .long 3432915400 - .long 704390999 - .long 1850622997 - .long 3235603093 - .long 3522507997 - .long 1107186019 - .long 2570863504 - .long 1408781999 - .long 3701245994 - .long 2176238891 - .long 2750048699 - .long 2214372039 - .long 846759712 - .long 2817563999 - .long 3107524692 - .long 57510486 - .long 1205130103 - .long 133776782 - .long 1693519425 - .long 1340160702 - .long 1920082089 - .long 115020972 - .long 2410260206 - .long 267553565 - .long 3387038850 - .long 2680321405 - .long 3840164178 - .long 230041945 - .long 525553116 - .long 535107130 - .long 2479110404 - .long 1065675514 - .long 3385361061 - .long 460083891 - .long 1051106232 - .long 1070214261 - .long 663253512 - .long 2131351028 - .long 2475754826 - .long 920167782 - .long 2102212464 - .long 2140428522 - .long 1326507024 - .long 4262702056 - .long 656542356 - .long 1840335564 - .long 4204424928 - .long 4280857045 - .long 2653014048 - .long 4230436817 - .long 1313084713 - .long 3680671129 - .long 4113882560 - .long 4266746795 - .long 1011060801 - .long 4165906339 - .long 2626169427 - .long 3066374962 - .long 3932797825 - .long 4238526295 - .long 2022121603 - .long 4036845383 - .long 957371559 - .long 1837782628 - .long 3570628355 - .long 4182085295 - .long 4044243207 - .long 3778723471 - .long 1914743119 - .long 3675565257 - .long 2846289414 - .long 4069203294 - .long 3793519119 - .long 3262479647 - .long 3829486239 - .long 3056163219 - .long 1397611533 - .long 3843439293 - .long 3292070943 - .long 2229991998 - .long 3364005183 - .long 1817359143 - .long 2795223067 - .long 3391911291 - .long 2289174591 - .long 165016701 - .long 2433043071 - .long 3634718287 - .long 1295478838 - .long 2488855287 - .long 283381887 - .long 330033402 - .long 571118846 - .long 2974469278 - .long 2590957677 - .long 682743279 - .long 566763775 - .long 660066805 - .long 1142237692 - .long 1653971260 - .long 886948059 - .long 1365486558 - .long 1133527550 - .long 1320133610 - .long 2284475384 - .long 3307942520 - .long 1773896118 - .long 2730973117 - .long 2267055100 - .long 2640267220 - .long 273983472 - .long 2320917745 - .long 3547792237 - .long 1166978938 - .long 239142905 - .long 985567145 - .long 547966945 - .long 346868194 - .long 2800617179 - .long 2333957877 - .long 478285810 - .long 1971134291 - .long 1095933890 - .long 693736388 - .long 1306267062 - .long 372948459 - .long 956571621 - .long 3942268582 - .long 2191867780 - .long 1387472776 - .long 2612534124 - .long 745896919 - .long 1913143242 - .long 3589569869 - .long 88768265 - .long 2774945552 - .long 930100952 - .long 1491793838 - .long 3826286484 - .long 2884172442 - .long 177536531 - .long 1254923809 - .long 1860201905 - .long 2983587677 - .long 3357605672 - .long 1473377588 - .long 355073063 - .long 2509847619 - .long 3720403810 - .long 1672208059 - .long 2420244049 - .long 2946755177 - .long 710146126 - .long 724727943 - .long 3145840325 - .long 3344416119 - .long 545520802 - .long 1598543059 - .long 1420292253 - .long 1449455886 - .long 1996713354 - .long 2393864943 - .long 1091041605 - .long 3197086118 - .long 2840584506 - .long 2898911772 - .long 3993426708 - .long 492762590 - .long 2182083211 - .long 2099204941 - .long 1386201717 - .long 1502856249 - .long 3691886121 - .long 985525180 - .long 69199126 - .long 4198409883 - .long 2772403434 - .long 3005712498 - .long 3088804946 - .long 1971050360 - .long 138398252 - .long 4101852471 - .long 1249839573 - .long 1716457700 - .long 1882642597 - .long 3942100721 - .long 276796504 - .long 3908737646 - .long 2499679147 - .long 3432915400 - .long 3765285194 - .long 3589234146 - .long 553593009 - .long 3522507997 - .long 704390999 - .long 2570863504 - .long 3235603093 - .long 2883500997 - .long 1107186019 - .long 2750048699 - .long 1408781999 - .long 846759712 - .long 2176238891 - .long 1472034698 - .long 2214372039 - .long 1205130103 - .long 2817563999 - .long 1693519425 - .long 57510486 - .long 2944069397 - .long 133776782 - .long 2410260206 - .long 1340160702 - .long 3387038850 - .long 115020972 - .long 1593171499 - .long 267553565 - .long 525553116 - .long 2680321405 - .long 2479110404 - .long 230041945 - .long 3186342998 - .long 535107130 - .long 1051106232 - .long 1065675514 - .long 663253512 - .long 460083891 - .long 2077718700 - .long 1070214261 - .long 2102212464 - .long 2131351028 - .long 1326507024 - .long 920167782 - .long 4155437400 - .long 2140428522 - .long 4204424928 - .long 4262702056 - .long 2653014048 - .long 1840335564 - .long 4015907504 - .long 4280857045 - .long 4113882560 - .long 4230436817 - .long 1011060801 - .long 3680671129 - .long 3736847713 - .long 4266746795 - .long 3932797825 - .long 4165906339 - .long 2022121603 - .long 3066374962 - .long 3178728131 - .long 4238526295 - .long 3570628355 - .long 4036845383 - .long 4044243207 - .long 1837782628 - .long 2062488966 - .long 4182085295 - .long 2846289414 - .long 3778723471 - .long 3793519119 - .long 3675565257 - .long 4124977933 - .long 4069203294 - .long 1397611533 - .long 3262479647 - .long 3292070943 - .long 3056163219 - .long 3954988571 - .long 3843439293 - .long 2795223067 - .long 2229991998 - .long 2289174591 - .long 1817359143 - .long 3615009846 - .long 3391911291 - .long 1295478838 - .long 165016701 - .long 283381887 - .long 3634718287 - .long 2935052397 - .long 2488855287 - .long 2590957677 - .long 330033402 - .long 566763775 - .long 2974469278 - .long 1575137499 - .long 682743279 - .long 886948059 - .long 660066805 - .long 1133527550 - .long 1653971260 - .long 3150274999 - .long 1365486558 - .long 1773896118 - .long 1320133610 - .long 2267055100 - .long 3307942520 - .long 2005582702 - .long 2730973117 - .long 3547792237 - .long 2640267220 - .long 239142905 - .long 2320917745 - .long 4011165404 - .long 1166978938 - .long 2800617179 - .long 985567145 - .long 478285810 - .long 346868194 - .long 3727363513 - .long 2333957877 - .long 1306267062 - .long 1971134291 - .long 956571621 - .long 693736388 - .long 3159759730 - .long 372948459 - .long 2612534124 - .long 3942268582 - .long 1913143242 - .long 1387472776 - .long 2024552164 - .long 745896919 - .long 930100952 - .long 3589569869 - .long 3826286484 - .long 2774945552 - .long 4049104329 - .long 1491793838 - .long 1860201905 - .long 2884172442 - .long 3357605672 - .long 1254923809 - .long 3803241362 - .long 2983587677 - .long 3720403810 - .long 1473377588 - .long 2420244049 - .long 2509847619 - .long 3311515428 - .long 1672208059 - .long 3145840325 - .long 2946755177 - .long 545520802 - .long 724727943 - .long 2328063560 - .long 3344416119 - .long 1996713354 - .long 1598543059 - .long 1091041605 - .long 1449455886 - .long 361159825 - .long 2393864943 - .long 3993426708 - .long 3197086118 - .long 2182083211 - .long 2898911772 - .long 722319651 - .long 492762590 - .long 3691886121 - .long 2099204941 - .long 69199126 - .long 1502856249 - .long 1444639302 - .long 985525180 - .long 3088804946 - .long 4198409883 - .long 138398252 - .long 3005712498 - .long 2889278605 - .long 1971050360 - .long 1882642597 - .long 4101852471 - .long 276796504 - .long 1716457700 - .long 1483589915 - .long 3942100721 - .long 3765285194 - .long 3908737646 - .long 553593009 - .long 3432915400 - .long 2967179831 - .long 3589234146 - .long 3235603093 - .long 3522507997 - .long 1107186019 - .long 2570863504 - .long 1639392366 - .long 2883500997 - .long 2176238891 - .long 2750048699 - .long 2214372039 - .long 846759712 - .long 3278784732 - .long 1472034698 - .long 57510486 - .long 1205130103 - .long 133776782 - .long 1693519425 - .long 2262602168 - .long 2944069397 - .long 115020972 - .long 2410260206 - .long 267553565 - .long 3387038850 - .long 230237041 - .long 1593171499 - .long 230041945 - .long 525553116 - .long 535107130 - .long 2479110404 - .long 460474083 - .long 3186342998 - .long 460083891 - .long 1051106232 - .long 1070214261 - .long 663253512 - .long 920948167 - .long 2077718700 - .long 920167782 - .long 2102212464 - .long 2140428522 - .long 1326507024 - .long 1841896334 - .long 4155437400 - .long 1840335564 - .long 4204424928 - .long 4280857045 - .long 2653014048 - .long 3683792669 - .long 4015907504 - .long 3680671129 - .long 4113882560 - .long 4266746795 - .long 1011060801 - .long 3072618042 - .long 3736847713 - .long 3066374962 - .long 3932797825 - .long 4238526295 - .long 2022121603 - .long 1850268788 - .long 3178728131 - .long 1837782628 - .long 3570628355 - .long 4182085295 - .long 4044243207 - .long 3700537577 - .long 2062488966 - .long 3675565257 - .long 2846289414 - .long 4069203294 - .long 3793519119 - .long 3106107858 - .long 4124977933 - .long 3056163219 - .long 1397611533 - .long 3843439293 - .long 3292070943 - .long 1917248420 - .long 3954988571 - .long 1817359143 - .long 2795223067 - .long 3391911291 - .long 2289174591 - .long 3834496840 - .long 3615009846 - .long 3634718287 - .long 1295478838 - .long 2488855287 - .long 283381887 - .long 3374026384 - .long 2935052397 - .long 2974469278 - .long 2590957677 - .long 682743279 - .long 566763775 - .long 2453085473 - .long 1575137499 - .long 1653971260 - .long 886948059 - .long 1365486558 - .long 1133527550 - .long 611203650 - .long 3150274999 - .long 3307942520 - .long 1773896118 - .long 2730973117 - .long 2267055100 - .long 1222407300 - .long 2005582702 - .long 2320917745 - .long 3547792237 - .long 1166978938 - .long 239142905 - .long 2444814601 - .long 4011165404 - .long 346868194 - .long 2800617179 - .long 2333957877 - .long 478285810 - .long 594661906 - .long 3727363513 - .long 693736388 - .long 1306267062 - .long 372948459 - .long 956571621 - .long 1189323812 - .long 3159759730 - .long 1387472776 - .long 2612534124 - .long 745896919 - .long 1913143242 - .long 2378647625 - .long 2024552164 - .long 2774945552 - .long 930100952 - .long 1491793838 - .long 3826286484 - .long 462327955 - .long 4049104329 - .long 1254923809 - .long 1860201905 - .long 2983587677 - .long 3357605672 - .long 924655910 - .long 3803241362 - .long 2509847619 - .long 3720403810 - .long 1672208059 - .long 2420244049 - .long 1849311821 - .long 3311515428 - .long 724727943 - .long 3145840325 - .long 3344416119 - .long 545520802 - .long 3698623643 - .long 2328063560 - .long 1449455886 - .long 1996713354 - .long 2393864943 - .long 1091041605 - .long 3102279991 - .long 361159825 - .long 2898911772 - .long 3993426708 - .long 492762590 - .long 2182083211 - .long 1909592686 - .long 722319651 - .long 1502856249 - .long 3691886121 - .long 985525180 - .long 69199126 - .long 3819185373 - .long 1444639302 - .long 3005712498 - .long 3088804946 - .long 1971050360 - .long 138398252 - .long 3343403450 - .long 2889278605 - .long 1716457700 - .long 1882642597 - .long 3942100721 - .long 276796504 - .long 2391839604 - .long 1483589915 - .long 3432915400 - .long 3765285194 - .long 3589234146 - .long 553593009 - .long 488711913 - .long 2967179831 - .long 2570863504 - .long 3235603093 - .long 2883500997 - .long 1107186019 - .long 977423826 - .long 1639392366 - .long 846759712 - .long 2176238891 - .long 1472034698 - .long 2214372039 - .long 1954847653 - .long 3278784732 - .long 1693519425 - .long 57510486 - .long 2944069397 - .long 133776782 - .long 3909695307 - .long 2262602168 - .long 3387038850 - .long 115020972 - .long 1593171499 - .long 267553565 - .long 3524423319 - .long 230237041 - .long 2479110404 - .long 230041945 - .long 3186342998 - .long 535107130 - .long 2753879342 - .long 460474083 - .long 663253512 - .long 460083891 - .long 2077718700 - .long 1070214261 - .long 1212791388 - .long 920948167 - .long 1326507024 - .long 920167782 - .long 4155437400 - .long 2140428522 - .long 2425582776 - .long 1841896334 - .long 2653014048 - .long 1840335564 - .long 4015907504 - .long 4280857045 - .long 556198256 - .long 3683792669 - .long 1011060801 - .long 3680671129 - .long 3736847713 - .long 4266746795 - .long 1112396512 - .long 3072618042 - .long 2022121603 - .long 3066374962 - .long 3178728131 - .long 4238526295 - .long 2224793024 - .long 1850268788 - .long 4044243207 - .long 1837782628 - .long 2062488966 - .long 4182085295 - .long 154618752 - .long 3700537577 - .long 3793519119 - .long 3675565257 - .long 4124977933 - .long 4069203294 - .long 309237504 - .long 3106107858 - .long 3292070943 - .long 3056163219 - .long 3954988571 - .long 3843439293 - .long 618475008 - .long 1917248420 - .long 2289174591 - .long 1817359143 - .long 3615009846 - .long 3391911291 - .long 1236950016 - .long 3834496840 - .long 283381887 - .long 3634718287 - .long 2935052397 - .long 2488855287 - .long 2473900033 - .long 3374026384 - .long 566763775 - .long 2974469278 - .long 1575137499 - .long 682743279 - .long 652832771 - .long 2453085473 - .long 1133527550 - .long 1653971260 - .long 3150274999 - .long 1365486558 - .long 1305665542 - .long 611203650 - .long 2267055100 - .long 3307942520 - .long 2005582702 - .long 2730973117 - .long 2611331084 - .long 1222407300 - .long 239142905 - .long 2320917745 - .long 4011165404 - .long 1166978938 - .long 927694873 - .long 2444814601 - .long 478285810 - .long 346868194 - .long 3727363513 - .long 2333957877 - .long 1855389746 - .long 594661906 - .long 956571621 - .long 693736388 - .long 3159759730 - .long 372948459 - .long 3710779492 - .long 1189323812 - .long 1913143242 - .long 1387472776 - .long 2024552164 - .long 745896919 - .long 3126591689 - .long 2378647625 - .long 3826286484 - .long 2774945552 - .long 4049104329 - .long 1491793838 - .long 1958216082 - .long 462327955 - .long 3357605672 - .long 1254923809 - .long 3803241362 - .long 2983587677 - .long 3916432164 - .long 924655910 - .long 2420244049 - .long 2509847619 - .long 3311515428 - .long 1672208059 - .long 3537897033 - .long 1849311821 - .long 545520802 - .long 724727943 - .long 2328063560 - .long 3344416119 - .long 2780826770 - .long 3698623643 - .long 1091041605 - .long 1449455886 - .long 361159825 - .long 2393864943 - .long 1266686244 - .long 3102279991 - .long 2182083211 - .long 2898911772 - .long 722319651 - .long 492762590 - .long 2533372489 - .long 1909592686 - .long 69199126 - .long 1502856249 - .long 1444639302 - .long 985525180 - .long 771777682 - .long 3819185373 - .long 138398252 - .long 3005712498 - .long 2889278605 - .long 1971050360 - .long 1543555365 - .long 3343403450 - .long 276796504 - .long 1716457700 - .long 1483589915 - .long 3942100721 - .long 3087110731 - .long 2391839604 - .long 553593009 - .long 3432915400 - .long 2967179831 - .long 3589234146 - .long 1879254167 - .long 488711913 - .long 1107186019 - .long 2570863504 - .long 1639392366 - .long 2883500997 - .long 3758508334 - .long 977423826 - .long 2214372039 - .long 846759712 - .long 3278784732 - .long 1472034698 - .long 3222049373 - .long 1954847653 - .long 133776782 - .long 1693519425 - .long 2262602168 - .long 2944069397 - .long 2149131451 - .long 3909695307 - .long 267553565 - .long 3387038850 - .long 230237041 - .long 1593171499 - .long 3295607 - .long 3524423319 - .long 535107130 - .long 2479110404 - .long 460474083 - .long 3186342998 - .long 6591214 - .long 2753879342 - .long 1070214261 - .long 663253512 - .long 920948167 - .long 2077718700 - .long 13182429 - .long 1212791388 - .long 2140428522 - .long 1326507024 - .long 1841896334 - .long 4155437400 - .long 26364858 - .long 2425582776 - .long 4280857045 - .long 2653014048 - .long 3683792669 - .long 4015907504 - .long 52729717 - .long 556198256 - .long 4266746795 - .long 1011060801 - .long 3072618042 - .long 3736847713 - .long 105459434 - .long 1112396512 - .long 4238526295 - .long 2022121603 - .long 1850268788 - .long 3178728131 - .long 210918868 - .long 2224793024 - .long 4182085295 - .long 4044243207 - .long 3700537577 - .long 2062488966 - .long 421837736 - .long 154618752 - .long 4069203294 - .long 3793519119 - .long 3106107858 - .long 4124977933 - .long 843675472 - .long 309237504 - .long 3843439293 - .long 3292070943 - .long 1917248420 - .long 3954988571 - .long 1687350944 - .long 618475008 - .long 3391911291 - .long 2289174591 - .long 3834496840 - .long 3615009846 - .long 3374701889 - .long 1236950016 - .long 2488855287 - .long 283381887 - .long 3374026384 - .long 2935052397 - .long 2454436482 - .long 2473900033 - .long 682743279 - .long 566763775 - .long 2453085473 - .long 1575137499 - .long 613905668 - .long 652832771 - .long 1365486558 - .long 1133527550 - .long 611203650 - .long 3150274999 - .long 1227811337 - .long 1305665542 - .long 2730973117 - .long 2267055100 - .long 1222407300 - .long 2005582702 - .long 2455622675 - .long 2611331084 - .long 1166978938 - .long 239142905 - .long 2444814601 - .long 4011165404 - .long 616278055 - .long 927694873 - .long 2333957877 - .long 478285810 - .long 594661906 - .long 3727363513 - .long 1232556110 - .long 1855389746 - .long 372948459 - .long 956571621 - .long 1189323812 - .long 3159759730 - .long 2465112221 - .long 3710779492 - .long 745896919 - .long 1913143242 - .long 2378647625 - .long 2024552164 - .long 635257146 - .long 3126591689 - .long 1491793838 - .long 3826286484 - .long 462327955 - .long 4049104329 - .long 1270514292 - .long 1958216082 - .long 2983587677 - .long 3357605672 - .long 924655910 - .long 3803241362 - .long 2541028584 - .long 3916432164 - .long 1672208059 - .long 2420244049 - .long 1849311821 - .long 3311515428 - .long 787089873 - .long 3537897033 - .long 3344416119 - .long 545520802 - .long 3698623643 - .long 2328063560 - .long 1574179747 - .long 2780826770 - .long 2393864943 - .long 1091041605 - .long 3102279991 - .long 361159825 - .long 3148359494 - .long 1266686244 - .long 492762590 - .long 2182083211 - .long 1909592686 - .long 722319651 - .long 2001751692 - .long 2533372489 - .long 985525180 - .long 69199126 - .long 3819185373 - .long 1444639302 - .long 4003503385 - .long 771777682 - .long 1971050360 - .long 138398252 - .long 3343403450 - .long 2889278605 - .long 3712039474 - .long 1543555365 - .long 3942100721 - .long 276796504 - .long 2391839604 - .long 1483589915 - .long 3129111652 - .long 3087110731 - .long 3589234146 - .long 553593009 - .long 488711913 - .long 2967179831 - .long 1963256009 - .long 1879254167 - .long 2883500997 - .long 1107186019 - .long 977423826 - .long 1639392366 - .long 3926512018 - .long 3758508334 - .long 1472034698 - .long 2214372039 - .long 1954847653 - .long 3278784732 - .long 3558056740 - .long 3222049373 - .long 2944069397 - .long 133776782 - .long 3909695307 - .long 2262602168 - .long 2821146184 - .long 2149131451 - .long 1593171499 - .long 267553565 - .long 3524423319 - .long 230237041 - .long 1347325072 - .long 3295607 - .long 3186342998 - .long 535107130 - .long 2753879342 - .long 460474083 - .long 2694650145 - .long 6591214 - .long 2077718700 - .long 1070214261 - .long 1212791388 - .long 920948167 - .long 1094332995 - .long 13182429 - .long 4155437400 - .long 2140428522 - .long 2425582776 - .long 1841896334 - .long 2188665991 - .long 26364858 - .long 4015907504 - .long 4280857045 - .long 556198256 - .long 3683792669 - .long 82364686 - .long 52729717 - .long 3736847713 - .long 4266746795 - .long 1112396512 - .long 3072618042 - .long 164729372 - .long 105459434 - .long 3178728131 - .long 4238526295 - .long 2224793024 - .long 1850268788 - .long 329458745 - .long 210918868 - .long 2062488966 - .long 4182085295 - .long 154618752 - .long 3700537577 - .long 658917491 - .long 421837736 - .long 4124977933 - .long 4069203294 - .long 309237504 - .long 3106107858 - .long 1317834983 - .long 843675472 - .long 3954988571 - .long 3843439293 - .long 618475008 - .long 1917248420 - .long 2635669967 - .long 1687350944 - .long 3615009846 - .long 3391911291 - .long 1236950016 - .long 3834496840 - .long 976372639 - .long 3374701889 - .long 2935052397 - .long 2488855287 - .long 2473900033 - .long 3374026384 - .long 1952745279 - .long 2454436482 - .long 1575137499 - .long 682743279 - .long 652832771 - .long 2453085473 - .long 3905490559 - .long 613905668 - .long 3150274999 - .long 1365486558 - .long 1305665542 - .long 611203650 - .long 3516013822 - .long 1227811337 - .long 2005582702 - .long 2730973117 - .long 2611331084 - .long 1222407300 - .long 2737060348 - .long 2455622675 - .long 4011165404 - .long 1166978938 - .long 927694873 - .long 2444814601 - .long 1179153400 - .long 616278055 - .long 3727363513 - .long 2333957877 - .long 1855389746 - .long 594661906 - .long 2358306800 - .long 1232556110 - .long 3159759730 - .long 372948459 - .long 3710779492 - .long 1189323812 - .long 421646305 - .long 2465112221 - .long 2024552164 - .long 745896919 - .long 3126591689 - .long 2378647625 - .long 843292611 - .long 635257146 - .long 4049104329 - .long 1491793838 - .long 1958216082 - .long 462327955 - .long 1686585223 - .long 1270514292 - .long 3803241362 - .long 2983587677 - .long 3916432164 - .long 924655910 - .long 3373170446 - .long 2541028584 - .long 3311515428 - .long 1672208059 - .long 3537897033 - .long 1849311821 - .long 2451373597 - .long 787089873 - .long 2328063560 - .long 3344416119 - .long 2780826770 - .long 3698623643 - .long 607779899 - .long 1574179747 - .long 361159825 - .long 2393864943 - .long 1266686244 - .long 3102279991 - .long 1215559799 - .long 3148359494 - .long 722319651 - .long 492762590 - .long 2533372489 - .long 1909592686 - .long 2431119599 - .long 2001751692 - .long 1444639302 - .long 985525180 - .long 771777682 - .long 3819185373 - .long 567271902 - .long 4003503385 - .long 2889278605 - .long 1971050360 - .long 1543555365 - .long 3343403450 - .long 1134543805 - .long 3712039474 - .long 1483589915 - .long 3942100721 - .long 3087110731 - .long 2391839604 - .long 2269087610 - .long 3129111652 - .long 2967179831 - .long 3589234146 - .long 1879254167 - .long 488711913 - .long 243207925 - .long 1963256009 - .long 1639392366 - .long 2883500997 - .long 3758508334 - .long 977423826 - .long 486415851 - .long 3926512018 - .long 3278784732 - .long 1472034698 - .long 3222049373 - .long 1954847653 - .long 972831702 - .long 3558056740 - .long 2262602168 - .long 2944069397 - .long 2149131451 - .long 3909695307 - .long 1945663404 - .long 2821146184 - .long 230237041 - .long 1593171499 - .long 3295607 - .long 3524423319 - .long 3891326808 - .long 1347325072 - .long 460474083 - .long 3186342998 - .long 6591214 - .long 2753879342 - .long 3487686321 - .long 2694650145 - .long 920948167 - .long 2077718700 - .long 13182429 - .long 1212791388 - .long 2680405347 - .long 1094332995 - .long 1841896334 - .long 4155437400 - .long 26364858 - .long 2425582776 - .long 1065843399 - .long 2188665991 - .long 3683792669 - .long 4015907504 - .long 52729717 - .long 556198256 - .long 2131686798 - .long 82364686 - .long 3072618042 - .long 3736847713 - .long 105459434 - .long 1112396512 - .long 4263373596 - .long 164729372 - .long 1850268788 - .long 3178728131 - .long 210918868 - .long 2224793024 - .long 4231779897 - .long 329458745 - .long 3700537577 - .long 2062488966 - .long 421837736 - .long 154618752 - .long 4168592498 - .long 658917491 - .long 3106107858 - .long 4124977933 - .long 843675472 - .long 309237504 - .long 4042217701 - .long 1317834983 - .long 1917248420 - .long 3954988571 - .long 1687350944 - .long 618475008 - .long 3789468107 - .long 2635669967 - .long 3834496840 - .long 3615009846 - .long 3374701889 - .long 1236950016 - .long 3283968918 - .long 976372639 - .long 3374026384 - .long 2935052397 - .long 2454436482 - .long 2473900033 - .long 2272970540 - .long 1952745279 - .long 2453085473 - .long 1575137499 - .long 613905668 - .long 652832771 - .long 250973784 - .long 3905490559 - .long 611203650 - .long 3150274999 - .long 1227811337 - .long 1305665542 - .long 501947569 - .long 3516013822 - .long 1222407300 - .long 2005582702 - .long 2455622675 - .long 2611331084 - .long 1003895138 - .long 2737060348 - .long 2444814601 - .long 4011165404 - .long 616278055 - .long 927694873 - .long 2007790276 - .long 1179153400 - .long 594661906 - .long 3727363513 - .long 1232556110 - .long 1855389746 - .long 4015580553 - .long 2358306800 - .long 1189323812 - .long 3159759730 - .long 2465112221 - .long 3710779492 - .long 3736193810 - .long 421646305 - .long 2378647625 - .long 2024552164 - .long 635257146 - .long 3126591689 - .long 3177420325 - .long 843292611 - .long 462327955 - .long 4049104329 - .long 1270514292 - .long 1958216082 - .long 2059873354 - .long 1686585223 - .long 924655910 - .long 3803241362 - .long 2541028584 - .long 3916432164 - .long 4119746708 - .long 3373170446 - .long 1849311821 - .long 3311515428 - .long 787089873 - .long 3537897033 - .long 3944526121 - .long 2451373597 - .long 3698623643 - .long 2328063560 - .long 1574179747 - .long 2780826770 - .long 3594084947 - .long 607779899 - .long 3102279991 - .long 361159825 - .long 3148359494 - .long 1266686244 - .long 2893202598 - .long 1215559799 - .long 1909592686 - .long 722319651 - .long 2001751692 - .long 2533372489 - .long 1491437901 - .long 2431119599 - .long 3819185373 - .long 1444639302 - .long 4003503385 - .long 771777682 - .long 2982875802 - .long 567271902 - .long 3343403450 - .long 2889278605 - .long 3712039474 - .long 1543555365 - .long 1670784308 - .long 1134543805 - .long 2391839604 - .long 1483589915 - .long 3129111652 - .long 3087110731 - .long 3341568617 - .long 2269087610 - .long 488711913 - .long 2967179831 - .long 1963256009 - .long 1879254167 - .long 2388169939 - .long 243207925 - .long 977423826 - .long 1639392366 - .long 3926512018 - .long 3758508334 - .long 481372583 - .long 486415851 - .long 1954847653 - .long 3278784732 - .long 3558056740 - .long 3222049373 - .long 962745166 - .long 972831702 - .long 3909695307 - .long 2262602168 - .long 2821146184 - .long 2149131451 - .long 1925490332 - .long 1945663404 - .long 3524423319 - .long 230237041 - .long 1347325072 - .long 3295607 - .long 3850980665 - .long 3891326808 - .long 2753879342 - .long 460474083 - .long 2694650145 - .long 6591214 - .long 3406994035 - .long 3487686321 - .long 1212791388 - .long 920948167 - .long 1094332995 - .long 13182429 - .long 2519020775 - .long 2680405347 - .long 2425582776 - .long 1841896334 - .long 2188665991 - .long 26364858 - .long 743074255 - .long 1065843399 - .long 556198256 - .long 3683792669 - .long 82364686 - .long 52729717 - .long 1486148511 - .long 2131686798 - .long 1112396512 - .long 3072618042 - .long 164729372 - .long 105459434 - .long 2972297022 - .long 4263373596 - .long 2224793024 - .long 1850268788 - .long 329458745 - .long 210918868 - .long 1649626749 - .long 4231779897 - .long 154618752 - .long 3700537577 - .long 658917491 - .long 421837736 - .long 3299253499 - .long 4168592498 - .long 309237504 - .long 3106107858 - .long 1317834983 - .long 843675472 - .long 2303539703 - .long 4042217701 - .long 618475008 - .long 1917248420 - .long 2635669967 - .long 1687350944 - .long 312112110 - .long 3789468107 - .long 1236950016 - .long 3834496840 - .long 976372639 - .long 3374701889 - .long 624224221 - .long 3283968918 - .long 2473900033 - .long 3374026384 - .long 1952745279 - .long 2454436482 - .long 1248448442 - .long 2272970540 - .long 652832771 - .long 2453085473 - .long 3905490559 - .long 613905668 - .long 2496896884 - .long 250973784 - .long 1305665542 - .long 611203650 - .long 3516013822 - .long 1227811337 - .long 698826472 - .long 501947569 - .long 2611331084 - .long 1222407300 - .long 2737060348 - .long 2455622675 - .long 1397652945 - .long 1003895138 - .long 927694873 - .long 2444814601 - .long 1179153400 - .long 616278055 - .long 2795305890 - .long 2007790276 - .long 1855389746 - .long 594661906 - .long 2358306800 - .long 1232556110 - .long 1295644484 - .long 4015580553 - .long 3710779492 - .long 1189323812 - .long 421646305 - .long 2465112221 - .long 2591288968 - .long 3736193810 - .long 3126591689 - .long 2378647625 - .long 843292611 - .long 635257146 - .long 887610640 - .long 3177420325 - .long 1958216082 - .long 462327955 - .long 1686585223 - .long 1270514292 - .long 1775221280 - .long 2059873354 - .long 3916432164 - .long 924655910 - .long 3373170446 - .long 2541028584 - .long 3550442561 - .long 4119746708 - .long 3537897033 - .long 1849311821 - .long 2451373597 - .long 787089873 - .long 2805917826 - .long 3944526121 - .long 2780826770 - .long 3698623643 - .long 607779899 - .long 1574179747 - .long 1316868356 - .long 3594084947 - .long 1266686244 - .long 3102279991 - .long 1215559799 - .long 3148359494 - .long 2633736712 - .long 2893202598 - .long 2533372489 - .long 1909592686 - .long 2431119599 - .long 2001751692 - .long 972506129 - .long 1491437901 - .long 771777682 - .long 3819185373 - .long 567271902 - .long 4003503385 - .long 1945012259 - .long 2982875802 - .long 1543555365 - .long 3343403450 - .long 1134543805 - .long 3712039474 - .long 3890024518 - .long 1670784308 - .long 3087110731 - .long 2391839604 - .long 2269087610 - .long 3129111652 - .long 3485081741 - .long 3341568617 - .long 1879254167 - .long 488711913 - .long 243207925 - .long 1963256009 - .long 2675196186 - .long 2388169939 - .long 3758508334 - .long 977423826 - .long 486415851 - .long 3926512018 - .long 1055425077 - .long 481372583 - .long 3222049373 - .long 1954847653 - .long 972831702 - .long 3558056740 - .long 2110850155 - .long 962745166 - .long 2149131451 - .long 3909695307 - .long 1945663404 - .long 2821146184 - .long 4221700311 - .long 1925490332 - .long 3295607 - .long 3524423319 - .long 3891326808 - .long 1347325072 - .long 4148433327 - .long 3850980665 - .long 6591214 - .long 2753879342 - .long 3487686321 - .long 2694650145 - .long 4001899359 - .long 3406994035 - .long 13182429 - .long 1212791388 - .long 2680405347 - .long 1094332995 - .long 3708831422 - .long 2519020775 - .long 26364858 - .long 2425582776 - .long 1065843399 - .long 2188665991 - .long 3122695549 - .long 743074255 - .long 52729717 - .long 556198256 - .long 2131686798 - .long 82364686 - .long 1950423802 - .long 1486148511 - .long 105459434 - .long 1112396512 - .long 4263373596 - .long 164729372 - .long 3900847605 - .long 2972297022 - .long 210918868 - .long 2224793024 - .long 4231779897 - .long 329458745 - .long 3506727914 - .long 1649626749 - .long 421837736 - .long 154618752 - .long 4168592498 - .long 658917491 - .long 2718488532 - .long 3299253499 - .long 843675472 - .long 309237504 - .long 4042217701 - .long 1317834983 - .long 1142009769 - .long 2303539703 - .long 1687350944 - .long 618475008 - .long 3789468107 - .long 2635669967 - .long 2284019538 - .long 312112110 - .long 3374701889 - .long 1236950016 - .long 3283968918 - .long 976372639 - .long 273071781 - .long 624224221 - .long 2454436482 - .long 2473900033 - .long 2272970540 - .long 1952745279 - .long 546143563 - .long 1248448442 - .long 613905668 - .long 652832771 - .long 250973784 - .long 3905490559 - .long 1092287127 - .long 2496896884 - .long 1227811337 - .long 1305665542 - .long 501947569 - .long 3516013822 - .long 2184574254 - .long 698826472 - .long 2455622675 - .long 2611331084 - .long 1003895138 - .long 2737060348 - .long 74181213 - .long 1397652945 - .long 616278055 - .long 927694873 - .long 2007790276 - .long 1179153400 - .long 148362426 - .long 2795305890 - .long 1232556110 - .long 1855389746 - .long 4015580553 - .long 2358306800 - .long 296724853 - .long 1295644484 - .long 2465112221 - .long 3710779492 - .long 3736193810 - .long 421646305 - .long 593449707 - .long 2591288968 - .long 635257146 - .long 3126591689 - .long 3177420325 - .long 843292611 - .long 1186899415 - .long 887610640 - .long 1270514292 - .long 1958216082 - .long 2059873354 - .long 1686585223 - .long 2373798830 - .long 1775221280 - .long 2541028584 - .long 3916432164 - .long 4119746708 - .long 3373170446 - .long 452630365 - .long 3550442561 - .long 787089873 - .long 3537897033 - .long 3944526121 - .long 2451373597 - .long 905260731 - .long 2805917826 - .long 1574179747 - .long 2780826770 - .long 3594084947 - .long 607779899 - .long 1810521462 - .long 1316868356 - .long 3148359494 - .long 1266686244 - .long 2893202598 - .long 1215559799 - .long 3621042925 - .long 2633736712 - .long 2001751692 - .long 2533372489 - .long 1491437901 - .long 2431119599 - .long 2947118554 - .long 972506129 - .long 4003503385 - .long 771777682 - .long 2982875802 - .long 567271902 - .long 1599269812 - .long 1945012259 - .long 3712039474 - .long 1543555365 - .long 1670784308 - .long 1134543805 - .long 3198539624 - .long 3890024518 - .long 3129111652 - .long 3087110731 - .long 3341568617 - .long 2269087610 - .long 2102111953 - .long 3485081741 - .long 1963256009 - .long 1879254167 - .long 2388169939 - .long 243207925 - .long 4204223906 - .long 2675196186 - .long 3926512018 - .long 3758508334 - .long 481372583 - .long 486415851 - .long 4113480516 - .long 1055425077 - .long 3558056740 - .long 3222049373 - .long 962745166 - .long 972831702 - .long 3931993737 - .long 2110850155 - .long 2821146184 - .long 2149131451 - .long 1925490332 - .long 1945663404 - .long 3569020178 - .long 4221700311 - .long 1347325072 - .long 3295607 - .long 3850980665 - .long 3891326808 - .long 2843073060 - .long 4148433327 - .long 2694650145 - .long 6591214 - .long 3406994035 - .long 3487686321 - .long 1391178824 - .long 4001899359 - .long 1094332995 - .long 13182429 - .long 2519020775 - .long 2680405347 - .long 2782357648 - .long 3708831422 - .long 2188665991 - .long 26364858 - .long 743074255 - .long 1065843399 - .long 1269748001 - .long 3122695549 - .long 82364686 - .long 52729717 - .long 1486148511 - .long 2131686798 - .long 2539496002 - .long 1950423802 - .long 164729372 - .long 105459434 - .long 2972297022 - .long 4263373596 - .long 784024708 - .long 3900847605 - .long 329458745 - .long 210918868 - .long 1649626749 - .long 4231779897 - .long 1568049417 - .long 3506727914 - .long 658917491 - .long 421837736 - .long 3299253499 - .long 4168592498 - .long 3136098835 - .long 2718488532 - .long 1317834983 - .long 843675472 - .long 2303539703 - .long 4042217701 - .long 1977230375 - .long 1142009769 - .long 2635669967 - .long 1687350944 - .long 312112110 - .long 3789468107 - .long 3954460750 - .long 2284019538 - .long 976372639 - .long 3374701889 - .long 624224221 - .long 3283968918 - .long 3613954205 - .long 273071781 - .long 1952745279 - .long 2454436482 - .long 1248448442 - .long 2272970540 - .long 2932941114 - .long 546143563 - .long 3905490559 - .long 613905668 - .long 2496896884 - .long 250973784 - .long 1570914932 - .long 1092287127 - .long 3516013822 - .long 1227811337 - .long 698826472 - .long 501947569 - .long 3141829865 - .long 2184574254 - .long 2737060348 - .long 2455622675 - .long 1397652945 - .long 1003895138 - .long 1988692435 - .long 74181213 - .long 1179153400 - .long 616278055 - .long 2795305890 - .long 2007790276 - .long 3977384870 - .long 148362426 - .long 2358306800 - .long 1232556110 - .long 1295644484 - .long 4015580553 - .long 3659802444 - .long 296724853 - .long 421646305 - .long 2465112221 - .long 2591288968 - .long 3736193810 - .long 3024637593 - .long 593449707 - .long 843292611 - .long 635257146 - .long 887610640 - .long 3177420325 - .long 1754307891 - .long 1186899415 - .long 1686585223 - .long 1270514292 - .long 1775221280 - .long 2059873354 - .long 3508615783 - .long 2373798830 - .long 3373170446 - .long 2541028584 - .long 3550442561 - .long 4119746708 - .long 2722264270 - .long 452630365 - .long 2451373597 - .long 787089873 - .long 2805917826 - .long 3944526121 - .long 1149561244 - .long 905260731 - .long 607779899 - .long 1574179747 - .long 1316868356 - .long 3594084947 - .long 2299122488 - .long 1810521462 - .long 1215559799 - .long 3148359494 - .long 2633736712 - .long 2893202598 - .long 303277681 - .long 3621042925 - .long 2431119599 - .long 2001751692 - .long 972506129 - .long 1491437901 - .long 606555363 - .long 2947118554 - .long 567271902 - .long 4003503385 - .long 1945012259 - .long 2982875802 - .long 1213110727 - .long 1599269812 - .long 1134543805 - .long 3712039474 - .long 3890024518 - .long 1670784308 - .long 2426221454 - .long 3198539624 - .long 2269087610 - .long 3129111652 - .long 3485081741 - .long 3341568617 - .long 557475612 - .long 2102111953 - .long 243207925 - .long 1963256009 - .long 2675196186 - .long 2388169939 - .long 1114951224 - .long 4204223906 - .long 486415851 - .long 3926512018 - .long 1055425077 - .long 481372583 - .long 2229902448 - .long 4113480516 - .long 972831702 - .long 3558056740 - .long 2110850155 - .long 962745166 - .long 164837600 - .long 3931993737 - .long 1945663404 - .long 2821146184 - .long 4221700311 - .long 1925490332 - .long 329675200 - .long 3569020178 - .long 3891326808 - .long 1347325072 - .long 4148433327 - .long 3850980665 - .long 659350401 - .long 2843073060 - .long 3487686321 - .long 2694650145 - .long 4001899359 - .long 3406994035 - .long 1318700802 - .long 1391178824 - .long 2680405347 - .long 1094332995 - .long 3708831422 - .long 2519020775 - .long 2637401604 - .long 2782357648 - .long 1065843399 - .long 2188665991 - .long 3122695549 - .long 743074255 - .long 979835913 - .long 1269748001 - .long 2131686798 - .long 82364686 - .long 1950423802 - .long 1486148511 - .long 1959671827 - .long 2539496002 - .long 4263373596 - .long 164729372 - .long 3900847605 - .long 2972297022 - .long 3919343654 - .long 784024708 - .long 4231779897 - .long 329458745 - .long 3506727914 - .long 1649626749 - .long 3543720013 - .long 1568049417 - .long 4168592498 - .long 658917491 - .long 2718488532 - .long 3299253499 - .long 2792472730 - .long 3136098835 - .long 4042217701 - .long 1317834983 - .long 1142009769 - .long 2303539703 - .long 1289978165 - .long 1977230375 - .long 3789468107 - .long 2635669967 - .long 2284019538 - .long 312112110 - .long 2579956331 - .long 3954460750 - .long 3283968918 - .long 976372639 - .long 273071781 - .long 624224221 - .long 864945366 - .long 3613954205 - .long 2272970540 - .long 1952745279 - .long 546143563 - .long 1248448442 - .long 1729890733 - .long 2932941114 - .long 250973784 - .long 3905490559 - .long 1092287127 - .long 2496896884 - .long 3459781466 - .long 1570914932 - .long 501947569 - .long 3516013822 - .long 2184574254 - .long 698826472 - .long 2624595636 - .long 3141829865 - .long 1003895138 - .long 2737060348 - .long 74181213 - .long 1397652945 - .long 954223976 - .long 1988692435 - .long 2007790276 - .long 1179153400 - .long 148362426 - .long 2795305890 - .long 1908447953 - .long 3977384870 - .long 4015580553 - .long 2358306800 - .long 296724853 - .long 1295644484 - .long 3816895906 - .long 3659802444 - .long 3736193810 - .long 421646305 - .long 593449707 - .long 2591288968 - .long 3338824517 - .long 3024637593 - .long 3177420325 - .long 843292611 - .long 1186899415 - .long 887610640 - .long 2382681739 - .long 1754307891 - .long 2059873354 - .long 1686585223 - .long 2373798830 - .long 1775221280 - .long 470396183 - .long 3508615783 - .long 4119746708 - .long 3373170446 - .long 452630365 - .long 3550442561 - .long 940792367 - .long 2722264270 - .long 3944526121 - .long 2451373597 - .long 905260731 - .long 2805917826 - .long 1881584735 - .long 1149561244 - .long 3594084947 - .long 607779899 - .long 1810521462 - .long 1316868356 - .long 3763169470 - .long 2299122488 - .long 2893202598 - .long 1215559799 - .long 3621042925 - .long 2633736712 - .long 3231371645 - .long 303277681 - .long 1491437901 - .long 2431119599 - .long 2947118554 - .long 972506129 - .long 2167775995 - .long 606555363 - .long 2982875802 - .long 567271902 - .long 1599269812 - .long 1945012259 - .long 40584695 - .long 1213110727 - .long 1670784308 - .long 1134543805 - .long 3198539624 - .long 3890024518 - .long 81169391 - .long 2426221454 - .long 3341568617 - .long 2269087610 - .long 2102111953 - .long 3485081741 - .long 162338783 - .long 557475612 - .long 2388169939 - .long 243207925 - .long 4204223906 - .long 2675196186 - .long 324677567 - .long 1114951224 - .long 481372583 - .long 486415851 - .long 4113480516 - .long 1055425077 - .long 649355134 - .long 2229902448 - .long 962745166 - .long 972831702 - .long 3931993737 - .long 2110850155 - .long 1298710268 - .long 164837600 - .long 1925490332 - .long 1945663404 - .long 3569020178 - .long 4221700311 - .long 2597420537 - .long 329675200 - .long 3850980665 - .long 3891326808 - .long 2843073060 - .long 4148433327 - .long 899873778 - .long 659350401 - .long 3406994035 - .long 3487686321 - .long 1391178824 - .long 4001899359 - .long 1799747556 - .long 1318700802 - .long 2519020775 - .long 2680405347 - .long 2782357648 - .long 3708831422 - .long 3599495112 - .long 2637401604 - .long 743074255 - .long 1065843399 - .long 1269748001 - .long 3122695549 - .long 2904022928 - .long 979835913 - .long 1486148511 - .long 2131686798 - .long 2539496002 - .long 1950423802 - .long 1513078560 - .long 1959671827 - .long 2972297022 - .long 4263373596 - .long 784024708 - .long 3900847605 - .long 3026157121 - .long 3919343654 - .long 1649626749 - .long 4231779897 - .long 1568049417 - .long 3506727914 - .long 1757346946 - .long 3543720013 - .long 3299253499 - .long 4168592498 - .long 3136098835 - .long 2718488532 - .long 3514693892 - .long 2792472730 - .long 2303539703 - .long 4042217701 - .long 1977230375 - .long 1142009769 - .long 2734420489 - .long 1289978165 - .long 312112110 - .long 3789468107 - .long 3954460750 - .long 2284019538 - .long 1173873683 - .long 2579956331 - .long 624224221 - .long 3283968918 - .long 3613954205 - .long 273071781 - .long 2347747367 - .long 864945366 - .long 1248448442 - .long 2272970540 - .long 2932941114 - .long 546143563 - .long 400527438 - .long 1729890733 - .long 2496896884 - .long 250973784 - .long 1570914932 - .long 1092287127 - .long 801054876 - .long 3459781466 - .long 698826472 - .long 501947569 - .long 3141829865 - .long 2184574254 - .long 1602109753 - .long 2624595636 - .long 1397652945 - .long 1003895138 - .long 1988692435 - .long 74181213 - .long 3204219507 - .long 954223976 - .long 2795305890 - .long 2007790276 - .long 3977384870 - .long 148362426 - .long 2113471718 - .long 1908447953 - .long 1295644484 - .long 4015580553 - .long 3659802444 - .long 296724853 - .long 4226943436 - .long 3816895906 - .long 2591288968 - .long 3736193810 - .long 3024637593 - .long 593449707 - .long 4158919577 - .long 3338824517 - .long 887610640 - .long 3177420325 - .long 1754307891 - .long 1186899415 - .long 4022871858 - .long 2382681739 - .long 1775221280 - .long 2059873354 - .long 3508615783 - .long 2373798830 - .long 3750776420 - .long 470396183 - .long 3550442561 - .long 4119746708 - .long 2722264270 - .long 452630365 - .long 3206585544 - .long 940792367 - .long 2805917826 - .long 3944526121 - .long 1149561244 - .long 905260731 - .long 2118203793 - .long 1881584735 - .long 1316868356 - .long 3594084947 - .long 2299122488 - .long 1810521462 - .long 4236407587 - .long 3763169470 - .long 2633736712 - .long 2893202598 - .long 303277681 - .long 3621042925 - .long 4177847879 - .long 3231371645 - .long 972506129 - .long 1491437901 - .long 606555363 - .long 2947118554 - .long 4060728462 - .long 2167775995 - .long 1945012259 - .long 2982875802 - .long 1213110727 - .long 1599269812 - .long 3826489629 - .long 40584695 - .long 3890024518 - .long 1670784308 - .long 2426221454 - .long 3198539624 - .long 3358011962 - .long 81169391 - .long 3485081741 - .long 3341568617 - .long 557475612 - .long 2102111953 - .long 2421056629 - .long 162338783 - .long 2675196186 - .long 2388169939 - .long 1114951224 - .long 4204223906 - .long 547145963 - .long 324677567 - .long 1055425077 - .long 481372583 - .long 2229902448 - .long 4113480516 - .long 1094291926 - .long 649355134 - .long 2110850155 - .long 962745166 - .long 164837600 - .long 3931993737 - .long 2188583852 - .long 1298710268 - .long 4221700311 - .long 1925490332 - .long 329675200 - .long 3569020178 - .long 82200408 - .long 2597420537 - .long 4148433327 - .long 3850980665 - .long 659350401 - .long 2843073060 - .long 164400817 - .long 899873778 - .long 4001899359 - .long 3406994035 - .long 1318700802 - .long 1391178824 - .long 328801635 - .long 1799747556 - .long 3708831422 - .long 2519020775 - .long 2637401604 - .long 2782357648 - .long 657603271 - .long 3599495112 - .long 3122695549 - .long 743074255 - .long 979835913 - .long 1269748001 - .long 1315206542 - .long 2904022928 - .long 1950423802 - .long 1486148511 - .long 1959671827 - .long 2539496002 - .long 2630413084 - .long 1513078560 - .long 3900847605 - .long 2972297022 - .long 3919343654 - .long 784024708 - .long 965858873 - .long 3026157121 - .long 3506727914 - .long 1649626749 - .long 3543720013 - .long 1568049417 - .long 1931717747 - .long 1757346946 - .long 2718488532 - .long 3299253499 - .long 2792472730 - .long 3136098835 - .long 3863435494 - .long 3514693892 - .long 1142009769 - .long 2303539703 - .long 1289978165 - .long 1977230375 - .long 3431903692 - .long 2734420489 - .long 2284019538 - .long 312112110 - .long 2579956331 - .long 3954460750 - .long 2568840088 - .long 1173873683 - .long 273071781 - .long 624224221 - .long 864945366 - .long 3613954205 - .long 842712880 - .long 2347747367 - .long 546143563 - .long 1248448442 - .long 1729890733 - .long 2932941114 - .long 1685425760 - .long 400527438 - .long 1092287127 - .long 2496896884 - .long 3459781466 - .long 1570914932 - .long 3370851521 - .long 801054876 - .long 2184574254 - .long 698826472 - .long 2624595636 - .long 3141829865 - .long 2446735747 - .long 1602109753 - .long 74181213 - .long 1397652945 - .long 954223976 - .long 1988692435 - .long 598504198 - .long 3204219507 - .long 148362426 - .long 2795305890 - .long 1908447953 - .long 3977384870 - .long 1197008397 - .long 2113471718 - .long 296724853 - .long 1295644484 - .long 3816895906 - .long 3659802444 - .long 2394016794 - .long 4226943436 - .long 593449707 - .long 2591288968 - .long 3338824517 - .long 3024637593 - .long 493066293 - .long 4158919577 - .long 1186899415 - .long 887610640 - .long 2382681739 - .long 1754307891 - .long 986132586 - .long 4022871858 - .long 2373798830 - .long 1775221280 - .long 470396183 - .long 3508615783 - .long 1972265172 - .long 3750776420 - .long 452630365 - .long 3550442561 - .long 940792367 - .long 2722264270 - .long 3944530345 - .long 3206585544 - .long 905260731 - .long 2805917826 - .long 1881584735 - .long 1149561244 - .long 3594093395 - .long 2118203793 - .long 1810521462 - .long 1316868356 - .long 3763169470 - .long 2299122488 - .long 2893219494 - .long 4236407587 - .long 3621042925 - .long 2633736712 - .long 3231371645 - .long 303277681 - .long 1491471692 - .long 4177847879 - .long 2947118554 - .long 972506129 - .long 2167775995 - .long 606555363 - .long 2982943385 - .long 4060728462 - .long 1599269812 - .long 1945012259 - .long 40584695 - .long 1213110727 - .long 1670919475 - .long 3826489629 - .long 3198539624 - .long 3890024518 - .long 81169391 - .long 2426221454 - .long 3341838951 - .long 3358011962 - .long 2102111953 - .long 3485081741 - .long 162338783 - .long 557475612 - .long 2388710606 - .long 2421056629 - .long 4204223906 - .long 2675196186 - .long 324677567 - .long 1114951224 - .long 482453916 - .long 547145963 - .long 4113480516 - .long 1055425077 - .long 649355134 - .long 2229902448 - .long 964907833 - .long 1094291926 - .long 3931993737 - .long 2110850155 - .long 1298710268 - .long 164837600 - .long 1929815667 - .long 2188583852 - .long 3569020178 - .long 4221700311 - .long 2597420537 - .long 329675200 - .long 3859631335 - .long 82200408 - .long 2843073060 - .long 4148433327 - .long 899873778 - .long 659350401 - .long 3424295375 - .long 164400817 - .long 1391178824 - .long 4001899359 - .long 1799747556 - .long 1318700802 - .long 2553623455 - .long 328801635 - .long 2782357648 - .long 3708831422 - .long 3599495112 - .long 2637401604 - .long 812279614 - .long 657603271 - .long 1269748001 - .long 3122695549 - .long 2904022928 - .long 979835913 - .long 1624559229 - .long 1315206542 - .long 2539496002 - .long 1950423802 - .long 1513078560 - .long 1959671827 - .long 3249118458 - .long 2630413084 - .long 784024708 - .long 3900847605 - .long 3026157121 - .long 3919343654 - .long 2203269620 - .long 965858873 - .long 1568049417 - .long 3506727914 - .long 1757346946 - .long 3543720013 - .long 111571945 - .long 1931717747 - .long 3136098835 - .long 2718488532 - .long 3514693892 - .long 2792472730 - .long 223143890 - .long 3863435494 - .long 1977230375 - .long 1142009769 - .long 2734420489 - .long 1289978165 - .long 446287780 - .long 3431903692 - .long 3954460750 - .long 2284019538 - .long 1173873683 - .long 2579956331 - .long 892575561 - .long 2568840088 - .long 3613954205 - .long 273071781 - .long 2347747367 - .long 864945366 - .long 1785151123 - .long 842712880 - .long 2932941114 - .long 546143563 - .long 400527438 - .long 1729890733 - .long 3570302247 - .long 1685425760 - .long 1570914932 - .long 1092287127 - .long 801054876 - .long 3459781466 - .long 2845637198 - .long 3370851521 - .long 3141829865 - .long 2184574254 - .long 1602109753 - .long 2624595636 - .long 1396307100 - .long 2446735747 - .long 1988692435 - .long 74181213 - .long 3204219507 - .long 954223976 - .long 2792614201 - .long 598504198 - .long 3977384870 - .long 148362426 - .long 2113471718 - .long 1908447953 - .long 1290261106 - .long 1197008397 - .long 3659802444 - .long 296724853 - .long 4226943436 - .long 3816895906 - .long 2580522212 - .long 2394016794 - .long 3024637593 - .long 593449707 - .long 4158919577 - .long 3338824517 - .long 866077128 - .long 493066293 - .long 1754307891 - .long 1186899415 - .long 4022871858 - .long 2382681739 - .long 1732154256 - .long 986132586 - .long 3508615783 - .long 2373798830 - .long 3750776420 - .long 470396183 - .long 3464308513 - .long 1972265172 - .long 2722264270 - .long 452630365 - .long 3206585544 - .long 940792367 - .long 2633649730 - .long 3944530345 - .long 1149561244 - .long 905260731 - .long 2118203793 - .long 1881584735 - .long 972332164 - .long 3594093395 - .long 2299122488 - .long 1810521462 - .long 4236407587 - .long 3763169470 - .long 1944664328 - .long 2893219494 - .long 303277681 - .long 3621042925 - .long 4177847879 - .long 3231371645 - .long 3889328657 - .long 1491471692 - .long 606555363 - .long 2947118554 - .long 4060728462 - .long 2167775995 - .long 3483690018 - .long 2982943385 - .long 1213110727 - .long 1599269812 - .long 3826489629 - .long 40584695 - .long 2672412741 - .long 1670919475 - .long 2426221454 - .long 3198539624 - .long 3358011962 - .long 81169391 - .long 1049858187 - .long 3341838951 - .long 557475612 - .long 2102111953 - .long 2421056629 - .long 162338783 - .long 2099716375 - .long 2388710606 - .long 1114951224 - .long 4204223906 - .long 547145963 - .long 324677567 - .long 4199432751 - .long 482453916 - .long 2229902448 - .long 4113480516 - .long 1094291926 - .long 649355134 - .long 4103898207 - .long 964907833 - .long 164837600 - .long 3931993737 - .long 2188583852 - .long 1298710268 - .long 3912829119 - .long 1929815667 - .long 329675200 - .long 3569020178 - .long 82200408 - .long 2597420537 - .long 3530690942 - .long 3859631335 - .long 659350401 - .long 2843073060 - .long 164400817 - .long 899873778 - .long 2766414588 - .long 3424295375 - .long 1318700802 - .long 1391178824 - .long 328801635 - .long 1799747556 - .long 1237861880 - .long 2553623455 - .long 2637401604 - .long 2782357648 - .long 657603271 - .long 3599495112 - .long 2475723761 - .long 812279614 - .long 979835913 - .long 1269748001 - .long 1315206542 - .long 2904022928 - .long 656480226 - .long 1624559229 - .long 1959671827 - .long 2539496002 - .long 2630413084 - .long 1513078560 - .long 1312960453 - .long 3249118458 - .long 3919343654 - .long 784024708 - .long 965858873 - .long 3026157121 - .long 2625920907 - .long 2203269620 - .long 3543720013 - .long 1568049417 - .long 1931717747 - .long 1757346946 - .long 956874519 - .long 111571945 - .long 2792472730 - .long 3136098835 - .long 3863435494 - .long 3514693892 - .long 1913749038 - .long 223143890 - .long 1289978165 - .long 1977230375 - .long 3431903692 - .long 2734420489 - .long 3827498077 - .long 446287780 - .long 2579956331 - .long 3954460750 - .long 2568840088 - .long 1173873683 - .long 3360028859 - .long 892575561 - .long 864945366 - .long 3613954205 - .long 842712880 - .long 2347747367 - .long 2425090423 - .long 1785151123 - .long 1729890733 - .long 2932941114 - .long 1685425760 - .long 400527438 - .long 555213551 - .long 3570302247 - .long 3459781466 - .long 1570914932 - .long 3370851521 - .long 801054876 - .long 1110427102 - .long 2845637198 - .long 2624595636 - .long 3141829865 - .long 2446735747 - .long 1602109753 - .long 2220854205 - .long 1396307100 - .long 954223976 - .long 1988692435 - .long 598504198 - .long 3204219507 - .long 146741115 - .long 2792614201 - .long 1908447953 - .long 3977384870 - .long 1197008397 - .long 2113471718 - .long 293482231 - .long 1290261106 - .long 3816895906 - .long 3659802444 - .long 2394016794 - .long 4226943436 - .long 586964463 - .long 2580522212 - .long 3338824517 - .long 3024637593 - .long 493066293 - .long 4158919577 - .long 1173928927 - .long 866077128 - .long 2382681739 - .long 1754307891 - .long 986132586 - .long 4022871858 - .long 2347857855 - .long 1732154256 - .long 470396183 - .long 3508615783 - .long 1972265172 - .long 3750776420 - .long 400748414 - .long 3464308513 - .long 940792367 - .long 2722264270 - .long 3944530345 - .long 3206585544 - .long 801496828 - .long 2633649730 - .long 1881584735 - .long 1149561244 - .long 3594093395 - .long 2118203793 - .long 1602993657 - .long 972332164 - .long 3763169470 - .long 2299122488 - .long 2893219494 - .long 4236407587 - .long 3205987314 - .long 1944664328 - .long 3231371645 - .long 303277681 - .long 1491471692 - .long 4177847879 - .long 2117007332 - .long 3889328657 - .long 2167775995 - .long 606555363 - .long 2982943385 - .long 4060728462 - .long 4234014665 - .long 3483690018 - .long 40584695 - .long 1213110727 - .long 1670919475 - .long 3826489629 - .long 4173062034 - .long 2672412741 - .long 81169391 - .long 2426221454 - .long 3341838951 - .long 3358011962 - .long 4051156773 - .long 1049858187 - .long 162338783 - .long 557475612 - .long 2388710606 - .long 2421056629 - .long 3807346250 - .long 2099716375 - .long 324677567 - .long 1114951224 - .long 482453916 - .long 547145963 - .long 3319725204 - .long 4199432751 - .long 649355134 - .long 2229902448 - .long 964907833 - .long 1094291926 - .long 2344483112 - .long 4103898207 - .long 1298710268 - .long 164837600 - .long 1929815667 - .long 2188583852 - .long 393998928 - .long 3912829119 - .long 2597420537 - .long 329675200 - .long 3859631335 - .long 82200408 - .long 787997856 - .long 3530690942 - .long 899873778 - .long 659350401 - .long 3424295375 - .long 164400817 - .long 1575995713 - .long 2766414588 - .long 1799747556 - .long 1318700802 - .long 2553623455 - .long 328801635 - .long 3151991427 - .long 1237861880 - .long 3599495112 - .long 2637401604 - .long 812279614 - .long 657603271 - .long 2009015559 - .long 2475723761 - .long 2904022928 - .long 979835913 - .long 1624559229 - .long 1315206542 - .long 4018031118 - .long 656480226 - .long 1513078560 - .long 1959671827 - .long 3249118458 - .long 2630413084 - .long 3741094941 - .long 1312960453 - .long 3026157121 - .long 3919343654 - .long 2203269620 - .long 965858873 - .long 3187222587 - .long 2625920907 - .long 1757346946 - .long 3543720013 - .long 111571945 - .long 1931717747 - .long 2079477878 - .long 956874519 - .long 3514693892 - .long 2792472730 - .long 223143890 - .long 3863435494 - .long 4158955756 - .long 1913749038 - .long 2734420489 - .long 1289978165 - .long 446287780 - .long 3431903692 - .long 4022944216 - .long 3827498077 - .long 1173873683 - .long 2579956331 - .long 892575561 - .long 2568840088 - .long 3750921137 - .long 3360028859 - .long 2347747367 - .long 864945366 - .long 1785151123 - .long 842712880 - .long 3206874979 - .long 2425090423 - .long 400527438 - .long 1729890733 - .long 3570302247 - .long 1685425760 - .long 2118782663 - .long 555213551 - .long 801054876 - .long 3459781466 - .long 2845637198 - .long 3370851521 - .long 4237565327 - .long 1110427102 - .long 1602109753 - .long 2624595636 - .long 1396307100 - .long 2446735747 - .long 4180163359 - .long 2220854205 - .long 3204219507 - .long 954223976 - .long 2792614201 - .long 598504198 - .long 4065359423 - .long 146741115 - .long 2113471718 - .long 1908447953 - .long 1290261106 - .long 1197008397 - .long 3835751551 - .long 293482231 - .long 4226943436 - .long 3816895906 - .long 2580522212 - .long 2394016794 - .long 3376535807 - .long 586964463 - .long 4158919577 - .long 3338824517 - .long 866077128 - .long 493066293 - .long 2458104319 - .long 1173928927 - .long 4022871858 - .long 2382681739 - .long 1732154256 - .long 986132586 - .long 621241343 - .long 2347857855 - .long 3750776420 - .long 470396183 - .long 3464308513 - .long 1972265172 - .long 1242482686 - .long 400748414 - .long 3206585544 - .long 940792367 - .long 2633649730 - .long 3944530345 - .long 2484965372 - .long 801496828 - .long 2118203793 - .long 1881584735 - .long 972332164 - .long 3594093395 - .long 674963448 - .long 1602993657 - .long 4236407587 - .long 3763169470 - .long 1944664328 - .long 2893219494 - .long 1349926897 - .long 3205987314 - .long 4177847879 - .long 3231371645 - .long 3889328657 - .long 1491471692 - .long 2699853794 - .long 2117007332 - .long 4060728462 - .long 2167775995 - .long 3483690018 - .long 2982943385 - .long 1104740292 - .long 4234014665 - .long 3826489629 - .long 40584695 - .long 2672412741 - .long 1670919475 - .long 2209480585 - .long 4173062034 - .long 3358011962 - .long 81169391 - .long 1049858187 - .long 3341838951 - .long 123993874 - .long 4051156773 - .long 2421056629 - .long 162338783 - .long 2099716375 - .long 2388710606 - .long 247987749 - .long 3807346250 - .long 547145963 - .long 324677567 - .long 4199432751 - .long 482453916 - .long 495975499 - .long 3319725204 - .long 1094291926 - .long 649355134 - .long 4103898207 - .long 964907833 - .long 991950999 - .long 2344483112 - .long 2188583852 - .long 1298710268 - .long 3912829119 - .long 1929815667 - .long 1983901999 - .long 393998928 - .long 82200408 - .long 2597420537 - .long 3530690942 - .long 3859631335 - .long 3967803999 - .long 787997856 - .long 164400817 - .long 899873778 - .long 2766414588 - .long 3424295375 - .long 3640640703 - .long 1575995713 - .long 328801635 - .long 1799747556 - .long 1237861880 - .long 2553623455 - .long 2986314111 - .long 3151991427 - .long 657603271 - .long 3599495112 - .long 2475723761 - .long 812279614 - .long 1677660927 - .long 2009015559 - .long 1315206542 - .long 2904022928 - .long 656480226 - .long 1624559229 - .long 3355321855 - .long 4018031118 - .long 2630413084 - .long 1513078560 - .long 1312960453 - .long 3249118458 - .long 2415676415 - .long 3741094941 - .long 965858873 - .long 3026157121 - .long 2625920907 - .long 2203269620 - .long 536385535 - .long 3187222587 - .long 1931717747 - .long 1757346946 - .long 956874519 - .long 111571945 - .long 1072771071 - .long 2079477878 - .long 3863435494 - .long 3514693892 - .long 1913749038 - .long 223143890 - .long 2145542143 - .long 4158955756 - .long 3431903692 - .long 2734420489 - .long 3827498077 - .long 446287780 - .long 4291084286 - .long 4022944216 - .long 2568840088 - .long 1173873683 - .long 3360028859 - .long 892575561 - .long 4287201277 - .long 3750921137 - .long 842712880 - .long 2347747367 - .long 2425090423 - .long 1785151123 - .long 4279435259 - .long 3206874979 - .long 1685425760 - .long 400527438 - .long 555213551 - .long 3570302247 - .long 4263903223 - .long 2118782663 - .long 3370851521 - .long 801054876 - .long 1110427102 - .long 2845637198 - .long 4232839151 - .long 4237565327 - .long 2446735747 - .long 1602109753 - .long 2220854205 - .long 1396307100 - .long 4170711006 - .long 4180163359 - .long 598504198 - .long 3204219507 - .long 146741115 - .long 2792614201 - .long 4046454716 - .long 4065359423 - .long 1197008397 - .long 2113471718 - .long 293482231 - .long 1290261106 - .long 3797942136 - .long 3835751551 - .long 2394016794 - .long 4226943436 - .long 586964463 - .long 2580522212 - .long 3300916976 - .long 3376535807 - .long 493066293 - .long 4158919577 - .long 1173928927 - .long 866077128 - .long 2306866656 - .long 2458104319 - .long 986132586 - .long 4022871858 - .long 2347857855 - .long 1732154256 - .long 318766016 - .long 621241343 - .long 1972265172 - .long 3750776420 - .long 400748414 - .long 3464308513 - .long 637532033 - .long 1242482686 - .long 3944530345 - .long 3206585544 - .long 801496828 - .long 2633649730 - .long 1275064066 - .long 2484965372 - .long 3594093395 - .long 2118203793 - .long 1602993657 - .long 972332164 - .long 2550128133 - .long 674963448 - .long 2893219494 - .long 4236407587 - .long 3205987314 - .long 1944664328 - .long 805288971 - .long 1349926897 - .long 1491471692 - .long 4177847879 - .long 2117007332 - .long 3889328657 - .long 1610577942 - .long 2699853794 - .long 2982943385 - .long 4060728462 - .long 4234014665 - .long 3483690018 - .long 3221155884 - .long 1104740292 - .long 1670919475 - .long 3826489629 - .long 4173062034 - .long 2672412741 - .long 2147344473 - .long 2209480585 - .long 3341838951 - .long 3358011962 - .long 4051156773 - .long 1049858187 - .long 4294688947 - .long 123993874 - .long 2388710606 - .long 2421056629 - .long 3807346250 - .long 2099716375 - .long 4294410598 - .long 247987749 - .long 482453916 - .long 547145963 - .long 3319725204 - .long 4199432751 - .long 4293853900 - .long 495975499 - .long 964907833 - .long 1094291926 - .long 2344483112 - .long 4103898207 - .long 4292740504 - .long 991950999 - .long 1929815667 - .long 2188583852 - .long 393998928 - .long 3912829119 - .long 4290513712 - .long 1983901999 - .long 3859631335 - .long 82200408 - .long 787997856 - .long 3530690942 - .long 4286060128 - .long 3967803999 - .long 3424295375 - .long 164400817 - .long 1575995713 - .long 2766414588 - .long 4277152960 - .long 3640640703 - .long 2553623455 - .long 328801635 - .long 3151991427 - .long 1237861880 - .long 4259338624 - .long 2986314111 - .long 812279614 - .long 657603271 - .long 2009015559 - .long 2475723761 - .long 4223709953 - .long 1677660927 - .long 1624559229 - .long 1315206542 - .long 4018031118 - .long 656480226 - .long 4152452611 - .long 3355321855 - .long 3249118458 - .long 2630413084 - .long 3741094941 - .long 1312960453 - .long 4009937927 - .long 2415676415 - .long 2203269620 - .long 965858873 - .long 3187222587 - .long 2625920907 - .long 3724908559 - .long 536385535 - .long 111571945 - .long 1931717747 - .long 2079477878 - .long 956874519 - .long 3154849823 - .long 1072771071 - .long 223143890 - .long 3863435494 - .long 4158955756 - .long 1913749038 - .long 2014732351 - .long 2145542143 - .long 446287780 - .long 3431903692 - .long 4022944216 - .long 3827498077 - .long 4029464703 - .long 4291084286 - .long 892575561 - .long 2568840088 - .long 3750921137 - .long 3360028859 - .long 3763962110 - .long 4287201277 - .long 1785151123 - .long 842712880 - .long 3206874979 - .long 2425090423 - .long 3232956925 - .long 4279435259 - .long 3570302247 - .long 1685425760 - .long 2118782663 - .long 555213551 - .long 2170946555 - .long 4263903223 - .long 2845637198 - .long 3370851521 - .long 4237565327 - .long 1110427102 - .long 46925815 - .long 4232839151 - .long 1396307100 - .long 2446735747 - .long 4180163359 - .long 2220854205 - .long 93851631 - .long 4170711006 - .long 2792614201 - .long 598504198 - .long 4065359423 - .long 146741115 - .long 187703262 - .long 4046454716 - .long 1290261106 - .long 1197008397 - .long 3835751551 - .long 293482231 - .long 375406524 - .long 3797942136 - .long 2580522212 - .long 2394016794 - .long 3376535807 - .long 586964463 - .long 750813049 - .long 3300916976 - .long 866077128 - .long 493066293 - .long 2458104319 - .long 1173928927 - .long 1501626098 - .long 2306866656 - .long 1732154256 - .long 986132586 - .long 621241343 - .long 2347857855 - .long 3003252197 - .long 318766016 - .long 3464308513 - .long 1972265172 - .long 1242482686 - .long 400748414 - .long 1711537099 - .long 637532033 - .long 2633649730 - .long 3944530345 - .long 2484965372 - .long 801496828 - .long 3423074199 - .long 1275064066 - .long 972332164 - .long 3594093395 - .long 674963448 - .long 1602993657 - .long 2551181103 - .long 2550128133 - .long 1944664328 - .long 2893219494 - .long 1349926897 - .long 3205987314 - .long 807394910 - .long 805288971 - .long 3889328657 - .long 1491471692 - .long 2699853794 - .long 2117007332 - .long 1614789820 - .long 1610577942 - .long 3483690018 - .long 2982943385 - .long 1104740292 - .long 4234014665 - .long 3229579640 - .long 3221155884 - .long 2672412741 - .long 1670919475 - .long 2209480585 - .long 4173062034 - .long 2164191985 - .long 2147344473 - .long 1049858187 - .long 3341838951 - .long 123993874 - .long 4051156773 - .long 33416674 - .long 4294688947 - .long 2099716375 - .long 2388710606 - .long 247987749 - .long 3807346250 - .long 66833348 - .long 4294410598 - .long 4199432751 - .long 482453916 - .long 495975499 - .long 3319725204 - .long 133666696 - .long 4293853900 - .long 4103898207 - .long 964907833 - .long 991950999 - .long 2344483112 - .long 267333393 - .long 4292740504 - .long 3912829119 - .long 1929815667 - .long 1983901999 - .long 393998928 - .long 534666787 - .long 4290513712 - .long 3530690942 - .long 3859631335 - .long 3967803999 - .long 787997856 - .long 1069333574 - .long 4286060128 - .long 2766414588 - .long 3424295375 - .long 3640640703 - .long 1575995713 - .long 2138667148 - .long 4277152960 - .long 1237861880 - .long 2553623455 - .long 2986314111 - .long 3151991427 - .long 4277334296 - .long 4259338624 - .long 2475723761 - .long 812279614 - .long 1677660927 - .long 2009015559 - .long 4259701297 - .long 4223709953 - .long 656480226 - .long 1624559229 - .long 3355321855 - .long 4018031118 - .long 4224435298 - .long 4152452611 - .long 1312960453 - .long 3249118458 - .long 2415676415 - .long 3741094941 - .long 4153903301 - .long 4009937927 - .long 2625920907 - .long 2203269620 - .long 536385535 - .long 3187222587 - .long 4012839307 - .long 3724908559 - .long 956874519 - .long 111571945 - .long 1072771071 - .long 2079477878 - .long 3730711318 - .long 3154849823 - .long 1913749038 - .long 223143890 - .long 2145542143 - .long 4158955756 - .long 3166455341 - .long 2014732351 - .long 3827498077 - .long 446287780 - .long 4291084286 - .long 4022944216 - .long 2037943386 - .long 4029464703 - .long 3360028859 - .long 892575561 - .long 4287201277 - .long 3750921137 - .long 4075886773 - .long 3763962110 - .long 2425090423 - .long 1785151123 - .long 4279435259 - .long 3206874979 - .long 3856806251 - .long 3232956925 - .long 555213551 - .long 3570302247 - .long 4263903223 - .long 2118782663 - .long 3418645206 - .long 2170946555 - .long 1110427102 - .long 2845637198 - .long 4232839151 - .long 4237565327 - .long 2542323117 - .long 46925815 - .long 2220854205 - .long 1396307100 - .long 4170711006 - .long 4180163359 - .long 789678938 - .long 93851631 - .long 146741115 - .long 2792614201 - .long 4046454716 - .long 4065359423 - .long 1579357876 - .long 187703262 - .long 293482231 - .long 1290261106 - .long 3797942136 - .long 3835751551 - .long 3158715752 - .long 375406524 - .long 586964463 - .long 2580522212 - .long 3300916976 - .long 3376535807 - .long 2022464208 - .long 750813049 - .long 1173928927 - .long 866077128 - .long 2306866656 - .long 2458104319 - .long 4044928416 - .long 1501626098 - .long 2347857855 - .long 1732154256 - .long 318766016 - .long 621241343 - .long 3794889537 - .long 3003252197 - .long 400748414 - .long 3464308513 - .long 637532033 - .long 1242482686 - .long 3294811778 - .long 1711537099 - .long 801496828 - .long 2633649730 - .long 1275064066 - .long 2484965372 - .long 2294656261 - .long 3423074199 - .long 1602993657 - .long 972332164 - .long 2550128133 - .long 674963448 - .long 294345226 - .long 2551181103 - .long 3205987314 - .long 1944664328 - .long 805288971 - .long 1349926897 - .long 588690452 - .long 807394910 - .long 2117007332 - .long 3889328657 - .long 1610577942 - .long 2699853794 - .long 1177380905 - .long 1614789820 - .long 4234014665 - .long 3483690018 - .long 3221155884 - .long 1104740292 - .long 2354761811 - .long 3229579640 - .long 4173062034 - .long 2672412741 - .long 2147344473 - .long 2209480585 - .long 414556326 - .long 2164191985 - .long 4051156773 - .long 1049858187 - .long 4294688947 - .long 123993874 - .long 829112653 - .long 33416674 - .long 3807346250 - .long 2099716375 - .long 4294410598 - .long 247987749 - .long 1658225307 - .long 66833348 - .long 3319725204 - .long 4199432751 - .long 4293853900 - .long 495975499 - .long 3316450614 - .long 133666696 - .long 2344483112 - .long 4103898207 - .long 4292740504 - .long 991950999 - .long 2337933933 - .long 267333393 - .long 393998928 - .long 3912829119 - .long 4290513712 - .long 1983901999 - .long 380900570 - .long 534666787 - .long 787997856 - .long 3530690942 - .long 4286060128 - .long 3967803999 - .long 761801140 - .long 1069333574 - .long 1575995713 - .long 2766414588 - .long 4277152960 - .long 3640640703 - .long 1523602280 - .long 2138667148 - .long 3151991427 - .long 1237861880 - .long 4259338624 - .long 2986314111 - .long 3047204561 - .long 4277334296 - .long 2009015559 - .long 2475723761 - .long 4223709953 - .long 1677660927 - .long 1799441827 - .long 4259701297 - .long 4018031118 - .long 656480226 - .long 4152452611 - .long 3355321855 - .long 3598883655 - .long 4224435298 - .long 3741094941 - .long 1312960453 - .long 4009937927 - .long 2415676415 - .long 2902800015 - .long 4153903301 - .long 3187222587 - .long 2625920907 - .long 3724908559 - .long 536385535 - .long 1510632735 - .long 4012839307 - .long 2079477878 - .long 956874519 - .long 3154849823 - .long 1072771071 - .long 3021265470 - .long 3730711318 - .long 4158955756 - .long 1913749038 - .long 2014732351 - .long 2145542143 - .long 1747563645 - .long 3166455341 - .long 4022944216 - .long 3827498077 - .long 4029464703 - .long 4291084286 - .long 3495127291 - .long 2037943386 - .long 3750921137 - .long 3360028859 - .long 3763962110 - .long 4287201277 - .long 2695287286 - .long 4075886773 - .long 3206874979 - .long 2425090423 - .long 3232956925 - .long 4279435259 - .long 1095607277 - .long 3856806251 - .long 2118782663 - .long 555213551 - .long 2170946555 - .long 4263903223 - .long 2191214555 - .long 3418645206 - .long 4237565327 - .long 1110427102 - .long 46925815 - .long 4232839151 - .long 87461814 - .long 2542323117 - .long 4180163359 - .long 2220854205 - .long 93851631 - .long 4170711006 - .long 174923629 - .long 789678938 - .long 4065359423 - .long 146741115 - .long 187703262 - .long 4046454716 - .long 349847258 - .long 1579357876 - .long 3835751551 - .long 293482231 - .long 375406524 - .long 3797942136 - .long 699694516 - .long 3158715752 - .long 3376535807 - .long 586964463 - .long 750813049 - .long 3300916976 - .long 1399389033 - .long 2022464208 - .long 2458104319 - .long 1173928927 - .long 1501626098 - .long 2306866656 - .long 2798778067 - .long 4044928416 - .long 621241343 - .long 2347857855 - .long 3003252197 - .long 318766016 - .long 1302588838 - .long 3794889537 - .long 1242482686 - .long 400748414 - .long 1711537099 - .long 637532033 - .long 2605177677 - .long 3294811778 - .long 2484965372 - .long 801496828 - .long 3423074199 - .long 1275064066 - .long 915388059 - .long 2294656261 - .long 674963448 - .long 1602993657 - .long 2551181103 - .long 2550128133 - .long 1830776118 - .long 294345226 - .long 1349926897 - .long 3205987314 - .long 807394910 - .long 805288971 - .long 3661552236 - .long 588690452 - .long 2699853794 - .long 2117007332 - .long 1614789820 - .long 1610577942 - .long 3028137177 - .long 1177380905 - .long 1104740292 - .long 4234014665 - .long 3229579640 - .long 3221155884 - .long 1761307059 - .long 2354761811 - .long 2209480585 - .long 4173062034 - .long 2164191985 - .long 2147344473 - .long 3522614119 - .long 414556326 - .long 123993874 - .long 4051156773 - .long 33416674 - .long 4294688947 - .long 2750260943 - .long 829112653 - .long 247987749 - .long 3807346250 - .long 66833348 - .long 4294410598 - .long 1205554591 - .long 1658225307 - .long 495975499 - .long 3319725204 - .long 133666696 - .long 4293853900 - .long 2411109183 - .long 3316450614 - .long 991950999 - .long 2344483112 - .long 267333393 - .long 4292740504 - .long 527251070 - .long 2337933933 - .long 1983901999 - .long 393998928 - .long 534666787 - .long 4290513712 - .long 1054502141 - .long 380900570 - .long 3967803999 - .long 787997856 - .long 1069333574 - .long 4286060128 - .long 2109004283 - .long 761801140 - .long 3640640703 - .long 1575995713 - .long 2138667148 - .long 4277152960 - .long 4218008566 - .long 1523602280 - .long 2986314111 - .long 3151991427 - .long 4277334296 - .long 4259338624 - .long 4141049836 - .long 3047204561 - .long 1677660927 - .long 2009015559 - .long 4259701297 - .long 4223709953 - .long 3987132377 - .long 1799441827 - .long 3355321855 - .long 4018031118 - .long 4224435298 - .long 4152452611 - .long 3679297459 - .long 3598883655 - .long 2415676415 - .long 3741094941 - .long 4153903301 - .long 4009937927 - .long 3063627623 - .long 2902800015 - .long 536385535 - .long 3187222587 - .long 4012839307 - .long 3724908559 - .long 1832287951 - .long 1510632735 - .long 1072771071 - .long 2079477878 - .long 3730711318 - .long 3154849823 - .long 3664575902 - .long 3021265470 - .long 2145542143 - .long 4158955756 - .long 3166455341 - .long 2014732351 - .long 3034184508 - .long 1747563645 - .long 4291084286 - .long 4022944216 - .long 2037943386 - .long 4029464703 - .long 1773401721 - .long 3495127291 - .long 4287201277 - .long 3750921137 - .long 4075886773 - .long 3763962110 - .long 3546803442 - .long 2695287286 - .long 4279435259 - .long 3206874979 - .long 3856806251 - .long 3232956925 - .long 2798639588 - .long 1095607277 - .long 4263903223 - .long 2118782663 - .long 3418645206 - .long 2170946555 - .long 1302311881 - .long 2191214555 - .long 4232839151 - .long 4237565327 - .long 2542323117 - .long 46925815 - .long 2604623763 - .long 87461814 - .long 4170711006 - .long 4180163359 - .long 789678938 - .long 93851631 - .long 914280231 - .long 174923629 - .long 4046454716 - .long 4065359423 - .long 1579357876 - .long 187703262 - .long 1828560463 - .long 349847258 - .long 3797942136 - .long 3835751551 - .long 3158715752 - .long 375406524 - .long 3657120927 - .long 699694516 - .long 3300916976 - .long 3376535807 - .long 2022464208 - .long 750813049 - .long 3019274558 - .long 1399389033 - .long 2306866656 - .long 2458104319 - .long 4044928416 - .long 1501626098 - .long 1743581820 - .long 2798778067 - .long 318766016 - .long 621241343 - .long 3794889537 - .long 3003252197 - .long 3487163641 - .long 1302588838 - .long 637532033 - .long 1242482686 - .long 3294811778 - .long 1711537099 - .long 2679359986 - .long 2605177677 - .long 1275064066 - .long 2484965372 - .long 2294656261 - .long 3423074199 - .long 1063752677 - .long 915388059 - .long 2550128133 - .long 674963448 - .long 294345226 - .long 2551181103 - .long 2127505355 - .long 1830776118 - .long 805288971 - .long 1349926897 - .long 588690452 - .long 807394910 - .long 4255010710 - .long 3661552236 - .long 1610577942 - .long 2699853794 - .long 1177380905 - .long 1614789820 - .long 4215054124 - .long 3028137177 - .long 3221155884 - .long 1104740292 - .long 2354761811 - .long 3229579640 - .long 4135140952 - .long 1761307059 - .long 2147344473 - .long 2209480585 - .long 414556326 - .long 2164191985 - .long 3975314608 - .long 3522614119 - .long 4294688947 - .long 123993874 - .long 829112653 - .long 33416674 - .long 3655661921 - .long 2750260943 - .long 4294410598 - .long 247987749 - .long 1658225307 - .long 66833348 - .long 3016356546 - .long 1205554591 - .long 4293853900 - .long 495975499 - .long 3316450614 - .long 133666696 - .long 1737745796 - .long 2411109183 - .long 4292740504 - .long 991950999 - .long 2337933933 - .long 267333393 - .long 3475491593 - .long 527251070 - .long 4290513712 - .long 1983901999 - .long 380900570 - .long 534666787 - .long 2656015891 - .long 1054502141 - .long 4286060128 - .long 3967803999 - .long 761801140 - .long 1069333574 - .long 1017064486 - .long 2109004283 - .long 4277152960 - .long 3640640703 - .long 1523602280 - .long 2138667148 - .long 2034128973 - .long 4218008566 - .long 4259338624 - .long 2986314111 - .long 3047204561 - .long 4277334296 - .long 4068257947 - .long 4141049836 - .long 4223709953 - .long 1677660927 - .long 1799441827 - .long 4259701297 - .long 3841548598 - .long 3987132377 - .long 4152452611 - .long 3355321855 - .long 3598883655 - .long 4224435298 - .long 3388129901 - .long 3679297459 - .long 4009937927 - .long 2415676415 - .long 2902800015 - .long 4153903301 - .long 2481292507 - .long 3063627623 - .long 3724908559 - .long 536385535 - .long 1510632735 - .long 4012839307 - .long 667617719 - .long 1832287951 - .long 3154849823 - .long 1072771071 - .long 3021265470 - .long 3730711318 - .long 1335235438 - .long 3664575902 - .long 2014732351 - .long 2145542143 - .long 1747563645 - .long 3166455341 - .long 2670470877 - .long 3034184508 - .long 4029464703 - .long 4291084286 - .long 3495127291 - .long 2037943386 - .long 1045974458 - .long 1773401721 - .long 3763962110 - .long 4287201277 - .long 2695287286 - .long 4075886773 - .long 2091948916 - .long 3546803442 - .long 3232956925 - .long 4279435259 - .long 1095607277 - .long 3856806251 - .long 4183897833 - .long 2798639588 - .long 2170946555 - .long 4263903223 - .long 2191214555 - .long 3418645206 - .long 4072828371 - .long 1302311881 - .long 46925815 - .long 4232839151 - .long 87461814 - .long 2542323117 - .long 3850689447 - .long 2604623763 - .long 93851631 - .long 4170711006 - .long 174923629 - .long 789678938 - .long 3406411599 - .long 914280231 - .long 187703262 - .long 4046454716 - .long 349847258 - .long 1579357876 - .long 2517855902 - .long 1828560463 - .long 375406524 - .long 3797942136 - .long 699694516 - .long 3158715752 - .long 740744509 - .long 3657120927 - .long 750813049 - .long 3300916976 - .long 1399389033 - .long 2022464208 - .long 1481489018 - .long 3019274558 - .long 1501626098 - .long 2306866656 - .long 2798778067 - .long 4044928416 - .long 2962978036 - .long 1743581820 - .long 3003252197 - .long 318766016 - .long 1302588838 - .long 3794889537 - .long 1630988776 - .long 3487163641 - .long 1711537099 - .long 637532033 - .long 2605177677 - .long 3294811778 - .long 3261977553 - .long 2679359986 - .long 3423074199 - .long 1275064066 - .long 915388059 - .long 2294656261 - .long 2228987811 - .long 1063752677 - .long 2551181103 - .long 2550128133 - .long 1830776118 - .long 294345226 - .long 163008326 - .long 2127505355 - .long 807394910 - .long 805288971 - .long 3661552236 - .long 588690452 - .long 326016652 - .long 4255010710 - .long 1614789820 - .long 1610577942 - .long 3028137177 - .long 1177380905 - .long 652033304 - .long 4215054124 - .long 3229579640 - .long 3221155884 - .long 1761307059 - .long 2354761811 - .long 1304066609 - .long 4135140952 - .long 2164191985 - .long 2147344473 - .long 3522614119 - .long 414556326 - .long 2608133219 - .long 3975314608 - .long 33416674 - .long 4294688947 - .long 2750260943 - .long 829112653 - .long 921299143 - .long 3655661921 - .long 66833348 - .long 4294410598 - .long 1205554591 - .long 1658225307 - .long 1842598287 - .long 3016356546 - .long 133666696 - .long 4293853900 - .long 2411109183 - .long 3316450614 - .long 3685196575 - .long 1737745796 - .long 267333393 - .long 4292740504 - .long 527251070 - .long 2337933933 - .long 3075425855 - .long 3475491593 - .long 534666787 - .long 4290513712 - .long 1054502141 - .long 380900570 - .long 1855884414 - .long 2656015891 - .long 1069333574 - .long 4286060128 - .long 2109004283 - .long 761801140 - .long 3711768829 - .long 1017064486 - .long 2138667148 - .long 4277152960 - .long 4218008566 - .long 1523602280 - .long 3128570363 - .long 2034128973 - .long 4277334296 - .long 4259338624 - .long 4141049836 - .long 3047204561 - .long 1962173430 - .long 4068257947 - .long 4259701297 - .long 4223709953 - .long 3987132377 - .long 1799441827 - .long 3924346860 - .long 3841548598 - .long 4224435298 - .long 4152452611 - .long 3679297459 - .long 3598883655 - .long 3553726425 - .long 3388129901 - .long 4153903301 - .long 4009937927 - .long 3063627623 - .long 2902800015 - .long 2812485555 - .long 2481292507 - .long 4012839307 - .long 3724908559 - .long 1832287951 - .long 1510632735 - .long 1330003814 - .long 667617719 - .long 3730711318 - .long 3154849823 - .long 3664575902 - .long 3021265470 - .long 2660007629 - .long 1335235438 - .long 3166455341 - .long 2014732351 - .long 3034184508 - .long 1747563645 - .long 1025047962 - .long 2670470877 - .long 2037943386 - .long 4029464703 - .long 1773401721 - .long 3495127291 - .long 2050095924 - .long 1045974458 - .long 4075886773 - .long 3763962110 - .long 3546803442 - .long 2695287286 - .long 4100191849 - .long 2091948916 - .long 3856806251 - .long 3232956925 - .long 2798639588 - .long 1095607277 - .long 3905416403 - .long 4183897833 - .long 3418645206 - .long 2170946555 - .long 1302311881 - .long 2191214555 - .long 3515865511 - .long 4072828371 - .long 2542323117 - .long 46925815 - .long 2604623763 - .long 87461814 - .long 2736763727 - .long 3850689447 - .long 789678938 - .long 93851631 - .long 914280231 - .long 174923629 - .long 1178560158 - .long 3406411599 - .long 1579357876 - .long 187703262 - .long 1828560463 - .long 349847258 - .long 2357120316 - .long 2517855902 - .long 3158715752 - .long 375406524 - .long 3657120927 - .long 699694516 - .long 419273337 - .long 740744509 - .long 2022464208 - .long 750813049 - .long 3019274558 - .long 1399389033 - .long 838546674 - .long 1481489018 - .long 4044928416 - .long 1501626098 - .long 1743581820 - .long 2798778067 - .long 1677093349 - .long 2962978036 - .long 3794889537 - .long 3003252197 - .long 3487163641 - .long 1302588838 - .long 3354186699 - .long 1630988776 - .long 3294811778 - .long 1711537099 - .long 2679359986 - .long 2605177677 - .long 2413406103 - .long 3261977553 - .long 2294656261 - .long 3423074199 - .long 1063752677 - .long 915388059 - .long 531844911 - .long 2228987811 - .long 294345226 - .long 2551181103 - .long 2127505355 - .long 1830776118 - .long 1063689823 - .long 163008326 - .long 588690452 - .long 807394910 - .long 4255010710 - .long 3661552236 - .long 2127379647 - .long 326016652 - .long 1177380905 - .long 1614789820 - .long 4215054124 - .long 3028137177 - .long 4254759295 - .long 652033304 - .long 2354761811 - .long 3229579640 - .long 4135140952 - .long 1761307059 - .long 4214551295 - .long 1304066609 - .long 414556326 - .long 2164191985 - .long 3975314608 - .long 3522614119 - .long 4134135294 - .long 2608133219 - .long 829112653 - .long 33416674 - .long 3655661921 - .long 2750260943 - .long 3973303293 - .long 921299143 - .long 1658225307 - .long 66833348 - .long 3016356546 - .long 1205554591 - .long 3651639290 - .long 1842598287 - .long 3316450614 - .long 133666696 - .long 1737745796 - .long 2411109183 - .long 3008311285 - .long 3685196575 - .long 2337933933 - .long 267333393 - .long 3475491593 - .long 527251070 - .long 1721655274 - .long 3075425855 - .long 380900570 - .long 534666787 - .long 2656015891 - .long 1054502141 - .long 3443310548 - .long 1855884414 - .long 761801140 - .long 1069333574 - .long 1017064486 - .long 2109004283 - .long 2591653800 - .long 3711768829 - .long 1523602280 - .long 2138667148 - .long 2034128973 - .long 4218008566 - .long 888340305 - .long 3128570363 - .long 3047204561 - .long 4277334296 - .long 4068257947 - .long 4141049836 - .long 1776680610 - .long 1962173430 - .long 1799441827 - .long 4259701297 - .long 3841548598 - .long 3987132377 - .long 3553361221 - .long 3924346860 - .long 3598883655 - .long 4224435298 - .long 3388129901 - .long 3679297459 - .long 2811755147 - .long 3553726425 - .long 2902800015 - .long 4153903301 - .long 2481292507 - .long 3063627623 - .long 1328542998 - .long 2812485555 - .long 1510632735 - .long 4012839307 - .long 667617719 - .long 1832287951 - .long 2657085997 - .long 1330003814 - .long 3021265470 - .long 3730711318 - .long 1335235438 - .long 3664575902 - .long 1019204698 - .long 2660007629 - .long 1747563645 - .long 3166455341 - .long 2670470877 - .long 3034184508 - .long 2038409397 - .long 1025047962 - .long 3495127291 - .long 2037943386 - .long 1045974458 - .long 1773401721 - .long 4076818795 - .long 2050095924 - .long 2695287286 - .long 4075886773 - .long 2091948916 - .long 3546803442 - .long 3858670295 - .long 4100191849 - .long 1095607277 - .long 3856806251 - .long 4183897833 - .long 2798639588 - .long 3422373294 - .long 3905416403 - .long 2191214555 - .long 3418645206 - .long 4072828371 - .long 1302311881 - .long 2549779293 - .long 3515865511 - .long 87461814 - .long 2542323117 - .long 3850689447 - .long 2604623763 - .long 804591290 - .long 2736763727 - .long 174923629 - .long 789678938 - .long 3406411599 - .long 914280231 - .long 1609182581 - .long 1178560158 - .long 349847258 - .long 1579357876 - .long 2517855902 - .long 1828560463 - .long 3218365162 - .long 2357120316 - .long 699694516 - .long 3158715752 - .long 740744509 - .long 3657120927 - .long 2141763028 - .long 419273337 - .long 1399389033 - .long 2022464208 - .long 1481489018 - .long 3019274558 - .long 4283526057 - .long 838546674 - .long 2798778067 - .long 4044928416 - .long 2962978036 - .long 1743581820 - .long 4272084818 - .long 1677093349 - .long 1302588838 - .long 3794889537 - .long 1630988776 - .long 3487163641 - .long 4249202340 - .long 3354186699 - .long 2605177677 - .long 3294811778 - .long 3261977553 - .long 2679359986 - .long 4203437385 - .long 2413406103 - .long 915388059 - .long 2294656261 - .long 2228987811 - .long 1063752677 - .long 4111907475 - .long 531844911 - .long 1830776118 - .long 294345226 - .long 163008326 - .long 2127505355 - .long 3928847655 - .long 1063689823 - .long 3661552236 - .long 588690452 - .long 326016652 - .long 4255010710 - .long 3562728015 - .long 2127379647 - .long 3028137177 - .long 1177380905 - .long 652033304 - .long 4215054124 - .long 2830488734 - .long 4254759295 - .long 1761307059 - .long 2354761811 - .long 1304066609 - .long 4135140952 - .long 1366010173 - .long 4214551295 - .long 3522614119 - .long 414556326 - .long 2608133219 - .long 3975314608 - .long 2732020347 - .long 4134135294 - .long 2750260943 - .long 829112653 - .long 921299143 - .long 3655661921 - .long 1169073399 - .long 3973303293 - .long 1205554591 - .long 1658225307 - .long 1842598287 - .long 3016356546 - .long 2338146798 - .long 3651639290 - .long 2411109183 - .long 3316450614 - .long 3685196575 - .long 1737745796 - .long 381326301 - .long 3008311285 - .long 527251070 - .long 2337933933 - .long 3075425855 - .long 3475491593 - .long 762652602 - .long 1721655274 - .long 1054502141 - .long 380900570 - .long 1855884414 - .long 2656015891 - .long 1525305205 - .long 3443310548 - .long 2109004283 - .long 761801140 - .long 3711768829 - .long 1017064486 - .long 3050610411 - .long 2591653800 - .long 4218008566 - .long 1523602280 - .long 3128570363 - .long 2034128973 - .long 1806253526 - .long 888340305 - .long 4141049836 - .long 3047204561 - .long 1962173430 - .long 4068257947 - .long 3612507052 - .long 1776680610 - .long 3987132377 - .long 1799441827 - .long 3924346860 - .long 3841548598 - .long 2930046808 - .long 3553361221 - .long 3679297459 - .long 3598883655 - .long 3553726425 - .long 3388129901 - .long 1565126321 - .long 2811755147 - .long 3063627623 - .long 2902800015 - .long 2812485555 - .long 2481292507 - .long 3130252643 - .long 1328542998 - .long 1832287951 - .long 1510632735 - .long 1330003814 - .long 667617719 - .long 1965537991 - .long 2657085997 - .long 3664575902 - .long 3021265470 - .long 2660007629 - .long 1335235438 - .long 3931075983 - .long 1019204698 - .long 3034184508 - .long 1747563645 - .long 1025047962 - .long 2670470877 - .long 3567184671 - .long 2038409397 - .long 1773401721 - .long 3495127291 - .long 2050095924 - .long 1045974458 - .long 2839402047 - .long 4076818795 - .long 3546803442 - .long 2695287286 - .long 4100191849 - .long 2091948916 - .long 1383836798 - .long 3858670295 - .long 2798639588 - .long 1095607277 - .long 3905416403 - .long 4183897833 - .long 2767673597 - .long 3422373294 - .long 1302311881 - .long 2191214555 - .long 3515865511 - .long 4072828371 - .long 1240379898 - .long 2549779293 - .long 2604623763 - .long 87461814 - .long 2736763727 - .long 3850689447 - .long 2480759797 - .long 804591290 - .long 914280231 - .long 174923629 - .long 1178560158 - .long 3406411599 - .long 666552299 - .long 1609182581 - .long 1828560463 - .long 349847258 - .long 2357120316 - .long 2517855902 - .long 1333104599 - .long 3218365162 - .long 3657120927 - .long 699694516 - .long 419273337 - .long 740744509 - .long 2666209199 - .long 2141763028 - .long 3019274558 - .long 1399389033 - .long 838546674 - .long 1481489018 - .long 1037451103 - .long 4283526057 - .long 1743581820 - .long 2798778067 - .long 1677093349 - .long 2962978036 - .long 2074902206 - .long 4272084818 - .long 3487163641 - .long 1302588838 - .long 3354186699 - .long 1630988776 - .long 4149804412 - .long 4249202340 - .long 2679359986 - .long 2605177677 - .long 2413406103 - .long 3261977553 - .long 4004641529 - .long 4203437385 - .long 1063752677 - .long 915388059 - .long 531844911 - .long 2228987811 - .long 3714315762 - .long 4111907475 - .long 2127505355 - .long 1830776118 - .long 1063689823 - .long 163008326 - .long 3133664229 - .long 3928847655 - .long 4255010710 - .long 3661552236 - .long 2127379647 - .long 326016652 - .long 1972361163 - .long 3562728015 - .long 4215054124 - .long 3028137177 - .long 4254759295 - .long 652033304 - .long 3944722327 - .long 2830488734 - .long 4135140952 - .long 1761307059 - .long 4214551295 - .long 1304066609 - .long 3594477359 - .long 1366010173 - .long 3975314608 - .long 3522614119 - .long 4134135294 - .long 2608133219 - .long 2893987423 - .long 2732020347 - .long 3655661921 - .long 2750260943 - .long 3973303293 - .long 921299143 - .long 1493007550 - .long 1169073399 - .long 3016356546 - .long 1205554591 - .long 3651639290 - .long 1842598287 - .long 2986015100 - .long 2338146798 - .long 1737745796 - .long 2411109183 - .long 3008311285 - .long 3685196575 - .long 1677062904 - .long 381326301 - .long 3475491593 - .long 527251070 - .long 1721655274 - .long 3075425855 - .long 3354125809 - .long 762652602 - .long 2656015891 - .long 1054502141 - .long 3443310548 - .long 1855884414 - .long 2413284322 - .long 1525305205 - .long 1017064486 - .long 2109004283 - .long 2591653800 - .long 3711768829 - .long 531601349 - .long 3050610411 - .long 2034128973 - .long 4218008566 - .long 888340305 - .long 3128570363 - .long 1063202699 - .long 1806253526 - .long 4068257947 - .long 4141049836 - .long 1776680610 - .long 1962173430 - .long 2126405399 - .long 3612507052 - .long 3841548598 - .long 3987132377 - .long 3553361221 - .long 3924346860 - .long 4252810799 - .long 2930046808 - .long 3388129901 - .long 3679297459 - .long 2811755147 - .long 3553726425 - .long 4210654302 - .long 1565126321 - .long 2481292507 - .long 3063627623 - .long 1328542998 - .long 2812485555 - .long 4126341309 - .long 3130252643 - .long 667617719 - .long 1832287951 - .long 2657085997 - .long 1330003814 - .long 3957715323 - .long 1965537991 - .long 1335235438 - .long 3664575902 - .long 1019204698 - .long 2660007629 - .long 3620463350 - .long 3931075983 - .long 2670470877 - .long 3034184508 - .long 2038409397 - .long 1025047962 - .long 2945959404 - .long 3567184671 - .long 1045974458 - .long 1773401721 - .long 4076818795 - .long 2050095924 - .long 1596951513 - .long 2839402047 - .long 2091948916 - .long 3546803442 - .long 3858670295 - .long 4100191849 - .long 3193903027 - .long 1383836798 - .long 4183897833 - .long 2798639588 - .long 3422373294 - .long 3905416403 - .long 2092838759 - .long 2767673597 - .long 4072828371 - .long 1302311881 - .long 2549779293 - .long 3515865511 - .long 4185677519 - .long 1240379898 - .long 3850689447 - .long 2604623763 - .long 804591290 - .long 2736763727 - .long 4076387742 - .long 2480759797 - .long 3406411599 - .long 914280231 - .long 1609182581 - .long 1178560158 - .long 3857808189 - .long 666552299 - .long 2517855902 - .long 1828560463 - .long 3218365162 - .long 2357120316 - .long 3420649082 - .long 1333104599 - .long 740744509 - .long 3657120927 - .long 2141763028 - .long 419273337 - .long 2546330868 - .long 2666209199 - .long 1481489018 - .long 3019274558 - .long 4283526057 - .long 838546674 - .long 797694440 - .long 1037451103 - .long 2962978036 - .long 1743581820 - .long 4272084818 - .long 1677093349 - .long 1595388880 - .long 2074902206 - .long 1630988776 - .long 3487163641 - .long 4249202340 - .long 3354186699 - .long 3190777760 - .long 4149804412 - .long 3261977553 - .long 2679359986 - .long 4203437385 - .long 2413406103 - .long 2086588225 - .long 4004641529 - .long 2228987811 - .long 1063752677 - .long 4111907475 - .long 531844911 - .long 4173176451 - .long 3714315762 - .long 163008326 - .long 2127505355 - .long 3928847655 - .long 1063689823 - .long 4051385607 - .long 3133664229 - .long 326016652 - .long 4255010710 - .long 3562728015 - .long 2127379647 - .long 3807803918 - .long 1972361163 - .long 652033304 - .long 4215054124 - .long 2830488734 - .long 4254759295 - .long 3320640540 - .long 3944722327 - .long 1304066609 - .long 4135140952 - .long 1366010173 - .long 4214551295 - .long 2346313785 - .long 3594477359 - .long 2608133219 - .long 3975314608 - .long 2732020347 - .long 4134135294 - .long 397660275 - .long 2893987423 - .long 921299143 - .long 3655661921 - .long 1169073399 - .long 3973303293 - .long 795320551 - .long 1493007550 - .long 1842598287 - .long 3016356546 - .long 2338146798 - .long 3651639290 - .long 1590641102 - .long 2986015100 - .long 3685196575 - .long 1737745796 - .long 381326301 - .long 3008311285 - .long 3181282204 - .long 1677062904 - .long 3075425855 - .long 3475491593 - .long 762652602 - .long 1721655274 - .long 2067597113 - .long 3354125809 - .long 1855884414 - .long 2656015891 - .long 1525305205 - .long 3443310548 - .long 4135194227 - .long 2413284322 - .long 3711768829 - .long 1017064486 - .long 3050610411 - .long 2591653800 - .long 3975421159 - .long 531601349 - .long 3128570363 - .long 2034128973 - .long 1806253526 - .long 888340305 - .long 3655875023 - .long 1063202699 - .long 1962173430 - .long 4068257947 - .long 3612507052 - .long 1776680610 - .long 3016782751 - .long 2126405399 - .long 3924346860 - .long 3841548598 - .long 2930046808 - .long 3553361221 - .long 1738598206 - .long 4252810799 - .long 3553726425 - .long 3388129901 - .long 1565126321 - .long 2811755147 - .long 3477196413 - .long 4210654302 - .long 2812485555 - .long 2481292507 - .long 3130252643 - .long 1328542998 - .long 2659425531 - .long 4126341309 - .long 1330003814 - .long 667617719 - .long 1965537991 - .long 2657085997 - .long 1023883767 - .long 3957715323 - .long 2660007629 - .long 1335235438 - .long 3931075983 - .long 1019204698 - .long 2047767535 - .long 3620463350 - .long 1025047962 - .long 2670470877 - .long 3567184671 - .long 2038409397 - .long 4095535070 - .long 2945959404 - .long 2050095924 - .long 1045974458 - .long 2839402047 - .long 4076818795 - .long 3896102844 - .long 1596951513 - .long 4100191849 - .long 2091948916 - .long 1383836798 - .long 3858670295 - .long 3497238392 - .long 3193903027 - .long 3905416403 - .long 4183897833 - .long 2767673597 - .long 3422373294 - .long 2699509489 - .long 2092838759 - .long 3515865511 - .long 4072828371 - .long 1240379898 - .long 2549779293 - .long 1104051682 - .long 4185677519 - .long 2736763727 - .long 3850689447 - .long 2480759797 - .long 804591290 - .long 2208103365 - .long 4076387742 - .long 1178560158 - .long 3406411599 - .long 666552299 - .long 1609182581 - .long 121239434 - .long 3857808189 - .long 2357120316 - .long 2517855902 - .long 1333104599 - .long 3218365162 - .long 242478868 - .long 3420649082 - .long 419273337 - .long 740744509 - .long 2666209199 - .long 2141763028 - .long 484957737 - .long 2546330868 - .long 838546674 - .long 1481489018 - .long 1037451103 - .long 4283526057 - .long 969915474 - .long 797694440 - .long 1677093349 - .long 2962978036 - .long 2074902206 - .long 4272084818 - .long 1939830949 - .long 1595388880 - .long 3354186699 - .long 1630988776 - .long 4149804412 - .long 4249202340 - .long 3879661898 - .long 3190777760 - .long 2413406103 - .long 3261977553 - .long 4004641529 - .long 4203437385 - .long 3464356500 - .long 2086588225 - .long 531844911 - .long 2228987811 - .long 3714315762 - .long 4111907475 - .long 2633745705 - .long 4173176451 - .long 1063689823 - .long 163008326 - .long 3133664229 - .long 3928847655 - .long 972524114 - .long 4051385607 - .long 2127379647 - .long 326016652 - .long 1972361163 - .long 3562728015 - .long 1945048229 - .long 3807803918 - .long 4254759295 - .long 652033304 - .long 3944722327 - .long 2830488734 - .long 3890096458 - .long 3320640540 - .long 4214551295 - .long 1304066609 - .long 3594477359 - .long 1366010173 - .long 3485225620 - .long 2346313785 - .long 4134135294 - .long 2608133219 - .long 2893987423 - .long 2732020347 - .long 2675483945 - .long 397660275 - .long 3973303293 - .long 921299143 - .long 1493007550 - .long 1169073399 - .long 1056000594 - .long 795320551 - .long 3651639290 - .long 1842598287 - .long 2986015100 - .long 2338146798 - .long 2112001188 - .long 1590641102 - .long 3008311285 - .long 3685196575 - .long 1677062904 - .long 381326301 - .long 4224002377 - .long 3181282204 - .long 1721655274 - .long 3075425855 - .long 3354125809 - .long 762652602 - .long 4153037458 - .long 2067597113 - .long 3443310548 - .long 1855884414 - .long 2413284322 - .long 1525305205 - .long 4011107621 - .long 4135194227 - .long 2591653800 - .long 3711768829 - .long 531601349 - .long 3050610411 - .long 3727247947 - .long 3975421159 - .long 888340305 - .long 3128570363 - .long 1063202699 - .long 1806253526 - .long 3159528599 - .long 3655875023 - .long 1776680610 - .long 1962173430 - .long 2126405399 - .long 3612507052 - .long 2024089902 - .long 3016782751 - .long 3553361221 - .long 3924346860 - .long 4252810799 - .long 2930046808 - .long 4048179805 - .long 1738598206 - .long 2811755147 - .long 3553726425 - .long 4210654302 - .long 1565126321 - .long 3801392314 - .long 3477196413 - .long 1328542998 - .long 2812485555 - .long 4126341309 - .long 3130252643 - .long 3307817333 - .long 2659425531 - .long 2657085997 - .long 1330003814 - .long 3957715323 - .long 1965537991 - .long 2320667370 - .long 1023883767 - .long 1019204698 - .long 2660007629 - .long 3620463350 - .long 3931075983 - .long 346367444 - .long 2047767535 - .long 2038409397 - .long 1025047962 - .long 2945959404 - .long 3567184671 - .long 692734889 - .long 4095535070 - .long 4076818795 - .long 2050095924 - .long 1596951513 - .long 2839402047 - .long 1385469779 - .long 3896102844 - .long 3858670295 - .long 4100191849 - .long 3193903027 - .long 1383836798 - .long 2770939558 - .long 3497238392 - .long 3422373294 - .long 3905416403 - .long 2092838759 - .long 2767673597 - .long 1246911821 - .long 2699509489 - .long 2549779293 - .long 3515865511 - .long 4185677519 - .long 1240379898 - .long 2493823642 - .long 1104051682 - .long 804591290 - .long 2736763727 - .long 4076387742 - .long 2480759797 - .long 692679989 - .long 2208103365 - .long 1609182581 - .long 1178560158 - .long 3857808189 - .long 666552299 - .long 1385359979 - .long 121239434 - .long 3218365162 - .long 2357120316 - .long 3420649082 - .long 1333104599 - .long 2770719959 - .long 242478868 - .long 2141763028 - .long 419273337 - .long 2546330868 - .long 2666209199 - .long 1246472623 - .long 484957737 - .long 4283526057 - .long 838546674 - .long 797694440 - .long 1037451103 - .long 2492945247 - .long 969915474 - .long 4272084818 - .long 1677093349 - .long 1595388880 - .long 2074902206 - .long 690923199 - .long 1939830949 - .long 4249202340 - .long 3354186699 - .long 3190777760 - .long 4149804412 - .long 1381846399 - .long 3879661898 - .long 4203437385 - .long 2413406103 - .long 2086588225 - .long 4004641529 - .long 2763692798 - .long 3464356500 - .long 4111907475 - .long 531844911 - .long 4173176451 - .long 3714315762 - .long 1232418301 - .long 2633745705 - .long 3928847655 - .long 1063689823 - .long 4051385607 - .long 3133664229 - .long 2464836603 - .long 972524114 - .long 3562728015 - .long 2127379647 - .long 3807803918 - .long 1972361163 - .long 634705910 - .long 1945048229 - .long 2830488734 - .long 4254759295 - .long 3320640540 - .long 3944722327 - .long 1269411821 - .long 3890096458 - .long 1366010173 - .long 4214551295 - .long 2346313785 - .long 3594477359 - .long 2538823642 - .long 3485225620 - .long 2732020347 - .long 4134135294 - .long 397660275 - .long 2893987423 - .long 782679989 - .long 2675483945 - .long 1169073399 - .long 3973303293 - .long 795320551 - .long 1493007550 - .long 1565359979 - .long 1056000594 - .long 2338146798 - .long 3651639290 - .long 1590641102 - .long 2986015100 - .long 3130719959 - .long 2112001188 - .long 381326301 - .long 3008311285 - .long 3181282204 - .long 1677062904 - .long 1966472623 - .long 4224002377 - .long 762652602 - .long 1721655274 - .long 2067597113 - .long 3354125809 - .long 3932945247 - .long 4153037458 - .long 1525305205 - .long 3443310548 - .long 4135194227 - .long 2413284322 - .long 3570923199 - .long 4011107621 - .long 3050610411 - .long 2591653800 - .long 3975421159 - .long 531601349 - .long 2846879102 - .long 3727247947 - .long 1806253526 - .long 888340305 - .long 3655875023 - .long 1063202699 - .long 1398790909 - .long 3159528599 - .long 3612507052 - .long 1776680610 - .long 3016782751 - .long 2126405399 - .long 2797581819 - .long 2024089902 - .long 2930046808 - .long 3553361221 - .long 1738598206 - .long 4252810799 - .long 1300196342 - .long 4048179805 - .long 1565126321 - .long 2811755147 - .long 3477196413 - .long 4210654302 - .long 2600392684 - .long 3801392314 - .long 3130252643 - .long 1328542998 - .long 2659425531 - .long 4126341309 - .long 905818072 - .long 3307817333 - .long 1965537991 - .long 2657085997 - .long 1023883767 - .long 3957715323 - .long 1811636145 - .long 2320667370 - .long 3931075983 - .long 1019204698 - .long 2047767535 - .long 3620463350 - .long 3623272290 - .long 346367444 - .long 3567184671 - .long 2038409397 - .long 4095535070 - .long 2945959404 - .long 2951577284 - .long 692734889 - .long 2839402047 - .long 4076818795 - .long 3896102844 - .long 1596951513 - .long 1608187272 - .long 1385469779 - .long 1383836798 - .long 3858670295 - .long 3497238392 - .long 3193903027 - .long 3216374545 - .long 2770939558 - .long 2767673597 - .long 3422373294 - .long 2699509489 - .long 2092838759 - .long 2137781795 - .long 1246911821 - .long 1240379898 - .long 2549779293 - .long 1104051682 - .long 4185677519 - .long 4275563591 - .long 2493823642 - .long 2480759797 - .long 804591290 - .long 2208103365 - .long 4076387742 - .long 4256159887 - .long 692679989 - .long 666552299 - .long 1609182581 - .long 121239434 - .long 3857808189 - .long 4217352479 - .long 1385359979 - .long 1333104599 - .long 3218365162 - .long 242478868 - .long 3420649082 - .long 4139737663 - .long 2770719959 - .long 2666209199 - .long 2141763028 - .long 484957737 - .long 2546330868 - .long 3984508030 - .long 1246472623 - .long 1037451103 - .long 4283526057 - .long 969915474 - .long 797694440 - .long 3674048764 - .long 2492945247 - .long 2074902206 - .long 4272084818 - .long 1939830949 - .long 1595388880 - .long 3053130232 - .long 690923199 - .long 4149804412 - .long 4249202340 - .long 3879661898 - .long 3190777760 - .long 1811293169 - .long 1381846399 - .long 4004641529 - .long 4203437385 - .long 3464356500 - .long 2086588225 - .long 3622586339 - .long 2763692798 - .long 3714315762 - .long 4111907475 - .long 2633745705 - .long 4173176451 - .long 2950205382 - .long 1232418301 - .long 3133664229 - .long 3928847655 - .long 972524114 - .long 4051385607 - .long 1605443469 - .long 2464836603 - .long 1972361163 - .long 3562728015 - .long 1945048229 - .long 3807803918 - .long 3210886938 - .long 634705910 - .long 3944722327 - .long 2830488734 - .long 3890096458 - .long 3320640540 - .long 2126806581 - .long 1269411821 - .long 3594477359 - .long 1366010173 - .long 3485225620 - .long 2346313785 - .long 4253613162 - .long 2538823642 - .long 2893987423 - .long 2732020347 - .long 2675483945 - .long 397660275 - .long 4212259029 - .long 782679989 - .long 1493007550 - .long 1169073399 - .long 1056000594 - .long 795320551 - .long 4129550763 - .long 1565359979 - .long 2986015100 - .long 2338146798 - .long 2112001188 - .long 1590641102 - .long 3964134231 - .long 3130719959 - .long 1677062904 - .long 381326301 - .long 4224002377 - .long 3181282204 - .long 3633301166 - .long 1966472623 - .long 3354125809 - .long 762652602 - .long 4153037458 - .long 2067597113 - .long 2971635037 - .long 3932945247 - .long 2413284322 - .long 1525305205 - .long 4011107621 - .long 4135194227 - .long 1648302778 - .long 3570923199 - .long 531601349 - .long 3050610411 - .long 3727247947 - .long 3975421159 - .long 3296605556 - .long 2846879102 - .long 1063202699 - .long 1806253526 - .long 3159528599 - .long 3655875023 - .long 2298243816 - .long 1398790909 - .long 2126405399 - .long 3612507052 - .long 2024089902 - .long 3016782751 - .long 301520336 - .long 2797581819 - .long 4252810799 - .long 2930046808 - .long 4048179805 - .long 1738598206 - .long 603040673 - .long 1300196342 - .long 4210654302 - .long 1565126321 - .long 3801392314 - .long 3477196413 - .long 1206081346 - .long 2600392684 - .long 4126341309 - .long 3130252643 - .long 3307817333 - .long 2659425531 - .long 2412162692 - .long 905818072 - .long 3957715323 - .long 1965537991 - .long 2320667370 - .long 1023883767 - .long 529358088 - .long 1811636145 - .long 3620463350 - .long 3931075983 - .long 346367444 - .long 2047767535 - .long 1058716176 - .long 3623272290 - .long 2945959404 - .long 3567184671 - .long 692734889 - .long 4095535070 - .long 2117432353 - .long 2951577284 - .long 1596951513 - .long 2839402047 - .long 1385469779 - .long 3896102844 - .long 4234864706 - .long 1608187272 - .long 3193903027 - .long 1383836798 - .long 2770939558 - .long 3497238392 - .long 4174762117 - .long 3216374545 - .long 2092838759 - .long 2767673597 - .long 1246911821 - .long 2699509489 - .long 4054556938 - .long 2137781795 - .long 4185677519 - .long 1240379898 - .long 2493823642 - .long 1104051682 - .long 3814146581 - .long 4275563591 - .long 4076387742 - .long 2480759797 - .long 692679989 - .long 2208103365 - .long 3333325867 - .long 4256159887 - .long 3857808189 - .long 666552299 - .long 1385359979 - .long 121239434 - .long 2371684438 - .long 4217352479 - .long 3420649082 - .long 1333104599 - .long 2770719959 - .long 242478868 - .long 448401580 - .long 4139737663 - .long 2546330868 - .long 2666209199 - .long 1246472623 - .long 484957737 - .long 896803160 - .long 3984508030 - .type __svml_dcos_reduction_data_internal,@object - .size __svml_dcos_reduction_data_internal,49152 - .space 512, 0x00 - .align 8 -.L_2il0floatpacket.28: - .long 0xffffffff,0xffffffff - .type .L_2il0floatpacket.28,@object - .size .L_2il0floatpacket.28,8 - .align 8 -.L_2il0floatpacket.29: - .long 0x00000000,0x7ff00000 - .type .L_2il0floatpacket.29,@object - .size .L_2il0floatpacket.29,8 - .align 8 -.L_2il0floatpacket.30: - .long 0xffffffff,0x000fffff - .type .L_2il0floatpacket.30,@object - .size .L_2il0floatpacket.30,8 - .align 8 -.L_2il0floatpacket.31: - .long 0x00000000,0x00100000 - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,8 - .align 8 -.L_2il0floatpacket.32: - .long 0xffffffff,0x00000000 - .type .L_2il0floatpacket.32,@object - .size .L_2il0floatpacket.32,8 - .align 8 -.L_2il0floatpacket.33: - .long 0x00000000,0x80000000 - .type .L_2il0floatpacket.33,@object - .size .L_2il0floatpacket.33,8 - .align 8 -.L_2il0floatpacket.34: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.34,@object - .size .L_2il0floatpacket.34,8 - .align 8 -.L_2il0floatpacket.35: - .long 0x00000000,0x42a80000 - .type .L_2il0floatpacket.35,@object - .size .L_2il0floatpacket.35,8 - .align 8 -.L_2il0floatpacket.36: - .long 0x000001ff,0x00000000 - .type .L_2il0floatpacket.36,@object - .size .L_2il0floatpacket.36,8 - .align 8 -.L_2il0floatpacket.37: - .long 0x00000000,0x39700000 - .type .L_2il0floatpacket.37,@object - .size .L_2il0floatpacket.37,8 - .align 8 -.L_2il0floatpacket.38: - .long 0x00ffffff,0x00000000 - .type .L_2il0floatpacket.38,@object - .size .L_2il0floatpacket.38,8 - .align 8 -.L_2il0floatpacket.39: - .long 0x00000000,0x3cb00000 - .type .L_2il0floatpacket.39,@object - .size .L_2il0floatpacket.39,8 - .align 8 -.L_2il0floatpacket.40: - .long 0x00000fff,0x00000000 - .type .L_2il0floatpacket.40,@object - .size .L_2il0floatpacket.40,8 - .align 8 -.L_2il0floatpacket.41: - .long 0x54442d18,0x401921fb - .type .L_2il0floatpacket.41,@object - .size .L_2il0floatpacket.41,8 - .align 8 -.L_2il0floatpacket.42: - .long 0x33145c07,0x3cb1a626 - .type .L_2il0floatpacket.42,@object - .size .L_2il0floatpacket.42,8 - .align 8 -.L_2il0floatpacket.43: - .long 0xffffffff,0x7fffffff - .type .L_2il0floatpacket.43,@object - .size .L_2il0floatpacket.43,8 - .align 8 -.L_2il0floatpacket.44: - .long 0x00000000,0x3eb00000 - .type .L_2il0floatpacket.44,@object - .size .L_2il0floatpacket.44,8 - .align 8 -__dcos_la_CoutTab: - .long 0 - .long 0 - .long 0 - .long 2146435072 - .type __dcos_la_CoutTab,@object - .size __dcos_la_CoutTab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_cos_s_la.s b/numpy/core/src/umath/svml/svml_z0_cos_s_la.s deleted file mode 100644 index 54e3f47f4f11..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_cos_s_la.s +++ /dev/null @@ -1,2854 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * 1) Range reduction to [-Pi/2; +Pi/2] interval - * a) We remove sign using AND operation - * b) Add Pi/2 value to argument X for Cos to Sin transformation - * c) Getting octant Y by 1/Pi multiplication - * d) Add "Right Shifter" value - * e) Treat obtained value as integer for destination sign setting. - * Shift first bit of this value to the last (sign) position - * f) Subtract "Right Shifter" value - * g) Subtract 0.5 from result for octant correction - * h) Subtract Y*PI from X argument, where PI divided to 4 parts: - * X = X - Y*PI1 - Y*PI2 - Y*PI3 - Y*PI4; - * 2) Polynomial (minimax for sin within [-Pi/2; +Pi/2] interval) - * a) Calculate X^2 = X * X - * b) Calculate polynomial: - * R = X + X * X^2 * (A3 + x^2 * (A5 + ..... - * 3) Destination sign setting - * a) Set shifted destination sign using XOR operation: - * R = XOR( R, S ); - * - */ - - - .text -.L_2__routine_start___svml_cosf16_z0_0: - - .align 16,0x90 - .globl __svml_cosf16 - -__svml_cosf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - xorl %edx, %edx - vmovaps %zmm0, %zmm11 - vmovups 5568+__svml_scos_data_internal(%rip), %zmm0 - vmovups 5504+__svml_scos_data_internal(%rip), %zmm4 - vmovups 5440+__svml_scos_data_internal(%rip), %zmm3 - vmovups 5632+__svml_scos_data_internal(%rip), %zmm6 - vmovups 4800+__svml_scos_data_internal(%rip), %zmm9 - vmovups 4864+__svml_scos_data_internal(%rip), %zmm7 - vmovups 4928+__svml_scos_data_internal(%rip), %zmm8 - vmovups 5376+__svml_scos_data_internal(%rip), %zmm14 - vmovups 5248+__svml_scos_data_internal(%rip), %zmm15 - -/* - * Check for large and special arguments - * VAND( S, sAX, _VARG1, sAbsMask ); - */ - vmovups 4160+__svml_scos_data_internal(%rip), %zmm10 - vandps 4096+__svml_scos_data_internal(%rip), %zmm11, %zmm2 - -/* b) Add Pi/2 value to argument X for Cos to Sin transformation */ - vaddps {rn-sae}, %zmm0, %zmm2, %zmm1 - vcmpps $18, {sae}, %zmm10, %zmm2, %k1 - -/* _VARG1 near 0 */ - vcmpps $0, {sae}, %zmm0, %zmm1, %k2 - -/* - * 1) Range reduction to [-Pi/2; +Pi/2] interval - * c) Getting octant Y by 1/Pi multiplication - * d) Add "Right Shifter" (0x4B000000) value - */ - vfmadd213ps {rn-sae}, %zmm4, %zmm1, %zmm3 - vpternlogd $255, %zmm10, %zmm10, %zmm10 - -/* f) Subtract "Right Shifter" (0x4B000000) value */ - vsubps {rn-sae}, %zmm4, %zmm3, %zmm5 - -/* - * e) Treat obtained value as integer for destination sign setting. - * Shift first bit of this value to the last (sign) position (S << 31) - */ - vpslld $31, %zmm3, %zmm13 - -/* g) Subtract 0.5 from result for octant correction */ - vsubps {rn-sae}, %zmm6, %zmm5, %zmm12 - vmovups 5312+__svml_scos_data_internal(%rip), %zmm5 - -/* - * h) Subtract Y*PI from X argument, where PI divided to 4 parts: - * X = X - Y*PI1 - Y*PI2 - Y*PI3 - */ - vfnmadd213ps {rn-sae}, %zmm2, %zmm12, %zmm9 - vfnmadd231ps {rn-sae}, %zmm12, %zmm7, %zmm9 - vfnmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm12 - -/* a) Calculate X^2 = X * X */ - vmulps {rn-sae}, %zmm12, %zmm12, %zmm3 - -/* - * 3) Destination sign setting - * a) Set shifted destination sign using XOR operation: - * R = XOR( R, S ); - */ - vxorps %zmm13, %zmm12, %zmm4 - -/* - * b) Calculate polynomial: - * R = X + X * X^2 * (A3 + x^2 * (A5 + x^2 * (A7 + x^2 * (A9)))); - */ - vfmadd231ps {rn-sae}, %zmm3, %zmm14, %zmm5 - vmovups 4992+__svml_scos_data_internal(%rip), %zmm14 - vfmadd213ps {rn-sae}, %zmm15, %zmm3, %zmm5 - vmulps {rn-sae}, %zmm4, %zmm3, %zmm15 - vfmadd213ps {rn-sae}, %zmm14, %zmm3, %zmm5 - vfmadd213ps {rn-sae}, %zmm4, %zmm15, %zmm5 - -/* result=1.0 if arg. near 0 */ - vblendmps 5696+__svml_scos_data_internal(%rip), %zmm5, %zmm0{%k2} - vpandnd %zmm2, %zmm2, %zmm10{%k1} - vptestmd %zmm10, %zmm10, %k0 - kortestw %k0, %k0 - jne .LBL_1_12 - -.LBL_1_2: - - testl %edx, %edx - jne .LBL_1_4 - -.LBL_1_3: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_4: - - vmovups %zmm11, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_3 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_8: - - btl %r12d, %r13d - jc .LBL_1_11 - -.LBL_1_9: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_8 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_3 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_11: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_scos_cout_rare_internal - jmp .LBL_1_9 - .cfi_restore 4 - .cfi_restore 5 - .cfi_restore 12 - .cfi_restore 13 - .cfi_restore 122 - .cfi_restore 123 - .cfi_restore 124 - .cfi_restore 125 - -.LBL_1_12: - - vmovups 4224+__svml_scos_data_internal(%rip), %zmm6 - -/* - * Get the (2^a / 2pi) mod 1 values from the table. - * Because VLANG doesn't have I-type gather, we need a trivial cast - */ - lea __svml_scos_reduction_data_internal(%rip), %rax - vmovups %zmm0, (%rsp) - vpternlogd $255, %zmm7, %zmm7, %zmm7 - vandps %zmm2, %zmm6, %zmm4 - vcmpps $4, {sae}, %zmm6, %zmm4, %k1 - -/* ..................... Table look-up ........................ */ - lea __svml_scos_data_internal(%rip), %rcx - -/* - * Break the P_xxx and m into 16-bit chunks ready for - * the long multiplication via 16x16->32 multiplications - */ - vmovups .L_2il0floatpacket.27(%rip), %zmm6 - vpandd .L_2il0floatpacket.24(%rip), %zmm11, %zmm1 - vpsrld $23, %zmm1, %zmm8 - vpslld $1, %zmm8, %zmm12 - vpaddd %zmm8, %zmm12, %zmm2 - vpslld $2, %zmm2, %zmm5 - vpandnd %zmm4, %zmm4, %zmm7{%k1} - vptestmd %zmm7, %zmm7, %k0 - kxnorw %k0, %k0, %k2 - kxnorw %k0, %k0, %k3 - kxnorw %k0, %k0, %k1 - kmovw %k0, %edx - vpxord %zmm4, %zmm4, %zmm4 - vpxord %zmm7, %zmm7, %zmm7 - vpxord %zmm14, %zmm14, %zmm14 - vgatherdps (%rax,%zmm5), %zmm4{%k2} - vgatherdps 4(%rax,%zmm5), %zmm7{%k3} - vgatherdps 8(%rax,%zmm5), %zmm14{%k1} - vpsrld $16, %zmm4, %zmm9 - vpsrld $16, %zmm7, %zmm15 - vpsrld $16, %zmm14, %zmm13 - kxnorw %k0, %k0, %k1 - -/* - * Also get the significand as an integer - * NB: adding in the integer bit is wrong for denorms! - * To make this work for denorms we should do something slightly different - */ - vpandd .L_2il0floatpacket.25(%rip), %zmm11, %zmm3 - vpaddd .L_2il0floatpacket.26(%rip), %zmm3, %zmm1 - vpsrld $16, %zmm1, %zmm8 - vpandd %zmm6, %zmm14, %zmm5 - vpandd %zmm6, %zmm1, %zmm14 - vpandd %zmm6, %zmm7, %zmm12 - vpmulld %zmm15, %zmm8, %zmm3 - vpmulld %zmm9, %zmm14, %zmm7 - vpmulld %zmm15, %zmm14, %zmm9 - vpmulld %zmm13, %zmm14, %zmm15 - vpmulld %zmm13, %zmm8, %zmm1 - vpsrld $16, %zmm15, %zmm13 - vpsrld $16, %zmm9, %zmm15 - vpaddd %zmm13, %zmm1, %zmm1 - vpandd %zmm6, %zmm4, %zmm0 - -/* Now do the big multiplication and carry propagation */ - vpmulld %zmm0, %zmm8, %zmm4 - vpmulld %zmm12, %zmm8, %zmm2 - vpmulld %zmm5, %zmm8, %zmm8 - vpmulld %zmm0, %zmm14, %zmm5 - vpmulld %zmm12, %zmm14, %zmm0 - vpsrld $16, %zmm0, %zmm14 - vpsrld $16, %zmm5, %zmm12 - vpsrld $16, %zmm8, %zmm8 - vpaddd %zmm14, %zmm2, %zmm13 - vpaddd %zmm15, %zmm3, %zmm14 - vpaddd %zmm12, %zmm4, %zmm3 - vpandd %zmm6, %zmm0, %zmm0 - vpandd %zmm6, %zmm5, %zmm12 - vpaddd %zmm1, %zmm0, %zmm5 - vpaddd %zmm14, %zmm12, %zmm0 - vpaddd %zmm5, %zmm8, %zmm15 - vpandd %zmm6, %zmm7, %zmm2 - vpaddd %zmm3, %zmm2, %zmm14 - vpsrld $16, %zmm15, %zmm3 - vpandd %zmm6, %zmm9, %zmm9 - vpaddd %zmm13, %zmm9, %zmm9 - vpaddd %zmm9, %zmm3, %zmm12 - vpsrld $16, %zmm12, %zmm4 - vpslld $16, %zmm12, %zmm2 - vpaddd %zmm0, %zmm4, %zmm13 - -/* - * Now round at the 2^-8 bit position for reduction mod pi/2^7 - * instead of the original 2pi (but still with the same 2pi scaling). - * Use a shifter of 2^15 + 2^14. - * The N we get is our final version; it has an offset of - * 2^8 because of the implicit integer bit, and anyway for negative - * starting value it's a 2s complement thing. But we need to mask - * off the exponent part anyway so it's fine. - */ - vmovups .L_2il0floatpacket.30(%rip), %zmm4 - vpsrld $16, %zmm13, %zmm7 - vpaddd %zmm14, %zmm7, %zmm1 - -/* Assemble reduced argument from the pieces */ - vpandd %zmm6, %zmm15, %zmm3 - vpandd %zmm6, %zmm13, %zmm8 - vpslld $16, %zmm1, %zmm6 - vpaddd %zmm8, %zmm6, %zmm5 - vpaddd %zmm3, %zmm2, %zmm8 - vpsrld $9, %zmm5, %zmm9 - -/* - * We want to incorporate the original sign now too. - * Do it here for convenience in getting the right N value, - * though we could wait right to the end if we were prepared - * to modify the sign of N later too. - * So get the appropriate sign mask now (or sooner). - */ - vpandd .L_2il0floatpacket.28(%rip), %zmm11, %zmm2 - -/* - * Create floating-point high part, implicitly adding integer bit 1 - * Incorporate overall sign at this stage too. - */ - vpxord .L_2il0floatpacket.29(%rip), %zmm2, %zmm6 - vpord %zmm6, %zmm9, %zmm0 - vaddps {rn-sae}, %zmm0, %zmm4, %zmm14 - vsubps {rn-sae}, %zmm4, %zmm14, %zmm7 - vsubps {rn-sae}, %zmm7, %zmm0, %zmm13 - vpternlogd $255, %zmm0, %zmm0, %zmm0 - vpandd .L_2il0floatpacket.33(%rip), %zmm8, %zmm15 - vpandd .L_2il0floatpacket.35(%rip), %zmm5, %zmm5 - -/* - * Create floating-point low and medium parts, respectively - * lo_17, ... lo_0, 0, ..., 0 - * hi_8, ... hi_0, lo_31, ..., lo_18 - * then subtract off the implicitly added integer bits, - * 2^-46 and 2^-23, respectively. - * Put the original sign into all of them at this stage. - */ - vpxord .L_2il0floatpacket.32(%rip), %zmm2, %zmm3 - vpslld $5, %zmm15, %zmm1 - vpsrld $18, %zmm8, %zmm8 - vpxord .L_2il0floatpacket.34(%rip), %zmm2, %zmm9 - vpslld $14, %zmm5, %zmm2 - vpord %zmm3, %zmm1, %zmm12 - vpord %zmm8, %zmm2, %zmm5 - vsubps {rn-sae}, %zmm3, %zmm12, %zmm15 - vmovups .L_2il0floatpacket.37(%rip), %zmm2 - vpord %zmm9, %zmm5, %zmm3 - vsubps {rn-sae}, %zmm9, %zmm3, %zmm6 - -/* - * Now multiply those numbers all by 2 pi, reasonably accurately. - * (RHi + RLo) * (pi_lead + pi_trail) ~= - * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) - */ - vmovups .L_2il0floatpacket.36(%rip), %zmm5 - -/* - * If the magnitude of the input is <= 2^-20, then - * just pass through the input, since no reduction will be needed and - * the main path will only work accurately if the reduced argument is - * about >= 2^-40 (which it is for all large pi multiples) - */ - vmovups .L_2il0floatpacket.39(%rip), %zmm9 - -/* Now add them up into 2 reasonably aligned pieces */ - vaddps {rn-sae}, %zmm6, %zmm13, %zmm4 - vsubps {rn-sae}, %zmm4, %zmm13, %zmm13 - vmulps {rn-sae}, %zmm5, %zmm4, %zmm7 - vaddps {rn-sae}, %zmm13, %zmm6, %zmm8 - vandps .L_2il0floatpacket.38(%rip), %zmm11, %zmm6 - vaddps {rn-sae}, %zmm15, %zmm8, %zmm8 - vpternlogd $255, %zmm15, %zmm15, %zmm15 - vcmpps $22, {sae}, %zmm9, %zmm6, %k3 - vcmpps $26, {sae}, %zmm9, %zmm6, %k2 - vmovaps %zmm5, %zmm3 - vfmsub213ps {rn-sae}, %zmm7, %zmm4, %zmm3 - vfmadd213ps {rn-sae}, %zmm3, %zmm2, %zmm4 - vfmadd213ps {rn-sae}, %zmm4, %zmm5, %zmm8 - -/* Grab our final N value as an integer, appropriately masked mod 2^8 */ - vpandd .L_2il0floatpacket.31(%rip), %zmm14, %zmm14 - vpslld $4, %zmm14, %zmm13 - vpandnd %zmm6, %zmm6, %zmm0{%k3} - vandps %zmm11, %zmm0, %zmm1 - kxnorw %k0, %k0, %k3 - vpxord %zmm0, %zmm0, %zmm0 - vgatherdps (%rcx,%zmm13), %zmm0{%k1} - kxnorw %k0, %k0, %k1 - vpandnd %zmm6, %zmm6, %zmm15{%k2} - kxnorw %k0, %k0, %k2 - vandps %zmm7, %zmm15, %zmm12 - vandps %zmm8, %zmm15, %zmm3 - vorps %zmm12, %zmm1, %zmm2 - -/* ............... Polynomial approximation ................... */ - vmovups 4352+__svml_scos_data_internal(%rip), %zmm12 - -/* - * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND - * Set sRp2 = _VRES_R^2 and then resume the original code. - */ - vmulps {rn-sae}, %zmm2, %zmm2, %zmm4 - -/* ................. Reconstruction: res_hi ................... */ - vmovaps %zmm2, %zmm14 - vmovaps %zmm2, %zmm8 - vpxord %zmm9, %zmm9, %zmm9 - vpxord %zmm7, %zmm7, %zmm7 - vgatherdps 4(%rcx,%zmm13), %zmm9{%k2} - vgatherdps 12(%rcx,%zmm13), %zmm7{%k1} - vfmadd213ps {rn-sae}, %zmm9, %zmm7, %zmm14 - vaddps {rn-sae}, %zmm7, %zmm0, %zmm15 - vfmadd132ps {rn-sae}, %zmm0, %zmm14, %zmm8 - vsubps {rn-sae}, %zmm14, %zmm9, %zmm1 - vsubps {rn-sae}, %zmm8, %zmm14, %zmm6 - vfmadd231ps {rn-sae}, %zmm2, %zmm7, %zmm1 - vmovups 4416+__svml_scos_data_internal(%rip), %zmm7 - vfmadd231ps {rn-sae}, %zmm0, %zmm2, %zmm6 - vmovups 4480+__svml_scos_data_internal(%rip), %zmm0 - vaddps {rn-sae}, %zmm1, %zmm6, %zmm6 - vfmadd231ps {rn-sae}, %zmm4, %zmm0, %zmm7 - vpxord %zmm5, %zmm5, %zmm5 - vgatherdps 8(%rcx,%zmm13), %zmm5{%k3} - vmovups 4288+__svml_scos_data_internal(%rip), %zmm13 - vfmadd231ps {rn-sae}, %zmm4, %zmm12, %zmm13 - vmulps {rn-sae}, %zmm4, %zmm13, %zmm14 - vmulps {rn-sae}, %zmm4, %zmm7, %zmm4 - vmulps {rn-sae}, %zmm2, %zmm14, %zmm1 - -/* .......... Reconstruction: res_lo=corr+polS+polC+res_lo0 ...... */ - vfnmadd213ps {rn-sae}, %zmm15, %zmm9, %zmm2 - vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm3 - vfmadd213ps {rn-sae}, %zmm6, %zmm2, %zmm1 - vfmadd213ps {rn-sae}, %zmm3, %zmm9, %zmm4 - vaddps {rn-sae}, %zmm1, %zmm4, %zmm2 - -/* .................. Final reconstruction ................... */ - vaddps {rn-sae}, %zmm2, %zmm8, %zmm3 - -/* - * ---------------------------------------------------------- - * End of large arguments path - * ---------------------------------------------------------- - * Merge results from main and large paths: - */ - vpandnd (%rsp), %zmm10, %zmm5 - vpandd %zmm10, %zmm3, %zmm10 - vpord %zmm10, %zmm5, %zmm0 - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_cosf16,@function - .size __svml_cosf16,.-__svml_cosf16 -..LN__svml_cosf16.0: - -.L_2__routine_start___svml_scos_cout_rare_internal_1: - - .align 16,0x90 - -__svml_scos_cout_rare_internal: - - - .cfi_startproc -..L63: - - movl (%rdi), %edx - movzwl 2(%rdi), %eax - movl %edx, -8(%rsp) - andl $32640, %eax - shrl $24, %edx - andl $127, %edx - cmpl $32640, %eax - jne .LBL_2_6 - - - movb %dl, -5(%rsp) - cmpl $2139095040, -8(%rsp) - jne .LBL_2_4 - - - movss (%rdi), %xmm0 - movl $1, %eax - mulss __scos_la__vmlsCosCoutTab(%rip), %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_4: - - movss (%rdi), %xmm0 - xorl %eax, %eax - mulss (%rdi), %xmm0 - movss %xmm0, (%rsi) - - - ret - -.LBL_2_6: - - xorl %eax, %eax - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_scos_cout_rare_internal,@function - .size __svml_scos_cout_rare_internal,.-__svml_scos_cout_rare_internal -..LN__svml_scos_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.24: - .long 0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000 - .type .L_2il0floatpacket.24,@object - .size .L_2il0floatpacket.24,64 - .align 64 -.L_2il0floatpacket.25: - .long 0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff - .type .L_2il0floatpacket.25,@object - .size .L_2il0floatpacket.25,64 - .align 64 -.L_2il0floatpacket.26: - .long 0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000 - .type .L_2il0floatpacket.26,@object - .size .L_2il0floatpacket.26,64 - .align 64 -.L_2il0floatpacket.27: - .long 0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff - .type .L_2il0floatpacket.27,@object - .size .L_2il0floatpacket.27,64 - .align 64 -.L_2il0floatpacket.28: - .long 0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000 - .type .L_2il0floatpacket.28,@object - .size .L_2il0floatpacket.28,64 - .align 64 -.L_2il0floatpacket.29: - .long 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000 - .type .L_2il0floatpacket.29,@object - .size .L_2il0floatpacket.29,64 - .align 64 -.L_2il0floatpacket.30: - .long 0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000 - .type .L_2il0floatpacket.30,@object - .size .L_2il0floatpacket.30,64 - .align 64 -.L_2il0floatpacket.31: - .long 0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,64 - .align 64 -.L_2il0floatpacket.32: - .long 0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000 - .type .L_2il0floatpacket.32,@object - .size .L_2il0floatpacket.32,64 - .align 64 -.L_2il0floatpacket.33: - .long 0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff - .type .L_2il0floatpacket.33,@object - .size .L_2il0floatpacket.33,64 - .align 64 -.L_2il0floatpacket.34: - .long 0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000 - .type .L_2il0floatpacket.34,@object - .size .L_2il0floatpacket.34,64 - .align 64 -.L_2il0floatpacket.35: - .long 0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff - .type .L_2il0floatpacket.35,@object - .size .L_2il0floatpacket.35,64 - .align 64 -.L_2il0floatpacket.36: - .long 0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb - .type .L_2il0floatpacket.36,@object - .size .L_2il0floatpacket.36,64 - .align 64 -.L_2il0floatpacket.37: - .long 0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e - .type .L_2il0floatpacket.37,@object - .size .L_2il0floatpacket.37,64 - .align 64 -.L_2il0floatpacket.38: - .long 0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff - .type .L_2il0floatpacket.38,@object - .size .L_2il0floatpacket.38,64 - .align 64 -.L_2il0floatpacket.39: - .long 0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000 - .type .L_2il0floatpacket.39,@object - .size .L_2il0floatpacket.39,64 - .align 64 -__svml_scos_data_internal: - .long 0 - .long 1065353216 - .long 0 - .long 0 - .long 1004262721 - .long 1065348163 - .long 814009613 - .long 3170893824 - .long 1012667202 - .long 1065333007 - .long 836655967 - .long 3179282432 - .long 3157608485 - .long 1065307757 - .long 852498564 - .long 3179282432 - .long 1021119272 - .long 1065272429 - .long 838093129 - .long 3187671040 - .long 992588201 - .long 1065227044 - .long 3002197507 - .long 3187671040 - .long 3165783068 - .long 1065171628 - .long 2969000681 - .long 3187671040 - .long 3174843017 - .long 1065106216 - .long 2989610635 - .long 3187671040 - .long 1029761272 - .long 1065030846 - .long 855602635 - .long 3196059648 - .long 1023221605 - .long 1064945565 - .long 851856985 - .long 3196059648 - .long 1004930693 - .long 1064850424 - .long 2987244005 - .long 3196059648 - .long 3163089201 - .long 1064745479 - .long 846006572 - .long 3196059648 - .long 3173319052 - .long 1064630795 - .long 2996018466 - .long 3196059648 - .long 3179441043 - .long 1064506439 - .long 851742225 - .long 3196059648 - .long 3182555983 - .long 1064372488 - .long 840880349 - .long 3196059648 - .long 1041201069 - .long 1064229022 - .long 2995991516 - .long 3204448256 - .long 1039156139 - .long 1064076126 - .long 854796500 - .long 3204448256 - .long 1036128472 - .long 1063913895 - .long 3001754476 - .long 3204448256 - .long 1033133567 - .long 1063742424 - .long 2998678409 - .long 3204448256 - .long 1028547674 - .long 1063561817 - .long 823789818 - .long 3204448256 - .long 1021989220 - .long 1063372184 - .long 3001545765 - .long 3204448256 - .long 1005106760 - .long 1063173637 - .long 851900755 - .long 3204448256 - .long 3160870706 - .long 1062966298 - .long 841166280 - .long 3204448256 - .long 3171899818 - .long 1062750291 - .long 2994560960 - .long 3204448256 - .long 3177422237 - .long 1062525745 - .long 848357914 - .long 3204448256 - .long 3181068627 - .long 1062292797 - .long 806113028 - .long 3204448256 - .long 3183738367 - .long 1062051586 - .long 847147240 - .long 3204448256 - .long 3186359946 - .long 1061802258 - .long 848897600 - .long 3204448256 - .long 3188301413 - .long 1061544963 - .long 850481524 - .long 3204448256 - .long 3189561687 - .long 1061279856 - .long 851442039 - .long 3204448256 - .long 3190795559 - .long 1061007097 - .long 832220140 - .long 3204448256 - .long 3192002283 - .long 1060726850 - .long 2994798599 - .long 3204448256 - .long 1050015258 - .long 1060439283 - .long 844097402 - .long 3212836864 - .long 1049440125 - .long 1060144571 - .long 2997759282 - .long 3212836864 - .long 1048879630 - .long 1059842890 - .long 2998350134 - .long 3212836864 - .long 1048092223 - .long 1059534422 - .long 2986574659 - .long 3212836864 - .long 1047031795 - .long 1059219353 - .long 841032635 - .long 3212836864 - .long 1046002615 - .long 1058897873 - .long 848430348 - .long 3212836864 - .long 1045005303 - .long 1058570176 - .long 2982650867 - .long 3212836864 - .long 1044040460 - .long 1058236458 - .long 852349230 - .long 3212836864 - .long 1043108667 - .long 1057896922 - .long 2991207143 - .long 3212836864 - .long 1042210485 - .long 1057551771 - .long 2998815566 - .long 3212836864 - .long 1041346455 - .long 1057201213 - .long 2992349186 - .long 3212836864 - .long 1040517098 - .long 1056726311 - .long 2978016425 - .long 3212836864 - .long 1039258436 - .long 1056004842 - .long 2986287417 - .long 3212836864 - .long 1037741368 - .long 1055273845 - .long 2983839604 - .long 3212836864 - .long 1036296515 - .long 1054533760 - .long 840832460 - .long 3212836864 - .long 1034924748 - .long 1053785034 - .long 829045603 - .long 3212836864 - .long 1033626892 - .long 1053028117 - .long 836097324 - .long 3212836864 - .long 1032403730 - .long 1052263466 - .long 2993707942 - .long 3212836864 - .long 1030713214 - .long 1051491540 - .long 2988789250 - .long 3212836864 - .long 1028569994 - .long 1050712805 - .long 2990442912 - .long 3212836864 - .long 1026580309 - .long 1049927729 - .long 846027248 - .long 3212836864 - .long 1024745356 - .long 1049136787 - .long 824999326 - .long 3212836864 - .long 1022722308 - .long 1048104908 - .long 2971391005 - .long 3212836864 - .long 1019677780 - .long 1046502419 - .long 833086710 - .long 3212836864 - .long 1016948784 - .long 1044891074 - .long 2967836285 - .long 3212836864 - .long 1014052363 - .long 1043271842 - .long 823224313 - .long 3212836864 - .long 1009865986 - .long 1041645699 - .long 837346836 - .long 3212836864 - .long 1006005820 - .long 1039839859 - .long 2970970319 - .long 3212836864 - .long 1000196465 - .long 1036565814 - .long 2960495349 - .long 3212836864 - .long 993104536 - .long 1033283845 - .long 2975014497 - .long 3212836864 - .long 983425480 - .long 1028193072 - .long 2968461951 - .long 3212836864 - .long 966649823 - .long 1019808432 - .long 2953169304 - .long 3212836864 - .long 0 - .long 0 - .long 0 - .long 3212836864 - .long 966649823 - .long 3167292080 - .long 805685656 - .long 3212836864 - .long 983425480 - .long 3175676720 - .long 820978303 - .long 3212836864 - .long 993104536 - .long 3180767493 - .long 827530849 - .long 3212836864 - .long 1000196465 - .long 3184049462 - .long 813011701 - .long 3212836864 - .long 1006005820 - .long 3187323507 - .long 823486671 - .long 3212836864 - .long 1009865986 - .long 3189129347 - .long 2984830484 - .long 3212836864 - .long 1014052363 - .long 3190755490 - .long 2970707961 - .long 3212836864 - .long 1016948784 - .long 3192374722 - .long 820352637 - .long 3212836864 - .long 1019677780 - .long 3193986067 - .long 2980570358 - .long 3212836864 - .long 1022722308 - .long 3195588556 - .long 823907357 - .long 3212836864 - .long 1024745356 - .long 3196620435 - .long 2972482974 - .long 3212836864 - .long 1026580309 - .long 3197411377 - .long 2993510896 - .long 3212836864 - .long 1028569994 - .long 3198196453 - .long 842959264 - .long 3212836864 - .long 1030713214 - .long 3198975188 - .long 841305602 - .long 3212836864 - .long 1032403730 - .long 3199747114 - .long 846224294 - .long 3212836864 - .long 1033626892 - .long 3200511765 - .long 2983580972 - .long 3212836864 - .long 1034924748 - .long 3201268682 - .long 2976529251 - .long 3212836864 - .long 1036296515 - .long 3202017408 - .long 2988316108 - .long 3212836864 - .long 1037741368 - .long 3202757493 - .long 836355956 - .long 3212836864 - .long 1039258436 - .long 3203488490 - .long 838803769 - .long 3212836864 - .long 1040517098 - .long 3204209959 - .long 830532777 - .long 3212836864 - .long 1041346455 - .long 3204684861 - .long 844865538 - .long 3212836864 - .long 1042210485 - .long 3205035419 - .long 851331918 - .long 3212836864 - .long 1043108667 - .long 3205380570 - .long 843723495 - .long 3212836864 - .long 1044040460 - .long 3205720106 - .long 2999832878 - .long 3212836864 - .long 1045005303 - .long 3206053824 - .long 835167219 - .long 3212836864 - .long 1046002615 - .long 3206381521 - .long 2995913996 - .long 3212836864 - .long 1047031795 - .long 3206703001 - .long 2988516283 - .long 3212836864 - .long 1048092223 - .long 3207018070 - .long 839091011 - .long 3212836864 - .long 1048879630 - .long 3207326538 - .long 850866486 - .long 3212836864 - .long 1049440125 - .long 3207628219 - .long 850275634 - .long 3212836864 - .long 1050015258 - .long 3207922931 - .long 2991581050 - .long 3212836864 - .long 3192002283 - .long 3208210498 - .long 847314951 - .long 3204448256 - .long 3190795559 - .long 3208490745 - .long 2979703788 - .long 3204448256 - .long 3189561687 - .long 3208763504 - .long 2998925687 - .long 3204448256 - .long 3188301413 - .long 3209028611 - .long 2997965172 - .long 3204448256 - .long 3186359946 - .long 3209285906 - .long 2996381248 - .long 3204448256 - .long 3183738367 - .long 3209535234 - .long 2994630888 - .long 3204448256 - .long 3181068627 - .long 3209776445 - .long 2953596676 - .long 3204448256 - .long 3177422237 - .long 3210009393 - .long 2995841562 - .long 3204448256 - .long 3171899818 - .long 3210233939 - .long 847077312 - .long 3204448256 - .long 3160870706 - .long 3210449946 - .long 2988649928 - .long 3204448256 - .long 1005106760 - .long 3210657285 - .long 2999384403 - .long 3204448256 - .long 1021989220 - .long 3210855832 - .long 854062117 - .long 3204448256 - .long 1028547674 - .long 3211045465 - .long 2971273466 - .long 3204448256 - .long 1033133567 - .long 3211226072 - .long 851194761 - .long 3204448256 - .long 1036128472 - .long 3211397543 - .long 854270828 - .long 3204448256 - .long 1039156139 - .long 3211559774 - .long 3002280148 - .long 3204448256 - .long 1041201069 - .long 3211712670 - .long 848507868 - .long 3204448256 - .long 3182555983 - .long 3211856136 - .long 2988363997 - .long 3196059648 - .long 3179441043 - .long 3211990087 - .long 2999225873 - .long 3196059648 - .long 3173319052 - .long 3212114443 - .long 848534818 - .long 3196059648 - .long 3163089201 - .long 3212229127 - .long 2993490220 - .long 3196059648 - .long 1004930693 - .long 3212334072 - .long 839760357 - .long 3196059648 - .long 1023221605 - .long 3212429213 - .long 2999340633 - .long 3196059648 - .long 1029761272 - .long 3212514494 - .long 3003086283 - .long 3196059648 - .long 3174843017 - .long 3212589864 - .long 842126987 - .long 3187671040 - .long 3165783068 - .long 3212655276 - .long 821517033 - .long 3187671040 - .long 992588201 - .long 3212710692 - .long 854713859 - .long 3187671040 - .long 1021119272 - .long 3212756077 - .long 2985576777 - .long 3187671040 - .long 3157608485 - .long 3212791405 - .long 2999982212 - .long 3179282432 - .long 1012667202 - .long 3212816655 - .long 2984139615 - .long 3179282432 - .long 1004262721 - .long 3212831811 - .long 2961493261 - .long 3170893824 - .long 0 - .long 3212836864 - .long 0 - .long 0 - .long 3151746369 - .long 3212831811 - .long 2961493261 - .long 1023410176 - .long 3160150850 - .long 3212816655 - .long 2984139615 - .long 1031798784 - .long 1010124837 - .long 3212791405 - .long 2999982212 - .long 1031798784 - .long 3168602920 - .long 3212756077 - .long 2985576777 - .long 1040187392 - .long 3140071849 - .long 3212710692 - .long 854713859 - .long 1040187392 - .long 1018299420 - .long 3212655276 - .long 821517033 - .long 1040187392 - .long 1027359369 - .long 3212589864 - .long 842126987 - .long 1040187392 - .long 3177244920 - .long 3212514494 - .long 3003086283 - .long 1048576000 - .long 3170705253 - .long 3212429213 - .long 2999340633 - .long 1048576000 - .long 3152414341 - .long 3212334072 - .long 839760357 - .long 1048576000 - .long 1015605553 - .long 3212229127 - .long 2993490220 - .long 1048576000 - .long 1025835404 - .long 3212114443 - .long 848534818 - .long 1048576000 - .long 1031957395 - .long 3211990087 - .long 2999225873 - .long 1048576000 - .long 1035072335 - .long 3211856136 - .long 2988363997 - .long 1048576000 - .long 3188684717 - .long 3211712670 - .long 848507868 - .long 1056964608 - .long 3186639787 - .long 3211559774 - .long 3002280148 - .long 1056964608 - .long 3183612120 - .long 3211397543 - .long 854270828 - .long 1056964608 - .long 3180617215 - .long 3211226072 - .long 851194761 - .long 1056964608 - .long 3176031322 - .long 3211045465 - .long 2971273466 - .long 1056964608 - .long 3169472868 - .long 3210855832 - .long 854062117 - .long 1056964608 - .long 3152590408 - .long 3210657285 - .long 2999384403 - .long 1056964608 - .long 1013387058 - .long 3210449946 - .long 2988649928 - .long 1056964608 - .long 1024416170 - .long 3210233939 - .long 847077312 - .long 1056964608 - .long 1029938589 - .long 3210009393 - .long 2995841562 - .long 1056964608 - .long 1033584979 - .long 3209776445 - .long 2953596676 - .long 1056964608 - .long 1036254719 - .long 3209535234 - .long 2994630888 - .long 1056964608 - .long 1038876298 - .long 3209285906 - .long 2996381248 - .long 1056964608 - .long 1040817765 - .long 3209028611 - .long 2997965172 - .long 1056964608 - .long 1042078039 - .long 3208763504 - .long 2998925687 - .long 1056964608 - .long 1043311911 - .long 3208490745 - .long 2979703788 - .long 1056964608 - .long 1044518635 - .long 3208210498 - .long 847314951 - .long 1056964608 - .long 3197498906 - .long 3207922931 - .long 2991581050 - .long 1065353216 - .long 3196923773 - .long 3207628219 - .long 850275634 - .long 1065353216 - .long 3196363278 - .long 3207326538 - .long 850866486 - .long 1065353216 - .long 3195575871 - .long 3207018070 - .long 839091011 - .long 1065353216 - .long 3194515443 - .long 3206703001 - .long 2988516283 - .long 1065353216 - .long 3193486263 - .long 3206381521 - .long 2995913996 - .long 1065353216 - .long 3192488951 - .long 3206053824 - .long 835167219 - .long 1065353216 - .long 3191524108 - .long 3205720106 - .long 2999832878 - .long 1065353216 - .long 3190592315 - .long 3205380570 - .long 843723495 - .long 1065353216 - .long 3189694133 - .long 3205035419 - .long 851331918 - .long 1065353216 - .long 3188830103 - .long 3204684861 - .long 844865538 - .long 1065353216 - .long 3188000746 - .long 3204209959 - .long 830532777 - .long 1065353216 - .long 3186742084 - .long 3203488490 - .long 838803769 - .long 1065353216 - .long 3185225016 - .long 3202757493 - .long 836355956 - .long 1065353216 - .long 3183780163 - .long 3202017408 - .long 2988316108 - .long 1065353216 - .long 3182408396 - .long 3201268682 - .long 2976529251 - .long 1065353216 - .long 3181110540 - .long 3200511765 - .long 2983580972 - .long 1065353216 - .long 3179887378 - .long 3199747114 - .long 846224294 - .long 1065353216 - .long 3178196862 - .long 3198975188 - .long 841305602 - .long 1065353216 - .long 3176053642 - .long 3198196453 - .long 842959264 - .long 1065353216 - .long 3174063957 - .long 3197411377 - .long 2993510896 - .long 1065353216 - .long 3172229004 - .long 3196620435 - .long 2972482974 - .long 1065353216 - .long 3170205956 - .long 3195588556 - .long 823907357 - .long 1065353216 - .long 3167161428 - .long 3193986067 - .long 2980570358 - .long 1065353216 - .long 3164432432 - .long 3192374722 - .long 820352637 - .long 1065353216 - .long 3161536011 - .long 3190755490 - .long 2970707961 - .long 1065353216 - .long 3157349634 - .long 3189129347 - .long 2984830484 - .long 1065353216 - .long 3153489468 - .long 3187323507 - .long 823486671 - .long 1065353216 - .long 3147680113 - .long 3184049462 - .long 813011701 - .long 1065353216 - .long 3140588184 - .long 3180767493 - .long 827530849 - .long 1065353216 - .long 3130909128 - .long 3175676720 - .long 820978303 - .long 1065353216 - .long 3114133471 - .long 3167292080 - .long 805685656 - .long 1065353216 - .long 0 - .long 0 - .long 0 - .long 1065353216 - .long 3114133471 - .long 1019808432 - .long 2953169304 - .long 1065353216 - .long 3130909128 - .long 1028193072 - .long 2968461951 - .long 1065353216 - .long 3140588184 - .long 1033283845 - .long 2975014497 - .long 1065353216 - .long 3147680113 - .long 1036565814 - .long 2960495349 - .long 1065353216 - .long 3153489468 - .long 1039839859 - .long 2970970319 - .long 1065353216 - .long 3157349634 - .long 1041645699 - .long 837346836 - .long 1065353216 - .long 3161536011 - .long 1043271842 - .long 823224313 - .long 1065353216 - .long 3164432432 - .long 1044891074 - .long 2967836285 - .long 1065353216 - .long 3167161428 - .long 1046502419 - .long 833086710 - .long 1065353216 - .long 3170205956 - .long 1048104908 - .long 2971391005 - .long 1065353216 - .long 3172229004 - .long 1049136787 - .long 824999326 - .long 1065353216 - .long 3174063957 - .long 1049927729 - .long 846027248 - .long 1065353216 - .long 3176053642 - .long 1050712805 - .long 2990442912 - .long 1065353216 - .long 3178196862 - .long 1051491540 - .long 2988789250 - .long 1065353216 - .long 3179887378 - .long 1052263466 - .long 2993707942 - .long 1065353216 - .long 3181110540 - .long 1053028117 - .long 836097324 - .long 1065353216 - .long 3182408396 - .long 1053785034 - .long 829045603 - .long 1065353216 - .long 3183780163 - .long 1054533760 - .long 840832460 - .long 1065353216 - .long 3185225016 - .long 1055273845 - .long 2983839604 - .long 1065353216 - .long 3186742084 - .long 1056004842 - .long 2986287417 - .long 1065353216 - .long 3188000746 - .long 1056726311 - .long 2978016425 - .long 1065353216 - .long 3188830103 - .long 1057201213 - .long 2992349186 - .long 1065353216 - .long 3189694133 - .long 1057551771 - .long 2998815566 - .long 1065353216 - .long 3190592315 - .long 1057896922 - .long 2991207143 - .long 1065353216 - .long 3191524108 - .long 1058236458 - .long 852349230 - .long 1065353216 - .long 3192488951 - .long 1058570176 - .long 2982650867 - .long 1065353216 - .long 3193486263 - .long 1058897873 - .long 848430348 - .long 1065353216 - .long 3194515443 - .long 1059219353 - .long 841032635 - .long 1065353216 - .long 3195575871 - .long 1059534422 - .long 2986574659 - .long 1065353216 - .long 3196363278 - .long 1059842890 - .long 2998350134 - .long 1065353216 - .long 3196923773 - .long 1060144571 - .long 2997759282 - .long 1065353216 - .long 3197498906 - .long 1060439283 - .long 844097402 - .long 1065353216 - .long 1044518635 - .long 1060726850 - .long 2994798599 - .long 1056964608 - .long 1043311911 - .long 1061007097 - .long 832220140 - .long 1056964608 - .long 1042078039 - .long 1061279856 - .long 851442039 - .long 1056964608 - .long 1040817765 - .long 1061544963 - .long 850481524 - .long 1056964608 - .long 1038876298 - .long 1061802258 - .long 848897600 - .long 1056964608 - .long 1036254719 - .long 1062051586 - .long 847147240 - .long 1056964608 - .long 1033584979 - .long 1062292797 - .long 806113028 - .long 1056964608 - .long 1029938589 - .long 1062525745 - .long 848357914 - .long 1056964608 - .long 1024416170 - .long 1062750291 - .long 2994560960 - .long 1056964608 - .long 1013387058 - .long 1062966298 - .long 841166280 - .long 1056964608 - .long 3152590408 - .long 1063173637 - .long 851900755 - .long 1056964608 - .long 3169472868 - .long 1063372184 - .long 3001545765 - .long 1056964608 - .long 3176031322 - .long 1063561817 - .long 823789818 - .long 1056964608 - .long 3180617215 - .long 1063742424 - .long 2998678409 - .long 1056964608 - .long 3183612120 - .long 1063913895 - .long 3001754476 - .long 1056964608 - .long 3186639787 - .long 1064076126 - .long 854796500 - .long 1056964608 - .long 3188684717 - .long 1064229022 - .long 2995991516 - .long 1056964608 - .long 1035072335 - .long 1064372488 - .long 840880349 - .long 1048576000 - .long 1031957395 - .long 1064506439 - .long 851742225 - .long 1048576000 - .long 1025835404 - .long 1064630795 - .long 2996018466 - .long 1048576000 - .long 1015605553 - .long 1064745479 - .long 846006572 - .long 1048576000 - .long 3152414341 - .long 1064850424 - .long 2987244005 - .long 1048576000 - .long 3170705253 - .long 1064945565 - .long 851856985 - .long 1048576000 - .long 3177244920 - .long 1065030846 - .long 855602635 - .long 1048576000 - .long 1027359369 - .long 1065106216 - .long 2989610635 - .long 1040187392 - .long 1018299420 - .long 1065171628 - .long 2969000681 - .long 1040187392 - .long 3140071849 - .long 1065227044 - .long 3002197507 - .long 1040187392 - .long 3168602920 - .long 1065272429 - .long 838093129 - .long 1040187392 - .long 1010124837 - .long 1065307757 - .long 852498564 - .long 1031798784 - .long 3160150850 - .long 1065333007 - .long 836655967 - .long 1031798784 - .long 3151746369 - .long 1065348163 - .long 814009613 - .long 1023410176 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 1007191908 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 3109009103 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 909034293 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .type __svml_scos_data_internal,@object - .size __svml_scos_data_internal,5760 - .align 64 -__svml_scos_reduction_data_internal: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1 - .long 0 - .long 0 - .long 2 - .long 0 - .long 0 - .long 5 - .long 0 - .long 0 - .long 10 - .long 0 - .long 0 - .long 20 - .long 0 - .long 0 - .long 40 - .long 0 - .long 0 - .long 81 - .long 0 - .long 0 - .long 162 - .long 0 - .long 0 - .long 325 - .long 0 - .long 0 - .long 651 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 1 - .long 1173554908 - .long 0 - .long 2 - .long 2347109817 - .long 0 - .long 5 - .long 399252338 - .long 0 - .long 10 - .long 798504676 - .long 0 - .long 20 - .long 1597009353 - .long 0 - .long 40 - .long 3194018707 - .long 0 - .long 81 - .long 2093070119 - .long 0 - .long 162 - .long 4186140238 - .long 0 - .long 325 - .long 4077313180 - .long 0 - .long 651 - .long 3859659065 - .long 0 - .long 1303 - .long 3424350834 - .long 0 - .long 2607 - .long 2553734372 - .long 0 - .long 5215 - .long 812501448 - .long 0 - .long 10430 - .long 1625002897 - .long 0 - .long 20860 - .long 3250005794 - .long 0 - .long 41721 - .long 2205044292 - .long 0 - .long 83443 - .long 115121288 - .long 0 - .long 166886 - .long 230242576 - .long 0 - .long 333772 - .long 460485152 - .long 0 - .long 667544 - .long 920970305 - .long 0 - .long 1335088 - .long 1841940610 - .long 0 - .long 2670176 - .long 3683881221 - .long 0 - .long 5340353 - .long 3072795146 - .long 0 - .long 10680707 - .long 1850622997 - .long 0 - .long 21361414 - .long 3701245994 - .long 0 - .long 42722829 - .long 3107524692 - .long 0 - .long 85445659 - .long 1920082089 - .long 0 - .long 170891318 - .long 3840164178 - .long 0 - .long 341782637 - .long 3385361061 - .long 0 - .long 683565275 - .long 2475754826 - .long 0 - .long 1367130551 - .long 656542356 - .long 0 - .long 2734261102 - .long 1313084713 - .long 1 - .long 1173554908 - .long 2626169427 - .long 2 - .long 2347109817 - .long 957371559 - .long 5 - .long 399252338 - .long 1914743119 - .long 10 - .long 798504676 - .long 3829486239 - .long 20 - .long 1597009353 - .long 3364005183 - .long 40 - .long 3194018707 - .long 2433043071 - .long 81 - .long 2093070119 - .long 571118846 - .long 162 - .long 4186140238 - .long 1142237692 - .long 325 - .long 4077313180 - .long 2284475384 - .long 651 - .long 3859659065 - .long 273983472 - .long 1303 - .long 3424350834 - .long 547966945 - .long 2607 - .long 2553734372 - .long 1095933890 - .long 5215 - .long 812501448 - .long 2191867780 - .long 10430 - .long 1625002897 - .long 88768265 - .long 20860 - .long 3250005794 - .long 177536531 - .long 41721 - .long 2205044292 - .long 355073063 - .long 83443 - .long 115121288 - .long 710146126 - .long 166886 - .long 230242576 - .long 1420292253 - .long 333772 - .long 460485152 - .long 2840584506 - .long 667544 - .long 920970305 - .long 1386201717 - .long 1335088 - .long 1841940610 - .long 2772403434 - .long 2670176 - .long 3683881221 - .long 1249839573 - .long 5340353 - .long 3072795146 - .long 2499679147 - .long 10680707 - .long 1850622997 - .long 704390999 - .long 21361414 - .long 3701245994 - .long 1408781999 - .long 42722829 - .long 3107524692 - .long 2817563999 - .long 85445659 - .long 1920082089 - .long 1340160702 - .long 170891318 - .long 3840164178 - .long 2680321405 - .long 341782637 - .long 3385361061 - .long 1065675514 - .long 683565275 - .long 2475754826 - .long 2131351028 - .long 1367130551 - .long 656542356 - .long 4262702056 - .long 2734261102 - .long 1313084713 - .long 4230436817 - .long 1173554908 - .long 2626169427 - .long 4165906339 - .long 2347109817 - .long 957371559 - .long 4036845383 - .long 399252338 - .long 1914743119 - .long 3778723471 - .long 798504676 - .long 3829486239 - .long 3262479647 - .long 1597009353 - .long 3364005183 - .long 2229991998 - .long 3194018707 - .long 2433043071 - .long 165016701 - .long 2093070119 - .long 571118846 - .long 330033402 - .long 4186140238 - .long 1142237692 - .long 660066805 - .long 4077313180 - .long 2284475384 - .long 1320133610 - .long 3859659065 - .long 273983472 - .long 2640267220 - .long 3424350834 - .long 547966945 - .long 985567145 - .long 2553734372 - .long 1095933890 - .long 1971134291 - .long 812501448 - .long 2191867780 - .long 3942268582 - .long 1625002897 - .long 88768265 - .long 3589569869 - .long 3250005794 - .long 177536531 - .long 2884172442 - .long 2205044292 - .long 355073063 - .long 1473377588 - .long 115121288 - .long 710146126 - .long 2946755177 - .long 230242576 - .long 1420292253 - .long 1598543059 - .long 460485152 - .long 2840584506 - .long 3197086118 - .long 920970305 - .long 1386201717 - .long 2099204941 - .long 1841940610 - .long 2772403434 - .long 4198409883 - .long 3683881221 - .long 1249839573 - .long 4101852471 - .long 3072795146 - .long 2499679147 - .long 3908737646 - .long 1850622997 - .long 704390999 - .long 3522507997 - .long 3701245994 - .long 1408781999 - .long 2750048699 - .long 3107524692 - .long 2817563999 - .long 1205130103 - .long 1920082089 - .long 1340160702 - .long 2410260206 - .long 3840164178 - .long 2680321405 - .long 525553116 - .long 3385361061 - .long 1065675514 - .long 1051106232 - .long 2475754826 - .long 2131351028 - .long 2102212464 - .long 656542356 - .long 4262702056 - .long 4204424928 - .long 1313084713 - .long 4230436817 - .long 4113882560 - .long 2626169427 - .long 4165906339 - .long 3932797825 - .long 957371559 - .long 4036845383 - .long 3570628355 - .long 1914743119 - .long 3778723471 - .long 2846289414 - .long 3829486239 - .long 3262479647 - .long 1397611533 - .long 3364005183 - .long 2229991998 - .long 2795223067 - .long 2433043071 - .long 165016701 - .long 1295478838 - .long 571118846 - .long 330033402 - .long 2590957677 - .long 1142237692 - .long 660066805 - .long 886948059 - .long 2284475384 - .long 1320133610 - .long 1773896118 - .long 273983472 - .long 2640267220 - .long 3547792237 - .long 547966945 - .long 985567145 - .long 2800617179 - .long 1095933890 - .long 1971134291 - .long 1306267062 - .long 2191867780 - .long 3942268582 - .long 2612534124 - .long 88768265 - .long 3589569869 - .long 930100952 - .long 177536531 - .long 2884172442 - .long 1860201905 - .long 355073063 - .long 1473377588 - .long 3720403810 - .long 710146126 - .long 2946755177 - .long 3145840325 - .long 1420292253 - .long 1598543059 - .long 1996713354 - .long 2840584506 - .long 3197086118 - .long 3993426708 - .long 1386201717 - .long 2099204941 - .long 3691886121 - .long 2772403434 - .long 4198409883 - .long 3088804946 - .long 1249839573 - .long 4101852471 - .long 1882642597 - .long 2499679147 - .long 3908737646 - .long 3765285194 - .long 704390999 - .long 3522507997 - .long 3235603093 - .long 1408781999 - .long 2750048699 - .long 2176238891 - .long 2817563999 - .long 1205130103 - .long 57510486 - .long 1340160702 - .long 2410260206 - .long 115020972 - .long 2680321405 - .long 525553116 - .long 230041945 - .long 1065675514 - .long 1051106232 - .long 460083891 - .long 2131351028 - .long 2102212464 - .long 920167782 - .long 4262702056 - .long 4204424928 - .long 1840335564 - .long 4230436817 - .long 4113882560 - .long 3680671129 - .long 4165906339 - .long 3932797825 - .long 3066374962 - .long 4036845383 - .long 3570628355 - .long 1837782628 - .long 3778723471 - .long 2846289414 - .long 3675565257 - .long 3262479647 - .long 1397611533 - .long 3056163219 - .long 2229991998 - .long 2795223067 - .long 1817359143 - .long 165016701 - .long 1295478838 - .long 3634718287 - .long 330033402 - .long 2590957677 - .long 2974469278 - .long 660066805 - .long 886948059 - .long 1653971260 - .long 1320133610 - .long 1773896118 - .long 3307942520 - .long 2640267220 - .long 3547792237 - .long 2320917745 - .long 985567145 - .long 2800617179 - .long 346868194 - .long 1971134291 - .long 1306267062 - .long 693736388 - .long 3942268582 - .long 2612534124 - .long 1387472776 - .long 3589569869 - .long 930100952 - .long 2774945552 - .long 2884172442 - .long 1860201905 - .long 1254923809 - .long 1473377588 - .long 3720403810 - .long 2509847619 - .long 2946755177 - .long 3145840325 - .long 724727943 - .long 1598543059 - .long 1996713354 - .long 1449455886 - .long 3197086118 - .long 3993426708 - .long 2898911772 - .long 2099204941 - .long 3691886121 - .long 1502856249 - .long 4198409883 - .long 3088804946 - .long 3005712498 - .long 4101852471 - .long 1882642597 - .long 1716457700 - .long 3908737646 - .long 3765285194 - .long 3432915400 - .long 3522507997 - .long 3235603093 - .long 2570863504 - .long 2750048699 - .long 2176238891 - .long 846759712 - .long 1205130103 - .long 57510486 - .long 1693519425 - .long 2410260206 - .long 115020972 - .long 3387038850 - .long 525553116 - .long 230041945 - .long 2479110404 - .long 1051106232 - .long 460083891 - .long 663253512 - .long 2102212464 - .long 920167782 - .long 1326507024 - .long 4204424928 - .long 1840335564 - .long 2653014048 - .long 4113882560 - .long 3680671129 - .long 1011060801 - .long 3932797825 - .long 3066374962 - .long 2022121603 - .long 3570628355 - .long 1837782628 - .long 4044243207 - .long 2846289414 - .long 3675565257 - .long 3793519119 - .long 1397611533 - .long 3056163219 - .long 3292070943 - .long 2795223067 - .long 1817359143 - .long 2289174591 - .long 1295478838 - .long 3634718287 - .long 283381887 - .long 2590957677 - .long 2974469278 - .long 566763775 - .type __svml_scos_reduction_data_internal,@object - .size __svml_scos_reduction_data_internal,3072 - .align 4 -__scos_la__vmlsCosCoutTab: - .long 0 - .long 2139095040 - .type __scos_la__vmlsCosCoutTab,@object - .size __scos_la__vmlsCosCoutTab,8 diff --git a/numpy/core/src/umath/svml/svml_z0_cosh_d_la.s b/numpy/core/src/umath/svml/svml_z0_cosh_d_la.s deleted file mode 100644 index 0c8dc5ebfa43..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_cosh_d_la.s +++ /dev/null @@ -1,1715 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_cosh8_z0_0: - - .align 16,0x90 - .globl __svml_cosh8 - -__svml_cosh8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 3648+__svml_dcosh_data_internal(%rip), %zmm11 - vmovups 384+__svml_dcosh_data_internal(%rip), %zmm15 - -/* - * ............... Load argument ........................... - * dM = x*2^K/log(2) + RShifter - */ - vmovups 3008+__svml_dcosh_data_internal(%rip), %zmm4 - vmovups 3072+__svml_dcosh_data_internal(%rip), %zmm2 - vmovups 3136+__svml_dcosh_data_internal(%rip), %zmm3 - vmovups 832+__svml_dcosh_data_internal(%rip), %zmm8 - vmovups 768+__svml_dcosh_data_internal(%rip), %zmm9 - vmovups 512+__svml_dcosh_data_internal(%rip), %zmm7 - vmovups 576+__svml_dcosh_data_internal(%rip), %zmm6 - vmovaps %zmm0, %zmm10 - -/* ............... Abs argument ............................ */ - vandnpd %zmm10, %zmm11, %zmm5 - -/* .............. Index and lookup ......................... */ - vmovups __svml_dcosh_data_internal(%rip), %zmm11 - vmovups 256+__svml_dcosh_data_internal(%rip), %zmm0 - vfmadd213pd {rn-sae}, %zmm15, %zmm5, %zmm4 - -/* - * ...............Check for overflow\underflow ............. - * - */ - vpsrlq $32, %zmm5, %zmm12 - -/* dN = dM - RShifter */ - vsubpd {rn-sae}, %zmm15, %zmm4, %zmm1 - vpmovqd %zmm12, %ymm13 - vpermt2pd 320+__svml_dcosh_data_internal(%rip), %zmm4, %zmm0 - vpermt2pd 64+__svml_dcosh_data_internal(%rip), %zmm4, %zmm11 - -/* dR = dX - dN*Log2_hi/2^K */ - vfnmadd231pd {rn-sae}, %zmm2, %zmm1, %zmm5 - -/* - * poly(r) = Gmjp(1 + a2*r^2 + a4*r^4) + Gmjn*(r+ a3*r^3 +a5*r^5) = - * = Gmjp_h +Gmjp_l+ Gmjp*r^2*(a2 + a4*r^2) + Gmjn*(r+ r^3*(a3 +a5*r^2) - */ - vmovups 704+__svml_dcosh_data_internal(%rip), %zmm12 - vpsllq $48, %zmm4, %zmm2 - -/* dR = dX - dN*Log2_hi/2^K */ - vfnmadd231pd {rn-sae}, %zmm3, %zmm1, %zmm5 - vmulpd {rn-sae}, %zmm5, %zmm5, %zmm1 - vfmadd231pd {rn-sae}, %zmm1, %zmm8, %zmm12 - vmovups 640+__svml_dcosh_data_internal(%rip), %zmm8 - vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm12 - vfmadd231pd {rn-sae}, %zmm1, %zmm9, %zmm8 - vfmadd213pd {rn-sae}, %zmm7, %zmm1, %zmm8 - vpcmpgtd 3712+__svml_dcosh_data_internal(%rip), %ymm13, %ymm14 - vmovmskps %ymm14, %edx - -/* dOut=r^2*(a2 + a4*r^2) */ - vmulpd {rn-sae}, %zmm1, %zmm8, %zmm6 - -/* lM now is an EXP(2^N) */ - vpandq 3584+__svml_dcosh_data_internal(%rip), %zmm2, %zmm3 - vpaddq %zmm3, %zmm11, %zmm4 - vpsubq %zmm3, %zmm0, %zmm0 - vsubpd {rn-sae}, %zmm0, %zmm4, %zmm14 - vaddpd {rn-sae}, %zmm0, %zmm4, %zmm13 - -/* dM=r^2*(a3 +a5*r^2) */ - vmulpd {rn-sae}, %zmm1, %zmm12, %zmm0 - vfmadd213pd {rn-sae}, %zmm13, %zmm13, %zmm6 - -/* dM= r + r^3*(a3 +a5*r^2) */ - vfmadd213pd {rn-sae}, %zmm5, %zmm5, %zmm0 - vfmadd213pd {rn-sae}, %zmm6, %zmm14, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm10, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dcosh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_cosh8,@function - .size __svml_cosh8,.-__svml_cosh8 -..LN__svml_cosh8.0: - -.L_2__routine_start___svml_dcosh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dcosh_cout_rare_internal: - - - .cfi_startproc -..L53: - - movq %rsi, %r8 - movzwl 6(%rdi), %edx - xorl %eax, %eax - andl $32752, %edx - cmpl $32752, %edx - je .LBL_2_12 - - - movq (%rdi), %rdx - movq %rdx, -8(%rsp) - shrq $56, %rdx - andl $127, %edx - movb %dl, -1(%rsp) - movzwl -2(%rsp), %ecx - andl $32752, %ecx - cmpl $15504, %ecx - jle .LBL_2_10 - - - movsd -8(%rsp), %xmm0 - movsd 1096+__dcosh_la_CoutTab(%rip), %xmm1 - comisd %xmm0, %xmm1 - jbe .LBL_2_9 - - - movq 1128+__dcosh_la_CoutTab(%rip), %rdx - movq %rdx, -8(%rsp) - comisd 1144+__dcosh_la_CoutTab(%rip), %xmm0 - jb .LBL_2_8 - - - movsd 1040+__dcosh_la_CoutTab(%rip), %xmm1 - lea __dcosh_la_CoutTab(%rip), %r9 - mulsd %xmm0, %xmm1 - addsd 1048+__dcosh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -40(%rsp) - movsd -40(%rsp), %xmm2 - movsd 1088+__dcosh_la_CoutTab(%rip), %xmm1 - movl -40(%rsp), %edx - movl %edx, %esi - andl $63, %esi - subsd 1048+__dcosh_la_CoutTab(%rip), %xmm2 - movsd %xmm2, -32(%rsp) - lea (%rsi,%rsi), %ecx - movsd -32(%rsp), %xmm3 - lea 1(%rsi,%rsi), %edi - mulsd 1104+__dcosh_la_CoutTab(%rip), %xmm3 - movsd -32(%rsp), %xmm4 - subsd %xmm3, %xmm0 - mulsd 1112+__dcosh_la_CoutTab(%rip), %xmm4 - shrl $6, %edx - subsd %xmm4, %xmm0 - mulsd %xmm0, %xmm1 - addl $1022, %edx - andl $2047, %edx - addsd 1080+__dcosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1072+__dcosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1064+__dcosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1056+__dcosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - mulsd %xmm0, %xmm1 - addsd %xmm0, %xmm1 - movsd (%r9,%rcx,8), %xmm0 - mulsd %xmm0, %xmm1 - addsd (%r9,%rdi,8), %xmm1 - addsd %xmm0, %xmm1 - cmpl $2046, %edx - ja .LBL_2_7 - - - movq 1128+__dcosh_la_CoutTab(%rip), %rcx - shrq $48, %rcx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm1, %xmm0 - movsd %xmm0, (%r8) - ret - -.LBL_2_7: - - decl %edx - andl $2047, %edx - movzwl -2(%rsp), %ecx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm0, %xmm1 - mulsd 1024+__dcosh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, (%r8) - ret - -.LBL_2_8: - - movsd 1040+__dcosh_la_CoutTab(%rip), %xmm1 - lea __dcosh_la_CoutTab(%rip), %rcx - movzwl -2(%rsp), %esi - andl $-32753, %esi - movsd 1080+__dcosh_la_CoutTab(%rip), %xmm14 - mulsd %xmm0, %xmm1 - addsd 1048+__dcosh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -40(%rsp) - movsd -40(%rsp), %xmm2 - movl -40(%rsp), %r10d - movl %r10d, %r9d - shrl $6, %r9d - subsd 1048+__dcosh_la_CoutTab(%rip), %xmm2 - movsd %xmm2, -32(%rsp) - lea 1023(%r9), %edi - andl $63, %r10d - addl $1022, %r9d - movsd -32(%rsp), %xmm3 - andl $2047, %r9d - negl %edi - shll $4, %r9d - addl $-4, %edi - mulsd 1104+__dcosh_la_CoutTab(%rip), %xmm3 - lea (%r10,%r10), %edx - movsd (%rcx,%rdx,8), %xmm15 - negl %edx - movsd -32(%rsp), %xmm4 - orl %r9d, %esi - andl $2047, %edi - lea 1(%r10,%r10), %r11d - mulsd 1112+__dcosh_la_CoutTab(%rip), %xmm4 - subsd %xmm3, %xmm0 - movw %si, -2(%rsp) - andl $-32753, %esi - shll $4, %edi - subsd %xmm4, %xmm0 - movsd -8(%rsp), %xmm6 - orl %edi, %esi - movw %si, -2(%rsp) - lea 128(%rdx), %esi - mulsd %xmm6, %xmm15 - movaps %xmm0, %xmm5 - mulsd %xmm0, %xmm5 - movsd -8(%rsp), %xmm7 - movaps %xmm15, %xmm8 - movsd (%rcx,%rsi,8), %xmm11 - addl $129, %edx - mulsd %xmm7, %xmm11 - movaps %xmm15, %xmm10 - mulsd %xmm5, %xmm14 - addsd %xmm11, %xmm8 - subsd %xmm11, %xmm15 - addsd 1064+__dcosh_la_CoutTab(%rip), %xmm14 - movsd %xmm8, -24(%rsp) - movsd (%rcx,%r11,8), %xmm12 - movsd (%rcx,%rdx,8), %xmm13 - movsd -24(%rsp), %xmm9 - mulsd %xmm6, %xmm12 - subsd %xmm9, %xmm10 - mulsd %xmm7, %xmm13 - mulsd %xmm5, %xmm14 - addsd %xmm11, %xmm10 - mulsd %xmm0, %xmm14 - movsd 1088+__dcosh_la_CoutTab(%rip), %xmm1 - movaps %xmm12, %xmm11 - mulsd %xmm5, %xmm1 - subsd %xmm13, %xmm12 - mulsd %xmm15, %xmm14 - mulsd %xmm0, %xmm12 - addsd 1072+__dcosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm15, %xmm0 - mulsd %xmm5, %xmm1 - addsd %xmm12, %xmm11 - movsd %xmm10, -16(%rsp) - addsd %xmm13, %xmm11 - addsd 1056+__dcosh_la_CoutTab(%rip), %xmm1 - addsd %xmm14, %xmm11 - mulsd %xmm5, %xmm1 - addsd %xmm0, %xmm11 - movsd -24(%rsp), %xmm3 - mulsd %xmm3, %xmm1 - movsd -16(%rsp), %xmm2 - addsd %xmm1, %xmm11 - addsd %xmm2, %xmm11 - movsd %xmm11, -24(%rsp) - movsd -24(%rsp), %xmm0 - addsd %xmm0, %xmm3 - movsd %xmm3, (%r8) - ret - -.LBL_2_9: - - movsd 1120+__dcosh_la_CoutTab(%rip), %xmm0 - movl $3, %eax - mulsd %xmm0, %xmm0 - movsd %xmm0, (%r8) - ret - -.LBL_2_10: - - movsd 1136+__dcosh_la_CoutTab(%rip), %xmm0 - addsd -8(%rsp), %xmm0 - movsd %xmm0, (%r8) - - - ret - -.LBL_2_12: - - movsd (%rdi), %xmm0 - mulsd %xmm0, %xmm0 - movsd %xmm0, (%r8) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dcosh_cout_rare_internal,@function - .size __svml_dcosh_cout_rare_internal,.-__svml_dcosh_cout_rare_internal -..LN__svml_dcosh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dcosh_data_internal: - .long 0 - .long 1071644672 - .long 1828292879 - .long 1071691096 - .long 1014845819 - .long 1071739576 - .long 1853186616 - .long 1071790202 - .long 171030293 - .long 1071843070 - .long 1276261410 - .long 1071898278 - .long 3577096743 - .long 1071955930 - .long 3712504873 - .long 1072016135 - .long 1719614413 - .long 1072079006 - .long 1944781191 - .long 1072144660 - .long 1110089947 - .long 1072213221 - .long 2191782032 - .long 1072284817 - .long 2572866477 - .long 1072359583 - .long 3716502172 - .long 1072437659 - .long 3707479175 - .long 1072519192 - .long 2728693978 - .long 1072604335 - .long 0 - .long 0 - .long 1255956747 - .long 1015588398 - .long 3117910646 - .long 3161559105 - .long 3066496371 - .long 1015656574 - .long 3526460132 - .long 1014428778 - .long 300981948 - .long 1014684169 - .long 2951496418 - .long 1013793687 - .long 88491949 - .long 1015427660 - .long 330458198 - .long 3163282740 - .long 3993278767 - .long 3161724279 - .long 1451641639 - .long 1015474673 - .long 2960257726 - .long 1013742662 - .long 878562433 - .long 1015521741 - .long 2303740125 - .long 1014042725 - .long 3613079303 - .long 1014164738 - .long 396109971 - .long 3163462691 - .long 0 - .long 1071644672 - .long 2728693978 - .long 1071555759 - .long 3707479175 - .long 1071470616 - .long 3716502172 - .long 1071389083 - .long 2572866477 - .long 1071311007 - .long 2191782032 - .long 1071236241 - .long 1110089947 - .long 1071164645 - .long 1944781191 - .long 1071096084 - .long 1719614413 - .long 1071030430 - .long 3712504873 - .long 1070967559 - .long 3577096743 - .long 1070907354 - .long 1276261410 - .long 1070849702 - .long 171030293 - .long 1070794494 - .long 1853186616 - .long 1070741626 - .long 1014845819 - .long 1070691000 - .long 1828292879 - .long 1070642520 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 4 - .long 1071644672 - .long 4 - .long 1071644672 - .long 4 - .long 1071644672 - .long 4 - .long 1071644672 - .long 4 - .long 1071644672 - .long 4 - .long 1071644672 - .long 4 - .long 1071644672 - .long 4 - .long 1071644672 - .long 1431655747 - .long 1069897045 - .long 1431655747 - .long 1069897045 - .long 1431655747 - .long 1069897045 - .long 1431655747 - .long 1069897045 - .long 1431655747 - .long 1069897045 - .long 1431655747 - .long 1069897045 - .long 1431655747 - .long 1069897045 - .long 1431655747 - .long 1069897045 - .long 1430802231 - .long 1067799893 - .long 1430802231 - .long 1067799893 - .long 1430802231 - .long 1067799893 - .long 1430802231 - .long 1067799893 - .long 1430802231 - .long 1067799893 - .long 1430802231 - .long 1067799893 - .long 1430802231 - .long 1067799893 - .long 1430802231 - .long 1067799893 - .long 287861260 - .long 1065423121 - .long 287861260 - .long 1065423121 - .long 287861260 - .long 1065423121 - .long 287861260 - .long 1065423121 - .long 287861260 - .long 1065423121 - .long 287861260 - .long 1065423121 - .long 287861260 - .long 1065423121 - .long 287861260 - .long 1065423121 - .long 3658019094 - .long 1062650243 - .long 3658019094 - .long 1062650243 - .long 3658019094 - .long 1062650243 - .long 3658019094 - .long 1062650243 - .long 3658019094 - .long 1062650243 - .long 3658019094 - .long 1062650243 - .long 3658019094 - .long 1062650243 - .long 3658019094 - .long 1062650243 - .long 1993999322 - .long 1059717517 - .long 1993999322 - .long 1059717517 - .long 1993999322 - .long 1059717517 - .long 1993999322 - .long 1059717517 - .long 1993999322 - .long 1059717517 - .long 1993999322 - .long 1059717517 - .long 1993999322 - .long 1059717517 - .long 1993999322 - .long 1059717517 - .long 0 - .long 1071644672 - .long 4200250559 - .long 1071647514 - .long 2851812149 - .long 1071650365 - .long 339411585 - .long 1071653224 - .long 1048019041 - .long 1071656090 - .long 772914124 - .long 1071658964 - .long 3899555717 - .long 1071661845 - .long 1928746161 - .long 1071664735 - .long 3541402996 - .long 1071667632 - .long 238821257 - .long 1071670538 - .long 702412510 - .long 1071673451 - .long 728934454 - .long 1071676372 - .long 410360776 - .long 1071679301 - .long 4133881824 - .long 1071682237 - .long 3402036099 - .long 1071685182 - .long 2602514713 - .long 1071688135 - .long 1828292879 - .long 1071691096 - .long 1172597893 - .long 1071694065 - .long 728909815 - .long 1071697042 - .long 590962156 - .long 1071700027 - .long 852742562 - .long 1071703020 - .long 1608493509 - .long 1071706021 - .long 2952712987 - .long 1071709030 - .long 685187902 - .long 1071712048 - .long 3490863953 - .long 1071715073 - .long 2875075254 - .long 1071718107 - .long 3228316108 - .long 1071721149 - .long 351405227 - .long 1071724200 - .long 2930322912 - .long 1071727258 - .long 2471440686 - .long 1071730325 - .long 3366293073 - .long 1071733400 - .long 1416741826 - .long 1071736484 - .long 1014845819 - .long 1071739576 - .long 2257959872 - .long 1071742676 - .long 948735466 - .long 1071745785 - .long 1480023343 - .long 1071748902 - .long 3949972341 - .long 1071752027 - .long 4162030108 - .long 1071755161 - .long 2214878420 - .long 1071758304 - .long 2502433899 - .long 1071761455 - .long 828946858 - .long 1071764615 - .long 1588871207 - .long 1071767783 - .long 586995997 - .long 1071770960 - .long 2218315341 - .long 1071774145 - .long 2288159958 - .long 1071777339 - .long 897099801 - .long 1071780542 - .long 2440944790 - .long 1071783753 - .long 2725843665 - .long 1071786973 - .long 1853186616 - .long 1071790202 - .long 4219606026 - .long 1071793439 - .long 1337108031 - .long 1071796686 - .long 1897844341 - .long 1071799941 - .long 1709341917 - .long 1071803205 - .long 874372905 - .long 1071806478 - .long 3790955393 - .long 1071809759 - .long 1972484976 - .long 1071813050 - .long 4112506593 - .long 1071816349 - .long 1724976915 - .long 1071819658 - .long 3504003472 - .long 1071822975 - .long 964107055 - .long 1071826302 - .long 2799960843 - .long 1071829637 - .long 526652809 - .long 1071832982 - .long 2839424854 - .long 1071836335 - .long 1253935211 - .long 1071839698 - .long 171030293 - .long 1071843070 - .long 3991843581 - .long 1071846450 - .long 4232894513 - .long 1071849840 - .long 1000925746 - .long 1071853240 - .long 2992903935 - .long 1071856648 - .long 1726216749 - .long 1071860066 - .long 1603444721 - .long 1071863493 - .long 2732492859 - .long 1071866929 - .long 926591435 - .long 1071870375 - .long 589198666 - .long 1071873830 - .long 1829099622 - .long 1071877294 - .long 460407023 - .long 1071880768 - .long 887463927 - .long 1071884251 - .long 3219942644 - .long 1071887743 - .long 3272845541 - .long 1071891245 - .long 1156440435 - .long 1071894757 - .long 1276261410 - .long 1071898278 - .long 3743175029 - .long 1071901808 - .long 78413852 - .long 1071905349 - .long 3278348324 - .long 1071908898 - .long 569847338 - .long 1071912458 - .long 654919306 - .long 1071916027 - .long 3645941911 - .long 1071919605 - .long 1065662932 - .long 1071923194 - .long 1617004845 - .long 1071926792 - .long 1118294578 - .long 1071930400 - .long 3978100823 - .long 1071934017 - .long 1720398391 - .long 1071937645 - .long 3049340112 - .long 1071941282 - .long 3784486610 - .long 1071944929 - .long 4040676318 - .long 1071948586 - .long 3933059031 - .long 1071952253 - .long 3577096743 - .long 1071955930 - .long 3088564500 - .long 1071959617 - .long 2583551245 - .long 1071963314 - .long 2178460671 - .long 1071967021 - .long 1990012071 - .long 1071970738 - .long 2135241198 - .long 1071974465 - .long 2731501122 - .long 1071978202 - .long 3896463087 - .long 1071981949 - .long 1453150082 - .long 1071985707 - .long 4109806887 - .long 1071989474 - .long 3395129871 - .long 1071993252 - .long 3723038930 - .long 1071997040 - .long 917841882 - .long 1072000839 - .long 3689071823 - .long 1072004647 - .long 3566716925 - .long 1072008466 - .long 671025100 - .long 1072012296 - .long 3712504873 - .long 1072016135 - .long 4222122499 - .long 1072019985 - .long 2321106615 - .long 1072023846 - .long 2425981843 - .long 1072027717 - .long 363667784 - .long 1072031599 - .long 551349105 - .long 1072035491 - .long 3111574537 - .long 1072039393 - .long 3872257780 - .long 1072043306 - .long 2956612997 - .long 1072047230 - .long 488188413 - .long 1072051165 - .long 885834528 - .long 1072055110 - .long 4273770423 - .long 1072059065 - .long 2186617381 - .long 1072063032 - .long 3339203574 - .long 1072067009 - .long 3561793907 - .long 1072070997 - .long 2979960120 - .long 1072074996 - .long 1719614413 - .long 1072079006 - .long 4201977662 - .long 1072083026 - .long 1963711167 - .long 1072087058 - .long 3721688645 - .long 1072091100 - .long 1013258799 - .long 1072095154 - .long 2555984613 - .long 1072099218 - .long 4182873220 - .long 1072103293 - .long 1727278727 - .long 1072107380 - .long 3907805044 - .long 1072111477 - .long 2263535754 - .long 1072115586 - .long 1218806132 - .long 1072119706 - .long 903334909 - .long 1072123837 - .long 1447192521 - .long 1072127979 - .long 2980802057 - .long 1072132132 - .long 1339972927 - .long 1072136297 - .long 950803702 - .long 1072140473 - .long 1944781191 - .long 1072144660 - .long 158781403 - .long 1072148859 - .long 19972402 - .long 1072153069 - .long 1660913392 - .long 1072157290 - .long 919555682 - .long 1072161523 - .long 2224145553 - .long 1072165767 - .long 1413356050 - .long 1072170023 - .long 2916157145 - .long 1072174290 - .long 2571947539 - .long 1072178569 - .long 515457527 - .long 1072182860 - .long 1176749997 - .long 1072187162 - .long 396319521 - .long 1072191476 - .long 2604962541 - .long 1072195801 - .long 3643909174 - .long 1072200138 - .long 3649726105 - .long 1072204487 - .long 2759350287 - .long 1072208848 - .long 1110089947 - .long 1072213221 - .long 3134592888 - .long 1072217605 - .long 380978316 - .long 1072222002 - .long 1577608921 - .long 1072226410 - .long 2568320822 - .long 1072230830 - .long 3492293770 - .long 1072235262 - .long 194117574 - .long 1072239707 - .long 1403662306 - .long 1072244163 - .long 2966275557 - .long 1072248631 - .long 727685349 - .long 1072253112 - .long 3418903055 - .long 1072257604 - .long 2591453363 - .long 1072262109 - .long 2682146384 - .long 1072266626 - .long 3833209506 - .long 1072271155 - .long 1892288442 - .long 1072275697 - .long 1297350157 - .long 1072280251 - .long 2191782032 - .long 1072284817 - .long 424392917 - .long 1072289396 - .long 434316067 - .long 1072293987 - .long 2366108318 - .long 1072298590 - .long 2069751141 - .long 1072303206 - .long 3985553595 - .long 1072307834 - .long 3964284211 - .long 1072312475 - .long 2152073944 - .long 1072317129 - .long 2990417245 - .long 1072321795 - .long 2331271250 - .long 1072326474 - .long 321958744 - .long 1072331166 - .long 1405169241 - .long 1072335870 - .long 1434058175 - .long 1072340587 - .long 557149882 - .long 1072345317 - .long 3218338682 - .long 1072350059 - .long 977020788 - .long 1072354815 - .long 2572866477 - .long 1072359583 - .long 3861050111 - .long 1072364364 - .long 697153126 - .long 1072369159 - .long 1822067026 - .long 1072373966 - .long 3092190715 - .long 1072378786 - .long 364333489 - .long 1072383620 - .long 2380618042 - .long 1072388466 - .long 703710506 - .long 1072393326 - .long 4076559943 - .long 1072398198 - .long 4062661092 - .long 1072403084 - .long 815859274 - .long 1072407984 - .long 3080351519 - .long 1072412896 - .long 2420883922 - .long 1072417822 - .long 3287523847 - .long 1072422761 - .long 1540824585 - .long 1072427714 - .long 1631695677 - .long 1072432680 - .long 3716502172 - .long 1072437659 - .long 3657065772 - .long 1072442652 - .long 1610600570 - .long 1072447659 - .long 2029714210 - .long 1072452679 - .long 777507147 - .long 1072457713 - .long 2307442995 - .long 1072462760 - .long 2483480501 - .long 1072467821 - .long 1464976603 - .long 1072472896 - .long 3706687593 - .long 1072477984 - .long 778901109 - .long 1072483087 - .long 1432208378 - .long 1072488203 - .long 1532734324 - .long 1072493333 - .long 1242007932 - .long 1072498477 - .long 721996136 - .long 1072503635 - .long 135105010 - .long 1072508807 - .long 3939148246 - .long 1072513992 - .long 3707479175 - .long 1072519192 - .long 3898795731 - .long 1072524406 - .long 382305176 - .long 1072529635 - .long 1912561781 - .long 1072534877 - .long 64696965 - .long 1072540134 - .long 3594158869 - .long 1072545404 - .long 4076975200 - .long 1072550689 - .long 1679558232 - .long 1072555989 - .long 863738719 - .long 1072561303 - .long 1796832535 - .long 1072566631 - .long 351641897 - .long 1072571974 - .long 991358482 - .long 1072577331 - .long 3884662774 - .long 1072582702 - .long 610758006 - .long 1072588089 - .long 4224142467 - .long 1072593489 - .long 2009970496 - .long 1072598905 - .long 2728693978 - .long 1072604335 - .long 2256325230 - .long 1072609780 - .long 764307441 - .long 1072615240 - .long 2719515920 - .long 1072620714 - .long 3999357479 - .long 1072626203 - .long 481706282 - .long 1072631708 - .long 929806999 - .long 1072637227 - .long 1222472308 - .long 1072642761 - .long 1533953344 - .long 1072648310 - .long 2038973688 - .long 1072653874 - .long 2912730644 - .long 1072659453 - .long 35929225 - .long 1072665048 - .long 2174652632 - .long 1072670657 - .long 915592468 - .long 1072676282 - .long 730821105 - .long 1072681922 - .long 1797923801 - .long 1072687577 - .long 0 - .long 1072693248 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 4277927936 - .long 1072049730 - .long 4277927936 - .long 1072049730 - .long 4277927936 - .long 1072049730 - .long 4277927936 - .long 1072049730 - .long 4277927936 - .long 1072049730 - .long 4277927936 - .long 1072049730 - .long 4277927936 - .long 1072049730 - .long 4277927936 - .long 1072049730 - .long 2825664665 - .long 3182190860 - .long 2825664665 - .long 3182190860 - .long 2825664665 - .long 3182190860 - .long 2825664665 - .long 3182190860 - .long 2825664665 - .long 3182190860 - .long 2825664665 - .long 3182190860 - .long 2825664665 - .long 3182190860 - .long 2825664665 - .long 3182190860 - .long 0 - .long 1119354880 - .long 0 - .long 1119354880 - .long 0 - .long 1119354880 - .long 0 - .long 1119354880 - .long 0 - .long 1119354880 - .long 0 - .long 1119354880 - .long 0 - .long 1119354880 - .long 0 - .long 1119354880 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 255 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 1887518228 - .long 1069897045 - .long 1887518228 - .long 1069897045 - .long 1887518228 - .long 1069897045 - .long 1887518228 - .long 1069897045 - .long 1887518228 - .long 1069897045 - .long 1887518228 - .long 1069897045 - .long 1887518228 - .long 1069897045 - .long 1887518228 - .long 1069897045 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 256 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .type __svml_dcosh_data_internal,@object - .size __svml_dcosh_data_internal,3776 - .space 832, 0x00 - .align 32 -__dcosh_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 1048019041 - .long 1072704666 - .long 1398474845 - .long 3161559171 - .long 3541402996 - .long 1072716208 - .long 2759177317 - .long 1015903202 - .long 410360776 - .long 1072727877 - .long 1269990655 - .long 1013024446 - .long 1828292879 - .long 1072739672 - .long 1255956747 - .long 1016636974 - .long 852742562 - .long 1072751596 - .long 667253587 - .long 1010842135 - .long 3490863953 - .long 1072763649 - .long 960797498 - .long 3163997456 - .long 2930322912 - .long 1072775834 - .long 2599499422 - .long 3163762623 - .long 1014845819 - .long 1072788152 - .long 3117910646 - .long 3162607681 - .long 3949972341 - .long 1072800603 - .long 2068408548 - .long 1015962444 - .long 828946858 - .long 1072813191 - .long 10642492 - .long 1016988014 - .long 2288159958 - .long 1072825915 - .long 2169144469 - .long 1015924597 - .long 1853186616 - .long 1072838778 - .long 3066496371 - .long 1016705150 - .long 1709341917 - .long 1072851781 - .long 2571168217 - .long 1015201075 - .long 4112506593 - .long 1072864925 - .long 2947355221 - .long 1015419624 - .long 2799960843 - .long 1072878213 - .long 1423655381 - .long 1016070727 - .long 171030293 - .long 1072891646 - .long 3526460132 - .long 1015477354 - .long 2992903935 - .long 1072905224 - .long 2218154406 - .long 1016276769 - .long 926591435 - .long 1072918951 - .long 3208833762 - .long 3163962090 - .long 887463927 - .long 1072932827 - .long 3596744163 - .long 3161842742 - .long 1276261410 - .long 1072946854 - .long 300981948 - .long 1015732745 - .long 569847338 - .long 1072961034 - .long 472945272 - .long 3160339305 - .long 1617004845 - .long 1072975368 - .long 82804944 - .long 1011391354 - .long 3049340112 - .long 1072989858 - .long 3062915824 - .long 1014219171 - .long 3577096743 - .long 1073004506 - .long 2951496418 - .long 1014842263 - .long 1990012071 - .long 1073019314 - .long 3529070563 - .long 3163861769 - .long 1453150082 - .long 1073034283 - .long 498154669 - .long 3162536638 - .long 917841882 - .long 1073049415 - .long 18715565 - .long 1016707884 - .long 3712504873 - .long 1073064711 - .long 88491949 - .long 1016476236 - .long 363667784 - .long 1073080175 - .long 813753950 - .long 1016833785 - .long 2956612997 - .long 1073095806 - .long 2118169751 - .long 3163784129 - .long 2186617381 - .long 1073111608 - .long 2270764084 - .long 3164321289 - .long 1719614413 - .long 1073127582 - .long 330458198 - .long 3164331316 - .long 1013258799 - .long 1073143730 - .long 1748797611 - .long 3161177658 - .long 3907805044 - .long 1073160053 - .long 2257091225 - .long 3162598983 - .long 1447192521 - .long 1073176555 - .long 1462857171 - .long 3163563097 - .long 1944781191 - .long 1073193236 - .long 3993278767 - .long 3162772855 - .long 919555682 - .long 1073210099 - .long 3121969534 - .long 1013996802 - .long 2571947539 - .long 1073227145 - .long 3558159064 - .long 3164425245 - .long 2604962541 - .long 1073244377 - .long 2614425274 - .long 3164587768 - .long 1110089947 - .long 1073261797 - .long 1451641639 - .long 1016523249 - .long 2568320822 - .long 1073279406 - .long 2732824428 - .long 1015401491 - .long 2966275557 - .long 1073297207 - .long 2176155324 - .long 3160891335 - .long 2682146384 - .long 1073315202 - .long 2082178513 - .long 3164411995 - .long 2191782032 - .long 1073333393 - .long 2960257726 - .long 1014791238 - .long 2069751141 - .long 1073351782 - .long 1562170675 - .long 3163773257 - .long 2990417245 - .long 1073370371 - .long 3683467745 - .long 3164417902 - .long 1434058175 - .long 1073389163 - .long 251133233 - .long 1016134345 - .long 2572866477 - .long 1073408159 - .long 878562433 - .long 1016570317 - .long 3092190715 - .long 1073427362 - .long 814012168 - .long 3160571998 - .long 4076559943 - .long 1073446774 - .long 2119478331 - .long 3161806927 - .long 2420883922 - .long 1073466398 - .long 2049810052 - .long 1015168464 - .long 3716502172 - .long 1073486235 - .long 2303740125 - .long 1015091301 - .long 777507147 - .long 1073506289 - .long 4282924205 - .long 1016236109 - .long 3706687593 - .long 1073526560 - .long 3521726939 - .long 1014301643 - .long 1242007932 - .long 1073547053 - .long 1132034716 - .long 3164388407 - .long 3707479175 - .long 1073567768 - .long 3613079303 - .long 1015213314 - .long 64696965 - .long 1073588710 - .long 1768797490 - .long 1016865536 - .long 863738719 - .long 1073609879 - .long 1326992220 - .long 3163661773 - .long 3884662774 - .long 1073631278 - .long 2158611599 - .long 1015258761 - .long 2728693978 - .long 1073652911 - .long 396109971 - .long 3164511267 - .long 3999357479 - .long 1073674779 - .long 2258941616 - .long 1016973300 - .long 1533953344 - .long 1073696886 - .long 769171851 - .long 1016714209 - .long 2174652632 - .long 1073719233 - .long 4087714590 - .long 1015498835 - .long 0 - .long 1073741824 - .long 0 - .long 0 - .long 1697350398 - .long 1079448903 - .long 0 - .long 1127743488 - .long 0 - .long 1071644672 - .long 1431652600 - .long 1069897045 - .long 1431670732 - .long 1067799893 - .long 984555731 - .long 1065423122 - .long 472530941 - .long 1062650218 - .long 2411329662 - .long 1082536910 - .long 4277796864 - .long 1065758274 - .long 3164486458 - .long 1025308570 - .long 4294967295 - .long 2146435071 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 3875694624 - .long 1077247184 - .type __dcosh_la_CoutTab,@object - .size __dcosh_la_CoutTab,1152 diff --git a/numpy/core/src/umath/svml/svml_z0_cosh_s_la.s b/numpy/core/src/umath/svml/svml_z0_cosh_s_la.s deleted file mode 100644 index a7be097fc690..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_cosh_s_la.s +++ /dev/null @@ -1,1211 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_coshf16_z0_0: - - .align 16,0x90 - .globl __svml_coshf16 - -__svml_coshf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 1024+__svml_scosh_data_internal(%rip), %zmm4 - vmovups 384+__svml_scosh_data_internal(%rip), %zmm6 - -/* - * ............... Load argument ............................ - * dM = x/log(2) + RShifter - */ - vmovups 768+__svml_scosh_data_internal(%rip), %zmm10 - vmovups 896+__svml_scosh_data_internal(%rip), %zmm7 - vmovups 960+__svml_scosh_data_internal(%rip), %zmm9 - -/* ... */ - vmovups 704+__svml_scosh_data_internal(%rip), %zmm2 - -/* x^2 */ - vmovups 640+__svml_scosh_data_internal(%rip), %zmm3 - -/* ............... G1,G2 2^N,2^(-N) ........... */ - vmovups __svml_scosh_data_internal(%rip), %zmm12 - vmovups 256+__svml_scosh_data_internal(%rip), %zmm13 - -/* - * -------------------- Implementation ------------------- - * ............... Abs argument ............................ - */ - vandnps %zmm0, %zmm4, %zmm1 - -/* ...............Check for overflow\underflow ............. */ - vpternlogd $255, %zmm5, %zmm5, %zmm5 - vfmadd213ps {rn-sae}, %zmm6, %zmm1, %zmm10 - vpcmpd $1, 512+__svml_scosh_data_internal(%rip), %zmm1, %k1 - -/* iM now is an EXP(2^N) */ - vpslld $18, %zmm10, %zmm11 - -/* - * ................... R ................................... - * sN = sM - RShifter - */ - vsubps {rn-sae}, %zmm6, %zmm10, %zmm8 - vpermt2ps 64+__svml_scosh_data_internal(%rip), %zmm10, %zmm12 - vpermt2ps 320+__svml_scosh_data_internal(%rip), %zmm10, %zmm13 - vpandnd %zmm1, %zmm1, %zmm5{%k1} - -/* sR = sX - sN*Log2_hi */ - vfnmadd231ps {rn-sae}, %zmm7, %zmm8, %zmm1 - vptestmd %zmm5, %zmm5, %k0 - -/* sR = (sX - sN*Log2_hi) - sN*Log2_lo */ - vfnmadd231ps {rn-sae}, %zmm9, %zmm8, %zmm1 - kmovw %k0, %edx - vmulps {rn-sae}, %zmm1, %zmm1, %zmm4 - vmulps {rn-sae}, %zmm4, %zmm2, %zmm2 - -/* sSinh_r = r + r*(r^2*(a3)) */ - vfmadd213ps {rn-sae}, %zmm1, %zmm1, %zmm2 - -/* sOut = r^2*(a2) */ - vmulps {rn-sae}, %zmm4, %zmm3, %zmm1 - vpandd 1216+__svml_scosh_data_internal(%rip), %zmm11, %zmm14 - vpaddd %zmm14, %zmm12, %zmm15 - vpsubd %zmm14, %zmm13, %zmm10 - -/* sG2 = 2^N*Th + 2^(-N)*T_h */ - vaddps {rn-sae}, %zmm10, %zmm15, %zmm5 - -/* sG1 = 2^N*Th - 2^(-N)*T_h */ - vsubps {rn-sae}, %zmm10, %zmm15, %zmm6 - -/* res = sG1*(r + r*(r^2*(a3))) + sG2*(1+r^2*(a2)) */ - vfmadd213ps {rn-sae}, %zmm5, %zmm5, %zmm1 - vfmadd213ps {rn-sae}, %zmm1, %zmm2, %zmm6 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm6, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm6, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm6 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_scosh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_coshf16,@function - .size __svml_coshf16,.-__svml_coshf16 -..LN__svml_coshf16.0: - -.L_2__routine_start___svml_scosh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_scosh_cout_rare_internal: - - - .cfi_startproc -..L53: - - movq %rsi, %r8 - movzwl 2(%rdi), %edx - xorl %eax, %eax - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_12 - - - pxor %xmm0, %xmm0 - cvtss2sd (%rdi), %xmm0 - movsd %xmm0, -8(%rsp) - andb $127, -1(%rsp) - movzwl -2(%rsp), %edx - andl $32752, %edx - cmpl $15504, %edx - jle .LBL_2_10 - - - movsd -8(%rsp), %xmm0 - movsd 1096+__scosh_la_CoutTab(%rip), %xmm1 - comisd %xmm0, %xmm1 - jbe .LBL_2_9 - - - movq 1128+__scosh_la_CoutTab(%rip), %rdx - movq %rdx, -8(%rsp) - comisd 1144+__scosh_la_CoutTab(%rip), %xmm0 - jb .LBL_2_8 - - - movsd 1040+__scosh_la_CoutTab(%rip), %xmm1 - lea __scosh_la_CoutTab(%rip), %r9 - mulsd %xmm0, %xmm1 - addsd 1048+__scosh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -40(%rsp) - movsd -40(%rsp), %xmm2 - movsd 1088+__scosh_la_CoutTab(%rip), %xmm1 - movl -40(%rsp), %edx - movl %edx, %esi - andl $63, %esi - subsd 1048+__scosh_la_CoutTab(%rip), %xmm2 - movsd %xmm2, -32(%rsp) - lea (%rsi,%rsi), %ecx - movsd -32(%rsp), %xmm3 - lea 1(%rsi,%rsi), %edi - mulsd 1104+__scosh_la_CoutTab(%rip), %xmm3 - movsd -32(%rsp), %xmm4 - subsd %xmm3, %xmm0 - mulsd 1112+__scosh_la_CoutTab(%rip), %xmm4 - shrl $6, %edx - subsd %xmm4, %xmm0 - mulsd %xmm0, %xmm1 - addl $1022, %edx - andl $2047, %edx - addsd 1080+__scosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1072+__scosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1064+__scosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1056+__scosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - mulsd %xmm0, %xmm1 - addsd %xmm0, %xmm1 - movsd (%r9,%rcx,8), %xmm0 - mulsd %xmm0, %xmm1 - addsd (%r9,%rdi,8), %xmm1 - addsd %xmm0, %xmm1 - cmpl $2046, %edx - ja .LBL_2_7 - - - movq 1128+__scosh_la_CoutTab(%rip), %rcx - shrq $48, %rcx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm1, %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r8) - ret - -.LBL_2_7: - - decl %edx - andl $2047, %edx - movzwl -2(%rsp), %ecx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm0, %xmm1 - mulsd 1024+__scosh_la_CoutTab(%rip), %xmm1 - cvtsd2ss %xmm1, %xmm1 - movss %xmm1, (%r8) - ret - -.LBL_2_8: - - movsd 1040+__scosh_la_CoutTab(%rip), %xmm1 - lea __scosh_la_CoutTab(%rip), %rcx - movzwl -2(%rsp), %esi - andl $-32753, %esi - movsd 1080+__scosh_la_CoutTab(%rip), %xmm14 - mulsd %xmm0, %xmm1 - addsd 1048+__scosh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -40(%rsp) - movsd -40(%rsp), %xmm2 - movl -40(%rsp), %r10d - movl %r10d, %r9d - shrl $6, %r9d - subsd 1048+__scosh_la_CoutTab(%rip), %xmm2 - movsd %xmm2, -32(%rsp) - lea 1023(%r9), %edi - movsd -32(%rsp), %xmm3 - addl $1022, %r9d - mulsd 1104+__scosh_la_CoutTab(%rip), %xmm3 - andl $63, %r10d - movsd -32(%rsp), %xmm4 - lea (%r10,%r10), %edx - mulsd 1112+__scosh_la_CoutTab(%rip), %xmm4 - subsd %xmm3, %xmm0 - andl $2047, %r9d - negl %edi - movsd (%rcx,%rdx,8), %xmm15 - negl %edx - shll $4, %r9d - addl $-4, %edi - orl %r9d, %esi - andl $2047, %edi - movw %si, -2(%rsp) - andl $-32753, %esi - shll $4, %edi - lea 1(%r10,%r10), %r11d - movsd -8(%rsp), %xmm6 - orl %edi, %esi - movw %si, -2(%rsp) - lea 128(%rdx), %esi - addl $129, %edx - subsd %xmm4, %xmm0 - mulsd %xmm6, %xmm15 - movaps %xmm0, %xmm5 - movaps %xmm15, %xmm8 - mulsd %xmm0, %xmm5 - movaps %xmm15, %xmm10 - movsd (%rcx,%r11,8), %xmm2 - mulsd %xmm6, %xmm2 - mulsd %xmm5, %xmm14 - movsd -8(%rsp), %xmm7 - movaps %xmm2, %xmm12 - movsd (%rcx,%rdx,8), %xmm13 - mulsd %xmm7, %xmm13 - addsd 1064+__scosh_la_CoutTab(%rip), %xmm14 - movsd 1088+__scosh_la_CoutTab(%rip), %xmm1 - subsd %xmm13, %xmm12 - mulsd %xmm5, %xmm1 - mulsd %xmm5, %xmm14 - mulsd %xmm0, %xmm12 - addsd 1072+__scosh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm14 - addsd %xmm12, %xmm2 - mulsd %xmm5, %xmm1 - addsd %xmm13, %xmm2 - addsd 1056+__scosh_la_CoutTab(%rip), %xmm1 - movsd (%rcx,%rsi,8), %xmm11 - mulsd %xmm7, %xmm11 - mulsd %xmm5, %xmm1 - addsd %xmm11, %xmm8 - subsd %xmm11, %xmm15 - movsd %xmm8, -24(%rsp) - movsd -24(%rsp), %xmm9 - mulsd %xmm15, %xmm14 - subsd %xmm9, %xmm10 - mulsd %xmm15, %xmm0 - addsd %xmm11, %xmm10 - addsd %xmm14, %xmm2 - movsd %xmm10, -16(%rsp) - addsd %xmm0, %xmm2 - movsd -24(%rsp), %xmm3 - mulsd %xmm3, %xmm1 - movsd -16(%rsp), %xmm6 - addsd %xmm1, %xmm2 - addsd %xmm6, %xmm2 - movsd %xmm2, -24(%rsp) - movsd -24(%rsp), %xmm0 - addsd %xmm0, %xmm3 - cvtsd2ss %xmm3, %xmm3 - movss %xmm3, (%r8) - ret - -.LBL_2_9: - - movsd 1120+__scosh_la_CoutTab(%rip), %xmm0 - movl $3, %eax - mulsd %xmm0, %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r8) - ret - -.LBL_2_10: - - movsd 1136+__scosh_la_CoutTab(%rip), %xmm0 - addsd -8(%rsp), %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r8) - - - ret - -.LBL_2_12: - - movss (%rdi), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, (%r8) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_scosh_cout_rare_internal,@function - .size __svml_scosh_cout_rare_internal,.-__svml_scosh_cout_rare_internal -..LN__svml_scosh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_scosh_data_internal: - .long 1056964608 - .long 1057148295 - .long 1057336003 - .long 1057527823 - .long 1057723842 - .long 1057924154 - .long 1058128851 - .long 1058338032 - .long 1058551792 - .long 1058770234 - .long 1058993458 - .long 1059221571 - .long 1059454679 - .long 1059692891 - .long 1059936319 - .long 1060185078 - .long 1060439283 - .long 1060699055 - .long 1060964516 - .long 1061235789 - .long 1061513002 - .long 1061796286 - .long 1062085772 - .long 1062381598 - .long 1062683901 - .long 1062992824 - .long 1063308511 - .long 1063631111 - .long 1063960775 - .long 1064297658 - .long 1064641917 - .long 1064993715 - .long 0 - .long 2999887785 - .long 852465809 - .long 3003046475 - .long 2984291233 - .long 3001644133 - .long 854021668 - .long 2997748242 - .long 849550193 - .long 2995541347 - .long 851518274 - .long 809701978 - .long 2997656926 - .long 2996185864 - .long 2980965110 - .long 3002882728 - .long 844097402 - .long 848217591 - .long 2999013352 - .long 2992006718 - .long 831170615 - .long 3002278818 - .long 833158180 - .long 3000769962 - .long 2991891850 - .long 2999994908 - .long 2979965785 - .long 2982419430 - .long 2982221534 - .long 2999469642 - .long 833168438 - .long 2987538264 - .long 1056964608 - .long 1056605107 - .long 1056253309 - .long 1055909050 - .long 1055572167 - .long 1055242503 - .long 1054919903 - .long 1054604216 - .long 1054295293 - .long 1053992990 - .long 1053697164 - .long 1053407678 - .long 1053124394 - .long 1052847181 - .long 1052575908 - .long 1052310447 - .long 1052050675 - .long 1051796470 - .long 1051547711 - .long 1051304283 - .long 1051066071 - .long 1050832963 - .long 1050604850 - .long 1050381626 - .long 1050163184 - .long 1049949424 - .long 1049740243 - .long 1049535546 - .long 1049335234 - .long 1049139215 - .long 1048947395 - .long 1048759687 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1056964879 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1042983629 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 3212836864 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .type __svml_scosh_data_internal,@object - .size __svml_scosh_data_internal,1920 - .align 32 -__scosh_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 1048019041 - .long 1072704666 - .long 1398474845 - .long 3161559171 - .long 3541402996 - .long 1072716208 - .long 2759177317 - .long 1015903202 - .long 410360776 - .long 1072727877 - .long 1269990655 - .long 1013024446 - .long 1828292879 - .long 1072739672 - .long 1255956747 - .long 1016636974 - .long 852742562 - .long 1072751596 - .long 667253587 - .long 1010842135 - .long 3490863953 - .long 1072763649 - .long 960797498 - .long 3163997456 - .long 2930322912 - .long 1072775834 - .long 2599499422 - .long 3163762623 - .long 1014845819 - .long 1072788152 - .long 3117910646 - .long 3162607681 - .long 3949972341 - .long 1072800603 - .long 2068408548 - .long 1015962444 - .long 828946858 - .long 1072813191 - .long 10642492 - .long 1016988014 - .long 2288159958 - .long 1072825915 - .long 2169144469 - .long 1015924597 - .long 1853186616 - .long 1072838778 - .long 3066496371 - .long 1016705150 - .long 1709341917 - .long 1072851781 - .long 2571168217 - .long 1015201075 - .long 4112506593 - .long 1072864925 - .long 2947355221 - .long 1015419624 - .long 2799960843 - .long 1072878213 - .long 1423655381 - .long 1016070727 - .long 171030293 - .long 1072891646 - .long 3526460132 - .long 1015477354 - .long 2992903935 - .long 1072905224 - .long 2218154406 - .long 1016276769 - .long 926591435 - .long 1072918951 - .long 3208833762 - .long 3163962090 - .long 887463927 - .long 1072932827 - .long 3596744163 - .long 3161842742 - .long 1276261410 - .long 1072946854 - .long 300981948 - .long 1015732745 - .long 569847338 - .long 1072961034 - .long 472945272 - .long 3160339305 - .long 1617004845 - .long 1072975368 - .long 82804944 - .long 1011391354 - .long 3049340112 - .long 1072989858 - .long 3062915824 - .long 1014219171 - .long 3577096743 - .long 1073004506 - .long 2951496418 - .long 1014842263 - .long 1990012071 - .long 1073019314 - .long 3529070563 - .long 3163861769 - .long 1453150082 - .long 1073034283 - .long 498154669 - .long 3162536638 - .long 917841882 - .long 1073049415 - .long 18715565 - .long 1016707884 - .long 3712504873 - .long 1073064711 - .long 88491949 - .long 1016476236 - .long 363667784 - .long 1073080175 - .long 813753950 - .long 1016833785 - .long 2956612997 - .long 1073095806 - .long 2118169751 - .long 3163784129 - .long 2186617381 - .long 1073111608 - .long 2270764084 - .long 3164321289 - .long 1719614413 - .long 1073127582 - .long 330458198 - .long 3164331316 - .long 1013258799 - .long 1073143730 - .long 1748797611 - .long 3161177658 - .long 3907805044 - .long 1073160053 - .long 2257091225 - .long 3162598983 - .long 1447192521 - .long 1073176555 - .long 1462857171 - .long 3163563097 - .long 1944781191 - .long 1073193236 - .long 3993278767 - .long 3162772855 - .long 919555682 - .long 1073210099 - .long 3121969534 - .long 1013996802 - .long 2571947539 - .long 1073227145 - .long 3558159064 - .long 3164425245 - .long 2604962541 - .long 1073244377 - .long 2614425274 - .long 3164587768 - .long 1110089947 - .long 1073261797 - .long 1451641639 - .long 1016523249 - .long 2568320822 - .long 1073279406 - .long 2732824428 - .long 1015401491 - .long 2966275557 - .long 1073297207 - .long 2176155324 - .long 3160891335 - .long 2682146384 - .long 1073315202 - .long 2082178513 - .long 3164411995 - .long 2191782032 - .long 1073333393 - .long 2960257726 - .long 1014791238 - .long 2069751141 - .long 1073351782 - .long 1562170675 - .long 3163773257 - .long 2990417245 - .long 1073370371 - .long 3683467745 - .long 3164417902 - .long 1434058175 - .long 1073389163 - .long 251133233 - .long 1016134345 - .long 2572866477 - .long 1073408159 - .long 878562433 - .long 1016570317 - .long 3092190715 - .long 1073427362 - .long 814012168 - .long 3160571998 - .long 4076559943 - .long 1073446774 - .long 2119478331 - .long 3161806927 - .long 2420883922 - .long 1073466398 - .long 2049810052 - .long 1015168464 - .long 3716502172 - .long 1073486235 - .long 2303740125 - .long 1015091301 - .long 777507147 - .long 1073506289 - .long 4282924205 - .long 1016236109 - .long 3706687593 - .long 1073526560 - .long 3521726939 - .long 1014301643 - .long 1242007932 - .long 1073547053 - .long 1132034716 - .long 3164388407 - .long 3707479175 - .long 1073567768 - .long 3613079303 - .long 1015213314 - .long 64696965 - .long 1073588710 - .long 1768797490 - .long 1016865536 - .long 863738719 - .long 1073609879 - .long 1326992220 - .long 3163661773 - .long 3884662774 - .long 1073631278 - .long 2158611599 - .long 1015258761 - .long 2728693978 - .long 1073652911 - .long 396109971 - .long 3164511267 - .long 3999357479 - .long 1073674779 - .long 2258941616 - .long 1016973300 - .long 1533953344 - .long 1073696886 - .long 769171851 - .long 1016714209 - .long 2174652632 - .long 1073719233 - .long 4087714590 - .long 1015498835 - .long 0 - .long 1073741824 - .long 0 - .long 0 - .long 1697350398 - .long 1079448903 - .long 0 - .long 1127743488 - .long 0 - .long 1071644672 - .long 1431652600 - .long 1069897045 - .long 1431670732 - .long 1067799893 - .long 984555731 - .long 1065423122 - .long 472530941 - .long 1062650218 - .long 2684354560 - .long 1079401119 - .long 4277796864 - .long 1065758274 - .long 3164486458 - .long 1025308570 - .long 4294967295 - .long 2146435071 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 3875694624 - .long 1077247184 - .type __scosh_la_CoutTab,@object - .size __scosh_la_CoutTab,1152 diff --git a/numpy/core/src/umath/svml/svml_z0_exp2_d_la.s b/numpy/core/src/umath/svml/svml_z0_exp2_d_la.s deleted file mode 100644 index 7c61b33e5c9d..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_exp2_d_la.s +++ /dev/null @@ -1,830 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_exp28_z0_0: - - .align 16,0x90 - .globl __svml_exp28 - -__svml_exp28: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 384+__svml_dexp2_data_internal_avx512(%rip), %zmm14 - vmovups 448+__svml_dexp2_data_internal_avx512(%rip), %zmm6 - -/* - * Reduced argument -*/ - vreducepd $65, {sae}, %zmm0, %zmm10 - vmovups 320+__svml_dexp2_data_internal_avx512(%rip), %zmm7 - vmovups 512+__svml_dexp2_data_internal_avx512(%rip), %zmm3 - vmovups 256+__svml_dexp2_data_internal_avx512(%rip), %zmm8 - vmovups __svml_dexp2_data_internal_avx512(%rip), %zmm13 - -/* c6*r + c5 */ - vfmadd231pd {rn-sae}, %zmm10, %zmm6, %zmm14 - vmovups 192+__svml_dexp2_data_internal_avx512(%rip), %zmm9 - vmovups 640+__svml_dexp2_data_internal_avx512(%rip), %zmm2 - vmovups 128+__svml_dexp2_data_internal_avx512(%rip), %zmm11 - -/* c6*r^2 + c5*r + c4 */ - vfmadd213pd {rn-sae}, %zmm7, %zmm10, %zmm14 - -/* - * Integer form of K+0.b1b2b3b4 in lower bits - call K_plus_f0 - * Mantisssa of normalized double precision FP: 1.b1b2...b52 - */ - vaddpd {rd-sae}, %zmm3, %zmm0, %zmm4 - vandpd 576+__svml_dexp2_data_internal_avx512(%rip), %zmm0, %zmm1 - -/* c6*r^3 + c5*r^2 + c4*r + c3 */ - vfmadd213pd {rn-sae}, %zmm8, %zmm10, %zmm14 - vcmppd $29, {sae}, %zmm2, %zmm1, %k0 - -/* c6*r^4 + c5*r^3 + c4*r^2 + c3*r + c2 */ - vfmadd213pd {rn-sae}, %zmm9, %zmm10, %zmm14 - kmovw %k0, %edx - -/* c6*r^5 + c5*r^4 + c4*r^3 + c3*r^2 + c2*r + c1 */ - vfmadd213pd {rn-sae}, %zmm11, %zmm10, %zmm14 - -/* Table value: 2^(0.b1b2b3b4) */ - vpandq 704+__svml_dexp2_data_internal_avx512(%rip), %zmm4, %zmm5 - vpermt2pd 64+__svml_dexp2_data_internal_avx512(%rip), %zmm5, %zmm13 - -/* T*r */ - vmulpd {rn-sae}, %zmm10, %zmm13, %zmm12 - -/* T + (T*r*(c6*r^5 + c5*r^4 + c4*r^3 + c3*r^2 + c2*r + c1)) */ - vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm14 - -/* Scaling placed at the end to avoid accuracy loss when T*r*scale underflows */ - vscalefpd {rn-sae}, %zmm0, %zmm14, %zmm1 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm1, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dexp2_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_exp28,@function - .size __svml_exp28,.-__svml_exp28 -..LN__svml_exp28.0: - -.L_2__routine_start___svml_dexp2_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dexp2_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 6(%rdi), %edx - andl $32752, %edx - movsd (%rdi), %xmm5 - movsd %xmm5, -8(%rsp) - cmpl $32752, %edx - je .LBL_2_12 - - - movsd 1072+__dexp2_la__imldExp2HATab(%rip), %xmm0 - comisd %xmm5, %xmm0 - jbe .LBL_2_10 - - - comisd 1088+__dexp2_la__imldExp2HATab(%rip), %xmm5 - jbe .LBL_2_9 - - - movsd 1024+__dexp2_la__imldExp2HATab(%rip), %xmm0 - movaps %xmm5, %xmm3 - lea __dexp2_la__imldExp2HATab(%rip), %r10 - addsd %xmm5, %xmm0 - movsd %xmm0, -24(%rsp) - movsd -24(%rsp), %xmm1 - movl -24(%rsp), %r8d - movl %r8d, %ecx - andl $63, %r8d - subsd 1024+__dexp2_la__imldExp2HATab(%rip), %xmm1 - movsd %xmm1, -16(%rsp) - lea 1(%r8,%r8), %r9d - movsd -16(%rsp), %xmm2 - lea (%r8,%r8), %edi - movsd 1064+__dexp2_la__imldExp2HATab(%rip), %xmm1 - subsd %xmm2, %xmm3 - mulsd %xmm3, %xmm1 - movsd (%r10,%rdi,8), %xmm4 - shrl $6, %ecx - addsd 1056+__dexp2_la__imldExp2HATab(%rip), %xmm1 - comisd 1080+__dexp2_la__imldExp2HATab(%rip), %xmm5 - mulsd %xmm3, %xmm1 - movq 1112+__dexp2_la__imldExp2HATab(%rip), %rdx - movq %rdx, -8(%rsp) - lea 1023(%rcx), %edx - addsd 1048+__dexp2_la__imldExp2HATab(%rip), %xmm1 - mulsd %xmm3, %xmm1 - addsd 1040+__dexp2_la__imldExp2HATab(%rip), %xmm1 - mulsd %xmm3, %xmm1 - addsd 1032+__dexp2_la__imldExp2HATab(%rip), %xmm1 - mulsd %xmm3, %xmm1 - addsd (%r10,%r9,8), %xmm1 - mulsd %xmm4, %xmm1 - addsd %xmm4, %xmm1 - jb .LBL_2_8 - - - andl $2047, %edx - cmpl $2046, %edx - ja .LBL_2_7 - - - movq 1112+__dexp2_la__imldExp2HATab(%rip), %rcx - shrq $48, %rcx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm1, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_7: - - decl %edx - andl $2047, %edx - movzwl -2(%rsp), %ecx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm1, %xmm0 - mulsd 1128+__dexp2_la__imldExp2HATab(%rip), %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_8: - - addl $1123, %ecx - andl $2047, %ecx - movzwl -2(%rsp), %eax - shll $4, %ecx - andl $-32753, %eax - orl %ecx, %eax - movw %ax, -2(%rsp) - movl $4, %eax - movsd -8(%rsp), %xmm0 - mulsd %xmm1, %xmm0 - mulsd 1136+__dexp2_la__imldExp2HATab(%rip), %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_9: - - movsd 1096+__dexp2_la__imldExp2HATab(%rip), %xmm0 - movl $4, %eax - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_10: - - movsd 1104+__dexp2_la__imldExp2HATab(%rip), %xmm0 - movl $3, %eax - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - - - ret - -.LBL_2_12: - - movb -1(%rsp), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_14 - -.LBL_2_13: - - mulsd %xmm5, %xmm5 - movsd %xmm5, (%rsi) - ret - -.LBL_2_14: - - testl $1048575, -4(%rsp) - jne .LBL_2_13 - - - cmpl $0, -8(%rsp) - jne .LBL_2_13 - - - movq 1112+__dexp2_la__imldExp2HATab(%rip), %rdx - movq %rdx, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dexp2_cout_rare_internal,@function - .size __svml_dexp2_cout_rare_internal,.-__svml_dexp2_cout_rare_internal -..LN__svml_dexp2_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dexp2_data_internal_avx512: - .long 0 - .long 1072693248 - .long 1828292879 - .long 1072739672 - .long 1014845819 - .long 1072788152 - .long 1853186616 - .long 1072838778 - .long 171030293 - .long 1072891646 - .long 1276261410 - .long 1072946854 - .long 3577096743 - .long 1073004506 - .long 3712504873 - .long 1073064711 - .long 1719614413 - .long 1073127582 - .long 1944781191 - .long 1073193236 - .long 1110089947 - .long 1073261797 - .long 2191782032 - .long 1073333393 - .long 2572866477 - .long 1073408159 - .long 3716502172 - .long 1073486235 - .long 3707479175 - .long 1073567768 - .long 2728693978 - .long 1073652911 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4286862682 - .long 1070514109 - .long 4286862682 - .long 1070514109 - .long 4286862682 - .long 1070514109 - .long 4286862682 - .long 1070514109 - .long 4286862682 - .long 1070514109 - .long 4286862682 - .long 1070514109 - .long 4286862682 - .long 1070514109 - .long 4286862682 - .long 1070514109 - .long 3568142009 - .long 1068264200 - .long 3568142009 - .long 1068264200 - .long 3568142009 - .long 1068264200 - .long 3568142009 - .long 1068264200 - .long 3568142009 - .long 1068264200 - .long 3568142009 - .long 1068264200 - .long 3568142009 - .long 1068264200 - .long 3568142009 - .long 1068264200 - .long 454500946 - .long 1065595565 - .long 454500946 - .long 1065595565 - .long 454500946 - .long 1065595565 - .long 454500946 - .long 1065595565 - .long 454500946 - .long 1065595565 - .long 454500946 - .long 1065595565 - .long 454500946 - .long 1065595565 - .long 454500946 - .long 1065595565 - .long 655609113 - .long 1062590279 - .long 655609113 - .long 1062590279 - .long 655609113 - .long 1062590279 - .long 655609113 - .long 1062590279 - .long 655609113 - .long 1062590279 - .long 655609113 - .long 1062590279 - .long 655609113 - .long 1062590279 - .long 655609113 - .long 1062590279 - .long 4112922395 - .long 1059365335 - .long 4112922395 - .long 1059365335 - .long 4112922395 - .long 1059365335 - .long 4112922395 - .long 1059365335 - .long 4112922395 - .long 1059365335 - .long 4112922395 - .long 1059365335 - .long 4112922395 - .long 1059365335 - .long 4112922395 - .long 1059365335 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 1083174911 - .long 0 - .long 1083174911 - .long 0 - .long 1083174911 - .long 0 - .long 1083174911 - .long 0 - .long 1083174911 - .long 0 - .long 1083174911 - .long 0 - .long 1083174911 - .long 0 - .long 1083174911 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .type __svml_dexp2_data_internal_avx512,@object - .size __svml_dexp2_data_internal_avx512,768 - .align 32 -__dexp2_la__imldExp2HATab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 1048019041 - .long 1072704666 - .long 2631457885 - .long 3161546771 - .long 3541402996 - .long 1072716208 - .long 896005651 - .long 1015861842 - .long 410360776 - .long 1072727877 - .long 1642514529 - .long 1012987726 - .long 1828292879 - .long 1072739672 - .long 1568897901 - .long 1016568486 - .long 852742562 - .long 1072751596 - .long 1882168529 - .long 1010744893 - .long 3490863953 - .long 1072763649 - .long 707771662 - .long 3163903570 - .long 2930322912 - .long 1072775834 - .long 3117806614 - .long 3163670819 - .long 1014845819 - .long 1072788152 - .long 3936719688 - .long 3162512149 - .long 3949972341 - .long 1072800603 - .long 1058231231 - .long 1015777676 - .long 828946858 - .long 1072813191 - .long 1044000608 - .long 1016786167 - .long 2288159958 - .long 1072825915 - .long 1151779725 - .long 1015705409 - .long 1853186616 - .long 1072838778 - .long 3819481236 - .long 1016499965 - .long 1709341917 - .long 1072851781 - .long 2552227826 - .long 1015039787 - .long 4112506593 - .long 1072864925 - .long 1829350193 - .long 1015216097 - .long 2799960843 - .long 1072878213 - .long 1913391796 - .long 1015756674 - .long 171030293 - .long 1072891646 - .long 1303423926 - .long 1015238005 - .long 2992903935 - .long 1072905224 - .long 1574172746 - .long 1016061241 - .long 926591435 - .long 1072918951 - .long 3427487848 - .long 3163704045 - .long 887463927 - .long 1072932827 - .long 1049900754 - .long 3161575912 - .long 1276261410 - .long 1072946854 - .long 2804567149 - .long 1015390024 - .long 569847338 - .long 1072961034 - .long 1209502043 - .long 3159926671 - .long 1617004845 - .long 1072975368 - .long 1623370769 - .long 1011049453 - .long 3049340112 - .long 1072989858 - .long 3667985273 - .long 1013894369 - .long 3577096743 - .long 1073004506 - .long 3145379760 - .long 1014403278 - .long 1990012071 - .long 1073019314 - .long 7447438 - .long 3163526196 - .long 1453150082 - .long 1073034283 - .long 3171891295 - .long 3162037958 - .long 917841882 - .long 1073049415 - .long 419288974 - .long 1016280325 - .long 3712504873 - .long 1073064711 - .long 3793507337 - .long 1016095713 - .long 363667784 - .long 1073080175 - .long 728023093 - .long 1016345318 - .long 2956612997 - .long 1073095806 - .long 1005538728 - .long 3163304901 - .long 2186617381 - .long 1073111608 - .long 2018924632 - .long 3163803357 - .long 1719614413 - .long 1073127582 - .long 3210617384 - .long 3163796463 - .long 1013258799 - .long 1073143730 - .long 3094194670 - .long 3160631279 - .long 3907805044 - .long 1073160053 - .long 2119843535 - .long 3161988964 - .long 1447192521 - .long 1073176555 - .long 508946058 - .long 3162904882 - .long 1944781191 - .long 1073193236 - .long 3108873501 - .long 3162190556 - .long 919555682 - .long 1073210099 - .long 2882956373 - .long 1013312481 - .long 2571947539 - .long 1073227145 - .long 4047189812 - .long 3163777462 - .long 2604962541 - .long 1073244377 - .long 3631372142 - .long 3163870288 - .long 1110089947 - .long 1073261797 - .long 3253791412 - .long 1015920431 - .long 2568320822 - .long 1073279406 - .long 1509121860 - .long 1014756995 - .long 2966275557 - .long 1073297207 - .long 2339118633 - .long 3160254904 - .long 2682146384 - .long 1073315202 - .long 586480042 - .long 3163702083 - .long 2191782032 - .long 1073333393 - .long 730975783 - .long 1014083580 - .long 2069751141 - .long 1073351782 - .long 576856675 - .long 3163014404 - .long 2990417245 - .long 1073370371 - .long 3552361237 - .long 3163667409 - .long 1434058175 - .long 1073389163 - .long 1853053619 - .long 1015310724 - .long 2572866477 - .long 1073408159 - .long 2462790535 - .long 1015814775 - .long 3092190715 - .long 1073427362 - .long 1457303226 - .long 3159737305 - .long 4076559943 - .long 1073446774 - .long 950899508 - .long 3160987380 - .long 2420883922 - .long 1073466398 - .long 174054861 - .long 1014300631 - .long 3716502172 - .long 1073486235 - .long 816778419 - .long 1014197934 - .long 777507147 - .long 1073506289 - .long 3507050924 - .long 1015341199 - .long 3706687593 - .long 1073526560 - .long 1821514088 - .long 1013410604 - .long 1242007932 - .long 1073547053 - .long 1073740399 - .long 3163532637 - .long 3707479175 - .long 1073567768 - .long 2789017511 - .long 1014276997 - .long 64696965 - .long 1073588710 - .long 3586233004 - .long 1015962192 - .long 863738719 - .long 1073609879 - .long 129252895 - .long 3162690849 - .long 3884662774 - .long 1073631278 - .long 1614448851 - .long 1014281732 - .long 2728693978 - .long 1073652911 - .long 2413007344 - .long 3163551506 - .long 3999357479 - .long 1073674779 - .long 1101668360 - .long 1015989180 - .long 1533953344 - .long 1073696886 - .long 835814894 - .long 1015702697 - .long 2174652632 - .long 1073719233 - .long 1301400989 - .long 1014466875 - .long 0 - .long 1121452032 - .long 4277811695 - .long 1072049730 - .long 4286751290 - .long 1070514109 - .long 3607585384 - .long 1068264200 - .long 871937163 - .long 1065595565 - .long 3302507530 - .long 1062590576 - .long 0 - .long 1083179008 - .long 0 - .long 3230658560 - .long 0 - .long 3230714880 - .long 1 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 1073741824 - .long 0 - .long 967835648 - .long 0 - .long 0 - .type __dexp2_la__imldExp2HATab,@object - .size __dexp2_la__imldExp2HATab,1152 diff --git a/numpy/core/src/umath/svml/svml_z0_exp2_s_la.s b/numpy/core/src/umath/svml/svml_z0_exp2_s_la.s deleted file mode 100644 index 5ddd79383d45..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_exp2_s_la.s +++ /dev/null @@ -1,494 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_exp2f16_z0_0: - - .align 16,0x90 - .globl __svml_exp2f16 - -__svml_exp2f16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 256+__svml_sexp2_data_internal_avx512(%rip), %zmm3 - -/* - * Reduced argument -*/ - vreduceps $65, {sae}, %zmm0, %zmm6 - vmovups 192+__svml_sexp2_data_internal_avx512(%rip), %zmm5 - vmovups 128+__svml_sexp2_data_internal_avx512(%rip), %zmm10 - vmovups 384+__svml_sexp2_data_internal_avx512(%rip), %zmm2 - vmovups 64+__svml_sexp2_data_internal_avx512(%rip), %zmm7 - -/* - * Integer form of K+0.b1b2b3b4 in lower bits - call K_plus_f0 - * Mantisssa of normalized single precision FP: 1.b1b2...b23 - */ - vaddps {rd-sae}, %zmm3, %zmm0, %zmm4 - vandps 320+__svml_sexp2_data_internal_avx512(%rip), %zmm0, %zmm1 - -/* c3*r + c2 */ - vfmadd231ps {rn-sae}, %zmm6, %zmm5, %zmm10 - vcmpps $30, {sae}, %zmm2, %zmm1, %k0 - -/* c3*r^2 + c2*r + c1 */ - vfmadd213ps {rn-sae}, %zmm7, %zmm6, %zmm10 - -/* Table value: 2^(0.b1b2b3b4) */ - vpermps __svml_sexp2_data_internal_avx512(%rip), %zmm4, %zmm9 - kmovw %k0, %edx - -/* T*r */ - vmulps {rn-sae}, %zmm6, %zmm9, %zmm8 - -/* T + (T*r*(c3*r^2 + c2*r + c1) */ - vfmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm10 - -/* Scaling placed at the end to avoid accuracy loss when T*r*scale underflows */ - vscalefps {rn-sae}, %zmm0, %zmm10, %zmm1 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm1, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_sexp2_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_exp2f16,@function - .size __svml_exp2f16,.-__svml_exp2f16 -..LN__svml_exp2f16.0: - -.L_2__routine_start___svml_sexp2_cout_rare_internal_1: - - .align 16,0x90 - -__svml_sexp2_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 2(%rdi), %edx - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_10 - - - movss (%rdi), %xmm7 - movss .L_2il0floatpacket.43(%rip), %xmm0 - movl %eax, -12(%rsp) - comiss %xmm7, %xmm0 - jb .LBL_2_8 - - - comiss .L_2il0floatpacket.44(%rip), %xmm7 - jb .LBL_2_7 - - - movaps %xmm7, %xmm0 - movaps %xmm7, %xmm5 - movss %xmm0, -24(%rsp) - movss -24(%rsp), %xmm1 - movss .L_2il0floatpacket.46(%rip), %xmm2 - movss .L_2il0floatpacket.52(%rip), %xmm6 - addss %xmm2, %xmm1 - movss %xmm1, -20(%rsp) - movss -20(%rsp), %xmm3 - movswl -20(%rsp), %edx - subss %xmm2, %xmm3 - movss %xmm3, -24(%rsp) - movss -24(%rsp), %xmm4 - subss %xmm4, %xmm5 - mulss %xmm5, %xmm6 - addss .L_2il0floatpacket.51(%rip), %xmm6 - mulss %xmm5, %xmm6 - addss .L_2il0floatpacket.50(%rip), %xmm6 - mulss %xmm5, %xmm6 - addss .L_2il0floatpacket.49(%rip), %xmm6 - mulss %xmm5, %xmm6 - addss .L_2il0floatpacket.48(%rip), %xmm6 - mulss %xmm5, %xmm6 - addss .L_2il0floatpacket.47(%rip), %xmm6 - movss %xmm6, -16(%rsp) - cmpl $104, %edx - jl .LBL_2_6 - - - movzbl %dl, %edx - shll $7, %edx - movw %dx, -10(%rsp) - movss -16(%rsp), %xmm0 - mulss -12(%rsp), %xmm0 - movss %xmm0, -16(%rsp) - movss -16(%rsp), %xmm1 - mulss .L_2il0floatpacket.54(%rip), %xmm1 - movss %xmm1, -16(%rsp) - movl -16(%rsp), %ecx - movl %ecx, (%rsi) - ret - -.LBL_2_6: - - addl $-106, %edx - cmpltss .L_2il0floatpacket.56(%rip), %xmm7 - movzbl %dl, %edx - movzwl -10(%rsp), %eax - shll $7, %edx - andl $-32641, %eax - orl %edx, %eax - movss -16(%rsp), %xmm0 - movw %ax, -10(%rsp) - mulss -12(%rsp), %xmm0 - movd %xmm7, %eax - movss %xmm0, -16(%rsp) - movss -16(%rsp), %xmm1 - andl $4, %eax - mulss .L_2il0floatpacket.55(%rip), %xmm1 - movss %xmm1, -16(%rsp) - movl -16(%rsp), %ecx - movl %ecx, (%rsi) - ret - -.LBL_2_7: - - movss .L_2il0floatpacket.53(%rip), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, -16(%rsp) - movl -16(%rsp), %eax - movl %eax, (%rsi) - movl $4, %eax - ret - -.LBL_2_8: - - movss .L_2il0floatpacket.45(%rip), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, -16(%rsp) - movl -16(%rsp), %eax - movl %eax, (%rsi) - movl $3, %eax - - - ret - -.LBL_2_10: - - movb 3(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_12 - -.LBL_2_11: - - movss (%rdi), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_12: - - testl $8388607, (%rdi) - jne .LBL_2_11 - - - movl %eax, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_sexp2_cout_rare_internal,@function - .size __svml_sexp2_cout_rare_internal,.-__svml_sexp2_cout_rare_internal -..LN__svml_sexp2_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_sexp2_data_internal_avx512: - .long 1065353216 - .long 1065724611 - .long 1066112450 - .long 1066517459 - .long 1066940400 - .long 1067382066 - .long 1067843287 - .long 1068324927 - .long 1068827891 - .long 1069353124 - .long 1069901610 - .long 1070474380 - .long 1071072509 - .long 1071697119 - .long 1072349383 - .long 1073030525 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1047916907 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1030247626 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 1228931072 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .long 1123811328 - .type __svml_sexp2_data_internal_avx512,@object - .size __svml_sexp2_data_internal_avx512,448 - .align 4 -.L_2il0floatpacket.43: - .long 0x43000000 - .type .L_2il0floatpacket.43,@object - .size .L_2il0floatpacket.43,4 - .align 4 -.L_2il0floatpacket.44: - .long 0xc3160000 - .type .L_2il0floatpacket.44,@object - .size .L_2il0floatpacket.44,4 - .align 4 -.L_2il0floatpacket.45: - .long 0x7f7fffff - .type .L_2il0floatpacket.45,@object - .size .L_2il0floatpacket.45,4 - .align 4 -.L_2il0floatpacket.46: - .long 0x4b400000 - .type .L_2il0floatpacket.46,@object - .size .L_2il0floatpacket.46,4 - .align 4 -.L_2il0floatpacket.47: - .long 0x3f800001 - .type .L_2il0floatpacket.47,@object - .size .L_2il0floatpacket.47,4 - .align 4 -.L_2il0floatpacket.48: - .long 0x3f317219 - .type .L_2il0floatpacket.48,@object - .size .L_2il0floatpacket.48,4 - .align 4 -.L_2il0floatpacket.49: - .long 0x3e75fc83 - .type .L_2il0floatpacket.49,@object - .size .L_2il0floatpacket.49,4 - .align 4 -.L_2il0floatpacket.50: - .long 0x3d635716 - .type .L_2il0floatpacket.50,@object - .size .L_2il0floatpacket.50,4 - .align 4 -.L_2il0floatpacket.51: - .long 0x3c1e883d - .type .L_2il0floatpacket.51,@object - .size .L_2il0floatpacket.51,4 - .align 4 -.L_2il0floatpacket.52: - .long 0x3aafc483 - .type .L_2il0floatpacket.52,@object - .size .L_2il0floatpacket.52,4 - .align 4 -.L_2il0floatpacket.53: - .long 0x00000001 - .type .L_2il0floatpacket.53,@object - .size .L_2il0floatpacket.53,4 - .align 4 -.L_2il0floatpacket.54: - .long 0x7f000000 - .type .L_2il0floatpacket.54,@object - .size .L_2il0floatpacket.54,4 - .align 4 -.L_2il0floatpacket.55: - .long 0x34000000 - .type .L_2il0floatpacket.55,@object - .size .L_2il0floatpacket.55,4 - .align 4 -.L_2il0floatpacket.56: - .long 0xc2fc0000 - .type .L_2il0floatpacket.56,@object - .size .L_2il0floatpacket.56,4 diff --git a/numpy/core/src/umath/svml/svml_z0_exp_d_la.s b/numpy/core/src/umath/svml/svml_z0_exp_d_la.s deleted file mode 100644 index 87aee92c6a71..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_exp_d_la.s +++ /dev/null @@ -1,1074 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * Argument representation: - * N = rint(X*2^k/ln2) = 2^k*M+j - * X = N*ln2/2^k + r = M*ln2 + ln2*(j/2^k) + r - * then -ln2/2^(k+1) < r < ln2/2^(k+1) - * Alternatively: - * N = trunc(X*2^k/ln2) - * then 0 < r < ln2/2^k - * - * Result calculation: - * exp(X) = exp(M*ln2 + ln2*(j/2^k) + r) - * = 2^M * 2^(j/2^k) * exp(r) - * 2^M is calculated by bit manipulation - * 2^(j/2^k) is stored in table - * exp(r) is approximated by polynomial - * - * The table lookup is skipped if k = 0. - * - */ - - - .text -.L_2__routine_start___svml_exp8_z0_0: - - .align 16,0x90 - .globl __svml_exp8 - -__svml_exp8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 256+__svml_dexp_data_internal_avx512(%rip), %zmm3 - vmovups 320+__svml_dexp_data_internal_avx512(%rip), %zmm1 - vmovups 384+__svml_dexp_data_internal_avx512(%rip), %zmm4 - vmovups 448+__svml_dexp_data_internal_avx512(%rip), %zmm2 - vmovups 576+__svml_dexp_data_internal_avx512(%rip), %zmm5 - vmovups 640+__svml_dexp_data_internal_avx512(%rip), %zmm15 - -/* 2^(52-4)*1.5 + x * log2(e) in round-to-zero mode */ - vfmadd213pd {rz-sae}, %zmm1, %zmm0, %zmm3 - vmovups 704+__svml_dexp_data_internal_avx512(%rip), %zmm6 - -/* p34 = c4*r+c3 */ - vmovups 768+__svml_dexp_data_internal_avx512(%rip), %zmm9 - vmovups 832+__svml_dexp_data_internal_avx512(%rip), %zmm11 - vmovups 1024+__svml_dexp_data_internal_avx512(%rip), %zmm13 - -/* Table lookup: Th = 2^(j/2^k) */ - vmovups __svml_dexp_data_internal_avx512(%rip), %zmm14 - -/* N ~ x*log2(e), round-to-zero to 4 fractional bits */ - vsubpd {rn-sae}, %zmm1, %zmm3, %zmm1 - -/* remove sign of x by "and" operation */ - vandpd 960+__svml_dexp_data_internal_avx512(%rip), %zmm0, %zmm12 - vpermt2pd 64+__svml_dexp_data_internal_avx512(%rip), %zmm3, %zmm14 - -/* R = x - N*ln(2)_high */ - vfnmadd213pd {rn-sae}, %zmm0, %zmm1, %zmm4 - -/* compare against threshold */ - vcmppd $29, {sae}, %zmm13, %zmm12, %k0 - -/* R = R - N*ln(2)_high = x - N*ln(2) */ - vfnmadd231pd {rn-sae}, %zmm1, %zmm2, %zmm4 - -/* set mask for overflow/underflow */ - kmovw %k0, %edx - -/* ensure |R|<2 even for special cases */ - vandpd 512+__svml_dexp_data_internal_avx512(%rip), %zmm4, %zmm7 - -/* r2 = r*r */ - vmulpd {rn-sae}, %zmm7, %zmm7, %zmm8 - -/* p56 = c6*r+c5 */ - vfmadd231pd {rn-sae}, %zmm7, %zmm5, %zmm15 - vfmadd231pd {rn-sae}, %zmm7, %zmm6, %zmm9 - -/* r3 = r2*r = r^3 */ - vmulpd {rn-sae}, %zmm7, %zmm8, %zmm10 - -/* p12 = c2*r2+r */ - vfmadd213pd {rn-sae}, %zmm7, %zmm8, %zmm11 - -/* p36 = (c6*r+c5)*r^2+c4*r+c3 */ - vfmadd213pd {rn-sae}, %zmm9, %zmm8, %zmm15 - -/* p16 = ((c6*r+c5)*r^2+c4*r+c3)*r^3+c2*r^2+r = exp(r)-1 */ - vfmadd213pd {rn-sae}, %zmm11, %zmm10, %zmm15 - -/* Th*(exp(r)-1)+Th=Th*exp(r) */ - vfmadd213pd {rn-sae}, %zmm14, %zmm14, %zmm15 - -/* exp(x) = 2^M*Th*exp(r) */ - vscalefpd {rn-sae}, %zmm1, %zmm15, %zmm1 - - - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm1, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dexp_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_exp8,@function - .size __svml_exp8,.-__svml_exp8 -..LN__svml_exp8.0: - -.L_2__routine_start___svml_dexp_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dexp_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 6(%rdi), %edx - andl $32752, %edx - shrl $4, %edx - movsd (%rdi), %xmm6 - movsd %xmm6, -8(%rsp) - cmpl $2047, %edx - je .LBL_2_17 - - - cmpl $970, %edx - jle .LBL_2_15 - - - movsd 1080+_imldExpHATab(%rip), %xmm0 - comisd %xmm6, %xmm0 - jb .LBL_2_14 - - - comisd 1096+_imldExpHATab(%rip), %xmm6 - jb .LBL_2_13 - - - movsd 1024+_imldExpHATab(%rip), %xmm0 - movaps %xmm6, %xmm5 - mulsd %xmm6, %xmm0 - lea _imldExpHATab(%rip), %r10 - movsd %xmm0, -24(%rsp) - movsd -24(%rsp), %xmm1 - movq 1136+_imldExpHATab(%rip), %rdx - movq %rdx, -8(%rsp) - addsd 1032+_imldExpHATab(%rip), %xmm1 - movsd %xmm1, -16(%rsp) - movsd -16(%rsp), %xmm2 - movl -16(%rsp), %r8d - movl %r8d, %ecx - andl $63, %r8d - subsd 1032+_imldExpHATab(%rip), %xmm2 - movsd %xmm2, -24(%rsp) - lea 1(%r8,%r8), %r9d - movsd -24(%rsp), %xmm3 - lea (%r8,%r8), %edi - mulsd 1104+_imldExpHATab(%rip), %xmm3 - movsd -24(%rsp), %xmm4 - subsd %xmm3, %xmm5 - mulsd 1112+_imldExpHATab(%rip), %xmm4 - movsd 1072+_imldExpHATab(%rip), %xmm2 - subsd %xmm4, %xmm5 - mulsd %xmm5, %xmm2 - shrl $6, %ecx - addsd 1064+_imldExpHATab(%rip), %xmm2 - comisd 1088+_imldExpHATab(%rip), %xmm6 - mulsd %xmm5, %xmm2 - movsd (%r10,%rdi,8), %xmm0 - lea 1023(%rcx), %edx - addsd 1056+_imldExpHATab(%rip), %xmm2 - mulsd %xmm5, %xmm2 - addsd 1048+_imldExpHATab(%rip), %xmm2 - mulsd %xmm5, %xmm2 - addsd 1040+_imldExpHATab(%rip), %xmm2 - mulsd %xmm5, %xmm2 - mulsd %xmm5, %xmm2 - addsd %xmm5, %xmm2 - addsd (%r10,%r9,8), %xmm2 - mulsd %xmm0, %xmm2 - jb .LBL_2_9 - - - andl $2047, %edx - addsd %xmm0, %xmm2 - cmpl $2046, %edx - ja .LBL_2_8 - - - movq 1136+_imldExpHATab(%rip), %rcx - shrq $48, %rcx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm0, %xmm2 - movsd %xmm2, (%rsi) - ret - -.LBL_2_8: - - decl %edx - andl $2047, %edx - movzwl -2(%rsp), %ecx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm0, %xmm2 - mulsd 1152+_imldExpHATab(%rip), %xmm2 - movsd %xmm2, (%rsi) - ret - -.LBL_2_9: - - addl $1083, %ecx - andl $2047, %ecx - movl %ecx, %eax - movzwl -2(%rsp), %edx - shll $4, %eax - andl $-32753, %edx - orl %eax, %edx - movw %dx, -2(%rsp) - movsd -8(%rsp), %xmm1 - mulsd %xmm1, %xmm2 - mulsd %xmm0, %xmm1 - movaps %xmm1, %xmm0 - addsd %xmm2, %xmm0 - cmpl $50, %ecx - ja .LBL_2_11 - - - mulsd 1160+_imldExpHATab(%rip), %xmm0 - movsd %xmm0, (%rsi) - jmp .LBL_2_12 - -.LBL_2_11: - - movsd %xmm0, -72(%rsp) - movsd -72(%rsp), %xmm0 - subsd %xmm0, %xmm1 - movsd %xmm1, -64(%rsp) - movsd -64(%rsp), %xmm1 - addsd %xmm2, %xmm1 - movsd %xmm1, -64(%rsp) - movsd -72(%rsp), %xmm2 - mulsd 1168+_imldExpHATab(%rip), %xmm2 - movsd %xmm2, -56(%rsp) - movsd -72(%rsp), %xmm4 - movsd -56(%rsp), %xmm3 - addsd %xmm3, %xmm4 - movsd %xmm4, -48(%rsp) - movsd -48(%rsp), %xmm6 - movsd -56(%rsp), %xmm5 - subsd %xmm5, %xmm6 - movsd %xmm6, -40(%rsp) - movsd -72(%rsp), %xmm8 - movsd -40(%rsp), %xmm7 - subsd %xmm7, %xmm8 - movsd %xmm8, -32(%rsp) - movsd -64(%rsp), %xmm10 - movsd -32(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -32(%rsp) - movsd -40(%rsp), %xmm11 - mulsd 1160+_imldExpHATab(%rip), %xmm11 - movsd %xmm11, -40(%rsp) - movsd -32(%rsp), %xmm12 - mulsd 1160+_imldExpHATab(%rip), %xmm12 - movsd %xmm12, -32(%rsp) - movsd -40(%rsp), %xmm14 - movsd -32(%rsp), %xmm13 - addsd %xmm13, %xmm14 - movsd %xmm14, (%rsi) - -.LBL_2_12: - - movl $4, %eax - ret - -.LBL_2_13: - - movsd 1120+_imldExpHATab(%rip), %xmm0 - movl $4, %eax - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_14: - - movsd 1128+_imldExpHATab(%rip), %xmm0 - movl $3, %eax - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_15: - - movsd 1144+_imldExpHATab(%rip), %xmm0 - addsd %xmm6, %xmm0 - movsd %xmm0, (%rsi) - - - ret - -.LBL_2_17: - - movb -1(%rsp), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_19 - -.LBL_2_18: - - mulsd %xmm6, %xmm6 - movsd %xmm6, (%rsi) - ret - -.LBL_2_19: - - testl $1048575, -4(%rsp) - jne .LBL_2_18 - - - cmpl $0, -8(%rsp) - jne .LBL_2_18 - - - movq 1136+_imldExpHATab(%rip), %rdx - movq %rdx, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dexp_cout_rare_internal,@function - .size __svml_dexp_cout_rare_internal,.-__svml_dexp_cout_rare_internal -..LN__svml_dexp_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dexp_data_internal_avx512: - .long 0 - .long 1072693248 - .long 1828292879 - .long 1072739672 - .long 1014845819 - .long 1072788152 - .long 1853186616 - .long 1072838778 - .long 171030293 - .long 1072891646 - .long 1276261410 - .long 1072946854 - .long 3577096743 - .long 1073004506 - .long 3712504873 - .long 1073064711 - .long 1719614413 - .long 1073127582 - .long 1944781191 - .long 1073193236 - .long 1110089947 - .long 1073261797 - .long 2191782032 - .long 1073333393 - .long 2572866477 - .long 1073408159 - .long 3716502172 - .long 1073486235 - .long 3707479175 - .long 1073567768 - .long 2728693978 - .long 1073652911 - .long 0 - .long 0 - .long 1568897901 - .long 1016568486 - .long 3936719688 - .long 3162512149 - .long 3819481236 - .long 1016499965 - .long 1303423926 - .long 1015238005 - .long 2804567149 - .long 1015390024 - .long 3145379760 - .long 1014403278 - .long 3793507337 - .long 1016095713 - .long 3210617384 - .long 3163796463 - .long 3108873501 - .long 3162190556 - .long 3253791412 - .long 1015920431 - .long 730975783 - .long 1014083580 - .long 2462790535 - .long 1015814775 - .long 816778419 - .long 1014197934 - .long 2789017511 - .long 1014276997 - .long 2413007344 - .long 3163551506 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4010615101 - .long 1062678197 - .long 4010615101 - .long 1062678197 - .long 4010615101 - .long 1062678197 - .long 4010615101 - .long 1062678197 - .long 4010615101 - .long 1062678197 - .long 4010615101 - .long 1062678197 - .long 4010615101 - .long 1062678197 - .long 4010615101 - .long 1062678197 - .long 64584704 - .long 1065422950 - .long 64584704 - .long 1065422950 - .long 64584704 - .long 1065422950 - .long 64584704 - .long 1065422950 - .long 64584704 - .long 1065422950 - .long 64584704 - .long 1065422950 - .long 64584704 - .long 1065422950 - .long 64584704 - .long 1065422950 - .long 1270150640 - .long 1067799894 - .long 1270150640 - .long 1067799894 - .long 1270150640 - .long 1067799894 - .long 1270150640 - .long 1067799894 - .long 1270150640 - .long 1067799894 - .long 1270150640 - .long 1067799894 - .long 1270150640 - .long 1067799894 - .long 1270150640 - .long 1067799894 - .long 1421150370 - .long 1069897045 - .long 1421150370 - .long 1069897045 - .long 1421150370 - .long 1069897045 - .long 1421150370 - .long 1069897045 - .long 1421150370 - .long 1069897045 - .long 1421150370 - .long 1069897045 - .long 1421150370 - .long 1069897045 - .long 1421150370 - .long 1069897045 - .long 9762 - .long 1071644672 - .long 9762 - .long 1071644672 - .long 9762 - .long 1071644672 - .long 9762 - .long 1071644672 - .long 9762 - .long 1071644672 - .long 9762 - .long 1071644672 - .long 9762 - .long 1071644672 - .long 9762 - .long 1071644672 - .long 4294967152 - .long 1072693247 - .long 4294967152 - .long 1072693247 - .long 4294967152 - .long 1072693247 - .long 4294967152 - .long 1072693247 - .long 4294967152 - .long 1072693247 - .long 4294967152 - .long 1072693247 - .long 4294967152 - .long 1072693247 - .long 4294967152 - .long 1072693247 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 0 - .long 1005584384 - .long 0 - .long 1005584384 - .long 0 - .long 1005584384 - .long 0 - .long 1005584384 - .long 0 - .long 1005584384 - .long 0 - .long 1005584384 - .long 0 - .long 1005584384 - .long 0 - .long 1005584384 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 32752 - .long 0 - .long 32752 - .long 0 - .long 32752 - .long 0 - .long 32752 - .long 0 - .long 32752 - .long 0 - .long 32752 - .long 0 - .long 32752 - .long 0 - .long 32752 - .long 0 - .type __svml_dexp_data_internal_avx512,@object - .size __svml_dexp_data_internal_avx512,1280 - .align 32 -_imldExpHATab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 1048019041 - .long 1072704666 - .long 2631457885 - .long 3161546771 - .long 3541402996 - .long 1072716208 - .long 896005651 - .long 1015861842 - .long 410360776 - .long 1072727877 - .long 1642514529 - .long 1012987726 - .long 1828292879 - .long 1072739672 - .long 1568897901 - .long 1016568486 - .long 852742562 - .long 1072751596 - .long 1882168529 - .long 1010744893 - .long 3490863953 - .long 1072763649 - .long 707771662 - .long 3163903570 - .long 2930322912 - .long 1072775834 - .long 3117806614 - .long 3163670819 - .long 1014845819 - .long 1072788152 - .long 3936719688 - .long 3162512149 - .long 3949972341 - .long 1072800603 - .long 1058231231 - .long 1015777676 - .long 828946858 - .long 1072813191 - .long 1044000608 - .long 1016786167 - .long 2288159958 - .long 1072825915 - .long 1151779725 - .long 1015705409 - .long 1853186616 - .long 1072838778 - .long 3819481236 - .long 1016499965 - .long 1709341917 - .long 1072851781 - .long 2552227826 - .long 1015039787 - .long 4112506593 - .long 1072864925 - .long 1829350193 - .long 1015216097 - .long 2799960843 - .long 1072878213 - .long 1913391796 - .long 1015756674 - .long 171030293 - .long 1072891646 - .long 1303423926 - .long 1015238005 - .long 2992903935 - .long 1072905224 - .long 1574172746 - .long 1016061241 - .long 926591435 - .long 1072918951 - .long 3427487848 - .long 3163704045 - .long 887463927 - .long 1072932827 - .long 1049900754 - .long 3161575912 - .long 1276261410 - .long 1072946854 - .long 2804567149 - .long 1015390024 - .long 569847338 - .long 1072961034 - .long 1209502043 - .long 3159926671 - .long 1617004845 - .long 1072975368 - .long 1623370769 - .long 1011049453 - .long 3049340112 - .long 1072989858 - .long 3667985273 - .long 1013894369 - .long 3577096743 - .long 1073004506 - .long 3145379760 - .long 1014403278 - .long 1990012071 - .long 1073019314 - .long 7447438 - .long 3163526196 - .long 1453150082 - .long 1073034283 - .long 3171891295 - .long 3162037958 - .long 917841882 - .long 1073049415 - .long 419288974 - .long 1016280325 - .long 3712504873 - .long 1073064711 - .long 3793507337 - .long 1016095713 - .long 363667784 - .long 1073080175 - .long 728023093 - .long 1016345318 - .long 2956612997 - .long 1073095806 - .long 1005538728 - .long 3163304901 - .long 2186617381 - .long 1073111608 - .long 2018924632 - .long 3163803357 - .long 1719614413 - .long 1073127582 - .long 3210617384 - .long 3163796463 - .long 1013258799 - .long 1073143730 - .long 3094194670 - .long 3160631279 - .long 3907805044 - .long 1073160053 - .long 2119843535 - .long 3161988964 - .long 1447192521 - .long 1073176555 - .long 508946058 - .long 3162904882 - .long 1944781191 - .long 1073193236 - .long 3108873501 - .long 3162190556 - .long 919555682 - .long 1073210099 - .long 2882956373 - .long 1013312481 - .long 2571947539 - .long 1073227145 - .long 4047189812 - .long 3163777462 - .long 2604962541 - .long 1073244377 - .long 3631372142 - .long 3163870288 - .long 1110089947 - .long 1073261797 - .long 3253791412 - .long 1015920431 - .long 2568320822 - .long 1073279406 - .long 1509121860 - .long 1014756995 - .long 2966275557 - .long 1073297207 - .long 2339118633 - .long 3160254904 - .long 2682146384 - .long 1073315202 - .long 586480042 - .long 3163702083 - .long 2191782032 - .long 1073333393 - .long 730975783 - .long 1014083580 - .long 2069751141 - .long 1073351782 - .long 576856675 - .long 3163014404 - .long 2990417245 - .long 1073370371 - .long 3552361237 - .long 3163667409 - .long 1434058175 - .long 1073389163 - .long 1853053619 - .long 1015310724 - .long 2572866477 - .long 1073408159 - .long 2462790535 - .long 1015814775 - .long 3092190715 - .long 1073427362 - .long 1457303226 - .long 3159737305 - .long 4076559943 - .long 1073446774 - .long 950899508 - .long 3160987380 - .long 2420883922 - .long 1073466398 - .long 174054861 - .long 1014300631 - .long 3716502172 - .long 1073486235 - .long 816778419 - .long 1014197934 - .long 777507147 - .long 1073506289 - .long 3507050924 - .long 1015341199 - .long 3706687593 - .long 1073526560 - .long 1821514088 - .long 1013410604 - .long 1242007932 - .long 1073547053 - .long 1073740399 - .long 3163532637 - .long 3707479175 - .long 1073567768 - .long 2789017511 - .long 1014276997 - .long 64696965 - .long 1073588710 - .long 3586233004 - .long 1015962192 - .long 863738719 - .long 1073609879 - .long 129252895 - .long 3162690849 - .long 3884662774 - .long 1073631278 - .long 1614448851 - .long 1014281732 - .long 2728693978 - .long 1073652911 - .long 2413007344 - .long 3163551506 - .long 3999357479 - .long 1073674779 - .long 1101668360 - .long 1015989180 - .long 1533953344 - .long 1073696886 - .long 835814894 - .long 1015702697 - .long 2174652632 - .long 1073719233 - .long 1301400989 - .long 1014466875 - .long 1697350398 - .long 1079448903 - .long 0 - .long 1127743488 - .long 0 - .long 1071644672 - .long 1431652600 - .long 1069897045 - .long 1431670732 - .long 1067799893 - .long 984555731 - .long 1065423122 - .long 472530941 - .long 1062650218 - .long 4277811695 - .long 1082535490 - .long 3715808466 - .long 3230016299 - .long 3576508497 - .long 3230091536 - .long 4277796864 - .long 1065758274 - .long 3164486458 - .long 1025308570 - .long 1 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 1073741824 - .long 0 - .long 1009778688 - .long 0 - .long 1106771968 - .type _imldExpHATab,@object - .size _imldExpHATab,1176 diff --git a/numpy/core/src/umath/svml/svml_z0_exp_s_la.s b/numpy/core/src/umath/svml/svml_z0_exp_s_la.s deleted file mode 100644 index 4c0e972ef283..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_exp_s_la.s +++ /dev/null @@ -1,772 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * Argument representation: - * M = rint(X*2^k/ln2) = 2^k*N+j - * X = M*ln2/2^k + r = N*ln2 + ln2*(j/2^k) + r - * then -ln2/2^(k+1) < r < ln2/2^(k+1) - * Alternatively: - * M = trunc(X*2^k/ln2) - * then 0 < r < ln2/2^k - * - * Result calculation: - * exp(X) = exp(N*ln2 + ln2*(j/2^k) + r) - * = 2^N * 2^(j/2^k) * exp(r) - * 2^N is calculated by bit manipulation - * 2^(j/2^k) is computed from table lookup - * exp(r) is approximated by polynomial - * - * The table lookup is skipped if k = 0. - * For low accuracy approximation, exp(r) ~ 1 or 1+r. - * - */ - - - .text -.L_2__routine_start___svml_expf16_z0_0: - - .align 16,0x90 - .globl __svml_expf16 - -__svml_expf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 256+__svml_sexp_data_internal_avx512(%rip), %zmm2 - vmovups 320+__svml_sexp_data_internal_avx512(%rip), %zmm1 - -/* x!=0? */ - vmovups 896+__svml_sexp_data_internal_avx512(%rip), %zmm7 - vmovups 384+__svml_sexp_data_internal_avx512(%rip), %zmm5 - -/* Table lookup: Tl, Tl = 2^(j/2^10), j = 0,...,2^5-1 */ - vmovups __svml_sexp_data_internal_avx512(%rip), %zmm8 - -/* Table lookup: Th, Th = 2^(j/2^5), j = 0,...,2^5-1 */ - vmovups 128+__svml_sexp_data_internal_avx512(%rip), %zmm12 - -/* 2^(52-4)*1.5 + x * log2(e) in round-to-zero mode */ - vfmadd213ps {rz-sae}, %zmm1, %zmm0, %zmm2 - vmovups 448+__svml_sexp_data_internal_avx512(%rip), %zmm4 - vmovups 640+__svml_sexp_data_internal_avx512(%rip), %zmm10 - -/* ensure |R|<2 even for special cases */ - vmovups 512+__svml_sexp_data_internal_avx512(%rip), %zmm6 - vcmpps $4, {sae}, %zmm7, %zmm0, %k1 - -/* Adjust index by right shift for 5 bits */ - vpsrld $5, %zmm2, %zmm3 - -/* N ~ x*log2(e), round-to-zero to 10 fractional bits */ - vsubps {rn-sae}, %zmm1, %zmm2, %zmm13 - vpermt2ps 64+__svml_sexp_data_internal_avx512(%rip), %zmm2, %zmm8 - vpermt2ps 192+__svml_sexp_data_internal_avx512(%rip), %zmm3, %zmm12 - -/* remove sign of x by "and" operation */ - vandps 576+__svml_sexp_data_internal_avx512(%rip), %zmm0, %zmm9 - -/* R = x - N*ln(2)_high */ - vfnmadd213ps {rn-sae}, %zmm0, %zmm13, %zmm5 - -/* Th*Tl ~ 2^(j/2^k) */ - vmulps {rn-sae}, %zmm8, %zmm12, %zmm12{%k1} - -/* compare against threshold */ - vcmpps $29, {sae}, %zmm10, %zmm9, %k0 - -/* R = R - N*ln(2)_low = x - N*ln(2) */ - vfnmadd231ps {rn-sae}, %zmm13, %zmm4, %zmm5 - -/* set mask for overflow/underflow */ - kmovw %k0, %edx - vrangeps $2, {sae}, %zmm6, %zmm5, %zmm11 - -/* 2^(j/2^k)*(r+1) */ - vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm12 - -/* exp(x) = 2^N*2^(j/2^k)*(r+1) */ - vscalefps {rn-sae}, %zmm13, %zmm12, %zmm1 - -/* - * Check general callout condition - * Check VML specific mode related condition, - * no check in case of other libraries - * Above HA/LA/EP sequences produce - * correct results even without going to callout. - * Callout was only needed to raise flags - * and set errno. If caller doesn't need that - * then it is safe to proceed without callout - */ - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm1, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_sexp_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_expf16,@function - .size __svml_expf16,.-__svml_expf16 -..LN__svml_expf16.0: - -.L_2__routine_start___svml_sexp_cout_rare_internal_1: - - .align 16,0x90 - -__svml_sexp_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 2(%rdi), %edx - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_12 - - - movss (%rdi), %xmm9 - movss .L_2il0floatpacket.52(%rip), %xmm0 - movl %eax, -12(%rsp) - comiss %xmm9, %xmm0 - jb .LBL_2_10 - - - comiss .L_2il0floatpacket.53(%rip), %xmm9 - jb .LBL_2_9 - - - movss .L_2il0floatpacket.55(%rip), %xmm0 - movaps %xmm9, %xmm6 - mulss %xmm9, %xmm0 - comiss .L_2il0floatpacket.64(%rip), %xmm9 - movss %xmm0, -24(%rsp) - movss -24(%rsp), %xmm1 - movss .L_2il0floatpacket.56(%rip), %xmm2 - movss .L_2il0floatpacket.63(%rip), %xmm7 - addss %xmm2, %xmm1 - movss %xmm1, -20(%rsp) - movss -20(%rsp), %xmm3 - movss .L_2il0floatpacket.59(%rip), %xmm8 - subss %xmm2, %xmm3 - movss %xmm3, -24(%rsp) - movss -24(%rsp), %xmm4 - mulss .L_2il0floatpacket.57(%rip), %xmm4 - movss -24(%rsp), %xmm5 - subss %xmm4, %xmm6 - mulss .L_2il0floatpacket.58(%rip), %xmm5 - movswl -20(%rsp), %ecx - subss %xmm5, %xmm6 - mulss %xmm6, %xmm7 - addss .L_2il0floatpacket.62(%rip), %xmm7 - mulss %xmm6, %xmm7 - addss .L_2il0floatpacket.61(%rip), %xmm7 - mulss %xmm6, %xmm7 - addss .L_2il0floatpacket.60(%rip), %xmm7 - mulss %xmm6, %xmm7 - addss %xmm8, %xmm7 - mulss %xmm6, %xmm7 - addss %xmm7, %xmm8 - movss %xmm8, -16(%rsp) - jb .LBL_2_8 - - - lea 127(%rcx), %edx - cmpl $254, %edx - ja .LBL_2_7 - - - movzbl %dl, %edx - shll $7, %edx - movw %dx, -10(%rsp) - movss -16(%rsp), %xmm0 - mulss -12(%rsp), %xmm0 - movss %xmm0, -16(%rsp) - movl -16(%rsp), %ecx - movl %ecx, (%rsi) - ret - -.LBL_2_7: - - addl $126, %ecx - movzbl %cl, %ecx - movzwl -10(%rsp), %edx - shll $7, %ecx - andl $-32641, %edx - orl %ecx, %edx - movss -16(%rsp), %xmm0 - movw %dx, -10(%rsp) - mulss -12(%rsp), %xmm0 - movss %xmm0, -16(%rsp) - movss -16(%rsp), %xmm1 - mulss .L_2il0floatpacket.67(%rip), %xmm1 - movss %xmm1, -16(%rsp) - movl -16(%rsp), %edi - movl %edi, (%rsi) - ret - -.LBL_2_8: - - addl $-69, %ecx - movzbl %cl, %ecx - movzwl -10(%rsp), %eax - shll $7, %ecx - andl $-32641, %eax - orl %ecx, %eax - movss -16(%rsp), %xmm0 - movw %ax, -10(%rsp) - movl $4, %eax - mulss -12(%rsp), %xmm0 - movss %xmm0, -16(%rsp) - movss -16(%rsp), %xmm1 - mulss .L_2il0floatpacket.66(%rip), %xmm1 - movss %xmm1, -16(%rsp) - movl -16(%rsp), %edx - movl %edx, (%rsi) - ret - -.LBL_2_9: - - movss .L_2il0floatpacket.65(%rip), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, -16(%rsp) - movl -16(%rsp), %eax - movl %eax, (%rsi) - movl $4, %eax - ret - -.LBL_2_10: - - movss .L_2il0floatpacket.54(%rip), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, -16(%rsp) - movl -16(%rsp), %eax - movl %eax, (%rsi) - movl $3, %eax - - - ret - -.LBL_2_12: - - movb 3(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_14 - -.LBL_2_13: - - movss (%rdi), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_14: - - testl $8388607, (%rdi) - jne .LBL_2_13 - - - movl %eax, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_sexp_cout_rare_internal,@function - .size __svml_sexp_cout_rare_internal,.-__svml_sexp_cout_rare_internal -..LN__svml_sexp_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_sexp_data_internal_avx512: - .long 1065353217 - .long 1065358897 - .long 1065364581 - .long 1065370269 - .long 1065375961 - .long 1065381656 - .long 1065387356 - .long 1065393059 - .long 1065398766 - .long 1065404477 - .long 1065410192 - .long 1065415911 - .long 1065421634 - .long 1065427360 - .long 1065433091 - .long 1065438825 - .long 1065444563 - .long 1065450305 - .long 1065456051 - .long 1065461801 - .long 1065467554 - .long 1065473312 - .long 1065479074 - .long 1065484839 - .long 1065490608 - .long 1065496381 - .long 1065502159 - .long 1065507940 - .long 1065513725 - .long 1065519513 - .long 1065525306 - .long 1065531103 - .long 1065353216 - .long 1065536903 - .long 1065724611 - .long 1065916431 - .long 1066112450 - .long 1066312762 - .long 1066517459 - .long 1066726640 - .long 1066940400 - .long 1067158842 - .long 1067382066 - .long 1067610179 - .long 1067843287 - .long 1068081499 - .long 1068324927 - .long 1068573686 - .long 1068827891 - .long 1069087663 - .long 1069353124 - .long 1069624397 - .long 1069901610 - .long 1070184894 - .long 1070474380 - .long 1070770206 - .long 1071072509 - .long 1071381432 - .long 1071697119 - .long 1072019719 - .long 1072349383 - .long 1072686266 - .long 1073030525 - .long 1073382323 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1178599424 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 796917760 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 3968 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 849703008 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .type __svml_sexp_data_internal_avx512,@object - .size __svml_sexp_data_internal_avx512,1216 - .align 4 -.L_2il0floatpacket.52: - .long 0x42b17217 - .type .L_2il0floatpacket.52,@object - .size .L_2il0floatpacket.52,4 - .align 4 -.L_2il0floatpacket.53: - .long 0xc2cff1b4 - .type .L_2il0floatpacket.53,@object - .size .L_2il0floatpacket.53,4 - .align 4 -.L_2il0floatpacket.54: - .long 0x7f7fffff - .type .L_2il0floatpacket.54,@object - .size .L_2il0floatpacket.54,4 - .align 4 -.L_2il0floatpacket.55: - .long 0x3fb8aa3b - .type .L_2il0floatpacket.55,@object - .size .L_2il0floatpacket.55,4 - .align 4 -.L_2il0floatpacket.56: - .long 0x4b400000 - .type .L_2il0floatpacket.56,@object - .size .L_2il0floatpacket.56,4 - .align 4 -.L_2il0floatpacket.57: - .long 0x3f317200 - .type .L_2il0floatpacket.57,@object - .size .L_2il0floatpacket.57,4 - .align 4 -.L_2il0floatpacket.58: - .long 0x35bfbe8e - .type .L_2il0floatpacket.58,@object - .size .L_2il0floatpacket.58,4 - .align 4 -.L_2il0floatpacket.59: - .long 0x3f800001 - .type .L_2il0floatpacket.59,@object - .size .L_2il0floatpacket.59,4 - .align 4 -.L_2il0floatpacket.60: - .long 0x3efffe85 - .type .L_2il0floatpacket.60,@object - .size .L_2il0floatpacket.60,4 - .align 4 -.L_2il0floatpacket.61: - .long 0x3e2aa9c6 - .type .L_2il0floatpacket.61,@object - .size .L_2il0floatpacket.61,4 - .align 4 -.L_2il0floatpacket.62: - .long 0x3d2bb1b6 - .type .L_2il0floatpacket.62,@object - .size .L_2il0floatpacket.62,4 - .align 4 -.L_2il0floatpacket.63: - .long 0x3c0950ef - .type .L_2il0floatpacket.63,@object - .size .L_2il0floatpacket.63,4 - .align 4 -.L_2il0floatpacket.64: - .long 0xc2aeac4f - .type .L_2il0floatpacket.64,@object - .size .L_2il0floatpacket.64,4 - .align 4 -.L_2il0floatpacket.65: - .long 0x00000001 - .type .L_2il0floatpacket.65,@object - .size .L_2il0floatpacket.65,4 - .align 4 -.L_2il0floatpacket.66: - .long 0x21800000 - .type .L_2il0floatpacket.66,@object - .size .L_2il0floatpacket.66,4 - .align 4 -.L_2il0floatpacket.67: - .long 0x40000000 - .type .L_2il0floatpacket.67,@object - .size .L_2il0floatpacket.67,4 diff --git a/numpy/core/src/umath/svml/svml_z0_expm1_d_la.s b/numpy/core/src/umath/svml/svml_z0_expm1_d_la.s deleted file mode 100644 index 6d44b4d17c5d..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_expm1_d_la.s +++ /dev/null @@ -1,1089 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * After computing exp(x) in high-low parts, an accurate computation is performed to obtain exp(x)-1 - * * Typical exp() implementation, except that: - * * - tables are small (16 elements), allowing for fast gathers - * * - all arguments processed in the main path - * * - final VSCALEF assists branch-free design (correct overflow/underflow and special case responses) - * * - a VAND is used to ensure the reduced argument |R|<2, even for large inputs - * * - RZ mode used to avoid oveflow to +/-Inf for x*log2(e); helps with special case handling - * * - * - */ - - - .text -.L_2__routine_start___svml_expm18_z0_0: - - .align 16,0x90 - .globl __svml_expm18 - -__svml_expm18: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 256+__svml_dexpm1_data_internal_avx512(%rip), %zmm6 - vmovups 320+__svml_dexpm1_data_internal_avx512(%rip), %zmm4 - vmovups 512+__svml_dexpm1_data_internal_avx512(%rip), %zmm11 - vmovups 576+__svml_dexpm1_data_internal_avx512(%rip), %zmm5 - vmovups 384+__svml_dexpm1_data_internal_avx512(%rip), %zmm3 - vmovups 960+__svml_dexpm1_data_internal_avx512(%rip), %zmm13 - vmovups 1024+__svml_dexpm1_data_internal_avx512(%rip), %zmm15 - -/* polynomial */ - vmovups 832+__svml_dexpm1_data_internal_avx512(%rip), %zmm12 - -/* set Z0=max(Z0, -128.0) */ - vmovups 640+__svml_dexpm1_data_internal_avx512(%rip), %zmm8 - vmovups 1088+__svml_dexpm1_data_internal_avx512(%rip), %zmm14 - vmovups __svml_dexpm1_data_internal_avx512(%rip), %zmm9 - vmovaps %zmm0, %zmm2 - -/* 2^(52-4)*1.5 + x * log2(e) */ - vfmadd213pd {rn-sae}, %zmm4, %zmm2, %zmm6 - vmovups 128+__svml_dexpm1_data_internal_avx512(%rip), %zmm0 - vcmppd $21, {sae}, %zmm3, %zmm2, %k0 - -/* Z0 ~ x*log2(e), rounded to 4 fractional bits */ - vsubpd {rn-sae}, %zmm4, %zmm6, %zmm7 - vpermt2pd 64+__svml_dexpm1_data_internal_avx512(%rip), %zmm6, %zmm9 - vpermt2pd 192+__svml_dexpm1_data_internal_avx512(%rip), %zmm6, %zmm0 - vandpd 448+__svml_dexpm1_data_internal_avx512(%rip), %zmm2, %zmm1 - -/* R = x - Z0*log(2) */ - vfnmadd213pd {rn-sae}, %zmm2, %zmm7, %zmm11 - vmaxpd {sae}, %zmm8, %zmm7, %zmm10 - vfnmadd231pd {rn-sae}, %zmm7, %zmm5, %zmm11 - kmovw %k0, %edx - -/* ensure |R|<2 even for special cases */ - vandpd 704+__svml_dexpm1_data_internal_avx512(%rip), %zmm11, %zmm3 - vmovups 896+__svml_dexpm1_data_internal_avx512(%rip), %zmm11 - -/* scale Th */ - vscalefpd {rn-sae}, %zmm10, %zmm9, %zmm4 - vfmadd231pd {rn-sae}, %zmm3, %zmm13, %zmm15 - vfmadd231pd {rn-sae}, %zmm3, %zmm12, %zmm11 - vmovups 1152+__svml_dexpm1_data_internal_avx512(%rip), %zmm12 - vmulpd {rn-sae}, %zmm3, %zmm3, %zmm13 - vfmadd231pd {rn-sae}, %zmm3, %zmm14, %zmm12 - vfmadd213pd {rn-sae}, %zmm15, %zmm13, %zmm11 - vfmadd213pd {rn-sae}, %zmm12, %zmm13, %zmm11 - -/* Tlr + R+ R*Poly */ - vfmadd213pd {rn-sae}, %zmm0, %zmm13, %zmm11 - -/* Th - 1 */ - vmovups 1216+__svml_dexpm1_data_internal_avx512(%rip), %zmm0 - vaddpd {rn-sae}, %zmm3, %zmm11, %zmm14 - vsubpd {rn-sae}, %zmm0, %zmm4, %zmm15 - -/* (Th-1)+Th*(Tlr + R+ R*Poly) */ - vfmadd213pd {rn-sae}, %zmm15, %zmm14, %zmm4 - vorpd %zmm1, %zmm4, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm2, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dexpm1_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_expm18,@function - .size __svml_expm18,.-__svml_expm18 -..LN__svml_expm18.0: - -.L_2__routine_start___svml_dexpm1_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dexpm1_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movsd (%rdi), %xmm6 - pxor %xmm0, %xmm0 - movzwl 6(%rdi), %edx - comisd %xmm6, %xmm0 - ja .LBL_2_18 - - - andl $32752, %edx - shrl $4, %edx - movsd %xmm6, -8(%rsp) - cmpl $2047, %edx - je .LBL_2_19 - - - cmpl $970, %edx - jle .LBL_2_16 - - - movsd 1080+_imldExpHATab(%rip), %xmm0 - comisd %xmm6, %xmm0 - jb .LBL_2_15 - - - comisd 1096+_imldExpHATab(%rip), %xmm6 - jb .LBL_2_14 - - - movsd 1024+_imldExpHATab(%rip), %xmm0 - movaps %xmm6, %xmm5 - mulsd %xmm6, %xmm0 - lea _imldExpHATab(%rip), %r10 - movsd %xmm0, -24(%rsp) - movsd -24(%rsp), %xmm1 - movq 1136+_imldExpHATab(%rip), %rdx - movq %rdx, -8(%rsp) - addsd 1032+_imldExpHATab(%rip), %xmm1 - movsd %xmm1, -16(%rsp) - movsd -16(%rsp), %xmm2 - movl -16(%rsp), %r8d - movl %r8d, %ecx - andl $63, %r8d - subsd 1032+_imldExpHATab(%rip), %xmm2 - movsd %xmm2, -24(%rsp) - lea 1(%r8,%r8), %r9d - movsd -24(%rsp), %xmm3 - lea (%r8,%r8), %edi - mulsd 1104+_imldExpHATab(%rip), %xmm3 - movsd -24(%rsp), %xmm4 - subsd %xmm3, %xmm5 - mulsd 1112+_imldExpHATab(%rip), %xmm4 - movsd 1072+_imldExpHATab(%rip), %xmm2 - subsd %xmm4, %xmm5 - mulsd %xmm5, %xmm2 - shrl $6, %ecx - addsd 1064+_imldExpHATab(%rip), %xmm2 - comisd 1088+_imldExpHATab(%rip), %xmm6 - mulsd %xmm5, %xmm2 - movsd (%r10,%rdi,8), %xmm0 - lea 1023(%rcx), %edx - addsd 1056+_imldExpHATab(%rip), %xmm2 - mulsd %xmm5, %xmm2 - addsd 1048+_imldExpHATab(%rip), %xmm2 - mulsd %xmm5, %xmm2 - addsd 1040+_imldExpHATab(%rip), %xmm2 - mulsd %xmm5, %xmm2 - mulsd %xmm5, %xmm2 - addsd %xmm5, %xmm2 - addsd (%r10,%r9,8), %xmm2 - mulsd %xmm0, %xmm2 - jb .LBL_2_10 - - - andl $2047, %edx - addsd %xmm0, %xmm2 - cmpl $2046, %edx - ja .LBL_2_9 - - - movq 1136+_imldExpHATab(%rip), %rcx - shrq $48, %rcx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm0, %xmm2 - movsd %xmm2, (%rsi) - ret - -.LBL_2_9: - - decl %edx - andl $2047, %edx - movzwl -2(%rsp), %ecx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -2(%rsp) - movsd -8(%rsp), %xmm0 - mulsd %xmm0, %xmm2 - mulsd 1152+_imldExpHATab(%rip), %xmm2 - movsd %xmm2, (%rsi) - ret - -.LBL_2_10: - - addl $1083, %ecx - andl $2047, %ecx - movl %ecx, %eax - movzwl -2(%rsp), %edx - shll $4, %eax - andl $-32753, %edx - orl %eax, %edx - movw %dx, -2(%rsp) - movsd -8(%rsp), %xmm1 - mulsd %xmm1, %xmm2 - mulsd %xmm0, %xmm1 - movaps %xmm1, %xmm0 - addsd %xmm2, %xmm0 - cmpl $50, %ecx - ja .LBL_2_12 - - - mulsd 1160+_imldExpHATab(%rip), %xmm0 - movsd %xmm0, (%rsi) - jmp .LBL_2_13 - -.LBL_2_12: - - movsd %xmm0, -72(%rsp) - movsd -72(%rsp), %xmm0 - subsd %xmm0, %xmm1 - movsd %xmm1, -64(%rsp) - movsd -64(%rsp), %xmm1 - addsd %xmm2, %xmm1 - movsd %xmm1, -64(%rsp) - movsd -72(%rsp), %xmm2 - mulsd 1168+_imldExpHATab(%rip), %xmm2 - movsd %xmm2, -56(%rsp) - movsd -72(%rsp), %xmm4 - movsd -56(%rsp), %xmm3 - addsd %xmm3, %xmm4 - movsd %xmm4, -48(%rsp) - movsd -48(%rsp), %xmm6 - movsd -56(%rsp), %xmm5 - subsd %xmm5, %xmm6 - movsd %xmm6, -40(%rsp) - movsd -72(%rsp), %xmm8 - movsd -40(%rsp), %xmm7 - subsd %xmm7, %xmm8 - movsd %xmm8, -32(%rsp) - movsd -64(%rsp), %xmm10 - movsd -32(%rsp), %xmm9 - addsd %xmm9, %xmm10 - movsd %xmm10, -32(%rsp) - movsd -40(%rsp), %xmm11 - mulsd 1160+_imldExpHATab(%rip), %xmm11 - movsd %xmm11, -40(%rsp) - movsd -32(%rsp), %xmm12 - mulsd 1160+_imldExpHATab(%rip), %xmm12 - movsd %xmm12, -32(%rsp) - movsd -40(%rsp), %xmm14 - movsd -32(%rsp), %xmm13 - addsd %xmm13, %xmm14 - movsd %xmm14, (%rsi) - -.LBL_2_13: - - movl $4, %eax - ret - -.LBL_2_14: - - movsd 1120+_imldExpHATab(%rip), %xmm0 - movl $4, %eax - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_15: - - movsd 1128+_imldExpHATab(%rip), %xmm0 - movl $3, %eax - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_16: - - movsd 1144+_imldExpHATab(%rip), %xmm0 - addsd %xmm6, %xmm0 - movsd %xmm0, (%rsi) - - - ret - -.LBL_2_18: - - movq $0xbff0000000000000, %rax - movq %rax, (%rsi) - xorl %eax, %eax - ret - -.LBL_2_19: - - movb -1(%rsp), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_21 - -.LBL_2_20: - - mulsd %xmm6, %xmm6 - movsd %xmm6, (%rsi) - ret - -.LBL_2_21: - - testl $1048575, -4(%rsp) - jne .LBL_2_20 - - - cmpl $0, -8(%rsp) - jne .LBL_2_20 - - - movq 1136+_imldExpHATab(%rip), %rdx - movq %rdx, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dexpm1_cout_rare_internal,@function - .size __svml_dexpm1_cout_rare_internal,.-__svml_dexpm1_cout_rare_internal -..LN__svml_dexpm1_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dexpm1_data_internal_avx512: - .long 0 - .long 1072693248 - .long 1828292879 - .long 1072739672 - .long 1014845819 - .long 1072788152 - .long 1853186616 - .long 1072838778 - .long 171030293 - .long 1072891646 - .long 1276261410 - .long 1072946854 - .long 3577096743 - .long 1073004506 - .long 3712504873 - .long 1073064711 - .long 1719614413 - .long 1073127582 - .long 1944781191 - .long 1073193236 - .long 1110089947 - .long 1073261797 - .long 2191782032 - .long 1073333393 - .long 2572866477 - .long 1073408159 - .long 3716502172 - .long 1073486235 - .long 3707479175 - .long 1073567768 - .long 2728693978 - .long 1073652911 - .long 0 - .long 0 - .long 1568897901 - .long 1016568486 - .long 3936719688 - .long 3162512149 - .long 3819481236 - .long 1016499965 - .long 1303423926 - .long 1015238005 - .long 2804567149 - .long 1015390024 - .long 3145379760 - .long 1014403278 - .long 3793507337 - .long 1016095713 - .long 3210617384 - .long 3163796463 - .long 3108873501 - .long 3162190556 - .long 3253791412 - .long 1015920431 - .long 730975783 - .long 1014083580 - .long 2462790535 - .long 1015814775 - .long 816778419 - .long 1014197934 - .long 2789017511 - .long 1014276997 - .long 2413007344 - .long 3163551506 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 1287323204 - .long 1082531232 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 993624127 - .long 1014676638 - .long 0 - .long 3227516928 - .long 0 - .long 3227516928 - .long 0 - .long 3227516928 - .long 0 - .long 3227516928 - .long 0 - .long 3227516928 - .long 0 - .long 3227516928 - .long 0 - .long 3227516928 - .long 0 - .long 3227516928 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4106095538 - .long 1056571896 - .long 4106095538 - .long 1056571896 - .long 4106095538 - .long 1056571896 - .long 4106095538 - .long 1056571896 - .long 4106095538 - .long 1056571896 - .long 4106095538 - .long 1056571896 - .long 4106095538 - .long 1056571896 - .long 4106095538 - .long 1056571896 - .long 271596938 - .long 1059717636 - .long 271596938 - .long 1059717636 - .long 271596938 - .long 1059717636 - .long 271596938 - .long 1059717636 - .long 271596938 - .long 1059717636 - .long 271596938 - .long 1059717636 - .long 271596938 - .long 1059717636 - .long 271596938 - .long 1059717636 - .long 2383825455 - .long 1062650307 - .long 2383825455 - .long 1062650307 - .long 2383825455 - .long 1062650307 - .long 2383825455 - .long 1062650307 - .long 2383825455 - .long 1062650307 - .long 2383825455 - .long 1062650307 - .long 2383825455 - .long 1062650307 - .long 2383825455 - .long 1062650307 - .long 277238292 - .long 1065423121 - .long 277238292 - .long 1065423121 - .long 277238292 - .long 1065423121 - .long 277238292 - .long 1065423121 - .long 277238292 - .long 1065423121 - .long 277238292 - .long 1065423121 - .long 277238292 - .long 1065423121 - .long 277238292 - .long 1065423121 - .long 1420639494 - .long 1067799893 - .long 1420639494 - .long 1067799893 - .long 1420639494 - .long 1067799893 - .long 1420639494 - .long 1067799893 - .long 1420639494 - .long 1067799893 - .long 1420639494 - .long 1067799893 - .long 1420639494 - .long 1067799893 - .long 1420639494 - .long 1067799893 - .long 1431656022 - .long 1069897045 - .long 1431656022 - .long 1069897045 - .long 1431656022 - .long 1069897045 - .long 1431656022 - .long 1069897045 - .long 1431656022 - .long 1069897045 - .long 1431656022 - .long 1069897045 - .long 1431656022 - .long 1069897045 - .long 1431656022 - .long 1069897045 - .long 162 - .long 1071644672 - .long 162 - .long 1071644672 - .long 162 - .long 1071644672 - .long 162 - .long 1071644672 - .long 162 - .long 1071644672 - .long 162 - .long 1071644672 - .long 162 - .long 1071644672 - .long 162 - .long 1071644672 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .long 0 - .long 3220176896 - .type __svml_dexpm1_data_internal_avx512,@object - .size __svml_dexpm1_data_internal_avx512,1344 - .align 32 -_imldExpHATab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 1048019041 - .long 1072704666 - .long 2631457885 - .long 3161546771 - .long 3541402996 - .long 1072716208 - .long 896005651 - .long 1015861842 - .long 410360776 - .long 1072727877 - .long 1642514529 - .long 1012987726 - .long 1828292879 - .long 1072739672 - .long 1568897901 - .long 1016568486 - .long 852742562 - .long 1072751596 - .long 1882168529 - .long 1010744893 - .long 3490863953 - .long 1072763649 - .long 707771662 - .long 3163903570 - .long 2930322912 - .long 1072775834 - .long 3117806614 - .long 3163670819 - .long 1014845819 - .long 1072788152 - .long 3936719688 - .long 3162512149 - .long 3949972341 - .long 1072800603 - .long 1058231231 - .long 1015777676 - .long 828946858 - .long 1072813191 - .long 1044000608 - .long 1016786167 - .long 2288159958 - .long 1072825915 - .long 1151779725 - .long 1015705409 - .long 1853186616 - .long 1072838778 - .long 3819481236 - .long 1016499965 - .long 1709341917 - .long 1072851781 - .long 2552227826 - .long 1015039787 - .long 4112506593 - .long 1072864925 - .long 1829350193 - .long 1015216097 - .long 2799960843 - .long 1072878213 - .long 1913391796 - .long 1015756674 - .long 171030293 - .long 1072891646 - .long 1303423926 - .long 1015238005 - .long 2992903935 - .long 1072905224 - .long 1574172746 - .long 1016061241 - .long 926591435 - .long 1072918951 - .long 3427487848 - .long 3163704045 - .long 887463927 - .long 1072932827 - .long 1049900754 - .long 3161575912 - .long 1276261410 - .long 1072946854 - .long 2804567149 - .long 1015390024 - .long 569847338 - .long 1072961034 - .long 1209502043 - .long 3159926671 - .long 1617004845 - .long 1072975368 - .long 1623370769 - .long 1011049453 - .long 3049340112 - .long 1072989858 - .long 3667985273 - .long 1013894369 - .long 3577096743 - .long 1073004506 - .long 3145379760 - .long 1014403278 - .long 1990012071 - .long 1073019314 - .long 7447438 - .long 3163526196 - .long 1453150082 - .long 1073034283 - .long 3171891295 - .long 3162037958 - .long 917841882 - .long 1073049415 - .long 419288974 - .long 1016280325 - .long 3712504873 - .long 1073064711 - .long 3793507337 - .long 1016095713 - .long 363667784 - .long 1073080175 - .long 728023093 - .long 1016345318 - .long 2956612997 - .long 1073095806 - .long 1005538728 - .long 3163304901 - .long 2186617381 - .long 1073111608 - .long 2018924632 - .long 3163803357 - .long 1719614413 - .long 1073127582 - .long 3210617384 - .long 3163796463 - .long 1013258799 - .long 1073143730 - .long 3094194670 - .long 3160631279 - .long 3907805044 - .long 1073160053 - .long 2119843535 - .long 3161988964 - .long 1447192521 - .long 1073176555 - .long 508946058 - .long 3162904882 - .long 1944781191 - .long 1073193236 - .long 3108873501 - .long 3162190556 - .long 919555682 - .long 1073210099 - .long 2882956373 - .long 1013312481 - .long 2571947539 - .long 1073227145 - .long 4047189812 - .long 3163777462 - .long 2604962541 - .long 1073244377 - .long 3631372142 - .long 3163870288 - .long 1110089947 - .long 1073261797 - .long 3253791412 - .long 1015920431 - .long 2568320822 - .long 1073279406 - .long 1509121860 - .long 1014756995 - .long 2966275557 - .long 1073297207 - .long 2339118633 - .long 3160254904 - .long 2682146384 - .long 1073315202 - .long 586480042 - .long 3163702083 - .long 2191782032 - .long 1073333393 - .long 730975783 - .long 1014083580 - .long 2069751141 - .long 1073351782 - .long 576856675 - .long 3163014404 - .long 2990417245 - .long 1073370371 - .long 3552361237 - .long 3163667409 - .long 1434058175 - .long 1073389163 - .long 1853053619 - .long 1015310724 - .long 2572866477 - .long 1073408159 - .long 2462790535 - .long 1015814775 - .long 3092190715 - .long 1073427362 - .long 1457303226 - .long 3159737305 - .long 4076559943 - .long 1073446774 - .long 950899508 - .long 3160987380 - .long 2420883922 - .long 1073466398 - .long 174054861 - .long 1014300631 - .long 3716502172 - .long 1073486235 - .long 816778419 - .long 1014197934 - .long 777507147 - .long 1073506289 - .long 3507050924 - .long 1015341199 - .long 3706687593 - .long 1073526560 - .long 1821514088 - .long 1013410604 - .long 1242007932 - .long 1073547053 - .long 1073740399 - .long 3163532637 - .long 3707479175 - .long 1073567768 - .long 2789017511 - .long 1014276997 - .long 64696965 - .long 1073588710 - .long 3586233004 - .long 1015962192 - .long 863738719 - .long 1073609879 - .long 129252895 - .long 3162690849 - .long 3884662774 - .long 1073631278 - .long 1614448851 - .long 1014281732 - .long 2728693978 - .long 1073652911 - .long 2413007344 - .long 3163551506 - .long 3999357479 - .long 1073674779 - .long 1101668360 - .long 1015989180 - .long 1533953344 - .long 1073696886 - .long 835814894 - .long 1015702697 - .long 2174652632 - .long 1073719233 - .long 1301400989 - .long 1014466875 - .long 1697350398 - .long 1079448903 - .long 0 - .long 1127743488 - .long 0 - .long 1071644672 - .long 1431652600 - .long 1069897045 - .long 1431670732 - .long 1067799893 - .long 984555731 - .long 1065423122 - .long 472530941 - .long 1062650218 - .long 4277811695 - .long 1082535490 - .long 3715808466 - .long 3230016299 - .long 3576508497 - .long 3230091536 - .long 4277796864 - .long 1065758274 - .long 3164486458 - .long 1025308570 - .long 1 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 1073741824 - .long 0 - .long 1009778688 - .long 0 - .long 1106771968 - .type _imldExpHATab,@object - .size _imldExpHATab,1176 - .align 8 -.L_2il0floatpacket.77: - .long 0x00000000,0xbff00000 - .type .L_2il0floatpacket.77,@object - .size .L_2il0floatpacket.77,8 diff --git a/numpy/core/src/umath/svml/svml_z0_expm1_s_la.s b/numpy/core/src/umath/svml/svml_z0_expm1_s_la.s deleted file mode 100644 index 3ae3336e8abb..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_expm1_s_la.s +++ /dev/null @@ -1,593 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * After computing exp(x) in high-low parts, an accurate computation is performed to obtain exp(x)-1 - * * Typical exp() implementation, except that: - * * - tables are small (32 elements), allowing for fast gathers - * * - all arguments processed in the main path - * * - final VSCALEF assists branch-free design (correct overflow/underflow and special case responses) - * * - a VAND is used to ensure the reduced argument |R|<2, even for large inputs - * * - RZ mode used to avoid oveflow to +/-Inf for x*log2(e); helps with special case handling - * * - * - */ - - - .text -.L_2__routine_start___svml_expm1f16_z0_0: - - .align 16,0x90 - .globl __svml_expm1f16 - -__svml_expm1f16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 256+__svml_sexpm1_data_internal_avx512(%rip), %zmm5 - vmovups 320+__svml_sexpm1_data_internal_avx512(%rip), %zmm3 - vmovups 512+__svml_sexpm1_data_internal_avx512(%rip), %zmm8 - vmovups 576+__svml_sexpm1_data_internal_avx512(%rip), %zmm4 - vmovups __svml_sexpm1_data_internal_avx512(%rip), %zmm6 - -/* polynomial */ - vmovups 704+__svml_sexpm1_data_internal_avx512(%rip), %zmm9 - vmovups 768+__svml_sexpm1_data_internal_avx512(%rip), %zmm12 - vmovups 128+__svml_sexpm1_data_internal_avx512(%rip), %zmm11 - vmovups 384+__svml_sexpm1_data_internal_avx512(%rip), %zmm2 - -/* Th - 1 */ - vmovups 832+__svml_sexpm1_data_internal_avx512(%rip), %zmm14 - vmovaps %zmm0, %zmm1 - -/* 2^(52-5)*1.5 + x * log2(e) */ - vfmadd213ps {rn-sae}, %zmm3, %zmm1, %zmm5 - vcmpps $29, {sae}, %zmm2, %zmm1, %k0 - -/* Z0 ~ x*log2(e), rounded to 5 fractional bits */ - vsubps {rn-sae}, %zmm3, %zmm5, %zmm7 - vpermt2ps 64+__svml_sexpm1_data_internal_avx512(%rip), %zmm5, %zmm6 - vpermt2ps 192+__svml_sexpm1_data_internal_avx512(%rip), %zmm5, %zmm11 - vandps 448+__svml_sexpm1_data_internal_avx512(%rip), %zmm1, %zmm0 - -/* R = x - Z0*log(2) */ - vfnmadd213ps {rn-sae}, %zmm1, %zmm7, %zmm8 - -/* scale Th */ - vscalefps {rn-sae}, %zmm7, %zmm6, %zmm2 - vfnmadd231ps {rn-sae}, %zmm7, %zmm4, %zmm8 - kmovw %k0, %edx - -/* ensure |R|<2 even for special cases */ - vandps 640+__svml_sexpm1_data_internal_avx512(%rip), %zmm8, %zmm13 - vsubps {rn-sae}, %zmm14, %zmm2, %zmm8 - vmulps {rn-sae}, %zmm13, %zmm13, %zmm10 - vfmadd231ps {rn-sae}, %zmm13, %zmm9, %zmm12 - -/* Tlr + R+ R2*Poly */ - vfmadd213ps {rn-sae}, %zmm11, %zmm10, %zmm12 - vaddps {rn-sae}, %zmm13, %zmm12, %zmm15 - -/* (Th-1)+Th*(Tlr + R+ R*Poly) */ - vfmadd213ps {rn-sae}, %zmm8, %zmm15, %zmm2 - vorps %zmm0, %zmm2, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm1, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_sexpm1_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_expm1f16,@function - .size __svml_expm1f16,.-__svml_expm1f16 -..LN__svml_expm1f16.0: - -.L_2__routine_start___svml_sexpm1_cout_rare_internal_1: - - .align 16,0x90 - -__svml_sexpm1_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movss (%rdi), %xmm8 - pxor %xmm0, %xmm0 - comiss %xmm8, %xmm0 - ja .LBL_2_8 - - - movzwl 2(%rdi), %edx - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_9 - - - movss .L_2il0floatpacket.45(%rip), %xmm0 - comiss %xmm8, %xmm0 - jb .LBL_2_6 - - - comiss .L_2il0floatpacket.46(%rip), %xmm8 - jb .LBL_2_7 - - - movss .L_2il0floatpacket.48(%rip), %xmm0 - mulss %xmm8, %xmm0 - movss %xmm0, -24(%rsp) - movss -24(%rsp), %xmm1 - movss .L_2il0floatpacket.49(%rip), %xmm2 - movss .L_2il0floatpacket.56(%rip), %xmm6 - addss %xmm2, %xmm1 - movss %xmm1, -20(%rsp) - movss -20(%rsp), %xmm3 - movss .L_2il0floatpacket.52(%rip), %xmm7 - subss %xmm2, %xmm3 - movss %xmm3, -24(%rsp) - movss -24(%rsp), %xmm4 - mulss .L_2il0floatpacket.50(%rip), %xmm4 - movss -24(%rsp), %xmm5 - subss %xmm4, %xmm8 - mulss .L_2il0floatpacket.51(%rip), %xmm5 - movl -20(%rsp), %edx - subss %xmm5, %xmm8 - mulss %xmm8, %xmm6 - shll $23, %edx - addss .L_2il0floatpacket.55(%rip), %xmm6 - mulss %xmm8, %xmm6 - addss .L_2il0floatpacket.54(%rip), %xmm6 - mulss %xmm8, %xmm6 - addss .L_2il0floatpacket.53(%rip), %xmm6 - mulss %xmm8, %xmm6 - addss %xmm7, %xmm6 - mulss %xmm8, %xmm6 - addss %xmm6, %xmm7 - movss %xmm7, -16(%rsp) - addl -16(%rsp), %edx - movl %edx, (%rsi) - ret - -.LBL_2_6: - - movss .L_2il0floatpacket.47(%rip), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, -16(%rsp) - movl -16(%rsp), %eax - movl %eax, (%rsi) - movl $3, %eax - -.LBL_2_7: - - ret - -.LBL_2_8: - - movl $-1082130432, (%rsi) - ret - -.LBL_2_9: - - movb 3(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_11 - -.LBL_2_10: - - mulss %xmm8, %xmm8 - movss %xmm8, (%rsi) - ret - -.LBL_2_11: - - testl $8388607, (%rdi) - jne .LBL_2_10 - - - movss %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_sexpm1_cout_rare_internal,@function - .size __svml_sexpm1_cout_rare_internal,.-__svml_sexpm1_cout_rare_internal -..LN__svml_sexpm1_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_sexpm1_data_internal_avx512: - .long 1065353216 - .long 1065536903 - .long 1065724611 - .long 1065916431 - .long 1066112450 - .long 1066312762 - .long 1066517459 - .long 1066726640 - .long 1066940400 - .long 1067158842 - .long 1067382066 - .long 1067610179 - .long 1067843287 - .long 1068081499 - .long 1068324927 - .long 1068573686 - .long 1068827891 - .long 1069087663 - .long 1069353124 - .long 1069624397 - .long 1069901610 - .long 1070184894 - .long 1070474380 - .long 1070770206 - .long 1071072509 - .long 1071381432 - .long 1071697119 - .long 1072019719 - .long 1072349383 - .long 1072686266 - .long 1073030525 - .long 1073382323 - .long 0 - .long 3007986186 - .long 860277610 - .long 3010384254 - .long 2991457809 - .long 3008462297 - .long 860562562 - .long 3004532446 - .long 856238081 - .long 3001480295 - .long 857441778 - .long 815380209 - .long 3003456168 - .long 3001196762 - .long 2986372182 - .long 3006683458 - .long 848495278 - .long 851809756 - .long 3003311522 - .long 2995654817 - .long 833868005 - .long 3004843819 - .long 835836658 - .long 3003498340 - .long 2994528642 - .long 3002229827 - .long 2981408986 - .long 2983889551 - .long 2983366846 - .long 3000350873 - .long 833659207 - .long 2987748092 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 1118652779 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 2969756424 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1042983923 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1056964854 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .type __svml_sexpm1_data_internal_avx512,@object - .size __svml_sexpm1_data_internal_avx512,896 - .align 4 -.L_2il0floatpacket.44: - .long 0xbf800000 - .type .L_2il0floatpacket.44,@object - .size .L_2il0floatpacket.44,4 - .align 4 -.L_2il0floatpacket.45: - .long 0x42b17217 - .type .L_2il0floatpacket.45,@object - .size .L_2il0floatpacket.45,4 - .align 4 -.L_2il0floatpacket.46: - .long 0xc2cff1b4 - .type .L_2il0floatpacket.46,@object - .size .L_2il0floatpacket.46,4 - .align 4 -.L_2il0floatpacket.47: - .long 0x7f7fffff - .type .L_2il0floatpacket.47,@object - .size .L_2il0floatpacket.47,4 - .align 4 -.L_2il0floatpacket.48: - .long 0x3fb8aa3b - .type .L_2il0floatpacket.48,@object - .size .L_2il0floatpacket.48,4 - .align 4 -.L_2il0floatpacket.49: - .long 0x4b400000 - .type .L_2il0floatpacket.49,@object - .size .L_2il0floatpacket.49,4 - .align 4 -.L_2il0floatpacket.50: - .long 0x3f317200 - .type .L_2il0floatpacket.50,@object - .size .L_2il0floatpacket.50,4 - .align 4 -.L_2il0floatpacket.51: - .long 0x35bfbe8e - .type .L_2il0floatpacket.51,@object - .size .L_2il0floatpacket.51,4 - .align 4 -.L_2il0floatpacket.52: - .long 0x3f800001 - .type .L_2il0floatpacket.52,@object - .size .L_2il0floatpacket.52,4 - .align 4 -.L_2il0floatpacket.53: - .long 0x3efffe85 - .type .L_2il0floatpacket.53,@object - .size .L_2il0floatpacket.53,4 - .align 4 -.L_2il0floatpacket.54: - .long 0x3e2aa9c6 - .type .L_2il0floatpacket.54,@object - .size .L_2il0floatpacket.54,4 - .align 4 -.L_2il0floatpacket.55: - .long 0x3d2bb1b6 - .type .L_2il0floatpacket.55,@object - .size .L_2il0floatpacket.55,4 - .align 4 -.L_2il0floatpacket.56: - .long 0x3c0950ef - .type .L_2il0floatpacket.56,@object - .size .L_2il0floatpacket.56,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log10_d_la.s b/numpy/core/src/umath/svml/svml_z0_log10_d_la.s deleted file mode 100644 index 58313e4cb348..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log10_d_la.s +++ /dev/null @@ -1,1124 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * log10(x) = VGETEXP(x)*log10(2) + log10(VGETMANT(x)) - * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) - * * mx = VGETMANT(x) is in [1,2) for all x>=0 - * * log10(mx) = -log10(RCP(mx)) + log10(1 +(mx*RCP(mx)-1)) - * * RCP(mx) is rounded to 4 fractional bits, - * * and the table lookup for log(RCP(mx)) is based on a small permute instruction - * * - * - */ - - - .text -.L_2__routine_start___svml_log108_z0_0: - - .align 16,0x90 - .globl __svml_log108 - -__svml_log108: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovaps %zmm0, %zmm7 - -/* GetMant(x), normalized to [1,2) for x>=0, NaN for x<0 */ - vgetmantpd $8, {sae}, %zmm7, %zmm6 - vmovups 128+__svml_dlog10_data_internal_avx512(%rip), %zmm3 - vmovups 512+__svml_dlog10_data_internal_avx512(%rip), %zmm12 - vmovups 640+__svml_dlog10_data_internal_avx512(%rip), %zmm13 - -/* Start polynomial evaluation */ - vmovups 256+__svml_dlog10_data_internal_avx512(%rip), %zmm10 - vmovups 320+__svml_dlog10_data_internal_avx512(%rip), %zmm1 - vmovups 384+__svml_dlog10_data_internal_avx512(%rip), %zmm11 - vmovups 448+__svml_dlog10_data_internal_avx512(%rip), %zmm14 - -/* Prepare exponent correction: DblRcp<0.75? */ - vmovups 192+__svml_dlog10_data_internal_avx512(%rip), %zmm2 - -/* Table lookup */ - vmovups __svml_dlog10_data_internal_avx512(%rip), %zmm5 - -/* GetExp(x) */ - vgetexppd {sae}, %zmm7, %zmm0 - -/* DblRcp ~ 1/Mantissa */ - vrcp14pd %zmm6, %zmm8 - -/* x<=0? */ - vfpclasspd $94, %zmm7, %k0 - -/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ - vrndscalepd $88, {sae}, %zmm8, %zmm4 - vmovups 576+__svml_dlog10_data_internal_avx512(%rip), %zmm8 - kmovw %k0, %edx - -/* Reduced argument: R = DblRcp*Mantissa - 1 */ - vfmsub213pd {rn-sae}, %zmm3, %zmm4, %zmm6 - vcmppd $17, {sae}, %zmm2, %zmm4, %k1 - vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm8 - vmovups 704+__svml_dlog10_data_internal_avx512(%rip), %zmm12 - vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm1 - vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 - vmovups 768+__svml_dlog10_data_internal_avx512(%rip), %zmm2 - -/* R^2 */ - vmulpd {rn-sae}, %zmm6, %zmm6, %zmm15 - vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12 - -/* Prepare table index */ - vpsrlq $48, %zmm4, %zmm9 - -/* add 1 to Expon if DblRcp<0.75 */ - vaddpd {rn-sae}, %zmm3, %zmm0, %zmm0{%k1} - vmulpd {rn-sae}, %zmm15, %zmm15, %zmm13 - vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm1 - vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm8 - vpermt2pd 64+__svml_dlog10_data_internal_avx512(%rip), %zmm9, %zmm5 - -/* polynomial */ - vfmadd213pd {rn-sae}, %zmm8, %zmm13, %zmm1 - vfmadd213pd {rn-sae}, %zmm2, %zmm6, %zmm1 - vfmadd213pd {rn-sae}, %zmm5, %zmm1, %zmm6 - vmovups 832+__svml_dlog10_data_internal_avx512(%rip), %zmm1 - vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm7, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dlog10_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_log108,@function - .size __svml_log108,.-__svml_log108 -..LN__svml_log108.0: - -.L_2__routine_start___svml_dlog10_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dlog10_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 6(%rdi), %edx - andl $32752, %edx - cmpl $32752, %edx - je .LBL_2_12 - - - movsd (%rdi), %xmm2 - xorl %ecx, %ecx - movsd %xmm2, -8(%rsp) - movzwl -2(%rsp), %edx - testl $32752, %edx - jne .LBL_2_4 - - - movsd 1600+__dlog10_la_CoutTab(%rip), %xmm0 - movl $-60, %ecx - mulsd %xmm0, %xmm2 - movsd %xmm2, -8(%rsp) - -.LBL_2_4: - - movsd 1608+__dlog10_la_CoutTab(%rip), %xmm0 - comisd %xmm0, %xmm2 - jbe .LBL_2_8 - - - movaps %xmm2, %xmm1 - subsd .L_2il0floatpacket.89(%rip), %xmm1 - movsd %xmm1, -16(%rsp) - andb $127, -9(%rsp) - movsd -16(%rsp), %xmm0 - comisd 1592+__dlog10_la_CoutTab(%rip), %xmm0 - jbe .LBL_2_7 - - - movsd %xmm2, -16(%rsp) - pxor %xmm7, %xmm7 - movzwl -10(%rsp), %edi - lea __dlog10_la_CoutTab(%rip), %r10 - andl $-32753, %edi - addl $16368, %edi - movw %di, -10(%rsp) - movsd -16(%rsp), %xmm3 - movaps %xmm3, %xmm1 - movaps %xmm3, %xmm2 - movsd 1688+__dlog10_la_CoutTab(%rip), %xmm5 - movzwl -2(%rsp), %edx - andl $32752, %edx - addsd 1576+__dlog10_la_CoutTab(%rip), %xmm1 - addsd 1584+__dlog10_la_CoutTab(%rip), %xmm2 - movsd %xmm1, -24(%rsp) - movl -24(%rsp), %r8d - movsd %xmm2, -24(%rsp) - andl $127, %r8d - movsd -24(%rsp), %xmm8 - movsd 1560+__dlog10_la_CoutTab(%rip), %xmm9 - movsd 1568+__dlog10_la_CoutTab(%rip), %xmm0 - shrl $4, %edx - subsd 1584+__dlog10_la_CoutTab(%rip), %xmm8 - lea (%r8,%r8,2), %r9d - movsd (%r10,%r9,8), %xmm6 - lea -1023(%rcx,%rdx), %ecx - cvtsi2sd %ecx, %xmm7 - subsd %xmm8, %xmm3 - mulsd %xmm6, %xmm8 - mulsd %xmm7, %xmm9 - subsd 1624+__dlog10_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm6 - mulsd %xmm0, %xmm7 - addsd 8(%r10,%r9,8), %xmm9 - addsd 16(%r10,%r9,8), %xmm7 - addsd %xmm8, %xmm9 - movaps %xmm8, %xmm4 - addsd %xmm6, %xmm4 - mulsd %xmm4, %xmm5 - addsd 1680+__dlog10_la_CoutTab(%rip), %xmm5 - mulsd %xmm4, %xmm5 - addsd 1672+__dlog10_la_CoutTab(%rip), %xmm5 - mulsd %xmm4, %xmm5 - addsd 1664+__dlog10_la_CoutTab(%rip), %xmm5 - mulsd %xmm4, %xmm5 - addsd 1656+__dlog10_la_CoutTab(%rip), %xmm5 - mulsd %xmm4, %xmm5 - addsd 1648+__dlog10_la_CoutTab(%rip), %xmm5 - mulsd %xmm4, %xmm5 - addsd 1640+__dlog10_la_CoutTab(%rip), %xmm5 - mulsd %xmm4, %xmm5 - addsd 1632+__dlog10_la_CoutTab(%rip), %xmm5 - mulsd %xmm5, %xmm8 - mulsd %xmm6, %xmm5 - addsd %xmm5, %xmm7 - addsd %xmm6, %xmm7 - addsd %xmm7, %xmm8 - addsd %xmm8, %xmm9 - movsd %xmm9, (%rsi) - ret - -.LBL_2_7: - - movsd 1624+__dlog10_la_CoutTab(%rip), %xmm0 - mulsd %xmm0, %xmm1 - movsd 1688+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1680+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1672+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1664+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1656+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1648+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1640+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1632+__dlog10_la_CoutTab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd %xmm1, %xmm2 - movsd %xmm2, (%rsi) - ret - -.LBL_2_8: - - ucomisd %xmm0, %xmm2 - jp .LBL_2_9 - je .LBL_2_11 - -.LBL_2_9: - - divsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - movl $1, %eax - - - ret - -.LBL_2_11: - - movsd 1616+__dlog10_la_CoutTab(%rip), %xmm1 - movl $2, %eax - xorps .L_2il0floatpacket.88(%rip), %xmm1 - divsd %xmm0, %xmm1 - movsd %xmm1, (%rsi) - ret - -.LBL_2_12: - - movb 7(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_14 - -.LBL_2_13: - - movsd (%rdi), %xmm0 - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_14: - - testl $1048575, 4(%rdi) - jne .LBL_2_13 - - - cmpl $0, (%rdi) - jne .LBL_2_13 - - - movsd 1608+__dlog10_la_CoutTab(%rip), %xmm0 - movl $1, %eax - divsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dlog10_cout_rare_internal,@function - .size __svml_dlog10_cout_rare_internal,.-__svml_dlog10_cout_rare_internal -..LN__svml_dlog10_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dlog10_data_internal_avx512: - .long 0 - .long 0 - .long 721479184 - .long 3214603769 - .long 3590975466 - .long 3215601833 - .long 1438937368 - .long 3216186160 - .long 948324365 - .long 3216559896 - .long 2869828094 - .long 3216915393 - .long 516509563 - .long 3217142759 - .long 2145647618 - .long 3217304702 - .long 733771779 - .long 1069546492 - .long 3513866211 - .long 1069249052 - .long 3459676924 - .long 1068963280 - .long 1085767695 - .long 1068688295 - .long 3613830132 - .long 1068347678 - .long 1803457173 - .long 1067836310 - .long 3436756955 - .long 1067234191 - .long 930630721 - .long 1066155272 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 675808112 - .long 1068024536 - .long 675808112 - .long 1068024536 - .long 675808112 - .long 1068024536 - .long 675808112 - .long 1068024536 - .long 675808112 - .long 1068024536 - .long 675808112 - .long 1068024536 - .long 675808112 - .long 1068024536 - .long 675808112 - .long 1068024536 - .long 2516752404 - .long 3215710221 - .long 2516752404 - .long 3215710221 - .long 2516752404 - .long 3215710221 - .long 2516752404 - .long 3215710221 - .long 2516752404 - .long 3215710221 - .long 2516752404 - .long 3215710221 - .long 2516752404 - .long 3215710221 - .long 2516752404 - .long 3215710221 - .long 4085995682 - .long 1068483574 - .long 4085995682 - .long 1068483574 - .long 4085995682 - .long 1068483574 - .long 4085995682 - .long 1068483574 - .long 4085995682 - .long 1068483574 - .long 4085995682 - .long 1068483574 - .long 4085995682 - .long 1068483574 - .long 4085995682 - .long 1068483574 - .long 879025280 - .long 3216148390 - .long 879025280 - .long 3216148390 - .long 879025280 - .long 3216148390 - .long 879025280 - .long 3216148390 - .long 879025280 - .long 3216148390 - .long 879025280 - .long 3216148390 - .long 879025280 - .long 3216148390 - .long 879025280 - .long 3216148390 - .long 2004821977 - .long 1068907618 - .long 2004821977 - .long 1068907618 - .long 2004821977 - .long 1068907618 - .long 2004821977 - .long 1068907618 - .long 2004821977 - .long 1068907618 - .long 2004821977 - .long 1068907618 - .long 2004821977 - .long 1068907618 - .long 2004821977 - .long 1068907618 - .long 356255395 - .long 3216755579 - .long 356255395 - .long 3216755579 - .long 356255395 - .long 3216755579 - .long 356255395 - .long 3216755579 - .long 356255395 - .long 3216755579 - .long 356255395 - .long 3216755579 - .long 356255395 - .long 3216755579 - .long 356255395 - .long 3216755579 - .long 1668235916 - .long 1069713319 - .long 1668235916 - .long 1069713319 - .long 1668235916 - .long 1069713319 - .long 1668235916 - .long 1069713319 - .long 1668235916 - .long 1069713319 - .long 1668235916 - .long 1069713319 - .long 1668235916 - .long 1069713319 - .long 1668235916 - .long 1069713319 - .long 354870491 - .long 3217804155 - .long 354870491 - .long 3217804155 - .long 354870491 - .long 3217804155 - .long 354870491 - .long 3217804155 - .long 354870491 - .long 3217804155 - .long 354870491 - .long 3217804155 - .long 354870491 - .long 3217804155 - .long 354870491 - .long 3217804155 - .long 354870542 - .long 1071369083 - .long 354870542 - .long 1071369083 - .long 354870542 - .long 1071369083 - .long 354870542 - .long 1071369083 - .long 354870542 - .long 1071369083 - .long 354870542 - .long 1071369083 - .long 354870542 - .long 1071369083 - .long 354870542 - .long 1071369083 - .long 1352628735 - .long 1070810131 - .long 1352628735 - .long 1070810131 - .long 1352628735 - .long 1070810131 - .long 1352628735 - .long 1070810131 - .long 1352628735 - .long 1070810131 - .long 1352628735 - .long 1070810131 - .long 1352628735 - .long 1070810131 - .long 1352628735 - .long 1070810131 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .type __svml_dlog10_data_internal_avx512,@object - .size __svml_dlog10_data_internal_avx512,1152 - .align 32 -__dlog10_la_CoutTab: - .long 0 - .long 1071366144 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1071337728 - .long 184549376 - .long 1065092008 - .long 2099961998 - .long 3178897324 - .long 0 - .long 1071309312 - .long 931135488 - .long 1066155272 - .long 2365712557 - .long 3178155773 - .long 0 - .long 1071280896 - .long 603979776 - .long 1066752445 - .long 709057215 - .long 1031474920 - .long 0 - .long 1071252480 - .long 3437232128 - .long 1067234191 - .long 1515412199 - .long 3179085970 - .long 0 - .long 1071238272 - .long 1105723392 - .long 1067464226 - .long 153915826 - .long 3178000698 - .long 0 - .long 1071209856 - .long 3328442368 - .long 1067711223 - .long 3899912278 - .long 3177135692 - .long 0 - .long 1071181440 - .long 341835776 - .long 1067962480 - .long 2509208190 - .long 3176531222 - .long 0 - .long 1071167232 - .long 2884632576 - .long 1068089751 - .long 1030636902 - .long 1025224143 - .long 0 - .long 1071138816 - .long 3613917184 - .long 1068347678 - .long 3527163461 - .long 3177529532 - .long 0 - .long 1071124608 - .long 3549954048 - .long 1068478374 - .long 3498894081 - .long 3173000425 - .long 0 - .long 1071096192 - .long 1623785472 - .long 1068621140 - .long 2889825554 - .long 3176375375 - .long 0 - .long 1071081984 - .long 1085800448 - .long 1068688295 - .long 4015256301 - .long 3177184346 - .long 0 - .long 1071053568 - .long 3652976640 - .long 1068824490 - .long 3600693529 - .long 3175753877 - .long 0 - .long 1071039360 - .long 1592393728 - .long 1068893555 - .long 231073830 - .long 3177087939 - .long 0 - .long 1071025152 - .long 3459645440 - .long 1068963280 - .long 1740576090 - .long 1029619435 - .long 0 - .long 1070996736 - .long 3774611456 - .long 1069104765 - .long 3858552785 - .long 1028603845 - .long 0 - .long 1070982528 - .long 845086720 - .long 1069176552 - .long 3138879731 - .long 1029120443 - .long 0 - .long 1070968320 - .long 3513843712 - .long 1069249052 - .long 2107125367 - .long 1029044389 - .long 0 - .long 1070954112 - .long 434503680 - .long 1069322282 - .long 3827602229 - .long 1028932700 - .long 0 - .long 1070939904 - .long 3613851648 - .long 1069396254 - .long 1223751955 - .long 3176465139 - .long 0 - .long 1070911488 - .long 733741056 - .long 1069546492 - .long 1625232067 - .long 1029570781 - .long 0 - .long 1070897280 - .long 1511620608 - .long 1069585154 - .long 3044605139 - .long 1028090775 - .long 0 - .long 1070883072 - .long 1337196544 - .long 1069623706 - .long 2602639001 - .long 3175938675 - .long 0 - .long 1070868864 - .long 2572533760 - .long 1069662670 - .long 3067107955 - .long 1022933137 - .long 0 - .long 1070854656 - .long 559611904 - .long 1069702056 - .long 764145786 - .long 3174041535 - .long 0 - .long 1070840448 - .long 485818368 - .long 1069741872 - .long 2037567072 - .long 3175580956 - .long 0 - .long 1070826240 - .long 259604480 - .long 1069782128 - .long 4012068429 - .long 1027865895 - .long 0 - .long 1070812032 - .long 3454042112 - .long 1069822833 - .long 2867680007 - .long 3174202478 - .long 0 - .long 1070797824 - .long 2188754944 - .long 1069863999 - .long 2538655286 - .long 3175840981 - .long 0 - .long 1070783616 - .long 2965241856 - .long 1069905635 - .long 1338936972 - .long 3176093950 - .long 0 - .long 1070769408 - .long 966279168 - .long 1069947753 - .long 1774547674 - .long 3175051484 - .long 0 - .long 1070755200 - .long 1604042752 - .long 1069990363 - .long 2557470738 - .long 3174667448 - .long 0 - .long 1070740992 - .long 3417833472 - .long 1070033477 - .long 2268255117 - .long 3175678264 - .long 0 - .long 1070740992 - .long 3417833472 - .long 1070033477 - .long 2268255117 - .long 3175678264 - .long 0 - .long 1070726784 - .long 2451292160 - .long 1070077108 - .long 3757728941 - .long 1027943275 - .long 0 - .long 1070712576 - .long 929644544 - .long 1070121268 - .long 899045708 - .long 1027944939 - .long 0 - .long 1070698368 - .long 3057254400 - .long 1070165969 - .long 3880649376 - .long 3172972504 - .long 0 - .long 1070684160 - .long 2231091200 - .long 1070211226 - .long 521319256 - .long 1027600177 - .long 0 - .long 1070684160 - .long 2231091200 - .long 1070211226 - .long 521319256 - .long 1027600177 - .long 0 - .long 1070669952 - .long 2620162048 - .long 1070257052 - .long 1385613369 - .long 3176104036 - .long 0 - .long 1070655744 - .long 2096726016 - .long 1070303462 - .long 3138305819 - .long 3173646777 - .long 0 - .long 1070641536 - .long 944717824 - .long 1070350471 - .long 1065120110 - .long 1027539054 - .long 0 - .long 1070641536 - .long 944717824 - .long 1070350471 - .long 1065120110 - .long 1027539054 - .long 0 - .long 1070627328 - .long 1985789952 - .long 1070398094 - .long 3635943864 - .long 3173136490 - .long 0 - .long 1070613120 - .long 2123825152 - .long 1070446348 - .long 1125219725 - .long 3175615738 - .long 0 - .long 1070598912 - .long 1078378496 - .long 1070495250 - .long 603852726 - .long 3174570526 - .long 0 - .long 1070598912 - .long 1078378496 - .long 1070495250 - .long 603852726 - .long 3174570526 - .long 0 - .long 1070573312 - .long 1537933312 - .long 1070544817 - .long 998069198 - .long 1026662908 - .long 0 - .long 1070544896 - .long 733773824 - .long 1070595068 - .long 4061058002 - .long 3174036009 - .long 0 - .long 1070544896 - .long 733773824 - .long 1070595068 - .long 4061058002 - .long 3174036009 - .long 0 - .long 1070516480 - .long 3897544704 - .long 1070621058 - .long 951856294 - .long 1026731877 - .long 0 - .long 1070516480 - .long 3897544704 - .long 1070621058 - .long 951856294 - .long 1026731877 - .long 0 - .long 1070488064 - .long 493535232 - .long 1070646897 - .long 3852369308 - .long 3173264746 - .long 0 - .long 1070459648 - .long 463249408 - .long 1070673107 - .long 2853152111 - .long 3174564937 - .long 0 - .long 1070459648 - .long 463249408 - .long 1070673107 - .long 2853152111 - .long 3174564937 - .long 0 - .long 1070431232 - .long 3186585600 - .long 1070699699 - .long 1874718356 - .long 3174139933 - .long 0 - .long 1070431232 - .long 3186585600 - .long 1070699699 - .long 1874718356 - .long 3174139933 - .long 0 - .long 1070402816 - .long 1525858304 - .long 1070726686 - .long 3039843523 - .long 1024724665 - .long 0 - .long 1070402816 - .long 1525858304 - .long 1070726686 - .long 3039843523 - .long 1024724665 - .long 0 - .long 1070374400 - .long 3425300480 - .long 1070754078 - .long 1303046649 - .long 1022401701 - .long 0 - .long 1070374400 - .long 3425300480 - .long 1070754078 - .long 1303046649 - .long 1022401701 - .long 0 - .long 1070345984 - .long 1980465152 - .long 1070781889 - .long 3188656319 - .long 1027271390 - .long 0 - .long 1070345984 - .long 1980465152 - .long 1070781889 - .long 3188656319 - .long 1027271390 - .long 0 - .long 1070317568 - .long 1352630272 - .long 1070810131 - .long 3090895658 - .long 3174564915 - .long 1352630272 - .long 1070810131 - .long 3090895658 - .long 3174564915 - .long 64 - .long 1120927744 - .long 0 - .long 1096810496 - .long 0 - .long 1064828928 - .long 0 - .long 1135607808 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 1071366144 - .long 3207479559 - .long 1062894188 - .long 3698831637 - .long 3220339442 - .long 3700832817 - .long 1073506818 - .long 1691624569 - .long 3221787401 - .long 2065628764 - .long 1075227551 - .long 1770847080 - .long 3223701774 - .long 3786517112 - .long 1077250450 - .long 1316351650 - .long 3225793313 - .type __dlog10_la_CoutTab,@object - .size __dlog10_la_CoutTab,1696 - .align 16 -.L_2il0floatpacket.88: - .long 0x00000000,0x80000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.88,@object - .size .L_2il0floatpacket.88,16 - .align 8 -.L_2il0floatpacket.89: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.89,@object - .size .L_2il0floatpacket.89,8 diff --git a/numpy/core/src/umath/svml/svml_z0_log10_s_la.s b/numpy/core/src/umath/svml/svml_z0_log10_s_la.s deleted file mode 100644 index 4a3dbc96e9b7..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log10_s_la.s +++ /dev/null @@ -1,754 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * log10(x) = VGETEXP(x)*log10(2) + log10(VGETMANT(x)) - * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) - * * mx = VGETMANT(x) is in [1,2) for all x>=0 - * * log10(mx) = -log10(RCP(mx)) + log10(1 +(mx*RCP(mx)-1)) - * * RCP(mx) is rounded to 4 fractional bits, - * * and the table lookup for log(RCP(mx)) is based on a small permute instruction - * * - * * LA, EP versions use interval interpolation (16 intervals) - * * - * - */ - - - .text -.L_2__routine_start___svml_log10f16_z0_0: - - .align 16,0x90 - .globl __svml_log10f16 - -__svml_log10f16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - -/* GetMant(x), normalized to [.75,1.5) for x>=0, NaN for x<0 */ - vgetmantps $11, {sae}, %zmm0, %zmm3 - vmovups __svml_slog10_data_internal_avx512(%rip), %zmm1 - vgetexpps {sae}, %zmm0, %zmm5 - vmovups 320+__svml_slog10_data_internal_avx512(%rip), %zmm10 - vpsrld $19, %zmm3, %zmm7 - vgetexpps {sae}, %zmm3, %zmm6 - vsubps {rn-sae}, %zmm1, %zmm3, %zmm11 - vpermps 64+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm1 - vpermps 128+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm2 - vsubps {rn-sae}, %zmm6, %zmm5, %zmm9 - vpermps 192+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm4 - vpermps 256+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm8 - -/* x<=0? */ - vfpclassps $94, %zmm0, %k0 - vfmadd213ps {rn-sae}, %zmm2, %zmm11, %zmm1 - vmulps {rn-sae}, %zmm10, %zmm9, %zmm12 - vfmadd213ps {rn-sae}, %zmm4, %zmm11, %zmm1 - kmovw %k0, %edx - vfmadd213ps {rn-sae}, %zmm8, %zmm11, %zmm1 - vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm1 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm1, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_slog10_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_log10f16,@function - .size __svml_log10f16,.-__svml_log10f16 -..LN__svml_log10f16.0: - -.L_2__routine_start___svml_slog10_cout_rare_internal_1: - - .align 16,0x90 - -__svml_slog10_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 2(%rdi), %edx - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_12 - - - movss (%rdi), %xmm2 - xorl %ecx, %ecx - movss %xmm2, -16(%rsp) - movzwl -14(%rsp), %edx - testl $32640, %edx - jne .LBL_2_4 - - - mulss .L_2il0floatpacket.77(%rip), %xmm2 - movl $-40, %ecx - movss %xmm2, -16(%rsp) - -.LBL_2_4: - - pxor %xmm0, %xmm0 - comiss %xmm0, %xmm2 - jbe .LBL_2_8 - - - movaps %xmm2, %xmm1 - subss .L_2il0floatpacket.93(%rip), %xmm1 - movss %xmm1, -20(%rsp) - andb $127, -17(%rsp) - movss -20(%rsp), %xmm0 - comiss .L_2il0floatpacket.78(%rip), %xmm0 - jbe .LBL_2_7 - - - movss %xmm2, -20(%rsp) - pxor %xmm8, %xmm8 - movzwl -18(%rsp), %edi - lea __slog10_la_CoutTab(%rip), %r10 - andl $-32641, %edi - addl $16256, %edi - movw %di, -18(%rsp) - movss -20(%rsp), %xmm3 - movaps %xmm3, %xmm0 - movss .L_2il0floatpacket.80(%rip), %xmm2 - movaps %xmm2, %xmm1 - addss .L_2il0floatpacket.79(%rip), %xmm0 - addss %xmm3, %xmm1 - movss %xmm0, -24(%rsp) - movl -24(%rsp), %r8d - movss %xmm1, -24(%rsp) - andl $127, %r8d - movss -24(%rsp), %xmm9 - movss .L_2il0floatpacket.89(%rip), %xmm6 - subss %xmm2, %xmm9 - movzwl -14(%rsp), %edx - lea (%r8,%r8,2), %r9d - movss (%r10,%r9,4), %xmm7 - andl $32640, %edx - shrl $7, %edx - subss %xmm9, %xmm3 - mulss %xmm7, %xmm9 - mulss %xmm3, %xmm7 - subss .L_2il0floatpacket.81(%rip), %xmm9 - movaps %xmm9, %xmm4 - lea -127(%rcx,%rdx), %ecx - cvtsi2ss %ecx, %xmm8 - addss %xmm7, %xmm4 - mulss %xmm4, %xmm6 - movss .L_2il0floatpacket.90(%rip), %xmm10 - mulss %xmm8, %xmm10 - addss .L_2il0floatpacket.88(%rip), %xmm6 - addss 4(%r10,%r9,4), %xmm10 - mulss %xmm4, %xmm6 - addss %xmm9, %xmm10 - addss .L_2il0floatpacket.87(%rip), %xmm6 - mulss %xmm4, %xmm6 - movss .L_2il0floatpacket.91(%rip), %xmm5 - mulss %xmm5, %xmm8 - addss .L_2il0floatpacket.86(%rip), %xmm6 - addss 8(%r10,%r9,4), %xmm8 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.85(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.84(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.83(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.82(%rip), %xmm6 - mulss %xmm6, %xmm9 - mulss %xmm7, %xmm6 - addss %xmm6, %xmm8 - addss %xmm7, %xmm8 - addss %xmm8, %xmm9 - addss %xmm9, %xmm10 - movss %xmm10, (%rsi) - ret - -.LBL_2_7: - - movss .L_2il0floatpacket.81(%rip), %xmm0 - mulss %xmm0, %xmm1 - movss .L_2il0floatpacket.89(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.88(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.87(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.86(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.85(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.84(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.83(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.82(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss %xmm1, %xmm2 - movss %xmm2, (%rsi) - ret - -.LBL_2_8: - - ucomiss %xmm0, %xmm2 - jp .LBL_2_9 - je .LBL_2_11 - -.LBL_2_9: - - divss %xmm0, %xmm0 - movss %xmm0, (%rsi) - movl $1, %eax - - - ret - -.LBL_2_11: - - movss .L_2il0floatpacket.92(%rip), %xmm1 - movl $2, %eax - divss %xmm0, %xmm1 - movss %xmm1, (%rsi) - ret - -.LBL_2_12: - - movb 3(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_14 - -.LBL_2_13: - - movss (%rdi), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_14: - - testl $8388607, (%rdi) - jne .LBL_2_13 - - - movl $1, %eax - pxor %xmm1, %xmm1 - pxor %xmm0, %xmm0 - divss %xmm0, %xmm1 - movss %xmm1, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_slog10_cout_rare_internal,@function - .size __svml_slog10_cout_rare_internal,.-__svml_slog10_cout_rare_internal -..LN__svml_slog10_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_slog10_data_internal_avx512: - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 3184111259 - .long 3181837556 - .long 3180047478 - .long 3177957936 - .long 3175655835 - .long 3173780127 - .long 3172237531 - .long 3170958066 - .long 3196205737 - .long 3194315592 - .long 3192585145 - .long 3191105685 - .long 3189833727 - .long 3188734475 - .long 3187779868 - .long 3186223182 - .long 1041488008 - .long 1041279100 - .long 1040946627 - .long 1040547595 - .long 1040048184 - .long 1039171801 - .long 1038306334 - .long 1037468467 - .long 1034710670 - .long 1037388369 - .long 1039339328 - .long 1040458589 - .long 1040937011 - .long 1041247376 - .long 1041427373 - .long 1041506296 - .long 3193854619 - .long 3193841271 - .long 3193799669 - .long 3193724950 - .long 3193617675 - .long 3193480957 - .long 3193318914 - .long 3193135864 - .long 3194544764 - .long 3194251079 - .long 3194067571 - .long 3193958490 - .long 3193898352 - .long 3193869008 - .long 3193857579 - .long 3193854984 - .long 1054759896 - .long 1054759749 - .long 1054758872 - .long 1054756529 - .long 1054752055 - .long 1054744934 - .long 1054734809 - .long 1054721467 - .long 1054738669 - .long 1054749415 - .long 1054755175 - .long 1054758032 - .long 1054759295 - .long 1054759760 - .long 1054759882 - .long 1054759897 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .long 1050288283 - .type __svml_slog10_data_internal_avx512,@object - .size __svml_slog10_data_internal_avx512,384 - .align 32 -__slog10_la_CoutTab: - .long 1121868800 - .long 0 - .long 0 - .long 1121641104 - .long 1004535808 - .long 912917177 - .long 1121413408 - .long 1013055488 - .long 3065901602 - .long 1121185712 - .long 1017839616 - .long 3083361151 - .long 1120958016 - .long 1021673472 - .long 929297206 - .long 1120844168 - .long 1023524864 - .long 3077496589 - .long 1120616472 - .long 1025499136 - .long 3070500046 - .long 1120388776 - .long 1027506176 - .long 912271551 - .long 1120274928 - .long 1028521984 - .long 927716856 - .long 1120047232 - .long 1030586368 - .long 923757491 - .long 1119933384 - .long 1031634944 - .long 3056752848 - .long 1119705688 - .long 1032775680 - .long 917029265 - .long 1119591840 - .long 1033314304 - .long 3065085585 - .long 1119364144 - .long 1034403840 - .long 3064614024 - .long 1119250296 - .long 1034954752 - .long 921091539 - .long 1119136448 - .long 1035513856 - .long 3057436454 - .long 1118908752 - .long 1036644352 - .long 922468856 - .long 1118794904 - .long 1037219840 - .long 3049155845 - .long 1118681056 - .long 1037799424 - .long 904301451 - .long 1118567208 - .long 1038385152 - .long 908617625 - .long 1118453360 - .long 1038977024 - .long 905362229 - .long 1118225664 - .long 1040179200 - .long 3027570914 - .long 1118111816 - .long 1040488448 - .long 882280038 - .long 1117997968 - .long 1040796672 - .long 911375775 - .long 1117884120 - .long 1041108480 - .long 904500572 - .long 1117770272 - .long 1041423872 - .long 3057579304 - .long 1117656424 - .long 1041742336 - .long 3053334705 - .long 1117542576 - .long 1042064384 - .long 3053389931 - .long 1117428728 - .long 1042390016 - .long 3051561465 - .long 1117314880 - .long 1042719232 - .long 3011187895 - .long 1117201032 - .long 1043052544 - .long 3059907089 - .long 1117087184 - .long 1043389440 - .long 3057005374 - .long 1116973336 - .long 1043729920 - .long 911932638 - .long 1116859488 - .long 1044075008 - .long 892958461 - .long 1116859488 - .long 1044075008 - .long 892958461 - .long 1116745640 - .long 1044424192 - .long 3048660547 - .long 1116631792 - .long 1044777472 - .long 3049032043 - .long 1116517944 - .long 1045134848 - .long 906867152 - .long 1116404096 - .long 1045496832 - .long 911484894 - .long 1116404096 - .long 1045496832 - .long 911484894 - .long 1116290248 - .long 1045863424 - .long 912580963 - .long 1116176400 - .long 1046235136 - .long 3058440244 - .long 1116062552 - .long 1046610944 - .long 895945194 - .long 1116062552 - .long 1046610944 - .long 895945194 - .long 1115948704 - .long 1046991872 - .long 904357324 - .long 1115834856 - .long 1047377920 - .long 902293870 - .long 1115721008 - .long 1047769088 - .long 907149878 - .long 1115721008 - .long 1047769088 - .long 907149878 - .long 1115529456 - .long 1048165888 - .long 3052029263 - .long 1115301760 - .long 1048567808 - .long 3035959522 - .long 1115301760 - .long 1048567808 - .long 3035959522 - .long 1115074064 - .long 1048775680 - .long 892998645 - .long 1115074064 - .long 1048775680 - .long 892998645 - .long 1114846368 - .long 1048982400 - .long 881767775 - .long 1114618672 - .long 1049192064 - .long 893839142 - .long 1114618672 - .long 1049192064 - .long 893839142 - .long 1114390976 - .long 1049404800 - .long 896498651 - .long 1114390976 - .long 1049404800 - .long 896498651 - .long 1114163280 - .long 1049620736 - .long 3033695903 - .long 1114163280 - .long 1049620736 - .long 3033695903 - .long 1113935584 - .long 1049839872 - .long 3029986056 - .long 1113935584 - .long 1049839872 - .long 3029986056 - .long 1113707888 - .long 1050062336 - .long 884671939 - .long 1113707888 - .long 1050062336 - .long 884671939 - .long 1113480192 - .long 1050288256 - .long 894707678 - .long 1050279936 - .long 964848148 - .long 1207959616 - .long 1174405120 - .long 1002438656 - .long 1400897536 - .long 0 - .long 1065353216 - .long 1121868800 - .long 3212771328 - .long 3079888218 - .long 870463078 - .long 2957202361 - .long 749987585 - .long 2838272395 - .long 631921661 - .long 2720751022 - .type __slog10_la_CoutTab,@object - .size __slog10_la_CoutTab,848 - .align 4 -.L_2il0floatpacket.77: - .long 0x53800000 - .type .L_2il0floatpacket.77,@object - .size .L_2il0floatpacket.77,4 - .align 4 -.L_2il0floatpacket.78: - .long 0x3bc00000 - .type .L_2il0floatpacket.78,@object - .size .L_2il0floatpacket.78,4 - .align 4 -.L_2il0floatpacket.79: - .long 0x48000040 - .type .L_2il0floatpacket.79,@object - .size .L_2il0floatpacket.79,4 - .align 4 -.L_2il0floatpacket.80: - .long 0x46000000 - .type .L_2il0floatpacket.80,@object - .size .L_2il0floatpacket.80,4 - .align 4 -.L_2il0floatpacket.81: - .long 0x42de5c00 - .type .L_2il0floatpacket.81,@object - .size .L_2il0floatpacket.81,4 - .align 4 -.L_2il0floatpacket.82: - .long 0xbf7f0000 - .type .L_2il0floatpacket.82,@object - .size .L_2il0floatpacket.82,4 - .align 4 -.L_2il0floatpacket.83: - .long 0xb7935d5a - .type .L_2il0floatpacket.83,@object - .size .L_2il0floatpacket.83,4 - .align 4 -.L_2il0floatpacket.84: - .long 0x33e23666 - .type .L_2il0floatpacket.84,@object - .size .L_2il0floatpacket.84,4 - .align 4 -.L_2il0floatpacket.85: - .long 0xb04353b9 - .type .L_2il0floatpacket.85,@object - .size .L_2il0floatpacket.85,4 - .align 4 -.L_2il0floatpacket.86: - .long 0x2cb3e701 - .type .L_2il0floatpacket.86,@object - .size .L_2il0floatpacket.86,4 - .align 4 -.L_2il0floatpacket.87: - .long 0xa92c998b - .type .L_2il0floatpacket.87,@object - .size .L_2il0floatpacket.87,4 - .align 4 -.L_2il0floatpacket.88: - .long 0x25aa5bfd - .type .L_2il0floatpacket.88,@object - .size .L_2il0floatpacket.88,4 - .align 4 -.L_2il0floatpacket.89: - .long 0xa22b5dae - .type .L_2il0floatpacket.89,@object - .size .L_2il0floatpacket.89,4 - .align 4 -.L_2il0floatpacket.90: - .long 0x3e9a0000 - .type .L_2il0floatpacket.90,@object - .size .L_2il0floatpacket.90,4 - .align 4 -.L_2il0floatpacket.91: - .long 0x39826a14 - .type .L_2il0floatpacket.91,@object - .size .L_2il0floatpacket.91,4 - .align 4 -.L_2il0floatpacket.92: - .long 0xbf800000 - .type .L_2il0floatpacket.92,@object - .size .L_2il0floatpacket.92,4 - .align 4 -.L_2il0floatpacket.93: - .long 0x3f800000 - .type .L_2il0floatpacket.93,@object - .size .L_2il0floatpacket.93,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log1p_d_la.s b/numpy/core/src/umath/svml/svml_z0_log1p_d_la.s deleted file mode 100644 index 6073965a6441..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log1p_d_la.s +++ /dev/null @@ -1,1132 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * Compute 1+_VARG1 in high-low parts. The low part will be - * * incorporated in the reduced argument (with proper scaling). - * * log(x) = VGETEXP(x)*log(2) + log(VGETMANT(x)) - * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) - * * mx = VGETMANT(x) is in [1,2) for all x>=0 - * * log(mx) = -log(RCP(mx)) + log(1 +(mx*RCP(mx)-1)) - * * RCP(mx) is rounded to 4 fractional bits, - * * and the table lookup for log(RCP(mx)) is based on a small permute instruction - * * - * - */ - - - .text -.L_2__routine_start___svml_log1p8_z0_0: - - .align 16,0x90 - .globl __svml_log1p8 - -__svml_log1p8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 128+__svml_dlog1p_data_internal_avx512(%rip), %zmm7 - vmovups 192+__svml_dlog1p_data_internal_avx512(%rip), %zmm14 - vmovaps %zmm0, %zmm9 - vaddpd {rn-sae}, %zmm9, %zmm7, %zmm11 - vandpd %zmm14, %zmm9, %zmm8 - -/* compute 1+x as high, low parts */ - vmaxpd {sae}, %zmm9, %zmm7, %zmm10 - vminpd {sae}, %zmm9, %zmm7, %zmm12 - -/* GetMant(x), normalized to [1,2) for x>=0, NaN for x<0 */ - vgetmantpd $8, {sae}, %zmm11, %zmm6 - -/* GetExp(x) */ - vgetexppd {sae}, %zmm11, %zmm5 - vsubpd {rn-sae}, %zmm10, %zmm11, %zmm13 - -/* DblRcp ~ 1/Mantissa */ - vrcp14pd %zmm6, %zmm15 - -/* Start polynomial evaluation */ - vmovups 320+__svml_dlog1p_data_internal_avx512(%rip), %zmm10 - vmovups 448+__svml_dlog1p_data_internal_avx512(%rip), %zmm11 - -/* Xl */ - vsubpd {rn-sae}, %zmm13, %zmm12, %zmm2 - vxorpd %zmm14, %zmm5, %zmm3 - -/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ - vrndscalepd $88, {sae}, %zmm15, %zmm4 - vmovups 576+__svml_dlog1p_data_internal_avx512(%rip), %zmm12 - vmovups 512+__svml_dlog1p_data_internal_avx512(%rip), %zmm14 - vmovups 704+__svml_dlog1p_data_internal_avx512(%rip), %zmm13 - -/* Xl*2^(-Expon) */ - vscalefpd {rn-sae}, %zmm3, %zmm2, %zmm1 - -/* Reduced argument: R = DblRcp*(Mantissa+Xl) - 1 */ - vfmsub213pd {rn-sae}, %zmm7, %zmm4, %zmm6 - vmovups __svml_dlog1p_data_internal_avx512(%rip), %zmm3 - -/* - * Table lookup - * Prepare exponent correction: DblRcp<0.75? - */ - vmovups 256+__svml_dlog1p_data_internal_avx512(%rip), %zmm2 - -/* Prepare table index */ - vpsrlq $48, %zmm4, %zmm0 - vfmadd231pd {rn-sae}, %zmm4, %zmm1, %zmm6 - vmovups 384+__svml_dlog1p_data_internal_avx512(%rip), %zmm1 - vcmppd $17, {sae}, %zmm2, %zmm4, %k1 - vcmppd $4, {sae}, %zmm6, %zmm6, %k0 - vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm1 - vmovups 640+__svml_dlog1p_data_internal_avx512(%rip), %zmm10 - vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 - vmovups 832+__svml_dlog1p_data_internal_avx512(%rip), %zmm4 - vpermt2pd 64+__svml_dlog1p_data_internal_avx512(%rip), %zmm0, %zmm3 - -/* add 1 to Expon if DblRcp<0.75 */ - vaddpd {rn-sae}, %zmm7, %zmm5, %zmm5{%k1} - -/* R^2 */ - vmulpd {rn-sae}, %zmm6, %zmm6, %zmm0 - vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm10 - vmovups 768+__svml_dlog1p_data_internal_avx512(%rip), %zmm12 - vmulpd {rn-sae}, %zmm0, %zmm0, %zmm15 - vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12 - vfmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm1 - kmovw %k0, %edx - vfmadd213pd {rn-sae}, %zmm12, %zmm0, %zmm10 - -/* polynomial */ - vfmadd213pd {rn-sae}, %zmm10, %zmm15, %zmm1 - vfmadd213pd {rn-sae}, %zmm6, %zmm0, %zmm1 - vaddpd {rn-sae}, %zmm1, %zmm3, %zmm6 - vfmadd213pd {rn-sae}, %zmm6, %zmm4, %zmm5 - vorpd %zmm8, %zmm5, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm9, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dlog1p_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_log1p8,@function - .size __svml_log1p8,.-__svml_log1p8 -..LN__svml_log1p8.0: - -.L_2__routine_start___svml_dlog1p_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dlog1p_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movsd .L_2il0floatpacket.81(%rip), %xmm3 - movsd (%rdi), %xmm2 - addsd %xmm3, %xmm2 - movsd %xmm2, -16(%rsp) - movzwl -10(%rsp), %edx - andl $32752, %edx - cmpl $32752, %edx - je .LBL_2_12 - - - movsd %xmm2, -8(%rsp) - xorl %ecx, %ecx - movzwl -2(%rsp), %edx - testl $32752, %edx - jne .LBL_2_4 - - - mulsd 1600+__dlog1p_la_CoutTab(%rip), %xmm2 - movl $-60, %ecx - movsd %xmm2, -8(%rsp) - -.LBL_2_4: - - movsd 1608+__dlog1p_la_CoutTab(%rip), %xmm0 - comisd %xmm0, %xmm2 - jbe .LBL_2_8 - - - movaps %xmm2, %xmm1 - subsd %xmm3, %xmm1 - movsd %xmm1, -16(%rsp) - andb $127, -9(%rsp) - movsd -16(%rsp), %xmm0 - comisd 1592+__dlog1p_la_CoutTab(%rip), %xmm0 - jbe .LBL_2_7 - - - movsd %xmm2, -16(%rsp) - pxor %xmm7, %xmm7 - movzwl -10(%rsp), %edi - lea __dlog1p_la_CoutTab(%rip), %r10 - andl $-32753, %edi - addl $16368, %edi - movw %di, -10(%rsp) - movsd -16(%rsp), %xmm4 - movaps %xmm4, %xmm1 - movaps %xmm4, %xmm2 - movsd 1672+__dlog1p_la_CoutTab(%rip), %xmm8 - movzwl -2(%rsp), %edx - andl $32752, %edx - addsd 1576+__dlog1p_la_CoutTab(%rip), %xmm1 - addsd 1584+__dlog1p_la_CoutTab(%rip), %xmm2 - movsd %xmm1, -24(%rsp) - movl -24(%rsp), %r8d - movsd %xmm2, -24(%rsp) - andl $127, %r8d - movsd -24(%rsp), %xmm5 - movsd 1560+__dlog1p_la_CoutTab(%rip), %xmm9 - movsd 1568+__dlog1p_la_CoutTab(%rip), %xmm0 - shrl $4, %edx - subsd 1584+__dlog1p_la_CoutTab(%rip), %xmm5 - lea (%r8,%r8,2), %r9d - movsd (%r10,%r9,8), %xmm6 - lea -1023(%rcx,%rdx), %ecx - cvtsi2sd %ecx, %xmm7 - subsd %xmm5, %xmm4 - mulsd %xmm6, %xmm5 - mulsd %xmm7, %xmm9 - subsd %xmm3, %xmm5 - mulsd %xmm4, %xmm6 - mulsd %xmm0, %xmm7 - addsd 8(%r10,%r9,8), %xmm9 - addsd 16(%r10,%r9,8), %xmm7 - addsd %xmm5, %xmm9 - addsd %xmm6, %xmm7 - movaps %xmm5, %xmm3 - addsd %xmm6, %xmm3 - mulsd %xmm3, %xmm8 - addsd 1664+__dlog1p_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1656+__dlog1p_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1648+__dlog1p_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1640+__dlog1p_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1632+__dlog1p_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1624+__dlog1p_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - mulsd %xmm3, %xmm8 - addsd %xmm7, %xmm8 - addsd %xmm8, %xmm9 - movsd %xmm9, (%rsi) - ret - -.LBL_2_7: - - movsd 1672+__dlog1p_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1664+__dlog1p_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1656+__dlog1p_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1648+__dlog1p_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1640+__dlog1p_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1632+__dlog1p_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1624+__dlog1p_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - mulsd %xmm1, %xmm0 - addsd %xmm1, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_8: - - ucomisd %xmm0, %xmm2 - jp .LBL_2_9 - je .LBL_2_11 - -.LBL_2_9: - - divsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - movl $1, %eax - - - ret - -.LBL_2_11: - - movsd 1616+__dlog1p_la_CoutTab(%rip), %xmm1 - movl $2, %eax - xorps .L_2il0floatpacket.80(%rip), %xmm1 - divsd %xmm0, %xmm1 - movsd %xmm1, (%rsi) - ret - -.LBL_2_12: - - movb -9(%rsp), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_14 - -.LBL_2_13: - - mulsd %xmm2, %xmm2 - movsd %xmm2, (%rsi) - ret - -.LBL_2_14: - - testl $1048575, -12(%rsp) - jne .LBL_2_13 - - - cmpl $0, -16(%rsp) - jne .LBL_2_13 - - - movsd 1608+__dlog1p_la_CoutTab(%rip), %xmm0 - movl $1, %eax - divsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dlog1p_cout_rare_internal,@function - .size __svml_dlog1p_cout_rare_internal,.-__svml_dlog1p_cout_rare_internal -..LN__svml_dlog1p_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dlog1p_data_internal_avx512: - .long 0 - .long 0 - .long 3222364838 - .long 3215919664 - .long 1848308454 - .long 3216910087 - .long 1890030548 - .long 3217424176 - .long 3348797986 - .long 3217854455 - .long 2880153102 - .long 3218171740 - .long 3256639170 - .long 3218366859 - .long 4139503623 - .long 3218553303 - .long 288676754 - .long 1070754146 - .long 1823716217 - .long 1070569756 - .long 1015732707 - .long 1070240749 - .long 1800682930 - .long 1069924160 - .long 2183652476 - .long 1069619086 - .long 1566132617 - .long 1069101918 - .long 3047045639 - .long 1068533144 - .long 2313634884 - .long 1067467101 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .type __svml_dlog1p_data_internal_avx512,@object - .size __svml_dlog1p_data_internal_avx512,1152 - .align 32 -__dlog1p_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072660480 - .long 1486880768 - .long 1066410070 - .long 1813744607 - .long 3179892593 - .long 0 - .long 1072629760 - .long 377487360 - .long 1067416219 - .long 919019713 - .long 3179241129 - .long 0 - .long 1072599040 - .long 1513619456 - .long 1067944025 - .long 874573033 - .long 3178512940 - .long 0 - .long 1072570368 - .long 3221749760 - .long 1068427825 - .long 4181665006 - .long 3177478212 - .long 0 - .long 1072541696 - .long 4162322432 - .long 1068708823 - .long 627020255 - .long 1028629941 - .long 0 - .long 1072513024 - .long 183107584 - .long 1068957907 - .long 2376703469 - .long 1030233118 - .long 0 - .long 1072486400 - .long 1053425664 - .long 1069192557 - .long 696277142 - .long 1030474863 - .long 0 - .long 1072459776 - .long 3996123136 - .long 1069430535 - .long 2630798680 - .long 1028792016 - .long 0 - .long 1072435200 - .long 3452764160 - .long 1069600382 - .long 624954044 - .long 3177101741 - .long 0 - .long 1072409600 - .long 207650816 - .long 1069717971 - .long 3272735636 - .long 3175176575 - .long 0 - .long 1072386048 - .long 2647228416 - .long 1069827627 - .long 3594228712 - .long 1029303785 - .long 0 - .long 1072362496 - .long 2712010752 - .long 1069938736 - .long 3653242769 - .long 3176839013 - .long 0 - .long 1072338944 - .long 374439936 - .long 1070051337 - .long 4072775574 - .long 3176577495 - .long 0 - .long 1072316416 - .long 3707174912 - .long 1070160474 - .long 1486946159 - .long 1023930920 - .long 0 - .long 1072294912 - .long 1443954688 - .long 1070265993 - .long 293532967 - .long 3176278277 - .long 0 - .long 1072273408 - .long 127762432 - .long 1070372856 - .long 3404145447 - .long 3177023955 - .long 0 - .long 1072252928 - .long 2053832704 - .long 1070475911 - .long 1575076358 - .long 1029048544 - .long 0 - .long 1072232448 - .long 3194093568 - .long 1070580248 - .long 1864169120 - .long 1026866084 - .long 0 - .long 1072212992 - .long 3917201408 - .long 1070638340 - .long 2362145246 - .long 3175606197 - .long 0 - .long 1072193536 - .long 3417112576 - .long 1070689116 - .long 70087871 - .long 3174183577 - .long 0 - .long 1072175104 - .long 4226777088 - .long 1070737793 - .long 1620410586 - .long 3174700065 - .long 0 - .long 1072156672 - .long 3168870400 - .long 1070787042 - .long 311238082 - .long 1025781772 - .long 0 - .long 1072139264 - .long 2150580224 - .long 1070834092 - .long 1664262457 - .long 3175299224 - .long 0 - .long 1072120832 - .long 4095672320 - .long 1070884491 - .long 1657121015 - .long 3174674199 - .long 0 - .long 1072104448 - .long 2595577856 - .long 1070929805 - .long 2014006823 - .long 3175423830 - .long 0 - .long 1072087040 - .long 3747176448 - .long 1070978493 - .long 144991708 - .long 3171552042 - .long 0 - .long 1072070656 - .long 1050435584 - .long 1071024840 - .long 3386227432 - .long 1027876916 - .long 0 - .long 1072055296 - .long 255516672 - .long 1071068760 - .long 2637594316 - .long 1028049573 - .long 0 - .long 1072038912 - .long 1640783872 - .long 1071116120 - .long 893247007 - .long 1028452162 - .long 0 - .long 1072023552 - .long 2940411904 - .long 1071161011 - .long 813240633 - .long 1027664048 - .long 0 - .long 1072009216 - .long 882917376 - .long 1071203348 - .long 2376597551 - .long 3175828767 - .long 0 - .long 1071993856 - .long 213966848 - .long 1071249188 - .long 2977204125 - .long 1028350609 - .long 0 - .long 1071979520 - .long 2921504768 - .long 1071292428 - .long 523218347 - .long 1028007004 - .long 0 - .long 1071965184 - .long 3186655232 - .long 1071336119 - .long 2352907891 - .long 1026967097 - .long 0 - .long 1071951872 - .long 2653364224 - .long 1071377101 - .long 2453418583 - .long 3174349512 - .long 0 - .long 1071938560 - .long 3759783936 - .long 1071418487 - .long 3685870403 - .long 3175415611 - .long 0 - .long 1071925248 - .long 2468364288 - .long 1071460286 - .long 1578908842 - .long 3175510517 - .long 0 - .long 1071911936 - .long 81903616 - .long 1071502506 - .long 770710269 - .long 1026742353 - .long 0 - .long 1071899648 - .long 2799321088 - .long 1071541858 - .long 3822266185 - .long 1028434427 - .long 0 - .long 1071886336 - .long 2142265344 - .long 1071584911 - .long 175901806 - .long 3173871540 - .long 0 - .long 1071874048 - .long 2944024576 - .long 1071625048 - .long 2747360403 - .long 1027672159 - .long 0 - .long 1071862784 - .long 3434301440 - .long 1071653426 - .long 4194662196 - .long 3173893003 - .long 0 - .long 1071850496 - .long 1547755520 - .long 1071673870 - .long 4248764681 - .long 3172759087 - .long 0 - .long 1071839232 - .long 4246986752 - .long 1071692786 - .long 2840205638 - .long 3174430911 - .long 0 - .long 1071826944 - .long 3418390528 - .long 1071713619 - .long 3041880823 - .long 1025440860 - .long 0 - .long 1071816704 - .long 4143093760 - .long 1071731139 - .long 2727587401 - .long 3173965207 - .long 0 - .long 1071805440 - .long 3121326080 - .long 1071750582 - .long 3173887692 - .long 3174190163 - .long 0 - .long 1071794176 - .long 1852893184 - .long 1071770207 - .long 3951060252 - .long 1027348295 - .long 0 - .long 1071783936 - .long 3636379648 - .long 1071788208 - .long 1684924001 - .long 3174777086 - .long 0 - .long 1071773696 - .long 516505600 - .long 1071806366 - .long 429181199 - .long 3173211033 - .long 0 - .long 1071763456 - .long 4186185728 - .long 1071824681 - .long 2044904577 - .long 3174967132 - .long 0 - .long 1071753216 - .long 877596672 - .long 1071843159 - .long 1396318105 - .long 3173959727 - .long 0 - .long 1071742976 - .long 2912784384 - .long 1071861800 - .long 448136789 - .long 3174814192 - .long 0 - .long 1071733760 - .long 3722825728 - .long 1071878720 - .long 714165913 - .long 3173439560 - .long 0 - .long 1071723520 - .long 2522374144 - .long 1071897682 - .long 3227240353 - .long 3173394323 - .long 0 - .long 1071714304 - .long 4165410816 - .long 1071914895 - .long 1365684961 - .long 3174365060 - .long 0 - .long 1071705088 - .long 3477135360 - .long 1071932251 - .long 368482985 - .long 3174140821 - .long 0 - .long 1071695872 - .long 2079455232 - .long 1071949752 - .long 1320576317 - .long 1026822714 - .long 0 - .long 1071687680 - .long 851795968 - .long 1071965432 - .long 3702467026 - .long 1025224125 - .long 0 - .long 1071678464 - .long 647743488 - .long 1071983213 - .long 772992109 - .long 3174038459 - .long 0 - .long 1071670272 - .long 26537984 - .long 1071999146 - .long 2360214276 - .long 3174861275 - .long 0 - .long 1071661056 - .long 1547061248 - .long 1072017216 - .long 2886781435 - .long 1026423395 - .long 0 - .long 1071652864 - .long 2854492160 - .long 1072033410 - .long 215631550 - .long 1025638968 - .long 0 - .long 1071644672 - .long 4277811200 - .long 1072049730 - .long 2479318832 - .long 1026487127 - .long 4277811200 - .long 1072049730 - .long 2479318832 - .long 1026487127 - .long 64 - .long 1120927744 - .long 0 - .long 1094713344 - .long 0 - .long 1065615360 - .long 0 - .long 1135607808 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 3219128320 - .long 1431655955 - .long 1070945621 - .long 610 - .long 3218079744 - .long 2545118337 - .long 1070176665 - .long 1378399119 - .long 3217380693 - .long 612435357 - .long 1069697472 - .long 94536557 - .long 3217031348 - .type __dlog1p_la_CoutTab,@object - .size __dlog1p_la_CoutTab,1680 - .align 16 -.L_2il0floatpacket.80: - .long 0x00000000,0x80000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.80,@object - .size .L_2il0floatpacket.80,16 - .align 8 -.L_2il0floatpacket.81: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.81,@object - .size .L_2il0floatpacket.81,8 diff --git a/numpy/core/src/umath/svml/svml_z0_log1p_s_la.s b/numpy/core/src/umath/svml/svml_z0_log1p_s_la.s deleted file mode 100644 index c6eeec2a4297..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log1p_s_la.s +++ /dev/null @@ -1,1650 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_log1pf16_z0_0: - - .align 16,0x90 - .globl __svml_log1pf16 - -__svml_log1pf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovups 1984+__svml_slog1p_data_internal(%rip), %zmm2 - -/* reduction: compute r,n */ - vmovups 2688+__svml_slog1p_data_internal(%rip), %zmm12 - vmovups 1088+__svml_slog1p_data_internal(%rip), %zmm4 - vmovaps %zmm0, %zmm3 - -/* compute 1+x as high, low parts */ - vmaxps {sae}, %zmm3, %zmm2, %zmm5 - vminps {sae}, %zmm3, %zmm2, %zmm7 - vandnps %zmm3, %zmm4, %zmm1 - vpternlogd $255, %zmm4, %zmm4, %zmm4 - vaddps {rn-sae}, %zmm7, %zmm5, %zmm9 - vpsubd %zmm12, %zmm9, %zmm10 - vsubps {rn-sae}, %zmm9, %zmm5, %zmm6 - -/* check argument value ranges */ - vpaddd 2560+__svml_slog1p_data_internal(%rip), %zmm9, %zmm8 - vpsrad $23, %zmm10, %zmm13 - vmovups 2304+__svml_slog1p_data_internal(%rip), %zmm9 - vpcmpd $5, 2624+__svml_slog1p_data_internal(%rip), %zmm8, %k1 - vpslld $23, %zmm13, %zmm14 - vaddps {rn-sae}, %zmm7, %zmm6, %zmm15 - vcvtdq2ps {rn-sae}, %zmm13, %zmm0 - vpsubd %zmm14, %zmm2, %zmm13 - vmovups 2496+__svml_slog1p_data_internal(%rip), %zmm7 - vmovups 2048+__svml_slog1p_data_internal(%rip), %zmm14 - vmulps {rn-sae}, %zmm13, %zmm15, %zmm6 - vpandd 2752+__svml_slog1p_data_internal(%rip), %zmm10, %zmm11 - vpaddd %zmm12, %zmm11, %zmm5 - vmovups 2240+__svml_slog1p_data_internal(%rip), %zmm10 - vmovups 2176+__svml_slog1p_data_internal(%rip), %zmm11 - vmovups 2112+__svml_slog1p_data_internal(%rip), %zmm12 - -/* polynomial evaluation */ - vsubps {rn-sae}, %zmm2, %zmm5, %zmm2 - vaddps {rn-sae}, %zmm6, %zmm2, %zmm15 - vmovups 2432+__svml_slog1p_data_internal(%rip), %zmm2 - vfmadd231ps {rn-sae}, %zmm15, %zmm7, %zmm2 - vpandnd %zmm8, %zmm8, %zmm4{%k1} - vmovups 2368+__svml_slog1p_data_internal(%rip), %zmm8 - -/* combine and get argument value range mask */ - vptestmd %zmm4, %zmm4, %k0 - vfmadd213ps {rn-sae}, %zmm8, %zmm15, %zmm2 - kmovw %k0, %edx - vfmadd213ps {rn-sae}, %zmm9, %zmm15, %zmm2 - vfmadd213ps {rn-sae}, %zmm10, %zmm15, %zmm2 - vfmadd213ps {rn-sae}, %zmm11, %zmm15, %zmm2 - vfmadd213ps {rn-sae}, %zmm12, %zmm15, %zmm2 - vfmadd213ps {rn-sae}, %zmm14, %zmm15, %zmm2 - vmulps {rn-sae}, %zmm15, %zmm2, %zmm4 - vfmadd213ps {rn-sae}, %zmm15, %zmm15, %zmm4 - -/* final reconstruction */ - vmovups 2816+__svml_slog1p_data_internal(%rip), %zmm15 - vfmadd213ps {rn-sae}, %zmm4, %zmm15, %zmm0 - vorps %zmm1, %zmm0, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm3, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_slog1p_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_log1pf16,@function - .size __svml_log1pf16,.-__svml_log1pf16 -..LN__svml_log1pf16.0: - -.L_2__routine_start___svml_slog1p_cout_rare_internal_1: - - .align 16,0x90 - -__svml_slog1p_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movss .L_2il0floatpacket.90(%rip), %xmm1 - xorb %r8b, %r8b - movss (%rdi), %xmm5 - addss %xmm1, %xmm5 - movss %xmm5, -20(%rsp) - movzwl -18(%rsp), %edx - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_15 - - - movss %xmm5, -16(%rsp) - xorl %ecx, %ecx - movzwl -14(%rsp), %edx - testl $32640, %edx - jne .LBL_2_4 - - - mulss .L_2il0floatpacket.75(%rip), %xmm5 - movb $1, %r8b - movss %xmm5, -16(%rsp) - movl $-40, %ecx - -.LBL_2_4: - - pxor %xmm3, %xmm3 - comiss %xmm3, %xmm5 - jbe .LBL_2_10 - - - movaps %xmm5, %xmm2 - subss %xmm1, %xmm2 - movss %xmm2, -20(%rsp) - andb $127, -17(%rsp) - movss -20(%rsp), %xmm0 - comiss .L_2il0floatpacket.76(%rip), %xmm0 - jbe .LBL_2_9 - - - movzwl -14(%rsp), %edx - pxor %xmm6, %xmm6 - andl $32640, %edx - shrl $7, %edx - lea -127(%rcx,%rdx), %ecx - cvtsi2ss %ecx, %xmm6 - cmpb $1, %r8b - je .LBL_2_13 - - - movss .L_2il0floatpacket.86(%rip), %xmm4 - movss .L_2il0floatpacket.87(%rip), %xmm0 - mulss %xmm6, %xmm4 - mulss %xmm0, %xmm6 - -.LBL_2_8: - - movss %xmm5, -20(%rsp) - movaps %xmm4, %xmm9 - movzwl -18(%rsp), %edx - lea __slog1p_la_CoutTab(%rip), %r8 - andl $-32641, %edx - addl $16256, %edx - movw %dx, -18(%rsp) - movss -20(%rsp), %xmm8 - movaps %xmm8, %xmm2 - movss .L_2il0floatpacket.89(%rip), %xmm7 - addss .L_2il0floatpacket.88(%rip), %xmm2 - movss %xmm2, -24(%rsp) - movl -24(%rsp), %ecx - andl $127, %ecx - lea (%rcx,%rcx,2), %edi - movss 4(%r8,%rdi,4), %xmm5 - movss (%r8,%rdi,4), %xmm0 - addss %xmm5, %xmm9 - addss 8(%r8,%rdi,4), %xmm6 - movaps %xmm9, %xmm3 - subss %xmm4, %xmm3 - movss %xmm3, -24(%rsp) - movss -24(%rsp), %xmm4 - subss %xmm4, %xmm5 - movss %xmm5, -24(%rsp) - movss -24(%rsp), %xmm10 - addss %xmm6, %xmm10 - movaps %xmm7, %xmm6 - addss %xmm8, %xmm6 - movss %xmm6, -24(%rsp) - movss -24(%rsp), %xmm12 - subss %xmm7, %xmm12 - subss %xmm12, %xmm8 - mulss %xmm0, %xmm12 - subss %xmm1, %xmm12 - mulss %xmm8, %xmm0 - movaps %xmm0, %xmm15 - movaps %xmm12, %xmm2 - addss %xmm10, %xmm15 - addss %xmm9, %xmm12 - addss %xmm0, %xmm2 - movaps %xmm15, %xmm1 - movaps %xmm12, %xmm13 - subss %xmm10, %xmm1 - addss %xmm15, %xmm13 - movss %xmm1, -24(%rsp) - movss -24(%rsp), %xmm11 - subss %xmm11, %xmm0 - movss %xmm0, -24(%rsp) - movss -24(%rsp), %xmm0 - movss %xmm13, (%rsi) - subss %xmm12, %xmm13 - movss .L_2il0floatpacket.83(%rip), %xmm12 - mulss %xmm2, %xmm12 - movss %xmm13, -24(%rsp) - movss -24(%rsp), %xmm14 - addss .L_2il0floatpacket.82(%rip), %xmm12 - subss %xmm14, %xmm15 - mulss %xmm2, %xmm12 - movss %xmm15, -24(%rsp) - movss -24(%rsp), %xmm1 - addss .L_2il0floatpacket.81(%rip), %xmm12 - mulss %xmm2, %xmm12 - addss .L_2il0floatpacket.80(%rip), %xmm12 - mulss %xmm2, %xmm12 - addss .L_2il0floatpacket.79(%rip), %xmm12 - mulss %xmm2, %xmm12 - addss .L_2il0floatpacket.78(%rip), %xmm12 - mulss %xmm2, %xmm12 - addss .L_2il0floatpacket.77(%rip), %xmm12 - mulss %xmm2, %xmm12 - mulss %xmm2, %xmm12 - addss %xmm12, %xmm0 - addss %xmm0, %xmm1 - movss %xmm1, -24(%rsp) - movss -24(%rsp), %xmm3 - addss (%rsi), %xmm3 - movss %xmm3, (%rsi) - ret - -.LBL_2_9: - - movss .L_2il0floatpacket.83(%rip), %xmm0 - mulss %xmm2, %xmm0 - addss .L_2il0floatpacket.82(%rip), %xmm0 - mulss %xmm2, %xmm0 - addss .L_2il0floatpacket.81(%rip), %xmm0 - mulss %xmm2, %xmm0 - addss .L_2il0floatpacket.80(%rip), %xmm0 - mulss %xmm2, %xmm0 - addss .L_2il0floatpacket.79(%rip), %xmm0 - mulss %xmm2, %xmm0 - addss .L_2il0floatpacket.78(%rip), %xmm0 - mulss %xmm2, %xmm0 - addss .L_2il0floatpacket.77(%rip), %xmm0 - mulss %xmm2, %xmm0 - mulss %xmm2, %xmm0 - addss %xmm2, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_10: - - ucomiss %xmm3, %xmm5 - jp .LBL_2_11 - je .LBL_2_14 - -.LBL_2_11: - - divss %xmm3, %xmm3 - movss %xmm3, (%rsi) - movl $1, %eax - - - ret - -.LBL_2_13: - - movss .L_2il0floatpacket.85(%rip), %xmm0 - mulss %xmm0, %xmm6 - movaps %xmm6, %xmm4 - movaps %xmm3, %xmm6 - jmp .LBL_2_8 - -.LBL_2_14: - - movss .L_2il0floatpacket.84(%rip), %xmm0 - movl $2, %eax - divss %xmm3, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_15: - - movb -17(%rsp), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_17 - -.LBL_2_16: - - mulss %xmm5, %xmm5 - movss %xmm5, (%rsi) - ret - -.LBL_2_17: - - testl $8388607, -20(%rsp) - jne .LBL_2_16 - - - movl $1, %eax - pxor %xmm1, %xmm1 - pxor %xmm0, %xmm0 - divss %xmm0, %xmm1 - movss %xmm1, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_slog1p_cout_rare_internal,@function - .size __svml_slog1p_cout_rare_internal,.-__svml_slog1p_cout_rare_internal -..LN__svml_slog1p_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_slog1p_data_internal: - .long 3266227256 - .long 3107766024 - .long 3266228276 - .long 3107776882 - .long 3266229284 - .long 3109949545 - .long 3266230292 - .long 3108055846 - .long 3266231292 - .long 3106351937 - .long 3266232276 - .long 3109092567 - .long 3266233260 - .long 3107948216 - .long 3266234236 - .long 3107170960 - .long 3266235204 - .long 3106817287 - .long 3266236164 - .long 3106942449 - .long 3266237116 - .long 3107600489 - .long 3266238060 - .long 3108844279 - .long 3266239004 - .long 3106531253 - .long 3266239932 - .long 3109100650 - .long 3266240860 - .long 3108213420 - .long 3266241780 - .long 3108112381 - .long 3266242692 - .long 3108845034 - .long 3266243604 - .long 3106263589 - .long 3266244500 - .long 3108802209 - .long 3266245396 - .long 3108116909 - .long 3266246284 - .long 3108445707 - .long 3266247164 - .long 3109831435 - .long 3266248044 - .long 3108121760 - .long 3266248916 - .long 3107552123 - .long 3266249780 - .long 3108162844 - .long 3266250644 - .long 3105799146 - .long 3266251492 - .long 3108888393 - .long 3266252340 - .long 3109079979 - .long 3266253188 - .long 3106411173 - .long 3266254020 - .long 3109307139 - .long 3266254852 - .long 3109415127 - .long 3266255684 - .long 3106770317 - .long 3266256500 - .long 3109795834 - .long 3266257324 - .long 3105942641 - .long 3266258132 - .long 3107826892 - .long 3266258940 - .long 3107092610 - .long 3266259740 - .long 3107966131 - .long 3266260540 - .long 3106284596 - .long 3266261332 - .long 3106273188 - .long 3266262116 - .long 3107962226 - .long 3266262900 - .long 3107187186 - .long 3266263676 - .long 3108171617 - .long 3266264452 - .long 3106749947 - .long 3266265220 - .long 3107144703 - .long 3266265980 - .long 3109383615 - .long 3266266740 - .long 3109299629 - .long 3266267500 - .long 3106919521 - .long 3266268252 - .long 3106463913 - .long 3266268996 - .long 3107958670 - .long 3266269740 - .long 3107234917 - .long 3266270476 - .long 3108511954 - .long 3266271212 - .long 3107620056 - .long 3266271940 - .long 3108777693 - .long 3266272668 - .long 3107814325 - .long 3266273388 - .long 3108947630 - .long 3266274108 - .long 3108006290 - .long 3266274820 - .long 3109207222 - .long 3266275532 - .long 3108378366 - .long 3266276236 - .long 3109735912 - .long 3266276940 - .long 3109107087 - .long 3266277644 - .long 3106513079 - .long 3266278340 - .long 3106169044 - .long 3266279028 - .long 3108095503 - .long 3266279716 - .long 3108118349 - .long 3266280404 - .long 3106257463 - .long 3266281084 - .long 3106726720 - .long 3266281756 - .long 3109545389 - .long 3266282436 - .long 3106343833 - .long 3266283100 - .long 3109723642 - .long 3266283772 - .long 3107120300 - .long 3266284436 - .long 3106940529 - .long 3266285092 - .long 3109202170 - .long 3266285748 - .long 3109728494 - .long 3266286404 - .long 3108536808 - .long 3266287052 - .long 3109838471 - .long 3266287700 - .long 3109455977 - .long 3266288348 - .long 3107405879 - .long 3266288988 - .long 3107898790 - .long 3266289628 - .long 3106756477 - .long 3266290260 - .long 3108189081 - .long 3266290892 - .long 3108017907 - .long 3266291524 - .long 3106258339 - .long 3266292148 - .long 3107119845 - .long 3266292772 - .long 3106423069 - .long 3266293388 - .long 3108377050 - .long 3266294004 - .long 3108802011 - .long 3266294620 - .long 3107712277 - .long 3266295228 - .long 3109316274 - .long 3266295836 - .long 3109433625 - .long 3266296444 - .long 3108078064 - .long 3266297044 - .long 3109457438 - .long 3266297644 - .long 3109390801 - .long 3266298244 - .long 3107891329 - .long 3266298836 - .long 3109166323 - .long 3266299428 - .long 3109034299 - .long 3266300020 - .long 3107507904 - .long 3266300604 - .long 3108793919 - .long 3266301188 - .long 3108710352 - .long 3266301772 - .long 3107269350 - .long 3266302348 - .long 3108677203 - .long 3266302924 - .long 3108751436 - .long 3266303500 - .long 3107503720 - .long 3266304068 - .long 3109139881 - .long 3266304636 - .long 3109476985 - .long 3266305204 - .long 3108526254 - .long 3266305772 - .long 3106298768 - .long 3266306332 - .long 3106999765 - .long 3266306892 - .long 3106445739 - .long 3266307444 - .long 3108841650 - .long 3266308004 - .long 3105809415 - .long 3266308548 - .long 3109942336 - .long 3266309100 - .long 3108667760 - .long 3266309652 - .long 3106190122 - .long 3266310196 - .long 3106713732 - .long 3266310740 - .long 3106054165 - .long 3266311276 - .long 3108415484 - .long 3266311812 - .long 3109613023 - .long 3266312348 - .long 3109656301 - .long 3266312884 - .long 3108554723 - .long 3266313420 - .long 3106317576 - .long 3266313948 - .long 3107148341 - .long 3266314476 - .long 3106861780 - .long 3266314996 - .long 3109661153 - .long 3266315524 - .long 3107166702 - .long 3266316044 - .long 3107775778 - .long 3266316564 - .long 3107302717 - .long 3266317076 - .long 3109950361 - .long 3266317596 - .long 3107338539 - .long 3266318108 - .long 3107864196 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 964689920 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 2063597568 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 1051372345 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 3204448310 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 998244352 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 3212836863 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 2055208960 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 4294967040 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 1060205056 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 901758464 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 1051372180 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 3196061070 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 1045225872 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 3190336823 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 1041222418 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 3189430755 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 1041073389 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 16777216 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 25165824 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 1059760811 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 8388607 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 2139095040 - .long 4286578688 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .long 1065353216 - .long 3212836864 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .long 0 - .long 2147483648 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .type __svml_slog1p_data_internal,@object - .size __svml_slog1p_data_internal,3072 - .align 32 -__slog1p_la_CoutTab: - .long 1065353216 - .long 0 - .long 0 - .long 1065091072 - .long 1015087104 - .long 900509991 - .long 1064828928 - .long 1023541248 - .long 925811956 - .long 1064566784 - .long 1027915776 - .long 3084221144 - .long 1064304640 - .long 1032073216 - .long 3066991812 - .long 1064173568 - .long 1033195520 - .long 882149603 - .long 1063911424 - .long 1035468800 - .long 928189163 - .long 1063649280 - .long 1037783040 - .long 927501741 - .long 1063518208 - .long 1038958592 - .long 3076037756 - .long 1063256064 - .long 1040759808 - .long 904405630 - .long 1063124992 - .long 1041361920 - .long 3052231524 - .long 1062862848 - .long 1042581504 - .long 922094799 - .long 1062731776 - .long 1043201024 - .long 3070120623 - .long 1062469632 - .long 1044455424 - .long 3069864633 - .long 1062338560 - .long 1045091328 - .long 3063188516 - .long 1062207488 - .long 1045733376 - .long 3054902185 - .long 1061945344 - .long 1047035904 - .long 920635797 - .long 1061814272 - .long 1047697408 - .long 904920689 - .long 1061683200 - .long 1048365056 - .long 912483742 - .long 1061552128 - .long 1048807936 - .long 3052664405 - .long 1061421056 - .long 1049148416 - .long 912794238 - .long 1061158912 - .long 1049840384 - .long 889474359 - .long 1061027840 - .long 1050191872 - .long 3059868362 - .long 1060896768 - .long 1050546944 - .long 3059256525 - .long 1060765696 - .long 1050905600 - .long 912008988 - .long 1060634624 - .long 1051268352 - .long 912290698 - .long 1060503552 - .long 1051635200 - .long 3037211048 - .long 1060372480 - .long 1052005888 - .long 906226119 - .long 1060241408 - .long 1052380928 - .long 3052480305 - .long 1060110336 - .long 1052760064 - .long 3048768765 - .long 1059979264 - .long 1053143552 - .long 3049975450 - .long 1059848192 - .long 1053531392 - .long 894485718 - .long 1059717120 - .long 1053923840 - .long 897598623 - .long 1059586048 - .long 1054320896 - .long 907355277 - .long 1059586048 - .long 1054320896 - .long 907355277 - .long 1059454976 - .long 1054722816 - .long 881705073 - .long 1059323904 - .long 1055129600 - .long 3049723733 - .long 1059192832 - .long 1055541248 - .long 890353599 - .long 1059061760 - .long 1055958016 - .long 908173938 - .long 1059061760 - .long 1055958016 - .long 908173938 - .long 1058930688 - .long 1056380160 - .long 883644938 - .long 1058799616 - .long 1056807680 - .long 3052015799 - .long 1058668544 - .long 1057102592 - .long 884897284 - .long 1058668544 - .long 1057102592 - .long 884897284 - .long 1058537472 - .long 1057321920 - .long 3037632470 - .long 1058406400 - .long 1057544128 - .long 865017195 - .long 1058275328 - .long 1057769344 - .long 3042936546 - .long 1058275328 - .long 1057769344 - .long 3042936546 - .long 1058144256 - .long 1057997568 - .long 903344518 - .long 1058013184 - .long 1058228992 - .long 897862967 - .long 1058013184 - .long 1058228992 - .long 897862967 - .long 1057882112 - .long 1058463680 - .long 3047822280 - .long 1057882112 - .long 1058463680 - .long 3047822280 - .long 1057751040 - .long 1058701632 - .long 883793293 - .long 1057619968 - .long 1058943040 - .long 851667963 - .long 1057619968 - .long 1058943040 - .long 851667963 - .long 1057488896 - .long 1059187968 - .long 3000004036 - .long 1057488896 - .long 1059187968 - .long 3000004036 - .long 1057357824 - .long 1059436544 - .long 3047430717 - .long 1057357824 - .long 1059436544 - .long 3047430717 - .long 1057226752 - .long 1059688832 - .long 3043802308 - .long 1057226752 - .long 1059688832 - .long 3043802308 - .long 1057095680 - .long 1059944960 - .long 876113044 - .long 1057095680 - .long 1059944960 - .long 876113044 - .long 1056964608 - .long 1060205056 - .long 901758606 - .long 1060205056 - .long 901758606 - .long 1207959616 - .long 1174405120 - .long 1008730112 - .long 1400897536 - .long 0 - .long 1065353216 - .long 3204448256 - .long 1051372203 - .long 3196059648 - .long 1045220557 - .long 3190467243 - .long 1041387009 - .long 3187672480 - .type __slog1p_la_CoutTab,@object - .size __slog1p_la_CoutTab,840 - .align 4 -.L_2il0floatpacket.75: - .long 0x53800000 - .type .L_2il0floatpacket.75,@object - .size .L_2il0floatpacket.75,4 - .align 4 -.L_2il0floatpacket.76: - .long 0x3c200000 - .type .L_2il0floatpacket.76,@object - .size .L_2il0floatpacket.76,4 - .align 4 -.L_2il0floatpacket.77: - .long 0xbf000000 - .type .L_2il0floatpacket.77,@object - .size .L_2il0floatpacket.77,4 - .align 4 -.L_2il0floatpacket.78: - .long 0x3eaaaaab - .type .L_2il0floatpacket.78,@object - .size .L_2il0floatpacket.78,4 - .align 4 -.L_2il0floatpacket.79: - .long 0xbe800000 - .type .L_2il0floatpacket.79,@object - .size .L_2il0floatpacket.79,4 - .align 4 -.L_2il0floatpacket.80: - .long 0x3e4ccccd - .type .L_2il0floatpacket.80,@object - .size .L_2il0floatpacket.80,4 - .align 4 -.L_2il0floatpacket.81: - .long 0xbe2aaaab - .type .L_2il0floatpacket.81,@object - .size .L_2il0floatpacket.81,4 - .align 4 -.L_2il0floatpacket.82: - .long 0x3e124e01 - .type .L_2il0floatpacket.82,@object - .size .L_2il0floatpacket.82,4 - .align 4 -.L_2il0floatpacket.83: - .long 0xbe0005a0 - .type .L_2il0floatpacket.83,@object - .size .L_2il0floatpacket.83,4 - .align 4 -.L_2il0floatpacket.84: - .long 0xbf800000 - .type .L_2il0floatpacket.84,@object - .size .L_2il0floatpacket.84,4 - .align 4 -.L_2il0floatpacket.85: - .long 0x3f317218 - .type .L_2il0floatpacket.85,@object - .size .L_2il0floatpacket.85,4 - .align 4 -.L_2il0floatpacket.86: - .long 0x3f317200 - .type .L_2il0floatpacket.86,@object - .size .L_2il0floatpacket.86,4 - .align 4 -.L_2il0floatpacket.87: - .long 0x35bfbe8e - .type .L_2il0floatpacket.87,@object - .size .L_2il0floatpacket.87,4 - .align 4 -.L_2il0floatpacket.88: - .long 0x48000040 - .type .L_2il0floatpacket.88,@object - .size .L_2il0floatpacket.88,4 - .align 4 -.L_2il0floatpacket.89: - .long 0x46000000 - .type .L_2il0floatpacket.89,@object - .size .L_2il0floatpacket.89,4 - .align 4 -.L_2il0floatpacket.90: - .long 0x3f800000 - .type .L_2il0floatpacket.90,@object - .size .L_2il0floatpacket.90,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log2_d_la.s b/numpy/core/src/umath/svml/svml_z0_log2_d_la.s deleted file mode 100644 index 89d3bbca9f93..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log2_d_la.s +++ /dev/null @@ -1,1714 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * log2(x) = VGETEXP(x) + log2(VGETMANT(x)) - * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) - * * mx = VGETMANT(x) is in [1,2) for all x>=0 - * * log2(mx) = -log2(RCP(mx)) + log2(1 +(mx*RCP(mx)-1)) - * * RCP(mx) is rounded to 4 fractional bits, - * * and the table lookup for log(RCP(mx)) is based on a small permute instruction - * * - * - */ - - - .text -.L_2__routine_start___svml_log28_z0_0: - - .align 16,0x90 - .globl __svml_log28 - -__svml_log28: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovaps %zmm0, %zmm7 - -/* GetMant(x), normalized to [1,2) for x>=0, NaN for x<0 */ - vgetmantpd $8, {sae}, %zmm7, %zmm6 - vmovups 128+__svml_dlog2_data_internal_avx512(%rip), %zmm2 - vmovups 512+__svml_dlog2_data_internal_avx512(%rip), %zmm12 - vmovups 640+__svml_dlog2_data_internal_avx512(%rip), %zmm13 - -/* Start polynomial evaluation */ - vmovups 256+__svml_dlog2_data_internal_avx512(%rip), %zmm10 - vmovups 320+__svml_dlog2_data_internal_avx512(%rip), %zmm0 - vmovups 384+__svml_dlog2_data_internal_avx512(%rip), %zmm11 - vmovups 448+__svml_dlog2_data_internal_avx512(%rip), %zmm14 - -/* Prepare exponent correction: DblRcp<0.75? */ - vmovups 192+__svml_dlog2_data_internal_avx512(%rip), %zmm1 - -/* Table lookup */ - vmovups __svml_dlog2_data_internal_avx512(%rip), %zmm4 - -/* GetExp(x) */ - vgetexppd {sae}, %zmm7, %zmm5 - -/* DblRcp ~ 1/Mantissa */ - vrcp14pd %zmm6, %zmm8 - -/* x<=0? */ - vfpclasspd $94, %zmm7, %k0 - -/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ - vrndscalepd $88, {sae}, %zmm8, %zmm3 - vmovups 576+__svml_dlog2_data_internal_avx512(%rip), %zmm8 - kmovw %k0, %edx - -/* Reduced argument: R = DblRcp*Mantissa - 1 */ - vfmsub213pd {rn-sae}, %zmm2, %zmm3, %zmm6 - vcmppd $17, {sae}, %zmm1, %zmm3, %k1 - vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm8 - vmovups 704+__svml_dlog2_data_internal_avx512(%rip), %zmm12 - vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm0 - vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 - vmovups 768+__svml_dlog2_data_internal_avx512(%rip), %zmm1 - -/* R^2 */ - vmulpd {rn-sae}, %zmm6, %zmm6, %zmm15 - vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12 - -/* Prepare table index */ - vpsrlq $48, %zmm3, %zmm9 - -/* add 1 to Expon if DblRcp<0.75 */ - vaddpd {rn-sae}, %zmm2, %zmm5, %zmm5{%k1} - vmulpd {rn-sae}, %zmm15, %zmm15, %zmm13 - vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm0 - vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm8 - vpermt2pd 64+__svml_dlog2_data_internal_avx512(%rip), %zmm9, %zmm4 - -/* polynomial */ - vfmadd213pd {rn-sae}, %zmm8, %zmm13, %zmm0 - vfmadd213pd {rn-sae}, %zmm1, %zmm6, %zmm0 - vfmadd213pd {rn-sae}, %zmm4, %zmm0, %zmm6 - vaddpd {rn-sae}, %zmm6, %zmm5, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm7, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dlog2_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_log28,@function - .size __svml_log28,.-__svml_log28 -..LN__svml_log28.0: - -.L_2__routine_start___svml_dlog2_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dlog2_cout_rare_internal: - - - .cfi_startproc -..L53: - - movq $0, -64(%rsp) - movsd -64(%rsp), %xmm0 - movsd (%rdi), %xmm1 - movups _zeros.402.0.0.1(%rip), %xmm2 - subsd %xmm0, %xmm1 - movsd %xmm1, -8(%rsp) - movups %xmm2, -56(%rsp) - - - movups _ones.402.0.0.1(%rip), %xmm0 - movups %xmm0, -40(%rsp) - - - movups _infs.402.0.0.1(%rip), %xmm0 - movups %xmm0, -24(%rsp) - - - movl -4(%rsp), %eax - cmpl $2146435072, %eax - jae .LBL_2_19 - - - lea -1072660480(%rax), %edx - cmpl $53248, %edx - jae .LBL_2_14 - - - lea -1072693232(%rax), %edx - cmpl $24, %edx - jae .LBL_2_13 - - - movl -8(%rsp), %edi - movl %eax, %ecx - movl %edi, %edx - shll $11, %ecx - shrl $21, %edx - orl %edx, %ecx - addl $-2147483646, %ecx - cmpl $3, %ecx - jae .LBL_2_12 - - - addl $-1072693248, %eax - orl %edi, %eax - jne .LBL_2_10 - - - movq -56(%rsp), %rax - movq %rax, (%rsi) - jmp .LBL_2_11 - -.LBL_2_10: - - movsd -8(%rsp), %xmm0 - movsd 16+__dlog2_la__Q3(%rip), %xmm2 - movsd 24+__dlog2_la__Q3(%rip), %xmm1 - addsd -32(%rsp), %xmm0 - mulsd %xmm0, %xmm2 - mulsd %xmm0, %xmm1 - addsd 8+__dlog2_la__Q3(%rip), %xmm2 - mulsd %xmm0, %xmm2 - movsd %xmm0, -8(%rsp) - addsd __dlog2_la__Q3(%rip), %xmm2 - mulsd %xmm0, %xmm2 - addsd %xmm1, %xmm2 - movsd %xmm2, (%rsi) - -.LBL_2_11: - - xorl %eax, %eax - ret - -.LBL_2_12: - - movsd -8(%rsp), %xmm2 - xorl %eax, %eax - movsd 16+__dlog2_la__Q2(%rip), %xmm1 - movsd 24+__dlog2_la__Q2(%rip), %xmm3 - addsd -32(%rsp), %xmm2 - movaps %xmm2, %xmm0 - mulsd %xmm2, %xmm0 - mulsd %xmm0, %xmm1 - mulsd %xmm0, %xmm3 - addsd __dlog2_la__Q2(%rip), %xmm1 - addsd 8+__dlog2_la__Q2(%rip), %xmm3 - mulsd %xmm2, %xmm1 - mulsd %xmm0, %xmm3 - movsd %xmm2, -8(%rsp) - addsd %xmm1, %xmm3 - movl $0, -8(%rsp) - movsd -8(%rsp), %xmm4 - subsd %xmm4, %xmm2 - addsd %xmm2, %xmm4 - mulsd 32+__dlog2_la__Q2(%rip), %xmm4 - addsd %xmm3, %xmm4 - movsd %xmm4, (%rsi) - ret - -.LBL_2_13: - - movsd -8(%rsp), %xmm2 - xorl %eax, %eax - movsd 72+__dlog2_la__Q1(%rip), %xmm10 - movsd 64+__dlog2_la__Q1(%rip), %xmm4 - movsd __dlog2_la__TWO_32P(%rip), %xmm5 - movsd __dlog2_la__TWO_32P(%rip), %xmm7 - movsd 88+__dlog2_la__Q1(%rip), %xmm14 - movsd __dlog2_la__TWO_32P(%rip), %xmm11 - movsd __dlog2_la__TWO_32P(%rip), %xmm15 - addsd -32(%rsp), %xmm2 - movaps %xmm2, %xmm3 - movaps %xmm2, %xmm6 - mulsd %xmm2, %xmm3 - movaps %xmm2, %xmm0 - mulsd %xmm2, %xmm5 - mulsd __dlog2_la__TWO_32(%rip), %xmm6 - mulsd %xmm3, %xmm10 - mulsd %xmm3, %xmm4 - addsd 56+__dlog2_la__Q1(%rip), %xmm10 - addsd 48+__dlog2_la__Q1(%rip), %xmm4 - mulsd %xmm3, %xmm10 - mulsd %xmm3, %xmm4 - addsd 40+__dlog2_la__Q1(%rip), %xmm10 - addsd 32+__dlog2_la__Q1(%rip), %xmm4 - mulsd %xmm3, %xmm10 - mulsd %xmm3, %xmm4 - addsd 24+__dlog2_la__Q1(%rip), %xmm10 - addsd 16+__dlog2_la__Q1(%rip), %xmm4 - mulsd %xmm3, %xmm10 - mulsd %xmm2, %xmm4 - movsd __dlog2_la__TWO_32(%rip), %xmm3 - addsd %xmm4, %xmm10 - mulsd %xmm10, %xmm7 - movaps %xmm3, %xmm8 - mulsd %xmm10, %xmm8 - movsd %xmm5, -72(%rsp) - movsd -72(%rsp), %xmm1 - movsd %xmm7, -72(%rsp) - subsd %xmm6, %xmm1 - movsd -72(%rsp), %xmm9 - subsd %xmm1, %xmm0 - subsd %xmm8, %xmm9 - movsd %xmm1, -8(%rsp) - subsd %xmm9, %xmm10 - addsd %xmm9, %xmm14 - addsd 8+__dlog2_la__Q1(%rip), %xmm10 - movaps %xmm14, %xmm4 - mulsd %xmm0, %xmm4 - mulsd %xmm2, %xmm10 - mulsd %xmm1, %xmm14 - addsd %xmm0, %xmm1 - addsd %xmm10, %xmm4 - movaps %xmm4, %xmm12 - movsd 80+__dlog2_la__Q1(%rip), %xmm9 - addsd %xmm14, %xmm12 - mulsd %xmm12, %xmm11 - mulsd %xmm3, %xmm12 - movsd %xmm11, -72(%rsp) - movsd -72(%rsp), %xmm13 - subsd %xmm12, %xmm13 - subsd %xmm13, %xmm4 - addsd %xmm13, %xmm9 - addsd %xmm14, %xmm4 - movaps %xmm9, %xmm13 - addsd __dlog2_la__Q1(%rip), %xmm4 - addsd %xmm4, %xmm13 - mulsd %xmm13, %xmm15 - mulsd %xmm3, %xmm13 - movsd %xmm15, -72(%rsp) - movsd -72(%rsp), %xmm14 - subsd %xmm13, %xmm14 - mulsd %xmm14, %xmm1 - subsd %xmm14, %xmm9 - addsd %xmm9, %xmm4 - mulsd %xmm2, %xmm4 - addsd %xmm4, %xmm1 - movsd %xmm1, (%rsi) - ret - -.LBL_2_14: - - movl %eax, %ecx - movl %eax, %edx - shrl $20, %ecx - andl $1048575, %edx - addl $-1023, %ecx - cmpl $1048576, %eax - jae .LBL_2_18 - - - movl %edx, -4(%rsp) - movl -8(%rsp), %edx - orl %edx, %eax - jne .LBL_2_17 - - - movsd -32(%rsp), %xmm0 - movl $2, %eax - divsd -56(%rsp), %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_17: - - movsd -8(%rsp), %xmm0 - mulsd __dlog2_la__TWO_55(%rip), %xmm0 - movsd %xmm0, -8(%rsp) - movl -4(%rsp), %edx - movl %edx, %ecx - shrl $20, %ecx - movl %edx, %eax - addl $-1078, %ecx - -.LBL_2_18: - - shrl $12, %eax - orl $1072693248, %edx - movzbl %al, %edi - pxor %xmm7, %xmm7 - movl %edx, -4(%rsp) - lea __dlog2_la___libm_rcp_table_256(%rip), %rdx - movsd -8(%rsp), %xmm10 - pxor %xmm8, %xmm8 - movl $0, -8(%rsp) - lea __dlog2_la___libm_log2_table_256(%rip), %rax - movsd -8(%rsp), %xmm0 - cvtss2sd (%rdx,%rdi,4), %xmm7 - cvtsi2sd %ecx, %xmm8 - subsd %xmm0, %xmm10 - mulsd %xmm7, %xmm10 - mulsd %xmm0, %xmm7 - movsd 40+__dlog2_la__P(%rip), %xmm4 - movsd 32+__dlog2_la__P(%rip), %xmm3 - movsd 48+__dlog2_la__P(%rip), %xmm5 - movsd __dlog2_la__TWO_32(%rip), %xmm6 - shlq $4, %rdi - addsd -32(%rsp), %xmm7 - movaps %xmm7, %xmm2 - mulsd %xmm5, %xmm7 - addsd %xmm10, %xmm2 - mulsd %xmm5, %xmm10 - addsd %xmm7, %xmm6 - movaps %xmm2, %xmm1 - mulsd %xmm2, %xmm1 - mulsd %xmm1, %xmm4 - mulsd %xmm1, %xmm3 - addsd 24+__dlog2_la__P(%rip), %xmm4 - addsd 16+__dlog2_la__P(%rip), %xmm3 - mulsd %xmm1, %xmm4 - mulsd %xmm1, %xmm3 - addsd 8+__dlog2_la__P(%rip), %xmm4 - addsd __dlog2_la__P(%rip), %xmm3 - mulsd %xmm1, %xmm4 - mulsd %xmm2, %xmm3 - movsd %xmm6, -72(%rsp) - addsd %xmm3, %xmm4 - addsd 8(%rax,%rdi), %xmm8 - addsd %xmm4, %xmm10 - movsd -72(%rsp), %xmm9 - subsd __dlog2_la__TWO_32(%rip), %xmm9 - subsd %xmm9, %xmm7 - addsd %xmm8, %xmm9 - addsd (%rax,%rdi), %xmm7 - movsd %xmm9, -8(%rsp) - xorl %eax, %eax - addsd %xmm7, %xmm10 - addsd %xmm9, %xmm10 - movsd %xmm10, (%rsi) - ret - -.LBL_2_19: - - movl %eax, %edx - andl $2147483647, %edx - cmpl $2146435072, %edx - ja .LBL_2_28 - - - jne .LBL_2_22 - - - cmpl $0, -8(%rsp) - jne .LBL_2_28 - -.LBL_2_22: - - testl $-2147483648, %eax - je .LBL_2_27 - - - movl -8(%rsp), %eax - orl %eax, %edx - movsd -56(%rsp), %xmm1 - jne .LBL_2_25 - - - movsd -32(%rsp), %xmm0 - movl $2, %eax - divsd %xmm1, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_25: - - movsd -24(%rsp), %xmm0 - movl $1, %eax - mulsd %xmm1, %xmm0 - movsd %xmm0, (%rsi) - - - ret - -.LBL_2_27: - - movq -8(%rsp), %rax - movq %rax, (%rsi) - xorl %eax, %eax - ret - -.LBL_2_28: - - movsd -8(%rsp), %xmm0 - xorl %eax, %eax - mulsd -40(%rsp), %xmm0 - movsd %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dlog2_cout_rare_internal,@function - .size __svml_dlog2_cout_rare_internal,.-__svml_dlog2_cout_rare_internal -..LN__svml_dlog2_cout_rare_internal.1: - .section .rodata, "a" - .align 64 - .align 16 -_zeros.402.0.0.1: - .long 0 - .long 0 - .long 0 - .long 2147483648 - .align 16 -_ones.402.0.0.1: - .long 0 - .long 1072693248 - .long 0 - .long 3220176896 - .align 16 -_infs.402.0.0.1: - .long 0 - .long 2146435072 - .long 0 - .long 4293918720 - - .section .rodata, "a" - .space 16, 0x00 - .align 64 -__svml_dlog2_data_internal_avx512: - .long 0 - .long 0 - .long 4207481622 - .long 3216401398 - .long 972805768 - .long 3217408026 - .long 3103942666 - .long 3218062358 - .long 1271733131 - .long 3218381432 - .long 2300516105 - .long 3218676666 - .long 3761433103 - .long 3218958163 - .long 14039718 - .long 3219177733 - .long 1904282206 - .long 1071288313 - .long 1751501034 - .long 1071041295 - .long 3815829096 - .long 1070803966 - .long 2835758645 - .long 1070555096 - .long 180337970 - .long 1070114968 - .long 3266000023 - .long 1069690285 - .long 2530196300 - .long 1069012484 - .long 3386464469 - .long 1067938708 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 3658358034 - .long 1069846603 - .long 3658358034 - .long 1069846603 - .long 3658358034 - .long 1069846603 - .long 3658358034 - .long 1069846603 - .long 3658358034 - .long 1069846603 - .long 3658358034 - .long 1069846603 - .long 3658358034 - .long 1069846603 - .long 3658358034 - .long 1069846603 - .long 1307270350 - .long 3217498040 - .long 1307270350 - .long 3217498040 - .long 1307270350 - .long 3217498040 - .long 1307270350 - .long 3217498040 - .long 1307270350 - .long 3217498040 - .long 1307270350 - .long 3217498040 - .long 1307270350 - .long 3217498040 - .long 1307270350 - .long 3217498040 - .long 1367442963 - .long 1070227827 - .long 1367442963 - .long 1070227827 - .long 1367442963 - .long 1070227827 - .long 1367442963 - .long 1070227827 - .long 1367442963 - .long 1070227827 - .long 1367442963 - .long 1070227827 - .long 1367442963 - .long 1070227827 - .long 1367442963 - .long 1070227827 - .long 3840087116 - .long 3217999623 - .long 3840087116 - .long 3217999623 - .long 3840087116 - .long 3217999623 - .long 3840087116 - .long 3217999623 - .long 3840087116 - .long 3217999623 - .long 3840087116 - .long 3217999623 - .long 3840087116 - .long 3217999623 - .long 3840087116 - .long 3217999623 - .long 1360320794 - .long 1070757740 - .long 1360320794 - .long 1070757740 - .long 1360320794 - .long 1070757740 - .long 1360320794 - .long 1070757740 - .long 1360320794 - .long 1070757740 - .long 1360320794 - .long 1070757740 - .long 1360320794 - .long 1070757740 - .long 1360320794 - .long 1070757740 - .long 1698500493 - .long 3218543943 - .long 1698500493 - .long 3218543943 - .long 1698500493 - .long 3218543943 - .long 1698500493 - .long 3218543943 - .long 1698500493 - .long 3218543943 - .long 1698500493 - .long 3218543943 - .long 1698500493 - .long 3218543943 - .long 1698500493 - .long 3218543943 - .long 3694789279 - .long 1071564553 - .long 3694789279 - .long 1071564553 - .long 3694789279 - .long 1071564553 - .long 3694789279 - .long 1071564553 - .long 3694789279 - .long 1071564553 - .long 3694789279 - .long 1071564553 - .long 3694789279 - .long 1071564553 - .long 3694789279 - .long 1071564553 - .long 1697350356 - .long 3219592519 - .long 1697350356 - .long 3219592519 - .long 1697350356 - .long 3219592519 - .long 1697350356 - .long 3219592519 - .long 1697350356 - .long 3219592519 - .long 1697350356 - .long 3219592519 - .long 1697350356 - .long 3219592519 - .long 1697350356 - .long 3219592519 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .type __svml_dlog2_data_internal_avx512,@object - .size __svml_dlog2_data_internal_avx512,1088 - .align 64 -__dlog2_la__Q3: - .long 3213221364 - .long 1050233568 - .long 1697350398 - .long 3219592519 - .long 3694789629 - .long 1071564553 - .long 0 - .long 1073157447 - .type __dlog2_la__Q3,@object - .size __dlog2_la__Q3,32 - .space 32, 0x00 - .align 64 -__dlog2_la__Q2: - .long 3213221358 - .long 1050233568 - .long 1697350398 - .long 3219592519 - .long 3695167823 - .long 1071564553 - .long 1697791998 - .long 3218543943 - .long 0 - .long 1073157447 - .type __dlog2_la__Q2,@object - .size __dlog2_la__Q2,40 - .space 24, 0x00 - .align 64 -__dlog2_la__Q1: - .long 3213221370 - .long 1050233568 - .long 3213207734 - .long 3196668640 - .long 3694789628 - .long 1071564553 - .long 1697350743 - .long 3218543943 - .long 1357908666 - .long 1070757740 - .long 3685007067 - .long 3217999625 - .long 96832070 - .long 1070227830 - .long 1140452344 - .long 3217495379 - .long 2606274745 - .long 1069844296 - .long 1933654871 - .long 3217172449 - .long 0 - .long 1073157447 - .long 0 - .long 3219592519 - .type __dlog2_la__Q1,@object - .size __dlog2_la__Q1,96 - .space 32, 0x00 - .align 64 -__dlog2_la__TWO_32P: - .long 1048576 - .long 1106247680 - .type __dlog2_la__TWO_32P,@object - .size __dlog2_la__TWO_32P,8 - .space 56, 0x00 - .align 64 -__dlog2_la__TWO_32: - .long 0 - .long 1106247680 - .type __dlog2_la__TWO_32,@object - .size __dlog2_la__TWO_32,8 - .space 56, 0x00 - .align 64 -__dlog2_la__TWO_55: - .long 0 - .long 1130364928 - .type __dlog2_la__TWO_55,@object - .size __dlog2_la__TWO_55,8 - .space 56, 0x00 - .align 64 -__dlog2_la___libm_rcp_table_256: - .long 0x3f7f8000 - .long 0x3f7e8000 - .long 0x3f7d8000 - .long 0x3f7c8000 - .long 0x3f7ba000 - .long 0x3f7aa000 - .long 0x3f79a000 - .long 0x3f78c000 - .long 0x3f77c000 - .long 0x3f76e000 - .long 0x3f75e000 - .long 0x3f750000 - .long 0x3f742000 - .long 0x3f732000 - .long 0x3f724000 - .long 0x3f716000 - .long 0x3f708000 - .long 0x3f6fa000 - .long 0x3f6ec000 - .long 0x3f6de000 - .long 0x3f6d0000 - .long 0x3f6c2000 - .long 0x3f6b6000 - .long 0x3f6a8000 - .long 0x3f69a000 - .long 0x3f68c000 - .long 0x3f680000 - .long 0x3f672000 - .long 0x3f666000 - .long 0x3f658000 - .long 0x3f64c000 - .long 0x3f640000 - .long 0x3f632000 - .long 0x3f626000 - .long 0x3f61a000 - .long 0x3f60e000 - .long 0x3f600000 - .long 0x3f5f4000 - .long 0x3f5e8000 - .long 0x3f5dc000 - .long 0x3f5d0000 - .long 0x3f5c4000 - .long 0x3f5b8000 - .long 0x3f5ae000 - .long 0x3f5a2000 - .long 0x3f596000 - .long 0x3f58a000 - .long 0x3f57e000 - .long 0x3f574000 - .long 0x3f568000 - .long 0x3f55e000 - .long 0x3f552000 - .long 0x3f546000 - .long 0x3f53c000 - .long 0x3f532000 - .long 0x3f526000 - .long 0x3f51c000 - .long 0x3f510000 - .long 0x3f506000 - .long 0x3f4fc000 - .long 0x3f4f2000 - .long 0x3f4e6000 - .long 0x3f4dc000 - .long 0x3f4d2000 - .long 0x3f4c8000 - .long 0x3f4be000 - .long 0x3f4b4000 - .long 0x3f4aa000 - .long 0x3f4a0000 - .long 0x3f496000 - .long 0x3f48c000 - .long 0x3f482000 - .long 0x3f478000 - .long 0x3f46e000 - .long 0x3f464000 - .long 0x3f45c000 - .long 0x3f452000 - .long 0x3f448000 - .long 0x3f43e000 - .long 0x3f436000 - .long 0x3f42c000 - .long 0x3f422000 - .long 0x3f41a000 - .long 0x3f410000 - .long 0x3f408000 - .long 0x3f3fe000 - .long 0x3f3f6000 - .long 0x3f3ec000 - .long 0x3f3e4000 - .long 0x3f3da000 - .long 0x3f3d2000 - .long 0x3f3ca000 - .long 0x3f3c0000 - .long 0x3f3b8000 - .long 0x3f3b0000 - .long 0x3f3a8000 - .long 0x3f39e000 - .long 0x3f396000 - .long 0x3f38e000 - .long 0x3f386000 - .long 0x3f37e000 - .long 0x3f376000 - .long 0x3f36c000 - .long 0x3f364000 - .long 0x3f35c000 - .long 0x3f354000 - .long 0x3f34c000 - .long 0x3f344000 - .long 0x3f33c000 - .long 0x3f334000 - .long 0x3f32e000 - .long 0x3f326000 - .long 0x3f31e000 - .long 0x3f316000 - .long 0x3f30e000 - .long 0x3f306000 - .long 0x3f2fe000 - .long 0x3f2f8000 - .long 0x3f2f0000 - .long 0x3f2e8000 - .long 0x3f2e2000 - .long 0x3f2da000 - .long 0x3f2d2000 - .long 0x3f2cc000 - .long 0x3f2c4000 - .long 0x3f2bc000 - .long 0x3f2b6000 - .long 0x3f2ae000 - .long 0x3f2a8000 - .long 0x3f2a0000 - .long 0x3f29a000 - .long 0x3f292000 - .long 0x3f28c000 - .long 0x3f284000 - .long 0x3f27e000 - .long 0x3f276000 - .long 0x3f270000 - .long 0x3f268000 - .long 0x3f262000 - .long 0x3f25c000 - .long 0x3f254000 - .long 0x3f24e000 - .long 0x3f248000 - .long 0x3f240000 - .long 0x3f23a000 - .long 0x3f234000 - .long 0x3f22e000 - .long 0x3f226000 - .long 0x3f220000 - .long 0x3f21a000 - .long 0x3f214000 - .long 0x3f20e000 - .long 0x3f206000 - .long 0x3f200000 - .long 0x3f1fa000 - .long 0x3f1f4000 - .long 0x3f1ee000 - .long 0x3f1e8000 - .long 0x3f1e2000 - .long 0x3f1dc000 - .long 0x3f1d6000 - .long 0x3f1d0000 - .long 0x3f1ca000 - .long 0x3f1c4000 - .long 0x3f1be000 - .long 0x3f1b8000 - .long 0x3f1b2000 - .long 0x3f1ac000 - .long 0x3f1a6000 - .long 0x3f1a0000 - .long 0x3f19a000 - .long 0x3f194000 - .long 0x3f190000 - .long 0x3f18a000 - .long 0x3f184000 - .long 0x3f17e000 - .long 0x3f178000 - .long 0x3f172000 - .long 0x3f16e000 - .long 0x3f168000 - .long 0x3f162000 - .long 0x3f15c000 - .long 0x3f158000 - .long 0x3f152000 - .long 0x3f14c000 - .long 0x3f148000 - .long 0x3f142000 - .long 0x3f13c000 - .long 0x3f138000 - .long 0x3f132000 - .long 0x3f12c000 - .long 0x3f128000 - .long 0x3f122000 - .long 0x3f11c000 - .long 0x3f118000 - .long 0x3f112000 - .long 0x3f10e000 - .long 0x3f108000 - .long 0x3f104000 - .long 0x3f0fe000 - .long 0x3f0f8000 - .long 0x3f0f4000 - .long 0x3f0ee000 - .long 0x3f0ea000 - .long 0x3f0e6000 - .long 0x3f0e0000 - .long 0x3f0dc000 - .long 0x3f0d6000 - .long 0x3f0d2000 - .long 0x3f0cc000 - .long 0x3f0c8000 - .long 0x3f0c2000 - .long 0x3f0be000 - .long 0x3f0ba000 - .long 0x3f0b4000 - .long 0x3f0b0000 - .long 0x3f0ac000 - .long 0x3f0a6000 - .long 0x3f0a2000 - .long 0x3f09e000 - .long 0x3f098000 - .long 0x3f094000 - .long 0x3f090000 - .long 0x3f08a000 - .long 0x3f086000 - .long 0x3f082000 - .long 0x3f07e000 - .long 0x3f078000 - .long 0x3f074000 - .long 0x3f070000 - .long 0x3f06c000 - .long 0x3f066000 - .long 0x3f062000 - .long 0x3f05e000 - .long 0x3f05a000 - .long 0x3f056000 - .long 0x3f052000 - .long 0x3f04c000 - .long 0x3f048000 - .long 0x3f044000 - .long 0x3f040000 - .long 0x3f03c000 - .long 0x3f038000 - .long 0x3f034000 - .long 0x3f030000 - .long 0x3f02a000 - .long 0x3f026000 - .long 0x3f022000 - .long 0x3f01e000 - .long 0x3f01a000 - .long 0x3f016000 - .long 0x3f012000 - .long 0x3f00e000 - .long 0x3f00a000 - .long 0x3f006000 - .long 0x3f002000 - .type __dlog2_la___libm_rcp_table_256,@object - .size __dlog2_la___libm_rcp_table_256,1024 - .align 64 -__dlog2_la___libm_log2_table_256: - .long 0xfb44c3b7,0x3e1485cb - .long 0x00000000,0x3f671b0e - .long 0x06028ac0,0x3e31d5d9 - .long 0x00000000,0x3f815cfe - .long 0xb8d7240b,0x3df8b9cb - .long 0x00000000,0x3f8cfee7 - .long 0x0d179106,0x3e38864a - .long 0x00000000,0x3f94564a - .long 0xecba1593,0x3e459c6a - .long 0x00000000,0x3f997723 - .long 0x94120c14,0x3e48d36a - .long 0x00000000,0x3f9f5923 - .long 0xd2571490,0x3e5410ba - .long 0x00000000,0x3fa2a094 - .long 0x1dc036a2,0x3e2776b0 - .long 0x00000000,0x3fa53894 - .long 0x78efe2b1,0x3e537229 - .long 0x00000000,0x3fa8324c - .long 0xfd29dc75,0x3e59c0fa - .long 0x00000000,0x3faacf54 - .long 0x046734f7,0x3e4636b7 - .long 0x00000000,0x3fadced9 - .long 0xd3b410b8,0x3e6f7950 - .long 0x00000000,0x3fb0387e - .long 0x00f2200a,0x3e19d1e7 - .long 0x00000000,0x3fb18ac6 - .long 0x8661ba82,0x3e4f09a9 - .long 0x00000000,0x3fb30edd - .long 0x9367107c,0x3e564d91 - .long 0x00000000,0x3fb463c1 - .long 0x0e4a4ce8,0x3e4e1fd1 - .long 0x00000000,0x3fb5b9e1 - .long 0x3cdb6374,0x3e492cf0 - .long 0x00000000,0x3fb7113f - .long 0x069c4f7f,0x3e61a364 - .long 0x00000000,0x3fb869dd - .long 0x427b631b,0x3e6493a6 - .long 0x00000000,0x3fb9c3be - .long 0xe02b3e8b,0x3e6af2c2 - .long 0x00000000,0x3fbb1ee4 - .long 0x389f4365,0x3e616e1e - .long 0x00000000,0x3fbc7b52 - .long 0x6a31fd96,0x3e4633b7 - .long 0x00000000,0x3fbdd90a - .long 0x0508664d,0x3e62ed84 - .long 0x00000000,0x3fbf05d4 - .long 0xaca1905c,0x3e775dcd - .long 0x00000000,0x3fc032fb - .long 0x094fbeeb,0x3e753e65 - .long 0x00000000,0x3fc0e3b5 - .long 0x96aa4b17,0x3e671f44 - .long 0x00000000,0x3fc19519 - .long 0x92da5a47,0x3e785566 - .long 0x00000000,0x3fc22dad - .long 0xbeb7d722,0x3e518efa - .long 0x00000000,0x3fc2e050 - .long 0xab57551c,0x3e738564 - .long 0x00000000,0x3fc379f7 - .long 0x54a914e3,0x3e55d0da - .long 0x00000000,0x3fc42ddd - .long 0xfe974017,0x3e73cd00 - .long 0x00000000,0x3fc4c89b - .long 0x59064390,0x3e54ffd6 - .long 0x00000000,0x3fc563dc - .long 0x633ab50f,0x3e67d75e - .long 0x00000000,0x3fc619a2 - .long 0xc8877e8a,0x3e77e6ce - .long 0x00000000,0x3fc6b5ff - .long 0x1ab7837f,0x3e7ecc1f - .long 0x00000000,0x3fc752e1 - .long 0xf9d5827a,0x3e7cea7c - .long 0x00000000,0x3fc7f049 - .long 0x64ccd537,0x3e357f7a - .long 0x00000000,0x3fc8a898 - .long 0xf7c9b05b,0x3e7994ca - .long 0x00000000,0x3fc94724 - .long 0xa2f56536,0x3e524b8f - .long 0x00000000,0x3fc9e63a - .long 0x5edaab42,0x3e7fd640 - .long 0x00000000,0x3fca85d8 - .long 0xd163379a,0x3e625f54 - .long 0x00000000,0x3fcb2602 - .long 0x936acd51,0x3e7ebdc3 - .long 0x00000000,0x3fcbc6b6 - .long 0xcfbc0aa0,0x3e7eee14 - .long 0x00000000,0x3fcc67f7 - .long 0xf73bcdad,0x3e764469 - .long 0x00000000,0x3fcceec4 - .long 0x60971b86,0x3e6eb44e - .long 0x00000000,0x3fcd9109 - .long 0xcd2052a5,0x3e65fcf4 - .long 0x00000000,0x3fce33dd - .long 0xc402867b,0x3e61af1e - .long 0x00000000,0x3fced741 - .long 0xa0c956e4,0x3e61bfbd - .long 0x00000000,0x3fcf7b36 - .long 0x831e77ff,0x3e85287b - .long 0x00000000,0x3fd00223 - .long 0xaddfdee2,0x3e7d2fc3 - .long 0x00000000,0x3fd054a4 - .long 0x342052c1,0x3e83724b - .long 0x00000000,0x3fd0999d - .long 0x602bcd34,0x3e7b4ec9 - .long 0x00000000,0x3fd0eca6 - .long 0x3aa20ead,0x3e6742da - .long 0x00000000,0x3fd13ffa - .long 0x9ecdadf4,0x3e713e82 - .long 0x00000000,0x3fd185a4 - .long 0xfef3031b,0x3e52f27e - .long 0x00000000,0x3fd1cb83 - .long 0x79e4af8a,0x3e710739 - .long 0x00000000,0x3fd21fa1 - .long 0xe59ad84a,0x3e637301 - .long 0x00000000,0x3fd265f5 - .long 0x3d7dfd9b,0x3e88697c - .long 0x00000000,0x3fd2baa0 - .long 0x738117b0,0x3e717788 - .long 0x00000000,0x3fd3016b - .long 0xd3c26a97,0x3e6c5514 - .long 0x00000000,0x3fd3486c - .long 0x4c4ff246,0x3e8df550 - .long 0x00000000,0x3fd38fa3 - .long 0x40340fa6,0x3e88102d - .long 0x00000000,0x3fd3e562 - .long 0x4592f4c3,0x3e5f53b6 - .long 0x00000000,0x3fd42d14 - .long 0x8b149a00,0x3e750fc8 - .long 0x00000000,0x3fd474fd - .long 0xa8f50e5f,0x3e86d01c - .long 0x00000000,0x3fd4bd1e - .long 0x7a22a88a,0x3e83c469 - .long 0x00000000,0x3fd50578 - .long 0xdc18b6d2,0x3e79000e - .long 0x00000000,0x3fd54e0b - .long 0x7c00250b,0x3e7870f0 - .long 0x00000000,0x3fd596d7 - .long 0xc1c885ae,0x3e8e3dd5 - .long 0x00000000,0x3fd5dfdc - .long 0xa6ecc47e,0x3e7bf64c - .long 0x00000000,0x3fd6291c - .long 0x0bc16c18,0x3e6bdaca - .long 0x00000000,0x3fd67296 - .long 0x1f925729,0x3e84d25c - .long 0x00000000,0x3fd6bc4a - .long 0xf23978de,0x3e5a5fb4 - .long 0x00000000,0x3fd7063a - .long 0xe2ac7f60,0x3e8e3da0 - .long 0x00000000,0x3fd75064 - .long 0x71f51a7b,0x3e819e20 - .long 0x00000000,0x3fd79acb - .long 0x5b924234,0x3e5e43ae - .long 0x00000000,0x3fd7d67c - .long 0xe9aedf37,0x3e701a2b - .long 0x00000000,0x3fd8214f - .long 0xeddd33ea,0x3e6b6f51 - .long 0x00000000,0x3fd86c5f - .long 0xe732b3c4,0x3e79375f - .long 0x00000000,0x3fd8b7ac - .long 0xe47cb9df,0x3e7e831b - .long 0x00000000,0x3fd8f416 - .long 0xe392d3c8,0x3e8abc37 - .long 0x00000000,0x3fd93fd2 - .long 0x28b35c77,0x3e80852d - .long 0x00000000,0x3fd98bcd - .long 0xd29cea36,0x3e69f374 - .long 0x00000000,0x3fd9c8c3 - .long 0xb3d7b0e6,0x3e542981 - .long 0x00000000,0x3fda152f - .long 0x1fe6d5ac,0x3e8b2bfb - .long 0x00000000,0x3fda527f - .long 0xf32e5dda,0x3e6f6f5c - .long 0x00000000,0x3fda9f5e - .long 0xd34d0d30,0x3e65abaa - .long 0x00000000,0x3fdadd0b - .long 0xe0ac9602,0x3e7bd47f - .long 0x00000000,0x3fdb2a5d - .long 0x7c5c784b,0x3e833601 - .long 0x00000000,0x3fdb6867 - .long 0xd7b0821f,0x3e5b887c - .long 0x00000000,0x3fdbb62f - .long 0xcd0a8f6a,0x3e83eccc - .long 0x00000000,0x3fdbf497 - .long 0x7500a4e8,0x3e7ba0e6 - .long 0x00000000,0x3fdc332a - .long 0xfc8712bb,0x3e885a8b - .long 0x00000000,0x3fdc819d - .long 0xf7a3a78f,0x3e81c336 - .long 0x00000000,0x3fdcc090 - .long 0x4ad8a38b,0x3e7846b4 - .long 0x00000000,0x3fdcffae - .long 0xfcfc3a99,0x3e7db50f - .long 0x00000000,0x3fdd3ef7 - .long 0x433cccd2,0x3e238809 - .long 0x00000000,0x3fdd8e50 - .long 0x6828fa82,0x3e721b2e - .long 0x00000000,0x3fddcdfb - .long 0xfc7c49c1,0x3e82848b - .long 0x00000000,0x3fde0dd2 - .long 0x1fce4d49,0x3e615144 - .long 0x00000000,0x3fde4dd6 - .long 0x77e2e8fd,0x3e68b88a - .long 0x00000000,0x3fde8e06 - .long 0x22a961b0,0x3e8fd353 - .long 0x00000000,0x3fdece62 - .long 0x266f2e1f,0x3e72854e - .long 0x00000000,0x3fdf1f16 - .long 0xc69211fe,0x3e8520c7 - .long 0x00000000,0x3fdf5fd8 - .long 0xaba878d5,0x3e826fcf - .long 0x00000000,0x3fdfa0c8 - .long 0xcd5b35b1,0x3e726ed8 - .long 0x00000000,0x3fdfe1e6 - .long 0x678a4f1c,0x3e49054d - .long 0x00000000,0x3fe01199 - .long 0x3bc19f18,0x3e5d23cb - .long 0x00000000,0x3fe03256 - .long 0x12772acb,0x3e87af35 - .long 0x00000000,0x3fe0532a - .long 0x2849c88a,0x3e67f5fc - .long 0x00000000,0x3fe07416 - .long 0x0e574fa1,0x3e84fce2 - .long 0x00000000,0x3fe08cd6 - .long 0x0ec2b5fa,0x3e857044 - .long 0x00000000,0x3fe0adeb - .long 0xd031f353,0x3e6d5d1d - .long 0x00000000,0x3fe0cf18 - .long 0xdae75c4d,0x3e99a159 - .long 0x00000000,0x3fe0f05c - .long 0x1553afb9,0x3e90eaf1 - .long 0x00000000,0x3fe111b9 - .long 0xdcc5c3c7,0x3e8bc6f3 - .long 0x00000000,0x3fe1332e - .long 0x1109e597,0x3e94ef84 - .long 0x00000000,0x3fe154bb - .long 0xd82adea4,0x3e937f40 - .long 0x00000000,0x3fe16df5 - .long 0x78336a2f,0x3e96dc5a - .long 0x00000000,0x3fe18fad - .long 0x84c2c804,0x3e90935b - .long 0x00000000,0x3fe1b17e - .long 0x04fd30aa,0x3e8a837a - .long 0x00000000,0x3fe1caeb - .long 0xd924b0ac,0x3e99061d - .long 0x00000000,0x3fe1ece7 - .long 0xef9b9d01,0x3e7ed700 - .long 0x00000000,0x3fe20efd - .long 0x202c81ec,0x3e9c6ebb - .long 0x00000000,0x3fe2289d - .long 0xfc0d7d76,0x3e936d4d - .long 0x00000000,0x3fe24adf - .long 0x9f8756ba,0x3e9a35d7 - .long 0x00000000,0x3fe26d3a - .long 0xe7c79d83,0x3e584ee3 - .long 0x00000000,0x3fe28710 - .long 0x942065a0,0x3e7d9e0d - .long 0x00000000,0x3fe2a998 - .long 0x2175afbf,0x3e872108 - .long 0x00000000,0x3fe2c38f - .long 0xfaf6283c,0x3e9f5809 - .long 0x00000000,0x3fe2e644 - .long 0x411d0507,0x3e871209 - .long 0x00000000,0x3fe3005e - .long 0x370c24bf,0x3e9c3b11 - .long 0x00000000,0x3fe32341 - .long 0x8044bb5a,0x3e9bce8e - .long 0x00000000,0x3fe33d7d - .long 0x698ea854,0x3e98aca0 - .long 0x00000000,0x3fe3608f - .long 0xd4d873bb,0x3e972a8e - .long 0x00000000,0x3fe37aee - .long 0x615e8182,0x3e8f669b - .long 0x00000000,0x3fe39e2f - .long 0xdda5b49a,0x3e98d1f4 - .long 0x00000000,0x3fe3b8b1 - .long 0xe72383f7,0x3e9cc279 - .long 0x00000000,0x3fe3dc21 - .long 0x497497f1,0x3e9c6774 - .long 0x00000000,0x3fe3f6c7 - .long 0x801bd0e6,0x3e82c7f6 - .long 0x00000000,0x3fe4117d - .long 0xd0ee28b4,0x3e9dfdd6 - .long 0x00000000,0x3fe43531 - .long 0xb70d3761,0x3e92d3a2 - .long 0x00000000,0x3fe4500b - .long 0xe7d6bcb2,0x3e9c8343 - .long 0x00000000,0x3fe46af4 - .long 0x90d43957,0x3e693179 - .long 0x00000000,0x3fe48eef - .long 0xf12570df,0x3e799eab - .long 0x00000000,0x3fe4a9fd - .long 0x1b88755d,0x3e78c5f8 - .long 0x00000000,0x3fe4c51b - .long 0xdf99a22c,0x3e7369be - .long 0x00000000,0x3fe4e049 - .long 0x6ed50f62,0x3e88fd93 - .long 0x00000000,0x3fe5049f - .long 0x978605ff,0x3e9c6042 - .long 0x00000000,0x3fe51ff2 - .long 0xe6c85f4c,0x3e930ae6 - .long 0x00000000,0x3fe53b56 - .long 0xc3275ba6,0x3e92e7b6 - .long 0x00000000,0x3fe556ca - .long 0x91597938,0x3e9e6401 - .long 0x00000000,0x3fe5724e - .long 0x448ebb62,0x3e3d2dee - .long 0x00000000,0x3fe59719 - .long 0x47501b6d,0x3e9b432e - .long 0x00000000,0x3fe5b2c3 - .long 0x571fa7cd,0x3e83cf9b - .long 0x00000000,0x3fe5ce7f - .long 0x7359819d,0x3e8dc615 - .long 0x00000000,0x3fe5ea4b - .long 0xc78a85ed,0x3e8973c3 - .long 0x00000000,0x3fe60628 - .long 0xc15a9f3d,0x3e77d788 - .long 0x00000000,0x3fe62216 - .long 0x51952736,0x3e9d2538 - .long 0x00000000,0x3fe63e14 - .long 0xde792c07,0x3e94dab9 - .long 0x00000000,0x3fe65a24 - .long 0x5bfa4318,0x3e8f5be1 - .long 0x00000000,0x3fe67645 - .long 0x55090ec8,0x3e903b26 - .long 0x00000000,0x3fe69277 - .long 0xc78b6175,0x3e99236f - .long 0x00000000,0x3fe6aeba - .long 0x3a80db6a,0x3e8a1972 - .long 0x00000000,0x3fe6cb0f - .long 0xf558aa96,0x3e8d43a2 - .long 0x00000000,0x3fe6e775 - .long 0xd9a82f2e,0x3e424ee3 - .long 0x00000000,0x3fe703ed - .long 0x583878f6,0x3e764d8e - .long 0x00000000,0x3fe72076 - .long 0xc1150a3e,0x3e379604 - .long 0x00000000,0x3fe73d11 - .long 0xed85584b,0x3e93b229 - .long 0x00000000,0x3fe759bd - .long 0x451a7b48,0x3e62967a - .long 0x00000000,0x3fe7767c - .long 0xc044e72d,0x3e8e12d7 - .long 0x00000000,0x3fe7934c - .long 0xfdfb6949,0x3e9ca45d - .long 0x00000000,0x3fe7b02e - .long 0xff690fce,0x3e9244fc - .long 0x00000000,0x3fe7c37a - .long 0x81487a2c,0x3e7e9cea - .long 0x00000000,0x3fe7e07b - .long 0xd0ad2d9a,0x3e760da0 - .long 0x00000000,0x3fe7fd8e - .long 0x096f45d9,0x3e8d7703 - .long 0x00000000,0x3fe81ab3 - .long 0x1b17115b,0x3e78dbee - .long 0x00000000,0x3fe837eb - .long 0x7c252ee0,0x3e8dc5a4 - .long 0x00000000,0x3fe85535 - .long 0x42d5123f,0x3e950116 - .long 0x00000000,0x3fe868c6 - .long 0xf11e41be,0x3e4c4eb7 - .long 0x00000000,0x3fe88630 - .long 0xdb2890b4,0x3e7773b8 - .long 0x00000000,0x3fe8a3ac - .long 0x7ffb4479,0x3e7bc8e7 - .long 0x00000000,0x3fe8c13b - .long 0x237693b3,0x3e8c388f - .long 0x00000000,0x3fe8d4fa - .long 0x45fcf1a0,0x3e731cd4 - .long 0x00000000,0x3fe8f2a9 - .long 0xe4895b91,0x3e9fae07 - .long 0x00000000,0x3fe9106a - .long 0x42d2824e,0x3e7d140d - .long 0x00000000,0x3fe9244c - .long 0x39900f67,0x3e75c3c8 - .long 0x00000000,0x3fe9422e - .long 0xa314252b,0x3e902422 - .long 0x00000000,0x3fe96023 - .long 0xf2a6b8ef,0x3e7b9be8 - .long 0x00000000,0x3fe97427 - .long 0x1476f5e9,0x3e66b188 - .long 0x00000000,0x3fe9923d - .long 0xdde10a6f,0x3e93c377 - .long 0x00000000,0x3fe9b066 - .long 0x4944a32c,0x3e817cad - .long 0x00000000,0x3fe9c48d - .long 0xc738e7ef,0x3e9927f2 - .long 0x00000000,0x3fe9e2d7 - .long 0xd25cfd94,0x3e7ccc41 - .long 0x00000000,0x3fea0136 - .long 0x2210e81b,0x3e8382fa - .long 0x00000000,0x3fea1580 - .long 0x1e690ce2,0x3e7752a7 - .long 0x00000000,0x3fea3400 - .long 0x122315d2,0x3e94cfee - .long 0x00000000,0x3fea4860 - .long 0xce98333b,0x3e80536e - .long 0x00000000,0x3fea6702 - .long 0xc30f00e9,0x3e838b7e - .long 0x00000000,0x3fea7b79 - .long 0x05b0c779,0x3e9dc380 - .long 0x00000000,0x3fea9a3c - .long 0xdd6dd3fe,0x3e6be168 - .long 0x00000000,0x3feab915 - .long 0x26e0d276,0x3e966757 - .long 0x00000000,0x3feacdb0 - .long 0x0aad615c,0x3e880252 - .long 0x00000000,0x3feaecab - .long 0x7927096a,0x3e607c31 - .long 0x00000000,0x3feb015e - .long 0x53b3d90e,0x3e596513 - .long 0x00000000,0x3feb161a - .long 0x8f2f0570,0x3e90ec3a - .long 0x00000000,0x3feb3545 - .long 0x81193954,0x3e9cb640 - .long 0x00000000,0x3feb4a18 - .long 0x311e7236,0x3e936479 - .long 0x00000000,0x3feb6967 - .long 0x3a42a413,0x3e9210e8 - .long 0x00000000,0x3feb7e52 - .long 0x4a0daeb2,0x3e9a1717 - .long 0x00000000,0x3feb9dc4 - .long 0xce900653,0x3e925bb7 - .long 0x00000000,0x3febb2c7 - .long 0xb5087588,0x3e95dbb8 - .long 0x00000000,0x3febd25d - .long 0x4a41204c,0x3e8d0aa9 - .long 0x00000000,0x3febe778 - .long 0x69a0d774,0x3e9c772f - .long 0x00000000,0x3febfc9c - .long 0x79d0a9a5,0x3e97b6a0 - .long 0x00000000,0x3fec1c65 - .long 0xd26f1a12,0x3e8f7402 - .long 0x00000000,0x3fec31a2 - .long 0x1243bc84,0x3e4db2f1 - .long 0x00000000,0x3fec46e9 - .long 0x477e1755,0x3e80dcc2 - .long 0x00000000,0x3fec66e5 - .long 0xc2f904c1,0x3e8b1e31 - .long 0x00000000,0x3fec7c44 - .long 0x1785b0c4,0x3e8fb619 - .long 0x00000000,0x3fec91ad - .long 0xedb052ef,0x3e98832d - .long 0x00000000,0x3fecb1dd - .long 0x9e373618,0x3e98c822 - .long 0x00000000,0x3fecc75f - .long 0x32954637,0x3e9a46e7 - .long 0x00000000,0x3fecdceb - .long 0xf0e6b2a9,0x3e996305 - .long 0x00000000,0x3fecfd50 - .long 0x1a6614ee,0x3e68c160 - .long 0x00000000,0x3fed12f6 - .long 0x09e33b28,0x3e9229c4 - .long 0x00000000,0x3fed28a5 - .long 0xe53b994c,0x3e7f281b - .long 0x00000000,0x3fed3e5f - .long 0x1124ac35,0x3e9f27f3 - .long 0x00000000,0x3fed5f08 - .long 0x3d2fdc03,0x3e84e779 - .long 0x00000000,0x3fed74dc - .long 0x1e93fd97,0x3e416c07 - .long 0x00000000,0x3fed8aba - .long 0x91b415ef,0x3e654669 - .long 0x00000000,0x3feda0a2 - .long 0x6495f594,0x3e9712d4 - .long 0x00000000,0x3fedc191 - .long 0x40171789,0x3e9ca7b2 - .long 0x00000000,0x3fedd793 - .long 0xe8fc4323,0x3e929afa - .long 0x00000000,0x3fededa0 - .long 0xeb03bd09,0x3e9a2e96 - .long 0x00000000,0x3fee03b7 - .long 0xca370ea2,0x3e94a63d - .long 0x00000000,0x3fee19d9 - .long 0xe30512ec,0x3e6a3bcb - .long 0x00000000,0x3fee3006 - .long 0x411c95ce,0x3e99d3ed - .long 0x00000000,0x3fee515c - .long 0x35cfaf8e,0x3e3e5b57 - .long 0x00000000,0x3fee67a4 - .long 0x5669df6a,0x3e9fca71 - .long 0x00000000,0x3fee7df5 - .long 0x04f19d94,0x3e9914e2 - .long 0x00000000,0x3fee9452 - .long 0xcaa19134,0x3e8b511c - .long 0x00000000,0x3feeaaba - .long 0x4bb3bfb1,0x3e9ed72f - .long 0x00000000,0x3feec12c - .long 0x3c29d75e,0x3e8be8d6 - .long 0x00000000,0x3feed7aa - .long 0x97da24fd,0x3e9c55d9 - .long 0x00000000,0x3feeee32 - .long 0x983c68ea,0x3e7ddfb1 - .long 0x00000000,0x3fef1014 - .long 0xf4425883,0x3e83ce66 - .long 0x00000000,0x3fef26b8 - .long 0xf7857f23,0x3e9055c3 - .long 0x00000000,0x3fef3d67 - .long 0x2805b525,0x3e9c2223 - .long 0x00000000,0x3fef5421 - .long 0x0c347fcf,0x3e8d59ba - .long 0x00000000,0x3fef6ae7 - .long 0x7c901c44,0x3e82b110 - .long 0x00000000,0x3fef81b8 - .long 0x74d1b482,0x3e8b1394 - .long 0x00000000,0x3fef9894 - .long 0x36fb9eb2,0x3e9ca75b - .long 0x00000000,0x3fefaf7b - .long 0x629b1b7e,0x3e981a0a - .long 0x00000000,0x3fefc66e - .long 0x7b8c1116,0x3e54cc20 - .long 0x00000000,0x3fefdd6d - .long 0xc0babe05,0x3e99ac8b - .long 0x00000000,0x3feff476 - .type __dlog2_la___libm_log2_table_256,@object - .size __dlog2_la___libm_log2_table_256,4096 - .space 512, 0x00 - .align 64 -__dlog2_la__P: - .long 3213235158 - .long 1050233568 - .long 1697350398 - .long 3219592519 - .long 3694740707 - .long 1071564553 - .long 1697260025 - .long 3218543943 - .long 2542794428 - .long 1070757746 - .long 2165113687 - .long 3217999640 - .long 0 - .long 1073157447 - .type __dlog2_la__P,@object - .size __dlog2_la__P,56 diff --git a/numpy/core/src/umath/svml/svml_z0_log2_s_la.s b/numpy/core/src/umath/svml/svml_z0_log2_s_la.s deleted file mode 100644 index 7f26b01b2aff..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log2_s_la.s +++ /dev/null @@ -1,728 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * log2(x) = VGETEXP(x) + log2(VGETMANT(x)) - * * VGETEXP, VGETMANT will correctly treat special cases too (including denormals) - * * mx = VGETMANT(x) is in [1,2) for all x>=0 - * * log2(mx) = -log2(RCP(mx)) + log2(1 +(mx*RCP(mx)-1)) - * * RCP(mx) is rounded to 4 fractional bits, - * * and the table lookup for log2(RCP(mx)) is based on a small permute instruction - * * - * * LA, EP versions use interval interpolation (16 intervals) - * * - * - */ - - - .text -.L_2__routine_start___svml_log2f16_z0_0: - - .align 16,0x90 - .globl __svml_log2f16 - -__svml_log2f16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - -/* GetMant(x), normalized to [.75,1.5) for x>=0, NaN for x<0 */ - vgetmantps $11, {sae}, %zmm0, %zmm3 - vmovups __svml_slog2_data_internal_avx512(%rip), %zmm1 - vgetexpps {sae}, %zmm0, %zmm5 - -/* x<=0? */ - vfpclassps $94, %zmm0, %k0 - vsubps {rn-sae}, %zmm1, %zmm3, %zmm9 - vpsrld $19, %zmm3, %zmm7 - vgetexpps {sae}, %zmm3, %zmm6 - vpermps 64+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm1 - vpermps 128+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm2 - vpermps 192+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm4 - vpermps 256+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm8 - vsubps {rn-sae}, %zmm6, %zmm5, %zmm10 - vfmadd213ps {rn-sae}, %zmm2, %zmm9, %zmm1 - kmovw %k0, %edx - vfmadd213ps {rn-sae}, %zmm4, %zmm9, %zmm1 - vfmadd213ps {rn-sae}, %zmm8, %zmm9, %zmm1 - vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm1 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm1, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_slog2_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_log2f16,@function - .size __svml_log2f16,.-__svml_log2f16 -..LN__svml_log2f16.0: - -.L_2__routine_start___svml_slog2_cout_rare_internal_1: - - .align 16,0x90 - -__svml_slog2_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 2(%rdi), %edx - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_13 - - - movss (%rdi), %xmm2 - xorl %ecx, %ecx - pxor %xmm1, %xmm1 - movss %xmm2, -16(%rsp) - ucomiss %xmm1, %xmm2 - jp .LBL_2_3 - je .LBL_2_5 - -.LBL_2_3: - - movzwl -14(%rsp), %edx - testl $32640, %edx - jne .LBL_2_5 - - - movss .L_2il0floatpacket.76(%rip), %xmm0 - movl $-27, %ecx - mulss %xmm0, %xmm2 - movss %xmm2, -16(%rsp) - -.LBL_2_5: - - comiss %xmm1, %xmm2 - jbe .LBL_2_9 - - - movaps %xmm2, %xmm1 - subss .L_2il0floatpacket.90(%rip), %xmm1 - movss %xmm1, -20(%rsp) - andb $127, -17(%rsp) - movss -20(%rsp), %xmm0 - comiss .L_2il0floatpacket.77(%rip), %xmm0 - jbe .LBL_2_8 - - - movzwl -14(%rsp), %edx - pxor %xmm8, %xmm8 - andl $32640, %edx - lea __slog2_la_CoutTab(%rip), %r10 - shrl $7, %edx - movss %xmm2, -20(%rsp) - movss .L_2il0floatpacket.79(%rip), %xmm2 - movaps %xmm2, %xmm1 - movss .L_2il0floatpacket.88(%rip), %xmm6 - lea -127(%rcx,%rdx), %r9d - movzwl -18(%rsp), %ecx - andl $-32641, %ecx - addl $16256, %ecx - movw %cx, -18(%rsp) - movss -20(%rsp), %xmm3 - movaps %xmm3, %xmm0 - addss %xmm3, %xmm1 - addss .L_2il0floatpacket.78(%rip), %xmm0 - cvtsi2ss %r9d, %xmm8 - movss %xmm0, -24(%rsp) - movl -24(%rsp), %edi - movss %xmm1, -24(%rsp) - andl $127, %edi - movss -24(%rsp), %xmm7 - subss %xmm2, %xmm7 - lea (%rdi,%rdi,2), %r8d - movss (%r10,%r8,4), %xmm5 - subss %xmm7, %xmm3 - addss 4(%r10,%r8,4), %xmm8 - mulss %xmm5, %xmm7 - mulss %xmm3, %xmm5 - subss .L_2il0floatpacket.80(%rip), %xmm7 - movaps %xmm7, %xmm4 - addss %xmm7, %xmm8 - addss %xmm5, %xmm4 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.87(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.86(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.85(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.84(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.83(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.82(%rip), %xmm6 - mulss %xmm4, %xmm6 - addss .L_2il0floatpacket.81(%rip), %xmm6 - mulss %xmm6, %xmm7 - mulss %xmm5, %xmm6 - addss 8(%r10,%r8,4), %xmm6 - addss %xmm5, %xmm6 - addss %xmm6, %xmm7 - addss %xmm7, %xmm8 - movss %xmm8, (%rsi) - ret - -.LBL_2_8: - - movss .L_2il0floatpacket.80(%rip), %xmm0 - mulss %xmm0, %xmm1 - movss .L_2il0floatpacket.88(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.87(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.86(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.85(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.84(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.83(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.82(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss .L_2il0floatpacket.81(%rip), %xmm2 - mulss %xmm1, %xmm2 - addss %xmm1, %xmm2 - movss %xmm2, (%rsi) - ret - -.LBL_2_9: - - ucomiss %xmm1, %xmm2 - jp .LBL_2_10 - je .LBL_2_12 - -.LBL_2_10: - - divss %xmm1, %xmm1 - movss %xmm1, (%rsi) - movl $1, %eax - - - ret - -.LBL_2_12: - - movss .L_2il0floatpacket.89(%rip), %xmm0 - movl $2, %eax - divss %xmm1, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_13: - - movb 3(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_15 - -.LBL_2_14: - - movss (%rdi), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_15: - - testl $8388607, (%rdi) - jne .LBL_2_14 - - - movl $1, %eax - pxor %xmm1, %xmm1 - pxor %xmm0, %xmm0 - divss %xmm0, %xmm1 - movss %xmm1, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_slog2_cout_rare_internal,@function - .size __svml_slog2_cout_rare_internal,.-__svml_slog2_cout_rare_internal -..LN__svml_slog2_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_slog2_data_internal_avx512: - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 3198647882 - .long 3196759613 - .long 3194486322 - .long 3192115638 - .long 3190203785 - .long 3188646043 - .long 3187058849 - .long 3184933705 - .long 3210235473 - .long 3208544417 - .long 3207107312 - .long 3205878647 - .long 3204822309 - .long 3203370544 - .long 3201784975 - .long 3200401796 - .long 1056280844 - .long 1055933857 - .long 1055381630 - .long 1054718852 - .long 1054004959 - .long 1053277138 - .long 1052558383 - .long 1051862550 - .long 1049572249 - .long 1051796030 - .long 1053416266 - .long 1054571017 - .long 1055365658 - .long 1055881163 - .long 1056180132 - .long 1056311220 - .long 3208161588 - .long 3208150502 - .long 3208115952 - .long 3208053899 - .long 3207964810 - .long 3207851268 - .long 3207716694 - .long 3207564674 - .long 3208734740 - .long 3208490840 - .long 3208338440 - .long 3208247850 - .long 3208197907 - .long 3208173537 - .long 3208164045 - .long 3208161890 - .long 1069066811 - .long 1069066688 - .long 1069065960 - .long 1069064014 - .long 1069060299 - .long 1069054385 - .long 1069045976 - .long 1069034896 - .long 1069049182 - .long 1069058106 - .long 1069062890 - .long 1069065263 - .long 1069066312 - .long 1069066697 - .long 1069066799 - .long 1069066811 - .type __svml_slog2_data_internal_avx512,@object - .size __svml_slog2_data_internal_avx512,320 - .align 32 -__slog2_la_CoutTab: - .long 1136175680 - .long 0 - .long 0 - .long 1135986583 - .long 1018822656 - .long 930849160 - .long 1135809305 - .long 1026916352 - .long 941737263 - .long 1135632026 - .long 1032306688 - .long 936581683 - .long 1135466566 - .long 1035100160 - .long 929197062 - .long 1135301106 - .long 1037934592 - .long 897678483 - .long 1135135647 - .long 1040498688 - .long 3059980496 - .long 1134982005 - .long 1041852416 - .long 908010313 - .long 1134828364 - .long 1043226624 - .long 3073739761 - .long 1134686541 - .long 1044510720 - .long 918631281 - .long 1134538809 - .long 1045868544 - .long 3062817788 - .long 1134402896 - .long 1047134208 - .long 3064656237 - .long 1134266982 - .long 1048416256 - .long 3029590737 - .long 1134131069 - .long 1049145856 - .long 903671587 - .long 1134001065 - .long 1049775616 - .long 911388989 - .long 1133876970 - .long 1050384896 - .long 3069885983 - .long 1133752875 - .long 1051001344 - .long 3037530952 - .long 1133634689 - .long 1051596288 - .long 3069922038 - .long 1133516503 - .long 1052198400 - .long 3070222063 - .long 1133404227 - .long 1052776960 - .long 919559368 - .long 1133291951 - .long 1053363200 - .long 840060372 - .long 1133185584 - .long 1053924864 - .long 915603033 - .long 1133079217 - .long 1054493184 - .long 921334924 - .long 1132978759 - .long 1055036416 - .long 896601826 - .long 1132872392 - .long 1055618048 - .long 908913293 - .long 1132777843 - .long 1056141312 - .long 3065728751 - .long 1132677386 - .long 1056702976 - .long 909020429 - .long 1132582837 - .long 1057101312 - .long 3048020321 - .long 1132494198 - .long 1057354752 - .long 3038815896 - .long 1132337219 - .long 1057628160 - .long 3068137421 - .long 1132159940 - .long 1057887232 - .long 3069993595 - .long 1131994480 - .long 1058131456 - .long 3054354312 - .long 1131817202 - .long 1058395904 - .long 910223436 - .long 1131651742 - .long 1058645504 - .long 3046952660 - .long 1131486282 - .long 1058897664 - .long 3057670844 - .long 1131332641 - .long 1059133952 - .long 924929721 - .long 1131178999 - .long 1059373056 - .long 3068093797 - .long 1131025358 - .long 1059614208 - .long 3058851683 - .long 1130871717 - .long 1059857920 - .long 3069897752 - .long 1130729894 - .long 1060084736 - .long 924446297 - .long 1130576253 - .long 1060333312 - .long 903058075 - .long 1130434430 - .long 1060564992 - .long 3052757441 - .long 1130304426 - .long 1060779264 - .long 3045479197 - .long 1130162603 - .long 1061015040 - .long 924699798 - .long 1130032599 - .long 1061233664 - .long 3070937808 - .long 1129890776 - .long 1061473792 - .long 925912756 - .long 1129772591 - .long 1061676032 - .long 923952205 - .long 1129642586 - .long 1061900544 - .long 906547304 - .long 1129512582 - .long 1062127104 - .long 3050351427 - .long 1129394397 - .long 1062334976 - .long 3070601694 - .long 1129276211 - .long 1062544384 - .long 900519722 - .long 1129158025 - .long 1062755840 - .long 3055774932 - .long 1129039840 - .long 1062969088 - .long 3053661845 - .long 1128921654 - .long 1063184384 - .long 3073448373 - .long 1128815287 - .long 1063379456 - .long 907090876 - .long 1128697101 - .long 1063598336 - .long 881051555 - .long 1128590734 - .long 1063796992 - .long 898320955 - .long 1128484367 - .long 1063997440 - .long 3068804107 - .long 1128378000 - .long 1064199168 - .long 923531617 - .long 1128283452 - .long 1064380416 - .long 3070994608 - .long 1128177085 - .long 1064585472 - .long 901920533 - .long 1128082536 - .long 1064769536 - .long 3071653428 - .long 1127976169 - .long 1064977920 - .long 903017594 - .long 1127881621 - .long 1065164800 - .long 911713416 - .long 1127787072 - .long 1065353216 - .long 0 - .long 1065353216 - .long 0 - .long 1207959616 - .long 1174405120 - .long 1002438656 - .long 1291845632 - .long 0 - .long 1065353216 - .long 1136175680 - .long 3212771328 - .long 3065082383 - .long 841219731 - .long 2913632803 - .long 691870088 - .long 2765780188 - .long 545377693 - .long 2619180638 - .type __slog2_la_CoutTab,@object - .size __slog2_la_CoutTab,848 - .align 4 -.L_2il0floatpacket.76: - .long 0x4d000000 - .type .L_2il0floatpacket.76,@object - .size .L_2il0floatpacket.76,4 - .align 4 -.L_2il0floatpacket.77: - .long 0x3bc00000 - .type .L_2il0floatpacket.77,@object - .size .L_2il0floatpacket.77,4 - .align 4 -.L_2il0floatpacket.78: - .long 0x48000040 - .type .L_2il0floatpacket.78,@object - .size .L_2il0floatpacket.78,4 - .align 4 -.L_2il0floatpacket.79: - .long 0x46000000 - .type .L_2il0floatpacket.79,@object - .size .L_2il0floatpacket.79,4 - .align 4 -.L_2il0floatpacket.80: - .long 0x43b8aa40 - .type .L_2il0floatpacket.80,@object - .size .L_2il0floatpacket.80,4 - .align 4 -.L_2il0floatpacket.81: - .long 0xbf7f0000 - .type .L_2il0floatpacket.81,@object - .size .L_2il0floatpacket.81,4 - .align 4 -.L_2il0floatpacket.82: - .long 0xb6b1720f - .type .L_2il0floatpacket.82,@object - .size .L_2il0floatpacket.82,4 - .align 4 -.L_2il0floatpacket.83: - .long 0x3223fe93 - .type .L_2il0floatpacket.83,@object - .size .L_2il0floatpacket.83,4 - .align 4 -.L_2il0floatpacket.84: - .long 0xadaa8223 - .type .L_2il0floatpacket.84,@object - .size .L_2il0floatpacket.84,4 - .align 4 -.L_2il0floatpacket.85: - .long 0x293d1988 - .type .L_2il0floatpacket.85,@object - .size .L_2il0floatpacket.85,4 - .align 4 -.L_2il0floatpacket.86: - .long 0xa4da74dc - .type .L_2il0floatpacket.86,@object - .size .L_2il0floatpacket.86,4 - .align 4 -.L_2il0floatpacket.87: - .long 0x2081cd9d - .type .L_2il0floatpacket.87,@object - .size .L_2il0floatpacket.87,4 - .align 4 -.L_2il0floatpacket.88: - .long 0x9c1d865e - .type .L_2il0floatpacket.88,@object - .size .L_2il0floatpacket.88,4 - .align 4 -.L_2il0floatpacket.89: - .long 0xbf800000 - .type .L_2il0floatpacket.89,@object - .size .L_2il0floatpacket.89,4 - .align 4 -.L_2il0floatpacket.90: - .long 0x3f800000 - .type .L_2il0floatpacket.90,@object - .size .L_2il0floatpacket.90,4 diff --git a/numpy/core/src/umath/svml/svml_z0_log_d_la.s b/numpy/core/src/umath/svml/svml_z0_log_d_la.s deleted file mode 100644 index 42428c5839bb..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log_d_la.s +++ /dev/null @@ -1,1096 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * - * * log(x) = -log(Rcp) + log(Rcp*x), - * * where Rcp ~ 1/x (accuracy ~9 bits, obtained by rounding HW approximation to 1+9 mantissa bits) - * * - * * Reduced argument R=Rcp*x-1 is used to approximate log(1+R) as polynomial - * * - * * log(Rcp) = exponent_Rcp*log(2) + log(mantissa_Rcp) - * * -log(mantissa_Rcp) is obtained from a lookup table, accessed by a 9-bit index - * - */ - - - .text -.L_2__routine_start___svml_log8_z0_0: - - .align 16,0x90 - .globl __svml_log8 - -__svml_log8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vgetmantpd $8, {sae}, %zmm0, %zmm6 - vmovups 128+__svml_dlog_data_internal_avx512(%rip), %zmm4 - vmovups 384+__svml_dlog_data_internal_avx512(%rip), %zmm11 - vmovups 448+__svml_dlog_data_internal_avx512(%rip), %zmm14 - vmovups 512+__svml_dlog_data_internal_avx512(%rip), %zmm12 - vmovups 256+__svml_dlog_data_internal_avx512(%rip), %zmm10 - -/* Start polynomial evaluation */ - vmovups 320+__svml_dlog_data_internal_avx512(%rip), %zmm1 - vmovups 640+__svml_dlog_data_internal_avx512(%rip), %zmm13 - vmovups 704+__svml_dlog_data_internal_avx512(%rip), %zmm15 - -/* Prepare exponent correction: DblRcp<0.75? */ - vmovups 192+__svml_dlog_data_internal_avx512(%rip), %zmm3 - -/* Table lookup */ - vmovups __svml_dlog_data_internal_avx512(%rip), %zmm5 - -/* GetExp(x) */ - vgetexppd {sae}, %zmm0, %zmm7 - -/* DblRcp ~ 1/Mantissa */ - vrcp14pd %zmm6, %zmm8 - -/* x<=0? */ - vfpclasspd $94, %zmm0, %k0 - -/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */ - vrndscalepd $88, {sae}, %zmm8, %zmm2 - kmovw %k0, %edx - -/* Reduced argument: R = DblRcp*Mantissa - 1 */ - vfmsub213pd {rn-sae}, %zmm4, %zmm2, %zmm6 - vcmppd $17, {sae}, %zmm3, %zmm2, %k1 - vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14 - vmovups 576+__svml_dlog_data_internal_avx512(%rip), %zmm11 - vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm1 - vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm15 - -/* R^2 */ - vmulpd {rn-sae}, %zmm6, %zmm6, %zmm8 - vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm11 - -/* Prepare table index */ - vpsrlq $48, %zmm2, %zmm9 - -/* add 1 to Expon if DblRcp<0.75 */ - vaddpd {rn-sae}, %zmm4, %zmm7, %zmm7{%k1} - vmulpd {rn-sae}, %zmm8, %zmm8, %zmm12 - vfmadd213pd {rn-sae}, %zmm14, %zmm8, %zmm1 - vfmadd213pd {rn-sae}, %zmm15, %zmm8, %zmm11 - vpermt2pd 64+__svml_dlog_data_internal_avx512(%rip), %zmm9, %zmm5 - -/* polynomial */ - vfmadd213pd {rn-sae}, %zmm11, %zmm12, %zmm1 - vfmadd213pd {rn-sae}, %zmm6, %zmm8, %zmm1 - vaddpd {rn-sae}, %zmm1, %zmm5, %zmm2 - vmovups 768+__svml_dlog_data_internal_avx512(%rip), %zmm1 - vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm7 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm7, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm7, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm7 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dlog_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_log8,@function - .size __svml_log8,.-__svml_log8 -..LN__svml_log8.0: - -.L_2__routine_start___svml_dlog_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dlog_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 6(%rdi), %edx - andl $32752, %edx - cmpl $32752, %edx - je .LBL_2_12 - - - movsd (%rdi), %xmm2 - xorl %ecx, %ecx - movsd %xmm2, -8(%rsp) - movzwl -2(%rsp), %edx - testl $32752, %edx - jne .LBL_2_4 - - - mulsd 1600+__dlog_la_CoutTab(%rip), %xmm2 - movl $-60, %ecx - movsd %xmm2, -8(%rsp) - -.LBL_2_4: - - movsd 1608+__dlog_la_CoutTab(%rip), %xmm0 - comisd %xmm0, %xmm2 - jbe .LBL_2_8 - - - movsd .L_2il0floatpacket.80(%rip), %xmm3 - movaps %xmm2, %xmm1 - subsd %xmm3, %xmm1 - movsd %xmm1, -16(%rsp) - andb $127, -9(%rsp) - movsd -16(%rsp), %xmm0 - comisd 1592+__dlog_la_CoutTab(%rip), %xmm0 - jbe .LBL_2_7 - - - movsd %xmm2, -16(%rsp) - pxor %xmm7, %xmm7 - movzwl -10(%rsp), %edi - lea __dlog_la_CoutTab(%rip), %r10 - andl $-32753, %edi - addl $16368, %edi - movw %di, -10(%rsp) - movsd -16(%rsp), %xmm4 - movaps %xmm4, %xmm1 - movaps %xmm4, %xmm2 - movsd 1672+__dlog_la_CoutTab(%rip), %xmm8 - movzwl -2(%rsp), %edx - andl $32752, %edx - addsd 1576+__dlog_la_CoutTab(%rip), %xmm1 - addsd 1584+__dlog_la_CoutTab(%rip), %xmm2 - movsd %xmm1, -24(%rsp) - movl -24(%rsp), %r8d - movsd %xmm2, -24(%rsp) - andl $127, %r8d - movsd -24(%rsp), %xmm5 - movsd 1560+__dlog_la_CoutTab(%rip), %xmm9 - movsd 1568+__dlog_la_CoutTab(%rip), %xmm0 - shrl $4, %edx - subsd 1584+__dlog_la_CoutTab(%rip), %xmm5 - lea (%r8,%r8,2), %r9d - movsd (%r10,%r9,8), %xmm6 - lea -1023(%rcx,%rdx), %ecx - cvtsi2sd %ecx, %xmm7 - subsd %xmm5, %xmm4 - mulsd %xmm6, %xmm5 - mulsd %xmm7, %xmm9 - subsd %xmm3, %xmm5 - mulsd %xmm4, %xmm6 - mulsd %xmm0, %xmm7 - addsd 8(%r10,%r9,8), %xmm9 - addsd 16(%r10,%r9,8), %xmm7 - addsd %xmm5, %xmm9 - addsd %xmm6, %xmm7 - movaps %xmm5, %xmm3 - addsd %xmm6, %xmm3 - mulsd %xmm3, %xmm8 - addsd 1664+__dlog_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1656+__dlog_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1648+__dlog_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1640+__dlog_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1632+__dlog_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - addsd 1624+__dlog_la_CoutTab(%rip), %xmm8 - mulsd %xmm3, %xmm8 - mulsd %xmm3, %xmm8 - addsd %xmm7, %xmm8 - addsd %xmm8, %xmm9 - movsd %xmm9, (%rsi) - ret - -.LBL_2_7: - - movsd 1672+__dlog_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1664+__dlog_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1656+__dlog_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1648+__dlog_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1640+__dlog_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1632+__dlog_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - addsd 1624+__dlog_la_CoutTab(%rip), %xmm0 - mulsd %xmm1, %xmm0 - mulsd %xmm1, %xmm0 - addsd %xmm1, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_8: - - ucomisd %xmm0, %xmm2 - jp .LBL_2_9 - je .LBL_2_11 - -.LBL_2_9: - - divsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - movl $1, %eax - - - ret - -.LBL_2_11: - - movsd 1616+__dlog_la_CoutTab(%rip), %xmm1 - movl $2, %eax - xorps .L_2il0floatpacket.79(%rip), %xmm1 - divsd %xmm0, %xmm1 - movsd %xmm1, (%rsi) - ret - -.LBL_2_12: - - movb 7(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_14 - -.LBL_2_13: - - movsd (%rdi), %xmm0 - mulsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - -.LBL_2_14: - - testl $1048575, 4(%rdi) - jne .LBL_2_13 - - - cmpl $0, (%rdi) - jne .LBL_2_13 - - - movsd 1608+__dlog_la_CoutTab(%rip), %xmm0 - movl $1, %eax - divsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dlog_cout_rare_internal,@function - .size __svml_dlog_cout_rare_internal,.-__svml_dlog_cout_rare_internal -..LN__svml_dlog_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dlog_data_internal_avx512: - .long 0 - .long 0 - .long 3222364838 - .long 3215919664 - .long 1848308454 - .long 3216910087 - .long 1890030548 - .long 3217424176 - .long 3348797986 - .long 3217854455 - .long 2880153102 - .long 3218171740 - .long 3256639170 - .long 3218366859 - .long 4139503623 - .long 3218553303 - .long 288676754 - .long 1070754146 - .long 1823716217 - .long 1070569756 - .long 1015732707 - .long 1070240749 - .long 1800682930 - .long 1069924160 - .long 2183652476 - .long 1069619086 - .long 1566132617 - .long 1069101918 - .long 3047045639 - .long 1068533144 - .long 2313634884 - .long 1067467101 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 0 - .long 1072168960 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 815627376 - .long 1069318605 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2123607906 - .long 3217033013 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 2632876527 - .long 1069697314 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 4213758726 - .long 3217380691 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 2580324188 - .long 1070176665 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 787901 - .long 3218079744 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 1431655526 - .long 1070945621 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4294967238 - .long 3219128319 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 4277811695 - .long 1072049730 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 0 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .long 4294967295 - .long 2146435071 - .type __svml_dlog_data_internal_avx512,@object - .size __svml_dlog_data_internal_avx512,1088 - .align 32 -__dlog_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072660480 - .long 1486880768 - .long 1066410070 - .long 1813744607 - .long 3179892593 - .long 0 - .long 1072629760 - .long 377487360 - .long 1067416219 - .long 919019713 - .long 3179241129 - .long 0 - .long 1072599040 - .long 1513619456 - .long 1067944025 - .long 874573033 - .long 3178512940 - .long 0 - .long 1072570368 - .long 3221749760 - .long 1068427825 - .long 4181665006 - .long 3177478212 - .long 0 - .long 1072541696 - .long 4162322432 - .long 1068708823 - .long 627020255 - .long 1028629941 - .long 0 - .long 1072513024 - .long 183107584 - .long 1068957907 - .long 2376703469 - .long 1030233118 - .long 0 - .long 1072486400 - .long 1053425664 - .long 1069192557 - .long 696277142 - .long 1030474863 - .long 0 - .long 1072459776 - .long 3996123136 - .long 1069430535 - .long 2630798680 - .long 1028792016 - .long 0 - .long 1072435200 - .long 3452764160 - .long 1069600382 - .long 624954044 - .long 3177101741 - .long 0 - .long 1072409600 - .long 207650816 - .long 1069717971 - .long 3272735636 - .long 3175176575 - .long 0 - .long 1072386048 - .long 2647228416 - .long 1069827627 - .long 3594228712 - .long 1029303785 - .long 0 - .long 1072362496 - .long 2712010752 - .long 1069938736 - .long 3653242769 - .long 3176839013 - .long 0 - .long 1072338944 - .long 374439936 - .long 1070051337 - .long 4072775574 - .long 3176577495 - .long 0 - .long 1072316416 - .long 3707174912 - .long 1070160474 - .long 1486946159 - .long 1023930920 - .long 0 - .long 1072294912 - .long 1443954688 - .long 1070265993 - .long 293532967 - .long 3176278277 - .long 0 - .long 1072273408 - .long 127762432 - .long 1070372856 - .long 3404145447 - .long 3177023955 - .long 0 - .long 1072252928 - .long 2053832704 - .long 1070475911 - .long 1575076358 - .long 1029048544 - .long 0 - .long 1072232448 - .long 3194093568 - .long 1070580248 - .long 1864169120 - .long 1026866084 - .long 0 - .long 1072212992 - .long 3917201408 - .long 1070638340 - .long 2362145246 - .long 3175606197 - .long 0 - .long 1072193536 - .long 3417112576 - .long 1070689116 - .long 70087871 - .long 3174183577 - .long 0 - .long 1072175104 - .long 4226777088 - .long 1070737793 - .long 1620410586 - .long 3174700065 - .long 0 - .long 1072156672 - .long 3168870400 - .long 1070787042 - .long 311238082 - .long 1025781772 - .long 0 - .long 1072139264 - .long 2150580224 - .long 1070834092 - .long 1664262457 - .long 3175299224 - .long 0 - .long 1072120832 - .long 4095672320 - .long 1070884491 - .long 1657121015 - .long 3174674199 - .long 0 - .long 1072104448 - .long 2595577856 - .long 1070929805 - .long 2014006823 - .long 3175423830 - .long 0 - .long 1072087040 - .long 3747176448 - .long 1070978493 - .long 144991708 - .long 3171552042 - .long 0 - .long 1072070656 - .long 1050435584 - .long 1071024840 - .long 3386227432 - .long 1027876916 - .long 0 - .long 1072055296 - .long 255516672 - .long 1071068760 - .long 2637594316 - .long 1028049573 - .long 0 - .long 1072038912 - .long 1640783872 - .long 1071116120 - .long 893247007 - .long 1028452162 - .long 0 - .long 1072023552 - .long 2940411904 - .long 1071161011 - .long 813240633 - .long 1027664048 - .long 0 - .long 1072009216 - .long 882917376 - .long 1071203348 - .long 2376597551 - .long 3175828767 - .long 0 - .long 1071993856 - .long 213966848 - .long 1071249188 - .long 2977204125 - .long 1028350609 - .long 0 - .long 1071979520 - .long 2921504768 - .long 1071292428 - .long 523218347 - .long 1028007004 - .long 0 - .long 1071965184 - .long 3186655232 - .long 1071336119 - .long 2352907891 - .long 1026967097 - .long 0 - .long 1071951872 - .long 2653364224 - .long 1071377101 - .long 2453418583 - .long 3174349512 - .long 0 - .long 1071938560 - .long 3759783936 - .long 1071418487 - .long 3685870403 - .long 3175415611 - .long 0 - .long 1071925248 - .long 2468364288 - .long 1071460286 - .long 1578908842 - .long 3175510517 - .long 0 - .long 1071911936 - .long 81903616 - .long 1071502506 - .long 770710269 - .long 1026742353 - .long 0 - .long 1071899648 - .long 2799321088 - .long 1071541858 - .long 3822266185 - .long 1028434427 - .long 0 - .long 1071886336 - .long 2142265344 - .long 1071584911 - .long 175901806 - .long 3173871540 - .long 0 - .long 1071874048 - .long 2944024576 - .long 1071625048 - .long 2747360403 - .long 1027672159 - .long 0 - .long 1071862784 - .long 3434301440 - .long 1071653426 - .long 4194662196 - .long 3173893003 - .long 0 - .long 1071850496 - .long 1547755520 - .long 1071673870 - .long 4248764681 - .long 3172759087 - .long 0 - .long 1071839232 - .long 4246986752 - .long 1071692786 - .long 2840205638 - .long 3174430911 - .long 0 - .long 1071826944 - .long 3418390528 - .long 1071713619 - .long 3041880823 - .long 1025440860 - .long 0 - .long 1071816704 - .long 4143093760 - .long 1071731139 - .long 2727587401 - .long 3173965207 - .long 0 - .long 1071805440 - .long 3121326080 - .long 1071750582 - .long 3173887692 - .long 3174190163 - .long 0 - .long 1071794176 - .long 1852893184 - .long 1071770207 - .long 3951060252 - .long 1027348295 - .long 0 - .long 1071783936 - .long 3636379648 - .long 1071788208 - .long 1684924001 - .long 3174777086 - .long 0 - .long 1071773696 - .long 516505600 - .long 1071806366 - .long 429181199 - .long 3173211033 - .long 0 - .long 1071763456 - .long 4186185728 - .long 1071824681 - .long 2044904577 - .long 3174967132 - .long 0 - .long 1071753216 - .long 877596672 - .long 1071843159 - .long 1396318105 - .long 3173959727 - .long 0 - .long 1071742976 - .long 2912784384 - .long 1071861800 - .long 448136789 - .long 3174814192 - .long 0 - .long 1071733760 - .long 3722825728 - .long 1071878720 - .long 714165913 - .long 3173439560 - .long 0 - .long 1071723520 - .long 2522374144 - .long 1071897682 - .long 3227240353 - .long 3173394323 - .long 0 - .long 1071714304 - .long 4165410816 - .long 1071914895 - .long 1365684961 - .long 3174365060 - .long 0 - .long 1071705088 - .long 3477135360 - .long 1071932251 - .long 368482985 - .long 3174140821 - .long 0 - .long 1071695872 - .long 2079455232 - .long 1071949752 - .long 1320576317 - .long 1026822714 - .long 0 - .long 1071687680 - .long 851795968 - .long 1071965432 - .long 3702467026 - .long 1025224125 - .long 0 - .long 1071678464 - .long 647743488 - .long 1071983213 - .long 772992109 - .long 3174038459 - .long 0 - .long 1071670272 - .long 26537984 - .long 1071999146 - .long 2360214276 - .long 3174861275 - .long 0 - .long 1071661056 - .long 1547061248 - .long 1072017216 - .long 2886781435 - .long 1026423395 - .long 0 - .long 1071652864 - .long 2854492160 - .long 1072033410 - .long 215631550 - .long 1025638968 - .long 0 - .long 1071644672 - .long 4277811200 - .long 1072049730 - .long 2479318832 - .long 1026487127 - .long 4277811200 - .long 1072049730 - .long 2479318832 - .long 1026487127 - .long 64 - .long 1120927744 - .long 0 - .long 1094713344 - .long 0 - .long 1065615360 - .long 0 - .long 1135607808 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 3219128320 - .long 1431655955 - .long 1070945621 - .long 610 - .long 3218079744 - .long 2545118337 - .long 1070176665 - .long 1378399119 - .long 3217380693 - .long 612435357 - .long 1069697472 - .long 94536557 - .long 3217031348 - .type __dlog_la_CoutTab,@object - .size __dlog_la_CoutTab,1680 - .align 16 -.L_2il0floatpacket.79: - .long 0x00000000,0x80000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.79,@object - .size .L_2il0floatpacket.79,16 - .align 8 -.L_2il0floatpacket.80: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.80,@object - .size .L_2il0floatpacket.80,8 diff --git a/numpy/core/src/umath/svml/svml_z0_log_s_la.s b/numpy/core/src/umath/svml/svml_z0_log_s_la.s deleted file mode 100644 index d3bcca838d5b..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_log_s_la.s +++ /dev/null @@ -1,930 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * - * * log(x) = exponent_x*log(2) + log(mantissa_x), if mantissa_x<4/3 - * * log(x) = (exponent_x+1)*log(2) + log(0.5*mantissa_x), if mantissa_x>4/3 - * * - * * R = mantissa_x - 1, if mantissa_x<4/3 - * * R = 0.5*mantissa_x - 1, if mantissa_x>4/3 - * * |R|< 1/3 - * * - * * log(1+R) is approximated as a polynomial: degree 9 for 1-ulp, degree 7 for 4-ulp, - * * degree 3 for half-precision - * - */ - - - .text -.L_2__routine_start___svml_logf16_z0_0: - - .align 16,0x90 - .globl __svml_logf16 - -__svml_logf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vgetmantps $11, {sae}, %zmm0, %zmm3 - vmovups __svml_slog_data_internal_avx512(%rip), %zmm1 - vgetexpps {sae}, %zmm0, %zmm5 - vmovups 320+__svml_slog_data_internal_avx512(%rip), %zmm10 - vpsrld $19, %zmm3, %zmm7 - vgetexpps {sae}, %zmm3, %zmm6 - -/* reduced argument */ - vsubps {rn-sae}, %zmm1, %zmm3, %zmm11 - -/* - * read coefficients for polynomial interpolation, - * and evaluate polynomial - */ - vpermps 64+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm1 - vpermps 128+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm2 - vsubps {rn-sae}, %zmm6, %zmm5, %zmm9 - vpermps 192+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm4 - vpermps 256+__svml_slog_data_internal_avx512(%rip), %zmm7, %zmm8 - -/* x<=0? */ - vfpclassps $94, %zmm0, %k0 - vfmadd213ps {rn-sae}, %zmm2, %zmm11, %zmm1 - -/* exponent*log(2) */ - vmulps {rn-sae}, %zmm10, %zmm9, %zmm12 - vfmadd213ps {rn-sae}, %zmm4, %zmm11, %zmm1 - kmovw %k0, %edx - vfmadd213ps {rn-sae}, %zmm8, %zmm11, %zmm1 - -/* result */ - vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm1 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm1, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_slog_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_logf16,@function - .size __svml_logf16,.-__svml_logf16 -..LN__svml_logf16.0: - -.L_2__routine_start___svml_slog_cout_rare_internal_1: - - .align 16,0x90 - -__svml_slog_cout_rare_internal: - - - .cfi_startproc -..L53: - - xorl %eax, %eax - movzwl 2(%rdi), %edx - andl $32640, %edx - cmpl $32640, %edx - je .LBL_2_12 - - - pxor %xmm2, %xmm2 - xorl %ecx, %ecx - cvtss2sd (%rdi), %xmm2 - movsd %xmm2, -8(%rsp) - movzwl -2(%rsp), %edx - testl $32752, %edx - jne .LBL_2_4 - - - mulsd 1600+_imlsLnHATab(%rip), %xmm2 - movl $-60, %ecx - movsd %xmm2, -8(%rsp) - -.LBL_2_4: - - movsd 1608+_imlsLnHATab(%rip), %xmm0 - comisd %xmm0, %xmm2 - jbe .LBL_2_8 - - - movsd .L_2il0floatpacket.73(%rip), %xmm3 - movaps %xmm2, %xmm1 - subsd %xmm3, %xmm1 - movsd %xmm1, -16(%rsp) - andb $127, -9(%rsp) - movsd -16(%rsp), %xmm0 - comisd 1592+_imlsLnHATab(%rip), %xmm0 - jbe .LBL_2_7 - - - movsd %xmm2, -16(%rsp) - pxor %xmm6, %xmm6 - movzwl -10(%rsp), %edi - lea _imlsLnHATab(%rip), %r10 - andl $-32753, %edi - addl $16368, %edi - movw %di, -10(%rsp) - movsd -16(%rsp), %xmm4 - movaps %xmm4, %xmm1 - movaps %xmm4, %xmm2 - movsd 1672+_imlsLnHATab(%rip), %xmm9 - movzwl -2(%rsp), %edx - andl $32752, %edx - addsd 1576+_imlsLnHATab(%rip), %xmm1 - addsd 1584+_imlsLnHATab(%rip), %xmm2 - movsd %xmm1, -24(%rsp) - movl -24(%rsp), %r8d - movsd %xmm2, -24(%rsp) - andl $127, %r8d - movsd -24(%rsp), %xmm7 - movsd 1560+_imlsLnHATab(%rip), %xmm5 - movsd 1568+_imlsLnHATab(%rip), %xmm0 - shrl $4, %edx - subsd 1584+_imlsLnHATab(%rip), %xmm7 - lea (%r8,%r8,2), %r9d - movsd (%r10,%r9,8), %xmm8 - lea -1023(%rcx,%rdx), %ecx - cvtsi2sd %ecx, %xmm6 - subsd %xmm7, %xmm4 - mulsd %xmm8, %xmm7 - mulsd %xmm6, %xmm5 - subsd %xmm3, %xmm7 - mulsd %xmm4, %xmm8 - mulsd %xmm0, %xmm6 - addsd 8(%r10,%r9,8), %xmm5 - addsd 16(%r10,%r9,8), %xmm6 - movaps %xmm7, %xmm3 - addsd %xmm8, %xmm3 - mulsd %xmm3, %xmm9 - addsd 1664+_imlsLnHATab(%rip), %xmm9 - mulsd %xmm3, %xmm9 - addsd 1656+_imlsLnHATab(%rip), %xmm9 - mulsd %xmm3, %xmm9 - addsd 1648+_imlsLnHATab(%rip), %xmm9 - mulsd %xmm3, %xmm9 - addsd 1640+_imlsLnHATab(%rip), %xmm9 - mulsd %xmm3, %xmm9 - addsd 1632+_imlsLnHATab(%rip), %xmm9 - mulsd %xmm3, %xmm9 - mulsd %xmm3, %xmm3 - addsd 1624+_imlsLnHATab(%rip), %xmm9 - mulsd %xmm3, %xmm9 - addsd %xmm5, %xmm9 - addsd %xmm6, %xmm9 - addsd %xmm7, %xmm9 - addsd %xmm8, %xmm9 - cvtsd2ss %xmm9, %xmm9 - movss %xmm9, (%rsi) - ret - -.LBL_2_7: - - movsd 1672+_imlsLnHATab(%rip), %xmm2 - movaps %xmm1, %xmm0 - mulsd %xmm1, %xmm2 - mulsd %xmm1, %xmm0 - addsd 1664+_imlsLnHATab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1656+_imlsLnHATab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1648+_imlsLnHATab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1640+_imlsLnHATab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1632+_imlsLnHATab(%rip), %xmm2 - mulsd %xmm1, %xmm2 - addsd 1624+_imlsLnHATab(%rip), %xmm2 - mulsd %xmm0, %xmm2 - addsd %xmm1, %xmm2 - cvtsd2ss %xmm2, %xmm2 - movss %xmm2, (%rsi) - ret - -.LBL_2_8: - - ucomisd %xmm0, %xmm2 - jp .LBL_2_9 - je .LBL_2_11 - -.LBL_2_9: - - divsd %xmm0, %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%rsi) - movl $1, %eax - - - ret - -.LBL_2_11: - - movsd 1616+_imlsLnHATab(%rip), %xmm1 - movl $2, %eax - xorps .L_2il0floatpacket.72(%rip), %xmm1 - divsd %xmm0, %xmm1 - cvtsd2ss %xmm1, %xmm1 - movss %xmm1, (%rsi) - ret - -.LBL_2_12: - - movb 3(%rdi), %dl - andb $-128, %dl - cmpb $-128, %dl - je .LBL_2_14 - -.LBL_2_13: - - movss (%rdi), %xmm0 - mulss %xmm0, %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_14: - - testl $8388607, (%rdi) - jne .LBL_2_13 - - - movsd 1608+_imlsLnHATab(%rip), %xmm0 - movl $1, %eax - divsd %xmm0, %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_slog_cout_rare_internal,@function - .size __svml_slog_cout_rare_internal,.-__svml_slog_cout_rare_internal -..LN__svml_slog_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_slog_data_internal_avx512: - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 3194499567 - .long 3191881870 - .long 3189820965 - .long 3188177733 - .long 3186034033 - .long 3183874545 - .long 3182098566 - .long 3180625528 - .long 3205885581 - .long 3204713431 - .long 3202986354 - .long 3201283063 - .long 3199818667 - .long 3198553107 - .long 3197454075 - .long 3196495328 - .long 1051342523 - .long 1051102009 - .long 1050719235 - .long 1050259833 - .long 1049764999 - .long 1049260512 - .long 1048762310 - .long 1047983990 - .long 1044808958 - .long 1047891773 - .long 1049356949 - .long 1050157361 - .long 1050708164 - .long 1051065485 - .long 1051272715 - .long 1051363578 - .long 3204447891 - .long 3204432523 - .long 3204384627 - .long 3204298603 - .long 3204175099 - .long 3204017696 - .long 3203831137 - .long 3203620393 - .long 3204845352 - .long 3204676294 - .long 3204570658 - .long 3204507866 - .long 3204473248 - .long 3204456356 - .long 3204449777 - .long 3204448283 - .long 1065353216 - .long 1065353045 - .long 1065352036 - .long 1065349339 - .long 1065344188 - .long 1065335989 - .long 1065324332 - .long 1065308972 - .long 1065328777 - .long 1065341148 - .long 1065347780 - .long 1065351069 - .long 1065352524 - .long 1065353058 - .long 1065353199 - .long 1065353216 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 1060205080 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 8388608 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .long 2139095039 - .type __svml_slog_data_internal_avx512,@object - .size __svml_slog_data_internal_avx512,512 - .align 32 -_imlsLnHATab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072660480 - .long 1486880768 - .long 1066410070 - .long 1813744607 - .long 3179892593 - .long 0 - .long 1072629760 - .long 377487360 - .long 1067416219 - .long 919019713 - .long 3179241129 - .long 0 - .long 1072599040 - .long 1513619456 - .long 1067944025 - .long 874573033 - .long 3178512940 - .long 0 - .long 1072570368 - .long 3221749760 - .long 1068427825 - .long 4181665006 - .long 3177478212 - .long 0 - .long 1072541696 - .long 4162322432 - .long 1068708823 - .long 627020255 - .long 1028629941 - .long 0 - .long 1072513024 - .long 183107584 - .long 1068957907 - .long 2376703469 - .long 1030233118 - .long 0 - .long 1072486400 - .long 1053425664 - .long 1069192557 - .long 696277142 - .long 1030474863 - .long 0 - .long 1072459776 - .long 3996123136 - .long 1069430535 - .long 2630798680 - .long 1028792016 - .long 0 - .long 1072435200 - .long 3452764160 - .long 1069600382 - .long 624954044 - .long 3177101741 - .long 0 - .long 1072409600 - .long 207650816 - .long 1069717971 - .long 3272735636 - .long 3175176575 - .long 0 - .long 1072386048 - .long 2647228416 - .long 1069827627 - .long 3594228712 - .long 1029303785 - .long 0 - .long 1072362496 - .long 2712010752 - .long 1069938736 - .long 3653242769 - .long 3176839013 - .long 0 - .long 1072338944 - .long 374439936 - .long 1070051337 - .long 4072775574 - .long 3176577495 - .long 0 - .long 1072316416 - .long 3707174912 - .long 1070160474 - .long 1486946159 - .long 1023930920 - .long 0 - .long 1072294912 - .long 1443954688 - .long 1070265993 - .long 293532967 - .long 3176278277 - .long 0 - .long 1072273408 - .long 127762432 - .long 1070372856 - .long 3404145447 - .long 3177023955 - .long 0 - .long 1072252928 - .long 2053832704 - .long 1070475911 - .long 1575076358 - .long 1029048544 - .long 0 - .long 1072232448 - .long 3194093568 - .long 1070580248 - .long 1864169120 - .long 1026866084 - .long 0 - .long 1072212992 - .long 3917201408 - .long 1070638340 - .long 2362145246 - .long 3175606197 - .long 0 - .long 1072193536 - .long 3417112576 - .long 1070689116 - .long 70087871 - .long 3174183577 - .long 0 - .long 1072175104 - .long 4226777088 - .long 1070737793 - .long 1620410586 - .long 3174700065 - .long 0 - .long 1072156672 - .long 3168870400 - .long 1070787042 - .long 311238082 - .long 1025781772 - .long 0 - .long 1072139264 - .long 2150580224 - .long 1070834092 - .long 1664262457 - .long 3175299224 - .long 0 - .long 1072120832 - .long 4095672320 - .long 1070884491 - .long 1657121015 - .long 3174674199 - .long 0 - .long 1072104448 - .long 2595577856 - .long 1070929805 - .long 2014006823 - .long 3175423830 - .long 0 - .long 1072087040 - .long 3747176448 - .long 1070978493 - .long 144991708 - .long 3171552042 - .long 0 - .long 1072070656 - .long 1050435584 - .long 1071024840 - .long 3386227432 - .long 1027876916 - .long 0 - .long 1072055296 - .long 255516672 - .long 1071068760 - .long 2637594316 - .long 1028049573 - .long 0 - .long 1072038912 - .long 1640783872 - .long 1071116120 - .long 893247007 - .long 1028452162 - .long 0 - .long 1072023552 - .long 2940411904 - .long 1071161011 - .long 813240633 - .long 1027664048 - .long 0 - .long 1072009216 - .long 882917376 - .long 1071203348 - .long 2376597551 - .long 3175828767 - .long 0 - .long 1071993856 - .long 213966848 - .long 1071249188 - .long 2977204125 - .long 1028350609 - .long 0 - .long 1071979520 - .long 2921504768 - .long 1071292428 - .long 523218347 - .long 1028007004 - .long 0 - .long 1071965184 - .long 3186655232 - .long 1071336119 - .long 2352907891 - .long 1026967097 - .long 0 - .long 1071951872 - .long 2653364224 - .long 1071377101 - .long 2453418583 - .long 3174349512 - .long 0 - .long 1071938560 - .long 3759783936 - .long 1071418487 - .long 3685870403 - .long 3175415611 - .long 0 - .long 1071925248 - .long 2468364288 - .long 1071460286 - .long 1578908842 - .long 3175510517 - .long 0 - .long 1071911936 - .long 81903616 - .long 1071502506 - .long 770710269 - .long 1026742353 - .long 0 - .long 1071899648 - .long 2799321088 - .long 1071541858 - .long 3822266185 - .long 1028434427 - .long 0 - .long 1071886336 - .long 2142265344 - .long 1071584911 - .long 175901806 - .long 3173871540 - .long 0 - .long 1071874048 - .long 2944024576 - .long 1071625048 - .long 2747360403 - .long 1027672159 - .long 0 - .long 1071862784 - .long 3434301440 - .long 1071653426 - .long 4194662196 - .long 3173893003 - .long 0 - .long 1071850496 - .long 1547755520 - .long 1071673870 - .long 4248764681 - .long 3172759087 - .long 0 - .long 1071839232 - .long 4246986752 - .long 1071692786 - .long 2840205638 - .long 3174430911 - .long 0 - .long 1071826944 - .long 3418390528 - .long 1071713619 - .long 3041880823 - .long 1025440860 - .long 0 - .long 1071816704 - .long 4143093760 - .long 1071731139 - .long 2727587401 - .long 3173965207 - .long 0 - .long 1071805440 - .long 3121326080 - .long 1071750582 - .long 3173887692 - .long 3174190163 - .long 0 - .long 1071794176 - .long 1852893184 - .long 1071770207 - .long 3951060252 - .long 1027348295 - .long 0 - .long 1071783936 - .long 3636379648 - .long 1071788208 - .long 1684924001 - .long 3174777086 - .long 0 - .long 1071773696 - .long 516505600 - .long 1071806366 - .long 429181199 - .long 3173211033 - .long 0 - .long 1071763456 - .long 4186185728 - .long 1071824681 - .long 2044904577 - .long 3174967132 - .long 0 - .long 1071753216 - .long 877596672 - .long 1071843159 - .long 1396318105 - .long 3173959727 - .long 0 - .long 1071742976 - .long 2912784384 - .long 1071861800 - .long 448136789 - .long 3174814192 - .long 0 - .long 1071733760 - .long 3722825728 - .long 1071878720 - .long 714165913 - .long 3173439560 - .long 0 - .long 1071723520 - .long 2522374144 - .long 1071897682 - .long 3227240353 - .long 3173394323 - .long 0 - .long 1071714304 - .long 4165410816 - .long 1071914895 - .long 1365684961 - .long 3174365060 - .long 0 - .long 1071705088 - .long 3477135360 - .long 1071932251 - .long 368482985 - .long 3174140821 - .long 0 - .long 1071695872 - .long 2079455232 - .long 1071949752 - .long 1320576317 - .long 1026822714 - .long 0 - .long 1071687680 - .long 851795968 - .long 1071965432 - .long 3702467026 - .long 1025224125 - .long 0 - .long 1071678464 - .long 647743488 - .long 1071983213 - .long 772992109 - .long 3174038459 - .long 0 - .long 1071670272 - .long 26537984 - .long 1071999146 - .long 2360214276 - .long 3174861275 - .long 0 - .long 1071661056 - .long 1547061248 - .long 1072017216 - .long 2886781435 - .long 1026423395 - .long 0 - .long 1071652864 - .long 2854492160 - .long 1072033410 - .long 215631550 - .long 1025638968 - .long 0 - .long 1071644672 - .long 4277811200 - .long 1072049730 - .long 2479318832 - .long 1026487127 - .long 4277811200 - .long 1072049730 - .long 2479318832 - .long 1026487127 - .long 64 - .long 1120927744 - .long 0 - .long 1094713344 - .long 0 - .long 1065615360 - .long 0 - .long 1135607808 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 3219128320 - .long 1431655955 - .long 1070945621 - .long 610 - .long 3218079744 - .long 2545118337 - .long 1070176665 - .long 1378399119 - .long 3217380693 - .long 612435357 - .long 1069697472 - .long 94536557 - .long 3217031348 - .type _imlsLnHATab,@object - .size _imlsLnHATab,1680 - .align 16 -.L_2il0floatpacket.72: - .long 0x00000000,0x80000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.72,@object - .size .L_2il0floatpacket.72,16 - .align 8 -.L_2il0floatpacket.73: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.73,@object - .size .L_2il0floatpacket.73,8 diff --git a/numpy/core/src/umath/svml/svml_z0_pow_d_la.s b/numpy/core/src/umath/svml/svml_z0_pow_d_la.s deleted file mode 100644 index 3ae18749d184..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_pow_d_la.s +++ /dev/null @@ -1,3525 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * 1) Calculating log2|x| - * - * Here we use the following formula. - * Let |x|=2^k1*X1, where k1 is integer, 1<=X1<2. - * Let C ~= 1/ln(2), - * Rcp1 ~= 1/X1, X2=Rcp1*X1, - * Rcp2 ~= 1/X2, X3=Rcp2*X2, - * Rcp3 ~= 1/X3, Rcp3C ~= C/X3. - * Then - * - * log2|x| = k1 + log2(1/Rcp1) + log2(1/Rcp2) + log2(C/Rcp3C) + - * + log2(X1*Rcp1*Rcp2*Rcp3C/C), - * - * where X1*Rcp1*Rcp2*Rcp3C = C*(1+q), q is very small. - * - * The values of Rcp1, log2(1/Rcp1), Rcp2, log2(1/Rcp2), - * Rcp3C, log2(C/Rcp3C) are taken from tables. - * Values of Rcp1, Rcp2, Rcp3C are such that RcpC=Rcp1*Rcp2*Rcp3C - * is exactly represented in target precision. - * - * log2(X1*Rcp1*Rcp2*Rcp3C/C) = log2(1+q) = ln(1+q)/ln2 = - * = 1/(ln2)*q - 1/(2ln2)*q^2 + 1/(3ln2)*q^3 - ... = - * = 1/(C*ln2)*cq - 1/(2*C^2*ln2)*cq^2 + 1/(3*C^3*ln2)*cq^3 - ... = - * = (1 + a1)*cq + a2*cq^2 + a3*cq^3 + ..., - * where - * cq=X1*Rcp1*Rcp2*Rcp3C-C, - * a1=1/(C*ln(2))-1 is small, - * a2=1/(2*C^2*ln2), - * a3=1/(3*C^3*ln2), - * ... - * We get 3 parts of log2 result: HH+HL+HLL ~= log2|x|. - * - * 2) Calculation of y*(HH+HL+HLL). - * Split y into YHi+YLo. - * Get high PH and medium PL parts of y*log2|x|. - * Get low PLL part of y*log2|x|. - * Now we have PH+PL+PLL ~= y*log2|x|. - * - * 3) Calculation of 2^(PH+PL+PLL). - * - * Mathematical idea of computing 2^(PH+PL+PLL) is the following. - * Let's represent PH+PL+PLL in the form N + j/2^expK + Z, - * where expK=7 in this implementation, N and j are integers, - * 0<=j<=2^expK-1, |Z|<2^(-expK-1). Hence - * - * 2^(PH+PL+PLL) ~= 2^N * 2^(j/2^expK) * 2^Z, - * - * where 2^(j/2^expK) is stored in a table, and - * - * 2^Z ~= 1 + B1*Z + B2*Z^2 ... + B5*Z^5. - * - * We compute 2^(PH+PL+PLL) as follows. - * - * Break PH into PHH + PHL, where PHH = N + j/2^expK. - * Z = PHL + PL + PLL - * Exp2Poly = B1*Z + B2*Z^2 ... + B5*Z^5 - * Get 2^(j/2^expK) from table in the form THI+TLO. - * Now we have 2^(PH+PL+PLL) ~= 2^N * (THI + TLO) * (1 + Exp2Poly). - * - * Get significand of 2^(PH+PL+PLL) in the form ResHi+ResLo: - * ResHi := THI - * ResLo := THI * Exp2Poly + TLO - * - * Get exponent ERes of the result: - * Res := ResHi + ResLo: - * Result := ex(Res) + N - * - * - */ - - - .text -.L_2__routine_start___svml_pow8_z0_0: - - .align 16,0x90 - .globl __svml_pow8 - -__svml_pow8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $256, %rsp - vgetmantpd $10, {sae}, %zmm0, %zmm10 - -/* Reduced argument: R = (DblRcp*Mantissa - 1) */ - vmovups 640+__svml_dpow_data_internal_avx512(%rip), %zmm15 - -/* Table lookup */ - vmovups __svml_dpow_data_internal_avx512(%rip), %zmm2 - vmovups 128+__svml_dpow_data_internal_avx512(%rip), %zmm3 - vmovups 256+__svml_dpow_data_internal_avx512(%rip), %zmm5 - vmovups 384+__svml_dpow_data_internal_avx512(%rip), %zmm4 - -/* Prepare exponent correction: DblRcp<1.5? -- was 0.75 in initial AVX3 version, which used Mantissa in [1,2) */ - vmovups 704+__svml_dpow_data_internal_avx512(%rip), %zmm14 - -/* GetExp(x) */ - vgetexppd {sae}, %zmm0, %zmm9 - -/* P8_9 */ - vmovups 960+__svml_dpow_data_internal_avx512(%rip), %zmm7 - -/* DblRcp ~ 1/Mantissa */ - vrcp14pd %zmm10, %zmm12 - -/* x<=0 or Inf/NaN? */ - vfpclasspd $223, %zmm0, %k0 - -/* round DblRcp to 5 fractional bits (RN mode, no Precision exception) */ - vrndscalepd $88, {sae}, %zmm12, %zmm13 - vmovups 896+__svml_dpow_data_internal_avx512(%rip), %zmm12 - kmovw %k0, %edx - vfmsub213pd {rn-sae}, %zmm15, %zmm13, %zmm10 - vcmppd $17, {sae}, %zmm14, %zmm13, %k1 - vfmadd231pd {rn-sae}, %zmm10, %zmm12, %zmm7 - -/* Prepare table index */ - vpsrlq $47, %zmm13, %zmm8 - vmovups 1024+__svml_dpow_data_internal_avx512(%rip), %zmm13 - vpermt2pd 64+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm2 - vpermt2pd 192+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm3 - vpermt2pd 320+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm5 - vpermt2pd 448+__svml_dpow_data_internal_avx512(%rip), %zmm8, %zmm4 - -/* add 1 to Expon if DblRcp<1.5 */ - vaddpd {rn-sae}, %zmm15, %zmm9, %zmm9{%k1} - vmovaps %zmm1, %zmm11 - vpsllq $59, %zmm8, %zmm1 - -/* R^2 */ - vmulpd {rn-sae}, %zmm10, %zmm10, %zmm8 - vpmovq2m %zmm1, %k2 - -/* y Inf/NaN? */ - vfpclasspd $153, %zmm11, %k3 - -/* P6_7 */ - vmovups 1088+__svml_dpow_data_internal_avx512(%rip), %zmm1 - vblendmpd %zmm3, %zmm2, %zmm14{%k2} - vblendmpd %zmm4, %zmm5, %zmm6{%k2} - -/* P4_5 */ - vmovups 1216+__svml_dpow_data_internal_avx512(%rip), %zmm2 - vfmadd231pd {rn-sae}, %zmm10, %zmm13, %zmm1 - vmovups 832+__svml_dpow_data_internal_avx512(%rip), %zmm4 - vmovups 768+__svml_dpow_data_internal_avx512(%rip), %zmm3 - -/* Expon + Th */ - vaddpd {rn-sae}, %zmm9, %zmm14, %zmm15 - vmovups 1152+__svml_dpow_data_internal_avx512(%rip), %zmm9 - -/* P6_9 */ - vfmadd213pd {rn-sae}, %zmm1, %zmm8, %zmm7 - -/* P2_3 */ - vmovups 1344+__svml_dpow_data_internal_avx512(%rip), %zmm1 - -/* P1_2 */ - vmovups 1920+__svml_dpow_data_internal_avx512(%rip), %zmm14 - vfmadd231pd {rn-sae}, %zmm10, %zmm9, %zmm2 - kmovw %k3, %eax - -/* P4_9 */ - vfmadd213pd {rn-sae}, %zmm2, %zmm8, %zmm7 - -/* R2l */ - vmovaps %zmm10, %zmm5 - orl %eax, %edx - vfmsub213pd {rn-sae}, %zmm8, %zmm10, %zmm5 - -/* Tl + R2l*c2h */ - vfmadd213pd {rn-sae}, %zmm6, %zmm4, %zmm5 - vmovups 1280+__svml_dpow_data_internal_avx512(%rip), %zmm6 - vfmadd231pd {rn-sae}, %zmm10, %zmm6, %zmm1 - -/* Expon + Th+ R*c1h */ - vmovaps %zmm15, %zmm12 - vfmadd231pd {rn-sae}, %zmm10, %zmm3, %zmm12 - -/* P2_9 */ - vfmadd213pd {rn-sae}, %zmm1, %zmm8, %zmm7 - -/* (R*c1h)_h */ - vsubpd {rn-sae}, %zmm15, %zmm12, %zmm9 - -/* Tl + R2l*c2h + R2*P2_9 */ - vfmadd231pd {rn-sae}, %zmm8, %zmm7, %zmm5 - vmovups 1408+__svml_dpow_data_internal_avx512(%rip), %zmm7 - -/* (R*c1h)_l */ - vfmsub231pd {rn-sae}, %zmm3, %zmm10, %zmm9 - -/* Expon + Th+ R*c1h + R2*c2h */ - vmovaps %zmm12, %zmm13 - vfmadd231pd {rn-sae}, %zmm8, %zmm4, %zmm13 - -/* R*c1l + (R*c1h)_l */ - vfmadd213pd {rn-sae}, %zmm9, %zmm7, %zmm10 - vmovups 1728+__svml_dpow_data_internal_avx512(%rip), %zmm9 - -/* High2 + Tlh */ - vaddpd {rn-sae}, %zmm5, %zmm13, %zmm6 - -/* (R2*c2h)_h */ - vsubpd {rn-sae}, %zmm12, %zmm13, %zmm2 - -/* P3_4 */ - vmovups 1792+__svml_dpow_data_internal_avx512(%rip), %zmm12 - -/* y*High */ - vmulpd {rz-sae}, %zmm11, %zmm6, %zmm3 - -/* (R2*c2h)_l */ - vfmsub213pd {rn-sae}, %zmm2, %zmm4, %zmm8 - vsubpd {rn-sae}, %zmm13, %zmm6, %zmm1 - -/* (y*High)_low */ - vfmsub213pd {rz-sae}, %zmm3, %zmm11, %zmm6 - -/* Tll */ - vsubpd {rn-sae}, %zmm1, %zmm5, %zmm4 - -/* R*c1l + (R*c1h)_l+(R2*c2h)_l */ - vaddpd {rn-sae}, %zmm8, %zmm10, %zmm10 - vmovups 1472+__svml_dpow_data_internal_avx512(%rip), %zmm1 - vmovups 1600+__svml_dpow_data_internal_avx512(%rip), %zmm8 - -/* Tll + R*c1l + (R*c1h)_l */ - vaddpd {rn-sae}, %zmm10, %zmm4, %zmm5 - vaddpd {rd-sae}, %zmm1, %zmm3, %zmm2 - -/* - * / - * exp2 computation starts here - */ - vreducepd $65, {sae}, %zmm3, %zmm4 - -/* Zl = y*Tll + Zl */ - vfmadd213pd {rz-sae}, %zmm6, %zmm11, %zmm5 - -/* P5_6 */ - vmovups 1664+__svml_dpow_data_internal_avx512(%rip), %zmm1 - vmovups 1856+__svml_dpow_data_internal_avx512(%rip), %zmm10 - vaddpd {rn-sae}, %zmm5, %zmm4, %zmm7 - vandpd 2176+__svml_dpow_data_internal_avx512(%rip), %zmm3, %zmm3 - -/* Table lookup: The, Tle/The */ - vmovups 512+__svml_dpow_data_internal_avx512(%rip), %zmm4 - -/* - * scaled result - * Filter very large |y*log2(x)| and scale final result for LRB2 - */ - vmovups 2240+__svml_dpow_data_internal_avx512(%rip), %zmm5 - -/* ensure |R|<2 even for special cases */ - vandpd 1536+__svml_dpow_data_internal_avx512(%rip), %zmm7, %zmm15 - vpermt2pd 576+__svml_dpow_data_internal_avx512(%rip), %zmm2, %zmm4 - vcmppd $22, {sae}, %zmm5, %zmm3, %k0 - -/* Re^2 */ - vmulpd {rn-sae}, %zmm15, %zmm15, %zmm13 - -/* R*The */ - vmulpd {rn-sae}, %zmm4, %zmm15, %zmm7 - vfmadd231pd {rn-sae}, %zmm15, %zmm8, %zmm1 - vfmadd231pd {rn-sae}, %zmm15, %zmm9, %zmm12 - vfmadd231pd {rn-sae}, %zmm15, %zmm10, %zmm14 - vpsllq $48, %zmm2, %zmm2 - vfmadd213pd {rn-sae}, %zmm12, %zmm13, %zmm1 - vandpd 2304+__svml_dpow_data_internal_avx512(%rip), %zmm2, %zmm2 - kmovw %k0, %ecx - vfmadd213pd {rn-sae}, %zmm14, %zmm13, %zmm1 - -/* The + The*R*poly */ - vfmadd213pd {rn-sae}, %zmm4, %zmm7, %zmm1 - orl %ecx, %edx - vmulpd {rn-sae}, %zmm2, %zmm1, %zmm1 - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm11, 128(%rsp) - vmovups %zmm1, 192(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 192(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - lea 192(%rsp,%r12,8), %rdx - - call __svml_dpow_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_pow8,@function - .size __svml_pow8,.-__svml_pow8 -..LN__svml_pow8.0: - -.L_2__routine_start___svml_dpow_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dpow_cout_rare_internal: - - - .cfi_startproc -..L53: - - pushq %r12 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - pushq %r15 - .cfi_def_cfa_offset 32 - .cfi_offset 15, -32 - pushq %rbx - .cfi_def_cfa_offset 40 - .cfi_offset 3, -40 - movq %rdx, %r8 - movsd 6824+__dpow_la_CoutTab(%rip), %xmm1 - xorl %eax, %eax - movsd (%rdi), %xmm3 - movsd (%rsi), %xmm0 - mulsd %xmm1, %xmm3 - mulsd %xmm1, %xmm0 - movsd %xmm3, -72(%rsp) - movsd %xmm0, -16(%rsp) - movzwl -66(%rsp), %r13d - movzwl -10(%rsp), %edx - andl $32752, %r13d - movzbl -65(%rsp), %r12d - andl $32752, %edx - movb -9(%rsp), %bl - andl $128, %r12d - andb $-128, %bl - shrl $4, %r13d - shrl $4, %edx - shrl $7, %r12d - shrb $7, %bl - testl $1048575, -68(%rsp) - jne .LBL_2_4 - - - cmpl $0, -72(%rsp) - jne .LBL_2_4 - - - movb $1, %r11b - jmp .LBL_2_5 - -.LBL_2_4: - - xorb %r11b, %r11b - -.LBL_2_5: - - movl -12(%rsp), %ecx - movl -16(%rsp), %edi - andl $1048575, %ecx - jne .LBL_2_8 - - - testl %edi, %edi - jne .LBL_2_8 - - - movl $1, %r10d - jmp .LBL_2_9 - -.LBL_2_8: - - xorl %r10d, %r10d - -.LBL_2_9: - - movl %edx, %r9d - xorl %esi, %esi - cmpl $2047, %edx - setne %sil - shll $20, %r9d - orl %ecx, %r9d - movl %edi, %ecx - orl %r9d, %ecx - je .LBL_2_24 - - - lea -1023(%rdx), %ecx - cmpl $1023, %edx - jl .LBL_2_23 - - - testl %esi, %esi - je .LBL_2_23 - - - cmpl $20, %ecx - jg .LBL_2_16 - - - movl %r9d, %r15d - shll %cl, %r15d - shll $12, %r15d - orl %edi, %r15d - je .LBL_2_15 - -.LBL_2_14: - - xorl %r9d, %r9d - jmp .LBL_2_21 - -.LBL_2_15: - - lea -1012(%rdx), %ecx - shll %cl, %r9d - notl %r9d - shrl $31, %r9d - incl %r9d - jmp .LBL_2_21 - -.LBL_2_16: - - cmpl $53, %ecx - jge .LBL_2_20 - - - lea -1012(%rdx), %ecx - shll %cl, %edi - testl $2147483647, %edi - jne .LBL_2_14 - - - notl %edi - shrl $31, %edi - lea 1(%rdi), %r9d - jmp .LBL_2_21 - -.LBL_2_20: - - movl $2, %r9d - -.LBL_2_21: - - testl %r12d, %r12d - jne .LBL_2_29 - - - cmpl $1023, %r13d - jne .LBL_2_29 - jmp .LBL_2_57 - -.LBL_2_23: - - xorl %r9d, %r9d - jmp .LBL_2_25 - -.LBL_2_24: - - movl $2, %r9d - -.LBL_2_25: - - testl %r12d, %r12d - jne .LBL_2_27 - - - cmpl $1023, %r13d - je .LBL_2_74 - -.LBL_2_27: - - testl %edx, %edx - jne .LBL_2_29 - - - testl %r10d, %r10d - jne .LBL_2_55 - -.LBL_2_29: - - cmpl $2047, %r13d - je .LBL_2_31 - -.LBL_2_30: - - movb $1, %cl - jmp .LBL_2_32 - -.LBL_2_31: - - xorb %cl, %cl - -.LBL_2_32: - - orb %cl, %r11b - je .LBL_2_54 - - - orl %esi, %r10d - je .LBL_2_54 - - - movsd 6816+__dpow_la_CoutTab(%rip), %xmm2 - ucomisd %xmm2, %xmm3 - jp .LBL_2_35 - je .LBL_2_71 - -.LBL_2_35: - - ucomisd 6832+__dpow_la_CoutTab(%rip), %xmm3 - jp .LBL_2_36 - je .LBL_2_68 - -.LBL_2_36: - - testb %cl, %cl - je .LBL_2_47 - - - testl %esi, %esi - je .LBL_2_47 - - - comisd %xmm2, %xmm3 - ja .LBL_2_40 - - - testl %r9d, %r9d - je .LBL_2_46 - -.LBL_2_40: - - lea 6824+__dpow_la_CoutTab(%rip), %rcx - andl %r12d, %r9d - movsd %xmm3, -72(%rsp) - andb $127, -65(%rsp) - movsd (%rcx,%r9,8), %xmm0 - xorl %ecx, %ecx - testl %r13d, %r13d - jne .LBL_2_42 - - - movsd -72(%rsp), %xmm2 - movl $-200, %ecx - mulsd 6864+__dpow_la_CoutTab(%rip), %xmm2 - movsd %xmm2, -72(%rsp) - jmp .LBL_2_43 - -.LBL_2_42: - - movsd -72(%rsp), %xmm2 - -.LBL_2_43: - - movzwl -66(%rsp), %esi - pxor %xmm7, %xmm7 - andl $32752, %esi - shrl $4, %esi - movl -68(%rsp), %r9d - shll $20, %esi - andl $1048575, %r9d - movsd %xmm2, -56(%rsp) - orl %r9d, %esi - movzwl -50(%rsp), %edi - addl $-1072152576, %esi - andl $-32753, %edi - addl $16368, %edi - movw %di, -50(%rsp) - sarl $20, %esi - movl -52(%rsp), %r10d - addl %ecx, %esi - lea __dpow_la_CoutTab(%rip), %rcx - andl $1032192, %r10d - addl $16384, %r10d - shrl $15, %r10d - movsd -56(%rsp), %xmm2 - movsd (%rcx,%r10,8), %xmm5 - addl %r10d, %r10d - movaps %xmm5, %xmm6 - movsd 6856+__dpow_la_CoutTab(%rip), %xmm14 - mulsd %xmm2, %xmm6 - cvtsi2sd %esi, %xmm7 - mulsd %xmm2, %xmm14 - addsd 264(%rcx,%r10,8), %xmm7 - movsd %xmm6, -48(%rsp) - movsd %xmm14, -32(%rsp) - movl -44(%rsp), %r11d - andl $64512, %r11d - movsd -32(%rsp), %xmm15 - addl $1024, %r11d - shrl $11, %r11d - subsd -56(%rsp), %xmm15 - movsd 792(%rcx,%r11,8), %xmm12 - addl %r11d, %r11d - mulsd %xmm12, %xmm6 - addsd 1056(%rcx,%r11,8), %xmm7 - mulsd %xmm12, %xmm5 - movsd %xmm15, -24(%rsp) - movsd -32(%rsp), %xmm4 - movsd -24(%rsp), %xmm3 - movsd %xmm6, -40(%rsp) - subsd %xmm3, %xmm4 - movl -36(%rsp), %r12d - andl $4080, %r12d - addl $16, %r12d - movsd %xmm4, -32(%rsp) - shrl $5, %r12d - movsd -32(%rsp), %xmm12 - movsd 1584(%rcx,%r12,8), %xmm13 - addl %r12d, %r12d - mulsd %xmm13, %xmm5 - subsd %xmm12, %xmm2 - addsd 2616(%rcx,%r12,8), %xmm7 - mulsd %xmm13, %xmm6 - movsd %xmm2, -24(%rsp) - movaps %xmm6, %xmm8 - movsd 6856+__dpow_la_CoutTab(%rip), %xmm2 - mulsd %xmm5, %xmm2 - subsd 6848+__dpow_la_CoutTab(%rip), %xmm8 - movsd -32(%rsp), %xmm3 - movsd -24(%rsp), %xmm4 - movsd %xmm2, -32(%rsp) - movsd -32(%rsp), %xmm13 - movsd 272(%rcx,%r10,8), %xmm11 - subsd %xmm5, %xmm13 - movsd %xmm13, -24(%rsp) - movsd -32(%rsp), %xmm2 - movsd -24(%rsp), %xmm14 - movsd 1064(%rcx,%r11,8), %xmm10 - subsd %xmm14, %xmm2 - movsd %xmm2, -32(%rsp) - movaps %xmm3, %xmm2 - movsd -32(%rsp), %xmm15 - movsd 2624(%rcx,%r12,8), %xmm9 - subsd %xmm15, %xmm5 - movsd %xmm5, -24(%rsp) - movsd -32(%rsp), %xmm5 - mulsd %xmm5, %xmm2 - mulsd %xmm4, %xmm5 - subsd %xmm6, %xmm2 - movaps %xmm7, %xmm6 - addsd %xmm5, %xmm2 - addsd %xmm8, %xmm6 - movsd -24(%rsp), %xmm12 - mulsd %xmm12, %xmm3 - mulsd %xmm12, %xmm4 - addsd %xmm3, %xmm2 - movsd %xmm6, -32(%rsp) - addsd %xmm4, %xmm2 - movsd -32(%rsp), %xmm3 - subsd %xmm3, %xmm7 - addsd %xmm8, %xmm7 - movsd %xmm7, -24(%rsp) - movsd -32(%rsp), %xmm4 - movsd %xmm4, -64(%rsp) - movzwl -58(%rsp), %ecx - andl $32752, %ecx - shrl $4, %ecx - addl %edx, %ecx - movsd -24(%rsp), %xmm3 - cmpl $2057, %ecx - jge .LBL_2_67 - - - cmpl $1984, %ecx - jg .LBL_2_58 - - - movsd %xmm1, -32(%rsp) - movsd -32(%rsp), %xmm1 - addsd 6808+__dpow_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -32(%rsp) - movsd -32(%rsp), %xmm2 - mulsd %xmm0, %xmm2 - jmp .LBL_2_56 - -.LBL_2_46: - - movsd %xmm2, -32(%rsp) - movl $1, %eax - movsd -32(%rsp), %xmm1 - movsd -32(%rsp), %xmm0 - divsd %xmm0, %xmm1 - movsd %xmm1, -32(%rsp) - movsd -32(%rsp), %xmm2 - jmp .LBL_2_56 - -.LBL_2_47: - - cmpl $1023, %r13d - jge .LBL_2_51 - - - testb %bl, %bl - je .LBL_2_56 - - - movaps %xmm0, %xmm2 - mulsd %xmm0, %xmm2 - jmp .LBL_2_56 - -.LBL_2_51: - - testb %bl, %bl - je .LBL_2_53 - - - lea 6824+__dpow_la_CoutTab(%rip), %rdx - andl %r12d, %r9d - mulsd (%rdx,%r9,8), %xmm2 - jmp .LBL_2_56 - -.LBL_2_53: - - mulsd %xmm3, %xmm3 - lea 6824+__dpow_la_CoutTab(%rip), %rdx - mulsd %xmm0, %xmm3 - andl %r12d, %r9d - movaps %xmm3, %xmm2 - mulsd (%rdx,%r9,8), %xmm2 - jmp .LBL_2_56 - -.LBL_2_54: - - movaps %xmm3, %xmm2 - addsd %xmm0, %xmm2 - jmp .LBL_2_56 - -.LBL_2_55: - - movq 6824+__dpow_la_CoutTab(%rip), %rdx - addsd %xmm0, %xmm3 - movsd %xmm3, -32(%rsp) - movq %rdx, -24(%rsp) - movb -25(%rsp), %cl - movb -17(%rsp), %bl - andb $-128, %cl - andb $127, %bl - orb %cl, %bl - movb %bl, -17(%rsp) - movsd -24(%rsp), %xmm2 - movsd -24(%rsp), %xmm0 - mulsd %xmm0, %xmm2 - -.LBL_2_56: - - movsd %xmm2, (%r8) - .cfi_restore 3 - popq %rbx - .cfi_def_cfa_offset 32 - .cfi_restore 15 - popq %r15 - .cfi_def_cfa_offset 24 - .cfi_restore 13 - popq %r13 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 - .cfi_def_cfa_offset 8 - ret - .cfi_def_cfa_offset 40 - .cfi_offset 3, -40 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 15, -32 - -.LBL_2_57: - - testb %r11b, %r11b - je .LBL_2_30 - jmp .LBL_2_55 - -.LBL_2_58: - - lea 6752+__dpow_la_CoutTab(%rip), %rdx - movsd (%rdx), %xmm6 - lea 4688+__dpow_la_CoutTab(%rip), %rcx - movsd -64(%rsp), %xmm7 - addsd %xmm2, %xmm8 - addsd %xmm9, %xmm10 - addsd %xmm3, %xmm2 - mulsd %xmm8, %xmm6 - addsd %xmm10, %xmm11 - addsd -8(%rdx), %xmm6 - addsd %xmm2, %xmm11 - mulsd %xmm8, %xmm6 - movaps %xmm11, %xmm9 - addsd -16(%rdx), %xmm6 - mulsd %xmm8, %xmm6 - addsd -24(%rdx), %xmm6 - mulsd %xmm8, %xmm6 - addsd %xmm6, %xmm4 - lea -32(%rsp), %rbx - movsd %xmm4, (%rbx) - movsd (%rbx), %xmm8 - subsd %xmm8, %xmm7 - addsd %xmm6, %xmm7 - lea -24(%rsp), %rsi - movsd %xmm7, (%rsi) - movsd (%rbx), %xmm12 - movsd (%rsi), %xmm5 - addsd %xmm12, %xmm9 - movsd %xmm9, (%rbx) - movsd (%rbx), %xmm10 - subsd %xmm10, %xmm12 - addsd %xmm11, %xmm12 - movsd 104(%rdx), %xmm11 - movsd %xmm12, (%rsi) - movsd (%rbx), %xmm3 - mulsd %xmm3, %xmm11 - movsd (%rsi), %xmm4 - movsd %xmm11, (%rbx) - addsd %xmm5, %xmm4 - movsd (%rbx), %xmm13 - lea -16(%rsp), %rdi - movsd (%rdi), %xmm11 - subsd %xmm3, %xmm13 - mulsd (%rdi), %xmm4 - movsd %xmm13, (%rsi) - movaps %xmm11, %xmm6 - movsd (%rbx), %xmm15 - movsd (%rsi), %xmm14 - mulsd 104(%rdx), %xmm6 - subsd %xmm14, %xmm15 - movsd %xmm15, (%rbx) - movsd (%rbx), %xmm2 - movsd 88(%rdx), %xmm5 - subsd %xmm2, %xmm3 - movsd %xmm3, (%rsi) - movsd (%rbx), %xmm3 - movsd (%rsi), %xmm2 - movsd %xmm6, (%rbx) - movsd (%rbx), %xmm7 - subsd (%rdi), %xmm7 - movsd %xmm7, (%rsi) - movsd (%rbx), %xmm9 - movsd (%rsi), %xmm8 - subsd %xmm8, %xmm9 - movsd %xmm9, (%rbx) - movsd (%rbx), %xmm10 - subsd %xmm10, %xmm11 - movsd %xmm11, (%rsi) - movsd (%rbx), %xmm6 - movaps %xmm6, %xmm14 - mulsd %xmm3, %xmm14 - mulsd %xmm2, %xmm6 - addsd %xmm14, %xmm5 - movsd (%rsi), %xmm15 - mulsd %xmm15, %xmm2 - mulsd %xmm15, %xmm3 - addsd %xmm2, %xmm6 - movsd %xmm5, (%rbx) - addsd %xmm3, %xmm6 - movsd (%rbx), %xmm12 - addsd %xmm4, %xmm6 - subsd 88(%rdx), %xmm12 - movsd %xmm12, -88(%rsp) - movsd -88(%rsp), %xmm13 - movsd 40(%rdx), %xmm3 - subsd %xmm13, %xmm14 - movsd %xmm14, -80(%rsp) - movsd -80(%rsp), %xmm5 - movl (%rbx), %edx - movl %edx, %esi - andl $127, %edx - addsd %xmm6, %xmm5 - mulsd %xmm5, %xmm3 - addl %edx, %edx - movsd -8(%rcx,%rdx,8), %xmm2 - sarl $7, %esi - lea 6784+__dpow_la_CoutTab(%rip), %r9 - addsd (%r9), %xmm3 - mulsd %xmm5, %xmm3 - addsd -8(%r9), %xmm3 - mulsd %xmm5, %xmm3 - addsd -16(%r9), %xmm3 - mulsd %xmm5, %xmm3 - addsd -24(%r9), %xmm3 - mulsd %xmm5, %xmm3 - mulsd %xmm2, %xmm3 - addsd (%rcx,%rdx,8), %xmm3 - movaps %xmm3, %xmm4 - addsd %xmm2, %xmm4 - movsd %xmm4, -72(%rsp) - movzwl -66(%rsp), %ecx - movl %ecx, %ebx - andl $32752, %ebx - shrl $4, %ebx - lea -1023(%rsi,%rbx), %edx - cmpl $1024, %edx - jge .LBL_2_66 - - - cmpl $-1022, %edx - jl .LBL_2_61 - - - andl $-32753, %ecx - lea 1023(%rdx), %edx - andl $2047, %edx - shll $4, %edx - orl %edx, %ecx - movw %cx, -66(%rsp) - movsd -72(%rsp), %xmm2 - mulsd %xmm0, %xmm2 - movsd %xmm2, -72(%rsp) - jmp .LBL_2_56 - -.LBL_2_61: - - cmpl $-1032, %edx - jl .LBL_2_63 - - - lea -32(%rsp), %rcx - movsd %xmm4, (%rcx) - addl $1223, %esi - movsd (%rcx), %xmm1 - andl $2047, %esi - lea 6824+__dpow_la_CoutTab(%rip), %rbx - movq (%rbx), %rdx - subsd %xmm1, %xmm2 - movq %rdx, -64(%rsp) - addsd %xmm2, %xmm3 - lea -24(%rsp), %rdi - movsd %xmm3, (%rdi) - movsd (%rcx), %xmm7 - movsd 32(%rbx), %xmm2 - mulsd %xmm7, %xmm2 - movsd (%rdi), %xmm9 - movsd %xmm2, (%rcx) - movsd (%rcx), %xmm3 - shrq $48, %rdx - subsd %xmm7, %xmm3 - movsd %xmm3, (%rdi) - andl $-32753, %edx - movsd (%rcx), %xmm5 - movsd (%rdi), %xmm4 - shll $4, %esi - subsd %xmm4, %xmm5 - movsd %xmm5, (%rcx) - orl %esi, %edx - lea -32(%rsp), %rsi - movsd (%rsi), %xmm6 - movw %dx, -58(%rsp) - subsd %xmm6, %xmm7 - movsd %xmm7, (%rdi) - movsd (%rsi), %xmm11 - movsd (%rdi), %xmm12 - movsd -64(%rsp), %xmm10 - addsd %xmm9, %xmm12 - mulsd %xmm10, %xmm11 - mulsd %xmm10, %xmm12 - movsd 48(%rbx), %xmm8 - addsd %xmm11, %xmm12 - mulsd %xmm8, %xmm0 - movq -16(%rbx), %rcx - movq %rcx, (%rsi) - lea -32(%rsp), %rcx - movsd (%rcx), %xmm14 - movsd (%rcx), %xmm13 - mulsd %xmm13, %xmm14 - mulsd %xmm12, %xmm0 - movsd %xmm14, (%rcx) - movsd (%rcx), %xmm15 - addsd %xmm15, %xmm0 - movaps %xmm0, %xmm2 - movsd %xmm2, -72(%rsp) - jmp .LBL_2_56 - -.LBL_2_63: - - cmpl $-1084, %edx - jl .LBL_2_65 - - - addl $1223, %esi - andl $2047, %esi - lea 6830+__dpow_la_CoutTab(%rip), %rcx - movzwl (%rcx), %edx - shll $4, %esi - andl $-32753, %edx - movsd %xmm1, -64(%rsp) - orl %esi, %edx - movw %dx, -58(%rsp) - movsd 42(%rcx), %xmm2 - movsd -64(%rsp), %xmm1 - mulsd %xmm2, %xmm0 - mulsd %xmm1, %xmm4 - movq -22(%rcx), %rcx - movq %rcx, -32(%rsp) - mulsd %xmm4, %xmm0 - lea -32(%rsp), %rcx - movsd (%rcx), %xmm4 - movsd (%rcx), %xmm3 - mulsd %xmm3, %xmm4 - movsd %xmm4, (%rcx) - movsd (%rcx), %xmm5 - subsd %xmm5, %xmm0 - movaps %xmm0, %xmm2 - movsd %xmm2, -72(%rsp) - jmp .LBL_2_56 - -.LBL_2_65: - - movq 6808+__dpow_la_CoutTab(%rip), %rdx - movq %rdx, -32(%rsp) - lea -32(%rsp), %rdx - movsd (%rdx), %xmm2 - movsd (%rdx), %xmm1 - mulsd %xmm1, %xmm2 - movsd %xmm2, (%rdx) - movsd (%rdx), %xmm3 - mulsd %xmm3, %xmm0 - movaps %xmm0, %xmm2 - movsd %xmm2, -72(%rsp) - jmp .LBL_2_56 - -.LBL_2_66: - - movq 6800+__dpow_la_CoutTab(%rip), %rdx - movq %rdx, -32(%rsp) - lea -32(%rsp), %rdx - movsd (%rdx), %xmm2 - movsd (%rdx), %xmm1 - mulsd %xmm1, %xmm2 - movsd %xmm2, (%rdx) - movsd (%rdx), %xmm3 - mulsd %xmm3, %xmm0 - movaps %xmm0, %xmm2 - movsd %xmm2, -72(%rsp) - jmp .LBL_2_56 - -.LBL_2_67: - - movb -57(%rsp), %dl - lea 6800+__dpow_la_CoutTab(%rip), %rcx - andb $-128, %dl - shrb $7, %dl - xorb %dl, %bl - movzbl %bl, %ebx - movsd (%rcx,%rbx,8), %xmm2 - mulsd %xmm2, %xmm2 - mulsd %xmm0, %xmm2 - jmp .LBL_2_56 - -.LBL_2_68: - - testl %r9d, %r9d - jne .LBL_2_70 - - - testl %esi, %esi - jne .LBL_2_36 - -.LBL_2_70: - - lea 6824+__dpow_la_CoutTab(%rip), %rdx - andl $1, %r9d - movsd (%rdx,%r9,8), %xmm2 - jmp .LBL_2_56 - -.LBL_2_71: - - mulsd %xmm3, %xmm3 - testb %bl, %bl - je .LBL_2_73 - - - lea 6824+__dpow_la_CoutTab(%rip), %rax - andl %r12d, %r9d - movsd (%rax,%r9,8), %xmm2 - movl $1, %eax - divsd %xmm3, %xmm2 - jmp .LBL_2_56 - -.LBL_2_73: - - lea 6824+__dpow_la_CoutTab(%rip), %rdx - andl %r12d, %r9d - movsd (%rdx,%r9,8), %xmm2 - mulsd %xmm3, %xmm2 - jmp .LBL_2_56 - -.LBL_2_74: - - testb %r11b, %r11b - jne .LBL_2_55 - - - testl %edx, %edx - jne .LBL_2_30 - - - testl %r10d, %r10d - je .LBL_2_30 - jmp .LBL_2_55 - .align 16,0x90 - - .cfi_endproc - - .type __svml_dpow_cout_rare_internal,@function - .size __svml_dpow_cout_rare_internal,.-__svml_dpow_cout_rare_internal -..LN__svml_dpow_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dpow_data_internal_avx512: - .long 0 - .long 0 - .long 1972240384 - .long 3215375059 - .long 4207476736 - .long 3216401398 - .long 2363129856 - .long 3217067096 - .long 972816384 - .long 3217408026 - .long 766836736 - .long 3217739614 - .long 3103948800 - .long 3218062358 - .long 2869821440 - .long 3218228231 - .long 1271726080 - .long 3218381432 - .long 3449618432 - .long 3218530849 - .long 2300510208 - .long 3218676666 - .long 4147675136 - .long 3218819051 - .long 3761438720 - .long 3218958163 - .long 1758134272 - .long 3219094149 - .long 14041088 - .long 3219177733 - .long 513138688 - .long 3219242801 - .long 1904279552 - .long 1071288313 - .long 180338688 - .long 1071163544 - .long 1751498752 - .long 1071041295 - .long 2999894016 - .long 1070921467 - .long 3815833600 - .long 1070803966 - .long 1399062528 - .long 1070688704 - .long 2835742720 - .long 1070555096 - .long 2818572288 - .long 1070333031 - .long 180322304 - .long 1070114968 - .long 704610304 - .long 1069900764 - .long 3265986560 - .long 1069690285 - .long 3908239360 - .long 1069419290 - .long 2530213888 - .long 1069012484 - .long 2785017856 - .long 1068612402 - .long 3386507264 - .long 1067938708 - .long 2250244096 - .long 1066877934 - .long 0 - .long 0 - .long 650173971 - .long 3177165030 - .long 3428024929 - .long 3174241916 - .long 1628324029 - .long 1026060711 - .long 804943611 - .long 1028963376 - .long 518075456 - .long 1027828752 - .long 1462134616 - .long 1028126172 - .long 384118417 - .long 3174884873 - .long 1227618047 - .long 3176893182 - .long 446961290 - .long 3175726255 - .long 2998207852 - .long 3176597684 - .long 2742536172 - .long 3173319968 - .long 3242321520 - .long 1029042433 - .long 1690697745 - .long 3174775608 - .long 4137858450 - .long 1027958429 - .long 2514005062 - .long 1029694520 - .long 804943611 - .long 1027914800 - .long 2871266960 - .long 3173412044 - .long 3679462403 - .long 1027724294 - .long 2476829589 - .long 1026974179 - .long 1572243234 - .long 3176241050 - .long 2514550597 - .long 3175960347 - .long 1207415416 - .long 1029642824 - .long 531120703 - .long 3174459378 - .long 894287639 - .long 1029609779 - .long 1133539114 - .long 1029069062 - .long 1763539348 - .long 1029327721 - .long 1658032750 - .long 3171241178 - .long 825146242 - .long 3176213734 - .long 831162967 - .long 1028990787 - .long 1128763360 - .long 3176457556 - .long 896504796 - .long 3175699769 - .long 0 - .long 1072693248 - .long 1828292879 - .long 1072739672 - .long 1014845819 - .long 1072788152 - .long 1853186616 - .long 1072838778 - .long 171030293 - .long 1072891646 - .long 1276261410 - .long 1072946854 - .long 3577096743 - .long 1073004506 - .long 3712504873 - .long 1073064711 - .long 1719614413 - .long 1073127582 - .long 1944781191 - .long 1073193236 - .long 1110089947 - .long 1073261797 - .long 2191782032 - .long 1073333393 - .long 2572866477 - .long 1073408159 - .long 3716502172 - .long 1073486235 - .long 3707479175 - .long 1073567768 - .long 2728693978 - .long 1073652911 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1073217536 - .long 0 - .long 1073217536 - .long 0 - .long 1073217536 - .long 0 - .long 1073217536 - .long 0 - .long 1073217536 - .long 0 - .long 1073217536 - .long 0 - .long 1073217536 - .long 0 - .long 1073217536 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 3219592519 - .long 1697350398 - .long 3219592519 - .long 1697350398 - .long 3219592519 - .long 1697350398 - .long 3219592519 - .long 1697350398 - .long 3219592519 - .long 1697350398 - .long 3219592519 - .long 1697350398 - .long 3219592519 - .long 1697350398 - .long 3219592519 - .long 4114041750 - .long 1069844377 - .long 4114041750 - .long 1069844377 - .long 4114041750 - .long 1069844377 - .long 4114041750 - .long 1069844377 - .long 4114041750 - .long 1069844377 - .long 4114041750 - .long 1069844377 - .long 4114041750 - .long 1069844377 - .long 4114041750 - .long 1069844377 - .long 2589302621 - .long 3217496037 - .long 2589302621 - .long 3217496037 - .long 2589302621 - .long 3217496037 - .long 2589302621 - .long 3217496037 - .long 2589302621 - .long 3217496037 - .long 2589302621 - .long 3217496037 - .long 2589302621 - .long 3217496037 - .long 2589302621 - .long 3217496037 - .long 4238449923 - .long 1070227829 - .long 4238449923 - .long 1070227829 - .long 4238449923 - .long 1070227829 - .long 4238449923 - .long 1070227829 - .long 4238449923 - .long 1070227829 - .long 4238449923 - .long 1070227829 - .long 4238449923 - .long 1070227829 - .long 4238449923 - .long 1070227829 - .long 3163535583 - .long 3217999625 - .long 3163535583 - .long 3217999625 - .long 3163535583 - .long 3217999625 - .long 3163535583 - .long 3217999625 - .long 3163535583 - .long 3217999625 - .long 3163535583 - .long 3217999625 - .long 3163535583 - .long 3217999625 - .long 3163535583 - .long 3217999625 - .long 1357918834 - .long 1070757740 - .long 1357918834 - .long 1070757740 - .long 1357918834 - .long 1070757740 - .long 1357918834 - .long 1070757740 - .long 1357918834 - .long 1070757740 - .long 1357918834 - .long 1070757740 - .long 1357918834 - .long 1070757740 - .long 1357918834 - .long 1070757740 - .long 1697368554 - .long 3218543943 - .long 1697368554 - .long 3218543943 - .long 1697368554 - .long 3218543943 - .long 1697368554 - .long 3218543943 - .long 1697368554 - .long 3218543943 - .long 1697368554 - .long 3218543943 - .long 1697368554 - .long 3218543943 - .long 1697368554 - .long 3218543943 - .long 3694789628 - .long 1071564553 - .long 3694789628 - .long 1071564553 - .long 3694789628 - .long 1071564553 - .long 3694789628 - .long 1071564553 - .long 3694789628 - .long 1071564553 - .long 3694789628 - .long 1071564553 - .long 3694789628 - .long 1071564553 - .long 3694789628 - .long 1071564553 - .long 3757988711 - .long 1013148509 - .long 3757988711 - .long 1013148509 - .long 3757988711 - .long 1013148509 - .long 3757988711 - .long 1013148509 - .long 3757988711 - .long 1013148509 - .long 3757988711 - .long 1013148509 - .long 3757988711 - .long 1013148509 - .long 3757988711 - .long 1013148509 - .long 3999174959 - .long 1014462451 - .long 3999174959 - .long 1014462451 - .long 3999174959 - .long 1014462451 - .long 3999174959 - .long 1014462451 - .long 3999174959 - .long 1014462451 - .long 3999174959 - .long 1014462451 - .long 3999174959 - .long 1014462451 - .long 3999174959 - .long 1014462451 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 16368 - .long 1123549184 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4294967295 - .long 3221225471 - .long 4119604569 - .long 1059365335 - .long 4119604569 - .long 1059365335 - .long 4119604569 - .long 1059365335 - .long 4119604569 - .long 1059365335 - .long 4119604569 - .long 1059365335 - .long 4119604569 - .long 1059365335 - .long 4119604569 - .long 1059365335 - .long 4119604569 - .long 1059365335 - .long 662950521 - .long 1062590279 - .long 662950521 - .long 1062590279 - .long 662950521 - .long 1062590279 - .long 662950521 - .long 1062590279 - .long 662950521 - .long 1062590279 - .long 662950521 - .long 1062590279 - .long 662950521 - .long 1062590279 - .long 662950521 - .long 1062590279 - .long 454355882 - .long 1065595565 - .long 454355882 - .long 1065595565 - .long 454355882 - .long 1065595565 - .long 454355882 - .long 1065595565 - .long 454355882 - .long 1065595565 - .long 454355882 - .long 1065595565 - .long 454355882 - .long 1065595565 - .long 454355882 - .long 1065595565 - .long 3568144057 - .long 1068264200 - .long 3568144057 - .long 1068264200 - .long 3568144057 - .long 1068264200 - .long 3568144057 - .long 1068264200 - .long 3568144057 - .long 1068264200 - .long 3568144057 - .long 1068264200 - .long 3568144057 - .long 1068264200 - .long 3568144057 - .long 1068264200 - .long 4286862669 - .long 1070514109 - .long 4286862669 - .long 1070514109 - .long 4286862669 - .long 1070514109 - .long 4286862669 - .long 1070514109 - .long 4286862669 - .long 1070514109 - .long 4286862669 - .long 1070514109 - .long 4286862669 - .long 1070514109 - .long 4286862669 - .long 1070514109 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 4277811595 - .long 1072049730 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 248 - .long 0 - .long 248 - .long 0 - .long 248 - .long 0 - .long 248 - .long 0 - .long 248 - .long 0 - .long 248 - .long 0 - .long 248 - .long 0 - .long 248 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 120 - .long 0 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 1083173888 - .long 0 - .long 1083173888 - .long 0 - .long 1083173888 - .long 0 - .long 1083173888 - .long 0 - .long 1083173888 - .long 0 - .long 1083173888 - .long 0 - .long 1083173888 - .long 0 - .long 1083173888 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .type __svml_dpow_data_internal_avx512,@object - .size __svml_dpow_data_internal_avx512,2368 - .align 32 -__dpow_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 1072629696 - .long 0 - .long 1072569856 - .long 0 - .long 1072513472 - .long 0 - .long 1072460224 - .long 0 - .long 1072409856 - .long 0 - .long 1072362112 - .long 0 - .long 1072316864 - .long 0 - .long 1072273792 - .long 0 - .long 1072232896 - .long 0 - .long 1072193920 - .long 0 - .long 1072156736 - .long 0 - .long 1072121280 - .long 0 - .long 1072087424 - .long 0 - .long 1072054976 - .long 0 - .long 1072023936 - .long 0 - .long 1071994176 - .long 0 - .long 1071965696 - .long 0 - .long 1071938304 - .long 0 - .long 1071911936 - .long 0 - .long 1071886656 - .long 0 - .long 1071862272 - .long 0 - .long 1071838848 - .long 0 - .long 1071816256 - .long 0 - .long 1071794496 - .long 0 - .long 1071773440 - .long 0 - .long 1071753152 - .long 0 - .long 1071733504 - .long 0 - .long 1071714560 - .long 0 - .long 1071696256 - .long 0 - .long 1071678528 - .long 0 - .long 1071661312 - .long 0 - .long 1071644672 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2686386176 - .long 1067891457 - .long 1949948785 - .long 1027381598 - .long 1341652992 - .long 1068918120 - .long 2376679344 - .long 1026589938 - .long 2182004736 - .long 1069583575 - .long 297009671 - .long 1026900933 - .long 1687183360 - .long 1069924424 - .long 2120169064 - .long 1026082260 - .long 53207040 - .long 1070255920 - .long 3737096550 - .long 1026438963 - .long 3818315776 - .long 1070578756 - .long 677794872 - .long 1028109305 - .long 2429726720 - .long 1070744485 - .long 3907638365 - .long 1027382133 - .long 2702757888 - .long 1070897876 - .long 1929563302 - .long 1027984695 - .long 2465140736 - .long 1071047207 - .long 243175481 - .long 1026641700 - .long 2657701888 - .long 1071193041 - .long 3841377895 - .long 1028504382 - .long 658427904 - .long 1071335525 - .long 161357665 - .long 1028306250 - .long 539168768 - .long 1071474585 - .long 2531816708 - .long 1025043792 - .long 2658430976 - .long 1071610420 - .long 2178519328 - .long 1028288112 - .long 1355743232 - .long 1071694102 - .long 3943781029 - .long 1028003666 - .long 1854838784 - .long 1071759170 - .long 1812291414 - .long 1027042047 - .long 473251840 - .long 3218771869 - .long 1330616404 - .long 3175482613 - .long 2315530240 - .long 3218647330 - .long 3482179716 - .long 3175726112 - .long 3886694400 - .long 3218525081 - .long 3584491563 - .long 3175164762 - .long 1568866304 - .long 3218405023 - .long 3528175174 - .long 3174626157 - .long 4172640256 - .long 3218287637 - .long 3760034354 - .long 3171774178 - .long 3545214976 - .long 3218172213 - .long 881689765 - .long 3173077446 - .long 2121375744 - .long 3218038698 - .long 549802690 - .long 3174897014 - .long 492560384 - .long 3217816668 - .long 239252792 - .long 3173483664 - .long 155754496 - .long 3217598893 - .long 1693604438 - .long 3175909818 - .long 4285202432 - .long 3217384365 - .long 127148739 - .long 3175942199 - .long 41181184 - .long 3217174003 - .long 3260046653 - .long 3174058211 - .long 2465087488 - .long 3216902292 - .long 4241850247 - .long 3175110025 - .long 1101037568 - .long 3216495763 - .long 3170347605 - .long 3176066808 - .long 3478798336 - .long 3216096373 - .long 329155479 - .long 3175972274 - .long 3246555136 - .long 3215423741 - .long 4071576371 - .long 3174315914 - .long 830078976 - .long 3214361213 - .long 1258533012 - .long 3175547121 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 1072689152 - .long 0 - .long 1072685056 - .long 0 - .long 1072681024 - .long 0 - .long 1072676992 - .long 0 - .long 1072672960 - .long 0 - .long 1072668928 - .long 0 - .long 1072664960 - .long 0 - .long 1072660992 - .long 0 - .long 1072657024 - .long 0 - .long 1072653056 - .long 0 - .long 1072649152 - .long 0 - .long 1072645248 - .long 0 - .long 1072641344 - .long 0 - .long 1072637440 - .long 0 - .long 1072710976 - .long 0 - .long 1072709888 - .long 0 - .long 1072708864 - .long 0 - .long 1072707776 - .long 0 - .long 1072706752 - .long 0 - .long 1072705664 - .long 0 - .long 1072704640 - .long 0 - .long 1072703616 - .long 0 - .long 1072702528 - .long 0 - .long 1072701504 - .long 0 - .long 1072700480 - .long 0 - .long 1072699456 - .long 0 - .long 1072698368 - .long 0 - .long 1072697344 - .long 0 - .long 1072696320 - .long 0 - .long 1072695296 - .long 0 - .long 1072694272 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2754084864 - .long 1063721742 - .long 2557931335 - .long 1028226920 - .long 3228041216 - .long 1064771801 - .long 930662348 - .long 1027873525 - .long 2323251200 - .long 1065436614 - .long 2596299912 - .long 1027915217 - .long 1641152512 - .long 1065811444 - .long 1188689655 - .long 1027383036 - .long 895221760 - .long 1066187001 - .long 2918954073 - .long 1026717129 - .long 3962896384 - .long 1066482539 - .long 1338190555 - .long 1024402868 - .long 2071330816 - .long 1066668054 - .long 2834125591 - .long 1027573772 - .long 830078976 - .long 1066853925 - .long 1683363035 - .long 1027948302 - .long 1828782080 - .long 1067040153 - .long 874130859 - .long 1026348678 - .long 2395996160 - .long 1067226740 - .long 1724975876 - .long 1028585613 - .long 3558866944 - .long 1067410669 - .long 2189961434 - .long 1027936707 - .long 2542927872 - .long 1067522658 - .long 3621009110 - .long 1028493916 - .long 4208394240 - .long 1067614973 - .long 2777386350 - .long 1028255456 - .long 3217162240 - .long 1067707465 - .long 772669574 - .long 1028516547 - .long 824377344 - .long 3214460051 - .long 1593617402 - .long 3175722247 - .long 830078976 - .long 3214361213 - .long 1258533012 - .long 3175547121 - .long 4002480128 - .long 3214268096 - .long 1397883555 - .long 3175764245 - .long 2914385920 - .long 3214169062 - .long 3775067953 - .long 3175176772 - .long 1460142080 - .long 3214075761 - .long 1592372614 - .long 3175907032 - .long 219152384 - .long 3213976530 - .long 1716511551 - .long 3175540921 - .long 3419144192 - .long 3213880645 - .long 1128677462 - .long 3174560569 - .long 3320446976 - .long 3213693490 - .long 2965227743 - .long 3172454196 - .long 677904384 - .long 3213494440 - .long 4029390031 - .long 3174409513 - .long 1290797056 - .long 3213306911 - .long 1477436787 - .long 3173730612 - .long 2800877568 - .long 3213119200 - .long 4281418519 - .long 3173304523 - .long 3692822528 - .long 3212931307 - .long 751117103 - .long 3175382448 - .long 2547253248 - .long 3212626079 - .long 2419265147 - .long 3175328924 - .long 1836580864 - .long 3212249540 - .long 1456335141 - .long 3175441338 - .long 3438542848 - .long 3211872634 - .long 3721652080 - .long 3176073447 - .long 4278714368 - .long 3211202435 - .long 836003693 - .long 3174279974 - .long 926941184 - .long 3210154597 - .long 4249864733 - .long 3174015648 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1073741824 - .long 1073157447 - .long 0 - .long 1073157401 - .long 0 - .long 1073157355 - .long 3221225472 - .long 1073157308 - .long 2147483648 - .long 1073157262 - .long 2147483648 - .long 1073157216 - .long 1073741824 - .long 1073157170 - .long 1073741824 - .long 1073157124 - .long 0 - .long 1073157078 - .long 3221225472 - .long 1073157031 - .long 3221225472 - .long 1073156985 - .long 2147483648 - .long 1073156939 - .long 2147483648 - .long 1073156893 - .long 1073741824 - .long 1073156847 - .long 1073741824 - .long 1073156801 - .long 0 - .long 1073156755 - .long 0 - .long 1073156709 - .long 3221225472 - .long 1073156662 - .long 3221225472 - .long 1073156616 - .long 2147483648 - .long 1073156570 - .long 2147483648 - .long 1073156524 - .long 2147483648 - .long 1073156478 - .long 1073741824 - .long 1073156432 - .long 1073741824 - .long 1073156386 - .long 0 - .long 1073156340 - .long 0 - .long 1073156294 - .long 0 - .long 1073156248 - .long 3221225472 - .long 1073156201 - .long 3221225472 - .long 1073156155 - .long 2147483648 - .long 1073156109 - .long 2147483648 - .long 1073156063 - .long 2147483648 - .long 1073156017 - .long 1073741824 - .long 1073155971 - .long 1073741824 - .long 1073155925 - .long 1073741824 - .long 1073155879 - .long 1073741824 - .long 1073155833 - .long 0 - .long 1073155787 - .long 0 - .long 1073155741 - .long 0 - .long 1073155695 - .long 0 - .long 1073155649 - .long 3221225472 - .long 1073155602 - .long 3221225472 - .long 1073155556 - .long 3221225472 - .long 1073155510 - .long 3221225472 - .long 1073155464 - .long 3221225472 - .long 1073155418 - .long 2147483648 - .long 1073155372 - .long 2147483648 - .long 1073155326 - .long 2147483648 - .long 1073155280 - .long 2147483648 - .long 1073155234 - .long 2147483648 - .long 1073155188 - .long 2147483648 - .long 1073155142 - .long 2147483648 - .long 1073155096 - .long 2147483648 - .long 1073155050 - .long 2147483648 - .long 1073155004 - .long 1073741824 - .long 1073154958 - .long 1073741824 - .long 1073154912 - .long 1073741824 - .long 1073154866 - .long 1073741824 - .long 1073154820 - .long 1073741824 - .long 1073154774 - .long 1073741824 - .long 1073154728 - .long 1073741824 - .long 1073154682 - .long 2147483648 - .long 1073158995 - .long 1073741824 - .long 1073158972 - .long 1073741824 - .long 1073158949 - .long 0 - .long 1073158926 - .long 0 - .long 1073158903 - .long 3221225472 - .long 1073158879 - .long 3221225472 - .long 1073158856 - .long 2147483648 - .long 1073158833 - .long 2147483648 - .long 1073158810 - .long 1073741824 - .long 1073158787 - .long 1073741824 - .long 1073158764 - .long 0 - .long 1073158741 - .long 0 - .long 1073158718 - .long 3221225472 - .long 1073158694 - .long 3221225472 - .long 1073158671 - .long 2147483648 - .long 1073158648 - .long 2147483648 - .long 1073158625 - .long 1073741824 - .long 1073158602 - .long 1073741824 - .long 1073158579 - .long 0 - .long 1073158556 - .long 0 - .long 1073158533 - .long 3221225472 - .long 1073158509 - .long 3221225472 - .long 1073158486 - .long 2147483648 - .long 1073158463 - .long 2147483648 - .long 1073158440 - .long 1073741824 - .long 1073158417 - .long 1073741824 - .long 1073158394 - .long 1073741824 - .long 1073158371 - .long 0 - .long 1073158348 - .long 0 - .long 1073158325 - .long 3221225472 - .long 1073158301 - .long 3221225472 - .long 1073158278 - .long 2147483648 - .long 1073158255 - .long 2147483648 - .long 1073158232 - .long 2147483648 - .long 1073158209 - .long 1073741824 - .long 1073158186 - .long 1073741824 - .long 1073158163 - .long 0 - .long 1073158140 - .long 0 - .long 1073158117 - .long 3221225472 - .long 1073158093 - .long 3221225472 - .long 1073158070 - .long 3221225472 - .long 1073158047 - .long 2147483648 - .long 1073158024 - .long 2147483648 - .long 1073158001 - .long 1073741824 - .long 1073157978 - .long 1073741824 - .long 1073157955 - .long 1073741824 - .long 1073157932 - .long 0 - .long 1073157909 - .long 0 - .long 1073157886 - .long 3221225472 - .long 1073157862 - .long 3221225472 - .long 1073157839 - .long 3221225472 - .long 1073157816 - .long 2147483648 - .long 1073157793 - .long 2147483648 - .long 1073157770 - .long 2147483648 - .long 1073157747 - .long 1073741824 - .long 1073157724 - .long 1073741824 - .long 1073157701 - .long 0 - .long 1073157678 - .long 0 - .long 1073157655 - .long 0 - .long 1073157632 - .long 3221225472 - .long 1073157608 - .long 3221225472 - .long 1073157585 - .long 3221225472 - .long 1073157562 - .long 2147483648 - .long 1073157539 - .long 2147483648 - .long 1073157516 - .long 2147483648 - .long 1073157493 - .long 1073741824 - .long 1073157470 - .long 1073741824 - .long 1073157447 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1342177280 - .long 1057431575 - .long 1679773494 - .long 1024039205 - .long 989855744 - .long 1058476078 - .long 3244478756 - .long 1024589954 - .long 209715200 - .long 1059147828 - .long 152199156 - .long 1027874535 - .long 2449473536 - .long 1059526748 - .long 2343302255 - .long 1022283036 - .long 1560281088 - .long 1059903632 - .long 4038848719 - .long 1027337824 - .long 4282384384 - .long 1060196455 - .long 2325104861 - .long 1027595231 - .long 1665138688 - .long 1060384909 - .long 2934027888 - .long 1026982347 - .long 3263168512 - .long 1060574392 - .long 3208451390 - .long 1027670758 - .long 3980394496 - .long 1060763881 - .long 863587004 - .long 1026973426 - .long 2470445056 - .long 1060952352 - .long 1027097864 - .long 1028644619 - .long 1296039936 - .long 1061141853 - .long 2016162954 - .long 1025089894 - .long 3107979264 - .long 1061244623 - .long 970842239 - .long 1028172704 - .long 3722444800 - .long 1061339379 - .long 2640304163 - .long 1027825546 - .long 2959081472 - .long 1061433626 - .long 306547692 - .long 1028101690 - .long 2631925760 - .long 1061528388 - .long 747377661 - .long 1028120913 - .long 794820608 - .long 1061622641 - .long 3406550266 - .long 1028182206 - .long 3825205248 - .long 1061717408 - .long 3705775220 - .long 1027201825 - .long 916455424 - .long 1061811667 - .long 1432750358 - .long 1028165990 - .long 3011510272 - .long 1061906440 - .long 3361908688 - .long 1027438936 - .long 3330277376 - .long 1062000704 - .long 3560665332 - .long 1027805882 - .long 3082813440 - .long 1062094971 - .long 2539531329 - .long 1028011583 - .long 3747610624 - .long 1062189753 - .long 2232403651 - .long 1025658467 - .long 1218445312 - .long 1062245757 - .long 396499622 - .long 1025861782 - .long 1086324736 - .long 1062293151 - .long 2757240868 - .long 1026731615 - .long 2047868928 - .long 1062340290 - .long 2226191703 - .long 1027982328 - .long 580911104 - .long 1062387431 - .long 1252857417 - .long 1028280924 - .long 1887436800 - .long 1062434829 - .long 659583454 - .long 1025370904 - .long 4186963968 - .long 1062481972 - .long 3587661750 - .long 1028188900 - .long 738197504 - .long 1062529374 - .long 3240696709 - .long 1027025093 - .long 2511339520 - .long 1062576520 - .long 2884432087 - .long 1028614554 - .long 1859125248 - .long 1062623668 - .long 2402099113 - .long 1025699109 - .long 4148166656 - .long 1062671073 - .long 2335237504 - .long 1026835951 - .long 2970615808 - .long 1062718224 - .long 3698719430 - .long 1027808594 - .long 3662675968 - .long 1062765376 - .long 2704653673 - .long 1027603403 - .long 1929379840 - .long 1062812530 - .long 761521627 - .long 1027109120 - .long 3273654272 - .long 1062859941 - .long 470528098 - .long 1027977181 - .long 1019215872 - .long 1062907098 - .long 3704635566 - .long 1027707215 - .long 635437056 - .long 1062954256 - .long 3676592927 - .long 1027502983 - .long 2122317824 - .long 1063001415 - .long 1497197375 - .long 1028267547 - .long 2529165312 - .long 1063048832 - .long 3425827878 - .long 1022000476 - .long 3498049536 - .long 1063095994 - .long 1982476393 - .long 1026289596 - .long 2043674624 - .long 1063143158 - .long 2502680620 - .long 1028471295 - .long 2463105024 - .long 1063190323 - .long 991567028 - .long 1027421239 - .long 460324864 - .long 1063237490 - .long 1461814384 - .long 1026181618 - .long 920125440 - .long 1063270489 - .long 1613472693 - .long 1027845558 - .long 3956277248 - .long 1063294073 - .long 93449747 - .long 1028284502 - .long 1487405056 - .long 1063317659 - .long 1336931403 - .long 1026834156 - .long 2102919168 - .long 1063341245 - .long 319680825 - .long 1027392710 - .long 1508376576 - .long 1063364832 - .long 2474643583 - .long 1027776685 - .long 3999268864 - .long 1063388419 - .long 3104004650 - .long 1024627034 - .long 985137152 - .long 1063412008 - .long 550153379 - .long 1026678253 - .long 1056440320 - .long 1063435597 - .long 672168391 - .long 1027731310 - .long 4213702656 - .long 1063459186 - .long 1805142399 - .long 1026660459 - .long 2772434944 - .long 1063482905 - .long 2448602160 - .long 1028404887 - .long 3528458240 - .long 1063506496 - .long 3457943394 - .long 1027665063 - .long 3075473408 - .long 1063530088 - .long 121314862 - .long 1027996294 - .long 1414004736 - .long 1063553681 - .long 94774013 - .long 1028053481 - .long 2839019520 - .long 1063577274 - .long 1263902834 - .long 1028588748 - .long 3056074752 - .long 1063600868 - .long 369708558 - .long 1028257136 - .long 2065170432 - .long 1063624463 - .long 1634529849 - .long 1027810905 - .long 1769996288 - .long 3210227157 - .long 1054279927 - .long 3174741313 - .long 2442133504 - .long 3210203373 - .long 2067107398 - .long 3175167430 - .long 456130560 - .long 3210179845 - .long 4142755806 - .long 3170825152 - .long 2302672896 - .long 3210156060 - .long 1526169727 - .long 3175523413 - .long 1524629504 - .long 3210132531 - .long 2442955053 - .long 3175425591 - .long 251658240 - .long 3210108746 - .long 2154729168 - .long 3175535488 - .long 681574400 - .long 3210085216 - .long 4275862891 - .long 3176027230 - .long 584056832 - .long 3210061430 - .long 4255852476 - .long 3173565530 - .long 2221932544 - .long 3210037899 - .long 2498876736 - .long 3175149504 - .long 3297771520 - .long 3210014112 - .long 1851620949 - .long 3175688865 - .long 1849688064 - .long 3209990581 - .long 2923055509 - .long 3171310641 - .long 4099932160 - .long 3209966793 - .long 2427653201 - .long 3173037457 - .long 3858759680 - .long 3209943261 - .long 1550068012 - .long 3173027359 - .long 2987393024 - .long 3209919473 - .long 4127650534 - .long 3175851613 - .long 3954180096 - .long 3209895940 - .long 442055840 - .long 3174771669 - .long 4257218560 - .long 3209872151 - .long 4113960829 - .long 3175350854 - .long 2135949312 - .long 3209848618 - .long 2076166727 - .long 3175229825 - .long 3613392896 - .long 3209824828 - .long 3476091171 - .long 3171604778 - .long 2699034624 - .long 3209801294 - .long 1765290157 - .long 3173591669 - .long 1053818880 - .long 3209777504 - .long 3761837094 - .long 3175683182 - .long 1346371584 - .long 3209753969 - .long 1459626820 - .long 3176031561 - .long 875560960 - .long 3209730178 - .long 2402361097 - .long 3174909319 - .long 2375024640 - .long 3209706642 - .long 687754918 - .long 3174943382 - .long 1858076672 - .long 3209674565 - .long 252333183 - .long 3175531572 - .long 2975858688 - .long 3209627492 - .long 1334776821 - .long 3174591557 - .long 2430599168 - .long 3209579907 - .long 1326030186 - .long 3173486707 - .long 1665138688 - .long 3209532833 - .long 737674412 - .long 3174401557 - .long 2122317824 - .long 3209485758 - .long 3987168834 - .long 3175346908 - .long 815792128 - .long 3209438171 - .long 3526910672 - .long 3176068855 - .long 3686793216 - .long 3209391094 - .long 587265932 - .long 3174950865 - .long 429916160 - .long 3209343506 - .long 3143915816 - .long 3175955609 - .long 1417674752 - .long 3209296428 - .long 2918285701 - .long 3174860756 - .long 505413632 - .long 3209248838 - .long 436607152 - .long 3175743066 - .long 3904897024 - .long 3209201758 - .long 2867787430 - .long 3173594277 - .long 4229955584 - .long 3209154678 - .long 3971699810 - .long 3174682560 - .long 2556428288 - .long 3209107086 - .long 3215049067 - .long 3174495054 - .long 998244352 - .long 3209060005 - .long 2424883713 - .long 3173182748 - .long 1667235840 - .long 3209012411 - .long 762177973 - .long 3175232288 - .long 2518679552 - .long 3208965328 - .long 282609672 - .long 3175635057 - .long 1237319680 - .long 3208917733 - .long 1502777354 - .long 3174942228 - .long 203423744 - .long 3208870649 - .long 4128371954 - .long 3175884977 - .long 392167424 - .long 3208823564 - .long 306802084 - .long 3175724146 - .long 2642411520 - .long 3208775966 - .long 2960876517 - .long 3173143647 - .long 945815552 - .long 3208728880 - .long 1800251929 - .long 3170106484 - .long 1241513984 - .long 3208681281 - .long 2675524524 - .long 3173521837 - .long 3904897024 - .long 3208625826 - .long 83988225 - .long 3175795858 - .long 3477078016 - .long 3208531649 - .long 1575792028 - .long 3175657512 - .long 2537553920 - .long 3208436447 - .long 1662079495 - .long 3175916253 - .long 2634022912 - .long 3208342267 - .long 2818347875 - .long 3174383619 - .long 2080374784 - .long 3208247062 - .long 1081767985 - .long 3175779040 - .long 2696937472 - .long 3208152879 - .long 2443744157 - .long 3175275915 - .long 1459617792 - .long 3208058695 - .long 790904149 - .long 3174713637 - .long 3670016000 - .long 3207963485 - .long 581064731 - .long 3173466591 - .long 2952790016 - .long 3207869298 - .long 1008918738 - .long 3171724149 - .long 377487360 - .long 3207775110 - .long 1606538461 - .long 3175837201 - .long 1052770304 - .long 3207679896 - .long 2534546984 - .long 3175060122 - .long 2298478592 - .long 3207577425 - .long 2154814426 - .long 3172198942 - .long 117440512 - .long 3207386992 - .long 1374248651 - .long 3174502065 - .long 1342177280 - .long 3207198603 - .long 4280579335 - .long 3175188313 - .long 3154116608 - .long 3207010211 - .long 3334926656 - .long 3174829419 - .long 2189426688 - .long 3206819769 - .long 3100885346 - .long 3175936751 - .long 746586112 - .long 3206631372 - .long 315615614 - .long 3173018851 - .long 4043309056 - .long 3206340535 - .long 274116456 - .long 3175970612 - .long 268435456 - .long 3205959634 - .long 691182319 - .long 3173304996 - .long 603979776 - .long 3205582822 - .long 112661265 - .long 3170010307 - .long 4194304000 - .long 3204915176 - .long 3717748378 - .long 3174284044 - .long 2885681152 - .long 3203858420 - .long 192153543 - .long 3175961815 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 2851812149 - .long 1072698941 - .long 2595802551 - .long 1016815913 - .long 1048019041 - .long 1072704666 - .long 1398474845 - .long 3161559171 - .long 3899555717 - .long 1072710421 - .long 427280750 - .long 3163595548 - .long 3541402996 - .long 1072716208 - .long 2759177317 - .long 1015903202 - .long 702412510 - .long 1072722027 - .long 3803266086 - .long 3163328991 - .long 410360776 - .long 1072727877 - .long 1269990655 - .long 1013024446 - .long 3402036099 - .long 1072733758 - .long 405889333 - .long 1016154232 - .long 1828292879 - .long 1072739672 - .long 1255956746 - .long 1016636974 - .long 728909815 - .long 1072745618 - .long 383930225 - .long 1016078044 - .long 852742562 - .long 1072751596 - .long 667253586 - .long 1010842135 - .long 2952712987 - .long 1072757606 - .long 3293494651 - .long 3161168877 - .long 3490863953 - .long 1072763649 - .long 960797497 - .long 3163997456 - .long 3228316108 - .long 1072769725 - .long 3010241991 - .long 3159471380 - .long 2930322912 - .long 1072775834 - .long 2599499422 - .long 3163762623 - .long 3366293073 - .long 1072781976 - .long 3119426313 - .long 1015169130 - .long 1014845819 - .long 1072788152 - .long 3117910645 - .long 3162607681 - .long 948735466 - .long 1072794361 - .long 3516338027 - .long 3163623459 - .long 3949972341 - .long 1072800603 - .long 2068408548 - .long 1015962444 - .long 2214878420 - .long 1072806880 - .long 892270087 - .long 3164164998 - .long 828946858 - .long 1072813191 - .long 10642492 - .long 1016988014 - .long 586995997 - .long 1072819536 - .long 41662347 - .long 3163676568 - .long 2288159958 - .long 1072825915 - .long 2169144468 - .long 1015924597 - .long 2440944790 - .long 1072832329 - .long 2492769773 - .long 1015196030 - .long 1853186616 - .long 1072838778 - .long 3066496370 - .long 1016705150 - .long 1337108031 - .long 1072845262 - .long 3203724452 - .long 1015726421 - .long 1709341917 - .long 1072851781 - .long 2571168217 - .long 1015201075 - .long 3790955393 - .long 1072858335 - .long 2352942461 - .long 3164228666 - .long 4112506593 - .long 1072864925 - .long 2947355221 - .long 1015419624 - .long 3504003472 - .long 1072871551 - .long 3594001059 - .long 3158379228 - .long 2799960843 - .long 1072878213 - .long 1423655380 - .long 1016070727 - .long 2839424854 - .long 1072884911 - .long 1171596163 - .long 1014090255 - .long 171030293 - .long 1072891646 - .long 3526460132 - .long 1015477354 - .long 4232894513 - .long 1072898416 - .long 2383938684 - .long 1015717095 - .long 2992903935 - .long 1072905224 - .long 2218154405 - .long 1016276769 - .long 1603444721 - .long 1072912069 - .long 1548633640 - .long 3163249902 - .long 926591435 - .long 1072918951 - .long 3208833761 - .long 3163962090 - .long 1829099622 - .long 1072925870 - .long 1016661180 - .long 3164509581 - .long 887463927 - .long 1072932827 - .long 3596744162 - .long 3161842742 - .long 3272845541 - .long 1072939821 - .long 928852419 - .long 3164536824 - .long 1276261410 - .long 1072946854 - .long 300981947 - .long 1015732745 - .long 78413852 - .long 1072953925 - .long 4183226867 - .long 3164065827 - .long 569847338 - .long 1072961034 - .long 472945272 - .long 3160339305 - .long 3645941911 - .long 1072968181 - .long 3814685080 - .long 3162621917 - .long 1617004845 - .long 1072975368 - .long 82804943 - .long 1011391354 - .long 3978100823 - .long 1072982593 - .long 3513027190 - .long 1016894539 - .long 3049340112 - .long 1072989858 - .long 3062915824 - .long 1014219171 - .long 4040676318 - .long 1072997162 - .long 4090609238 - .long 1016712034 - .long 3577096743 - .long 1073004506 - .long 2951496418 - .long 1014842263 - .long 2583551245 - .long 1073011890 - .long 3161094195 - .long 1016655067 - .long 1990012071 - .long 1073019314 - .long 3529070563 - .long 3163861769 - .long 2731501122 - .long 1073026778 - .long 1774031854 - .long 3163518597 - .long 1453150082 - .long 1073034283 - .long 498154668 - .long 3162536638 - .long 3395129871 - .long 1073041828 - .long 4025345434 - .long 3163383964 - .long 917841882 - .long 1073049415 - .long 18715564 - .long 1016707884 - .long 3566716925 - .long 1073057042 - .long 1536826855 - .long 1015191009 - .long 3712504873 - .long 1073064711 - .long 88491948 - .long 1016476236 - .long 2321106615 - .long 1073072422 - .long 2171176610 - .long 1010584347 - .long 363667784 - .long 1073080175 - .long 813753949 - .long 1016833785 - .long 3111574537 - .long 1073087969 - .long 2606161479 - .long 3163808322 - .long 2956612997 - .long 1073095806 - .long 2118169750 - .long 3163784129 - .long 885834528 - .long 1073103686 - .long 1973258546 - .long 3163310140 - .long 2186617381 - .long 1073111608 - .long 2270764083 - .long 3164321289 - .long 3561793907 - .long 1073119573 - .long 1157054052 - .long 1012938926 - .long 1719614413 - .long 1073127582 - .long 330458197 - .long 3164331316 - .long 1963711167 - .long 1073135634 - .long 1744767756 - .long 3161622870 - .long 1013258799 - .long 1073143730 - .long 1748797610 - .long 3161177658 - .long 4182873220 - .long 1073151869 - .long 629542646 - .long 3163044879 - .long 3907805044 - .long 1073160053 - .long 2257091225 - .long 3162598983 - .long 1218806132 - .long 1073168282 - .long 1818613051 - .long 3163597017 - .long 1447192521 - .long 1073176555 - .long 1462857171 - .long 3163563097 - .long 1339972927 - .long 1073184873 - .long 167908908 - .long 1016620728 - .long 1944781191 - .long 1073193236 - .long 3993278767 - .long 3162772855 - .long 19972402 - .long 1073201645 - .long 3507899861 - .long 1017057868 - .long 919555682 - .long 1073210099 - .long 3121969534 - .long 1013996802 - .long 1413356050 - .long 1073218599 - .long 1651349290 - .long 3163716742 - .long 2571947539 - .long 1073227145 - .long 3558159063 - .long 3164425245 - .long 1176749997 - .long 1073235738 - .long 2738998779 - .long 3163084420 - .long 2604962541 - .long 1073244377 - .long 2614425274 - .long 3164587768 - .long 3649726105 - .long 1073253063 - .long 4085036346 - .long 1016698050 - .long 1110089947 - .long 1073261797 - .long 1451641638 - .long 1016523249 - .long 380978316 - .long 1073270578 - .long 854188970 - .long 3161511262 - .long 2568320822 - .long 1073279406 - .long 2732824428 - .long 1015401491 - .long 194117574 - .long 1073288283 - .long 777528611 - .long 3164460665 - .long 2966275557 - .long 1073297207 - .long 2176155323 - .long 3160891335 - .long 3418903055 - .long 1073306180 - .long 2527457337 - .long 3161869180 - .long 2682146384 - .long 1073315202 - .long 2082178512 - .long 3164411995 - .long 1892288442 - .long 1073324273 - .long 2446255666 - .long 3163648957 - .long 2191782032 - .long 1073333393 - .long 2960257726 - .long 1014791238 - .long 434316067 - .long 1073342563 - .long 2028358766 - .long 1014506698 - .long 2069751141 - .long 1073351782 - .long 1562170674 - .long 3163773257 - .long 3964284211 - .long 1073361051 - .long 2111583915 - .long 1016475740 - .long 2990417245 - .long 1073370371 - .long 3683467745 - .long 3164417902 - .long 321958744 - .long 1073379742 - .long 3401933766 - .long 1016843134 - .long 1434058175 - .long 1073389163 - .long 251133233 - .long 1016134345 - .long 3218338682 - .long 1073398635 - .long 3404164304 - .long 3163525684 - .long 2572866477 - .long 1073408159 - .long 878562433 - .long 1016570317 - .long 697153126 - .long 1073417735 - .long 1283515428 - .long 3164331765 - .long 3092190715 - .long 1073427362 - .long 814012167 - .long 3160571998 - .long 2380618042 - .long 1073437042 - .long 3149557219 - .long 3164369375 - .long 4076559943 - .long 1073446774 - .long 2119478330 - .long 3161806927 - .long 815859274 - .long 1073456560 - .long 240396590 - .long 3164536019 - .long 2420883922 - .long 1073466398 - .long 2049810052 - .long 1015168464 - .long 1540824585 - .long 1073476290 - .long 1064017010 - .long 3164536266 - .long 3716502172 - .long 1073486235 - .long 2303740125 - .long 1015091301 - .long 1610600570 - .long 1073496235 - .long 3766732298 - .long 1016808759 - .long 777507147 - .long 1073506289 - .long 4282924204 - .long 1016236109 - .long 2483480501 - .long 1073516397 - .long 1216371780 - .long 1014082748 - .long 3706687593 - .long 1073526560 - .long 3521726939 - .long 1014301643 - .long 1432208378 - .long 1073536779 - .long 1401068914 - .long 3163412539 - .long 1242007932 - .long 1073547053 - .long 1132034716 - .long 3164388407 - .long 135105010 - .long 1073557383 - .long 1906148727 - .long 3164424315 - .long 3707479175 - .long 1073567768 - .long 3613079302 - .long 1015213314 - .long 382305176 - .long 1073578211 - .long 2347622376 - .long 3163627201 - .long 64696965 - .long 1073588710 - .long 1768797490 - .long 1016865536 - .long 4076975200 - .long 1073599265 - .long 2029000898 - .long 1016257111 - .long 863738719 - .long 1073609879 - .long 1326992219 - .long 3163661773 - .long 351641897 - .long 1073620550 - .long 2172261526 - .long 3164059175 - .long 3884662774 - .long 1073631278 - .long 2158611599 - .long 1015258761 - .long 4224142467 - .long 1073642065 - .long 3389820385 - .long 1016255778 - .long 2728693978 - .long 1073652911 - .long 396109971 - .long 3164511267 - .long 764307441 - .long 1073663816 - .long 3021057420 - .long 3164378099 - .long 3999357479 - .long 1073674779 - .long 2258941616 - .long 1016973300 - .long 929806999 - .long 1073685803 - .long 3205336643 - .long 1016308133 - .long 1533953344 - .long 1073696886 - .long 769171850 - .long 1016714209 - .long 2912730644 - .long 1073708029 - .long 3490067721 - .long 3164453650 - .long 2174652632 - .long 1073719233 - .long 4087714590 - .long 1015498835 - .long 730821105 - .long 1073730498 - .long 2523232743 - .long 1013115764 - .long 2523158504 - .long 1048167334 - .long 1181303047 - .long 3218484803 - .long 1656151777 - .long 1069842388 - .long 714085080 - .long 3216330823 - .long 4277811695 - .long 1072049730 - .long 4286760335 - .long 1070514109 - .long 3607404736 - .long 1068264200 - .long 1874480759 - .long 1065595563 - .long 3884607281 - .long 1062590591 - .long 0 - .long 2145386496 - .long 0 - .long 1048576 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 3220176896 - .long 0 - .long 1120403456 - .long 1073741824 - .long 1073157447 - .long 33554432 - .long 1101004800 - .long 0 - .long 1282408448 - .long 0 - .long 862978048 - .type __dpow_la_CoutTab,@object - .size __dpow_la_CoutTab,6880 diff --git a/numpy/core/src/umath/svml/svml_z0_pow_s_la.s b/numpy/core/src/umath/svml/svml_z0_pow_s_la.s deleted file mode 100644 index 743321c85f4e..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_pow_s_la.s +++ /dev/null @@ -1,2012 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * * Typical computation sequences for log2() and exp2(), - * * with smaller tables (32- and 16-element tables) - * * The log2() part uses VGETEXP/VGETMANT (which treat denormals correctly), - * * similar to DP ln() algorithm - * * Branches are not needed for overflow/underflow: - * * - RZ mode used to prevent overflow to +/-Inf in intermediate computations - * * - final VSCALEF properly handles overflow and underflow cases - * * Callout is still used for Inf/NaNs or x<=0 - * * - * - */ - - - .text -.L_2__routine_start___svml_powf16_z0_0: - - .align 16,0x90 - .globl __svml_powf16 - -__svml_powf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $256, %rsp - -/* GetMant(x), normalized to [0.5,1) for x>=0, NaN for x<0 */ - vgetmantps $10, {sae}, %zmm0, %zmm4 - vmovups 384+__svml_spow_data_internal_avx512(%rip), %zmm9 - vmovups 448+__svml_spow_data_internal_avx512(%rip), %zmm11 - vmovups 512+__svml_spow_data_internal_avx512(%rip), %zmm12 - vmovups 320+__svml_spow_data_internal_avx512(%rip), %zmm8 - vmovups 576+__svml_spow_data_internal_avx512(%rip), %zmm15 - -/* GetExp(x) */ - vgetexpps {sae}, %zmm0, %zmm14 - -/* Table lookup */ - vmovups __svml_spow_data_internal_avx512(%rip), %zmm13 - vmovups 128+__svml_spow_data_internal_avx512(%rip), %zmm3 - -/* SglRcp ~ 1/Mantissa */ - vrcp14ps %zmm4, %zmm6 - -/* x<=0 or Inf/NaN? */ - vfpclassps $223, %zmm0, %k0 - -/* round SglRcp to 5 fractional bits (RN mode, no Precision exception) */ - vrndscaleps $88, {sae}, %zmm6, %zmm7 - vmovups 704+__svml_spow_data_internal_avx512(%rip), %zmm6 - kmovw %k0, %edx - -/* Reduced argument: R = (SglRcp*Mantissa - 1) */ - vfmsub213ps {rn-sae}, %zmm9, %zmm7, %zmm4 - -/* Prepare exponent correction: SglRcp<1.5? */ - vcmpps $17, {sae}, %zmm8, %zmm7, %k1 - -/* start polynomial evaluation */ - vfmadd231ps {rn-sae}, %zmm4, %zmm11, %zmm12 - -/* Prepare table index */ - vpsrld $18, %zmm7, %zmm10 - vmovups 768+__svml_spow_data_internal_avx512(%rip), %zmm7 - vfmadd231ps {rn-sae}, %zmm4, %zmm12, %zmm15 - -/* add 1 to Expon if SglRcp<1.5 */ - vaddps {rn-sae}, %zmm9, %zmm14, %zmm14{%k1} - vpermt2ps 64+__svml_spow_data_internal_avx512(%rip), %zmm10, %zmm13 - vpermt2ps 192+__svml_spow_data_internal_avx512(%rip), %zmm10, %zmm3 - -/* Th+Expon */ - vaddps {rn-sae}, %zmm14, %zmm13, %zmm2 - vmovaps %zmm1, %zmm5 - vmovups 640+__svml_spow_data_internal_avx512(%rip), %zmm1 - -/* y Inf/NaN? */ - vfpclassps $153, %zmm5, %k2 - vfmadd231ps {rn-sae}, %zmm4, %zmm15, %zmm1 - kmovw %k2, %eax - -/* Poly_low */ - vfmadd231ps {rn-sae}, %zmm4, %zmm1, %zmm6 - -/* Th+Expon+R*c1h */ - vmovaps %zmm2, %zmm9 - orl %eax, %edx - vfmadd231ps {rn-sae}, %zmm4, %zmm7, %zmm9 - -/* Tl + R*Poly_low */ - vfmadd231ps {rn-sae}, %zmm4, %zmm6, %zmm3 - vmovups 960+__svml_spow_data_internal_avx512(%rip), %zmm6 - -/* (R*c1h)_high */ - vsubps {rn-sae}, %zmm2, %zmm9, %zmm8 - -/* High1 + Tl */ - vaddps {rn-sae}, %zmm3, %zmm9, %zmm11 - -/* (R*c1h)_low */ - vfmsub213ps {rn-sae}, %zmm8, %zmm7, %zmm4 - vmovups 1088+__svml_spow_data_internal_avx512(%rip), %zmm7 - -/* y*High */ - vmulps {rz-sae}, %zmm5, %zmm11, %zmm12 - -/* Tlh */ - vsubps {rn-sae}, %zmm9, %zmm11, %zmm10 - -/* (y*High)_low */ - vfmsub213ps {rz-sae}, %zmm12, %zmm5, %zmm11 - -/* Tll */ - vsubps {rn-sae}, %zmm10, %zmm3, %zmm3 - -/* Tll + (R*c1h)_low */ - vaddps {rn-sae}, %zmm4, %zmm3, %zmm13 - vmovups 832+__svml_spow_data_internal_avx512(%rip), %zmm4 - -/* Zl = y*Tll + Zl */ - vfmadd213ps {rz-sae}, %zmm11, %zmm5, %zmm13 - -/* - * scaled result - * Filter very large |y*log2(x)| and scale final result for LRB2 - */ - vmovups 1408+__svml_spow_data_internal_avx512(%rip), %zmm11 - vaddps {rz-sae}, %zmm13, %zmm12, %zmm2 - vsubps {rn-sae}, %zmm12, %zmm2, %zmm14 - vaddps {rd-sae}, %zmm4, %zmm2, %zmm1 - -/* - * / - * exp2 computation starts here - */ - vreduceps $65, {sae}, %zmm2, %zmm15 - vmovups 1024+__svml_spow_data_internal_avx512(%rip), %zmm12 - vsubps {rn-sae}, %zmm14, %zmm13, %zmm3 - -/* Table lookup: The, Tle/The */ - vpermps 256+__svml_spow_data_internal_avx512(%rip), %zmm1, %zmm10 - vandps 1344+__svml_spow_data_internal_avx512(%rip), %zmm2, %zmm2 - vaddps {rn-sae}, %zmm3, %zmm15, %zmm4 - vpslld $19, %zmm1, %zmm1 - vcmpps $22, {sae}, %zmm11, %zmm2, %k3 - -/* ensure |R|<2 even for special cases */ - vandps 896+__svml_spow_data_internal_avx512(%rip), %zmm4, %zmm8 - vandps 1472+__svml_spow_data_internal_avx512(%rip), %zmm1, %zmm13 - kmovw %k3, %ecx - -/* R*The */ - vmulps {rn-sae}, %zmm8, %zmm10, %zmm9 - -/* polynomial */ - vfmadd231ps {rn-sae}, %zmm8, %zmm6, %zmm12 - vfmadd213ps {rn-sae}, %zmm7, %zmm8, %zmm12 - orl %ecx, %edx - -/* The + The*R*poly */ - vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm12 - vmulps {rn-sae}, %zmm13, %zmm12, %zmm1 - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - vmovaps %zmm1, %zmm0 - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm0, 64(%rsp) - vmovups %zmm5, 128(%rsp) - vmovups %zmm1, 192(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 192(%rsp), %zmm1 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - lea 192(%rsp,%r12,4), %rdx - - call __svml_spow_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_powf16,@function - .size __svml_powf16,.-__svml_powf16 -..LN__svml_powf16.0: - -.L_2__routine_start___spow_la_TestIntFunc_1: - - .align 16,0x90 - -__spow_la_TestIntFunc: - - - .cfi_startproc -..L53: - - movd %xmm0, %edx - andl $2147483647, %edx - lea -1065353216(%rdx), %eax - cmpl $1073741824, %eax - jae .LBL_2_5 - - - cmpl $1266679808, %edx - jge .LBL_2_7 - - - movl %edx, %ecx - andl $-8388608, %ecx - addl $8388608, %ecx - shrl $23, %ecx - shll %cl, %edx - testl $8388607, %edx - jne .LBL_2_5 - - - andl $16777215, %edx - xorl %eax, %eax - cmpl $8388608, %edx - setne %al - incl %eax - ret - -.LBL_2_5: - - xorl %eax, %eax - ret - -.LBL_2_7: - - movl $2, %eax - ret - .align 16,0x90 - - .cfi_endproc - - .type __spow_la_TestIntFunc,@function - .size __spow_la_TestIntFunc,.-__spow_la_TestIntFunc -..LN__spow_la_TestIntFunc.1: - -.L_2__routine_start___svml_spow_cout_rare_internal_2: - - .align 16,0x90 - -__svml_spow_cout_rare_internal: - - - .cfi_startproc -..L56: - - pushq %r12 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - pushq %r14 - .cfi_def_cfa_offset 32 - .cfi_offset 14, -32 - pushq %r15 - .cfi_def_cfa_offset 40 - .cfi_offset 15, -40 - pushq %rbx - .cfi_def_cfa_offset 48 - .cfi_offset 3, -48 - pushq %rbp - .cfi_def_cfa_offset 56 - .cfi_offset 6, -56 - subq $88, %rsp - .cfi_def_cfa_offset 144 - movq %rdx, %r15 - movss (%rdi), %xmm4 - pxor %xmm1, %xmm1 - movss (%rsi), %xmm3 - movaps %xmm4, %xmm2 - movl $0, 64(%rsp) - movaps %xmm3, %xmm0 - ucomiss %xmm1, %xmm4 - jp .LBL_3_2 - je .LBL_3_3 - -.LBL_3_2: - - movss %xmm4, 8(%rsp) - jmp .LBL_3_4 - -.LBL_3_3: - - movaps %xmm4, %xmm2 - addss %xmm4, %xmm2 - movss %xmm2, 8(%rsp) - -.LBL_3_4: - - pxor %xmm1, %xmm1 - ucomiss %xmm1, %xmm3 - jp .LBL_3_5 - je .LBL_3_6 - -.LBL_3_5: - - movss %xmm3, 28(%rsp) - jmp .LBL_3_7 - -.LBL_3_6: - - movaps %xmm3, %xmm0 - addss %xmm3, %xmm0 - movss %xmm0, 28(%rsp) - -.LBL_3_7: - - movb 31(%rsp), %al - xorl %ebx, %ebx - andb $-128, %al - xorl %ebp, %ebp - shrb $7, %al - testl $8388607, 8(%rsp) - movzwl 30(%rsp), %r13d - sete %bl - andl $32640, %r13d - testl $8388607, 28(%rsp) - movzwl 10(%rsp), %r14d - movzbl 11(%rsp), %r12d - sete %bpl - andl $32640, %r14d - andl $128, %r12d - shrl $7, %r13d - shrl $7, %r14d - shrl $7, %r12d - movb %al, 72(%rsp) - cmpl $255, %r13d - je .LBL_3_59 - - - movl $1, 8(%rsp) - movss %xmm2, 32(%rsp) - movss %xmm0, 40(%rsp) - movss %xmm3, 48(%rsp) - movss %xmm4, 56(%rsp) - - call __spow_la_TestIntFunc - - - movss 56(%rsp), %xmm4 - movl %eax, %edx - movss 48(%rsp), %xmm3 - movss 40(%rsp), %xmm0 - movss 32(%rsp), %xmm2 - testl %r12d, %r12d - jne .LBL_3_10 - - - cmpl $127, %r14d - je .LBL_3_56 - -.LBL_3_10: - - testl %r13d, %r13d - jne .LBL_3_12 - -.LBL_3_11: - - testl %ebp, %ebp - jne .LBL_3_38 - -.LBL_3_12: - - cmpl $255, %r14d - je .LBL_3_14 - -.LBL_3_13: - - movl $1, %eax - jmp .LBL_3_15 - -.LBL_3_14: - - xorl %eax, %eax - -.LBL_3_15: - - orl %eax, %ebx - je .LBL_3_37 - - - orl 8(%rsp), %ebp - je .LBL_3_37 - - - pxor %xmm1, %xmm1 - ucomiss %xmm1, %xmm2 - jp .LBL_3_18 - je .LBL_3_53 - -.LBL_3_18: - - ucomiss .L_2il0floatpacket.121(%rip), %xmm2 - jp .LBL_3_19 - je .LBL_3_50 - -.LBL_3_19: - - testl %eax, %eax - je .LBL_3_30 - - - cmpl $0, 8(%rsp) - je .LBL_3_30 - - - pxor %xmm0, %xmm0 - comiss %xmm0, %xmm2 - ja .LBL_3_23 - - - testl %edx, %edx - je .LBL_3_29 - -.LBL_3_23: - - lea 1484+__spow_la_CoutTab(%rip), %rax - andl %r12d, %edx - movss %xmm2, 12(%rsp) - xorl %ecx, %ecx - andb $127, 15(%rsp) - movss (%rax,%rdx,4), %xmm12 - testl %r14d, %r14d - jne .LBL_3_25 - - - movss 12(%rsp), %xmm0 - movl $-64, %ecx - mulss .L_2il0floatpacket.122(%rip), %xmm0 - movss %xmm0, 12(%rsp) - jmp .LBL_3_26 - -.LBL_3_25: - - movss 12(%rsp), %xmm0 - -.LBL_3_26: - - movzwl 14(%rsp), %edi - lea __spow_la_CoutTab(%rip), %rsi - andl $32640, %edi - pxor %xmm1, %xmm1 - shrl $7, %edi - movl 12(%rsp), %edx - shll $23, %edi - andl $8388607, %edx - movss %xmm0, 16(%rsp) - orl %edx, %edi - movzwl 18(%rsp), %eax - addl $-1060634624, %edi - andl $-32641, %eax - addl $16256, %eax - movw %ax, 18(%rsp) - sarl $23, %edi - addl %ecx, %edi - movl 16(%rsp), %ecx - andl $7864320, %ecx - addl $524288, %ecx - cvtsi2ss %edi, %xmm1 - shrl $20, %ecx - movss (%rsi,%rcx,4), %xmm4 - addl %ecx, %ecx - movss 36(%rsi,%rcx,4), %xmm13 - movaps %xmm13, %xmm7 - movss 16(%rsp), %xmm0 - addss %xmm1, %xmm7 - movaps %xmm0, %xmm6 - mulss %xmm4, %xmm6 - movss %xmm7, 20(%rsp) - movss 20(%rsp), %xmm3 - movd %xmm6, %ebx - subss %xmm3, %xmm1 - andl $1966080, %ebx - addss %xmm1, %xmm13 - addl $131072, %ebx - shrl $18, %ebx - movss 108(%rsi,%rbx,4), %xmm11 - addl %ebx, %ebx - movss 144(%rsi,%rbx,4), %xmm5 - movss %xmm13, 24(%rsp) - movaps %xmm5, %xmm14 - movss 20(%rsp), %xmm1 - addss %xmm1, %xmm14 - mulss %xmm11, %xmm6 - mulss %xmm11, %xmm4 - movd %xmm6, %ebp - movss 24(%rsp), %xmm7 - movss %xmm14, 20(%rsp) - movss 20(%rsp), %xmm3 - andl $507904, %ebp - addl $16384, %ebp - subss %xmm3, %xmm1 - shrl $15, %ebp - addss %xmm1, %xmm5 - movss 216(%rsi,%rbp,4), %xmm15 - addl %ebp, %ebp - movss 284(%rsi,%rbp,4), %xmm2 - movss %xmm5, 24(%rsp) - movaps %xmm2, %xmm13 - movss 20(%rsp), %xmm1 - movss 24(%rsp), %xmm5 - addss %xmm1, %xmm13 - mulss %xmm15, %xmm4 - movss %xmm13, 20(%rsp) - movss 20(%rsp), %xmm3 - movss .L_2il0floatpacket.124(%rip), %xmm11 - subss %xmm3, %xmm1 - addss %xmm1, %xmm2 - mulss %xmm15, %xmm6 - movaps %xmm11, %xmm15 - movaps %xmm6, %xmm3 - mulss %xmm0, %xmm15 - subss .L_2il0floatpacket.123(%rip), %xmm3 - movss %xmm2, 24(%rsp) - movss 20(%rsp), %xmm1 - movss 24(%rsp), %xmm2 - movss %xmm15, 20(%rsp) - movss 20(%rsp), %xmm13 - movss 40(%rsi,%rcx,4), %xmm9 - movss 148(%rsi,%rbx,4), %xmm8 - movss 288(%rsi,%rbp,4), %xmm10 - subss 16(%rsp), %xmm13 - movss %xmm13, 24(%rsp) - movss 20(%rsp), %xmm13 - movss 24(%rsp), %xmm14 - subss %xmm14, %xmm13 - movss %xmm13, 20(%rsp) - movss 20(%rsp), %xmm15 - subss %xmm15, %xmm0 - movss %xmm0, 24(%rsp) - movaps %xmm4, %xmm0 - mulss %xmm11, %xmm0 - movss 20(%rsp), %xmm13 - movss 24(%rsp), %xmm14 - movss %xmm0, 20(%rsp) - movss 20(%rsp), %xmm15 - subss %xmm4, %xmm15 - movss %xmm15, 24(%rsp) - movss 20(%rsp), %xmm15 - movss 24(%rsp), %xmm0 - subss %xmm0, %xmm15 - movss %xmm15, 20(%rsp) - movss 20(%rsp), %xmm0 - subss %xmm0, %xmm4 - movaps %xmm13, %xmm0 - movss %xmm4, 24(%rsp) - movss 20(%rsp), %xmm4 - mulss %xmm4, %xmm0 - mulss %xmm14, %xmm4 - subss %xmm6, %xmm0 - movaps %xmm3, %xmm6 - addss %xmm4, %xmm0 - addss %xmm1, %xmm6 - movss 24(%rsp), %xmm15 - movss %xmm6, 20(%rsp) - movss 20(%rsp), %xmm4 - mulss %xmm15, %xmm13 - subss %xmm4, %xmm1 - mulss %xmm15, %xmm14 - addss %xmm13, %xmm0 - addss %xmm3, %xmm1 - addss %xmm14, %xmm0 - movss %xmm1, 24(%rsp) - movss 20(%rsp), %xmm6 - movss %xmm6, 8(%rsp) - movzwl 10(%rsp), %eax - andl $32640, %eax - shrl $7, %eax - addl %r13d, %eax - movss 24(%rsp), %xmm4 - cmpl $265, %eax - jge .LBL_3_49 - - - cmpl $192, %eax - jg .LBL_3_40 - - - movl $1065353216, 20(%rsp) - movss 20(%rsp), %xmm0 - addss .L_2il0floatpacket.133(%rip), %xmm0 - movss %xmm0, 20(%rsp) - movss 20(%rsp), %xmm1 - mulss %xmm12, %xmm1 - movss %xmm1, (%r15) - jmp .LBL_3_39 - -.LBL_3_29: - - movl $1, 64(%rsp) - pxor %xmm0, %xmm0 - movss %xmm0, 20(%rsp) - movss 20(%rsp), %xmm2 - movss 20(%rsp), %xmm1 - divss %xmm1, %xmm2 - movss %xmm2, 20(%rsp) - movl 20(%rsp), %eax - movl %eax, (%r15) - jmp .LBL_3_39 - -.LBL_3_30: - - cmpl $127, %r14d - jge .LBL_3_34 - - - movb 72(%rsp), %al - testb %al, %al - je .LBL_3_33 - - - mulss %xmm0, %xmm0 - movss %xmm0, (%r15) - jmp .LBL_3_39 - -.LBL_3_33: - - pxor %xmm0, %xmm0 - movss %xmm0, (%r15) - jmp .LBL_3_39 - -.LBL_3_34: - - movb 72(%rsp), %al - testb %al, %al - je .LBL_3_36 - - - lea 1512+__spow_la_CoutTab(%rip), %rax - andl %r12d, %edx - movl (%rax,%rdx,4), %ecx - movl %ecx, 12(%rsp) - movl %ecx, (%r15) - jmp .LBL_3_39 - -.LBL_3_36: - - mulss %xmm2, %xmm2 - lea 1484+__spow_la_CoutTab(%rip), %rax - mulss %xmm0, %xmm2 - andl %r12d, %edx - mulss (%rax,%rdx,4), %xmm2 - movss %xmm2, (%r15) - jmp .LBL_3_39 - -.LBL_3_37: - - addss %xmm3, %xmm4 - movss %xmm4, (%r15) - jmp .LBL_3_39 - -.LBL_3_38: - - addss %xmm0, %xmm2 - movss %xmm2, 20(%rsp) - movl $1065353216, 24(%rsp) - movb 23(%rsp), %al - movb 27(%rsp), %dl - andb $-128, %al - andb $127, %dl - orb %al, %dl - movb %dl, 27(%rsp) - movss 24(%rsp), %xmm1 - movss 24(%rsp), %xmm0 - mulss %xmm0, %xmm1 - movss %xmm1, (%r15) - -.LBL_3_39: - - movl 64(%rsp), %eax - addq $88, %rsp - .cfi_def_cfa_offset 56 - .cfi_restore 6 - popq %rbp - .cfi_def_cfa_offset 48 - .cfi_restore 3 - popq %rbx - .cfi_def_cfa_offset 40 - .cfi_restore 15 - popq %r15 - .cfi_def_cfa_offset 32 - .cfi_restore 14 - popq %r14 - .cfi_def_cfa_offset 24 - .cfi_restore 13 - popq %r13 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 - .cfi_def_cfa_offset 8 - ret - .cfi_def_cfa_offset 144 - .cfi_offset 3, -48 - .cfi_offset 6, -56 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -32 - .cfi_offset 15, -40 - -.LBL_3_40: - - movss .L_2il0floatpacket.128(%rip), %xmm1 - lea 424+__spow_la_CoutTab(%rip), %rdx - addss %xmm0, %xmm3 - addss %xmm5, %xmm7 - addss %xmm4, %xmm0 - mulss %xmm3, %xmm1 - addss %xmm7, %xmm2 - addss .L_2il0floatpacket.127(%rip), %xmm1 - addss %xmm2, %xmm9 - mulss %xmm3, %xmm1 - addss %xmm9, %xmm8 - addss .L_2il0floatpacket.126(%rip), %xmm1 - addss %xmm8, %xmm10 - mulss %xmm3, %xmm1 - addss %xmm0, %xmm10 - addss .L_2il0floatpacket.125(%rip), %xmm1 - mulss %xmm3, %xmm1 - movaps %xmm10, %xmm5 - movss 8(%rsp), %xmm4 - movaps %xmm11, %xmm8 - addss %xmm1, %xmm6 - lea 20(%rsp), %rax - movss %xmm6, (%rax) - movss (%rax), %xmm0 - subss %xmm0, %xmm4 - movaps %xmm11, %xmm0 - addss %xmm1, %xmm4 - lea 24(%rsp), %rcx - movss %xmm4, (%rcx) - movss (%rax), %xmm7 - movss (%rcx), %xmm3 - addss %xmm7, %xmm5 - movss %xmm5, (%rax) - movss (%rax), %xmm6 - subss %xmm6, %xmm7 - addss %xmm10, %xmm7 - movss %xmm7, (%rcx) - movss (%rax), %xmm10 - mulss %xmm10, %xmm8 - movss (%rcx), %xmm2 - movss %xmm8, (%rax) - addss %xmm3, %xmm2 - movss (%rax), %xmm9 - lea 28(%rsp), %rbx - movss (%rbx), %xmm7 - subss %xmm10, %xmm9 - mulss %xmm7, %xmm0 - mulss (%rbx), %xmm2 - movss %xmm9, (%rcx) - movss (%rax), %xmm14 - movss (%rcx), %xmm13 - movss .L_2il0floatpacket.129(%rip), %xmm9 - subss %xmm13, %xmm14 - movss %xmm14, (%rax) - movss (%rax), %xmm15 - subss %xmm15, %xmm10 - movss %xmm10, (%rcx) - movss (%rax), %xmm8 - movss (%rcx), %xmm10 - movss %xmm0, (%rax) - movss (%rax), %xmm1 - subss (%rbx), %xmm1 - movss %xmm1, (%rcx) - movss (%rax), %xmm5 - movss (%rcx), %xmm4 - subss %xmm4, %xmm5 - movss %xmm5, (%rax) - movss (%rax), %xmm6 - subss %xmm6, %xmm7 - movss %xmm7, (%rcx) - movss (%rax), %xmm1 - movss (%rcx), %xmm15 - movaps %xmm1, %xmm0 - mulss %xmm8, %xmm0 - mulss %xmm10, %xmm1 - mulss %xmm15, %xmm8 - mulss %xmm15, %xmm10 - addss %xmm8, %xmm1 - movaps %xmm0, %xmm8 - addss %xmm1, %xmm8 - movaps %xmm8, %xmm3 - subss %xmm8, %xmm0 - addss %xmm9, %xmm3 - addss %xmm0, %xmm1 - movss %xmm3, (%rax) - movaps %xmm8, %xmm3 - movss (%rax), %xmm13 - addss %xmm1, %xmm10 - subss %xmm9, %xmm13 - addss %xmm2, %xmm10 - movss %xmm13, (%rsp) - movss (%rsp), %xmm14 - movss .L_2il0floatpacket.132(%rip), %xmm2 - subss %xmm14, %xmm3 - movss %xmm3, 4(%rsp) - movss 4(%rsp), %xmm4 - movl (%rax), %eax - movl %eax, %ebx - andl $127, %eax - addss %xmm10, %xmm4 - mulss %xmm4, %xmm2 - addl %eax, %eax - movss -4(%rdx,%rax,4), %xmm1 - shll $10, %ebx - addss .L_2il0floatpacket.131(%rip), %xmm2 - mulss %xmm4, %xmm2 - sarl $17, %ebx - addss .L_2il0floatpacket.130(%rip), %xmm2 - mulss %xmm4, %xmm2 - mulss %xmm1, %xmm2 - addss (%rdx,%rax,4), %xmm2 - movaps %xmm2, %xmm5 - addss %xmm1, %xmm5 - movss %xmm5, 12(%rsp) - movzwl 14(%rsp), %edx - movl %edx, %ecx - andl $32640, %ecx - shrl $7, %ecx - lea -127(%rbx,%rcx), %eax - cmpl $128, %eax - jge .LBL_3_48 - - - cmpl $-126, %eax - jl .LBL_3_43 - - - andl $-32641, %edx - lea 127(%rax), %eax - movzbl %al, %eax - shll $7, %eax - orl %eax, %edx - movw %dx, 14(%rsp) - movss 12(%rsp), %xmm0 - mulss %xmm12, %xmm0 - movss %xmm0, 12(%rsp) - movss %xmm0, (%r15) - jmp .LBL_3_39 - -.LBL_3_43: - - cmpl $-136, %eax - jl .LBL_3_45 - - - lea 20(%rsp), %rdx - movss %xmm5, (%rdx) - movl $1065353216, %eax - movss (%rdx), %xmm0 - addl $191, %ebx - movl %eax, 8(%rsp) - subss %xmm0, %xmm1 - shrl $16, %eax - addss %xmm1, %xmm2 - movss %xmm2, 24(%rsp) - movss (%rdx), %xmm5 - mulss %xmm5, %xmm11 - movss 24(%rsp), %xmm6 - movss %xmm11, (%rdx) - movss (%rdx), %xmm1 - movzwl %ax, %edx - subss %xmm5, %xmm1 - lea 24(%rsp), %rax - movss %xmm1, (%rax) - andl $-32641, %edx - lea 20(%rsp), %rcx - movss (%rcx), %xmm3 - movss (%rax), %xmm2 - movzbl %bl, %ebx - subss %xmm2, %xmm3 - movss %xmm3, (%rcx) - movss (%rcx), %xmm4 - shll $7, %ebx - subss %xmm4, %xmm5 - movss %xmm5, (%rax) - orl %ebx, %edx - movss (%rcx), %xmm8 - movss (%rax), %xmm14 - movw %dx, 10(%rsp) - addss %xmm6, %xmm14 - movss 8(%rsp), %xmm7 - mulss %xmm7, %xmm14 - mulss %xmm7, %xmm8 - lea 20(%rsp), %rdx - movl $8388608, (%rdx) - addss %xmm8, %xmm14 - movss (%rdx), %xmm10 - movss (%rdx), %xmm9 - mulss %xmm9, %xmm10 - mulss .L_2il0floatpacket.135(%rip), %xmm14 - movss %xmm10, (%rdx) - movss (%rdx), %xmm13 - addss %xmm13, %xmm14 - mulss %xmm14, %xmm12 - movss %xmm14, 12(%rsp) - movss %xmm12, (%r15) - jmp .LBL_3_39 - -.LBL_3_45: - - cmpl $-159, %eax - jl .LBL_3_47 - - - movl $1065353216, %eax - addl $191, %ebx - movl %eax, 8(%rsp) - shrl $16, %eax - movzwl %ax, %edx - movzbl %bl, %ebx - andl $-32641, %edx - shll $7, %ebx - orl %ebx, %edx - movw %dx, 10(%rsp) - movss 8(%rsp), %xmm0 - movss .L_2il0floatpacket.135(%rip), %xmm1 - mulss %xmm0, %xmm5 - mulss %xmm1, %xmm12 - lea 20(%rsp), %rdx - movl $8388608, (%rdx) - movss (%rdx), %xmm3 - movss (%rdx), %xmm2 - mulss %xmm2, %xmm3 - mulss %xmm12, %xmm5 - movss %xmm3, (%rdx) - movss (%rdx), %xmm4 - subss %xmm4, %xmm5 - movss %xmm5, 12(%rsp) - movss %xmm5, (%r15) - jmp .LBL_3_39 - -.LBL_3_47: - - lea 20(%rsp), %rax - movl $8388608, (%rax) - movss (%rax), %xmm1 - movss (%rax), %xmm0 - mulss %xmm0, %xmm1 - movss %xmm1, (%rax) - movss (%rax), %xmm2 - mulss %xmm2, %xmm12 - movss %xmm12, 12(%rsp) - movss %xmm12, (%r15) - jmp .LBL_3_39 - -.LBL_3_48: - - lea 20(%rsp), %rax - movl $2130706432, (%rax) - movss (%rax), %xmm1 - movss (%rax), %xmm0 - mulss %xmm0, %xmm1 - movss %xmm1, (%rax) - movss (%rax), %xmm2 - mulss %xmm2, %xmm12 - movss %xmm12, 12(%rsp) - movss %xmm12, (%r15) - jmp .LBL_3_39 - -.LBL_3_49: - - movb 11(%rsp), %al - lea 1472+__spow_la_CoutTab(%rip), %rcx - andb $-128, %al - movb 72(%rsp), %dl - shrb $7, %al - xorb %al, %dl - movzbl %dl, %ebx - movss (%rcx,%rbx,4), %xmm0 - mulss %xmm0, %xmm0 - mulss %xmm12, %xmm0 - movss %xmm0, (%r15) - jmp .LBL_3_39 - -.LBL_3_50: - - testl %edx, %edx - jne .LBL_3_52 - - - cmpl $0, 8(%rsp) - jne .LBL_3_19 - -.LBL_3_52: - - lea 1484+__spow_la_CoutTab(%rip), %rax - andl $1, %edx - movl (%rax,%rdx,4), %ecx - movl %ecx, (%r15) - jmp .LBL_3_39 - -.LBL_3_53: - - movb 72(%rsp), %al - mulss %xmm2, %xmm2 - testb %al, %al - je .LBL_3_55 - - - lea 1484+__spow_la_CoutTab(%rip), %rax - andl %r12d, %edx - movl $1, 64(%rsp) - movss (%rax,%rdx,4), %xmm0 - divss %xmm2, %xmm0 - movss %xmm0, (%r15) - jmp .LBL_3_39 - -.LBL_3_55: - - lea 1484+__spow_la_CoutTab(%rip), %rax - andl %r12d, %edx - movss (%rax,%rdx,4), %xmm0 - mulss %xmm2, %xmm0 - movss %xmm0, (%r15) - jmp .LBL_3_39 - -.LBL_3_56: - - testl %ebx, %ebx - jne .LBL_3_38 - - - testl %r13d, %r13d - jne .LBL_3_13 - jmp .LBL_3_11 - -.LBL_3_59: - - movl $0, 8(%rsp) - movss %xmm2, 32(%rsp) - movss %xmm0, 40(%rsp) - movss %xmm3, 48(%rsp) - movss %xmm4, 56(%rsp) - - call __spow_la_TestIntFunc - - - movss 56(%rsp), %xmm4 - movl %eax, %edx - movss 48(%rsp), %xmm3 - movss 40(%rsp), %xmm0 - movss 32(%rsp), %xmm2 - testl %r12d, %r12d - jne .LBL_3_12 - - - cmpl $127, %r14d - jne .LBL_3_12 - - - testl %ebx, %ebx - je .LBL_3_13 - jmp .LBL_3_38 - .align 16,0x90 - - .cfi_endproc - - .type __svml_spow_cout_rare_internal,@function - .size __svml_spow_cout_rare_internal,.-__svml_spow_cout_rare_internal -..LN__svml_spow_cout_rare_internal.2: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_spow_data_internal_avx512: - .long 0 - .long 3174420480 - .long 3182632960 - .long 3187958784 - .long 3190685696 - .long 3193338880 - .long 3195920384 - .long 3197247488 - .long 3198473216 - .long 3199668736 - .long 3200835072 - .long 3201974272 - .long 3203086848 - .long 3204174848 - .long 3204843520 - .long 3205364224 - .long 1054113792 - .long 1053115392 - .long 1052137472 - .long 1051179008 - .long 1050238976 - .long 1049316864 - .long 1048248320 - .long 1046471680 - .long 1044726784 - .long 1043013632 - .long 1041329152 - .long 1039161344 - .long 1035907072 - .long 1032706048 - .long 1027317760 - .long 1018830848 - .long 0 - .long 3067311503 - .long 890262383 - .long 916311190 - .long 3058814943 - .long 914835756 - .long 3056977939 - .long 3052757441 - .long 905348701 - .long 921801496 - .long 900652061 - .long 916473404 - .long 3063873943 - .long 3048020321 - .long 3055557319 - .long 921573027 - .long 3050426335 - .long 918574590 - .long 913737309 - .long 3045697063 - .long 3029223305 - .long 866568163 - .long 3063765991 - .long 3057827840 - .long 910185982 - .long 3062847489 - .long 917965485 - .long 903301016 - .long 882039287 - .long 910858241 - .long 3059117133 - .long 3029061382 - .long 1065353216 - .long 1065724611 - .long 1066112450 - .long 1066517459 - .long 1066940400 - .long 1067382066 - .long 1067843287 - .long 1068324927 - .long 1068827891 - .long 1069353124 - .long 1069901610 - .long 1070474380 - .long 1071072509 - .long 1071697119 - .long 1072349383 - .long 1073030525 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 1049872133 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 3199775725 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 1056323663 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 3208161851 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 849703116 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 1228933104 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 3221225471 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1030247627 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1047916908 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 1060205090 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 124 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 60 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 1123745792 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .type __svml_spow_data_internal_avx512,@object - .size __svml_spow_data_internal_avx512,1536 - .align 32 -__spow_la_CoutTab: - .long 1065353216 - .long 1063518208 - .long 1061945344 - .long 1060765696 - .long 1059717120 - .long 1058930688 - .long 1058144256 - .long 1057488896 - .long 1056964608 - .long 0 - .long 0 - .long 1043013120 - .long 912347133 - .long 1051178752 - .long 920491638 - .long 1055650560 - .long 910207939 - .long 3201407744 - .long 3065009147 - .long 3197864192 - .long 3046757530 - .long 3192020992 - .long 3064938684 - .long 3182631936 - .long 3069048210 - .long 0 - .long 0 - .long 1065353216 - .long 1064828928 - .long 1064304640 - .long 1066008576 - .long 1065877504 - .long 1065746432 - .long 1065615360 - .long 1065484288 - .long 1065353216 - .long 0 - .long 0 - .long 1027315712 - .long 915720665 - .long 1035907072 - .long 882039287 - .long 3185459200 - .long 3062137179 - .long 3182631936 - .long 3069048210 - .long 3179763712 - .long 3059908234 - .long 3174420480 - .long 3067311503 - .long 3166121984 - .long 3066774241 - .long 0 - .long 0 - .long 1069056000 - .long 1069006848 - .long 1068957696 - .long 1068908544 - .long 1068875776 - .long 1069318144 - .long 1069301760 - .long 1069268992 - .long 1069252608 - .long 1069219840 - .long 1069203456 - .long 1069170688 - .long 1069154304 - .long 1069121536 - .long 1069105152 - .long 1069072384 - .long 1069056000 - .long 0 - .long 0 - .long 1002471424 - .long 906080490 - .long 1010884608 - .long 916991201 - .long 1016135680 - .long 905081895 - .long 1018261504 - .long 918286540 - .long 3170725888 - .long 3067774196 - .long 3169697792 - .long 3068476631 - .long 3167637504 - .long 3069858259 - .long 3166609408 - .long 3020376912 - .long 3164540928 - .long 3039629966 - .long 3163504640 - .long 3043319364 - .long 3160350720 - .long 3046704089 - .long 3158269952 - .long 3047249178 - .long 3154083840 - .long 3046609959 - .long 3149905920 - .long 3045301896 - .long 3137339392 - .long 3034784887 - .long 0 - .long 0 - .long 1065353216 - .long 0 - .long 1065398766 - .long 3014665830 - .long 1065444562 - .long 2982428624 - .long 1065490608 - .long 3015478276 - .long 1065536902 - .long 865643564 - .long 1065583450 - .long 3014725705 - .long 1065630248 - .long 868461790 - .long 1065677302 - .long 858550072 - .long 1065724612 - .long 3013096376 - .long 1065772178 - .long 3013897664 - .long 1065820002 - .long 3008545510 - .long 1065868086 - .long 3011512679 - .long 1065916430 - .long 864064219 - .long 1065965038 - .long 819487640 - .long 1066013910 - .long 3012212369 - .long 1066063046 - .long 856316133 - .long 1066112450 - .long 2992679841 - .long 1066162122 - .long 3001970243 - .long 1066212064 - .long 3013902756 - .long 1066262276 - .long 847285146 - .long 1066312762 - .long 3010032741 - .long 1066363522 - .long 3018332471 - .long 1066414556 - .long 856041677 - .long 1066465868 - .long 864808677 - .long 1066517460 - .long 3012318446 - .long 1066569330 - .long 863709796 - .long 1066621484 - .long 3016813593 - .long 1066673920 - .long 3018872036 - .long 1066726640 - .long 3006136850 - .long 1066779646 - .long 864474828 - .long 1066832942 - .long 3016286184 - .long 1066886526 - .long 3015052933 - .long 1066940400 - .long 857938801 - .long 1066994568 - .long 2993474036 - .long 1067049030 - .long 3009003152 - .long 1067103786 - .long 872191232 - .long 1067158842 - .long 3003929955 - .long 1067214196 - .long 3013071165 - .long 1067269850 - .long 3006375425 - .long 1067325806 - .long 843377209 - .long 1067382066 - .long 859906882 - .long 1067438632 - .long 848662531 - .long 1067495506 - .long 3018868367 - .long 1067552686 - .long 868910405 - .long 1067610180 - .long 3019699127 - .long 1067667984 - .long 3013023741 - .long 1067726102 - .long 3005475891 - .long 1067784536 - .long 3010626242 - .long 1067843286 - .long 866758993 - .long 1067902356 - .long 869265128 - .long 1067961748 - .long 3004575030 - .long 1068021462 - .long 3018425550 - .long 1068081498 - .long 867494524 - .long 1068141862 - .long 858118433 - .long 1068202554 - .long 3004476802 - .long 1068263574 - .long 866434624 - .long 1068324926 - .long 870990497 - .long 1068386612 - .long 858100843 - .long 1068448632 - .long 867002634 - .long 1068510990 - .long 3000050815 - .long 1068573686 - .long 3011271336 - .long 1068636722 - .long 3006477262 - .long 1068700100 - .long 840255625 - .long 1068763822 - .long 866280780 - .long 1068827892 - .long 3016492578 - .long 1068892308 - .long 3006218836 - .long 1068957074 - .long 2993076596 - .long 1069022192 - .long 3000356208 - .long 1069087664 - .long 3015220484 - .long 1069153490 - .long 856315927 - .long 1069219674 - .long 867308350 - .long 1069286218 - .long 863888852 - .long 1069353124 - .long 3007401960 - .long 1069420392 - .long 832069785 - .long 1069488026 - .long 3004369690 - .long 1069556026 - .long 866250961 - .long 1069624396 - .long 868902513 - .long 1069693138 - .long 851736822 - .long 1069762252 - .long 869934231 - .long 1069831742 - .long 869028661 - .long 1069901610 - .long 839559223 - .long 1069971856 - .long 867543588 - .long 1070042484 - .long 868789178 - .long 1070113496 - .long 859381756 - .long 1070184894 - .long 3010667426 - .long 1070256678 - .long 859604257 - .long 1070328852 - .long 872346226 - .long 1070401420 - .long 3010682756 - .long 1070474380 - .long 841546788 - .long 1070547736 - .long 869210393 - .long 1070621492 - .long 2996061011 - .long 1070695648 - .long 3013455510 - .long 1070770206 - .long 3009158570 - .long 1070845168 - .long 865699227 - .long 1070920538 - .long 866897902 - .long 1070996318 - .long 2955948569 - .long 1071072508 - .long 868931229 - .long 1071149114 - .long 3014890061 - .long 1071226134 - .long 3002473793 - .long 1071303572 - .long 861820308 - .long 1071381432 - .long 3008383516 - .long 1071459714 - .long 3010850715 - .long 1071538420 - .long 864181775 - .long 1071617554 - .long 870234352 - .long 1071697118 - .long 871115413 - .long 1071777114 - .long 872414852 - .long 1071857546 - .long 3012378998 - .long 1071938412 - .long 866137918 - .long 1072019718 - .long 870808707 - .long 1072101466 - .long 866840096 - .long 1072183658 - .long 857766040 - .long 1072266296 - .long 855693471 - .long 1072349382 - .long 870833444 - .long 1072432920 - .long 867585053 - .long 1072516912 - .long 846646433 - .long 1072601360 - .long 3008357562 - .long 1072686266 - .long 3007858250 - .long 1072771632 - .long 866626825 - .long 1072857464 - .long 3015943680 - .long 1072943760 - .long 2995197552 - .long 1073030526 - .long 3018513273 - .long 1073117762 - .long 3012791488 - .long 1073205472 - .long 3012359471 - .long 1073293658 - .long 3003728983 - .long 1073382322 - .long 870019626 - .long 1073471470 - .long 3012762127 - .long 1073561100 - .long 835668076 - .long 1073651218 - .long 3013837936 - .long 980050793 - .long 3199320925 - .long 1042575209 - .long 3182108321 - .long 1060205080 - .long 1047920112 - .long 1029920839 - .long 2130706432 - .long 8388608 - .long 0 - .long 1065353216 - .long 3212836864 - .long 1203765248 - .long 1069056000 - .long 1166018560 - .long 1602224128 - .long 528482304 - .long 0 - .long 2147483648 - .type __spow_la_CoutTab,@object - .size __spow_la_CoutTab,1520 - .align 4 -.L_2il0floatpacket.121: - .long 0xbf800000 - .type .L_2il0floatpacket.121,@object - .size .L_2il0floatpacket.121,4 - .align 4 -.L_2il0floatpacket.122: - .long 0x5f800000 - .type .L_2il0floatpacket.122,@object - .size .L_2il0floatpacket.122,4 - .align 4 -.L_2il0floatpacket.123: - .long 0x3fb88000 - .type .L_2il0floatpacket.123,@object - .size .L_2il0floatpacket.123,4 - .align 4 -.L_2il0floatpacket.124: - .long 0x45800800 - .type .L_2il0floatpacket.124,@object - .size .L_2il0floatpacket.124,4 - .align 4 -.L_2il0floatpacket.125: - .long 0x3a6a6369 - .type .L_2il0floatpacket.125,@object - .size .L_2il0floatpacket.125,4 - .align 4 -.L_2il0floatpacket.126: - .long 0xbeb1c35d - .type .L_2il0floatpacket.126,@object - .size .L_2il0floatpacket.126,4 - .align 4 -.L_2il0floatpacket.127: - .long 0x3e246f69 - .type .L_2il0floatpacket.127,@object - .size .L_2il0floatpacket.127,4 - .align 4 -.L_2il0floatpacket.128: - .long 0xbdab1ea1 - .type .L_2il0floatpacket.128,@object - .size .L_2il0floatpacket.128,4 - .align 4 -.L_2il0floatpacket.129: - .long 0x47c00000 - .type .L_2il0floatpacket.129,@object - .size .L_2il0floatpacket.129,4 - .align 4 -.L_2il0floatpacket.130: - .long 0x3f317218 - .type .L_2il0floatpacket.130,@object - .size .L_2il0floatpacket.130,4 - .align 4 -.L_2il0floatpacket.131: - .long 0x3e75fdf0 - .type .L_2il0floatpacket.131,@object - .size .L_2il0floatpacket.131,4 - .align 4 -.L_2il0floatpacket.132: - .long 0x3d635847 - .type .L_2il0floatpacket.132,@object - .size .L_2il0floatpacket.132,4 - .align 4 -.L_2il0floatpacket.133: - .long 0x00800000 - .type .L_2il0floatpacket.133,@object - .size .L_2il0floatpacket.133,4 - .align 4 -.L_2il0floatpacket.134: - .long 0x7f000000 - .type .L_2il0floatpacket.134,@object - .size .L_2il0floatpacket.134,4 - .align 4 -.L_2il0floatpacket.135: - .long 0x1f800000 - .type .L_2il0floatpacket.135,@object - .size .L_2il0floatpacket.135,4 - .align 4 -.L_2il0floatpacket.136: - .long 0x3f800000 - .type .L_2il0floatpacket.136,@object - .size .L_2il0floatpacket.136,4 diff --git a/numpy/core/src/umath/svml/svml_z0_sin_d_la.s b/numpy/core/src/umath/svml/svml_z0_sin_d_la.s deleted file mode 100644 index fcd28895f9c1..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_sin_d_la.s +++ /dev/null @@ -1,17544 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * ( low accuracy ( < 4ulp ) or enhanced performance ( half of correct mantissa ) implementation ) - * - * Argument representation: - * arg = N*Pi + R - * - * Result calculation: - * sin(arg) = sin(N*Pi + R) = (-1)^N * sin(R) - * sin(R) is approximated by corresponding polynomial - * - */ - - - .text -.L_2__routine_start___svml_sin8_z0_0: - - .align 16,0x90 - .globl __svml_sin8 - -__svml_sin8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - xorl %edx, %edx - -/* start arg. reduction */ - vmovups 128+__svml_dsin_data_internal(%rip), %zmm3 - vmovups 192+__svml_dsin_data_internal(%rip), %zmm9 - vmovups 640+__svml_dsin_data_internal(%rip), %zmm7 - vmovups 704+__svml_dsin_data_internal(%rip), %zmm5 - vmovups 1216+__svml_dsin_data_internal(%rip), %zmm8 - vmovups 1088+__svml_dsin_data_internal(%rip), %zmm10 - vmovups 1024+__svml_dsin_data_internal(%rip), %zmm11 - vmovups 768+__svml_dsin_data_internal(%rip), %zmm6 - vmovups 960+__svml_dsin_data_internal(%rip), %zmm12 - vmovups 320+__svml_dsin_data_internal(%rip), %zmm4 - vmovups 896+__svml_dsin_data_internal(%rip), %zmm13 - vmovups 64+__svml_dsin_data_internal(%rip), %zmm14 - vmovaps %zmm0, %zmm2 - vfmadd213pd {rn-sae}, %zmm9, %zmm2, %zmm3 - vcmppd $0, {sae}, %zmm4, %zmm2, %k1 - vpsllq $63, %zmm3, %zmm0 - -/* dN */ - vsubpd {rn-sae}, %zmm9, %zmm3, %zmm1 - vandpd __svml_dsin_data_internal(%rip), %zmm2, %zmm9 - vxorpd %zmm2, %zmm0, %zmm0{%k1} - vfnmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm7 - vmovups 1152+__svml_dsin_data_internal(%rip), %zmm3 - vcmppd $22, {sae}, %zmm14, %zmm9, %k1 - vfnmadd231pd {rn-sae}, %zmm1, %zmm5, %zmm7 - -/* will branch if long arg. reduction needed */ - kortestw %k1, %k1 - vmulpd {rn-sae}, %zmm7, %zmm7, %zmm15 - vfnmadd213pd {rn-sae}, %zmm7, %zmm6, %zmm1 - vfmadd231pd {rn-sae}, %zmm15, %zmm8, %zmm3 - vmulpd {rn-sae}, %zmm1, %zmm15, %zmm8 - vfmadd213pd {rn-sae}, %zmm10, %zmm15, %zmm3 - vfmadd213pd {rn-sae}, %zmm11, %zmm15, %zmm3 - vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm3 - vfmadd213pd {rn-sae}, %zmm13, %zmm15, %zmm3 - -/* mask will be used to decide whether long arg. reduction is needed */ - vmovups 832+__svml_dsin_data_internal(%rip), %zmm13 - vfmadd213pd {rn-sae}, %zmm13, %zmm15, %zmm3 - vfmadd213pd {rn-sae}, %zmm1, %zmm8, %zmm3 - vxorpd %zmm0, %zmm3, %zmm0 - jne .LBL_1_12 - -.LBL_1_2: - - testl %edx, %edx - jne .LBL_1_4 - -.LBL_1_3: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_4: - - vmovups %zmm2, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_3 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_8: - - btl %r12d, %r13d - jc .LBL_1_11 - -.LBL_1_9: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_8 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_3 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_11: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dsin_cout_rare_internal - jmp .LBL_1_9 - .cfi_restore 4 - .cfi_restore 5 - .cfi_restore 12 - .cfi_restore 13 - .cfi_restore 122 - .cfi_restore 123 - .cfi_restore 124 - .cfi_restore 125 - -.LBL_1_12: - - -/* ............Check for Inf and NaNs................. */ - vmovups 16512+__svml_dsin_data_internal_ha(%rip), %zmm1 - -/* - * Get the (2^a / 2pi) mod 1 values from the table. - * Because VLANG doesn't have L-type gather, we need a trivial cast - */ - lea __svml_dsin_reduction_data_internal(%rip), %rax - vmovups %zmm2, 64(%rsp) - vmovups %zmm0, (%rsp) - vandpd %zmm9, %zmm1, %zmm6 - vxorpd %zmm2, %zmm9, %zmm8 - vpbroadcastq .L_2il0floatpacket.26(%rip), %zmm11 - vcmppd $4, {sae}, %zmm1, %zmm6, %k2 - vmovups %zmm8, 128(%rsp) - vmovaps %zmm11, %zmm5 - -/* - * The output is _VRES_Z (high) + _VRES_E (low), and the integer part is _VRES_IND - * Now resume the original code. - * ..................... Table look-up ........................ - */ - lea __svml_dsin_data_internal_ha(%rip), %rcx - vpandq .L_2il0floatpacket.27(%rip){1to8}, %zmm9, %zmm4 - vpandnq %zmm6, %zmm6, %zmm5{%k2} - vpsrlq $52, %zmm4, %zmm3 - vcmppd $3, {sae}, %zmm5, %zmm5, %k0 - vpsllq $1, %zmm3, %zmm15 - -/* - * Break the P_xxx and m into 32-bit chunks ready for - * the long multiplication via 32x32->64 multiplications - */ - vpbroadcastq .L_2il0floatpacket.30(%rip), %zmm6 - kxnorw %k0, %k0, %k3 - kxnorw %k0, %k0, %k2 - kmovw %k0, %edx - vpaddq %zmm3, %zmm15, %zmm2 - vpsllq $3, %zmm2, %zmm14 - vpmovqd %zmm14, %ymm12 - vpxord %zmm1, %zmm1, %zmm1 - vgatherdpd (%rax,%ymm12), %zmm1{%k3} - kxnorw %k0, %k0, %k3 - vpsrlq $32, %zmm1, %zmm7 - vpxord %zmm5, %zmm5, %zmm5 - vpxord %zmm4, %zmm4, %zmm4 - vgatherdpd 8(%rax,%ymm12), %zmm5{%k2} - vgatherdpd 16(%rax,%ymm12), %zmm4{%k3} - vpsrlq $32, %zmm5, %zmm10 - vpsrlq $32, %zmm4, %zmm13 - -/* - * Also get the significand as an integer - * NB: adding in the integer bit is wrong for denorms! - * To make this work for denorms we should do something slightly different - */ - vpandq .L_2il0floatpacket.28(%rip){1to8}, %zmm9, %zmm8 - vpaddq .L_2il0floatpacket.29(%rip){1to8}, %zmm8, %zmm15 - vpsrlq $32, %zmm15, %zmm8 - vpmullq %zmm10, %zmm8, %zmm3 - vpandq %zmm6, %zmm1, %zmm0 - vpandq %zmm6, %zmm5, %zmm12 - vpandq %zmm6, %zmm4, %zmm5 - vpandq %zmm6, %zmm15, %zmm14 - -/* Now do the big multiplication and carry propagation */ - vpmullq %zmm0, %zmm8, %zmm4 - vpmullq %zmm12, %zmm8, %zmm2 - vpmullq %zmm13, %zmm8, %zmm1 - vpmullq %zmm5, %zmm8, %zmm8 - vpmullq %zmm0, %zmm14, %zmm5 - vpmullq %zmm12, %zmm14, %zmm0 - vpmullq %zmm13, %zmm14, %zmm13 - vpmullq %zmm7, %zmm14, %zmm7 - vpmullq %zmm10, %zmm14, %zmm10 - vpsrlq $32, %zmm13, %zmm14 - vpsrlq $32, %zmm0, %zmm13 - vpsrlq $32, %zmm5, %zmm12 - vpsrlq $32, %zmm10, %zmm15 - vpaddq %zmm14, %zmm1, %zmm1 - vpaddq %zmm13, %zmm2, %zmm14 - vpaddq %zmm12, %zmm4, %zmm2 - vpaddq %zmm15, %zmm3, %zmm13 - vpandq %zmm6, %zmm7, %zmm7 - vpaddq %zmm2, %zmm7, %zmm4 - vpsrlq $32, %zmm8, %zmm2 - vpandq %zmm6, %zmm0, %zmm0 - vpaddq %zmm1, %zmm0, %zmm1 - vpaddq %zmm1, %zmm2, %zmm15 - vpsrlq $32, %zmm15, %zmm8 - vpandq %zmm6, %zmm10, %zmm10 - vpaddq %zmm14, %zmm10, %zmm0 - vpaddq %zmm0, %zmm8, %zmm12 - -/* - * Now round at the 2^-9 bit position for reduction mod pi/2^8 - * instead of the original 2pi (but still with the same 2pi scaling). - * Use a shifter of 2^43 + 2^42. - * The N we get is our final version; it has an offset of - * 2^9 because of the implicit integer bit, and anyway for negative - * starting value it's a 2s complement thing. But we need to mask - * off the exponent part anyway so it's fine. - */ - vpbroadcastq .L_2il0floatpacket.33(%rip), %zmm0 - vpsrlq $32, %zmm12, %zmm7 - vpandq %zmm6, %zmm5, %zmm3 - vpaddq %zmm13, %zmm3, %zmm5 - vpaddq %zmm5, %zmm7, %zmm3 - vpsllq $32, %zmm12, %zmm7 - vpsrlq $32, %zmm3, %zmm10 - vpaddq %zmm4, %zmm10, %zmm2 - -/* Assemble reduced argument from the pieces */ - vpandq %zmm6, %zmm15, %zmm13 - vpandq %zmm6, %zmm3, %zmm8 - vpsllq $32, %zmm2, %zmm6 - vpaddq %zmm13, %zmm7, %zmm4 - -/* - * If the magnitude of the input is <= 2^-20, then - * just pass through the input, since no reduction will be needed and - * the main path will only work accurately if the reduced argument is - * about >= 2^-70 (which it is for all large pi multiples) - */ - vpbroadcastq .L_2il0floatpacket.42(%rip), %zmm13 - vpaddq %zmm8, %zmm6, %zmm15 - vpsrlq $12, %zmm15, %zmm1 - -/* - * We want to incorporate the original sign now too. - * Do it here for convenience in getting the right N value, - * though we could wait right to the end if we were prepared - * to modify the sign of N later too. - * So get the appropriate sign mask now (or sooner). - */ - vpandq .L_2il0floatpacket.31(%rip){1to8}, %zmm9, %zmm3 - -/* - * Create floating-point high part, implicitly adding integer bit 1 - * Incorporate overall sign at this stage too. - */ - vpxorq .L_2il0floatpacket.32(%rip){1to8}, %zmm3, %zmm6 - vporq %zmm6, %zmm1, %zmm5 - vaddpd {rn-sae}, %zmm5, %zmm0, %zmm2 - vsubpd {rn-sae}, %zmm0, %zmm2, %zmm10 - vsubpd {rn-sae}, %zmm10, %zmm5, %zmm10 - vpandq .L_2il0floatpacket.36(%rip){1to8}, %zmm4, %zmm12 - vpsllq $28, %zmm12, %zmm14 - vpsrlq $24, %zmm4, %zmm4 - vpandq .L_2il0floatpacket.38(%rip){1to8}, %zmm15, %zmm15 - -/* - * Create floating-point low and medium parts, respectively - * lo_23, ... lo_0, 0, ..., 0 - * hi_11, ... hi_0, lo_63, ..., lo_24 - * then subtract off the implicitly added integer bits, - * 2^-104 and 2^-52, respectively. - * Put the original sign into all of them at this stage. - */ - vpxorq .L_2il0floatpacket.35(%rip){1to8}, %zmm3, %zmm7 - vpxorq .L_2il0floatpacket.37(%rip){1to8}, %zmm3, %zmm1 - vpsllq $40, %zmm15, %zmm3 - vporq %zmm7, %zmm14, %zmm8 - vsubpd {rn-sae}, %zmm7, %zmm8, %zmm5 - vandpd .L_2il0floatpacket.41(%rip){1to8}, %zmm9, %zmm14 - vcmppd $22, {sae}, %zmm13, %zmm14, %k3 - vcmppd $26, {sae}, %zmm13, %zmm14, %k2 - vporq %zmm4, %zmm3, %zmm8 - vporq %zmm1, %zmm8, %zmm7 - vsubpd {rn-sae}, %zmm1, %zmm7, %zmm6 - -/* - * Now multiply those numbers all by 2 pi, reasonably accurately. - * (RHi + RLo) * (pi_lead + pi_trail) ~= - * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) - */ - vpbroadcastq .L_2il0floatpacket.39(%rip), %zmm4 - -/* Now add them up into 2 reasonably aligned pieces */ - vaddpd {rn-sae}, %zmm6, %zmm10, %zmm12 - vmulpd {rn-sae}, %zmm4, %zmm12, %zmm15 - vsubpd {rn-sae}, %zmm12, %zmm10, %zmm10 - vmovaps %zmm4, %zmm3 - vfmsub213pd {rn-sae}, %zmm15, %zmm12, %zmm3 - vmovaps %zmm11, %zmm1 - -/* Grab our final N value as an integer, appropriately masked mod 2^9 */ - vpandq .L_2il0floatpacket.34(%rip){1to8}, %zmm2, %zmm0 - vaddpd {rn-sae}, %zmm10, %zmm6, %zmm2 - vaddpd {rn-sae}, %zmm5, %zmm2, %zmm6 - vpbroadcastq .L_2il0floatpacket.40(%rip), %zmm5 - vfmadd213pd {rn-sae}, %zmm3, %zmm5, %zmm12 - vfmadd213pd {rn-sae}, %zmm12, %zmm4, %zmm6 - vmovups 16960+__svml_dsin_data_internal_ha(%rip), %zmm4 - vpandnq %zmm14, %zmm14, %zmm11{%k3} - vandpd %zmm9, %zmm11, %zmm9 - vpsllq $5, %zmm0, %zmm11 - kxnorw %k0, %k0, %k3 - vpandnq %zmm14, %zmm14, %zmm1{%k2} - vandpd %zmm15, %zmm1, %zmm8 - vandpd %zmm6, %zmm1, %zmm1 - vpmovqd %zmm11, %ymm6 - vorpd %zmm8, %zmm9, %zmm7 - vmovups 17216+__svml_dsin_data_internal_ha(%rip), %zmm14 - vmovups 17088+__svml_dsin_data_internal_ha(%rip), %zmm15 - -/* ............... Polynomial approximation ................... */ - vmulpd {rn-sae}, %zmm7, %zmm7, %zmm9 - kxnorw %k0, %k0, %k2 - -/* ................. Reconstruction: res_hi ................... */ - vmovaps %zmm7, %zmm0 - vmovaps %zmm7, %zmm8 - vpxord %zmm10, %zmm10, %zmm10 - vgatherdpd (%rcx,%ymm6), %zmm10{%k2} - kxnorw %k0, %k0, %k2 - vpxord %zmm12, %zmm12, %zmm12 - vpxord %zmm11, %zmm11, %zmm11 - vgatherdpd 8(%rcx,%ymm6), %zmm12{%k3} - vgatherdpd 16(%rcx,%ymm6), %zmm11{%k2} - kxnorw %k0, %k0, %k3 - vfmadd213pd {rn-sae}, %zmm11, %zmm12, %zmm0 - vfmadd132pd {rn-sae}, %zmm10, %zmm0, %zmm8 - -/* ................. Reconstruction: res_lo ................... */ - vsubpd {rn-sae}, %zmm0, %zmm11, %zmm3 - vsubpd {rn-sae}, %zmm8, %zmm0, %zmm2 - vmovups 17024+__svml_dsin_data_internal_ha(%rip), %zmm0 - vfmadd231pd {rn-sae}, %zmm7, %zmm12, %zmm3 - vfmadd231pd {rn-sae}, %zmm10, %zmm7, %zmm2 - vfmadd231pd {rn-sae}, %zmm9, %zmm0, %zmm4 - vaddpd {rn-sae}, %zmm3, %zmm2, %zmm13 - vaddpd {rn-sae}, %zmm12, %zmm10, %zmm2 - vmulpd {rn-sae}, %zmm9, %zmm4, %zmm5 - vmulpd {rn-sae}, %zmm7, %zmm5, %zmm0 - -/* ................. Reconstruction: res_lo+corr ................... */ - vfnmadd213pd {rn-sae}, %zmm2, %zmm11, %zmm7 - vfmadd213pd {rn-sae}, %zmm13, %zmm2, %zmm0 - vmovups 17152+__svml_dsin_data_internal_ha(%rip), %zmm13 - vmovups 64(%rsp), %zmm2 - vfmadd231pd {rn-sae}, %zmm9, %zmm14, %zmm13 - vfmadd213pd {rn-sae}, %zmm15, %zmm9, %zmm13 - vmulpd {rn-sae}, %zmm9, %zmm13, %zmm3 - vfmadd213pd {rn-sae}, %zmm0, %zmm11, %zmm3 - vmovups (%rsp), %zmm0 - vpxord %zmm11, %zmm11, %zmm11 - vgatherdpd 24(%rcx,%ymm6), %zmm11{%k3} - vfmadd213pd {rn-sae}, %zmm11, %zmm7, %zmm1 - vaddpd {rn-sae}, %zmm1, %zmm3, %zmm7 - -/* .................. Final reconstruction ................... */ - vaddpd {rn-sae}, %zmm7, %zmm8, %zmm9 - vxorpd 128(%rsp), %zmm9, %zmm0{%k1} - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_sin8,@function - .size __svml_sin8,.-__svml_sin8 -..LN__svml_sin8.0: - -.L_2__routine_start___svml_dsin_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dsin_cout_rare_internal: - - - .cfi_startproc -..L67: - - movzwl 6(%rdi), %eax - andl $32752, %eax - movsd (%rdi), %xmm1 - movb 7(%rdi), %dl - andb $127, %dl - movsd %xmm1, -8(%rsp) - cmpl $32752, %eax - jne .LBL_2_6 - - - cmpl $0, -8(%rsp) - jne .LBL_2_5 - - - movb %dl, -1(%rsp) - cmpl $2146435072, -4(%rsp) - jne .LBL_2_5 - - - movsd __dsin_la_CoutTab(%rip), %xmm0 - movl $1, %eax - mulsd %xmm0, %xmm1 - movsd %xmm1, (%rsi) - ret - -.LBL_2_5: - - mulsd %xmm1, %xmm1 - xorl %eax, %eax - movsd %xmm1, (%rsi) - ret - -.LBL_2_6: - - xorl %eax, %eax - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dsin_cout_rare_internal,@function - .size __svml_dsin_cout_rare_internal,.-__svml_dsin_cout_rare_internal -..LN__svml_dsin_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dsin_data_internal: - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 1097859072 - .long 0 - .long 1097859072 - .long 0 - .long 1097859072 - .long 0 - .long 1097859072 - .long 0 - .long 1097859072 - .long 0 - .long 1097859072 - .long 0 - .long 1097859072 - .long 0 - .long 1097859072 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 1841940611 - .long 1070882608 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 1073741824 - .long 1074340347 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 0 - .long 1048855597 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 2147483648 - .long 1023952536 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1880851354 - .long 998820945 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 1413754136 - .long 1074340347 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 856972294 - .long 1017226790 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 688016905 - .long 962338001 - .long 1431655592 - .long 3217380693 - .long 1431655592 - .long 3217380693 - .long 1431655592 - .long 3217380693 - .long 1431655592 - .long 3217380693 - .long 1431655592 - .long 3217380693 - .long 1431655592 - .long 3217380693 - .long 1431655592 - .long 3217380693 - .long 1431655592 - .long 3217380693 - .long 286303603 - .long 1065423121 - .long 286303603 - .long 1065423121 - .long 286303603 - .long 1065423121 - .long 286303603 - .long 1065423121 - .long 286303603 - .long 1065423121 - .long 286303603 - .long 1065423121 - .long 286303603 - .long 1065423121 - .long 286303603 - .long 1065423121 - .long 430332381 - .long 3207201184 - .long 430332381 - .long 3207201184 - .long 430332381 - .long 3207201184 - .long 430332381 - .long 3207201184 - .long 430332381 - .long 3207201184 - .long 430332381 - .long 3207201184 - .long 430332381 - .long 3207201184 - .long 430332381 - .long 3207201184 - .long 2154487066 - .long 1053236707 - .long 2154487066 - .long 1053236707 - .long 2154487066 - .long 1053236707 - .long 2154487066 - .long 1053236707 - .long 2154487066 - .long 1053236707 - .long 2154487066 - .long 1053236707 - .long 2154487066 - .long 1053236707 - .long 2154487066 - .long 1053236707 - .long 1521109587 - .long 3193628213 - .long 1521109587 - .long 3193628213 - .long 1521109587 - .long 3193628213 - .long 1521109587 - .long 3193628213 - .long 1521109587 - .long 3193628213 - .long 1521109587 - .long 3193628213 - .long 1521109587 - .long 3193628213 - .long 1521109587 - .long 3193628213 - .long 3993098302 - .long 1038487147 - .long 3993098302 - .long 1038487147 - .long 3993098302 - .long 1038487147 - .long 3993098302 - .long 1038487147 - .long 3993098302 - .long 1038487147 - .long 3993098302 - .long 1038487147 - .long 3993098302 - .long 1038487147 - .long 3993098302 - .long 1038487147 - .long 2124375536 - .long 3177836881 - .long 2124375536 - .long 3177836881 - .long 2124375536 - .long 3177836881 - .long 2124375536 - .long 3177836881 - .long 2124375536 - .long 3177836881 - .long 2124375536 - .long 3177836881 - .long 2124375536 - .long 3177836881 - .long 2124375536 - .long 3177836881 - .type __svml_dsin_data_internal,@object - .size __svml_dsin_data_internal,1280 - .align 64 -__svml_dsin_data_internal_ha: - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2376373521 - .long 3205741868 - .long 0 - .long 1072693248 - .long 4242458500 - .long 1065951697 - .long 2684354560 - .long 1009354638 - .long 3650591271 - .long 3207838971 - .long 0 - .long 1072693248 - .long 4154680958 - .long 1067000149 - .long 0 - .long 3153796451 - .long 69373323 - .long 3209049152 - .long 0 - .long 1072693248 - .long 1972655565 - .long 1067636837 - .long 1073741824 - .long 1009157878 - .long 220529721 - .long 3209935929 - .long 0 - .long 1072693248 - .long 4044216340 - .long 1068048229 - .long 0 - .long 3156808381 - .long 3810305407 - .long 3210663220 - .long 0 - .long 1072693248 - .long 2046304480 - .long 1068459374 - .long 3758096384 - .long 3156402667 - .long 4269262315 - .long 3211145810 - .long 0 - .long 1072693248 - .long 2462980598 - .long 1068684576 - .long 2684354560 - .long 3158941832 - .long 1118107366 - .long 3211670787 - .long 0 - .long 1072693248 - .long 177906713 - .long 1068889808 - .long 3221225472 - .long 3159310370 - .long 393047345 - .long 3212032302 - .long 0 - .long 1072693248 - .long 3156849708 - .long 1069094822 - .long 3221225472 - .long 3158189848 - .long 1227670166 - .long 3212375297 - .long 0 - .long 1072693248 - .long 3349070549 - .long 1069299589 - .long 3758096384 - .long 3156538269 - .long 2402293340 - .long 3212758471 - .long 0 - .long 1072693248 - .long 1453945614 - .long 1069504078 - .long 1610612736 - .long 1011492612 - .long 2592747447 - .long 3213009315 - .long 0 - .long 1072693248 - .long 3470456183 - .long 1069627888 - .long 1073741824 - .long 3160744771 - .long 1037482584 - .long 3213240992 - .long 0 - .long 1072693248 - .long 1854824762 - .long 1069729808 - .long 2684354560 - .long 1011953664 - .long 3451754846 - .long 3213492662 - .long 0 - .long 1072693248 - .long 2972270170 - .long 1069831542 - .long 1073741824 - .long 3159524770 - .long 1672287667 - .long 3213764289 - .long 0 - .long 1072693248 - .long 1149976518 - .long 1069933076 - .long 1610612736 - .long 1013264895 - .long 2346447124 - .long 3213970635 - .long 0 - .long 1072693248 - .long 3729833777 - .long 1070034393 - .long 3758096384 - .long 1013044718 - .long 18115067 - .long 3214126342 - .long 0 - .long 1072693248 - .long 1013556747 - .long 1070135480 - .long 2684354560 - .long 3160567065 - .long 2660899430 - .long 3214291960 - .long 0 - .long 1072693248 - .long 632292433 - .long 1070236320 - .long 3758096384 - .long 3160963333 - .long 1935888103 - .long 3214467466 - .long 0 - .long 1072693248 - .long 1786662755 - .long 1070336898 - .long 2147483648 - .long 3155882307 - .long 288924873 - .long 3214652833 - .long 0 - .long 1072693248 - .long 3846521617 - .long 1070437199 - .long 536870912 - .long 1013406610 - .long 2377770267 - .long 3214848032 - .long 0 - .long 1072693248 - .long 2065784603 - .long 1070537209 - .long 3758096384 - .long 3160681966 - .long 3250111450 - .long 3214993525 - .long 0 - .long 1072693248 - .long 238550446 - .long 1070616504 - .long 2684354560 - .long 3154383565 - .long 2306566604 - .long 3215100913 - .long 0 - .long 1072693248 - .long 1655830135 - .long 1070666194 - .long 0 - .long 1014506690 - .long 1913604284 - .long 3215213171 - .long 0 - .long 1072693248 - .long 1062001470 - .long 1070715716 - .long 0 - .long 3160875220 - .long 2476548698 - .long 3215330282 - .long 0 - .long 1072693248 - .long 785751814 - .long 1070765062 - .long 2684354560 - .long 3161838221 - .long 1261629236 - .long 3215452229 - .long 0 - .long 1072693248 - .long 3269558610 - .long 1070814224 - .long 536870912 - .long 3161705216 - .long 997322465 - .long 3215578993 - .long 0 - .long 1072693248 - .long 2484561409 - .long 1070863196 - .long 1073741824 - .long 1014024572 - .long 1296295961 - .long 3215710555 - .long 0 - .long 1072693248 - .long 1115219818 - .long 1070911970 - .long 0 - .long 1013072242 - .long 2962723252 - .long 3215846895 - .long 0 - .long 1072693248 - .long 1974149085 - .long 1070960538 - .long 3221225472 - .long 3156147648 - .long 4002549419 - .long 3215985292 - .long 0 - .long 1072693248 - .long 3711903686 - .long 1071008893 - .long 1073741824 - .long 1011944747 - .long 1234824733 - .long 3216058210 - .long 0 - .long 1072693248 - .long 821708191 - .long 1071057029 - .long 3758096384 - .long 3161738009 - .long 3996842794 - .long 3216133484 - .long 0 - .long 1072693248 - .long 824036583 - .long 1071104937 - .long 0 - .long 1008313330 - .long 2255197647 - .long 3216211105 - .long 0 - .long 1072693248 - .long 2796464483 - .long 1071152610 - .long 3221225472 - .long 3160878317 - .long 1638976426 - .long 3216291060 - .long 0 - .long 1072693248 - .long 1673302999 - .long 1071200042 - .long 2147483648 - .long 1013351473 - .long 1972483635 - .long 3216373337 - .long 0 - .long 1072693248 - .long 1135144330 - .long 1071247225 - .long 536870912 - .long 1013373569 - .long 1577996576 - .long 3216457924 - .long 0 - .long 1072693248 - .long 728580042 - .long 1071294152 - .long 1610612736 - .long 3162332944 - .long 1578746984 - .long 3216544808 - .long 0 - .long 1072693248 - .long 165764288 - .long 1071340816 - .long 3221225472 - .long 1013298018 - .long 1612193054 - .long 3216633976 - .long 0 - .long 1072693248 - .long 3623952103 - .long 1071387209 - .long 2684354560 - .long 3161985962 - .long 4133449816 - .long 3216725414 - .long 0 - .long 1072693248 - .long 2570175582 - .long 1071433326 - .long 1073741824 - .long 1012303118 - .long 1539072807 - .long 3216819110 - .long 0 - .long 1072693248 - .long 1535566729 - .long 1071479159 - .long 2147483648 - .long 1014321388 - .long 1945768569 - .long 3216915048 - .long 0 - .long 1072693248 - .long 939980347 - .long 1071524701 - .long 0 - .long 1012796809 - .long 3429717432 - .long 3217013214 - .long 0 - .long 1072693248 - .long 1391425750 - .long 1071569945 - .long 3221225472 - .long 3162362103 - .long 1312926554 - .long 3217072381 - .long 0 - .long 1072693248 - .long 3690502842 - .long 1071614884 - .long 3221225472 - .long 3157453855 - .long 1663679671 - .long 3217123670 - .long 0 - .long 1072693248 - .long 2269920951 - .long 1071652092 - .long 3758096384 - .long 3161672245 - .long 3952756490 - .long 3217176050 - .long 0 - .long 1072693248 - .long 2569207790 - .long 1071674247 - .long 1073741824 - .long 3163183617 - .long 69903290 - .long 3217229515 - .long 0 - .long 1072693248 - .long 1297975695 - .long 1071696240 - .long 3221225472 - .long 3163083735 - .long 2678847490 - .long 3217284054 - .long 0 - .long 1072693248 - .long 1411074851 - .long 1071718067 - .long 1610612736 - .long 3163484731 - .long 2272832445 - .long 3217339661 - .long 0 - .long 1072693248 - .long 1675549513 - .long 1071739725 - .long 3221225472 - .long 3163025138 - .long 1539668340 - .long 3217396327 - .long 0 - .long 1072693248 - .long 967731400 - .long 1071761211 - .long 536870912 - .long 1015752157 - .long 2482246777 - .long 3217454043 - .long 0 - .long 1072693248 - .long 2570316633 - .long 1071782521 - .long 1610612736 - .long 3162744753 - .long 2129093113 - .long 3217512801 - .long 0 - .long 1072693248 - .long 1289556703 - .long 1071803653 - .long 536870912 - .long 3162888820 - .long 1129922991 - .long 3217572592 - .long 0 - .long 1072693248 - .long 637203434 - .long 1071824603 - .long 3221225472 - .long 3159443841 - .long 3761365757 - .long 3217633406 - .long 0 - .long 1072693248 - .long 4242632757 - .long 1071845367 - .long 536870912 - .long 3161390278 - .long 752919289 - .long 3217695236 - .long 0 - .long 1072693248 - .long 2969983475 - .long 1071865944 - .long 2684354560 - .long 3162635443 - .long 3652612115 - .long 3217758070 - .long 0 - .long 1072693248 - .long 689983673 - .long 1071886330 - .long 3758096384 - .long 1014906405 - .long 1883353036 - .long 3217821901 - .long 0 - .long 1072693248 - .long 1397053140 - .long 1071906521 - .long 1610612736 - .long 1015245078 - .long 1403757309 - .long 3217886718 - .long 0 - .long 1072693248 - .long 621354454 - .long 1071926515 - .long 536870912 - .long 1013450602 - .long 3239527685 - .long 3217952511 - .long 0 - .long 1072693248 - .long 2610628921 - .long 1071946308 - .long 1610612736 - .long 3162668769 - .long 3489768009 - .long 3218019271 - .long 0 - .long 1072693248 - .long 3152274921 - .long 1071965898 - .long 3758096384 - .long 1013170835 - .long 2371640770 - .long 1070588851 - .long 0 - .long 1071644672 - .long 2460177814 - .long 1071985282 - .long 2147483648 - .long 3162116843 - .long 2309668539 - .long 1070520188 - .long 0 - .long 1071644672 - .long 881650848 - .long 1072004457 - .long 2147483648 - .long 3162986272 - .long 2081278341 - .long 1070450589 - .long 0 - .long 1071644672 - .long 3194290572 - .long 1072023419 - .long 2147483648 - .long 1015048682 - .long 3753901657 - .long 1070380064 - .long 0 - .long 1071644672 - .long 1427975391 - .long 1072042167 - .long 1073741824 - .long 3161608627 - .long 1403691706 - .long 1070308625 - .long 0 - .long 1071644672 - .long 636516413 - .long 1072060697 - .long 3758096384 - .long 1015823716 - .long 2583490354 - .long 1070236281 - .long 0 - .long 1071644672 - .long 1719614413 - .long 1072079006 - .long 0 - .long 3163282740 - .long 2546065654 - .long 1070163044 - .long 0 - .long 1071644672 - .long 1424664751 - .long 1072097092 - .long 3221225472 - .long 3163405315 - .long 1416934267 - .long 1070088925 - .long 0 - .long 1071644672 - .long 938475414 - .long 1072114952 - .long 0 - .long 1015076079 - .long 4187227697 - .long 1070013934 - .long 0 - .long 1071644672 - .long 1594061409 - .long 1072132583 - .long 2147483648 - .long 1014353870 - .long 3526603391 - .long 1069938084 - .long 0 - .long 1071644672 - .long 577417135 - .long 1072149983 - .long 2684354560 - .long 3161519415 - .long 1250776663 - .long 1069861386 - .long 0 - .long 1071644672 - .long 3814135665 - .long 1072167148 - .long 3221225472 - .long 3163146456 - .long 4019165092 - .long 1069783850 - .long 0 - .long 1071644672 - .long 201299822 - .long 1072184078 - .long 3758096384 - .long 3161912352 - .long 1852581091 - .long 1069705490 - .long 0 - .long 1071644672 - .long 263859903 - .long 1072200768 - .long 0 - .long 3162692284 - .long 2485417816 - .long 1069626316 - .long 0 - .long 1071644672 - .long 1796544321 - .long 1072217216 - .long 536870912 - .long 3162686945 - .long 2586490530 - .long 1069545162 - .long 0 - .long 1071644672 - .long 2750387213 - .long 1072233420 - .long 2147483648 - .long 3160858537 - .long 1224902090 - .long 1069383633 - .long 0 - .long 1071644672 - .long 1234330619 - .long 1072249378 - .long 2684354560 - .long 1015272473 - .long 2285031318 - .long 1069220549 - .long 0 - .long 1071644672 - .long 4106737474 - .long 1072265086 - .long 2684354560 - .long 3162592377 - .long 3876290983 - .long 1069055935 - .long 0 - .long 1071644672 - .long 1207142209 - .long 1072280544 - .long 2147483648 - .long 3162705634 - .long 802660176 - .long 1068889817 - .long 0 - .long 1071644672 - .long 4012486548 - .long 1072295747 - .long 2684354560 - .long 1014701564 - .long 1726519029 - .long 1068722218 - .long 0 - .long 1071644672 - .long 2688952194 - .long 1072310695 - .long 0 - .long 3161532603 - .long 3382663878 - .long 1068553164 - .long 0 - .long 1071644672 - .long 453180130 - .long 1072325385 - .long 1073741824 - .long 3162411281 - .long 2598800519 - .long 1068266419 - .long 0 - .long 1071644672 - .long 688824739 - .long 1072339814 - .long 3758096384 - .long 1010431536 - .long 1038988426 - .long 1067922646 - .long 0 - .long 1071644672 - .long 2653017361 - .long 1072353980 - .long 0 - .long 3162800062 - .long 1102361128 - .long 1067576117 - .long 0 - .long 1071644672 - .long 1477771776 - .long 1072367882 - .long 536870912 - .long 3163104986 - .long 2880516564 - .long 1067003401 - .long 0 - .long 1071644672 - .long 1056266002 - .long 1072381517 - .long 2684354560 - .long 3163469496 - .long 1220541286 - .long 1066197478 - .long 0 - .long 1071644672 - .long 1159294526 - .long 1072394883 - .long 536870912 - .long 3163276959 - .long 1279178457 - .long 1064107143 - .long 0 - .long 1071644672 - .long 1731563730 - .long 1072407978 - .long 536870912 - .long 1015540302 - .long 31019393 - .long 3212646089 - .long 0 - .long 1071644672 - .long 2892993834 - .long 1072420800 - .long 536870912 - .long 3163039143 - .long 3506991783 - .long 3214032490 - .long 0 - .long 1071644672 - .long 645027145 - .long 1072433348 - .long 3221225472 - .long 1012602239 - .long 2140183630 - .long 3214756396 - .long 0 - .long 1071644672 - .long 4051746225 - .long 1072445618 - .long 1610612736 - .long 3161907377 - .long 600368053 - .long 3215209541 - .long 0 - .long 1071644672 - .long 881357723 - .long 1072457611 - .long 3221225472 - .long 1013810890 - .long 913431823 - .long 3215576203 - .long 0 - .long 1071644672 - .long 557060597 - .long 1072469323 - .long 0 - .long 3159554934 - .long 1073154251 - .long 3215945137 - .long 0 - .long 1071644672 - .long 4093443164 - .long 1072480752 - .long 536870912 - .long 1014912865 - .long 3631910143 - .long 3216149439 - .long 0 - .long 1071644672 - .long 4097623923 - .long 1072491898 - .long 2684354560 - .long 3160308587 - .long 1380647130 - .long 3216336095 - .long 0 - .long 1071644672 - .long 1950234076 - .long 1072502759 - .long 536870912 - .long 3159425498 - .long 4049357271 - .long 3216523802 - .long 0 - .long 1071644672 - .long 3511535930 - .long 1072513332 - .long 2147483648 - .long 3162828626 - .long 1896722595 - .long 3216712534 - .long 0 - .long 1071644672 - .long 1942611595 - .long 1072523617 - .long 3221225472 - .long 3162410081 - .long 1699043957 - .long 3216902261 - .long 0 - .long 1071644672 - .long 3476196678 - .long 1072533611 - .long 0 - .long 1014257638 - .long 3296146332 - .long 1069485732 - .long 0 - .long 1070596096 - .long 1647878299 - .long 1072543314 - .long 3758096384 - .long 3162169063 - .long 3286832763 - .long 1069294100 - .long 0 - .long 1070596096 - .long 3066872380 - .long 1072552723 - .long 3221225472 - .long 1015561271 - .long 1962712856 - .long 1069101559 - .long 0 - .long 1070596096 - .long 1647164971 - .long 1072561838 - .long 2147483648 - .long 3162838250 - .long 3601629044 - .long 1068908137 - .long 0 - .long 1070596096 - .long 83265253 - .long 1072570657 - .long 1610612736 - .long 3162510535 - .long 165911977 - .long 1068713865 - .long 0 - .long 1070596096 - .long 1261158782 - .long 1072579178 - .long 2147483648 - .long 1015711544 - .long 1348311045 - .long 1068518770 - .long 0 - .long 1070596096 - .long 3964199186 - .long 1072587400 - .long 3758096384 - .long 3160501078 - .long 386665102 - .long 1068146822 - .long 0 - .long 1070596096 - .long 2873938189 - .long 1072595323 - .long 1610612736 - .long 3162311422 - .long 1991047213 - .long 1067753521 - .long 0 - .long 1070596096 - .long 1455828442 - .long 1072602945 - .long 3758096384 - .long 1015505073 - .long 4107121629 - .long 1067267139 - .long 0 - .long 1070596096 - .long 3370060660 - .long 1072610264 - .long 1610612736 - .long 1014787212 - .long 723478390 - .long 1066474790 - .long 0 - .long 1070596096 - .long 3882371427 - .long 1072617280 - .long 2147483648 - .long 1014923975 - .long 2382326656 - .long 1064562179 - .long 0 - .long 1070596096 - .long 2749658050 - .long 1072623992 - .long 1610612736 - .long 1015427338 - .long 2614369450 - .long 3212624080 - .long 0 - .long 1070596096 - .long 4220661975 - .long 1072630398 - .long 3221225472 - .long 1014312058 - .long 3587565429 - .long 3214108032 - .long 0 - .long 1070596096 - .long 4151720666 - .long 1072636498 - .long 0 - .long 3162639544 - .long 2886567144 - .long 3214910444 - .long 0 - .long 1070596096 - .long 2892293513 - .long 1072642291 - .long 2684354560 - .long 3162340271 - .long 1765797566 - .long 3215324543 - .long 0 - .long 1070596096 - .long 990588717 - .long 1072647776 - .long 3758096384 - .long 3162041857 - .long 240740309 - .long 3215727903 - .long 0 - .long 1070596096 - .long 3489094832 - .long 1072652951 - .long 536870912 - .long 1014325783 - .long 2034433221 - .long 1068349287 - .long 0 - .long 1069547520 - .long 2745245815 - .long 1072657817 - .long 3221225472 - .long 1015566129 - .long 304938777 - .long 1067944017 - .long 0 - .long 1069547520 - .long 4201728937 - .long 1072662372 - .long 1610612736 - .long 1014674006 - .long 3299146087 - .long 1067537882 - .long 0 - .long 1069547520 - .long 617154971 - .long 1072666617 - .long 3758096384 - .long 3163433696 - .long 1953696209 - .long 1066811523 - .long 0 - .long 1069547520 - .long 2131272983 - .long 1072670549 - .long 3221225472 - .long 3163005096 - .long 3987691371 - .long 1065590540 - .long 0 - .long 1069547520 - .long 1905645377 - .long 1072674169 - .long 1610612736 - .long 1014087596 - .long 718380601 - .long 3211081269 - .long 0 - .long 1069547520 - .long 1893834707 - .long 1072677476 - .long 1610612736 - .long 1015147654 - .long 3272206680 - .long 3213771729 - .long 0 - .long 1069547520 - .long 4251821691 - .long 1072680469 - .long 2147483648 - .long 3161841007 - .long 257503056 - .long 3214647653 - .long 0 - .long 1069547520 - .long 2748392742 - .long 1072683149 - .long 536870912 - .long 3163061750 - .long 711626851 - .long 1066916672 - .long 0 - .long 1068498944 - .long 4240268041 - .long 1072685514 - .long 536870912 - .long 1013588963 - .long 2523975598 - .long 1065789700 - .long 0 - .long 1068498944 - .long 2902558778 - .long 1072687565 - .long 3221225472 - .long 1013260780 - .long 3237733378 - .long 3209908784 - .long 0 - .long 1068498944 - .long 1703834029 - .long 1072689301 - .long 3758096384 - .long 1015028364 - .long 1003003824 - .long 3213591144 - .long 0 - .long 1068498944 - .long 3816385918 - .long 1072690721 - .long 536870912 - .long 3161216956 - .long 2896342633 - .long 1064747819 - .long 0 - .long 1067450368 - .long 4026464093 - .long 1072691826 - .long 3221225472 - .long 3163075789 - .long 561145352 - .long 3212540584 - .long 0 - .long 1067450368 - .long 1619315981 - .long 1072692616 - .long 1073741824 - .long 3162584397 - .long 210035182 - .long 3211491512 - .long 0 - .long 1066401792 - .long 379294427 - .long 1072693090 - .long 3221225472 - .long 1015405987 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 210035182 - .long 1064007864 - .long 0 - .long 3213885440 - .long 379294427 - .long 1072693090 - .long 3221225472 - .long 1015405987 - .long 561145352 - .long 1065056936 - .long 0 - .long 3214934016 - .long 1619315981 - .long 1072692616 - .long 1073741824 - .long 3162584397 - .long 2896342633 - .long 3212231467 - .long 0 - .long 3214934016 - .long 4026464093 - .long 1072691826 - .long 3221225472 - .long 3163075789 - .long 1003003824 - .long 1066107496 - .long 0 - .long 3215982592 - .long 3816385918 - .long 1072690721 - .long 536870912 - .long 3161216956 - .long 3237733378 - .long 1062425136 - .long 0 - .long 3215982592 - .long 1703834029 - .long 1072689301 - .long 3758096384 - .long 1015028364 - .long 2523975598 - .long 3213273348 - .long 0 - .long 3215982592 - .long 2902558778 - .long 1072687565 - .long 3221225472 - .long 1013260780 - .long 711626851 - .long 3214400320 - .long 0 - .long 3215982592 - .long 4240268041 - .long 1072685514 - .long 536870912 - .long 1013588963 - .long 257503056 - .long 1067164005 - .long 0 - .long 3217031168 - .long 2748392742 - .long 1072683149 - .long 536870912 - .long 3163061750 - .long 3272206680 - .long 1066288081 - .long 0 - .long 3217031168 - .long 4251821691 - .long 1072680469 - .long 2147483648 - .long 3161841007 - .long 718380601 - .long 1063597621 - .long 0 - .long 3217031168 - .long 1893834707 - .long 1072677476 - .long 1610612736 - .long 1015147654 - .long 3987691371 - .long 3213074188 - .long 0 - .long 3217031168 - .long 1905645377 - .long 1072674169 - .long 1610612736 - .long 1014087596 - .long 1953696209 - .long 3214295171 - .long 0 - .long 3217031168 - .long 2131272983 - .long 1072670549 - .long 3221225472 - .long 3163005096 - .long 3299146087 - .long 3215021530 - .long 0 - .long 3217031168 - .long 617154971 - .long 1072666617 - .long 3758096384 - .long 3163433696 - .long 304938777 - .long 3215427665 - .long 0 - .long 3217031168 - .long 4201728937 - .long 1072662372 - .long 1610612736 - .long 1014674006 - .long 2034433221 - .long 3215832935 - .long 0 - .long 3217031168 - .long 2745245815 - .long 1072657817 - .long 3221225472 - .long 1015566129 - .long 240740309 - .long 1068244255 - .long 0 - .long 3218079744 - .long 3489094832 - .long 1072652951 - .long 536870912 - .long 1014325783 - .long 1765797566 - .long 1067840895 - .long 0 - .long 3218079744 - .long 990588717 - .long 1072647776 - .long 3758096384 - .long 3162041857 - .long 2886567144 - .long 1067426796 - .long 0 - .long 3218079744 - .long 2892293513 - .long 1072642291 - .long 2684354560 - .long 3162340271 - .long 3587565429 - .long 1066624384 - .long 0 - .long 3218079744 - .long 4151720666 - .long 1072636498 - .long 0 - .long 3162639544 - .long 2614369450 - .long 1065140432 - .long 0 - .long 3218079744 - .long 4220661975 - .long 1072630398 - .long 3221225472 - .long 1014312058 - .long 2382326656 - .long 3212045827 - .long 0 - .long 3218079744 - .long 2749658050 - .long 1072623992 - .long 1610612736 - .long 1015427338 - .long 723478390 - .long 3213958438 - .long 0 - .long 3218079744 - .long 3882371427 - .long 1072617280 - .long 2147483648 - .long 1014923975 - .long 4107121629 - .long 3214750787 - .long 0 - .long 3218079744 - .long 3370060660 - .long 1072610264 - .long 1610612736 - .long 1014787212 - .long 1991047213 - .long 3215237169 - .long 0 - .long 3218079744 - .long 1455828442 - .long 1072602945 - .long 3758096384 - .long 1015505073 - .long 386665102 - .long 3215630470 - .long 0 - .long 3218079744 - .long 2873938189 - .long 1072595323 - .long 1610612736 - .long 3162311422 - .long 1348311045 - .long 3216002418 - .long 0 - .long 3218079744 - .long 3964199186 - .long 1072587400 - .long 3758096384 - .long 3160501078 - .long 165911977 - .long 3216197513 - .long 0 - .long 3218079744 - .long 1261158782 - .long 1072579178 - .long 2147483648 - .long 1015711544 - .long 3601629044 - .long 3216391785 - .long 0 - .long 3218079744 - .long 83265253 - .long 1072570657 - .long 1610612736 - .long 3162510535 - .long 1962712856 - .long 3216585207 - .long 0 - .long 3218079744 - .long 1647164971 - .long 1072561838 - .long 2147483648 - .long 3162838250 - .long 3286832763 - .long 3216777748 - .long 0 - .long 3218079744 - .long 3066872380 - .long 1072552723 - .long 3221225472 - .long 1015561271 - .long 3296146332 - .long 3216969380 - .long 0 - .long 3218079744 - .long 1647878299 - .long 1072543314 - .long 3758096384 - .long 3162169063 - .long 1699043957 - .long 1069418613 - .long 0 - .long 3219128320 - .long 3476196678 - .long 1072533611 - .long 0 - .long 1014257638 - .long 1896722595 - .long 1069228886 - .long 0 - .long 3219128320 - .long 1942611595 - .long 1072523617 - .long 3221225472 - .long 3162410081 - .long 4049357271 - .long 1069040154 - .long 0 - .long 3219128320 - .long 3511535930 - .long 1072513332 - .long 2147483648 - .long 3162828626 - .long 1380647130 - .long 1068852447 - .long 0 - .long 3219128320 - .long 1950234076 - .long 1072502759 - .long 536870912 - .long 3159425498 - .long 3631910143 - .long 1068665791 - .long 0 - .long 3219128320 - .long 4097623923 - .long 1072491898 - .long 2684354560 - .long 3160308587 - .long 1073154251 - .long 1068461489 - .long 0 - .long 3219128320 - .long 4093443164 - .long 1072480752 - .long 536870912 - .long 1014912865 - .long 913431823 - .long 1068092555 - .long 0 - .long 3219128320 - .long 557060597 - .long 1072469323 - .long 0 - .long 3159554934 - .long 600368053 - .long 1067725893 - .long 0 - .long 3219128320 - .long 881357723 - .long 1072457611 - .long 3221225472 - .long 1013810890 - .long 2140183630 - .long 1067272748 - .long 0 - .long 3219128320 - .long 4051746225 - .long 1072445618 - .long 1610612736 - .long 3161907377 - .long 3506991783 - .long 1066548842 - .long 0 - .long 3219128320 - .long 645027145 - .long 1072433348 - .long 3221225472 - .long 1012602239 - .long 31019393 - .long 1065162441 - .long 0 - .long 3219128320 - .long 2892993834 - .long 1072420800 - .long 536870912 - .long 3163039143 - .long 1279178457 - .long 3211590791 - .long 0 - .long 3219128320 - .long 1731563730 - .long 1072407978 - .long 536870912 - .long 1015540302 - .long 1220541286 - .long 3213681126 - .long 0 - .long 3219128320 - .long 1159294526 - .long 1072394883 - .long 536870912 - .long 3163276959 - .long 2880516564 - .long 3214487049 - .long 0 - .long 3219128320 - .long 1056266002 - .long 1072381517 - .long 2684354560 - .long 3163469496 - .long 1102361128 - .long 3215059765 - .long 0 - .long 3219128320 - .long 1477771776 - .long 1072367882 - .long 536870912 - .long 3163104986 - .long 1038988426 - .long 3215406294 - .long 0 - .long 3219128320 - .long 2653017361 - .long 1072353980 - .long 0 - .long 3162800062 - .long 2598800519 - .long 3215750067 - .long 0 - .long 3219128320 - .long 688824739 - .long 1072339814 - .long 3758096384 - .long 1010431536 - .long 3382663878 - .long 3216036812 - .long 0 - .long 3219128320 - .long 453180130 - .long 1072325385 - .long 1073741824 - .long 3162411281 - .long 1726519029 - .long 3216205866 - .long 0 - .long 3219128320 - .long 2688952194 - .long 1072310695 - .long 0 - .long 3161532603 - .long 802660176 - .long 3216373465 - .long 0 - .long 3219128320 - .long 4012486548 - .long 1072295747 - .long 2684354560 - .long 1014701564 - .long 3876290983 - .long 3216539583 - .long 0 - .long 3219128320 - .long 1207142209 - .long 1072280544 - .long 2147483648 - .long 3162705634 - .long 2285031318 - .long 3216704197 - .long 0 - .long 3219128320 - .long 4106737474 - .long 1072265086 - .long 2684354560 - .long 3162592377 - .long 1224902090 - .long 3216867281 - .long 0 - .long 3219128320 - .long 1234330619 - .long 1072249378 - .long 2684354560 - .long 1015272473 - .long 2586490530 - .long 3217028810 - .long 0 - .long 3219128320 - .long 2750387213 - .long 1072233420 - .long 2147483648 - .long 3160858537 - .long 2485417816 - .long 3217109964 - .long 0 - .long 3219128320 - .long 1796544321 - .long 1072217216 - .long 536870912 - .long 3162686945 - .long 1852581091 - .long 3217189138 - .long 0 - .long 3219128320 - .long 263859903 - .long 1072200768 - .long 0 - .long 3162692284 - .long 4019165092 - .long 3217267498 - .long 0 - .long 3219128320 - .long 201299822 - .long 1072184078 - .long 3758096384 - .long 3161912352 - .long 1250776663 - .long 3217345034 - .long 0 - .long 3219128320 - .long 3814135665 - .long 1072167148 - .long 3221225472 - .long 3163146456 - .long 3526603391 - .long 3217421732 - .long 0 - .long 3219128320 - .long 577417135 - .long 1072149983 - .long 2684354560 - .long 3161519415 - .long 4187227697 - .long 3217497582 - .long 0 - .long 3219128320 - .long 1594061409 - .long 1072132583 - .long 2147483648 - .long 1014353870 - .long 1416934267 - .long 3217572573 - .long 0 - .long 3219128320 - .long 938475414 - .long 1072114952 - .long 0 - .long 1015076079 - .long 2546065654 - .long 3217646692 - .long 0 - .long 3219128320 - .long 1424664751 - .long 1072097092 - .long 3221225472 - .long 3163405315 - .long 2583490354 - .long 3217719929 - .long 0 - .long 3219128320 - .long 1719614413 - .long 1072079006 - .long 0 - .long 3163282740 - .long 1403691706 - .long 3217792273 - .long 0 - .long 3219128320 - .long 636516413 - .long 1072060697 - .long 3758096384 - .long 1015823716 - .long 3753901657 - .long 3217863712 - .long 0 - .long 3219128320 - .long 1427975391 - .long 1072042167 - .long 1073741824 - .long 3161608627 - .long 2081278341 - .long 3217934237 - .long 0 - .long 3219128320 - .long 3194290572 - .long 1072023419 - .long 2147483648 - .long 1015048682 - .long 2309668539 - .long 3218003836 - .long 0 - .long 3219128320 - .long 881650848 - .long 1072004457 - .long 2147483648 - .long 3162986272 - .long 2371640770 - .long 3218072499 - .long 0 - .long 3219128320 - .long 2460177814 - .long 1071985282 - .long 2147483648 - .long 3162116843 - .long 3489768009 - .long 1070535623 - .long 0 - .long 3220176896 - .long 3152274921 - .long 1071965898 - .long 3758096384 - .long 1013170835 - .long 3239527685 - .long 1070468863 - .long 0 - .long 3220176896 - .long 2610628921 - .long 1071946308 - .long 1610612736 - .long 3162668769 - .long 1403757309 - .long 1070403070 - .long 0 - .long 3220176896 - .long 621354454 - .long 1071926515 - .long 536870912 - .long 1013450602 - .long 1883353036 - .long 1070338253 - .long 0 - .long 3220176896 - .long 1397053140 - .long 1071906521 - .long 1610612736 - .long 1015245078 - .long 3652612115 - .long 1070274422 - .long 0 - .long 3220176896 - .long 689983673 - .long 1071886330 - .long 3758096384 - .long 1014906405 - .long 752919289 - .long 1070211588 - .long 0 - .long 3220176896 - .long 2969983475 - .long 1071865944 - .long 2684354560 - .long 3162635443 - .long 3761365757 - .long 1070149758 - .long 0 - .long 3220176896 - .long 4242632757 - .long 1071845367 - .long 536870912 - .long 3161390278 - .long 1129922991 - .long 1070088944 - .long 0 - .long 3220176896 - .long 637203434 - .long 1071824603 - .long 3221225472 - .long 3159443841 - .long 2129093113 - .long 1070029153 - .long 0 - .long 3220176896 - .long 1289556703 - .long 1071803653 - .long 536870912 - .long 3162888820 - .long 2482246777 - .long 1069970395 - .long 0 - .long 3220176896 - .long 2570316633 - .long 1071782521 - .long 1610612736 - .long 3162744753 - .long 1539668340 - .long 1069912679 - .long 0 - .long 3220176896 - .long 967731400 - .long 1071761211 - .long 536870912 - .long 1015752157 - .long 2272832445 - .long 1069856013 - .long 0 - .long 3220176896 - .long 1675549513 - .long 1071739725 - .long 3221225472 - .long 3163025138 - .long 2678847490 - .long 1069800406 - .long 0 - .long 3220176896 - .long 1411074851 - .long 1071718067 - .long 1610612736 - .long 3163484731 - .long 69903290 - .long 1069745867 - .long 0 - .long 3220176896 - .long 1297975695 - .long 1071696240 - .long 3221225472 - .long 3163083735 - .long 3952756490 - .long 1069692402 - .long 0 - .long 3220176896 - .long 2569207790 - .long 1071674247 - .long 1073741824 - .long 3163183617 - .long 1663679671 - .long 1069640022 - .long 0 - .long 3220176896 - .long 2269920951 - .long 1071652092 - .long 3758096384 - .long 3161672245 - .long 1312926554 - .long 1069588733 - .long 0 - .long 3220176896 - .long 3690502842 - .long 1071614884 - .long 3221225472 - .long 3157453855 - .long 3429717432 - .long 1069529566 - .long 0 - .long 3220176896 - .long 1391425750 - .long 1071569945 - .long 3221225472 - .long 3162362103 - .long 1945768569 - .long 1069431400 - .long 0 - .long 3220176896 - .long 939980347 - .long 1071524701 - .long 0 - .long 1012796809 - .long 1539072807 - .long 1069335462 - .long 0 - .long 3220176896 - .long 1535566729 - .long 1071479159 - .long 2147483648 - .long 1014321388 - .long 4133449816 - .long 1069241766 - .long 0 - .long 3220176896 - .long 2570175582 - .long 1071433326 - .long 1073741824 - .long 1012303118 - .long 1612193054 - .long 1069150328 - .long 0 - .long 3220176896 - .long 3623952103 - .long 1071387209 - .long 2684354560 - .long 3161985962 - .long 1578746984 - .long 1069061160 - .long 0 - .long 3220176896 - .long 165764288 - .long 1071340816 - .long 3221225472 - .long 1013298018 - .long 1577996576 - .long 1068974276 - .long 0 - .long 3220176896 - .long 728580042 - .long 1071294152 - .long 1610612736 - .long 3162332944 - .long 1972483635 - .long 1068889689 - .long 0 - .long 3220176896 - .long 1135144330 - .long 1071247225 - .long 536870912 - .long 1013373569 - .long 1638976426 - .long 1068807412 - .long 0 - .long 3220176896 - .long 1673302999 - .long 1071200042 - .long 2147483648 - .long 1013351473 - .long 2255197647 - .long 1068727457 - .long 0 - .long 3220176896 - .long 2796464483 - .long 1071152610 - .long 3221225472 - .long 3160878317 - .long 3996842794 - .long 1068649836 - .long 0 - .long 3220176896 - .long 824036583 - .long 1071104937 - .long 0 - .long 1008313330 - .long 1234824733 - .long 1068574562 - .long 0 - .long 3220176896 - .long 821708191 - .long 1071057029 - .long 3758096384 - .long 3161738009 - .long 4002549419 - .long 1068501644 - .long 0 - .long 3220176896 - .long 3711903686 - .long 1071008893 - .long 1073741824 - .long 1011944747 - .long 2962723252 - .long 1068363247 - .long 0 - .long 3220176896 - .long 1974149085 - .long 1070960538 - .long 3221225472 - .long 3156147648 - .long 1296295961 - .long 1068226907 - .long 0 - .long 3220176896 - .long 1115219818 - .long 1070911970 - .long 0 - .long 1013072242 - .long 997322465 - .long 1068095345 - .long 0 - .long 3220176896 - .long 2484561409 - .long 1070863196 - .long 1073741824 - .long 1014024572 - .long 1261629236 - .long 1067968581 - .long 0 - .long 3220176896 - .long 3269558610 - .long 1070814224 - .long 536870912 - .long 3161705216 - .long 2476548698 - .long 1067846634 - .long 0 - .long 3220176896 - .long 785751814 - .long 1070765062 - .long 2684354560 - .long 3161838221 - .long 1913604284 - .long 1067729523 - .long 0 - .long 3220176896 - .long 1062001470 - .long 1070715716 - .long 0 - .long 3160875220 - .long 2306566604 - .long 1067617265 - .long 0 - .long 3220176896 - .long 1655830135 - .long 1070666194 - .long 0 - .long 1014506690 - .long 3250111450 - .long 1067509877 - .long 0 - .long 3220176896 - .long 238550446 - .long 1070616504 - .long 2684354560 - .long 3154383565 - .long 2377770267 - .long 1067364384 - .long 0 - .long 3220176896 - .long 2065784603 - .long 1070537209 - .long 3758096384 - .long 3160681966 - .long 288924873 - .long 1067169185 - .long 0 - .long 3220176896 - .long 3846521617 - .long 1070437199 - .long 536870912 - .long 1013406610 - .long 1935888103 - .long 1066983818 - .long 0 - .long 3220176896 - .long 1786662755 - .long 1070336898 - .long 2147483648 - .long 3155882307 - .long 2660899430 - .long 1066808312 - .long 0 - .long 3220176896 - .long 632292433 - .long 1070236320 - .long 3758096384 - .long 3160963333 - .long 18115067 - .long 1066642694 - .long 0 - .long 3220176896 - .long 1013556747 - .long 1070135480 - .long 2684354560 - .long 3160567065 - .long 2346447124 - .long 1066486987 - .long 0 - .long 3220176896 - .long 3729833777 - .long 1070034393 - .long 3758096384 - .long 1013044718 - .long 1672287667 - .long 1066280641 - .long 0 - .long 3220176896 - .long 1149976518 - .long 1069933076 - .long 1610612736 - .long 1013264895 - .long 3451754846 - .long 1066009014 - .long 0 - .long 3220176896 - .long 2972270170 - .long 1069831542 - .long 1073741824 - .long 3159524770 - .long 1037482584 - .long 1065757344 - .long 0 - .long 3220176896 - .long 1854824762 - .long 1069729808 - .long 2684354560 - .long 1011953664 - .long 2592747447 - .long 1065525667 - .long 0 - .long 3220176896 - .long 3470456183 - .long 1069627888 - .long 1073741824 - .long 3160744771 - .long 2402293340 - .long 1065274823 - .long 0 - .long 3220176896 - .long 1453945614 - .long 1069504078 - .long 1610612736 - .long 1011492612 - .long 1227670166 - .long 1064891649 - .long 0 - .long 3220176896 - .long 3349070549 - .long 1069299589 - .long 3758096384 - .long 3156538269 - .long 393047345 - .long 1064548654 - .long 0 - .long 3220176896 - .long 3156849708 - .long 1069094822 - .long 3221225472 - .long 3158189848 - .long 1118107366 - .long 1064187139 - .long 0 - .long 3220176896 - .long 177906713 - .long 1068889808 - .long 3221225472 - .long 3159310370 - .long 4269262315 - .long 1063662162 - .long 0 - .long 3220176896 - .long 2462980598 - .long 1068684576 - .long 2684354560 - .long 3158941832 - .long 3810305407 - .long 1063179572 - .long 0 - .long 3220176896 - .long 2046304480 - .long 1068459374 - .long 3758096384 - .long 3156402667 - .long 220529721 - .long 1062452281 - .long 0 - .long 3220176896 - .long 4044216340 - .long 1068048229 - .long 0 - .long 3156808381 - .long 69373323 - .long 1061565504 - .long 0 - .long 3220176896 - .long 1972655565 - .long 1067636837 - .long 1073741824 - .long 1009157878 - .long 3650591271 - .long 1060355323 - .long 0 - .long 3220176896 - .long 4154680958 - .long 1067000149 - .long 0 - .long 3153796451 - .long 2376373521 - .long 1058258220 - .long 0 - .long 3220176896 - .long 4242458500 - .long 1065951697 - .long 2684354560 - .long 1009354638 - .long 0 - .long 0 - .long 0 - .long 3220176896 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2376373521 - .long 1058258220 - .long 0 - .long 3220176896 - .long 4242458500 - .long 3213435345 - .long 2684354560 - .long 3156838286 - .long 3650591271 - .long 1060355323 - .long 0 - .long 3220176896 - .long 4154680958 - .long 3214483797 - .long 0 - .long 1006312803 - .long 69373323 - .long 1061565504 - .long 0 - .long 3220176896 - .long 1972655565 - .long 3215120485 - .long 1073741824 - .long 3156641526 - .long 220529721 - .long 1062452281 - .long 0 - .long 3220176896 - .long 4044216340 - .long 3215531877 - .long 0 - .long 1009324733 - .long 3810305407 - .long 1063179572 - .long 0 - .long 3220176896 - .long 2046304480 - .long 3215943022 - .long 3758096384 - .long 1008919019 - .long 4269262315 - .long 1063662162 - .long 0 - .long 3220176896 - .long 2462980598 - .long 3216168224 - .long 2684354560 - .long 1011458184 - .long 1118107366 - .long 1064187139 - .long 0 - .long 3220176896 - .long 177906713 - .long 3216373456 - .long 3221225472 - .long 1011826722 - .long 393047345 - .long 1064548654 - .long 0 - .long 3220176896 - .long 3156849708 - .long 3216578470 - .long 3221225472 - .long 1010706200 - .long 1227670166 - .long 1064891649 - .long 0 - .long 3220176896 - .long 3349070549 - .long 3216783237 - .long 3758096384 - .long 1009054621 - .long 2402293340 - .long 1065274823 - .long 0 - .long 3220176896 - .long 1453945614 - .long 3216987726 - .long 1610612736 - .long 3158976260 - .long 2592747447 - .long 1065525667 - .long 0 - .long 3220176896 - .long 3470456183 - .long 3217111536 - .long 1073741824 - .long 1013261123 - .long 1037482584 - .long 1065757344 - .long 0 - .long 3220176896 - .long 1854824762 - .long 3217213456 - .long 2684354560 - .long 3159437312 - .long 3451754846 - .long 1066009014 - .long 0 - .long 3220176896 - .long 2972270170 - .long 3217315190 - .long 1073741824 - .long 1012041122 - .long 1672287667 - .long 1066280641 - .long 0 - .long 3220176896 - .long 1149976518 - .long 3217416724 - .long 1610612736 - .long 3160748543 - .long 2346447124 - .long 1066486987 - .long 0 - .long 3220176896 - .long 3729833777 - .long 3217518041 - .long 3758096384 - .long 3160528366 - .long 18115067 - .long 1066642694 - .long 0 - .long 3220176896 - .long 1013556747 - .long 3217619128 - .long 2684354560 - .long 1013083417 - .long 2660899430 - .long 1066808312 - .long 0 - .long 3220176896 - .long 632292433 - .long 3217719968 - .long 3758096384 - .long 1013479685 - .long 1935888103 - .long 1066983818 - .long 0 - .long 3220176896 - .long 1786662755 - .long 3217820546 - .long 2147483648 - .long 1008398659 - .long 288924873 - .long 1067169185 - .long 0 - .long 3220176896 - .long 3846521617 - .long 3217920847 - .long 536870912 - .long 3160890258 - .long 2377770267 - .long 1067364384 - .long 0 - .long 3220176896 - .long 2065784603 - .long 3218020857 - .long 3758096384 - .long 1013198318 - .long 3250111450 - .long 1067509877 - .long 0 - .long 3220176896 - .long 238550446 - .long 3218100152 - .long 2684354560 - .long 1006899917 - .long 2306566604 - .long 1067617265 - .long 0 - .long 3220176896 - .long 1655830135 - .long 3218149842 - .long 0 - .long 3161990338 - .long 1913604284 - .long 1067729523 - .long 0 - .long 3220176896 - .long 1062001470 - .long 3218199364 - .long 0 - .long 1013391572 - .long 2476548698 - .long 1067846634 - .long 0 - .long 3220176896 - .long 785751814 - .long 3218248710 - .long 2684354560 - .long 1014354573 - .long 1261629236 - .long 1067968581 - .long 0 - .long 3220176896 - .long 3269558610 - .long 3218297872 - .long 536870912 - .long 1014221568 - .long 997322465 - .long 1068095345 - .long 0 - .long 3220176896 - .long 2484561409 - .long 3218346844 - .long 1073741824 - .long 3161508220 - .long 1296295961 - .long 1068226907 - .long 0 - .long 3220176896 - .long 1115219818 - .long 3218395618 - .long 0 - .long 3160555890 - .long 2962723252 - .long 1068363247 - .long 0 - .long 3220176896 - .long 1974149085 - .long 3218444186 - .long 3221225472 - .long 1008664000 - .long 4002549419 - .long 1068501644 - .long 0 - .long 3220176896 - .long 3711903686 - .long 3218492541 - .long 1073741824 - .long 3159428395 - .long 1234824733 - .long 1068574562 - .long 0 - .long 3220176896 - .long 821708191 - .long 3218540677 - .long 3758096384 - .long 1014254361 - .long 3996842794 - .long 1068649836 - .long 0 - .long 3220176896 - .long 824036583 - .long 3218588585 - .long 0 - .long 3155796978 - .long 2255197647 - .long 1068727457 - .long 0 - .long 3220176896 - .long 2796464483 - .long 3218636258 - .long 3221225472 - .long 1013394669 - .long 1638976426 - .long 1068807412 - .long 0 - .long 3220176896 - .long 1673302999 - .long 3218683690 - .long 2147483648 - .long 3160835121 - .long 1972483635 - .long 1068889689 - .long 0 - .long 3220176896 - .long 1135144330 - .long 3218730873 - .long 536870912 - .long 3160857217 - .long 1577996576 - .long 1068974276 - .long 0 - .long 3220176896 - .long 728580042 - .long 3218777800 - .long 1610612736 - .long 1014849296 - .long 1578746984 - .long 1069061160 - .long 0 - .long 3220176896 - .long 165764288 - .long 3218824464 - .long 3221225472 - .long 3160781666 - .long 1612193054 - .long 1069150328 - .long 0 - .long 3220176896 - .long 3623952103 - .long 3218870857 - .long 2684354560 - .long 1014502314 - .long 4133449816 - .long 1069241766 - .long 0 - .long 3220176896 - .long 2570175582 - .long 3218916974 - .long 1073741824 - .long 3159786766 - .long 1539072807 - .long 1069335462 - .long 0 - .long 3220176896 - .long 1535566729 - .long 3218962807 - .long 2147483648 - .long 3161805036 - .long 1945768569 - .long 1069431400 - .long 0 - .long 3220176896 - .long 939980347 - .long 3219008349 - .long 0 - .long 3160280457 - .long 3429717432 - .long 1069529566 - .long 0 - .long 3220176896 - .long 1391425750 - .long 3219053593 - .long 3221225472 - .long 1014878455 - .long 1312926554 - .long 1069588733 - .long 0 - .long 3220176896 - .long 3690502842 - .long 3219098532 - .long 3221225472 - .long 1009970207 - .long 1663679671 - .long 1069640022 - .long 0 - .long 3220176896 - .long 2269920951 - .long 3219135740 - .long 3758096384 - .long 1014188597 - .long 3952756490 - .long 1069692402 - .long 0 - .long 3220176896 - .long 2569207790 - .long 3219157895 - .long 1073741824 - .long 1015699969 - .long 69903290 - .long 1069745867 - .long 0 - .long 3220176896 - .long 1297975695 - .long 3219179888 - .long 3221225472 - .long 1015600087 - .long 2678847490 - .long 1069800406 - .long 0 - .long 3220176896 - .long 1411074851 - .long 3219201715 - .long 1610612736 - .long 1016001083 - .long 2272832445 - .long 1069856013 - .long 0 - .long 3220176896 - .long 1675549513 - .long 3219223373 - .long 3221225472 - .long 1015541490 - .long 1539668340 - .long 1069912679 - .long 0 - .long 3220176896 - .long 967731400 - .long 3219244859 - .long 536870912 - .long 3163235805 - .long 2482246777 - .long 1069970395 - .long 0 - .long 3220176896 - .long 2570316633 - .long 3219266169 - .long 1610612736 - .long 1015261105 - .long 2129093113 - .long 1070029153 - .long 0 - .long 3220176896 - .long 1289556703 - .long 3219287301 - .long 536870912 - .long 1015405172 - .long 1129922991 - .long 1070088944 - .long 0 - .long 3220176896 - .long 637203434 - .long 3219308251 - .long 3221225472 - .long 1011960193 - .long 3761365757 - .long 1070149758 - .long 0 - .long 3220176896 - .long 4242632757 - .long 3219329015 - .long 536870912 - .long 1013906630 - .long 752919289 - .long 1070211588 - .long 0 - .long 3220176896 - .long 2969983475 - .long 3219349592 - .long 2684354560 - .long 1015151795 - .long 3652612115 - .long 1070274422 - .long 0 - .long 3220176896 - .long 689983673 - .long 3219369978 - .long 3758096384 - .long 3162390053 - .long 1883353036 - .long 1070338253 - .long 0 - .long 3220176896 - .long 1397053140 - .long 3219390169 - .long 1610612736 - .long 3162728726 - .long 1403757309 - .long 1070403070 - .long 0 - .long 3220176896 - .long 621354454 - .long 3219410163 - .long 536870912 - .long 3160934250 - .long 3239527685 - .long 1070468863 - .long 0 - .long 3220176896 - .long 2610628921 - .long 3219429956 - .long 1610612736 - .long 1015185121 - .long 3489768009 - .long 1070535623 - .long 0 - .long 3220176896 - .long 3152274921 - .long 3219449546 - .long 3758096384 - .long 3160654483 - .long 2371640770 - .long 3218072499 - .long 0 - .long 3219128320 - .long 2460177814 - .long 3219468930 - .long 2147483648 - .long 1014633195 - .long 2309668539 - .long 3218003836 - .long 0 - .long 3219128320 - .long 881650848 - .long 3219488105 - .long 2147483648 - .long 1015502624 - .long 2081278341 - .long 3217934237 - .long 0 - .long 3219128320 - .long 3194290572 - .long 3219507067 - .long 2147483648 - .long 3162532330 - .long 3753901657 - .long 3217863712 - .long 0 - .long 3219128320 - .long 1427975391 - .long 3219525815 - .long 1073741824 - .long 1014124979 - .long 1403691706 - .long 3217792273 - .long 0 - .long 3219128320 - .long 636516413 - .long 3219544345 - .long 3758096384 - .long 3163307364 - .long 2583490354 - .long 3217719929 - .long 0 - .long 3219128320 - .long 1719614413 - .long 3219562654 - .long 0 - .long 1015799092 - .long 2546065654 - .long 3217646692 - .long 0 - .long 3219128320 - .long 1424664751 - .long 3219580740 - .long 3221225472 - .long 1015921667 - .long 1416934267 - .long 3217572573 - .long 0 - .long 3219128320 - .long 938475414 - .long 3219598600 - .long 0 - .long 3162559727 - .long 4187227697 - .long 3217497582 - .long 0 - .long 3219128320 - .long 1594061409 - .long 3219616231 - .long 2147483648 - .long 3161837518 - .long 3526603391 - .long 3217421732 - .long 0 - .long 3219128320 - .long 577417135 - .long 3219633631 - .long 2684354560 - .long 1014035767 - .long 1250776663 - .long 3217345034 - .long 0 - .long 3219128320 - .long 3814135665 - .long 3219650796 - .long 3221225472 - .long 1015662808 - .long 4019165092 - .long 3217267498 - .long 0 - .long 3219128320 - .long 201299822 - .long 3219667726 - .long 3758096384 - .long 1014428704 - .long 1852581091 - .long 3217189138 - .long 0 - .long 3219128320 - .long 263859903 - .long 3219684416 - .long 0 - .long 1015208636 - .long 2485417816 - .long 3217109964 - .long 0 - .long 3219128320 - .long 1796544321 - .long 3219700864 - .long 536870912 - .long 1015203297 - .long 2586490530 - .long 3217028810 - .long 0 - .long 3219128320 - .long 2750387213 - .long 3219717068 - .long 2147483648 - .long 1013374889 - .long 1224902090 - .long 3216867281 - .long 0 - .long 3219128320 - .long 1234330619 - .long 3219733026 - .long 2684354560 - .long 3162756121 - .long 2285031318 - .long 3216704197 - .long 0 - .long 3219128320 - .long 4106737474 - .long 3219748734 - .long 2684354560 - .long 1015108729 - .long 3876290983 - .long 3216539583 - .long 0 - .long 3219128320 - .long 1207142209 - .long 3219764192 - .long 2147483648 - .long 1015221986 - .long 802660176 - .long 3216373465 - .long 0 - .long 3219128320 - .long 4012486548 - .long 3219779395 - .long 2684354560 - .long 3162185212 - .long 1726519029 - .long 3216205866 - .long 0 - .long 3219128320 - .long 2688952194 - .long 3219794343 - .long 0 - .long 1014048955 - .long 3382663878 - .long 3216036812 - .long 0 - .long 3219128320 - .long 453180130 - .long 3219809033 - .long 1073741824 - .long 1014927633 - .long 2598800519 - .long 3215750067 - .long 0 - .long 3219128320 - .long 688824739 - .long 3219823462 - .long 3758096384 - .long 3157915184 - .long 1038988426 - .long 3215406294 - .long 0 - .long 3219128320 - .long 2653017361 - .long 3219837628 - .long 0 - .long 1015316414 - .long 1102361128 - .long 3215059765 - .long 0 - .long 3219128320 - .long 1477771776 - .long 3219851530 - .long 536870912 - .long 1015621338 - .long 2880516564 - .long 3214487049 - .long 0 - .long 3219128320 - .long 1056266002 - .long 3219865165 - .long 2684354560 - .long 1015985848 - .long 1220541286 - .long 3213681126 - .long 0 - .long 3219128320 - .long 1159294526 - .long 3219878531 - .long 536870912 - .long 1015793311 - .long 1279178457 - .long 3211590791 - .long 0 - .long 3219128320 - .long 1731563730 - .long 3219891626 - .long 536870912 - .long 3163023950 - .long 31019393 - .long 1065162441 - .long 0 - .long 3219128320 - .long 2892993834 - .long 3219904448 - .long 536870912 - .long 1015555495 - .long 3506991783 - .long 1066548842 - .long 0 - .long 3219128320 - .long 645027145 - .long 3219916996 - .long 3221225472 - .long 3160085887 - .long 2140183630 - .long 1067272748 - .long 0 - .long 3219128320 - .long 4051746225 - .long 3219929266 - .long 1610612736 - .long 1014423729 - .long 600368053 - .long 1067725893 - .long 0 - .long 3219128320 - .long 881357723 - .long 3219941259 - .long 3221225472 - .long 3161294538 - .long 913431823 - .long 1068092555 - .long 0 - .long 3219128320 - .long 557060597 - .long 3219952971 - .long 0 - .long 1012071286 - .long 1073154251 - .long 1068461489 - .long 0 - .long 3219128320 - .long 4093443164 - .long 3219964400 - .long 536870912 - .long 3162396513 - .long 3631910143 - .long 1068665791 - .long 0 - .long 3219128320 - .long 4097623923 - .long 3219975546 - .long 2684354560 - .long 1012824939 - .long 1380647130 - .long 1068852447 - .long 0 - .long 3219128320 - .long 1950234076 - .long 3219986407 - .long 536870912 - .long 1011941850 - .long 4049357271 - .long 1069040154 - .long 0 - .long 3219128320 - .long 3511535930 - .long 3219996980 - .long 2147483648 - .long 1015344978 - .long 1896722595 - .long 1069228886 - .long 0 - .long 3219128320 - .long 1942611595 - .long 3220007265 - .long 3221225472 - .long 1014926433 - .long 1699043957 - .long 1069418613 - .long 0 - .long 3219128320 - .long 3476196678 - .long 3220017259 - .long 0 - .long 3161741286 - .long 3296146332 - .long 3216969380 - .long 0 - .long 3218079744 - .long 1647878299 - .long 3220026962 - .long 3758096384 - .long 1014685415 - .long 3286832763 - .long 3216777748 - .long 0 - .long 3218079744 - .long 3066872380 - .long 3220036371 - .long 3221225472 - .long 3163044919 - .long 1962712856 - .long 3216585207 - .long 0 - .long 3218079744 - .long 1647164971 - .long 3220045486 - .long 2147483648 - .long 1015354602 - .long 3601629044 - .long 3216391785 - .long 0 - .long 3218079744 - .long 83265253 - .long 3220054305 - .long 1610612736 - .long 1015026887 - .long 165911977 - .long 3216197513 - .long 0 - .long 3218079744 - .long 1261158782 - .long 3220062826 - .long 2147483648 - .long 3163195192 - .long 1348311045 - .long 3216002418 - .long 0 - .long 3218079744 - .long 3964199186 - .long 3220071048 - .long 3758096384 - .long 1013017430 - .long 386665102 - .long 3215630470 - .long 0 - .long 3218079744 - .long 2873938189 - .long 3220078971 - .long 1610612736 - .long 1014827774 - .long 1991047213 - .long 3215237169 - .long 0 - .long 3218079744 - .long 1455828442 - .long 3220086593 - .long 3758096384 - .long 3162988721 - .long 4107121629 - .long 3214750787 - .long 0 - .long 3218079744 - .long 3370060660 - .long 3220093912 - .long 1610612736 - .long 3162270860 - .long 723478390 - .long 3213958438 - .long 0 - .long 3218079744 - .long 3882371427 - .long 3220100928 - .long 2147483648 - .long 3162407623 - .long 2382326656 - .long 3212045827 - .long 0 - .long 3218079744 - .long 2749658050 - .long 3220107640 - .long 1610612736 - .long 3162910986 - .long 2614369450 - .long 1065140432 - .long 0 - .long 3218079744 - .long 4220661975 - .long 3220114046 - .long 3221225472 - .long 3161795706 - .long 3587565429 - .long 1066624384 - .long 0 - .long 3218079744 - .long 4151720666 - .long 3220120146 - .long 0 - .long 1015155896 - .long 2886567144 - .long 1067426796 - .long 0 - .long 3218079744 - .long 2892293513 - .long 3220125939 - .long 2684354560 - .long 1014856623 - .long 1765797566 - .long 1067840895 - .long 0 - .long 3218079744 - .long 990588717 - .long 3220131424 - .long 3758096384 - .long 1014558209 - .long 240740309 - .long 1068244255 - .long 0 - .long 3218079744 - .long 3489094832 - .long 3220136599 - .long 536870912 - .long 3161809431 - .long 2034433221 - .long 3215832935 - .long 0 - .long 3217031168 - .long 2745245815 - .long 3220141465 - .long 3221225472 - .long 3163049777 - .long 304938777 - .long 3215427665 - .long 0 - .long 3217031168 - .long 4201728937 - .long 3220146020 - .long 1610612736 - .long 3162157654 - .long 3299146087 - .long 3215021530 - .long 0 - .long 3217031168 - .long 617154971 - .long 3220150265 - .long 3758096384 - .long 1015950048 - .long 1953696209 - .long 3214295171 - .long 0 - .long 3217031168 - .long 2131272983 - .long 3220154197 - .long 3221225472 - .long 1015521448 - .long 3987691371 - .long 3213074188 - .long 0 - .long 3217031168 - .long 1905645377 - .long 3220157817 - .long 1610612736 - .long 3161571244 - .long 718380601 - .long 1063597621 - .long 0 - .long 3217031168 - .long 1893834707 - .long 3220161124 - .long 1610612736 - .long 3162631302 - .long 3272206680 - .long 1066288081 - .long 0 - .long 3217031168 - .long 4251821691 - .long 3220164117 - .long 2147483648 - .long 1014357359 - .long 257503056 - .long 1067164005 - .long 0 - .long 3217031168 - .long 2748392742 - .long 3220166797 - .long 536870912 - .long 1015578102 - .long 711626851 - .long 3214400320 - .long 0 - .long 3215982592 - .long 4240268041 - .long 3220169162 - .long 536870912 - .long 3161072611 - .long 2523975598 - .long 3213273348 - .long 0 - .long 3215982592 - .long 2902558778 - .long 3220171213 - .long 3221225472 - .long 3160744428 - .long 3237733378 - .long 1062425136 - .long 0 - .long 3215982592 - .long 1703834029 - .long 3220172949 - .long 3758096384 - .long 3162512012 - .long 1003003824 - .long 1066107496 - .long 0 - .long 3215982592 - .long 3816385918 - .long 3220174369 - .long 536870912 - .long 1013733308 - .long 2896342633 - .long 3212231467 - .long 0 - .long 3214934016 - .long 4026464093 - .long 3220175474 - .long 3221225472 - .long 1015592141 - .long 561145352 - .long 1065056936 - .long 0 - .long 3214934016 - .long 1619315981 - .long 3220176264 - .long 1073741824 - .long 1015100749 - .long 210035182 - .long 1064007864 - .long 0 - .long 3213885440 - .long 379294427 - .long 3220176738 - .long 3221225472 - .long 3162889635 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3220176896 - .long 0 - .long 0 - .long 210035182 - .long 3211491512 - .long 0 - .long 1066401792 - .long 379294427 - .long 3220176738 - .long 3221225472 - .long 3162889635 - .long 561145352 - .long 3212540584 - .long 0 - .long 1067450368 - .long 1619315981 - .long 3220176264 - .long 1073741824 - .long 1015100749 - .long 2896342633 - .long 1064747819 - .long 0 - .long 1067450368 - .long 4026464093 - .long 3220175474 - .long 3221225472 - .long 1015592141 - .long 1003003824 - .long 3213591144 - .long 0 - .long 1068498944 - .long 3816385918 - .long 3220174369 - .long 536870912 - .long 1013733308 - .long 3237733378 - .long 3209908784 - .long 0 - .long 1068498944 - .long 1703834029 - .long 3220172949 - .long 3758096384 - .long 3162512012 - .long 2523975598 - .long 1065789700 - .long 0 - .long 1068498944 - .long 2902558778 - .long 3220171213 - .long 3221225472 - .long 3160744428 - .long 711626851 - .long 1066916672 - .long 0 - .long 1068498944 - .long 4240268041 - .long 3220169162 - .long 536870912 - .long 3161072611 - .long 257503056 - .long 3214647653 - .long 0 - .long 1069547520 - .long 2748392742 - .long 3220166797 - .long 536870912 - .long 1015578102 - .long 3272206680 - .long 3213771729 - .long 0 - .long 1069547520 - .long 4251821691 - .long 3220164117 - .long 2147483648 - .long 1014357359 - .long 718380601 - .long 3211081269 - .long 0 - .long 1069547520 - .long 1893834707 - .long 3220161124 - .long 1610612736 - .long 3162631302 - .long 3987691371 - .long 1065590540 - .long 0 - .long 1069547520 - .long 1905645377 - .long 3220157817 - .long 1610612736 - .long 3161571244 - .long 1953696209 - .long 1066811523 - .long 0 - .long 1069547520 - .long 2131272983 - .long 3220154197 - .long 3221225472 - .long 1015521448 - .long 3299146087 - .long 1067537882 - .long 0 - .long 1069547520 - .long 617154971 - .long 3220150265 - .long 3758096384 - .long 1015950048 - .long 304938777 - .long 1067944017 - .long 0 - .long 1069547520 - .long 4201728937 - .long 3220146020 - .long 1610612736 - .long 3162157654 - .long 2034433221 - .long 1068349287 - .long 0 - .long 1069547520 - .long 2745245815 - .long 3220141465 - .long 3221225472 - .long 3163049777 - .long 240740309 - .long 3215727903 - .long 0 - .long 1070596096 - .long 3489094832 - .long 3220136599 - .long 536870912 - .long 3161809431 - .long 1765797566 - .long 3215324543 - .long 0 - .long 1070596096 - .long 990588717 - .long 3220131424 - .long 3758096384 - .long 1014558209 - .long 2886567144 - .long 3214910444 - .long 0 - .long 1070596096 - .long 2892293513 - .long 3220125939 - .long 2684354560 - .long 1014856623 - .long 3587565429 - .long 3214108032 - .long 0 - .long 1070596096 - .long 4151720666 - .long 3220120146 - .long 0 - .long 1015155896 - .long 2614369450 - .long 3212624080 - .long 0 - .long 1070596096 - .long 4220661975 - .long 3220114046 - .long 3221225472 - .long 3161795706 - .long 2382326656 - .long 1064562179 - .long 0 - .long 1070596096 - .long 2749658050 - .long 3220107640 - .long 1610612736 - .long 3162910986 - .long 723478390 - .long 1066474790 - .long 0 - .long 1070596096 - .long 3882371427 - .long 3220100928 - .long 2147483648 - .long 3162407623 - .long 4107121629 - .long 1067267139 - .long 0 - .long 1070596096 - .long 3370060660 - .long 3220093912 - .long 1610612736 - .long 3162270860 - .long 1991047213 - .long 1067753521 - .long 0 - .long 1070596096 - .long 1455828442 - .long 3220086593 - .long 3758096384 - .long 3162988721 - .long 386665102 - .long 1068146822 - .long 0 - .long 1070596096 - .long 2873938189 - .long 3220078971 - .long 1610612736 - .long 1014827774 - .long 1348311045 - .long 1068518770 - .long 0 - .long 1070596096 - .long 3964199186 - .long 3220071048 - .long 3758096384 - .long 1013017430 - .long 165911977 - .long 1068713865 - .long 0 - .long 1070596096 - .long 1261158782 - .long 3220062826 - .long 2147483648 - .long 3163195192 - .long 3601629044 - .long 1068908137 - .long 0 - .long 1070596096 - .long 83265253 - .long 3220054305 - .long 1610612736 - .long 1015026887 - .long 1962712856 - .long 1069101559 - .long 0 - .long 1070596096 - .long 1647164971 - .long 3220045486 - .long 2147483648 - .long 1015354602 - .long 3286832763 - .long 1069294100 - .long 0 - .long 1070596096 - .long 3066872380 - .long 3220036371 - .long 3221225472 - .long 3163044919 - .long 3296146332 - .long 1069485732 - .long 0 - .long 1070596096 - .long 1647878299 - .long 3220026962 - .long 3758096384 - .long 1014685415 - .long 1699043957 - .long 3216902261 - .long 0 - .long 1071644672 - .long 3476196678 - .long 3220017259 - .long 0 - .long 3161741286 - .long 1896722595 - .long 3216712534 - .long 0 - .long 1071644672 - .long 1942611595 - .long 3220007265 - .long 3221225472 - .long 1014926433 - .long 4049357271 - .long 3216523802 - .long 0 - .long 1071644672 - .long 3511535930 - .long 3219996980 - .long 2147483648 - .long 1015344978 - .long 1380647130 - .long 3216336095 - .long 0 - .long 1071644672 - .long 1950234076 - .long 3219986407 - .long 536870912 - .long 1011941850 - .long 3631910143 - .long 3216149439 - .long 0 - .long 1071644672 - .long 4097623923 - .long 3219975546 - .long 2684354560 - .long 1012824939 - .long 1073154251 - .long 3215945137 - .long 0 - .long 1071644672 - .long 4093443164 - .long 3219964400 - .long 536870912 - .long 3162396513 - .long 913431823 - .long 3215576203 - .long 0 - .long 1071644672 - .long 557060597 - .long 3219952971 - .long 0 - .long 1012071286 - .long 600368053 - .long 3215209541 - .long 0 - .long 1071644672 - .long 881357723 - .long 3219941259 - .long 3221225472 - .long 3161294538 - .long 2140183630 - .long 3214756396 - .long 0 - .long 1071644672 - .long 4051746225 - .long 3219929266 - .long 1610612736 - .long 1014423729 - .long 3506991783 - .long 3214032490 - .long 0 - .long 1071644672 - .long 645027145 - .long 3219916996 - .long 3221225472 - .long 3160085887 - .long 31019393 - .long 3212646089 - .long 0 - .long 1071644672 - .long 2892993834 - .long 3219904448 - .long 536870912 - .long 1015555495 - .long 1279178457 - .long 1064107143 - .long 0 - .long 1071644672 - .long 1731563730 - .long 3219891626 - .long 536870912 - .long 3163023950 - .long 1220541286 - .long 1066197478 - .long 0 - .long 1071644672 - .long 1159294526 - .long 3219878531 - .long 536870912 - .long 1015793311 - .long 2880516564 - .long 1067003401 - .long 0 - .long 1071644672 - .long 1056266002 - .long 3219865165 - .long 2684354560 - .long 1015985848 - .long 1102361128 - .long 1067576117 - .long 0 - .long 1071644672 - .long 1477771776 - .long 3219851530 - .long 536870912 - .long 1015621338 - .long 1038988426 - .long 1067922646 - .long 0 - .long 1071644672 - .long 2653017361 - .long 3219837628 - .long 0 - .long 1015316414 - .long 2598800519 - .long 1068266419 - .long 0 - .long 1071644672 - .long 688824739 - .long 3219823462 - .long 3758096384 - .long 3157915184 - .long 3382663878 - .long 1068553164 - .long 0 - .long 1071644672 - .long 453180130 - .long 3219809033 - .long 1073741824 - .long 1014927633 - .long 1726519029 - .long 1068722218 - .long 0 - .long 1071644672 - .long 2688952194 - .long 3219794343 - .long 0 - .long 1014048955 - .long 802660176 - .long 1068889817 - .long 0 - .long 1071644672 - .long 4012486548 - .long 3219779395 - .long 2684354560 - .long 3162185212 - .long 3876290983 - .long 1069055935 - .long 0 - .long 1071644672 - .long 1207142209 - .long 3219764192 - .long 2147483648 - .long 1015221986 - .long 2285031318 - .long 1069220549 - .long 0 - .long 1071644672 - .long 4106737474 - .long 3219748734 - .long 2684354560 - .long 1015108729 - .long 1224902090 - .long 1069383633 - .long 0 - .long 1071644672 - .long 1234330619 - .long 3219733026 - .long 2684354560 - .long 3162756121 - .long 2586490530 - .long 1069545162 - .long 0 - .long 1071644672 - .long 2750387213 - .long 3219717068 - .long 2147483648 - .long 1013374889 - .long 2485417816 - .long 1069626316 - .long 0 - .long 1071644672 - .long 1796544321 - .long 3219700864 - .long 536870912 - .long 1015203297 - .long 1852581091 - .long 1069705490 - .long 0 - .long 1071644672 - .long 263859903 - .long 3219684416 - .long 0 - .long 1015208636 - .long 4019165092 - .long 1069783850 - .long 0 - .long 1071644672 - .long 201299822 - .long 3219667726 - .long 3758096384 - .long 1014428704 - .long 1250776663 - .long 1069861386 - .long 0 - .long 1071644672 - .long 3814135665 - .long 3219650796 - .long 3221225472 - .long 1015662808 - .long 3526603391 - .long 1069938084 - .long 0 - .long 1071644672 - .long 577417135 - .long 3219633631 - .long 2684354560 - .long 1014035767 - .long 4187227697 - .long 1070013934 - .long 0 - .long 1071644672 - .long 1594061409 - .long 3219616231 - .long 2147483648 - .long 3161837518 - .long 1416934267 - .long 1070088925 - .long 0 - .long 1071644672 - .long 938475414 - .long 3219598600 - .long 0 - .long 3162559727 - .long 2546065654 - .long 1070163044 - .long 0 - .long 1071644672 - .long 1424664751 - .long 3219580740 - .long 3221225472 - .long 1015921667 - .long 2583490354 - .long 1070236281 - .long 0 - .long 1071644672 - .long 1719614413 - .long 3219562654 - .long 0 - .long 1015799092 - .long 1403691706 - .long 1070308625 - .long 0 - .long 1071644672 - .long 636516413 - .long 3219544345 - .long 3758096384 - .long 3163307364 - .long 3753901657 - .long 1070380064 - .long 0 - .long 1071644672 - .long 1427975391 - .long 3219525815 - .long 1073741824 - .long 1014124979 - .long 2081278341 - .long 1070450589 - .long 0 - .long 1071644672 - .long 3194290572 - .long 3219507067 - .long 2147483648 - .long 3162532330 - .long 2309668539 - .long 1070520188 - .long 0 - .long 1071644672 - .long 881650848 - .long 3219488105 - .long 2147483648 - .long 1015502624 - .long 2371640770 - .long 1070588851 - .long 0 - .long 1071644672 - .long 2460177814 - .long 3219468930 - .long 2147483648 - .long 1014633195 - .long 3489768009 - .long 3218019271 - .long 0 - .long 1072693248 - .long 3152274921 - .long 3219449546 - .long 3758096384 - .long 3160654483 - .long 3239527685 - .long 3217952511 - .long 0 - .long 1072693248 - .long 2610628921 - .long 3219429956 - .long 1610612736 - .long 1015185121 - .long 1403757309 - .long 3217886718 - .long 0 - .long 1072693248 - .long 621354454 - .long 3219410163 - .long 536870912 - .long 3160934250 - .long 1883353036 - .long 3217821901 - .long 0 - .long 1072693248 - .long 1397053140 - .long 3219390169 - .long 1610612736 - .long 3162728726 - .long 3652612115 - .long 3217758070 - .long 0 - .long 1072693248 - .long 689983673 - .long 3219369978 - .long 3758096384 - .long 3162390053 - .long 752919289 - .long 3217695236 - .long 0 - .long 1072693248 - .long 2969983475 - .long 3219349592 - .long 2684354560 - .long 1015151795 - .long 3761365757 - .long 3217633406 - .long 0 - .long 1072693248 - .long 4242632757 - .long 3219329015 - .long 536870912 - .long 1013906630 - .long 1129922991 - .long 3217572592 - .long 0 - .long 1072693248 - .long 637203434 - .long 3219308251 - .long 3221225472 - .long 1011960193 - .long 2129093113 - .long 3217512801 - .long 0 - .long 1072693248 - .long 1289556703 - .long 3219287301 - .long 536870912 - .long 1015405172 - .long 2482246777 - .long 3217454043 - .long 0 - .long 1072693248 - .long 2570316633 - .long 3219266169 - .long 1610612736 - .long 1015261105 - .long 1539668340 - .long 3217396327 - .long 0 - .long 1072693248 - .long 967731400 - .long 3219244859 - .long 536870912 - .long 3163235805 - .long 2272832445 - .long 3217339661 - .long 0 - .long 1072693248 - .long 1675549513 - .long 3219223373 - .long 3221225472 - .long 1015541490 - .long 2678847490 - .long 3217284054 - .long 0 - .long 1072693248 - .long 1411074851 - .long 3219201715 - .long 1610612736 - .long 1016001083 - .long 69903290 - .long 3217229515 - .long 0 - .long 1072693248 - .long 1297975695 - .long 3219179888 - .long 3221225472 - .long 1015600087 - .long 3952756490 - .long 3217176050 - .long 0 - .long 1072693248 - .long 2569207790 - .long 3219157895 - .long 1073741824 - .long 1015699969 - .long 1663679671 - .long 3217123670 - .long 0 - .long 1072693248 - .long 2269920951 - .long 3219135740 - .long 3758096384 - .long 1014188597 - .long 1312926554 - .long 3217072381 - .long 0 - .long 1072693248 - .long 3690502842 - .long 3219098532 - .long 3221225472 - .long 1009970207 - .long 3429717432 - .long 3217013214 - .long 0 - .long 1072693248 - .long 1391425750 - .long 3219053593 - .long 3221225472 - .long 1014878455 - .long 1945768569 - .long 3216915048 - .long 0 - .long 1072693248 - .long 939980347 - .long 3219008349 - .long 0 - .long 3160280457 - .long 1539072807 - .long 3216819110 - .long 0 - .long 1072693248 - .long 1535566729 - .long 3218962807 - .long 2147483648 - .long 3161805036 - .long 4133449816 - .long 3216725414 - .long 0 - .long 1072693248 - .long 2570175582 - .long 3218916974 - .long 1073741824 - .long 3159786766 - .long 1612193054 - .long 3216633976 - .long 0 - .long 1072693248 - .long 3623952103 - .long 3218870857 - .long 2684354560 - .long 1014502314 - .long 1578746984 - .long 3216544808 - .long 0 - .long 1072693248 - .long 165764288 - .long 3218824464 - .long 3221225472 - .long 3160781666 - .long 1577996576 - .long 3216457924 - .long 0 - .long 1072693248 - .long 728580042 - .long 3218777800 - .long 1610612736 - .long 1014849296 - .long 1972483635 - .long 3216373337 - .long 0 - .long 1072693248 - .long 1135144330 - .long 3218730873 - .long 536870912 - .long 3160857217 - .long 1638976426 - .long 3216291060 - .long 0 - .long 1072693248 - .long 1673302999 - .long 3218683690 - .long 2147483648 - .long 3160835121 - .long 2255197647 - .long 3216211105 - .long 0 - .long 1072693248 - .long 2796464483 - .long 3218636258 - .long 3221225472 - .long 1013394669 - .long 3996842794 - .long 3216133484 - .long 0 - .long 1072693248 - .long 824036583 - .long 3218588585 - .long 0 - .long 3155796978 - .long 1234824733 - .long 3216058210 - .long 0 - .long 1072693248 - .long 821708191 - .long 3218540677 - .long 3758096384 - .long 1014254361 - .long 4002549419 - .long 3215985292 - .long 0 - .long 1072693248 - .long 3711903686 - .long 3218492541 - .long 1073741824 - .long 3159428395 - .long 2962723252 - .long 3215846895 - .long 0 - .long 1072693248 - .long 1974149085 - .long 3218444186 - .long 3221225472 - .long 1008664000 - .long 1296295961 - .long 3215710555 - .long 0 - .long 1072693248 - .long 1115219818 - .long 3218395618 - .long 0 - .long 3160555890 - .long 997322465 - .long 3215578993 - .long 0 - .long 1072693248 - .long 2484561409 - .long 3218346844 - .long 1073741824 - .long 3161508220 - .long 1261629236 - .long 3215452229 - .long 0 - .long 1072693248 - .long 3269558610 - .long 3218297872 - .long 536870912 - .long 1014221568 - .long 2476548698 - .long 3215330282 - .long 0 - .long 1072693248 - .long 785751814 - .long 3218248710 - .long 2684354560 - .long 1014354573 - .long 1913604284 - .long 3215213171 - .long 0 - .long 1072693248 - .long 1062001470 - .long 3218199364 - .long 0 - .long 1013391572 - .long 2306566604 - .long 3215100913 - .long 0 - .long 1072693248 - .long 1655830135 - .long 3218149842 - .long 0 - .long 3161990338 - .long 3250111450 - .long 3214993525 - .long 0 - .long 1072693248 - .long 238550446 - .long 3218100152 - .long 2684354560 - .long 1006899917 - .long 2377770267 - .long 3214848032 - .long 0 - .long 1072693248 - .long 2065784603 - .long 3218020857 - .long 3758096384 - .long 1013198318 - .long 288924873 - .long 3214652833 - .long 0 - .long 1072693248 - .long 3846521617 - .long 3217920847 - .long 536870912 - .long 3160890258 - .long 1935888103 - .long 3214467466 - .long 0 - .long 1072693248 - .long 1786662755 - .long 3217820546 - .long 2147483648 - .long 1008398659 - .long 2660899430 - .long 3214291960 - .long 0 - .long 1072693248 - .long 632292433 - .long 3217719968 - .long 3758096384 - .long 1013479685 - .long 18115067 - .long 3214126342 - .long 0 - .long 1072693248 - .long 1013556747 - .long 3217619128 - .long 2684354560 - .long 1013083417 - .long 2346447124 - .long 3213970635 - .long 0 - .long 1072693248 - .long 3729833777 - .long 3217518041 - .long 3758096384 - .long 3160528366 - .long 1672287667 - .long 3213764289 - .long 0 - .long 1072693248 - .long 1149976518 - .long 3217416724 - .long 1610612736 - .long 3160748543 - .long 3451754846 - .long 3213492662 - .long 0 - .long 1072693248 - .long 2972270170 - .long 3217315190 - .long 1073741824 - .long 1012041122 - .long 1037482584 - .long 3213240992 - .long 0 - .long 1072693248 - .long 1854824762 - .long 3217213456 - .long 2684354560 - .long 3159437312 - .long 2592747447 - .long 3213009315 - .long 0 - .long 1072693248 - .long 3470456183 - .long 3217111536 - .long 1073741824 - .long 1013261123 - .long 2402293340 - .long 3212758471 - .long 0 - .long 1072693248 - .long 1453945614 - .long 3216987726 - .long 1610612736 - .long 3158976260 - .long 1227670166 - .long 3212375297 - .long 0 - .long 1072693248 - .long 3349070549 - .long 3216783237 - .long 3758096384 - .long 1009054621 - .long 393047345 - .long 3212032302 - .long 0 - .long 1072693248 - .long 3156849708 - .long 3216578470 - .long 3221225472 - .long 1010706200 - .long 1118107366 - .long 3211670787 - .long 0 - .long 1072693248 - .long 177906713 - .long 3216373456 - .long 3221225472 - .long 1011826722 - .long 4269262315 - .long 3211145810 - .long 0 - .long 1072693248 - .long 2462980598 - .long 3216168224 - .long 2684354560 - .long 1011458184 - .long 3810305407 - .long 3210663220 - .long 0 - .long 1072693248 - .long 2046304480 - .long 3215943022 - .long 3758096384 - .long 1008919019 - .long 220529721 - .long 3209935929 - .long 0 - .long 1072693248 - .long 4044216340 - .long 3215531877 - .long 0 - .long 1009324733 - .long 69373323 - .long 3209049152 - .long 0 - .long 1072693248 - .long 1972655565 - .long 3215120485 - .long 1073741824 - .long 3156641526 - .long 3650591271 - .long 3207838971 - .long 0 - .long 1072693248 - .long 4154680958 - .long 3214483797 - .long 0 - .long 1006312803 - .long 2376373521 - .long 3205741868 - .long 0 - .long 1072693248 - .long 4242458500 - .long 3213435345 - .long 2684354560 - .long 3156838286 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 239972940 - .long 1089470464 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 1431651400 - .long 3217380693 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 2880656668 - .long 1065423119 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 0 - .long 3219128320 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 1431653583 - .long 1067799893 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .long 2976101079 - .long 3210133866 - .type __svml_dsin_data_internal_ha,@object - .size __svml_dsin_data_internal_ha,17280 - .align 64 -__svml_dsin_reduction_data_internal: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 20 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 40 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 81 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 162 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 325 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 651 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1173554908 - .long 1 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2347109817 - .long 2 - .long 0 - .long 0 - .long 0 - .long 0 - .long 399252338 - .long 5 - .long 0 - .long 0 - .long 0 - .long 0 - .long 798504676 - .long 10 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1597009353 - .long 20 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3194018707 - .long 40 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2093070119 - .long 81 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4186140238 - .long 162 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4077313180 - .long 325 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3859659065 - .long 651 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3424350834 - .long 1303 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2553734372 - .long 2607 - .long 0 - .long 0 - .long 0 - .long 0 - .long 812501448 - .long 5215 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1625002897 - .long 10430 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3250005794 - .long 20860 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2205044292 - .long 41721 - .long 0 - .long 0 - .long 0 - .long 0 - .long 115121288 - .long 83443 - .long 0 - .long 0 - .long 0 - .long 0 - .long 230242576 - .long 166886 - .long 0 - .long 0 - .long 0 - .long 0 - .long 460485152 - .long 333772 - .long 0 - .long 0 - .long 0 - .long 0 - .long 920970305 - .long 667544 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1841940610 - .long 1335088 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3683881221 - .long 2670176 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3072795146 - .long 5340353 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1850622997 - .long 10680707 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3701245994 - .long 21361414 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3107524692 - .long 42722829 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1920082089 - .long 85445659 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3840164178 - .long 170891318 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3385361061 - .long 341782637 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2475754826 - .long 683565275 - .long 0 - .long 0 - .long 0 - .long 0 - .long 656542356 - .long 1367130551 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1313084713 - .long 2734261102 - .long 0 - .long 0 - .long 1 - .long 0 - .long 2626169427 - .long 1173554908 - .long 0 - .long 0 - .long 2 - .long 0 - .long 957371559 - .long 2347109817 - .long 0 - .long 0 - .long 5 - .long 0 - .long 1914743119 - .long 399252338 - .long 0 - .long 0 - .long 10 - .long 0 - .long 3829486239 - .long 798504676 - .long 0 - .long 0 - .long 20 - .long 0 - .long 3364005183 - .long 1597009353 - .long 0 - .long 0 - .long 40 - .long 0 - .long 2433043071 - .long 3194018707 - .long 0 - .long 0 - .long 81 - .long 0 - .long 571118846 - .long 2093070119 - .long 0 - .long 0 - .long 162 - .long 0 - .long 1142237692 - .long 4186140238 - .long 0 - .long 0 - .long 325 - .long 0 - .long 2284475384 - .long 4077313180 - .long 0 - .long 0 - .long 651 - .long 0 - .long 273983472 - .long 3859659065 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 547966945 - .long 3424350834 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 1095933890 - .long 2553734372 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 2191867780 - .long 812501448 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 88768265 - .long 1625002897 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 177536531 - .long 3250005794 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 355073063 - .long 2205044292 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 710146126 - .long 115121288 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 1420292253 - .long 230242576 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 2840584506 - .long 460485152 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 1386201717 - .long 920970305 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 2772403434 - .long 1841940610 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 1249839573 - .long 3683881221 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 2499679147 - .long 3072795146 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 704390999 - .long 1850622997 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 1408781999 - .long 3701245994 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 2817563999 - .long 3107524692 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 1340160702 - .long 1920082089 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 2680321405 - .long 3840164178 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 1065675514 - .long 3385361061 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 2131351028 - .long 2475754826 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 4262702056 - .long 656542356 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 4230436817 - .long 1313084713 - .long 0 - .long 0 - .long 1173554908 - .long 1 - .long 4165906339 - .long 2626169427 - .long 0 - .long 0 - .long 2347109817 - .long 2 - .long 4036845383 - .long 957371559 - .long 0 - .long 0 - .long 399252338 - .long 5 - .long 3778723471 - .long 1914743119 - .long 0 - .long 0 - .long 798504676 - .long 10 - .long 3262479647 - .long 3829486239 - .long 0 - .long 0 - .long 1597009353 - .long 20 - .long 2229991998 - .long 3364005183 - .long 0 - .long 0 - .long 3194018707 - .long 40 - .long 165016701 - .long 2433043071 - .long 0 - .long 0 - .long 2093070119 - .long 81 - .long 330033402 - .long 571118846 - .long 0 - .long 0 - .long 4186140238 - .long 162 - .long 660066805 - .long 1142237692 - .long 0 - .long 0 - .long 4077313180 - .long 325 - .long 1320133610 - .long 2284475384 - .long 0 - .long 0 - .long 3859659065 - .long 651 - .long 2640267220 - .long 273983472 - .long 0 - .long 0 - .long 3424350834 - .long 1303 - .long 985567145 - .long 547966945 - .long 0 - .long 0 - .long 2553734372 - .long 2607 - .long 1971134291 - .long 1095933890 - .long 0 - .long 0 - .long 812501448 - .long 5215 - .long 3942268582 - .long 2191867780 - .long 0 - .long 0 - .long 1625002897 - .long 10430 - .long 3589569869 - .long 88768265 - .long 0 - .long 0 - .long 3250005794 - .long 20860 - .long 2884172442 - .long 177536531 - .long 0 - .long 0 - .long 2205044292 - .long 41721 - .long 1473377588 - .long 355073063 - .long 0 - .long 0 - .long 115121288 - .long 83443 - .long 2946755177 - .long 710146126 - .long 0 - .long 0 - .long 230242576 - .long 166886 - .long 1598543059 - .long 1420292253 - .long 0 - .long 0 - .long 460485152 - .long 333772 - .long 3197086118 - .long 2840584506 - .long 0 - .long 0 - .long 920970305 - .long 667544 - .long 2099204941 - .long 1386201717 - .long 0 - .long 0 - .long 1841940610 - .long 1335088 - .long 4198409883 - .long 2772403434 - .long 0 - .long 0 - .long 3683881221 - .long 2670176 - .long 4101852471 - .long 1249839573 - .long 0 - .long 0 - .long 3072795146 - .long 5340353 - .long 3908737646 - .long 2499679147 - .long 0 - .long 0 - .long 1850622997 - .long 10680707 - .long 3522507997 - .long 704390999 - .long 0 - .long 0 - .long 3701245994 - .long 21361414 - .long 2750048699 - .long 1408781999 - .long 0 - .long 0 - .long 3107524692 - .long 42722829 - .long 1205130103 - .long 2817563999 - .long 0 - .long 0 - .long 1920082089 - .long 85445659 - .long 2410260206 - .long 1340160702 - .long 0 - .long 0 - .long 3840164178 - .long 170891318 - .long 525553116 - .long 2680321405 - .long 0 - .long 0 - .long 3385361061 - .long 341782637 - .long 1051106232 - .long 1065675514 - .long 0 - .long 0 - .long 2475754826 - .long 683565275 - .long 2102212464 - .long 2131351028 - .long 0 - .long 0 - .long 656542356 - .long 1367130551 - .long 4204424928 - .long 4262702056 - .long 0 - .long 0 - .long 1313084713 - .long 2734261102 - .long 4113882560 - .long 4230436817 - .long 1 - .long 0 - .long 2626169427 - .long 1173554908 - .long 3932797825 - .long 4165906339 - .long 2 - .long 0 - .long 957371559 - .long 2347109817 - .long 3570628355 - .long 4036845383 - .long 5 - .long 0 - .long 1914743119 - .long 399252338 - .long 2846289414 - .long 3778723471 - .long 10 - .long 0 - .long 3829486239 - .long 798504676 - .long 1397611533 - .long 3262479647 - .long 20 - .long 0 - .long 3364005183 - .long 1597009353 - .long 2795223067 - .long 2229991998 - .long 40 - .long 0 - .long 2433043071 - .long 3194018707 - .long 1295478838 - .long 165016701 - .long 81 - .long 0 - .long 571118846 - .long 2093070119 - .long 2590957677 - .long 330033402 - .long 162 - .long 0 - .long 1142237692 - .long 4186140238 - .long 886948059 - .long 660066805 - .long 325 - .long 0 - .long 2284475384 - .long 4077313180 - .long 1773896118 - .long 1320133610 - .long 651 - .long 0 - .long 273983472 - .long 3859659065 - .long 3547792237 - .long 2640267220 - .long 1303 - .long 0 - .long 547966945 - .long 3424350834 - .long 2800617179 - .long 985567145 - .long 2607 - .long 0 - .long 1095933890 - .long 2553734372 - .long 1306267062 - .long 1971134291 - .long 5215 - .long 0 - .long 2191867780 - .long 812501448 - .long 2612534124 - .long 3942268582 - .long 10430 - .long 0 - .long 88768265 - .long 1625002897 - .long 930100952 - .long 3589569869 - .long 20860 - .long 0 - .long 177536531 - .long 3250005794 - .long 1860201905 - .long 2884172442 - .long 41721 - .long 0 - .long 355073063 - .long 2205044292 - .long 3720403810 - .long 1473377588 - .long 83443 - .long 0 - .long 710146126 - .long 115121288 - .long 3145840325 - .long 2946755177 - .long 166886 - .long 0 - .long 1420292253 - .long 230242576 - .long 1996713354 - .long 1598543059 - .long 333772 - .long 0 - .long 2840584506 - .long 460485152 - .long 3993426708 - .long 3197086118 - .long 667544 - .long 0 - .long 1386201717 - .long 920970305 - .long 3691886121 - .long 2099204941 - .long 1335088 - .long 0 - .long 2772403434 - .long 1841940610 - .long 3088804946 - .long 4198409883 - .long 2670176 - .long 0 - .long 1249839573 - .long 3683881221 - .long 1882642597 - .long 4101852471 - .long 5340353 - .long 0 - .long 2499679147 - .long 3072795146 - .long 3765285194 - .long 3908737646 - .long 10680707 - .long 0 - .long 704390999 - .long 1850622997 - .long 3235603093 - .long 3522507997 - .long 21361414 - .long 0 - .long 1408781999 - .long 3701245994 - .long 2176238891 - .long 2750048699 - .long 42722829 - .long 0 - .long 2817563999 - .long 3107524692 - .long 57510486 - .long 1205130103 - .long 85445659 - .long 0 - .long 1340160702 - .long 1920082089 - .long 115020972 - .long 2410260206 - .long 170891318 - .long 0 - .long 2680321405 - .long 3840164178 - .long 230041945 - .long 525553116 - .long 341782637 - .long 0 - .long 1065675514 - .long 3385361061 - .long 460083891 - .long 1051106232 - .long 683565275 - .long 0 - .long 2131351028 - .long 2475754826 - .long 920167782 - .long 2102212464 - .long 1367130551 - .long 0 - .long 4262702056 - .long 656542356 - .long 1840335564 - .long 4204424928 - .long 2734261102 - .long 0 - .long 4230436817 - .long 1313084713 - .long 3680671129 - .long 4113882560 - .long 1173554908 - .long 1 - .long 4165906339 - .long 2626169427 - .long 3066374962 - .long 3932797825 - .long 2347109817 - .long 2 - .long 4036845383 - .long 957371559 - .long 1837782628 - .long 3570628355 - .long 399252338 - .long 5 - .long 3778723471 - .long 1914743119 - .long 3675565257 - .long 2846289414 - .long 798504676 - .long 10 - .long 3262479647 - .long 3829486239 - .long 3056163219 - .long 1397611533 - .long 1597009353 - .long 20 - .long 2229991998 - .long 3364005183 - .long 1817359143 - .long 2795223067 - .long 3194018707 - .long 40 - .long 165016701 - .long 2433043071 - .long 3634718287 - .long 1295478838 - .long 2093070119 - .long 81 - .long 330033402 - .long 571118846 - .long 2974469278 - .long 2590957677 - .long 4186140238 - .long 162 - .long 660066805 - .long 1142237692 - .long 1653971260 - .long 886948059 - .long 4077313180 - .long 325 - .long 1320133610 - .long 2284475384 - .long 3307942520 - .long 1773896118 - .long 3859659065 - .long 651 - .long 2640267220 - .long 273983472 - .long 2320917745 - .long 3547792237 - .long 3424350834 - .long 1303 - .long 985567145 - .long 547966945 - .long 346868194 - .long 2800617179 - .long 2553734372 - .long 2607 - .long 1971134291 - .long 1095933890 - .long 693736388 - .long 1306267062 - .long 812501448 - .long 5215 - .long 3942268582 - .long 2191867780 - .long 1387472776 - .long 2612534124 - .long 1625002897 - .long 10430 - .long 3589569869 - .long 88768265 - .long 2774945552 - .long 930100952 - .long 3250005794 - .long 20860 - .long 2884172442 - .long 177536531 - .long 1254923809 - .long 1860201905 - .long 2205044292 - .long 41721 - .long 1473377588 - .long 355073063 - .long 2509847619 - .long 3720403810 - .long 115121288 - .long 83443 - .long 2946755177 - .long 710146126 - .long 724727943 - .long 3145840325 - .long 230242576 - .long 166886 - .long 1598543059 - .long 1420292253 - .long 1449455886 - .long 1996713354 - .long 460485152 - .long 333772 - .long 3197086118 - .long 2840584506 - .long 2898911772 - .long 3993426708 - .long 920970305 - .long 667544 - .long 2099204941 - .long 1386201717 - .long 1502856249 - .long 3691886121 - .long 1841940610 - .long 1335088 - .long 4198409883 - .long 2772403434 - .long 3005712498 - .long 3088804946 - .long 3683881221 - .long 2670176 - .long 4101852471 - .long 1249839573 - .long 1716457700 - .long 1882642597 - .long 3072795146 - .long 5340353 - .long 3908737646 - .long 2499679147 - .long 3432915400 - .long 3765285194 - .long 1850622997 - .long 10680707 - .long 3522507997 - .long 704390999 - .long 2570863504 - .long 3235603093 - .long 3701245994 - .long 21361414 - .long 2750048699 - .long 1408781999 - .long 846759712 - .long 2176238891 - .long 3107524692 - .long 42722829 - .long 1205130103 - .long 2817563999 - .long 1693519425 - .long 57510486 - .long 1920082089 - .long 85445659 - .long 2410260206 - .long 1340160702 - .long 3387038850 - .long 115020972 - .long 3840164178 - .long 170891318 - .long 525553116 - .long 2680321405 - .long 2479110404 - .long 230041945 - .long 3385361061 - .long 341782637 - .long 1051106232 - .long 1065675514 - .long 663253512 - .long 460083891 - .long 2475754826 - .long 683565275 - .long 2102212464 - .long 2131351028 - .long 1326507024 - .long 920167782 - .long 656542356 - .long 1367130551 - .long 4204424928 - .long 4262702056 - .long 2653014048 - .long 1840335564 - .long 1313084713 - .long 2734261102 - .long 4113882560 - .long 4230436817 - .long 1011060801 - .long 3680671129 - .long 2626169427 - .long 1173554908 - .long 3932797825 - .long 4165906339 - .long 2022121603 - .long 3066374962 - .long 957371559 - .long 2347109817 - .long 3570628355 - .long 4036845383 - .long 4044243207 - .long 1837782628 - .long 1914743119 - .long 399252338 - .long 2846289414 - .long 3778723471 - .long 3793519119 - .long 3675565257 - .long 3829486239 - .long 798504676 - .long 1397611533 - .long 3262479647 - .long 3292070943 - .long 3056163219 - .long 3364005183 - .long 1597009353 - .long 2795223067 - .long 2229991998 - .long 2289174591 - .long 1817359143 - .long 2433043071 - .long 3194018707 - .long 1295478838 - .long 165016701 - .long 283381887 - .long 3634718287 - .long 571118846 - .long 2093070119 - .long 2590957677 - .long 330033402 - .long 566763775 - .long 2974469278 - .long 1142237692 - .long 4186140238 - .long 886948059 - .long 660066805 - .long 1133527550 - .long 1653971260 - .long 2284475384 - .long 4077313180 - .long 1773896118 - .long 1320133610 - .long 2267055100 - .long 3307942520 - .long 273983472 - .long 3859659065 - .long 3547792237 - .long 2640267220 - .long 239142905 - .long 2320917745 - .long 547966945 - .long 3424350834 - .long 2800617179 - .long 985567145 - .long 478285810 - .long 346868194 - .long 1095933890 - .long 2553734372 - .long 1306267062 - .long 1971134291 - .long 956571621 - .long 693736388 - .long 2191867780 - .long 812501448 - .long 2612534124 - .long 3942268582 - .long 1913143242 - .long 1387472776 - .long 88768265 - .long 1625002897 - .long 930100952 - .long 3589569869 - .long 3826286484 - .long 2774945552 - .long 177536531 - .long 3250005794 - .long 1860201905 - .long 2884172442 - .long 3357605672 - .long 1254923809 - .long 355073063 - .long 2205044292 - .long 3720403810 - .long 1473377588 - .long 2420244049 - .long 2509847619 - .long 710146126 - .long 115121288 - .long 3145840325 - .long 2946755177 - .long 545520802 - .long 724727943 - .long 1420292253 - .long 230242576 - .long 1996713354 - .long 1598543059 - .long 1091041605 - .long 1449455886 - .long 2840584506 - .long 460485152 - .long 3993426708 - .long 3197086118 - .long 2182083211 - .long 2898911772 - .long 1386201717 - .long 920970305 - .long 3691886121 - .long 2099204941 - .long 69199126 - .long 1502856249 - .long 2772403434 - .long 1841940610 - .long 3088804946 - .long 4198409883 - .long 138398252 - .long 3005712498 - .long 1249839573 - .long 3683881221 - .long 1882642597 - .long 4101852471 - .long 276796504 - .long 1716457700 - .long 2499679147 - .long 3072795146 - .long 3765285194 - .long 3908737646 - .long 553593009 - .long 3432915400 - .long 704390999 - .long 1850622997 - .long 3235603093 - .long 3522507997 - .long 1107186019 - .long 2570863504 - .long 1408781999 - .long 3701245994 - .long 2176238891 - .long 2750048699 - .long 2214372039 - .long 846759712 - .long 2817563999 - .long 3107524692 - .long 57510486 - .long 1205130103 - .long 133776782 - .long 1693519425 - .long 1340160702 - .long 1920082089 - .long 115020972 - .long 2410260206 - .long 267553565 - .long 3387038850 - .long 2680321405 - .long 3840164178 - .long 230041945 - .long 525553116 - .long 535107130 - .long 2479110404 - .long 1065675514 - .long 3385361061 - .long 460083891 - .long 1051106232 - .long 1070214261 - .long 663253512 - .long 2131351028 - .long 2475754826 - .long 920167782 - .long 2102212464 - .long 2140428522 - .long 1326507024 - .long 4262702056 - .long 656542356 - .long 1840335564 - .long 4204424928 - .long 4280857045 - .long 2653014048 - .long 4230436817 - .long 1313084713 - .long 3680671129 - .long 4113882560 - .long 4266746795 - .long 1011060801 - .long 4165906339 - .long 2626169427 - .long 3066374962 - .long 3932797825 - .long 4238526295 - .long 2022121603 - .long 4036845383 - .long 957371559 - .long 1837782628 - .long 3570628355 - .long 4182085295 - .long 4044243207 - .long 3778723471 - .long 1914743119 - .long 3675565257 - .long 2846289414 - .long 4069203294 - .long 3793519119 - .long 3262479647 - .long 3829486239 - .long 3056163219 - .long 1397611533 - .long 3843439293 - .long 3292070943 - .long 2229991998 - .long 3364005183 - .long 1817359143 - .long 2795223067 - .long 3391911291 - .long 2289174591 - .long 165016701 - .long 2433043071 - .long 3634718287 - .long 1295478838 - .long 2488855287 - .long 283381887 - .long 330033402 - .long 571118846 - .long 2974469278 - .long 2590957677 - .long 682743279 - .long 566763775 - .long 660066805 - .long 1142237692 - .long 1653971260 - .long 886948059 - .long 1365486558 - .long 1133527550 - .long 1320133610 - .long 2284475384 - .long 3307942520 - .long 1773896118 - .long 2730973117 - .long 2267055100 - .long 2640267220 - .long 273983472 - .long 2320917745 - .long 3547792237 - .long 1166978938 - .long 239142905 - .long 985567145 - .long 547966945 - .long 346868194 - .long 2800617179 - .long 2333957877 - .long 478285810 - .long 1971134291 - .long 1095933890 - .long 693736388 - .long 1306267062 - .long 372948459 - .long 956571621 - .long 3942268582 - .long 2191867780 - .long 1387472776 - .long 2612534124 - .long 745896919 - .long 1913143242 - .long 3589569869 - .long 88768265 - .long 2774945552 - .long 930100952 - .long 1491793838 - .long 3826286484 - .long 2884172442 - .long 177536531 - .long 1254923809 - .long 1860201905 - .long 2983587677 - .long 3357605672 - .long 1473377588 - .long 355073063 - .long 2509847619 - .long 3720403810 - .long 1672208059 - .long 2420244049 - .long 2946755177 - .long 710146126 - .long 724727943 - .long 3145840325 - .long 3344416119 - .long 545520802 - .long 1598543059 - .long 1420292253 - .long 1449455886 - .long 1996713354 - .long 2393864943 - .long 1091041605 - .long 3197086118 - .long 2840584506 - .long 2898911772 - .long 3993426708 - .long 492762590 - .long 2182083211 - .long 2099204941 - .long 1386201717 - .long 1502856249 - .long 3691886121 - .long 985525180 - .long 69199126 - .long 4198409883 - .long 2772403434 - .long 3005712498 - .long 3088804946 - .long 1971050360 - .long 138398252 - .long 4101852471 - .long 1249839573 - .long 1716457700 - .long 1882642597 - .long 3942100721 - .long 276796504 - .long 3908737646 - .long 2499679147 - .long 3432915400 - .long 3765285194 - .long 3589234146 - .long 553593009 - .long 3522507997 - .long 704390999 - .long 2570863504 - .long 3235603093 - .long 2883500997 - .long 1107186019 - .long 2750048699 - .long 1408781999 - .long 846759712 - .long 2176238891 - .long 1472034698 - .long 2214372039 - .long 1205130103 - .long 2817563999 - .long 1693519425 - .long 57510486 - .long 2944069397 - .long 133776782 - .long 2410260206 - .long 1340160702 - .long 3387038850 - .long 115020972 - .long 1593171499 - .long 267553565 - .long 525553116 - .long 2680321405 - .long 2479110404 - .long 230041945 - .long 3186342998 - .long 535107130 - .long 1051106232 - .long 1065675514 - .long 663253512 - .long 460083891 - .long 2077718700 - .long 1070214261 - .long 2102212464 - .long 2131351028 - .long 1326507024 - .long 920167782 - .long 4155437400 - .long 2140428522 - .long 4204424928 - .long 4262702056 - .long 2653014048 - .long 1840335564 - .long 4015907504 - .long 4280857045 - .long 4113882560 - .long 4230436817 - .long 1011060801 - .long 3680671129 - .long 3736847713 - .long 4266746795 - .long 3932797825 - .long 4165906339 - .long 2022121603 - .long 3066374962 - .long 3178728131 - .long 4238526295 - .long 3570628355 - .long 4036845383 - .long 4044243207 - .long 1837782628 - .long 2062488966 - .long 4182085295 - .long 2846289414 - .long 3778723471 - .long 3793519119 - .long 3675565257 - .long 4124977933 - .long 4069203294 - .long 1397611533 - .long 3262479647 - .long 3292070943 - .long 3056163219 - .long 3954988571 - .long 3843439293 - .long 2795223067 - .long 2229991998 - .long 2289174591 - .long 1817359143 - .long 3615009846 - .long 3391911291 - .long 1295478838 - .long 165016701 - .long 283381887 - .long 3634718287 - .long 2935052397 - .long 2488855287 - .long 2590957677 - .long 330033402 - .long 566763775 - .long 2974469278 - .long 1575137499 - .long 682743279 - .long 886948059 - .long 660066805 - .long 1133527550 - .long 1653971260 - .long 3150274999 - .long 1365486558 - .long 1773896118 - .long 1320133610 - .long 2267055100 - .long 3307942520 - .long 2005582702 - .long 2730973117 - .long 3547792237 - .long 2640267220 - .long 239142905 - .long 2320917745 - .long 4011165404 - .long 1166978938 - .long 2800617179 - .long 985567145 - .long 478285810 - .long 346868194 - .long 3727363513 - .long 2333957877 - .long 1306267062 - .long 1971134291 - .long 956571621 - .long 693736388 - .long 3159759730 - .long 372948459 - .long 2612534124 - .long 3942268582 - .long 1913143242 - .long 1387472776 - .long 2024552164 - .long 745896919 - .long 930100952 - .long 3589569869 - .long 3826286484 - .long 2774945552 - .long 4049104329 - .long 1491793838 - .long 1860201905 - .long 2884172442 - .long 3357605672 - .long 1254923809 - .long 3803241362 - .long 2983587677 - .long 3720403810 - .long 1473377588 - .long 2420244049 - .long 2509847619 - .long 3311515428 - .long 1672208059 - .long 3145840325 - .long 2946755177 - .long 545520802 - .long 724727943 - .long 2328063560 - .long 3344416119 - .long 1996713354 - .long 1598543059 - .long 1091041605 - .long 1449455886 - .long 361159825 - .long 2393864943 - .long 3993426708 - .long 3197086118 - .long 2182083211 - .long 2898911772 - .long 722319651 - .long 492762590 - .long 3691886121 - .long 2099204941 - .long 69199126 - .long 1502856249 - .long 1444639302 - .long 985525180 - .long 3088804946 - .long 4198409883 - .long 138398252 - .long 3005712498 - .long 2889278605 - .long 1971050360 - .long 1882642597 - .long 4101852471 - .long 276796504 - .long 1716457700 - .long 1483589915 - .long 3942100721 - .long 3765285194 - .long 3908737646 - .long 553593009 - .long 3432915400 - .long 2967179831 - .long 3589234146 - .long 3235603093 - .long 3522507997 - .long 1107186019 - .long 2570863504 - .long 1639392366 - .long 2883500997 - .long 2176238891 - .long 2750048699 - .long 2214372039 - .long 846759712 - .long 3278784732 - .long 1472034698 - .long 57510486 - .long 1205130103 - .long 133776782 - .long 1693519425 - .long 2262602168 - .long 2944069397 - .long 115020972 - .long 2410260206 - .long 267553565 - .long 3387038850 - .long 230237041 - .long 1593171499 - .long 230041945 - .long 525553116 - .long 535107130 - .long 2479110404 - .long 460474083 - .long 3186342998 - .long 460083891 - .long 1051106232 - .long 1070214261 - .long 663253512 - .long 920948167 - .long 2077718700 - .long 920167782 - .long 2102212464 - .long 2140428522 - .long 1326507024 - .long 1841896334 - .long 4155437400 - .long 1840335564 - .long 4204424928 - .long 4280857045 - .long 2653014048 - .long 3683792669 - .long 4015907504 - .long 3680671129 - .long 4113882560 - .long 4266746795 - .long 1011060801 - .long 3072618042 - .long 3736847713 - .long 3066374962 - .long 3932797825 - .long 4238526295 - .long 2022121603 - .long 1850268788 - .long 3178728131 - .long 1837782628 - .long 3570628355 - .long 4182085295 - .long 4044243207 - .long 3700537577 - .long 2062488966 - .long 3675565257 - .long 2846289414 - .long 4069203294 - .long 3793519119 - .long 3106107858 - .long 4124977933 - .long 3056163219 - .long 1397611533 - .long 3843439293 - .long 3292070943 - .long 1917248420 - .long 3954988571 - .long 1817359143 - .long 2795223067 - .long 3391911291 - .long 2289174591 - .long 3834496840 - .long 3615009846 - .long 3634718287 - .long 1295478838 - .long 2488855287 - .long 283381887 - .long 3374026384 - .long 2935052397 - .long 2974469278 - .long 2590957677 - .long 682743279 - .long 566763775 - .long 2453085473 - .long 1575137499 - .long 1653971260 - .long 886948059 - .long 1365486558 - .long 1133527550 - .long 611203650 - .long 3150274999 - .long 3307942520 - .long 1773896118 - .long 2730973117 - .long 2267055100 - .long 1222407300 - .long 2005582702 - .long 2320917745 - .long 3547792237 - .long 1166978938 - .long 239142905 - .long 2444814601 - .long 4011165404 - .long 346868194 - .long 2800617179 - .long 2333957877 - .long 478285810 - .long 594661906 - .long 3727363513 - .long 693736388 - .long 1306267062 - .long 372948459 - .long 956571621 - .long 1189323812 - .long 3159759730 - .long 1387472776 - .long 2612534124 - .long 745896919 - .long 1913143242 - .long 2378647625 - .long 2024552164 - .long 2774945552 - .long 930100952 - .long 1491793838 - .long 3826286484 - .long 462327955 - .long 4049104329 - .long 1254923809 - .long 1860201905 - .long 2983587677 - .long 3357605672 - .long 924655910 - .long 3803241362 - .long 2509847619 - .long 3720403810 - .long 1672208059 - .long 2420244049 - .long 1849311821 - .long 3311515428 - .long 724727943 - .long 3145840325 - .long 3344416119 - .long 545520802 - .long 3698623643 - .long 2328063560 - .long 1449455886 - .long 1996713354 - .long 2393864943 - .long 1091041605 - .long 3102279991 - .long 361159825 - .long 2898911772 - .long 3993426708 - .long 492762590 - .long 2182083211 - .long 1909592686 - .long 722319651 - .long 1502856249 - .long 3691886121 - .long 985525180 - .long 69199126 - .long 3819185373 - .long 1444639302 - .long 3005712498 - .long 3088804946 - .long 1971050360 - .long 138398252 - .long 3343403450 - .long 2889278605 - .long 1716457700 - .long 1882642597 - .long 3942100721 - .long 276796504 - .long 2391839604 - .long 1483589915 - .long 3432915400 - .long 3765285194 - .long 3589234146 - .long 553593009 - .long 488711913 - .long 2967179831 - .long 2570863504 - .long 3235603093 - .long 2883500997 - .long 1107186019 - .long 977423826 - .long 1639392366 - .long 846759712 - .long 2176238891 - .long 1472034698 - .long 2214372039 - .long 1954847653 - .long 3278784732 - .long 1693519425 - .long 57510486 - .long 2944069397 - .long 133776782 - .long 3909695307 - .long 2262602168 - .long 3387038850 - .long 115020972 - .long 1593171499 - .long 267553565 - .long 3524423319 - .long 230237041 - .long 2479110404 - .long 230041945 - .long 3186342998 - .long 535107130 - .long 2753879342 - .long 460474083 - .long 663253512 - .long 460083891 - .long 2077718700 - .long 1070214261 - .long 1212791388 - .long 920948167 - .long 1326507024 - .long 920167782 - .long 4155437400 - .long 2140428522 - .long 2425582776 - .long 1841896334 - .long 2653014048 - .long 1840335564 - .long 4015907504 - .long 4280857045 - .long 556198256 - .long 3683792669 - .long 1011060801 - .long 3680671129 - .long 3736847713 - .long 4266746795 - .long 1112396512 - .long 3072618042 - .long 2022121603 - .long 3066374962 - .long 3178728131 - .long 4238526295 - .long 2224793024 - .long 1850268788 - .long 4044243207 - .long 1837782628 - .long 2062488966 - .long 4182085295 - .long 154618752 - .long 3700537577 - .long 3793519119 - .long 3675565257 - .long 4124977933 - .long 4069203294 - .long 309237504 - .long 3106107858 - .long 3292070943 - .long 3056163219 - .long 3954988571 - .long 3843439293 - .long 618475008 - .long 1917248420 - .long 2289174591 - .long 1817359143 - .long 3615009846 - .long 3391911291 - .long 1236950016 - .long 3834496840 - .long 283381887 - .long 3634718287 - .long 2935052397 - .long 2488855287 - .long 2473900033 - .long 3374026384 - .long 566763775 - .long 2974469278 - .long 1575137499 - .long 682743279 - .long 652832771 - .long 2453085473 - .long 1133527550 - .long 1653971260 - .long 3150274999 - .long 1365486558 - .long 1305665542 - .long 611203650 - .long 2267055100 - .long 3307942520 - .long 2005582702 - .long 2730973117 - .long 2611331084 - .long 1222407300 - .long 239142905 - .long 2320917745 - .long 4011165404 - .long 1166978938 - .long 927694873 - .long 2444814601 - .long 478285810 - .long 346868194 - .long 3727363513 - .long 2333957877 - .long 1855389746 - .long 594661906 - .long 956571621 - .long 693736388 - .long 3159759730 - .long 372948459 - .long 3710779492 - .long 1189323812 - .long 1913143242 - .long 1387472776 - .long 2024552164 - .long 745896919 - .long 3126591689 - .long 2378647625 - .long 3826286484 - .long 2774945552 - .long 4049104329 - .long 1491793838 - .long 1958216082 - .long 462327955 - .long 3357605672 - .long 1254923809 - .long 3803241362 - .long 2983587677 - .long 3916432164 - .long 924655910 - .long 2420244049 - .long 2509847619 - .long 3311515428 - .long 1672208059 - .long 3537897033 - .long 1849311821 - .long 545520802 - .long 724727943 - .long 2328063560 - .long 3344416119 - .long 2780826770 - .long 3698623643 - .long 1091041605 - .long 1449455886 - .long 361159825 - .long 2393864943 - .long 1266686244 - .long 3102279991 - .long 2182083211 - .long 2898911772 - .long 722319651 - .long 492762590 - .long 2533372489 - .long 1909592686 - .long 69199126 - .long 1502856249 - .long 1444639302 - .long 985525180 - .long 771777682 - .long 3819185373 - .long 138398252 - .long 3005712498 - .long 2889278605 - .long 1971050360 - .long 1543555365 - .long 3343403450 - .long 276796504 - .long 1716457700 - .long 1483589915 - .long 3942100721 - .long 3087110731 - .long 2391839604 - .long 553593009 - .long 3432915400 - .long 2967179831 - .long 3589234146 - .long 1879254167 - .long 488711913 - .long 1107186019 - .long 2570863504 - .long 1639392366 - .long 2883500997 - .long 3758508334 - .long 977423826 - .long 2214372039 - .long 846759712 - .long 3278784732 - .long 1472034698 - .long 3222049373 - .long 1954847653 - .long 133776782 - .long 1693519425 - .long 2262602168 - .long 2944069397 - .long 2149131451 - .long 3909695307 - .long 267553565 - .long 3387038850 - .long 230237041 - .long 1593171499 - .long 3295607 - .long 3524423319 - .long 535107130 - .long 2479110404 - .long 460474083 - .long 3186342998 - .long 6591214 - .long 2753879342 - .long 1070214261 - .long 663253512 - .long 920948167 - .long 2077718700 - .long 13182429 - .long 1212791388 - .long 2140428522 - .long 1326507024 - .long 1841896334 - .long 4155437400 - .long 26364858 - .long 2425582776 - .long 4280857045 - .long 2653014048 - .long 3683792669 - .long 4015907504 - .long 52729717 - .long 556198256 - .long 4266746795 - .long 1011060801 - .long 3072618042 - .long 3736847713 - .long 105459434 - .long 1112396512 - .long 4238526295 - .long 2022121603 - .long 1850268788 - .long 3178728131 - .long 210918868 - .long 2224793024 - .long 4182085295 - .long 4044243207 - .long 3700537577 - .long 2062488966 - .long 421837736 - .long 154618752 - .long 4069203294 - .long 3793519119 - .long 3106107858 - .long 4124977933 - .long 843675472 - .long 309237504 - .long 3843439293 - .long 3292070943 - .long 1917248420 - .long 3954988571 - .long 1687350944 - .long 618475008 - .long 3391911291 - .long 2289174591 - .long 3834496840 - .long 3615009846 - .long 3374701889 - .long 1236950016 - .long 2488855287 - .long 283381887 - .long 3374026384 - .long 2935052397 - .long 2454436482 - .long 2473900033 - .long 682743279 - .long 566763775 - .long 2453085473 - .long 1575137499 - .long 613905668 - .long 652832771 - .long 1365486558 - .long 1133527550 - .long 611203650 - .long 3150274999 - .long 1227811337 - .long 1305665542 - .long 2730973117 - .long 2267055100 - .long 1222407300 - .long 2005582702 - .long 2455622675 - .long 2611331084 - .long 1166978938 - .long 239142905 - .long 2444814601 - .long 4011165404 - .long 616278055 - .long 927694873 - .long 2333957877 - .long 478285810 - .long 594661906 - .long 3727363513 - .long 1232556110 - .long 1855389746 - .long 372948459 - .long 956571621 - .long 1189323812 - .long 3159759730 - .long 2465112221 - .long 3710779492 - .long 745896919 - .long 1913143242 - .long 2378647625 - .long 2024552164 - .long 635257146 - .long 3126591689 - .long 1491793838 - .long 3826286484 - .long 462327955 - .long 4049104329 - .long 1270514292 - .long 1958216082 - .long 2983587677 - .long 3357605672 - .long 924655910 - .long 3803241362 - .long 2541028584 - .long 3916432164 - .long 1672208059 - .long 2420244049 - .long 1849311821 - .long 3311515428 - .long 787089873 - .long 3537897033 - .long 3344416119 - .long 545520802 - .long 3698623643 - .long 2328063560 - .long 1574179747 - .long 2780826770 - .long 2393864943 - .long 1091041605 - .long 3102279991 - .long 361159825 - .long 3148359494 - .long 1266686244 - .long 492762590 - .long 2182083211 - .long 1909592686 - .long 722319651 - .long 2001751692 - .long 2533372489 - .long 985525180 - .long 69199126 - .long 3819185373 - .long 1444639302 - .long 4003503385 - .long 771777682 - .long 1971050360 - .long 138398252 - .long 3343403450 - .long 2889278605 - .long 3712039474 - .long 1543555365 - .long 3942100721 - .long 276796504 - .long 2391839604 - .long 1483589915 - .long 3129111652 - .long 3087110731 - .long 3589234146 - .long 553593009 - .long 488711913 - .long 2967179831 - .long 1963256009 - .long 1879254167 - .long 2883500997 - .long 1107186019 - .long 977423826 - .long 1639392366 - .long 3926512018 - .long 3758508334 - .long 1472034698 - .long 2214372039 - .long 1954847653 - .long 3278784732 - .long 3558056740 - .long 3222049373 - .long 2944069397 - .long 133776782 - .long 3909695307 - .long 2262602168 - .long 2821146184 - .long 2149131451 - .long 1593171499 - .long 267553565 - .long 3524423319 - .long 230237041 - .long 1347325072 - .long 3295607 - .long 3186342998 - .long 535107130 - .long 2753879342 - .long 460474083 - .long 2694650145 - .long 6591214 - .long 2077718700 - .long 1070214261 - .long 1212791388 - .long 920948167 - .long 1094332995 - .long 13182429 - .long 4155437400 - .long 2140428522 - .long 2425582776 - .long 1841896334 - .long 2188665991 - .long 26364858 - .long 4015907504 - .long 4280857045 - .long 556198256 - .long 3683792669 - .long 82364686 - .long 52729717 - .long 3736847713 - .long 4266746795 - .long 1112396512 - .long 3072618042 - .long 164729372 - .long 105459434 - .long 3178728131 - .long 4238526295 - .long 2224793024 - .long 1850268788 - .long 329458745 - .long 210918868 - .long 2062488966 - .long 4182085295 - .long 154618752 - .long 3700537577 - .long 658917491 - .long 421837736 - .long 4124977933 - .long 4069203294 - .long 309237504 - .long 3106107858 - .long 1317834983 - .long 843675472 - .long 3954988571 - .long 3843439293 - .long 618475008 - .long 1917248420 - .long 2635669967 - .long 1687350944 - .long 3615009846 - .long 3391911291 - .long 1236950016 - .long 3834496840 - .long 976372639 - .long 3374701889 - .long 2935052397 - .long 2488855287 - .long 2473900033 - .long 3374026384 - .long 1952745279 - .long 2454436482 - .long 1575137499 - .long 682743279 - .long 652832771 - .long 2453085473 - .long 3905490559 - .long 613905668 - .long 3150274999 - .long 1365486558 - .long 1305665542 - .long 611203650 - .long 3516013822 - .long 1227811337 - .long 2005582702 - .long 2730973117 - .long 2611331084 - .long 1222407300 - .long 2737060348 - .long 2455622675 - .long 4011165404 - .long 1166978938 - .long 927694873 - .long 2444814601 - .long 1179153400 - .long 616278055 - .long 3727363513 - .long 2333957877 - .long 1855389746 - .long 594661906 - .long 2358306800 - .long 1232556110 - .long 3159759730 - .long 372948459 - .long 3710779492 - .long 1189323812 - .long 421646305 - .long 2465112221 - .long 2024552164 - .long 745896919 - .long 3126591689 - .long 2378647625 - .long 843292611 - .long 635257146 - .long 4049104329 - .long 1491793838 - .long 1958216082 - .long 462327955 - .long 1686585223 - .long 1270514292 - .long 3803241362 - .long 2983587677 - .long 3916432164 - .long 924655910 - .long 3373170446 - .long 2541028584 - .long 3311515428 - .long 1672208059 - .long 3537897033 - .long 1849311821 - .long 2451373597 - .long 787089873 - .long 2328063560 - .long 3344416119 - .long 2780826770 - .long 3698623643 - .long 607779899 - .long 1574179747 - .long 361159825 - .long 2393864943 - .long 1266686244 - .long 3102279991 - .long 1215559799 - .long 3148359494 - .long 722319651 - .long 492762590 - .long 2533372489 - .long 1909592686 - .long 2431119599 - .long 2001751692 - .long 1444639302 - .long 985525180 - .long 771777682 - .long 3819185373 - .long 567271902 - .long 4003503385 - .long 2889278605 - .long 1971050360 - .long 1543555365 - .long 3343403450 - .long 1134543805 - .long 3712039474 - .long 1483589915 - .long 3942100721 - .long 3087110731 - .long 2391839604 - .long 2269087610 - .long 3129111652 - .long 2967179831 - .long 3589234146 - .long 1879254167 - .long 488711913 - .long 243207925 - .long 1963256009 - .long 1639392366 - .long 2883500997 - .long 3758508334 - .long 977423826 - .long 486415851 - .long 3926512018 - .long 3278784732 - .long 1472034698 - .long 3222049373 - .long 1954847653 - .long 972831702 - .long 3558056740 - .long 2262602168 - .long 2944069397 - .long 2149131451 - .long 3909695307 - .long 1945663404 - .long 2821146184 - .long 230237041 - .long 1593171499 - .long 3295607 - .long 3524423319 - .long 3891326808 - .long 1347325072 - .long 460474083 - .long 3186342998 - .long 6591214 - .long 2753879342 - .long 3487686321 - .long 2694650145 - .long 920948167 - .long 2077718700 - .long 13182429 - .long 1212791388 - .long 2680405347 - .long 1094332995 - .long 1841896334 - .long 4155437400 - .long 26364858 - .long 2425582776 - .long 1065843399 - .long 2188665991 - .long 3683792669 - .long 4015907504 - .long 52729717 - .long 556198256 - .long 2131686798 - .long 82364686 - .long 3072618042 - .long 3736847713 - .long 105459434 - .long 1112396512 - .long 4263373596 - .long 164729372 - .long 1850268788 - .long 3178728131 - .long 210918868 - .long 2224793024 - .long 4231779897 - .long 329458745 - .long 3700537577 - .long 2062488966 - .long 421837736 - .long 154618752 - .long 4168592498 - .long 658917491 - .long 3106107858 - .long 4124977933 - .long 843675472 - .long 309237504 - .long 4042217701 - .long 1317834983 - .long 1917248420 - .long 3954988571 - .long 1687350944 - .long 618475008 - .long 3789468107 - .long 2635669967 - .long 3834496840 - .long 3615009846 - .long 3374701889 - .long 1236950016 - .long 3283968918 - .long 976372639 - .long 3374026384 - .long 2935052397 - .long 2454436482 - .long 2473900033 - .long 2272970540 - .long 1952745279 - .long 2453085473 - .long 1575137499 - .long 613905668 - .long 652832771 - .long 250973784 - .long 3905490559 - .long 611203650 - .long 3150274999 - .long 1227811337 - .long 1305665542 - .long 501947569 - .long 3516013822 - .long 1222407300 - .long 2005582702 - .long 2455622675 - .long 2611331084 - .long 1003895138 - .long 2737060348 - .long 2444814601 - .long 4011165404 - .long 616278055 - .long 927694873 - .long 2007790276 - .long 1179153400 - .long 594661906 - .long 3727363513 - .long 1232556110 - .long 1855389746 - .long 4015580553 - .long 2358306800 - .long 1189323812 - .long 3159759730 - .long 2465112221 - .long 3710779492 - .long 3736193810 - .long 421646305 - .long 2378647625 - .long 2024552164 - .long 635257146 - .long 3126591689 - .long 3177420325 - .long 843292611 - .long 462327955 - .long 4049104329 - .long 1270514292 - .long 1958216082 - .long 2059873354 - .long 1686585223 - .long 924655910 - .long 3803241362 - .long 2541028584 - .long 3916432164 - .long 4119746708 - .long 3373170446 - .long 1849311821 - .long 3311515428 - .long 787089873 - .long 3537897033 - .long 3944526121 - .long 2451373597 - .long 3698623643 - .long 2328063560 - .long 1574179747 - .long 2780826770 - .long 3594084947 - .long 607779899 - .long 3102279991 - .long 361159825 - .long 3148359494 - .long 1266686244 - .long 2893202598 - .long 1215559799 - .long 1909592686 - .long 722319651 - .long 2001751692 - .long 2533372489 - .long 1491437901 - .long 2431119599 - .long 3819185373 - .long 1444639302 - .long 4003503385 - .long 771777682 - .long 2982875802 - .long 567271902 - .long 3343403450 - .long 2889278605 - .long 3712039474 - .long 1543555365 - .long 1670784308 - .long 1134543805 - .long 2391839604 - .long 1483589915 - .long 3129111652 - .long 3087110731 - .long 3341568617 - .long 2269087610 - .long 488711913 - .long 2967179831 - .long 1963256009 - .long 1879254167 - .long 2388169939 - .long 243207925 - .long 977423826 - .long 1639392366 - .long 3926512018 - .long 3758508334 - .long 481372583 - .long 486415851 - .long 1954847653 - .long 3278784732 - .long 3558056740 - .long 3222049373 - .long 962745166 - .long 972831702 - .long 3909695307 - .long 2262602168 - .long 2821146184 - .long 2149131451 - .long 1925490332 - .long 1945663404 - .long 3524423319 - .long 230237041 - .long 1347325072 - .long 3295607 - .long 3850980665 - .long 3891326808 - .long 2753879342 - .long 460474083 - .long 2694650145 - .long 6591214 - .long 3406994035 - .long 3487686321 - .long 1212791388 - .long 920948167 - .long 1094332995 - .long 13182429 - .long 2519020775 - .long 2680405347 - .long 2425582776 - .long 1841896334 - .long 2188665991 - .long 26364858 - .long 743074255 - .long 1065843399 - .long 556198256 - .long 3683792669 - .long 82364686 - .long 52729717 - .long 1486148511 - .long 2131686798 - .long 1112396512 - .long 3072618042 - .long 164729372 - .long 105459434 - .long 2972297022 - .long 4263373596 - .long 2224793024 - .long 1850268788 - .long 329458745 - .long 210918868 - .long 1649626749 - .long 4231779897 - .long 154618752 - .long 3700537577 - .long 658917491 - .long 421837736 - .long 3299253499 - .long 4168592498 - .long 309237504 - .long 3106107858 - .long 1317834983 - .long 843675472 - .long 2303539703 - .long 4042217701 - .long 618475008 - .long 1917248420 - .long 2635669967 - .long 1687350944 - .long 312112110 - .long 3789468107 - .long 1236950016 - .long 3834496840 - .long 976372639 - .long 3374701889 - .long 624224221 - .long 3283968918 - .long 2473900033 - .long 3374026384 - .long 1952745279 - .long 2454436482 - .long 1248448442 - .long 2272970540 - .long 652832771 - .long 2453085473 - .long 3905490559 - .long 613905668 - .long 2496896884 - .long 250973784 - .long 1305665542 - .long 611203650 - .long 3516013822 - .long 1227811337 - .long 698826472 - .long 501947569 - .long 2611331084 - .long 1222407300 - .long 2737060348 - .long 2455622675 - .long 1397652945 - .long 1003895138 - .long 927694873 - .long 2444814601 - .long 1179153400 - .long 616278055 - .long 2795305890 - .long 2007790276 - .long 1855389746 - .long 594661906 - .long 2358306800 - .long 1232556110 - .long 1295644484 - .long 4015580553 - .long 3710779492 - .long 1189323812 - .long 421646305 - .long 2465112221 - .long 2591288968 - .long 3736193810 - .long 3126591689 - .long 2378647625 - .long 843292611 - .long 635257146 - .long 887610640 - .long 3177420325 - .long 1958216082 - .long 462327955 - .long 1686585223 - .long 1270514292 - .long 1775221280 - .long 2059873354 - .long 3916432164 - .long 924655910 - .long 3373170446 - .long 2541028584 - .long 3550442561 - .long 4119746708 - .long 3537897033 - .long 1849311821 - .long 2451373597 - .long 787089873 - .long 2805917826 - .long 3944526121 - .long 2780826770 - .long 3698623643 - .long 607779899 - .long 1574179747 - .long 1316868356 - .long 3594084947 - .long 1266686244 - .long 3102279991 - .long 1215559799 - .long 3148359494 - .long 2633736712 - .long 2893202598 - .long 2533372489 - .long 1909592686 - .long 2431119599 - .long 2001751692 - .long 972506129 - .long 1491437901 - .long 771777682 - .long 3819185373 - .long 567271902 - .long 4003503385 - .long 1945012259 - .long 2982875802 - .long 1543555365 - .long 3343403450 - .long 1134543805 - .long 3712039474 - .long 3890024518 - .long 1670784308 - .long 3087110731 - .long 2391839604 - .long 2269087610 - .long 3129111652 - .long 3485081741 - .long 3341568617 - .long 1879254167 - .long 488711913 - .long 243207925 - .long 1963256009 - .long 2675196186 - .long 2388169939 - .long 3758508334 - .long 977423826 - .long 486415851 - .long 3926512018 - .long 1055425077 - .long 481372583 - .long 3222049373 - .long 1954847653 - .long 972831702 - .long 3558056740 - .long 2110850155 - .long 962745166 - .long 2149131451 - .long 3909695307 - .long 1945663404 - .long 2821146184 - .long 4221700311 - .long 1925490332 - .long 3295607 - .long 3524423319 - .long 3891326808 - .long 1347325072 - .long 4148433327 - .long 3850980665 - .long 6591214 - .long 2753879342 - .long 3487686321 - .long 2694650145 - .long 4001899359 - .long 3406994035 - .long 13182429 - .long 1212791388 - .long 2680405347 - .long 1094332995 - .long 3708831422 - .long 2519020775 - .long 26364858 - .long 2425582776 - .long 1065843399 - .long 2188665991 - .long 3122695549 - .long 743074255 - .long 52729717 - .long 556198256 - .long 2131686798 - .long 82364686 - .long 1950423802 - .long 1486148511 - .long 105459434 - .long 1112396512 - .long 4263373596 - .long 164729372 - .long 3900847605 - .long 2972297022 - .long 210918868 - .long 2224793024 - .long 4231779897 - .long 329458745 - .long 3506727914 - .long 1649626749 - .long 421837736 - .long 154618752 - .long 4168592498 - .long 658917491 - .long 2718488532 - .long 3299253499 - .long 843675472 - .long 309237504 - .long 4042217701 - .long 1317834983 - .long 1142009769 - .long 2303539703 - .long 1687350944 - .long 618475008 - .long 3789468107 - .long 2635669967 - .long 2284019538 - .long 312112110 - .long 3374701889 - .long 1236950016 - .long 3283968918 - .long 976372639 - .long 273071781 - .long 624224221 - .long 2454436482 - .long 2473900033 - .long 2272970540 - .long 1952745279 - .long 546143563 - .long 1248448442 - .long 613905668 - .long 652832771 - .long 250973784 - .long 3905490559 - .long 1092287127 - .long 2496896884 - .long 1227811337 - .long 1305665542 - .long 501947569 - .long 3516013822 - .long 2184574254 - .long 698826472 - .long 2455622675 - .long 2611331084 - .long 1003895138 - .long 2737060348 - .long 74181213 - .long 1397652945 - .long 616278055 - .long 927694873 - .long 2007790276 - .long 1179153400 - .long 148362426 - .long 2795305890 - .long 1232556110 - .long 1855389746 - .long 4015580553 - .long 2358306800 - .long 296724853 - .long 1295644484 - .long 2465112221 - .long 3710779492 - .long 3736193810 - .long 421646305 - .long 593449707 - .long 2591288968 - .long 635257146 - .long 3126591689 - .long 3177420325 - .long 843292611 - .long 1186899415 - .long 887610640 - .long 1270514292 - .long 1958216082 - .long 2059873354 - .long 1686585223 - .long 2373798830 - .long 1775221280 - .long 2541028584 - .long 3916432164 - .long 4119746708 - .long 3373170446 - .long 452630365 - .long 3550442561 - .long 787089873 - .long 3537897033 - .long 3944526121 - .long 2451373597 - .long 905260731 - .long 2805917826 - .long 1574179747 - .long 2780826770 - .long 3594084947 - .long 607779899 - .long 1810521462 - .long 1316868356 - .long 3148359494 - .long 1266686244 - .long 2893202598 - .long 1215559799 - .long 3621042925 - .long 2633736712 - .long 2001751692 - .long 2533372489 - .long 1491437901 - .long 2431119599 - .long 2947118554 - .long 972506129 - .long 4003503385 - .long 771777682 - .long 2982875802 - .long 567271902 - .long 1599269812 - .long 1945012259 - .long 3712039474 - .long 1543555365 - .long 1670784308 - .long 1134543805 - .long 3198539624 - .long 3890024518 - .long 3129111652 - .long 3087110731 - .long 3341568617 - .long 2269087610 - .long 2102111953 - .long 3485081741 - .long 1963256009 - .long 1879254167 - .long 2388169939 - .long 243207925 - .long 4204223906 - .long 2675196186 - .long 3926512018 - .long 3758508334 - .long 481372583 - .long 486415851 - .long 4113480516 - .long 1055425077 - .long 3558056740 - .long 3222049373 - .long 962745166 - .long 972831702 - .long 3931993737 - .long 2110850155 - .long 2821146184 - .long 2149131451 - .long 1925490332 - .long 1945663404 - .long 3569020178 - .long 4221700311 - .long 1347325072 - .long 3295607 - .long 3850980665 - .long 3891326808 - .long 2843073060 - .long 4148433327 - .long 2694650145 - .long 6591214 - .long 3406994035 - .long 3487686321 - .long 1391178824 - .long 4001899359 - .long 1094332995 - .long 13182429 - .long 2519020775 - .long 2680405347 - .long 2782357648 - .long 3708831422 - .long 2188665991 - .long 26364858 - .long 743074255 - .long 1065843399 - .long 1269748001 - .long 3122695549 - .long 82364686 - .long 52729717 - .long 1486148511 - .long 2131686798 - .long 2539496002 - .long 1950423802 - .long 164729372 - .long 105459434 - .long 2972297022 - .long 4263373596 - .long 784024708 - .long 3900847605 - .long 329458745 - .long 210918868 - .long 1649626749 - .long 4231779897 - .long 1568049417 - .long 3506727914 - .long 658917491 - .long 421837736 - .long 3299253499 - .long 4168592498 - .long 3136098835 - .long 2718488532 - .long 1317834983 - .long 843675472 - .long 2303539703 - .long 4042217701 - .long 1977230375 - .long 1142009769 - .long 2635669967 - .long 1687350944 - .long 312112110 - .long 3789468107 - .long 3954460750 - .long 2284019538 - .long 976372639 - .long 3374701889 - .long 624224221 - .long 3283968918 - .long 3613954205 - .long 273071781 - .long 1952745279 - .long 2454436482 - .long 1248448442 - .long 2272970540 - .long 2932941114 - .long 546143563 - .long 3905490559 - .long 613905668 - .long 2496896884 - .long 250973784 - .long 1570914932 - .long 1092287127 - .long 3516013822 - .long 1227811337 - .long 698826472 - .long 501947569 - .long 3141829865 - .long 2184574254 - .long 2737060348 - .long 2455622675 - .long 1397652945 - .long 1003895138 - .long 1988692435 - .long 74181213 - .long 1179153400 - .long 616278055 - .long 2795305890 - .long 2007790276 - .long 3977384870 - .long 148362426 - .long 2358306800 - .long 1232556110 - .long 1295644484 - .long 4015580553 - .long 3659802444 - .long 296724853 - .long 421646305 - .long 2465112221 - .long 2591288968 - .long 3736193810 - .long 3024637593 - .long 593449707 - .long 843292611 - .long 635257146 - .long 887610640 - .long 3177420325 - .long 1754307891 - .long 1186899415 - .long 1686585223 - .long 1270514292 - .long 1775221280 - .long 2059873354 - .long 3508615783 - .long 2373798830 - .long 3373170446 - .long 2541028584 - .long 3550442561 - .long 4119746708 - .long 2722264270 - .long 452630365 - .long 2451373597 - .long 787089873 - .long 2805917826 - .long 3944526121 - .long 1149561244 - .long 905260731 - .long 607779899 - .long 1574179747 - .long 1316868356 - .long 3594084947 - .long 2299122488 - .long 1810521462 - .long 1215559799 - .long 3148359494 - .long 2633736712 - .long 2893202598 - .long 303277681 - .long 3621042925 - .long 2431119599 - .long 2001751692 - .long 972506129 - .long 1491437901 - .long 606555363 - .long 2947118554 - .long 567271902 - .long 4003503385 - .long 1945012259 - .long 2982875802 - .long 1213110727 - .long 1599269812 - .long 1134543805 - .long 3712039474 - .long 3890024518 - .long 1670784308 - .long 2426221454 - .long 3198539624 - .long 2269087610 - .long 3129111652 - .long 3485081741 - .long 3341568617 - .long 557475612 - .long 2102111953 - .long 243207925 - .long 1963256009 - .long 2675196186 - .long 2388169939 - .long 1114951224 - .long 4204223906 - .long 486415851 - .long 3926512018 - .long 1055425077 - .long 481372583 - .long 2229902448 - .long 4113480516 - .long 972831702 - .long 3558056740 - .long 2110850155 - .long 962745166 - .long 164837600 - .long 3931993737 - .long 1945663404 - .long 2821146184 - .long 4221700311 - .long 1925490332 - .long 329675200 - .long 3569020178 - .long 3891326808 - .long 1347325072 - .long 4148433327 - .long 3850980665 - .long 659350401 - .long 2843073060 - .long 3487686321 - .long 2694650145 - .long 4001899359 - .long 3406994035 - .long 1318700802 - .long 1391178824 - .long 2680405347 - .long 1094332995 - .long 3708831422 - .long 2519020775 - .long 2637401604 - .long 2782357648 - .long 1065843399 - .long 2188665991 - .long 3122695549 - .long 743074255 - .long 979835913 - .long 1269748001 - .long 2131686798 - .long 82364686 - .long 1950423802 - .long 1486148511 - .long 1959671827 - .long 2539496002 - .long 4263373596 - .long 164729372 - .long 3900847605 - .long 2972297022 - .long 3919343654 - .long 784024708 - .long 4231779897 - .long 329458745 - .long 3506727914 - .long 1649626749 - .long 3543720013 - .long 1568049417 - .long 4168592498 - .long 658917491 - .long 2718488532 - .long 3299253499 - .long 2792472730 - .long 3136098835 - .long 4042217701 - .long 1317834983 - .long 1142009769 - .long 2303539703 - .long 1289978165 - .long 1977230375 - .long 3789468107 - .long 2635669967 - .long 2284019538 - .long 312112110 - .long 2579956331 - .long 3954460750 - .long 3283968918 - .long 976372639 - .long 273071781 - .long 624224221 - .long 864945366 - .long 3613954205 - .long 2272970540 - .long 1952745279 - .long 546143563 - .long 1248448442 - .long 1729890733 - .long 2932941114 - .long 250973784 - .long 3905490559 - .long 1092287127 - .long 2496896884 - .long 3459781466 - .long 1570914932 - .long 501947569 - .long 3516013822 - .long 2184574254 - .long 698826472 - .long 2624595636 - .long 3141829865 - .long 1003895138 - .long 2737060348 - .long 74181213 - .long 1397652945 - .long 954223976 - .long 1988692435 - .long 2007790276 - .long 1179153400 - .long 148362426 - .long 2795305890 - .long 1908447953 - .long 3977384870 - .long 4015580553 - .long 2358306800 - .long 296724853 - .long 1295644484 - .long 3816895906 - .long 3659802444 - .long 3736193810 - .long 421646305 - .long 593449707 - .long 2591288968 - .long 3338824517 - .long 3024637593 - .long 3177420325 - .long 843292611 - .long 1186899415 - .long 887610640 - .long 2382681739 - .long 1754307891 - .long 2059873354 - .long 1686585223 - .long 2373798830 - .long 1775221280 - .long 470396183 - .long 3508615783 - .long 4119746708 - .long 3373170446 - .long 452630365 - .long 3550442561 - .long 940792367 - .long 2722264270 - .long 3944526121 - .long 2451373597 - .long 905260731 - .long 2805917826 - .long 1881584735 - .long 1149561244 - .long 3594084947 - .long 607779899 - .long 1810521462 - .long 1316868356 - .long 3763169470 - .long 2299122488 - .long 2893202598 - .long 1215559799 - .long 3621042925 - .long 2633736712 - .long 3231371645 - .long 303277681 - .long 1491437901 - .long 2431119599 - .long 2947118554 - .long 972506129 - .long 2167775995 - .long 606555363 - .long 2982875802 - .long 567271902 - .long 1599269812 - .long 1945012259 - .long 40584695 - .long 1213110727 - .long 1670784308 - .long 1134543805 - .long 3198539624 - .long 3890024518 - .long 81169391 - .long 2426221454 - .long 3341568617 - .long 2269087610 - .long 2102111953 - .long 3485081741 - .long 162338783 - .long 557475612 - .long 2388169939 - .long 243207925 - .long 4204223906 - .long 2675196186 - .long 324677567 - .long 1114951224 - .long 481372583 - .long 486415851 - .long 4113480516 - .long 1055425077 - .long 649355134 - .long 2229902448 - .long 962745166 - .long 972831702 - .long 3931993737 - .long 2110850155 - .long 1298710268 - .long 164837600 - .long 1925490332 - .long 1945663404 - .long 3569020178 - .long 4221700311 - .long 2597420537 - .long 329675200 - .long 3850980665 - .long 3891326808 - .long 2843073060 - .long 4148433327 - .long 899873778 - .long 659350401 - .long 3406994035 - .long 3487686321 - .long 1391178824 - .long 4001899359 - .long 1799747556 - .long 1318700802 - .long 2519020775 - .long 2680405347 - .long 2782357648 - .long 3708831422 - .long 3599495112 - .long 2637401604 - .long 743074255 - .long 1065843399 - .long 1269748001 - .long 3122695549 - .long 2904022928 - .long 979835913 - .long 1486148511 - .long 2131686798 - .long 2539496002 - .long 1950423802 - .long 1513078560 - .long 1959671827 - .long 2972297022 - .long 4263373596 - .long 784024708 - .long 3900847605 - .long 3026157121 - .long 3919343654 - .long 1649626749 - .long 4231779897 - .long 1568049417 - .long 3506727914 - .long 1757346946 - .long 3543720013 - .long 3299253499 - .long 4168592498 - .long 3136098835 - .long 2718488532 - .long 3514693892 - .long 2792472730 - .long 2303539703 - .long 4042217701 - .long 1977230375 - .long 1142009769 - .long 2734420489 - .long 1289978165 - .long 312112110 - .long 3789468107 - .long 3954460750 - .long 2284019538 - .long 1173873683 - .long 2579956331 - .long 624224221 - .long 3283968918 - .long 3613954205 - .long 273071781 - .long 2347747367 - .long 864945366 - .long 1248448442 - .long 2272970540 - .long 2932941114 - .long 546143563 - .long 400527438 - .long 1729890733 - .long 2496896884 - .long 250973784 - .long 1570914932 - .long 1092287127 - .long 801054876 - .long 3459781466 - .long 698826472 - .long 501947569 - .long 3141829865 - .long 2184574254 - .long 1602109753 - .long 2624595636 - .long 1397652945 - .long 1003895138 - .long 1988692435 - .long 74181213 - .long 3204219507 - .long 954223976 - .long 2795305890 - .long 2007790276 - .long 3977384870 - .long 148362426 - .long 2113471718 - .long 1908447953 - .long 1295644484 - .long 4015580553 - .long 3659802444 - .long 296724853 - .long 4226943436 - .long 3816895906 - .long 2591288968 - .long 3736193810 - .long 3024637593 - .long 593449707 - .long 4158919577 - .long 3338824517 - .long 887610640 - .long 3177420325 - .long 1754307891 - .long 1186899415 - .long 4022871858 - .long 2382681739 - .long 1775221280 - .long 2059873354 - .long 3508615783 - .long 2373798830 - .long 3750776420 - .long 470396183 - .long 3550442561 - .long 4119746708 - .long 2722264270 - .long 452630365 - .long 3206585544 - .long 940792367 - .long 2805917826 - .long 3944526121 - .long 1149561244 - .long 905260731 - .long 2118203793 - .long 1881584735 - .long 1316868356 - .long 3594084947 - .long 2299122488 - .long 1810521462 - .long 4236407587 - .long 3763169470 - .long 2633736712 - .long 2893202598 - .long 303277681 - .long 3621042925 - .long 4177847879 - .long 3231371645 - .long 972506129 - .long 1491437901 - .long 606555363 - .long 2947118554 - .long 4060728462 - .long 2167775995 - .long 1945012259 - .long 2982875802 - .long 1213110727 - .long 1599269812 - .long 3826489629 - .long 40584695 - .long 3890024518 - .long 1670784308 - .long 2426221454 - .long 3198539624 - .long 3358011962 - .long 81169391 - .long 3485081741 - .long 3341568617 - .long 557475612 - .long 2102111953 - .long 2421056629 - .long 162338783 - .long 2675196186 - .long 2388169939 - .long 1114951224 - .long 4204223906 - .long 547145963 - .long 324677567 - .long 1055425077 - .long 481372583 - .long 2229902448 - .long 4113480516 - .long 1094291926 - .long 649355134 - .long 2110850155 - .long 962745166 - .long 164837600 - .long 3931993737 - .long 2188583852 - .long 1298710268 - .long 4221700311 - .long 1925490332 - .long 329675200 - .long 3569020178 - .long 82200408 - .long 2597420537 - .long 4148433327 - .long 3850980665 - .long 659350401 - .long 2843073060 - .long 164400817 - .long 899873778 - .long 4001899359 - .long 3406994035 - .long 1318700802 - .long 1391178824 - .long 328801635 - .long 1799747556 - .long 3708831422 - .long 2519020775 - .long 2637401604 - .long 2782357648 - .long 657603271 - .long 3599495112 - .long 3122695549 - .long 743074255 - .long 979835913 - .long 1269748001 - .long 1315206542 - .long 2904022928 - .long 1950423802 - .long 1486148511 - .long 1959671827 - .long 2539496002 - .long 2630413084 - .long 1513078560 - .long 3900847605 - .long 2972297022 - .long 3919343654 - .long 784024708 - .long 965858873 - .long 3026157121 - .long 3506727914 - .long 1649626749 - .long 3543720013 - .long 1568049417 - .long 1931717747 - .long 1757346946 - .long 2718488532 - .long 3299253499 - .long 2792472730 - .long 3136098835 - .long 3863435494 - .long 3514693892 - .long 1142009769 - .long 2303539703 - .long 1289978165 - .long 1977230375 - .long 3431903692 - .long 2734420489 - .long 2284019538 - .long 312112110 - .long 2579956331 - .long 3954460750 - .long 2568840088 - .long 1173873683 - .long 273071781 - .long 624224221 - .long 864945366 - .long 3613954205 - .long 842712880 - .long 2347747367 - .long 546143563 - .long 1248448442 - .long 1729890733 - .long 2932941114 - .long 1685425760 - .long 400527438 - .long 1092287127 - .long 2496896884 - .long 3459781466 - .long 1570914932 - .long 3370851521 - .long 801054876 - .long 2184574254 - .long 698826472 - .long 2624595636 - .long 3141829865 - .long 2446735747 - .long 1602109753 - .long 74181213 - .long 1397652945 - .long 954223976 - .long 1988692435 - .long 598504198 - .long 3204219507 - .long 148362426 - .long 2795305890 - .long 1908447953 - .long 3977384870 - .long 1197008397 - .long 2113471718 - .long 296724853 - .long 1295644484 - .long 3816895906 - .long 3659802444 - .long 2394016794 - .long 4226943436 - .long 593449707 - .long 2591288968 - .long 3338824517 - .long 3024637593 - .long 493066293 - .long 4158919577 - .long 1186899415 - .long 887610640 - .long 2382681739 - .long 1754307891 - .long 986132586 - .long 4022871858 - .long 2373798830 - .long 1775221280 - .long 470396183 - .long 3508615783 - .long 1972265172 - .long 3750776420 - .long 452630365 - .long 3550442561 - .long 940792367 - .long 2722264270 - .long 3944530345 - .long 3206585544 - .long 905260731 - .long 2805917826 - .long 1881584735 - .long 1149561244 - .long 3594093395 - .long 2118203793 - .long 1810521462 - .long 1316868356 - .long 3763169470 - .long 2299122488 - .long 2893219494 - .long 4236407587 - .long 3621042925 - .long 2633736712 - .long 3231371645 - .long 303277681 - .long 1491471692 - .long 4177847879 - .long 2947118554 - .long 972506129 - .long 2167775995 - .long 606555363 - .long 2982943385 - .long 4060728462 - .long 1599269812 - .long 1945012259 - .long 40584695 - .long 1213110727 - .long 1670919475 - .long 3826489629 - .long 3198539624 - .long 3890024518 - .long 81169391 - .long 2426221454 - .long 3341838951 - .long 3358011962 - .long 2102111953 - .long 3485081741 - .long 162338783 - .long 557475612 - .long 2388710606 - .long 2421056629 - .long 4204223906 - .long 2675196186 - .long 324677567 - .long 1114951224 - .long 482453916 - .long 547145963 - .long 4113480516 - .long 1055425077 - .long 649355134 - .long 2229902448 - .long 964907833 - .long 1094291926 - .long 3931993737 - .long 2110850155 - .long 1298710268 - .long 164837600 - .long 1929815667 - .long 2188583852 - .long 3569020178 - .long 4221700311 - .long 2597420537 - .long 329675200 - .long 3859631335 - .long 82200408 - .long 2843073060 - .long 4148433327 - .long 899873778 - .long 659350401 - .long 3424295375 - .long 164400817 - .long 1391178824 - .long 4001899359 - .long 1799747556 - .long 1318700802 - .long 2553623455 - .long 328801635 - .long 2782357648 - .long 3708831422 - .long 3599495112 - .long 2637401604 - .long 812279614 - .long 657603271 - .long 1269748001 - .long 3122695549 - .long 2904022928 - .long 979835913 - .long 1624559229 - .long 1315206542 - .long 2539496002 - .long 1950423802 - .long 1513078560 - .long 1959671827 - .long 3249118458 - .long 2630413084 - .long 784024708 - .long 3900847605 - .long 3026157121 - .long 3919343654 - .long 2203269620 - .long 965858873 - .long 1568049417 - .long 3506727914 - .long 1757346946 - .long 3543720013 - .long 111571945 - .long 1931717747 - .long 3136098835 - .long 2718488532 - .long 3514693892 - .long 2792472730 - .long 223143890 - .long 3863435494 - .long 1977230375 - .long 1142009769 - .long 2734420489 - .long 1289978165 - .long 446287780 - .long 3431903692 - .long 3954460750 - .long 2284019538 - .long 1173873683 - .long 2579956331 - .long 892575561 - .long 2568840088 - .long 3613954205 - .long 273071781 - .long 2347747367 - .long 864945366 - .long 1785151123 - .long 842712880 - .long 2932941114 - .long 546143563 - .long 400527438 - .long 1729890733 - .long 3570302247 - .long 1685425760 - .long 1570914932 - .long 1092287127 - .long 801054876 - .long 3459781466 - .long 2845637198 - .long 3370851521 - .long 3141829865 - .long 2184574254 - .long 1602109753 - .long 2624595636 - .long 1396307100 - .long 2446735747 - .long 1988692435 - .long 74181213 - .long 3204219507 - .long 954223976 - .long 2792614201 - .long 598504198 - .long 3977384870 - .long 148362426 - .long 2113471718 - .long 1908447953 - .long 1290261106 - .long 1197008397 - .long 3659802444 - .long 296724853 - .long 4226943436 - .long 3816895906 - .long 2580522212 - .long 2394016794 - .long 3024637593 - .long 593449707 - .long 4158919577 - .long 3338824517 - .long 866077128 - .long 493066293 - .long 1754307891 - .long 1186899415 - .long 4022871858 - .long 2382681739 - .long 1732154256 - .long 986132586 - .long 3508615783 - .long 2373798830 - .long 3750776420 - .long 470396183 - .long 3464308513 - .long 1972265172 - .long 2722264270 - .long 452630365 - .long 3206585544 - .long 940792367 - .long 2633649730 - .long 3944530345 - .long 1149561244 - .long 905260731 - .long 2118203793 - .long 1881584735 - .long 972332164 - .long 3594093395 - .long 2299122488 - .long 1810521462 - .long 4236407587 - .long 3763169470 - .long 1944664328 - .long 2893219494 - .long 303277681 - .long 3621042925 - .long 4177847879 - .long 3231371645 - .long 3889328657 - .long 1491471692 - .long 606555363 - .long 2947118554 - .long 4060728462 - .long 2167775995 - .long 3483690018 - .long 2982943385 - .long 1213110727 - .long 1599269812 - .long 3826489629 - .long 40584695 - .long 2672412741 - .long 1670919475 - .long 2426221454 - .long 3198539624 - .long 3358011962 - .long 81169391 - .long 1049858187 - .long 3341838951 - .long 557475612 - .long 2102111953 - .long 2421056629 - .long 162338783 - .long 2099716375 - .long 2388710606 - .long 1114951224 - .long 4204223906 - .long 547145963 - .long 324677567 - .long 4199432751 - .long 482453916 - .long 2229902448 - .long 4113480516 - .long 1094291926 - .long 649355134 - .long 4103898207 - .long 964907833 - .long 164837600 - .long 3931993737 - .long 2188583852 - .long 1298710268 - .long 3912829119 - .long 1929815667 - .long 329675200 - .long 3569020178 - .long 82200408 - .long 2597420537 - .long 3530690942 - .long 3859631335 - .long 659350401 - .long 2843073060 - .long 164400817 - .long 899873778 - .long 2766414588 - .long 3424295375 - .long 1318700802 - .long 1391178824 - .long 328801635 - .long 1799747556 - .long 1237861880 - .long 2553623455 - .long 2637401604 - .long 2782357648 - .long 657603271 - .long 3599495112 - .long 2475723761 - .long 812279614 - .long 979835913 - .long 1269748001 - .long 1315206542 - .long 2904022928 - .long 656480226 - .long 1624559229 - .long 1959671827 - .long 2539496002 - .long 2630413084 - .long 1513078560 - .long 1312960453 - .long 3249118458 - .long 3919343654 - .long 784024708 - .long 965858873 - .long 3026157121 - .long 2625920907 - .long 2203269620 - .long 3543720013 - .long 1568049417 - .long 1931717747 - .long 1757346946 - .long 956874519 - .long 111571945 - .long 2792472730 - .long 3136098835 - .long 3863435494 - .long 3514693892 - .long 1913749038 - .long 223143890 - .long 1289978165 - .long 1977230375 - .long 3431903692 - .long 2734420489 - .long 3827498077 - .long 446287780 - .long 2579956331 - .long 3954460750 - .long 2568840088 - .long 1173873683 - .long 3360028859 - .long 892575561 - .long 864945366 - .long 3613954205 - .long 842712880 - .long 2347747367 - .long 2425090423 - .long 1785151123 - .long 1729890733 - .long 2932941114 - .long 1685425760 - .long 400527438 - .long 555213551 - .long 3570302247 - .long 3459781466 - .long 1570914932 - .long 3370851521 - .long 801054876 - .long 1110427102 - .long 2845637198 - .long 2624595636 - .long 3141829865 - .long 2446735747 - .long 1602109753 - .long 2220854205 - .long 1396307100 - .long 954223976 - .long 1988692435 - .long 598504198 - .long 3204219507 - .long 146741115 - .long 2792614201 - .long 1908447953 - .long 3977384870 - .long 1197008397 - .long 2113471718 - .long 293482231 - .long 1290261106 - .long 3816895906 - .long 3659802444 - .long 2394016794 - .long 4226943436 - .long 586964463 - .long 2580522212 - .long 3338824517 - .long 3024637593 - .long 493066293 - .long 4158919577 - .long 1173928927 - .long 866077128 - .long 2382681739 - .long 1754307891 - .long 986132586 - .long 4022871858 - .long 2347857855 - .long 1732154256 - .long 470396183 - .long 3508615783 - .long 1972265172 - .long 3750776420 - .long 400748414 - .long 3464308513 - .long 940792367 - .long 2722264270 - .long 3944530345 - .long 3206585544 - .long 801496828 - .long 2633649730 - .long 1881584735 - .long 1149561244 - .long 3594093395 - .long 2118203793 - .long 1602993657 - .long 972332164 - .long 3763169470 - .long 2299122488 - .long 2893219494 - .long 4236407587 - .long 3205987314 - .long 1944664328 - .long 3231371645 - .long 303277681 - .long 1491471692 - .long 4177847879 - .long 2117007332 - .long 3889328657 - .long 2167775995 - .long 606555363 - .long 2982943385 - .long 4060728462 - .long 4234014665 - .long 3483690018 - .long 40584695 - .long 1213110727 - .long 1670919475 - .long 3826489629 - .long 4173062034 - .long 2672412741 - .long 81169391 - .long 2426221454 - .long 3341838951 - .long 3358011962 - .long 4051156773 - .long 1049858187 - .long 162338783 - .long 557475612 - .long 2388710606 - .long 2421056629 - .long 3807346250 - .long 2099716375 - .long 324677567 - .long 1114951224 - .long 482453916 - .long 547145963 - .long 3319725204 - .long 4199432751 - .long 649355134 - .long 2229902448 - .long 964907833 - .long 1094291926 - .long 2344483112 - .long 4103898207 - .long 1298710268 - .long 164837600 - .long 1929815667 - .long 2188583852 - .long 393998928 - .long 3912829119 - .long 2597420537 - .long 329675200 - .long 3859631335 - .long 82200408 - .long 787997856 - .long 3530690942 - .long 899873778 - .long 659350401 - .long 3424295375 - .long 164400817 - .long 1575995713 - .long 2766414588 - .long 1799747556 - .long 1318700802 - .long 2553623455 - .long 328801635 - .long 3151991427 - .long 1237861880 - .long 3599495112 - .long 2637401604 - .long 812279614 - .long 657603271 - .long 2009015559 - .long 2475723761 - .long 2904022928 - .long 979835913 - .long 1624559229 - .long 1315206542 - .long 4018031118 - .long 656480226 - .long 1513078560 - .long 1959671827 - .long 3249118458 - .long 2630413084 - .long 3741094941 - .long 1312960453 - .long 3026157121 - .long 3919343654 - .long 2203269620 - .long 965858873 - .long 3187222587 - .long 2625920907 - .long 1757346946 - .long 3543720013 - .long 111571945 - .long 1931717747 - .long 2079477878 - .long 956874519 - .long 3514693892 - .long 2792472730 - .long 223143890 - .long 3863435494 - .long 4158955756 - .long 1913749038 - .long 2734420489 - .long 1289978165 - .long 446287780 - .long 3431903692 - .long 4022944216 - .long 3827498077 - .long 1173873683 - .long 2579956331 - .long 892575561 - .long 2568840088 - .long 3750921137 - .long 3360028859 - .long 2347747367 - .long 864945366 - .long 1785151123 - .long 842712880 - .long 3206874979 - .long 2425090423 - .long 400527438 - .long 1729890733 - .long 3570302247 - .long 1685425760 - .long 2118782663 - .long 555213551 - .long 801054876 - .long 3459781466 - .long 2845637198 - .long 3370851521 - .long 4237565327 - .long 1110427102 - .long 1602109753 - .long 2624595636 - .long 1396307100 - .long 2446735747 - .long 4180163359 - .long 2220854205 - .long 3204219507 - .long 954223976 - .long 2792614201 - .long 598504198 - .long 4065359423 - .long 146741115 - .long 2113471718 - .long 1908447953 - .long 1290261106 - .long 1197008397 - .long 3835751551 - .long 293482231 - .long 4226943436 - .long 3816895906 - .long 2580522212 - .long 2394016794 - .long 3376535807 - .long 586964463 - .long 4158919577 - .long 3338824517 - .long 866077128 - .long 493066293 - .long 2458104319 - .long 1173928927 - .long 4022871858 - .long 2382681739 - .long 1732154256 - .long 986132586 - .long 621241343 - .long 2347857855 - .long 3750776420 - .long 470396183 - .long 3464308513 - .long 1972265172 - .long 1242482686 - .long 400748414 - .long 3206585544 - .long 940792367 - .long 2633649730 - .long 3944530345 - .long 2484965372 - .long 801496828 - .long 2118203793 - .long 1881584735 - .long 972332164 - .long 3594093395 - .long 674963448 - .long 1602993657 - .long 4236407587 - .long 3763169470 - .long 1944664328 - .long 2893219494 - .long 1349926897 - .long 3205987314 - .long 4177847879 - .long 3231371645 - .long 3889328657 - .long 1491471692 - .long 2699853794 - .long 2117007332 - .long 4060728462 - .long 2167775995 - .long 3483690018 - .long 2982943385 - .long 1104740292 - .long 4234014665 - .long 3826489629 - .long 40584695 - .long 2672412741 - .long 1670919475 - .long 2209480585 - .long 4173062034 - .long 3358011962 - .long 81169391 - .long 1049858187 - .long 3341838951 - .long 123993874 - .long 4051156773 - .long 2421056629 - .long 162338783 - .long 2099716375 - .long 2388710606 - .long 247987749 - .long 3807346250 - .long 547145963 - .long 324677567 - .long 4199432751 - .long 482453916 - .long 495975499 - .long 3319725204 - .long 1094291926 - .long 649355134 - .long 4103898207 - .long 964907833 - .long 991950999 - .long 2344483112 - .long 2188583852 - .long 1298710268 - .long 3912829119 - .long 1929815667 - .long 1983901999 - .long 393998928 - .long 82200408 - .long 2597420537 - .long 3530690942 - .long 3859631335 - .long 3967803999 - .long 787997856 - .long 164400817 - .long 899873778 - .long 2766414588 - .long 3424295375 - .long 3640640703 - .long 1575995713 - .long 328801635 - .long 1799747556 - .long 1237861880 - .long 2553623455 - .long 2986314111 - .long 3151991427 - .long 657603271 - .long 3599495112 - .long 2475723761 - .long 812279614 - .long 1677660927 - .long 2009015559 - .long 1315206542 - .long 2904022928 - .long 656480226 - .long 1624559229 - .long 3355321855 - .long 4018031118 - .long 2630413084 - .long 1513078560 - .long 1312960453 - .long 3249118458 - .long 2415676415 - .long 3741094941 - .long 965858873 - .long 3026157121 - .long 2625920907 - .long 2203269620 - .long 536385535 - .long 3187222587 - .long 1931717747 - .long 1757346946 - .long 956874519 - .long 111571945 - .long 1072771071 - .long 2079477878 - .long 3863435494 - .long 3514693892 - .long 1913749038 - .long 223143890 - .long 2145542143 - .long 4158955756 - .long 3431903692 - .long 2734420489 - .long 3827498077 - .long 446287780 - .long 4291084286 - .long 4022944216 - .long 2568840088 - .long 1173873683 - .long 3360028859 - .long 892575561 - .long 4287201277 - .long 3750921137 - .long 842712880 - .long 2347747367 - .long 2425090423 - .long 1785151123 - .long 4279435259 - .long 3206874979 - .long 1685425760 - .long 400527438 - .long 555213551 - .long 3570302247 - .long 4263903223 - .long 2118782663 - .long 3370851521 - .long 801054876 - .long 1110427102 - .long 2845637198 - .long 4232839151 - .long 4237565327 - .long 2446735747 - .long 1602109753 - .long 2220854205 - .long 1396307100 - .long 4170711006 - .long 4180163359 - .long 598504198 - .long 3204219507 - .long 146741115 - .long 2792614201 - .long 4046454716 - .long 4065359423 - .long 1197008397 - .long 2113471718 - .long 293482231 - .long 1290261106 - .long 3797942136 - .long 3835751551 - .long 2394016794 - .long 4226943436 - .long 586964463 - .long 2580522212 - .long 3300916976 - .long 3376535807 - .long 493066293 - .long 4158919577 - .long 1173928927 - .long 866077128 - .long 2306866656 - .long 2458104319 - .long 986132586 - .long 4022871858 - .long 2347857855 - .long 1732154256 - .long 318766016 - .long 621241343 - .long 1972265172 - .long 3750776420 - .long 400748414 - .long 3464308513 - .long 637532033 - .long 1242482686 - .long 3944530345 - .long 3206585544 - .long 801496828 - .long 2633649730 - .long 1275064066 - .long 2484965372 - .long 3594093395 - .long 2118203793 - .long 1602993657 - .long 972332164 - .long 2550128133 - .long 674963448 - .long 2893219494 - .long 4236407587 - .long 3205987314 - .long 1944664328 - .long 805288971 - .long 1349926897 - .long 1491471692 - .long 4177847879 - .long 2117007332 - .long 3889328657 - .long 1610577942 - .long 2699853794 - .long 2982943385 - .long 4060728462 - .long 4234014665 - .long 3483690018 - .long 3221155884 - .long 1104740292 - .long 1670919475 - .long 3826489629 - .long 4173062034 - .long 2672412741 - .long 2147344473 - .long 2209480585 - .long 3341838951 - .long 3358011962 - .long 4051156773 - .long 1049858187 - .long 4294688947 - .long 123993874 - .long 2388710606 - .long 2421056629 - .long 3807346250 - .long 2099716375 - .long 4294410598 - .long 247987749 - .long 482453916 - .long 547145963 - .long 3319725204 - .long 4199432751 - .long 4293853900 - .long 495975499 - .long 964907833 - .long 1094291926 - .long 2344483112 - .long 4103898207 - .long 4292740504 - .long 991950999 - .long 1929815667 - .long 2188583852 - .long 393998928 - .long 3912829119 - .long 4290513712 - .long 1983901999 - .long 3859631335 - .long 82200408 - .long 787997856 - .long 3530690942 - .long 4286060128 - .long 3967803999 - .long 3424295375 - .long 164400817 - .long 1575995713 - .long 2766414588 - .long 4277152960 - .long 3640640703 - .long 2553623455 - .long 328801635 - .long 3151991427 - .long 1237861880 - .long 4259338624 - .long 2986314111 - .long 812279614 - .long 657603271 - .long 2009015559 - .long 2475723761 - .long 4223709953 - .long 1677660927 - .long 1624559229 - .long 1315206542 - .long 4018031118 - .long 656480226 - .long 4152452611 - .long 3355321855 - .long 3249118458 - .long 2630413084 - .long 3741094941 - .long 1312960453 - .long 4009937927 - .long 2415676415 - .long 2203269620 - .long 965858873 - .long 3187222587 - .long 2625920907 - .long 3724908559 - .long 536385535 - .long 111571945 - .long 1931717747 - .long 2079477878 - .long 956874519 - .long 3154849823 - .long 1072771071 - .long 223143890 - .long 3863435494 - .long 4158955756 - .long 1913749038 - .long 2014732351 - .long 2145542143 - .long 446287780 - .long 3431903692 - .long 4022944216 - .long 3827498077 - .long 4029464703 - .long 4291084286 - .long 892575561 - .long 2568840088 - .long 3750921137 - .long 3360028859 - .long 3763962110 - .long 4287201277 - .long 1785151123 - .long 842712880 - .long 3206874979 - .long 2425090423 - .long 3232956925 - .long 4279435259 - .long 3570302247 - .long 1685425760 - .long 2118782663 - .long 555213551 - .long 2170946555 - .long 4263903223 - .long 2845637198 - .long 3370851521 - .long 4237565327 - .long 1110427102 - .long 46925815 - .long 4232839151 - .long 1396307100 - .long 2446735747 - .long 4180163359 - .long 2220854205 - .long 93851631 - .long 4170711006 - .long 2792614201 - .long 598504198 - .long 4065359423 - .long 146741115 - .long 187703262 - .long 4046454716 - .long 1290261106 - .long 1197008397 - .long 3835751551 - .long 293482231 - .long 375406524 - .long 3797942136 - .long 2580522212 - .long 2394016794 - .long 3376535807 - .long 586964463 - .long 750813049 - .long 3300916976 - .long 866077128 - .long 493066293 - .long 2458104319 - .long 1173928927 - .long 1501626098 - .long 2306866656 - .long 1732154256 - .long 986132586 - .long 621241343 - .long 2347857855 - .long 3003252197 - .long 318766016 - .long 3464308513 - .long 1972265172 - .long 1242482686 - .long 400748414 - .long 1711537099 - .long 637532033 - .long 2633649730 - .long 3944530345 - .long 2484965372 - .long 801496828 - .long 3423074199 - .long 1275064066 - .long 972332164 - .long 3594093395 - .long 674963448 - .long 1602993657 - .long 2551181103 - .long 2550128133 - .long 1944664328 - .long 2893219494 - .long 1349926897 - .long 3205987314 - .long 807394910 - .long 805288971 - .long 3889328657 - .long 1491471692 - .long 2699853794 - .long 2117007332 - .long 1614789820 - .long 1610577942 - .long 3483690018 - .long 2982943385 - .long 1104740292 - .long 4234014665 - .long 3229579640 - .long 3221155884 - .long 2672412741 - .long 1670919475 - .long 2209480585 - .long 4173062034 - .long 2164191985 - .long 2147344473 - .long 1049858187 - .long 3341838951 - .long 123993874 - .long 4051156773 - .long 33416674 - .long 4294688947 - .long 2099716375 - .long 2388710606 - .long 247987749 - .long 3807346250 - .long 66833348 - .long 4294410598 - .long 4199432751 - .long 482453916 - .long 495975499 - .long 3319725204 - .long 133666696 - .long 4293853900 - .long 4103898207 - .long 964907833 - .long 991950999 - .long 2344483112 - .long 267333393 - .long 4292740504 - .long 3912829119 - .long 1929815667 - .long 1983901999 - .long 393998928 - .long 534666787 - .long 4290513712 - .long 3530690942 - .long 3859631335 - .long 3967803999 - .long 787997856 - .long 1069333574 - .long 4286060128 - .long 2766414588 - .long 3424295375 - .long 3640640703 - .long 1575995713 - .long 2138667148 - .long 4277152960 - .long 1237861880 - .long 2553623455 - .long 2986314111 - .long 3151991427 - .long 4277334296 - .long 4259338624 - .long 2475723761 - .long 812279614 - .long 1677660927 - .long 2009015559 - .long 4259701297 - .long 4223709953 - .long 656480226 - .long 1624559229 - .long 3355321855 - .long 4018031118 - .long 4224435298 - .long 4152452611 - .long 1312960453 - .long 3249118458 - .long 2415676415 - .long 3741094941 - .long 4153903301 - .long 4009937927 - .long 2625920907 - .long 2203269620 - .long 536385535 - .long 3187222587 - .long 4012839307 - .long 3724908559 - .long 956874519 - .long 111571945 - .long 1072771071 - .long 2079477878 - .long 3730711318 - .long 3154849823 - .long 1913749038 - .long 223143890 - .long 2145542143 - .long 4158955756 - .long 3166455341 - .long 2014732351 - .long 3827498077 - .long 446287780 - .long 4291084286 - .long 4022944216 - .long 2037943386 - .long 4029464703 - .long 3360028859 - .long 892575561 - .long 4287201277 - .long 3750921137 - .long 4075886773 - .long 3763962110 - .long 2425090423 - .long 1785151123 - .long 4279435259 - .long 3206874979 - .long 3856806251 - .long 3232956925 - .long 555213551 - .long 3570302247 - .long 4263903223 - .long 2118782663 - .long 3418645206 - .long 2170946555 - .long 1110427102 - .long 2845637198 - .long 4232839151 - .long 4237565327 - .long 2542323117 - .long 46925815 - .long 2220854205 - .long 1396307100 - .long 4170711006 - .long 4180163359 - .long 789678938 - .long 93851631 - .long 146741115 - .long 2792614201 - .long 4046454716 - .long 4065359423 - .long 1579357876 - .long 187703262 - .long 293482231 - .long 1290261106 - .long 3797942136 - .long 3835751551 - .long 3158715752 - .long 375406524 - .long 586964463 - .long 2580522212 - .long 3300916976 - .long 3376535807 - .long 2022464208 - .long 750813049 - .long 1173928927 - .long 866077128 - .long 2306866656 - .long 2458104319 - .long 4044928416 - .long 1501626098 - .long 2347857855 - .long 1732154256 - .long 318766016 - .long 621241343 - .long 3794889537 - .long 3003252197 - .long 400748414 - .long 3464308513 - .long 637532033 - .long 1242482686 - .long 3294811778 - .long 1711537099 - .long 801496828 - .long 2633649730 - .long 1275064066 - .long 2484965372 - .long 2294656261 - .long 3423074199 - .long 1602993657 - .long 972332164 - .long 2550128133 - .long 674963448 - .long 294345226 - .long 2551181103 - .long 3205987314 - .long 1944664328 - .long 805288971 - .long 1349926897 - .long 588690452 - .long 807394910 - .long 2117007332 - .long 3889328657 - .long 1610577942 - .long 2699853794 - .long 1177380905 - .long 1614789820 - .long 4234014665 - .long 3483690018 - .long 3221155884 - .long 1104740292 - .long 2354761811 - .long 3229579640 - .long 4173062034 - .long 2672412741 - .long 2147344473 - .long 2209480585 - .long 414556326 - .long 2164191985 - .long 4051156773 - .long 1049858187 - .long 4294688947 - .long 123993874 - .long 829112653 - .long 33416674 - .long 3807346250 - .long 2099716375 - .long 4294410598 - .long 247987749 - .long 1658225307 - .long 66833348 - .long 3319725204 - .long 4199432751 - .long 4293853900 - .long 495975499 - .long 3316450614 - .long 133666696 - .long 2344483112 - .long 4103898207 - .long 4292740504 - .long 991950999 - .long 2337933933 - .long 267333393 - .long 393998928 - .long 3912829119 - .long 4290513712 - .long 1983901999 - .long 380900570 - .long 534666787 - .long 787997856 - .long 3530690942 - .long 4286060128 - .long 3967803999 - .long 761801140 - .long 1069333574 - .long 1575995713 - .long 2766414588 - .long 4277152960 - .long 3640640703 - .long 1523602280 - .long 2138667148 - .long 3151991427 - .long 1237861880 - .long 4259338624 - .long 2986314111 - .long 3047204561 - .long 4277334296 - .long 2009015559 - .long 2475723761 - .long 4223709953 - .long 1677660927 - .long 1799441827 - .long 4259701297 - .long 4018031118 - .long 656480226 - .long 4152452611 - .long 3355321855 - .long 3598883655 - .long 4224435298 - .long 3741094941 - .long 1312960453 - .long 4009937927 - .long 2415676415 - .long 2902800015 - .long 4153903301 - .long 3187222587 - .long 2625920907 - .long 3724908559 - .long 536385535 - .long 1510632735 - .long 4012839307 - .long 2079477878 - .long 956874519 - .long 3154849823 - .long 1072771071 - .long 3021265470 - .long 3730711318 - .long 4158955756 - .long 1913749038 - .long 2014732351 - .long 2145542143 - .long 1747563645 - .long 3166455341 - .long 4022944216 - .long 3827498077 - .long 4029464703 - .long 4291084286 - .long 3495127291 - .long 2037943386 - .long 3750921137 - .long 3360028859 - .long 3763962110 - .long 4287201277 - .long 2695287286 - .long 4075886773 - .long 3206874979 - .long 2425090423 - .long 3232956925 - .long 4279435259 - .long 1095607277 - .long 3856806251 - .long 2118782663 - .long 555213551 - .long 2170946555 - .long 4263903223 - .long 2191214555 - .long 3418645206 - .long 4237565327 - .long 1110427102 - .long 46925815 - .long 4232839151 - .long 87461814 - .long 2542323117 - .long 4180163359 - .long 2220854205 - .long 93851631 - .long 4170711006 - .long 174923629 - .long 789678938 - .long 4065359423 - .long 146741115 - .long 187703262 - .long 4046454716 - .long 349847258 - .long 1579357876 - .long 3835751551 - .long 293482231 - .long 375406524 - .long 3797942136 - .long 699694516 - .long 3158715752 - .long 3376535807 - .long 586964463 - .long 750813049 - .long 3300916976 - .long 1399389033 - .long 2022464208 - .long 2458104319 - .long 1173928927 - .long 1501626098 - .long 2306866656 - .long 2798778067 - .long 4044928416 - .long 621241343 - .long 2347857855 - .long 3003252197 - .long 318766016 - .long 1302588838 - .long 3794889537 - .long 1242482686 - .long 400748414 - .long 1711537099 - .long 637532033 - .long 2605177677 - .long 3294811778 - .long 2484965372 - .long 801496828 - .long 3423074199 - .long 1275064066 - .long 915388059 - .long 2294656261 - .long 674963448 - .long 1602993657 - .long 2551181103 - .long 2550128133 - .long 1830776118 - .long 294345226 - .long 1349926897 - .long 3205987314 - .long 807394910 - .long 805288971 - .long 3661552236 - .long 588690452 - .long 2699853794 - .long 2117007332 - .long 1614789820 - .long 1610577942 - .long 3028137177 - .long 1177380905 - .long 1104740292 - .long 4234014665 - .long 3229579640 - .long 3221155884 - .long 1761307059 - .long 2354761811 - .long 2209480585 - .long 4173062034 - .long 2164191985 - .long 2147344473 - .long 3522614119 - .long 414556326 - .long 123993874 - .long 4051156773 - .long 33416674 - .long 4294688947 - .long 2750260943 - .long 829112653 - .long 247987749 - .long 3807346250 - .long 66833348 - .long 4294410598 - .long 1205554591 - .long 1658225307 - .long 495975499 - .long 3319725204 - .long 133666696 - .long 4293853900 - .long 2411109183 - .long 3316450614 - .long 991950999 - .long 2344483112 - .long 267333393 - .long 4292740504 - .long 527251070 - .long 2337933933 - .long 1983901999 - .long 393998928 - .long 534666787 - .long 4290513712 - .long 1054502141 - .long 380900570 - .long 3967803999 - .long 787997856 - .long 1069333574 - .long 4286060128 - .long 2109004283 - .long 761801140 - .long 3640640703 - .long 1575995713 - .long 2138667148 - .long 4277152960 - .long 4218008566 - .long 1523602280 - .long 2986314111 - .long 3151991427 - .long 4277334296 - .long 4259338624 - .long 4141049836 - .long 3047204561 - .long 1677660927 - .long 2009015559 - .long 4259701297 - .long 4223709953 - .long 3987132377 - .long 1799441827 - .long 3355321855 - .long 4018031118 - .long 4224435298 - .long 4152452611 - .long 3679297459 - .long 3598883655 - .long 2415676415 - .long 3741094941 - .long 4153903301 - .long 4009937927 - .long 3063627623 - .long 2902800015 - .long 536385535 - .long 3187222587 - .long 4012839307 - .long 3724908559 - .long 1832287951 - .long 1510632735 - .long 1072771071 - .long 2079477878 - .long 3730711318 - .long 3154849823 - .long 3664575902 - .long 3021265470 - .long 2145542143 - .long 4158955756 - .long 3166455341 - .long 2014732351 - .long 3034184508 - .long 1747563645 - .long 4291084286 - .long 4022944216 - .long 2037943386 - .long 4029464703 - .long 1773401721 - .long 3495127291 - .long 4287201277 - .long 3750921137 - .long 4075886773 - .long 3763962110 - .long 3546803442 - .long 2695287286 - .long 4279435259 - .long 3206874979 - .long 3856806251 - .long 3232956925 - .long 2798639588 - .long 1095607277 - .long 4263903223 - .long 2118782663 - .long 3418645206 - .long 2170946555 - .long 1302311881 - .long 2191214555 - .long 4232839151 - .long 4237565327 - .long 2542323117 - .long 46925815 - .long 2604623763 - .long 87461814 - .long 4170711006 - .long 4180163359 - .long 789678938 - .long 93851631 - .long 914280231 - .long 174923629 - .long 4046454716 - .long 4065359423 - .long 1579357876 - .long 187703262 - .long 1828560463 - .long 349847258 - .long 3797942136 - .long 3835751551 - .long 3158715752 - .long 375406524 - .long 3657120927 - .long 699694516 - .long 3300916976 - .long 3376535807 - .long 2022464208 - .long 750813049 - .long 3019274558 - .long 1399389033 - .long 2306866656 - .long 2458104319 - .long 4044928416 - .long 1501626098 - .long 1743581820 - .long 2798778067 - .long 318766016 - .long 621241343 - .long 3794889537 - .long 3003252197 - .long 3487163641 - .long 1302588838 - .long 637532033 - .long 1242482686 - .long 3294811778 - .long 1711537099 - .long 2679359986 - .long 2605177677 - .long 1275064066 - .long 2484965372 - .long 2294656261 - .long 3423074199 - .long 1063752677 - .long 915388059 - .long 2550128133 - .long 674963448 - .long 294345226 - .long 2551181103 - .long 2127505355 - .long 1830776118 - .long 805288971 - .long 1349926897 - .long 588690452 - .long 807394910 - .long 4255010710 - .long 3661552236 - .long 1610577942 - .long 2699853794 - .long 1177380905 - .long 1614789820 - .long 4215054124 - .long 3028137177 - .long 3221155884 - .long 1104740292 - .long 2354761811 - .long 3229579640 - .long 4135140952 - .long 1761307059 - .long 2147344473 - .long 2209480585 - .long 414556326 - .long 2164191985 - .long 3975314608 - .long 3522614119 - .long 4294688947 - .long 123993874 - .long 829112653 - .long 33416674 - .long 3655661921 - .long 2750260943 - .long 4294410598 - .long 247987749 - .long 1658225307 - .long 66833348 - .long 3016356546 - .long 1205554591 - .long 4293853900 - .long 495975499 - .long 3316450614 - .long 133666696 - .long 1737745796 - .long 2411109183 - .long 4292740504 - .long 991950999 - .long 2337933933 - .long 267333393 - .long 3475491593 - .long 527251070 - .long 4290513712 - .long 1983901999 - .long 380900570 - .long 534666787 - .long 2656015891 - .long 1054502141 - .long 4286060128 - .long 3967803999 - .long 761801140 - .long 1069333574 - .long 1017064486 - .long 2109004283 - .long 4277152960 - .long 3640640703 - .long 1523602280 - .long 2138667148 - .long 2034128973 - .long 4218008566 - .long 4259338624 - .long 2986314111 - .long 3047204561 - .long 4277334296 - .long 4068257947 - .long 4141049836 - .long 4223709953 - .long 1677660927 - .long 1799441827 - .long 4259701297 - .long 3841548598 - .long 3987132377 - .long 4152452611 - .long 3355321855 - .long 3598883655 - .long 4224435298 - .long 3388129901 - .long 3679297459 - .long 4009937927 - .long 2415676415 - .long 2902800015 - .long 4153903301 - .long 2481292507 - .long 3063627623 - .long 3724908559 - .long 536385535 - .long 1510632735 - .long 4012839307 - .long 667617719 - .long 1832287951 - .long 3154849823 - .long 1072771071 - .long 3021265470 - .long 3730711318 - .long 1335235438 - .long 3664575902 - .long 2014732351 - .long 2145542143 - .long 1747563645 - .long 3166455341 - .long 2670470877 - .long 3034184508 - .long 4029464703 - .long 4291084286 - .long 3495127291 - .long 2037943386 - .long 1045974458 - .long 1773401721 - .long 3763962110 - .long 4287201277 - .long 2695287286 - .long 4075886773 - .long 2091948916 - .long 3546803442 - .long 3232956925 - .long 4279435259 - .long 1095607277 - .long 3856806251 - .long 4183897833 - .long 2798639588 - .long 2170946555 - .long 4263903223 - .long 2191214555 - .long 3418645206 - .long 4072828371 - .long 1302311881 - .long 46925815 - .long 4232839151 - .long 87461814 - .long 2542323117 - .long 3850689447 - .long 2604623763 - .long 93851631 - .long 4170711006 - .long 174923629 - .long 789678938 - .long 3406411599 - .long 914280231 - .long 187703262 - .long 4046454716 - .long 349847258 - .long 1579357876 - .long 2517855902 - .long 1828560463 - .long 375406524 - .long 3797942136 - .long 699694516 - .long 3158715752 - .long 740744509 - .long 3657120927 - .long 750813049 - .long 3300916976 - .long 1399389033 - .long 2022464208 - .long 1481489018 - .long 3019274558 - .long 1501626098 - .long 2306866656 - .long 2798778067 - .long 4044928416 - .long 2962978036 - .long 1743581820 - .long 3003252197 - .long 318766016 - .long 1302588838 - .long 3794889537 - .long 1630988776 - .long 3487163641 - .long 1711537099 - .long 637532033 - .long 2605177677 - .long 3294811778 - .long 3261977553 - .long 2679359986 - .long 3423074199 - .long 1275064066 - .long 915388059 - .long 2294656261 - .long 2228987811 - .long 1063752677 - .long 2551181103 - .long 2550128133 - .long 1830776118 - .long 294345226 - .long 163008326 - .long 2127505355 - .long 807394910 - .long 805288971 - .long 3661552236 - .long 588690452 - .long 326016652 - .long 4255010710 - .long 1614789820 - .long 1610577942 - .long 3028137177 - .long 1177380905 - .long 652033304 - .long 4215054124 - .long 3229579640 - .long 3221155884 - .long 1761307059 - .long 2354761811 - .long 1304066609 - .long 4135140952 - .long 2164191985 - .long 2147344473 - .long 3522614119 - .long 414556326 - .long 2608133219 - .long 3975314608 - .long 33416674 - .long 4294688947 - .long 2750260943 - .long 829112653 - .long 921299143 - .long 3655661921 - .long 66833348 - .long 4294410598 - .long 1205554591 - .long 1658225307 - .long 1842598287 - .long 3016356546 - .long 133666696 - .long 4293853900 - .long 2411109183 - .long 3316450614 - .long 3685196575 - .long 1737745796 - .long 267333393 - .long 4292740504 - .long 527251070 - .long 2337933933 - .long 3075425855 - .long 3475491593 - .long 534666787 - .long 4290513712 - .long 1054502141 - .long 380900570 - .long 1855884414 - .long 2656015891 - .long 1069333574 - .long 4286060128 - .long 2109004283 - .long 761801140 - .long 3711768829 - .long 1017064486 - .long 2138667148 - .long 4277152960 - .long 4218008566 - .long 1523602280 - .long 3128570363 - .long 2034128973 - .long 4277334296 - .long 4259338624 - .long 4141049836 - .long 3047204561 - .long 1962173430 - .long 4068257947 - .long 4259701297 - .long 4223709953 - .long 3987132377 - .long 1799441827 - .long 3924346860 - .long 3841548598 - .long 4224435298 - .long 4152452611 - .long 3679297459 - .long 3598883655 - .long 3553726425 - .long 3388129901 - .long 4153903301 - .long 4009937927 - .long 3063627623 - .long 2902800015 - .long 2812485555 - .long 2481292507 - .long 4012839307 - .long 3724908559 - .long 1832287951 - .long 1510632735 - .long 1330003814 - .long 667617719 - .long 3730711318 - .long 3154849823 - .long 3664575902 - .long 3021265470 - .long 2660007629 - .long 1335235438 - .long 3166455341 - .long 2014732351 - .long 3034184508 - .long 1747563645 - .long 1025047962 - .long 2670470877 - .long 2037943386 - .long 4029464703 - .long 1773401721 - .long 3495127291 - .long 2050095924 - .long 1045974458 - .long 4075886773 - .long 3763962110 - .long 3546803442 - .long 2695287286 - .long 4100191849 - .long 2091948916 - .long 3856806251 - .long 3232956925 - .long 2798639588 - .long 1095607277 - .long 3905416403 - .long 4183897833 - .long 3418645206 - .long 2170946555 - .long 1302311881 - .long 2191214555 - .long 3515865511 - .long 4072828371 - .long 2542323117 - .long 46925815 - .long 2604623763 - .long 87461814 - .long 2736763727 - .long 3850689447 - .long 789678938 - .long 93851631 - .long 914280231 - .long 174923629 - .long 1178560158 - .long 3406411599 - .long 1579357876 - .long 187703262 - .long 1828560463 - .long 349847258 - .long 2357120316 - .long 2517855902 - .long 3158715752 - .long 375406524 - .long 3657120927 - .long 699694516 - .long 419273337 - .long 740744509 - .long 2022464208 - .long 750813049 - .long 3019274558 - .long 1399389033 - .long 838546674 - .long 1481489018 - .long 4044928416 - .long 1501626098 - .long 1743581820 - .long 2798778067 - .long 1677093349 - .long 2962978036 - .long 3794889537 - .long 3003252197 - .long 3487163641 - .long 1302588838 - .long 3354186699 - .long 1630988776 - .long 3294811778 - .long 1711537099 - .long 2679359986 - .long 2605177677 - .long 2413406103 - .long 3261977553 - .long 2294656261 - .long 3423074199 - .long 1063752677 - .long 915388059 - .long 531844911 - .long 2228987811 - .long 294345226 - .long 2551181103 - .long 2127505355 - .long 1830776118 - .long 1063689823 - .long 163008326 - .long 588690452 - .long 807394910 - .long 4255010710 - .long 3661552236 - .long 2127379647 - .long 326016652 - .long 1177380905 - .long 1614789820 - .long 4215054124 - .long 3028137177 - .long 4254759295 - .long 652033304 - .long 2354761811 - .long 3229579640 - .long 4135140952 - .long 1761307059 - .long 4214551295 - .long 1304066609 - .long 414556326 - .long 2164191985 - .long 3975314608 - .long 3522614119 - .long 4134135294 - .long 2608133219 - .long 829112653 - .long 33416674 - .long 3655661921 - .long 2750260943 - .long 3973303293 - .long 921299143 - .long 1658225307 - .long 66833348 - .long 3016356546 - .long 1205554591 - .long 3651639290 - .long 1842598287 - .long 3316450614 - .long 133666696 - .long 1737745796 - .long 2411109183 - .long 3008311285 - .long 3685196575 - .long 2337933933 - .long 267333393 - .long 3475491593 - .long 527251070 - .long 1721655274 - .long 3075425855 - .long 380900570 - .long 534666787 - .long 2656015891 - .long 1054502141 - .long 3443310548 - .long 1855884414 - .long 761801140 - .long 1069333574 - .long 1017064486 - .long 2109004283 - .long 2591653800 - .long 3711768829 - .long 1523602280 - .long 2138667148 - .long 2034128973 - .long 4218008566 - .long 888340305 - .long 3128570363 - .long 3047204561 - .long 4277334296 - .long 4068257947 - .long 4141049836 - .long 1776680610 - .long 1962173430 - .long 1799441827 - .long 4259701297 - .long 3841548598 - .long 3987132377 - .long 3553361221 - .long 3924346860 - .long 3598883655 - .long 4224435298 - .long 3388129901 - .long 3679297459 - .long 2811755147 - .long 3553726425 - .long 2902800015 - .long 4153903301 - .long 2481292507 - .long 3063627623 - .long 1328542998 - .long 2812485555 - .long 1510632735 - .long 4012839307 - .long 667617719 - .long 1832287951 - .long 2657085997 - .long 1330003814 - .long 3021265470 - .long 3730711318 - .long 1335235438 - .long 3664575902 - .long 1019204698 - .long 2660007629 - .long 1747563645 - .long 3166455341 - .long 2670470877 - .long 3034184508 - .long 2038409397 - .long 1025047962 - .long 3495127291 - .long 2037943386 - .long 1045974458 - .long 1773401721 - .long 4076818795 - .long 2050095924 - .long 2695287286 - .long 4075886773 - .long 2091948916 - .long 3546803442 - .long 3858670295 - .long 4100191849 - .long 1095607277 - .long 3856806251 - .long 4183897833 - .long 2798639588 - .long 3422373294 - .long 3905416403 - .long 2191214555 - .long 3418645206 - .long 4072828371 - .long 1302311881 - .long 2549779293 - .long 3515865511 - .long 87461814 - .long 2542323117 - .long 3850689447 - .long 2604623763 - .long 804591290 - .long 2736763727 - .long 174923629 - .long 789678938 - .long 3406411599 - .long 914280231 - .long 1609182581 - .long 1178560158 - .long 349847258 - .long 1579357876 - .long 2517855902 - .long 1828560463 - .long 3218365162 - .long 2357120316 - .long 699694516 - .long 3158715752 - .long 740744509 - .long 3657120927 - .long 2141763028 - .long 419273337 - .long 1399389033 - .long 2022464208 - .long 1481489018 - .long 3019274558 - .long 4283526057 - .long 838546674 - .long 2798778067 - .long 4044928416 - .long 2962978036 - .long 1743581820 - .long 4272084818 - .long 1677093349 - .long 1302588838 - .long 3794889537 - .long 1630988776 - .long 3487163641 - .long 4249202340 - .long 3354186699 - .long 2605177677 - .long 3294811778 - .long 3261977553 - .long 2679359986 - .long 4203437385 - .long 2413406103 - .long 915388059 - .long 2294656261 - .long 2228987811 - .long 1063752677 - .long 4111907475 - .long 531844911 - .long 1830776118 - .long 294345226 - .long 163008326 - .long 2127505355 - .long 3928847655 - .long 1063689823 - .long 3661552236 - .long 588690452 - .long 326016652 - .long 4255010710 - .long 3562728015 - .long 2127379647 - .long 3028137177 - .long 1177380905 - .long 652033304 - .long 4215054124 - .long 2830488734 - .long 4254759295 - .long 1761307059 - .long 2354761811 - .long 1304066609 - .long 4135140952 - .long 1366010173 - .long 4214551295 - .long 3522614119 - .long 414556326 - .long 2608133219 - .long 3975314608 - .long 2732020347 - .long 4134135294 - .long 2750260943 - .long 829112653 - .long 921299143 - .long 3655661921 - .long 1169073399 - .long 3973303293 - .long 1205554591 - .long 1658225307 - .long 1842598287 - .long 3016356546 - .long 2338146798 - .long 3651639290 - .long 2411109183 - .long 3316450614 - .long 3685196575 - .long 1737745796 - .long 381326301 - .long 3008311285 - .long 527251070 - .long 2337933933 - .long 3075425855 - .long 3475491593 - .long 762652602 - .long 1721655274 - .long 1054502141 - .long 380900570 - .long 1855884414 - .long 2656015891 - .long 1525305205 - .long 3443310548 - .long 2109004283 - .long 761801140 - .long 3711768829 - .long 1017064486 - .long 3050610411 - .long 2591653800 - .long 4218008566 - .long 1523602280 - .long 3128570363 - .long 2034128973 - .long 1806253526 - .long 888340305 - .long 4141049836 - .long 3047204561 - .long 1962173430 - .long 4068257947 - .long 3612507052 - .long 1776680610 - .long 3987132377 - .long 1799441827 - .long 3924346860 - .long 3841548598 - .long 2930046808 - .long 3553361221 - .long 3679297459 - .long 3598883655 - .long 3553726425 - .long 3388129901 - .long 1565126321 - .long 2811755147 - .long 3063627623 - .long 2902800015 - .long 2812485555 - .long 2481292507 - .long 3130252643 - .long 1328542998 - .long 1832287951 - .long 1510632735 - .long 1330003814 - .long 667617719 - .long 1965537991 - .long 2657085997 - .long 3664575902 - .long 3021265470 - .long 2660007629 - .long 1335235438 - .long 3931075983 - .long 1019204698 - .long 3034184508 - .long 1747563645 - .long 1025047962 - .long 2670470877 - .long 3567184671 - .long 2038409397 - .long 1773401721 - .long 3495127291 - .long 2050095924 - .long 1045974458 - .long 2839402047 - .long 4076818795 - .long 3546803442 - .long 2695287286 - .long 4100191849 - .long 2091948916 - .long 1383836798 - .long 3858670295 - .long 2798639588 - .long 1095607277 - .long 3905416403 - .long 4183897833 - .long 2767673597 - .long 3422373294 - .long 1302311881 - .long 2191214555 - .long 3515865511 - .long 4072828371 - .long 1240379898 - .long 2549779293 - .long 2604623763 - .long 87461814 - .long 2736763727 - .long 3850689447 - .long 2480759797 - .long 804591290 - .long 914280231 - .long 174923629 - .long 1178560158 - .long 3406411599 - .long 666552299 - .long 1609182581 - .long 1828560463 - .long 349847258 - .long 2357120316 - .long 2517855902 - .long 1333104599 - .long 3218365162 - .long 3657120927 - .long 699694516 - .long 419273337 - .long 740744509 - .long 2666209199 - .long 2141763028 - .long 3019274558 - .long 1399389033 - .long 838546674 - .long 1481489018 - .long 1037451103 - .long 4283526057 - .long 1743581820 - .long 2798778067 - .long 1677093349 - .long 2962978036 - .long 2074902206 - .long 4272084818 - .long 3487163641 - .long 1302588838 - .long 3354186699 - .long 1630988776 - .long 4149804412 - .long 4249202340 - .long 2679359986 - .long 2605177677 - .long 2413406103 - .long 3261977553 - .long 4004641529 - .long 4203437385 - .long 1063752677 - .long 915388059 - .long 531844911 - .long 2228987811 - .long 3714315762 - .long 4111907475 - .long 2127505355 - .long 1830776118 - .long 1063689823 - .long 163008326 - .long 3133664229 - .long 3928847655 - .long 4255010710 - .long 3661552236 - .long 2127379647 - .long 326016652 - .long 1972361163 - .long 3562728015 - .long 4215054124 - .long 3028137177 - .long 4254759295 - .long 652033304 - .long 3944722327 - .long 2830488734 - .long 4135140952 - .long 1761307059 - .long 4214551295 - .long 1304066609 - .long 3594477359 - .long 1366010173 - .long 3975314608 - .long 3522614119 - .long 4134135294 - .long 2608133219 - .long 2893987423 - .long 2732020347 - .long 3655661921 - .long 2750260943 - .long 3973303293 - .long 921299143 - .long 1493007550 - .long 1169073399 - .long 3016356546 - .long 1205554591 - .long 3651639290 - .long 1842598287 - .long 2986015100 - .long 2338146798 - .long 1737745796 - .long 2411109183 - .long 3008311285 - .long 3685196575 - .long 1677062904 - .long 381326301 - .long 3475491593 - .long 527251070 - .long 1721655274 - .long 3075425855 - .long 3354125809 - .long 762652602 - .long 2656015891 - .long 1054502141 - .long 3443310548 - .long 1855884414 - .long 2413284322 - .long 1525305205 - .long 1017064486 - .long 2109004283 - .long 2591653800 - .long 3711768829 - .long 531601349 - .long 3050610411 - .long 2034128973 - .long 4218008566 - .long 888340305 - .long 3128570363 - .long 1063202699 - .long 1806253526 - .long 4068257947 - .long 4141049836 - .long 1776680610 - .long 1962173430 - .long 2126405399 - .long 3612507052 - .long 3841548598 - .long 3987132377 - .long 3553361221 - .long 3924346860 - .long 4252810799 - .long 2930046808 - .long 3388129901 - .long 3679297459 - .long 2811755147 - .long 3553726425 - .long 4210654302 - .long 1565126321 - .long 2481292507 - .long 3063627623 - .long 1328542998 - .long 2812485555 - .long 4126341309 - .long 3130252643 - .long 667617719 - .long 1832287951 - .long 2657085997 - .long 1330003814 - .long 3957715323 - .long 1965537991 - .long 1335235438 - .long 3664575902 - .long 1019204698 - .long 2660007629 - .long 3620463350 - .long 3931075983 - .long 2670470877 - .long 3034184508 - .long 2038409397 - .long 1025047962 - .long 2945959404 - .long 3567184671 - .long 1045974458 - .long 1773401721 - .long 4076818795 - .long 2050095924 - .long 1596951513 - .long 2839402047 - .long 2091948916 - .long 3546803442 - .long 3858670295 - .long 4100191849 - .long 3193903027 - .long 1383836798 - .long 4183897833 - .long 2798639588 - .long 3422373294 - .long 3905416403 - .long 2092838759 - .long 2767673597 - .long 4072828371 - .long 1302311881 - .long 2549779293 - .long 3515865511 - .long 4185677519 - .long 1240379898 - .long 3850689447 - .long 2604623763 - .long 804591290 - .long 2736763727 - .long 4076387742 - .long 2480759797 - .long 3406411599 - .long 914280231 - .long 1609182581 - .long 1178560158 - .long 3857808189 - .long 666552299 - .long 2517855902 - .long 1828560463 - .long 3218365162 - .long 2357120316 - .long 3420649082 - .long 1333104599 - .long 740744509 - .long 3657120927 - .long 2141763028 - .long 419273337 - .long 2546330868 - .long 2666209199 - .long 1481489018 - .long 3019274558 - .long 4283526057 - .long 838546674 - .long 797694440 - .long 1037451103 - .long 2962978036 - .long 1743581820 - .long 4272084818 - .long 1677093349 - .long 1595388880 - .long 2074902206 - .long 1630988776 - .long 3487163641 - .long 4249202340 - .long 3354186699 - .long 3190777760 - .long 4149804412 - .long 3261977553 - .long 2679359986 - .long 4203437385 - .long 2413406103 - .long 2086588225 - .long 4004641529 - .long 2228987811 - .long 1063752677 - .long 4111907475 - .long 531844911 - .long 4173176451 - .long 3714315762 - .long 163008326 - .long 2127505355 - .long 3928847655 - .long 1063689823 - .long 4051385607 - .long 3133664229 - .long 326016652 - .long 4255010710 - .long 3562728015 - .long 2127379647 - .long 3807803918 - .long 1972361163 - .long 652033304 - .long 4215054124 - .long 2830488734 - .long 4254759295 - .long 3320640540 - .long 3944722327 - .long 1304066609 - .long 4135140952 - .long 1366010173 - .long 4214551295 - .long 2346313785 - .long 3594477359 - .long 2608133219 - .long 3975314608 - .long 2732020347 - .long 4134135294 - .long 397660275 - .long 2893987423 - .long 921299143 - .long 3655661921 - .long 1169073399 - .long 3973303293 - .long 795320551 - .long 1493007550 - .long 1842598287 - .long 3016356546 - .long 2338146798 - .long 3651639290 - .long 1590641102 - .long 2986015100 - .long 3685196575 - .long 1737745796 - .long 381326301 - .long 3008311285 - .long 3181282204 - .long 1677062904 - .long 3075425855 - .long 3475491593 - .long 762652602 - .long 1721655274 - .long 2067597113 - .long 3354125809 - .long 1855884414 - .long 2656015891 - .long 1525305205 - .long 3443310548 - .long 4135194227 - .long 2413284322 - .long 3711768829 - .long 1017064486 - .long 3050610411 - .long 2591653800 - .long 3975421159 - .long 531601349 - .long 3128570363 - .long 2034128973 - .long 1806253526 - .long 888340305 - .long 3655875023 - .long 1063202699 - .long 1962173430 - .long 4068257947 - .long 3612507052 - .long 1776680610 - .long 3016782751 - .long 2126405399 - .long 3924346860 - .long 3841548598 - .long 2930046808 - .long 3553361221 - .long 1738598206 - .long 4252810799 - .long 3553726425 - .long 3388129901 - .long 1565126321 - .long 2811755147 - .long 3477196413 - .long 4210654302 - .long 2812485555 - .long 2481292507 - .long 3130252643 - .long 1328542998 - .long 2659425531 - .long 4126341309 - .long 1330003814 - .long 667617719 - .long 1965537991 - .long 2657085997 - .long 1023883767 - .long 3957715323 - .long 2660007629 - .long 1335235438 - .long 3931075983 - .long 1019204698 - .long 2047767535 - .long 3620463350 - .long 1025047962 - .long 2670470877 - .long 3567184671 - .long 2038409397 - .long 4095535070 - .long 2945959404 - .long 2050095924 - .long 1045974458 - .long 2839402047 - .long 4076818795 - .long 3896102844 - .long 1596951513 - .long 4100191849 - .long 2091948916 - .long 1383836798 - .long 3858670295 - .long 3497238392 - .long 3193903027 - .long 3905416403 - .long 4183897833 - .long 2767673597 - .long 3422373294 - .long 2699509489 - .long 2092838759 - .long 3515865511 - .long 4072828371 - .long 1240379898 - .long 2549779293 - .long 1104051682 - .long 4185677519 - .long 2736763727 - .long 3850689447 - .long 2480759797 - .long 804591290 - .long 2208103365 - .long 4076387742 - .long 1178560158 - .long 3406411599 - .long 666552299 - .long 1609182581 - .long 121239434 - .long 3857808189 - .long 2357120316 - .long 2517855902 - .long 1333104599 - .long 3218365162 - .long 242478868 - .long 3420649082 - .long 419273337 - .long 740744509 - .long 2666209199 - .long 2141763028 - .long 484957737 - .long 2546330868 - .long 838546674 - .long 1481489018 - .long 1037451103 - .long 4283526057 - .long 969915474 - .long 797694440 - .long 1677093349 - .long 2962978036 - .long 2074902206 - .long 4272084818 - .long 1939830949 - .long 1595388880 - .long 3354186699 - .long 1630988776 - .long 4149804412 - .long 4249202340 - .long 3879661898 - .long 3190777760 - .long 2413406103 - .long 3261977553 - .long 4004641529 - .long 4203437385 - .long 3464356500 - .long 2086588225 - .long 531844911 - .long 2228987811 - .long 3714315762 - .long 4111907475 - .long 2633745705 - .long 4173176451 - .long 1063689823 - .long 163008326 - .long 3133664229 - .long 3928847655 - .long 972524114 - .long 4051385607 - .long 2127379647 - .long 326016652 - .long 1972361163 - .long 3562728015 - .long 1945048229 - .long 3807803918 - .long 4254759295 - .long 652033304 - .long 3944722327 - .long 2830488734 - .long 3890096458 - .long 3320640540 - .long 4214551295 - .long 1304066609 - .long 3594477359 - .long 1366010173 - .long 3485225620 - .long 2346313785 - .long 4134135294 - .long 2608133219 - .long 2893987423 - .long 2732020347 - .long 2675483945 - .long 397660275 - .long 3973303293 - .long 921299143 - .long 1493007550 - .long 1169073399 - .long 1056000594 - .long 795320551 - .long 3651639290 - .long 1842598287 - .long 2986015100 - .long 2338146798 - .long 2112001188 - .long 1590641102 - .long 3008311285 - .long 3685196575 - .long 1677062904 - .long 381326301 - .long 4224002377 - .long 3181282204 - .long 1721655274 - .long 3075425855 - .long 3354125809 - .long 762652602 - .long 4153037458 - .long 2067597113 - .long 3443310548 - .long 1855884414 - .long 2413284322 - .long 1525305205 - .long 4011107621 - .long 4135194227 - .long 2591653800 - .long 3711768829 - .long 531601349 - .long 3050610411 - .long 3727247947 - .long 3975421159 - .long 888340305 - .long 3128570363 - .long 1063202699 - .long 1806253526 - .long 3159528599 - .long 3655875023 - .long 1776680610 - .long 1962173430 - .long 2126405399 - .long 3612507052 - .long 2024089902 - .long 3016782751 - .long 3553361221 - .long 3924346860 - .long 4252810799 - .long 2930046808 - .long 4048179805 - .long 1738598206 - .long 2811755147 - .long 3553726425 - .long 4210654302 - .long 1565126321 - .long 3801392314 - .long 3477196413 - .long 1328542998 - .long 2812485555 - .long 4126341309 - .long 3130252643 - .long 3307817333 - .long 2659425531 - .long 2657085997 - .long 1330003814 - .long 3957715323 - .long 1965537991 - .long 2320667370 - .long 1023883767 - .long 1019204698 - .long 2660007629 - .long 3620463350 - .long 3931075983 - .long 346367444 - .long 2047767535 - .long 2038409397 - .long 1025047962 - .long 2945959404 - .long 3567184671 - .long 692734889 - .long 4095535070 - .long 4076818795 - .long 2050095924 - .long 1596951513 - .long 2839402047 - .long 1385469779 - .long 3896102844 - .long 3858670295 - .long 4100191849 - .long 3193903027 - .long 1383836798 - .long 2770939558 - .long 3497238392 - .long 3422373294 - .long 3905416403 - .long 2092838759 - .long 2767673597 - .long 1246911821 - .long 2699509489 - .long 2549779293 - .long 3515865511 - .long 4185677519 - .long 1240379898 - .long 2493823642 - .long 1104051682 - .long 804591290 - .long 2736763727 - .long 4076387742 - .long 2480759797 - .long 692679989 - .long 2208103365 - .long 1609182581 - .long 1178560158 - .long 3857808189 - .long 666552299 - .long 1385359979 - .long 121239434 - .long 3218365162 - .long 2357120316 - .long 3420649082 - .long 1333104599 - .long 2770719959 - .long 242478868 - .long 2141763028 - .long 419273337 - .long 2546330868 - .long 2666209199 - .long 1246472623 - .long 484957737 - .long 4283526057 - .long 838546674 - .long 797694440 - .long 1037451103 - .long 2492945247 - .long 969915474 - .long 4272084818 - .long 1677093349 - .long 1595388880 - .long 2074902206 - .long 690923199 - .long 1939830949 - .long 4249202340 - .long 3354186699 - .long 3190777760 - .long 4149804412 - .long 1381846399 - .long 3879661898 - .long 4203437385 - .long 2413406103 - .long 2086588225 - .long 4004641529 - .long 2763692798 - .long 3464356500 - .long 4111907475 - .long 531844911 - .long 4173176451 - .long 3714315762 - .long 1232418301 - .long 2633745705 - .long 3928847655 - .long 1063689823 - .long 4051385607 - .long 3133664229 - .long 2464836603 - .long 972524114 - .long 3562728015 - .long 2127379647 - .long 3807803918 - .long 1972361163 - .long 634705910 - .long 1945048229 - .long 2830488734 - .long 4254759295 - .long 3320640540 - .long 3944722327 - .long 1269411821 - .long 3890096458 - .long 1366010173 - .long 4214551295 - .long 2346313785 - .long 3594477359 - .long 2538823642 - .long 3485225620 - .long 2732020347 - .long 4134135294 - .long 397660275 - .long 2893987423 - .long 782679989 - .long 2675483945 - .long 1169073399 - .long 3973303293 - .long 795320551 - .long 1493007550 - .long 1565359979 - .long 1056000594 - .long 2338146798 - .long 3651639290 - .long 1590641102 - .long 2986015100 - .long 3130719959 - .long 2112001188 - .long 381326301 - .long 3008311285 - .long 3181282204 - .long 1677062904 - .long 1966472623 - .long 4224002377 - .long 762652602 - .long 1721655274 - .long 2067597113 - .long 3354125809 - .long 3932945247 - .long 4153037458 - .long 1525305205 - .long 3443310548 - .long 4135194227 - .long 2413284322 - .long 3570923199 - .long 4011107621 - .long 3050610411 - .long 2591653800 - .long 3975421159 - .long 531601349 - .long 2846879102 - .long 3727247947 - .long 1806253526 - .long 888340305 - .long 3655875023 - .long 1063202699 - .long 1398790909 - .long 3159528599 - .long 3612507052 - .long 1776680610 - .long 3016782751 - .long 2126405399 - .long 2797581819 - .long 2024089902 - .long 2930046808 - .long 3553361221 - .long 1738598206 - .long 4252810799 - .long 1300196342 - .long 4048179805 - .long 1565126321 - .long 2811755147 - .long 3477196413 - .long 4210654302 - .long 2600392684 - .long 3801392314 - .long 3130252643 - .long 1328542998 - .long 2659425531 - .long 4126341309 - .long 905818072 - .long 3307817333 - .long 1965537991 - .long 2657085997 - .long 1023883767 - .long 3957715323 - .long 1811636145 - .long 2320667370 - .long 3931075983 - .long 1019204698 - .long 2047767535 - .long 3620463350 - .long 3623272290 - .long 346367444 - .long 3567184671 - .long 2038409397 - .long 4095535070 - .long 2945959404 - .long 2951577284 - .long 692734889 - .long 2839402047 - .long 4076818795 - .long 3896102844 - .long 1596951513 - .long 1608187272 - .long 1385469779 - .long 1383836798 - .long 3858670295 - .long 3497238392 - .long 3193903027 - .long 3216374545 - .long 2770939558 - .long 2767673597 - .long 3422373294 - .long 2699509489 - .long 2092838759 - .long 2137781795 - .long 1246911821 - .long 1240379898 - .long 2549779293 - .long 1104051682 - .long 4185677519 - .long 4275563591 - .long 2493823642 - .long 2480759797 - .long 804591290 - .long 2208103365 - .long 4076387742 - .long 4256159887 - .long 692679989 - .long 666552299 - .long 1609182581 - .long 121239434 - .long 3857808189 - .long 4217352479 - .long 1385359979 - .long 1333104599 - .long 3218365162 - .long 242478868 - .long 3420649082 - .long 4139737663 - .long 2770719959 - .long 2666209199 - .long 2141763028 - .long 484957737 - .long 2546330868 - .long 3984508030 - .long 1246472623 - .long 1037451103 - .long 4283526057 - .long 969915474 - .long 797694440 - .long 3674048764 - .long 2492945247 - .long 2074902206 - .long 4272084818 - .long 1939830949 - .long 1595388880 - .long 3053130232 - .long 690923199 - .long 4149804412 - .long 4249202340 - .long 3879661898 - .long 3190777760 - .long 1811293169 - .long 1381846399 - .long 4004641529 - .long 4203437385 - .long 3464356500 - .long 2086588225 - .long 3622586339 - .long 2763692798 - .long 3714315762 - .long 4111907475 - .long 2633745705 - .long 4173176451 - .long 2950205382 - .long 1232418301 - .long 3133664229 - .long 3928847655 - .long 972524114 - .long 4051385607 - .long 1605443469 - .long 2464836603 - .long 1972361163 - .long 3562728015 - .long 1945048229 - .long 3807803918 - .long 3210886938 - .long 634705910 - .long 3944722327 - .long 2830488734 - .long 3890096458 - .long 3320640540 - .long 2126806581 - .long 1269411821 - .long 3594477359 - .long 1366010173 - .long 3485225620 - .long 2346313785 - .long 4253613162 - .long 2538823642 - .long 2893987423 - .long 2732020347 - .long 2675483945 - .long 397660275 - .long 4212259029 - .long 782679989 - .long 1493007550 - .long 1169073399 - .long 1056000594 - .long 795320551 - .long 4129550763 - .long 1565359979 - .long 2986015100 - .long 2338146798 - .long 2112001188 - .long 1590641102 - .long 3964134231 - .long 3130719959 - .long 1677062904 - .long 381326301 - .long 4224002377 - .long 3181282204 - .long 3633301166 - .long 1966472623 - .long 3354125809 - .long 762652602 - .long 4153037458 - .long 2067597113 - .long 2971635037 - .long 3932945247 - .long 2413284322 - .long 1525305205 - .long 4011107621 - .long 4135194227 - .long 1648302778 - .long 3570923199 - .long 531601349 - .long 3050610411 - .long 3727247947 - .long 3975421159 - .long 3296605556 - .long 2846879102 - .long 1063202699 - .long 1806253526 - .long 3159528599 - .long 3655875023 - .long 2298243816 - .long 1398790909 - .long 2126405399 - .long 3612507052 - .long 2024089902 - .long 3016782751 - .long 301520336 - .long 2797581819 - .long 4252810799 - .long 2930046808 - .long 4048179805 - .long 1738598206 - .long 603040673 - .long 1300196342 - .long 4210654302 - .long 1565126321 - .long 3801392314 - .long 3477196413 - .long 1206081346 - .long 2600392684 - .long 4126341309 - .long 3130252643 - .long 3307817333 - .long 2659425531 - .long 2412162692 - .long 905818072 - .long 3957715323 - .long 1965537991 - .long 2320667370 - .long 1023883767 - .long 529358088 - .long 1811636145 - .long 3620463350 - .long 3931075983 - .long 346367444 - .long 2047767535 - .long 1058716176 - .long 3623272290 - .long 2945959404 - .long 3567184671 - .long 692734889 - .long 4095535070 - .long 2117432353 - .long 2951577284 - .long 1596951513 - .long 2839402047 - .long 1385469779 - .long 3896102844 - .long 4234864706 - .long 1608187272 - .long 3193903027 - .long 1383836798 - .long 2770939558 - .long 3497238392 - .long 4174762117 - .long 3216374545 - .long 2092838759 - .long 2767673597 - .long 1246911821 - .long 2699509489 - .long 4054556938 - .long 2137781795 - .long 4185677519 - .long 1240379898 - .long 2493823642 - .long 1104051682 - .long 3814146581 - .long 4275563591 - .long 4076387742 - .long 2480759797 - .long 692679989 - .long 2208103365 - .long 3333325867 - .long 4256159887 - .long 3857808189 - .long 666552299 - .long 1385359979 - .long 121239434 - .long 2371684438 - .long 4217352479 - .long 3420649082 - .long 1333104599 - .long 2770719959 - .long 242478868 - .long 448401580 - .long 4139737663 - .long 2546330868 - .long 2666209199 - .long 1246472623 - .long 484957737 - .long 896803160 - .long 3984508030 - .type __svml_dsin_reduction_data_internal,@object - .size __svml_dsin_reduction_data_internal,49152 - .space 512, 0x00 - .align 8 -.L_2il0floatpacket.26: - .long 0xffffffff,0xffffffff - .type .L_2il0floatpacket.26,@object - .size .L_2il0floatpacket.26,8 - .align 8 -.L_2il0floatpacket.27: - .long 0x00000000,0x7ff00000 - .type .L_2il0floatpacket.27,@object - .size .L_2il0floatpacket.27,8 - .align 8 -.L_2il0floatpacket.28: - .long 0xffffffff,0x000fffff - .type .L_2il0floatpacket.28,@object - .size .L_2il0floatpacket.28,8 - .align 8 -.L_2il0floatpacket.29: - .long 0x00000000,0x00100000 - .type .L_2il0floatpacket.29,@object - .size .L_2il0floatpacket.29,8 - .align 8 -.L_2il0floatpacket.30: - .long 0xffffffff,0x00000000 - .type .L_2il0floatpacket.30,@object - .size .L_2il0floatpacket.30,8 - .align 8 -.L_2il0floatpacket.31: - .long 0x00000000,0x80000000 - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,8 - .align 8 -.L_2il0floatpacket.32: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.32,@object - .size .L_2il0floatpacket.32,8 - .align 8 -.L_2il0floatpacket.33: - .long 0x00000000,0x42a80000 - .type .L_2il0floatpacket.33,@object - .size .L_2il0floatpacket.33,8 - .align 8 -.L_2il0floatpacket.34: - .long 0x000001ff,0x00000000 - .type .L_2il0floatpacket.34,@object - .size .L_2il0floatpacket.34,8 - .align 8 -.L_2il0floatpacket.35: - .long 0x00000000,0x39700000 - .type .L_2il0floatpacket.35,@object - .size .L_2il0floatpacket.35,8 - .align 8 -.L_2il0floatpacket.36: - .long 0x00ffffff,0x00000000 - .type .L_2il0floatpacket.36,@object - .size .L_2il0floatpacket.36,8 - .align 8 -.L_2il0floatpacket.37: - .long 0x00000000,0x3cb00000 - .type .L_2il0floatpacket.37,@object - .size .L_2il0floatpacket.37,8 - .align 8 -.L_2il0floatpacket.38: - .long 0x00000fff,0x00000000 - .type .L_2il0floatpacket.38,@object - .size .L_2il0floatpacket.38,8 - .align 8 -.L_2il0floatpacket.39: - .long 0x54442d18,0x401921fb - .type .L_2il0floatpacket.39,@object - .size .L_2il0floatpacket.39,8 - .align 8 -.L_2il0floatpacket.40: - .long 0x33145c07,0x3cb1a626 - .type .L_2il0floatpacket.40,@object - .size .L_2il0floatpacket.40,8 - .align 8 -.L_2il0floatpacket.41: - .long 0xffffffff,0x7fffffff - .type .L_2il0floatpacket.41,@object - .size .L_2il0floatpacket.41,8 - .align 8 -.L_2il0floatpacket.42: - .long 0x00000000,0x3eb00000 - .type .L_2il0floatpacket.42,@object - .size .L_2il0floatpacket.42,8 - .align 8 -__dsin_la_CoutTab: - .long 0 - .long 0 - .long 0 - .long 2146435072 - .type __dsin_la_CoutTab,@object - .size __dsin_la_CoutTab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_sin_s_la.s b/numpy/core/src/umath/svml/svml_z0_sin_s_la.s deleted file mode 100644 index 33ffbfaade45..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_sin_s_la.s +++ /dev/null @@ -1,2751 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * 1) Range reduction to [-Pi/2; +Pi/2] interval - * a) Grab sign from source argument and save it. - * b) Remove sign using AND operation - * c) Getting octant Y by 1/Pi multiplication - * d) Add "Right Shifter" value - * e) Treat obtained value as integer for destination sign setting. - * Shift first bit of this value to the last (sign) position - * f) Change destination sign if source sign is negative - * using XOR operation. - * g) Subtract "Right Shifter" value - * h) Subtract Y*PI from X argument, where PI divided to 4 parts: - * X = X - Y*PI1 - Y*PI2 - Y*PI3 - Y*PI4; - * 2) Polynomial (minimax for sin within [-Pi/2; +Pi/2] interval) - * a) Calculate X^2 = X * X - * b) Calculate polynomial: - * R = X + X * X^2 * (A3 + x^2 * (A5 + ...... - * 3) Destination sign setting - * a) Set shifted destination sign using XOR operation: - * R = XOR( R, S ); - * - */ - - - .text -.L_2__routine_start___svml_sinf16_z0_0: - - .align 16,0x90 - .globl __svml_sinf16 - -__svml_sinf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - xorl %edx, %edx - vmovups 4096+__svml_ssin_data_internal(%rip), %zmm7 - vmovups 5248+__svml_ssin_data_internal(%rip), %zmm2 - vmovups 5312+__svml_ssin_data_internal(%rip), %zmm3 - vmovups 4800+__svml_ssin_data_internal(%rip), %zmm6 - vmovups 4864+__svml_ssin_data_internal(%rip), %zmm4 - vmovups 4928+__svml_ssin_data_internal(%rip), %zmm5 - vmovups 5184+__svml_ssin_data_internal(%rip), %zmm10 - vmovups 5120+__svml_ssin_data_internal(%rip), %zmm14 - vmovups 5056+__svml_ssin_data_internal(%rip), %zmm12 - vmovups 4992+__svml_ssin_data_internal(%rip), %zmm13 - vmovaps %zmm0, %zmm11 - -/* b) Remove sign using AND operation */ - vandps %zmm7, %zmm11, %zmm1 - -/* - * f) Change destination sign if source sign is negative - * using XOR operation. - */ - vandnps %zmm11, %zmm7, %zmm0 - -/* - * c) Getting octant Y by 1/Pi multiplication - * d) Add "Right Shifter" value - */ - vfmadd213ps {rn-sae}, %zmm3, %zmm1, %zmm2 - -/* g) Subtract "Right Shifter" value */ - vsubps {rn-sae}, %zmm3, %zmm2, %zmm8 - -/* - * e) Treat obtained value as integer for destination sign setting. - * Shift first bit of this value to the last (sign) position - */ - vpslld $31, %zmm2, %zmm9 - -/* Check for large and special values */ - vmovups 4160+__svml_ssin_data_internal(%rip), %zmm2 - -/* - * h) Subtract Y*PI from X argument, where PI divided to 4 parts: - * X = X - Y*PI1 - Y*PI2 - Y*PI3; - */ - vfnmadd213ps {rn-sae}, %zmm1, %zmm8, %zmm6 - vcmpps $18, {sae}, %zmm2, %zmm1, %k1 - vfnmadd231ps {rn-sae}, %zmm8, %zmm4, %zmm6 - vfnmadd213ps {rn-sae}, %zmm6, %zmm5, %zmm8 - -/* - * 2) Polynomial (minimax for sin within [-Pi/2; +Pi/2] interval) - * a) Calculate X^2 = X * X - * b) Calculate polynomial: - * R = X + X * X^2 * (A3 + x^2 * (A5 + ...... - */ - vmulps {rn-sae}, %zmm8, %zmm8, %zmm15 - vxorps %zmm9, %zmm8, %zmm8 - vfmadd231ps {rn-sae}, %zmm15, %zmm10, %zmm14 - vpternlogd $255, %zmm10, %zmm10, %zmm10 - vfmadd213ps {rn-sae}, %zmm12, %zmm15, %zmm14 - vfmadd213ps {rn-sae}, %zmm13, %zmm15, %zmm14 - vmulps {rn-sae}, %zmm15, %zmm14, %zmm9 - vfmadd213ps {rn-sae}, %zmm8, %zmm8, %zmm9 - -/* - * 3) Destination sign setting - * a) Set shifted destination sign using XOR operation: - * R = XOR( R, S ); - */ - vxorps %zmm0, %zmm9, %zmm0 - vpandnd %zmm1, %zmm1, %zmm10{%k1} - vptestmd %zmm10, %zmm10, %k0 - kortestw %k0, %k0 - jne .LBL_1_12 - -.LBL_1_2: - - testl %edx, %edx - jne .LBL_1_4 - -.LBL_1_3: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_4: - - vmovups %zmm11, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_3 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_8: - - btl %r12d, %r13d - jc .LBL_1_11 - -.LBL_1_9: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_8 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_3 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_11: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_ssin_cout_rare_internal - jmp .LBL_1_9 - .cfi_restore 4 - .cfi_restore 5 - .cfi_restore 12 - .cfi_restore 13 - .cfi_restore 122 - .cfi_restore 123 - .cfi_restore 124 - .cfi_restore 125 - -.LBL_1_12: - - vmovups 4224+__svml_ssin_data_internal(%rip), %zmm8 - -/* - * Get the (2^a / 2pi) mod 1 values from the table. - * Because VLANG doesn't have I-type gather, we need a trivial cast - */ - lea __svml_ssin_reduction_data_internal(%rip), %rax - vmovups %zmm0, (%rsp) - vandps %zmm1, %zmm8, %zmm6 - vpternlogd $255, %zmm1, %zmm1, %zmm1 - vcmpps $4, {sae}, %zmm8, %zmm6, %k1 - -/* ..................... Table look-up ........................ */ - lea __svml_ssin_data_internal(%rip), %rcx - vpandd .L_2il0floatpacket.21(%rip), %zmm11, %zmm12 - vpandnd %zmm6, %zmm6, %zmm1{%k1} - vpsrld $23, %zmm12, %zmm13 - vptestmd %zmm1, %zmm1, %k0 - -/* - * Break the P_xxx and m into 16-bit chunks ready for - * the long multiplication via 16x16->32 multiplications - */ - vmovups .L_2il0floatpacket.24(%rip), %zmm6 - vpslld $1, %zmm13, %zmm4 - kxnorw %k0, %k0, %k3 - kxnorw %k0, %k0, %k1 - kxnorw %k0, %k0, %k2 - kmovw %k0, %edx - vpaddd %zmm13, %zmm4, %zmm9 - vpslld $2, %zmm9, %zmm5 - vpxord %zmm3, %zmm3, %zmm3 - vpxord %zmm14, %zmm14, %zmm14 - vpxord %zmm8, %zmm8, %zmm8 - vgatherdps 4(%rax,%zmm5), %zmm3{%k3} - vgatherdps 8(%rax,%zmm5), %zmm14{%k1} - vgatherdps (%rax,%zmm5), %zmm8{%k2} - vpsrld $16, %zmm3, %zmm15 - vpsrld $16, %zmm14, %zmm13 - vpsrld $16, %zmm8, %zmm7 - kxnorw %k0, %k0, %k1 - -/* - * Also get the significand as an integer - * NB: adding in the integer bit is wrong for denorms! - * To make this work for denorms we should do something slightly different - */ - vpandd .L_2il0floatpacket.22(%rip), %zmm11, %zmm2 - vpaddd .L_2il0floatpacket.23(%rip), %zmm2, %zmm1 - vpsrld $16, %zmm1, %zmm9 - vpandd %zmm6, %zmm8, %zmm0 - vpandd %zmm6, %zmm3, %zmm12 - vpandd %zmm6, %zmm14, %zmm5 - vpandd %zmm6, %zmm1, %zmm14 - -/* Now do the big multiplication and carry propagation */ - vpmulld %zmm0, %zmm9, %zmm4 - vpmulld %zmm15, %zmm9, %zmm3 - vpmulld %zmm12, %zmm9, %zmm2 - vpmulld %zmm13, %zmm9, %zmm1 - vpmulld %zmm5, %zmm9, %zmm8 - vpmulld %zmm15, %zmm14, %zmm9 - vpmulld %zmm13, %zmm14, %zmm15 - vpmulld %zmm7, %zmm14, %zmm7 - vpmulld %zmm0, %zmm14, %zmm5 - vpmulld %zmm12, %zmm14, %zmm0 - vpsrld $16, %zmm15, %zmm14 - vpsrld $16, %zmm9, %zmm15 - vpsrld $16, %zmm0, %zmm13 - vpsrld $16, %zmm5, %zmm12 - vpaddd %zmm15, %zmm3, %zmm3 - vpaddd %zmm14, %zmm1, %zmm1 - vpaddd %zmm13, %zmm2, %zmm14 - vpaddd %zmm12, %zmm4, %zmm2 - vpandd %zmm6, %zmm5, %zmm4 - vpaddd %zmm3, %zmm4, %zmm3 - vpsrld $16, %zmm8, %zmm4 - vpandd %zmm6, %zmm0, %zmm0 - vpaddd %zmm1, %zmm0, %zmm13 - vpandd %zmm6, %zmm7, %zmm7 - vpaddd %zmm2, %zmm7, %zmm0 - vpaddd %zmm13, %zmm4, %zmm7 - vpandd %zmm6, %zmm9, %zmm12 - vpsrld $16, %zmm7, %zmm9 - vpaddd %zmm14, %zmm12, %zmm5 - vpaddd %zmm5, %zmm9, %zmm1 - vpsrld $16, %zmm1, %zmm2 - vpslld $16, %zmm1, %zmm13 - vpaddd %zmm3, %zmm2, %zmm15 - vpsrld $16, %zmm15, %zmm8 - vpaddd %zmm0, %zmm8, %zmm14 - -/* Assemble reduced argument from the pieces */ - vpandd %zmm6, %zmm7, %zmm12 - vpandd %zmm6, %zmm15, %zmm4 - vpslld $16, %zmm14, %zmm6 - vpaddd %zmm12, %zmm13, %zmm13 - vpaddd %zmm4, %zmm6, %zmm9 - -/* - * Now round at the 2^-8 bit position for reduction mod pi/2^7 - * instead of the original 2pi (but still with the same 2pi scaling). - * Use a shifter of 2^15 + 2^14. - * The N we get is our final version; it has an offset of - * 2^8 because of the implicit integer bit, and anyway for negative - * starting value it's a 2s complement thing. But we need to mask - * off the exponent part anyway so it's fine. - */ - vmovups .L_2il0floatpacket.27(%rip), %zmm6 - vpsrld $9, %zmm9, %zmm2 - vpandd .L_2il0floatpacket.30(%rip), %zmm13, %zmm15 - vpslld $5, %zmm15, %zmm1 - vpsrld $18, %zmm13, %zmm13 - -/* - * We want to incorporate the original sign now too. - * Do it here for convenience in getting the right N value, - * though we could wait right to the end if we were prepared - * to modify the sign of N later too. - * So get the appropriate sign mask now (or sooner). - */ - vpandd .L_2il0floatpacket.25(%rip), %zmm11, %zmm5 - -/* - * Create floating-point high part, implicitly adding integer bit 1 - * Incorporate overall sign at this stage too. - */ - vpxord .L_2il0floatpacket.26(%rip), %zmm5, %zmm8 - vpord %zmm8, %zmm2, %zmm3 - vaddps {rn-sae}, %zmm3, %zmm6, %zmm7 - vsubps {rn-sae}, %zmm6, %zmm7, %zmm0 - vsubps {rn-sae}, %zmm0, %zmm3, %zmm14 - vandps .L_2il0floatpacket.35(%rip), %zmm11, %zmm3 - vpternlogd $255, %zmm0, %zmm0, %zmm0 - -/* - * Create floating-point low and medium parts, respectively - * lo_17, ... lo_0, 0, ..., 0 - * hi_8, ... hi_0, lo_31, ..., lo_18 - * then subtract off the implicitly added integer bits, - * 2^-46 and 2^-23, respectively. - * Put the original sign into all of them at this stage. - */ - vpxord .L_2il0floatpacket.29(%rip), %zmm5, %zmm8 - vpord %zmm8, %zmm1, %zmm2 - vpandd .L_2il0floatpacket.32(%rip), %zmm9, %zmm9 - vsubps {rn-sae}, %zmm8, %zmm2, %zmm15 - vpxord .L_2il0floatpacket.31(%rip), %zmm5, %zmm2 - vpslld $14, %zmm9, %zmm5 - vpord %zmm13, %zmm5, %zmm5 - vpord %zmm2, %zmm5, %zmm9 - vsubps {rn-sae}, %zmm2, %zmm9, %zmm8 - -/* - * Now multiply those numbers all by 2 pi, reasonably accurately. - * (RHi + RLo) * (pi_lead + pi_trail) ~= - * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) - */ - vmovups .L_2il0floatpacket.33(%rip), %zmm9 - vmovups .L_2il0floatpacket.34(%rip), %zmm2 - -/* Now add them up into 2 reasonably aligned pieces */ - vaddps {rn-sae}, %zmm8, %zmm14, %zmm6 - vsubps {rn-sae}, %zmm6, %zmm14, %zmm14 - vmovaps %zmm9, %zmm5 - vaddps {rn-sae}, %zmm14, %zmm8, %zmm13 - -/* - * If the magnitude of the input is <= 2^-20, then - * just pass through the input, since no reduction will be needed and - * the main path will only work accurately if the reduced argument is - * about >= 2^-40 (which it is for all large pi multiples) - */ - vmovups .L_2il0floatpacket.36(%rip), %zmm8 - vaddps {rn-sae}, %zmm15, %zmm13, %zmm14 - vpternlogd $255, %zmm15, %zmm15, %zmm15 - vcmpps $26, {sae}, %zmm8, %zmm3, %k2 - vcmpps $22, {sae}, %zmm8, %zmm3, %k3 - -/* Grab our final N value as an integer, appropriately masked mod 2^8 */ - vpandd .L_2il0floatpacket.28(%rip), %zmm7, %zmm4 - vmulps {rn-sae}, %zmm9, %zmm6, %zmm7 - vfmsub213ps {rn-sae}, %zmm7, %zmm6, %zmm5 - vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm6 - vfmadd213ps {rn-sae}, %zmm6, %zmm9, %zmm14 - vpslld $4, %zmm4, %zmm9 - vpandnd %zmm3, %zmm3, %zmm15{%k2} - vpandnd %zmm3, %zmm3, %zmm0{%k3} - kxnorw %k0, %k0, %k2 - kxnorw %k0, %k0, %k3 - vandps %zmm7, %zmm15, %zmm12 - vandps %zmm11, %zmm0, %zmm1 - vandps %zmm14, %zmm15, %zmm2 - vorps %zmm12, %zmm1, %zmm13 - -/* ............... Polynomial approximation ................... */ - vmovups 4352+__svml_ssin_data_internal(%rip), %zmm12 - -/* - * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND - * Set sRp2 = _VRES_R^2 and then resume the original code. - */ - vmulps {rn-sae}, %zmm13, %zmm13, %zmm3 - -/* ................. Reconstruction: res_hi ................... */ - vmovaps %zmm13, %zmm8 - vmovaps %zmm13, %zmm4 - vpxord %zmm5, %zmm5, %zmm5 - vpxord %zmm7, %zmm7, %zmm7 - vgatherdps 4(%rcx,%zmm9), %zmm5{%k2} - vgatherdps 12(%rcx,%zmm9), %zmm7{%k3} - vfmadd213ps {rn-sae}, %zmm5, %zmm7, %zmm8 - vsubps {rn-sae}, %zmm8, %zmm5, %zmm1 - vfmadd231ps {rn-sae}, %zmm13, %zmm7, %zmm1 - vpxord %zmm0, %zmm0, %zmm0 - vgatherdps (%rcx,%zmm9), %zmm0{%k1} - -/* ................. Reconstruction: res_lo=corr+polS+polC+res_lo0 ................... */ - kxnorw %k0, %k0, %k1 - vfmadd132ps {rn-sae}, %zmm0, %zmm8, %zmm4 - vsubps {rn-sae}, %zmm4, %zmm8, %zmm6 - vfmadd231ps {rn-sae}, %zmm0, %zmm13, %zmm6 - vaddps {rn-sae}, %zmm1, %zmm6, %zmm8 - vaddps {rn-sae}, %zmm7, %zmm0, %zmm1 - vmovups 4288+__svml_ssin_data_internal(%rip), %zmm6 - vmovups 4480+__svml_ssin_data_internal(%rip), %zmm0 - vmovups 4416+__svml_ssin_data_internal(%rip), %zmm7 - vfmadd231ps {rn-sae}, %zmm3, %zmm12, %zmm6 - vfmadd231ps {rn-sae}, %zmm3, %zmm0, %zmm7 - vmulps {rn-sae}, %zmm3, %zmm6, %zmm14 - vmulps {rn-sae}, %zmm3, %zmm7, %zmm0 - vmulps {rn-sae}, %zmm13, %zmm14, %zmm6 - vfnmadd213ps {rn-sae}, %zmm1, %zmm5, %zmm13 - vfmadd213ps {rn-sae}, %zmm8, %zmm13, %zmm6 - vpxord %zmm3, %zmm3, %zmm3 - vgatherdps 8(%rcx,%zmm9), %zmm3{%k1} - vfmadd213ps {rn-sae}, %zmm3, %zmm13, %zmm2 - vfmadd213ps {rn-sae}, %zmm2, %zmm5, %zmm0 - vaddps {rn-sae}, %zmm6, %zmm0, %zmm2 - -/* .................. Final reconstruction ................... */ - vaddps {rn-sae}, %zmm2, %zmm4, %zmm4 - -/* - * ---------------------------------------------------------- - * End of large arguments path - * ---------------------------------------------------------- - * Merge results from main and large paths: - */ - vpandnd (%rsp), %zmm10, %zmm0 - vpandd %zmm10, %zmm4, %zmm10 - vpord %zmm10, %zmm0, %zmm0 - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_sinf16,@function - .size __svml_sinf16,.-__svml_sinf16 -..LN__svml_sinf16.0: - -.L_2__routine_start___svml_ssin_cout_rare_internal_1: - - .align 16,0x90 - -__svml_ssin_cout_rare_internal: - - - .cfi_startproc -..L63: - - movl (%rdi), %edx - movzwl 2(%rdi), %eax - movl %edx, -8(%rsp) - andl $32640, %eax - shrl $24, %edx - andl $127, %edx - movss (%rdi), %xmm1 - cmpl $32640, %eax - jne .LBL_2_6 - - - movb %dl, -5(%rsp) - cmpl $2139095040, -8(%rsp) - jne .LBL_2_4 - - - movss __ssin_la__vmlsSinHATab(%rip), %xmm0 - movl $1, %eax - mulss %xmm0, %xmm1 - movss %xmm1, (%rsi) - ret - -.LBL_2_4: - - mulss (%rdi), %xmm1 - xorl %eax, %eax - movss %xmm1, (%rsi) - - - ret - -.LBL_2_6: - - xorl %eax, %eax - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_ssin_cout_rare_internal,@function - .size __svml_ssin_cout_rare_internal,.-__svml_ssin_cout_rare_internal -..LN__svml_ssin_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.21: - .long 0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000 - .type .L_2il0floatpacket.21,@object - .size .L_2il0floatpacket.21,64 - .align 64 -.L_2il0floatpacket.22: - .long 0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff - .type .L_2il0floatpacket.22,@object - .size .L_2il0floatpacket.22,64 - .align 64 -.L_2il0floatpacket.23: - .long 0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000 - .type .L_2il0floatpacket.23,@object - .size .L_2il0floatpacket.23,64 - .align 64 -.L_2il0floatpacket.24: - .long 0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff - .type .L_2il0floatpacket.24,@object - .size .L_2il0floatpacket.24,64 - .align 64 -.L_2il0floatpacket.25: - .long 0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000 - .type .L_2il0floatpacket.25,@object - .size .L_2il0floatpacket.25,64 - .align 64 -.L_2il0floatpacket.26: - .long 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000 - .type .L_2il0floatpacket.26,@object - .size .L_2il0floatpacket.26,64 - .align 64 -.L_2il0floatpacket.27: - .long 0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000 - .type .L_2il0floatpacket.27,@object - .size .L_2il0floatpacket.27,64 - .align 64 -.L_2il0floatpacket.28: - .long 0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff - .type .L_2il0floatpacket.28,@object - .size .L_2il0floatpacket.28,64 - .align 64 -.L_2il0floatpacket.29: - .long 0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000 - .type .L_2il0floatpacket.29,@object - .size .L_2il0floatpacket.29,64 - .align 64 -.L_2il0floatpacket.30: - .long 0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff - .type .L_2il0floatpacket.30,@object - .size .L_2il0floatpacket.30,64 - .align 64 -.L_2il0floatpacket.31: - .long 0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000 - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,64 - .align 64 -.L_2il0floatpacket.32: - .long 0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff - .type .L_2il0floatpacket.32,@object - .size .L_2il0floatpacket.32,64 - .align 64 -.L_2il0floatpacket.33: - .long 0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb - .type .L_2il0floatpacket.33,@object - .size .L_2il0floatpacket.33,64 - .align 64 -.L_2il0floatpacket.34: - .long 0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e - .type .L_2il0floatpacket.34,@object - .size .L_2il0floatpacket.34,64 - .align 64 -.L_2il0floatpacket.35: - .long 0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff - .type .L_2il0floatpacket.35,@object - .size .L_2il0floatpacket.35,64 - .align 64 -.L_2il0floatpacket.36: - .long 0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000 - .type .L_2il0floatpacket.36,@object - .size .L_2il0floatpacket.36,64 - .align 64 -__svml_ssin_data_internal: - .long 0 - .long 0 - .long 0 - .long 1065353216 - .long 3114133471 - .long 1019808432 - .long 2953169304 - .long 1065353216 - .long 3130909128 - .long 1028193072 - .long 2968461951 - .long 1065353216 - .long 3140588184 - .long 1033283845 - .long 2975014497 - .long 1065353216 - .long 3147680113 - .long 1036565814 - .long 2960495349 - .long 1065353216 - .long 3153489468 - .long 1039839859 - .long 2970970319 - .long 1065353216 - .long 3157349634 - .long 1041645699 - .long 837346836 - .long 1065353216 - .long 3161536011 - .long 1043271842 - .long 823224313 - .long 1065353216 - .long 3164432432 - .long 1044891074 - .long 2967836285 - .long 1065353216 - .long 3167161428 - .long 1046502419 - .long 833086710 - .long 1065353216 - .long 3170205956 - .long 1048104908 - .long 2971391005 - .long 1065353216 - .long 3172229004 - .long 1049136787 - .long 824999326 - .long 1065353216 - .long 3174063957 - .long 1049927729 - .long 846027248 - .long 1065353216 - .long 3176053642 - .long 1050712805 - .long 2990442912 - .long 1065353216 - .long 3178196862 - .long 1051491540 - .long 2988789250 - .long 1065353216 - .long 3179887378 - .long 1052263466 - .long 2993707942 - .long 1065353216 - .long 3181110540 - .long 1053028117 - .long 836097324 - .long 1065353216 - .long 3182408396 - .long 1053785034 - .long 829045603 - .long 1065353216 - .long 3183780163 - .long 1054533760 - .long 840832460 - .long 1065353216 - .long 3185225016 - .long 1055273845 - .long 2983839604 - .long 1065353216 - .long 3186742084 - .long 1056004842 - .long 2986287417 - .long 1065353216 - .long 3188000746 - .long 1056726311 - .long 2978016425 - .long 1065353216 - .long 3188830103 - .long 1057201213 - .long 2992349186 - .long 1065353216 - .long 3189694133 - .long 1057551771 - .long 2998815566 - .long 1065353216 - .long 3190592315 - .long 1057896922 - .long 2991207143 - .long 1065353216 - .long 3191524108 - .long 1058236458 - .long 852349230 - .long 1065353216 - .long 3192488951 - .long 1058570176 - .long 2982650867 - .long 1065353216 - .long 3193486263 - .long 1058897873 - .long 848430348 - .long 1065353216 - .long 3194515443 - .long 1059219353 - .long 841032635 - .long 1065353216 - .long 3195575871 - .long 1059534422 - .long 2986574659 - .long 1065353216 - .long 3196363278 - .long 1059842890 - .long 2998350134 - .long 1065353216 - .long 3196923773 - .long 1060144571 - .long 2997759282 - .long 1065353216 - .long 3197498906 - .long 1060439283 - .long 844097402 - .long 1065353216 - .long 1044518635 - .long 1060726850 - .long 2994798599 - .long 1056964608 - .long 1043311911 - .long 1061007097 - .long 832220140 - .long 1056964608 - .long 1042078039 - .long 1061279856 - .long 851442039 - .long 1056964608 - .long 1040817765 - .long 1061544963 - .long 850481524 - .long 1056964608 - .long 1038876298 - .long 1061802258 - .long 848897600 - .long 1056964608 - .long 1036254719 - .long 1062051586 - .long 847147240 - .long 1056964608 - .long 1033584979 - .long 1062292797 - .long 806113028 - .long 1056964608 - .long 1029938589 - .long 1062525745 - .long 848357914 - .long 1056964608 - .long 1024416170 - .long 1062750291 - .long 2994560960 - .long 1056964608 - .long 1013387058 - .long 1062966298 - .long 841166280 - .long 1056964608 - .long 3152590408 - .long 1063173637 - .long 851900755 - .long 1056964608 - .long 3169472868 - .long 1063372184 - .long 3001545765 - .long 1056964608 - .long 3176031322 - .long 1063561817 - .long 823789818 - .long 1056964608 - .long 3180617215 - .long 1063742424 - .long 2998678409 - .long 1056964608 - .long 3183612120 - .long 1063913895 - .long 3001754476 - .long 1056964608 - .long 3186639787 - .long 1064076126 - .long 854796500 - .long 1056964608 - .long 3188684717 - .long 1064229022 - .long 2995991516 - .long 1056964608 - .long 1035072335 - .long 1064372488 - .long 840880349 - .long 1048576000 - .long 1031957395 - .long 1064506439 - .long 851742225 - .long 1048576000 - .long 1025835404 - .long 1064630795 - .long 2996018466 - .long 1048576000 - .long 1015605553 - .long 1064745479 - .long 846006572 - .long 1048576000 - .long 3152414341 - .long 1064850424 - .long 2987244005 - .long 1048576000 - .long 3170705253 - .long 1064945565 - .long 851856985 - .long 1048576000 - .long 3177244920 - .long 1065030846 - .long 855602635 - .long 1048576000 - .long 1027359369 - .long 1065106216 - .long 2989610635 - .long 1040187392 - .long 1018299420 - .long 1065171628 - .long 2969000681 - .long 1040187392 - .long 3140071849 - .long 1065227044 - .long 3002197507 - .long 1040187392 - .long 3168602920 - .long 1065272429 - .long 838093129 - .long 1040187392 - .long 1010124837 - .long 1065307757 - .long 852498564 - .long 1031798784 - .long 3160150850 - .long 1065333007 - .long 836655967 - .long 1031798784 - .long 3151746369 - .long 1065348163 - .long 814009613 - .long 1023410176 - .long 0 - .long 1065353216 - .long 0 - .long 0 - .long 1004262721 - .long 1065348163 - .long 814009613 - .long 3170893824 - .long 1012667202 - .long 1065333007 - .long 836655967 - .long 3179282432 - .long 3157608485 - .long 1065307757 - .long 852498564 - .long 3179282432 - .long 1021119272 - .long 1065272429 - .long 838093129 - .long 3187671040 - .long 992588201 - .long 1065227044 - .long 3002197507 - .long 3187671040 - .long 3165783068 - .long 1065171628 - .long 2969000681 - .long 3187671040 - .long 3174843017 - .long 1065106216 - .long 2989610635 - .long 3187671040 - .long 1029761272 - .long 1065030846 - .long 855602635 - .long 3196059648 - .long 1023221605 - .long 1064945565 - .long 851856985 - .long 3196059648 - .long 1004930693 - .long 1064850424 - .long 2987244005 - .long 3196059648 - .long 3163089201 - .long 1064745479 - .long 846006572 - .long 3196059648 - .long 3173319052 - .long 1064630795 - .long 2996018466 - .long 3196059648 - .long 3179441043 - .long 1064506439 - .long 851742225 - .long 3196059648 - .long 3182555983 - .long 1064372488 - .long 840880349 - .long 3196059648 - .long 1041201069 - .long 1064229022 - .long 2995991516 - .long 3204448256 - .long 1039156139 - .long 1064076126 - .long 854796500 - .long 3204448256 - .long 1036128472 - .long 1063913895 - .long 3001754476 - .long 3204448256 - .long 1033133567 - .long 1063742424 - .long 2998678409 - .long 3204448256 - .long 1028547674 - .long 1063561817 - .long 823789818 - .long 3204448256 - .long 1021989220 - .long 1063372184 - .long 3001545765 - .long 3204448256 - .long 1005106760 - .long 1063173637 - .long 851900755 - .long 3204448256 - .long 3160870706 - .long 1062966298 - .long 841166280 - .long 3204448256 - .long 3171899818 - .long 1062750291 - .long 2994560960 - .long 3204448256 - .long 3177422237 - .long 1062525745 - .long 848357914 - .long 3204448256 - .long 3181068627 - .long 1062292797 - .long 806113028 - .long 3204448256 - .long 3183738367 - .long 1062051586 - .long 847147240 - .long 3204448256 - .long 3186359946 - .long 1061802258 - .long 848897600 - .long 3204448256 - .long 3188301413 - .long 1061544963 - .long 850481524 - .long 3204448256 - .long 3189561687 - .long 1061279856 - .long 851442039 - .long 3204448256 - .long 3190795559 - .long 1061007097 - .long 832220140 - .long 3204448256 - .long 3192002283 - .long 1060726850 - .long 2994798599 - .long 3204448256 - .long 1050015258 - .long 1060439283 - .long 844097402 - .long 3212836864 - .long 1049440125 - .long 1060144571 - .long 2997759282 - .long 3212836864 - .long 1048879630 - .long 1059842890 - .long 2998350134 - .long 3212836864 - .long 1048092223 - .long 1059534422 - .long 2986574659 - .long 3212836864 - .long 1047031795 - .long 1059219353 - .long 841032635 - .long 3212836864 - .long 1046002615 - .long 1058897873 - .long 848430348 - .long 3212836864 - .long 1045005303 - .long 1058570176 - .long 2982650867 - .long 3212836864 - .long 1044040460 - .long 1058236458 - .long 852349230 - .long 3212836864 - .long 1043108667 - .long 1057896922 - .long 2991207143 - .long 3212836864 - .long 1042210485 - .long 1057551771 - .long 2998815566 - .long 3212836864 - .long 1041346455 - .long 1057201213 - .long 2992349186 - .long 3212836864 - .long 1040517098 - .long 1056726311 - .long 2978016425 - .long 3212836864 - .long 1039258436 - .long 1056004842 - .long 2986287417 - .long 3212836864 - .long 1037741368 - .long 1055273845 - .long 2983839604 - .long 3212836864 - .long 1036296515 - .long 1054533760 - .long 840832460 - .long 3212836864 - .long 1034924748 - .long 1053785034 - .long 829045603 - .long 3212836864 - .long 1033626892 - .long 1053028117 - .long 836097324 - .long 3212836864 - .long 1032403730 - .long 1052263466 - .long 2993707942 - .long 3212836864 - .long 1030713214 - .long 1051491540 - .long 2988789250 - .long 3212836864 - .long 1028569994 - .long 1050712805 - .long 2990442912 - .long 3212836864 - .long 1026580309 - .long 1049927729 - .long 846027248 - .long 3212836864 - .long 1024745356 - .long 1049136787 - .long 824999326 - .long 3212836864 - .long 1022722308 - .long 1048104908 - .long 2971391005 - .long 3212836864 - .long 1019677780 - .long 1046502419 - .long 833086710 - .long 3212836864 - .long 1016948784 - .long 1044891074 - .long 2967836285 - .long 3212836864 - .long 1014052363 - .long 1043271842 - .long 823224313 - .long 3212836864 - .long 1009865986 - .long 1041645699 - .long 837346836 - .long 3212836864 - .long 1006005820 - .long 1039839859 - .long 2970970319 - .long 3212836864 - .long 1000196465 - .long 1036565814 - .long 2960495349 - .long 3212836864 - .long 993104536 - .long 1033283845 - .long 2975014497 - .long 3212836864 - .long 983425480 - .long 1028193072 - .long 2968461951 - .long 3212836864 - .long 966649823 - .long 1019808432 - .long 2953169304 - .long 3212836864 - .long 0 - .long 0 - .long 0 - .long 3212836864 - .long 966649823 - .long 3167292080 - .long 805685656 - .long 3212836864 - .long 983425480 - .long 3175676720 - .long 820978303 - .long 3212836864 - .long 993104536 - .long 3180767493 - .long 827530849 - .long 3212836864 - .long 1000196465 - .long 3184049462 - .long 813011701 - .long 3212836864 - .long 1006005820 - .long 3187323507 - .long 823486671 - .long 3212836864 - .long 1009865986 - .long 3189129347 - .long 2984830484 - .long 3212836864 - .long 1014052363 - .long 3190755490 - .long 2970707961 - .long 3212836864 - .long 1016948784 - .long 3192374722 - .long 820352637 - .long 3212836864 - .long 1019677780 - .long 3193986067 - .long 2980570358 - .long 3212836864 - .long 1022722308 - .long 3195588556 - .long 823907357 - .long 3212836864 - .long 1024745356 - .long 3196620435 - .long 2972482974 - .long 3212836864 - .long 1026580309 - .long 3197411377 - .long 2993510896 - .long 3212836864 - .long 1028569994 - .long 3198196453 - .long 842959264 - .long 3212836864 - .long 1030713214 - .long 3198975188 - .long 841305602 - .long 3212836864 - .long 1032403730 - .long 3199747114 - .long 846224294 - .long 3212836864 - .long 1033626892 - .long 3200511765 - .long 2983580972 - .long 3212836864 - .long 1034924748 - .long 3201268682 - .long 2976529251 - .long 3212836864 - .long 1036296515 - .long 3202017408 - .long 2988316108 - .long 3212836864 - .long 1037741368 - .long 3202757493 - .long 836355956 - .long 3212836864 - .long 1039258436 - .long 3203488490 - .long 838803769 - .long 3212836864 - .long 1040517098 - .long 3204209959 - .long 830532777 - .long 3212836864 - .long 1041346455 - .long 3204684861 - .long 844865538 - .long 3212836864 - .long 1042210485 - .long 3205035419 - .long 851331918 - .long 3212836864 - .long 1043108667 - .long 3205380570 - .long 843723495 - .long 3212836864 - .long 1044040460 - .long 3205720106 - .long 2999832878 - .long 3212836864 - .long 1045005303 - .long 3206053824 - .long 835167219 - .long 3212836864 - .long 1046002615 - .long 3206381521 - .long 2995913996 - .long 3212836864 - .long 1047031795 - .long 3206703001 - .long 2988516283 - .long 3212836864 - .long 1048092223 - .long 3207018070 - .long 839091011 - .long 3212836864 - .long 1048879630 - .long 3207326538 - .long 850866486 - .long 3212836864 - .long 1049440125 - .long 3207628219 - .long 850275634 - .long 3212836864 - .long 1050015258 - .long 3207922931 - .long 2991581050 - .long 3212836864 - .long 3192002283 - .long 3208210498 - .long 847314951 - .long 3204448256 - .long 3190795559 - .long 3208490745 - .long 2979703788 - .long 3204448256 - .long 3189561687 - .long 3208763504 - .long 2998925687 - .long 3204448256 - .long 3188301413 - .long 3209028611 - .long 2997965172 - .long 3204448256 - .long 3186359946 - .long 3209285906 - .long 2996381248 - .long 3204448256 - .long 3183738367 - .long 3209535234 - .long 2994630888 - .long 3204448256 - .long 3181068627 - .long 3209776445 - .long 2953596676 - .long 3204448256 - .long 3177422237 - .long 3210009393 - .long 2995841562 - .long 3204448256 - .long 3171899818 - .long 3210233939 - .long 847077312 - .long 3204448256 - .long 3160870706 - .long 3210449946 - .long 2988649928 - .long 3204448256 - .long 1005106760 - .long 3210657285 - .long 2999384403 - .long 3204448256 - .long 1021989220 - .long 3210855832 - .long 854062117 - .long 3204448256 - .long 1028547674 - .long 3211045465 - .long 2971273466 - .long 3204448256 - .long 1033133567 - .long 3211226072 - .long 851194761 - .long 3204448256 - .long 1036128472 - .long 3211397543 - .long 854270828 - .long 3204448256 - .long 1039156139 - .long 3211559774 - .long 3002280148 - .long 3204448256 - .long 1041201069 - .long 3211712670 - .long 848507868 - .long 3204448256 - .long 3182555983 - .long 3211856136 - .long 2988363997 - .long 3196059648 - .long 3179441043 - .long 3211990087 - .long 2999225873 - .long 3196059648 - .long 3173319052 - .long 3212114443 - .long 848534818 - .long 3196059648 - .long 3163089201 - .long 3212229127 - .long 2993490220 - .long 3196059648 - .long 1004930693 - .long 3212334072 - .long 839760357 - .long 3196059648 - .long 1023221605 - .long 3212429213 - .long 2999340633 - .long 3196059648 - .long 1029761272 - .long 3212514494 - .long 3003086283 - .long 3196059648 - .long 3174843017 - .long 3212589864 - .long 842126987 - .long 3187671040 - .long 3165783068 - .long 3212655276 - .long 821517033 - .long 3187671040 - .long 992588201 - .long 3212710692 - .long 854713859 - .long 3187671040 - .long 1021119272 - .long 3212756077 - .long 2985576777 - .long 3187671040 - .long 3157608485 - .long 3212791405 - .long 2999982212 - .long 3179282432 - .long 1012667202 - .long 3212816655 - .long 2984139615 - .long 3179282432 - .long 1004262721 - .long 3212831811 - .long 2961493261 - .long 3170893824 - .long 0 - .long 3212836864 - .long 0 - .long 0 - .long 3151746369 - .long 3212831811 - .long 2961493261 - .long 1023410176 - .long 3160150850 - .long 3212816655 - .long 2984139615 - .long 1031798784 - .long 1010124837 - .long 3212791405 - .long 2999982212 - .long 1031798784 - .long 3168602920 - .long 3212756077 - .long 2985576777 - .long 1040187392 - .long 3140071849 - .long 3212710692 - .long 854713859 - .long 1040187392 - .long 1018299420 - .long 3212655276 - .long 821517033 - .long 1040187392 - .long 1027359369 - .long 3212589864 - .long 842126987 - .long 1040187392 - .long 3177244920 - .long 3212514494 - .long 3003086283 - .long 1048576000 - .long 3170705253 - .long 3212429213 - .long 2999340633 - .long 1048576000 - .long 3152414341 - .long 3212334072 - .long 839760357 - .long 1048576000 - .long 1015605553 - .long 3212229127 - .long 2993490220 - .long 1048576000 - .long 1025835404 - .long 3212114443 - .long 848534818 - .long 1048576000 - .long 1031957395 - .long 3211990087 - .long 2999225873 - .long 1048576000 - .long 1035072335 - .long 3211856136 - .long 2988363997 - .long 1048576000 - .long 3188684717 - .long 3211712670 - .long 848507868 - .long 1056964608 - .long 3186639787 - .long 3211559774 - .long 3002280148 - .long 1056964608 - .long 3183612120 - .long 3211397543 - .long 854270828 - .long 1056964608 - .long 3180617215 - .long 3211226072 - .long 851194761 - .long 1056964608 - .long 3176031322 - .long 3211045465 - .long 2971273466 - .long 1056964608 - .long 3169472868 - .long 3210855832 - .long 854062117 - .long 1056964608 - .long 3152590408 - .long 3210657285 - .long 2999384403 - .long 1056964608 - .long 1013387058 - .long 3210449946 - .long 2988649928 - .long 1056964608 - .long 1024416170 - .long 3210233939 - .long 847077312 - .long 1056964608 - .long 1029938589 - .long 3210009393 - .long 2995841562 - .long 1056964608 - .long 1033584979 - .long 3209776445 - .long 2953596676 - .long 1056964608 - .long 1036254719 - .long 3209535234 - .long 2994630888 - .long 1056964608 - .long 1038876298 - .long 3209285906 - .long 2996381248 - .long 1056964608 - .long 1040817765 - .long 3209028611 - .long 2997965172 - .long 1056964608 - .long 1042078039 - .long 3208763504 - .long 2998925687 - .long 1056964608 - .long 1043311911 - .long 3208490745 - .long 2979703788 - .long 1056964608 - .long 1044518635 - .long 3208210498 - .long 847314951 - .long 1056964608 - .long 3197498906 - .long 3207922931 - .long 2991581050 - .long 1065353216 - .long 3196923773 - .long 3207628219 - .long 850275634 - .long 1065353216 - .long 3196363278 - .long 3207326538 - .long 850866486 - .long 1065353216 - .long 3195575871 - .long 3207018070 - .long 839091011 - .long 1065353216 - .long 3194515443 - .long 3206703001 - .long 2988516283 - .long 1065353216 - .long 3193486263 - .long 3206381521 - .long 2995913996 - .long 1065353216 - .long 3192488951 - .long 3206053824 - .long 835167219 - .long 1065353216 - .long 3191524108 - .long 3205720106 - .long 2999832878 - .long 1065353216 - .long 3190592315 - .long 3205380570 - .long 843723495 - .long 1065353216 - .long 3189694133 - .long 3205035419 - .long 851331918 - .long 1065353216 - .long 3188830103 - .long 3204684861 - .long 844865538 - .long 1065353216 - .long 3188000746 - .long 3204209959 - .long 830532777 - .long 1065353216 - .long 3186742084 - .long 3203488490 - .long 838803769 - .long 1065353216 - .long 3185225016 - .long 3202757493 - .long 836355956 - .long 1065353216 - .long 3183780163 - .long 3202017408 - .long 2988316108 - .long 1065353216 - .long 3182408396 - .long 3201268682 - .long 2976529251 - .long 1065353216 - .long 3181110540 - .long 3200511765 - .long 2983580972 - .long 1065353216 - .long 3179887378 - .long 3199747114 - .long 846224294 - .long 1065353216 - .long 3178196862 - .long 3198975188 - .long 841305602 - .long 1065353216 - .long 3176053642 - .long 3198196453 - .long 842959264 - .long 1065353216 - .long 3174063957 - .long 3197411377 - .long 2993510896 - .long 1065353216 - .long 3172229004 - .long 3196620435 - .long 2972482974 - .long 1065353216 - .long 3170205956 - .long 3195588556 - .long 823907357 - .long 1065353216 - .long 3167161428 - .long 3193986067 - .long 2980570358 - .long 1065353216 - .long 3164432432 - .long 3192374722 - .long 820352637 - .long 1065353216 - .long 3161536011 - .long 3190755490 - .long 2970707961 - .long 1065353216 - .long 3157349634 - .long 3189129347 - .long 2984830484 - .long 1065353216 - .long 3153489468 - .long 3187323507 - .long 823486671 - .long 1065353216 - .long 3147680113 - .long 3184049462 - .long 813011701 - .long 1065353216 - .long 3140588184 - .long 3180767493 - .long 827530849 - .long 1065353216 - .long 3130909128 - .long 3175676720 - .long 820978303 - .long 1065353216 - .long 3114133471 - .long 3167292080 - .long 805685656 - .long 1065353216 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 1176256512 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 3190467243 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 1007192156 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 3204448256 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1026206332 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 1078525952 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 981311488 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 874651648 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 750018842 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 1078530011 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 3015425326 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 2809605357 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 3190467238 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 1007191910 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 3109009407 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 909041400 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1050868099 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .type __svml_ssin_data_internal,@object - .size __svml_ssin_data_internal,5376 - .align 64 -__svml_ssin_reduction_data_internal: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1 - .long 0 - .long 0 - .long 2 - .long 0 - .long 0 - .long 5 - .long 0 - .long 0 - .long 10 - .long 0 - .long 0 - .long 20 - .long 0 - .long 0 - .long 40 - .long 0 - .long 0 - .long 81 - .long 0 - .long 0 - .long 162 - .long 0 - .long 0 - .long 325 - .long 0 - .long 0 - .long 651 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 1 - .long 1173554908 - .long 0 - .long 2 - .long 2347109817 - .long 0 - .long 5 - .long 399252338 - .long 0 - .long 10 - .long 798504676 - .long 0 - .long 20 - .long 1597009353 - .long 0 - .long 40 - .long 3194018707 - .long 0 - .long 81 - .long 2093070119 - .long 0 - .long 162 - .long 4186140238 - .long 0 - .long 325 - .long 4077313180 - .long 0 - .long 651 - .long 3859659065 - .long 0 - .long 1303 - .long 3424350834 - .long 0 - .long 2607 - .long 2553734372 - .long 0 - .long 5215 - .long 812501448 - .long 0 - .long 10430 - .long 1625002897 - .long 0 - .long 20860 - .long 3250005794 - .long 0 - .long 41721 - .long 2205044292 - .long 0 - .long 83443 - .long 115121288 - .long 0 - .long 166886 - .long 230242576 - .long 0 - .long 333772 - .long 460485152 - .long 0 - .long 667544 - .long 920970305 - .long 0 - .long 1335088 - .long 1841940610 - .long 0 - .long 2670176 - .long 3683881221 - .long 0 - .long 5340353 - .long 3072795146 - .long 0 - .long 10680707 - .long 1850622997 - .long 0 - .long 21361414 - .long 3701245994 - .long 0 - .long 42722829 - .long 3107524692 - .long 0 - .long 85445659 - .long 1920082089 - .long 0 - .long 170891318 - .long 3840164178 - .long 0 - .long 341782637 - .long 3385361061 - .long 0 - .long 683565275 - .long 2475754826 - .long 0 - .long 1367130551 - .long 656542356 - .long 0 - .long 2734261102 - .long 1313084713 - .long 1 - .long 1173554908 - .long 2626169427 - .long 2 - .long 2347109817 - .long 957371559 - .long 5 - .long 399252338 - .long 1914743119 - .long 10 - .long 798504676 - .long 3829486239 - .long 20 - .long 1597009353 - .long 3364005183 - .long 40 - .long 3194018707 - .long 2433043071 - .long 81 - .long 2093070119 - .long 571118846 - .long 162 - .long 4186140238 - .long 1142237692 - .long 325 - .long 4077313180 - .long 2284475384 - .long 651 - .long 3859659065 - .long 273983472 - .long 1303 - .long 3424350834 - .long 547966945 - .long 2607 - .long 2553734372 - .long 1095933890 - .long 5215 - .long 812501448 - .long 2191867780 - .long 10430 - .long 1625002897 - .long 88768265 - .long 20860 - .long 3250005794 - .long 177536531 - .long 41721 - .long 2205044292 - .long 355073063 - .long 83443 - .long 115121288 - .long 710146126 - .long 166886 - .long 230242576 - .long 1420292253 - .long 333772 - .long 460485152 - .long 2840584506 - .long 667544 - .long 920970305 - .long 1386201717 - .long 1335088 - .long 1841940610 - .long 2772403434 - .long 2670176 - .long 3683881221 - .long 1249839573 - .long 5340353 - .long 3072795146 - .long 2499679147 - .long 10680707 - .long 1850622997 - .long 704390999 - .long 21361414 - .long 3701245994 - .long 1408781999 - .long 42722829 - .long 3107524692 - .long 2817563999 - .long 85445659 - .long 1920082089 - .long 1340160702 - .long 170891318 - .long 3840164178 - .long 2680321405 - .long 341782637 - .long 3385361061 - .long 1065675514 - .long 683565275 - .long 2475754826 - .long 2131351028 - .long 1367130551 - .long 656542356 - .long 4262702056 - .long 2734261102 - .long 1313084713 - .long 4230436817 - .long 1173554908 - .long 2626169427 - .long 4165906339 - .long 2347109817 - .long 957371559 - .long 4036845383 - .long 399252338 - .long 1914743119 - .long 3778723471 - .long 798504676 - .long 3829486239 - .long 3262479647 - .long 1597009353 - .long 3364005183 - .long 2229991998 - .long 3194018707 - .long 2433043071 - .long 165016701 - .long 2093070119 - .long 571118846 - .long 330033402 - .long 4186140238 - .long 1142237692 - .long 660066805 - .long 4077313180 - .long 2284475384 - .long 1320133610 - .long 3859659065 - .long 273983472 - .long 2640267220 - .long 3424350834 - .long 547966945 - .long 985567145 - .long 2553734372 - .long 1095933890 - .long 1971134291 - .long 812501448 - .long 2191867780 - .long 3942268582 - .long 1625002897 - .long 88768265 - .long 3589569869 - .long 3250005794 - .long 177536531 - .long 2884172442 - .long 2205044292 - .long 355073063 - .long 1473377588 - .long 115121288 - .long 710146126 - .long 2946755177 - .long 230242576 - .long 1420292253 - .long 1598543059 - .long 460485152 - .long 2840584506 - .long 3197086118 - .long 920970305 - .long 1386201717 - .long 2099204941 - .long 1841940610 - .long 2772403434 - .long 4198409883 - .long 3683881221 - .long 1249839573 - .long 4101852471 - .long 3072795146 - .long 2499679147 - .long 3908737646 - .long 1850622997 - .long 704390999 - .long 3522507997 - .long 3701245994 - .long 1408781999 - .long 2750048699 - .long 3107524692 - .long 2817563999 - .long 1205130103 - .long 1920082089 - .long 1340160702 - .long 2410260206 - .long 3840164178 - .long 2680321405 - .long 525553116 - .long 3385361061 - .long 1065675514 - .long 1051106232 - .long 2475754826 - .long 2131351028 - .long 2102212464 - .long 656542356 - .long 4262702056 - .long 4204424928 - .long 1313084713 - .long 4230436817 - .long 4113882560 - .long 2626169427 - .long 4165906339 - .long 3932797825 - .long 957371559 - .long 4036845383 - .long 3570628355 - .long 1914743119 - .long 3778723471 - .long 2846289414 - .long 3829486239 - .long 3262479647 - .long 1397611533 - .long 3364005183 - .long 2229991998 - .long 2795223067 - .long 2433043071 - .long 165016701 - .long 1295478838 - .long 571118846 - .long 330033402 - .long 2590957677 - .long 1142237692 - .long 660066805 - .long 886948059 - .long 2284475384 - .long 1320133610 - .long 1773896118 - .long 273983472 - .long 2640267220 - .long 3547792237 - .long 547966945 - .long 985567145 - .long 2800617179 - .long 1095933890 - .long 1971134291 - .long 1306267062 - .long 2191867780 - .long 3942268582 - .long 2612534124 - .long 88768265 - .long 3589569869 - .long 930100952 - .long 177536531 - .long 2884172442 - .long 1860201905 - .long 355073063 - .long 1473377588 - .long 3720403810 - .long 710146126 - .long 2946755177 - .long 3145840325 - .long 1420292253 - .long 1598543059 - .long 1996713354 - .long 2840584506 - .long 3197086118 - .long 3993426708 - .long 1386201717 - .long 2099204941 - .long 3691886121 - .long 2772403434 - .long 4198409883 - .long 3088804946 - .long 1249839573 - .long 4101852471 - .long 1882642597 - .long 2499679147 - .long 3908737646 - .long 3765285194 - .long 704390999 - .long 3522507997 - .long 3235603093 - .long 1408781999 - .long 2750048699 - .long 2176238891 - .long 2817563999 - .long 1205130103 - .long 57510486 - .long 1340160702 - .long 2410260206 - .long 115020972 - .long 2680321405 - .long 525553116 - .long 230041945 - .long 1065675514 - .long 1051106232 - .long 460083891 - .long 2131351028 - .long 2102212464 - .long 920167782 - .long 4262702056 - .long 4204424928 - .long 1840335564 - .long 4230436817 - .long 4113882560 - .long 3680671129 - .long 4165906339 - .long 3932797825 - .long 3066374962 - .long 4036845383 - .long 3570628355 - .long 1837782628 - .long 3778723471 - .long 2846289414 - .long 3675565257 - .long 3262479647 - .long 1397611533 - .long 3056163219 - .long 2229991998 - .long 2795223067 - .long 1817359143 - .long 165016701 - .long 1295478838 - .long 3634718287 - .long 330033402 - .long 2590957677 - .long 2974469278 - .long 660066805 - .long 886948059 - .long 1653971260 - .long 1320133610 - .long 1773896118 - .long 3307942520 - .long 2640267220 - .long 3547792237 - .long 2320917745 - .long 985567145 - .long 2800617179 - .long 346868194 - .long 1971134291 - .long 1306267062 - .long 693736388 - .long 3942268582 - .long 2612534124 - .long 1387472776 - .long 3589569869 - .long 930100952 - .long 2774945552 - .long 2884172442 - .long 1860201905 - .long 1254923809 - .long 1473377588 - .long 3720403810 - .long 2509847619 - .long 2946755177 - .long 3145840325 - .long 724727943 - .long 1598543059 - .long 1996713354 - .long 1449455886 - .long 3197086118 - .long 3993426708 - .long 2898911772 - .long 2099204941 - .long 3691886121 - .long 1502856249 - .long 4198409883 - .long 3088804946 - .long 3005712498 - .long 4101852471 - .long 1882642597 - .long 1716457700 - .long 3908737646 - .long 3765285194 - .long 3432915400 - .long 3522507997 - .long 3235603093 - .long 2570863504 - .long 2750048699 - .long 2176238891 - .long 846759712 - .long 1205130103 - .long 57510486 - .long 1693519425 - .long 2410260206 - .long 115020972 - .long 3387038850 - .long 525553116 - .long 230041945 - .long 2479110404 - .long 1051106232 - .long 460083891 - .long 663253512 - .long 2102212464 - .long 920167782 - .long 1326507024 - .long 4204424928 - .long 1840335564 - .long 2653014048 - .long 4113882560 - .long 3680671129 - .long 1011060801 - .long 3932797825 - .long 3066374962 - .long 2022121603 - .long 3570628355 - .long 1837782628 - .long 4044243207 - .long 2846289414 - .long 3675565257 - .long 3793519119 - .long 1397611533 - .long 3056163219 - .long 3292070943 - .long 2795223067 - .long 1817359143 - .long 2289174591 - .long 1295478838 - .long 3634718287 - .long 283381887 - .long 2590957677 - .long 2974469278 - .long 566763775 - .type __svml_ssin_reduction_data_internal,@object - .size __svml_ssin_reduction_data_internal,3072 - .align 4 -__ssin_la__vmlsSinHATab: - .long 0 - .long 2139095040 - .type __ssin_la__vmlsSinHATab,@object - .size __ssin_la__vmlsSinHATab,8 diff --git a/numpy/core/src/umath/svml/svml_z0_sinh_d_la.s b/numpy/core/src/umath/svml/svml_z0_sinh_d_la.s deleted file mode 100644 index 5b4bcbb6ad9c..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_sinh_d_la.s +++ /dev/null @@ -1,2052 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_sinh8_z0_0: - - .align 16,0x90 - .globl __svml_sinh8 - -__svml_sinh8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - lea 1608+__svml_dsinh_data_internal(%rip), %rax - vmovaps %zmm0, %zmm8 - -/* ............... Abs argument ............................ */ - vandpd 1408+__svml_dsinh_data_internal(%rip), %zmm8, %zmm7 - vmovups 3648+__svml_dsinh_data_internal(%rip), %zmm13 - -/* - * ............... Load argument ............................ - * dM = x*2^K/log(2) + RShifter - */ - vmovups 1216+__svml_dsinh_data_internal(%rip), %zmm12 - vmovups 1280+__svml_dsinh_data_internal(%rip), %zmm14 - vmovups 4032+__svml_dsinh_data_internal(%rip), %zmm6 - -/* VLOAD_CONST( D, dPC[0], TAB._dPC1 ); */ - vmovups 3968+__svml_dsinh_data_internal(%rip), %zmm4 - vxorpd %zmm8, %zmm7, %zmm5 - kxnorw %k0, %k0, %k1 - kxnorw %k0, %k0, %k2 - vfmadd213pd {rn-sae}, %zmm13, %zmm5, %zmm12 - -/* - * ...............Check for overflow\underflow ............. - * - */ - vpsrlq $32, %zmm5, %zmm9 - -/* - * ................... R ................................... - * dN = dM - RShifter - */ - vsubpd {rn-sae}, %zmm13, %zmm12, %zmm2 - vpmovqd %zmm9, %ymm10 - vmovups 1344+__svml_dsinh_data_internal(%rip), %zmm9 - -/* dR = dX - dN*Log2_hi/2^K */ - vfnmadd231pd {rn-sae}, %zmm14, %zmm2, %zmm5 - -/* - * ....sinh(r) = r*((a1=1)+r^2*(a3+r^2*a5)) = r + r*(r^2*(a3+r^2*a5)) .... - * dSinh_r = (a3+r^2*a5) - */ - vmovups 3904+__svml_dsinh_data_internal(%rip), %zmm14 - -/* dR = (dX - dN*Log2_hi/2^K) - dN*Log2_lo/2^K */ - vfnmadd231pd {rn-sae}, %zmm9, %zmm2, %zmm5 - vpcmpgtd 3712+__svml_dsinh_data_internal(%rip), %ymm10, %ymm11 - vmovmskps %ymm11, %edx - -/* dR2 = dR^2 */ - vmulpd {rn-sae}, %zmm5, %zmm5, %zmm2 - vfmadd231pd {rn-sae}, %zmm2, %zmm6, %zmm14 - -/* - * .............. Index and lookup ......................... - * j - */ - vpandq 4224+__svml_dsinh_data_internal(%rip), %zmm12, %zmm15 - vpsllq $4, %zmm15, %zmm1 - vpmovqd %zmm1, %ymm0 - vpxord %zmm11, %zmm11, %zmm11 - vpxord %zmm10, %zmm10, %zmm10 - vgatherdpd (%rax,%ymm0), %zmm11{%k1} - vgatherdpd -8(%rax,%ymm0), %zmm10{%k2} - -/* split j and N */ - vpxorq %zmm15, %zmm12, %zmm3 - -/* - * ............... G1,G2,G3: dTdif,dTn * 2^N,2^(-N) ........... - * lM now is an EXP(2^N) - */ - vpsllq $45, %zmm3, %zmm3 - vpaddq %zmm3, %zmm10, %zmm1 - -/* */ - vpaddq %zmm3, %zmm11, %zmm12 - -/* */ - vpsubq %zmm3, %zmm11, %zmm13 - -/* dSinh_r = r^2*(a3+r^2*a5) */ - vmulpd {rn-sae}, %zmm2, %zmm14, %zmm3 - -/* dG2 = dTn*2^N - dTn*2^-N */ - vsubpd {rn-sae}, %zmm13, %zmm12, %zmm15 - -/* dG3 = dTn*2^N + dTn*2^-N */ - vaddpd {rn-sae}, %zmm13, %zmm12, %zmm0 - -/* dSinh_r = r + r*(r^2*(a3+r^2*a5)) */ - vfmadd213pd {rn-sae}, %zmm5, %zmm5, %zmm3 - -/* - * poly(r) = (dG2+dG1)+dG3*sinh(dR)+dG1*sinh(dR)+(dG1+dG2)*dR2*(a2 +a4*dR2) - * dOut = (a2 +a4*dR2) - */ - vmovups 3840+__svml_dsinh_data_internal(%rip), %zmm5 - -/* dG1 += dG3 */ - vaddpd {rn-sae}, %zmm0, %zmm1, %zmm6 - vfmadd231pd {rn-sae}, %zmm2, %zmm4, %zmm5 - -/* dOut = dR2*(a2 +a4*dR2) */ - vmulpd {rn-sae}, %zmm2, %zmm5, %zmm4 - -/* dG2 += dG1 */ - vaddpd {rn-sae}, %zmm15, %zmm1, %zmm2 - -/* dOut = dG2*dR2*(a2 +a4*dR2) */ - vmulpd {rn-sae}, %zmm2, %zmm4, %zmm4 - -/* dOut = dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */ - vfmadd213pd {rn-sae}, %zmm4, %zmm6, %zmm3 - -/* dOut = dG2 + dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */ - vaddpd {rn-sae}, %zmm2, %zmm3, %zmm0 - -/* ................... Ret H ...................... */ - vorpd %zmm0, %zmm7, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm8, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dsinh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_sinh8,@function - .size __svml_sinh8,.-__svml_sinh8 -..LN__svml_sinh8.0: - -.L_2__routine_start___svml_dsinh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dsinh_cout_rare_internal: - - - .cfi_startproc -..L53: - - movq %rsi, %r9 - movzwl 6(%rdi), %ecx - xorl %eax, %eax - andl $32752, %ecx - shrl $4, %ecx - movsd (%rdi), %xmm2 - movb 7(%rdi), %dl - movsd %xmm2, -8(%rsp) - cmpl $2047, %ecx - je .LBL_2_17 - - - testl %ecx, %ecx - jle .LBL_2_16 - - - andb $127, %dl - movsd %xmm2, -32(%rsp) - movb %dl, -25(%rsp) - cmpl $969, %ecx - jle .LBL_2_14 - - - movsd -32(%rsp), %xmm0 - movsd 1136+__dsinh_la_CoutTab(%rip), %xmm1 - comisd %xmm0, %xmm1 - jbe .LBL_2_13 - - - movsd 1184+__dsinh_la_CoutTab(%rip), %xmm1 - comisd %xmm0, %xmm1 - jbe .LBL_2_9 - - - comisd 1176+__dsinh_la_CoutTab(%rip), %xmm0 - jb .LBL_2_8 - - - movsd 1112+__dsinh_la_CoutTab(%rip), %xmm1 - lea __dsinh_la_CoutTab(%rip), %rcx - mulsd %xmm0, %xmm1 - movsd 1144+__dsinh_la_CoutTab(%rip), %xmm4 - movq 8+__dsinh_la_CoutTab(%rip), %r10 - movq %r10, %rsi - shrq $48, %rsi - addsd 1120+__dsinh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -40(%rsp) - andl $-32753, %esi - movsd -40(%rsp), %xmm10 - movl -40(%rsp), %r8d - movl %r8d, %r11d - shrl $6, %r11d - andl $63, %r8d - movq %r10, -16(%rsp) - subsd 1120+__dsinh_la_CoutTab(%rip), %xmm10 - mulsd %xmm10, %xmm4 - lea 1023(%r11), %edi - xorps .L_2il0floatpacket.97(%rip), %xmm10 - addl $1022, %r11d - mulsd 1152+__dsinh_la_CoutTab(%rip), %xmm10 - subsd %xmm4, %xmm0 - movaps %xmm10, %xmm2 - movaps %xmm0, %xmm8 - andl $2047, %r11d - lea (%r8,%r8), %edx - negl %edi - lea 1(%r8,%r8), %r8d - movsd (%rcx,%rdx,8), %xmm9 - negl %edx - shll $4, %r11d - addl $-4, %edi - orl %r11d, %esi - andl $2047, %edi - movw %si, -10(%rsp) - andl $-32753, %esi - shll $4, %edi - addsd %xmm0, %xmm2 - movsd %xmm2, -24(%rsp) - orl %edi, %esi - movsd -24(%rsp), %xmm6 - movsd 1128+__dsinh_la_CoutTab(%rip), %xmm2 - subsd %xmm6, %xmm8 - movsd %xmm8, -56(%rsp) - movsd -24(%rsp), %xmm12 - movsd -56(%rsp), %xmm11 - movsd (%rcx,%r8,8), %xmm7 - addsd %xmm11, %xmm12 - movsd %xmm12, -48(%rsp) - movsd -56(%rsp), %xmm5 - addsd %xmm5, %xmm10 - movsd -16(%rsp), %xmm5 - mulsd %xmm5, %xmm9 - mulsd %xmm5, %xmm7 - movsd %xmm10, -56(%rsp) - movaps %xmm9, %xmm10 - movsd -48(%rsp), %xmm13 - movw %si, -10(%rsp) - lea 128(%rdx), %esi - movsd -16(%rsp), %xmm14 - addl $129, %edx - subsd %xmm13, %xmm0 - movsd %xmm0, -48(%rsp) - movsd -56(%rsp), %xmm1 - movsd -48(%rsp), %xmm15 - addsd %xmm15, %xmm1 - movsd %xmm1, -48(%rsp) - movsd -24(%rsp), %xmm4 - mulsd %xmm4, %xmm2 - movaps %xmm4, %xmm3 - mulsd %xmm4, %xmm3 - movsd -48(%rsp), %xmm1 - movaps %xmm4, %xmm0 - movsd %xmm2, -24(%rsp) - movsd -24(%rsp), %xmm6 - movsd 1064+__dsinh_la_CoutTab(%rip), %xmm2 - subsd %xmm4, %xmm6 - mulsd %xmm3, %xmm2 - movsd %xmm6, -56(%rsp) - movsd -24(%rsp), %xmm11 - movsd -56(%rsp), %xmm8 - subsd %xmm8, %xmm11 - addsd 1048+__dsinh_la_CoutTab(%rip), %xmm2 - movsd %xmm11, -24(%rsp) - movsd 1072+__dsinh_la_CoutTab(%rip), %xmm11 - mulsd %xmm3, %xmm11 - mulsd %xmm3, %xmm2 - addsd 1056+__dsinh_la_CoutTab(%rip), %xmm11 - mulsd %xmm4, %xmm2 - mulsd %xmm3, %xmm11 - movsd -24(%rsp), %xmm12 - addsd 1040+__dsinh_la_CoutTab(%rip), %xmm11 - subsd %xmm12, %xmm0 - mulsd %xmm3, %xmm11 - movsd (%rcx,%rsi,8), %xmm3 - movaps %xmm9, %xmm12 - mulsd %xmm14, %xmm3 - movsd %xmm0, -56(%rsp) - subsd %xmm3, %xmm10 - movsd -24(%rsp), %xmm8 - movsd -56(%rsp), %xmm6 - movsd %xmm10, -24(%rsp) - movsd -24(%rsp), %xmm13 - movsd (%rcx,%rdx,8), %xmm0 - subsd %xmm13, %xmm12 - mulsd %xmm14, %xmm0 - subsd %xmm3, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -24(%rsp), %xmm14 - movsd -56(%rsp), %xmm12 - movaps %xmm14, %xmm5 - movb -1(%rsp), %cl - addsd %xmm7, %xmm12 - addsd %xmm0, %xmm7 - subsd %xmm0, %xmm12 - andb $-128, %cl - addsd %xmm12, %xmm5 - movsd %xmm5, -24(%rsp) - movaps %xmm9, %xmm5 - movsd -24(%rsp), %xmm15 - addsd %xmm3, %xmm5 - subsd %xmm15, %xmm14 - addsd %xmm14, %xmm12 - movsd %xmm12, -56(%rsp) - movsd -24(%rsp), %xmm10 - movsd -56(%rsp), %xmm12 - movsd %xmm5, -24(%rsp) - movsd -24(%rsp), %xmm13 - subsd %xmm13, %xmm9 - addsd %xmm9, %xmm3 - movsd %xmm3, -56(%rsp) - movsd -24(%rsp), %xmm3 - movsd -56(%rsp), %xmm5 - addsd %xmm7, %xmm5 - movaps %xmm3, %xmm7 - addsd %xmm5, %xmm7 - movsd %xmm7, -24(%rsp) - movsd -24(%rsp), %xmm9 - movsd 1128+__dsinh_la_CoutTab(%rip), %xmm7 - subsd %xmm9, %xmm3 - addsd %xmm3, %xmm5 - movsd %xmm5, -56(%rsp) - movsd -24(%rsp), %xmm0 - mulsd %xmm0, %xmm7 - movsd -56(%rsp), %xmm3 - movsd %xmm7, -24(%rsp) - movaps %xmm0, %xmm7 - movsd -24(%rsp), %xmm14 - mulsd %xmm3, %xmm4 - subsd %xmm0, %xmm14 - movsd %xmm14, -56(%rsp) - movsd -24(%rsp), %xmm13 - movsd -56(%rsp), %xmm9 - subsd %xmm9, %xmm13 - movsd %xmm13, -24(%rsp) - movaps %xmm0, %xmm13 - movsd -24(%rsp), %xmm15 - mulsd %xmm2, %xmm13 - subsd %xmm15, %xmm7 - mulsd %xmm1, %xmm0 - mulsd %xmm3, %xmm1 - mulsd %xmm3, %xmm2 - movaps %xmm10, %xmm15 - movaps %xmm13, %xmm5 - mulsd %xmm11, %xmm15 - mulsd %xmm12, %xmm11 - addsd %xmm15, %xmm5 - addsd %xmm12, %xmm11 - movsd %xmm7, -56(%rsp) - addsd %xmm0, %xmm11 - movsd -24(%rsp), %xmm9 - addsd %xmm1, %xmm11 - movsd -56(%rsp), %xmm7 - addsd %xmm2, %xmm11 - movsd %xmm5, -24(%rsp) - addsd %xmm4, %xmm11 - movsd -24(%rsp), %xmm14 - subsd %xmm14, %xmm13 - addsd %xmm13, %xmm15 - movsd %xmm15, -56(%rsp) - movaps %xmm8, %xmm15 - mulsd %xmm9, %xmm15 - mulsd %xmm6, %xmm9 - mulsd %xmm7, %xmm6 - mulsd %xmm7, %xmm8 - movsd -24(%rsp), %xmm14 - movaps %xmm15, %xmm13 - movsd -56(%rsp), %xmm5 - addsd %xmm14, %xmm13 - addsd %xmm9, %xmm5 - movsd %xmm13, -24(%rsp) - addsd %xmm6, %xmm5 - movsd -24(%rsp), %xmm13 - addsd %xmm8, %xmm5 - subsd %xmm13, %xmm15 - addsd %xmm5, %xmm11 - addsd %xmm15, %xmm14 - movsd %xmm14, -56(%rsp) - movaps %xmm10, %xmm15 - movsd -24(%rsp), %xmm13 - movsd -56(%rsp), %xmm14 - addsd %xmm13, %xmm15 - addsd %xmm14, %xmm11 - movsd %xmm15, -24(%rsp) - movsd -24(%rsp), %xmm15 - subsd %xmm15, %xmm10 - addsd %xmm10, %xmm13 - movsd %xmm13, -56(%rsp) - movsd -24(%rsp), %xmm13 - movsd -56(%rsp), %xmm10 - addsd %xmm10, %xmm11 - addsd %xmm11, %xmm13 - movsd %xmm13, -32(%rsp) - movb -25(%rsp), %dil - andb $127, %dil - orb %cl, %dil - movb %dil, -25(%rsp) - movq -32(%rsp), %r10 - movq %r10, (%r9) - ret - -.LBL_2_8: - - movaps %xmm0, %xmm2 - mulsd %xmm0, %xmm2 - movsd 1104+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm2, %xmm1 - movb -1(%rsp), %dl - andb $-128, %dl - addsd 1096+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm2, %xmm1 - addsd 1088+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm2, %xmm1 - addsd 1080+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm1, %xmm2 - mulsd %xmm0, %xmm2 - addsd %xmm2, %xmm0 - movsd %xmm0, -32(%rsp) - movb -25(%rsp), %cl - andb $127, %cl - orb %dl, %cl - movb %cl, -25(%rsp) - movq -32(%rsp), %rsi - movq %rsi, (%r9) - ret - -.LBL_2_9: - - movsd 1112+__dsinh_la_CoutTab(%rip), %xmm1 - lea __dsinh_la_CoutTab(%rip), %r8 - mulsd %xmm0, %xmm1 - movsd 1144+__dsinh_la_CoutTab(%rip), %xmm2 - movsd 1152+__dsinh_la_CoutTab(%rip), %xmm3 - movq 8+__dsinh_la_CoutTab(%rip), %rdx - movq %rdx, -16(%rsp) - addsd 1120+__dsinh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -40(%rsp) - movsd -40(%rsp), %xmm4 - movsd 1072+__dsinh_la_CoutTab(%rip), %xmm1 - movl -40(%rsp), %edx - movl %edx, %esi - andl $63, %esi - subsd 1120+__dsinh_la_CoutTab(%rip), %xmm4 - mulsd %xmm4, %xmm2 - lea (%rsi,%rsi), %ecx - mulsd %xmm3, %xmm4 - subsd %xmm2, %xmm0 - movsd (%r8,%rcx,8), %xmm5 - lea 1(%rsi,%rsi), %edi - shrl $6, %edx - subsd %xmm4, %xmm0 - mulsd %xmm0, %xmm1 - addl $1022, %edx - andl $2047, %edx - addsd 1064+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1056+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1048+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1040+__dsinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - mulsd %xmm0, %xmm1 - addsd %xmm0, %xmm1 - mulsd %xmm5, %xmm1 - addsd (%r8,%rdi,8), %xmm1 - addsd %xmm5, %xmm1 - cmpl $2046, %edx - ja .LBL_2_11 - - - movq 8+__dsinh_la_CoutTab(%rip), %rcx - shrq $48, %rcx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -10(%rsp) - movsd -16(%rsp), %xmm0 - mulsd %xmm0, %xmm1 - movsd %xmm1, -32(%rsp) - jmp .LBL_2_12 - -.LBL_2_11: - - decl %edx - andl $2047, %edx - movzwl -10(%rsp), %ecx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -10(%rsp) - movsd -16(%rsp), %xmm0 - mulsd %xmm0, %xmm1 - mulsd 1024+__dsinh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -32(%rsp) - -.LBL_2_12: - - movb -25(%rsp), %cl - movb -1(%rsp), %dl - andb $127, %cl - andb $-128, %dl - orb %dl, %cl - movb %cl, -25(%rsp) - movq -32(%rsp), %rsi - movq %rsi, (%r9) - ret - -.LBL_2_13: - - movsd 1168+__dsinh_la_CoutTab(%rip), %xmm0 - movl $3, %eax - mulsd %xmm2, %xmm0 - movsd %xmm0, (%r9) - ret - -.LBL_2_14: - - movsd __dsinh_la_CoutTab(%rip), %xmm0 - addsd 1160+__dsinh_la_CoutTab(%rip), %xmm0 - mulsd %xmm2, %xmm0 - movsd %xmm0, (%r9) - - - ret - -.LBL_2_16: - - movsd 1160+__dsinh_la_CoutTab(%rip), %xmm0 - mulsd %xmm0, %xmm2 - movsd %xmm2, -24(%rsp) - movsd -24(%rsp), %xmm1 - movq 8+__dsinh_la_CoutTab(%rip), %rdx - movq %rdx, -16(%rsp) - addsd -8(%rsp), %xmm1 - movsd %xmm1, (%r9) - ret - -.LBL_2_17: - - addsd %xmm2, %xmm2 - movsd %xmm2, (%r9) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dsinh_cout_rare_internal,@function - .size __svml_dsinh_cout_rare_internal,.-__svml_dsinh_cout_rare_internal -..LN__svml_dsinh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dsinh_data_internal: - .long 0 - .long 1071644672 - .long 1828292879 - .long 1071691096 - .long 1014845819 - .long 1071739576 - .long 1853186616 - .long 1071790202 - .long 171030293 - .long 1071843070 - .long 1276261410 - .long 1071898278 - .long 3577096743 - .long 1071955930 - .long 3712504873 - .long 1072016135 - .long 1719614413 - .long 1072079006 - .long 1944781191 - .long 1072144660 - .long 1110089947 - .long 1072213221 - .long 2191782032 - .long 1072284817 - .long 2572866477 - .long 1072359583 - .long 3716502172 - .long 1072437659 - .long 3707479175 - .long 1072519192 - .long 2728693978 - .long 1072604335 - .long 0 - .long 0 - .long 1255956747 - .long 1015588398 - .long 3117910646 - .long 3161559105 - .long 3066496371 - .long 1015656574 - .long 3526460132 - .long 1014428778 - .long 300981948 - .long 1014684169 - .long 2951496418 - .long 1013793687 - .long 88491949 - .long 1015427660 - .long 330458198 - .long 3163282740 - .long 3993278767 - .long 3161724279 - .long 1451641639 - .long 1015474673 - .long 2960257726 - .long 1013742662 - .long 878562433 - .long 1015521741 - .long 2303740125 - .long 1014042725 - .long 3613079303 - .long 1014164738 - .long 396109971 - .long 3163462691 - .long 0 - .long 1071644672 - .long 2728693978 - .long 1071555759 - .long 3707479175 - .long 1071470616 - .long 3716502172 - .long 1071389083 - .long 2572866477 - .long 1071311007 - .long 2191782032 - .long 1071236241 - .long 1110089947 - .long 1071164645 - .long 1944781191 - .long 1071096084 - .long 1719614413 - .long 1071030430 - .long 3712504873 - .long 1070967559 - .long 3577096743 - .long 1070907354 - .long 1276261410 - .long 1070849702 - .long 171030293 - .long 1070794494 - .long 1853186616 - .long 1070741626 - .long 1014845819 - .long 1070691000 - .long 1828292879 - .long 1070642520 - .long 0 - .long 0 - .long 396109971 - .long 3162414115 - .long 3613079303 - .long 1013116162 - .long 2303740125 - .long 1012994149 - .long 878562433 - .long 1014473165 - .long 2960257726 - .long 1012694086 - .long 1451641639 - .long 1014426097 - .long 3993278767 - .long 3160675703 - .long 330458198 - .long 3162234164 - .long 88491949 - .long 1014379084 - .long 2951496418 - .long 1012745111 - .long 300981948 - .long 1013635593 - .long 3526460132 - .long 1013380202 - .long 3066496371 - .long 1014607998 - .long 3117910646 - .long 3160510529 - .long 1255956747 - .long 1014539822 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 0 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1 - .long 1123549184 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 1082453555 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 15 - .long 0 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 1431657638 - .long 1069897045 - .long 1431657638 - .long 1069897045 - .long 1431657638 - .long 1069897045 - .long 1431657638 - .long 1069897045 - .long 1431657638 - .long 1069897045 - .long 1431657638 - .long 1069897045 - .long 1431657638 - .long 1069897045 - .long 1431657638 - .long 1069897045 - .long 1431653196 - .long 1067799893 - .long 1431653196 - .long 1067799893 - .long 1431653196 - .long 1067799893 - .long 1431653196 - .long 1067799893 - .long 1431653196 - .long 1067799893 - .long 1431653196 - .long 1067799893 - .long 1431653196 - .long 1067799893 - .long 1431653196 - .long 1067799893 - .long 249327322 - .long 1065423121 - .long 249327322 - .long 1065423121 - .long 249327322 - .long 1065423121 - .long 249327322 - .long 1065423121 - .long 249327322 - .long 1065423121 - .long 249327322 - .long 1065423121 - .long 249327322 - .long 1065423121 - .long 249327322 - .long 1065423121 - .long 419584011 - .long 1062650220 - .long 419584011 - .long 1062650220 - .long 419584011 - .long 1062650220 - .long 419584011 - .long 1062650220 - .long 419584011 - .long 1062650220 - .long 419584011 - .long 1062650220 - .long 419584011 - .long 1062650220 - .long 419584011 - .long 1062650220 - .long 100753094 - .long 1059717741 - .long 100753094 - .long 1059717741 - .long 100753094 - .long 1059717741 - .long 100753094 - .long 1059717741 - .long 100753094 - .long 1059717741 - .long 100753094 - .long 1059717741 - .long 100753094 - .long 1059717741 - .long 100753094 - .long 1059717741 - .long 461398617 - .long 1056571820 - .long 461398617 - .long 1056571820 - .long 461398617 - .long 1056571820 - .long 461398617 - .long 1056571820 - .long 461398617 - .long 1056571820 - .long 461398617 - .long 1056571820 - .long 461398617 - .long 1056571820 - .long 461398617 - .long 1056571820 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 1697350398 - .long 1073157447 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 4277796864 - .long 1072049730 - .long 3164486458 - .long 1031600026 - .long 3164486458 - .long 1031600026 - .long 3164486458 - .long 1031600026 - .long 3164486458 - .long 1031600026 - .long 3164486458 - .long 1031600026 - .long 3164486458 - .long 1031600026 - .long 3164486458 - .long 1031600026 - .long 3164486458 - .long 1031600026 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 1071644672 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1071644672 - .long 431824500 - .long 1064709706 - .long 730821105 - .long 1071633346 - .long 1779301686 - .long 1065758303 - .long 2174652632 - .long 1071622081 - .long 872681311 - .long 1066443490 - .long 2912730644 - .long 1071610877 - .long 2882296449 - .long 1066806964 - .long 1533953344 - .long 1071599734 - .long 3305321028 - .long 1067170481 - .long 929806999 - .long 1071588651 - .long 340716357 - .long 1067492210 - .long 3999357479 - .long 1071577627 - .long 1073477808 - .long 1067674027 - .long 764307441 - .long 1071566664 - .long 3128166954 - .long 1067855881 - .long 2728693978 - .long 1071555759 - .long 3639221082 - .long 1068037778 - .long 4224142467 - .long 1071544913 - .long 4041415279 - .long 1068219723 - .long 3884662774 - .long 1071534126 - .long 1480599658 - .long 1068401722 - .long 351641897 - .long 1071523398 - .long 2997120266 - .long 1068541361 - .long 863738719 - .long 1071512727 - .long 928693471 - .long 1068632422 - .long 4076975200 - .long 1071502113 - .long 1708958952 - .long 1068723517 - .long 64696965 - .long 1071491558 - .long 3926287402 - .long 1068814649 - .long 382305176 - .long 1071481059 - .long 1878784442 - .long 1068905822 - .long 3707479175 - .long 1071470616 - .long 2754496392 - .long 1068997037 - .long 135105010 - .long 1071460231 - .long 861943228 - .long 1069088298 - .long 1242007932 - .long 1071449901 - .long 3400259254 - .long 1069179606 - .long 1432208378 - .long 1071439627 - .long 394759087 - .long 1069270966 - .long 3706687593 - .long 1071429408 - .long 3351980561 - .long 1069362378 - .long 2483480501 - .long 1071419245 - .long 2310349189 - .long 1069453847 - .long 777507147 - .long 1071409137 - .long 200254151 - .long 1069545375 - .long 1610600570 - .long 1071399083 - .long 4274709417 - .long 1069592241 - .long 3716502172 - .long 1071389083 - .long 2266782956 - .long 1069638068 - .long 1540824585 - .long 1071379138 - .long 1995599824 - .long 1069683928 - .long 2420883922 - .long 1071369246 - .long 647201135 - .long 1069729823 - .long 815859274 - .long 1071359408 - .long 4001939191 - .long 1069775753 - .long 4076559943 - .long 1071349622 - .long 664843213 - .long 1069821722 - .long 2380618042 - .long 1071339890 - .long 720494647 - .long 1069867729 - .long 3092190715 - .long 1071330210 - .long 1373458573 - .long 1069913776 - .long 697153126 - .long 1071320583 - .long 4128322810 - .long 1069959864 - .long 2572866477 - .long 1071311007 - .long 1904966097 - .long 1070005996 - .long 3218338682 - .long 1071301483 - .long 513564799 - .long 1070052172 - .long 1434058175 - .long 1071292011 - .long 1474894098 - .long 1070098393 - .long 321958744 - .long 1071282590 - .long 2020498546 - .long 1070144661 - .long 2990417245 - .long 1071273219 - .long 3682797359 - .long 1070190977 - .long 3964284211 - .long 1071263899 - .long 3705320722 - .long 1070237343 - .long 2069751141 - .long 1071254630 - .long 3632815436 - .long 1070283760 - .long 434316067 - .long 1071245411 - .long 721481577 - .long 1070330230 - .long 2191782032 - .long 1071236241 - .long 824045819 - .long 1070376753 - .long 1892288442 - .long 1071227121 - .long 1210063881 - .long 1070423331 - .long 2682146384 - .long 1071218050 - .long 3450994238 - .long 1070469965 - .long 3418903055 - .long 1071209028 - .long 535468266 - .long 1070516658 - .long 2966275557 - .long 1071200055 - .long 2639266259 - .long 1070563409 - .long 194117574 - .long 1071191131 - .long 3530359402 - .long 1070603158 - .long 2568320822 - .long 1071182254 - .long 3405407025 - .long 1070626595 - .long 380978316 - .long 1071173426 - .long 1749136243 - .long 1070650064 - .long 1110089947 - .long 1071164645 - .long 1517376385 - .long 1070673565 - .long 3649726105 - .long 1071155911 - .long 1375061601 - .long 1070697099 - .long 2604962541 - .long 1071147225 - .long 4286252247 - .long 1070720666 - .long 1176749997 - .long 1071138586 - .long 334352625 - .long 1070744269 - .long 2571947539 - .long 1071129993 - .long 1081936396 - .long 1070767906 - .long 1413356050 - .long 1071121447 - .long 916128083 - .long 1070791579 - .long 919555682 - .long 1071112947 - .long 2818494152 - .long 1070815288 - .long 19972402 - .long 1071104493 - .long 1185261260 - .long 1070839035 - .long 1944781191 - .long 1071096084 - .long 3302240303 - .long 1070862819 - .long 1339972927 - .long 1071087721 - .long 3575110344 - .long 1070886642 - .long 1447192521 - .long 1071079403 - .long 709375646 - .long 1070910505 - .long 1218806132 - .long 1071071130 - .long 2005420950 - .long 1070934407 - .long 3907805044 - .long 1071062901 - .long 1883763132 - .long 1070958350 - .long 4182873220 - .long 1071054717 - .long 3359975962 - .long 1070982334 - .long 1013258799 - .long 1071046578 - .long 864909351 - .long 1071006361 - .long 1963711167 - .long 1071038482 - .long 1719614413 - .long 1071030430 - .long 1719614413 - .long 1071030430 - .long 365628427 - .long 1071054543 - .long 3561793907 - .long 1071022421 - .long 4134867513 - .long 1071078699 - .long 2186617381 - .long 1071014456 - .long 3184944616 - .long 1071102901 - .long 885834528 - .long 1071006534 - .long 564029795 - .long 1071127149 - .long 2956612997 - .long 1070998654 - .long 3621005023 - .long 1071151442 - .long 3111574537 - .long 1070990817 - .long 2530717257 - .long 1071175783 - .long 363667784 - .long 1070983023 - .long 358839240 - .long 1071200172 - .long 2321106615 - .long 1070975270 - .long 177057508 - .long 1071224609 - .long 3712504873 - .long 1070967559 - .long 768195176 - .long 1071249095 - .long 3566716925 - .long 1070959890 - .long 921269482 - .long 1071273631 - .long 917841882 - .long 1070952263 - .long 3726549525 - .long 1071298217 - .long 3395129871 - .long 1070944676 - .long 3690744995 - .long 1071322855 - .long 1453150082 - .long 1070937131 - .long 3916966168 - .long 1071347545 - .long 2731501122 - .long 1070929626 - .long 3219913010 - .long 1071372288 - .long 1990012071 - .long 1070922162 - .long 420933669 - .long 1071397085 - .long 2583551245 - .long 1070914738 - .long 2938050448 - .long 1071421935 - .long 3577096743 - .long 1070907354 - .long 1016247609 - .long 1071446841 - .long 4040676318 - .long 1070900010 - .long 2087301532 - .long 1071471802 - .long 3049340112 - .long 1070892706 - .long 705101620 - .long 1071496820 - .long 3978100823 - .long 1070885441 - .long 20578973 - .long 1071521895 - .long 1617004845 - .long 1070878216 - .long 3191864199 - .long 1071547027 - .long 3645941911 - .long 1070871029 - .long 499478133 - .long 1071572219 - .long 569847338 - .long 1070863882 - .long 3706163032 - .long 1071597469 - .long 78413852 - .long 1070856773 - .long 3107302654 - .long 1071622780 - .long 1276261410 - .long 1070849702 - .long 945376945 - .long 1071646412 - .long 3272845541 - .long 1070842669 - .long 3773502825 - .long 1071659128 - .long 887463927 - .long 1070835675 - .long 3049734401 - .long 1071671876 - .long 1829099622 - .long 1070828718 - .long 379637879 - .long 1071684656 - .long 926591435 - .long 1070821799 - .long 1667720032 - .long 1071697467 - .long 1603444721 - .long 1070814917 - .long 4232573504 - .long 1071710310 - .long 2992903935 - .long 1070808072 - .long 1101891425 - .long 1071723187 - .long 4232894513 - .long 1070801264 - .long 2487351331 - .long 1071736096 - .long 171030293 - .long 1070794494 - .long 1424924347 - .long 1071749039 - .long 2839424854 - .long 1070787759 - .long 3839693941 - .long 1071762015 - .long 2799960843 - .long 1070781061 - .long 2776099954 - .long 1071775026 - .long 3504003472 - .long 1070774399 - .long 4167790294 - .long 1071788071 - .long 4112506593 - .long 1070767773 - .long 1067865225 - .long 1071801152 - .long 3790955393 - .long 1070761183 - .long 3713696612 - .long 1071814267 - .long 1709341917 - .long 1070754629 - .long 872270569 - .long 1071827419 - .long 1337108031 - .long 1070748110 - .long 2789908864 - .long 1071840606 - .long 1853186616 - .long 1070741626 - .long 2537611823 - .long 1071853830 - .long 2440944790 - .long 1070735177 - .long 1780910816 - .long 1071867091 - .long 2288159958 - .long 1070728763 - .long 2189982503 - .long 1071880389 - .long 586995997 - .long 1070722384 - .long 1144730516 - .long 1071893725 - .long 828946858 - .long 1070716039 - .long 324769168 - .long 1071907099 - .long 2214878420 - .long 1070709728 - .long 1414505409 - .long 1071920511 - .long 3949972341 - .long 1070703451 - .long 1808220925 - .long 1071933962 - .long 948735466 - .long 1070697209 - .long 3200056266 - .long 1071947452 - .long 1014845819 - .long 1070691000 - .long 2994125935 - .long 1071960982 - .long 3366293073 - .long 1070684824 - .long 2894502806 - .long 1071974552 - .long 2930322912 - .long 1070678682 - .long 315333498 - .long 1071988163 - .long 3228316108 - .long 1070672573 - .long 1265790390 - .long 1072001814 - .long 3490863953 - .long 1070666497 - .long 3170252699 - .long 1072015506 - .long 2952712987 - .long 1070660454 - .long 3458291493 - .long 1072029240 - .long 852742562 - .long 1070654444 - .long 3859687560 - .long 1072043016 - .long 728909815 - .long 1070648466 - .long 1814547538 - .long 1072056835 - .long 1828292879 - .long 1070642520 - .long 3358256687 - .long 1072070696 - .long 3402036099 - .long 1070636606 - .long 1646693443 - .long 1072084601 - .long 410360776 - .long 1070630725 - .long 2726084392 - .long 1072098549 - .long 702412510 - .long 1070624875 - .long 4058219142 - .long 1072112541 - .long 3541402996 - .long 1070619056 - .long 3110436433 - .long 1072126578 - .long 3899555717 - .long 1070613269 - .long 1650643112 - .long 1072140660 - .long 1048019041 - .long 1070607514 - .long 1452398678 - .long 1072154787 - .long 2851812149 - .long 1070601789 - .long 0 - .long 1120403456 - .long 0 - .long 1120403456 - .long 0 - .long 1120403456 - .long 0 - .long 1120403456 - .long 0 - .long 1120403456 - .long 0 - .long 1120403456 - .long 0 - .long 1120403456 - .long 0 - .long 1120403456 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 1082531225 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 4294966717 - .long 1071644671 - .long 1431655597 - .long 1069897045 - .long 1431655597 - .long 1069897045 - .long 1431655597 - .long 1069897045 - .long 1431655597 - .long 1069897045 - .long 1431655597 - .long 1069897045 - .long 1431655597 - .long 1069897045 - .long 1431655597 - .long 1069897045 - .long 1431655597 - .long 1069897045 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 3474379417 - .long 1067799893 - .long 1460859941 - .long 1065423121 - .long 1460859941 - .long 1065423121 - .long 1460859941 - .long 1065423121 - .long 1460859941 - .long 1065423121 - .long 1460859941 - .long 1065423121 - .long 1460859941 - .long 1065423121 - .long 1460859941 - .long 1065423121 - .long 1460859941 - .long 1065423121 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 65472 - .long 0 - .long 65472 - .long 0 - .long 65472 - .long 0 - .long 65472 - .long 0 - .long 65472 - .long 0 - .long 65472 - .long 0 - .long 65472 - .long 0 - .long 65472 - .long 0 - .long 127 - .long 0 - .long 127 - .long 0 - .long 127 - .long 0 - .long 127 - .long 0 - .long 127 - .long 0 - .long 127 - .long 0 - .long 127 - .long 0 - .long 127 - .long 0 - .type __svml_dsinh_data_internal,@object - .size __svml_dsinh_data_internal,4288 - .space 320, 0x00 - .align 32 -__dsinh_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 1048019041 - .long 1072704666 - .long 1398474845 - .long 3161559171 - .long 3541402996 - .long 1072716208 - .long 2759177317 - .long 1015903202 - .long 410360776 - .long 1072727877 - .long 1269990655 - .long 1013024446 - .long 1828292879 - .long 1072739672 - .long 1255956747 - .long 1016636974 - .long 852742562 - .long 1072751596 - .long 667253587 - .long 1010842135 - .long 3490863953 - .long 1072763649 - .long 960797498 - .long 3163997456 - .long 2930322912 - .long 1072775834 - .long 2599499422 - .long 3163762623 - .long 1014845819 - .long 1072788152 - .long 3117910646 - .long 3162607681 - .long 3949972341 - .long 1072800603 - .long 2068408548 - .long 1015962444 - .long 828946858 - .long 1072813191 - .long 10642492 - .long 1016988014 - .long 2288159958 - .long 1072825915 - .long 2169144469 - .long 1015924597 - .long 1853186616 - .long 1072838778 - .long 3066496371 - .long 1016705150 - .long 1709341917 - .long 1072851781 - .long 2571168217 - .long 1015201075 - .long 4112506593 - .long 1072864925 - .long 2947355221 - .long 1015419624 - .long 2799960843 - .long 1072878213 - .long 1423655381 - .long 1016070727 - .long 171030293 - .long 1072891646 - .long 3526460132 - .long 1015477354 - .long 2992903935 - .long 1072905224 - .long 2218154406 - .long 1016276769 - .long 926591435 - .long 1072918951 - .long 3208833762 - .long 3163962090 - .long 887463927 - .long 1072932827 - .long 3596744163 - .long 3161842742 - .long 1276261410 - .long 1072946854 - .long 300981948 - .long 1015732745 - .long 569847338 - .long 1072961034 - .long 472945272 - .long 3160339305 - .long 1617004845 - .long 1072975368 - .long 82804944 - .long 1011391354 - .long 3049340112 - .long 1072989858 - .long 3062915824 - .long 1014219171 - .long 3577096743 - .long 1073004506 - .long 2951496418 - .long 1014842263 - .long 1990012071 - .long 1073019314 - .long 3529070563 - .long 3163861769 - .long 1453150082 - .long 1073034283 - .long 498154669 - .long 3162536638 - .long 917841882 - .long 1073049415 - .long 18715565 - .long 1016707884 - .long 3712504873 - .long 1073064711 - .long 88491949 - .long 1016476236 - .long 363667784 - .long 1073080175 - .long 813753950 - .long 1016833785 - .long 2956612997 - .long 1073095806 - .long 2118169751 - .long 3163784129 - .long 2186617381 - .long 1073111608 - .long 2270764084 - .long 3164321289 - .long 1719614413 - .long 1073127582 - .long 330458198 - .long 3164331316 - .long 1013258799 - .long 1073143730 - .long 1748797611 - .long 3161177658 - .long 3907805044 - .long 1073160053 - .long 2257091225 - .long 3162598983 - .long 1447192521 - .long 1073176555 - .long 1462857171 - .long 3163563097 - .long 1944781191 - .long 1073193236 - .long 3993278767 - .long 3162772855 - .long 919555682 - .long 1073210099 - .long 3121969534 - .long 1013996802 - .long 2571947539 - .long 1073227145 - .long 3558159064 - .long 3164425245 - .long 2604962541 - .long 1073244377 - .long 2614425274 - .long 3164587768 - .long 1110089947 - .long 1073261797 - .long 1451641639 - .long 1016523249 - .long 2568320822 - .long 1073279406 - .long 2732824428 - .long 1015401491 - .long 2966275557 - .long 1073297207 - .long 2176155324 - .long 3160891335 - .long 2682146384 - .long 1073315202 - .long 2082178513 - .long 3164411995 - .long 2191782032 - .long 1073333393 - .long 2960257726 - .long 1014791238 - .long 2069751141 - .long 1073351782 - .long 1562170675 - .long 3163773257 - .long 2990417245 - .long 1073370371 - .long 3683467745 - .long 3164417902 - .long 1434058175 - .long 1073389163 - .long 251133233 - .long 1016134345 - .long 2572866477 - .long 1073408159 - .long 878562433 - .long 1016570317 - .long 3092190715 - .long 1073427362 - .long 814012168 - .long 3160571998 - .long 4076559943 - .long 1073446774 - .long 2119478331 - .long 3161806927 - .long 2420883922 - .long 1073466398 - .long 2049810052 - .long 1015168464 - .long 3716502172 - .long 1073486235 - .long 2303740125 - .long 1015091301 - .long 777507147 - .long 1073506289 - .long 4282924205 - .long 1016236109 - .long 3706687593 - .long 1073526560 - .long 3521726939 - .long 1014301643 - .long 1242007932 - .long 1073547053 - .long 1132034716 - .long 3164388407 - .long 3707479175 - .long 1073567768 - .long 3613079303 - .long 1015213314 - .long 64696965 - .long 1073588710 - .long 1768797490 - .long 1016865536 - .long 863738719 - .long 1073609879 - .long 1326992220 - .long 3163661773 - .long 3884662774 - .long 1073631278 - .long 2158611599 - .long 1015258761 - .long 2728693978 - .long 1073652911 - .long 396109971 - .long 3164511267 - .long 3999357479 - .long 1073674779 - .long 2258941616 - .long 1016973300 - .long 1533953344 - .long 1073696886 - .long 769171851 - .long 1016714209 - .long 2174652632 - .long 1073719233 - .long 4087714590 - .long 1015498835 - .long 0 - .long 1073741824 - .long 0 - .long 0 - .long 0 - .long 1071644672 - .long 1431652600 - .long 1069897045 - .long 1431670732 - .long 1067799893 - .long 984555731 - .long 1065423122 - .long 472530941 - .long 1062650218 - .long 1431655765 - .long 1069897045 - .long 286331153 - .long 1065423121 - .long 436314138 - .long 1059717536 - .long 2773927732 - .long 1053236707 - .long 1697350398 - .long 1079448903 - .long 0 - .long 1127743488 - .long 33554432 - .long 1101004800 - .long 2411329662 - .long 1082536910 - .long 4277796864 - .long 1065758274 - .long 3164486458 - .long 1025308570 - .long 1 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 3671843104 - .long 1067178892 - .long 3875694624 - .long 1077247184 - .type __dsinh_la_CoutTab,@object - .size __dsinh_la_CoutTab,1192 - .space 8, 0x00 - .align 16 -.L_2il0floatpacket.97: - .long 0x00000000,0x80000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.97,@object - .size .L_2il0floatpacket.97,16 diff --git a/numpy/core/src/umath/svml/svml_z0_sinh_s_la.s b/numpy/core/src/umath/svml/svml_z0_sinh_s_la.s deleted file mode 100644 index f2101e52a633..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_sinh_s_la.s +++ /dev/null @@ -1,1446 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - - - .text -.L_2__routine_start___svml_sinhf16_z0_0: - - .align 16,0x90 - .globl __svml_sinhf16 - -__svml_sinhf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovaps %zmm0, %zmm5 - -/* - * ----------------------------------- Implementation --------------------- - * ............... Abs argument ............................ - */ - vandps 1152+__svml_ssinh_data_internal(%rip), %zmm5, %zmm4 - -/* - * ...............Check for overflow\underflow ............. - */ - vpternlogd $255, %zmm6, %zmm6, %zmm6 - vmovups 1280+__svml_ssinh_data_internal(%rip), %zmm7 - -/* - * ............... Load argument ............................ - * dM = x/log(2) + RShifter - */ - vmovups 960+__svml_ssinh_data_internal(%rip), %zmm11 - vmovups 1024+__svml_ssinh_data_internal(%rip), %zmm8 - vmovups 1088+__svml_ssinh_data_internal(%rip), %zmm10 - vmovups 1856+__svml_ssinh_data_internal(%rip), %zmm12 - vmovups 1728+__svml_ssinh_data_internal(%rip), %zmm0 - vmovups 1792+__svml_ssinh_data_internal(%rip), %zmm3 - -/* x^2 */ - vmovups 1536+__svml_ssinh_data_internal(%rip), %zmm2 - vxorps %zmm5, %zmm4, %zmm1 - vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm11 - vpcmpd $2, 1408+__svml_ssinh_data_internal(%rip), %zmm1, %k1 - -/* - * ............... G1,G2 2^N,2^(-N) ........... - * iM now is an EXP(2^N) - */ - vpslld $23, %zmm11, %zmm13 - -/* - * ................... R ................................... - * sN = sM - RShifter - */ - vsubps {rn-sae}, %zmm7, %zmm11, %zmm9 - vpaddd %zmm13, %zmm12, %zmm14 - vpsubd %zmm13, %zmm12, %zmm15 - -/* sG1 = 2^(N-1)+2^(-N-1) */ - vaddps {rn-sae}, %zmm15, %zmm14, %zmm7 - vpandnd %zmm1, %zmm1, %zmm6{%k1} - -/* sR = sX - sN*Log2_hi */ - vfnmadd231ps {rn-sae}, %zmm8, %zmm9, %zmm1 - vptestmd %zmm6, %zmm6, %k0 - -/* sG2 = 2^(N-1)-2^(-N-1) */ - vsubps {rn-sae}, %zmm15, %zmm14, %zmm8 - -/* sR = (sX - sN*Log2_hi) - sN*Log2_lo */ - vfnmadd231ps {rn-sae}, %zmm10, %zmm9, %zmm1 - -/* - * ....sinh(r) = r*((a1=1)+r^2*(a3+r^2*(a5+{v1 r^2*a7})))) = r + r*(r^2*(a3+r^2*(a5+r^2*a7))) .... - * sSinh_r = (a3+r^2*a5) - */ - vmovups 1600+__svml_ssinh_data_internal(%rip), %zmm14 - kmovw %k0, %edx - -/* sR2 = sR^2 */ - vmulps {rn-sae}, %zmm1, %zmm1, %zmm6 - vfmadd231ps {rn-sae}, %zmm6, %zmm0, %zmm14 - -/* sSinh_r = r^2*(a3+r^2*a5) */ - vmulps {rn-sae}, %zmm6, %zmm14, %zmm0 - -/* sSinh_r = r + r*(r^2*(a3+r^2*a5)) */ - vfmadd213ps {rn-sae}, %zmm1, %zmm1, %zmm0 - -/* - * sinh(X) = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2) - * sOut = (a4 +a6*sR2) - */ - vmovups 1664+__svml_ssinh_data_internal(%rip), %zmm1 - vfmadd231ps {rn-sae}, %zmm6, %zmm3, %zmm1 - -/* sOut = a2+sR2*(a4+a6*sR2) */ - vfmadd213ps {rn-sae}, %zmm2, %zmm6, %zmm1 - -/* sOut = sR2*(a2+sR2*(a4+a6*sR2) */ - vmulps {rn-sae}, %zmm6, %zmm1, %zmm2 - -/* sOut = sG2*sR2*(a2+sR2*(a4+a6*sR2) */ - vmulps {rn-sae}, %zmm8, %zmm2, %zmm3 - -/* sOut = sG1*sinh(dR)+sG2*sR2*(a2+sR2*(a4+a6*sR2) */ - vfmadd213ps {rn-sae}, %zmm3, %zmm0, %zmm7 - -/* sOut = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2) */ - vaddps {rn-sae}, %zmm8, %zmm7, %zmm9 - -/* ................... Ret H ...................... */ - vorps %zmm9, %zmm4, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm5, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_ssinh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_sinhf16,@function - .size __svml_sinhf16,.-__svml_sinhf16 -..LN__svml_sinhf16.0: - -.L_2__routine_start___svml_ssinh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_ssinh_cout_rare_internal: - - - .cfi_startproc -..L53: - - movq %rsi, %r9 - movzwl 2(%rdi), %edx - xorl %eax, %eax - andl $32640, %edx - movss (%rdi), %xmm2 - cmpl $32640, %edx - je .LBL_2_17 - - - cvtss2sd %xmm2, %xmm2 - movsd %xmm2, -8(%rsp) - movzwl -2(%rsp), %edx - andl $32752, %edx - movsd %xmm2, -32(%rsp) - shrl $4, %edx - andb $127, -25(%rsp) - testl %edx, %edx - jle .LBL_2_16 - - - cmpl $969, %edx - jle .LBL_2_14 - - - movsd -32(%rsp), %xmm0 - movsd 1136+__ssinh_la_CoutTab(%rip), %xmm1 - comisd %xmm0, %xmm1 - jbe .LBL_2_13 - - - movsd 1184+__ssinh_la_CoutTab(%rip), %xmm1 - comisd %xmm0, %xmm1 - jbe .LBL_2_9 - - - comisd 1176+__ssinh_la_CoutTab(%rip), %xmm0 - jb .LBL_2_8 - - - movsd 1112+__ssinh_la_CoutTab(%rip), %xmm3 - lea __ssinh_la_CoutTab(%rip), %rcx - mulsd %xmm0, %xmm3 - movsd 1144+__ssinh_la_CoutTab(%rip), %xmm10 - movq 8+__ssinh_la_CoutTab(%rip), %r10 - movq %r10, %rsi - shrq $48, %rsi - addsd 1120+__ssinh_la_CoutTab(%rip), %xmm3 - movsd %xmm3, -40(%rsp) - andl $-32753, %esi - movsd -40(%rsp), %xmm13 - movl -40(%rsp), %r8d - movl %r8d, %r11d - shrl $6, %r11d - andl $63, %r8d - movq %r10, -16(%rsp) - subsd 1120+__ssinh_la_CoutTab(%rip), %xmm13 - mulsd %xmm13, %xmm10 - lea 1023(%r11), %edi - xorps .L_2il0floatpacket.98(%rip), %xmm13 - addl $1022, %r11d - mulsd 1152+__ssinh_la_CoutTab(%rip), %xmm13 - subsd %xmm10, %xmm0 - movaps %xmm0, %xmm5 - movaps %xmm0, %xmm11 - andl $2047, %r11d - lea (%r8,%r8), %edx - negl %edi - lea 1(%r8,%r8), %r8d - movsd (%rcx,%rdx,8), %xmm8 - negl %edx - shll $4, %r11d - addl $-4, %edi - orl %r11d, %esi - andl $2047, %edi - movw %si, -10(%rsp) - andl $-32753, %esi - shll $4, %edi - addsd %xmm13, %xmm5 - movsd %xmm5, -24(%rsp) - orl %edi, %esi - movsd -24(%rsp), %xmm7 - movsd 1128+__ssinh_la_CoutTab(%rip), %xmm5 - subsd %xmm7, %xmm11 - movsd %xmm11, -56(%rsp) - movsd -24(%rsp), %xmm4 - movsd -56(%rsp), %xmm12 - movsd (%rcx,%r8,8), %xmm6 - addsd %xmm12, %xmm4 - movsd %xmm4, -48(%rsp) - movsd -56(%rsp), %xmm9 - movsd -16(%rsp), %xmm4 - addsd %xmm9, %xmm13 - mulsd %xmm4, %xmm8 - mulsd %xmm4, %xmm6 - movsd %xmm13, -56(%rsp) - movaps %xmm8, %xmm9 - movsd -48(%rsp), %xmm15 - movw %si, -10(%rsp) - lea 128(%rdx), %esi - movsd -16(%rsp), %xmm14 - addl $129, %edx - subsd %xmm15, %xmm0 - movaps %xmm8, %xmm15 - movsd %xmm0, -48(%rsp) - movsd -56(%rsp), %xmm3 - movsd -48(%rsp), %xmm0 - addsd %xmm0, %xmm3 - movsd %xmm3, -48(%rsp) - movsd -24(%rsp), %xmm10 - mulsd %xmm10, %xmm5 - movaps %xmm10, %xmm2 - mulsd %xmm10, %xmm2 - movsd -48(%rsp), %xmm3 - movaps %xmm10, %xmm1 - movsd %xmm5, -24(%rsp) - movsd -24(%rsp), %xmm7 - subsd %xmm10, %xmm7 - movsd %xmm7, -56(%rsp) - movsd -24(%rsp), %xmm12 - movsd -56(%rsp), %xmm11 - subsd %xmm11, %xmm12 - movsd 1064+__ssinh_la_CoutTab(%rip), %xmm11 - mulsd %xmm2, %xmm11 - movsd %xmm12, -24(%rsp) - movsd 1072+__ssinh_la_CoutTab(%rip), %xmm12 - mulsd %xmm2, %xmm12 - addsd 1048+__ssinh_la_CoutTab(%rip), %xmm11 - mulsd %xmm2, %xmm11 - addsd 1056+__ssinh_la_CoutTab(%rip), %xmm12 - mulsd %xmm2, %xmm12 - mulsd %xmm10, %xmm11 - addsd 1040+__ssinh_la_CoutTab(%rip), %xmm12 - addsd %xmm11, %xmm10 - mulsd %xmm2, %xmm12 - movsd (%rcx,%rsi,8), %xmm2 - mulsd %xmm14, %xmm2 - movsd -24(%rsp), %xmm0 - subsd %xmm2, %xmm9 - subsd %xmm0, %xmm1 - movsd %xmm1, -56(%rsp) - movsd -24(%rsp), %xmm7 - movsd -56(%rsp), %xmm5 - movsd %xmm9, -24(%rsp) - movsd -24(%rsp), %xmm13 - movsd (%rcx,%rdx,8), %xmm1 - subsd %xmm13, %xmm15 - mulsd %xmm14, %xmm1 - subsd %xmm2, %xmm15 - movsd %xmm15, -56(%rsp) - movaps %xmm8, %xmm13 - movsd -24(%rsp), %xmm14 - addsd %xmm2, %xmm13 - movsd -56(%rsp), %xmm9 - movaps %xmm14, %xmm0 - movb -1(%rsp), %cl - addsd %xmm6, %xmm9 - addsd %xmm1, %xmm6 - subsd %xmm1, %xmm9 - andb $-128, %cl - addsd %xmm9, %xmm0 - movsd %xmm0, -24(%rsp) - movsd -24(%rsp), %xmm4 - subsd %xmm4, %xmm14 - addsd %xmm14, %xmm9 - movsd %xmm9, -56(%rsp) - movsd -24(%rsp), %xmm9 - movsd -56(%rsp), %xmm0 - movsd %xmm13, -24(%rsp) - movsd -24(%rsp), %xmm15 - subsd %xmm15, %xmm8 - addsd %xmm8, %xmm2 - movsd %xmm2, -56(%rsp) - movsd -24(%rsp), %xmm2 - movsd -56(%rsp), %xmm4 - addsd %xmm6, %xmm4 - movaps %xmm2, %xmm6 - addsd %xmm4, %xmm6 - movsd %xmm6, -24(%rsp) - movsd -24(%rsp), %xmm8 - movsd 1128+__ssinh_la_CoutTab(%rip), %xmm6 - subsd %xmm8, %xmm2 - addsd %xmm2, %xmm4 - movsd %xmm4, -56(%rsp) - movsd -24(%rsp), %xmm1 - mulsd %xmm1, %xmm6 - movsd -56(%rsp), %xmm2 - movsd %xmm6, -24(%rsp) - movaps %xmm1, %xmm6 - movsd -24(%rsp), %xmm14 - mulsd %xmm2, %xmm10 - subsd %xmm1, %xmm14 - movsd %xmm14, -56(%rsp) - movsd -24(%rsp), %xmm13 - movsd -56(%rsp), %xmm8 - subsd %xmm8, %xmm13 - movsd %xmm13, -24(%rsp) - movaps %xmm11, %xmm13 - movsd -24(%rsp), %xmm15 - mulsd %xmm1, %xmm13 - subsd %xmm15, %xmm6 - mulsd %xmm3, %xmm1 - mulsd %xmm2, %xmm3 - movaps %xmm12, %xmm15 - movaps %xmm13, %xmm4 - mulsd %xmm9, %xmm15 - mulsd %xmm0, %xmm12 - addsd %xmm15, %xmm4 - addsd %xmm0, %xmm12 - movsd %xmm6, -56(%rsp) - addsd %xmm1, %xmm12 - movsd -24(%rsp), %xmm8 - addsd %xmm3, %xmm12 - movsd -56(%rsp), %xmm6 - movsd %xmm4, -24(%rsp) - movsd -24(%rsp), %xmm14 - subsd %xmm14, %xmm13 - addsd %xmm13, %xmm15 - movsd %xmm15, -56(%rsp) - movaps %xmm7, %xmm15 - mulsd %xmm8, %xmm15 - mulsd %xmm5, %xmm8 - mulsd %xmm6, %xmm5 - mulsd %xmm6, %xmm7 - movsd -24(%rsp), %xmm14 - movaps %xmm14, %xmm13 - movsd -56(%rsp), %xmm4 - addsd %xmm15, %xmm13 - addsd %xmm8, %xmm4 - movsd %xmm13, -24(%rsp) - addsd %xmm5, %xmm4 - movsd -24(%rsp), %xmm13 - addsd %xmm7, %xmm4 - subsd %xmm13, %xmm15 - addsd %xmm4, %xmm12 - addsd %xmm15, %xmm14 - movsd %xmm14, -56(%rsp) - movaps %xmm9, %xmm15 - movsd -24(%rsp), %xmm13 - movsd -56(%rsp), %xmm14 - addsd %xmm13, %xmm15 - addsd %xmm14, %xmm12 - movsd %xmm15, -24(%rsp) - movsd -24(%rsp), %xmm15 - subsd %xmm15, %xmm9 - addsd %xmm9, %xmm13 - movsd %xmm13, -56(%rsp) - movsd -24(%rsp), %xmm13 - movsd -56(%rsp), %xmm9 - addsd %xmm9, %xmm12 - addsd %xmm12, %xmm13 - addsd %xmm13, %xmm10 - movsd %xmm10, -32(%rsp) - movb -25(%rsp), %dil - andb $127, %dil - orb %cl, %dil - movb %dil, -25(%rsp) - movsd -32(%rsp), %xmm10 - cvtsd2ss %xmm10, %xmm10 - movss %xmm10, (%r9) - ret - -.LBL_2_8: - - movaps %xmm0, %xmm2 - mulsd %xmm0, %xmm2 - movsd 1104+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm2, %xmm1 - movb -1(%rsp), %dl - andb $-128, %dl - addsd 1096+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm2, %xmm1 - addsd 1088+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm2, %xmm1 - addsd 1080+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm1, %xmm2 - mulsd %xmm0, %xmm2 - addsd %xmm2, %xmm0 - movsd %xmm0, -32(%rsp) - movb -25(%rsp), %cl - andb $127, %cl - orb %dl, %cl - movb %cl, -25(%rsp) - movsd -32(%rsp), %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r9) - ret - -.LBL_2_9: - - movsd 1112+__ssinh_la_CoutTab(%rip), %xmm1 - lea __ssinh_la_CoutTab(%rip), %r8 - mulsd %xmm0, %xmm1 - movsd 1144+__ssinh_la_CoutTab(%rip), %xmm2 - movsd 1152+__ssinh_la_CoutTab(%rip), %xmm3 - movq 8+__ssinh_la_CoutTab(%rip), %rdx - movq %rdx, -16(%rsp) - addsd 1120+__ssinh_la_CoutTab(%rip), %xmm1 - movsd %xmm1, -40(%rsp) - movsd -40(%rsp), %xmm4 - movsd 1072+__ssinh_la_CoutTab(%rip), %xmm1 - movl -40(%rsp), %edx - movl %edx, %esi - andl $63, %esi - subsd 1120+__ssinh_la_CoutTab(%rip), %xmm4 - mulsd %xmm4, %xmm2 - lea (%rsi,%rsi), %ecx - mulsd %xmm3, %xmm4 - subsd %xmm2, %xmm0 - movsd (%r8,%rcx,8), %xmm5 - lea 1(%rsi,%rsi), %edi - shrl $6, %edx - subsd %xmm4, %xmm0 - mulsd %xmm0, %xmm1 - addl $1022, %edx - andl $2047, %edx - addsd 1064+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1056+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1048+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - addsd 1040+__ssinh_la_CoutTab(%rip), %xmm1 - mulsd %xmm0, %xmm1 - mulsd %xmm0, %xmm1 - addsd %xmm0, %xmm1 - mulsd %xmm5, %xmm1 - addsd (%r8,%rdi,8), %xmm1 - addsd %xmm5, %xmm1 - cmpl $2046, %edx - ja .LBL_2_11 - - - movq 8+__ssinh_la_CoutTab(%rip), %rcx - shrq $48, %rcx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -10(%rsp) - movsd -16(%rsp), %xmm0 - mulsd %xmm1, %xmm0 - movsd %xmm0, -32(%rsp) - jmp .LBL_2_12 - -.LBL_2_11: - - decl %edx - andl $2047, %edx - movzwl -10(%rsp), %ecx - shll $4, %edx - andl $-32753, %ecx - orl %edx, %ecx - movw %cx, -10(%rsp) - movsd -16(%rsp), %xmm0 - mulsd %xmm1, %xmm0 - mulsd 1024+__ssinh_la_CoutTab(%rip), %xmm0 - movsd %xmm0, -32(%rsp) - -.LBL_2_12: - - movb -25(%rsp), %cl - movb -1(%rsp), %dl - andb $127, %cl - andb $-128, %dl - orb %dl, %cl - movb %cl, -25(%rsp) - movsd -32(%rsp), %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r9) - ret - -.LBL_2_13: - - movsd 1168+__ssinh_la_CoutTab(%rip), %xmm0 - movl $3, %eax - mulsd %xmm2, %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r9) - ret - -.LBL_2_14: - - movsd __ssinh_la_CoutTab(%rip), %xmm0 - addsd 1160+__ssinh_la_CoutTab(%rip), %xmm0 - mulsd %xmm2, %xmm0 - cvtsd2ss %xmm0, %xmm0 - movss %xmm0, (%r9) - - - ret - -.LBL_2_16: - - movsd 1160+__ssinh_la_CoutTab(%rip), %xmm0 - mulsd %xmm0, %xmm2 - movsd %xmm2, -24(%rsp) - pxor %xmm2, %xmm2 - cvtss2sd (%rdi), %xmm2 - movsd -24(%rsp), %xmm1 - movq 8+__ssinh_la_CoutTab(%rip), %rdx - addsd %xmm1, %xmm2 - cvtsd2ss %xmm2, %xmm2 - movq %rdx, -16(%rsp) - movss %xmm2, (%r9) - ret - -.LBL_2_17: - - addss %xmm2, %xmm2 - movss %xmm2, (%r9) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_ssinh_cout_rare_internal,@function - .size __svml_ssinh_cout_rare_internal,.-__svml_ssinh_cout_rare_internal -..LN__svml_ssinh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_ssinh_data_internal: - .long 1056964608 - .long 1057148295 - .long 1057336003 - .long 1057527823 - .long 1057723842 - .long 1057924154 - .long 1058128851 - .long 1058338032 - .long 1058551792 - .long 1058770234 - .long 1058993458 - .long 1059221571 - .long 1059454679 - .long 1059692891 - .long 1059936319 - .long 1060185078 - .long 1060439283 - .long 1060699055 - .long 1060964516 - .long 1061235789 - .long 1061513002 - .long 1061796286 - .long 1062085772 - .long 1062381598 - .long 1062683901 - .long 1062992824 - .long 1063308511 - .long 1063631111 - .long 1063960775 - .long 1064297658 - .long 1064641917 - .long 1064993715 - .long 0 - .long 2999887785 - .long 852465809 - .long 3003046475 - .long 2984291233 - .long 3001644133 - .long 854021668 - .long 2997748242 - .long 849550193 - .long 2995541347 - .long 851518274 - .long 809701978 - .long 2997656926 - .long 2996185864 - .long 2980965110 - .long 3002882728 - .long 844097402 - .long 848217591 - .long 2999013352 - .long 2992006718 - .long 831170615 - .long 3002278818 - .long 833158180 - .long 3000769962 - .long 2991891850 - .long 2999994908 - .long 2979965785 - .long 2982419430 - .long 2982221534 - .long 2999469642 - .long 833168438 - .long 2987538264 - .long 1056964608 - .long 1056605107 - .long 1056253309 - .long 1055909050 - .long 1055572167 - .long 1055242503 - .long 1054919903 - .long 1054604216 - .long 1054295293 - .long 1053992990 - .long 1053697164 - .long 1053407678 - .long 1053124394 - .long 1052847181 - .long 1052575908 - .long 1052310447 - .long 1052050675 - .long 1051796470 - .long 1051547711 - .long 1051304283 - .long 1051066071 - .long 1050832963 - .long 1050604850 - .long 1050381626 - .long 1050163184 - .long 1049949424 - .long 1049740243 - .long 1049535546 - .long 1049335234 - .long 1049139215 - .long 1048947395 - .long 1048759687 - .long 0 - .long 2979149656 - .long 824779830 - .long 2991081034 - .long 2973832926 - .long 2974030822 - .long 2971577177 - .long 2991606300 - .long 2983503242 - .long 2992381354 - .long 824769572 - .long 2993890210 - .long 822782007 - .long 2983618110 - .long 2990624744 - .long 839828983 - .long 835708794 - .long 2994494120 - .long 2972576502 - .long 2987797256 - .long 2989268318 - .long 801313370 - .long 843129666 - .long 2987152739 - .long 841161585 - .long 2989359634 - .long 845633060 - .long 2993255525 - .long 2975902625 - .long 2994657867 - .long 844077201 - .long 2991499177 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542464 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 1220542465 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1118743631 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1056964676 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1042983605 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1069066811 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 1060204544 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 939916788 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 31 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1118743630 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1042983511 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1026206322 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 1007228001 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 985049251 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .long 1056964608 - .type __svml_ssinh_data_internal,@object - .size __svml_ssinh_data_internal,1920 - .align 32 -__ssinh_la_CoutTab: - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 1048019041 - .long 1072704666 - .long 1398474845 - .long 3161559171 - .long 3541402996 - .long 1072716208 - .long 2759177317 - .long 1015903202 - .long 410360776 - .long 1072727877 - .long 1269990655 - .long 1013024446 - .long 1828292879 - .long 1072739672 - .long 1255956747 - .long 1016636974 - .long 852742562 - .long 1072751596 - .long 667253587 - .long 1010842135 - .long 3490863953 - .long 1072763649 - .long 960797498 - .long 3163997456 - .long 2930322912 - .long 1072775834 - .long 2599499422 - .long 3163762623 - .long 1014845819 - .long 1072788152 - .long 3117910646 - .long 3162607681 - .long 3949972341 - .long 1072800603 - .long 2068408548 - .long 1015962444 - .long 828946858 - .long 1072813191 - .long 10642492 - .long 1016988014 - .long 2288159958 - .long 1072825915 - .long 2169144469 - .long 1015924597 - .long 1853186616 - .long 1072838778 - .long 3066496371 - .long 1016705150 - .long 1709341917 - .long 1072851781 - .long 2571168217 - .long 1015201075 - .long 4112506593 - .long 1072864925 - .long 2947355221 - .long 1015419624 - .long 2799960843 - .long 1072878213 - .long 1423655381 - .long 1016070727 - .long 171030293 - .long 1072891646 - .long 3526460132 - .long 1015477354 - .long 2992903935 - .long 1072905224 - .long 2218154406 - .long 1016276769 - .long 926591435 - .long 1072918951 - .long 3208833762 - .long 3163962090 - .long 887463927 - .long 1072932827 - .long 3596744163 - .long 3161842742 - .long 1276261410 - .long 1072946854 - .long 300981948 - .long 1015732745 - .long 569847338 - .long 1072961034 - .long 472945272 - .long 3160339305 - .long 1617004845 - .long 1072975368 - .long 82804944 - .long 1011391354 - .long 3049340112 - .long 1072989858 - .long 3062915824 - .long 1014219171 - .long 3577096743 - .long 1073004506 - .long 2951496418 - .long 1014842263 - .long 1990012071 - .long 1073019314 - .long 3529070563 - .long 3163861769 - .long 1453150082 - .long 1073034283 - .long 498154669 - .long 3162536638 - .long 917841882 - .long 1073049415 - .long 18715565 - .long 1016707884 - .long 3712504873 - .long 1073064711 - .long 88491949 - .long 1016476236 - .long 363667784 - .long 1073080175 - .long 813753950 - .long 1016833785 - .long 2956612997 - .long 1073095806 - .long 2118169751 - .long 3163784129 - .long 2186617381 - .long 1073111608 - .long 2270764084 - .long 3164321289 - .long 1719614413 - .long 1073127582 - .long 330458198 - .long 3164331316 - .long 1013258799 - .long 1073143730 - .long 1748797611 - .long 3161177658 - .long 3907805044 - .long 1073160053 - .long 2257091225 - .long 3162598983 - .long 1447192521 - .long 1073176555 - .long 1462857171 - .long 3163563097 - .long 1944781191 - .long 1073193236 - .long 3993278767 - .long 3162772855 - .long 919555682 - .long 1073210099 - .long 3121969534 - .long 1013996802 - .long 2571947539 - .long 1073227145 - .long 3558159064 - .long 3164425245 - .long 2604962541 - .long 1073244377 - .long 2614425274 - .long 3164587768 - .long 1110089947 - .long 1073261797 - .long 1451641639 - .long 1016523249 - .long 2568320822 - .long 1073279406 - .long 2732824428 - .long 1015401491 - .long 2966275557 - .long 1073297207 - .long 2176155324 - .long 3160891335 - .long 2682146384 - .long 1073315202 - .long 2082178513 - .long 3164411995 - .long 2191782032 - .long 1073333393 - .long 2960257726 - .long 1014791238 - .long 2069751141 - .long 1073351782 - .long 1562170675 - .long 3163773257 - .long 2990417245 - .long 1073370371 - .long 3683467745 - .long 3164417902 - .long 1434058175 - .long 1073389163 - .long 251133233 - .long 1016134345 - .long 2572866477 - .long 1073408159 - .long 878562433 - .long 1016570317 - .long 3092190715 - .long 1073427362 - .long 814012168 - .long 3160571998 - .long 4076559943 - .long 1073446774 - .long 2119478331 - .long 3161806927 - .long 2420883922 - .long 1073466398 - .long 2049810052 - .long 1015168464 - .long 3716502172 - .long 1073486235 - .long 2303740125 - .long 1015091301 - .long 777507147 - .long 1073506289 - .long 4282924205 - .long 1016236109 - .long 3706687593 - .long 1073526560 - .long 3521726939 - .long 1014301643 - .long 1242007932 - .long 1073547053 - .long 1132034716 - .long 3164388407 - .long 3707479175 - .long 1073567768 - .long 3613079303 - .long 1015213314 - .long 64696965 - .long 1073588710 - .long 1768797490 - .long 1016865536 - .long 863738719 - .long 1073609879 - .long 1326992220 - .long 3163661773 - .long 3884662774 - .long 1073631278 - .long 2158611599 - .long 1015258761 - .long 2728693978 - .long 1073652911 - .long 396109971 - .long 3164511267 - .long 3999357479 - .long 1073674779 - .long 2258941616 - .long 1016973300 - .long 1533953344 - .long 1073696886 - .long 769171851 - .long 1016714209 - .long 2174652632 - .long 1073719233 - .long 4087714590 - .long 1015498835 - .long 0 - .long 1073741824 - .long 0 - .long 0 - .long 0 - .long 1071644672 - .long 1431652600 - .long 1069897045 - .long 1431670732 - .long 1067799893 - .long 984555731 - .long 1065423122 - .long 472530941 - .long 1062650218 - .long 1431655765 - .long 1069897045 - .long 286331153 - .long 1065423121 - .long 436314138 - .long 1059717536 - .long 2773927732 - .long 1053236707 - .long 1697350398 - .long 1079448903 - .long 0 - .long 1127743488 - .long 33554432 - .long 1101004800 - .long 2684354560 - .long 1079401119 - .long 4277796864 - .long 1065758274 - .long 3164486458 - .long 1025308570 - .long 1 - .long 1048576 - .long 4294967295 - .long 2146435071 - .long 3671843104 - .long 1067178892 - .long 3875694624 - .long 1077247184 - .type __ssinh_la_CoutTab,@object - .size __ssinh_la_CoutTab,1192 - .space 8, 0x00 - .align 16 -.L_2il0floatpacket.98: - .long 0x00000000,0x80000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.98,@object - .size .L_2il0floatpacket.98,16 diff --git a/numpy/core/src/umath/svml/svml_z0_tan_d_la.s b/numpy/core/src/umath/svml/svml_z0_tan_d_la.s deleted file mode 100644 index 3f5df19d3b3a..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_tan_d_la.s +++ /dev/null @@ -1,20219 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * ( optimized for throughput, with small table lookup, works when HW FMA is available ) - * - * Implementation reduces argument x to |R|64 multiplications - */ - vpbroadcastq .L_2il0floatpacket.22(%rip), %zmm6 - kxnorw %k0, %k0, %k3 - kxnorw %k0, %k0, %k2 - kmovw %k0, %edx - vpxord %zmm2, %zmm2, %zmm2 - vgatherdpd (%rax,%ymm3), %zmm2{%k3} - kxnorw %k0, %k0, %k3 - vpsrlq $32, %zmm2, %zmm5 - vpxord %zmm1, %zmm1, %zmm1 - vpxord %zmm8, %zmm8, %zmm8 - vgatherdpd 8(%rax,%ymm3), %zmm1{%k2} - vgatherdpd 16(%rax,%ymm3), %zmm8{%k3} - vpsrlq $32, %zmm1, %zmm0 - vpsrlq $32, %zmm8, %zmm13 - -/* - * Also get the significand as an integer - * NB: adding in the integer bit is wrong for denorms! - * To make this work for denorms we should do something slightly different - */ - vpandq .L_2il0floatpacket.20(%rip){1to8}, %zmm11, %zmm15 - vpaddq .L_2il0floatpacket.21(%rip){1to8}, %zmm15, %zmm14 - vpsrlq $32, %zmm14, %zmm7 - vpmullq %zmm0, %zmm7, %zmm3 - vpandq %zmm6, %zmm2, %zmm10 - vpandq %zmm6, %zmm1, %zmm12 - vpandq %zmm6, %zmm8, %zmm15 - vpandq %zmm6, %zmm14, %zmm14 - -/* Now do the big multiplication and carry propagation */ - vpmullq %zmm10, %zmm7, %zmm4 - vpmullq %zmm12, %zmm7, %zmm2 - vpmullq %zmm13, %zmm7, %zmm1 - vpmullq %zmm15, %zmm7, %zmm8 - vpmullq %zmm5, %zmm14, %zmm7 - vpmullq %zmm10, %zmm14, %zmm5 - vpmullq %zmm0, %zmm14, %zmm10 - vpmullq %zmm12, %zmm14, %zmm0 - vpmullq %zmm13, %zmm14, %zmm12 - vpsrlq $32, %zmm10, %zmm15 - vpsrlq $32, %zmm0, %zmm13 - vpsrlq $32, %zmm12, %zmm14 - vpsrlq $32, %zmm5, %zmm12 - vpsrlq $32, %zmm8, %zmm8 - vpaddq %zmm14, %zmm1, %zmm1 - vpaddq %zmm13, %zmm2, %zmm2 - vpaddq %zmm15, %zmm3, %zmm15 - vpaddq %zmm12, %zmm4, %zmm3 - vpandq %zmm6, %zmm0, %zmm13 - vpaddq %zmm1, %zmm13, %zmm4 - vpaddq %zmm4, %zmm8, %zmm14 - vpsrlq $32, %zmm14, %zmm0 - vpandq %zmm6, %zmm10, %zmm10 - vpaddq %zmm2, %zmm10, %zmm1 - vpaddq %zmm1, %zmm0, %zmm8 - -/* - * Now round at the 2^-9 bit position for reduction mod pi/2^8 - * instead of the original 2pi (but still with the same 2pi scaling). - * Use a shifter of 2^43 + 2^42. - * The N we get is our final version; it has an offset of - * 2^9 because of the implicit integer bit, and anyway for negative - * starting value it's a 2s complement thing. But we need to mask - * off the exponent part anyway so it's fine. - */ - vpbroadcastq .L_2il0floatpacket.25(%rip), %zmm1 - vpandq %zmm6, %zmm7, %zmm7 - vpaddq %zmm3, %zmm7, %zmm13 - vpsrlq $32, %zmm8, %zmm3 - vpandq %zmm6, %zmm5, %zmm5 - vpaddq %zmm15, %zmm5, %zmm2 - vpaddq %zmm2, %zmm3, %zmm15 - vpsrlq $32, %zmm15, %zmm12 - vpaddq %zmm13, %zmm12, %zmm5 - -/* Assemble reduced argument from the pieces */ - vpandq %zmm6, %zmm14, %zmm10 - vpandq %zmm6, %zmm15, %zmm7 - vpsllq $32, %zmm5, %zmm6 - vpsllq $32, %zmm8, %zmm5 - vpaddq %zmm7, %zmm6, %zmm4 - vpaddq %zmm10, %zmm5, %zmm10 - vpsrlq $12, %zmm4, %zmm6 - -/* - * We want to incorporate the original sign now too. - * Do it here for convenience in getting the right N value, - * though we could wait right to the end if we were prepared - * to modify the sign of N later too. - * So get the appropriate sign mask now (or sooner). - */ - vpandq .L_2il0floatpacket.23(%rip){1to8}, %zmm11, %zmm0 - vpandq .L_2il0floatpacket.28(%rip){1to8}, %zmm10, %zmm13 - vpsllq $28, %zmm13, %zmm14 - -/* - * Create floating-point high part, implicitly adding integer bit 1 - * Incorporate overall sign at this stage too. - */ - vpxorq .L_2il0floatpacket.24(%rip){1to8}, %zmm0, %zmm8 - vporq %zmm8, %zmm6, %zmm2 - vaddpd {rn-sae}, %zmm2, %zmm1, %zmm12 - vsubpd {rn-sae}, %zmm1, %zmm12, %zmm3 - vsubpd {rn-sae}, %zmm3, %zmm2, %zmm7 - -/* - * Create floating-point low and medium parts, respectively - * lo_23, ... lo_0, 0, ..., 0 - * hi_11, ... hi_0, lo_63, ..., lo_24 - * then subtract off the implicitly added integer bits, - * 2^-104 and 2^-52, respectively. - * Put the original sign into all of them at this stage. - */ - vpxorq .L_2il0floatpacket.27(%rip){1to8}, %zmm0, %zmm6 - vporq %zmm6, %zmm14, %zmm15 - vpandq .L_2il0floatpacket.30(%rip){1to8}, %zmm4, %zmm4 - vsubpd {rn-sae}, %zmm6, %zmm15, %zmm8 - -/* - * If the magnitude of the input is <= 2^-20, then - * just pass through the input, since no reduction will be needed and - * the main path will only work accurately if the reduced argument is - * about >= 2^-70 (which it is for all large pi multiples) - */ - vpbroadcastq .L_2il0floatpacket.34(%rip), %zmm14 - vandpd .L_2il0floatpacket.33(%rip){1to8}, %zmm11, %zmm15 - vpsrlq $24, %zmm10, %zmm6 - vcmppd $26, {sae}, %zmm14, %zmm15, %k2 - vcmppd $22, {sae}, %zmm14, %zmm15, %k3 - vpxorq .L_2il0floatpacket.29(%rip){1to8}, %zmm0, %zmm1 - vpsllq $40, %zmm4, %zmm0 - vporq %zmm6, %zmm0, %zmm0 - vporq %zmm1, %zmm0, %zmm4 - vsubpd {rn-sae}, %zmm1, %zmm4, %zmm2 - -/* Now add them up into 2 reasonably aligned pieces */ - vaddpd {rn-sae}, %zmm2, %zmm7, %zmm13 - vsubpd {rn-sae}, %zmm13, %zmm7, %zmm7 - vaddpd {rn-sae}, %zmm7, %zmm2, %zmm3 - vaddpd {rn-sae}, %zmm8, %zmm3, %zmm0 - vpbroadcastq .L_2il0floatpacket.32(%rip), %zmm8 - -/* Grab our final N value as an integer, appropriately masked mod 2^9 */ - vpandq .L_2il0floatpacket.26(%rip){1to8}, %zmm12, %zmm5 - -/* - * Now multiply those numbers all by 2 pi, reasonably accurately. - * (RHi + RLo) * (pi_lead + pi_trail) ~= - * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) - */ - vpbroadcastq .L_2il0floatpacket.31(%rip), %zmm12 - -/* The output is _VRES_Z (high) + _VRES_E (low), and the integer part is _VRES_IND */ - vpmovqd %zmm5, %ymm4 - vmulpd {rn-sae}, %zmm12, %zmm13, %zmm6 - vmovaps %zmm12, %zmm10 - vfmsub213pd {rn-sae}, %zmm6, %zmm13, %zmm10 - vfmadd213pd {rn-sae}, %zmm10, %zmm8, %zmm13 - vpbroadcastq .L_2il0floatpacket.37(%rip), %zmm10 - vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm0 - vpbroadcastq .L_2il0floatpacket.36(%rip), %zmm12 - vmovaps %zmm9, %zmm8 - vpandnq %zmm15, %zmm15, %zmm8{%k2} - vpandnq %zmm15, %zmm15, %zmm9{%k3} - vandpd %zmm11, %zmm9, %zmm9 - vandpd %zmm6, %zmm8, %zmm14 - vorpd %zmm14, %zmm9, %zmm6 - vandpd %zmm0, %zmm8, %zmm9 - vmovdqu .L_2il0floatpacket.35(%rip), %ymm0 - vpsrlq $32, %zmm6, %zmm5 - vpmovqd %zmm5, %ymm5 - vpsrld $31, %ymm5, %ymm1 - vpsubd %ymm1, %ymm0, %ymm2 - -/* - * ---------------------------------------------------------- - * End of large arguments path - * ---------------------------------------------------------- - * Merge results from main and large paths: - */ - vmovups (%rsp), %zmm1 - vpaddd %ymm2, %ymm4, %ymm3 - vpsrld $4, %ymm3, %ymm14 - vpslld $4, %ymm14, %ymm7 - vpmovzxdq %ymm14, %zmm1{%k1} - vpsubd %ymm7, %ymm4, %ymm8 - vcvtdq2pd %ymm8, %zmm15 - vmovups 64(%rsp), %zmm8 - vfmadd231pd {rn-sae}, %zmm15, %zmm10, %zmm9 - vaddpd {rn-sae}, %zmm6, %zmm9, %zmm13 - vfmadd213pd {rn-sae}, %zmm13, %zmm12, %zmm15 - vblendmpd %zmm15, %zmm8, %zmm8{%k1} - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_tan8,@function - .size __svml_tan8,.-__svml_tan8 -..LN__svml_tan8.0: - -.L_2__routine_start___svml_dtan_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dtan_cout_rare_internal: - - - .cfi_startproc -..L65: - - xorl %eax, %eax - movzwl 6(%rdi), %ecx - movsd (%rdi), %xmm1 - andl $32752, %ecx - movb 7(%rdi), %dl - andb $127, %dl - movsd %xmm1, -8(%rsp) - movb %dl, -1(%rsp) - cmpl $32752, %ecx - je .LBL_2_3 - - - ret - -.LBL_2_3: - - cmpl $0, -8(%rsp) - jne .LBL_2_6 - - - cmpl $2146435072, -4(%rsp) - jne .LBL_2_6 - - - movsd __dtan_la_Tab(%rip), %xmm0 - movl $1, %eax - mulsd %xmm0, %xmm1 - movsd %xmm1, (%rsi) - ret - -.LBL_2_6: - - mulsd %xmm1, %xmm1 - movsd %xmm1, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_dtan_cout_rare_internal,@function - .size __svml_dtan_cout_rare_internal,.-__svml_dtan_cout_rare_internal -..LN__svml_dtan_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dtan_data_internal: - .long 1841940611 - .long 1075076912 - .long 1841940611 - .long 1075076912 - .long 1841940611 - .long 1075076912 - .long 1841940611 - .long 1075076912 - .long 1841940611 - .long 1075076912 - .long 1841940611 - .long 1075076912 - .long 1841940611 - .long 1075076912 - .long 1841940611 - .long 1075076912 - .long 1413754136 - .long 1070146043 - .long 1413754136 - .long 1070146043 - .long 1413754136 - .long 1070146043 - .long 1413754136 - .long 1070146043 - .long 1413754136 - .long 1070146043 - .long 1413754136 - .long 1070146043 - .long 1413754136 - .long 1070146043 - .long 1413754136 - .long 1070146043 - .long 856972294 - .long 1013032486 - .long 856972294 - .long 1013032486 - .long 856972294 - .long 1013032486 - .long 856972294 - .long 1013032486 - .long 856972294 - .long 1013032486 - .long 856972294 - .long 1013032486 - .long 856972294 - .long 1013032486 - .long 856972294 - .long 1013032486 - .long 688016905 - .long 958143697 - .long 688016905 - .long 958143697 - .long 688016905 - .long 958143697 - .long 688016905 - .long 958143697 - .long 688016905 - .long 958143697 - .long 688016905 - .long 958143697 - .long 688016905 - .long 958143697 - .long 688016905 - .long 958143697 - .long 855638016 - .long 1013032486 - .long 855638016 - .long 1013032486 - .long 855638016 - .long 1013032486 - .long 855638016 - .long 1013032486 - .long 855638016 - .long 1013032486 - .long 855638016 - .long 1013032486 - .long 855638016 - .long 1013032486 - .long 855638016 - .long 1013032486 - .long 3773204808 - .long 979655686 - .long 3773204808 - .long 979655686 - .long 3773204808 - .long 979655686 - .long 3773204808 - .long 979655686 - .long 3773204808 - .long 979655686 - .long 3773204808 - .long 979655686 - .long 3773204808 - .long 979655686 - .long 3773204808 - .long 979655686 - .long 0 - .long 2147483648 - .long 3763679576 - .long 1070167541 - .long 2583490354 - .long 1071284857 - .long 716700048 - .long 1071997368 - .long 0 - .long 1072693248 - .long 3797578849 - .long 1073213976 - .long 859807206 - .long 1073958991 - .long 3795994481 - .long 1075059710 - .long 4294967295 - .long 4293918719 - .long 3795994481 - .long 3222543358 - .long 859807206 - .long 3221442639 - .long 3797578849 - .long 3220697624 - .long 0 - .long 3220176896 - .long 716700048 - .long 3219481016 - .long 2583490354 - .long 3218768505 - .long 3763679576 - .long 3217651189 - .long 0 - .long 2147483648 - .long 1732516166 - .long 1009710547 - .long 2973134505 - .long 1014008623 - .long 561165941 - .long 1015523525 - .long 0 - .long 0 - .long 1767150223 - .long 1016338938 - .long 4129738197 - .long 1017254245 - .long 4275273486 - .long 1015088902 - .long 0 - .long 4238344192 - .long 4275273486 - .long 3162572550 - .long 4129738197 - .long 3164737893 - .long 1767150223 - .long 3163822586 - .long 0 - .long 0 - .long 561165941 - .long 3163007173 - .long 2973134505 - .long 3161492271 - .long 1732516166 - .long 3157194195 - .long 1431655900 - .long 1070945621 - .long 1431655900 - .long 1070945621 - .long 1431655900 - .long 1070945621 - .long 1431655900 - .long 1070945621 - .long 1431655900 - .long 1070945621 - .long 1431655900 - .long 1070945621 - .long 1431655900 - .long 1070945621 - .long 1431655900 - .long 1070945621 - .long 285935618 - .long 1069617425 - .long 285935618 - .long 1069617425 - .long 285935618 - .long 1069617425 - .long 285935618 - .long 1069617425 - .long 285935618 - .long 1069617425 - .long 285935618 - .long 1069617425 - .long 285935618 - .long 1069617425 - .long 285935618 - .long 1069617425 - .long 1218258378 - .long 1068212666 - .long 1218258378 - .long 1068212666 - .long 1218258378 - .long 1068212666 - .long 1218258378 - .long 1068212666 - .long 1218258378 - .long 1068212666 - .long 1218258378 - .long 1068212666 - .long 1218258378 - .long 1068212666 - .long 1218258378 - .long 1068212666 - .long 1716452265 - .long 1066820779 - .long 1716452265 - .long 1066820779 - .long 1716452265 - .long 1066820779 - .long 1716452265 - .long 1066820779 - .long 1716452265 - .long 1066820779 - .long 1716452265 - .long 1066820779 - .long 1716452265 - .long 1066820779 - .long 1716452265 - .long 1066820779 - .long 3351902813 - .long 1065508044 - .long 3351902813 - .long 1065508044 - .long 3351902813 - .long 1065508044 - .long 3351902813 - .long 1065508044 - .long 3351902813 - .long 1065508044 - .long 3351902813 - .long 1065508044 - .long 3351902813 - .long 1065508044 - .long 3351902813 - .long 1065508044 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 2146435072 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 0 - .long 1127743488 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 1413480448 - .long 1065951739 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 442499072 - .long 1029747809 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 771977331 - .long 993204618 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 511 - .long 0 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1841940611 - .long 1079271216 - .long 1413754136 - .long 1073291771 - .long 856972295 - .long 1016178214 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1431655769 - .long 1070945621 - .long 0 - .long 0 - .long 285114973 - .long 1069617425 - .long 0 - .long 0 - .long 3223786787 - .long 1068212718 - .long 1570481342 - .long 1073278903 - .long 2595802427 - .long 1014369127 - .long 0 - .long 0 - .long 75380366 - .long 1065951822 - .long 2999349512 - .long 3155830414 - .long 0 - .long 1072693248 - .long 2911696896 - .long 1059306942 - .long 451505506 - .long 1065952070 - .long 3089290734 - .long 1070946463 - .long 3705470160 - .long 1065403174 - .long 2568117119 - .long 1069618857 - .long 643394266 - .long 1064501452 - .long 501385640 - .long 1068202863 - .long 1727208548 - .long 1073266035 - .long 2531251621 - .long 3162145225 - .long 0 - .long 0 - .long 612012528 - .long 1067000646 - .long 549540416 - .long 3153143513 - .long 0 - .long 1072693248 - .long 2064191488 - .long 1061404484 - .long 4042886527 - .long 1067001638 - .long 149923164 - .long 1070948993 - .long 104448276 - .long 1066453158 - .long 2663431480 - .long 1069623160 - .long 4100741303 - .long 1065552806 - .long 3253087105 - .long 1068220130 - .long 1883935754 - .long 1073253167 - .long 2988318241 - .long 3163734974 - .long 0 - .long 0 - .long 3919601072 - .long 1067637674 - .long 2391050108 - .long 3158536696 - .long 0 - .long 1072693248 - .long 1803946752 - .long 1062615560 - .long 2247013512 - .long 1067639351 - .long 3277043521 - .long 1070953215 - .long 578207594 - .long 1067006653 - .long 1619551617 - .long 1069630354 - .long 2647612950 - .long 1066183733 - .long 2691224773 - .long 1068193529 - .long 2040662960 - .long 1073240299 - .long 4270081753 - .long 3164530442 - .long 0 - .long 0 - .long 2319126882 - .long 1068050215 - .long 2052183488 - .long 1006305725 - .long 0 - .long 1072693248 - .long 2962101888 - .long 1063503197 - .long 3966050657 - .long 1068054193 - .long 3178024141 - .long 1070959142 - .long 1146831000 - .long 1067507381 - .long 1630003540 - .long 1069640468 - .long 2204487828 - .long 1066612393 - .long 783402153 - .long 1068243248 - .long 2197390165 - .long 1073227431 - .long 3038089327 - .long 1016395176 - .long 0 - .long 0 - .long 3930011523 - .long 1068463253 - .long 3574549514 - .long 3158343440 - .long 0 - .long 1072693248 - .long 930814464 - .long 1064233867 - .long 3218126771 - .long 1068471034 - .long 873740287 - .long 1070966789 - .long 1580060562 - .long 1067789097 - .long 1505280051 - .long 1069653548 - .long 2221338604 - .long 1066937592 - .long 2641117162 - .long 1068312400 - .long 2354117371 - .long 1073214563 - .long 3512651629 - .long 1015129272 - .long 0 - .long 0 - .long 3439278129 - .long 1068687929 - .long 1073016494 - .long 1012431341 - .long 0 - .long 1072693248 - .long 2934847296 - .long 1064716672 - .long 2625704508 - .long 1068694663 - .long 3692939630 - .long 1070976174 - .long 3072165553 - .long 1068074393 - .long 223733198 - .long 1069669653 - .long 1158528257 - .long 1067269817 - .long 3197805108 - .long 1068357327 - .long 2510844577 - .long 1073201695 - .long 498468876 - .long 3161098111 - .long 0 - .long 0 - .long 1972895212 - .long 1068895135 - .long 3208334872 - .long 1010638399 - .long 0 - .long 1072693248 - .long 4107853760 - .long 1065246718 - .long 2229347510 - .long 1068905849 - .long 4172638464 - .long 1070987323 - .long 212469442 - .long 1068364021 - .long 1989165656 - .long 1069688852 - .long 4131454312 - .long 1067530480 - .long 3453538591 - .long 1068469531 - .long 2667571783 - .long 1073188827 - .long 1614402419 - .long 3163482232 - .long 0 - .long 0 - .long 2354785698 - .long 1069102779 - .long 959196066 - .long 1012432163 - .long 0 - .long 1072693248 - .long 2828230112 - .long 1065606626 - .long 3693284264 - .long 1069118808 - .long 1996210616 - .long 1071000265 - .long 3053541878 - .long 1068578846 - .long 1133334569 - .long 1069711236 - .long 977677893 - .long 1067705915 - .long 347264115 - .long 1068436198 - .long 2824298989 - .long 1073175959 - .long 2088964722 - .long 3164313480 - .long 0 - .long 0 - .long 931121154 - .long 1069310926 - .long 1121692745 - .long 3159637885 - .long 0 - .long 1072693248 - .long 709357472 - .long 1065955296 - .long 29972165 - .long 1069333808 - .long 254360647 - .long 1071015033 - .long 3732687627 - .long 1068729157 - .long 3224370683 - .long 1069736900 - .long 202592779 - .long 1067887231 - .long 1420423314 - .long 1068491719 - .long 2981026194 - .long 1073163091 - .long 924239062 - .long 1016612139 - .long 0 - .long 0 - .long 982366697 - .long 1069519640 - .long 1160213218 - .long 3158385836 - .long 0 - .long 1072693248 - .long 404678272 - .long 1066346403 - .long 1419607756 - .long 1069549319 - .long 1800406832 - .long 1071031665 - .long 3144361055 - .long 1068882825 - .long 1744148040 - .long 1069765960 - .long 3211597674 - .long 1068075289 - .long 404952187 - .long 1068609434 - .long 3137753400 - .long 1073150223 - .long 3579918397 - .long 1015563197 - .long 0 - .long 0 - .long 2242453104 - .long 1069638253 - .long 1143545012 - .long 3159361608 - .long 0 - .long 1072693248 - .long 1016752608 - .long 1066591110 - .long 1270001991 - .long 1069659269 - .long 1410785275 - .long 1071050206 - .long 1103929722 - .long 1069040275 - .long 3268015215 - .long 1069798554 - .long 957665168 - .long 1068270980 - .long 1067662813 - .long 1068610012 - .long 3294480606 - .long 1073137355 - .long 1489607747 - .long 3151418907 - .long 0 - .long 0 - .long 1940260416 - .long 1069743276 - .long 4144715194 - .long 1012060053 - .long 0 - .long 1072693248 - .long 1135818128 - .long 1066829850 - .long 867512158 - .long 1069770656 - .long 3821819258 - .long 1071070704 - .long 2890864845 - .long 1069201948 - .long 918459419 - .long 1069834828 - .long 797472495 - .long 1068475275 - .long 4093958433 - .long 1068635569 - .long 3451207812 - .long 1073124487 - .long 1547135652 - .long 3163048307 - .long 0 - .long 0 - .long 1959743063 - .long 1069848682 - .long 607727474 - .long 1013558026 - .long 0 - .long 1072693248 - .long 225834432 - .long 1067090614 - .long 732340398 - .long 1069883626 - .long 3221152670 - .long 1071093215 - .long 2810588359 - .long 1069368307 - .long 612200458 - .long 1069874948 - .long 645427023 - .long 1068594071 - .long 1966294363 - .long 1068694214 - .long 3607935018 - .long 1073111619 - .long 4202814986 - .long 3164096517 - .long 0 - .long 0 - .long 2429422902 - .long 1069954505 - .long 3297515896 - .long 3160006592 - .long 0 - .long 1072693248 - .long 528565440 - .long 1067373727 - .long 2395999282 - .long 1069998329 - .long 1512953454 - .long 1071117799 - .long 2702142222 - .long 1069539835 - .long 3515899576 - .long 1069919100 - .long 2767905785 - .long 1068706391 - .long 3127207959 - .long 1068808800 - .long 3764662223 - .long 1073098751 - .long 3105356094 - .long 1016829101 - .long 0 - .long 0 - .long 1425758568 - .long 1070060780 - .long 1224256500 - .long 1011856982 - .long 0 - .long 1072693248 - .long 2086713664 - .long 1067564956 - .long 1688303979 - .long 1070114921 - .long 938619730 - .long 1071144522 - .long 526120622 - .long 1069632280 - .long 3819295667 - .long 1069967496 - .long 2059466202 - .long 1068824653 - .long 4035080204 - .long 1068903334 - .long 3921389429 - .long 1073085883 - .long 3647185164 - .long 1015997122 - .long 0 - .long 0 - .long 3763679576 - .long 1070167541 - .long 448465424 - .long 1009708707 - .long 0 - .long 1072693248 - .long 64931152 - .long 1067729411 - .long 3593250320 - .long 1070233561 - .long 1127364104 - .long 1071173457 - .long 21320967 - .long 1069723988 - .long 4036384112 - .long 1070020367 - .long 3394693835 - .long 1068949482 - .long 4171096556 - .long 1068939101 - .long 4078116635 - .long 1073073015 - .long 39665264 - .long 1013608617 - .long 0 - .long 0 - .long 4023957346 - .long 1070274825 - .long 2652053984 - .long 1012417284 - .long 0 - .long 1072693248 - .long 1548193280 - .long 1067905620 - .long 2849460080 - .long 1070354416 - .long 586099284 - .long 1071204684 - .long 2426038050 - .long 1069819083 - .long 1209882932 - .long 1070077962 - .long 204929667 - .long 1069081561 - .long 2951798640 - .long 1069077118 - .long 4234843841 - .long 1073060147 - .long 1479868884 - .long 3162614382 - .long 0 - .long 0 - .long 3947580658 - .long 1070382668 - .long 4153467944 - .long 1013228820 - .long 0 - .long 1072693248 - .long 1306970432 - .long 1068093810 - .long 3320658510 - .long 1070477657 - .long 2638377394 - .long 1071238289 - .long 1218095092 - .long 1069917865 - .long 506153462 - .long 1070140566 - .long 2096772755 - .long 1069221614 - .long 2058474785 - .long 1069148484 - .long 96603751 - .long 1073047280 - .long 2021697954 - .long 3163879555 - .long 0 - .long 0 - .long 4068253482 - .long 1070491107 - .long 3098804354 - .long 1013932712 - .long 0 - .long 1072693248 - .long 3555466384 - .long 1068294223 - .long 3714292293 - .long 1070599779 - .long 58004546 - .long 1071274368 - .long 2889916307 - .long 1070020649 - .long 2725223781 - .long 1070208483 - .long 1960889140 - .long 1069370437 - .long 2173066945 - .long 1069259864 - .long 253330956 - .long 1073034412 - .long 991505830 - .long 1017046064 - .long 0 - .long 0 - .long 1971725998 - .long 1070598138 - .long 2628060598 - .long 1013294571 - .long 0 - .long 1072693248 - .long 3850616508 - .long 1068503032 - .long 715485429 - .long 1070664058 - .long 2831870887 - .long 1071313021 - .long 276112813 - .long 1070127773 - .long 4071473622 - .long 1070282053 - .long 3678820497 - .long 1069528889 - .long 928174949 - .long 1069392578 - .long 410058162 - .long 1073021544 - .long 4004709614 - .long 1016250595 - .long 0 - .long 0 - .long 1197423420 - .long 1070653011 - .long 176404688 - .long 1013428940 - .long 0 - .long 1072693248 - .long 3614211808 - .long 1068615863 - .long 2638984897 - .long 1070729808 - .long 1695604536 - .long 1071354361 - .long 2372043566 - .long 1070239593 - .long 136909610 - .long 1070361652 - .long 3640039434 - .long 1069622710 - .long 4088329288 - .long 1069449448 - .long 566785368 - .long 1073008676 - .long 2301849815 - .long 1014658654 - .long 0 - .long 0 - .long 1026922473 - .long 1070708240 - .long 4275552176 - .long 1013759157 - .long 0 - .long 1072693248 - .long 865263972 - .long 1068735226 - .long 1189261043 - .long 1070797132 - .long 602895285 - .long 1071398507 - .long 457371263 - .long 1070356493 - .long 1846858239 - .long 1070447677 - .long 3060498109 - .long 1069713009 - .long 4267979072 - .long 1069596604 - .long 723512574 - .long 1072995808 - .long 2825204233 - .long 3161855698 - .long 0 - .long 0 - .long 2664093517 - .long 1070763845 - .long 3574550848 - .long 1009790086 - .long 0 - .long 1072693248 - .long 2465054196 - .long 1068861279 - .long 3495559184 - .long 1070866134 - .long 2180799467 - .long 1071445588 - .long 3760731789 - .long 1070478879 - .long 3108073741 - .long 1070540584 - .long 1955989611 - .long 1069809654 - .long 166740423 - .long 1069654305 - .long 880239780 - .long 1072982940 - .long 4135548218 - .long 3163662592 - .long 0 - .long 0 - .long 895247324 - .long 1070819848 - .long 3063999364 - .long 3161289029 - .long 0 - .long 1072693248 - .long 729983844 - .long 1068994194 - .long 3631919317 - .long 1070936926 - .long 2031343772 - .long 1071495745 - .long 1505593195 - .long 1070601643 - .long 519428998 - .long 1070618477 - .long 3710689648 - .long 1069913254 - .long 3156018952 - .long 1069741343 - .long 1036966986 - .long 1072970072 - .long 1122344434 - .long 3164458061 - .long 0 - .long 0 - .long 1412148370 - .long 1070876269 - .long 2689479793 - .long 3161477235 - .long 0 - .long 1072693248 - .long 1375255072 - .long 1069134151 - .long 1493266594 - .long 1071009624 - .long 487968719 - .long 1071549129 - .long 4010395236 - .long 1070668994 - .long 2875570533 - .long 1070672565 - .long 2596803931 - .long 1070024476 - .long 2843491938 - .long 1069843051 - .long 1193694191 - .long 1072957204 - .long 1890859349 - .long 1016467558 - .long 0 - .long 0 - .long 3782220567 - .long 1070933130 - .long 2488122455 - .long 1014753484 - .long 0 - .long 1072693248 - .long 91372748 - .long 1069281344 - .long 318776714 - .long 1071084349 - .long 1791786485 - .long 1071605902 - .long 245863368 - .long 1070739794 - .long 3306699314 - .long 1070730899 - .long 492155886 - .long 1070144051 - .long 504705110 - .long 1069961586 - .long 1350421397 - .long 1072944336 - .long 1218191675 - .long 1015274036 - .long 0 - .long 0 - .long 1606100959 - .long 1070990455 - .long 3385800912 - .long 1013630535 - .long 0 - .long 1072693248 - .long 2255302008 - .long 1069435977 - .long 54085333 - .long 1071161229 - .long 2504974906 - .long 1071655456 - .long 4169947836 - .long 1070814310 - .long 2891827400 - .long 1070793803 - .long 1030744926 - .long 1070272780 - .long 2378131433 - .long 1070036506 - .long 1507148603 - .long 1072931468 - .long 1086374101 - .long 3160519057 - .long 0 - .long 0 - .long 4158096969 - .long 1071048265 - .long 3224523546 - .long 1013419306 - .long 0 - .long 1072693248 - .long 4240313622 - .long 1069572894 - .long 3745046477 - .long 1071240398 - .long 1955120038 - .long 1071687503 - .long 2661530988 - .long 1070892836 - .long 2615081511 - .long 1070861626 - .long 3172686013 - .long 1070411548 - .long 3468537064 - .long 1070173373 - .long 1663875809 - .long 1072918600 - .long 3908862373 - .long 3163337468 - .long 0 - .long 0 - .long 2200768388 - .long 1071106586 - .long 302579070 - .long 3162432935 - .long 0 - .long 1072693248 - .long 2338248308 - .long 1069657986 - .long 2617403810 - .long 1071322000 - .long 60078074 - .long 1071721530 - .long 2753634668 - .long 1070975684 - .long 626020947 - .long 1070934758 - .long 25846105 - .long 1070561329 - .long 1123371528 - .long 1070307499 - .long 1820603015 - .long 1072905732 - .long 3236194699 - .long 3164241098 - .long 0 - .long 0 - .long 2528366626 - .long 1071165441 - .long 3808697588 - .long 3160880158 - .long 0 - .long 1072693248 - .long 1938261590 - .long 1069747146 - .long 4282399603 - .long 1071406183 - .long 1922568281 - .long 1071757646 - .long 2428166646 - .long 1071063193 - .long 717464826 - .long 1071013623 - .long 2205664064 - .long 1070659645 - .long 1525962144 - .long 1070438229 - .long 1977330220 - .long 1072892864 - .long 4071976381 - .long 1016684520 - .long 0 - .long 0 - .long 2390846448 - .long 1071224856 - .long 3510510824 - .long 1014225707 - .long 0 - .long 1072693248 - .long 1208409702 - .long 1069840505 - .long 1006199412 - .long 1071493107 - .long 2504246873 - .long 1071795971 - .long 1040653613 - .long 1071155729 - .long 1713268218 - .long 1071098686 - .long 462276291 - .long 1070747214 - .long 4239134769 - .long 1070603989 - .long 2134057426 - .long 1072879996 - .long 1285458442 - .long 1015707961 - .long 0 - .long 0 - .long 2583490354 - .long 1071284857 - .long 27154665 - .long 1014008337 - .long 0 - .long 1072693248 - .long 2550940470 - .long 1069938201 - .long 2616040293 - .long 1071582937 - .long 2529278955 - .long 1071836633 - .long 2244405849 - .long 1071253687 - .long 2064814125 - .long 1071190460 - .long 1527853242 - .long 1070842074 - .long 354304617 - .long 1070708112 - .long 2290784632 - .long 1072867128 - .long 2660353234 - .long 1011979525 - .long 0 - .long 0 - .long 3368427099 - .long 1071345471 - .long 2187847358 - .long 3161070788 - .long 0 - .long 1072693248 - .long 1708021028 - .long 1070040382 - .long 459972195 - .long 1071660262 - .long 3210514347 - .long 1071879770 - .long 955408873 - .long 1071357497 - .long 1911386086 - .long 1071289511 - .long 3563284025 - .long 1070944951 - .long 547392146 - .long 1070790031 - .long 2447511838 - .long 1072854260 - .long 3841595606 - .long 3162903543 - .long 0 - .long 0 - .long 408840118 - .long 1071406727 - .long 4048150272 - .long 1011870625 - .long 0 - .long 1072693248 - .long 2794370512 - .long 1070147203 - .long 1550993351 - .long 1071708355 - .long 1305093678 - .long 1071925532 - .long 1748211158 - .long 1071467623 - .long 3244212116 - .long 1071396455 - .long 2145665988 - .long 1071056651 - .long 1098394636 - .long 1070891096 - .long 2604239044 - .long 1072841392 - .long 1055077667 - .long 3164024136 - .long 0 - .long 0 - .long 2191706112 - .long 1071468652 - .long 333457838 - .long 1013847700 - .long 0 - .long 1072693248 - .long 3435408456 - .long 1070258830 - .long 487319719 - .long 1071758184 - .long 1713711059 - .long 1071974079 - .long 130753286 - .long 1071584571 - .long 909725129 - .long 1071511974 - .long 2762442355 - .long 1071178067 - .long 932699057 - .long 1071027067 - .long 2760966249 - .long 1072828524 - .long 1958126117 - .long 1016901483 - .long 0 - .long 0 - .long 220675706 - .long 1071531278 - .long 3158460941 - .long 1014240139 - .long 0 - .long 1072693248 - .long 1565030890 - .long 1070375439 - .long 335263687 - .long 1071809854 - .long 419816567 - .long 1072025586 - .long 2098048102 - .long 1071676780 - .long 257229334 - .long 1071636821 - .long 3464457175 - .long 1071310192 - .long 2745951745 - .long 1071158056 - .long 2917693455 - .long 1072815656 - .long 676362605 - .long 1016106015 - .long 0 - .long 0 - .long 3649427950 - .long 1071594634 - .long 4113913432 - .long 1011178545 - .long 0 - .long 1072693248 - .long 2424145432 - .long 1070497215 - .long 2715404890 - .long 1071863477 - .long 2238283673 - .long 1072080240 - .long 1186867211 - .long 1071742923 - .long 660318792 - .long 1071708248 - .long 2091427899 - .long 1071454132 - .long 2591062578 - .long 1071291190 - .long 3074420661 - .long 1072802788 - .long 1873363667 - .long 1014080331 - .long 0 - .long 0 - .long 2606398711 - .long 1071651713 - .long 2533078623 - .long 1015070425 - .long 0 - .long 1072693248 - .long 2151361100 - .long 1070610226 - .long 1532348096 - .long 1071919174 - .long 408604530 - .long 1072138246 - .long 1039538740 - .long 1071813375 - .long 1234598850 - .long 1071781284 - .long 692507560 - .long 1071611119 - .long 4090315823 - .long 1071451983 - .long 3231147867 - .long 1072789920 - .long 3253690381 - .long 3162434021 - .long 0 - .long 0 - .long 1505561933 - .long 1071684172 - .long 2813788960 - .long 3158646164 - .long 0 - .long 1072693248 - .long 2997217365 - .long 1070676584 - .long 2681788575 - .long 1071977071 - .long 3989126937 - .long 1072199822 - .long 1049115510 - .long 1071888491 - .long 511642057 - .long 1071860360 - .long 4034728042 - .long 1071713598 - .long 1788921063 - .long 1071639550 - .long 3387875073 - .long 1072777052 - .long 3168927931 - .long 3163807173 - .long 0 - .long 0 - .long 419968236 - .long 1071717047 - .long 131821922 - .long 3163445114 - .long 0 - .long 1072693248 - .long 2960267235 - .long 1070745841 - .long 1037049094 - .long 1072037305 - .long 1447436626 - .long 1072265209 - .long 3197232138 - .long 1071968658 - .long 4004685083 - .long 1071946034 - .long 1412816411 - .long 1071807280 - .long 3184767140 - .long 1071740610 - .long 3544602278 - .long 1072764184 - .long 4139243149 - .long 1017118445 - .long 0 - .long 0 - .long 4270735453 - .long 1071750355 - .long 3565353881 - .long 3162826177 - .long 0 - .long 1072693248 - .long 2915760230 - .long 1070818115 - .long 638580392 - .long 1072100020 - .long 2252948193 - .long 1072334663 - .long 1194731830 - .long 1072054301 - .long 1353002943 - .long 1072038927 - .long 422364777 - .long 1071909798 - .long 3669605864 - .long 1071842023 - .long 3701329484 - .long 1072751316 - .long 2857479637 - .long 1016322977 - .long 0 - .long 0 - .long 4010047525 - .long 1071784117 - .long 3339961616 - .long 1012589046 - .long 0 - .long 1072693248 - .long 966450668 - .long 1070893532 - .long 803989702 - .long 1072165371 - .long 1934453966 - .long 1072408465 - .long 1455077850 - .long 1072145882 - .long 2709264343 - .long 1072139721 - .long 1918064545 - .long 1072022114 - .long 1476733491 - .long 1071960574 - .long 3858056690 - .long 1072738448 - .long 2007897202 - .long 1014948181 - .long 0 - .long 0 - .long 2591355529 - .long 1071818352 - .long 2351346752 - .long 1014424505 - .long 0 - .long 1072693248 - .long 3206845590 - .long 1070972224 - .long 4023349050 - .long 1072233523 - .long 3838822434 - .long 1072486918 - .long 3122427157 - .long 1072243909 - .long 2261703628 - .long 1072249178 - .long 1764870085 - .long 1072145307 - .long 3201774398 - .long 1072093301 - .long 4014783896 - .long 1072725580 - .long 3119156846 - .long 3161566171 - .long 0 - .long 0 - .long 2298773501 - .long 1071853080 - .long 4027796943 - .long 3162574088 - .long 0 - .long 1072693248 - .long 312748411 - .long 1071054335 - .long 2723913091 - .long 1072304655 - .long 3207063211 - .long 1072570353 - .long 1845780128 - .long 1072348940 - .long 752659336 - .long 1072368142 - .long 1097207438 - .long 1072280589 - .long 407427378 - .long 1072246732 - .long 4171511102 - .long 1072712712 - .long 987810900 - .long 3163590211 - .long 0 - .long 0 - .long 681498355 - .long 1071888323 - .long 3542613740 - .long 3163311347 - .long 0 - .long 1072693248 - .long 168222332 - .long 1071140014 - .long 776736583 - .long 1072378956 - .long 2405401100 - .long 1072659128 - .long 430546584 - .long 1072461586 - .long 2974083787 - .long 1072497552 - .long 849442051 - .long 1072429322 - .long 2727422945 - .long 1072409680 - .long 33271012 - .long 1072699845 - .long 2269574412 - .long 3164385679 - .long 0 - .long 0 - .long 3684492763 - .long 1071924102 - .long 2905877726 - .long 3163193209 - .long 0 - .long 1072693248 - .long 585640690 - .long 1071229422 - .long 1068301595 - .long 1072456629 - .long 2953900489 - .long 1072723440 - .long 950237889 - .long 1072582519 - .long 109735426 - .long 1072638455 - .long 792610960 - .long 1072593041 - .long 2904161704 - .long 1072594405 - .long 379996435 - .long 1072680706 - .long 2807708551 - .long 3162614199 - .long 0 - .long 0 - .long 142288477 - .long 1071960443 - .long 1256321232 - .long 3162016428 - .long 0 - .long 1072693248 - .long 925074332 - .long 1071322730 - .long 2134728327 - .long 1072537893 - .long 1886408555 - .long 1072773770 - .long 101893267 - .long 1072702864 - .long 2020085224 - .long 1072742631 - .long 2955803851 - .long 1072733362 - .long 343310803 - .long 1072748161 - .long 693450846 - .long 1072654970 - .long 3218699017 - .long 1015418799 - .long 0 - .long 0 - .long 716700048 - .long 1071997368 - .long 1043856658 - .long 1015522810 - .long 0 - .long 1072693248 - .long 1097907398 - .long 1071420120 - .long 3912524876 - .long 1072622983 - .long 4107784306 - .long 1072827408 - .long 937056065 - .long 1072772766 - .long 4128945134 - .long 1072826390 - .long 1032262383 - .long 1072832917 - .long 1825923576 - .long 1072864423 - .long 1006905258 - .long 1072629234 - .long 3348558652 - .long 3159471942 - .long 0 - .long 0 - .long 3841229102 - .long 1072034903 - .long 1782837269 - .long 1016032992 - .long 0 - .long 1072693248 - .long 866896685 - .long 1071521786 - .long 2743435231 - .long 1072702700 - .long 3017984361 - .long 1072884608 - .long 1491919678 - .long 1072848040 - .long 1507535811 - .long 1072917857 - .long 1966124961 - .long 1072942914 - .long 381628626 - .long 1072992589 - .long 1320359670 - .long 1072603498 - .long 1908355032 - .long 3163192705 - .long 0 - .long 0 - .long 343219638 - .long 1072073077 - .long 2238302242 - .long 1014248160 - .long 0 - .long 1072693248 - .long 3768132253 - .long 1071627934 - .long 3895546569 - .long 1072749460 - .long 1613056473 - .long 1072945645 - .long 3409294908 - .long 1072929183 - .long 3138966349 - .long 1073017844 - .long 3799067273 - .long 1073064607 - .long 359470462 - .long 1073133087 - .long 1633814081 - .long 1072577762 - .long 3941137777 - .long 1014659019 - .long 0 - .long 0 - .long 3860971117 - .long 1072111915 - .long 2891637204 - .long 1015730508 - .long 0 - .long 1073741824 - .long 80822128 - .long 3219034205 - .long 2077635078 - .long 1072798543 - .long 1552870456 - .long 1073010820 - .long 3607700650 - .long 1073016746 - .long 249538440 - .long 1073127265 - .long 2233833066 - .long 1073199420 - .long 2436428201 - .long 1073293556 - .long 1947268493 - .long 1072552026 - .long 1185916272 - .long 3161855333 - .long 0 - .long 0 - .long 3978924239 - .long 1072151449 - .long 680748782 - .long 3163204529 - .long 0 - .long 1073741824 - .long 3528982175 - .long 3218918413 - .long 3018376188 - .long 1072850106 - .long 2093086652 - .long 1073080463 - .long 451029217 - .long 1073111339 - .long 1097121536 - .long 1073247142 - .long 2277789226 - .long 1073348969 - .long 149166906 - .long 1073478822 - .long 2260722904 - .long 1072526290 - .long 3285965784 - .long 1015852724 - .long 0 - .long 0 - .long 997287281 - .long 1072191710 - .long 3612277486 - .long 1015833408 - .long 0 - .long 1073741824 - .long 3037674984 - .long 3218797431 - .long 2624215131 - .long 1072904321 - .long 464779768 - .long 1073154936 - .long 3700763630 - .long 1073213636 - .long 1200926910 - .long 1073378628 - .long 2934576429 - .long 1073515096 - .long 3287041855 - .long 1073681673 - .long 2574177316 - .long 1072500554 - .long 2889755040 - .long 1013031024 - .long 0 - .long 0 - .long 2079874795 - .long 1072232729 - .long 1885505696 - .long 3161954077 - .long 0 - .long 1073741824 - .long 1656469901 - .long 3218670989 - .long 823761676 - .long 1072961373 - .long 2491445454 - .long 1073234634 - .long 1584341555 - .long 1073324391 - .long 1976688438 - .long 1073523018 - .long 3918313340 - .long 1073699902 - .long 3178717687 - .long 1073829019 - .long 2887631728 - .long 1072474818 - .long 1841088264 - .long 3162758780 - .long 0 - .long 0 - .long 258163604 - .long 1072274542 - .long 3299923807 - .long 1015128357 - .long 0 - .long 1073741824 - .long 2865277319 - .long 3218538798 - .long 3110066496 - .long 1073021461 - .long 723074889 - .long 1073319994 - .long 1618819009 - .long 1073444438 - .long 1176243936 - .long 1073681775 - .long 1223848987 - .long 1073823806 - .long 2369274010 - .long 1073957581 - .long 3201086139 - .long 1072449082 - .long 4185319304 - .long 1015274218 - .long 0 - .long 0 - .long 719595600 - .long 1072317184 - .long 114895218 - .long 3162143748 - .long 0 - .long 1073741824 - .long 3811788216 - .long 3218400550 - .long 1264738948 - .long 1073084804 - .long 1958933439 - .long 1073411493 - .long 4246310163 - .long 1073574708 - .long 1367842247 - .long 1073799186 - .long 4112596162 - .long 1073938662 - .long 2100954442 - .long 1074105254 - .long 3514540551 - .long 1072423346 - .long 2102765473 - .long 3160518326 - .long 0 - .long 0 - .long 4189730214 - .long 1072360693 - .long 873070368 - .long 1011168520 - .long 0 - .long 1073741824 - .long 760634709 - .long 3218255915 - .long 2067827628 - .long 1073151636 - .long 1386756408 - .long 1073509659 - .long 404552634 - .long 1073716242 - .long 1143062645 - .long 1073895515 - .long 555342321 - .long 1074067009 - .long 3470170865 - .long 1074271418 - .long 3827994963 - .long 1072397610 - .long 941734744 - .long 3163337286 - .long 0 - .long 0 - .long 3247184626 - .long 1072405111 - .long 1245412628 - .long 1014426137 - .long 0 - .long 1073741824 - .long 2381906911 - .long 3218104536 - .long 1010924947 - .long 1073222214 - .long 2481381005 - .long 1073615072 - .long 1356661294 - .long 1073806011 - .long 1527070582 - .long 1074001844 - .long 3061693388 - .long 1074210655 - .long 1993183195 - .long 1074463435 - .long 4141449374 - .long 1072371874 - .long 1579411055 - .long 1014369858 - .long 0 - .long 0 - .long 166164867 - .long 1072450480 - .long 2304058808 - .long 3159574198 - .long 0 - .long 1073741824 - .long 2798667120 - .long 3217812323 - .long 4203596829 - .long 1073296815 - .long 1473339147 - .long 1073728374 - .long 4243021652 - .long 1073889850 - .long 1638747017 - .long 1074119375 - .long 1512673096 - .long 1074371687 - .long 2338684787 - .long 1074678259 - .long 159936490 - .long 1072346139 - .long 3547642993 - .long 3162144494 - .long 0 - .long 0 - .long 3342355758 - .long 1072496843 - .long 1667048854 - .long 1014547708 - .long 0 - .long 1073741824 - .long 2271288998 - .long 3217480250 - .long 4111284847 - .long 1073375744 - .long 2796272966 - .long 1073796048 - .long 1730314448 - .long 1073981280 - .long 1813001552 - .long 1074249474 - .long 603251414 - .long 1074552509 - .long 3079042420 - .long 1074856525 - .long 473390901 - .long 1072320403 - .long 4252586071 - .long 1015708143 - .long 0 - .long 0 - .long 2308259791 - .long 1072544250 - .long 4116261952 - .long 1009282152 - .long 0 - .long 1073741824 - .long 411343470 - .long 3217132228 - .long 3760686807 - .long 1073459331 - .long 4171367426 - .long 1073861688 - .long 1878500541 - .long 1074081117 - .long 108767834 - .long 1074393698 - .long 2824899539 - .long 1074755901 - .long 3321235986 - .long 1074997439 - .long 786845313 - .long 1072294667 - .long 627570489 - .long 1011980987 - .long 0 - .long 0 - .long 2949191430 - .long 1072592750 - .long 3989207545 - .long 1015613028 - .long 0 - .long 1073741824 - .long 2909112164 - .long 3216503445 - .long 3682557528 - .long 1073547937 - .long 4184421718 - .long 1073932454 - .long 380803270 - .long 1074190282 - .long 3399744364 - .long 1074553823 - .long 3842864947 - .long 1074887742 - .long 748075417 - .long 1075157395 - .long 1100299725 - .long 1072268931 - .long 874467977 - .long 3162903361 - .long 0 - .long 0 - .long 2668510354 - .long 1072642397 - .long 1701265160 - .long 3159690220 - .long 0 - .long 1073741824 - .long 1404962112 - .long 3215492924 - .long 3327263454 - .long 1073641957 - .long 1987673213 - .long 1074008829 - .long 231222583 - .long 1074309811 - .long 1756671652 - .long 1074731884 - .long 3921518313 - .long 1075017100 - .long 2691193077 - .long 1075341426 - .long 1413754136 - .long 1072243195 - .long 856972295 - .long 1015129638 - .long 0 - .long 1072693248 - .long 3072795147 - .long 3218177217 - .long 2531204756 - .long 1014677625 - .long 0 - .long 1071644672 - .long 573338107 - .long 3216966390 - .long 1757081539 - .long 3216009405 - .long 1043378852 - .long 1067696161 - .long 2698850995 - .long 3213513876 - .long 495882814 - .long 1064911053 - .long 3842541443 - .long 3210988571 - .long 2725665262 - .long 1061135526 - .long 1727208548 - .long 1072217459 - .long 2531251621 - .long 3161096649 - .long 0 - .long 1072693248 - .long 963359913 - .long 3218157757 - .long 2464811394 - .long 1013284229 - .long 0 - .long 1071644672 - .long 1498613974 - .long 3216992493 - .long 4138103782 - .long 3215985771 - .long 2840947366 - .long 1067675293 - .long 209537977 - .long 3213463826 - .long 3590357530 - .long 1064864171 - .long 73959547 - .long 3210940132 - .long 1511606549 - .long 1062390487 - .long 2040662960 - .long 1072191723 - .long 4270081753 - .long 3163481866 - .long 0 - .long 1072693248 - .long 4002124759 - .long 3218138375 - .long 3453342566 - .long 3160907529 - .long 0 - .long 1071644672 - .long 774562305 - .long 3217018021 - .long 377617675 - .long 3215942442 - .long 2495478050 - .long 1067655031 - .long 1508050213 - .long 3213415186 - .long 1921336534 - .long 1064819067 - .long 975923672 - .long 3210893594 - .long 2289965811 - .long 1060505011 - .long 2354117371 - .long 1072165987 - .long 3512651629 - .long 1014080696 - .long 0 - .long 1072693248 - .long 373017919 - .long 3218119072 - .long 3647199073 - .long 3162144529 - .long 0 - .long 1070596096 - .long 933359764 - .long 1069535705 - .long 1391441088 - .long 3215896667 - .long 53106651 - .long 1067635358 - .long 4157835043 - .long 3213367904 - .long 4055868050 - .long 1064775611 - .long 1529330423 - .long 3210848884 - .long 325278885 - .long 1062325273 - .long 2667571783 - .long 1072140251 - .long 1614402419 - .long 3162433656 - .long 0 - .long 1072693248 - .long 4148643959 - .long 3218099843 - .long 2887822595 - .long 3161698583 - .long 0 - .long 1070596096 - .long 4101770849 - .long 1069511300 - .long 1167052501 - .long 3215851606 - .long 2569727718 - .long 1067616256 - .long 1681502493 - .long 3213321931 - .long 3685967947 - .long 1064733780 - .long 2973319847 - .long 3210805911 - .long 472683240 - .long 1062549181 - .long 2981026194 - .long 1072114515 - .long 924239062 - .long 1015563563 - .long 0 - .long 1072693248 - .long 3747221382 - .long 3218080689 - .long 1912303920 - .long 3161550059 - .long 0 - .long 1070596096 - .long 1727686788 - .long 1069487445 - .long 681802874 - .long 3215807238 - .long 2531789465 - .long 1067597711 - .long 331202638 - .long 3213277217 - .long 2627596737 - .long 1064693515 - .long 566979211 - .long 3210764596 - .long 2424396143 - .long 1061741710 - .long 3294480606 - .long 1072088779 - .long 1489607747 - .long 3150370331 - .long 0 - .long 1072693248 - .long 1167858038 - .long 3218043472 - .long 2180016084 - .long 3158357424 - .long 0 - .long 1070596096 - .long 772792549 - .long 1069464130 - .long 3356872770 - .long 3215763542 - .long 3524844777 - .long 1067579707 - .long 1521756467 - .long 3213233715 - .long 3931969740 - .long 1064654734 - .long 2908114613 - .long 3210710011 - .long 3523476919 - .long 1061374592 - .long 3607935018 - .long 1072063043 - .long 4202814986 - .long 3163047941 - .long 0 - .long 1072693248 - .long 955408364 - .long 3218005450 - .long 2659929740 - .long 1013295819 - .long 0 - .long 1070596096 - .long 659174847 - .long 1069441347 - .long 2081794994 - .long 3215720500 - .long 2956616392 - .long 1067562230 - .long 1461867065 - .long 3213191381 - .long 879427918 - .long 1064617384 - .long 209598599 - .long 3210633576 - .long 60948554 - .long 1061529630 - .long 3921389429 - .long 1072037307 - .long 3647185164 - .long 1014948546 - .long 0 - .long 1072693248 - .long 1526324265 - .long 3217967566 - .long 4056331296 - .long 1010311990 - .long 0 - .long 1070596096 - .long 1830915900 - .long 1069419088 - .long 602185706 - .long 3215678092 - .long 555210277 - .long 1067545266 - .long 3690136761 - .long 3213150171 - .long 4115917121 - .long 1064581405 - .long 589230607 - .long 3210560017 - .long 3446641745 - .long 1062382364 - .long 4234843841 - .long 1072011571 - .long 1479868884 - .long 3161565806 - .long 0 - .long 1072693248 - .long 2049842017 - .long 3217929817 - .long 2491067243 - .long 1013757722 - .long 0 - .long 1070596096 - .long 1431833764 - .long 1069397346 - .long 551048935 - .long 3215636299 - .long 2575917112 - .long 1067528800 - .long 1559777140 - .long 3213110045 - .long 743322344 - .long 1064546764 - .long 1974991822 - .long 3210489213 - .long 3456487690 - .long 1062460308 - .long 253330956 - .long 1071985836 - .long 991505830 - .long 1015997488 - .long 0 - .long 1072693248 - .long 1894214069 - .long 3217892200 - .long 2182661104 - .long 3159506151 - .long 0 - .long 1070596096 - .long 1869133310 - .long 1069376113 - .long 1368144043 - .long 3215595103 - .long 242783364 - .long 1067512821 - .long 3692616565 - .long 3213070961 - .long 2890683542 - .long 1064513419 - .long 2407947192 - .long 3210421028 - .long 3811448635 - .long 1060561671 - .long 566785368 - .long 1071960100 - .long 2301849815 - .long 1013610078 - .long 0 - .long 1072693248 - .long 620845047 - .long 3217854712 - .long 314567190 - .long 3160767875 - .long 0 - .long 1070596096 - .long 2198158867 - .long 1069355382 - .long 222370857 - .long 3215554487 - .long 4028822361 - .long 1067497314 - .long 3610397327 - .long 3213032882 - .long 171354848 - .long 1064481283 - .long 693369877 - .long 3210355362 - .long 164303632 - .long 1061632559 - .long 880239780 - .long 1071934364 - .long 4135548218 - .long 3162614016 - .long 0 - .long 1072693248 - .long 2273547475 - .long 3217817349 - .long 4162051772 - .long 3158862098 - .long 0 - .long 1070596096 - .long 2392983423 - .long 1069335146 - .long 526970473 - .long 3215514433 - .long 628322840 - .long 1067482270 - .long 924033682 - .long 3212995771 - .long 854746898 - .long 1064450346 - .long 4004963123 - .long 3210292086 - .long 1474471147 - .long 1060747995 - .long 1193694191 - .long 1071908628 - .long 1890859349 - .long 1015418982 - .long 0 - .long 1072693248 - .long 2488075121 - .long 3217780109 - .long 1856288899 - .long 1013767581 - .long 0 - .long 1070596096 - .long 3322930631 - .long 1069315398 - .long 3277607933 - .long 3215474924 - .long 130253043 - .long 1067467675 - .long 1057196725 - .long 3212959591 - .long 3278604843 - .long 1064420531 - .long 4197429676 - .long 3210231108 - .long 1627850508 - .long 1062399550 - .long 1507148603 - .long 1071882892 - .long 1086374101 - .long 3159470481 - .long 0 - .long 1072693248 - .long 1371601499 - .long 3217742989 - .long 3050542164 - .long 3159667536 - .long 0 - .long 1070596096 - .long 2434996648 - .long 1069296132 - .long 2688049294 - .long 3215435945 - .long 1586964757 - .long 1067453518 - .long 2102156419 - .long 3212924308 - .long 2974407249 - .long 1064391847 - .long 249545848 - .long 3210172310 - .long 118754132 - .long 1061128535 - .long 1820603015 - .long 1071857156 - .long 3236194699 - .long 3163192522 - .long 0 - .long 1072693248 - .long 3497432648 - .long 3217705985 - .long 3403982176 - .long 3159219350 - .long 0 - .long 1070596096 - .long 2322009458 - .long 1069277341 - .long 3303184211 - .long 3215397479 - .long 3079386980 - .long 1067429210 - .long 3158396776 - .long 3212889889 - .long 500122468 - .long 1064364204 - .long 3226667041 - .long 3210115604 - .long 1839377740 - .long 1062167069 - .long 2134057426 - .long 1071831420 - .long 1285458442 - .long 1014659385 - .long 0 - .long 1072693248 - .long 719981842 - .long 3217669096 - .long 3396799415 - .long 1013109014 - .long 0 - .long 1070596096 - .long 2111724540 - .long 1069259019 - .long 2754706540 - .long 3215359511 - .long 790037588 - .long 1067402587 - .long 4097286835 - .long 3212856302 - .long 2918356813 - .long 1064337614 - .long 980543884 - .long 3210060878 - .long 1759882364 - .long 3204685716 - .long 2447511838 - .long 1071805684 - .long 3841595606 - .long 3161854967 - .long 0 - .long 1072693248 - .long 2234510834 - .long 3217632317 - .long 1077830624 - .long 3156276711 - .long 0 - .long 1070596096 - .long 1741599179 - .long 1069241160 - .long 288887764 - .long 3215322026 - .long 438316229 - .long 1067376778 - .long 2074161178 - .long 3212810170 - .long 2132352512 - .long 1064311981 - .long 321000190 - .long 3210008077 - .long 2574541397 - .long 1061549566 - .long 2760966249 - .long 1071779948 - .long 1958126117 - .long 1015852907 - .long 0 - .long 1072693248 - .long 212483252 - .long 3217595647 - .long 3496985358 - .long 1013615952 - .long 0 - .long 1070596096 - .long 1939348811 - .long 1069223758 - .long 1001569645 - .long 3215285008 - .long 764537997 - .long 1067351764 - .long 2326690580 - .long 3212746141 - .long 60750538 - .long 1064270005 - .long 2745665118 - .long 3209957083 - .long 1586280401 - .long 1060807371 - .long 3074420661 - .long 1071754212 - .long 1873363667 - .long 1013031755 - .long 0 - .long 1072693248 - .long 4156511795 - .long 3217559081 - .long 1791782369 - .long 3160930544 - .long 0 - .long 1070596096 - .long 4204226438 - .long 1069206807 - .long 2895376501 - .long 3215248443 - .long 3600185398 - .long 1067327526 - .long 2087275384 - .long 3212683597 - .long 347703885 - .long 1064222543 - .long 301495371 - .long 3209907826 - .long 876688468 - .long 3206713553 - .long 3387875073 - .long 1071728476 - .long 3168927931 - .long 3162758597 - .long 0 - .long 1072693248 - .long 2240974125 - .long 3217522619 - .long 3786179077 - .long 1012998644 - .long 0 - .long 1070596096 - .long 2199065489 - .long 1069190303 - .long 1118792048 - .long 3215212318 - .long 875809397 - .long 1067304048 - .long 2927616918 - .long 3212622482 - .long 3494337727 - .long 1064176822 - .long 4219965681 - .long 3209860241 - .long 4249954841 - .long 1060574506 - .long 3701329484 - .long 1071702740 - .long 2857479637 - .long 1015274401 - .long 0 - .long 1072693248 - .long 4257115870 - .long 3217486256 - .long 39728399 - .long 3160493923 - .long 0 - .long 1070596096 - .long 3207767847 - .long 1069174239 - .long 797077063 - .long 3215176618 - .long 287980713 - .long 1067281311 - .long 1596666478 - .long 3212562743 - .long 2775364 - .long 1064132847 - .long 3823518214 - .long 3209814240 - .long 3101392498 - .long 1060290467 - .long 4014783896 - .long 1071677004 - .long 3119156846 - .long 3160517595 - .long 0 - .long 1072693248 - .long 2953879462 - .long 3217449991 - .long 651182982 - .long 3159737324 - .long 0 - .long 1070596096 - .long 2348802841 - .long 1069158611 - .long 4095204310 - .long 3215141329 - .long 3730066556 - .long 1067259298 - .long 2541564470 - .long 3212504327 - .long 1012137407 - .long 1064090541 - .long 3007493349 - .long 3209769752 - .long 304719606 - .long 1058732349 - .long 33271012 - .long 1071651269 - .long 2269574412 - .long 3163337103 - .long 0 - .long 1072693248 - .long 4098310206 - .long 3217413820 - .long 678867490 - .long 1013738598 - .long 0 - .long 1070596096 - .long 4033975882 - .long 1069143413 - .long 1577500332 - .long 3215106440 - .long 2904242360 - .long 1067237995 - .long 383406633 - .long 3212447185 - .long 511745182 - .long 1064049810 - .long 3472404602 - .long 3209726723 - .long 3493824410 - .long 1061932631 - .long 693450846 - .long 1071606394 - .long 3218699017 - .long 1014370223 - .long 0 - .long 1072693248 - .long 701484222 - .long 3217377742 - .long 1189134796 - .long 1013549080 - .long 0 - .long 1070596096 - .long 478132658 - .long 1069128642 - .long 2223654597 - .long 3215071936 - .long 706118045 - .long 1067217386 - .long 1066336370 - .long 3212391267 - .long 3310393795 - .long 1064010705 - .long 1920669086 - .long 3209678984 - .long 1209448644 - .long 3206743753 - .long 1320359670 - .long 1071554922 - .long 1908355032 - .long 3162144129 - .long 0 - .long 1072693248 - .long 3079104278 - .long 3217341752 - .long 2593237472 - .long 3159688198 - .long 0 - .long 1070596096 - .long 1749059456 - .long 1069114291 - .long 3316773722 - .long 3215037805 - .long 2555119580 - .long 1067197455 - .long 59306268 - .long 3212336527 - .long 1944001738 - .long 1063973040 - .long 3607966944 - .long 3209598336 - .long 1548002341 - .long 1061515569 - .long 1947268493 - .long 1071503450 - .long 1185916272 - .long 3160806757 - .long 0 - .long 1072693248 - .long 192708373 - .long 3217305850 - .long 1013564964 - .long 3160609117 - .long 0 - .long 1070596096 - .long 1393443609 - .long 1069100357 - .long 3282624502 - .long 3215004035 - .long 3423023493 - .long 1067178189 - .long 3539283610 - .long 3212282918 - .long 1358653293 - .long 1063936902 - .long 1383848795 - .long 3209520160 - .long 1170879540 - .long 3207439782 - .long 2574177316 - .long 1071451978 - .long 2889755040 - .long 1011982448 - .long 0 - .long 1072693248 - .long 2595342993 - .long 3217270031 - .long 1222182906 - .long 3159411259 - .long 0 - .long 1070596096 - .long 2192927435 - .long 1069086835 - .long 1645422722 - .long 3214970614 - .long 648269084 - .long 1067159575 - .long 2319737250 - .long 3212230398 - .long 1121494038 - .long 1063902126 - .long 897314833 - .long 3209444434 - .long 2659165416 - .long 1060259181 - .long 3201086139 - .long 1071400506 - .long 4185319304 - .long 1014225642 - .long 0 - .long 1072693248 - .long 3772940467 - .long 3217234294 - .long 3998164722 - .long 1013347606 - .long 0 - .long 1070596096 - .long 3265990537 - .long 1069073721 - .long 3279971426 - .long 3214937529 - .long 2447085124 - .long 1067141598 - .long 1649985592 - .long 3212178923 - .long 3334399491 - .long 1063868754 - .long 454991634 - .long 3209370985 - .long 1938913543 - .long 3204215126 - .long 3827994963 - .long 1071349034 - .long 941734744 - .long 3162288710 - .long 0 - .long 1072693248 - .long 1615317960 - .long 3217198637 - .long 1400808192 - .long 1007479474 - .long 0 - .long 1070596096 - .long 55251407 - .long 1069061012 - .long 2380564598 - .long 3214875524 - .long 2078095393 - .long 1067124247 - .long 3759475360 - .long 3212128451 - .long 800747756 - .long 1063836662 - .long 3361780736 - .long 3209299766 - .long 3643416391 - .long 1062249457 - .long 159936490 - .long 1071297563 - .long 3547642993 - .long 3161095918 - .long 0 - .long 1072693248 - .long 2707383656 - .long 3217163056 - .long 554608178 - .long 3160521551 - .long 0 - .long 1070596096 - .long 1495139838 - .long 1069048702 - .long 183291521 - .long 3214810633 - .long 3540584774 - .long 1067107509 - .long 3317896890 - .long 3212078943 - .long 3844035447 - .long 1063805952 - .long 3695033041 - .long 3209230570 - .long 3731872264 - .long 3207727795 - .long 786845313 - .long 1071246091 - .long 627570489 - .long 1010932411 - .long 0 - .long 1072693248 - .long 850612498 - .long 3217127550 - .long 3957837480 - .long 1012739461 - .long 0 - .long 1070596096 - .long 4230382869 - .long 1069036788 - .long 2678394493 - .long 3214746346 - .long 42048419 - .long 1067091374 - .long 61549345 - .long 3212030360 - .long 3326100968 - .long 1063776440 - .long 377176410 - .long 3209163411 - .long 1539171840 - .long 3206122484 - .long 1413754136 - .long 1071194619 - .long 856972295 - .long 1014081062 - .long 0 - .long 1072693248 - .long 2829232582 - .long 3217092115 - .long 1037840994 - .long 1012412582 - .long 0 - .long 1070596096 - .long 1194701220 - .long 1069025268 - .long 1485063562 - .long 3214682643 - .long 3996610205 - .long 1067075828 - .long 2865183303 - .long 3211982662 - .long 2185691626 - .long 1063748117 - .long 435906073 - .long 3209098183 - .long 1583986254 - .long 1061922957 - .long 2040662960 - .long 1071143147 - .long 4270081753 - .long 3162433290 - .long 0 - .long 1072693248 - .long 2636871548 - .long 3217056750 - .long 3635907996 - .long 3159234439 - .long 0 - .long 1070596096 - .long 3074865967 - .long 1069014136 - .long 2827594877 - .long 3214619501 - .long 4018616278 - .long 1067060863 - .long 3744630852 - .long 3211935814 - .long 967547233 - .long 1063721046 - .long 1523268333 - .long 3209034706 - .long 370739821 - .long 1057912410 - .long 2667571783 - .long 1071091675 - .long 1614402419 - .long 3161385080 - .long 0 - .long 1072693248 - .long 1600848691 - .long 3217011737 - .long 3799011534 - .long 3158825865 - .long 0 - .long 1070596096 - .long 3940625627 - .long 1069003390 - .long 1694054617 - .long 3214556900 - .long 3525212904 - .long 1067046468 - .long 3400170401 - .long 3211889780 - .long 2025409789 - .long 1063695095 - .long 1861695371 - .long 3208972985 - .long 2099431114 - .long 1058280175 - .long 3294480606 - .long 1071040203 - .long 1489607747 - .long 3149321755 - .long 0 - .long 1072693248 - .long 163325898 - .long 3216941271 - .long 272531312 - .long 3158872717 - .long 0 - .long 1070596096 - .long 2709640876 - .long 1068993027 - .long 3241569416 - .long 3214494818 - .long 3499770285 - .long 1067032633 - .long 2428916378 - .long 3211844525 - .long 796870242 - .long 1063670282 - .long 2401385551 - .long 3208912885 - .long 417337253 - .long 3207953615 - .long 3921389429 - .long 1070988731 - .long 3647185164 - .long 1013899970 - .long 0 - .long 1072693248 - .long 2357811071 - .long 3216870929 - .long 1815527340 - .long 3157476592 - .long 0 - .long 1070596096 - .long 3138003653 - .long 1068983043 - .long 1253835798 - .long 3214433236 - .long 2444914170 - .long 1067019349 - .long 1113961907 - .long 3211800015 - .long 1725681990 - .long 1063646503 - .long 2521427548 - .long 3208854407 - .long 2469316955 - .long 1061668474 - .long 253330956 - .long 1070937260 - .long 991505830 - .long 1014948912 - .long 0 - .long 1072693248 - .long 1152452440 - .long 3216800708 - .long 2988871182 - .long 1011946816 - .long 0 - .long 1070596096 - .long 926263936 - .long 1068973436 - .long 3845070713 - .long 3214372132 - .long 626397172 - .long 1067006607 - .long 2777085683 - .long 3211724145 - .long 2172777456 - .long 1063623822 - .long 3188732906 - .long 3208797386 - .long 250185439 - .long 1062033866 - .long 880239780 - .long 1070885788 - .long 4135548218 - .long 3161565440 - .long 0 - .long 1072693248 - .long 2555242223 - .long 3216730602 - .long 1132402578 - .long 1012350135 - .long 0 - .long 1070596096 - .long 890626350 - .long 1068964202 - .long 3331100648 - .long 3214311488 - .long 30508518 - .long 1066994398 - .long 397665884 - .long 3211637908 - .long 1048931291 - .long 1063602233 - .long 4152525626 - .long 3208741715 - .long 51864355 - .long 3208005790 - .long 1507148603 - .long 1070834316 - .long 1086374101 - .long 3158421905 - .long 0 - .long 1072693248 - .long 4132779814 - .long 3216660607 - .long 3895880616 - .long 1012226511 - .long 0 - .long 1070596096 - .long 4069764223 - .long 1068955338 - .long 1936654463 - .long 3214251284 - .long 27137259 - .long 1066982714 - .long 112447739 - .long 3211552967 - .long 3681308921 - .long 1063581561 - .long 3611917249 - .long 3208687484 - .long 2182292750 - .long 1061868473 - .long 2134057426 - .long 1070782844 - .long 1285458442 - .long 1013610809 - .long 0 - .long 1072693248 - .long 3593905368 - .long 3216590719 - .long 2989246530 - .long 1011901384 - .long 0 - .long 1070596096 - .long 3421947019 - .long 1068946843 - .long 3144465174 - .long 3214191500 - .long 1618007405 - .long 1066971547 - .long 584787122 - .long 3211469261 - .long 1465845707 - .long 1063561956 - .long 939979903 - .long 3208626315 - .long 1695262346 - .long 3204506663 - .long 2760966249 - .long 1070731372 - .long 1958126117 - .long 1014804331 - .long 0 - .long 1072693248 - .long 3078460826 - .long 3216520933 - .long 4285081068 - .long 3159473614 - .long 0 - .long 1070596096 - .long 997373752 - .long 1068938714 - .long 3045840714 - .long 3214132118 - .long 3110377520 - .long 1066960890 - .long 2323415564 - .long 3211386730 - .long 18309569 - .long 1063543250 - .long 551124926 - .long 3208522770 - .long 249182975 - .long 1061811122 - .long 3387875073 - .long 1070679900 - .long 3168927931 - .long 3161710021 - .long 0 - .long 1072693248 - .long 561239310 - .long 3216451245 - .long 210497392 - .long 3156201161 - .long 0 - .long 1070596096 - .long 3636030687 - .long 1068930947 - .long 3167463735 - .long 3214073119 - .long 73152643 - .long 1066950737 - .long 3108019154 - .long 3211305316 - .long 2100498319 - .long 1063525559 - .long 282708930 - .long 3208421353 - .long 2551775895 - .long 3207605450 - .long 4014783896 - .long 1070628428 - .long 3119156846 - .long 3159469019 - .long 0 - .long 1072693248 - .long 2730856872 - .long 3216381649 - .long 4254293712 - .long 1009711154 - .long 0 - .long 1070596096 - .long 1486032260 - .long 1068923542 - .long 1824674436 - .long 3214014485 - .long 2488677748 - .long 1066941079 - .long 1925770461 - .long 3211224962 - .long 2531500940 - .long 1063508710 - .long 3007508061 - .long 3208322267 - .long 994458799 - .long 1061806090 - .long 693450846 - .long 1070557818 - .long 3218699017 - .long 1013321647 - .long 0 - .long 1072693248 - .long 3508967486 - .long 3216312142 - .long 3021155724 - .long 1011969550 - .long 0 - .long 1070596096 - .long 2356881417 - .long 1068916495 - .long 2655870529 - .long 3213956197 - .long 352865498 - .long 1066931912 - .long 3008575053 - .long 3211145611 - .long 2622088932 - .long 1063492845 - .long 3834913422 - .long 3208225014 - .long 1497815285 - .long 3207511002 - .long 1947268493 - .long 1070454874 - .long 1185916272 - .long 3159758181 - .long 0 - .long 1072693248 - .long 1224261120 - .long 3216242720 - .long 3122470664 - .long 3159031070 - .long 0 - .long 1070596096 - .long 1648557593 - .long 1068909805 - .long 1683250226 - .long 3213898238 - .long 2306165388 - .long 1066923228 - .long 2600821843 - .long 3211067209 - .long 3406795398 - .long 1063477798 - .long 3582359304 - .long 3208129845 - .long 3199024961 - .long 1061038571 - .long 3201086139 - .long 1070351930 - .long 4185319304 - .long 1013177066 - .long 0 - .long 1072693248 - .long 2901633254 - .long 3216173377 - .long 2788221280 - .long 1009319756 - .long 0 - .long 1070596096 - .long 3820542338 - .long 1068903469 - .long 288942435 - .long 3213795740 - .long 1237884341 - .long 1066915023 - .long 1606294444 - .long 3210989702 - .long 223992189 - .long 1063463656 - .long 1499707213 - .long 3208036378 - .long 3416758850 - .long 1060053511 - .long 159936490 - .long 1070248987 - .long 3547642993 - .long 3160047342 - .long 0 - .long 1072693248 - .long 2781619933 - .long 3216104110 - .long 3145354644 - .long 1011963772 - .long 0 - .long 1070596096 - .long 911495412 - .long 1068897487 - .long 290976546 - .long 3213681030 - .long 33241894 - .long 1066907291 - .long 977031819 - .long 3210913037 - .long 119357659 - .long 1063450345 - .long 1846248446 - .long 3207944648 - .long 4276662282 - .long 1061269448 - .long 1413754136 - .long 1070146043 - .long 856972295 - .long 1013032486 - .long 0 - .long 1072693248 - .long 3789571175 - .long 3216034914 - .long 2061677164 - .long 3158802525 - .long 0 - .long 1070596096 - .long 2598855658 - .long 1068891855 - .long 628750565 - .long 3213566872 - .long 2954249465 - .long 1066900026 - .long 1468236324 - .long 3210837162 - .long 3701994667 - .long 1063437912 - .long 310421843 - .long 3207854373 - .long 393637210 - .long 3207421006 - .long 2667571783 - .long 1070043099 - .long 1614402419 - .long 3160336504 - .long 0 - .long 1072693248 - .long 700360492 - .long 3215948980 - .long 4067889956 - .long 3158309941 - .long 0 - .long 1070596096 - .long 1834243786 - .long 1068886573 - .long 92010622 - .long 3213453232 - .long 2733460853 - .long 1066893225 - .long 3349627764 - .long 3210762026 - .long 2326014508 - .long 1063426279 - .long 2491557920 - .long 3207765637 - .long 2159546056 - .long 3208108974 - .long 3921389429 - .long 1069940155 - .long 3647185164 - .long 1012851394 - .long 0 - .long 1072693248 - .long 4008519973 - .long 3215810847 - .long 1156806192 - .long 3157002565 - .long 0 - .long 1070596096 - .long 608713188 - .long 1068881639 - .long 3200221055 - .long 3213340075 - .long 2024185290 - .long 1066886883 - .long 3737414605 - .long 3210635448 - .long 4102026093 - .long 1063415403 - .long 3274310324 - .long 3207678452 - .long 4280744879 - .long 1061910091 - .long 880239780 - .long 1069837212 - .long 4135548218 - .long 3160516864 - .long 0 - .long 1072693248 - .long 2381996637 - .long 3215672832 - .long 639270832 - .long 1008532593 - .long 0 - .long 1070596096 - .long 1358563144 - .long 1068877051 - .long 2925458633 - .long 3213227369 - .long 492833071 - .long 1066880996 - .long 4104628456 - .long 3210487835 - .long 3054991409 - .long 1063405423 - .long 2594255061 - .long 3207590366 - .long 2100320188 - .long 3208479772 - .long 2134057426 - .long 1069734268 - .long 1285458442 - .long 1012562233 - .long 0 - .long 1072693248 - .long 2319612510 - .long 3215534925 - .long 1111071278 - .long 3158888695 - .long 0 - .long 1070596096 - .long 2666415304 - .long 1068872808 - .long 2071510147 - .long 3213115080 - .long 3395467108 - .long 1066875559 - .long 2423946868 - .long 3210341405 - .long 80612299 - .long 1063396131 - .long 2656867111 - .long 3207420929 - .long 3004001956 - .long 1061836610 - .long 3387875073 - .long 1069631324 - .long 3168927931 - .long 3160661445 - .long 0 - .long 1072693248 - .long 1865079417 - .long 3215397118 - .long 2937833612 - .long 1011350737 - .long 0 - .long 1070596096 - .long 3552516355 - .long 1068868909 - .long 294617109 - .long 3213003175 - .long 76221622 - .long 1066870571 - .long 3376425735 - .long 3210196061 - .long 2723275475 - .long 1063387705 - .long 3315521969 - .long 3207252871 - .long 3590370444 - .long 3207679867 - .long 693450846 - .long 1069509242 - .long 3218699017 - .long 1012273071 - .long 0 - .long 1072693248 - .long 3481201957 - .long 3215259402 - .long 1636311970 - .long 3157709699 - .long 0 - .long 1070596096 - .long 3471360849 - .long 1068865353 - .long 2600335524 - .long 3212891620 - .long 2613792462 - .long 1066866026 - .long 3847698423 - .long 3210051709 - .long 663967578 - .long 1063380003 - .long 493409710 - .long 3207087119 - .long 1127477260 - .long 3207199264 - .long 3201086139 - .long 1069303354 - .long 4185319304 - .long 1012128490 - .long 0 - .long 1072693248 - .long 1154356116 - .long 3215121770 - .long 1840040117 - .long 3159097207 - .long 0 - .long 1070596096 - .long 2308597781 - .long 1068862139 - .long 4143524575 - .long 3212723904 - .long 2850915343 - .long 1066861923 - .long 1191668407 - .long 3209908256 - .long 2952843839 - .long 1063373033 - .long 3172237721 - .long 3206923432 - .long 2684115468 - .long 1061237060 - .long 1413754136 - .long 1069097467 - .long 856972295 - .long 1011983910 - .long 0 - .long 1072693248 - .long 1858778712 - .long 3214984212 - .long 552307712 - .long 1007653492 - .long 0 - .long 1070596096 - .long 378217452 - .long 1068859266 - .long 2507068679 - .long 3212502004 - .long 2446302718 - .long 1066858259 - .long 1361087111 - .long 3209765608 - .long 761263112 - .long 1063366881 - .long 2488333367 - .long 3206760542 - .long 3134826447 - .long 3208438003 - .long 3921389429 - .long 1068891579 - .long 3647185164 - .long 1011802818 - .long 0 - .long 1072693248 - .long 3847531748 - .long 3214759425 - .long 2484055616 - .long 1005679197 - .long 0 - .long 1070596096 - .long 2714982805 - .long 1068856732 - .long 2649074978 - .long 3212280611 - .long 4275478210 - .long 1066855031 - .long 2325700054 - .long 3209556212 - .long 3568629394 - .long 1063361434 - .long 1419097007 - .long 3206599479 - .long 3667282369 - .long 3208404843 - .long 2134057426 - .long 1068685692 - .long 1285458442 - .long 1011513657 - .long 0 - .long 1072693248 - .long 4111272116 - .long 3214484558 - .long 3215369808 - .long 3153450047 - .long 0 - .long 1070596096 - .long 1892298670 - .long 1068854538 - .long 4017792039 - .long 3212059661 - .long 3825916209 - .long 1066852238 - .long 1674419437 - .long 3209273590 - .long 2761556401 - .long 1063356717 - .long 4123887123 - .long 3206334117 - .long 39803485 - .long 3207166447 - .long 693450846 - .long 1068460666 - .long 3218699017 - .long 1011224495 - .long 0 - .long 1072693248 - .long 1769817487 - .long 3214209791 - .long 226900428 - .long 3157084142 - .long 0 - .long 1070596096 - .long 3790025843 - .long 1068852682 - .long 2975452701 - .long 3211839091 - .long 2074002222 - .long 1066849878 - .long 2835406423 - .long 3208992033 - .long 2160688582 - .long 1063352737 - .long 438342636 - .long 3206016666 - .long 598064701 - .long 3205441692 - .long 1413754136 - .long 1068048891 - .long 856972295 - .long 1010935334 - .long 0 - .long 1072693248 - .long 2796861084 - .long 3213935106 - .long 4160910146 - .long 1008936729 - .long 0 - .long 1070596096 - .long 1822957307 - .long 1068851165 - .long 2426092900 - .long 3211449386 - .long 1181651297 - .long 1066847949 - .long 11113416 - .long 3208711363 - .long 2350522541 - .long 1063349490 - .long 1110749705 - .long 3205700769 - .long 1529834450 - .long 3204806002 - .long 2134057426 - .long 1067637116 - .long 1285458442 - .long 1010465081 - .long 0 - .long 1072693248 - .long 766684177 - .long 3213435536 - .long 4183922317 - .long 3156428395 - .long 0 - .long 1070596096 - .long 2709169804 - .long 1068849985 - .long 2562652885 - .long 3211009382 - .long 194304310 - .long 1066846450 - .long 285423324 - .long 3208220240 - .long 4164698302 - .long 1063346958 - .long 490316583 - .long 3205276877 - .long 1161999017 - .long 1059948714 - .long 1413754136 - .long 1067000315 - .long 856972295 - .long 1009886758 - .long 0 - .long 1072693248 - .long 1373484687 - .long 3212886398 - .long 3463806808 - .long 3156987378 - .long 0 - .long 1070596096 - .long 699034059 - .long 1068849143 - .long 4196075177 - .long 3210399801 - .long 3624794075 - .long 1066845379 - .long 1212360239 - .long 3207661374 - .long 4225594870 - .long 1063345136 - .long 4142831282 - .long 3204654696 - .long 3419780486 - .long 1061860029 - .long 1413754136 - .long 1065951739 - .long 856972295 - .long 1008838182 - .long 0 - .long 1072693248 - .long 1048210722 - .long 3211837789 - .long 322286546 - .long 3154320084 - .long 0 - .long 1070596096 - .long 3344097458 - .long 1068848637 - .long 4078525744 - .long 3209350973 - .long 4268457311 - .long 1066844737 - .long 1752199129 - .long 3206612445 - .long 2933973771 - .long 1063344076 - .long 1552329397 - .long 3203604713 - .long 4286470131 - .long 1060555865 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1070596096 - .long 1431655765 - .long 1068848469 - .long 0 - .long 0 - .long 381986942 - .long 1066844524 - .long 0 - .long 0 - .long 3364860459 - .long 1063343704 - .long 0 - .long 0 - .long 3669941704 - .long 1061551801 - .long 1413754136 - .long 3213435387 - .long 856972295 - .long 3156321830 - .long 0 - .long 1072693248 - .long 1048210722 - .long 1064354141 - .long 310222654 - .long 1006836436 - .long 0 - .long 1070596096 - .long 3344097458 - .long 1068848637 - .long 4078525744 - .long 1061867325 - .long 4268457311 - .long 1066844737 - .long 1752199185 - .long 1059128797 - .long 2933974085 - .long 1063344076 - .long 1541627965 - .long 1056121065 - .long 4213857106 - .long 1060555865 - .long 1413754136 - .long 3214483963 - .long 856972295 - .long 3157370406 - .long 0 - .long 1072693248 - .long 1373484687 - .long 1065402750 - .long 3463778643 - .long 1009503730 - .long 0 - .long 1070596096 - .long 699034059 - .long 1068849143 - .long 4196075177 - .long 1062916153 - .long 3624794075 - .long 1066845379 - .long 1212360238 - .long 1060177726 - .long 4225594899 - .long 1063345136 - .long 4143059094 - .long 1057171048 - .long 3416473992 - .long 1061860029 - .long 2134057426 - .long 3215120764 - .long 1285458442 - .long 3157948729 - .long 0 - .long 1072693248 - .long 766684177 - .long 1065951888 - .long 4184103028 - .long 1008944747 - .long 0 - .long 1070596096 - .long 2709169804 - .long 1068849985 - .long 2562652885 - .long 1063525734 - .long 194304310 - .long 1066846450 - .long 285423316 - .long 1060736592 - .long 4164698149 - .long 1063346958 - .long 492080240 - .long 1057793229 - .long 1233082996 - .long 1059948714 - .long 1413754136 - .long 3215532539 - .long 856972295 - .long 3158418982 - .long 0 - .long 1072693248 - .long 2796861084 - .long 1066451458 - .long 4163800696 - .long 3156420377 - .long 0 - .long 1070596096 - .long 1822957307 - .long 1068851165 - .long 2426092900 - .long 1063965738 - .long 1181651297 - .long 1066847949 - .long 11113467 - .long 1061227715 - .long 2350524377 - .long 1063349490 - .long 1099629520 - .long 1058217121 - .long 647421766 - .long 3204806003 - .long 693450846 - .long 3215944314 - .long 3218699017 - .long 3158708143 - .long 0 - .long 1072693248 - .long 1769817487 - .long 1066726143 - .long 226750770 - .long 1009600494 - .long 0 - .long 1070596096 - .long 3790025843 - .long 1068852682 - .long 2975452701 - .long 1064355443 - .long 2074002222 - .long 1066849878 - .long 2835406424 - .long 1061508385 - .long 2160688720 - .long 1063352737 - .long 438143169 - .long 1058533018 - .long 848462310 - .long 3205441692 - .long 2134057426 - .long 3216169340 - .long 1285458442 - .long 3158997305 - .long 0 - .long 1072693248 - .long 4111272116 - .long 1067000910 - .long 3213429568 - .long 1005966399 - .long 0 - .long 1070596096 - .long 1892298670 - .long 1068854538 - .long 4017792039 - .long 1064576013 - .long 3825916209 - .long 1066852238 - .long 1674419438 - .long 1061789942 - .long 2761556545 - .long 1063356717 - .long 4123711083 - .long 1058850469 - .long 104595699 - .long 3207166447 - .long 3921389429 - .long 3216375227 - .long 3647185164 - .long 3159286466 - .long 0 - .long 1072693248 - .long 3847531748 - .long 1067275777 - .long 2487971824 - .long 3153162845 - .long 0 - .long 1070596096 - .long 2714982805 - .long 1068856732 - .long 2649074978 - .long 1064796963 - .long 4275478210 - .long 1066855031 - .long 2325700056 - .long 1062072564 - .long 3568629551 - .long 1063361434 - .long 1418922081 - .long 1059115831 - .long 3702148884 - .long 3208404843 - .long 1413754136 - .long 3216581115 - .long 856972295 - .long 3159467558 - .long 0 - .long 1072693248 - .long 1858778712 - .long 1067500564 - .long 554450480 - .long 3155137140 - .long 0 - .long 1070596096 - .long 378217452 - .long 1068859266 - .long 2507068679 - .long 1065018356 - .long 2446302718 - .long 1066858259 - .long 1361087112 - .long 1062281960 - .long 761263211 - .long 1063366881 - .long 2488165471 - .long 1059276894 - .long 3156241770 - .long 3208438003 - .long 3201086139 - .long 3216787002 - .long 4185319304 - .long 3159612138 - .long 0 - .long 1072693248 - .long 1154356116 - .long 1067638122 - .long 1840130764 - .long 1011613559 - .long 0 - .long 1070596096 - .long 2308597781 - .long 1068862139 - .long 4143524575 - .long 1065240256 - .long 2850915343 - .long 1066861923 - .long 1191668406 - .long 1062424608 - .long 2952843813 - .long 1063373033 - .long 3172428186 - .long 1059439784 - .long 2686776959 - .long 1061237060 - .long 693450846 - .long 3216992890 - .long 3218699017 - .long 3159756719 - .long 0 - .long 1072693248 - .long 3481201957 - .long 1067775754 - .long 1635996196 - .long 1010226051 - .long 0 - .long 1070596096 - .long 3471360849 - .long 1068865353 - .long 2600335524 - .long 1065407972 - .long 2613792462 - .long 1066866026 - .long 3847698425 - .long 1062568061 - .long 663967590 - .long 1063380003 - .long 493016801 - .long 1059603471 - .long 1131084659 - .long 3207199264 - .long 3387875073 - .long 3217114972 - .long 3168927931 - .long 1013177797 - .long 0 - .long 1072693248 - .long 1865079417 - .long 1067913470 - .long 2938003329 - .long 3158834385 - .long 0 - .long 1070596096 - .long 3552516355 - .long 1068868909 - .long 294617109 - .long 1065519527 - .long 76221622 - .long 1066870571 - .long 3376425737 - .long 1062712413 - .long 2723275461 - .long 1063387705 - .long 3315136619 - .long 1059769223 - .long 3585984604 - .long 3207679867 - .long 2134057426 - .long 3217217916 - .long 1285458442 - .long 3160045881 - .long 0 - .long 1072693248 - .long 2319612510 - .long 1068051277 - .long 1111303258 - .long 1011405047 - .long 0 - .long 1070596096 - .long 2666415304 - .long 1068872808 - .long 2071510147 - .long 1065631432 - .long 3395467108 - .long 1066875559 - .long 2423946865 - .long 1062857757 - .long 80612341 - .long 1063396131 - .long 2657457026 - .long 1059937281 - .long 2998464421 - .long 1061836610 - .long 880239780 - .long 3217320860 - .long 4135548218 - .long 1013033216 - .long 0 - .long 1072693248 - .long 2381996637 - .long 1068189184 - .long 639224640 - .long 3156016241 - .long 0 - .long 1070596096 - .long 1358563144 - .long 1068877051 - .long 2925458633 - .long 1065743721 - .long 492833071 - .long 1066880996 - .long 4104628456 - .long 1063004187 - .long 3054991518 - .long 1063405423 - .long 2594252722 - .long 1060106718 - .long 2125241622 - .long 3208479772 - .long 3921389429 - .long 3217423803 - .long 3647185164 - .long 3160335042 - .long 0 - .long 1072693248 - .long 4008519973 - .long 1068327199 - .long 1156786808 - .long 1009518917 - .long 0 - .long 1070596096 - .long 608713188 - .long 1068881639 - .long 3200221055 - .long 1065856427 - .long 2024185290 - .long 1066886883 - .long 3737414605 - .long 1063151800 - .long 4102026005 - .long 1063415403 - .long 3274311301 - .long 1060194804 - .long 4290805031 - .long 1061910091 - .long 2667571783 - .long 3217526747 - .long 1614402419 - .long 1012852856 - .long 0 - .long 1072693248 - .long 700360492 - .long 1068465332 - .long 4067897658 - .long 1010826293 - .long 0 - .long 1070596096 - .long 1834243786 - .long 1068886573 - .long 92010622 - .long 1065969584 - .long 2733460853 - .long 1066893225 - .long 3349627764 - .long 1063278378 - .long 2326014613 - .long 1063426279 - .long 2491557128 - .long 1060281989 - .long 2183550903 - .long 3208108974 - .long 1413754136 - .long 3217629691 - .long 856972295 - .long 3160516134 - .long 0 - .long 1072693248 - .long 3789571175 - .long 1068551266 - .long 2061680020 - .long 1011318877 - .long 0 - .long 1070596096 - .long 2598855658 - .long 1068891855 - .long 628750565 - .long 1066083224 - .long 2954249465 - .long 1066900026 - .long 1468236324 - .long 1063353514 - .long 3701994745 - .long 1063437912 - .long 310421258 - .long 1060370725 - .long 429301190 - .long 3207421006 - .long 159936490 - .long 3217732635 - .long 3547642993 - .long 1012563694 - .long 0 - .long 1072693248 - .long 2781619933 - .long 1068620462 - .long 3145355490 - .long 3159447420 - .long 0 - .long 1070596096 - .long 911495412 - .long 1068897487 - .long 290976546 - .long 1066197382 - .long 33241894 - .long 1066907291 - .long 977031819 - .long 1063429389 - .long 119357612 - .long 1063450345 - .long 1846248792 - .long 1060461000 - .long 4282034711 - .long 1061269448 - .long 3201086139 - .long 3217835578 - .long 4185319304 - .long 3160660714 - .long 0 - .long 1072693248 - .long 2901633254 - .long 1068689729 - .long 2788220944 - .long 3156803404 - .long 0 - .long 1070596096 - .long 3820542338 - .long 1068903469 - .long 288942435 - .long 1066312092 - .long 1237884341 - .long 1066915023 - .long 1606294444 - .long 1063506054 - .long 223992191 - .long 1063463656 - .long 1499707196 - .long 1060552730 - .long 3415844307 - .long 1060053511 - .long 1947268493 - .long 3217938522 - .long 1185916272 - .long 1012274533 - .long 0 - .long 1072693248 - .long 1224261120 - .long 1068759072 - .long 3122469562 - .long 1011547422 - .long 0 - .long 1070596096 - .long 1648557593 - .long 1068909805 - .long 1683250226 - .long 1066414590 - .long 2306165388 - .long 1066923228 - .long 2600821843 - .long 1063583561 - .long 3406795366 - .long 1063477798 - .long 3582359528 - .long 1060646197 - .long 3206340638 - .long 1061038571 - .long 693450846 - .long 3218041466 - .long 3218699017 - .long 3160805295 - .long 0 - .long 1072693248 - .long 3508967486 - .long 1068828494 - .long 3021154406 - .long 3159453198 - .long 0 - .long 1070596096 - .long 2356881417 - .long 1068916495 - .long 2655870529 - .long 1066472549 - .long 352865498 - .long 1066931912 - .long 3008575053 - .long 1063661963 - .long 2622089007 - .long 1063492845 - .long 3834912888 - .long 1060741366 - .long 1532107502 - .long 3207511002 - .long 4014783896 - .long 3218112076 - .long 3119156846 - .long 1011985371 - .long 0 - .long 1072693248 - .long 2730856872 - .long 1068898001 - .long 4254304408 - .long 3157194802 - .long 0 - .long 1070596096 - .long 1486032260 - .long 1068923542 - .long 1824674436 - .long 1066530837 - .long 2488677748 - .long 1066941079 - .long 1925770461 - .long 1063741314 - .long 2531500863 - .long 1063508710 - .long 3007508602 - .long 1060838619 - .long 1003260451 - .long 1061806090 - .long 3387875073 - .long 3218163548 - .long 3168927931 - .long 1014226373 - .long 0 - .long 1072693248 - .long 561239310 - .long 1068967597 - .long 210518352 - .long 1008717513 - .long 0 - .long 1070596096 - .long 3636030687 - .long 1068930947 - .long 3167463735 - .long 1066589471 - .long 73152643 - .long 1066950737 - .long 3108019154 - .long 1063821668 - .long 2100498394 - .long 1063525559 - .long 282708402 - .long 1060937705 - .long 2568921764 - .long 3207605450 - .long 2760966249 - .long 3218215020 - .long 1958126117 - .long 3162287979 - .long 0 - .long 1072693248 - .long 3078460826 - .long 1069037285 - .long 4285079825 - .long 1011989966 - .long 0 - .long 1070596096 - .long 997373752 - .long 1068938714 - .long 3045840714 - .long 1066648470 - .long 3110377520 - .long 1066960890 - .long 2323415564 - .long 1063903082 - .long 18309497 - .long 1063543250 - .long 551125427 - .long 1061039122 - .long 257413032 - .long 1061811122 - .long 2134057426 - .long 3218266492 - .long 1285458442 - .long 3161094457 - .long 0 - .long 1072693248 - .long 3593905368 - .long 1069107071 - .long 2989245764 - .long 3159385032 - .long 0 - .long 1070596096 - .long 3421947019 - .long 1068946843 - .long 3144465174 - .long 1066707852 - .long 1618007405 - .long 1066971547 - .long 584787122 - .long 1063985613 - .long 1465845750 - .long 1063561956 - .long 939979596 - .long 1061142667 - .long 1773905530 - .long 3204506663 - .long 1507148603 - .long 3218317964 - .long 1086374101 - .long 1010938257 - .long 0 - .long 1072693248 - .long 4132779814 - .long 1069176959 - .long 3895881848 - .long 3159710159 - .long 0 - .long 1070596096 - .long 4069764223 - .long 1068955338 - .long 1936654463 - .long 1066767636 - .long 27137259 - .long 1066982714 - .long 112447739 - .long 1064069319 - .long 3681308850 - .long 1063581561 - .long 3611917496 - .long 1061203836 - .long 2190408434 - .long 1061868473 - .long 880239780 - .long 3218369436 - .long 4135548218 - .long 1014081792 - .long 0 - .long 1072693248 - .long 2555242223 - .long 1069246954 - .long 1132401098 - .long 3159833783 - .long 0 - .long 1070596096 - .long 890626350 - .long 1068964202 - .long 3331100648 - .long 1066827840 - .long 30508518 - .long 1066994398 - .long 397665884 - .long 1064154260 - .long 1048931375 - .long 1063602233 - .long 4152525330 - .long 1061258067 - .long 71067649 - .long 3208005790 - .long 253330956 - .long 3218420908 - .long 991505830 - .long 3162432560 - .long 0 - .long 1072693248 - .long 1152452440 - .long 1069317060 - .long 2988872515 - .long 3159430464 - .long 0 - .long 1070596096 - .long 926263936 - .long 1068973436 - .long 3845070713 - .long 1066888484 - .long 626397172 - .long 1067006607 - .long 2777085683 - .long 1064240497 - .long 2172777379 - .long 1063623822 - .long 3188733172 - .long 1061313738 - .long 258986845 - .long 1062033866 - .long 3921389429 - .long 3218472379 - .long 3647185164 - .long 3161383618 - .long 0 - .long 1072693248 - .long 2357811071 - .long 1069387281 - .long 1815523692 - .long 1009992944 - .long 0 - .long 1070596096 - .long 3138003653 - .long 1068983043 - .long 1253835798 - .long 1066949588 - .long 2444914170 - .long 1067019349 - .long 1113961907 - .long 1064316367 - .long 1725681937 - .long 1063646503 - .long 2521427730 - .long 1061370759 - .long 2475375033 - .long 1061668474 - .long 3294480606 - .long 3218523851 - .long 1489607747 - .long 1001838107 - .long 0 - .long 1072693248 - .long 163325898 - .long 1069457623 - .long 272534188 - .long 1011389069 - .long 0 - .long 1070596096 - .long 2709640876 - .long 1068993027 - .long 3241569416 - .long 1067011170 - .long 3499770285 - .long 1067032633 - .long 2428916378 - .long 1064360877 - .long 796870323 - .long 1063670282 - .long 2401385265 - .long 1061429237 - .long 435854613 - .long 3207953615 - .long 2667571783 - .long 3218575323 - .long 1614402419 - .long 1013901432 - .long 0 - .long 1072693248 - .long 1600848691 - .long 1069528089 - .long 3799012648 - .long 1011342217 - .long 0 - .long 1070596096 - .long 3940625627 - .long 1069003390 - .long 1694054617 - .long 1067073252 - .long 3525212904 - .long 1067046468 - .long 3400170401 - .long 1064406132 - .long 2025409820 - .long 1063695095 - .long 1861695260 - .long 1061489337 - .long 2071083481 - .long 1058280175 - .long 2040662960 - .long 3218626795 - .long 4270081753 - .long 1014949642 - .long 0 - .long 1072693248 - .long 2636871548 - .long 1069573102 - .long 3635909220 - .long 1011750791 - .long 0 - .long 1070596096 - .long 3074865967 - .long 1069014136 - .long 2827594877 - .long 1067135853 - .long 4018616278 - .long 1067060863 - .long 3744630852 - .long 1064452166 - .long 967547267 - .long 1063721046 - .long 1523268212 - .long 1061551058 - .long 308558327 - .long 1057912410 - .long 1413754136 - .long 3218678267 - .long 856972295 - .long 3161564710 - .long 0 - .long 1072693248 - .long 2829232582 - .long 1069608467 - .long 1037842028 - .long 3159896230 - .long 0 - .long 1070596096 - .long 1194701220 - .long 1069025268 - .long 1485063562 - .long 1067198995 - .long 3996610205 - .long 1067075828 - .long 2865183303 - .long 1064499014 - .long 2185691567 - .long 1063748117 - .long 435906278 - .long 1061614535 - .long 1590730193 - .long 1061922957 - .long 786845313 - .long 3218729739 - .long 627570489 - .long 3158416059 - .long 0 - .long 1072693248 - .long 850612498 - .long 1069643902 - .long 3957836518 - .long 3160223109 - .long 0 - .long 1070596096 - .long 4230382869 - .long 1069036788 - .long 2678394493 - .long 1067262698 - .long 42048419 - .long 1067091374 - .long 61549345 - .long 1064546712 - .long 3326101021 - .long 1063776440 - .long 377176219 - .long 1061679763 - .long 1587637306 - .long 3206122484 - .long 159936490 - .long 3218781211 - .long 3547642993 - .long 1013612270 - .long 0 - .long 1072693248 - .long 2707383656 - .long 1069679408 - .long 554608849 - .long 1013037903 - .long 0 - .long 1070596096 - .long 1495139838 - .long 1069048702 - .long 183291521 - .long 1067326985 - .long 3540584774 - .long 1067107509 - .long 3317896890 - .long 1064595295 - .long 3844035522 - .long 1063805952 - .long 3695032775 - .long 1061746922 - .long 3749017783 - .long 3207727795 - .long 3827994963 - .long 3218832682 - .long 941734744 - .long 1014805062 - .long 0 - .long 1072693248 - .long 1615317960 - .long 1069714989 - .long 1400849280 - .long 3154963122 - .long 0 - .long 1070596096 - .long 55251407 - .long 1069061012 - .long 2380564598 - .long 1067391876 - .long 2078095393 - .long 1067124247 - .long 3759475360 - .long 1064644803 - .long 800747683 - .long 1063836662 - .long 3361780990 - .long 1061816118 - .long 3647588455 - .long 1062249457 - .long 3201086139 - .long 3218884154 - .long 4185319304 - .long 3161709290 - .long 0 - .long 1072693248 - .long 3772940467 - .long 1069750646 - .long 3998164292 - .long 3160831254 - .long 0 - .long 1070596096 - .long 3265990537 - .long 1069073721 - .long 3279971426 - .long 1067453881 - .long 2447085124 - .long 1067141598 - .long 1649985592 - .long 1064695275 - .long 3334399538 - .long 1063868754 - .long 454991464 - .long 1061887337 - .long 2110827584 - .long 3204215126 - .long 2574177316 - .long 3218935626 - .long 2889755040 - .long 3159466096 - .long 0 - .long 1072693248 - .long 2595342993 - .long 1069786383 - .long 1222183174 - .long 1011927611 - .long 0 - .long 1070596096 - .long 2192927435 - .long 1069086835 - .long 1645422722 - .long 1067486966 - .long 648269084 - .long 1067159575 - .long 2319737250 - .long 1064746750 - .long 1121494052 - .long 1063902126 - .long 897314780 - .long 1061960786 - .long 2655964904 - .long 1060259181 - .long 1947268493 - .long 3218987098 - .long 1185916272 - .long 1013323109 - .long 0 - .long 1072693248 - .long 192708373 - .long 1069822202 - .long 1013565611 - .long 1013125469 - .long 0 - .long 1070596096 - .long 1393443609 - .long 1069100357 - .long 3282624502 - .long 1067520387 - .long 3423023493 - .long 1067178189 - .long 3539283610 - .long 1064799270 - .long 1358653364 - .long 1063936902 - .long 1383848540 - .long 1062036512 - .long 1203341716 - .long 3207439782 - .long 1320359670 - .long 3219038570 - .long 1908355032 - .long 1014660481 - .long 0 - .long 1072693248 - .long 3079104278 - .long 1069858104 - .long 2593237048 - .long 1012204550 - .long 0 - .long 1070596096 - .long 1749059456 - .long 1069114291 - .long 3316773722 - .long 1067554157 - .long 2555119580 - .long 1067197455 - .long 59306268 - .long 1064852879 - .long 1944001714 - .long 1063973040 - .long 3607967027 - .long 1062114688 - .long 1550745665 - .long 1061515569 - .long 693450846 - .long 3219090042 - .long 3218699017 - .long 3161853871 - .long 0 - .long 1072693248 - .long 701484222 - .long 1069894094 - .long 1189134214 - .long 3161032728 - .long 0 - .long 1070596096 - .long 478132658 - .long 1069128642 - .long 2223654597 - .long 1067588288 - .long 706118045 - .long 1067217386 - .long 1066336370 - .long 1064907619 - .long 3310393859 - .long 1064010705 - .long 1920668857 - .long 1062195336 - .long 1238710124 - .long 3206743753 - .long 33271012 - .long 3219134917 - .long 2269574412 - .long 1015853455 - .long 0 - .long 1072693248 - .long 4098310206 - .long 1069930172 - .long 678867859 - .long 3161222246 - .long 0 - .long 1070596096 - .long 4033975882 - .long 1069143413 - .long 1577500332 - .long 1067622792 - .long 2904242360 - .long 1067237995 - .long 383406633 - .long 1064963537 - .long 511745140 - .long 1064049810 - .long 3472404675 - .long 1062243075 - .long 3498625096 - .long 1061932631 - .long 4014783896 - .long 3219160652 - .long 3119156846 - .long 1013033947 - .long 0 - .long 1072693248 - .long 2953879462 - .long 1069966343 - .long 651183718 - .long 1012253676 - .long 0 - .long 1070596096 - .long 2348802841 - .long 1069158611 - .long 4095204310 - .long 1067657681 - .long 3730066556 - .long 1067259298 - .long 2541564470 - .long 1065020679 - .long 1012137447 - .long 1064090541 - .long 3007493277 - .long 1062286104 - .long 268143184 - .long 1058732349 - .long 3701329484 - .long 3219186388 - .long 2857479637 - .long 3162758049 - .long 0 - .long 1072693248 - .long 4257115870 - .long 1070002608 - .long 39728604 - .long 1013010275 - .long 0 - .long 1070596096 - .long 3207767847 - .long 1069174239 - .long 797077063 - .long 1067692970 - .long 287980713 - .long 1067281311 - .long 1596666478 - .long 1065079095 - .long 2775385 - .long 1064132847 - .long 3823518174 - .long 1062330592 - .long 3096591665 - .long 1060290467 - .long 3387875073 - .long 3219212124 - .long 3168927931 - .long 1015274949 - .long 0 - .long 1072693248 - .long 2240974125 - .long 1070038971 - .long 3786178918 - .long 3160482292 - .long 0 - .long 1070596096 - .long 2199065489 - .long 1069190303 - .long 1118792048 - .long 1067728670 - .long 875809397 - .long 1067304048 - .long 2927616918 - .long 1065138834 - .long 3494337743 - .long 1064176822 - .long 4219965650 - .long 1062376593 - .long 4246297104 - .long 1060574506 - .long 3074420661 - .long 3219237860 - .long 1873363667 - .long 3160515403 - .long 0 - .long 1072693248 - .long 4156511795 - .long 1070075433 - .long 1791783009 - .long 1013446896 - .long 0 - .long 1070596096 - .long 4204226438 - .long 1069206807 - .long 2895376501 - .long 1067764795 - .long 3600185398 - .long 1067327526 - .long 2087275384 - .long 1065199949 - .long 347703954 - .long 1064222543 - .long 301495246 - .long 1062424178 - .long 908235914 - .long 3206713553 - .long 2760966249 - .long 3219263596 - .long 1958126117 - .long 3163336555 - .long 0 - .long 1072693248 - .long 212483252 - .long 1070111999 - .long 3496985219 - .long 3161099600 - .long 0 - .long 1070596096 - .long 1939348811 - .long 1069223758 - .long 1001569645 - .long 1067801360 - .long 764537997 - .long 1067351764 - .long 2326690580 - .long 1065262493 - .long 60750552 - .long 1064270005 - .long 2745665091 - .long 1062473435 - .long 1583079917 - .long 1060807371 - .long 2447511838 - .long 3219289332 - .long 3841595606 - .long 1014371319 - .long 0 - .long 1072693248 - .long 2234510834 - .long 1070148669 - .long 1077829152 - .long 1008793063 - .long 0 - .long 1070596096 - .long 1741599179 - .long 1069241160 - .long 288887764 - .long 1067838378 - .long 438316229 - .long 1067376778 - .long 2074161178 - .long 1065326522 - .long 2132352506 - .long 1064311981 - .long 321000208 - .long 1062524429 - .long 2575912902 - .long 1061549566 - .long 2134057426 - .long 3219315068 - .long 1285458442 - .long 3162143033 - .long 0 - .long 1072693248 - .long 719981842 - .long 1070185448 - .long 3396798827 - .long 3160592662 - .long 0 - .long 1070596096 - .long 2111724540 - .long 1069259019 - .long 2754706540 - .long 1067875863 - .long 790037588 - .long 1067402587 - .long 4097286835 - .long 1065372654 - .long 2918356845 - .long 1064337614 - .long 980543769 - .long 1062577230 - .long 1876925371 - .long 3204685716 - .long 1820603015 - .long 3219340804 - .long 3236194699 - .long 1015708874 - .long 0 - .long 1072693248 - .long 3497432648 - .long 1070222337 - .long 3403980908 - .long 1011735702 - .long 0 - .long 1070596096 - .long 2322009458 - .long 1069277341 - .long 3303184211 - .long 1067913831 - .long 3079386980 - .long 1067429210 - .long 3158396776 - .long 1065406241 - .long 500122450 - .long 1064364204 - .long 3226667103 - .long 1062631956 - .long 1843492548 - .long 1062167069 - .long 1507148603 - .long 3219366540 - .long 1086374101 - .long 1011986833 - .long 0 - .long 1072693248 - .long 1371601499 - .long 1070259341 - .long 3050542448 - .long 1012183888 - .long 0 - .long 1070596096 - .long 2434996648 - .long 1069296132 - .long 2688049294 - .long 1067952297 - .long 1586964757 - .long 1067453518 - .long 2102156419 - .long 1065440660 - .long 2974407256 - .long 1064391847 - .long 249545820 - .long 1062688662 - .long 115553579 - .long 1061128535 - .long 1193694191 - .long 3219392276 - .long 1890859349 - .long 3162902630 - .long 0 - .long 1072693248 - .long 2488075121 - .long 1070296461 - .long 1856289345 - .long 3161251229 - .long 0 - .long 1070596096 - .long 3322930631 - .long 1069315398 - .long 3277607933 - .long 1067991276 - .long 130253043 - .long 1067467675 - .long 1057196725 - .long 1065475943 - .long 3278604818 - .long 1064420531 - .long 4197429763 - .long 1062747460 - .long 1630708049 - .long 1062399550 - .long 880239780 - .long 3219418012 - .long 4135548218 - .long 1015130368 - .long 0 - .long 1072693248 - .long 2273547475 - .long 1070333701 - .long 4162052844 - .long 1011378450 - .long 0 - .long 1070596096 - .long 2392983423 - .long 1069335146 - .long 526970473 - .long 1068030785 - .long 628322840 - .long 1067482270 - .long 924033682 - .long 1065512123 - .long 854746912 - .long 1064450346 - .long 4004963071 - .long 1062808438 - .long 1468070334 - .long 1060747995 - .long 566785368 - .long 3219443748 - .long 2301849815 - .long 3161093726 - .long 0 - .long 1072693248 - .long 620845047 - .long 1070371064 - .long 314567191 - .long 1013284227 - .long 0 - .long 1070596096 - .long 2198158867 - .long 1069355382 - .long 222370857 - .long 1068070839 - .long 4028822361 - .long 1067497314 - .long 3610397327 - .long 1065549234 - .long 171354847 - .long 1064481283 - .long 693369877 - .long 1062871714 - .long 164532117 - .long 1061632559 - .long 253330956 - .long 3219469484 - .long 991505830 - .long 3163481136 - .long 0 - .long 1072693248 - .long 1894214069 - .long 1070408552 - .long 2182661802 - .long 1012022503 - .long 0 - .long 1070596096 - .long 1869133310 - .long 1069376113 - .long 1368144043 - .long 1068111455 - .long 242783364 - .long 1067512821 - .long 3692616565 - .long 1065587313 - .long 2890683560 - .long 1064513419 - .long 2407947124 - .long 1062937380 - .long 3803218812 - .long 1060561671 - .long 4234843841 - .long 3219495219 - .long 1479868884 - .long 1014082158 - .long 0 - .long 1072693248 - .long 2049842017 - .long 1070446169 - .long 2491067638 - .long 3161241370 - .long 0 - .long 1070596096 - .long 1431833764 - .long 1069397346 - .long 551048935 - .long 1068152651 - .long 2575917112 - .long 1067528800 - .long 1559777140 - .long 1065626397 - .long 743322322 - .long 1064546764 - .long 1974991899 - .long 1063005565 - .long 3459002328 - .long 1062460308 - .long 3921389429 - .long 3219520955 - .long 3647185164 - .long 3162432194 - .long 0 - .long 1072693248 - .long 1526324265 - .long 1070483918 - .long 4056333712 - .long 3157795638 - .long 0 - .long 1070596096 - .long 1830915900 - .long 1069419088 - .long 602185706 - .long 1068194444 - .long 555210277 - .long 1067545266 - .long 3690136761 - .long 1065666523 - .long 4115917104 - .long 1064581405 - .long 589230666 - .long 1063076369 - .long 3448584873 - .long 1062382364 - .long 3607935018 - .long 3219546691 - .long 4202814986 - .long 1015564293 - .long 0 - .long 1072693248 - .long 955408364 - .long 1070521802 - .long 2659929592 - .long 3160779467 - .long 0 - .long 1070596096 - .long 659174847 - .long 1069441347 - .long 2081794994 - .long 1068236852 - .long 2956616392 - .long 1067562230 - .long 1461867065 - .long 1065707733 - .long 879427925 - .long 1064617384 - .long 209598570 - .long 1063149928 - .long 59348277 - .long 1061529630 - .long 3294480606 - .long 3219572427 - .long 1489607747 - .long 1002886683 - .long 0 - .long 1072693248 - .long 1167858038 - .long 1070559824 - .long 2180017056 - .long 1010873776 - .long 0 - .long 1070596096 - .long 772792549 - .long 1069464130 - .long 3356872770 - .long 1068279894 - .long 3524844777 - .long 1067579707 - .long 1521756467 - .long 1065750067 - .long 3931969752 - .long 1064654734 - .long 2908114566 - .long 1063226363 - .long 3520733649 - .long 1061374592 - .long 2981026194 - .long 3219598163 - .long 924239062 - .long 3163047211 - .long 0 - .long 1072693248 - .long 3747221382 - .long 1070597041 - .long 1912303979 - .long 1014066411 - .long 0 - .long 1070596096 - .long 1727686788 - .long 1069487445 - .long 681802874 - .long 1068323590 - .long 2531789465 - .long 1067597711 - .long 331202638 - .long 1065793569 - .long 2627596742 - .long 1064693515 - .long 566979200 - .long 1063280948 - .long 2423252998 - .long 1061741710 - .long 2667571783 - .long 3219623899 - .long 1614402419 - .long 1014950008 - .long 0 - .long 1072693248 - .long 4148643959 - .long 1070616195 - .long 2887822437 - .long 1014214935 - .long 0 - .long 1070596096 - .long 4101770849 - .long 1069511300 - .long 1167052501 - .long 1068367958 - .long 2569727718 - .long 1067616256 - .long 1681502493 - .long 1065838283 - .long 3685967929 - .long 1064733780 - .long 2973319878 - .long 1063322263 - .long 474740638 - .long 1062549181 - .long 2354117371 - .long 3219649635 - .long 3512651629 - .long 3161564344 - .long 0 - .long 1072693248 - .long 373017919 - .long 1070635424 - .long 3647199022 - .long 1014660881 - .long 0 - .long 1070596096 - .long 933359764 - .long 1069535705 - .long 1391441088 - .long 1068413019 - .long 53106651 - .long 1067635358 - .long 4157835043 - .long 1065884256 - .long 4055868043 - .long 1064775611 - .long 1529330433 - .long 1063365236 - .long 326078913 - .long 1062325273 - .long 2040662960 - .long 3219675371 - .long 4270081753 - .long 1015998218 - .long 0 - .long 1072693248 - .long 4002124759 - .long 1070654727 - .long 3453343154 - .long 1013423881 - .long 0 - .long 1071644672 - .long 774562305 - .long 3217018021 - .long 377617675 - .long 1068458794 - .long 2495478050 - .long 1067655031 - .long 1508050213 - .long 1065931538 - .long 1921336565 - .long 1064819067 - .long 975923615 - .long 1063409946 - .long 2275792800 - .long 1060505011 - .long 1727208548 - .long 3219701107 - .long 2531251621 - .long 1013613001 - .long 0 - .long 1072693248 - .long 963359913 - .long 1070674109 - .long 2464811476 - .long 3160767877 - .long 0 - .long 1071644672 - .long 1498613974 - .long 3216992493 - .long 4138103782 - .long 1068502123 - .long 2840947366 - .long 1067675293 - .long 209537977 - .long 1065980178 - .long 3590357525 - .long 1064864171 - .long 73959555 - .long 1063456484 - .long 1512178095 - .long 1062390487 - .long 1413754136 - .long 3219726843 - .long 856972295 - .long 3162613286 - .long 0 - .long 0 - .long 0 - .long 3220176896 - .long 1994327296 - .long 1006932657 - .long 0 - .long 1073741824 - .long 0 - .long 0 - .long 266 - .long 3221225472 - .long 1431655956 - .long 1074091349 - .long 2828070733 - .long 3221924522 - .long 268536947 - .long 1074860305 - .long 4220652043 - .long 3222647048 - .long 3597047153 - .long 1075552901 - .long 1100299725 - .long 3219752579 - .long 874467977 - .long 1015419713 - .long 0 - .long 0 - .long 2668510354 - .long 3220126045 - .long 1701998120 - .long 1012206572 - .long 0 - .long 1073741824 - .long 1404962112 - .long 3215492924 - .long 3327263454 - .long 3221125605 - .long 1987673213 - .long 1074008829 - .long 231222583 - .long 3221793459 - .long 1756671652 - .long 1074731884 - .long 3921518330 - .long 3222500748 - .long 2691193109 - .long 1075341426 - .long 786845313 - .long 3219778315 - .long 627570489 - .long 3159464635 - .long 0 - .long 0 - .long 2949191430 - .long 3220076398 - .long 3989126963 - .long 3163096676 - .long 0 - .long 1073741824 - .long 2909112164 - .long 3216503445 - .long 3682557528 - .long 3221031585 - .long 4184421718 - .long 1073932454 - .long 380803270 - .long 3221673930 - .long 3399744364 - .long 1074553823 - .long 3842864962 - .long 3222371390 - .long 748075446 - .long 1075157395 - .long 473390901 - .long 3219804051 - .long 4252586071 - .long 3163191791 - .long 0 - .long 0 - .long 2308259791 - .long 3220027898 - .long 4111771200 - .long 3156765800 - .long 0 - .long 1073741824 - .long 411343470 - .long 3217132228 - .long 3760686807 - .long 3220942979 - .long 4171367426 - .long 1073861688 - .long 1878500541 - .long 3221564765 - .long 108767834 - .long 1074393698 - .long 2824899565 - .long 3222239549 - .long 3321236009 - .long 1074997439 - .long 159936490 - .long 3219829787 - .long 3547642993 - .long 1014660846 - .long 0 - .long 0 - .long 3342355758 - .long 3219980491 - .long 1666924640 - .long 3162031356 - .long 0 - .long 1073741824 - .long 2271288998 - .long 3217480250 - .long 4111284847 - .long 3220859392 - .long 2796272966 - .long 1073796048 - .long 1730314448 - .long 3221464928 - .long 1813001552 - .long 1074249474 - .long 603251437 - .long 3222036157 - .long 3079042443 - .long 1074856525 - .long 4141449374 - .long 3219855522 - .long 1579411055 - .long 3161853506 - .long 0 - .long 0 - .long 166164867 - .long 3219934128 - .long 2304492376 - .long 1012090550 - .long 0 - .long 1073741824 - .long 2798667120 - .long 3217812323 - .long 4203596829 - .long 3220780463 - .long 1473339147 - .long 1073728374 - .long 4243021652 - .long 3221373498 - .long 1638747017 - .long 1074119375 - .long 1512673116 - .long 3221855335 - .long 2338684822 - .long 1074678259 - .long 3827994963 - .long 3219881258 - .long 941734744 - .long 1015853638 - .long 0 - .long 0 - .long 3247184626 - .long 3219888759 - .long 1245319390 - .long 3161909785 - .long 0 - .long 1073741824 - .long 2381906911 - .long 3218104536 - .long 1010924947 - .long 3220705862 - .long 2481381005 - .long 1073615072 - .long 1356661294 - .long 3221289659 - .long 1527070583 - .long 1074001844 - .long 3061693405 - .long 3221694303 - .long 1993154673 - .long 1074463435 - .long 3514540551 - .long 3219906994 - .long 2102765473 - .long 1013034678 - .long 0 - .long 0 - .long 4189730214 - .long 3219844341 - .long 872357632 - .long 3158652168 - .long 0 - .long 1073741824 - .long 760634709 - .long 3218255915 - .long 2067827628 - .long 3220635284 - .long 1386756408 - .long 1073509659 - .long 404552634 - .long 3221199890 - .long 1143062644 - .long 1073895515 - .long 555342338 - .long 3221550657 - .long 3470199450 - .long 1074271418 - .long 3201086139 - .long 3219932730 - .long 4185319304 - .long 3162757866 - .long 0 - .long 0 - .long 719595600 - .long 3219800832 - .long 114970824 - .long 1014660100 - .long 0 - .long 1073741824 - .long 3811788216 - .long 3218400550 - .long 1264738948 - .long 3220568452 - .long 1958933439 - .long 1073411493 - .long 4246310163 - .long 3221058356 - .long 1367842247 - .long 1073799186 - .long 4112596176 - .long 3221422310 - .long 2100954469 - .long 1074105254 - .long 2887631728 - .long 3219958466 - .long 1841088264 - .long 1015275132 - .long 0 - .long 0 - .long 258163604 - .long 3219758190 - .long 3299889334 - .long 3162612005 - .long 0 - .long 1073741824 - .long 2865277319 - .long 3218538798 - .long 3110066496 - .long 3220505109 - .long 723074889 - .long 1073319994 - .long 1618819009 - .long 3220928086 - .long 1176243935 - .long 1073681775 - .long 1223849000 - .long 3221307454 - .long 2369288310 - .long 1073957581 - .long 2574177316 - .long 3219984202 - .long 2889755040 - .long 3160514672 - .long 0 - .long 0 - .long 2079874795 - .long 3219716377 - .long 1885564844 - .long 1014470429 - .long 0 - .long 1073741824 - .long 1656469901 - .long 3218670989 - .long 823761676 - .long 3220445021 - .long 2491445454 - .long 1073234634 - .long 1584341555 - .long 3220808039 - .long 1976688438 - .long 1073523018 - .long 3918313362 - .long 3221183550 - .long 3178717701 - .long 1073829019 - .long 2260722904 - .long 3220009938 - .long 3285965784 - .long 3163336372 - .long 0 - .long 0 - .long 997287281 - .long 3219675358 - .long 3612251184 - .long 3163317056 - .long 0 - .long 1073741824 - .long 3037674984 - .long 3218797431 - .long 2624215131 - .long 3220387969 - .long 464779768 - .long 1073154936 - .long 3700763630 - .long 3220697284 - .long 1200926910 - .long 1073378628 - .long 2934576448 - .long 3220998744 - .long 3287041894 - .long 1073681673 - .long 1947268493 - .long 3220035674 - .long 1185916272 - .long 1014371685 - .long 0 - .long 0 - .long 3978924239 - .long 3219635097 - .long 680771999 - .long 1015720881 - .long 0 - .long 1073741824 - .long 3528982175 - .long 3218918413 - .long 3018376188 - .long 3220333754 - .long 2093086652 - .long 1073080463 - .long 451029217 - .long 3220594987 - .long 1097121537 - .long 1073247142 - .long 2277789243 - .long 3220832617 - .long 149138386 - .long 1073478822 - .long 1633814081 - .long 3220061410 - .long 3941137777 - .long 3162142667 - .long 0 - .long 0 - .long 3860971117 - .long 3219595563 - .long 2891614774 - .long 3163214156 - .long 0 - .long 1073741824 - .long 80822128 - .long 3219034205 - .long 2077635078 - .long 3220282191 - .long 1552870456 - .long 1073010820 - .long 3607700650 - .long 3220500394 - .long 249538439 - .long 1073127265 - .long 2233833083 - .long 3220683068 - .long 2436456793 - .long 1073293556 - .long 1320359670 - .long 3220087146 - .long 1908355032 - .long 1015709057 - .long 0 - .long 0 - .long 343219638 - .long 3219556725 - .long 2238262736 - .long 3161731808 - .long 0 - .long 1072693248 - .long 3768132253 - .long 1071627934 - .long 3895546569 - .long 3220233108 - .long 1613056473 - .long 1072945645 - .long 3409294908 - .long 3220412831 - .long 3138966349 - .long 1073017844 - .long 3799067288 - .long 3220548255 - .long 359470498 - .long 1073133087 - .long 1006905258 - .long 3220112882 - .long 3348558652 - .long 1011988294 - .long 0 - .long 0 - .long 3841229102 - .long 3219518551 - .long 1782820117 - .long 3163516640 - .long 0 - .long 1072693248 - .long 866896685 - .long 1071521786 - .long 2743435231 - .long 3220186348 - .long 3017984361 - .long 1072884608 - .long 1491919678 - .long 3220331688 - .long 1507535811 - .long 1072917857 - .long 1966124974 - .long 3220426562 - .long 381628641 - .long 1072992589 - .long 693450846 - .long 3220138618 - .long 3218699017 - .long 3162902447 - .long 0 - .long 0 - .long 716700048 - .long 3219481016 - .long 1043841701 - .long 3163006458 - .long 0 - .long 1072693248 - .long 1097907398 - .long 1071420120 - .long 3912524876 - .long 3220106631 - .long 4107784306 - .long 1072827408 - .long 937056065 - .long 3220256414 - .long 4128945134 - .long 1072826390 - .long 1032262394 - .long 3220316565 - .long 1825923585 - .long 1072864423 - .long 379996435 - .long 3220164354 - .long 2807708551 - .long 1015130551 - .long 0 - .long 0 - .long 142288477 - .long 3219444091 - .long 1256348500 - .long 1014532780 - .long 0 - .long 1072693248 - .long 925074332 - .long 1071322730 - .long 2134728327 - .long 3220021541 - .long 1886408555 - .long 1072773770 - .long 101893267 - .long 3220186512 - .long 2020085224 - .long 1072742631 - .long 2955803861 - .long 3220217010 - .long 343310816 - .long 1072748161 - .long 33271012 - .long 3220183493 - .long 2269574412 - .long 1016902031 - .long 0 - .long 0 - .long 3684492763 - .long 3219407750 - .long 2905890526 - .long 1015709561 - .long 0 - .long 1072693248 - .long 585640690 - .long 1071229422 - .long 1068301595 - .long 3219940277 - .long 2953900489 - .long 1072723440 - .long 950237889 - .long 3220066167 - .long 109735425 - .long 1072638455 - .long 792610979 - .long 3220076689 - .long 2904190292 - .long 1072594405 - .long 4171511102 - .long 3220196360 - .long 987810900 - .long 1016106563 - .long 0 - .long 0 - .long 681498355 - .long 3219371971 - .long 3542625299 - .long 1015827699 - .long 0 - .long 1072693248 - .long 168222332 - .long 1071140014 - .long 776736583 - .long 3219862604 - .long 2405401100 - .long 1072659128 - .long 430546584 - .long 3219945234 - .long 2974083786 - .long 1072497552 - .long 849442068 - .long 3219912970 - .long 2727451532 - .long 1072409680 - .long 4014783896 - .long 3220209228 - .long 3119156846 - .long 1014082523 - .long 0 - .long 0 - .long 2298773501 - .long 3219336728 - .long 4027807132 - .long 1015090440 - .long 0 - .long 1072693248 - .long 312748411 - .long 1071054335 - .long 2723913091 - .long 3219788303 - .long 3207063211 - .long 1072570353 - .long 1845780128 - .long 3219832588 - .long 752659336 - .long 1072368142 - .long 1097207453 - .long 3219764237 - .long 407427403 - .long 1072246732 - .long 3858056690 - .long 3220222096 - .long 2007897202 - .long 3162431829 - .long 0 - .long 0 - .long 2591355529 - .long 3219302000 - .long 2351326818 - .long 3161908153 - .long 0 - .long 1072693248 - .long 3206845590 - .long 1070972224 - .long 4023349050 - .long 3219717171 - .long 3838822434 - .long 1072486918 - .long 3122427157 - .long 3219727557 - .long 2261703627 - .long 1072249178 - .long 1764870100 - .long 3219628955 - .long 3201802997 - .long 1072093301 - .long 3701329484 - .long 3220234964 - .long 2857479637 - .long 3163806625 - .long 0 - .long 0 - .long 4010047525 - .long 3219267765 - .long 3339891512 - .long 3160072694 - .long 0 - .long 1072693248 - .long 966450668 - .long 1070893532 - .long 803989702 - .long 3219649019 - .long 1934453966 - .long 1072408465 - .long 1455077850 - .long 3219629530 - .long 2709264343 - .long 1072139721 - .long 1918064558 - .long 3219505762 - .long 1476733535 - .long 1071960574 - .long 3544602278 - .long 3220247832 - .long 4139243149 - .long 3164602093 - .long 0 - .long 0 - .long 4270735453 - .long 3219234003 - .long 3565361953 - .long 1015342529 - .long 0 - .long 1072693248 - .long 2915760230 - .long 1070818115 - .long 638580392 - .long 3219583668 - .long 2252948193 - .long 1072334663 - .long 1194731830 - .long 3219537949 - .long 1353002942 - .long 1072038927 - .long 422364789 - .long 3219393446 - .long 3669634446 - .long 1071842023 - .long 3387875073 - .long 3220260700 - .long 3168927931 - .long 1016323525 - .long 0 - .long 0 - .long 419968236 - .long 3219200695 - .long 131828542 - .long 1015961466 - .long 0 - .long 1072693248 - .long 2960267235 - .long 1070745841 - .long 1037049094 - .long 3219520953 - .long 1447436626 - .long 1072265209 - .long 3197232138 - .long 3219452306 - .long 4004685084 - .long 1071946034 - .long 1412816421 - .long 3219290928 - .long 3184738590 - .long 1071740610 - .long 3231147867 - .long 3220273568 - .long 3253690381 - .long 1014950373 - .long 0 - .long 0 - .long 1505561933 - .long 3219167820 - .long 2813885200 - .long 1011162516 - .long 0 - .long 1072693248 - .long 2997217365 - .long 1070676584 - .long 2681788575 - .long 3219460719 - .long 3989126937 - .long 1072199822 - .long 1049115510 - .long 3219372139 - .long 511642058 - .long 1071860360 - .long 4034728051 - .long 3219197246 - .long 1788863965 - .long 1071639550 - .long 3074420661 - .long 3220286436 - .long 1873363667 - .long 3161563979 - .long 0 - .long 0 - .long 2606398711 - .long 3219135361 - .long 2533072598 - .long 3162554073 - .long 0 - .long 1072693248 - .long 2151361100 - .long 1070610226 - .long 1532348096 - .long 3219402822 - .long 408604530 - .long 1072138246 - .long 1039538740 - .long 3219297023 - .long 1234598850 - .long 1071781284 - .long 692507578 - .long 3219094767 - .long 4090315877 - .long 1071451983 - .long 2917693455 - .long 3220299304 - .long 676362605 - .long 3163589663 - .long 0 - .long 0 - .long 3649427950 - .long 3219078282 - .long 4113825640 - .long 3158662193 - .long 0 - .long 1072693248 - .long 2424145432 - .long 1070497215 - .long 2715404890 - .long 3219347125 - .long 2238283673 - .long 1072080240 - .long 1186867211 - .long 3219226571 - .long 660318792 - .long 1071708248 - .long 2091427915 - .long 3218937780 - .long 2591062635 - .long 1071291190 - .long 2760966249 - .long 3220312172 - .long 1958126117 - .long 3164385131 - .long 0 - .long 0 - .long 220675706 - .long 3219014926 - .long 3158451653 - .long 3161723787 - .long 0 - .long 1072693248 - .long 1565030890 - .long 1070375439 - .long 335263687 - .long 3219293502 - .long 419816567 - .long 1072025586 - .long 2098048102 - .long 3219160428 - .long 257229335 - .long 1071636821 - .long 3464457189 - .long 3218793840 - .long 2745923191 - .long 1071158056 - .long 2604239044 - .long 3220325040 - .long 1055077667 - .long 1016540488 - .long 0 - .long 0 - .long 2191706112 - .long 3218952300 - .long 333441366 - .long 3161331348 - .long 0 - .long 1072693248 - .long 3435408456 - .long 1070258830 - .long 487319719 - .long 3219241832 - .long 1713711059 - .long 1071974079 - .long 130753286 - .long 3219068219 - .long 909725130 - .long 1071511974 - .long 2762442367 - .long 3218661715 - .long 932670499 - .long 1071027067 - .long 2447511838 - .long 3220337908 - .long 3841595606 - .long 1015419895 - .long 0 - .long 0 - .long 408840118 - .long 3218890375 - .long 4048072104 - .long 3159354273 - .long 0 - .long 1072693248 - .long 2794370512 - .long 1070147203 - .long 1550993351 - .long 3219192003 - .long 1305093678 - .long 1071925532 - .long 1748211158 - .long 3218951271 - .long 3244212114 - .long 1071396455 - .long 2145666003 - .long 3218540299 - .long 1098451822 - .long 1070891096 - .long 2290784632 - .long 3220350776 - .long 2660353234 - .long 3159463173 - .long 0 - .long 0 - .long 3368427099 - .long 3218829119 - .long 2187864186 - .long 1013587140 - .long 0 - .long 1072693248 - .long 1708021028 - .long 1070040382 - .long 459972195 - .long 3219143910 - .long 3210514347 - .long 1071879770 - .long 955408873 - .long 3218841145 - .long 1911386085 - .long 1071289511 - .long 3563284038 - .long 3218428599 - .long 547420745 - .long 1070790031 - .long 2134057426 - .long 3220363644 - .long 1285458442 - .long 3163191609 - .long 0 - .long 0 - .long 2583490354 - .long 3218768505 - .long 27148750 - .long 3161491985 - .long 0 - .long 1072693248 - .long 2550940470 - .long 1069938201 - .long 2616040293 - .long 3219066585 - .long 2529278955 - .long 1071836633 - .long 2244405849 - .long 3218737335 - .long 2064814127 - .long 1071190460 - .long 1527853251 - .long 3218325722 - .long 354247476 - .long 1070708112 - .long 1977330220 - .long 3220376512 - .long 4071976381 - .long 3164168168 - .long 0 - .long 0 - .long 2390846448 - .long 3218708504 - .long 3510503948 - .long 3161709355 - .long 0 - .long 1072693248 - .long 1208409702 - .long 1069840505 - .long 1006199412 - .long 3218976755 - .long 2504246873 - .long 1071795971 - .long 1040653613 - .long 3218639377 - .long 1713268217 - .long 1071098686 - .long 462276301 - .long 3218230862 - .long 4239163357 - .long 1070603989 - .long 1820603015 - .long 3220389380 - .long 3236194699 - .long 1016757450 - .long 0 - .long 0 - .long 2528366626 - .long 3218649089 - .long 3808712102 - .long 1013396510 - .long 0 - .long 1072693248 - .long 1938261590 - .long 1069747146 - .long 4282399603 - .long 3218889831 - .long 1922568281 - .long 1071757646 - .long 2428166646 - .long 3218546841 - .long 717464824 - .long 1071013623 - .long 2205664075 - .long 3218143293 - .long 1526076492 - .long 1070438229 - .long 1663875809 - .long 3220402248 - .long 3908862373 - .long 1015853820 - .long 0 - .long 0 - .long 2200768388 - .long 3218590234 - .long 302584884 - .long 1014949287 - .long 0 - .long 1072693248 - .long 2338248308 - .long 1069657986 - .long 2617403810 - .long 3218805648 - .long 60078074 - .long 1071721530 - .long 2753634668 - .long 3218459332 - .long 626020946 - .long 1070934758 - .long 25846122 - .long 3218044977 - .long 1123428672 - .long 1070307499 - .long 1507148603 - .long 3220415116 - .long 1086374101 - .long 1013035409 - .long 0 - .long 0 - .long 4158096969 - .long 3218531913 - .long 3224512900 - .long 3160902954 - .long 0 - .long 1072693248 - .long 4240313622 - .long 1069572894 - .long 3745046477 - .long 3218724046 - .long 1955120038 - .long 1071687503 - .long 2661530988 - .long 3218376484 - .long 2615081511 - .long 1070861626 - .long 3172686029 - .long 3217895196 - .long 3468537113 - .long 1070173373 - .long 1350421397 - .long 3220427984 - .long 1218191675 - .long 3162757684 - .long 0 - .long 0 - .long 1606100959 - .long 3218474103 - .long 3385789004 - .long 3161114183 - .long 0 - .long 1072693248 - .long 2255302008 - .long 1069435977 - .long 54085333 - .long 3218644877 - .long 2504974906 - .long 1071655456 - .long 4169947836 - .long 3218297958 - .long 2891827398 - .long 1070793803 - .long 1030744944 - .long 3217756428 - .long 2378245768 - .long 1070036506 - .long 1193694191 - .long 3220440852 - .long 1890859349 - .long 3163951206 - .long 0 - .long 0 - .long 3782220567 - .long 3218416778 - .long 2488119274 - .long 3162237132 - .long 0 - .long 1072693248 - .long 91372748 - .long 1069281344 - .long 318776714 - .long 3218567997 - .long 1791786485 - .long 1071605902 - .long 245863368 - .long 3218223442 - .long 3306699316 - .long 1070730899 - .long 492155895 - .long 3217627699 - .long 504590813 - .long 1069961586 - .long 1036966986 - .long 3220453720 - .long 1122344434 - .long 1016974413 - .long 0 - .long 0 - .long 1412148370 - .long 3218359917 - .long 2689483850 - .long 1013993587 - .long 0 - .long 1072693248 - .long 1375255072 - .long 1069134151 - .long 1493266594 - .long 3218493272 - .long 487968719 - .long 1071549129 - .long 4010395236 - .long 3218152642 - .long 2875570533 - .long 1070672565 - .long 2596803943 - .long 3217508124 - .long 2843491945 - .long 1069843051 - .long 880239780 - .long 3220466588 - .long 4135548218 - .long 1016178944 - .long 0 - .long 0 - .long 895247324 - .long 3218303496 - .long 3064008070 - .long 1013805381 - .long 0 - .long 1072693248 - .long 729983844 - .long 1068994194 - .long 3631919317 - .long 3218420574 - .long 2031343772 - .long 1071495745 - .long 1505593195 - .long 3218085291 - .long 519428997 - .long 1070618477 - .long 3710689661 - .long 3217396902 - .long 3156076115 - .long 1069741343 - .long 723512574 - .long 3220479456 - .long 2825204233 - .long 1014372050 - .long 0 - .long 0 - .long 2664093517 - .long 3218247493 - .long 3574482624 - .long 3157273734 - .long 0 - .long 1072693248 - .long 2465054196 - .long 1068861279 - .long 3495559184 - .long 3218349782 - .long 2180799467 - .long 1071445588 - .long 3760731789 - .long 3217962527 - .long 3108073739 - .long 1070540584 - .long 1955989624 - .long 3217293302 - .long 166797605 - .long 1069654305 - .long 566785368 - .long 3220492324 - .long 2301849815 - .long 3162142302 - .long 0 - .long 0 - .long 1026922473 - .long 3218191888 - .long 4275547180 - .long 3161242805 - .long 0 - .long 1072693248 - .long 865263972 - .long 1068735226 - .long 1189261043 - .long 3218280780 - .long 602895285 - .long 1071398507 - .long 457371263 - .long 3217840141 - .long 1846858242 - .long 1070447677 - .long 3060498116 - .long 3217196657 - .long 4267893365 - .long 1069596604 - .long 410058162 - .long 3220505192 - .long 4004709614 - .long 3163734243 - .long 0 - .long 0 - .long 1197423420 - .long 3218136659 - .long 176395860 - .long 3160912588 - .long 0 - .long 1072693248 - .long 3614211808 - .long 1068615863 - .long 2638984897 - .long 3218213456 - .long 1695604536 - .long 1071354361 - .long 2372043566 - .long 3217723241 - .long 136909605 - .long 1070361652 - .long 3640039447 - .long 3217106358 - .long 4088615056 - .long 1069449448 - .long 253330956 - .long 3220518060 - .long 991505830 - .long 3164529712 - .long 0 - .long 0 - .long 1971725998 - .long 3218081786 - .long 2628057466 - .long 3160778219 - .long 0 - .long 1072693248 - .long 3850616508 - .long 1068503032 - .long 715485429 - .long 3218147706 - .long 2831870887 - .long 1071313021 - .long 276112813 - .long 3217611421 - .long 4071473627 - .long 1070282053 - .long 3678820506 - .long 3217012537 - .long 927889203 - .long 1069392578 - .long 96603751 - .long 3220530928 - .long 2021697954 - .long 1016395907 - .long 0 - .long 0 - .long 4068253482 - .long 3217974755 - .long 3098800802 - .long 3161416360 - .long 0 - .long 1072693248 - .long 3555466384 - .long 1068294223 - .long 3714292293 - .long 3218083427 - .long 58004546 - .long 1071274368 - .long 2889916307 - .long 3217504297 - .long 2725223785 - .long 1070208483 - .long 1960889150 - .long 3216854085 - .long 2172838405 - .long 1069259864 - .long 4234843841 - .long 3220543795 - .long 1479868884 - .long 1015130734 - .long 0 - .long 0 - .long 3947580658 - .long 3217866316 - .long 4153464200 - .long 3160712468 - .long 0 - .long 1072693248 - .long 1306970432 - .long 1068093810 - .long 3320658510 - .long 3217961305 - .long 2638377394 - .long 1071238289 - .long 1218095092 - .long 3217401513 - .long 506153465 - .long 1070140566 - .long 2096772766 - .long 3216705262 - .long 2058303373 - .long 1069148484 - .long 4078116635 - .long 3220556663 - .long 39665264 - .long 3161092265 - .long 0 - .long 0 - .long 4023957346 - .long 3217758473 - .long 2652051644 - .long 3159900932 - .long 0 - .long 1072693248 - .long 1548193280 - .long 1067905620 - .long 2849460080 - .long 3217838064 - .long 586099284 - .long 1071204684 - .long 2426038050 - .long 3217302731 - .long 1209882939 - .long 1070077962 - .long 204929670 - .long 3216565209 - .long 2951398611 - .long 1069077118 - .long 3921389429 - .long 3220569531 - .long 3647185164 - .long 3163480770 - .long 0 - .long 0 - .long 3763679576 - .long 3217651189 - .long 448385104 - .long 3157192355 - .long 0 - .long 1072693248 - .long 64931152 - .long 1067729411 - .long 3593250320 - .long 3217717209 - .long 1127364104 - .long 1071173457 - .long 21320967 - .long 3217207636 - .long 4036384111 - .long 1070020367 - .long 3394693850 - .long 3216433130 - .long 4171153724 - .long 1068939101 - .long 3764662223 - .long 3220582399 - .long 3105356094 - .long 3164312749 - .long 0 - .long 0 - .long 1425758568 - .long 3217544428 - .long 1224254624 - .long 3159340630 - .long 0 - .long 1072693248 - .long 2086713664 - .long 1067564956 - .long 1688303979 - .long 3217598569 - .long 938619730 - .long 1071144522 - .long 526120622 - .long 3217115928 - .long 3819295674 - .long 1069967496 - .long 2059466203 - .long 3216308301 - .long 4034680199 - .long 1068903334 - .long 3607935018 - .long 3220595267 - .long 4202814986 - .long 1016612869 - .long 0 - .long 0 - .long 2429422902 - .long 3217438153 - .long 3297520416 - .long 1012522944 - .long 0 - .long 1072693248 - .long 528565440 - .long 1067373727 - .long 2395999282 - .long 3217481977 - .long 1512953454 - .long 1071117799 - .long 2702142222 - .long 3217023483 - .long 3515899579 - .long 1069919100 - .long 2767905791 - .long 3216190039 - .long 3127036520 - .long 1068808800 - .long 3451207812 - .long 3220608135 - .long 1547135652 - .long 1015564659 - .long 0 - .long 0 - .long 1959743063 - .long 3217332330 - .long 607720656 - .long 3161041674 - .long 0 - .long 1072693248 - .long 225834432 - .long 1067090614 - .long 732340398 - .long 3217367274 - .long 3221152670 - .long 1071093215 - .long 2810588359 - .long 3216851955 - .long 612200454 - .long 1069874948 - .long 645427044 - .long 3216077719 - .long 1966523063 - .long 1068694214 - .long 3294480606 - .long 3220621003 - .long 1489607747 - .long 1003935259 - .long 0 - .long 0 - .long 1940260416 - .long 3217226924 - .long 4144841612 - .long 3159543701 - .long 0 - .long 1072693248 - .long 1135818128 - .long 1066829850 - .long 867512158 - .long 3217254304 - .long 3821819258 - .long 1071070704 - .long 2890864845 - .long 3216685596 - .long 918459421 - .long 1069834828 - .long 797471869 - .long 3215958923 - .long 4093823457 - .long 1068635569 - .long 3137753400 - .long 3220633871 - .long 3579918397 - .long 3163046845 - .long 0 - .long 0 - .long 2242453104 - .long 3217121901 - .long 1143544320 - .long 1011877960 - .long 0 - .long 1072693248 - .long 1016752608 - .long 1066591110 - .long 1270001991 - .long 3217142917 - .long 1410785275 - .long 1071050206 - .long 1103929722 - .long 3216523923 - .long 3268015214 - .long 1069798554 - .long 957665123 - .long 3215754628 - .long 1067716675 - .long 1068610012 - .long 2981026194 - .long 3220646739 - .long 924239062 - .long 3164095787 - .long 0 - .long 0 - .long 982366697 - .long 3217003288 - .long 1160619554 - .long 1010902188 - .long 0 - .long 1072693248 - .long 404678272 - .long 1066346403 - .long 1419607756 - .long 3217032967 - .long 1800406832 - .long 1071031665 - .long 3144361055 - .long 3216366473 - .long 1744148039 - .long 1069765960 - .long 3211598528 - .long 3215558937 - .long 405031618 - .long 1068609434 - .long 2824298989 - .long 3220659607 - .long 2088964722 - .long 1016829832 - .long 0 - .long 0 - .long 931121154 - .long 3216794574 - .long 1121583044 - .long 1012154237 - .long 0 - .long 1072693248 - .long 709357472 - .long 1065955296 - .long 29972165 - .long 3216817456 - .long 254360647 - .long 1071015033 - .long 3732687627 - .long 3216212805 - .long 3224370681 - .long 1069736900 - .long 202592280 - .long 3215370879 - .long 1420621447 - .long 1068491719 - .long 2667571783 - .long 3220672475 - .long 1614402419 - .long 1015998584 - .long 0 - .long 0 - .long 2354785698 - .long 3216586427 - .long 959264268 - .long 3159915811 - .long 0 - .long 1072693248 - .long 2828230112 - .long 1065606626 - .long 3693284264 - .long 3216602456 - .long 1996210616 - .long 1071000265 - .long 3053541878 - .long 3216062494 - .long 1133334567 - .long 1069711236 - .long 977677585 - .long 3215189563 - .long 347473669 - .long 1068436198 - .long 2510844577 - .long 3220685343 - .long 498468876 - .long 1013614463 - .long 0 - .long 0 - .long 1972895212 - .long 3216378783 - .long 3207896256 - .long 3158122047 - .long 0 - .long 1072693248 - .long 4107853760 - .long 1065246718 - .long 2229347510 - .long 3216389497 - .long 4172638464 - .long 1070987323 - .long 212469442 - .long 3215847669 - .long 1989165661 - .long 1069688852 - .long 4131454738 - .long 3215014128 - .long 3452987325 - .long 1068469531 - .long 2354117371 - .long 3220698211 - .long 3512651629 - .long 3162612920 - .long 0 - .long 0 - .long 3439278129 - .long 3216171577 - .long 1073008748 - .long 3159914989 - .long 0 - .long 1072693248 - .long 2934847296 - .long 1064716672 - .long 2625704508 - .long 3216178311 - .long 3692939630 - .long 1070976174 - .long 3072165553 - .long 3215558041 - .long 223733198 - .long 1069669653 - .long 1158528288 - .long 3214753465 - .long 3197803998 - .long 1068357327 - .long 2197390165 - .long 3220711079 - .long 3038089327 - .long 3163878824 - .long 0 - .long 0 - .long 3930011523 - .long 3215946901 - .long 3574565577 - .long 1010859792 - .long 0 - .long 1072693248 - .long 930814464 - .long 1064233867 - .long 3218126771 - .long 3215954682 - .long 873740287 - .long 1070966789 - .long 1580060562 - .long 3215272745 - .long 1505280051 - .long 1069653548 - .long 2221338643 - .long 3214421240 - .long 2641116540 - .long 1068312400 - .long 2040662960 - .long 3220723947 - .long 4270081753 - .long 1017046794 - .long 0 - .long 0 - .long 2319126882 - .long 3215533863 - .long 2132624928 - .long 3153789373 - .long 0 - .long 1072693248 - .long 2962101888 - .long 1063503197 - .long 3966050657 - .long 3215537841 - .long 3178024141 - .long 1070959142 - .long 1146830997 - .long 3214991029 - .long 1630003424 - .long 1069640468 - .long 2204651989 - .long 3214096041 - .long 796867276 - .long 1068243248 - .long 1883935754 - .long 3220736815 - .long 2988318241 - .long 1016251326 - .long 0 - .long 0 - .long 3919601072 - .long 3215121322 - .long 2384023593 - .long 1011053048 - .long 0 - .long 1072693248 - .long 1803946752 - .long 1062615560 - .long 2247013512 - .long 3215122999 - .long 3277043521 - .long 1070953215 - .long 578207576 - .long 3214490301 - .long 1619551293 - .long 1069630354 - .long 2648603598 - .long 3213667381 - .long 2728840488 - .long 1068193529 - .long 1727208548 - .long 3220749683 - .long 2531251621 - .long 1014661577 - .long 0 - .long 0 - .long 612012528 - .long 3214484294 - .long 549859680 - .long 1005659865 - .long 0 - .long 1072693248 - .long 2064191488 - .long 1061404484 - .long 4042886527 - .long 3214485286 - .long 149923164 - .long 1070948993 - .long 104448276 - .long 3213936806 - .long 2663431480 - .long 1069623160 - .long 4100741337 - .long 3213036454 - .long 3253086979 - .long 1068220130 - .long 1570481342 - .long 3220762551 - .long 2595802427 - .long 3161852775 - .long 0 - .long 0 - .long 75380366 - .long 3213435470 - .long 3015416698 - .long 1008346766 - .long 0 - .long 1072693248 - .long 2911696896 - .long 1059306942 - .long 451505506 - .long 3213435718 - .long 3089290734 - .long 1070946463 - .long 3705470162 - .long 3212886822 - .long 2568117130 - .long 1069618857 - .long 643302148 - .long 3211985100 - .long 500114129 - .long 1068202863 - .long 0 - .long 1090469888 - .long 0 - .long 1090469888 - .long 0 - .long 1090469888 - .long 0 - .long 1090469888 - .long 0 - .long 1090469888 - .long 0 - .long 1090469888 - .long 0 - .long 1090469888 - .long 0 - .long 1090469888 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 1841940611 - .long 1071931184 - .long 1841940611 - .long 1071931184 - .long 1841940611 - .long 1071931184 - .long 1841940611 - .long 1071931184 - .long 1841940611 - .long 1071931184 - .long 1841940611 - .long 1071931184 - .long 1841940611 - .long 1071931184 - .long 1841940611 - .long 1071931184 - .long 1413742592 - .long 1073291771 - .long 1413742592 - .long 1073291771 - .long 1413742592 - .long 1073291771 - .long 1413742592 - .long 1073291771 - .long 1413742592 - .long 1073291771 - .long 1413742592 - .long 1073291771 - .long 1413742592 - .long 1073291771 - .long 1413742592 - .long 1073291771 - .long 1280049152 - .long 1032227875 - .long 1280049152 - .long 1032227875 - .long 1280049152 - .long 1032227875 - .long 1280049152 - .long 1032227875 - .long 1280049152 - .long 1032227875 - .long 1280049152 - .long 1032227875 - .long 1280049152 - .long 1032227875 - .long 1280049152 - .long 1032227875 - .long 57701189 - .long 992578094 - .long 57701189 - .long 992578094 - .long 57701189 - .long 992578094 - .long 57701189 - .long 992578094 - .long 57701189 - .long 992578094 - .long 57701189 - .long 992578094 - .long 57701189 - .long 992578094 - .long 57701189 - .long 992578094 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 1413754136 - .long 1073291771 - .long 856972294 - .long 1016178214 - .long 856972294 - .long 1016178214 - .long 856972294 - .long 1016178214 - .long 856972294 - .long 1016178214 - .long 856972294 - .long 1016178214 - .long 856972294 - .long 1016178214 - .long 856972294 - .long 1016178214 - .long 856972294 - .long 1016178214 - .long 688016905 - .long 961289425 - .long 688016905 - .long 961289425 - .long 688016905 - .long 961289425 - .long 688016905 - .long 961289425 - .long 688016905 - .long 961289425 - .long 688016905 - .long 961289425 - .long 688016905 - .long 961289425 - .long 688016905 - .long 961289425 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 3191264137 - .long 3217058711 - .long 3191264137 - .long 3217058711 - .long 3191264137 - .long 3217058711 - .long 3191264137 - .long 3217058711 - .long 3191264137 - .long 3217058711 - .long 3191264137 - .long 3217058711 - .long 3191264137 - .long 3217058711 - .long 3191264137 - .long 3217058711 - .long 3706049281 - .long 1063713903 - .long 3706049281 - .long 1063713903 - .long 3706049281 - .long 1063713903 - .long 3706049281 - .long 1063713903 - .long 3706049281 - .long 1063713903 - .long 3706049281 - .long 1063713903 - .long 3706049281 - .long 1063713903 - .long 3706049281 - .long 1063713903 - .long 3458873344 - .long 3202311037 - .long 3458873344 - .long 3202311037 - .long 3458873344 - .long 3202311037 - .long 3458873344 - .long 3202311037 - .long 3458873344 - .long 3202311037 - .long 3458873344 - .long 3202311037 - .long 3458873344 - .long 3202311037 - .long 3458873344 - .long 3202311037 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 879804142 - .long 3218967329 - .long 879804142 - .long 3218967329 - .long 879804142 - .long 3218967329 - .long 879804142 - .long 3218967329 - .long 879804142 - .long 3218967329 - .long 879804142 - .long 3218967329 - .long 879804142 - .long 3218967329 - .long 879804142 - .long 3218967329 - .long 2328005206 - .long 1066919862 - .long 2328005206 - .long 1066919862 - .long 2328005206 - .long 1066919862 - .long 2328005206 - .long 1066919862 - .long 2328005206 - .long 1066919862 - .long 2328005206 - .long 1066919862 - .long 2328005206 - .long 1066919862 - .long 2328005206 - .long 1066919862 - .long 62689958 - .long 3207287387 - .long 62689958 - .long 3207287387 - .long 62689958 - .long 3207287387 - .long 62689958 - .long 3207287387 - .long 62689958 - .long 3207287387 - .long 62689958 - .long 3207287387 - .long 62689958 - .long 3207287387 - .long 62689958 - .long 3207287387 - .type __svml_dtan_data_internal,@object - .size __svml_dtan_data_internal,29248 - .align 64 -__svml_dtan_reduction_data_internal: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 20 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 40 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 81 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 162 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 325 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 651 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1173554908 - .long 1 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2347109817 - .long 2 - .long 0 - .long 0 - .long 0 - .long 0 - .long 399252338 - .long 5 - .long 0 - .long 0 - .long 0 - .long 0 - .long 798504676 - .long 10 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1597009353 - .long 20 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3194018707 - .long 40 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2093070119 - .long 81 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4186140238 - .long 162 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4077313180 - .long 325 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3859659065 - .long 651 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3424350834 - .long 1303 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2553734372 - .long 2607 - .long 0 - .long 0 - .long 0 - .long 0 - .long 812501448 - .long 5215 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1625002897 - .long 10430 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3250005794 - .long 20860 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2205044292 - .long 41721 - .long 0 - .long 0 - .long 0 - .long 0 - .long 115121288 - .long 83443 - .long 0 - .long 0 - .long 0 - .long 0 - .long 230242576 - .long 166886 - .long 0 - .long 0 - .long 0 - .long 0 - .long 460485152 - .long 333772 - .long 0 - .long 0 - .long 0 - .long 0 - .long 920970305 - .long 667544 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1841940610 - .long 1335088 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3683881221 - .long 2670176 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3072795146 - .long 5340353 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1850622997 - .long 10680707 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3701245994 - .long 21361414 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3107524692 - .long 42722829 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1920082089 - .long 85445659 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3840164178 - .long 170891318 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3385361061 - .long 341782637 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2475754826 - .long 683565275 - .long 0 - .long 0 - .long 0 - .long 0 - .long 656542356 - .long 1367130551 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1313084713 - .long 2734261102 - .long 0 - .long 0 - .long 1 - .long 0 - .long 2626169427 - .long 1173554908 - .long 0 - .long 0 - .long 2 - .long 0 - .long 957371559 - .long 2347109817 - .long 0 - .long 0 - .long 5 - .long 0 - .long 1914743119 - .long 399252338 - .long 0 - .long 0 - .long 10 - .long 0 - .long 3829486239 - .long 798504676 - .long 0 - .long 0 - .long 20 - .long 0 - .long 3364005183 - .long 1597009353 - .long 0 - .long 0 - .long 40 - .long 0 - .long 2433043071 - .long 3194018707 - .long 0 - .long 0 - .long 81 - .long 0 - .long 571118846 - .long 2093070119 - .long 0 - .long 0 - .long 162 - .long 0 - .long 1142237692 - .long 4186140238 - .long 0 - .long 0 - .long 325 - .long 0 - .long 2284475384 - .long 4077313180 - .long 0 - .long 0 - .long 651 - .long 0 - .long 273983472 - .long 3859659065 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 547966945 - .long 3424350834 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 1095933890 - .long 2553734372 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 2191867780 - .long 812501448 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 88768265 - .long 1625002897 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 177536531 - .long 3250005794 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 355073063 - .long 2205044292 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 710146126 - .long 115121288 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 1420292253 - .long 230242576 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 2840584506 - .long 460485152 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 1386201717 - .long 920970305 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 2772403434 - .long 1841940610 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 1249839573 - .long 3683881221 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 2499679147 - .long 3072795146 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 704390999 - .long 1850622997 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 1408781999 - .long 3701245994 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 2817563999 - .long 3107524692 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 1340160702 - .long 1920082089 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 2680321405 - .long 3840164178 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 1065675514 - .long 3385361061 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 2131351028 - .long 2475754826 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 4262702056 - .long 656542356 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 4230436817 - .long 1313084713 - .long 0 - .long 0 - .long 1173554908 - .long 1 - .long 4165906339 - .long 2626169427 - .long 0 - .long 0 - .long 2347109817 - .long 2 - .long 4036845383 - .long 957371559 - .long 0 - .long 0 - .long 399252338 - .long 5 - .long 3778723471 - .long 1914743119 - .long 0 - .long 0 - .long 798504676 - .long 10 - .long 3262479647 - .long 3829486239 - .long 0 - .long 0 - .long 1597009353 - .long 20 - .long 2229991998 - .long 3364005183 - .long 0 - .long 0 - .long 3194018707 - .long 40 - .long 165016701 - .long 2433043071 - .long 0 - .long 0 - .long 2093070119 - .long 81 - .long 330033402 - .long 571118846 - .long 0 - .long 0 - .long 4186140238 - .long 162 - .long 660066805 - .long 1142237692 - .long 0 - .long 0 - .long 4077313180 - .long 325 - .long 1320133610 - .long 2284475384 - .long 0 - .long 0 - .long 3859659065 - .long 651 - .long 2640267220 - .long 273983472 - .long 0 - .long 0 - .long 3424350834 - .long 1303 - .long 985567145 - .long 547966945 - .long 0 - .long 0 - .long 2553734372 - .long 2607 - .long 1971134291 - .long 1095933890 - .long 0 - .long 0 - .long 812501448 - .long 5215 - .long 3942268582 - .long 2191867780 - .long 0 - .long 0 - .long 1625002897 - .long 10430 - .long 3589569869 - .long 88768265 - .long 0 - .long 0 - .long 3250005794 - .long 20860 - .long 2884172442 - .long 177536531 - .long 0 - .long 0 - .long 2205044292 - .long 41721 - .long 1473377588 - .long 355073063 - .long 0 - .long 0 - .long 115121288 - .long 83443 - .long 2946755177 - .long 710146126 - .long 0 - .long 0 - .long 230242576 - .long 166886 - .long 1598543059 - .long 1420292253 - .long 0 - .long 0 - .long 460485152 - .long 333772 - .long 3197086118 - .long 2840584506 - .long 0 - .long 0 - .long 920970305 - .long 667544 - .long 2099204941 - .long 1386201717 - .long 0 - .long 0 - .long 1841940610 - .long 1335088 - .long 4198409883 - .long 2772403434 - .long 0 - .long 0 - .long 3683881221 - .long 2670176 - .long 4101852471 - .long 1249839573 - .long 0 - .long 0 - .long 3072795146 - .long 5340353 - .long 3908737646 - .long 2499679147 - .long 0 - .long 0 - .long 1850622997 - .long 10680707 - .long 3522507997 - .long 704390999 - .long 0 - .long 0 - .long 3701245994 - .long 21361414 - .long 2750048699 - .long 1408781999 - .long 0 - .long 0 - .long 3107524692 - .long 42722829 - .long 1205130103 - .long 2817563999 - .long 0 - .long 0 - .long 1920082089 - .long 85445659 - .long 2410260206 - .long 1340160702 - .long 0 - .long 0 - .long 3840164178 - .long 170891318 - .long 525553116 - .long 2680321405 - .long 0 - .long 0 - .long 3385361061 - .long 341782637 - .long 1051106232 - .long 1065675514 - .long 0 - .long 0 - .long 2475754826 - .long 683565275 - .long 2102212464 - .long 2131351028 - .long 0 - .long 0 - .long 656542356 - .long 1367130551 - .long 4204424928 - .long 4262702056 - .long 0 - .long 0 - .long 1313084713 - .long 2734261102 - .long 4113882560 - .long 4230436817 - .long 1 - .long 0 - .long 2626169427 - .long 1173554908 - .long 3932797825 - .long 4165906339 - .long 2 - .long 0 - .long 957371559 - .long 2347109817 - .long 3570628355 - .long 4036845383 - .long 5 - .long 0 - .long 1914743119 - .long 399252338 - .long 2846289414 - .long 3778723471 - .long 10 - .long 0 - .long 3829486239 - .long 798504676 - .long 1397611533 - .long 3262479647 - .long 20 - .long 0 - .long 3364005183 - .long 1597009353 - .long 2795223067 - .long 2229991998 - .long 40 - .long 0 - .long 2433043071 - .long 3194018707 - .long 1295478838 - .long 165016701 - .long 81 - .long 0 - .long 571118846 - .long 2093070119 - .long 2590957677 - .long 330033402 - .long 162 - .long 0 - .long 1142237692 - .long 4186140238 - .long 886948059 - .long 660066805 - .long 325 - .long 0 - .long 2284475384 - .long 4077313180 - .long 1773896118 - .long 1320133610 - .long 651 - .long 0 - .long 273983472 - .long 3859659065 - .long 3547792237 - .long 2640267220 - .long 1303 - .long 0 - .long 547966945 - .long 3424350834 - .long 2800617179 - .long 985567145 - .long 2607 - .long 0 - .long 1095933890 - .long 2553734372 - .long 1306267062 - .long 1971134291 - .long 5215 - .long 0 - .long 2191867780 - .long 812501448 - .long 2612534124 - .long 3942268582 - .long 10430 - .long 0 - .long 88768265 - .long 1625002897 - .long 930100952 - .long 3589569869 - .long 20860 - .long 0 - .long 177536531 - .long 3250005794 - .long 1860201905 - .long 2884172442 - .long 41721 - .long 0 - .long 355073063 - .long 2205044292 - .long 3720403810 - .long 1473377588 - .long 83443 - .long 0 - .long 710146126 - .long 115121288 - .long 3145840325 - .long 2946755177 - .long 166886 - .long 0 - .long 1420292253 - .long 230242576 - .long 1996713354 - .long 1598543059 - .long 333772 - .long 0 - .long 2840584506 - .long 460485152 - .long 3993426708 - .long 3197086118 - .long 667544 - .long 0 - .long 1386201717 - .long 920970305 - .long 3691886121 - .long 2099204941 - .long 1335088 - .long 0 - .long 2772403434 - .long 1841940610 - .long 3088804946 - .long 4198409883 - .long 2670176 - .long 0 - .long 1249839573 - .long 3683881221 - .long 1882642597 - .long 4101852471 - .long 5340353 - .long 0 - .long 2499679147 - .long 3072795146 - .long 3765285194 - .long 3908737646 - .long 10680707 - .long 0 - .long 704390999 - .long 1850622997 - .long 3235603093 - .long 3522507997 - .long 21361414 - .long 0 - .long 1408781999 - .long 3701245994 - .long 2176238891 - .long 2750048699 - .long 42722829 - .long 0 - .long 2817563999 - .long 3107524692 - .long 57510486 - .long 1205130103 - .long 85445659 - .long 0 - .long 1340160702 - .long 1920082089 - .long 115020972 - .long 2410260206 - .long 170891318 - .long 0 - .long 2680321405 - .long 3840164178 - .long 230041945 - .long 525553116 - .long 341782637 - .long 0 - .long 1065675514 - .long 3385361061 - .long 460083891 - .long 1051106232 - .long 683565275 - .long 0 - .long 2131351028 - .long 2475754826 - .long 920167782 - .long 2102212464 - .long 1367130551 - .long 0 - .long 4262702056 - .long 656542356 - .long 1840335564 - .long 4204424928 - .long 2734261102 - .long 0 - .long 4230436817 - .long 1313084713 - .long 3680671129 - .long 4113882560 - .long 1173554908 - .long 1 - .long 4165906339 - .long 2626169427 - .long 3066374962 - .long 3932797825 - .long 2347109817 - .long 2 - .long 4036845383 - .long 957371559 - .long 1837782628 - .long 3570628355 - .long 399252338 - .long 5 - .long 3778723471 - .long 1914743119 - .long 3675565257 - .long 2846289414 - .long 798504676 - .long 10 - .long 3262479647 - .long 3829486239 - .long 3056163219 - .long 1397611533 - .long 1597009353 - .long 20 - .long 2229991998 - .long 3364005183 - .long 1817359143 - .long 2795223067 - .long 3194018707 - .long 40 - .long 165016701 - .long 2433043071 - .long 3634718287 - .long 1295478838 - .long 2093070119 - .long 81 - .long 330033402 - .long 571118846 - .long 2974469278 - .long 2590957677 - .long 4186140238 - .long 162 - .long 660066805 - .long 1142237692 - .long 1653971260 - .long 886948059 - .long 4077313180 - .long 325 - .long 1320133610 - .long 2284475384 - .long 3307942520 - .long 1773896118 - .long 3859659065 - .long 651 - .long 2640267220 - .long 273983472 - .long 2320917745 - .long 3547792237 - .long 3424350834 - .long 1303 - .long 985567145 - .long 547966945 - .long 346868194 - .long 2800617179 - .long 2553734372 - .long 2607 - .long 1971134291 - .long 1095933890 - .long 693736388 - .long 1306267062 - .long 812501448 - .long 5215 - .long 3942268582 - .long 2191867780 - .long 1387472776 - .long 2612534124 - .long 1625002897 - .long 10430 - .long 3589569869 - .long 88768265 - .long 2774945552 - .long 930100952 - .long 3250005794 - .long 20860 - .long 2884172442 - .long 177536531 - .long 1254923809 - .long 1860201905 - .long 2205044292 - .long 41721 - .long 1473377588 - .long 355073063 - .long 2509847619 - .long 3720403810 - .long 115121288 - .long 83443 - .long 2946755177 - .long 710146126 - .long 724727943 - .long 3145840325 - .long 230242576 - .long 166886 - .long 1598543059 - .long 1420292253 - .long 1449455886 - .long 1996713354 - .long 460485152 - .long 333772 - .long 3197086118 - .long 2840584506 - .long 2898911772 - .long 3993426708 - .long 920970305 - .long 667544 - .long 2099204941 - .long 1386201717 - .long 1502856249 - .long 3691886121 - .long 1841940610 - .long 1335088 - .long 4198409883 - .long 2772403434 - .long 3005712498 - .long 3088804946 - .long 3683881221 - .long 2670176 - .long 4101852471 - .long 1249839573 - .long 1716457700 - .long 1882642597 - .long 3072795146 - .long 5340353 - .long 3908737646 - .long 2499679147 - .long 3432915400 - .long 3765285194 - .long 1850622997 - .long 10680707 - .long 3522507997 - .long 704390999 - .long 2570863504 - .long 3235603093 - .long 3701245994 - .long 21361414 - .long 2750048699 - .long 1408781999 - .long 846759712 - .long 2176238891 - .long 3107524692 - .long 42722829 - .long 1205130103 - .long 2817563999 - .long 1693519425 - .long 57510486 - .long 1920082089 - .long 85445659 - .long 2410260206 - .long 1340160702 - .long 3387038850 - .long 115020972 - .long 3840164178 - .long 170891318 - .long 525553116 - .long 2680321405 - .long 2479110404 - .long 230041945 - .long 3385361061 - .long 341782637 - .long 1051106232 - .long 1065675514 - .long 663253512 - .long 460083891 - .long 2475754826 - .long 683565275 - .long 2102212464 - .long 2131351028 - .long 1326507024 - .long 920167782 - .long 656542356 - .long 1367130551 - .long 4204424928 - .long 4262702056 - .long 2653014048 - .long 1840335564 - .long 1313084713 - .long 2734261102 - .long 4113882560 - .long 4230436817 - .long 1011060801 - .long 3680671129 - .long 2626169427 - .long 1173554908 - .long 3932797825 - .long 4165906339 - .long 2022121603 - .long 3066374962 - .long 957371559 - .long 2347109817 - .long 3570628355 - .long 4036845383 - .long 4044243207 - .long 1837782628 - .long 1914743119 - .long 399252338 - .long 2846289414 - .long 3778723471 - .long 3793519119 - .long 3675565257 - .long 3829486239 - .long 798504676 - .long 1397611533 - .long 3262479647 - .long 3292070943 - .long 3056163219 - .long 3364005183 - .long 1597009353 - .long 2795223067 - .long 2229991998 - .long 2289174591 - .long 1817359143 - .long 2433043071 - .long 3194018707 - .long 1295478838 - .long 165016701 - .long 283381887 - .long 3634718287 - .long 571118846 - .long 2093070119 - .long 2590957677 - .long 330033402 - .long 566763775 - .long 2974469278 - .long 1142237692 - .long 4186140238 - .long 886948059 - .long 660066805 - .long 1133527550 - .long 1653971260 - .long 2284475384 - .long 4077313180 - .long 1773896118 - .long 1320133610 - .long 2267055100 - .long 3307942520 - .long 273983472 - .long 3859659065 - .long 3547792237 - .long 2640267220 - .long 239142905 - .long 2320917745 - .long 547966945 - .long 3424350834 - .long 2800617179 - .long 985567145 - .long 478285810 - .long 346868194 - .long 1095933890 - .long 2553734372 - .long 1306267062 - .long 1971134291 - .long 956571621 - .long 693736388 - .long 2191867780 - .long 812501448 - .long 2612534124 - .long 3942268582 - .long 1913143242 - .long 1387472776 - .long 88768265 - .long 1625002897 - .long 930100952 - .long 3589569869 - .long 3826286484 - .long 2774945552 - .long 177536531 - .long 3250005794 - .long 1860201905 - .long 2884172442 - .long 3357605672 - .long 1254923809 - .long 355073063 - .long 2205044292 - .long 3720403810 - .long 1473377588 - .long 2420244049 - .long 2509847619 - .long 710146126 - .long 115121288 - .long 3145840325 - .long 2946755177 - .long 545520802 - .long 724727943 - .long 1420292253 - .long 230242576 - .long 1996713354 - .long 1598543059 - .long 1091041605 - .long 1449455886 - .long 2840584506 - .long 460485152 - .long 3993426708 - .long 3197086118 - .long 2182083211 - .long 2898911772 - .long 1386201717 - .long 920970305 - .long 3691886121 - .long 2099204941 - .long 69199126 - .long 1502856249 - .long 2772403434 - .long 1841940610 - .long 3088804946 - .long 4198409883 - .long 138398252 - .long 3005712498 - .long 1249839573 - .long 3683881221 - .long 1882642597 - .long 4101852471 - .long 276796504 - .long 1716457700 - .long 2499679147 - .long 3072795146 - .long 3765285194 - .long 3908737646 - .long 553593009 - .long 3432915400 - .long 704390999 - .long 1850622997 - .long 3235603093 - .long 3522507997 - .long 1107186019 - .long 2570863504 - .long 1408781999 - .long 3701245994 - .long 2176238891 - .long 2750048699 - .long 2214372039 - .long 846759712 - .long 2817563999 - .long 3107524692 - .long 57510486 - .long 1205130103 - .long 133776782 - .long 1693519425 - .long 1340160702 - .long 1920082089 - .long 115020972 - .long 2410260206 - .long 267553565 - .long 3387038850 - .long 2680321405 - .long 3840164178 - .long 230041945 - .long 525553116 - .long 535107130 - .long 2479110404 - .long 1065675514 - .long 3385361061 - .long 460083891 - .long 1051106232 - .long 1070214261 - .long 663253512 - .long 2131351028 - .long 2475754826 - .long 920167782 - .long 2102212464 - .long 2140428522 - .long 1326507024 - .long 4262702056 - .long 656542356 - .long 1840335564 - .long 4204424928 - .long 4280857045 - .long 2653014048 - .long 4230436817 - .long 1313084713 - .long 3680671129 - .long 4113882560 - .long 4266746795 - .long 1011060801 - .long 4165906339 - .long 2626169427 - .long 3066374962 - .long 3932797825 - .long 4238526295 - .long 2022121603 - .long 4036845383 - .long 957371559 - .long 1837782628 - .long 3570628355 - .long 4182085295 - .long 4044243207 - .long 3778723471 - .long 1914743119 - .long 3675565257 - .long 2846289414 - .long 4069203294 - .long 3793519119 - .long 3262479647 - .long 3829486239 - .long 3056163219 - .long 1397611533 - .long 3843439293 - .long 3292070943 - .long 2229991998 - .long 3364005183 - .long 1817359143 - .long 2795223067 - .long 3391911291 - .long 2289174591 - .long 165016701 - .long 2433043071 - .long 3634718287 - .long 1295478838 - .long 2488855287 - .long 283381887 - .long 330033402 - .long 571118846 - .long 2974469278 - .long 2590957677 - .long 682743279 - .long 566763775 - .long 660066805 - .long 1142237692 - .long 1653971260 - .long 886948059 - .long 1365486558 - .long 1133527550 - .long 1320133610 - .long 2284475384 - .long 3307942520 - .long 1773896118 - .long 2730973117 - .long 2267055100 - .long 2640267220 - .long 273983472 - .long 2320917745 - .long 3547792237 - .long 1166978938 - .long 239142905 - .long 985567145 - .long 547966945 - .long 346868194 - .long 2800617179 - .long 2333957877 - .long 478285810 - .long 1971134291 - .long 1095933890 - .long 693736388 - .long 1306267062 - .long 372948459 - .long 956571621 - .long 3942268582 - .long 2191867780 - .long 1387472776 - .long 2612534124 - .long 745896919 - .long 1913143242 - .long 3589569869 - .long 88768265 - .long 2774945552 - .long 930100952 - .long 1491793838 - .long 3826286484 - .long 2884172442 - .long 177536531 - .long 1254923809 - .long 1860201905 - .long 2983587677 - .long 3357605672 - .long 1473377588 - .long 355073063 - .long 2509847619 - .long 3720403810 - .long 1672208059 - .long 2420244049 - .long 2946755177 - .long 710146126 - .long 724727943 - .long 3145840325 - .long 3344416119 - .long 545520802 - .long 1598543059 - .long 1420292253 - .long 1449455886 - .long 1996713354 - .long 2393864943 - .long 1091041605 - .long 3197086118 - .long 2840584506 - .long 2898911772 - .long 3993426708 - .long 492762590 - .long 2182083211 - .long 2099204941 - .long 1386201717 - .long 1502856249 - .long 3691886121 - .long 985525180 - .long 69199126 - .long 4198409883 - .long 2772403434 - .long 3005712498 - .long 3088804946 - .long 1971050360 - .long 138398252 - .long 4101852471 - .long 1249839573 - .long 1716457700 - .long 1882642597 - .long 3942100721 - .long 276796504 - .long 3908737646 - .long 2499679147 - .long 3432915400 - .long 3765285194 - .long 3589234146 - .long 553593009 - .long 3522507997 - .long 704390999 - .long 2570863504 - .long 3235603093 - .long 2883500997 - .long 1107186019 - .long 2750048699 - .long 1408781999 - .long 846759712 - .long 2176238891 - .long 1472034698 - .long 2214372039 - .long 1205130103 - .long 2817563999 - .long 1693519425 - .long 57510486 - .long 2944069397 - .long 133776782 - .long 2410260206 - .long 1340160702 - .long 3387038850 - .long 115020972 - .long 1593171499 - .long 267553565 - .long 525553116 - .long 2680321405 - .long 2479110404 - .long 230041945 - .long 3186342998 - .long 535107130 - .long 1051106232 - .long 1065675514 - .long 663253512 - .long 460083891 - .long 2077718700 - .long 1070214261 - .long 2102212464 - .long 2131351028 - .long 1326507024 - .long 920167782 - .long 4155437400 - .long 2140428522 - .long 4204424928 - .long 4262702056 - .long 2653014048 - .long 1840335564 - .long 4015907504 - .long 4280857045 - .long 4113882560 - .long 4230436817 - .long 1011060801 - .long 3680671129 - .long 3736847713 - .long 4266746795 - .long 3932797825 - .long 4165906339 - .long 2022121603 - .long 3066374962 - .long 3178728131 - .long 4238526295 - .long 3570628355 - .long 4036845383 - .long 4044243207 - .long 1837782628 - .long 2062488966 - .long 4182085295 - .long 2846289414 - .long 3778723471 - .long 3793519119 - .long 3675565257 - .long 4124977933 - .long 4069203294 - .long 1397611533 - .long 3262479647 - .long 3292070943 - .long 3056163219 - .long 3954988571 - .long 3843439293 - .long 2795223067 - .long 2229991998 - .long 2289174591 - .long 1817359143 - .long 3615009846 - .long 3391911291 - .long 1295478838 - .long 165016701 - .long 283381887 - .long 3634718287 - .long 2935052397 - .long 2488855287 - .long 2590957677 - .long 330033402 - .long 566763775 - .long 2974469278 - .long 1575137499 - .long 682743279 - .long 886948059 - .long 660066805 - .long 1133527550 - .long 1653971260 - .long 3150274999 - .long 1365486558 - .long 1773896118 - .long 1320133610 - .long 2267055100 - .long 3307942520 - .long 2005582702 - .long 2730973117 - .long 3547792237 - .long 2640267220 - .long 239142905 - .long 2320917745 - .long 4011165404 - .long 1166978938 - .long 2800617179 - .long 985567145 - .long 478285810 - .long 346868194 - .long 3727363513 - .long 2333957877 - .long 1306267062 - .long 1971134291 - .long 956571621 - .long 693736388 - .long 3159759730 - .long 372948459 - .long 2612534124 - .long 3942268582 - .long 1913143242 - .long 1387472776 - .long 2024552164 - .long 745896919 - .long 930100952 - .long 3589569869 - .long 3826286484 - .long 2774945552 - .long 4049104329 - .long 1491793838 - .long 1860201905 - .long 2884172442 - .long 3357605672 - .long 1254923809 - .long 3803241362 - .long 2983587677 - .long 3720403810 - .long 1473377588 - .long 2420244049 - .long 2509847619 - .long 3311515428 - .long 1672208059 - .long 3145840325 - .long 2946755177 - .long 545520802 - .long 724727943 - .long 2328063560 - .long 3344416119 - .long 1996713354 - .long 1598543059 - .long 1091041605 - .long 1449455886 - .long 361159825 - .long 2393864943 - .long 3993426708 - .long 3197086118 - .long 2182083211 - .long 2898911772 - .long 722319651 - .long 492762590 - .long 3691886121 - .long 2099204941 - .long 69199126 - .long 1502856249 - .long 1444639302 - .long 985525180 - .long 3088804946 - .long 4198409883 - .long 138398252 - .long 3005712498 - .long 2889278605 - .long 1971050360 - .long 1882642597 - .long 4101852471 - .long 276796504 - .long 1716457700 - .long 1483589915 - .long 3942100721 - .long 3765285194 - .long 3908737646 - .long 553593009 - .long 3432915400 - .long 2967179831 - .long 3589234146 - .long 3235603093 - .long 3522507997 - .long 1107186019 - .long 2570863504 - .long 1639392366 - .long 2883500997 - .long 2176238891 - .long 2750048699 - .long 2214372039 - .long 846759712 - .long 3278784732 - .long 1472034698 - .long 57510486 - .long 1205130103 - .long 133776782 - .long 1693519425 - .long 2262602168 - .long 2944069397 - .long 115020972 - .long 2410260206 - .long 267553565 - .long 3387038850 - .long 230237041 - .long 1593171499 - .long 230041945 - .long 525553116 - .long 535107130 - .long 2479110404 - .long 460474083 - .long 3186342998 - .long 460083891 - .long 1051106232 - .long 1070214261 - .long 663253512 - .long 920948167 - .long 2077718700 - .long 920167782 - .long 2102212464 - .long 2140428522 - .long 1326507024 - .long 1841896334 - .long 4155437400 - .long 1840335564 - .long 4204424928 - .long 4280857045 - .long 2653014048 - .long 3683792669 - .long 4015907504 - .long 3680671129 - .long 4113882560 - .long 4266746795 - .long 1011060801 - .long 3072618042 - .long 3736847713 - .long 3066374962 - .long 3932797825 - .long 4238526295 - .long 2022121603 - .long 1850268788 - .long 3178728131 - .long 1837782628 - .long 3570628355 - .long 4182085295 - .long 4044243207 - .long 3700537577 - .long 2062488966 - .long 3675565257 - .long 2846289414 - .long 4069203294 - .long 3793519119 - .long 3106107858 - .long 4124977933 - .long 3056163219 - .long 1397611533 - .long 3843439293 - .long 3292070943 - .long 1917248420 - .long 3954988571 - .long 1817359143 - .long 2795223067 - .long 3391911291 - .long 2289174591 - .long 3834496840 - .long 3615009846 - .long 3634718287 - .long 1295478838 - .long 2488855287 - .long 283381887 - .long 3374026384 - .long 2935052397 - .long 2974469278 - .long 2590957677 - .long 682743279 - .long 566763775 - .long 2453085473 - .long 1575137499 - .long 1653971260 - .long 886948059 - .long 1365486558 - .long 1133527550 - .long 611203650 - .long 3150274999 - .long 3307942520 - .long 1773896118 - .long 2730973117 - .long 2267055100 - .long 1222407300 - .long 2005582702 - .long 2320917745 - .long 3547792237 - .long 1166978938 - .long 239142905 - .long 2444814601 - .long 4011165404 - .long 346868194 - .long 2800617179 - .long 2333957877 - .long 478285810 - .long 594661906 - .long 3727363513 - .long 693736388 - .long 1306267062 - .long 372948459 - .long 956571621 - .long 1189323812 - .long 3159759730 - .long 1387472776 - .long 2612534124 - .long 745896919 - .long 1913143242 - .long 2378647625 - .long 2024552164 - .long 2774945552 - .long 930100952 - .long 1491793838 - .long 3826286484 - .long 462327955 - .long 4049104329 - .long 1254923809 - .long 1860201905 - .long 2983587677 - .long 3357605672 - .long 924655910 - .long 3803241362 - .long 2509847619 - .long 3720403810 - .long 1672208059 - .long 2420244049 - .long 1849311821 - .long 3311515428 - .long 724727943 - .long 3145840325 - .long 3344416119 - .long 545520802 - .long 3698623643 - .long 2328063560 - .long 1449455886 - .long 1996713354 - .long 2393864943 - .long 1091041605 - .long 3102279991 - .long 361159825 - .long 2898911772 - .long 3993426708 - .long 492762590 - .long 2182083211 - .long 1909592686 - .long 722319651 - .long 1502856249 - .long 3691886121 - .long 985525180 - .long 69199126 - .long 3819185373 - .long 1444639302 - .long 3005712498 - .long 3088804946 - .long 1971050360 - .long 138398252 - .long 3343403450 - .long 2889278605 - .long 1716457700 - .long 1882642597 - .long 3942100721 - .long 276796504 - .long 2391839604 - .long 1483589915 - .long 3432915400 - .long 3765285194 - .long 3589234146 - .long 553593009 - .long 488711913 - .long 2967179831 - .long 2570863504 - .long 3235603093 - .long 2883500997 - .long 1107186019 - .long 977423826 - .long 1639392366 - .long 846759712 - .long 2176238891 - .long 1472034698 - .long 2214372039 - .long 1954847653 - .long 3278784732 - .long 1693519425 - .long 57510486 - .long 2944069397 - .long 133776782 - .long 3909695307 - .long 2262602168 - .long 3387038850 - .long 115020972 - .long 1593171499 - .long 267553565 - .long 3524423319 - .long 230237041 - .long 2479110404 - .long 230041945 - .long 3186342998 - .long 535107130 - .long 2753879342 - .long 460474083 - .long 663253512 - .long 460083891 - .long 2077718700 - .long 1070214261 - .long 1212791388 - .long 920948167 - .long 1326507024 - .long 920167782 - .long 4155437400 - .long 2140428522 - .long 2425582776 - .long 1841896334 - .long 2653014048 - .long 1840335564 - .long 4015907504 - .long 4280857045 - .long 556198256 - .long 3683792669 - .long 1011060801 - .long 3680671129 - .long 3736847713 - .long 4266746795 - .long 1112396512 - .long 3072618042 - .long 2022121603 - .long 3066374962 - .long 3178728131 - .long 4238526295 - .long 2224793024 - .long 1850268788 - .long 4044243207 - .long 1837782628 - .long 2062488966 - .long 4182085295 - .long 154618752 - .long 3700537577 - .long 3793519119 - .long 3675565257 - .long 4124977933 - .long 4069203294 - .long 309237504 - .long 3106107858 - .long 3292070943 - .long 3056163219 - .long 3954988571 - .long 3843439293 - .long 618475008 - .long 1917248420 - .long 2289174591 - .long 1817359143 - .long 3615009846 - .long 3391911291 - .long 1236950016 - .long 3834496840 - .long 283381887 - .long 3634718287 - .long 2935052397 - .long 2488855287 - .long 2473900033 - .long 3374026384 - .long 566763775 - .long 2974469278 - .long 1575137499 - .long 682743279 - .long 652832771 - .long 2453085473 - .long 1133527550 - .long 1653971260 - .long 3150274999 - .long 1365486558 - .long 1305665542 - .long 611203650 - .long 2267055100 - .long 3307942520 - .long 2005582702 - .long 2730973117 - .long 2611331084 - .long 1222407300 - .long 239142905 - .long 2320917745 - .long 4011165404 - .long 1166978938 - .long 927694873 - .long 2444814601 - .long 478285810 - .long 346868194 - .long 3727363513 - .long 2333957877 - .long 1855389746 - .long 594661906 - .long 956571621 - .long 693736388 - .long 3159759730 - .long 372948459 - .long 3710779492 - .long 1189323812 - .long 1913143242 - .long 1387472776 - .long 2024552164 - .long 745896919 - .long 3126591689 - .long 2378647625 - .long 3826286484 - .long 2774945552 - .long 4049104329 - .long 1491793838 - .long 1958216082 - .long 462327955 - .long 3357605672 - .long 1254923809 - .long 3803241362 - .long 2983587677 - .long 3916432164 - .long 924655910 - .long 2420244049 - .long 2509847619 - .long 3311515428 - .long 1672208059 - .long 3537897033 - .long 1849311821 - .long 545520802 - .long 724727943 - .long 2328063560 - .long 3344416119 - .long 2780826770 - .long 3698623643 - .long 1091041605 - .long 1449455886 - .long 361159825 - .long 2393864943 - .long 1266686244 - .long 3102279991 - .long 2182083211 - .long 2898911772 - .long 722319651 - .long 492762590 - .long 2533372489 - .long 1909592686 - .long 69199126 - .long 1502856249 - .long 1444639302 - .long 985525180 - .long 771777682 - .long 3819185373 - .long 138398252 - .long 3005712498 - .long 2889278605 - .long 1971050360 - .long 1543555365 - .long 3343403450 - .long 276796504 - .long 1716457700 - .long 1483589915 - .long 3942100721 - .long 3087110731 - .long 2391839604 - .long 553593009 - .long 3432915400 - .long 2967179831 - .long 3589234146 - .long 1879254167 - .long 488711913 - .long 1107186019 - .long 2570863504 - .long 1639392366 - .long 2883500997 - .long 3758508334 - .long 977423826 - .long 2214372039 - .long 846759712 - .long 3278784732 - .long 1472034698 - .long 3222049373 - .long 1954847653 - .long 133776782 - .long 1693519425 - .long 2262602168 - .long 2944069397 - .long 2149131451 - .long 3909695307 - .long 267553565 - .long 3387038850 - .long 230237041 - .long 1593171499 - .long 3295607 - .long 3524423319 - .long 535107130 - .long 2479110404 - .long 460474083 - .long 3186342998 - .long 6591214 - .long 2753879342 - .long 1070214261 - .long 663253512 - .long 920948167 - .long 2077718700 - .long 13182429 - .long 1212791388 - .long 2140428522 - .long 1326507024 - .long 1841896334 - .long 4155437400 - .long 26364858 - .long 2425582776 - .long 4280857045 - .long 2653014048 - .long 3683792669 - .long 4015907504 - .long 52729717 - .long 556198256 - .long 4266746795 - .long 1011060801 - .long 3072618042 - .long 3736847713 - .long 105459434 - .long 1112396512 - .long 4238526295 - .long 2022121603 - .long 1850268788 - .long 3178728131 - .long 210918868 - .long 2224793024 - .long 4182085295 - .long 4044243207 - .long 3700537577 - .long 2062488966 - .long 421837736 - .long 154618752 - .long 4069203294 - .long 3793519119 - .long 3106107858 - .long 4124977933 - .long 843675472 - .long 309237504 - .long 3843439293 - .long 3292070943 - .long 1917248420 - .long 3954988571 - .long 1687350944 - .long 618475008 - .long 3391911291 - .long 2289174591 - .long 3834496840 - .long 3615009846 - .long 3374701889 - .long 1236950016 - .long 2488855287 - .long 283381887 - .long 3374026384 - .long 2935052397 - .long 2454436482 - .long 2473900033 - .long 682743279 - .long 566763775 - .long 2453085473 - .long 1575137499 - .long 613905668 - .long 652832771 - .long 1365486558 - .long 1133527550 - .long 611203650 - .long 3150274999 - .long 1227811337 - .long 1305665542 - .long 2730973117 - .long 2267055100 - .long 1222407300 - .long 2005582702 - .long 2455622675 - .long 2611331084 - .long 1166978938 - .long 239142905 - .long 2444814601 - .long 4011165404 - .long 616278055 - .long 927694873 - .long 2333957877 - .long 478285810 - .long 594661906 - .long 3727363513 - .long 1232556110 - .long 1855389746 - .long 372948459 - .long 956571621 - .long 1189323812 - .long 3159759730 - .long 2465112221 - .long 3710779492 - .long 745896919 - .long 1913143242 - .long 2378647625 - .long 2024552164 - .long 635257146 - .long 3126591689 - .long 1491793838 - .long 3826286484 - .long 462327955 - .long 4049104329 - .long 1270514292 - .long 1958216082 - .long 2983587677 - .long 3357605672 - .long 924655910 - .long 3803241362 - .long 2541028584 - .long 3916432164 - .long 1672208059 - .long 2420244049 - .long 1849311821 - .long 3311515428 - .long 787089873 - .long 3537897033 - .long 3344416119 - .long 545520802 - .long 3698623643 - .long 2328063560 - .long 1574179747 - .long 2780826770 - .long 2393864943 - .long 1091041605 - .long 3102279991 - .long 361159825 - .long 3148359494 - .long 1266686244 - .long 492762590 - .long 2182083211 - .long 1909592686 - .long 722319651 - .long 2001751692 - .long 2533372489 - .long 985525180 - .long 69199126 - .long 3819185373 - .long 1444639302 - .long 4003503385 - .long 771777682 - .long 1971050360 - .long 138398252 - .long 3343403450 - .long 2889278605 - .long 3712039474 - .long 1543555365 - .long 3942100721 - .long 276796504 - .long 2391839604 - .long 1483589915 - .long 3129111652 - .long 3087110731 - .long 3589234146 - .long 553593009 - .long 488711913 - .long 2967179831 - .long 1963256009 - .long 1879254167 - .long 2883500997 - .long 1107186019 - .long 977423826 - .long 1639392366 - .long 3926512018 - .long 3758508334 - .long 1472034698 - .long 2214372039 - .long 1954847653 - .long 3278784732 - .long 3558056740 - .long 3222049373 - .long 2944069397 - .long 133776782 - .long 3909695307 - .long 2262602168 - .long 2821146184 - .long 2149131451 - .long 1593171499 - .long 267553565 - .long 3524423319 - .long 230237041 - .long 1347325072 - .long 3295607 - .long 3186342998 - .long 535107130 - .long 2753879342 - .long 460474083 - .long 2694650145 - .long 6591214 - .long 2077718700 - .long 1070214261 - .long 1212791388 - .long 920948167 - .long 1094332995 - .long 13182429 - .long 4155437400 - .long 2140428522 - .long 2425582776 - .long 1841896334 - .long 2188665991 - .long 26364858 - .long 4015907504 - .long 4280857045 - .long 556198256 - .long 3683792669 - .long 82364686 - .long 52729717 - .long 3736847713 - .long 4266746795 - .long 1112396512 - .long 3072618042 - .long 164729372 - .long 105459434 - .long 3178728131 - .long 4238526295 - .long 2224793024 - .long 1850268788 - .long 329458745 - .long 210918868 - .long 2062488966 - .long 4182085295 - .long 154618752 - .long 3700537577 - .long 658917491 - .long 421837736 - .long 4124977933 - .long 4069203294 - .long 309237504 - .long 3106107858 - .long 1317834983 - .long 843675472 - .long 3954988571 - .long 3843439293 - .long 618475008 - .long 1917248420 - .long 2635669967 - .long 1687350944 - .long 3615009846 - .long 3391911291 - .long 1236950016 - .long 3834496840 - .long 976372639 - .long 3374701889 - .long 2935052397 - .long 2488855287 - .long 2473900033 - .long 3374026384 - .long 1952745279 - .long 2454436482 - .long 1575137499 - .long 682743279 - .long 652832771 - .long 2453085473 - .long 3905490559 - .long 613905668 - .long 3150274999 - .long 1365486558 - .long 1305665542 - .long 611203650 - .long 3516013822 - .long 1227811337 - .long 2005582702 - .long 2730973117 - .long 2611331084 - .long 1222407300 - .long 2737060348 - .long 2455622675 - .long 4011165404 - .long 1166978938 - .long 927694873 - .long 2444814601 - .long 1179153400 - .long 616278055 - .long 3727363513 - .long 2333957877 - .long 1855389746 - .long 594661906 - .long 2358306800 - .long 1232556110 - .long 3159759730 - .long 372948459 - .long 3710779492 - .long 1189323812 - .long 421646305 - .long 2465112221 - .long 2024552164 - .long 745896919 - .long 3126591689 - .long 2378647625 - .long 843292611 - .long 635257146 - .long 4049104329 - .long 1491793838 - .long 1958216082 - .long 462327955 - .long 1686585223 - .long 1270514292 - .long 3803241362 - .long 2983587677 - .long 3916432164 - .long 924655910 - .long 3373170446 - .long 2541028584 - .long 3311515428 - .long 1672208059 - .long 3537897033 - .long 1849311821 - .long 2451373597 - .long 787089873 - .long 2328063560 - .long 3344416119 - .long 2780826770 - .long 3698623643 - .long 607779899 - .long 1574179747 - .long 361159825 - .long 2393864943 - .long 1266686244 - .long 3102279991 - .long 1215559799 - .long 3148359494 - .long 722319651 - .long 492762590 - .long 2533372489 - .long 1909592686 - .long 2431119599 - .long 2001751692 - .long 1444639302 - .long 985525180 - .long 771777682 - .long 3819185373 - .long 567271902 - .long 4003503385 - .long 2889278605 - .long 1971050360 - .long 1543555365 - .long 3343403450 - .long 1134543805 - .long 3712039474 - .long 1483589915 - .long 3942100721 - .long 3087110731 - .long 2391839604 - .long 2269087610 - .long 3129111652 - .long 2967179831 - .long 3589234146 - .long 1879254167 - .long 488711913 - .long 243207925 - .long 1963256009 - .long 1639392366 - .long 2883500997 - .long 3758508334 - .long 977423826 - .long 486415851 - .long 3926512018 - .long 3278784732 - .long 1472034698 - .long 3222049373 - .long 1954847653 - .long 972831702 - .long 3558056740 - .long 2262602168 - .long 2944069397 - .long 2149131451 - .long 3909695307 - .long 1945663404 - .long 2821146184 - .long 230237041 - .long 1593171499 - .long 3295607 - .long 3524423319 - .long 3891326808 - .long 1347325072 - .long 460474083 - .long 3186342998 - .long 6591214 - .long 2753879342 - .long 3487686321 - .long 2694650145 - .long 920948167 - .long 2077718700 - .long 13182429 - .long 1212791388 - .long 2680405347 - .long 1094332995 - .long 1841896334 - .long 4155437400 - .long 26364858 - .long 2425582776 - .long 1065843399 - .long 2188665991 - .long 3683792669 - .long 4015907504 - .long 52729717 - .long 556198256 - .long 2131686798 - .long 82364686 - .long 3072618042 - .long 3736847713 - .long 105459434 - .long 1112396512 - .long 4263373596 - .long 164729372 - .long 1850268788 - .long 3178728131 - .long 210918868 - .long 2224793024 - .long 4231779897 - .long 329458745 - .long 3700537577 - .long 2062488966 - .long 421837736 - .long 154618752 - .long 4168592498 - .long 658917491 - .long 3106107858 - .long 4124977933 - .long 843675472 - .long 309237504 - .long 4042217701 - .long 1317834983 - .long 1917248420 - .long 3954988571 - .long 1687350944 - .long 618475008 - .long 3789468107 - .long 2635669967 - .long 3834496840 - .long 3615009846 - .long 3374701889 - .long 1236950016 - .long 3283968918 - .long 976372639 - .long 3374026384 - .long 2935052397 - .long 2454436482 - .long 2473900033 - .long 2272970540 - .long 1952745279 - .long 2453085473 - .long 1575137499 - .long 613905668 - .long 652832771 - .long 250973784 - .long 3905490559 - .long 611203650 - .long 3150274999 - .long 1227811337 - .long 1305665542 - .long 501947569 - .long 3516013822 - .long 1222407300 - .long 2005582702 - .long 2455622675 - .long 2611331084 - .long 1003895138 - .long 2737060348 - .long 2444814601 - .long 4011165404 - .long 616278055 - .long 927694873 - .long 2007790276 - .long 1179153400 - .long 594661906 - .long 3727363513 - .long 1232556110 - .long 1855389746 - .long 4015580553 - .long 2358306800 - .long 1189323812 - .long 3159759730 - .long 2465112221 - .long 3710779492 - .long 3736193810 - .long 421646305 - .long 2378647625 - .long 2024552164 - .long 635257146 - .long 3126591689 - .long 3177420325 - .long 843292611 - .long 462327955 - .long 4049104329 - .long 1270514292 - .long 1958216082 - .long 2059873354 - .long 1686585223 - .long 924655910 - .long 3803241362 - .long 2541028584 - .long 3916432164 - .long 4119746708 - .long 3373170446 - .long 1849311821 - .long 3311515428 - .long 787089873 - .long 3537897033 - .long 3944526121 - .long 2451373597 - .long 3698623643 - .long 2328063560 - .long 1574179747 - .long 2780826770 - .long 3594084947 - .long 607779899 - .long 3102279991 - .long 361159825 - .long 3148359494 - .long 1266686244 - .long 2893202598 - .long 1215559799 - .long 1909592686 - .long 722319651 - .long 2001751692 - .long 2533372489 - .long 1491437901 - .long 2431119599 - .long 3819185373 - .long 1444639302 - .long 4003503385 - .long 771777682 - .long 2982875802 - .long 567271902 - .long 3343403450 - .long 2889278605 - .long 3712039474 - .long 1543555365 - .long 1670784308 - .long 1134543805 - .long 2391839604 - .long 1483589915 - .long 3129111652 - .long 3087110731 - .long 3341568617 - .long 2269087610 - .long 488711913 - .long 2967179831 - .long 1963256009 - .long 1879254167 - .long 2388169939 - .long 243207925 - .long 977423826 - .long 1639392366 - .long 3926512018 - .long 3758508334 - .long 481372583 - .long 486415851 - .long 1954847653 - .long 3278784732 - .long 3558056740 - .long 3222049373 - .long 962745166 - .long 972831702 - .long 3909695307 - .long 2262602168 - .long 2821146184 - .long 2149131451 - .long 1925490332 - .long 1945663404 - .long 3524423319 - .long 230237041 - .long 1347325072 - .long 3295607 - .long 3850980665 - .long 3891326808 - .long 2753879342 - .long 460474083 - .long 2694650145 - .long 6591214 - .long 3406994035 - .long 3487686321 - .long 1212791388 - .long 920948167 - .long 1094332995 - .long 13182429 - .long 2519020775 - .long 2680405347 - .long 2425582776 - .long 1841896334 - .long 2188665991 - .long 26364858 - .long 743074255 - .long 1065843399 - .long 556198256 - .long 3683792669 - .long 82364686 - .long 52729717 - .long 1486148511 - .long 2131686798 - .long 1112396512 - .long 3072618042 - .long 164729372 - .long 105459434 - .long 2972297022 - .long 4263373596 - .long 2224793024 - .long 1850268788 - .long 329458745 - .long 210918868 - .long 1649626749 - .long 4231779897 - .long 154618752 - .long 3700537577 - .long 658917491 - .long 421837736 - .long 3299253499 - .long 4168592498 - .long 309237504 - .long 3106107858 - .long 1317834983 - .long 843675472 - .long 2303539703 - .long 4042217701 - .long 618475008 - .long 1917248420 - .long 2635669967 - .long 1687350944 - .long 312112110 - .long 3789468107 - .long 1236950016 - .long 3834496840 - .long 976372639 - .long 3374701889 - .long 624224221 - .long 3283968918 - .long 2473900033 - .long 3374026384 - .long 1952745279 - .long 2454436482 - .long 1248448442 - .long 2272970540 - .long 652832771 - .long 2453085473 - .long 3905490559 - .long 613905668 - .long 2496896884 - .long 250973784 - .long 1305665542 - .long 611203650 - .long 3516013822 - .long 1227811337 - .long 698826472 - .long 501947569 - .long 2611331084 - .long 1222407300 - .long 2737060348 - .long 2455622675 - .long 1397652945 - .long 1003895138 - .long 927694873 - .long 2444814601 - .long 1179153400 - .long 616278055 - .long 2795305890 - .long 2007790276 - .long 1855389746 - .long 594661906 - .long 2358306800 - .long 1232556110 - .long 1295644484 - .long 4015580553 - .long 3710779492 - .long 1189323812 - .long 421646305 - .long 2465112221 - .long 2591288968 - .long 3736193810 - .long 3126591689 - .long 2378647625 - .long 843292611 - .long 635257146 - .long 887610640 - .long 3177420325 - .long 1958216082 - .long 462327955 - .long 1686585223 - .long 1270514292 - .long 1775221280 - .long 2059873354 - .long 3916432164 - .long 924655910 - .long 3373170446 - .long 2541028584 - .long 3550442561 - .long 4119746708 - .long 3537897033 - .long 1849311821 - .long 2451373597 - .long 787089873 - .long 2805917826 - .long 3944526121 - .long 2780826770 - .long 3698623643 - .long 607779899 - .long 1574179747 - .long 1316868356 - .long 3594084947 - .long 1266686244 - .long 3102279991 - .long 1215559799 - .long 3148359494 - .long 2633736712 - .long 2893202598 - .long 2533372489 - .long 1909592686 - .long 2431119599 - .long 2001751692 - .long 972506129 - .long 1491437901 - .long 771777682 - .long 3819185373 - .long 567271902 - .long 4003503385 - .long 1945012259 - .long 2982875802 - .long 1543555365 - .long 3343403450 - .long 1134543805 - .long 3712039474 - .long 3890024518 - .long 1670784308 - .long 3087110731 - .long 2391839604 - .long 2269087610 - .long 3129111652 - .long 3485081741 - .long 3341568617 - .long 1879254167 - .long 488711913 - .long 243207925 - .long 1963256009 - .long 2675196186 - .long 2388169939 - .long 3758508334 - .long 977423826 - .long 486415851 - .long 3926512018 - .long 1055425077 - .long 481372583 - .long 3222049373 - .long 1954847653 - .long 972831702 - .long 3558056740 - .long 2110850155 - .long 962745166 - .long 2149131451 - .long 3909695307 - .long 1945663404 - .long 2821146184 - .long 4221700311 - .long 1925490332 - .long 3295607 - .long 3524423319 - .long 3891326808 - .long 1347325072 - .long 4148433327 - .long 3850980665 - .long 6591214 - .long 2753879342 - .long 3487686321 - .long 2694650145 - .long 4001899359 - .long 3406994035 - .long 13182429 - .long 1212791388 - .long 2680405347 - .long 1094332995 - .long 3708831422 - .long 2519020775 - .long 26364858 - .long 2425582776 - .long 1065843399 - .long 2188665991 - .long 3122695549 - .long 743074255 - .long 52729717 - .long 556198256 - .long 2131686798 - .long 82364686 - .long 1950423802 - .long 1486148511 - .long 105459434 - .long 1112396512 - .long 4263373596 - .long 164729372 - .long 3900847605 - .long 2972297022 - .long 210918868 - .long 2224793024 - .long 4231779897 - .long 329458745 - .long 3506727914 - .long 1649626749 - .long 421837736 - .long 154618752 - .long 4168592498 - .long 658917491 - .long 2718488532 - .long 3299253499 - .long 843675472 - .long 309237504 - .long 4042217701 - .long 1317834983 - .long 1142009769 - .long 2303539703 - .long 1687350944 - .long 618475008 - .long 3789468107 - .long 2635669967 - .long 2284019538 - .long 312112110 - .long 3374701889 - .long 1236950016 - .long 3283968918 - .long 976372639 - .long 273071781 - .long 624224221 - .long 2454436482 - .long 2473900033 - .long 2272970540 - .long 1952745279 - .long 546143563 - .long 1248448442 - .long 613905668 - .long 652832771 - .long 250973784 - .long 3905490559 - .long 1092287127 - .long 2496896884 - .long 1227811337 - .long 1305665542 - .long 501947569 - .long 3516013822 - .long 2184574254 - .long 698826472 - .long 2455622675 - .long 2611331084 - .long 1003895138 - .long 2737060348 - .long 74181213 - .long 1397652945 - .long 616278055 - .long 927694873 - .long 2007790276 - .long 1179153400 - .long 148362426 - .long 2795305890 - .long 1232556110 - .long 1855389746 - .long 4015580553 - .long 2358306800 - .long 296724853 - .long 1295644484 - .long 2465112221 - .long 3710779492 - .long 3736193810 - .long 421646305 - .long 593449707 - .long 2591288968 - .long 635257146 - .long 3126591689 - .long 3177420325 - .long 843292611 - .long 1186899415 - .long 887610640 - .long 1270514292 - .long 1958216082 - .long 2059873354 - .long 1686585223 - .long 2373798830 - .long 1775221280 - .long 2541028584 - .long 3916432164 - .long 4119746708 - .long 3373170446 - .long 452630365 - .long 3550442561 - .long 787089873 - .long 3537897033 - .long 3944526121 - .long 2451373597 - .long 905260731 - .long 2805917826 - .long 1574179747 - .long 2780826770 - .long 3594084947 - .long 607779899 - .long 1810521462 - .long 1316868356 - .long 3148359494 - .long 1266686244 - .long 2893202598 - .long 1215559799 - .long 3621042925 - .long 2633736712 - .long 2001751692 - .long 2533372489 - .long 1491437901 - .long 2431119599 - .long 2947118554 - .long 972506129 - .long 4003503385 - .long 771777682 - .long 2982875802 - .long 567271902 - .long 1599269812 - .long 1945012259 - .long 3712039474 - .long 1543555365 - .long 1670784308 - .long 1134543805 - .long 3198539624 - .long 3890024518 - .long 3129111652 - .long 3087110731 - .long 3341568617 - .long 2269087610 - .long 2102111953 - .long 3485081741 - .long 1963256009 - .long 1879254167 - .long 2388169939 - .long 243207925 - .long 4204223906 - .long 2675196186 - .long 3926512018 - .long 3758508334 - .long 481372583 - .long 486415851 - .long 4113480516 - .long 1055425077 - .long 3558056740 - .long 3222049373 - .long 962745166 - .long 972831702 - .long 3931993737 - .long 2110850155 - .long 2821146184 - .long 2149131451 - .long 1925490332 - .long 1945663404 - .long 3569020178 - .long 4221700311 - .long 1347325072 - .long 3295607 - .long 3850980665 - .long 3891326808 - .long 2843073060 - .long 4148433327 - .long 2694650145 - .long 6591214 - .long 3406994035 - .long 3487686321 - .long 1391178824 - .long 4001899359 - .long 1094332995 - .long 13182429 - .long 2519020775 - .long 2680405347 - .long 2782357648 - .long 3708831422 - .long 2188665991 - .long 26364858 - .long 743074255 - .long 1065843399 - .long 1269748001 - .long 3122695549 - .long 82364686 - .long 52729717 - .long 1486148511 - .long 2131686798 - .long 2539496002 - .long 1950423802 - .long 164729372 - .long 105459434 - .long 2972297022 - .long 4263373596 - .long 784024708 - .long 3900847605 - .long 329458745 - .long 210918868 - .long 1649626749 - .long 4231779897 - .long 1568049417 - .long 3506727914 - .long 658917491 - .long 421837736 - .long 3299253499 - .long 4168592498 - .long 3136098835 - .long 2718488532 - .long 1317834983 - .long 843675472 - .long 2303539703 - .long 4042217701 - .long 1977230375 - .long 1142009769 - .long 2635669967 - .long 1687350944 - .long 312112110 - .long 3789468107 - .long 3954460750 - .long 2284019538 - .long 976372639 - .long 3374701889 - .long 624224221 - .long 3283968918 - .long 3613954205 - .long 273071781 - .long 1952745279 - .long 2454436482 - .long 1248448442 - .long 2272970540 - .long 2932941114 - .long 546143563 - .long 3905490559 - .long 613905668 - .long 2496896884 - .long 250973784 - .long 1570914932 - .long 1092287127 - .long 3516013822 - .long 1227811337 - .long 698826472 - .long 501947569 - .long 3141829865 - .long 2184574254 - .long 2737060348 - .long 2455622675 - .long 1397652945 - .long 1003895138 - .long 1988692435 - .long 74181213 - .long 1179153400 - .long 616278055 - .long 2795305890 - .long 2007790276 - .long 3977384870 - .long 148362426 - .long 2358306800 - .long 1232556110 - .long 1295644484 - .long 4015580553 - .long 3659802444 - .long 296724853 - .long 421646305 - .long 2465112221 - .long 2591288968 - .long 3736193810 - .long 3024637593 - .long 593449707 - .long 843292611 - .long 635257146 - .long 887610640 - .long 3177420325 - .long 1754307891 - .long 1186899415 - .long 1686585223 - .long 1270514292 - .long 1775221280 - .long 2059873354 - .long 3508615783 - .long 2373798830 - .long 3373170446 - .long 2541028584 - .long 3550442561 - .long 4119746708 - .long 2722264270 - .long 452630365 - .long 2451373597 - .long 787089873 - .long 2805917826 - .long 3944526121 - .long 1149561244 - .long 905260731 - .long 607779899 - .long 1574179747 - .long 1316868356 - .long 3594084947 - .long 2299122488 - .long 1810521462 - .long 1215559799 - .long 3148359494 - .long 2633736712 - .long 2893202598 - .long 303277681 - .long 3621042925 - .long 2431119599 - .long 2001751692 - .long 972506129 - .long 1491437901 - .long 606555363 - .long 2947118554 - .long 567271902 - .long 4003503385 - .long 1945012259 - .long 2982875802 - .long 1213110727 - .long 1599269812 - .long 1134543805 - .long 3712039474 - .long 3890024518 - .long 1670784308 - .long 2426221454 - .long 3198539624 - .long 2269087610 - .long 3129111652 - .long 3485081741 - .long 3341568617 - .long 557475612 - .long 2102111953 - .long 243207925 - .long 1963256009 - .long 2675196186 - .long 2388169939 - .long 1114951224 - .long 4204223906 - .long 486415851 - .long 3926512018 - .long 1055425077 - .long 481372583 - .long 2229902448 - .long 4113480516 - .long 972831702 - .long 3558056740 - .long 2110850155 - .long 962745166 - .long 164837600 - .long 3931993737 - .long 1945663404 - .long 2821146184 - .long 4221700311 - .long 1925490332 - .long 329675200 - .long 3569020178 - .long 3891326808 - .long 1347325072 - .long 4148433327 - .long 3850980665 - .long 659350401 - .long 2843073060 - .long 3487686321 - .long 2694650145 - .long 4001899359 - .long 3406994035 - .long 1318700802 - .long 1391178824 - .long 2680405347 - .long 1094332995 - .long 3708831422 - .long 2519020775 - .long 2637401604 - .long 2782357648 - .long 1065843399 - .long 2188665991 - .long 3122695549 - .long 743074255 - .long 979835913 - .long 1269748001 - .long 2131686798 - .long 82364686 - .long 1950423802 - .long 1486148511 - .long 1959671827 - .long 2539496002 - .long 4263373596 - .long 164729372 - .long 3900847605 - .long 2972297022 - .long 3919343654 - .long 784024708 - .long 4231779897 - .long 329458745 - .long 3506727914 - .long 1649626749 - .long 3543720013 - .long 1568049417 - .long 4168592498 - .long 658917491 - .long 2718488532 - .long 3299253499 - .long 2792472730 - .long 3136098835 - .long 4042217701 - .long 1317834983 - .long 1142009769 - .long 2303539703 - .long 1289978165 - .long 1977230375 - .long 3789468107 - .long 2635669967 - .long 2284019538 - .long 312112110 - .long 2579956331 - .long 3954460750 - .long 3283968918 - .long 976372639 - .long 273071781 - .long 624224221 - .long 864945366 - .long 3613954205 - .long 2272970540 - .long 1952745279 - .long 546143563 - .long 1248448442 - .long 1729890733 - .long 2932941114 - .long 250973784 - .long 3905490559 - .long 1092287127 - .long 2496896884 - .long 3459781466 - .long 1570914932 - .long 501947569 - .long 3516013822 - .long 2184574254 - .long 698826472 - .long 2624595636 - .long 3141829865 - .long 1003895138 - .long 2737060348 - .long 74181213 - .long 1397652945 - .long 954223976 - .long 1988692435 - .long 2007790276 - .long 1179153400 - .long 148362426 - .long 2795305890 - .long 1908447953 - .long 3977384870 - .long 4015580553 - .long 2358306800 - .long 296724853 - .long 1295644484 - .long 3816895906 - .long 3659802444 - .long 3736193810 - .long 421646305 - .long 593449707 - .long 2591288968 - .long 3338824517 - .long 3024637593 - .long 3177420325 - .long 843292611 - .long 1186899415 - .long 887610640 - .long 2382681739 - .long 1754307891 - .long 2059873354 - .long 1686585223 - .long 2373798830 - .long 1775221280 - .long 470396183 - .long 3508615783 - .long 4119746708 - .long 3373170446 - .long 452630365 - .long 3550442561 - .long 940792367 - .long 2722264270 - .long 3944526121 - .long 2451373597 - .long 905260731 - .long 2805917826 - .long 1881584735 - .long 1149561244 - .long 3594084947 - .long 607779899 - .long 1810521462 - .long 1316868356 - .long 3763169470 - .long 2299122488 - .long 2893202598 - .long 1215559799 - .long 3621042925 - .long 2633736712 - .long 3231371645 - .long 303277681 - .long 1491437901 - .long 2431119599 - .long 2947118554 - .long 972506129 - .long 2167775995 - .long 606555363 - .long 2982875802 - .long 567271902 - .long 1599269812 - .long 1945012259 - .long 40584695 - .long 1213110727 - .long 1670784308 - .long 1134543805 - .long 3198539624 - .long 3890024518 - .long 81169391 - .long 2426221454 - .long 3341568617 - .long 2269087610 - .long 2102111953 - .long 3485081741 - .long 162338783 - .long 557475612 - .long 2388169939 - .long 243207925 - .long 4204223906 - .long 2675196186 - .long 324677567 - .long 1114951224 - .long 481372583 - .long 486415851 - .long 4113480516 - .long 1055425077 - .long 649355134 - .long 2229902448 - .long 962745166 - .long 972831702 - .long 3931993737 - .long 2110850155 - .long 1298710268 - .long 164837600 - .long 1925490332 - .long 1945663404 - .long 3569020178 - .long 4221700311 - .long 2597420537 - .long 329675200 - .long 3850980665 - .long 3891326808 - .long 2843073060 - .long 4148433327 - .long 899873778 - .long 659350401 - .long 3406994035 - .long 3487686321 - .long 1391178824 - .long 4001899359 - .long 1799747556 - .long 1318700802 - .long 2519020775 - .long 2680405347 - .long 2782357648 - .long 3708831422 - .long 3599495112 - .long 2637401604 - .long 743074255 - .long 1065843399 - .long 1269748001 - .long 3122695549 - .long 2904022928 - .long 979835913 - .long 1486148511 - .long 2131686798 - .long 2539496002 - .long 1950423802 - .long 1513078560 - .long 1959671827 - .long 2972297022 - .long 4263373596 - .long 784024708 - .long 3900847605 - .long 3026157121 - .long 3919343654 - .long 1649626749 - .long 4231779897 - .long 1568049417 - .long 3506727914 - .long 1757346946 - .long 3543720013 - .long 3299253499 - .long 4168592498 - .long 3136098835 - .long 2718488532 - .long 3514693892 - .long 2792472730 - .long 2303539703 - .long 4042217701 - .long 1977230375 - .long 1142009769 - .long 2734420489 - .long 1289978165 - .long 312112110 - .long 3789468107 - .long 3954460750 - .long 2284019538 - .long 1173873683 - .long 2579956331 - .long 624224221 - .long 3283968918 - .long 3613954205 - .long 273071781 - .long 2347747367 - .long 864945366 - .long 1248448442 - .long 2272970540 - .long 2932941114 - .long 546143563 - .long 400527438 - .long 1729890733 - .long 2496896884 - .long 250973784 - .long 1570914932 - .long 1092287127 - .long 801054876 - .long 3459781466 - .long 698826472 - .long 501947569 - .long 3141829865 - .long 2184574254 - .long 1602109753 - .long 2624595636 - .long 1397652945 - .long 1003895138 - .long 1988692435 - .long 74181213 - .long 3204219507 - .long 954223976 - .long 2795305890 - .long 2007790276 - .long 3977384870 - .long 148362426 - .long 2113471718 - .long 1908447953 - .long 1295644484 - .long 4015580553 - .long 3659802444 - .long 296724853 - .long 4226943436 - .long 3816895906 - .long 2591288968 - .long 3736193810 - .long 3024637593 - .long 593449707 - .long 4158919577 - .long 3338824517 - .long 887610640 - .long 3177420325 - .long 1754307891 - .long 1186899415 - .long 4022871858 - .long 2382681739 - .long 1775221280 - .long 2059873354 - .long 3508615783 - .long 2373798830 - .long 3750776420 - .long 470396183 - .long 3550442561 - .long 4119746708 - .long 2722264270 - .long 452630365 - .long 3206585544 - .long 940792367 - .long 2805917826 - .long 3944526121 - .long 1149561244 - .long 905260731 - .long 2118203793 - .long 1881584735 - .long 1316868356 - .long 3594084947 - .long 2299122488 - .long 1810521462 - .long 4236407587 - .long 3763169470 - .long 2633736712 - .long 2893202598 - .long 303277681 - .long 3621042925 - .long 4177847879 - .long 3231371645 - .long 972506129 - .long 1491437901 - .long 606555363 - .long 2947118554 - .long 4060728462 - .long 2167775995 - .long 1945012259 - .long 2982875802 - .long 1213110727 - .long 1599269812 - .long 3826489629 - .long 40584695 - .long 3890024518 - .long 1670784308 - .long 2426221454 - .long 3198539624 - .long 3358011962 - .long 81169391 - .long 3485081741 - .long 3341568617 - .long 557475612 - .long 2102111953 - .long 2421056629 - .long 162338783 - .long 2675196186 - .long 2388169939 - .long 1114951224 - .long 4204223906 - .long 547145963 - .long 324677567 - .long 1055425077 - .long 481372583 - .long 2229902448 - .long 4113480516 - .long 1094291926 - .long 649355134 - .long 2110850155 - .long 962745166 - .long 164837600 - .long 3931993737 - .long 2188583852 - .long 1298710268 - .long 4221700311 - .long 1925490332 - .long 329675200 - .long 3569020178 - .long 82200408 - .long 2597420537 - .long 4148433327 - .long 3850980665 - .long 659350401 - .long 2843073060 - .long 164400817 - .long 899873778 - .long 4001899359 - .long 3406994035 - .long 1318700802 - .long 1391178824 - .long 328801635 - .long 1799747556 - .long 3708831422 - .long 2519020775 - .long 2637401604 - .long 2782357648 - .long 657603271 - .long 3599495112 - .long 3122695549 - .long 743074255 - .long 979835913 - .long 1269748001 - .long 1315206542 - .long 2904022928 - .long 1950423802 - .long 1486148511 - .long 1959671827 - .long 2539496002 - .long 2630413084 - .long 1513078560 - .long 3900847605 - .long 2972297022 - .long 3919343654 - .long 784024708 - .long 965858873 - .long 3026157121 - .long 3506727914 - .long 1649626749 - .long 3543720013 - .long 1568049417 - .long 1931717747 - .long 1757346946 - .long 2718488532 - .long 3299253499 - .long 2792472730 - .long 3136098835 - .long 3863435494 - .long 3514693892 - .long 1142009769 - .long 2303539703 - .long 1289978165 - .long 1977230375 - .long 3431903692 - .long 2734420489 - .long 2284019538 - .long 312112110 - .long 2579956331 - .long 3954460750 - .long 2568840088 - .long 1173873683 - .long 273071781 - .long 624224221 - .long 864945366 - .long 3613954205 - .long 842712880 - .long 2347747367 - .long 546143563 - .long 1248448442 - .long 1729890733 - .long 2932941114 - .long 1685425760 - .long 400527438 - .long 1092287127 - .long 2496896884 - .long 3459781466 - .long 1570914932 - .long 3370851521 - .long 801054876 - .long 2184574254 - .long 698826472 - .long 2624595636 - .long 3141829865 - .long 2446735747 - .long 1602109753 - .long 74181213 - .long 1397652945 - .long 954223976 - .long 1988692435 - .long 598504198 - .long 3204219507 - .long 148362426 - .long 2795305890 - .long 1908447953 - .long 3977384870 - .long 1197008397 - .long 2113471718 - .long 296724853 - .long 1295644484 - .long 3816895906 - .long 3659802444 - .long 2394016794 - .long 4226943436 - .long 593449707 - .long 2591288968 - .long 3338824517 - .long 3024637593 - .long 493066293 - .long 4158919577 - .long 1186899415 - .long 887610640 - .long 2382681739 - .long 1754307891 - .long 986132586 - .long 4022871858 - .long 2373798830 - .long 1775221280 - .long 470396183 - .long 3508615783 - .long 1972265172 - .long 3750776420 - .long 452630365 - .long 3550442561 - .long 940792367 - .long 2722264270 - .long 3944530345 - .long 3206585544 - .long 905260731 - .long 2805917826 - .long 1881584735 - .long 1149561244 - .long 3594093395 - .long 2118203793 - .long 1810521462 - .long 1316868356 - .long 3763169470 - .long 2299122488 - .long 2893219494 - .long 4236407587 - .long 3621042925 - .long 2633736712 - .long 3231371645 - .long 303277681 - .long 1491471692 - .long 4177847879 - .long 2947118554 - .long 972506129 - .long 2167775995 - .long 606555363 - .long 2982943385 - .long 4060728462 - .long 1599269812 - .long 1945012259 - .long 40584695 - .long 1213110727 - .long 1670919475 - .long 3826489629 - .long 3198539624 - .long 3890024518 - .long 81169391 - .long 2426221454 - .long 3341838951 - .long 3358011962 - .long 2102111953 - .long 3485081741 - .long 162338783 - .long 557475612 - .long 2388710606 - .long 2421056629 - .long 4204223906 - .long 2675196186 - .long 324677567 - .long 1114951224 - .long 482453916 - .long 547145963 - .long 4113480516 - .long 1055425077 - .long 649355134 - .long 2229902448 - .long 964907833 - .long 1094291926 - .long 3931993737 - .long 2110850155 - .long 1298710268 - .long 164837600 - .long 1929815667 - .long 2188583852 - .long 3569020178 - .long 4221700311 - .long 2597420537 - .long 329675200 - .long 3859631335 - .long 82200408 - .long 2843073060 - .long 4148433327 - .long 899873778 - .long 659350401 - .long 3424295375 - .long 164400817 - .long 1391178824 - .long 4001899359 - .long 1799747556 - .long 1318700802 - .long 2553623455 - .long 328801635 - .long 2782357648 - .long 3708831422 - .long 3599495112 - .long 2637401604 - .long 812279614 - .long 657603271 - .long 1269748001 - .long 3122695549 - .long 2904022928 - .long 979835913 - .long 1624559229 - .long 1315206542 - .long 2539496002 - .long 1950423802 - .long 1513078560 - .long 1959671827 - .long 3249118458 - .long 2630413084 - .long 784024708 - .long 3900847605 - .long 3026157121 - .long 3919343654 - .long 2203269620 - .long 965858873 - .long 1568049417 - .long 3506727914 - .long 1757346946 - .long 3543720013 - .long 111571945 - .long 1931717747 - .long 3136098835 - .long 2718488532 - .long 3514693892 - .long 2792472730 - .long 223143890 - .long 3863435494 - .long 1977230375 - .long 1142009769 - .long 2734420489 - .long 1289978165 - .long 446287780 - .long 3431903692 - .long 3954460750 - .long 2284019538 - .long 1173873683 - .long 2579956331 - .long 892575561 - .long 2568840088 - .long 3613954205 - .long 273071781 - .long 2347747367 - .long 864945366 - .long 1785151123 - .long 842712880 - .long 2932941114 - .long 546143563 - .long 400527438 - .long 1729890733 - .long 3570302247 - .long 1685425760 - .long 1570914932 - .long 1092287127 - .long 801054876 - .long 3459781466 - .long 2845637198 - .long 3370851521 - .long 3141829865 - .long 2184574254 - .long 1602109753 - .long 2624595636 - .long 1396307100 - .long 2446735747 - .long 1988692435 - .long 74181213 - .long 3204219507 - .long 954223976 - .long 2792614201 - .long 598504198 - .long 3977384870 - .long 148362426 - .long 2113471718 - .long 1908447953 - .long 1290261106 - .long 1197008397 - .long 3659802444 - .long 296724853 - .long 4226943436 - .long 3816895906 - .long 2580522212 - .long 2394016794 - .long 3024637593 - .long 593449707 - .long 4158919577 - .long 3338824517 - .long 866077128 - .long 493066293 - .long 1754307891 - .long 1186899415 - .long 4022871858 - .long 2382681739 - .long 1732154256 - .long 986132586 - .long 3508615783 - .long 2373798830 - .long 3750776420 - .long 470396183 - .long 3464308513 - .long 1972265172 - .long 2722264270 - .long 452630365 - .long 3206585544 - .long 940792367 - .long 2633649730 - .long 3944530345 - .long 1149561244 - .long 905260731 - .long 2118203793 - .long 1881584735 - .long 972332164 - .long 3594093395 - .long 2299122488 - .long 1810521462 - .long 4236407587 - .long 3763169470 - .long 1944664328 - .long 2893219494 - .long 303277681 - .long 3621042925 - .long 4177847879 - .long 3231371645 - .long 3889328657 - .long 1491471692 - .long 606555363 - .long 2947118554 - .long 4060728462 - .long 2167775995 - .long 3483690018 - .long 2982943385 - .long 1213110727 - .long 1599269812 - .long 3826489629 - .long 40584695 - .long 2672412741 - .long 1670919475 - .long 2426221454 - .long 3198539624 - .long 3358011962 - .long 81169391 - .long 1049858187 - .long 3341838951 - .long 557475612 - .long 2102111953 - .long 2421056629 - .long 162338783 - .long 2099716375 - .long 2388710606 - .long 1114951224 - .long 4204223906 - .long 547145963 - .long 324677567 - .long 4199432751 - .long 482453916 - .long 2229902448 - .long 4113480516 - .long 1094291926 - .long 649355134 - .long 4103898207 - .long 964907833 - .long 164837600 - .long 3931993737 - .long 2188583852 - .long 1298710268 - .long 3912829119 - .long 1929815667 - .long 329675200 - .long 3569020178 - .long 82200408 - .long 2597420537 - .long 3530690942 - .long 3859631335 - .long 659350401 - .long 2843073060 - .long 164400817 - .long 899873778 - .long 2766414588 - .long 3424295375 - .long 1318700802 - .long 1391178824 - .long 328801635 - .long 1799747556 - .long 1237861880 - .long 2553623455 - .long 2637401604 - .long 2782357648 - .long 657603271 - .long 3599495112 - .long 2475723761 - .long 812279614 - .long 979835913 - .long 1269748001 - .long 1315206542 - .long 2904022928 - .long 656480226 - .long 1624559229 - .long 1959671827 - .long 2539496002 - .long 2630413084 - .long 1513078560 - .long 1312960453 - .long 3249118458 - .long 3919343654 - .long 784024708 - .long 965858873 - .long 3026157121 - .long 2625920907 - .long 2203269620 - .long 3543720013 - .long 1568049417 - .long 1931717747 - .long 1757346946 - .long 956874519 - .long 111571945 - .long 2792472730 - .long 3136098835 - .long 3863435494 - .long 3514693892 - .long 1913749038 - .long 223143890 - .long 1289978165 - .long 1977230375 - .long 3431903692 - .long 2734420489 - .long 3827498077 - .long 446287780 - .long 2579956331 - .long 3954460750 - .long 2568840088 - .long 1173873683 - .long 3360028859 - .long 892575561 - .long 864945366 - .long 3613954205 - .long 842712880 - .long 2347747367 - .long 2425090423 - .long 1785151123 - .long 1729890733 - .long 2932941114 - .long 1685425760 - .long 400527438 - .long 555213551 - .long 3570302247 - .long 3459781466 - .long 1570914932 - .long 3370851521 - .long 801054876 - .long 1110427102 - .long 2845637198 - .long 2624595636 - .long 3141829865 - .long 2446735747 - .long 1602109753 - .long 2220854205 - .long 1396307100 - .long 954223976 - .long 1988692435 - .long 598504198 - .long 3204219507 - .long 146741115 - .long 2792614201 - .long 1908447953 - .long 3977384870 - .long 1197008397 - .long 2113471718 - .long 293482231 - .long 1290261106 - .long 3816895906 - .long 3659802444 - .long 2394016794 - .long 4226943436 - .long 586964463 - .long 2580522212 - .long 3338824517 - .long 3024637593 - .long 493066293 - .long 4158919577 - .long 1173928927 - .long 866077128 - .long 2382681739 - .long 1754307891 - .long 986132586 - .long 4022871858 - .long 2347857855 - .long 1732154256 - .long 470396183 - .long 3508615783 - .long 1972265172 - .long 3750776420 - .long 400748414 - .long 3464308513 - .long 940792367 - .long 2722264270 - .long 3944530345 - .long 3206585544 - .long 801496828 - .long 2633649730 - .long 1881584735 - .long 1149561244 - .long 3594093395 - .long 2118203793 - .long 1602993657 - .long 972332164 - .long 3763169470 - .long 2299122488 - .long 2893219494 - .long 4236407587 - .long 3205987314 - .long 1944664328 - .long 3231371645 - .long 303277681 - .long 1491471692 - .long 4177847879 - .long 2117007332 - .long 3889328657 - .long 2167775995 - .long 606555363 - .long 2982943385 - .long 4060728462 - .long 4234014665 - .long 3483690018 - .long 40584695 - .long 1213110727 - .long 1670919475 - .long 3826489629 - .long 4173062034 - .long 2672412741 - .long 81169391 - .long 2426221454 - .long 3341838951 - .long 3358011962 - .long 4051156773 - .long 1049858187 - .long 162338783 - .long 557475612 - .long 2388710606 - .long 2421056629 - .long 3807346250 - .long 2099716375 - .long 324677567 - .long 1114951224 - .long 482453916 - .long 547145963 - .long 3319725204 - .long 4199432751 - .long 649355134 - .long 2229902448 - .long 964907833 - .long 1094291926 - .long 2344483112 - .long 4103898207 - .long 1298710268 - .long 164837600 - .long 1929815667 - .long 2188583852 - .long 393998928 - .long 3912829119 - .long 2597420537 - .long 329675200 - .long 3859631335 - .long 82200408 - .long 787997856 - .long 3530690942 - .long 899873778 - .long 659350401 - .long 3424295375 - .long 164400817 - .long 1575995713 - .long 2766414588 - .long 1799747556 - .long 1318700802 - .long 2553623455 - .long 328801635 - .long 3151991427 - .long 1237861880 - .long 3599495112 - .long 2637401604 - .long 812279614 - .long 657603271 - .long 2009015559 - .long 2475723761 - .long 2904022928 - .long 979835913 - .long 1624559229 - .long 1315206542 - .long 4018031118 - .long 656480226 - .long 1513078560 - .long 1959671827 - .long 3249118458 - .long 2630413084 - .long 3741094941 - .long 1312960453 - .long 3026157121 - .long 3919343654 - .long 2203269620 - .long 965858873 - .long 3187222587 - .long 2625920907 - .long 1757346946 - .long 3543720013 - .long 111571945 - .long 1931717747 - .long 2079477878 - .long 956874519 - .long 3514693892 - .long 2792472730 - .long 223143890 - .long 3863435494 - .long 4158955756 - .long 1913749038 - .long 2734420489 - .long 1289978165 - .long 446287780 - .long 3431903692 - .long 4022944216 - .long 3827498077 - .long 1173873683 - .long 2579956331 - .long 892575561 - .long 2568840088 - .long 3750921137 - .long 3360028859 - .long 2347747367 - .long 864945366 - .long 1785151123 - .long 842712880 - .long 3206874979 - .long 2425090423 - .long 400527438 - .long 1729890733 - .long 3570302247 - .long 1685425760 - .long 2118782663 - .long 555213551 - .long 801054876 - .long 3459781466 - .long 2845637198 - .long 3370851521 - .long 4237565327 - .long 1110427102 - .long 1602109753 - .long 2624595636 - .long 1396307100 - .long 2446735747 - .long 4180163359 - .long 2220854205 - .long 3204219507 - .long 954223976 - .long 2792614201 - .long 598504198 - .long 4065359423 - .long 146741115 - .long 2113471718 - .long 1908447953 - .long 1290261106 - .long 1197008397 - .long 3835751551 - .long 293482231 - .long 4226943436 - .long 3816895906 - .long 2580522212 - .long 2394016794 - .long 3376535807 - .long 586964463 - .long 4158919577 - .long 3338824517 - .long 866077128 - .long 493066293 - .long 2458104319 - .long 1173928927 - .long 4022871858 - .long 2382681739 - .long 1732154256 - .long 986132586 - .long 621241343 - .long 2347857855 - .long 3750776420 - .long 470396183 - .long 3464308513 - .long 1972265172 - .long 1242482686 - .long 400748414 - .long 3206585544 - .long 940792367 - .long 2633649730 - .long 3944530345 - .long 2484965372 - .long 801496828 - .long 2118203793 - .long 1881584735 - .long 972332164 - .long 3594093395 - .long 674963448 - .long 1602993657 - .long 4236407587 - .long 3763169470 - .long 1944664328 - .long 2893219494 - .long 1349926897 - .long 3205987314 - .long 4177847879 - .long 3231371645 - .long 3889328657 - .long 1491471692 - .long 2699853794 - .long 2117007332 - .long 4060728462 - .long 2167775995 - .long 3483690018 - .long 2982943385 - .long 1104740292 - .long 4234014665 - .long 3826489629 - .long 40584695 - .long 2672412741 - .long 1670919475 - .long 2209480585 - .long 4173062034 - .long 3358011962 - .long 81169391 - .long 1049858187 - .long 3341838951 - .long 123993874 - .long 4051156773 - .long 2421056629 - .long 162338783 - .long 2099716375 - .long 2388710606 - .long 247987749 - .long 3807346250 - .long 547145963 - .long 324677567 - .long 4199432751 - .long 482453916 - .long 495975499 - .long 3319725204 - .long 1094291926 - .long 649355134 - .long 4103898207 - .long 964907833 - .long 991950999 - .long 2344483112 - .long 2188583852 - .long 1298710268 - .long 3912829119 - .long 1929815667 - .long 1983901999 - .long 393998928 - .long 82200408 - .long 2597420537 - .long 3530690942 - .long 3859631335 - .long 3967803999 - .long 787997856 - .long 164400817 - .long 899873778 - .long 2766414588 - .long 3424295375 - .long 3640640703 - .long 1575995713 - .long 328801635 - .long 1799747556 - .long 1237861880 - .long 2553623455 - .long 2986314111 - .long 3151991427 - .long 657603271 - .long 3599495112 - .long 2475723761 - .long 812279614 - .long 1677660927 - .long 2009015559 - .long 1315206542 - .long 2904022928 - .long 656480226 - .long 1624559229 - .long 3355321855 - .long 4018031118 - .long 2630413084 - .long 1513078560 - .long 1312960453 - .long 3249118458 - .long 2415676415 - .long 3741094941 - .long 965858873 - .long 3026157121 - .long 2625920907 - .long 2203269620 - .long 536385535 - .long 3187222587 - .long 1931717747 - .long 1757346946 - .long 956874519 - .long 111571945 - .long 1072771071 - .long 2079477878 - .long 3863435494 - .long 3514693892 - .long 1913749038 - .long 223143890 - .long 2145542143 - .long 4158955756 - .long 3431903692 - .long 2734420489 - .long 3827498077 - .long 446287780 - .long 4291084286 - .long 4022944216 - .long 2568840088 - .long 1173873683 - .long 3360028859 - .long 892575561 - .long 4287201277 - .long 3750921137 - .long 842712880 - .long 2347747367 - .long 2425090423 - .long 1785151123 - .long 4279435259 - .long 3206874979 - .long 1685425760 - .long 400527438 - .long 555213551 - .long 3570302247 - .long 4263903223 - .long 2118782663 - .long 3370851521 - .long 801054876 - .long 1110427102 - .long 2845637198 - .long 4232839151 - .long 4237565327 - .long 2446735747 - .long 1602109753 - .long 2220854205 - .long 1396307100 - .long 4170711006 - .long 4180163359 - .long 598504198 - .long 3204219507 - .long 146741115 - .long 2792614201 - .long 4046454716 - .long 4065359423 - .long 1197008397 - .long 2113471718 - .long 293482231 - .long 1290261106 - .long 3797942136 - .long 3835751551 - .long 2394016794 - .long 4226943436 - .long 586964463 - .long 2580522212 - .long 3300916976 - .long 3376535807 - .long 493066293 - .long 4158919577 - .long 1173928927 - .long 866077128 - .long 2306866656 - .long 2458104319 - .long 986132586 - .long 4022871858 - .long 2347857855 - .long 1732154256 - .long 318766016 - .long 621241343 - .long 1972265172 - .long 3750776420 - .long 400748414 - .long 3464308513 - .long 637532033 - .long 1242482686 - .long 3944530345 - .long 3206585544 - .long 801496828 - .long 2633649730 - .long 1275064066 - .long 2484965372 - .long 3594093395 - .long 2118203793 - .long 1602993657 - .long 972332164 - .long 2550128133 - .long 674963448 - .long 2893219494 - .long 4236407587 - .long 3205987314 - .long 1944664328 - .long 805288971 - .long 1349926897 - .long 1491471692 - .long 4177847879 - .long 2117007332 - .long 3889328657 - .long 1610577942 - .long 2699853794 - .long 2982943385 - .long 4060728462 - .long 4234014665 - .long 3483690018 - .long 3221155884 - .long 1104740292 - .long 1670919475 - .long 3826489629 - .long 4173062034 - .long 2672412741 - .long 2147344473 - .long 2209480585 - .long 3341838951 - .long 3358011962 - .long 4051156773 - .long 1049858187 - .long 4294688947 - .long 123993874 - .long 2388710606 - .long 2421056629 - .long 3807346250 - .long 2099716375 - .long 4294410598 - .long 247987749 - .long 482453916 - .long 547145963 - .long 3319725204 - .long 4199432751 - .long 4293853900 - .long 495975499 - .long 964907833 - .long 1094291926 - .long 2344483112 - .long 4103898207 - .long 4292740504 - .long 991950999 - .long 1929815667 - .long 2188583852 - .long 393998928 - .long 3912829119 - .long 4290513712 - .long 1983901999 - .long 3859631335 - .long 82200408 - .long 787997856 - .long 3530690942 - .long 4286060128 - .long 3967803999 - .long 3424295375 - .long 164400817 - .long 1575995713 - .long 2766414588 - .long 4277152960 - .long 3640640703 - .long 2553623455 - .long 328801635 - .long 3151991427 - .long 1237861880 - .long 4259338624 - .long 2986314111 - .long 812279614 - .long 657603271 - .long 2009015559 - .long 2475723761 - .long 4223709953 - .long 1677660927 - .long 1624559229 - .long 1315206542 - .long 4018031118 - .long 656480226 - .long 4152452611 - .long 3355321855 - .long 3249118458 - .long 2630413084 - .long 3741094941 - .long 1312960453 - .long 4009937927 - .long 2415676415 - .long 2203269620 - .long 965858873 - .long 3187222587 - .long 2625920907 - .long 3724908559 - .long 536385535 - .long 111571945 - .long 1931717747 - .long 2079477878 - .long 956874519 - .long 3154849823 - .long 1072771071 - .long 223143890 - .long 3863435494 - .long 4158955756 - .long 1913749038 - .long 2014732351 - .long 2145542143 - .long 446287780 - .long 3431903692 - .long 4022944216 - .long 3827498077 - .long 4029464703 - .long 4291084286 - .long 892575561 - .long 2568840088 - .long 3750921137 - .long 3360028859 - .long 3763962110 - .long 4287201277 - .long 1785151123 - .long 842712880 - .long 3206874979 - .long 2425090423 - .long 3232956925 - .long 4279435259 - .long 3570302247 - .long 1685425760 - .long 2118782663 - .long 555213551 - .long 2170946555 - .long 4263903223 - .long 2845637198 - .long 3370851521 - .long 4237565327 - .long 1110427102 - .long 46925815 - .long 4232839151 - .long 1396307100 - .long 2446735747 - .long 4180163359 - .long 2220854205 - .long 93851631 - .long 4170711006 - .long 2792614201 - .long 598504198 - .long 4065359423 - .long 146741115 - .long 187703262 - .long 4046454716 - .long 1290261106 - .long 1197008397 - .long 3835751551 - .long 293482231 - .long 375406524 - .long 3797942136 - .long 2580522212 - .long 2394016794 - .long 3376535807 - .long 586964463 - .long 750813049 - .long 3300916976 - .long 866077128 - .long 493066293 - .long 2458104319 - .long 1173928927 - .long 1501626098 - .long 2306866656 - .long 1732154256 - .long 986132586 - .long 621241343 - .long 2347857855 - .long 3003252197 - .long 318766016 - .long 3464308513 - .long 1972265172 - .long 1242482686 - .long 400748414 - .long 1711537099 - .long 637532033 - .long 2633649730 - .long 3944530345 - .long 2484965372 - .long 801496828 - .long 3423074199 - .long 1275064066 - .long 972332164 - .long 3594093395 - .long 674963448 - .long 1602993657 - .long 2551181103 - .long 2550128133 - .long 1944664328 - .long 2893219494 - .long 1349926897 - .long 3205987314 - .long 807394910 - .long 805288971 - .long 3889328657 - .long 1491471692 - .long 2699853794 - .long 2117007332 - .long 1614789820 - .long 1610577942 - .long 3483690018 - .long 2982943385 - .long 1104740292 - .long 4234014665 - .long 3229579640 - .long 3221155884 - .long 2672412741 - .long 1670919475 - .long 2209480585 - .long 4173062034 - .long 2164191985 - .long 2147344473 - .long 1049858187 - .long 3341838951 - .long 123993874 - .long 4051156773 - .long 33416674 - .long 4294688947 - .long 2099716375 - .long 2388710606 - .long 247987749 - .long 3807346250 - .long 66833348 - .long 4294410598 - .long 4199432751 - .long 482453916 - .long 495975499 - .long 3319725204 - .long 133666696 - .long 4293853900 - .long 4103898207 - .long 964907833 - .long 991950999 - .long 2344483112 - .long 267333393 - .long 4292740504 - .long 3912829119 - .long 1929815667 - .long 1983901999 - .long 393998928 - .long 534666787 - .long 4290513712 - .long 3530690942 - .long 3859631335 - .long 3967803999 - .long 787997856 - .long 1069333574 - .long 4286060128 - .long 2766414588 - .long 3424295375 - .long 3640640703 - .long 1575995713 - .long 2138667148 - .long 4277152960 - .long 1237861880 - .long 2553623455 - .long 2986314111 - .long 3151991427 - .long 4277334296 - .long 4259338624 - .long 2475723761 - .long 812279614 - .long 1677660927 - .long 2009015559 - .long 4259701297 - .long 4223709953 - .long 656480226 - .long 1624559229 - .long 3355321855 - .long 4018031118 - .long 4224435298 - .long 4152452611 - .long 1312960453 - .long 3249118458 - .long 2415676415 - .long 3741094941 - .long 4153903301 - .long 4009937927 - .long 2625920907 - .long 2203269620 - .long 536385535 - .long 3187222587 - .long 4012839307 - .long 3724908559 - .long 956874519 - .long 111571945 - .long 1072771071 - .long 2079477878 - .long 3730711318 - .long 3154849823 - .long 1913749038 - .long 223143890 - .long 2145542143 - .long 4158955756 - .long 3166455341 - .long 2014732351 - .long 3827498077 - .long 446287780 - .long 4291084286 - .long 4022944216 - .long 2037943386 - .long 4029464703 - .long 3360028859 - .long 892575561 - .long 4287201277 - .long 3750921137 - .long 4075886773 - .long 3763962110 - .long 2425090423 - .long 1785151123 - .long 4279435259 - .long 3206874979 - .long 3856806251 - .long 3232956925 - .long 555213551 - .long 3570302247 - .long 4263903223 - .long 2118782663 - .long 3418645206 - .long 2170946555 - .long 1110427102 - .long 2845637198 - .long 4232839151 - .long 4237565327 - .long 2542323117 - .long 46925815 - .long 2220854205 - .long 1396307100 - .long 4170711006 - .long 4180163359 - .long 789678938 - .long 93851631 - .long 146741115 - .long 2792614201 - .long 4046454716 - .long 4065359423 - .long 1579357876 - .long 187703262 - .long 293482231 - .long 1290261106 - .long 3797942136 - .long 3835751551 - .long 3158715752 - .long 375406524 - .long 586964463 - .long 2580522212 - .long 3300916976 - .long 3376535807 - .long 2022464208 - .long 750813049 - .long 1173928927 - .long 866077128 - .long 2306866656 - .long 2458104319 - .long 4044928416 - .long 1501626098 - .long 2347857855 - .long 1732154256 - .long 318766016 - .long 621241343 - .long 3794889537 - .long 3003252197 - .long 400748414 - .long 3464308513 - .long 637532033 - .long 1242482686 - .long 3294811778 - .long 1711537099 - .long 801496828 - .long 2633649730 - .long 1275064066 - .long 2484965372 - .long 2294656261 - .long 3423074199 - .long 1602993657 - .long 972332164 - .long 2550128133 - .long 674963448 - .long 294345226 - .long 2551181103 - .long 3205987314 - .long 1944664328 - .long 805288971 - .long 1349926897 - .long 588690452 - .long 807394910 - .long 2117007332 - .long 3889328657 - .long 1610577942 - .long 2699853794 - .long 1177380905 - .long 1614789820 - .long 4234014665 - .long 3483690018 - .long 3221155884 - .long 1104740292 - .long 2354761811 - .long 3229579640 - .long 4173062034 - .long 2672412741 - .long 2147344473 - .long 2209480585 - .long 414556326 - .long 2164191985 - .long 4051156773 - .long 1049858187 - .long 4294688947 - .long 123993874 - .long 829112653 - .long 33416674 - .long 3807346250 - .long 2099716375 - .long 4294410598 - .long 247987749 - .long 1658225307 - .long 66833348 - .long 3319725204 - .long 4199432751 - .long 4293853900 - .long 495975499 - .long 3316450614 - .long 133666696 - .long 2344483112 - .long 4103898207 - .long 4292740504 - .long 991950999 - .long 2337933933 - .long 267333393 - .long 393998928 - .long 3912829119 - .long 4290513712 - .long 1983901999 - .long 380900570 - .long 534666787 - .long 787997856 - .long 3530690942 - .long 4286060128 - .long 3967803999 - .long 761801140 - .long 1069333574 - .long 1575995713 - .long 2766414588 - .long 4277152960 - .long 3640640703 - .long 1523602280 - .long 2138667148 - .long 3151991427 - .long 1237861880 - .long 4259338624 - .long 2986314111 - .long 3047204561 - .long 4277334296 - .long 2009015559 - .long 2475723761 - .long 4223709953 - .long 1677660927 - .long 1799441827 - .long 4259701297 - .long 4018031118 - .long 656480226 - .long 4152452611 - .long 3355321855 - .long 3598883655 - .long 4224435298 - .long 3741094941 - .long 1312960453 - .long 4009937927 - .long 2415676415 - .long 2902800015 - .long 4153903301 - .long 3187222587 - .long 2625920907 - .long 3724908559 - .long 536385535 - .long 1510632735 - .long 4012839307 - .long 2079477878 - .long 956874519 - .long 3154849823 - .long 1072771071 - .long 3021265470 - .long 3730711318 - .long 4158955756 - .long 1913749038 - .long 2014732351 - .long 2145542143 - .long 1747563645 - .long 3166455341 - .long 4022944216 - .long 3827498077 - .long 4029464703 - .long 4291084286 - .long 3495127291 - .long 2037943386 - .long 3750921137 - .long 3360028859 - .long 3763962110 - .long 4287201277 - .long 2695287286 - .long 4075886773 - .long 3206874979 - .long 2425090423 - .long 3232956925 - .long 4279435259 - .long 1095607277 - .long 3856806251 - .long 2118782663 - .long 555213551 - .long 2170946555 - .long 4263903223 - .long 2191214555 - .long 3418645206 - .long 4237565327 - .long 1110427102 - .long 46925815 - .long 4232839151 - .long 87461814 - .long 2542323117 - .long 4180163359 - .long 2220854205 - .long 93851631 - .long 4170711006 - .long 174923629 - .long 789678938 - .long 4065359423 - .long 146741115 - .long 187703262 - .long 4046454716 - .long 349847258 - .long 1579357876 - .long 3835751551 - .long 293482231 - .long 375406524 - .long 3797942136 - .long 699694516 - .long 3158715752 - .long 3376535807 - .long 586964463 - .long 750813049 - .long 3300916976 - .long 1399389033 - .long 2022464208 - .long 2458104319 - .long 1173928927 - .long 1501626098 - .long 2306866656 - .long 2798778067 - .long 4044928416 - .long 621241343 - .long 2347857855 - .long 3003252197 - .long 318766016 - .long 1302588838 - .long 3794889537 - .long 1242482686 - .long 400748414 - .long 1711537099 - .long 637532033 - .long 2605177677 - .long 3294811778 - .long 2484965372 - .long 801496828 - .long 3423074199 - .long 1275064066 - .long 915388059 - .long 2294656261 - .long 674963448 - .long 1602993657 - .long 2551181103 - .long 2550128133 - .long 1830776118 - .long 294345226 - .long 1349926897 - .long 3205987314 - .long 807394910 - .long 805288971 - .long 3661552236 - .long 588690452 - .long 2699853794 - .long 2117007332 - .long 1614789820 - .long 1610577942 - .long 3028137177 - .long 1177380905 - .long 1104740292 - .long 4234014665 - .long 3229579640 - .long 3221155884 - .long 1761307059 - .long 2354761811 - .long 2209480585 - .long 4173062034 - .long 2164191985 - .long 2147344473 - .long 3522614119 - .long 414556326 - .long 123993874 - .long 4051156773 - .long 33416674 - .long 4294688947 - .long 2750260943 - .long 829112653 - .long 247987749 - .long 3807346250 - .long 66833348 - .long 4294410598 - .long 1205554591 - .long 1658225307 - .long 495975499 - .long 3319725204 - .long 133666696 - .long 4293853900 - .long 2411109183 - .long 3316450614 - .long 991950999 - .long 2344483112 - .long 267333393 - .long 4292740504 - .long 527251070 - .long 2337933933 - .long 1983901999 - .long 393998928 - .long 534666787 - .long 4290513712 - .long 1054502141 - .long 380900570 - .long 3967803999 - .long 787997856 - .long 1069333574 - .long 4286060128 - .long 2109004283 - .long 761801140 - .long 3640640703 - .long 1575995713 - .long 2138667148 - .long 4277152960 - .long 4218008566 - .long 1523602280 - .long 2986314111 - .long 3151991427 - .long 4277334296 - .long 4259338624 - .long 4141049836 - .long 3047204561 - .long 1677660927 - .long 2009015559 - .long 4259701297 - .long 4223709953 - .long 3987132377 - .long 1799441827 - .long 3355321855 - .long 4018031118 - .long 4224435298 - .long 4152452611 - .long 3679297459 - .long 3598883655 - .long 2415676415 - .long 3741094941 - .long 4153903301 - .long 4009937927 - .long 3063627623 - .long 2902800015 - .long 536385535 - .long 3187222587 - .long 4012839307 - .long 3724908559 - .long 1832287951 - .long 1510632735 - .long 1072771071 - .long 2079477878 - .long 3730711318 - .long 3154849823 - .long 3664575902 - .long 3021265470 - .long 2145542143 - .long 4158955756 - .long 3166455341 - .long 2014732351 - .long 3034184508 - .long 1747563645 - .long 4291084286 - .long 4022944216 - .long 2037943386 - .long 4029464703 - .long 1773401721 - .long 3495127291 - .long 4287201277 - .long 3750921137 - .long 4075886773 - .long 3763962110 - .long 3546803442 - .long 2695287286 - .long 4279435259 - .long 3206874979 - .long 3856806251 - .long 3232956925 - .long 2798639588 - .long 1095607277 - .long 4263903223 - .long 2118782663 - .long 3418645206 - .long 2170946555 - .long 1302311881 - .long 2191214555 - .long 4232839151 - .long 4237565327 - .long 2542323117 - .long 46925815 - .long 2604623763 - .long 87461814 - .long 4170711006 - .long 4180163359 - .long 789678938 - .long 93851631 - .long 914280231 - .long 174923629 - .long 4046454716 - .long 4065359423 - .long 1579357876 - .long 187703262 - .long 1828560463 - .long 349847258 - .long 3797942136 - .long 3835751551 - .long 3158715752 - .long 375406524 - .long 3657120927 - .long 699694516 - .long 3300916976 - .long 3376535807 - .long 2022464208 - .long 750813049 - .long 3019274558 - .long 1399389033 - .long 2306866656 - .long 2458104319 - .long 4044928416 - .long 1501626098 - .long 1743581820 - .long 2798778067 - .long 318766016 - .long 621241343 - .long 3794889537 - .long 3003252197 - .long 3487163641 - .long 1302588838 - .long 637532033 - .long 1242482686 - .long 3294811778 - .long 1711537099 - .long 2679359986 - .long 2605177677 - .long 1275064066 - .long 2484965372 - .long 2294656261 - .long 3423074199 - .long 1063752677 - .long 915388059 - .long 2550128133 - .long 674963448 - .long 294345226 - .long 2551181103 - .long 2127505355 - .long 1830776118 - .long 805288971 - .long 1349926897 - .long 588690452 - .long 807394910 - .long 4255010710 - .long 3661552236 - .long 1610577942 - .long 2699853794 - .long 1177380905 - .long 1614789820 - .long 4215054124 - .long 3028137177 - .long 3221155884 - .long 1104740292 - .long 2354761811 - .long 3229579640 - .long 4135140952 - .long 1761307059 - .long 2147344473 - .long 2209480585 - .long 414556326 - .long 2164191985 - .long 3975314608 - .long 3522614119 - .long 4294688947 - .long 123993874 - .long 829112653 - .long 33416674 - .long 3655661921 - .long 2750260943 - .long 4294410598 - .long 247987749 - .long 1658225307 - .long 66833348 - .long 3016356546 - .long 1205554591 - .long 4293853900 - .long 495975499 - .long 3316450614 - .long 133666696 - .long 1737745796 - .long 2411109183 - .long 4292740504 - .long 991950999 - .long 2337933933 - .long 267333393 - .long 3475491593 - .long 527251070 - .long 4290513712 - .long 1983901999 - .long 380900570 - .long 534666787 - .long 2656015891 - .long 1054502141 - .long 4286060128 - .long 3967803999 - .long 761801140 - .long 1069333574 - .long 1017064486 - .long 2109004283 - .long 4277152960 - .long 3640640703 - .long 1523602280 - .long 2138667148 - .long 2034128973 - .long 4218008566 - .long 4259338624 - .long 2986314111 - .long 3047204561 - .long 4277334296 - .long 4068257947 - .long 4141049836 - .long 4223709953 - .long 1677660927 - .long 1799441827 - .long 4259701297 - .long 3841548598 - .long 3987132377 - .long 4152452611 - .long 3355321855 - .long 3598883655 - .long 4224435298 - .long 3388129901 - .long 3679297459 - .long 4009937927 - .long 2415676415 - .long 2902800015 - .long 4153903301 - .long 2481292507 - .long 3063627623 - .long 3724908559 - .long 536385535 - .long 1510632735 - .long 4012839307 - .long 667617719 - .long 1832287951 - .long 3154849823 - .long 1072771071 - .long 3021265470 - .long 3730711318 - .long 1335235438 - .long 3664575902 - .long 2014732351 - .long 2145542143 - .long 1747563645 - .long 3166455341 - .long 2670470877 - .long 3034184508 - .long 4029464703 - .long 4291084286 - .long 3495127291 - .long 2037943386 - .long 1045974458 - .long 1773401721 - .long 3763962110 - .long 4287201277 - .long 2695287286 - .long 4075886773 - .long 2091948916 - .long 3546803442 - .long 3232956925 - .long 4279435259 - .long 1095607277 - .long 3856806251 - .long 4183897833 - .long 2798639588 - .long 2170946555 - .long 4263903223 - .long 2191214555 - .long 3418645206 - .long 4072828371 - .long 1302311881 - .long 46925815 - .long 4232839151 - .long 87461814 - .long 2542323117 - .long 3850689447 - .long 2604623763 - .long 93851631 - .long 4170711006 - .long 174923629 - .long 789678938 - .long 3406411599 - .long 914280231 - .long 187703262 - .long 4046454716 - .long 349847258 - .long 1579357876 - .long 2517855902 - .long 1828560463 - .long 375406524 - .long 3797942136 - .long 699694516 - .long 3158715752 - .long 740744509 - .long 3657120927 - .long 750813049 - .long 3300916976 - .long 1399389033 - .long 2022464208 - .long 1481489018 - .long 3019274558 - .long 1501626098 - .long 2306866656 - .long 2798778067 - .long 4044928416 - .long 2962978036 - .long 1743581820 - .long 3003252197 - .long 318766016 - .long 1302588838 - .long 3794889537 - .long 1630988776 - .long 3487163641 - .long 1711537099 - .long 637532033 - .long 2605177677 - .long 3294811778 - .long 3261977553 - .long 2679359986 - .long 3423074199 - .long 1275064066 - .long 915388059 - .long 2294656261 - .long 2228987811 - .long 1063752677 - .long 2551181103 - .long 2550128133 - .long 1830776118 - .long 294345226 - .long 163008326 - .long 2127505355 - .long 807394910 - .long 805288971 - .long 3661552236 - .long 588690452 - .long 326016652 - .long 4255010710 - .long 1614789820 - .long 1610577942 - .long 3028137177 - .long 1177380905 - .long 652033304 - .long 4215054124 - .long 3229579640 - .long 3221155884 - .long 1761307059 - .long 2354761811 - .long 1304066609 - .long 4135140952 - .long 2164191985 - .long 2147344473 - .long 3522614119 - .long 414556326 - .long 2608133219 - .long 3975314608 - .long 33416674 - .long 4294688947 - .long 2750260943 - .long 829112653 - .long 921299143 - .long 3655661921 - .long 66833348 - .long 4294410598 - .long 1205554591 - .long 1658225307 - .long 1842598287 - .long 3016356546 - .long 133666696 - .long 4293853900 - .long 2411109183 - .long 3316450614 - .long 3685196575 - .long 1737745796 - .long 267333393 - .long 4292740504 - .long 527251070 - .long 2337933933 - .long 3075425855 - .long 3475491593 - .long 534666787 - .long 4290513712 - .long 1054502141 - .long 380900570 - .long 1855884414 - .long 2656015891 - .long 1069333574 - .long 4286060128 - .long 2109004283 - .long 761801140 - .long 3711768829 - .long 1017064486 - .long 2138667148 - .long 4277152960 - .long 4218008566 - .long 1523602280 - .long 3128570363 - .long 2034128973 - .long 4277334296 - .long 4259338624 - .long 4141049836 - .long 3047204561 - .long 1962173430 - .long 4068257947 - .long 4259701297 - .long 4223709953 - .long 3987132377 - .long 1799441827 - .long 3924346860 - .long 3841548598 - .long 4224435298 - .long 4152452611 - .long 3679297459 - .long 3598883655 - .long 3553726425 - .long 3388129901 - .long 4153903301 - .long 4009937927 - .long 3063627623 - .long 2902800015 - .long 2812485555 - .long 2481292507 - .long 4012839307 - .long 3724908559 - .long 1832287951 - .long 1510632735 - .long 1330003814 - .long 667617719 - .long 3730711318 - .long 3154849823 - .long 3664575902 - .long 3021265470 - .long 2660007629 - .long 1335235438 - .long 3166455341 - .long 2014732351 - .long 3034184508 - .long 1747563645 - .long 1025047962 - .long 2670470877 - .long 2037943386 - .long 4029464703 - .long 1773401721 - .long 3495127291 - .long 2050095924 - .long 1045974458 - .long 4075886773 - .long 3763962110 - .long 3546803442 - .long 2695287286 - .long 4100191849 - .long 2091948916 - .long 3856806251 - .long 3232956925 - .long 2798639588 - .long 1095607277 - .long 3905416403 - .long 4183897833 - .long 3418645206 - .long 2170946555 - .long 1302311881 - .long 2191214555 - .long 3515865511 - .long 4072828371 - .long 2542323117 - .long 46925815 - .long 2604623763 - .long 87461814 - .long 2736763727 - .long 3850689447 - .long 789678938 - .long 93851631 - .long 914280231 - .long 174923629 - .long 1178560158 - .long 3406411599 - .long 1579357876 - .long 187703262 - .long 1828560463 - .long 349847258 - .long 2357120316 - .long 2517855902 - .long 3158715752 - .long 375406524 - .long 3657120927 - .long 699694516 - .long 419273337 - .long 740744509 - .long 2022464208 - .long 750813049 - .long 3019274558 - .long 1399389033 - .long 838546674 - .long 1481489018 - .long 4044928416 - .long 1501626098 - .long 1743581820 - .long 2798778067 - .long 1677093349 - .long 2962978036 - .long 3794889537 - .long 3003252197 - .long 3487163641 - .long 1302588838 - .long 3354186699 - .long 1630988776 - .long 3294811778 - .long 1711537099 - .long 2679359986 - .long 2605177677 - .long 2413406103 - .long 3261977553 - .long 2294656261 - .long 3423074199 - .long 1063752677 - .long 915388059 - .long 531844911 - .long 2228987811 - .long 294345226 - .long 2551181103 - .long 2127505355 - .long 1830776118 - .long 1063689823 - .long 163008326 - .long 588690452 - .long 807394910 - .long 4255010710 - .long 3661552236 - .long 2127379647 - .long 326016652 - .long 1177380905 - .long 1614789820 - .long 4215054124 - .long 3028137177 - .long 4254759295 - .long 652033304 - .long 2354761811 - .long 3229579640 - .long 4135140952 - .long 1761307059 - .long 4214551295 - .long 1304066609 - .long 414556326 - .long 2164191985 - .long 3975314608 - .long 3522614119 - .long 4134135294 - .long 2608133219 - .long 829112653 - .long 33416674 - .long 3655661921 - .long 2750260943 - .long 3973303293 - .long 921299143 - .long 1658225307 - .long 66833348 - .long 3016356546 - .long 1205554591 - .long 3651639290 - .long 1842598287 - .long 3316450614 - .long 133666696 - .long 1737745796 - .long 2411109183 - .long 3008311285 - .long 3685196575 - .long 2337933933 - .long 267333393 - .long 3475491593 - .long 527251070 - .long 1721655274 - .long 3075425855 - .long 380900570 - .long 534666787 - .long 2656015891 - .long 1054502141 - .long 3443310548 - .long 1855884414 - .long 761801140 - .long 1069333574 - .long 1017064486 - .long 2109004283 - .long 2591653800 - .long 3711768829 - .long 1523602280 - .long 2138667148 - .long 2034128973 - .long 4218008566 - .long 888340305 - .long 3128570363 - .long 3047204561 - .long 4277334296 - .long 4068257947 - .long 4141049836 - .long 1776680610 - .long 1962173430 - .long 1799441827 - .long 4259701297 - .long 3841548598 - .long 3987132377 - .long 3553361221 - .long 3924346860 - .long 3598883655 - .long 4224435298 - .long 3388129901 - .long 3679297459 - .long 2811755147 - .long 3553726425 - .long 2902800015 - .long 4153903301 - .long 2481292507 - .long 3063627623 - .long 1328542998 - .long 2812485555 - .long 1510632735 - .long 4012839307 - .long 667617719 - .long 1832287951 - .long 2657085997 - .long 1330003814 - .long 3021265470 - .long 3730711318 - .long 1335235438 - .long 3664575902 - .long 1019204698 - .long 2660007629 - .long 1747563645 - .long 3166455341 - .long 2670470877 - .long 3034184508 - .long 2038409397 - .long 1025047962 - .long 3495127291 - .long 2037943386 - .long 1045974458 - .long 1773401721 - .long 4076818795 - .long 2050095924 - .long 2695287286 - .long 4075886773 - .long 2091948916 - .long 3546803442 - .long 3858670295 - .long 4100191849 - .long 1095607277 - .long 3856806251 - .long 4183897833 - .long 2798639588 - .long 3422373294 - .long 3905416403 - .long 2191214555 - .long 3418645206 - .long 4072828371 - .long 1302311881 - .long 2549779293 - .long 3515865511 - .long 87461814 - .long 2542323117 - .long 3850689447 - .long 2604623763 - .long 804591290 - .long 2736763727 - .long 174923629 - .long 789678938 - .long 3406411599 - .long 914280231 - .long 1609182581 - .long 1178560158 - .long 349847258 - .long 1579357876 - .long 2517855902 - .long 1828560463 - .long 3218365162 - .long 2357120316 - .long 699694516 - .long 3158715752 - .long 740744509 - .long 3657120927 - .long 2141763028 - .long 419273337 - .long 1399389033 - .long 2022464208 - .long 1481489018 - .long 3019274558 - .long 4283526057 - .long 838546674 - .long 2798778067 - .long 4044928416 - .long 2962978036 - .long 1743581820 - .long 4272084818 - .long 1677093349 - .long 1302588838 - .long 3794889537 - .long 1630988776 - .long 3487163641 - .long 4249202340 - .long 3354186699 - .long 2605177677 - .long 3294811778 - .long 3261977553 - .long 2679359986 - .long 4203437385 - .long 2413406103 - .long 915388059 - .long 2294656261 - .long 2228987811 - .long 1063752677 - .long 4111907475 - .long 531844911 - .long 1830776118 - .long 294345226 - .long 163008326 - .long 2127505355 - .long 3928847655 - .long 1063689823 - .long 3661552236 - .long 588690452 - .long 326016652 - .long 4255010710 - .long 3562728015 - .long 2127379647 - .long 3028137177 - .long 1177380905 - .long 652033304 - .long 4215054124 - .long 2830488734 - .long 4254759295 - .long 1761307059 - .long 2354761811 - .long 1304066609 - .long 4135140952 - .long 1366010173 - .long 4214551295 - .long 3522614119 - .long 414556326 - .long 2608133219 - .long 3975314608 - .long 2732020347 - .long 4134135294 - .long 2750260943 - .long 829112653 - .long 921299143 - .long 3655661921 - .long 1169073399 - .long 3973303293 - .long 1205554591 - .long 1658225307 - .long 1842598287 - .long 3016356546 - .long 2338146798 - .long 3651639290 - .long 2411109183 - .long 3316450614 - .long 3685196575 - .long 1737745796 - .long 381326301 - .long 3008311285 - .long 527251070 - .long 2337933933 - .long 3075425855 - .long 3475491593 - .long 762652602 - .long 1721655274 - .long 1054502141 - .long 380900570 - .long 1855884414 - .long 2656015891 - .long 1525305205 - .long 3443310548 - .long 2109004283 - .long 761801140 - .long 3711768829 - .long 1017064486 - .long 3050610411 - .long 2591653800 - .long 4218008566 - .long 1523602280 - .long 3128570363 - .long 2034128973 - .long 1806253526 - .long 888340305 - .long 4141049836 - .long 3047204561 - .long 1962173430 - .long 4068257947 - .long 3612507052 - .long 1776680610 - .long 3987132377 - .long 1799441827 - .long 3924346860 - .long 3841548598 - .long 2930046808 - .long 3553361221 - .long 3679297459 - .long 3598883655 - .long 3553726425 - .long 3388129901 - .long 1565126321 - .long 2811755147 - .long 3063627623 - .long 2902800015 - .long 2812485555 - .long 2481292507 - .long 3130252643 - .long 1328542998 - .long 1832287951 - .long 1510632735 - .long 1330003814 - .long 667617719 - .long 1965537991 - .long 2657085997 - .long 3664575902 - .long 3021265470 - .long 2660007629 - .long 1335235438 - .long 3931075983 - .long 1019204698 - .long 3034184508 - .long 1747563645 - .long 1025047962 - .long 2670470877 - .long 3567184671 - .long 2038409397 - .long 1773401721 - .long 3495127291 - .long 2050095924 - .long 1045974458 - .long 2839402047 - .long 4076818795 - .long 3546803442 - .long 2695287286 - .long 4100191849 - .long 2091948916 - .long 1383836798 - .long 3858670295 - .long 2798639588 - .long 1095607277 - .long 3905416403 - .long 4183897833 - .long 2767673597 - .long 3422373294 - .long 1302311881 - .long 2191214555 - .long 3515865511 - .long 4072828371 - .long 1240379898 - .long 2549779293 - .long 2604623763 - .long 87461814 - .long 2736763727 - .long 3850689447 - .long 2480759797 - .long 804591290 - .long 914280231 - .long 174923629 - .long 1178560158 - .long 3406411599 - .long 666552299 - .long 1609182581 - .long 1828560463 - .long 349847258 - .long 2357120316 - .long 2517855902 - .long 1333104599 - .long 3218365162 - .long 3657120927 - .long 699694516 - .long 419273337 - .long 740744509 - .long 2666209199 - .long 2141763028 - .long 3019274558 - .long 1399389033 - .long 838546674 - .long 1481489018 - .long 1037451103 - .long 4283526057 - .long 1743581820 - .long 2798778067 - .long 1677093349 - .long 2962978036 - .long 2074902206 - .long 4272084818 - .long 3487163641 - .long 1302588838 - .long 3354186699 - .long 1630988776 - .long 4149804412 - .long 4249202340 - .long 2679359986 - .long 2605177677 - .long 2413406103 - .long 3261977553 - .long 4004641529 - .long 4203437385 - .long 1063752677 - .long 915388059 - .long 531844911 - .long 2228987811 - .long 3714315762 - .long 4111907475 - .long 2127505355 - .long 1830776118 - .long 1063689823 - .long 163008326 - .long 3133664229 - .long 3928847655 - .long 4255010710 - .long 3661552236 - .long 2127379647 - .long 326016652 - .long 1972361163 - .long 3562728015 - .long 4215054124 - .long 3028137177 - .long 4254759295 - .long 652033304 - .long 3944722327 - .long 2830488734 - .long 4135140952 - .long 1761307059 - .long 4214551295 - .long 1304066609 - .long 3594477359 - .long 1366010173 - .long 3975314608 - .long 3522614119 - .long 4134135294 - .long 2608133219 - .long 2893987423 - .long 2732020347 - .long 3655661921 - .long 2750260943 - .long 3973303293 - .long 921299143 - .long 1493007550 - .long 1169073399 - .long 3016356546 - .long 1205554591 - .long 3651639290 - .long 1842598287 - .long 2986015100 - .long 2338146798 - .long 1737745796 - .long 2411109183 - .long 3008311285 - .long 3685196575 - .long 1677062904 - .long 381326301 - .long 3475491593 - .long 527251070 - .long 1721655274 - .long 3075425855 - .long 3354125809 - .long 762652602 - .long 2656015891 - .long 1054502141 - .long 3443310548 - .long 1855884414 - .long 2413284322 - .long 1525305205 - .long 1017064486 - .long 2109004283 - .long 2591653800 - .long 3711768829 - .long 531601349 - .long 3050610411 - .long 2034128973 - .long 4218008566 - .long 888340305 - .long 3128570363 - .long 1063202699 - .long 1806253526 - .long 4068257947 - .long 4141049836 - .long 1776680610 - .long 1962173430 - .long 2126405399 - .long 3612507052 - .long 3841548598 - .long 3987132377 - .long 3553361221 - .long 3924346860 - .long 4252810799 - .long 2930046808 - .long 3388129901 - .long 3679297459 - .long 2811755147 - .long 3553726425 - .long 4210654302 - .long 1565126321 - .long 2481292507 - .long 3063627623 - .long 1328542998 - .long 2812485555 - .long 4126341309 - .long 3130252643 - .long 667617719 - .long 1832287951 - .long 2657085997 - .long 1330003814 - .long 3957715323 - .long 1965537991 - .long 1335235438 - .long 3664575902 - .long 1019204698 - .long 2660007629 - .long 3620463350 - .long 3931075983 - .long 2670470877 - .long 3034184508 - .long 2038409397 - .long 1025047962 - .long 2945959404 - .long 3567184671 - .long 1045974458 - .long 1773401721 - .long 4076818795 - .long 2050095924 - .long 1596951513 - .long 2839402047 - .long 2091948916 - .long 3546803442 - .long 3858670295 - .long 4100191849 - .long 3193903027 - .long 1383836798 - .long 4183897833 - .long 2798639588 - .long 3422373294 - .long 3905416403 - .long 2092838759 - .long 2767673597 - .long 4072828371 - .long 1302311881 - .long 2549779293 - .long 3515865511 - .long 4185677519 - .long 1240379898 - .long 3850689447 - .long 2604623763 - .long 804591290 - .long 2736763727 - .long 4076387742 - .long 2480759797 - .long 3406411599 - .long 914280231 - .long 1609182581 - .long 1178560158 - .long 3857808189 - .long 666552299 - .long 2517855902 - .long 1828560463 - .long 3218365162 - .long 2357120316 - .long 3420649082 - .long 1333104599 - .long 740744509 - .long 3657120927 - .long 2141763028 - .long 419273337 - .long 2546330868 - .long 2666209199 - .long 1481489018 - .long 3019274558 - .long 4283526057 - .long 838546674 - .long 797694440 - .long 1037451103 - .long 2962978036 - .long 1743581820 - .long 4272084818 - .long 1677093349 - .long 1595388880 - .long 2074902206 - .long 1630988776 - .long 3487163641 - .long 4249202340 - .long 3354186699 - .long 3190777760 - .long 4149804412 - .long 3261977553 - .long 2679359986 - .long 4203437385 - .long 2413406103 - .long 2086588225 - .long 4004641529 - .long 2228987811 - .long 1063752677 - .long 4111907475 - .long 531844911 - .long 4173176451 - .long 3714315762 - .long 163008326 - .long 2127505355 - .long 3928847655 - .long 1063689823 - .long 4051385607 - .long 3133664229 - .long 326016652 - .long 4255010710 - .long 3562728015 - .long 2127379647 - .long 3807803918 - .long 1972361163 - .long 652033304 - .long 4215054124 - .long 2830488734 - .long 4254759295 - .long 3320640540 - .long 3944722327 - .long 1304066609 - .long 4135140952 - .long 1366010173 - .long 4214551295 - .long 2346313785 - .long 3594477359 - .long 2608133219 - .long 3975314608 - .long 2732020347 - .long 4134135294 - .long 397660275 - .long 2893987423 - .long 921299143 - .long 3655661921 - .long 1169073399 - .long 3973303293 - .long 795320551 - .long 1493007550 - .long 1842598287 - .long 3016356546 - .long 2338146798 - .long 3651639290 - .long 1590641102 - .long 2986015100 - .long 3685196575 - .long 1737745796 - .long 381326301 - .long 3008311285 - .long 3181282204 - .long 1677062904 - .long 3075425855 - .long 3475491593 - .long 762652602 - .long 1721655274 - .long 2067597113 - .long 3354125809 - .long 1855884414 - .long 2656015891 - .long 1525305205 - .long 3443310548 - .long 4135194227 - .long 2413284322 - .long 3711768829 - .long 1017064486 - .long 3050610411 - .long 2591653800 - .long 3975421159 - .long 531601349 - .long 3128570363 - .long 2034128973 - .long 1806253526 - .long 888340305 - .long 3655875023 - .long 1063202699 - .long 1962173430 - .long 4068257947 - .long 3612507052 - .long 1776680610 - .long 3016782751 - .long 2126405399 - .long 3924346860 - .long 3841548598 - .long 2930046808 - .long 3553361221 - .long 1738598206 - .long 4252810799 - .long 3553726425 - .long 3388129901 - .long 1565126321 - .long 2811755147 - .long 3477196413 - .long 4210654302 - .long 2812485555 - .long 2481292507 - .long 3130252643 - .long 1328542998 - .long 2659425531 - .long 4126341309 - .long 1330003814 - .long 667617719 - .long 1965537991 - .long 2657085997 - .long 1023883767 - .long 3957715323 - .long 2660007629 - .long 1335235438 - .long 3931075983 - .long 1019204698 - .long 2047767535 - .long 3620463350 - .long 1025047962 - .long 2670470877 - .long 3567184671 - .long 2038409397 - .long 4095535070 - .long 2945959404 - .long 2050095924 - .long 1045974458 - .long 2839402047 - .long 4076818795 - .long 3896102844 - .long 1596951513 - .long 4100191849 - .long 2091948916 - .long 1383836798 - .long 3858670295 - .long 3497238392 - .long 3193903027 - .long 3905416403 - .long 4183897833 - .long 2767673597 - .long 3422373294 - .long 2699509489 - .long 2092838759 - .long 3515865511 - .long 4072828371 - .long 1240379898 - .long 2549779293 - .long 1104051682 - .long 4185677519 - .long 2736763727 - .long 3850689447 - .long 2480759797 - .long 804591290 - .long 2208103365 - .long 4076387742 - .long 1178560158 - .long 3406411599 - .long 666552299 - .long 1609182581 - .long 121239434 - .long 3857808189 - .long 2357120316 - .long 2517855902 - .long 1333104599 - .long 3218365162 - .long 242478868 - .long 3420649082 - .long 419273337 - .long 740744509 - .long 2666209199 - .long 2141763028 - .long 484957737 - .long 2546330868 - .long 838546674 - .long 1481489018 - .long 1037451103 - .long 4283526057 - .long 969915474 - .long 797694440 - .long 1677093349 - .long 2962978036 - .long 2074902206 - .long 4272084818 - .long 1939830949 - .long 1595388880 - .long 3354186699 - .long 1630988776 - .long 4149804412 - .long 4249202340 - .long 3879661898 - .long 3190777760 - .long 2413406103 - .long 3261977553 - .long 4004641529 - .long 4203437385 - .long 3464356500 - .long 2086588225 - .long 531844911 - .long 2228987811 - .long 3714315762 - .long 4111907475 - .long 2633745705 - .long 4173176451 - .long 1063689823 - .long 163008326 - .long 3133664229 - .long 3928847655 - .long 972524114 - .long 4051385607 - .long 2127379647 - .long 326016652 - .long 1972361163 - .long 3562728015 - .long 1945048229 - .long 3807803918 - .long 4254759295 - .long 652033304 - .long 3944722327 - .long 2830488734 - .long 3890096458 - .long 3320640540 - .long 4214551295 - .long 1304066609 - .long 3594477359 - .long 1366010173 - .long 3485225620 - .long 2346313785 - .long 4134135294 - .long 2608133219 - .long 2893987423 - .long 2732020347 - .long 2675483945 - .long 397660275 - .long 3973303293 - .long 921299143 - .long 1493007550 - .long 1169073399 - .long 1056000594 - .long 795320551 - .long 3651639290 - .long 1842598287 - .long 2986015100 - .long 2338146798 - .long 2112001188 - .long 1590641102 - .long 3008311285 - .long 3685196575 - .long 1677062904 - .long 381326301 - .long 4224002377 - .long 3181282204 - .long 1721655274 - .long 3075425855 - .long 3354125809 - .long 762652602 - .long 4153037458 - .long 2067597113 - .long 3443310548 - .long 1855884414 - .long 2413284322 - .long 1525305205 - .long 4011107621 - .long 4135194227 - .long 2591653800 - .long 3711768829 - .long 531601349 - .long 3050610411 - .long 3727247947 - .long 3975421159 - .long 888340305 - .long 3128570363 - .long 1063202699 - .long 1806253526 - .long 3159528599 - .long 3655875023 - .long 1776680610 - .long 1962173430 - .long 2126405399 - .long 3612507052 - .long 2024089902 - .long 3016782751 - .long 3553361221 - .long 3924346860 - .long 4252810799 - .long 2930046808 - .long 4048179805 - .long 1738598206 - .long 2811755147 - .long 3553726425 - .long 4210654302 - .long 1565126321 - .long 3801392314 - .long 3477196413 - .long 1328542998 - .long 2812485555 - .long 4126341309 - .long 3130252643 - .long 3307817333 - .long 2659425531 - .long 2657085997 - .long 1330003814 - .long 3957715323 - .long 1965537991 - .long 2320667370 - .long 1023883767 - .long 1019204698 - .long 2660007629 - .long 3620463350 - .long 3931075983 - .long 346367444 - .long 2047767535 - .long 2038409397 - .long 1025047962 - .long 2945959404 - .long 3567184671 - .long 692734889 - .long 4095535070 - .long 4076818795 - .long 2050095924 - .long 1596951513 - .long 2839402047 - .long 1385469779 - .long 3896102844 - .long 3858670295 - .long 4100191849 - .long 3193903027 - .long 1383836798 - .long 2770939558 - .long 3497238392 - .long 3422373294 - .long 3905416403 - .long 2092838759 - .long 2767673597 - .long 1246911821 - .long 2699509489 - .long 2549779293 - .long 3515865511 - .long 4185677519 - .long 1240379898 - .long 2493823642 - .long 1104051682 - .long 804591290 - .long 2736763727 - .long 4076387742 - .long 2480759797 - .long 692679989 - .long 2208103365 - .long 1609182581 - .long 1178560158 - .long 3857808189 - .long 666552299 - .long 1385359979 - .long 121239434 - .long 3218365162 - .long 2357120316 - .long 3420649082 - .long 1333104599 - .long 2770719959 - .long 242478868 - .long 2141763028 - .long 419273337 - .long 2546330868 - .long 2666209199 - .long 1246472623 - .long 484957737 - .long 4283526057 - .long 838546674 - .long 797694440 - .long 1037451103 - .long 2492945247 - .long 969915474 - .long 4272084818 - .long 1677093349 - .long 1595388880 - .long 2074902206 - .long 690923199 - .long 1939830949 - .long 4249202340 - .long 3354186699 - .long 3190777760 - .long 4149804412 - .long 1381846399 - .long 3879661898 - .long 4203437385 - .long 2413406103 - .long 2086588225 - .long 4004641529 - .long 2763692798 - .long 3464356500 - .long 4111907475 - .long 531844911 - .long 4173176451 - .long 3714315762 - .long 1232418301 - .long 2633745705 - .long 3928847655 - .long 1063689823 - .long 4051385607 - .long 3133664229 - .long 2464836603 - .long 972524114 - .long 3562728015 - .long 2127379647 - .long 3807803918 - .long 1972361163 - .long 634705910 - .long 1945048229 - .long 2830488734 - .long 4254759295 - .long 3320640540 - .long 3944722327 - .long 1269411821 - .long 3890096458 - .long 1366010173 - .long 4214551295 - .long 2346313785 - .long 3594477359 - .long 2538823642 - .long 3485225620 - .long 2732020347 - .long 4134135294 - .long 397660275 - .long 2893987423 - .long 782679989 - .long 2675483945 - .long 1169073399 - .long 3973303293 - .long 795320551 - .long 1493007550 - .long 1565359979 - .long 1056000594 - .long 2338146798 - .long 3651639290 - .long 1590641102 - .long 2986015100 - .long 3130719959 - .long 2112001188 - .long 381326301 - .long 3008311285 - .long 3181282204 - .long 1677062904 - .long 1966472623 - .long 4224002377 - .long 762652602 - .long 1721655274 - .long 2067597113 - .long 3354125809 - .long 3932945247 - .long 4153037458 - .long 1525305205 - .long 3443310548 - .long 4135194227 - .long 2413284322 - .long 3570923199 - .long 4011107621 - .long 3050610411 - .long 2591653800 - .long 3975421159 - .long 531601349 - .long 2846879102 - .long 3727247947 - .long 1806253526 - .long 888340305 - .long 3655875023 - .long 1063202699 - .long 1398790909 - .long 3159528599 - .long 3612507052 - .long 1776680610 - .long 3016782751 - .long 2126405399 - .long 2797581819 - .long 2024089902 - .long 2930046808 - .long 3553361221 - .long 1738598206 - .long 4252810799 - .long 1300196342 - .long 4048179805 - .long 1565126321 - .long 2811755147 - .long 3477196413 - .long 4210654302 - .long 2600392684 - .long 3801392314 - .long 3130252643 - .long 1328542998 - .long 2659425531 - .long 4126341309 - .long 905818072 - .long 3307817333 - .long 1965537991 - .long 2657085997 - .long 1023883767 - .long 3957715323 - .long 1811636145 - .long 2320667370 - .long 3931075983 - .long 1019204698 - .long 2047767535 - .long 3620463350 - .long 3623272290 - .long 346367444 - .long 3567184671 - .long 2038409397 - .long 4095535070 - .long 2945959404 - .long 2951577284 - .long 692734889 - .long 2839402047 - .long 4076818795 - .long 3896102844 - .long 1596951513 - .long 1608187272 - .long 1385469779 - .long 1383836798 - .long 3858670295 - .long 3497238392 - .long 3193903027 - .long 3216374545 - .long 2770939558 - .long 2767673597 - .long 3422373294 - .long 2699509489 - .long 2092838759 - .long 2137781795 - .long 1246911821 - .long 1240379898 - .long 2549779293 - .long 1104051682 - .long 4185677519 - .long 4275563591 - .long 2493823642 - .long 2480759797 - .long 804591290 - .long 2208103365 - .long 4076387742 - .long 4256159887 - .long 692679989 - .long 666552299 - .long 1609182581 - .long 121239434 - .long 3857808189 - .long 4217352479 - .long 1385359979 - .long 1333104599 - .long 3218365162 - .long 242478868 - .long 3420649082 - .long 4139737663 - .long 2770719959 - .long 2666209199 - .long 2141763028 - .long 484957737 - .long 2546330868 - .long 3984508030 - .long 1246472623 - .long 1037451103 - .long 4283526057 - .long 969915474 - .long 797694440 - .long 3674048764 - .long 2492945247 - .long 2074902206 - .long 4272084818 - .long 1939830949 - .long 1595388880 - .long 3053130232 - .long 690923199 - .long 4149804412 - .long 4249202340 - .long 3879661898 - .long 3190777760 - .long 1811293169 - .long 1381846399 - .long 4004641529 - .long 4203437385 - .long 3464356500 - .long 2086588225 - .long 3622586339 - .long 2763692798 - .long 3714315762 - .long 4111907475 - .long 2633745705 - .long 4173176451 - .long 2950205382 - .long 1232418301 - .long 3133664229 - .long 3928847655 - .long 972524114 - .long 4051385607 - .long 1605443469 - .long 2464836603 - .long 1972361163 - .long 3562728015 - .long 1945048229 - .long 3807803918 - .long 3210886938 - .long 634705910 - .long 3944722327 - .long 2830488734 - .long 3890096458 - .long 3320640540 - .long 2126806581 - .long 1269411821 - .long 3594477359 - .long 1366010173 - .long 3485225620 - .long 2346313785 - .long 4253613162 - .long 2538823642 - .long 2893987423 - .long 2732020347 - .long 2675483945 - .long 397660275 - .long 4212259029 - .long 782679989 - .long 1493007550 - .long 1169073399 - .long 1056000594 - .long 795320551 - .long 4129550763 - .long 1565359979 - .long 2986015100 - .long 2338146798 - .long 2112001188 - .long 1590641102 - .long 3964134231 - .long 3130719959 - .long 1677062904 - .long 381326301 - .long 4224002377 - .long 3181282204 - .long 3633301166 - .long 1966472623 - .long 3354125809 - .long 762652602 - .long 4153037458 - .long 2067597113 - .long 2971635037 - .long 3932945247 - .long 2413284322 - .long 1525305205 - .long 4011107621 - .long 4135194227 - .long 1648302778 - .long 3570923199 - .long 531601349 - .long 3050610411 - .long 3727247947 - .long 3975421159 - .long 3296605556 - .long 2846879102 - .long 1063202699 - .long 1806253526 - .long 3159528599 - .long 3655875023 - .long 2298243816 - .long 1398790909 - .long 2126405399 - .long 3612507052 - .long 2024089902 - .long 3016782751 - .long 301520336 - .long 2797581819 - .long 4252810799 - .long 2930046808 - .long 4048179805 - .long 1738598206 - .long 603040673 - .long 1300196342 - .long 4210654302 - .long 1565126321 - .long 3801392314 - .long 3477196413 - .long 1206081346 - .long 2600392684 - .long 4126341309 - .long 3130252643 - .long 3307817333 - .long 2659425531 - .long 2412162692 - .long 905818072 - .long 3957715323 - .long 1965537991 - .long 2320667370 - .long 1023883767 - .long 529358088 - .long 1811636145 - .long 3620463350 - .long 3931075983 - .long 346367444 - .long 2047767535 - .long 1058716176 - .long 3623272290 - .long 2945959404 - .long 3567184671 - .long 692734889 - .long 4095535070 - .long 2117432353 - .long 2951577284 - .long 1596951513 - .long 2839402047 - .long 1385469779 - .long 3896102844 - .long 4234864706 - .long 1608187272 - .long 3193903027 - .long 1383836798 - .long 2770939558 - .long 3497238392 - .long 4174762117 - .long 3216374545 - .long 2092838759 - .long 2767673597 - .long 1246911821 - .long 2699509489 - .long 4054556938 - .long 2137781795 - .long 4185677519 - .long 1240379898 - .long 2493823642 - .long 1104051682 - .long 3814146581 - .long 4275563591 - .long 4076387742 - .long 2480759797 - .long 692679989 - .long 2208103365 - .long 3333325867 - .long 4256159887 - .long 3857808189 - .long 666552299 - .long 1385359979 - .long 121239434 - .long 2371684438 - .long 4217352479 - .long 3420649082 - .long 1333104599 - .long 2770719959 - .long 242478868 - .long 448401580 - .long 4139737663 - .long 2546330868 - .long 2666209199 - .long 1246472623 - .long 484957737 - .long 896803160 - .long 3984508030 - .type __svml_dtan_reduction_data_internal,@object - .size __svml_dtan_reduction_data_internal,49152 - .space 512, 0x00 - .align 32 -.L_2il0floatpacket.35: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.35,@object - .size .L_2il0floatpacket.35,32 - .align 8 -.L_2il0floatpacket.18: - .long 0xffffffff,0xffffffff - .type .L_2il0floatpacket.18,@object - .size .L_2il0floatpacket.18,8 - .align 8 -.L_2il0floatpacket.19: - .long 0x00000000,0x7ff00000 - .type .L_2il0floatpacket.19,@object - .size .L_2il0floatpacket.19,8 - .align 8 -.L_2il0floatpacket.20: - .long 0xffffffff,0x000fffff - .type .L_2il0floatpacket.20,@object - .size .L_2il0floatpacket.20,8 - .align 8 -.L_2il0floatpacket.21: - .long 0x00000000,0x00100000 - .type .L_2il0floatpacket.21,@object - .size .L_2il0floatpacket.21,8 - .align 8 -.L_2il0floatpacket.22: - .long 0xffffffff,0x00000000 - .type .L_2il0floatpacket.22,@object - .size .L_2il0floatpacket.22,8 - .align 8 -.L_2il0floatpacket.23: - .long 0x00000000,0x80000000 - .type .L_2il0floatpacket.23,@object - .size .L_2il0floatpacket.23,8 - .align 8 -.L_2il0floatpacket.24: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.24,@object - .size .L_2il0floatpacket.24,8 - .align 8 -.L_2il0floatpacket.25: - .long 0x00000000,0x42a80000 - .type .L_2il0floatpacket.25,@object - .size .L_2il0floatpacket.25,8 - .align 8 -.L_2il0floatpacket.26: - .long 0x000001ff,0x00000000 - .type .L_2il0floatpacket.26,@object - .size .L_2il0floatpacket.26,8 - .align 8 -.L_2il0floatpacket.27: - .long 0x00000000,0x39700000 - .type .L_2il0floatpacket.27,@object - .size .L_2il0floatpacket.27,8 - .align 8 -.L_2il0floatpacket.28: - .long 0x00ffffff,0x00000000 - .type .L_2il0floatpacket.28,@object - .size .L_2il0floatpacket.28,8 - .align 8 -.L_2il0floatpacket.29: - .long 0x00000000,0x3cb00000 - .type .L_2il0floatpacket.29,@object - .size .L_2il0floatpacket.29,8 - .align 8 -.L_2il0floatpacket.30: - .long 0x00000fff,0x00000000 - .type .L_2il0floatpacket.30,@object - .size .L_2il0floatpacket.30,8 - .align 8 -.L_2il0floatpacket.31: - .long 0x54442d18,0x401921fb - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,8 - .align 8 -.L_2il0floatpacket.32: - .long 0x33145c07,0x3cb1a626 - .type .L_2il0floatpacket.32,@object - .size .L_2il0floatpacket.32,8 - .align 8 -.L_2il0floatpacket.33: - .long 0xffffffff,0x7fffffff - .type .L_2il0floatpacket.33,@object - .size .L_2il0floatpacket.33,8 - .align 8 -.L_2il0floatpacket.34: - .long 0x00000000,0x3eb00000 - .type .L_2il0floatpacket.34,@object - .size .L_2il0floatpacket.34,8 - .align 8 -.L_2il0floatpacket.36: - .long 0x54442d18,0x3f8921fb - .type .L_2il0floatpacket.36,@object - .size .L_2il0floatpacket.36,8 - .align 8 -.L_2il0floatpacket.37: - .long 0x33145c07,0x3c21a626 - .type .L_2il0floatpacket.37,@object - .size .L_2il0floatpacket.37,8 - .align 8 -__dtan_la_Tab: - .long 0 - .long 0 - .long 0 - .long 2146435072 - .type __dtan_la_Tab,@object - .size __dtan_la_Tab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_tan_s_la.s b/numpy/core/src/umath/svml/svml_z0_tan_s_la.s deleted file mode 100644 index befb6edbafdb..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_tan_s_la.s +++ /dev/null @@ -1,3177 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * ( optimized for throughput, with small table lookup, works when HW FMA is available ) - * - * Implementation reduces argument x to |R|32 multiplications - */ - vmovups .L_2il0floatpacket.18(%rip), %zmm6 - kxnorw %k0, %k0, %k2 - kxnorw %k0, %k0, %k3 - kmovw %k0, %edx - vpandd .L_2il0floatpacket.15(%rip), %zmm11, %zmm5 - vpsrld $23, %zmm5, %zmm7 - vpslld $1, %zmm7, %zmm8 - vpaddd %zmm7, %zmm8, %zmm9 - vpslld $2, %zmm9, %zmm4 - vpxord %zmm3, %zmm3, %zmm3 - vgatherdps (%rax,%zmm4), %zmm3{%k2} - kxnorw %k0, %k0, %k2 - vpsrld $16, %zmm3, %zmm5 - vpxord %zmm15, %zmm15, %zmm15 - vpxord %zmm2, %zmm2, %zmm2 - vgatherdps 4(%rax,%zmm4), %zmm15{%k3} - vgatherdps 8(%rax,%zmm4), %zmm2{%k2} - vpsrld $16, %zmm2, %zmm13 - -/* - * Also get the significand as an integer - * NB: adding in the integer bit is wrong for denorms! - * To make this work for denorms we should do something slightly different - */ - vpandd .L_2il0floatpacket.16(%rip), %zmm11, %zmm0 - vpaddd .L_2il0floatpacket.17(%rip), %zmm0, %zmm1 - vpsrld $16, %zmm15, %zmm0 - vpsrld $16, %zmm1, %zmm8 - vpandd %zmm6, %zmm3, %zmm9 - vpandd %zmm6, %zmm15, %zmm12 - vpandd %zmm6, %zmm2, %zmm7 - vpandd %zmm6, %zmm1, %zmm14 - -/* Now do the big multiplication and carry propagation */ - vpmulld %zmm9, %zmm8, %zmm4 - vpmulld %zmm0, %zmm8, %zmm3 - vpmulld %zmm12, %zmm8, %zmm2 - vpmulld %zmm13, %zmm8, %zmm1 - vpmulld %zmm7, %zmm8, %zmm8 - vpmulld %zmm5, %zmm14, %zmm7 - vpmulld %zmm9, %zmm14, %zmm5 - vpmulld %zmm0, %zmm14, %zmm9 - vpmulld %zmm12, %zmm14, %zmm0 - vpmulld %zmm13, %zmm14, %zmm12 - vpsrld $16, %zmm12, %zmm14 - vpsrld $16, %zmm0, %zmm13 - vpsrld $16, %zmm9, %zmm15 - vpsrld $16, %zmm5, %zmm12 - vpsrld $16, %zmm8, %zmm8 - vpaddd %zmm14, %zmm1, %zmm1 - vpaddd %zmm13, %zmm2, %zmm2 - vpaddd %zmm15, %zmm3, %zmm15 - vpaddd %zmm12, %zmm4, %zmm3 - vpandd %zmm6, %zmm0, %zmm13 - vpaddd %zmm1, %zmm13, %zmm4 - vpaddd %zmm4, %zmm8, %zmm14 - vpsrld $16, %zmm14, %zmm0 - vpandd %zmm6, %zmm9, %zmm9 - vpaddd %zmm2, %zmm9, %zmm1 - vpaddd %zmm1, %zmm0, %zmm8 - -/* - * Now round at the 2^-8 bit position for reduction mod pi/2^7 - * instead of the original 2pi (but still with the same 2pi scaling). - * Use a shifter of 2^15 + 2^14. - * The N we get is our final version; it has an offset of - * 2^8 because of the implicit integer bit, and anyway for negative - * starting value it's a 2s complement thing. But we need to mask - * off the exponent part anyway so it's fine. - */ - vmovups .L_2il0floatpacket.21(%rip), %zmm1 - vpandd %zmm6, %zmm7, %zmm7 - vpaddd %zmm3, %zmm7, %zmm13 - vpsrld $16, %zmm8, %zmm3 - vpandd %zmm6, %zmm5, %zmm5 - vpaddd %zmm15, %zmm5, %zmm2 - vpaddd %zmm2, %zmm3, %zmm15 - vpsrld $16, %zmm15, %zmm12 - vpaddd %zmm13, %zmm12, %zmm5 - -/* Assemble reduced argument from the pieces */ - vpandd %zmm6, %zmm14, %zmm9 - vpandd %zmm6, %zmm15, %zmm7 - vpslld $16, %zmm5, %zmm6 - vpslld $16, %zmm8, %zmm5 - vpaddd %zmm7, %zmm6, %zmm4 - vpaddd %zmm9, %zmm5, %zmm9 - vpsrld $9, %zmm4, %zmm6 - -/* - * We want to incorporate the original sign now too. - * Do it here for convenience in getting the right N value, - * though we could wait right to the end if we were prepared - * to modify the sign of N later too. - * So get the appropriate sign mask now (or sooner). - */ - vpandd .L_2il0floatpacket.19(%rip), %zmm11, %zmm0 - vpandd .L_2il0floatpacket.24(%rip), %zmm9, %zmm13 - vpslld $5, %zmm13, %zmm14 - -/* - * Create floating-point high part, implicitly adding integer bit 1 - * Incorporate overall sign at this stage too. - */ - vpxord .L_2il0floatpacket.20(%rip), %zmm0, %zmm8 - vpord %zmm8, %zmm6, %zmm2 - vaddps {rn-sae}, %zmm2, %zmm1, %zmm12 - vsubps {rn-sae}, %zmm1, %zmm12, %zmm3 - vsubps {rn-sae}, %zmm3, %zmm2, %zmm7 - -/* - * Create floating-point low and medium parts, respectively - * lo_17, ... lo_0, 0, ..., 0 - * hi_8, ... hi_0, lo_31, ..., lo_18 - * then subtract off the implicitly added integer bits, - * 2^-46 and 2^-23, respectively. - * Put the original sign into all of them at this stage. - */ - vpxord .L_2il0floatpacket.23(%rip), %zmm0, %zmm6 - vpord %zmm6, %zmm14, %zmm15 - vpandd .L_2il0floatpacket.26(%rip), %zmm4, %zmm4 - vsubps {rn-sae}, %zmm6, %zmm15, %zmm8 - vandps .L_2il0floatpacket.29(%rip), %zmm11, %zmm15 - vpsrld $18, %zmm9, %zmm6 - -/* - * If the magnitude of the input is <= 2^-20, then - * just pass through the input, since no reduction will be needed and - * the main path will only work accurately if the reduced argument is - * about >= 2^-40 (which it is for all large pi multiples) - */ - vmovups .L_2il0floatpacket.30(%rip), %zmm14 - vcmpps $26, {sae}, %zmm14, %zmm15, %k3 - vcmpps $22, {sae}, %zmm14, %zmm15, %k2 - vpxord .L_2il0floatpacket.25(%rip), %zmm0, %zmm1 - vpslld $14, %zmm4, %zmm0 - vpord %zmm6, %zmm0, %zmm0 - vpord %zmm1, %zmm0, %zmm4 - vsubps {rn-sae}, %zmm1, %zmm4, %zmm2 - vpternlogd $255, %zmm6, %zmm6, %zmm6 - -/* Now add them up into 2 reasonably aligned pieces */ - vaddps {rn-sae}, %zmm2, %zmm7, %zmm13 - vsubps {rn-sae}, %zmm13, %zmm7, %zmm7 - vaddps {rn-sae}, %zmm7, %zmm2, %zmm3 - -/* - * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND - * Set sRp2 = _VRES_R^2 and then resume the original code. - */ - vmovups .L_2il0floatpacket.31(%rip), %zmm2 - vaddps {rn-sae}, %zmm8, %zmm3, %zmm1 - vmovups .L_2il0floatpacket.28(%rip), %zmm8 - -/* Grab our final N value as an integer, appropriately masked mod 2^8 */ - vpandd .L_2il0floatpacket.22(%rip), %zmm12, %zmm5 - -/* - * Now multiply those numbers all by 2 pi, reasonably accurately. - * (RHi + RLo) * (pi_lead + pi_trail) ~= - * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead) - */ - vmovups .L_2il0floatpacket.27(%rip), %zmm12 - vmulps {rn-sae}, %zmm12, %zmm13, %zmm0 - vmovaps %zmm12, %zmm9 - vfmsub213ps {rn-sae}, %zmm0, %zmm13, %zmm9 - vfmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm13 - vmovaps %zmm6, %zmm8 - vfmadd213ps {rn-sae}, %zmm13, %zmm12, %zmm1 - vpandnd %zmm15, %zmm15, %zmm8{%k3} - vpandnd %zmm15, %zmm15, %zmm6{%k2} - vandps %zmm11, %zmm6, %zmm14 - vandps %zmm0, %zmm8, %zmm15 - vandps %zmm1, %zmm8, %zmm12 - vorps %zmm15, %zmm14, %zmm6 - vpsrld $31, %zmm6, %zmm3 - vpsubd %zmm3, %zmm2, %zmm4 - vpaddd %zmm4, %zmm5, %zmm7 - vpsrld $2, %zmm7, %zmm13 - vpslld $2, %zmm13, %zmm9 - -/* - * ---------------------------------------------------------- - * End of large arguments path - * ---------------------------------------------------------- - * Merge results from main and large paths: - */ - vblendmps %zmm13, %zmm10, %zmm10{%k1} - vpsubd %zmm9, %zmm5, %zmm5 - vmovups .L_2il0floatpacket.32(%rip), %zmm9 - vcvtdq2ps {rn-sae}, %zmm5, %zmm0 - vmovups .L_2il0floatpacket.33(%rip), %zmm5 - vfmadd231ps {rn-sae}, %zmm0, %zmm5, %zmm12 - vmovups (%rsp), %zmm5 - vaddps {rn-sae}, %zmm6, %zmm12, %zmm6 - vfmadd213ps {rn-sae}, %zmm6, %zmm9, %zmm0 - vblendmps %zmm0, %zmm5, %zmm5{%k1} - jmp .LBL_1_2 - .align 16,0x90 - - .cfi_endproc - - .type __svml_tanf16,@function - .size __svml_tanf16,.-__svml_tanf16 -..LN__svml_tanf16.0: - -.L_2__routine_start___svml_stan_cout_rare_internal_1: - - .align 16,0x90 - -__svml_stan_cout_rare_internal: - - - .cfi_startproc -..L63: - - xorl %eax, %eax - movl (%rdi), %edx - movzwl 2(%rdi), %ecx - movl %edx, -8(%rsp) - andl $32640, %ecx - shrl $24, %edx - andl $127, %edx - movb %dl, -5(%rsp) - cmpl $32640, %ecx - je .LBL_2_3 - - - ret - -.LBL_2_3: - - cmpl $2139095040, -8(%rsp) - jne .LBL_2_5 - - - movss (%rdi), %xmm0 - movl $1, %eax - mulss __stan_la__vmlsTanTab(%rip), %xmm0 - movss %xmm0, (%rsi) - ret - -.LBL_2_5: - - movss (%rdi), %xmm0 - mulss (%rdi), %xmm0 - movss %xmm0, (%rsi) - ret - .align 16,0x90 - - .cfi_endproc - - .type __svml_stan_cout_rare_internal,@function - .size __svml_stan_cout_rare_internal,.-__svml_stan_cout_rare_internal -..LN__svml_stan_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.15: - .long 0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000 - .type .L_2il0floatpacket.15,@object - .size .L_2il0floatpacket.15,64 - .align 64 -.L_2il0floatpacket.16: - .long 0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff - .type .L_2il0floatpacket.16,@object - .size .L_2il0floatpacket.16,64 - .align 64 -.L_2il0floatpacket.17: - .long 0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000 - .type .L_2il0floatpacket.17,@object - .size .L_2il0floatpacket.17,64 - .align 64 -.L_2il0floatpacket.18: - .long 0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff - .type .L_2il0floatpacket.18,@object - .size .L_2il0floatpacket.18,64 - .align 64 -.L_2il0floatpacket.19: - .long 0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000 - .type .L_2il0floatpacket.19,@object - .size .L_2il0floatpacket.19,64 - .align 64 -.L_2il0floatpacket.20: - .long 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000 - .type .L_2il0floatpacket.20,@object - .size .L_2il0floatpacket.20,64 - .align 64 -.L_2il0floatpacket.21: - .long 0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000 - .type .L_2il0floatpacket.21,@object - .size .L_2il0floatpacket.21,64 - .align 64 -.L_2il0floatpacket.22: - .long 0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff - .type .L_2il0floatpacket.22,@object - .size .L_2il0floatpacket.22,64 - .align 64 -.L_2il0floatpacket.23: - .long 0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000 - .type .L_2il0floatpacket.23,@object - .size .L_2il0floatpacket.23,64 - .align 64 -.L_2il0floatpacket.24: - .long 0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff - .type .L_2il0floatpacket.24,@object - .size .L_2il0floatpacket.24,64 - .align 64 -.L_2il0floatpacket.25: - .long 0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000 - .type .L_2il0floatpacket.25,@object - .size .L_2il0floatpacket.25,64 - .align 64 -.L_2il0floatpacket.26: - .long 0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff - .type .L_2il0floatpacket.26,@object - .size .L_2il0floatpacket.26,64 - .align 64 -.L_2il0floatpacket.27: - .long 0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb - .type .L_2il0floatpacket.27,@object - .size .L_2il0floatpacket.27,64 - .align 64 -.L_2il0floatpacket.28: - .long 0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e - .type .L_2il0floatpacket.28,@object - .size .L_2il0floatpacket.28,64 - .align 64 -.L_2il0floatpacket.29: - .long 0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff - .type .L_2il0floatpacket.29,@object - .size .L_2il0floatpacket.29,64 - .align 64 -.L_2il0floatpacket.30: - .long 0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000 - .type .L_2il0floatpacket.30,@object - .size .L_2il0floatpacket.30,64 - .align 64 -.L_2il0floatpacket.31: - .long 0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002 - .type .L_2il0floatpacket.31,@object - .size .L_2il0floatpacket.31,64 - .align 64 -.L_2il0floatpacket.32: - .long 0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb - .type .L_2il0floatpacket.32,@object - .size .L_2il0floatpacket.32,64 - .align 64 -.L_2il0floatpacket.33: - .long 0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e - .type .L_2il0floatpacket.33,@object - .size .L_2il0floatpacket.33,64 - .align 64 -__svml_stan_data_internal: - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1092811139 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 1036586970 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 832708968 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 633484485 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 832708608 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 708075802 - .long 2147483648 - .long 1036629468 - .long 1045147567 - .long 1050366018 - .long 1054086093 - .long 1057543609 - .long 1059786177 - .long 1062344705 - .long 1065353216 - .long 1067186156 - .long 1069519047 - .long 1072658590 - .long 1075479162 - .long 1079179983 - .long 1084284919 - .long 1092776803 - .long 4286578687 - .long 3240260451 - .long 3231768567 - .long 3226663631 - .long 3222962810 - .long 3220142238 - .long 3217002695 - .long 3214669804 - .long 3212836864 - .long 3209828353 - .long 3207269825 - .long 3205027257 - .long 3201569741 - .long 3197849666 - .long 3192631215 - .long 3184113116 - .long 2147483648 - .long 826651354 - .long 791306928 - .long 2989111746 - .long 2982175258 - .long 2992568675 - .long 850100121 - .long 850281093 - .long 0 - .long 861435400 - .long 840342808 - .long 3003924160 - .long 3016492578 - .long 865099790 - .long 856723932 - .long 3025444934 - .long 4085252096 - .long 877961286 - .long 3004207580 - .long 3012583438 - .long 869008930 - .long 856440512 - .long 2987826456 - .long 3008919048 - .long 0 - .long 2997764741 - .long 2997583769 - .long 845085027 - .long 834691610 - .long 841628098 - .long 2938790576 - .long 2974135002 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1051372198 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1040758920 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 1059256707 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 2139095040 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1262485504 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1065353216 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1174470656 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 1070137344 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 972922880 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 866263040 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 741630234 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 1070141403 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 3007036718 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 2801216749 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 3183752116 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 1065353212 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 3202070443 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1008677739 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1073741824 - .long 1070141403 - .long 3007036718 - .long 0 - .long 0 - .long 0 - .long 1065353216 - .long 0 - .long 0 - .long 1051372765 - .long 0 - .long 1069935515 - .long 853435276 - .long 0 - .long 1019812401 - .long 797871386 - .long 1065353216 - .long 975043072 - .long 1019820333 - .long 1051400329 - .long 1015569723 - .long 1069729628 - .long 2999697034 - .long 0 - .long 1028208956 - .long 816029531 - .long 1065353216 - .long 991832832 - .long 1028240852 - .long 1051479824 - .long 1023251493 - .long 1069523740 - .long 860164016 - .long 0 - .long 1033310670 - .long 827321128 - .long 1065353216 - .long 1001540608 - .long 1033364538 - .long 1051617929 - .long 1028458464 - .long 1069317853 - .long 2977958621 - .long 0 - .long 1036629468 - .long 826649990 - .long 1065353216 - .long 1008660256 - .long 1036757738 - .long 1051807326 - .long 1032162226 - .long 1069111966 - .long 3009745511 - .long 0 - .long 1039964354 - .long 2964214364 - .long 1065353216 - .long 1014578464 - .long 1040201797 - .long 1052059423 - .long 1034708638 - .long 1068906078 - .long 848017692 - .long 0 - .long 1041753444 - .long 2982519524 - .long 1065353216 - .long 1018446032 - .long 1041972480 - .long 1052374628 - .long 1037453248 - .long 1068700191 - .long 3004118141 - .long 0 - .long 1043443277 - .long 2985501265 - .long 1065353216 - .long 1022797056 - .long 1043793882 - .long 1052746889 - .long 1039915463 - .long 1068494303 - .long 857455223 - .long 0 - .long 1045147567 - .long 791292384 - .long 1065353216 - .long 1025642520 - .long 1045675728 - .long 1053195814 - .long 1041590498 - .long 1068288416 - .long 2992986704 - .long 0 - .long 1046868583 - .long 833925599 - .long 1065353216 - .long 1028557712 - .long 1047628490 - .long 1053716836 - .long 1043186017 - .long 1068082528 - .long 863082593 - .long 0 - .long 1048592340 - .long 2988940902 - .long 1065353216 - .long 1031831496 - .long 1049119700 - .long 1054310701 - .long 1044788971 - .long 1067876641 - .long 837040812 - .long 0 - .long 1049473154 - .long 2972885556 - .long 1065353216 - .long 1033689040 - .long 1050184288 - .long 1054999523 - .long 1046698028 - .long 1067670754 - .long 3006826934 - .long 0 - .long 1050366018 - .long 2989112046 - .long 1065353216 - .long 1035760784 - .long 1051302645 - .long 1055777031 - .long 1048635818 - .long 1067464866 - .long 853854846 - .long 0 - .long 1051272279 - .long 817367088 - .long 1065353216 - .long 1038057984 - .long 1052482025 - .long 1056656040 - .long 1049723582 - .long 1067258979 - .long 2999277465 - .long 0 - .long 1052193360 - .long 2986510371 - .long 1065353216 - .long 1040390392 - .long 1053730424 - .long 1057307751 - .long 1050943059 - .long 1067053091 - .long 860373800 - .long 0 - .long 1053130765 - .long 2987705281 - .long 1065353216 - .long 1041784404 - .long 1055056706 - .long 1057868403 - .long 1052298273 - .long 1066847204 - .long 2974604846 - .long 0 - .long 1054086093 - .long 2982175058 - .long 1065353216 - .long 1043312844 - .long 1056470731 - .long 1058502663 - .long 1053852727 - .long 1066641317 - .long 3009535726 - .long 0 - .long 1055061049 - .long 2985572766 - .long 1065353216 - .long 1044984860 - .long 1057474074 - .long 1059214863 - .long 1055565854 - .long 1066435429 - .long 848437261 - .long 0 - .long 1056057456 - .long 844263924 - .long 1065353216 - .long 1046810746 - .long 1058286064 - .long 1060014844 - .long 1057227928 - .long 1066229542 - .long 3003908357 - .long 0 - .long 1057020941 - .long 2987700082 - .long 1065353216 - .long 1048689044 - .long 1059160627 - .long 1060914481 - .long 1058313864 - .long 1066023654 - .long 857665008 - .long 0 - .long 1057543609 - .long 2992568718 - .long 1065353216 - .long 1049773965 - .long 1060105673 - .long 1061932376 - .long 1059565214 - .long 1065817767 - .long 2992147565 - .long 0 - .long 1058080175 - .long 854607280 - .long 1065353216 - .long 1050955490 - .long 1061130203 - .long 1063075792 - .long 1060964899 - .long 1065611879 - .long 863292377 - .long 0 - .long 1058631876 - .long 848316488 - .long 1065353216 - .long 1052241912 - .long 1062244476 - .long 1064374250 - .long 1062608877 - .long 1065405992 - .long 838719090 - .long 0 - .long 1059200055 - .long 2987155932 - .long 1065353216 - .long 1053642609 - .long 1063460266 - .long 1065596017 - .long 1064468970 - .long 1065046993 - .long 848647046 - .long 0 - .long 1059786177 - .long 850099898 - .long 1065353216 - .long 1055168194 - .long 1064791104 - .long 1066427841 - .long 1065988022 - .long 1064635218 - .long 854274415 - .long 0 - .long 1060391849 - .long 2998448362 - .long 1065353216 - .long 1056830711 - .long 1065802920 - .long 1067373883 - .long 1067237086 - .long 1064223444 - .long 2998857895 - .long 0 - .long 1061018831 - .long 852661766 - .long 1073741824 - .long 3202769007 - .long 1066608086 - .long 1068453481 - .long 1068697612 - .long 1063811669 - .long 2991727995 - .long 0 - .long 1061669068 - .long 2986407194 - .long 1073741824 - .long 3200789612 - .long 1067498217 - .long 1069688111 - .long 1070408903 - .long 1063399894 - .long 2971248290 - .long 0 - .long 1062344705 - .long 850280824 - .long 1073741824 - .long 3198626104 - .long 1068485666 - .long 1071103306 - .long 1072410651 - .long 1062988119 - .long 839209514 - .long 0 - .long 1063048126 - .long 826671880 - .long 1073741824 - .long 3196257989 - .long 1069584946 - .long 1072731698 - .long 1074256640 - .long 1062576344 - .long 848856831 - .long 0 - .long 1063781982 - .long 845614362 - .long 1073741824 - .long 3191263702 - .long 1070813191 - .long 1074178145 - .long 1075661786 - .long 1062164569 - .long 854484200 - .long 0 - .long 1064549237 - .long 855412877 - .long 1073741824 - .long 3183449264 - .long 1072190735 - .long 1075269479 - .long 1077331464 - .long 1061752795 - .long 2998648110 - .long 1065353216 - .long 3196839438 - .long 839748996 - .long 1056964608 - .long 3187152817 - .long 3179496939 - .long 1025375660 - .long 3159543663 - .long 1061341020 - .long 2991308426 - .long 1065353216 - .long 3196528703 - .long 2993207654 - .long 1056964608 - .long 3187565865 - .long 3178961235 - .long 1025040649 - .long 3158667440 - .long 1060929245 - .long 2969570013 - .long 1065353216 - .long 3196220448 - .long 839617357 - .long 1048576000 - .long 1039897640 - .long 3178234548 - .long 1024731756 - .long 3157936127 - .long 1060517470 - .long 839629084 - .long 1065353216 - .long 3195769474 - .long 2972943314 - .long 1048576000 - .long 1039520273 - .long 3177530035 - .long 1024452069 - .long 3157392148 - .long 1060105695 - .long 849066615 - .long 1065353216 - .long 3195162227 - .long 824230882 - .long 1048576000 - .long 1039159939 - .long 3176846430 - .long 1024176063 - .long 3156719803 - .long 1059693920 - .long 854693985 - .long 1065353216 - .long 3194559300 - .long 837912886 - .long 1048576000 - .long 1038816139 - .long 3176182519 - .long 1023917626 - .long 3156100775 - .long 1059282146 - .long 2998438326 - .long 1065353216 - .long 3193960492 - .long 2976936506 - .long 1048576000 - .long 1038488404 - .long 3175537158 - .long 1023672824 - .long 3155484691 - .long 1058870371 - .long 2990888857 - .long 1065353216 - .long 3193365611 - .long 837021697 - .long 1048576000 - .long 1038176293 - .long 3174909264 - .long 1023428141 - .long 3154717848 - .long 1058458596 - .long 2966216238 - .long 1065353216 - .long 3192774465 - .long 2981011604 - .long 1048576000 - .long 1037879388 - .long 3174297790 - .long 1023026096 - .long 3154246903 - .long 1058046821 - .long 840048653 - .long 1065353216 - .long 3192186872 - .long 2982847435 - .long 1048576000 - .long 1037597300 - .long 3173701765 - .long 1022609285 - .long 3153191752 - .long 1057635046 - .long 849276400 - .long 1065353216 - .long 3191602652 - .long 2972865050 - .long 1048576000 - .long 1037329660 - .long 3173120241 - .long 1022242934 - .long 3152466531 - .long 1057223271 - .long 854903769 - .long 1065353216 - .long 3191021630 - .long 838792638 - .long 1048576000 - .long 1037076124 - .long 3172552332 - .long 1021893801 - .long 3151682133 - .long 1056658385 - .long 840258438 - .long 1065353216 - .long 3190443633 - .long 2979855596 - .long 1048576000 - .long 1036836369 - .long 3171997189 - .long 1021543079 - .long 3150495127 - .long 1055834836 - .long 2990469287 - .long 1065353216 - .long 3189868496 - .long 2981611511 - .long 1048576000 - .long 1036610091 - .long 3171453986 - .long 1021220110 - .long 3149437649 - .long 1055011286 - .long 2962859682 - .long 1065353216 - .long 3189296055 - .long 2950857776 - .long 1048576000 - .long 1036397006 - .long 3170921933 - .long 1020942892 - .long 3148919762 - .long 1054187736 - .long 840468223 - .long 1065353216 - .long 3188726149 - .long 2955915960 - .long 1048576000 - .long 1036196851 - .long 3169906765 - .long 1020660679 - .long 3147905210 - .long 1053364187 - .long 2990259502 - .long 1065353216 - .long 3188158621 - .long 2978622083 - .long 1048576000 - .long 1036009378 - .long 3168882838 - .long 1020421234 - .long 3147436656 - .long 1052540637 - .long 2961181405 - .long 1065353216 - .long 3187515595 - .long 789904544 - .long 1048576000 - .long 1035834359 - .long 3167876891 - .long 1020189995 - .long 3146799430 - .long 1051717087 - .long 840678007 - .long 1065353216 - .long 3186389132 - .long 2974324164 - .long 1048576000 - .long 1035671582 - .long 3166887590 - .long 1019957287 - .long 3145677161 - .long 1050893538 - .long 2990049718 - .long 1065353216 - .long 3185266517 - .long 821445502 - .long 1048576000 - .long 1035520850 - .long 3165913616 - .long 1019751749 - .long 3143905397 - .long 1050069988 - .long 2957827630 - .long 1065353216 - .long 3184147455 - .long 823956970 - .long 1048576000 - .long 1035381982 - .long 3164953691 - .long 1019591684 - .long 3143870825 - .long 1049246438 - .long 840887792 - .long 1065353216 - .long 3183031657 - .long 2948197632 - .long 1048576000 - .long 1035254815 - .long 3164006661 - .long 1019406069 - .long 3141406886 - .long 1048269777 - .long 831869830 - .long 1065353216 - .long 3181918839 - .long 829265530 - .long 1048576000 - .long 1035139196 - .long 3163071263 - .long 1019275107 - .long 3141473894 - .long 1046622678 - .long 2954471074 - .long 1065353216 - .long 3180808717 - .long 2974758491 - .long 1048576000 - .long 1035034991 - .long 3161787608 - .long 1019131285 - .long 3139614851 - .long 1044975579 - .long 2981870894 - .long 1065353216 - .long 3179701015 - .long 2951749952 - .long 1048576000 - .long 1034942077 - .long 3159956688 - .long 1019002541 - .long 3137649644 - .long 1043328479 - .long 832289399 - .long 1065353216 - .long 3177908479 - .long 2968441398 - .long 1048576000 - .long 1034860345 - .long 3158142289 - .long 1018906717 - .long 3137336762 - .long 1041681380 - .long 2949439022 - .long 1065353216 - .long 3175701100 - .long 2963548093 - .long 1048576000 - .long 1034789701 - .long 3156342344 - .long 1018810804 - .long 3133887847 - .long 1039881169 - .long 823481222 - .long 1065353216 - .long 3173496918 - .long 2969038481 - .long 1048576000 - .long 1034730062 - .long 3154554595 - .long 1018750428 - .long 3136028910 - .long 1036586971 - .long 2973482286 - .long 1065353216 - .long 3171295395 - .long 2968300352 - .long 1048576000 - .long 1034681361 - .long 3151437839 - .long 1018664053 - .long 3123383004 - .long 1033292772 - .long 2941050414 - .long 1065353216 - .long 3167298168 - .long 808398440 - .long 1048576000 - .long 1034643540 - .long 3147899215 - .long 1018610153 - .long 943964915 - .long 1028198363 - .long 2965093678 - .long 1065353216 - .long 3162902549 - .long 2950073902 - .long 1048576000 - .long 1034616555 - .long 3143016255 - .long 1018603598 - .long 3133555092 - .long 1019809755 - .long 2956705070 - .long 1065353216 - .long 3154512883 - .long 803361198 - .long 1048576000 - .long 1034600377 - .long 3134618720 - .long 1018580133 - .long 3134056577 - .long 0 - .long 0 - .long 1065353216 - .long 0 - .long 0 - .long 1048576000 - .long 1034594987 - .long 0 - .long 1018552971 - .long 0 - .long 3167293403 - .long 809221422 - .long 1065353216 - .long 1007029235 - .long 2950844846 - .long 1048576000 - .long 1034600377 - .long 987135072 - .long 1018580133 - .long 986572929 - .long 3175682011 - .long 817610030 - .long 1065353216 - .long 1015418901 - .long 802590254 - .long 1048576000 - .long 1034616555 - .long 995532607 - .long 1018603598 - .long 986071444 - .long 3180776420 - .long 793566766 - .long 1065353216 - .long 1019814520 - .long 2955882088 - .long 1048576000 - .long 1034643540 - .long 1000415567 - .long 1018610153 - .long 3091448562 - .long 3184070619 - .long 825998638 - .long 1065353216 - .long 1023811747 - .long 820816704 - .long 1048576000 - .long 1034681361 - .long 1003954191 - .long 1018664053 - .long 975899356 - .long 3187364817 - .long 2970964870 - .long 1065353216 - .long 1026013270 - .long 821554833 - .long 1048576000 - .long 1034730062 - .long 1007070947 - .long 1018750428 - .long 988545262 - .long 3189165028 - .long 801955374 - .long 1065353216 - .long 1028217452 - .long 816064445 - .long 1048576000 - .long 1034789701 - .long 1008858696 - .long 1018810804 - .long 986404199 - .long 3190812127 - .long 2979773047 - .long 1065353216 - .long 1030424831 - .long 820957750 - .long 1048576000 - .long 1034860345 - .long 1010658641 - .long 1018906717 - .long 989853114 - .long 3192459227 - .long 834387246 - .long 1065353216 - .long 1032217367 - .long 804266304 - .long 1048576000 - .long 1034942077 - .long 1012473040 - .long 1019002541 - .long 990165996 - .long 3194106326 - .long 806987426 - .long 1065353216 - .long 1033325069 - .long 827274843 - .long 1048576000 - .long 1035034991 - .long 1014303960 - .long 1019131285 - .long 992131203 - .long 3195753425 - .long 2979353478 - .long 1065353216 - .long 1034435191 - .long 2976749178 - .long 1048576000 - .long 1035139196 - .long 1015587615 - .long 1019275107 - .long 993990246 - .long 3196730086 - .long 2988371440 - .long 1065353216 - .long 1035548009 - .long 800713984 - .long 1048576000 - .long 1035254815 - .long 1016523013 - .long 1019406069 - .long 993923238 - .long 3197553636 - .long 810343982 - .long 1065353216 - .long 1036663807 - .long 2971440618 - .long 1048576000 - .long 1035381982 - .long 1017470043 - .long 1019591684 - .long 996387177 - .long 3198377186 - .long 842566070 - .long 1065353216 - .long 1037782869 - .long 2968929150 - .long 1048576000 - .long 1035520850 - .long 1018429968 - .long 1019751749 - .long 996421749 - .long 3199200735 - .long 2988161655 - .long 1065353216 - .long 1038905484 - .long 826840516 - .long 1048576000 - .long 1035671582 - .long 1019403942 - .long 1019957287 - .long 998193513 - .long 3200024285 - .long 813697757 - .long 1065353216 - .long 1040031947 - .long 2937388192 - .long 1048576000 - .long 1035834359 - .long 1020393243 - .long 1020189995 - .long 999315782 - .long 3200847835 - .long 842775854 - .long 1065353216 - .long 1040674973 - .long 831138435 - .long 1048576000 - .long 1036009378 - .long 1021399190 - .long 1020421234 - .long 999953008 - .long 3201671384 - .long 2987951871 - .long 1065353216 - .long 1041242501 - .long 808432312 - .long 1048576000 - .long 1036196851 - .long 1022423117 - .long 1020660679 - .long 1000421562 - .long 3202494934 - .long 815376034 - .long 1065353216 - .long 1041812407 - .long 803374128 - .long 1048576000 - .long 1036397006 - .long 1023438285 - .long 1020942892 - .long 1001436114 - .long 3203318484 - .long 842985639 - .long 1065353216 - .long 1042384848 - .long 834127863 - .long 1048576000 - .long 1036610091 - .long 1023970338 - .long 1021220110 - .long 1001954001 - .long 3204142033 - .long 2987742086 - .long 1065353216 - .long 1042959985 - .long 832371948 - .long 1048576000 - .long 1036836369 - .long 1024513541 - .long 1021543079 - .long 1003011479 - .long 3204706919 - .long 3002387417 - .long 1065353216 - .long 1043537982 - .long 2986276286 - .long 1048576000 - .long 1037076124 - .long 1025068684 - .long 1021893801 - .long 1004198485 - .long 3205118694 - .long 2996760048 - .long 1065353216 - .long 1044119004 - .long 825381402 - .long 1048576000 - .long 1037329660 - .long 1025636593 - .long 1022242934 - .long 1004982883 - .long 3205530469 - .long 2987532301 - .long 1065353216 - .long 1044703224 - .long 835363787 - .long 1048576000 - .long 1037597300 - .long 1026218117 - .long 1022609285 - .long 1005708104 - .long 3205942244 - .long 818732590 - .long 1065353216 - .long 1045290817 - .long 833527956 - .long 1048576000 - .long 1037879388 - .long 1026814142 - .long 1023026096 - .long 1006763255 - .long 3206354019 - .long 843405209 - .long 1065353216 - .long 1045881963 - .long 2984505345 - .long 1048576000 - .long 1038176293 - .long 1027425616 - .long 1023428141 - .long 1007234200 - .long 3206765794 - .long 850954678 - .long 1065353216 - .long 1046476844 - .long 829452858 - .long 1048576000 - .long 1038488404 - .long 1028053510 - .long 1023672824 - .long 1008001043 - .long 3207177568 - .long 3002177633 - .long 1065353216 - .long 1047075652 - .long 2985396534 - .long 1048576000 - .long 1038816139 - .long 1028698871 - .long 1023917626 - .long 1008617127 - .long 3207589343 - .long 2996550263 - .long 1065353216 - .long 1047678579 - .long 2971714530 - .long 1048576000 - .long 1039159939 - .long 1029362782 - .long 1024176063 - .long 1009236155 - .long 3208001118 - .long 2987112732 - .long 1065353216 - .long 1048285826 - .long 825459666 - .long 1048576000 - .long 1039520273 - .long 1030046387 - .long 1024452069 - .long 1009908500 - .long 3208412893 - .long 822086365 - .long 1065353216 - .long 1048736800 - .long 2987101005 - .long 1048576000 - .long 1039897640 - .long 1030750900 - .long 1024731756 - .long 1010452479 - .long 3208824668 - .long 843824778 - .long 1065353216 - .long 1049045055 - .long 845724006 - .long 1056964608 - .long 3187565865 - .long 1031477587 - .long 1025040649 - .long 1011183792 - .long 3209236443 - .long 851164462 - .long 0 - .long 3212836864 - .long 725680128 - .long 1073741824 - .long 3003121664 - .long 3221225472 - .long 1076541384 - .long 3226821083 - .long 3209648217 - .long 3001967848 - .long 0 - .long 3212032885 - .long 3002896525 - .long 1073741824 - .long 3183449264 - .long 3219674383 - .long 1075269479 - .long 3224815112 - .long 3210059992 - .long 2996340479 - .long 0 - .long 3211265630 - .long 2993098010 - .long 1073741824 - .long 3191263702 - .long 3218296839 - .long 1074178145 - .long 3223145434 - .long 3210471767 - .long 2986693162 - .long 0 - .long 3210531774 - .long 2974155528 - .long 1073741824 - .long 3196257989 - .long 3217068594 - .long 1072731698 - .long 3221740288 - .long 3210883542 - .long 823764642 - .long 0 - .long 3209828353 - .long 2997764472 - .long 1073741824 - .long 3198626104 - .long 3215969314 - .long 1071103306 - .long 3219894299 - .long 3211295317 - .long 844244347 - .long 0 - .long 3209152716 - .long 838923546 - .long 1073741824 - .long 3200789612 - .long 3214981865 - .long 1069688111 - .long 3217892551 - .long 3211707092 - .long 851374247 - .long 0 - .long 3208502479 - .long 3000145414 - .long 1073741824 - .long 3202769007 - .long 3214091734 - .long 1068453481 - .long 3216181260 - .long 3212118866 - .long 3001758063 - .long 0 - .long 3207875497 - .long 850964714 - .long 1065353216 - .long 1056830711 - .long 3213286568 - .long 1067373883 - .long 3214720734 - .long 3212530641 - .long 2996130694 - .long 0 - .long 3207269825 - .long 2997583546 - .long 1065353216 - .long 1055168194 - .long 3212274752 - .long 1066427841 - .long 3213471670 - .long 3212889640 - .long 2986202738 - .long 0 - .long 3206683703 - .long 839672284 - .long 1065353216 - .long 1053642609 - .long 3210943914 - .long 1065596017 - .long 3211952618 - .long 3213095527 - .long 3010776025 - .long 0 - .long 3206115524 - .long 2995800136 - .long 1065353216 - .long 1052241912 - .long 3209728124 - .long 1064374250 - .long 3210092525 - .long 3213301415 - .long 844663917 - .long 0 - .long 3205563823 - .long 3002090928 - .long 1065353216 - .long 1050955490 - .long 3208613851 - .long 1063075792 - .long 3208448547 - .long 3213507302 - .long 3005148656 - .long 0 - .long 3205027257 - .long 845085070 - .long 1065353216 - .long 1049773965 - .long 3207589321 - .long 1061932376 - .long 3207048862 - .long 3213713190 - .long 856424709 - .long 0 - .long 3204504589 - .long 840216434 - .long 1065353216 - .long 1048689044 - .long 3206644275 - .long 1060914481 - .long 3205797512 - .long 3213919077 - .long 2995920909 - .long 0 - .long 3203541104 - .long 2991747572 - .long 1065353216 - .long 1046810746 - .long 3205769712 - .long 1060014844 - .long 3204711576 - .long 3214124965 - .long 862052078 - .long 0 - .long 3202544697 - .long 838089118 - .long 1065353216 - .long 1044984860 - .long 3204957722 - .long 1059214863 - .long 3203049502 - .long 3214330852 - .long 827121198 - .long 0 - .long 3201569741 - .long 834691410 - .long 1065353216 - .long 1043312844 - .long 3203954379 - .long 1058502663 - .long 3201336375 - .long 3214536739 - .long 3007857448 - .long 0 - .long 3200614413 - .long 840221633 - .long 1065353216 - .long 1041784404 - .long 3202540354 - .long 1057868403 - .long 3199781921 - .long 3214742627 - .long 851793817 - .long 0 - .long 3199677008 - .long 839026723 - .long 1065353216 - .long 1040390392 - .long 3201214072 - .long 1057307751 - .long 3198426707 - .long 3214948514 - .long 3001338494 - .long 0 - .long 3198755927 - .long 2964850736 - .long 1065353216 - .long 1038057984 - .long 3199965673 - .long 1056656040 - .long 3197207230 - .long 3215154402 - .long 859343286 - .long 0 - .long 3197849666 - .long 841628398 - .long 1065353216 - .long 1035760784 - .long 3198786293 - .long 1055777031 - .long 3196119466 - .long 3215360289 - .long 2984524460 - .long 0 - .long 3196956802 - .long 825401908 - .long 1065353216 - .long 1033689040 - .long 3197667936 - .long 1054999523 - .long 3194181676 - .long 3215566176 - .long 3010566241 - .long 0 - .long 3196075988 - .long 841457254 - .long 1065353216 - .long 1031831496 - .long 3196603348 - .long 1054310701 - .long 3192272619 - .long 3215772064 - .long 845503056 - .long 0 - .long 3194352231 - .long 2981409247 - .long 1065353216 - .long 1028557712 - .long 3195112138 - .long 1053716836 - .long 3190669665 - .long 3215977951 - .long 3004938871 - .long 0 - .long 3192631215 - .long 2938776032 - .long 1065353216 - .long 1025642520 - .long 3193159376 - .long 1053195814 - .long 3189074146 - .long 3216183839 - .long 856634493 - .long 0 - .long 3190926925 - .long 838017617 - .long 1065353216 - .long 1022797056 - .long 3191277530 - .long 1052746889 - .long 3187399111 - .long 3216389726 - .long 2995501340 - .long 0 - .long 3189237092 - .long 835035876 - .long 1065353216 - .long 1018446032 - .long 3189456128 - .long 1052374628 - .long 3184936896 - .long 3216595614 - .long 862261863 - .long 0 - .long 3187448002 - .long 816730716 - .long 1065353216 - .long 1014578464 - .long 3187685445 - .long 1052059423 - .long 3182192286 - .long 3216801501 - .long 830474973 - .long 0 - .long 3184113116 - .long 2974133638 - .long 1065353216 - .long 1008660256 - .long 3184241386 - .long 1051807326 - .long 3179645874 - .long 3217007388 - .long 3007647664 - .long 0 - .long 3180794318 - .long 2974804776 - .long 1065353216 - .long 1001540608 - .long 3180848186 - .long 1051617929 - .long 3175942112 - .long 3217213276 - .long 852213386 - .long 0 - .long 3175692604 - .long 2963513179 - .long 1065353216 - .long 991832832 - .long 3175724500 - .long 1051479824 - .long 3170735141 - .long 3217419163 - .long 3000918924 - .long 0 - .long 3167296049 - .long 2945355034 - .long 1065353216 - .long 975043072 - .long 3167303981 - .long 1051400329 - .long 3163053371 - .type __svml_stan_data_internal,@object - .size __svml_stan_data_internal,7232 - .align 64 -__svml_stan_reduction_data_internal: - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1 - .long 0 - .long 0 - .long 2 - .long 0 - .long 0 - .long 5 - .long 0 - .long 0 - .long 10 - .long 0 - .long 0 - .long 20 - .long 0 - .long 0 - .long 40 - .long 0 - .long 0 - .long 81 - .long 0 - .long 0 - .long 162 - .long 0 - .long 0 - .long 325 - .long 0 - .long 0 - .long 651 - .long 0 - .long 0 - .long 1303 - .long 0 - .long 0 - .long 2607 - .long 0 - .long 0 - .long 5215 - .long 0 - .long 0 - .long 10430 - .long 0 - .long 0 - .long 20860 - .long 0 - .long 0 - .long 41721 - .long 0 - .long 0 - .long 83443 - .long 0 - .long 0 - .long 166886 - .long 0 - .long 0 - .long 333772 - .long 0 - .long 0 - .long 667544 - .long 0 - .long 0 - .long 1335088 - .long 0 - .long 0 - .long 2670176 - .long 0 - .long 0 - .long 5340353 - .long 0 - .long 0 - .long 10680707 - .long 0 - .long 0 - .long 21361414 - .long 0 - .long 0 - .long 42722829 - .long 0 - .long 0 - .long 85445659 - .long 0 - .long 0 - .long 170891318 - .long 0 - .long 0 - .long 341782637 - .long 0 - .long 0 - .long 683565275 - .long 0 - .long 0 - .long 1367130551 - .long 0 - .long 0 - .long 2734261102 - .long 0 - .long 1 - .long 1173554908 - .long 0 - .long 2 - .long 2347109817 - .long 0 - .long 5 - .long 399252338 - .long 0 - .long 10 - .long 798504676 - .long 0 - .long 20 - .long 1597009353 - .long 0 - .long 40 - .long 3194018707 - .long 0 - .long 81 - .long 2093070119 - .long 0 - .long 162 - .long 4186140238 - .long 0 - .long 325 - .long 4077313180 - .long 0 - .long 651 - .long 3859659065 - .long 0 - .long 1303 - .long 3424350834 - .long 0 - .long 2607 - .long 2553734372 - .long 0 - .long 5215 - .long 812501448 - .long 0 - .long 10430 - .long 1625002897 - .long 0 - .long 20860 - .long 3250005794 - .long 0 - .long 41721 - .long 2205044292 - .long 0 - .long 83443 - .long 115121288 - .long 0 - .long 166886 - .long 230242576 - .long 0 - .long 333772 - .long 460485152 - .long 0 - .long 667544 - .long 920970305 - .long 0 - .long 1335088 - .long 1841940610 - .long 0 - .long 2670176 - .long 3683881221 - .long 0 - .long 5340353 - .long 3072795146 - .long 0 - .long 10680707 - .long 1850622997 - .long 0 - .long 21361414 - .long 3701245994 - .long 0 - .long 42722829 - .long 3107524692 - .long 0 - .long 85445659 - .long 1920082089 - .long 0 - .long 170891318 - .long 3840164178 - .long 0 - .long 341782637 - .long 3385361061 - .long 0 - .long 683565275 - .long 2475754826 - .long 0 - .long 1367130551 - .long 656542356 - .long 0 - .long 2734261102 - .long 1313084713 - .long 1 - .long 1173554908 - .long 2626169427 - .long 2 - .long 2347109817 - .long 957371559 - .long 5 - .long 399252338 - .long 1914743119 - .long 10 - .long 798504676 - .long 3829486239 - .long 20 - .long 1597009353 - .long 3364005183 - .long 40 - .long 3194018707 - .long 2433043071 - .long 81 - .long 2093070119 - .long 571118846 - .long 162 - .long 4186140238 - .long 1142237692 - .long 325 - .long 4077313180 - .long 2284475384 - .long 651 - .long 3859659065 - .long 273983472 - .long 1303 - .long 3424350834 - .long 547966945 - .long 2607 - .long 2553734372 - .long 1095933890 - .long 5215 - .long 812501448 - .long 2191867780 - .long 10430 - .long 1625002897 - .long 88768265 - .long 20860 - .long 3250005794 - .long 177536531 - .long 41721 - .long 2205044292 - .long 355073063 - .long 83443 - .long 115121288 - .long 710146126 - .long 166886 - .long 230242576 - .long 1420292253 - .long 333772 - .long 460485152 - .long 2840584506 - .long 667544 - .long 920970305 - .long 1386201717 - .long 1335088 - .long 1841940610 - .long 2772403434 - .long 2670176 - .long 3683881221 - .long 1249839573 - .long 5340353 - .long 3072795146 - .long 2499679147 - .long 10680707 - .long 1850622997 - .long 704390999 - .long 21361414 - .long 3701245994 - .long 1408781999 - .long 42722829 - .long 3107524692 - .long 2817563999 - .long 85445659 - .long 1920082089 - .long 1340160702 - .long 170891318 - .long 3840164178 - .long 2680321405 - .long 341782637 - .long 3385361061 - .long 1065675514 - .long 683565275 - .long 2475754826 - .long 2131351028 - .long 1367130551 - .long 656542356 - .long 4262702056 - .long 2734261102 - .long 1313084713 - .long 4230436817 - .long 1173554908 - .long 2626169427 - .long 4165906339 - .long 2347109817 - .long 957371559 - .long 4036845383 - .long 399252338 - .long 1914743119 - .long 3778723471 - .long 798504676 - .long 3829486239 - .long 3262479647 - .long 1597009353 - .long 3364005183 - .long 2229991998 - .long 3194018707 - .long 2433043071 - .long 165016701 - .long 2093070119 - .long 571118846 - .long 330033402 - .long 4186140238 - .long 1142237692 - .long 660066805 - .long 4077313180 - .long 2284475384 - .long 1320133610 - .long 3859659065 - .long 273983472 - .long 2640267220 - .long 3424350834 - .long 547966945 - .long 985567145 - .long 2553734372 - .long 1095933890 - .long 1971134291 - .long 812501448 - .long 2191867780 - .long 3942268582 - .long 1625002897 - .long 88768265 - .long 3589569869 - .long 3250005794 - .long 177536531 - .long 2884172442 - .long 2205044292 - .long 355073063 - .long 1473377588 - .long 115121288 - .long 710146126 - .long 2946755177 - .long 230242576 - .long 1420292253 - .long 1598543059 - .long 460485152 - .long 2840584506 - .long 3197086118 - .long 920970305 - .long 1386201717 - .long 2099204941 - .long 1841940610 - .long 2772403434 - .long 4198409883 - .long 3683881221 - .long 1249839573 - .long 4101852471 - .long 3072795146 - .long 2499679147 - .long 3908737646 - .long 1850622997 - .long 704390999 - .long 3522507997 - .long 3701245994 - .long 1408781999 - .long 2750048699 - .long 3107524692 - .long 2817563999 - .long 1205130103 - .long 1920082089 - .long 1340160702 - .long 2410260206 - .long 3840164178 - .long 2680321405 - .long 525553116 - .long 3385361061 - .long 1065675514 - .long 1051106232 - .long 2475754826 - .long 2131351028 - .long 2102212464 - .long 656542356 - .long 4262702056 - .long 4204424928 - .long 1313084713 - .long 4230436817 - .long 4113882560 - .long 2626169427 - .long 4165906339 - .long 3932797825 - .long 957371559 - .long 4036845383 - .long 3570628355 - .long 1914743119 - .long 3778723471 - .long 2846289414 - .long 3829486239 - .long 3262479647 - .long 1397611533 - .long 3364005183 - .long 2229991998 - .long 2795223067 - .long 2433043071 - .long 165016701 - .long 1295478838 - .long 571118846 - .long 330033402 - .long 2590957677 - .long 1142237692 - .long 660066805 - .long 886948059 - .long 2284475384 - .long 1320133610 - .long 1773896118 - .long 273983472 - .long 2640267220 - .long 3547792237 - .long 547966945 - .long 985567145 - .long 2800617179 - .long 1095933890 - .long 1971134291 - .long 1306267062 - .long 2191867780 - .long 3942268582 - .long 2612534124 - .long 88768265 - .long 3589569869 - .long 930100952 - .long 177536531 - .long 2884172442 - .long 1860201905 - .long 355073063 - .long 1473377588 - .long 3720403810 - .long 710146126 - .long 2946755177 - .long 3145840325 - .long 1420292253 - .long 1598543059 - .long 1996713354 - .long 2840584506 - .long 3197086118 - .long 3993426708 - .long 1386201717 - .long 2099204941 - .long 3691886121 - .long 2772403434 - .long 4198409883 - .long 3088804946 - .long 1249839573 - .long 4101852471 - .long 1882642597 - .long 2499679147 - .long 3908737646 - .long 3765285194 - .long 704390999 - .long 3522507997 - .long 3235603093 - .long 1408781999 - .long 2750048699 - .long 2176238891 - .long 2817563999 - .long 1205130103 - .long 57510486 - .long 1340160702 - .long 2410260206 - .long 115020972 - .long 2680321405 - .long 525553116 - .long 230041945 - .long 1065675514 - .long 1051106232 - .long 460083891 - .long 2131351028 - .long 2102212464 - .long 920167782 - .long 4262702056 - .long 4204424928 - .long 1840335564 - .long 4230436817 - .long 4113882560 - .long 3680671129 - .long 4165906339 - .long 3932797825 - .long 3066374962 - .long 4036845383 - .long 3570628355 - .long 1837782628 - .long 3778723471 - .long 2846289414 - .long 3675565257 - .long 3262479647 - .long 1397611533 - .long 3056163219 - .long 2229991998 - .long 2795223067 - .long 1817359143 - .long 165016701 - .long 1295478838 - .long 3634718287 - .long 330033402 - .long 2590957677 - .long 2974469278 - .long 660066805 - .long 886948059 - .long 1653971260 - .long 1320133610 - .long 1773896118 - .long 3307942520 - .long 2640267220 - .long 3547792237 - .long 2320917745 - .long 985567145 - .long 2800617179 - .long 346868194 - .long 1971134291 - .long 1306267062 - .long 693736388 - .long 3942268582 - .long 2612534124 - .long 1387472776 - .long 3589569869 - .long 930100952 - .long 2774945552 - .long 2884172442 - .long 1860201905 - .long 1254923809 - .long 1473377588 - .long 3720403810 - .long 2509847619 - .long 2946755177 - .long 3145840325 - .long 724727943 - .long 1598543059 - .long 1996713354 - .long 1449455886 - .long 3197086118 - .long 3993426708 - .long 2898911772 - .long 2099204941 - .long 3691886121 - .long 1502856249 - .long 4198409883 - .long 3088804946 - .long 3005712498 - .long 4101852471 - .long 1882642597 - .long 1716457700 - .long 3908737646 - .long 3765285194 - .long 3432915400 - .long 3522507997 - .long 3235603093 - .long 2570863504 - .long 2750048699 - .long 2176238891 - .long 846759712 - .long 1205130103 - .long 57510486 - .long 1693519425 - .long 2410260206 - .long 115020972 - .long 3387038850 - .long 525553116 - .long 230041945 - .long 2479110404 - .long 1051106232 - .long 460083891 - .long 663253512 - .long 2102212464 - .long 920167782 - .long 1326507024 - .long 4204424928 - .long 1840335564 - .long 2653014048 - .long 4113882560 - .long 3680671129 - .long 1011060801 - .long 3932797825 - .long 3066374962 - .long 2022121603 - .long 3570628355 - .long 1837782628 - .long 4044243207 - .long 2846289414 - .long 3675565257 - .long 3793519119 - .long 1397611533 - .long 3056163219 - .long 3292070943 - .long 2795223067 - .long 1817359143 - .long 2289174591 - .long 1295478838 - .long 3634718287 - .long 283381887 - .long 2590957677 - .long 2974469278 - .long 566763775 - .type __svml_stan_reduction_data_internal,@object - .size __svml_stan_reduction_data_internal,3072 - .align 4 -__stan_la__vmlsTanTab: - .long 0 - .long 2139095040 - .type __stan_la__vmlsTanTab,@object - .size __stan_la__vmlsTanTab,8 diff --git a/numpy/core/src/umath/svml/svml_z0_tanh_d_la.s b/numpy/core/src/umath/svml/svml_z0_tanh_d_la.s deleted file mode 100644 index e9c3db611fc8..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_tanh_d_la.s +++ /dev/null @@ -1,3046 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * NOTE: Since the hyperbolic tangent function is odd - * (tanh(x) = -tanh(-x)), below algorithm deals with the absolute - * value of the argument |x|: tanh(x) = sign(x) * tanh(|x|) - * - * We use a table lookup method to compute tanh(|x|). - * The basic idea is to split the input range into a number of subintervals - * and to approximate tanh(.) with a polynomial on each of them. - * - * IEEE SPECIAL CONDITIONS: - * x = [+,-]0, r = [+,-]0 - * x = +Inf, r = +1 - * x = -Inf, r = -1 - * x = QNaN, r = QNaN - * x = SNaN, r = QNaN - * - * - * ALGORITHM DETAILS - * We handle special values in a callout function, aside from main path - * computations. "Special" for this algorithm are: - * INF, NAN, |x| > HUGE_THRESHOLD - * - * - * Main path computations are organized as follows: - * Actually we split the interval [0, SATURATION_THRESHOLD) - * into a number of subintervals. On each subinterval we approximate tanh(.) - * with a minimax polynomial of pre-defined degree. Polynomial coefficients - * are computed beforehand and stored in table. We also use - * - * y := |x| + B, - * - * here B depends on subinterval and is used to make argument - * closer to zero. - * We also add large fake interval [SATURATION_THRESHOLD, HUGE_THRESHOLD], - * where 1.0 + 0.0*y + 0.0*y^2 ... coefficients are stored - just to - * preserve main path computation logic but return 1.0 for all arguments. - * - * Hence reconstruction looks as follows: - * we extract proper polynomial and range reduction coefficients - * (Pj and B), corresponding to subinterval, to which |x| belongs, - * and return - * - * r := sign(x) * (P0 + P1 * y + ... + Pn * y^n) - * - * NOTE: we use multiprecision technique to multiply and sum the first - * K terms of the polynomial. So Pj, j = 0..K are stored in - * table each as a pair of target precision numbers (Pj and PLj) to - * achieve wider than target precision. - * - * -- - * - */ - - - .text -.L_2__routine_start___svml_tanh8_z0_0: - - .align 16,0x90 - .globl __svml_tanh8 - -__svml_tanh8: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $320, %rsp - vpsrlq $32, %zmm0, %zmm4 - vmovups %zmm0, (%rsp) - vmovups __svml_dtanh_data_internal(%rip), %zmm14 - vmovups 128+__svml_dtanh_data_internal(%rip), %zmm15 - vpmovqd %zmm4, %ymm5 - -/* -------------------- Constant loading ------------------- */ - vandpd 10432+__svml_dtanh_data_internal(%rip), %zmm0, %zmm13 - vandpd 10368+__svml_dtanh_data_internal(%rip), %zmm0, %zmm3 - -/* Here huge arguments, INF and NaNs are filtered out to callout. */ - vpand 2432+__svml_dtanh_data_internal(%rip), %ymm5, %ymm7 - vmovups 384+__svml_dtanh_data_internal(%rip), %zmm0 - vmovups 2176+__svml_dtanh_data_internal(%rip), %zmm4 - vmovups 2048+__svml_dtanh_data_internal(%rip), %zmm5 - vmovups %zmm3, 64(%rsp) - vmovups 512+__svml_dtanh_data_internal(%rip), %zmm3 - vpsubd 2496+__svml_dtanh_data_internal(%rip), %ymm7, %ymm8 - -/* if VMIN, VMAX is defined for I type */ - vxorps %ymm9, %ymm9, %ymm9 - vpmaxsd %ymm9, %ymm8, %ymm10 - vpminsd 2560+__svml_dtanh_data_internal(%rip), %ymm10, %ymm11 - vpsrld $19, %ymm11, %ymm12 - vmovups 1664+__svml_dtanh_data_internal(%rip), %zmm8 - vmovups 1536+__svml_dtanh_data_internal(%rip), %zmm9 - vmovups 1408+__svml_dtanh_data_internal(%rip), %zmm10 - vmovups 1280+__svml_dtanh_data_internal(%rip), %zmm11 - vpmovzxdq %ymm12, %zmm2 - vmovups 1152+__svml_dtanh_data_internal(%rip), %zmm12 - vpermt2pd 448+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 - vpermt2pd 64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 - vpermt2pd 2240+__svml_dtanh_data_internal(%rip), %zmm2, %zmm4 - vpermt2pd 2112+__svml_dtanh_data_internal(%rip), %zmm2, %zmm5 - vsubpd {rn-sae}, %zmm14, %zmm13, %zmm1 - vpermt2pd 1728+__svml_dtanh_data_internal(%rip), %zmm2, %zmm8 - vpermt2pd 1600+__svml_dtanh_data_internal(%rip), %zmm2, %zmm9 - vpermt2pd 1472+__svml_dtanh_data_internal(%rip), %zmm2, %zmm10 - vpermt2pd 1344+__svml_dtanh_data_internal(%rip), %zmm2, %zmm11 - vpermt2pd 1216+__svml_dtanh_data_internal(%rip), %zmm2, %zmm12 - vpermt2pd 576+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 - vpermt2pd 192+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 - vmovups %zmm0, 192(%rsp) - vmovups 2304+__svml_dtanh_data_internal(%rip), %zmm0 - vmovups 1024+__svml_dtanh_data_internal(%rip), %zmm13 - vmovups 896+__svml_dtanh_data_internal(%rip), %zmm14 - vmovups %zmm3, 256(%rsp) - vmovups 768+__svml_dtanh_data_internal(%rip), %zmm3 - vmovups %zmm15, 128(%rsp) - vmovups 640+__svml_dtanh_data_internal(%rip), %zmm15 - vpermt2pd 2368+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 - vpermt2pd 1088+__svml_dtanh_data_internal(%rip), %zmm2, %zmm13 - vpermt2pd 960+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 - vpermt2pd 832+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 - vpermt2pd 704+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 - vfmadd213pd {rn-sae}, %zmm4, %zmm1, %zmm0 - vpcmpgtd 10560+__svml_dtanh_data_internal(%rip), %ymm7, %ymm6 - vmovmskps %ymm6, %edx - vmovups 1920+__svml_dtanh_data_internal(%rip), %zmm6 - vfmadd213pd {rn-sae}, %zmm5, %zmm1, %zmm0 - vmovups 1792+__svml_dtanh_data_internal(%rip), %zmm7 - vpermt2pd 1984+__svml_dtanh_data_internal(%rip), %zmm2, %zmm6 - vpermt2pd 1856+__svml_dtanh_data_internal(%rip), %zmm2, %zmm7 - vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm0 - vmovups 256(%rsp), %zmm2 - vfmadd213pd {rn-sae}, %zmm7, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm8, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm9, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm10, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm11, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm12, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm13, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm14, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 - vmovups 128(%rsp), %zmm3 - vfmadd213pd {rn-sae}, %zmm15, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 - vmovups 192(%rsp), %zmm2 - vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 - vorpd 64(%rsp), %zmm0, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups (%rsp), %zmm1 - vmovups %zmm0, 128(%rsp) - vmovups %zmm1, 64(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xfe, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $8, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,8), %rdi - lea 128(%rsp,%r12,8), %rsi - - call __svml_dtanh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_tanh8,@function - .size __svml_tanh8,.-__svml_tanh8 -..LN__svml_tanh8.0: - -.L_2__routine_start___svml_dtanh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_dtanh_cout_rare_internal: - - - .cfi_startproc -..L63: - - lea __dtanh_la__imldTanhTab(%rip), %rdx - movb 7(%rdi), %al - andb $-128, %al - shrb $7, %al - movzbl %al, %ecx - movzwl 6(%rdi), %eax - andl $32752, %eax - shrl $4, %eax - movq (%rdx,%rcx,8), %rdx - cmpl $2047, %eax - je .LBL_2_6 - - - cmpl $2046, %eax - jne .LBL_2_4 - -.LBL_2_3: - - movq %rdx, (%rsi) - jmp .LBL_2_5 - -.LBL_2_4: - - movsd (%rdi), %xmm1 - movsd __dtanh_la__imldTanhTab(%rip), %xmm0 - addsd %xmm1, %xmm0 - mulsd %xmm0, %xmm1 - movsd %xmm1, (%rsi) - -.LBL_2_5: - - xorl %eax, %eax - ret - -.LBL_2_6: - - testl $1048575, 4(%rdi) - jne .LBL_2_9 - - - cmpl $0, (%rdi) - je .LBL_2_3 - -.LBL_2_9: - - movsd (%rdi), %xmm0 - addsd %xmm0, %xmm0 - movsd %xmm0, (%rsi) - jmp .LBL_2_5 - .align 16,0x90 - - .cfi_endproc - - .type __svml_dtanh_cout_rare_internal,@function - .size __svml_dtanh_cout_rare_internal,.-__svml_dtanh_cout_rare_internal -..LN__svml_dtanh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_dtanh_data_internal: - .long 0 - .long 0 - .long 0 - .long 1070333952 - .long 0 - .long 1070858240 - .long 0 - .long 1071382528 - .long 0 - .long 1071906816 - .long 0 - .long 1072431104 - .long 0 - .long 1072955392 - .long 0 - .long 1073479680 - .long 0 - .long 1074003968 - .long 0 - .long 1074528256 - .long 0 - .long 1075052544 - .long 0 - .long 1075576832 - .long 0 - .long 1076101120 - .long 0 - .long 1076625408 - .long 0 - .long 1077149696 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1097497746 - .long 1070305232 - .long 2699715854 - .long 1070817176 - .long 3997728823 - .long 1071273769 - .long 3938160533 - .long 1071759175 - .long 193732629 - .long 1072072293 - .long 3144363502 - .long 1072375075 - .long 2548249895 - .long 1072570303 - .long 638218690 - .long 1072665176 - .long 3325726839 - .long 1072689426 - .long 2523455249 - .long 1072693057 - .long 2200391922 - .long 1072693244 - .long 4257836853 - .long 1072693247 - .long 4294954840 - .long 1072693247 - .long 0 - .long 1072693248 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 3167993022 - .long 1013310014 - .long 2889539328 - .long 3159121931 - .long 394645568 - .long 1013728265 - .long 2799920971 - .long 1015161303 - .long 754366556 - .long 1013577885 - .long 3960180508 - .long 1014215657 - .long 69774042 - .long 3162475851 - .long 2161066944 - .long 3162264280 - .long 923362432 - .long 1014879086 - .long 2160345802 - .long 1014714211 - .long 3729195158 - .long 3161626453 - .long 675671997 - .long 1015336837 - .long 1141527416 - .long 1013957883 - .long 2209699952 - .long 3160643600 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 2750448946 - .long 1072596012 - .long 1257606939 - .long 1072501079 - .long 2619663609 - .long 1072338011 - .long 863303701 - .long 1072048204 - .long 2694810990 - .long 1071654144 - .long 837003456 - .long 1070723665 - .long 472162617 - .long 1069359818 - .long 532307062 - .long 1067137790 - .long 431106849 - .long 1064162173 - .long 329904022 - .long 1059572972 - .long 4080160942 - .long 1053550275 - .long 1402271583 - .long 1044493446 - .long 467296040 - .long 1032344560 - .long 26734424 - .long 1014207804 - .long 0 - .long 0 - .long 1071622681 - .long 3153114090 - .long 3948133409 - .long 3217705130 - .long 4096956694 - .long 3218184481 - .long 2616164369 - .long 3218465008 - .long 2620770434 - .long 3218641845 - .long 3075958072 - .long 3218520700 - .long 1950184789 - .long 3217978001 - .long 2686385024 - .long 3216731525 - .long 1489441818 - .long 3214597550 - .long 1992796697 - .long 3211642259 - .long 1952936976 - .long 3207056478 - .long 3904162951 - .long 3201033920 - .long 1382745445 - .long 3191977094 - .long 468673444 - .long 3179828208 - .long 3843669553 - .long 3161691483 - .long 0 - .long 0 - .long 1431655765 - .long 3218429269 - .long 3264395793 - .long 3218178991 - .long 60595194 - .long 3217824331 - .long 1837960166 - .long 3217124894 - .long 1964918946 - .long 3214033516 - .long 2998587684 - .long 1068822866 - .long 3421467326 - .long 1069267520 - .long 952003133 - .long 1068506016 - .long 1215426504 - .long 1066495476 - .long 2650572912 - .long 1063503494 - .long 4178958376 - .long 1059043758 - .long 3799805457 - .long 1052940753 - .long 3704238924 - .long 1043831645 - .long 2076585114 - .long 1031813109 - .long 1352847351 - .long 1013591371 - .long 0 - .long 0 - .long 3830371894 - .long 3169224254 - .long 74893150 - .long 1069567437 - .long 1235750664 - .long 1069825332 - .long 916043751 - .long 1069924975 - .long 4138411315 - .long 1069655686 - .long 829220656 - .long 1068441660 - .long 663246204 - .long 3213477792 - .long 652268865 - .long 3214415230 - .long 3251098232 - .long 3212868437 - .long 1480792335 - .long 3209929101 - .long 3365608027 - .long 3205478075 - .long 3330582883 - .long 3199375817 - .long 3573234945 - .long 3190266717 - .long 2061970086 - .long 3178248181 - .long 3148320390 - .long 3160026274 - .long 0 - .long 0 - .long 286337717 - .long 1069617425 - .long 4261152941 - .long 1068876190 - .long 3694459820 - .long 1067928728 - .long 2399079031 - .long 3212381546 - .long 394897286 - .long 3215735810 - .long 3073534041 - .long 3215860118 - .long 301960234 - .long 3214124960 - .long 3353887502 - .long 1064191753 - .long 4200665425 - .long 1063741482 - .long 2003926207 - .long 1061090030 - .long 2196865207 - .long 1056528964 - .long 2107880963 - .long 1050526402 - .long 3656860478 - .long 1041425071 - .long 881228218 - .long 1029305120 - .long 2612840768 - .long 1011136029 - .long 0 - .long 0 - .long 3722294196 - .long 3181505049 - .long 2573001951 - .long 3216029919 - .long 4095639908 - .long 3216151900 - .long 3272210374 - .long 3215957253 - .long 3439280785 - .long 3214441767 - .long 628273304 - .long 1066085542 - .long 3354767370 - .long 1066343670 - .long 300170709 - .long 1063270296 - .long 1870156670 - .long 3209139074 - .long 1580606479 - .long 3206808937 - .long 3818710870 - .long 3202408589 - .long 3126817102 - .long 3196311305 - .long 3320734688 - .long 3187224127 - .long 821170446 - .long 3175173312 - .long 3906480775 - .long 3156975650 - .long 0 - .long 0 - .long 428888587 - .long 3215696314 - .long 3125999356 - .long 3214336891 - .long 407196569 - .long 1053816799 - .long 886258254 - .long 1066874408 - .long 2149075781 - .long 1067351939 - .long 3888390356 - .long 1065784643 - .long 1226056234 - .long 3211994813 - .long 178100474 - .long 3210723675 - .long 4201249718 - .long 1058328572 - .long 3854015760 - .long 1057324616 - .long 3621220964 - .long 1052982118 - .long 1468766992 - .long 1046916174 - .long 2369608770 - .long 1037879115 - .long 327127732 - .long 1025754505 - .long 747046817 - .long 1007714190 - .long 0 - .long 0 - .long 4036362527 - .long 3191151783 - .long 839661649 - .long 1067363059 - .long 4269154241 - .long 1067251747 - .long 391446303 - .long 1066410535 - .long 2090623151 - .long 3211993063 - .long 1751510141 - .long 3213141508 - .long 4072216875 - .long 3209470961 - .long 3769618983 - .long 1061976030 - .long 3462945146 - .long 1057228123 - .long 3030849095 - .long 3202531084 - .long 4269010901 - .long 3198361258 - .long 742615277 - .long 3192302512 - .long 3397417437 - .long 3183265609 - .long 943110610 - .long 3171141000 - .long 371608300 - .long 3153099348 - .long 0 - .long 0 - .long 1315619150 - .long 1066820857 - .long 1001273821 - .long 3214201652 - .long 3859675203 - .long 3212560200 - .long 725858949 - .long 3213658423 - .long 2464052346 - .long 3212913056 - .long 1297319750 - .long 1063307355 - .long 563735576 - .long 1062988089 - .long 2756222736 - .long 3207203944 - .long 31207338 - .long 3204466214 - .long 434022900 - .long 1052227234 - .long 2370591882 - .long 1048628172 - .long 588930601 - .long 1042556347 - .long 3198977634 - .long 1033474724 - .long 1590950759 - .long 1021415866 - .long 195904708 - .long 1003000389 - .long 0 - .long 0 - .long 4252521214 - .long 3198731457 - .long 2969857811 - .long 3217870358 - .long 575387574 - .long 3212943727 - .long 67550217 - .long 3210922992 - .long 2955736731 - .long 1064678043 - .long 4193848343 - .long 1063288304 - .long 1845975253 - .long 3209397546 - .long 1025213509 - .long 3204479174 - .long 3713384058 - .long 1055658730 - .long 4120057883 - .long 3194988032 - .long 1573797757 - .long 3193584787 - .long 2514726550 - .long 3187678317 - .long 15343571 - .long 3178526042 - .long 104576940 - .long 3166444652 - .long 1147207168 - .long 3148070554 - .long 0 - .long 0 - .long 1467656669 - .long 3212977156 - .long 4154993315 - .long 1077775111 - .long 2465966858 - .long 3214886059 - .long 71777642 - .long 1068690118 - .long 2419763912 - .long 1061550205 - .long 1896047360 - .long 3210612806 - .long 3723555648 - .long 1058651288 - .long 3163703016 - .long 1057833732 - .long 1601936705 - .long 3201383489 - .long 2535509424 - .long 3195153293 - .long 3610885824 - .long 1043474022 - .long 1031698712 - .long 1037527637 - .long 1497459257 - .long 1028514042 - .long 3476455860 - .long 1016366870 - .long 758110873 - .long 998719391 - .long 0 - .long 0 - .long 572446067 - .long 3204307354 - .long 926268084 - .long 1081104698 - .long 1313112926 - .long 3217861477 - .long 3660716 - .long 1070677720 - .long 124568711 - .long 3210757561 - .long 2123022704 - .long 1059096046 - .long 576783408 - .long 1059279430 - .long 1651052980 - .long 3204387494 - .long 3164866735 - .long 1051430920 - .long 409335328 - .long 1046695415 - .long 3481520755 - .long 3188046619 - .long 1140549474 - .long 3182373569 - .long 708689751 - .long 3173247717 - .long 2627769694 - .long 3161153086 - .long 3804346926 - .long 3143551592 - .long 0 - .long 0 - .long 2302818369 - .long 1064188902 - .long 526101185 - .long 3235013457 - .long 2975776348 - .long 1075224435 - .long 1103981749 - .long 3223699933 - .long 4261798097 - .long 3210280329 - .long 30781306 - .long 1064564655 - .long 3939597931 - .long 3206430909 - .long 1816466405 - .long 1055007949 - .long 3868125859 - .long 3190076997 - .long 4218600579 - .long 3192569835 - .long 4167655123 - .long 1037376568 - .long 952533803 - .long 1032000428 - .long 895641221 - .long 1022851193 - .long 1237761065 - .long 1010835452 - .long 2902086315 - .long 3133082401 - .long 0 - .long 0 - .long 1899646778 - .long 3207205638 - .long 2434183270 - .long 3238288976 - .long 621380814 - .long 1078065849 - .long 247717525 - .long 3225783561 - .long 1611742563 - .long 3212088477 - .long 537725662 - .long 1065131990 - .long 3769436831 - .long 1057148224 - .long 3759797009 - .long 3196422840 - .long 842759416 - .long 3195613094 - .long 1736926210 - .long 1043198029 - .long 3915271468 - .long 3180709675 - .long 807416070 - .long 3176507548 - .long 3147759461 - .long 3167409843 - .long 3443382404 - .long 3155325020 - .long 1202615797 - .long 3129870924 - .long 0 - .long 0 - .long 1841653873 - .long 3210074087 - .long 2157744327 - .long 1095928888 - .long 3038317314 - .long 3229013375 - .long 2291108570 - .long 1082519711 - .long 707775397 - .long 1067599411 - .long 445214669 - .long 3216153989 - .long 3815354898 - .long 1054410330 - .long 1285070896 - .long 3199787450 - .long 1722630166 - .long 1047526663 - .long 2672844635 - .long 3188483010 - .long 1805520457 - .long 3179260705 - .long 542550567 - .long 1026041526 - .long 392361251 - .long 1017320419 - .long 562647833 - .long 1005205418 - .long 4253488278 - .long 988137457 - .long 0 - .long 0 - .long 3077187303 - .long 1060497018 - .long 1652392454 - .long 1099206368 - .long 414484972 - .long 3231848150 - .long 130592591 - .long 1084602513 - .long 1951534810 - .long 1068932483 - .long 2677544726 - .long 3216895313 - .long 2338009969 - .long 3203411240 - .long 302629286 - .long 1051889816 - .long 1274412910 - .long 3193339538 - .long 3731558070 - .long 1038350327 - .long 3135499196 - .long 1030352152 - .long 1329461873 - .long 3170325324 - .long 4058709792 - .long 3161656179 - .long 2167788642 - .long 3149540607 - .long 1602064437 - .long 3132466971 - .long 0 - .long 0 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 1069547520 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 7864320 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 3616958675 - .long 3172564458 - .long 1431547708 - .long 3218429269 - .long 3390261318 - .long 3188010876 - .long 1446529494 - .long 1069617425 - .long 913571762 - .long 3199219810 - .long 1583612462 - .long 3215695720 - .long 2995724807 - .long 3207222498 - .long 847913742 - .long 1066913721 - .long 1634876930 - .long 3212167789 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1694159514 - .long 1010239653 - .long 966318664 - .long 1069606551 - .long 2992375944 - .long 1072656686 - .long 1870405289 - .long 3217070889 - .long 1411308967 - .long 3218333047 - .long 4096824853 - .long 1068863484 - .long 2220740425 - .long 1069365950 - .long 1401698298 - .long 3215430111 - .long 4137473768 - .long 3215259762 - .long 2666938667 - .long 1066889956 - .long 121190665 - .long 1066187784 - .long 821637913 - .long 3213226090 - .long 0 - .long 3217096704 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1463410348 - .long 1012925678 - .long 2389577058 - .long 1069735062 - .long 1617794783 - .long 1072647710 - .long 1889094329 - .long 3217191869 - .long 1210518828 - .long 3218309813 - .long 1479174953 - .long 1069010221 - .long 3435917531 - .long 1069290104 - .long 291210913 - .long 3215575029 - .long 464478606 - .long 3215159746 - .long 1063797118 - .long 1067014292 - .long 3489481042 - .long 1065955541 - .long 2916293494 - .long 3213319415 - .long 0 - .long 3217227776 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1308961311 - .long 1014934498 - .long 2204208241 - .long 1069862983 - .long 2945950899 - .long 1072637797 - .long 1107689125 - .long 3217310565 - .long 545938327 - .long 3218284334 - .long 3174275192 - .long 1069150773 - .long 3754729793 - .long 1069207728 - .long 1611554958 - .long 3215708601 - .long 2936527704 - .long 3215052478 - .long 2983784402 - .long 1067121823 - .long 1327150338 - .long 1065710404 - .long 3371320326 - .long 3213391099 - .long 0 - .long 3217358848 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3546392464 - .long 1015001497 - .long 631120375 - .long 1069990256 - .long 1201634405 - .long 1072626967 - .long 266657677 - .long 3217426771 - .long 1567732958 - .long 3218256710 - .long 883708059 - .long 1069284653 - .long 1008115966 - .long 1069119372 - .long 2657338981 - .long 3215830093 - .long 3402640736 - .long 3214939036 - .long 1000796573 - .long 1067211764 - .long 53805889 - .long 1065455799 - .long 1736607114 - .long 3213440608 - .long 0 - .long 3217489920 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2741128528 - .long 1013617020 - .long 3111451323 - .long 1070116823 - .long 1649040643 - .long 1072615239 - .long 3411009101 - .long 3217540290 - .long 3408666525 - .long 3218227049 - .long 60831764 - .long 1069411415 - .long 64016149 - .long 1069025616 - .long 1202785467 - .long 3215938891 - .long 1072151579 - .long 3214707060 - .long 1534357116 - .long 1067283570 - .long 4218468492 - .long 1065037194 - .long 2285827787 - .long 3213467810 - .long 0 - .long 3217620992 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2659584459 - .long 1014368295 - .long 3537749475 - .long 1070242630 - .long 3072983457 - .long 1072602635 - .long 3507245872 - .long 3217650938 - .long 3434758212 - .long 3218195466 - .long 3801643091 - .long 1069530660 - .long 1128653951 - .long 1068927067 - .long 3580298628 - .long 3216008547 - .long 1645082338 - .long 3214462237 - .long 1048857889 - .long 1067336943 - .long 21547694 - .long 1064510970 - .long 1433152914 - .long 3213472968 - .long 0 - .long 3217752064 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2718912981 - .long 1013914074 - .long 1823051285 - .long 1070367623 - .long 1714227149 - .long 1072589179 - .long 2128046799 - .long 3217758540 - .long 2655098722 - .long 3218162081 - .long 1690074008 - .long 1069594780 - .long 353091525 - .long 1068824353 - .long 4206393496 - .long 3216049578 - .long 824478721 - .long 3214211899 - .long 3850924188 - .long 1067371825 - .long 2738209029 - .long 1063668369 - .long 853664366 - .long 3213456718 - .long 0 - .long 3217883136 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2312638749 - .long 1013630664 - .long 4267025360 - .long 1070491748 - .long 3776362539 - .long 1072574894 - .long 3063840907 - .long 3217862932 - .long 2436606365 - .long 3218127019 - .long 582931594 - .long 1069646387 - .long 3079837843 - .long 1068718114 - .long 3430470362 - .long 3216083715 - .long 1015897693 - .long 3213958348 - .long 765047087 - .long 1067388396 - .long 2337193368 - .long 1061824569 - .long 3002775972 - .long 3213420044 - .long 0 - .long 3218014208 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2001712669 - .long 1015665334 - .long 1330879460 - .long 1070636148 - .long 2956987714 - .long 1072551971 - .long 4281360332 - .long 3218013175 - .long 3304213057 - .long 3218063389 - .long 3261945160 - .long 1069715874 - .long 3866284424 - .long 1068553570 - .long 3423706630 - .long 3216121886 - .long 259493169 - .long 3213268437 - .long 4223676832 - .long 1067379852 - .long 2765317642 - .long 3210752240 - .long 2292494069 - .long 3213329490 - .long 0 - .long 3218145280 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1632443533 - .long 1015769771 - .long 3788472163 - .long 1070757367 - .long 2406795724 - .long 1072518757 - .long 1173083542 - .long 3218140352 - .long 3726086528 - .long 3217906251 - .long 1205028711 - .long 1069793280 - .long 2231197855 - .long 1068156878 - .long 2368637763 - .long 3216148628 - .long 2866127296 - .long 3211617797 - .long 2424606359 - .long 1067309831 - .long 2444940724 - .long 3212180962 - .long 3308128888 - .long 3213151909 - .long 0 - .long 3218276352 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 478834383 - .long 1014053288 - .long 1342399495 - .long 1070876422 - .long 2650660168 - .long 1072482726 - .long 976724127 - .long 3218226669 - .long 962417089 - .long 3217740546 - .long 1060150306 - .long 1069852926 - .long 411739190 - .long 1067700577 - .long 3846786712 - .long 3216148687 - .long 4007187252 - .long 1064073475 - .long 3455779574 - .long 1067180067 - .long 1865169557 - .long 3212900393 - .long 1200620699 - .long 3212923615 - .long 0 - .long 3218407424 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 267289397 - .long 1014452734 - .long 302318249 - .long 1070993143 - .long 1373990511 - .long 1072444121 - .long 1606419704 - .long 3218305061 - .long 3955669825 - .long 3217568496 - .long 2701083439 - .long 1069894809 - .long 3425188888 - .long 1067047616 - .long 2305426029 - .long 3216123827 - .long 1692531481 - .long 1065641523 - .long 232815703 - .long 1067000535 - .long 3949954748 - .long 3213214884 - .long 558890519 - .long 3212487521 - .long 0 - .long 3218538496 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1719941932 - .long 1006528498 - .long 368840470 - .long 1071107377 - .long 1825320027 - .long 1072403193 - .long 538136722 - .long 3218375283 - .long 1431312010 - .long 3217392305 - .long 2586725425 - .long 1069919291 - .long 2680871675 - .long 1065941593 - .long 4123661982 - .long 3216076488 - .long 4235496382 - .long 1066406926 - .long 2618960092 - .long 1066782660 - .long 2333865044 - .long 3213444845 - .long 1545458959 - .long 3211934181 - .long 0 - .long 3218669568 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 26286236 - .long 1013191219 - .long 990113957 - .long 1071218987 - .long 3284199501 - .long 1072360200 - .long 2981906127 - .long 3218437190 - .long 3154396333 - .long 3217214106 - .long 4182117656 - .long 1069927061 - .long 903677379 - .long 3207343530 - .long 384743261 - .long 3216009637 - .long 1679228359 - .long 1066734193 - .long 3407026595 - .long 1066538544 - .long 784962854 - .long 3213588186 - .long 1956733412 - .long 3210979700 - .long 0 - .long 3218800640 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1468217372 - .long 1015658399 - .long 2570814109 - .long 1071327852 - .long 532296332 - .long 1072315404 - .long 318213600 - .long 3218490738 - .long 3661105766 - .long 3217035931 - .long 4085840862 - .long 1069919095 - .long 2798312316 - .long 3213370099 - .long 1668326589 - .long 3215870599 - .long 3158013712 - .long 1066998409 - .long 673205579 - .long 1066158659 - .long 486665227 - .long 3213647762 - .long 3317145528 - .long 3208570948 - .long 0 - .long 3218931712 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2060955015 - .long 1014233667 - .long 2567098181 - .long 1071433868 - .long 1159081245 - .long 1072269064 - .long 1492598184 - .long 3218535971 - .long 1567055841 - .long 3216688180 - .long 2821222425 - .long 1069896605 - .long 3691290783 - .long 3214336992 - .long 343679101 - .long 3215679175 - .long 1878686296 - .long 1067197462 - .long 125933636 - .long 1065636281 - .long 421076939 - .long 3213630573 - .long 3748848474 - .long 1062499186 - .long 0 - .long 3219062784 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1860475216 - .long 1015320544 - .long 439764829 - .long 1071587361 - .long 3870821058 - .long 1072197223 - .long 1430736283 - .long 3218588540 - .long 1597812790 - .long 3216174065 - .long 2398544810 - .long 1069838732 - .long 961452807 - .long 3215095800 - .long 716310499 - .long 3215360049 - .long 2337792646 - .long 1067375770 - .long 3863538422 - .long 1064417477 - .long 2203480844 - .long 3213482785 - .long 2389621902 - .long 1063978354 - .long 0 - .long 3219193856 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 517838046 - .long 1015294339 - .long 2114713104 - .long 1071713012 - .long 2046328558 - .long 1072098392 - .long 29352448 - .long 3218631376 - .long 1533416325 - .long 3215079684 - .long 765247815 - .long 1069724759 - .long 24381189 - .long 3215564623 - .long 1213155449 - .long 3214886044 - .long 379420126 - .long 1067409218 - .long 3127061143 - .long 3210809777 - .long 3193663073 - .long 3213128287 - .long 2557278876 - .long 1064581282 - .long 0 - .long 3219324928 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 201012485 - .long 1013704982 - .long 4147262407 - .long 1071803766 - .long 3048814903 - .long 1071997795 - .long 1260857726 - .long 3218645540 - .long 270462819 - .long 3209873967 - .long 874660781 - .long 1069580732 - .long 1251156804 - .long 3215866075 - .long 3568210118 - .long 3214014484 - .long 3784557811 - .long 1067255146 - .long 47772576 - .long 3212562613 - .long 2075700783 - .long 3212539455 - .long 1121561449 - .long 1064698735 - .long 0 - .long 3219456000 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 72370286 - .long 1015768239 - .long 2345366573 - .long 1071888223 - .long 3155310239 - .long 1071897123 - .long 4105462806 - .long 3218634383 - .long 2329529114 - .long 1067280331 - .long 3078782452 - .long 1069291148 - .long 2210998062 - .long 3215997483 - .long 1498585052 - .long 3212353515 - .long 3032692199 - .long 1066974465 - .long 809329973 - .long 3213081308 - .long 2713838579 - .long 3211547879 - .long 1266611175 - .long 1064568889 - .long 0 - .long 3219587072 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2137918782 - .long 1013598293 - .long 2511343836 - .long 1071966424 - .long 4205808243 - .long 1071797842 - .long 2776384587 - .long 3218601667 - .long 3824787134 - .long 1068202086 - .long 4101819712 - .long 1068956189 - .long 3547601806 - .long 3216004360 - .long 4156237724 - .long 1064058621 - .long 3714924071 - .long 1066627770 - .long 2925917146 - .long 3213234133 - .long 4211598888 - .long 3209111151 - .long 2569808389 - .long 1064277859 - .long 0 - .long 3219718144 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2979324843 - .long 1013692066 - .long 2595126306 - .long 1072038496 - .long 4263058559 - .long 1071701178 - .long 2217257467 - .long 3218551298 - .long 2310932059 - .long 1068685603 - .long 3368327571 - .long 1068627625 - .long 3037419246 - .long 3215935424 - .long 3509936675 - .long 1065724141 - .long 1557247226 - .long 1066131548 - .long 3830787958 - .long 3213205743 - .long 1781883284 - .long 1062575914 - .long 3918078093 - .long 1063614197 - .long 0 - .long 3219849216 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3630992244 - .long 1015034507 - .long 461360001 - .long 1072104635 - .long 2866201612 - .long 1071571556 - .long 1021729265 - .long 3218487113 - .long 1039036234 - .long 1068940858 - .long 1685105679 - .long 1068140011 - .long 1856275853 - .long 3215769620 - .long 2211306181 - .long 1066373046 - .long 3739405201 - .long 1065456917 - .long 3870269089 - .long 3213053509 - .long 427599213 - .long 1063593231 - .long 40698732 - .long 1062709094 - .long 0 - .long 3219980288 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4017840557 - .long 1014067070 - .long 2764932206 - .long 1072165089 - .long 3362970633 - .long 1071394124 - .long 2677206355 - .long 3218412713 - .long 1827861303 - .long 1069122666 - .long 2476388705 - .long 1067583638 - .long 523365901 - .long 3215556224 - .long 1203249285 - .long 1066574111 - .long 4264074292 - .long 1064402288 - .long 3556167213 - .long 3212827889 - .long 3894081206 - .long 1063908871 - .long 2161178761 - .long 1061130844 - .long 0 - .long 3220111360 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3622330478 - .long 1016273425 - .long 923638641 - .long 1072245755 - .long 239419665 - .long 1071146518 - .long 4085259706 - .long 3218288969 - .long 1284806809 - .long 1069276013 - .long 2806747971 - .long 1066232498 - .long 75259250 - .long 3215197393 - .long 2597116185 - .long 1066648701 - .long 1680670491 - .long 3208755029 - .long 446818184 - .long 3212096816 - .long 1529495144 - .long 1063888972 - .long 808619025 - .long 3208443000 - .long 0 - .long 3220242432 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 462410646 - .long 1015565639 - .long 3157363066 - .long 1072336316 - .long 87541994 - .long 1070853747 - .long 2905067058 - .long 3218115077 - .long 1081050294 - .long 1069306453 - .long 4130581086 - .long 3212259234 - .long 1279737796 - .long 3214531982 - .long 901138781 - .long 1066501065 - .long 978916480 - .long 3211806490 - .long 1307294116 - .long 3210755549 - .long 1154728319 - .long 1063409950 - .long 983243444 - .long 3209435485 - .long 0 - .long 3220373504 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2617212772 - .long 1016126748 - .long 2762378177 - .long 1072409936 - .long 1926160805 - .long 1070604218 - .long 4131898582 - .long 3217810482 - .long 3068505203 - .long 1069203346 - .long 2854543895 - .long 3214027139 - .long 1276437050 - .long 3213652513 - .long 523800203 - .long 1066060621 - .long 3030576699 - .long 3212054264 - .long 210618624 - .long 3205409267 - .long 3515290542 - .long 1062456384 - .long 1613351841 - .long 3209185464 - .long 0 - .long 3220504576 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2178033281 - .long 1016051223 - .long 859883711 - .long 1072469258 - .long 4248327203 - .long 1070195167 - .long 4170103331 - .long 3217497647 - .long 3497702842 - .long 1069026027 - .long 669705965 - .long 3214426190 - .long 548733038 - .long 3212258725 - .long 1756337187 - .long 1065503890 - .long 1830841059 - .long 3211930343 - .long 1445563742 - .long 1061912703 - .long 2113494314 - .long 1060991234 - .long 1734825467 - .long 3208559895 - .long 0 - .long 3220635648 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1674478116 - .long 1016412476 - .long 1178764976 - .long 1072516719 - .long 1119346206 - .long 1069851736 - .long 1526584272 - .long 3217221512 - .long 3575463915 - .long 1068817773 - .long 2913683612 - .long 3214542291 - .long 1135909212 - .long 3207879094 - .long 1952394810 - .long 1064725296 - .long 508910559 - .long 3211537545 - .long 225204077 - .long 1062311155 - .long 1009857186 - .long 1056234420 - .long 2872841632 - .long 3207480811 - .long 0 - .long 3220766720 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1768234410 - .long 1014305046 - .long 1496797583 - .long 1072554475 - .long 3351833521 - .long 1069572393 - .long 68183265 - .long 3216938851 - .long 4178655528 - .long 1068606905 - .long 60791550 - .long 3214483781 - .long 1856281737 - .long 1063701265 - .long 4260560897 - .long 1063778674 - .long 2539586291 - .long 3210979253 - .long 2272785608 - .long 1062198907 - .long 1986161572 - .long 3206910344 - .long 1016667904 - .long 3205797138 - .long 0 - .long 3220897792 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3074583847 - .long 1017063845 - .long 4092570620 - .long 1072584374 - .long 3645618684 - .long 1069147119 - .long 1980755111 - .long 3216542681 - .long 889928399 - .long 1068320928 - .long 1360064809 - .long 3214330986 - .long 2266432388 - .long 1064407878 - .long 4147854841 - .long 1062471610 - .long 1812350685 - .long 3210287970 - .long 3710399832 - .long 1061728481 - .long 2458127659 - .long 3207279138 - .long 287360833 - .long 3197756422 - .long 0 - .long 3221028864 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 68970445 - .long 1013643458 - .long 3990219923 - .long 1072607967 - .long 97498680 - .long 1068787106 - .long 4136450559 - .long 3216216395 - .long 147179316 - .long 1067971098 - .long 1625987424 - .long 3214138005 - .long 3965878798 - .long 1064539455 - .long 3777445436 - .long 1059539413 - .long 3029913178 - .long 3209512624 - .long 2162291908 - .long 1061245910 - .long 351053474 - .long 3207087984 - .long 3766283083 - .long 1056943188 - .long 0 - .long 3221159936 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3139580402 - .long 1014663922 - .long 3748810696 - .long 1072634260 - .long 3154943320 - .long 1068262833 - .long 3181856712 - .long 3215694135 - .long 3656356636 - .long 1067539266 - .long 3897588284 - .long 3213798616 - .long 1461831298 - .long 1064461217 - .long 2900114226 - .long 3208814642 - .long 2606420357 - .long 3207868903 - .long 1741152094 - .long 1060222230 - .long 1469206701 - .long 3206514441 - .long 3518993813 - .long 1057090958 - .long 0 - .long 3221291008 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3285908565 - .long 1015477239 - .long 1797956315 - .long 1072657271 - .long 3302471936 - .long 1067543167 - .long 2151339553 - .long 3215007235 - .long 362228095 - .long 1066797401 - .long 3986406156 - .long 3213131380 - .long 388353381 - .long 1064042359 - .long 4147910906 - .long 3209239839 - .long 1739922885 - .long 1056259812 - .long 3188561056 - .long 1058406709 - .long 489122368 - .long 3205182155 - .long 202560853 - .long 1056234231 - .long 0 - .long 3221422080 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3806705628 - .long 1008327668 - .long 884432573 - .long 1072671353 - .long 137405484 - .long 1066747168 - .long 3531994812 - .long 3214216262 - .long 3217445183 - .long 1066105333 - .long 2910288024 - .long 3212464301 - .long 3196212707 - .long 1063467545 - .long 3156563895 - .long 3208963593 - .long 3591285453 - .long 1058733242 - .long 2889132271 - .long 1055392886 - .long 1038377961 - .long 3203561698 - .long 4084672077 - .long 1055001082 - .long 0 - .long 3221553152 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1881957148 - .long 1016569186 - .long 3451706443 - .long 1072679940 - .long 143468186 - .long 1066002557 - .long 553724800 - .long 3213475431 - .long 1049442771 - .long 1065415105 - .long 3378521943 - .long 3211821787 - .long 3176008209 - .long 1062800361 - .long 4016898691 - .long 3208498219 - .long 1548390021 - .long 1058670598 - .long 2097418483 - .long 3202689041 - .long 2756703589 - .long 3201351283 - .long 506736184 - .long 1053405377 - .long 0 - .long 3221684224 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 450339788 - .long 1015040915 - .long 2959639058 - .long 1072685166 - .long 2289443405 - .long 1065320893 - .long 3331959139 - .long 3212796584 - .long 724199976 - .long 1064616734 - .long 938566183 - .long 3211030741 - .long 1640535667 - .long 1062186735 - .long 187996035 - .long 3207841256 - .long 822311531 - .long 1058246461 - .long 160890851 - .long 3203087480 - .long 3163291388 - .long 1050479733 - .long 578249940 - .long 1051474021 - .long 0 - .long 3221815296 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 539445753 - .long 1012635531 - .long 3085578536 - .long 1072688342 - .long 2019637246 - .long 1064510347 - .long 2901018414 - .long 3211991061 - .long 2171427566 - .long 1063868144 - .long 678185093 - .long 3210287638 - .long 2685165718 - .long 1061401571 - .long 710336199 - .long 3207152667 - .long 2733135798 - .long 1057659331 - .long 886948177 - .long 3202751664 - .long 3345834247 - .long 1052218043 - .long 908728048 - .long 1047925874 - .long 0 - .long 3221946368 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4240302093 - .long 1016867082 - .long 1832260410 - .long 1072690271 - .long 154153694 - .long 1063730412 - .long 2094548181 - .long 3211211898 - .long 1392727515 - .long 1063180837 - .long 3132890025 - .long 3209604411 - .long 483611698 - .long 1060651750 - .long 4246355421 - .long 3206519479 - .long 1424637421 - .long 1057044161 - .long 2138185318 - .long 3202290304 - .long 2276282642 - .long 1052095798 - .long 4227780935 - .long 3196067472 - .long 0 - .long 3222077440 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2485733495 - .long 1017000498 - .long 484092514 - .long 1072691442 - .long 1653085170 - .long 1063007344 - .long 2893019346 - .long 3210489400 - .long 878866243 - .long 1062388018 - .long 2113174452 - .long 3208818852 - .long 2654141437 - .long 1059959432 - .long 3578550869 - .long 3205727739 - .long 315005006 - .long 1056288680 - .long 3246956604 - .long 3201593495 - .long 2197286540 - .long 1051718329 - .long 3044885069 - .long 3196227269 - .long 0 - .long 3222208512 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2794994668 - .long 1016833037 - .long 3287420517 - .long 1072692394 - .long 4133778764 - .long 1061857404 - .long 689562148 - .long 3209340342 - .long 1404089106 - .long 1061273627 - .long 1292441425 - .long 3207706805 - .long 93671116 - .long 1058816787 - .long 2903327974 - .long 3204626398 - .long 4279279273 - .long 1055202414 - .long 134688023 - .long 3200552187 - .long 3315379764 - .long 1050761310 - .long 2945780649 - .long 3195568939 - .long 0 - .long 3222339584 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2135621136 - .long 1016053539 - .long 309961636 - .long 1072692934 - .long 672792810 - .long 1060347512 - .long 2960305506 - .long 3207830967 - .long 1703867620 - .long 1059726750 - .long 824905914 - .long 3206160796 - .long 3036017847 - .long 1057284422 - .long 923304464 - .long 3203122673 - .long 1848642304 - .long 1053791859 - .long 2215350763 - .long 3199158388 - .long 3049848127 - .long 1049324210 - .long 3861893815 - .long 3194293196 - .long 0 - .long 3222470656 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2236028675 - .long 1016891036 - .long 2177293363 - .long 1072693132 - .long 776830057 - .long 1058856794 - .long 4190004158 - .long 3206340337 - .long 209955488 - .long 1058225857 - .long 845130443 - .long 3204660651 - .long 4204313304 - .long 1055835544 - .long 364525198 - .long 3201597210 - .long 3889299905 - .long 1052205563 - .long 1514389355 - .long 3197586647 - .long 1706817756 - .long 1047834665 - .long 3817417318 - .long 3192934132 - .long 0 - .long 3222601728 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1074033072 - .long 1013200912 - .long 2197899301 - .long 1072693205 - .long 1097614282 - .long 1057308273 - .long 209489097 - .long 3204791893 - .long 3641526339 - .long 1056723664 - .long 1792794946 - .long 3203158586 - .long 584598707 - .long 1054254910 - .long 253996240 - .long 3200135633 - .long 642640562 - .long 1050754580 - .long 3147361740 - .long 3196139610 - .long 1167319222 - .long 1046395158 - .long 3488053038 - .long 3191370264 - .long 0 - .long 3222732800 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 871679747 - .long 1016222468 - .long 1586311569 - .long 1072693232 - .long 4199724405 - .long 1055867613 - .long 3041006250 - .long 3203351246 - .long 482130003 - .long 1055184672 - .long 1689676855 - .long 3201619703 - .long 116121201 - .long 1052814264 - .long 4166318198 - .long 3198564764 - .long 388552649 - .long 1049191609 - .long 1384400086 - .long 3194577312 - .long 135589376 - .long 1044819515 - .long 2497367318 - .long 3189906305 - .long 0 - .long 3222863872 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 752986014 - .long 1014740322 - .long 1072834312 - .long 1072693242 - .long 1389704451 - .long 1054277685 - .long 817998738 - .long 3201761329 - .long 996777029 - .long 1053731553 - .long 811547911 - .long 3200166603 - .long 1604093935 - .long 1051232383 - .long 2381858127 - .long 3197131472 - .long 806055999 - .long 1047703656 - .long 443662424 - .long 3193089938 - .long 2855612429 - .long 1043379518 - .long 3671581230 - .long 3188373004 - .long 0 - .long 3222994944 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4161630806 - .long 1015796140 - .long 3799386689 - .long 1072693245 - .long 516062805 - .long 1052830799 - .long 6188716 - .long 3200314446 - .long 79447568 - .long 1052151909 - .long 223529141 - .long 3198586975 - .long 1557009707 - .long 1049758991 - .long 1527834451 - .long 3195539792 - .long 3841571054 - .long 1046184222 - .long 3228035136 - .long 3191570603 - .long 2497745717 - .long 1041799395 - .long 3127975351 - .long 3186863029 - .long 0 - .long 3223126016 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3013228433 - .long 1015734301 - .long 952591976 - .long 1072693247 - .long 3849195912 - .long 1051256594 - .long 1248135057 - .long 3198740242 - .long 1658384276 - .long 1050712587 - .long 3312197895 - .long 3197147657 - .long 2426751598 - .long 1048219658 - .long 2075412918 - .long 3194074453 - .long 1194511818 - .long 1044659399 - .long 2861395540 - .long 3190045864 - .long 1105252788 - .long 1040325059 - .long 278204179 - .long 3185374362 - .long 0 - .long 3223257088 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4084683796 - .long 1014352664 - .long 3549182448 - .long 1072693247 - .long 4170486715 - .long 1048984034 - .long 3652359522 - .long 3196467682 - .long 1780445294 - .long 1048420995 - .long 3329441198 - .long 3194856066 - .long 663245309 - .long 1045935418 - .long 1918070306 - .long 3191839818 - .long 4225866973 - .long 1042419329 - .long 1974315224 - .long 3187805832 - .long 847480060 - .long 1038120500 - .long 2386310431 - .long 3183105031 - .long 0 - .long 3223388160 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 951119343 - .long 1016641415 - .long 4194036288 - .long 1072693247 - .long 4207053894 - .long 1045958742 - .long 4131013457 - .long 3193442390 - .long 2503178506 - .long 1045433060 - .long 2309798544 - .long 3191868132 - .long 1503762043 - .long 1042918157 - .long 762244907 - .long 3188792499 - .long 3745081608 - .long 1039371450 - .long 3106729171 - .long 3184757959 - .long 3799011378 - .long 1035063995 - .long 693003136 - .long 3180102041 - .long 0 - .long 3223519232 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1712896388 - .long 1016000193 - .long 4281307769 - .long 1072693247 - .long 3495080264 - .long 1042943408 - .long 3483806577 - .long 3190427056 - .long 3577360645 - .long 1042374261 - .long 3557467263 - .long 3188809333 - .long 3692227868 - .long 1039911516 - .long 1459944482 - .long 3185739496 - .long 624248087 - .long 1036331657 - .long 3930021706 - .long 3181718167 - .long 439009527 - .long 1032014849 - .long 3184212578 - .long 3177110789 - .long 0 - .long 3223650304 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1958475666 - .long 1013700788 - .long 4293118680 - .long 1072693247 - .long 3829159519 - .long 1039938855 - .long 3827364885 - .long 3187422503 - .long 2374004141 - .long 1039322650 - .long 2380228874 - .long 3185757722 - .long 853065064 - .long 1036916376 - .long 3897809499 - .long 3182694159 - .long 2467115425 - .long 1033300621 - .long 2966460473 - .long 3178687133 - .long 4249027489 - .long 1028973684 - .long 3391824522 - .long 3174085926 - .long 0 - .long 3223781376 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1028808661 - .long 1012328597 - .long 4294717113 - .long 1072693247 - .long 2759857858 - .long 1036945975 - .long 2759440340 - .long 3184429623 - .long 217750550 - .long 1036278821 - .long 228557927 - .long 3182713893 - .long 868996329 - .long 1033914811 - .long 130294465 - .long 3179657124 - .long 3979034581 - .long 1030279068 - .long 1690522291 - .long 3175665582 - .long 141102418 - .long 1025941166 - .long 3942643114 - .long 3171030731 - .long 0 - .long 3223912448 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2461075155 - .long 1015729939 - .long 4294933437 - .long 1072693247 - .long 2559161110 - .long 1033930834 - .long 2559046852 - .long 3181414482 - .long 3206412049 - .long 1033243416 - .long 3218709064 - .long 3179678488 - .long 2091270467 - .long 1030857342 - .long 245853585 - .long 3176629075 - .long 1555900931 - .long 1027267783 - .long 1186881303 - .long 3172654298 - .long 1695278520 - .long 1022918007 - .long 1853146834 - .long 3167983022 - .long 0 - .long 3224043520 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2502502488 - .long 1016572066 - .long 4294962713 - .long 1072693247 - .long 3137376149 - .long 1030874690 - .long 3137268820 - .long 3178358338 - .long 1097103169 - .long 1030217134 - .long 1110504267 - .long 3176652206 - .long 1068377398 - .long 1027807171 - .long 222176953 - .long 3173610756 - .long 3440315131 - .long 1024267613 - .long 1199778592 - .long 3169654130 - .long 257981480 - .long 1019904983 - .long 1388437918 - .long 3164943417 - .long 0 - .long 3224174592 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3418697838 - .long 1016821878 - .long 4294966675 - .long 1072693247 - .long 3798207862 - .long 1027825953 - .long 3798094058 - .long 3175309601 - .long 3391459718 - .long 1027200727 - .long 3405981646 - .long 3173635799 - .long 3694208074 - .long 1024764900 - .long 2192272311 - .long 3170602971 - .long 1464408928 - .long 1021279479 - .long 2201370875 - .long 3166665997 - .long 4139632468 - .long 1016902930 - .long 2981161402 - .long 3161912586 - .long 0 - .long 3224305664 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 3589768515 - .long 1013972501 - .long 4294967265 - .long 1072693247 - .long 2293865510 - .long 1023336450 - .long 2097549026 - .long 3170820098 - .long 2721138850 - .long 1022661962 - .long 1571631120 - .long 3169097035 - .long 3716649917 - .long 1020295299 - .long 3146231247 - .long 3166041588 - .long 84506245 - .long 1016656297 - .long 2231398946 - .long 3162043093 - .long 3305646943 - .long 1012441980 - .long 402214167 - .long 3157503609 - .long 0 - .long 3224436736 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2152156943 - .long 1016184605 - .long 4294967294 - .long 1072693247 - .long 1074684533 - .long 1018634353 - .long 1074437943 - .long 3166118001 - .long 967276073 - .long 1018090988 - .long 995296768 - .long 3164526060 - .long 4275132894 - .long 1015589675 - .long 304133116 - .long 3161485853 - .long 1232215992 - .long 1012058464 - .long 559363548 - .long 3157444977 - .long 1487618473 - .long 1007759094 - .long 2355811294 - .long 3152771929 - .long 3381626085 - .long 3224537056 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 4294967295 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 0 - .long 2147483648 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 4294967295 - .long 2147483647 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2147352576 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 1069416448 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 7733248 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .long 535822336 - .type __svml_dtanh_data_internal,@object - .size __svml_dtanh_data_internal,10816 - .align 8 -__dtanh_la__imldTanhTab: - .long 0 - .long 1072693248 - .long 0 - .long 3220176896 - .type __dtanh_la__imldTanhTab,@object - .size __dtanh_la__imldTanhTab,16 diff --git a/numpy/core/src/umath/svml/svml_z0_tanh_s_la.s b/numpy/core/src/umath/svml/svml_z0_tanh_s_la.s deleted file mode 100644 index 1d5f4582b858..000000000000 --- a/numpy/core/src/umath/svml/svml_z0_tanh_s_la.s +++ /dev/null @@ -1,1791 +0,0 @@ -/******************************************* -* Copyright (C) 2021 Intel Corporation -* SPDX-License-Identifier: BSD-3-Clause -*******************************************/ - -/* - * ALGORITHM DESCRIPTION: - * - * NOTE: Since the hyperbolic tangent function is odd - * (tanh(x) = -tanh(-x)), below algorithm deals with the absolute - * value of the argument |x|: tanh(x) = sign(x) * tanh(|x|) - * - * We use a table lookup method to compute tanh(|x|). - * The basic idea is to split the input range into a number of subintervals - * and to approximate tanh(.) with a polynomial on each of them. - * - * IEEE SPECIAL CONDITIONS: - * x = [+,-]0, r = [+,-]0 - * x = +Inf, r = +1 - * x = -Inf, r = -1 - * x = QNaN, r = QNaN - * x = SNaN, r = QNaN - * - * - * ALGORITHM DETAILS - * We handle special values in a callout function, aside from main path - * computations. "Special" for this algorithm are: - * INF, NAN, |x| > HUGE_THRESHOLD - * - * - * Main path computations are organized as follows: - * Actually we split the interval [0, SATURATION_THRESHOLD) - * into a number of subintervals. On each subinterval we approximate tanh(.) - * with a minimax polynomial of pre-defined degree. Polynomial coefficients - * are computed beforehand and stored in table. We also use - * - * y := |x| + B, - * - * here B depends on subinterval and is used to make argument - * closer to zero. - * We also add large fake interval [SATURATION_THRESHOLD, HUGE_THRESHOLD], - * where 1.0 + 0.0*y + 0.0*y^2 ... coefficients are stored - just to - * preserve main path computation logic but return 1.0 for all arguments. - * - * Hence reconstruction looks as follows: - * we extract proper polynomial and range reduction coefficients - * (Pj and B), corresponding to subinterval, to which |x| belongs, - * and return - * - * r := sign(x) * (P0 + P1 * y + ... + Pn * y^n) - * - * NOTE: we use multiprecision technique to multiply and sum the first - * K terms of the polynomial. So Pj, j = 0..K are stored in - * table each as a pair of target precision numbers (Pj and PLj) to - * achieve wider than target precision. - * - * -- - * - */ - - - .text -.L_2__routine_start___svml_tanhf16_z0_0: - - .align 16,0x90 - .globl __svml_tanhf16 - -__svml_tanhf16: - - - .cfi_startproc -..L2: - - pushq %rbp - .cfi_def_cfa_offset 16 - movq %rsp, %rbp - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp - subq $192, %rsp - vmovaps %zmm0, %zmm1 - vmovups __svml_stanh_data_internal(%rip), %zmm9 - vmovups 896+__svml_stanh_data_internal(%rip), %zmm11 - vmovups 768+__svml_stanh_data_internal(%rip), %zmm12 - vmovups 640+__svml_stanh_data_internal(%rip), %zmm13 - vmovups 512+__svml_stanh_data_internal(%rip), %zmm14 - vmovups 384+__svml_stanh_data_internal(%rip), %zmm15 - vpternlogd $255, %zmm2, %zmm2, %zmm2 - vandps 5696+__svml_stanh_data_internal(%rip), %zmm1, %zmm8 - vandps 5632+__svml_stanh_data_internal(%rip), %zmm1, %zmm0 - -/* Here huge arguments, INF and NaNs are filtered out to callout. */ - vpandd 1152+__svml_stanh_data_internal(%rip), %zmm1, %zmm3 - vpsubd 1216+__svml_stanh_data_internal(%rip), %zmm3, %zmm4 - vpcmpd $2, 5824+__svml_stanh_data_internal(%rip), %zmm3, %k1 - -/* - * * small table specific variables * - * ********************************** - * -------------------- Constant loading ------------------- - */ - vpxord %zmm5, %zmm5, %zmm5 - -/* if VMIN, VMAX is defined for I type */ - vpmaxsd %zmm5, %zmm4, %zmm6 - vpminsd 1280+__svml_stanh_data_internal(%rip), %zmm6, %zmm7 - vpsrld $21, %zmm7, %zmm10 - vmovups 1024+__svml_stanh_data_internal(%rip), %zmm4 - vpermt2ps 64+__svml_stanh_data_internal(%rip), %zmm10, %zmm9 - vpermt2ps 960+__svml_stanh_data_internal(%rip), %zmm10, %zmm11 - vpermt2ps 1088+__svml_stanh_data_internal(%rip), %zmm10, %zmm4 - vpermt2ps 832+__svml_stanh_data_internal(%rip), %zmm10, %zmm12 - vpermt2ps 704+__svml_stanh_data_internal(%rip), %zmm10, %zmm13 - vpermt2ps 576+__svml_stanh_data_internal(%rip), %zmm10, %zmm14 - vpermt2ps 448+__svml_stanh_data_internal(%rip), %zmm10, %zmm15 - vpandnd %zmm3, %zmm3, %zmm2{%k1} - vptestmd %zmm2, %zmm2, %k0 - vmovups 128+__svml_stanh_data_internal(%rip), %zmm3 - vsubps {rn-sae}, %zmm9, %zmm8, %zmm2 - kmovw %k0, %edx - vfmadd213ps {rn-sae}, %zmm11, %zmm2, %zmm4 - vpermt2ps 192+__svml_stanh_data_internal(%rip), %zmm10, %zmm3 - vfmadd213ps {rn-sae}, %zmm12, %zmm2, %zmm4 - vfmadd213ps {rn-sae}, %zmm13, %zmm2, %zmm4 - vfmadd213ps {rn-sae}, %zmm14, %zmm2, %zmm4 - vfmadd213ps {rn-sae}, %zmm15, %zmm2, %zmm4 - vfmadd213ps {rn-sae}, %zmm3, %zmm2, %zmm4 - vorps %zmm0, %zmm4, %zmm0 - testl %edx, %edx - jne .LBL_1_3 - -.LBL_1_2: - - -/* no invcbrt in libm, so taking it out here */ - movq %rbp, %rsp - popq %rbp - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - -.LBL_1_3: - - vmovups %zmm1, 64(%rsp) - vmovups %zmm0, 128(%rsp) - je .LBL_1_2 - - - xorl %eax, %eax - - - vzeroupper - kmovw %k4, 24(%rsp) - kmovw %k5, 16(%rsp) - kmovw %k6, 8(%rsp) - kmovw %k7, (%rsp) - movq %rsi, 40(%rsp) - movq %rdi, 32(%rsp) - movq %r12, 56(%rsp) - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 48(%rsp) - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_7: - - btl %r12d, %r13d - jc .LBL_1_10 - -.LBL_1_8: - - incl %r12d - cmpl $16, %r12d - jl .LBL_1_7 - - - kmovw 24(%rsp), %k4 - .cfi_restore 122 - kmovw 16(%rsp), %k5 - .cfi_restore 123 - kmovw 8(%rsp), %k6 - .cfi_restore 124 - kmovw (%rsp), %k7 - .cfi_restore 125 - vmovups 128(%rsp), %zmm0 - movq 40(%rsp), %rsi - .cfi_restore 4 - movq 32(%rsp), %rdi - .cfi_restore 5 - movq 56(%rsp), %r12 - .cfi_restore 12 - movq 48(%rsp), %r13 - .cfi_restore 13 - jmp .LBL_1_2 - .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 - -.LBL_1_10: - - lea 64(%rsp,%r12,4), %rdi - lea 128(%rsp,%r12,4), %rsi - - call __svml_stanh_cout_rare_internal - jmp .LBL_1_8 - .align 16,0x90 - - .cfi_endproc - - .type __svml_tanhf16,@function - .size __svml_tanhf16,.-__svml_tanhf16 -..LN__svml_tanhf16.0: - -.L_2__routine_start___svml_stanh_cout_rare_internal_1: - - .align 16,0x90 - -__svml_stanh_cout_rare_internal: - - - .cfi_startproc -..L53: - - lea __stanh_la__imlsTanhTab(%rip), %rdx - movb 3(%rdi), %al - andb $-128, %al - shrb $7, %al - movzbl %al, %ecx - movzwl 2(%rdi), %r8d - andl $32640, %r8d - movl (%rdx,%rcx,4), %eax - cmpl $32640, %r8d - je .LBL_2_4 - -.LBL_2_2: - - movl %eax, (%rsi) - -.LBL_2_3: - - xorl %eax, %eax - ret - -.LBL_2_4: - - testl $8388607, (%rdi) - je .LBL_2_2 - - - movss (%rdi), %xmm0 - addss %xmm0, %xmm0 - movss %xmm0, (%rsi) - jmp .LBL_2_3 - .align 16,0x90 - - .cfi_endproc - - .type __svml_stanh_cout_rare_internal,@function - .size __svml_stanh_cout_rare_internal,.-__svml_stanh_cout_rare_internal -..LN__svml_stanh_cout_rare_internal.1: - - .section .rodata, "a" - .align 64 - .align 64 -__svml_stanh_data_internal: - .long 0 - .long 1030750208 - .long 1032847360 - .long 1034944512 - .long 1037041664 - .long 1039138816 - .long 1041235968 - .long 1043333120 - .long 1045430272 - .long 1047527424 - .long 1049624576 - .long 1051721728 - .long 1053818880 - .long 1055916032 - .long 1058013184 - .long 1060110336 - .long 1062207488 - .long 1064304640 - .long 1066401792 - .long 1068498944 - .long 1070596096 - .long 1072693248 - .long 1074790400 - .long 1076887552 - .long 1078984704 - .long 1081081856 - .long 1083179008 - .long 1085276160 - .long 1087373312 - .long 1089470464 - .long 1091567616 - .long 0 - .long 0 - .long 1030732233 - .long 1032831839 - .long 1034916201 - .long 1036994987 - .long 1039067209 - .long 1041174248 - .long 1043220868 - .long 1045245838 - .long 1047245614 - .long 1049383373 - .long 1051287907 - .long 1053115377 - .long 1054857013 - .long 1057129528 - .long 1058581488 - .long 1059832960 - .long 1060891676 - .long 1062153819 - .long 1063337043 - .long 1064100733 - .long 1064582223 - .long 1064984555 - .long 1065216645 - .long 1065302845 - .long 1065334668 - .long 1065349076 - .long 1065352656 - .long 1065353140 - .long 1065353206 - .long 1065353215 - .long 1065353216 - .long 0 - .long 2963361822 - .long 2971470750 - .long 2945658640 - .long 821708412 - .long 824483568 - .long 824941280 - .long 2984085072 - .long 2957298688 - .long 838449816 - .long 2966046080 - .long 2988320324 - .long 2989804564 - .long 842626356 - .long 3000013710 - .long 2972725824 - .long 3002017674 - .long 853753500 - .long 2987104448 - .long 3000350914 - .long 855535800 - .long 852410906 - .long 851608946 - .long 2988641656 - .long 2997011000 - .long 2989576736 - .long 3000884068 - .long 2999984336 - .long 840950056 - .long 2995215280 - .long 855269702 - .long 0 - .long 1065353216 - .long 1065295748 - .long 1065270545 - .long 1065229919 - .long 1065181343 - .long 1065124909 - .long 1065025765 - .long 1064867200 - .long 1064679597 - .long 1064464345 - .long 1064093083 - .long 1063517074 - .long 1062862743 - .long 1062146519 - .long 1060992371 - .long 1059386208 - .long 1057800167 - .long 1055660649 - .long 1051764737 - .long 1046959010 - .long 1041444634 - .long 1035462611 - .long 1026689093 - .long 1015337940 - .long 1002731447 - .long 990958554 - .long 973168670 - .long 948705851 - .long 924299482 - .long 899955662 - .long 864224966 - .long 0 - .long 2956213371 - .long 3178161821 - .long 3180268967 - .long 3182315389 - .long 3184339487 - .long 3186337805 - .long 3188474939 - .long 3190373619 - .long 3192189570 - .long 3193910865 - .long 3196176320 - .long 3197556682 - .long 3198679950 - .long 3199536798 - .long 3200331518 - .long 3200564882 - .long 3200049264 - .long 3199029518 - .long 3197040598 - .long 3192620804 - .long 3188208183 - .long 3182392393 - .long 3173916356 - .long 3162750726 - .long 3150176437 - .long 3138431708 - .long 3120650203 - .long 3096189170 - .long 3071783062 - .long 3047439278 - .long 3011707180 - .long 0 - .long 3198855845 - .long 3198879250 - .long 3198677023 - .long 3198476576 - .long 3198388151 - .long 3198245218 - .long 3197982711 - .long 3197594458 - .long 3197117197 - .long 3196587519 - .long 3195304371 - .long 3192667528 - .long 3189843074 - .long 3186330810 - .long 3177085101 - .long 1013669486 - .long 1032032579 - .long 1036132065 - .long 1038305199 - .long 1036774550 - .long 1033498413 - .long 1028927137 - .long 1021175553 - .long 1009568359 - .long 998361895 - .long 985691041 - .long 967585842 - .long 943363289 - .long 919210013 - .long 895139148 - .long 858471606 - .long 0 - .long 3077428921 - .long 3189516141 - .long 1008586543 - .long 1036101517 - .long 1033304453 - .long 1034073627 - .long 1036071831 - .long 1037235824 - .long 1039436298 - .long 1040631208 - .long 1041906362 - .long 1042793477 - .long 1043232976 - .long 1043086916 - .long 1042100375 - .long 1039444212 - .long 1034126600 - .long 1026638186 - .long 995501655 - .long 3165579977 - .long 3167654937 - .long 3165317828 - .long 3158960080 - .long 3148291549 - .long 3137354510 - .long 3124730373 - .long 3106670759 - .long 3082457650 - .long 3058305807 - .long 3034235241 - .long 2997581996 - .long 0 - .long 1040781545 - .long 1131811139 - .long 1097198812 - .long 3247503190 - .long 3230402941 - .long 3224086547 - .long 3212798938 - .long 1059790272 - .long 1053691997 - .long 1061317268 - .long 3134918084 - .long 1034173207 - .long 3176246152 - .long 3165561405 - .long 3174788493 - .long 3178015405 - .long 3178847213 - .long 3177176538 - .long 3171127099 - .long 3155996003 - .long 985352038 - .long 999682315 - .long 998398067 - .long 989522534 - .long 977926264 - .long 966355955 - .long 948911724 - .long 924561635 - .long 900244966 - .long 875993879 - .long 841254832 - .long 0 - .long 3155046246 - .long 1175181842 - .long 1138112751 - .long 3286309950 - .long 3267011817 - .long 3259619885 - .long 3246758786 - .long 1088248663 - .long 1078543936 - .long 1086795944 - .long 3205436942 - .long 1043392367 - .long 3198686087 - .long 3182586396 - .long 3174374999 - .long 3142320544 - .long 1008565243 - .long 1014115537 - .long 1016545052 - .long 1010017051 - .long 998649588 - .long 975680464 - .long 3124451591 - .long 3121544226 - .long 3112148751 - .long 3100159824 - .long 3082673659 - .long 3058641232 - .long 3034613169 - .long 3010665978 - .long 2975473412 - .long 0 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 2145386496 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 1027604480 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 65011712 - .long 0 - .long 0 - .long 36466923 - .long 1072693248 - .long 2365563284 - .long 3201306247 - .long 1829111721 - .long 3218428278 - .long 3823420055 - .long 3193165324 - .long 1098370908 - .long 1072693250 - .long 2493848101 - .long 3205978300 - .long 1742787824 - .long 3218423470 - .long 4013086462 - .long 3193609799 - .long 3667406935 - .long 1072693250 - .long 1352570026 - .long 3206273363 - .long 1445916117 - .long 3218422747 - .long 3835089556 - .long 3194065339 - .long 2420711447 - .long 1072693251 - .long 2169133006 - .long 3206574718 - .long 101347106 - .long 3218421982 - .long 713636389 - .long 3194411770 - .long 1709214929 - .long 1072693252 - .long 1710199222 - .long 3206758855 - .long 2216669086 - .long 3218421174 - .long 3814844772 - .long 3194836884 - .long 1591910603 - .long 1072693253 - .long 2011589771 - .long 3206962796 - .long 3721194918 - .long 3218420324 - .long 1295469166 - .long 3195182212 - .long 2130808979 - .long 1072693254 - .long 1222040805 - .long 3207187539 - .long 555871541 - .long 3218419433 - .long 401254514 - .long 3195493098 - .long 3390924472 - .long 1072693255 - .long 3112838711 - .long 3207434078 - .long 1558155560 - .long 3218418499 - .long 683885552 - .long 3195864282 - .long 1145294069 - .long 1072693257 - .long 1821670117 - .long 3207648695 - .long 2692181933 - .long 3218417523 - .long 2704036295 - .long 3196181879 - .long 4054831834 - .long 1072693258 - .long 1649153664 - .long 3207795248 - .long 4228604383 - .long 3218416505 - .long 4004758581 - .long 3196440654 - .long 3603542514 - .long 1072693260 - .long 1123737044 - .long 3207954183 - .long 2154630785 - .long 3218415446 - .long 2606327835 - .long 3196743208 - .long 4163276658 - .long 1072693262 - .long 2048619642 - .long 3208125991 - .long 1058893780 - .long 3218414345 - .long 250194901 - .long 3197094852 - .long 1518877548 - .long 1072693265 - .long 3379868633 - .long 3208311162 - .long 1246516380 - .long 3218413202 - .long 1621358934 - .long 3197304764 - .long 48033162 - .long 1072693268 - .long 957106177 - .long 3208510185 - .long 3034045498 - .long 3218412017 - .long 798414253 - .long 3197538466 - .long 4131323741 - .long 1072693270 - .long 2207647163 - .long 3208683052 - .long 2454449664 - .long 3218410791 - .long 1709648499 - .long 3197805932 - .long 972334142 - .long 1072693274 - .long 1279092327 - .long 3208797143 - .long 4141984674 - .long 3218409523 - .long 4279927728 - .long 3198110676 - .long 3547307714 - .long 1072693277 - .long 873763845 - .long 3208918886 - .long 4152286949 - .long 3218408214 - .long 947630201 - .long 3198400037 - .long 3779918761 - .long 1072693283 - .long 2452756690 - .long 3209115951 - .long 2900277560 - .long 3218406175 - .long 4114829322 - .long 3198840356 - .long 1550746642 - .long 1072693293 - .long 3179273584 - .long 3209408258 - .long 1697097694 - .long 3218403310 - .long 3189856208 - .long 3199299134 - .long 2567958063 - .long 1072693304 - .long 2177201355 - .long 3209713300 - .long 663593652 - .long 3218400281 - .long 1915839956 - .long 3199641526 - .long 3400799630 - .long 1072693317 - .long 2625933576 - .long 3209895292 - .long 3140727122 - .long 3218397088 - .long 2825210621 - .long 3200061154 - .long 661592278 - .long 1072693333 - .long 2751163500 - .long 3210096603 - .long 4055449010 - .long 3218393733 - .long 57286782 - .long 3200412116 - .long 3889851982 - .long 1072693350 - .long 2680384314 - .long 3210318153 - .long 2804057046 - .long 3218390217 - .long 1812582369 - .long 3200718155 - .long 1191734144 - .long 1072693371 - .long 867498228 - .long 3210560852 - .long 3250577733 - .long 3218386540 - .long 3326742410 - .long 3201083020 - .long 2188854007 - .long 1072693394 - .long 363145135 - .long 3210782655 - .long 840173644 - .long 3218382704 - .long 1735074843 - .long 3201408616 - .long 3657661222 - .long 1072693420 - .long 2204762872 - .long 3210926495 - .long 4072217384 - .long 3218378708 - .long 2965875284 - .long 3201662196 - .long 2413420961 - .long 1072693450 - .long 1162405510 - .long 3211082241 - .long 138720143 - .long 3218374556 - .long 454705634 - .long 3201958187 - .long 3899194868 - .long 1072693483 - .long 669033796 - .long 3211250324 - .long 2167069495 - .long 3218370246 - .long 1542529428 - .long 3202301612 - .long 710018948 - .long 1072693521 - .long 2883210692 - .long 3211431169 - .long 1973418570 - .long 3218365781 - .long 3156689511 - .long 3202524481 - .long 2656657906 - .long 1072693562 - .long 3498100032 - .long 3211625196 - .long 125419693 - .long 3218361162 - .long 1620715508 - .long 3202751895 - .long 2404819887 - .long 1072693608 - .long 4021715948 - .long 3211810552 - .long 1645154164 - .long 3218356389 - .long 703452016 - .long 3203011668 - .long 1243884135 - .long 1072693659 - .long 480742811 - .long 3211921363 - .long 3122063309 - .long 3218351464 - .long 223504399 - .long 3203307063 - .long 495862037 - .long 1072693715 - .long 300794004 - .long 3212039372 - .long 1300653287 - .long 3218346389 - .long 1176592120 - .long 3203610816 - .long 3274452673 - .long 1072693808 - .long 2613861807 - .long 3212229889 - .long 359514654 - .long 3218338503 - .long 2923503278 - .long 3204034910 - .long 3741678157 - .long 1072693954 - .long 3651935792 - .long 3212511436 - .long 2702507736 - .long 3218327463 - .long 2210624435 - .long 3204506468 - .long 1100251351 - .long 1072694127 - .long 3514265607 - .long 3212825173 - .long 957470414 - .long 3218315845 - .long 1305550937 - .long 3204833184 - .long 2996845965 - .long 1072694328 - .long 3142229264 - .long 3213004685 - .long 1883674585 - .long 3218303659 - .long 3326598907 - .long 3205231584 - .long 274977645 - .long 1072694562 - .long 3016319234 - .long 3213195820 - .long 1539002348 - .long 3218290918 - .long 3984366897 - .long 3205604614 - .long 1292806442 - .long 1072694830 - .long 3262520051 - .long 3213405058 - .long 2372653574 - .long 3218277634 - .long 2452462577 - .long 3205892032 - .long 1815353697 - .long 1072695136 - .long 3662183375 - .long 3213632998 - .long 250148789 - .long 3218263821 - .long 2158010733 - .long 3206232708 - .long 2150433494 - .long 1072695483 - .long 3919565056 - .long 3213880202 - .long 1540395291 - .long 3218249491 - .long 3182910565 - .long 3206589369 - .long 2808974545 - .long 1072695874 - .long 1965799910 - .long 3214016317 - .long 1545570484 - .long 3218234659 - .long 1413633121 - .long 3206823218 - .long 164723038 - .long 1072696313 - .long 81021250 - .long 3214159950 - .long 1583468454 - .long 3218219339 - .long 18571726 - .long 3207094384 - .long 3588317822 - .long 1072696801 - .long 4095098713 - .long 3214313941 - .long 298038316 - .long 3218203546 - .long 912947688 - .long 3207406859 - .long 1041448961 - .long 1072697344 - .long 4179586945 - .long 3214478495 - .long 2148027612 - .long 3218187294 - .long 3720520462 - .long 3207679413 - .long 1980273179 - .long 1072697943 - .long 1752543433 - .long 3214653794 - .long 124299728 - .long 3218170600 - .long 864061540 - .long 3207883361 - .long 2949417123 - .long 1072698602 - .long 4190073881 - .long 3214839998 - .long 1415544749 - .long 3218153478 - .long 3694676202 - .long 3208114560 - .long 420771937 - .long 1072699325 - .long 1282420231 - .long 3214985633 - .long 1533345938 - .long 3218135945 - .long 2892854837 - .long 3208375402 - .long 3632588569 - .long 1072700113 - .long 2712748874 - .long 3215089842 - .long 1386124246 - .long 3218118017 - .long 1634175019 - .long 3208733922 - .long 347483009 - .long 1072701423 - .long 1161341506 - .long 3215256321 - .long 1877668895 - .long 3218090451 - .long 4108664264 - .long 3209099007 - .long 3038559136 - .long 1072703435 - .long 2683048238 - .long 3215498732 - .long 1179454900 - .long 3218025113 - .long 1332126937 - .long 3209546908 - .long 3486307715 - .long 1072705767 - .long 2508275841 - .long 3215764027 - .long 359393231 - .long 3217946511 - .long 1961215910 - .long 3209890029 - .long 2252418763 - .long 1072708441 - .long 2827865151 - .long 3216017387 - .long 3509880367 - .long 3217865627 - .long 3222140085 - .long 3210213923 - .long 1486994624 - .long 1072711477 - .long 3160629487 - .long 3216172802 - .long 1178047112 - .long 3217782741 - .long 1901428593 - .long 3210596649 - .long 3746562216 - .long 1072714893 - .long 1033996001 - .long 3216339382 - .long 39866696 - .long 3217698130 - .long 2908573463 - .long 3210891953 - .long 2324761591 - .long 1072718707 - .long 2389401627 - .long 3216516876 - .long 3645939838 - .long 3217612071 - .long 2440236284 - .long 3211151116 - .long 1761407793 - .long 1072722932 - .long 2502005220 - .long 3216704962 - .long 1997398717 - .long 3217524842 - .long 2895026412 - .long 3211448596 - .long 4114502182 - .long 1072727579 - .long 2605061383 - .long 3216903247 - .long 58515002 - .long 3217436714 - .long 711731960 - .long 3211787230 - .long 3951984035 - .long 1072732658 - .long 3516063216 - .long 3217071220 - .long 3638757279 - .long 3217347953 - .long 3233370794 - .long 3211979005 - .long 658281779 - .long 1072738175 - .long 309554960 - .long 3217179845 - .long 1331214594 - .long 3217258823 - .long 2937534811 - .long 3212193451 - .long 2289001467 - .long 1072744131 - .long 2442043690 - .long 3217292793 - .long 2664085653 - .long 3217169576 - .long 3462081454 - .long 3212432263 - .long 3795084150 - .long 1072750527 - .long 1130374688 - .long 3217409754 - .long 3638257201 - .long 3217080459 - .long 3906637920 - .long 3212696488 - .long 4040275044 - .long 1072757360 - .long 3643517564 - .long 3217530392 - .long 4148962921 - .long 3216952251 - .long 1995056602 - .long 3212911950 - .long 1479928784 - .long 1072764624 - .long 2653868580 - .long 3217654355 - .long 1010106713 - .long 3216775940 - .long 3129357315 - .long 3213070764 - .long 2856812514 - .long 1072772308 - .long 1621093115 - .long 3217781272 - .long 1824031529 - .long 3216601249 - .long 2296680075 - .long 3213333328 - .long 2460843475 - .long 1072784536 - .long 3722925065 - .long 3217975665 - .long 3901534801 - .long 3216343697 - .long 741495589 - .long 3213734822 - .long 13033194 - .long 1072802249 - .long 1706090638 - .long 3218161084 - .long 4129724113 - .long 3216008854 - .long 2582831738 - .long 3214039094 - .long 3092949488 - .long 1072821329 - .long 4163404160 - .long 3218296789 - .long 673560195 - .long 3215391593 - .long 1852259695 - .long 3214295490 - .long 3663604487 - .long 1072841572 - .long 2783926416 - .long 3218433189 - .long 538028418 - .long 3214623601 - .long 955002681 - .long 3214577680 - .long 1457520314 - .long 1072862739 - .long 2977011911 - .long 3218568683 - .long 2456605794 - .long 3213048602 - .long 1782979473 - .long 3214883178 - .long 3136246603 - .long 1072884563 - .long 4172123069 - .long 3218701739 - .long 1041205303 - .long 1065062250 - .long 1494191018 - .long 3215071352 - .long 2030188257 - .long 1072906761 - .long 242335435 - .long 3218830924 - .long 3225388224 - .long 1066807264 - .long 2597486284 - .long 3215242091 - .long 1527970838 - .long 1072929036 - .long 2966426512 - .long 3218954923 - .long 1554080475 - .long 1067589039 - .long 1299968651 - .long 3215418462 - .long 3575385503 - .long 1072951087 - .long 2115725422 - .long 3219072567 - .long 1970202642 - .long 1068007486 - .long 633750547 - .long 3215597833 - .long 4170701031 - .long 1072972617 - .long 46586082 - .long 3219155579 - .long 1194653136 - .long 1068384025 - .long 4171340731 - .long 3215777352 - .long 3578160514 - .long 1072993337 - .long 3238411740 - .long 3219206599 - .long 3278559237 - .long 1068609006 - .long 2404931200 - .long 3215954013 - .long 533888921 - .long 1073012973 - .long 1507597629 - .long 3219253160 - .long 2386969249 - .long 1068756225 - .long 272720058 - .long 3216053653 - .long 54544651 - .long 1073031269 - .long 3020671348 - .long 3219294996 - .long 4122670807 - .long 1068883785 - .long 2536786852 - .long 3216134458 - .long 230026772 - .long 1073047994 - .long 2830531360 - .long 3219331923 - .long 2545616196 - .long 1068992498 - .long 3897096954 - .long 3216209170 - .long 867435464 - .long 1073062943 - .long 3935983781 - .long 3219363830 - .long 4280666630 - .long 1069083305 - .long 1614478429 - .long 3216276286 - .long 3991143559 - .long 1073075939 - .long 3165050417 - .long 3219390677 - .long 248866814 - .long 1069157251 - .long 2328429718 - .long 3216358398 - .long 1880129173 - .long 1073091258 - .long 4059723411 - .long 3219421162 - .long 3082848917 - .long 1069238148 - .long 1081358649 - .long 3216430553 - .long 1955557582 - .long 1073104040 - .long 2869422647 - .long 3219445318 - .long 1310544530 - .long 1069299023 - .long 434435025 - .long 3216450109 - .long 3947018234 - .long 1073107343 - .long 3414641036 - .long 3219451270 - .long 4069313179 - .long 1069313321 - .long 1392468754 - .long 3216410502 - .long 3271741504 - .long 1073101128 - .long 3884994071 - .long 3219440866 - .long 1456085694 - .long 1069290099 - .long 2332856790 - .long 3216307665 - .long 3950891192 - .long 1073085735 - .long 439037894 - .long 3219416288 - .long 1197951536 - .long 1069237765 - .long 4195788421 - .long 3216139842 - .long 3990997338 - .long 1073061787 - .long 550042602 - .long 3219379833 - .long 2832452545 - .long 1069163766 - .long 1200943255 - .long 3215832361 - .long 2073883731 - .long 1073030122 - .long 3042850267 - .long 3219333800 - .long 991641143 - .long 1069074535 - .long 1637244010 - .long 3215243222 - .long 3805163810 - .long 1072991715 - .long 3517445189 - .long 3219280382 - .long 2680864185 - .long 1068975465 - .long 1457843741 - .long 3214140932 - .long 1315080793 - .long 1072947617 - .long 3059804278 - .long 3219221594 - .long 2861308047 - .long 1068870963 - .long 3296491873 - .long 1064537111 - .long 3728462150 - .long 1072898893 - .long 3615137083 - .long 3219159232 - .long 3017963192 - .long 1068764532 - .long 3972434375 - .long 1067468619 - .long 1336398218 - .long 1072846587 - .long 1068664290 - .long 3219061390 - .long 122240345 - .long 1068658880 - .long 508009436 - .long 1068456917 - .long 3501538245 - .long 1072791681 - .long 968690691 - .long 3218931236 - .long 1514516445 - .long 1068556030 - .long 671541798 - .long 1069006173 - .long 3814409280 - .long 1072735081 - .long 1553551847 - .long 3218801852 - .long 2849431279 - .long 1068415930 - .long 285838780 - .long 1069554660 - .long 2881499585 - .long 1072661949 - .long 928028610 - .long 3218674977 - .long 8837506 - .long 1068229231 - .long 4283922105 - .long 1069842903 - .long 1813934616 - .long 1072546640 - .long 2296020303 - .long 3218551962 - .long 3757630126 - .long 1068054242 - .long 4184842874 - .long 1070138481 - .long 1612285858 - .long 1072432209 - .long 3568867548 - .long 3218433820 - .long 2489334631 - .long 1067891605 - .long 3119354956 - .long 1070586029 - .long 1945534618 - .long 1072265408 - .long 12375465 - .long 3218268030 - .long 869568690 - .long 1067671872 - .long 313517472 - .long 1070892138 - .long 1205077106 - .long 1072052753 - .long 2329101392 - .long 3218055718 - .long 31064032 - .long 1067390210 - .long 1106783211 - .long 1071186310 - .long 571472860 - .long 1071856508 - .long 2279775366 - .long 3217706561 - .long 3977902324 - .long 1066976012 - .long 1438560376 - .long 1071467394 - .long 433300635 - .long 1071678859 - .long 2662131044 - .long 3217407122 - .long 3461865003 - .long 1066639491 - .long 3761842524 - .long 1071687909 - .long 591758334 - .long 1071396321 - .long 1311878841 - .long 3217153539 - .long 3007781852 - .long 1066335723 - .long 1614590629 - .long 1071809819 - .long 1253814918 - .long 1071117476 - .long 1728609767 - .long 3216850667 - .long 2200561853 - .long 1065903347 - .long 3821226689 - .long 1071921115 - .long 2022982069 - .long 1070874479 - .long 2030156196 - .long 3216496942 - .long 874711265 - .long 1065560045 - .long 2003227996 - .long 1072021655 - .long 2808404217 - .long 1070664514 - .long 1372837647 - .long 3216204595 - .long 822053276 - .long 1065224094 - .long 3767175364 - .long 1072111660 - .long 3043371777 - .long 1070372670 - .long 1442419211 - .long 3215945892 - .long 298752438 - .long 1064796452 - .long 1111528881 - .long 1072191609 - .long 3513208196 - .long 1070065467 - .long 3837735739 - .long 3215552388 - .long 3701924119 - .long 1064460397 - .long 1230501085 - .long 1072262142 - .long 2161267832 - .long 1069804871 - .long 4188367704 - .long 3215231429 - .long 401190186 - .long 1064089052 - .long 3002339892 - .long 1072323996 - .long 1480019407 - .long 1069584807 - .long 1833655520 - .long 3214970435 - .long 2907956919 - .long 1063676311 - .long 875346000 - .long 1072377952 - .long 3150437403 - .long 1069251888 - .long 876861923 - .long 3214583482 - .long 1689748747 - .long 1063353511 - .long 2795554744 - .long 1072424793 - .long 3869705215 - .long 1068941581 - .long 1837883894 - .long 3214240854 - .long 2762317048 - .long 1062946513 - .long 2491972100 - .long 1072465284 - .long 4114823501 - .long 1068682289 - .long 2146865463 - .long 3213964103 - .long 800804261 - .long 1062552648 - .long 2634953449 - .long 1072500149 - .long 2952556276 - .long 1068433515 - .long 1872935290 - .long 3213596436 - .long 525130857 - .long 1062245296 - .long 3287041404 - .long 1072542855 - .long 164674845 - .long 1067923724 - .long 3273134342 - .long 3213089271 - .long 171708004 - .long 1061610314 - .long 3035032320 - .long 1072586748 - .long 3976243935 - .long 1067403539 - .long 3504708444 - .long 3212404491 - .long 3955947885 - .long 1060882840 - .long 513098494 - .long 1072618404 - .long 416924237 - .long 1066726877 - .long 1788945081 - .long 3211801737 - .long 1199639353 - .long 1060166859 - .long 2284134637 - .long 1072641010 - .long 754275327 - .long 1066136447 - .long 94803481 - .long 3211042671 - .long 3377507017 - .long 1059354147 - .long 1467291457 - .long 1072657015 - .long 2435597312 - .long 1065520743 - .long 2819017772 - .long 3210358609 - .long 1988617747 - .long 1058591581 - .long 633705514 - .long 1072668259 - .long 392269686 - .long 1064864433 - .long 2964449929 - .long 3209729770 - .long 3963893163 - .long 1057889872 - .long 2214892393 - .long 1072676103 - .long 2190738271 - .long 1064315837 - .long 3773826451 - .long 3208969045 - .long 3609404170 - .long 1057113308 - .long 3795216963 - .long 1072681541 - .long 3959981107 - .long 1063599490 - .long 1577139384 - .long 3208281591 - .long 1777963469 - .long 1056319886 - .long 2768813161 - .long 1072685290 - .long 452197850 - .long 1062981751 - .long 625862001 - .long 3207639777 - .long 1894515286 - .long 1055580811 - .long 809336726 - .long 1072687861 - .long 325412222 - .long 1062349073 - .long 3494772326 - .long 3206874482 - .long 3143092609 - .long 1054887561 - .long 1391578948 - .long 1072689615 - .long 370441451 - .long 1061660435 - .long 67458841 - .long 3206180214 - .long 1971759196 - .long 1054066692 - .long 57274217 - .long 1072690807 - .long 293665776 - .long 1061075750 - .long 1340185983 - .long 3205535605 - .long 2210177191 - .long 1053294335 - .long 1110907588 - .long 1072691613 - .long 3961986905 - .long 1060367146 - .long 3774614905 - .long 3204763416 - .long 3590429673 - .long 1052580827 - .long 2737507729 - .long 1072692156 - .long 370479370 - .long 1059701790 - .long 1033751386 - .long 3204059641 - .long 1162278823 - .long 1051830218 - .long 2341375458 - .long 1072692521 - .long 760364123 - .long 1059103172 - .long 910883556 - .long 3203420282 - .long 401067508 - .long 1051028170 - .long 3358303651 - .long 1072692765 - .long 3104773993 - .long 1058369139 - .long 2043715743 - .long 3202639413 - .long 4274377921 - .long 1050278646 - .long 3501940353 - .long 1072692984 - .long 2710387139 - .long 1057384557 - .long 2550611600 - .long 3201592258 - .long 2260324605 - .long 1049158690 - .long 3160989127 - .long 1072693133 - .long 1403521776 - .long 1056074537 - .long 760745859 - .long 3200238663 - .long 1163121055 - .long 1047679067 - .long 3509020169 - .long 1072693198 - .long 3352058101 - .long 1054743188 - .long 2289323607 - .long 3198722761 - .long 918272756 - .long 1046147840 - .long 4268817660 - .long 1072693226 - .long 1580550645 - .long 1053325591 - .long 1736251411 - .long 3197308470 - .long 1531106447 - .long 1044632576 - .long 0 - .long 1072693248 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 0 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483648 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2147483647 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2146959360 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 2130706432 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 1022885888 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .long 69730304 - .type __svml_stanh_data_internal,@object - .size __svml_stanh_data_internal,6016 - .align 4 -__stanh_la__imlsTanhTab: - .long 1065353216 - .long 3212836864 - .type __stanh_la__imlsTanhTab,@object - .size __stanh_la__imlsTanhTab,8 From 62f8ff5fd542975e4ebbd8cc7adbeaceb64e74a9 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 13 Aug 2021 12:17:08 -0700 Subject: [PATCH 11/17] MAINT: Adding SVML submodule --- .gitmodules | 3 +++ numpy/core/src/umath/svml | 1 + 2 files changed, 4 insertions(+) create mode 160000 numpy/core/src/umath/svml diff --git a/.gitmodules b/.gitmodules index 0d6857868837..1ea274daf3b9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "doc/source/_static/scipy-mathjax"] path = doc/source/_static/scipy-mathjax url = https://github.com/scipy/scipy-mathjax.git +[submodule "numpy/core/src/umath/svml"] + path = numpy/core/src/umath/svml + url = https://github.com/numpy/SVML.git diff --git a/numpy/core/src/umath/svml b/numpy/core/src/umath/svml new file mode 160000 index 000000000000..9f8af767ed6c --- /dev/null +++ b/numpy/core/src/umath/svml @@ -0,0 +1 @@ +Subproject commit 9f8af767ed6c75455d9a382af829048f8dd18067 From 3343526d2f824f1556ec9d8d1f379c83300b45d5 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 13 Aug 2021 12:28:06 -0700 Subject: [PATCH 12/17] MAINT: Fixing SVML sources path --- numpy/core/setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 26836e00483b..71939e9aa7e2 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -5,6 +5,7 @@ import warnings import platform import textwrap +import glob from os.path import join from numpy.distutils import log @@ -966,9 +967,8 @@ def generate_umath_c(ext, build_dir): svml_objs = [] if can_link_svml(): - for svmlsrc in os.listdir("numpy/core/src/umath/svml"): - if svmlsrc.endswith(".s"): - svml_objs.append(join('src', 'umath', 'svml', svmlsrc)) + svml_objs = files = glob.glob("numpy/core/src/umath/svml" + + '/**/*.s', recursive=True) config.add_extension('_multiarray_umath', sources=multiarray_src + umath_src + From e9b9299c677b4e644b8adccd6d4695451969ee01 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 13 Aug 2021 13:25:30 -0700 Subject: [PATCH 13/17] BLD: add check_svml_submodule function --- numpy/core/setup.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 71939e9aa7e2..959d8d9922fa 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -72,6 +72,11 @@ def can_link_svml(): system = platform.system() return "x86_64" in machine and system == "Linux" +def check_svml_submodule(svmlpath): + if not os.path.exists(svmlpath + "/README.md"): + raise RuntimeError("Missing `SVML` submodule! Run `git submodule " + "update --init` to fix this.") + def pythonlib_dir(): """return path where libpython* is.""" if sys.platform == 'win32': @@ -965,10 +970,10 @@ def generate_umath_c(ext, build_dir): join(codegen_dir, 'generate_ufunc_api.py'), ] + svml_path = "numpy/core/src/umath/svml" svml_objs = [] - if can_link_svml(): - svml_objs = files = glob.glob("numpy/core/src/umath/svml" + - '/**/*.s', recursive=True) + if can_link_svml() and check_svml_submodule(svml_path): + svml_objs = files = glob.glob(svml_path + '/**/*.s', recursive=True) config.add_extension('_multiarray_umath', sources=multiarray_src + umath_src + From 167acd27cd22c2eb1f73aaa60fe7a682746f93a9 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 13 Aug 2021 13:54:08 -0700 Subject: [PATCH 14/17] BLD: Use os.path.join to specify path to SVML --- numpy/core/setup.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 959d8d9922fa..38c68dfcca78 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -76,6 +76,7 @@ def check_svml_submodule(svmlpath): if not os.path.exists(svmlpath + "/README.md"): raise RuntimeError("Missing `SVML` submodule! Run `git submodule " "update --init` to fix this.") + return True def pythonlib_dir(): """return path where libpython* is.""" @@ -970,10 +971,10 @@ def generate_umath_c(ext, build_dir): join(codegen_dir, 'generate_ufunc_api.py'), ] - svml_path = "numpy/core/src/umath/svml" + svml_path = join('numpy', 'core', 'src', 'umath', 'svml') svml_objs = [] if can_link_svml() and check_svml_submodule(svml_path): - svml_objs = files = glob.glob(svml_path + '/**/*.s', recursive=True) + svml_objs = glob.glob(svml_path + '/**/*.s', recursive=True) config.add_extension('_multiarray_umath', sources=multiarray_src + umath_src + From df51047f6aaf923e3b1af3febd099eda5a82c186 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Mon, 16 Aug 2021 14:13:57 -0700 Subject: [PATCH 15/17] DOC: Adding release note for PR #19478 --- doc/release/upcoming_changes/19478.performance.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 doc/release/upcoming_changes/19478.performance.rst diff --git a/doc/release/upcoming_changes/19478.performance.rst b/doc/release/upcoming_changes/19478.performance.rst new file mode 100644 index 000000000000..6a389c20eb0c --- /dev/null +++ b/doc/release/upcoming_changes/19478.performance.rst @@ -0,0 +1,11 @@ +Vectorize umath module using AVX-512 +------------------------------------- + +By leveraging Intel Short Vector Math Library (SVML), 18 umath functions +(``exp2``, ``log2``, ``log10``, ``expm1``, ``log1p``, ``cbrt``, ``sin``, +``cos``, ``tan``, ``arcsin``, ``arccos``, ``arctan``, ``sinh``, ``cosh``, +``tanh``, ``arcsinh``, ``arccosh``, ``arctanh``) are vectorized using AVX-512 +instruction set for both single and double precision implementations. This +change is currently enabled only for Linux users and on processors with +AVX-512 instruction set. It provides an average speed up of 32x and 14x for +single and double precision functions respectively. From 35c1dfe922a1506f641610a2fd766ce122c46727 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Mon, 16 Aug 2021 15:19:12 -0700 Subject: [PATCH 16/17] CI/CD: Pull submodules for circleci --- .circleci/config.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index fdb85be98be6..d582fe4ec48d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -19,6 +19,12 @@ jobs: command: | if [[ -v CI_PULL_REQUEST ]] ; then git pull --ff-only origin "refs/pull/${CI_PULL_REQUEST//*pull\//}/merge" ; fi + - run: + name: update submodules + command: | + git submodule init + git submodule update + - run: name: create virtual environment, install dependencies command: | From 1cbf913d7dda9441118c0b51f4020048334cd451 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 18 Aug 2021 21:06:07 -0700 Subject: [PATCH 17/17] CI/CD: get submodule before build --- azure-pipelines.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 714f62912a23..99ea407be6df 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -23,6 +23,9 @@ stages: pool: vmImage: 'ubuntu-20.04' steps: + - script: | + git submodule update --init + displayName: 'Fetch submodules' - script: | if ! `gcc 2>/dev/null`; then sudo apt install gcc @@ -71,6 +74,9 @@ stages: pool: vmImage: 'ubuntu-20.04' steps: + - script: | + git submodule update --init + displayName: 'Fetch submodules' - script: | docker run -v $(pwd):/numpy -e CFLAGS="-msse2 -std=c99 -UNDEBUG" \ -e F77=gfortran-5 -e F90=gfortran-5 quay.io/pypa/manylinux2014_i686 \ @@ -258,6 +264,9 @@ stages: pool: vmImage: 'ubuntu-20.04' steps: + - script: | + git submodule update --init + displayName: 'Fetch submodules' - script: | # create and activate conda environment conda env create -f environment.yml