Lines Matching +full:64 +full:m

20 |	The returned result is within 0.85 ulps in 64 significant bit, i.e.
79 | Step 2. Calculate N = round-to-nearest-int( X * 64/log2 ).
81 | 2.2 N := round-to-nearest-integer( X * 64/log2 ).
82 | 2.3 Calculate J = N mod 64; so J = 0,1,2,..., or 63.
83 | 2.4 Calculate M = (N - J)/64; so N = 64M + J.
84 | 2.5 Calculate the address of the stored value of 2^(J/64).
85 | 2.6 Create the value Scale = 2^M.
93 | constant := single-precision( 64/log 2 ).
99 | Z = X*(64/log2)*(1+eps), |eps| <= 2^(-24).
103 | Step 3. Calculate X - N*log2/64.
104 | 3.1 R := X + N*L1, where L1 := single-precision(-log2/64).
105 | 3.2 R := R + N*L2, L2 := extended-precision(-log2/64 - L1).
107 | the value -log2/64 to 88 bits of accuracy.
111 | Thus, R is practically X+N(L1+L2) to full 64 bits.
115 | N = rnd-to-int( X*64/log2 (1+eps) ), |eps|<=2^(-24)
116 | X*64/log2 (1+eps) = N + f, |f| <= 0.5
117 | X*64/log2 - N = f - eps*X 64/log2
118 | X - N*log2/64 = f*log2/64 - eps*X
123 | |X - N*log2/64| <= (0.5 + 16446/2^(18))*log2/64
124 | <= 0.57 log2/64.
134 | Note that 0.0062 is slightly bigger than 0.57 log2/64.
141 | Step 5. Compute 2^(J/64)*exp(R) = 2^(J/64)*(1+p) by
143 | where T and t are the stored values for 2^(J/64).
144 | Notes: 2^(J/64) is stored as T and t where T+t approximates
145 | 2^(J/64) to roughly 85 bits; T is in extended precision
153 | exp(X) = 2^M * 2^(J/64) * exp(R).
158 | Notes: If AdjFlag = 0, we have X = Mlog2 + Jlog2/64 + R,
159 | |M| <= 16380, and Scale = 2^M. Moreover, exp(X) will
162 | X = (M1+M)log2 + Jlog2/64 + R, |M1+M| >= 16380.
165 | approximately M. Thus 6.2 will never cause over/underflow.
188 | 8.2 N := round-to-integer( X * 64/log2 )
189 | 8.3 Calculate J = N mod 64, J = 0,1,...,63
190 | 8.4 K := (N-J)/64, M1 := truncate(K/2), M = K-M1, AdjFlag := 1.
191 | 8.5 Calculate the address of the stored value 2^(J/64).
192 | 8.6 Create the values Scale = 2^M, AdjScale = 2^M1.
232 | Step 2. Calculate N = round-to-nearest-int( X * 64/log2 ).
233 | 2.1 N := round-to-nearest-integer( X * 64/log2 ).
234 | 2.2 Calculate J = N mod 64; so J = 0,1,2,..., or 63.
235 | 2.3 Calculate M = (N - J)/64; so N = 64M + J.
236 | 2.4 Calculate the address of the stored value of 2^(J/64).
237 | 2.5 Create the values Sc = 2^M and OnebySc := -2^(-M).
240 | Step 3. Calculate X - N*log2/64.
241 | 3.1 R := X + N*L1, where L1 := single-precision(-log2/64).
242 | 3.2 R := R + N*L2, L2 := extended-precision(-log2/64 - L1).
261 | Step 5. Compute 2^(J/64)*p by
263 | where T and t are the stored values for 2^(J/64).
264 | Notes: 2^(J/64) is stored as T and t where T+t approximates
265 | 2^(J/64) to roughly 85 bits; T is in extended precision
274 | exp(X)-1 = 2^M * ( 2^(J/64) + p - 2^(-M) ).
275 | 6.1 If M <= 63, go to Step 6.3.
277 | 6.3 If M >= -3, go to 6.5.
484 fmuls #0x42B8AA3B,%fp0 | ...64/log2 * X
487 fmovel %fp0,%d0 | ...N = int( X * 64/log2 )
492 andil #0x3F,%d0 | ...D0 is J = N mod 64
494 addal %d0,%a1 | ...address of 2^(J/64)
496 asrl #6,%d0 | ...D0 is M
497 addiw #0x3FFF,%d0 | ...biased expo. of 2^(M)
503 |--a0 points to 2^(J/64), D0 is biased expo. of 2^(M)
505 fmuls #0xBC317218,%fp0 | ...N * L1, L1 = lead(-log2/64)
506 fmulx L2,%fp2 | ...N * L2, L1+L2 = -log2/64
521 | MOVE.W #0,2(%a1) ...load 2^(J/64) in cache
531 movew %d0,SCALE(%a6) | ...SCALE is 2^(M) in extended
545 fmovex (%a1)+,%fp1 | ...fp1 is lead. pt. of 2^(J/64)
551 |--EXP(X) = 2^M * ( 2^(J/64) + 2^(J/64)*(EXP(R)-1) )
553 fmulx %fp1,%fp0 | ...2^(J/64)*(Exp(R)-1)
555 fadds (%a1),%fp0 | ...accurate 2^(J/64)
557 faddx %fp1,%fp0 | ...2^(J/64) + 2^(J/64)*...
567 fmulx SCALE(%a6),%fp0 | ...multiply 2^(M)
585 fmuls #0x42B8AA3B,%fp0 | ...64/log2 * X
588 fmovel %fp0,%d0 | ...N = int( X * 64/log2 )
592 andil #0x3F,%d0 | ...D0 is J = N mod 64
594 addal %d0,%a1 | ...address of 2^(J/64)
599 subl %d0,L_SCR1(%a6) | ...a1 is M
605 movel L_SCR1(%a6),%d0 | ...D0 is M
606 addiw #0x3FFF,%d0 | ...biased expo. of 2^(M)
651 fmuls #0x42B8AA3B,%fp0 | ...64/log2 * X
654 fmovel %fp0,%d0 | ...N = int( X * 64/log2 )
659 andil #0x3F,%d0 | ...D0 is J = N mod 64
661 addal %d0,%a1 | ...address of 2^(J/64)
663 asrl #6,%d0 | ...D0 is M
664 movel %d0,L_SCR1(%a6) | ...save a copy of M
669 |--a0 points to 2^(J/64), D0 and a1 both contain M
671 fmuls #0xBC317218,%fp0 | ...N * L1, L1 = lead(-log2/64)
672 fmulx L2,%fp2 | ...N * L2, L1+L2 = -log2/64
676 addiw #0x3FFF,%d0 | ...D0 is biased expo. of 2^M
688 | MOVE.W #0,2(%a1) ...load 2^(J/64) in cache
696 movew %d0,SC(%a6) | ...SC is 2^(M) in extended
702 movel L_SCR1(%a6),%d0 | ...D0 is M
703 negw %d0 | ...D0 is -M
705 addiw #0x3FFF,%d0 | ...biased expo. of 2^(-M)
710 oriw #0x8000,%d0 | ...signed/expo. of -2^(-M)
711 movew %d0,ONEBYSC(%a6) | ...OnebySc is -2^(-M)
727 |--Compute 2^(J/64)*p
729 fmulx (%a1),%fp0 | ...2^(J/64)*(Exp(R)-1)
733 movel L_SCR1(%a6),%d0 | ...retrieve M
736 |--Step 6.2 M >= 64
743 |--Step 6.3 M <= 63
747 |--Step 6.4 M <= -4
753 |--Step 6.5 -3 <= M <= 63