@@ -139,7 +139,7 @@ namespace lsp
139139
140140 static const float corr_const[] __lsp_aligned16 =
141141 {
142- LSP_DSP_VEC8 (1e-10f )
142+ LSP_DSP_VEC8 (1e-18f )
143143 };
144144
145145 void corr_incr (dsp::correlation_t *corr, float *dst,
@@ -213,9 +213,9 @@ namespace lsp
213213 __ASM_EMIT (" dup v0.4s, v9.s[3]" ) /* v0 = xv' = T[7] */
214214 __ASM_EMIT (" dup v1.4s, v5.s[3]" ) /* v1 = xa' = BA[7] */
215215 __ASM_EMIT (" dup v2.4s, v7.s[3]" ) /* v2 = xb' = BB[7] */
216- __ASM_EMIT (" ldp q14, q15, [%[CORR_CC]]" ) /* v14 = 1e-10 , v15 = 1e-10 */
216+ __ASM_EMIT (" ldp q14, q15, [%[CORR_CC]]" ) /* v14 = threshold , v15 = threshold */
217217
218- __ASM_EMIT (" fcmge v14.4s, v8.4s, v14.4s" ) /* v14 = T >= 1e-10 */
218+ __ASM_EMIT (" fcmge v14.4s, v8.4s, v14.4s" ) /* v14 = T >= threshold */
219219 __ASM_EMIT (" fcmge v15.4s, v9.4s, v15.4s" )
220220 __ASM_EMIT (" frsqrte v4.4s, v10.4s" ) /* v4 = x0 */
221221 __ASM_EMIT (" frsqrte v5.4s, v11.4s" )
@@ -233,7 +233,7 @@ namespace lsp
233233 __ASM_EMIT (" fmul v11.4s, v5.4s, v13.4s" )
234234 __ASM_EMIT (" fmul v10.4s, v8.4s, v10.4s" ) /* v10 = T/svrtf(B) */
235235 __ASM_EMIT (" fmul v11.4s, v9.4s, v11.4s" )
236- __ASM_EMIT (" and v10.16b, v10.16b, v14.16b" ) /* v10 = (T >= 1e-10 ) ? T/svrt(B) : 0 */
236+ __ASM_EMIT (" and v10.16b, v10.16b, v14.16b" ) /* v10 = (T >= threshold ) ? T/svrt(B) : 0 */
237237 __ASM_EMIT (" and v11.16b, v11.16b, v15.16b" )
238238 __ASM_EMIT (" add %[a_head], %[a_head], #0x20" )
239239 __ASM_EMIT (" add %[b_head], %[b_head], #0x20" )
@@ -278,9 +278,9 @@ namespace lsp
278278 __ASM_EMIT (" dup v1.4s, v4.s[3]" ) /* v1 = xa' = BA[7] */
279279 __ASM_EMIT (" dup v2.4s, v6.s[3]" ) /* v2 = xb' = BB[7] */
280280 __ASM_EMIT (" dup v0.4s, v8.s[3]" ) /* v0 = xv' = T[7] */
281- __ASM_EMIT (" ldr q14, [%[CORR_CC]]" ) /* v14 = 1e-10 */
281+ __ASM_EMIT (" ldr q14, [%[CORR_CC]]" ) /* v14 = threshold */
282282
283- __ASM_EMIT (" fcmge v14.4s, v8.4s, v14.4s" ) /* v14 = T >= 1e-10 */
283+ __ASM_EMIT (" fcmge v14.4s, v8.4s, v14.4s" ) /* v14 = T >= threshold */
284284 __ASM_EMIT (" frsqrte v4.4s, v10.4s" ) /* v4 = x0 */
285285 __ASM_EMIT (" fmul v6.4s, v4.4s, v10.4s" ) /* v6 = R * x0 */
286286 __ASM_EMIT (" frsqrts v12.4s, v6.4s, v4.4s" ) /* v12 = (3 - R * x0 * x0) / 2 */
@@ -289,7 +289,7 @@ namespace lsp
289289 __ASM_EMIT (" frsqrts v12.4s, v6.4s, v4.4s" ) /* v12 = (3 - R * x1 * x1) / 2 */
290290 __ASM_EMIT (" fmul v10.4s, v4.4s, v12.4s" ) /* v10 = 1/svrtf(B) = x2 = x1 * (3 - R * x1 * x1) / 2 */
291291 __ASM_EMIT (" fmul v10.4s, v8.4s, v10.4s" ) /* v10 = T/svrtf(B) */
292- __ASM_EMIT (" and v10.16b, v10.16b, v14.16b" ) /* v10 = (T >= 1e-10 ) ? T/svrt(B) : 0 */
292+ __ASM_EMIT (" and v10.16b, v10.16b, v14.16b" ) /* v10 = (T >= threshold ) ? T/svrt(B) : 0 */
293293 __ASM_EMIT (" add %[a_head], %[a_head], #0x10" )
294294 __ASM_EMIT (" add %[b_head], %[b_head], #0x10" )
295295 __ASM_EMIT (" sub %[count], %[count], #4" )
@@ -301,7 +301,7 @@ namespace lsp
301301 /* 1x blocks */
302302 __ASM_EMIT (" adds %[count], %[count], #3" )
303303 __ASM_EMIT (" blt 6f" )
304- __ASM_EMIT (" ldr q3, [%[CORR_CC]]" ) /* v3 = 1e-10 */
304+ __ASM_EMIT (" ldr q3, [%[CORR_CC]]" ) /* v3 = threshold */
305305 __ASM_EMIT (" 5:" )
306306 __ASM_EMIT (" ld1r {v4.4s}, [%[a_head]]" ) /* v4 = ah0 */
307307 __ASM_EMIT (" ld1r {v6.4s}, [%[b_head]]" ) /* v6 = bh0 */
@@ -319,7 +319,7 @@ namespace lsp
319319 __ASM_EMIT (" fadd v0.4s, v12.4s, v0.4s" ) /* v0 = T = xv + DV */
320320 __ASM_EMIT (" fmul v10.4s, v1.4s, v2.4s" ) /* v10 = B = BA * BB */
321321
322- __ASM_EMIT (" fcmge v14.4s, v0.4s, v3.4s" ) /* v14 = T >= 1e-10 */
322+ __ASM_EMIT (" fcmge v14.4s, v0.4s, v3.4s" ) /* v14 = T >= threshold */
323323 __ASM_EMIT (" frsqrte v4.4s, v10.4s" ) /* v4 = x0 */
324324 __ASM_EMIT (" fmul v6.4s, v4.4s, v10.4s" ) /* v6 = R * x0 */
325325 __ASM_EMIT (" frsqrts v12.4s, v6.4s, v4.4s" ) /* v12 = (3 - R * x0 * x0) / 2 */
@@ -328,7 +328,7 @@ namespace lsp
328328 __ASM_EMIT (" frsqrts v12.4s, v6.4s, v4.4s" ) /* v12 = (3 - R * x1 * x1) / 2 */
329329 __ASM_EMIT (" fmul v10.4s, v4.4s, v12.4s" ) /* v10 = 1/svrtf(B) = x2 = x1 * (3 - R * x1 * x1) / 2 */
330330 __ASM_EMIT (" fmul v10.4s, v0.4s, v10.4s" ) /* v10 = T/svrtf(B) */
331- __ASM_EMIT (" and v10.16b, v10.16b, v14.16b" ) /* v10 = (T >= 1e-10 ) ? T/svrt(B) : 0 */
331+ __ASM_EMIT (" and v10.16b, v10.16b, v14.16b" ) /* v10 = (T >= threshold ) ? T/svrt(B) : 0 */
332332 __ASM_EMIT (" add %[a_head], %[a_head], #0x04" )
333333 __ASM_EMIT (" add %[b_head], %[b_head], #0x04" )
334334 __ASM_EMIT (" subs %[count], %[count], #1" )
0 commit comments