36
36
37
37
var toWordf = require ( '@stdlib/number/float32/base/to-word' ) ;
38
38
var fromWordf = require ( '@stdlib/number/float32/base/from-word' ) ;
39
- var isnan = require ( '@stdlib/math/base/assert/is-nan ' ) ;
39
+ var isnanf = require ( '@stdlib/math/base/assert/is-nanf ' ) ;
40
40
var NINF = require ( '@stdlib/constants/float32/ninf' ) ;
41
41
var FLOAT32_EXPONENT_MASK = require ( '@stdlib/constants/float32/exponent-mask' ) ;
42
42
var FLOAT32_EXPONENT_BIAS = require ( '@stdlib/constants/float32/exponent-bias' ) ;
@@ -87,7 +87,6 @@ function lnf( x ) {
87
87
var ix ;
88
88
var t2 ;
89
89
var t1 ;
90
- var dk ;
91
90
var k ;
92
91
var R ;
93
92
var f ;
@@ -100,7 +99,7 @@ function lnf( x ) {
100
99
if ( x === 0.0 ) {
101
100
return NINF ;
102
101
}
103
- if ( isnan ( x ) || x < 0.0 ) {
102
+ if ( isnanf ( x ) || x < 0.0 ) {
104
103
return NaN ;
105
104
}
106
105
x = float64ToFloat32 ( x ) ;
@@ -109,7 +108,7 @@ function lnf( x ) {
109
108
110
109
// x < 2**-126
111
110
if ( ix < 0x00800000 ) {
112
- k = float64ToFloat32 ( k - 25 ) ;
111
+ k -= 25 ;
113
112
114
113
// Subnormal number, scale up x
115
114
x = float64ToFloat32 ( x * TWO25 ) ;
@@ -120,7 +119,7 @@ function lnf( x ) {
120
119
}
121
120
k = float64ToFloat32 ( k + float64ToFloat32 ( ( ix >> 23 ) - FLOAT32_EXPONENT_BIAS ) ) ; // eslint-disable-line max-len
122
121
ix &= FLOAT32_SIGNIFICAND_MASK ;
123
- i = float64ToFloat32 ( ix + ( 0x95f64 << 3 ) ) & 0x800000 ;
122
+ i = ( ix + ( 0x95f64 << 3 ) ) & 0x800000 ;
124
123
125
124
// Normalize x or x/2
126
125
x = fromWordf ( ix | ( i ^ 0x3f800000 ) ) ;
@@ -133,22 +132,19 @@ function lnf( x ) {
133
132
if ( k === 0 ) {
134
133
return 0.0 ;
135
134
}
136
- dk = k ;
137
- return float64ToFloat32 ( float64ToFloat32 ( dk * LN2_HI ) + float64ToFloat32 ( dk * LN2_LO ) ) ; // eslint-disable-line max-len
135
+ return float64ToFloat32 ( float64ToFloat32 ( k * LN2_HI ) + float64ToFloat32 ( k * LN2_LO ) ) ; // eslint-disable-line max-len
138
136
}
139
137
R = float64ToFloat32 ( float64ToFloat32 ( f * f ) * float64ToFloat32 ( 0.5 - float64ToFloat32 ( ONE_THIRD * f ) ) ) ; // eslint-disable-line max-len
140
138
if ( k === 0 ) {
141
139
return float64ToFloat32 ( f - R ) ;
142
140
}
143
- dk = k ;
144
- return float64ToFloat32 ( float64ToFloat32 ( dk * LN2_HI ) - float64ToFloat32 ( float64ToFloat32 ( R - float64ToFloat32 ( dk * LN2_LO ) ) - f ) ) ; // eslint-disable-line max-len
141
+ return float64ToFloat32 ( float64ToFloat32 ( k * LN2_HI ) - float64ToFloat32 ( float64ToFloat32 ( R - float64ToFloat32 ( k * LN2_LO ) ) - f ) ) ; // eslint-disable-line max-len
145
142
}
146
143
s = float64ToFloat32 ( f / float64ToFloat32 ( 2.0 + f ) ) ;
147
- dk = k ;
148
144
z = float64ToFloat32 ( s * s ) ;
149
- i = float64ToFloat32 ( ix - ( 0x6147a << 3 ) ) ;
145
+ i = ix - ( 0x6147a << 3 ) ;
150
146
w = float64ToFloat32 ( z * z ) ;
151
- j = float64ToFloat32 ( ( 0x6b851 << 3 ) - ix ) ;
147
+ j = ( 0x6b851 << 3 ) - ix ;
152
148
t1 = float64ToFloat32 ( w * float64ToFloat32 ( polyvalP ( w ) ) ) ;
153
149
t2 = float64ToFloat32 ( z * float64ToFloat32 ( polyvalQ ( w ) ) ) ;
154
150
i |= j ;
@@ -158,12 +154,12 @@ function lnf( x ) {
158
154
if ( k === 0 ) {
159
155
return float64ToFloat32 ( f - float64ToFloat32 ( hfsq - float64ToFloat32 ( s * float64ToFloat32 ( hfsq + R ) ) ) ) ; // eslint-disable-line max-len
160
156
}
161
- return float64ToFloat32 ( float64ToFloat32 ( dk * LN2_HI ) - float64ToFloat32 ( float64ToFloat32 ( hfsq - float64ToFloat32 ( ( s * float64ToFloat32 ( hfsq + R ) ) + float64ToFloat32 ( dk * LN2_LO ) ) ) - f ) ) ; // eslint-disable-line max-len
157
+ return float64ToFloat32 ( float64ToFloat32 ( k * LN2_HI ) - float64ToFloat32 ( float64ToFloat32 ( hfsq - float64ToFloat32 ( ( s * float64ToFloat32 ( hfsq + R ) ) + float64ToFloat32 ( k * LN2_LO ) ) ) - f ) ) ; // eslint-disable-line max-len
162
158
}
163
159
if ( k === 0 ) {
164
160
return float64ToFloat32 ( f - float64ToFloat32 ( s * float64ToFloat32 ( f - R ) ) ) ; // eslint-disable-line max-len
165
161
}
166
- return float64ToFloat32 ( float64ToFloat32 ( dk * LN2_HI ) - float64ToFloat32 ( float64ToFloat32 ( float64ToFloat32 ( s * float64ToFloat32 ( f - R ) ) - float64ToFloat32 ( dk * LN2_LO ) ) - f ) ) ; // eslint-disable-line max-len
162
+ return float64ToFloat32 ( float64ToFloat32 ( k * LN2_HI ) - float64ToFloat32 ( float64ToFloat32 ( float64ToFloat32 ( s * float64ToFloat32 ( f - R ) ) - float64ToFloat32 ( k * LN2_LO ) ) - f ) ) ; // eslint-disable-line max-len
167
163
}
168
164
169
165
0 commit comments