@@ -25,14 +25,14 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">com
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 67/67 </ span >
28+ < span class ='fraction '> 106/106 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
3333 < span class ="strong "> 100% </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 2/2 </ span >
35+ < span class ='fraction '> 10/10 </ span >
3636 </ div >
3737
3838
@@ -46,7 +46,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">com
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 67/67 </ span >
49+ < span class ='fraction '> 106/106 </ span >
5050 </ div >
5151
5252
@@ -130,73 +130,151 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">com
130130< a name ='L65 '> </ a > < a href ='#L65 '> 65</ a >
131131< a name ='L66 '> </ a > < a href ='#L66 '> 66</ a >
132132< a name ='L67 '> </ a > < a href ='#L67 '> 67</ a >
133- < a name ='L68 '> </ a > < a href ='#L68 '> 68</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
134- < span class ="cline-any cline-yes "> 3x</ span >
135- < span class ="cline-any cline-yes "> 3x</ span >
136- < span class ="cline-any cline-yes "> 3x</ span >
137- < span class ="cline-any cline-yes "> 3x</ span >
138- < span class ="cline-any cline-yes "> 3x</ span >
139- < span class ="cline-any cline-yes "> 3x</ span >
140- < span class ="cline-any cline-yes "> 3x</ span >
141- < span class ="cline-any cline-yes "> 3x</ span >
142- < span class ="cline-any cline-yes "> 3x</ span >
143- < span class ="cline-any cline-yes "> 3x</ span >
144- < span class ="cline-any cline-yes "> 3x</ span >
145- < span class ="cline-any cline-yes "> 3x</ span >
146- < span class ="cline-any cline-yes "> 3x</ span >
147- < span class ="cline-any cline-yes "> 3x</ span >
148- < span class ="cline-any cline-yes "> 3x</ span >
149- < span class ="cline-any cline-yes "> 3x</ span >
150- < span class ="cline-any cline-yes "> 3x</ span >
151- < span class ="cline-any cline-yes "> 3x</ span >
152- < span class ="cline-any cline-yes "> 3x</ span >
153- < span class ="cline-any cline-yes "> 3x</ span >
154- < span class ="cline-any cline-yes "> 3x</ span >
155- < span class ="cline-any cline-yes "> 3x</ span >
156- < span class ="cline-any cline-yes "> 3x</ span >
157- < span class ="cline-any cline-yes "> 3x</ span >
158- < span class ="cline-any cline-yes "> 3x</ span >
159- < span class ="cline-any cline-yes "> 3x</ span >
160- < span class ="cline-any cline-yes "> 3x</ span >
161- < span class ="cline-any cline-yes "> 3x</ span >
162- < span class ="cline-any cline-yes "> 3x</ span >
163- < span class ="cline-any cline-yes "> 3x</ span >
164- < span class ="cline-any cline-yes "> 3x</ span >
165- < span class ="cline-any cline-yes "> 3x</ span >
166- < span class ="cline-any cline-yes "> 3x</ span >
167- < span class ="cline-any cline-yes "> 3x</ span >
168- < span class ="cline-any cline-yes "> 3x</ span >
169- < span class ="cline-any cline-yes "> 3x</ span >
170- < span class ="cline-any cline-yes "> 3x</ span >
171- < span class ="cline-any cline-yes "> 3x</ span >
172- < span class ="cline-any cline-yes "> 3x</ span >
173- < span class ="cline-any cline-yes "> 3x</ span >
174- < span class ="cline-any cline-yes "> 3x</ span >
175- < span class ="cline-any cline-yes "> 3x</ span >
176- < span class ="cline-any cline-yes "> 3x</ span >
177- < span class ="cline-any cline-yes "> 3x</ span >
178- < span class ="cline-any cline-yes "> 3x</ span >
179- < span class ="cline-any cline-yes "> 3x</ span >
180- < span class ="cline-any cline-yes "> 3x</ span >
181- < span class ="cline-any cline-yes "> 6537x</ span >
182- < span class ="cline-any cline-yes "> 6537x</ span >
183- < span class ="cline-any cline-yes "> 6537x</ span >
184- < span class ="cline-any cline-yes "> 6537x</ span >
185- < span class ="cline-any cline-yes "> 6537x</ span >
186- < span class ="cline-any cline-yes "> 6537x</ span >
187- < span class ="cline-any cline-yes "> 6537x</ span >
188- < span class ="cline-any cline-yes "> 6537x</ span >
189- < span class ="cline-any cline-yes "> 6537x</ span >
190- < span class ="cline-any cline-yes "> 6537x</ span >
191- < span class ="cline-any cline-yes "> 6537x</ span >
192- < span class ="cline-any cline-yes "> 6537x</ span >
193- < span class ="cline-any cline-yes "> 6537x</ span >
194- < span class ="cline-any cline-yes "> 6537x</ span >
195- < span class ="cline-any cline-yes "> 3x</ span >
196- < span class ="cline-any cline-yes "> 3x</ span >
197- < span class ="cline-any cline-yes "> 3x</ span >
198- < span class ="cline-any cline-yes "> 3x</ span >
199- < span class ="cline-any cline-yes "> 3x</ span >
133+ < a name ='L68 '> </ a > < a href ='#L68 '> 68</ a >
134+ < a name ='L69 '> </ a > < a href ='#L69 '> 69</ a >
135+ < a name ='L70 '> </ a > < a href ='#L70 '> 70</ a >
136+ < a name ='L71 '> </ a > < a href ='#L71 '> 71</ a >
137+ < a name ='L72 '> </ a > < a href ='#L72 '> 72</ a >
138+ < a name ='L73 '> </ a > < a href ='#L73 '> 73</ a >
139+ < a name ='L74 '> </ a > < a href ='#L74 '> 74</ a >
140+ < a name ='L75 '> </ a > < a href ='#L75 '> 75</ a >
141+ < a name ='L76 '> </ a > < a href ='#L76 '> 76</ a >
142+ < a name ='L77 '> </ a > < a href ='#L77 '> 77</ a >
143+ < a name ='L78 '> </ a > < a href ='#L78 '> 78</ a >
144+ < a name ='L79 '> </ a > < a href ='#L79 '> 79</ a >
145+ < a name ='L80 '> </ a > < a href ='#L80 '> 80</ a >
146+ < a name ='L81 '> </ a > < a href ='#L81 '> 81</ a >
147+ < a name ='L82 '> </ a > < a href ='#L82 '> 82</ a >
148+ < a name ='L83 '> </ a > < a href ='#L83 '> 83</ a >
149+ < a name ='L84 '> </ a > < a href ='#L84 '> 84</ a >
150+ < a name ='L85 '> </ a > < a href ='#L85 '> 85</ a >
151+ < a name ='L86 '> </ a > < a href ='#L86 '> 86</ a >
152+ < a name ='L87 '> </ a > < a href ='#L87 '> 87</ a >
153+ < a name ='L88 '> </ a > < a href ='#L88 '> 88</ a >
154+ < a name ='L89 '> </ a > < a href ='#L89 '> 89</ a >
155+ < a name ='L90 '> </ a > < a href ='#L90 '> 90</ a >
156+ < a name ='L91 '> </ a > < a href ='#L91 '> 91</ a >
157+ < a name ='L92 '> </ a > < a href ='#L92 '> 92</ a >
158+ < a name ='L93 '> </ a > < a href ='#L93 '> 93</ a >
159+ < a name ='L94 '> </ a > < a href ='#L94 '> 94</ a >
160+ < a name ='L95 '> </ a > < a href ='#L95 '> 95</ a >
161+ < a name ='L96 '> </ a > < a href ='#L96 '> 96</ a >
162+ < a name ='L97 '> </ a > < a href ='#L97 '> 97</ a >
163+ < a name ='L98 '> </ a > < a href ='#L98 '> 98</ a >
164+ < a name ='L99 '> </ a > < a href ='#L99 '> 99</ a >
165+ < a name ='L100 '> </ a > < a href ='#L100 '> 100</ a >
166+ < a name ='L101 '> </ a > < a href ='#L101 '> 101</ a >
167+ < a name ='L102 '> </ a > < a href ='#L102 '> 102</ a >
168+ < a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169+ < a name ='L104 '> </ a > < a href ='#L104 '> 104</ a >
170+ < a name ='L105 '> </ a > < a href ='#L105 '> 105</ a >
171+ < a name ='L106 '> </ a > < a href ='#L106 '> 106</ a >
172+ < a name ='L107 '> </ a > < a href ='#L107 '> 107</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 4x</ span >
173+ < span class ="cline-any cline-yes "> 4x</ span >
174+ < span class ="cline-any cline-yes "> 4x</ span >
175+ < span class ="cline-any cline-yes "> 4x</ span >
176+ < span class ="cline-any cline-yes "> 4x</ span >
177+ < span class ="cline-any cline-yes "> 4x</ span >
178+ < span class ="cline-any cline-yes "> 4x</ span >
179+ < span class ="cline-any cline-yes "> 4x</ span >
180+ < span class ="cline-any cline-yes "> 4x</ span >
181+ < span class ="cline-any cline-yes "> 4x</ span >
182+ < span class ="cline-any cline-yes "> 4x</ span >
183+ < span class ="cline-any cline-yes "> 4x</ span >
184+ < span class ="cline-any cline-yes "> 4x</ span >
185+ < span class ="cline-any cline-yes "> 4x</ span >
186+ < span class ="cline-any cline-yes "> 4x</ span >
187+ < span class ="cline-any cline-yes "> 4x</ span >
188+ < span class ="cline-any cline-yes "> 4x</ span >
189+ < span class ="cline-any cline-yes "> 4x</ span >
190+ < span class ="cline-any cline-yes "> 4x</ span >
191+ < span class ="cline-any cline-yes "> 4x</ span >
192+ < span class ="cline-any cline-yes "> 4x</ span >
193+ < span class ="cline-any cline-yes "> 4x</ span >
194+ < span class ="cline-any cline-yes "> 4x</ span >
195+ < span class ="cline-any cline-yes "> 4x</ span >
196+ < span class ="cline-any cline-yes "> 4x</ span >
197+ < span class ="cline-any cline-yes "> 4x</ span >
198+ < span class ="cline-any cline-yes "> 4x</ span >
199+ < span class ="cline-any cline-yes "> 4x</ span >
200+ < span class ="cline-any cline-yes "> 4x</ span >
201+ < span class ="cline-any cline-yes "> 4x</ span >
202+ < span class ="cline-any cline-yes "> 4x</ span >
203+ < span class ="cline-any cline-yes "> 4x</ span >
204+ < span class ="cline-any cline-yes "> 4x</ span >
205+ < span class ="cline-any cline-yes "> 4x</ span >
206+ < span class ="cline-any cline-yes "> 4x</ span >
207+ < span class ="cline-any cline-yes "> 4x</ span >
208+ < span class ="cline-any cline-yes "> 4x</ span >
209+ < span class ="cline-any cline-yes "> 4x</ span >
210+ < span class ="cline-any cline-yes "> 4x</ span >
211+ < span class ="cline-any cline-yes "> 4x</ span >
212+ < span class ="cline-any cline-yes "> 4x</ span >
213+ < span class ="cline-any cline-yes "> 4x</ span >
214+ < span class ="cline-any cline-yes "> 4x</ span >
215+ < span class ="cline-any cline-yes "> 4x</ span >
216+ < span class ="cline-any cline-yes "> 4x</ span >
217+ < span class ="cline-any cline-yes "> 4x</ span >
218+ < span class ="cline-any cline-yes "> 4x</ span >
219+ < span class ="cline-any cline-yes "> 4x</ span >
220+ < span class ="cline-any cline-yes "> 4x</ span >
221+ < span class ="cline-any cline-yes "> 4x</ span >
222+ < span class ="cline-any cline-yes "> 4x</ span >
223+ < span class ="cline-any cline-yes "> 4x</ span >
224+ < span class ="cline-any cline-yes "> 4x</ span >
225+ < span class ="cline-any cline-yes "> 4x</ span >
226+ < span class ="cline-any cline-yes "> 4x</ span >
227+ < span class ="cline-any cline-yes "> 4x</ span >
228+ < span class ="cline-any cline-yes "> 4x</ span >
229+ < span class ="cline-any cline-yes "> 19611x</ span >
230+ < span class ="cline-any cline-yes "> 19611x</ span >
231+ < span class ="cline-any cline-yes "> 19611x</ span >
232+ < span class ="cline-any cline-yes "> 19611x</ span >
233+ < span class ="cline-any cline-yes "> 19611x</ span >
234+ < span class ="cline-any cline-yes "> 19611x</ span >
235+ < span class ="cline-any cline-yes "> 19611x</ span >
236+ < span class ="cline-any cline-yes "> 19611x</ span >
237+ < span class ="cline-any cline-yes "> 19611x</ span >
238+ < span class ="cline-any cline-yes "> 19611x</ span >
239+ < span class ="cline-any cline-yes "> 19611x</ span >
240+ < span class ="cline-any cline-yes "> 48x</ span >
241+ < span class ="cline-any cline-yes "> 48x</ span >
242+ < span class ="cline-any cline-yes "> 48x</ span >
243+ < span class ="cline-any cline-yes "> 19611x</ span >
244+ < span class ="cline-any cline-yes "> 6x</ span >
245+ < span class ="cline-any cline-yes "> 6x</ span >
246+ < span class ="cline-any cline-yes "> 6x</ span >
247+ < span class ="cline-any cline-yes "> 6x</ span >
248+ < span class ="cline-any cline-yes "> 19611x</ span >
249+ < span class ="cline-any cline-yes "> 9x</ span >
250+ < span class ="cline-any cline-yes "> 9x</ span >
251+ < span class ="cline-any cline-yes "> 9x</ span >
252+ < span class ="cline-any cline-yes "> 19611x</ span >
253+ < span class ="cline-any cline-yes "> 51x</ span >
254+ < span class ="cline-any cline-yes "> 51x</ span >
255+ < span class ="cline-any cline-yes "> 51x</ span >
256+ < span class ="cline-any cline-yes "> 51x</ span >
257+ < span class ="cline-any cline-yes "> 19611x</ span >
258+ < span class ="cline-any cline-yes "> 19611x</ span >
259+ < span class ="cline-any cline-yes "> 9072x</ span >
260+ < span class ="cline-any cline-yes "> 19611x</ span >
261+ < span class ="cline-any cline-yes "> 10539x</ span >
262+ < span class ="cline-any cline-yes "> 10539x</ span >
263+ < span class ="cline-any cline-yes "> 10539x</ span >
264+ < span class ="cline-any cline-yes "> 19611x</ span >
265+ < span class ="cline-any cline-yes "> 19611x</ span >
266+ < span class ="cline-any cline-yes "> 19611x</ span >
267+ < span class ="cline-any cline-yes "> 19611x</ span >
268+ < span class ="cline-any cline-yes "> 19611x</ span >
269+ < span class ="cline-any cline-yes "> 19611x</ span >
270+ < span class ="cline-any cline-yes "> 19611x</ span >
271+ < span class ="cline-any cline-yes "> 19611x</ span >
272+ < span class ="cline-any cline-yes "> 19611x</ span >
273+ < span class ="cline-any cline-yes "> 4x</ span >
274+ < span class ="cline-any cline-yes "> 4x</ span >
275+ < span class ="cline-any cline-yes "> 4x</ span >
276+ < span class ="cline-any cline-yes "> 4x</ span >
277+ < span class ="cline-any cline-yes "> 4x</ span >
200278< span class ="cline-any cline-neutral "> </ span > </ td > < td class ="text "> < pre class ="prettyprint lang-js "> /**
201279* @license Apache-2.0
202280*
@@ -219,10 +297,19 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">com
219297
220298// MODULES //
221299
222- var Complex128 = require( '@stdlib/complex/float64/ctor' );
223- var real = require( '@stdlib/complex/float64/real' );
224- var imag = require( '@stdlib/complex/float64/imag' );
225- var div = require( './main.js' );
300+ var abs = require( '@stdlib/math/base/special/abs' );
301+ var max = require( '@stdlib/math/base/special/max' );
302+ var FLOAT64_BIGGEST = require( '@stdlib/constants/float64/max' );
303+ var FLOAT64_SMALLEST = require( '@stdlib/constants/float64/smallest-normal' );
304+ var EPS = require( '@stdlib/constants/float64/eps' );
305+ var robustInternal = require( './robust_internal.js' );
306+
307+
308+ // VARIABLES //
309+
310+ var LARGE_THRESHOLD = FLOAT64_BIGGEST * 0.5;
311+ var SMALL_THRESHOLD = FLOAT64_SMALLEST * ( 2.0 / EPS );
312+ var RECIP_EPS_SQR = 2.0 / ( EPS * EPS );
226313
227314
228315// MAIN //
@@ -246,17 +333,47 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">com
246333* // returns <Float64Array>[ 5.0, 3.0 ]
247334*/
248335function assign( re1, im1, re2, im2, out, strideOut, offsetOut ) {
249- var ans;
250- var c1;
251- var c2;
336+ var res;
337+ var ab;
338+ var cd;
339+ var s;
340+
341+ ab = max( abs(re1), abs(im1) );
342+ cd = max( abs(re2), abs(im2) );
343+ s = 1.0;
344+
345+ if ( ab >= LARGE_THRESHOLD ) {
346+ re1 *= 0.5;
347+ im1 *= 0.5;
348+ s *= 2.0;
349+ } else if ( ab <= SMALL_THRESHOLD ) {
350+ re1 *= RECIP_EPS_SQR;
351+ im1 *= RECIP_EPS_SQR;
352+ s /= RECIP_EPS_SQR;
353+ }
354+ if ( cd >= LARGE_THRESHOLD ) {
355+ re2 *= 0.5;
356+ im2 *= 0.5;
357+ s *= 0.5;
358+ } else if ( cd <= SMALL_THRESHOLD ) {
359+ re2 *= RECIP_EPS_SQR;
360+ im2 *= RECIP_EPS_SQR;
361+ s *= RECIP_EPS_SQR;
362+ }
363+
364+ if ( abs( im2 ) <= abs( re2 ) ) {
365+ res = robustInternal( re1, im1, re2, im2 );
366+ } else {
367+ res = robustInternal( im1, re1, im2, re2 );
368+ res[ 1 ] *= -1.0;
369+ }
252370
253- c1 = new Complex128( re1, im1 ) ;
254- c2 = new Complex128( re2, im2 ) ;
371+ res[ 0 ] *= s ;
372+ res[ 1 ] *= s ;
255373
256- ans = div( c1, c2 );
374+ out[ offsetOut ] = res[ 0 ];
375+ out[ offsetOut+strideOut ] = res[ 1 ];
257376
258- out[ offsetOut ] = real( ans );
259- out[ offsetOut+strideOut ] = imag( ans );
260377 return out;
261378}
262379
@@ -271,7 +388,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">com
271388 < div class ='footer quiet pad2 space-top1 center small '>
272389 Code coverage generated by
273390 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
274- at 2025-07-30T13:27:05.234Z
391+ at 2025-08-02T13:03:56.047Z
275392 </ div >
276393 < script src ="../../../../../prettify.js "> </ script >
277394 < script >
0 commit comments