亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? e_atan2f.s

?? glibc 庫, 不僅可以學習使用庫函數,還可以學習函數的具體實現,是提高功力的好資料
?? S
?? 第 1 頁 / 共 2 頁
字號:
.file "atan2f.s"// Copyright (c) 2000 - 2003, Intel Corporation// All rights reserved.//// Contributed 2000 by the Intel Numerics Group, Intel Corporation//// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions are// met://// * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.//// * Redistributions in binary form must reproduce the above copyright// notice, this list of conditions and the following disclaimer in the// documentation and/or other materials provided with the distribution.//// * The name of Intel Corporation may not be used to endorse or promote// products derived from this software without specific prior written// permission.// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.//// Intel Corporation is the author of this code, and requests that all// problem reports or change requests be submitted to it directly at// http://www.intel.com/software/products/opensource/libraries/num.htm.// History//==============================================================// 06/01/00 Initial version// 08/15/00 Bundle added after call to __libm_error_support to properly//          set [the previously overwritten] GR_Parameter_RESULT.// 08/17/00 Changed predicate register macro-usage to direct predicate//          names due to an assembler bug.// 01/05/01 Fixed flag settings for denormal input.// 01/19/01 Added documentation// 01/30/01 Improved speed// 02/06/02 Corrected .section statement// 05/20/02 Cleaned up namespace and sf0 syntax// 02/06/03 Reordered header: .section, .global, .proc, .align// Description//=========================================// The atan2 function computes the principle value of the arc tangent of y/x using// the signs of both arguments to determine the quadrant of the return value.// A domain error may occur if both arguments are zero.// The atan2 function returns the arc tangent of y/x in the range [-pi,+pi] radians.//..//..Let (v,u) = (y,x) if |y| <= |x|, and (v,u) = (x,y) otherwise. Note that//..v and u can be negative. We state the relationship between atan2(y,x) and//..atan(v/u).//..//..Let swap = false if v = y, and swap = true if v = x.//..Define C according to the matrix//..//..                   TABLE FOR C//..                              x +ve       x -ve//..   no swap (swap = false)    sgn(y)*0     sgn(y)*pi//..   swap    (swap = true )    sgn(y)*pi/2  sgn(y)*pi/2//..//..   atan2(y,x) =  C +  atan(v/u)  if no swap//..   atan2(y,x) =  C -  atan(v/u)  if  swap//..//..These relationship is more efficient to compute as we accommodate signs in v and u//..saving the need to obtain the absolute value before computation can proceed.//..//..Suppose (v,u) = (y,x), we calculate atan(v/u) as follows://..A = y * frcpa(x)    (so A = (y/x)(1 - beta))//..atan(y/x) = atan(A) + atan( ((y/x)-A))/(1 + (y/x)A) ), the second term is //..a correction.//..atan(A) is approximated by a polynomial //..A + p1 A^3 + p2 A^5 + ... + p10 A^21,//..atan(G) is approximated as follows://..Let G = (y - Ax)/(x + Ay), atan(G) can be approximated by G + g * p1//..where g is a limited precision approximation to G via g = (y - Ax)*frcpa(x + Ay).//..//..Suppose (v,u) = (x,y), we calculate atan(v/u) as follows://..Z = x * frcpa(y)    (so Z = (x/y)(1 - beta))//..atan(x/y) = atan(Z) + atan( ((x/y)-Z))/(1 + (x/y)Z) ), the second term is //..a correction.//..atan(Z) is approximated by a polynomial //..Z + p1 Z^3 + p2 Z^5 + ... + p10 Z^21,//..atan(T) is approximated as follows://..Let T = (x - Ay)/(y + Ax), atan(T) can be approximated by T + t * p1//..where t is a limited precision approximation to T via t = (x - Ay)*frcpa(y + Ax).//..//..//..A = y * frcpa(x)//..atan(A) ~=~ A + p1 A^3 + ... + P10 A^21//..//..This polynomial is computed as follows://..Asq = A*A; Acub = A*Asq, A4 = Asq*Asq //..A5 = Asq*Acub, A6 = Asq*A4; A11 = A5 * A6//..//..poly_A1 = p9 + Asq*p10, poly_A2 = p7 + Asq*p8, poly_A3 = p5 + Asq*p6//..poly_A1 = poly_A2 + A4 * poly_A1//..poly_A1 = poly_A3 + A4 * poly_A1//..//..poly_A4 = p1 * A//,,poly_A5 = p3 + Asq * p4, poly_A4 = A + Asq*poly_A4//..poly_A5 = p2 + Asq * poly_A5 //..poly_A4 = poly_A4 + A5 * poly_A5//..//..atan_A = poly_A4 + A11 * poly_A1//..//..atan(G) is approximated as follows://..G_numer = y - A*x, G_denom = x + A*y//..H1 = frcpa(G_denom)//..H_beta = 1 - H1 * G_denom//..H2 = H1 + H1 * H_beta//..H_beta2 = H_beta*H_beta//..H3 = H2 + H2*H_beta2//..g = H1 * G_numer; gsq = g*g; atan_G = g*p1, atan_G = atan_G*gsq//..atan_G = G_numer*H3 + atan_G//..//..//..A = y * frcpa(x)//..atan(A) ~=~ A + p1 A^3 + ... + P10 A^21//..//..This polynomial is computed as follows://..Asq = A*A; Acub = A*Asq, A4 = Asq*Asq //..A5 = Asq*Acub, A6 = Asq*A4; A11 = A5 * A6//..//..poly_A1 = p9 + Asq*p10, poly_A2 = p7 + Asq*p8, poly_A3 = p5 + Asq*p6//..poly_A1 = poly_A2 + A4 * poly_A1//..poly_A1 = poly_A3 + A4 * poly_A1//..//..poly_A4 = p1 * A//,,poly_A5 = p3 + Asq * p4, poly_A4 = A + Asq*poly_A4//..poly_A5 = p2 + Asq * poly_A5 //..poly_A4 = poly_A4 + A5 * poly_A5//..//..atan_A = poly_A4 + A11 * poly_A1//..//..//..====================================================================//..	COEFFICIENTS USED IN THE COMPUTATION//..====================================================================//coef_pj, j = 1,2,...,10;  atan(A) ~=~ A + p1 A^3 + p2 A^5 + ... + p10 A^21////  coef_p1          =      -.3333332707155439167401311806315789E+00//  coef_p1   in dbl = BFD5 5555 1219 1621 ////  coef_p2          =       .1999967670926658391827857030875748E+00//  coef_p2   in dbl = 3FC9 997E 7AFB FF4E ////  coef_p3          =      -.1427989384500152360161563301087296E+00//  coef_p3   in dbl = BFC2 473C 5145 EE38 ////  coef_p4          =       .1105852823460720770079031213661163E+00//  coef_p4   in dbl = 3FBC 4F51 2B18 65F5 ////  coef_p5          =      -.8811839915595312348625710228448363E-01//  coef_p5   in dbl = BFB6 8EED 6A8C FA32 ////  coef_p6          =       .6742329836955067042153645159059714E-01//  coef_p6   in dbl = 3FB1 42A7 3D7C 54E3 ////  coef_p7          =      -.4468571068774672908561591262231909E-01//  coef_p7   in dbl = BFA6 E10B A401 393F ////  coef_p8          =       .2252333246746511135532726960586493E-01//  coef_p8   in dbl = 3F97 105B 4160 F86B ////  coef_p9          =      -.7303884867007574742501716845542314E-02//  coef_p9   in dbl = BF7D EAAD AA33 6451 ////  coef_p10         =       .1109686868355312093949039454619058E-02//  coef_p10  in dbl = 3F52 2E5D 33BC 9BAA //// Special values//==============================================================//              Y                 x          Result//             +number           +inf        +0//             -number           +inf        -0//             +number           -inf        +pi//             -number           -inf        -pi////             +inf              +number     +pi/2//             -inf              +number     -pi/2//             +inf              -number     +pi/2//             -inf              -number     -pi/2////             +inf              +inf        +pi/4//             -inf              +inf        -pi/4//             +inf              -inf        +3pi/4//             -inf              -inf        -3pi/4////             +1                +1          +pi/4//             -1                +1          -pi/4//             +1                -1          +3pi/4//             -1                -1          -3pi/4////             +number           +0          +pi/2    // does not raise DBZ//             -number           +0          -pi/2    // does not raise DBZ//             +number           -0          +pi/2    // does not raise DBZ//             -number           -0          -pi/2    // does not raise DBZ////             +0                +number     +0//             -0                +number     -0//             +0                -number     +pi//             -0                -number     -pi////             +0                +0          +0      // does not raise invalid//             -0                +0          -0      // does not raise invalid//             +0                -0          +pi     // does not raise invalid//             -0                -0          -pi     // does not raise invalid////            Nan             anything      quiet Y//            anything        NaN           quiet X// atan2(+-0/+-0) sets double error tag to 37// atan2f(+-0/+-0) sets single error tag to 38// These are domain errors.//// Assembly macros//=========================================// integer registersatan2f_GR_Addr_1              = r33atan2f_GR_Addr_2              = r34GR_SAVE_B0                    = r35GR_SAVE_PFS                   = r36GR_SAVE_GP                    = r37GR_Parameter_X                = r38GR_Parameter_Y                = r39GR_Parameter_RESULT           = r40GR_Parameter_TAG              = r41// floating point registersatan2f_coef_p1         = f32atan2f_coef_p10        = f33atan2f_coef_p7         = f34atan2f_coef_p6         = f35atan2f_coef_p3         = f36atan2f_coef_p2         = f37atan2f_coef_p9         = f38atan2f_coef_p8         = f39atan2f_coef_p5         = f40atan2f_coef_p4         = f41atan2f_const_piby2     = f42atan2f_const_pi        = f43atan2f_const_piby4     = f44atan2f_const_3piby4    = f45atan2f_xsq             = f46atan2f_ysq             = f47atan2f_xy              = f48atan2f_const_1         = f49atan2f_sgn_Y           = f50atan2f_Z0              = f51atan2f_A0              = f52atan2f_Z               = f53atan2f_A               = f54atan2f_C               = f55atan2f_U               = f56atan2f_Usq             = f57atan2f_U4              = f58atan2f_U6              = f59atan2f_U8              = f60atan2f_poly_u109       = f61atan2f_poly_u87        = f62atan2f_poly_u65        = f63atan2f_poly_u43        = f64atan2f_poly_u21        = f65atan2f_poly_u10to7     = f66atan2f_poly_u6to3      = f67atan2f_poly_u10to3     = f68atan2f_poly_u10to0     = f69atan2f_poly_u210       = f70atan2f_T_numer         = f71atan2f_T_denom         = f72atan2f_G_numer         = f73atan2f_G_denom         = f74atan2f_p1rnum          = f75atan2f_R_denom         = f76atan2f_R_numer         = f77atan2f_pR              = f78atan2f_pRC             = f79atan2f_pQRC            = f80atan2f_Q1              = f81atan2f_Q_beta          = f82atan2f_Q2              = f83atan2f_Q_beta2         = f84atan2f_Q3              = f85atan2f_r               = f86atan2f_rsq             = f87atan2f_poly_atan_U     = f88// predicate registers//atan2f_Pred_Swap     = p6 // |y| >  |x|//atan2f_Pred_noSwap   = p7 // |y| <= |x|//atan2f_Pred_Xpos     = p8 //  x  >=  0//atan2f_Pred_Xneg     = p9 //  x  <   0RODATA.align 16LOCAL_OBJECT_START(atan2f_coef_table1)data8 0xBFD5555512191621 // p1data8 0x3F522E5D33BC9BAA // p10data8 0xBFA6E10BA401393F // p7data8 0x3FB142A73D7C54E3 // p6data8 0xBFC2473C5145EE38 // p3data8 0x3FC9997E7AFBFF4E // p2LOCAL_OBJECT_END(atan2f_coef_table1)LOCAL_OBJECT_START(atan2f_coef_table2)data8 0xBF7DEAADAA336451 // p9data8 0x3F97105B4160F86B // p8data8 0xBFB68EED6A8CFA32 // p5data8 0x3FBC4F512B1865F5 // p4data8 0x3ff921fb54442d18 // pi/2data8 0x400921fb54442d18 // pidata8 0x3fe921fb54442d18 // pi/4data8 0x4002d97c7f3321d2 // 3pi/4LOCAL_OBJECT_END(atan2f_coef_table2).section .textGLOBAL_IEEE754_ENTRY(atan2f) {     .mfi      alloc      r32           = ar.pfs,1,5,4,0     frcpa.s1  atan2f_Z0,p0     =    f1,f8   // Approx to 1/y     nop.i  999} {     .mfi      addl      atan2f_GR_Addr_1    =    @ltoff(atan2f_coef_table1),gp     fma.s1    atan2f_xsq     =    f9,f9,f0     nop.i  999 ;;} {     .mfi      ld8       atan2f_GR_Addr_1    =    [atan2f_GR_Addr_1]     frcpa.s1  atan2f_A0,p0     =    f1,f9   // Approx to 1/x     nop.i  999} {     .mfi      nop.m  999     fma.s1    atan2f_ysq     =    f8,f8,f0     nop.i  999 ;;} {     .mfi      nop.m  999     fcmp.ge.s1     p8,p9  =    f9,f0  // Set p8 if x>=0, p9 if x<0     nop.i  999}{     .mfi      nop.m  999     fma.s1    atan2f_xy     =    f9,f8,f0     nop.i  999 ;;}  {     .mfi      add   atan2f_GR_Addr_2 = 0x30, atan2f_GR_Addr_1     fmerge.s  atan2f_sgn_Y   =    f8,f1     nop.i  999 ;;}  {     .mmf      ldfpd     atan2f_coef_p1,atan2f_coef_p10 =    [atan2f_GR_Addr_1],16     ldfpd     atan2f_coef_p9,atan2f_coef_p8 =    [atan2f_GR_Addr_2],16     fclass.m  p10,p0 =    f9,0xe7	// Test x @inf|@snan|@qnan|@zero} ;; {     .mfi      ldfpd     atan2f_coef_p7,atan2f_coef_p6 =    [atan2f_GR_Addr_1],16     fma.s1    atan2f_T_denom =    atan2f_Z0,atan2f_xsq,f8     nop.i  999} {     .mfi      ldfpd     atan2f_coef_p5,atan2f_coef_p4     =    [atan2f_GR_Addr_2],16     fma.s1    atan2f_Z                      =    atan2f_Z0,f9,f0     nop.i  999 ;;} {     .mfi      ldfpd     atan2f_coef_p3,atan2f_coef_p2 =    [atan2f_GR_Addr_1],16     fma.s1    atan2f_G_denom =    atan2f_A0,atan2f_ysq,f9     nop.i  999} {     .mfi      ldfpd     atan2f_const_piby2,atan2f_const_pi =    [atan2f_GR_Addr_2],16     fma.s1    atan2f_A                           =    atan2f_A0,f8,f0     nop.i  999 ;;}{     .mfi      ldfpd     atan2f_const_piby4,atan2f_const_3piby4 = [atan2f_GR_Addr_2]     fclass.m  p11,p0 = f8,0xe7	// Test y @inf|@snan|@qnan|@zero     nop.i  999} {     .mfb      nop.m  999     fnma.s1   atan2f_T_numer =    atan2f_Z0,atan2f_xy,f9(p10) br.cond.spnt ATAN2F_XY_INF_NAN_ZERO ;;   // Branch on x nan,inf,zero} // p6 if |y|>|x|, p7 if |x|>=|y| , use xsq and ysq for test{     .mfi      nop.m  999     fcmp.gt.s1 p6,p7 = atan2f_ysq,atan2f_xsq     nop.i  999}{     .mfb      nop.m  999     fnma.s1   atan2f_G_numer =    atan2f_A0,atan2f_xy,f8(p11) br.cond.spnt ATAN2F_XY_INF_NAN_ZERO ;;  // Branch on y nan,inf,zero}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级大片在线观看| 亚洲国产一区视频| 一区二区在线看| 久久99久久久久久久久久久| voyeur盗摄精品| 精品美女一区二区| 视频在线观看一区二区三区| 成人午夜免费电影| 2023国产精华国产精品| 亚洲国产精品天堂| 91免费国产在线| 国产精品三级久久久久三级| 日本欧洲一区二区| 欧美亚洲丝袜传媒另类| 亚洲婷婷在线视频| 成人晚上爱看视频| 国产拍欧美日韩视频二区| 久久精品国产亚洲aⅴ| 欧美精品丝袜中出| 亚洲永久精品国产| 在线免费观看日韩欧美| 亚洲免费电影在线| 91网上在线视频| 亚洲乱码日产精品bd| 成人激情午夜影院| 成人免费视频在线观看| www.亚洲激情.com| 亚洲色图一区二区三区| a亚洲天堂av| 综合久久给合久久狠狠狠97色| 国产91高潮流白浆在线麻豆| 国产午夜精品一区二区三区四区| 国产一区二区三区| 久久久美女毛片| 国产a区久久久| 一区二区三区四区av| 在线观看成人小视频| 亚洲一区二区偷拍精品| 欧美日韩国产一区二区三区地区| 亚洲一区精品在线| 欧美乱熟臀69xxxxxx| 裸体在线国模精品偷拍| 精品国产乱码久久久久久闺蜜| 激情成人综合网| 国产午夜精品福利| 91欧美一区二区| 天天综合日日夜夜精品| 欧美成人欧美edvon| 丰满白嫩尤物一区二区| 亚洲欧美偷拍三级| 欧美精品亚洲二区| 国产盗摄一区二区| 伊人婷婷欧美激情| 日韩一卡二卡三卡四卡| 国产v日产∨综合v精品视频| 亚洲图片另类小说| 日韩欧美在线不卡| 国产成人日日夜夜| 亚洲综合色视频| 精品国产乱码久久久久久蜜臀 | 久久久久9999亚洲精品| 不卡一卡二卡三乱码免费网站| 亚洲老妇xxxxxx| 日韩精品资源二区在线| 99国产一区二区三精品乱码| 日韩成人精品在线观看| 国产精品久久久久久一区二区三区| 欧美日韩成人在线一区| 成人午夜又粗又硬又大| 人禽交欧美网站| 中文字幕中文字幕在线一区| 日韩午夜电影av| 99这里都是精品| 麻豆精品国产91久久久久久 | 亚洲精品在线观看网站| 色爱区综合激月婷婷| 激情欧美日韩一区二区| 午夜精品一区在线观看| 中文字幕一区二区三区不卡| 日韩精品一区二区在线| 欧美综合天天夜夜久久| 国产一区二区久久| 日韩中文字幕av电影| 亚洲精品一二三| 亚洲国产精品精华液ab| 欧美刺激午夜性久久久久久久 | 欧美va日韩va| 欧美日韩极品在线观看一区| 99久久综合色| 国产精品538一区二区在线| 高清国产一区二区| 捆绑调教美女网站视频一区| 亚洲妇熟xx妇色黄| 成人免费视频在线观看| 国产亚洲va综合人人澡精品| 日韩欧美一二三四区| 欧美美女直播网站| 欧美性受极品xxxx喷水| 99久久婷婷国产综合精品电影| 国产一区二区三区视频在线播放| 天天综合天天综合色| 亚洲国产一区在线观看| 亚洲精品国产精品乱码不99| 国产精品视频在线看| 欧美国产综合一区二区| 精品国产免费人成在线观看| 日韩欧美高清dvd碟片| 欧美一级免费大片| 欧美高清一级片在线| 91精品国产综合久久婷婷香蕉| 欧美裸体一区二区三区| 正在播放一区二区| 日韩欧美亚洲一区二区| 91精品国产一区二区三区香蕉| 欧美老女人第四色| 欧美一个色资源| 日韩欧美在线123| 精品美女一区二区三区| 精品免费国产二区三区| 2020国产成人综合网| 久久久99久久精品欧美| 国产精品无人区| 亚洲三级理论片| 亚洲成人动漫在线免费观看| 丝袜a∨在线一区二区三区不卡| 视频一区二区国产| 国产一区二区在线电影| 粉嫩13p一区二区三区| 91网站黄www| 91精品欧美综合在线观看最新 | 欧美理论片在线| 日韩欧美高清一区| 国产精品婷婷午夜在线观看| 亚洲激情五月婷婷| 日韩av网站在线观看| 国产麻豆91精品| 99热99精品| 日韩一本二本av| 国产欧美视频一区二区| 有码一区二区三区| 美女网站在线免费欧美精品| 国产精品99久久久久久有的能看 | 国产一区二区网址| 99久久99久久精品国产片果冻| 欧美三级日本三级少妇99| 精品国产一区二区三区四区四| 国产精品美女久久久久久久久| 一个色综合av| 国内精品久久久久影院薰衣草| va亚洲va日韩不卡在线观看| 宅男噜噜噜66一区二区66| 国产农村妇女精品| 三级欧美韩日大片在线看| 床上的激情91.| 欧美一区二区视频网站| 日韩毛片高清在线播放| 91天堂素人约啪| 日韩一区二区三区视频| 亚洲男人都懂的| 国产精品99久久久久久久女警 | 91在线一区二区| 欧美一级艳片视频免费观看| 国产精品久久精品日日| 久久成人av少妇免费| 91极品视觉盛宴| 国产日韩欧美亚洲| 免费高清成人在线| 欧美综合在线视频| 亚洲欧洲99久久| 国产精品羞羞答答xxdd| 日韩无一区二区| 手机精品视频在线观看| 日本精品视频一区二区三区| 国产欧美精品国产国产专区| 免费看欧美美女黄的网站| 欧美中文字幕久久| 1区2区3区国产精品| 国产aⅴ综合色| 久久久久久久久免费| 免费视频一区二区| 69久久夜色精品国产69蝌蚪网| 一区二区在线看| 91在线视频在线| 国产欧美日产一区| 国产精品一区二区三区乱码| 日韩女优av电影| 美女国产一区二区三区| 8x8x8国产精品| 日本人妖一区二区| 51精品秘密在线观看| 午夜亚洲国产au精品一区二区| 91蜜桃网址入口| 最新中文字幕一区二区三区 | 欧美日韩午夜精品| 夜夜精品浪潮av一区二区三区| av不卡在线播放| 亚洲日本在线a| 91色|porny| 亚洲午夜一区二区| 欧美高清视频不卡网|