⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libm_lgammal.s

📁 glibc 2.9,最新版的C语言库函数
💻 S
📖 第 1 页 / 共 5 页
字号:
fLnSinL                  = f125fDxSqrL                  = f126fFltIntX                 = f126fRoot                    = f127fNormDx                  = f127// Data tables//==============================================================RODATA// ************* DO NOT CHANGE THE ORDER OF THESE TABLES *************.align 16LOCAL_OBJECT_START(lgammal_right_roots_data)// List of all right roots themselvesdata8 0x9D3FE4B007C360AB, 0x0000C000 // Range [-3, -2]data8 0xC9306DE4F2CD7BEE, 0x0000C000 // Range [-4, -3]data8 0x814273C2CCAC0618, 0x0000C001 // Range [-5, -4]data8 0xA04352BF85B6C865, 0x0000C001 // Range [-6, -5]data8 0xC00B592C4BE4676C, 0x0000C001 // Range [-7, -6]data8 0xE0019FEF6FF0F5BF, 0x0000C001 // Range [-8, -7]data8 0x80001A01459FC9F6, 0x0000C002 // Range [-9, -8]data8 0x900002E3BB47D86D, 0x0000C002 // Range [-10, -9]data8 0xA0000049F93BB992, 0x0000C002 // Range [-11, -10]data8 0xB0000006B9915316, 0x0000C002 // Range [-12, -11]data8 0xC00000008F76C773, 0x0000C002 // Range [-13, -12]data8 0xD00000000B09230A, 0x0000C002 // Range [-14, -13]data8 0xE000000000C9CBA5, 0x0000C002 // Range [-15, -14]data8 0xF0000000000D73FA, 0x0000C002 // Range [-16, -15]data8 0x8000000000006BA0, 0x0000C003 // Range [-17, -16]data8 0x8800000000000655, 0x0000C003 // Range [-18, -17]data8 0x900000000000005A, 0x0000C003 // Range [-19, -18]data8 0x9800000000000005, 0x0000C003 // Range [-20, -19]// List of bounds of ranges with special polynomial approximation near root// Only significands of bounds are actually storeddata8 0xA000000000000000, 0x9800000000000000 // Bounds for root on [-3, -2]data8 0xCAB88035C5EFBB41, 0xC7E05E31F4B02115 // Bounds for root on [-4, -3]data8 0x817831B899735C72, 0x8114633941B8053A // Bounds for root on [-5, -4]data8 0xA04E8B34C6AA9476, 0xA039B4A42978197B // Bounds for root on [-6, -5]data8 0xC00D3D5E588A78A9, 0xC009BA25F7E858A6 // Bounds for root on [-7, -6]data8 0xE001E54202991EB4, 0xE001648416CE897F // Bounds for root on [-8, -7]data8 0x80001E56D13A6B9F, 0x8000164A3BAD888A // Bounds for root on [-9, -8]data8 0x9000035F0529272A, 0x9000027A0E3D94F0 // Bounds for root on [-10, -9]data8 0xA00000564D705880, 0xA000003F67EA0CC7 // Bounds for root on [-11, -10]data8 0xB0000007D87EE0EF, 0xB0000005C3A122A5 // Bounds for root on [-12, -11]data8 0xC0000000A75FE8B1, 0xC00000007AF818AC // Bounds for root on [-13, -12]data8 0xD00000000CDFFE36, 0xD000000009758BBF // Bounds for root on [-14, -13]data8 0xE000000000EB6D96, 0xE000000000ACF7B2 // Bounds for root on [-15, -14]data8 0xF0000000000FB1F9, 0xF0000000000B87FB // Bounds for root on [-16, -15]data8 0x8000000000007D90, 0x8000000000005C40 // Bounds for root on [-17, -16]data8 0x8800000000000763, 0x880000000000056D // Bounds for root on [-18, -17]data8 0x9000000000000069, 0x900000000000004D // Bounds for root on [-19, -18]data8 0x9800000000000006, 0x9800000000000005 // Bounds for root on [-20, -19]// List of all left roots themselvesdata8 0xAFDA0850DEC8065E, 0x0000C000 // Range [-3, -2]data8 0xFD238AA3E17F285C, 0x0000C000 // Range [-4, -3]data8 0x9FBABBD37757E6A2, 0x0000C001 // Range [-5, -4]data8 0xBFF497AC8FA06AFC, 0x0000C001 // Range [-6, -5]data8 0xDFFE5FBB5C377FE8, 0x0000C001 // Range [-7, -6]data8 0xFFFFCBFC0ACE7879, 0x0000C001 // Range [-8, -7]data8 0x8FFFFD1C425E8100, 0x0000C002 // Range [-9, -8]data8 0x9FFFFFB606BDFDCD, 0x0000C002 // Range [-10, -9]data8 0xAFFFFFF9466E9F1B, 0x0000C002 // Range [-11, -10]data8 0xBFFFFFFF70893874, 0x0000C002 // Range [-12, -11]data8 0xCFFFFFFFF4F6DCF6, 0x0000C002 // Range [-13, -12]data8 0xDFFFFFFFFF36345B, 0x0000C002 // Range [-14, -13]data8 0xEFFFFFFFFFF28C06, 0x0000C002 // Range [-15, -14]data8 0xFFFFFFFFFFFF28C0, 0x0000C002 // Range [-16, -15]data8 0x87FFFFFFFFFFF9AB, 0x0000C003 // Range [-17, -16]data8 0x8FFFFFFFFFFFFFA6, 0x0000C003 // Range [-18, -17]data8 0x97FFFFFFFFFFFFFB, 0x0000C003 // Range [-19, -18]data8 0x0000000000000000, 0x00000000 // pad to keep logic in the main path// List of bounds of ranges with special polynomial approximation near root// Only significands of bounds are actually storeddata8 0xB235880944CC758E, 0xADD2F1A9FBE76C8B // Bounds for root on [-3, -2]data8 0xFD8E7844F307B07C, 0xFCA655C2152BDE4D // Bounds for root on [-4, -3]data8 0x9FC4D876EE546967, 0x9FAEE4AF68BC4292 // Bounds for root on [-5, -4]data8 0xBFF641FFBFCC44F1, 0xBFF2A47919F4BA89 // Bounds for root on [-6, -5]data8 0xDFFE9C803DEFDD59, 0xDFFE18932EB723FE // Bounds for root on [-7, -6]data8 0xFFFFD393FA47AFC3, 0xFFFFC317CF638AE1 // Bounds for root on [-8, -7]data8 0x8FFFFD8840279925, 0x8FFFFC9DCECEEE92 // Bounds for root on [-9, -8]data8 0x9FFFFFC0D34E2AF8, 0x9FFFFFA9619AA3B7 // Bounds for root on [-10, -9]data8 0xAFFFFFFA41C18246, 0xAFFFFFF82025A23C // Bounds for root on [-11, -10]data8 0xBFFFFFFF857ACB4E, 0xBFFFFFFF58032378 // Bounds for root on [-12, -11]data8 0xCFFFFFFFF6934AB8, 0xCFFFFFFFF313EF0A // Bounds for root on [-13, -12]data8 0xDFFFFFFFFF53A9E9, 0xDFFFFFFFFF13B5A5 // Bounds for root on [-14, -13]data8 0xEFFFFFFFFFF482CB, 0xEFFFFFFFFFF03F4F // Bounds for root on [-15, -14]data8 0xFFFFFFFFFFFF482D, 0xFFFFFFFFFFFF03F5 // Bounds for root on [-16, -15]data8 0x87FFFFFFFFFFFA98, 0x87FFFFFFFFFFF896 // Bounds for root on [-17, -16]data8 0x8FFFFFFFFFFFFFB3, 0x8FFFFFFFFFFFFF97 // Bounds for root on [-18, -17]data8 0x97FFFFFFFFFFFFFC, 0x97FFFFFFFFFFFFFB // Bounds for root on [-19, -18]LOCAL_OBJECT_END(lgammal_right_roots_data)LOCAL_OBJECT_START(lgammal_0_Half_data)// Polynomial coefficients for the lgammal(x), 0.0 < |x| < 0.5data8 0xBFD9A4D55BEAB2D6, 0xBC8AA3C097746D1F //A3data8 0x3FEA51A6625307D3, 0x3C7180E7BD2D0DCC //A2data8 0xBFE2788CFC6FB618, 0xBC9E9346C4692BCC //A1data8 0x8A8991563EC1BD13, 0x00003FFD //A4data8 0xD45CE0BD52C27EF2, 0x0000BFFC //A5data8 0xADA06587FA2BBD47, 0x00003FFC //A6data8 0x9381D0ED2194902A, 0x0000BFFC //A7data8 0x80859B3CF92D4192, 0x00003FFC //A8data8 0xE4033517C622A946, 0x0000BFFB //A9data8 0xCD00CE67A51FC82A, 0x00003FFB //A10data8 0xBA44E2A96C3B5700, 0x0000BFFB //A11data8 0xAAAD008FA46DBD99, 0x00003FFB //A12data8 0x9D604AC65A41153D, 0x0000BFFB //A13data8 0x917CECB864B5A861, 0x00003FFB //A14data8 0x85A4810EB730FDE4, 0x0000BFFB //A15data8 0xEF2761C38BD21F77, 0x00003FFA //A16data8 0xC913043A128367DA, 0x0000BFFA //A17data8 0x96A29B71FF7AFFAA, 0x00003FFA //A18data8 0xBB9FFA1A5FE649BB, 0x0000BFF9 //A19data8 0xB17982CD2DAA0EE3, 0x00003FF8 //A20data8 0xDE1DDCBFFB9453F0, 0x0000BFF6 //A21data8 0x87FBF5D7ACD9FA9D, 0x00003FF4 //A22LOCAL_OBJECT_END(lgammal_0_Half_data)LOCAL_OBJECT_START(Constants_Q)// log2_hi, log2_lo, Q_4, Q_3, Q_2, and Q_1data4  0x00000000,0xB1721800,0x00003FFE,0x00000000data4  0x4361C4C6,0x82E30865,0x0000BFE2,0x00000000data4  0x328833CB,0xCCCCCAF2,0x00003FFC,0x00000000data4  0xA9D4BAFB,0x80000077,0x0000BFFD,0x00000000data4  0xAAABE3D2,0xAAAAAAAA,0x00003FFD,0x00000000data4  0xFFFFDAB7,0xFFFFFFFF,0x0000BFFD,0x00000000LOCAL_OBJECT_END(Constants_Q)LOCAL_OBJECT_START(Constants_Z_1)// Z1 - 16 bit fixeddata4  0x00008000data4  0x00007879data4  0x000071C8data4  0x00006BCBdata4  0x00006667data4  0x00006187data4  0x00005D18data4  0x0000590Cdata4  0x00005556data4  0x000051ECdata4  0x00004EC5data4  0x00004BDBdata4  0x00004925data4  0x0000469Fdata4  0x00004445data4  0x00004211LOCAL_OBJECT_END(Constants_Z_1)LOCAL_OBJECT_START(Constants_G_H_h1)// G1 and H1 - IEEE single and h1 - IEEE doubledata4  0x3F800000,0x00000000,0x00000000,0x00000000data4  0x3F70F0F0,0x3D785196,0x617D741C,0x3DA163A6data4  0x3F638E38,0x3DF13843,0xCBD3D5BB,0x3E2C55E6data4  0x3F579430,0x3E2FF9A0,0xD86EA5E7,0xBE3EB0BFdata4  0x3F4CCCC8,0x3E647FD6,0x86B12760,0x3E2E6A8Cdata4  0x3F430C30,0x3E8B3AE7,0x5C0739BA,0x3E47574Cdata4  0x3F3A2E88,0x3EA30C68,0x13E8AF2F,0x3E20E30Fdata4  0x3F321640,0x3EB9CEC8,0xF2C630BD,0xBE42885Bdata4  0x3F2AAAA8,0x3ECF9927,0x97E577C6,0x3E497F34data4  0x3F23D708,0x3EE47FC5,0xA6B0A5AB,0x3E3E6A6Edata4  0x3F1D89D8,0x3EF8947D,0xD328D9BE,0xBDF43E3Cdata4  0x3F17B420,0x3F05F3A1,0x0ADB090A,0x3E4094C3data4  0x3F124920,0x3F0F4303,0xFC1FE510,0xBE28FBB2data4  0x3F0D3DC8,0x3F183EBF,0x10FDE3FA,0x3E3A7895data4  0x3F088888,0x3F20EC80,0x7CC8C98F,0x3E508CE5data4  0x3F042108,0x3F29516A,0xA223106C,0xBE534874LOCAL_OBJECT_END(Constants_G_H_h1)LOCAL_OBJECT_START(Constants_Z_2)// Z2 - 16 bit fixeddata4  0x00008000data4  0x00007F81data4  0x00007F02data4  0x00007E85data4  0x00007E08data4  0x00007D8Ddata4  0x00007D12data4  0x00007C98data4  0x00007C20data4  0x00007BA8data4  0x00007B31data4  0x00007ABBdata4  0x00007A45data4  0x000079D1data4  0x0000795Ddata4  0x000078EBLOCAL_OBJECT_END(Constants_Z_2)LOCAL_OBJECT_START(Constants_G_H_h2)// G2 and H2 - IEEE single and h2 - IEEE doubledata4  0x3F800000,0x00000000,0x00000000,0x00000000data4  0x3F7F00F8,0x3B7F875D,0x22C42273,0x3DB5A116data4  0x3F7E03F8,0x3BFF015B,0x21F86ED3,0x3DE620CFdata4  0x3F7D08E0,0x3C3EE393,0x484F34ED,0xBDAFA07Edata4  0x3F7C0FC0,0x3C7E0586,0x3860BCF6,0xBDFE07F0data4  0x3F7B1880,0x3C9E75D2,0xA78093D6,0x3DEA370Fdata4  0x3F7A2328,0x3CBDC97A,0x72A753D0,0x3DFF5791data4  0x3F792FB0,0x3CDCFE47,0xA7EF896B,0x3DFEBE6Cdata4  0x3F783E08,0x3CFC15D0,0x409ECB43,0x3E0CF156data4  0x3F774E38,0x3D0D874D,0xFFEF71DF,0xBE0B6F97data4  0x3F766038,0x3D1CF49B,0x5D59EEE8,0xBE080483data4  0x3F757400,0x3D2C531D,0xA9192A74,0x3E1F91E9data4  0x3F748988,0x3D3BA322,0xBF72A8CD,0xBE139A06data4  0x3F73A0D0,0x3D4AE46F,0xF8FBA6CF,0x3E1D9202data4  0x3F72B9D0,0x3D5A1756,0xBA796223,0xBE1DCCC4data4  0x3F71D488,0x3D693B9D,0xB6B7C239,0xBE049391LOCAL_OBJECT_END(Constants_G_H_h2)LOCAL_OBJECT_START(Constants_G_H_h3)// G3 and H3 - IEEE single and h3 - IEEE doubledata4  0x3F7FFC00,0x38800100,0x562224CD,0x3D355595data4  0x3F7FF400,0x39400480,0x06136FF6,0x3D8200A2data4  0x3F7FEC00,0x39A00640,0xE8DE9AF0,0x3DA4D68Ddata4  0x3F7FE400,0x39E00C41,0xB10238DC,0xBD8B4291data4  0x3F7FDC00,0x3A100A21,0x3B1952CA,0xBD89CCB8data4  0x3F7FD400,0x3A300F22,0x1DC46826,0xBDB10707data4  0x3F7FCC08,0x3A4FF51C,0xF43307DB,0x3DB6FCB9data4  0x3F7FC408,0x3A6FFC1D,0x62DC7872,0xBD9B7C47data4  0x3F7FBC10,0x3A87F20B,0x3F89154A,0xBDC3725Edata4  0x3F7FB410,0x3A97F68B,0x62B9D392,0xBD93519Ddata4  0x3F7FAC18,0x3AA7EB86,0x0F21BD9D,0x3DC18441data4  0x3F7FA420,0x3AB7E101,0x2245E0A6,0xBDA64B95data4  0x3F7F9C20,0x3AC7E701,0xAABB34B8,0x3DB4B0ECdata4  0x3F7F9428,0x3AD7DD7B,0x6DC40A7E,0x3D992337data4  0x3F7F8C30,0x3AE7D474,0x4F2083D3,0x3DC6E17Bdata4  0x3F7F8438,0x3AF7CBED,0x811D4394,0x3DAE314Bdata4  0x3F7F7C40,0x3B03E1F3,0xB08F2DB1,0xBDD46F21data4  0x3F7F7448,0x3B0BDE2F,0x6D34522B,0xBDDC30A4data4  0x3F7F6C50,0x3B13DAAA,0xB1F473DB,0x3DCB0070data4  0x3F7F6458,0x3B1BD766,0x6AD282FD,0xBDD65DDCdata4  0x3F7F5C68,0x3B23CC5C,0xF153761A,0xBDCDAB83data4  0x3F7F5470,0x3B2BC997,0x341D0F8F,0xBDDADA40data4  0x3F7F4C78,0x3B33C711,0xEBC394E8,0x3DCD1BD7data4  0x3F7F4488,0x3B3BBCC6,0x52E3E695,0xBDC3532Bdata4  0x3F7F3C90,0x3B43BAC0,0xE846B3DE,0xBDA3961Edata4  0x3F7F34A0,0x3B4BB0F4,0x785778D4,0xBDDADF06data4  0x3F7F2CA8,0x3B53AF6D,0xE55CE212,0x3DCC3ED1data4  0x3F7F24B8,0x3B5BA620,0x9E382C15,0xBDBA3103data4  0x3F7F1CC8,0x3B639D12,0x5C5AF197,0x3D635A0Bdata4  0x3F7F14D8,0x3B6B9444,0x71D34EFC,0xBDDCCB19data4  0x3F7F0CE0,0x3B7393BC,0x52CD7ADA,0x3DC74502data4  0x3F7F04F0,0x3B7B8B6D,0x7D7F2A42,0xBDB68F17LOCAL_OBJECT_END(Constants_G_H_h3)LOCAL_OBJECT_START(lgammal_data)// Positive overflow valuedata8 0xB8D54C8BFFFDEBF4, 0x00007FF1LOCAL_OBJECT_END(lgammal_data)LOCAL_OBJECT_START(lgammal_Stirling)// Coefficients needed for Strirling's formuladata8 0x3FED67F1C864BEB4 // High part of 0.5*ln(2*Pi)data8 0x3C94D252F2400510 // Low part of 0.5*ln(2*Pi)//// Bernulli numbers used in Striling's formula for -2^63 < |x| < -13.0//(B1H, B1L) = 8.3333333333333333333262747254e-02data8 0x3FB5555555555555, 0x3C55555555555555data8 0xB60B60B60B60B60B, 0x0000BFF6 //B2 = -2.7777777777777777777777777778e-03data8 0xD00D00D00D00D00D, 0x00003FF4 //B3 = 7.9365079365079365079365079365e-04data8 0x9C09C09C09C09C0A, 0x0000BFF4 //B4 = -5.9523809523809523809523809524e-04data8 0xDCA8F158C7F91AB8, 0x00003FF4 //B5 = 8.4175084175084175084175084175e-04data8 0xFB5586CCC9E3E410, 0x0000BFF5 //B6 = -1.9175269175269175269175269175e-03data8 0xD20D20D20D20D20D, 0x00003FF7 //B7 = 6.4102564102564102564102564103e-03data8 0xF21436587A9CBEE1, 0x0000BFF9 //B8 = -2.9550653594771241830065359477e-02data8 0xB7F4B1C0F033FFD1, 0x00003FFC //B9 = 1.7964437236883057316493849002e-01data8 0xB23B3808C0F9CF6E, 0x0000BFFF //B10 = -1.3924322169059011164274322169e+00// Polynomial coefficients for Stirling's formula, -13.0 < x < -6.0data8 0x3FB5555555555555, 0x3C4D75060289C58B //A0data8 0xB60B60B60B0F0876, 0x0000BFF6 //A1data8 0xD00D00CE54B1256C, 0x00003FF4 //A2data8 0x9C09BF46B58F75E1, 0x0000BFF4 //A3data8 0xDCA8483BC91ACC6D, 0x00003FF4 //A4data8 0xFB3965C939CC9FEE, 0x0000BFF5 //A5data8 0xD0723ADE3F0BC401, 0x00003FF7 //A6data8 0xE1ED7434E81F0B73, 0x0000BFF9 //A7data8 0x8069C6982F993283, 0x00003FFC //A8data8 0xC271F65BFA5BEE3F, 0x0000BFFD //A9LOCAL_OBJECT_END(lgammal_Stirling)LOCAL_OBJECT_START(lgammal_lnsin_data)// polynomial approximation of -ln(sin(Pi*x)/(Pi*x)), 0 < x <= 0.5data8 0x3FFA51A6625307D3, 0x3C81873332FAF94C //A2data8 0x8A8991563EC241C3, 0x00003FFE //A4data8 0xADA06588061805DF, 0x00003FFD //A6data8 0x80859B57C338D0F7, 0x00003FFD //A8data8 0xCD00F1C2D78754BD, 0x00003FFC //A10data8 0xAAB56B1D3A1F4655, 0x00003FFC //A12data8 0x924B6F2FBBED12B1, 0x00003FFC //A14data8 0x80008E58765F43FC, 0x00003FFC //A16data8 0x3FBC718EC115E429//A18data8 0x3FB99CE544FE183E//A20data8 0x3FB7251C09EAAD89//A22data8 0x3FB64A970733628C//A24data8 0x3FAC92D6802A3498//A26data8 0x3FC47E1165261586//A28data8 0xBFCA1BAA434750D4//A30data8 0x3FE460001C4D5961//A32data8 0xBFE6F06A3E4908AD//A34data8 0x3FE300889EBB203A//A36LOCAL_OBJECT_END(lgammal_lnsin_data)LOCAL_OBJECT_START(lgammal_half_3Q_data)// Polynomial coefficients for the lgammal(x), 0.5 <= x < 0.75data8 0xBFF7A648EE90C62E, 0x3C713F326857E066 // A3, A0Ldata8 0xBFF73E4B8BA780AE, 0xBCA953BC788877EF // A1, A1Ldata8 0x403774DCD58D0291, 0xC0415254D5AE6623 // D0, D1data8 0x40B07213855CBFB0, 0xC0B8855E25D2D229 // C20, C21data8 0x3FFB359F85FF5000, 0x3C9BAECE6EF9EF3A // A2, A2Ldata8 0x3FD717D498A3A8CC, 0xBC9088E101CFEDFA  // A0, A3Ldata8 0xAFEF36CC5AEC3FF0, 0x00004002 // E6data8 0xABE2054E1C34E791, 0x00004001 // E4data8 0xB39343637B2900D1, 0x00004000 // E2data8 0xD74FB710D53F58F6, 0x00003FFF // E0data8 0x4070655963BA4256, 0xC078DA9D263C4EA3 // D6, D7data8 0x405CD2B6A9B90978, 0xC065B3B9F4F4F171 // D4, D5data8 0x4049BC2204CF61FF, 0xC05337227E0BA152 // D2, D3data8 0x4095509A50C07A96, 0xC0A0747949D2FB45 // C18, C19data8 0x4082ECCBAD709414, 0xC08CD02FB088A702 // C16, C17data8 0xFFE4B2A61B508DD5, 0x0000C002 // E7data8 0xF461ADB8AE17E0A5, 0x0000C001 // E5

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -