Displaying 5 results from an estimated 5 matches for "xy1_c".
2017 Jun 06
3
celt_inner_prod() and dual_inner_prod() NEON intrinsics
...f it's too late for 1.2 release.
Assuming there's no issue with the patches, next week isn't too late.
Also, I've started looking at your patches. So far there's one thing
that puzzles me a bit. In the OPUS_CHECK_ASM section of patch 0004, you
have:
+ celt_assert(ABS32(xy1_c - *xy1) <= VERY_SMALL);
Given the normal range of the values (the xy values are often much
larger than one) and the precision involved here (24-bit mantissa), it
seems like this test can only succeed if the two values are actually
equal. Is the float patch actually bit-exact? If so, then maybe...
2017 Jun 06
4
Antw: Re: celt_inner_prod() and dual_inner_prod() NEON intrinsics
...'s no issue with the patches, next week isn't too late.
>>
>> Also, I've started looking at your patches. So far there's one thing
>> that puzzles me a bit. In the OPUS_CHECK_ASM section of patch 0004, you
>> have:
>>
>> + celt_assert(ABS32(xy1_c - *xy1) <= VERY_SMALL);
>>
>> Given the normal range of the values (the xy values are often much
>> larger than one) and the precision involved here (24-bit mantissa), it
>> seems like this test can only succeed if the two values are actually
>> equal. Is the float...
2017 Jun 06
0
celt_inner_prod() and dual_inner_prod() NEON intrinsics
Thank Ulrich!
Yes, using
celt_assert(1.0 + celt_inner_prod_neon_float_c_simulation(x, y, N)
== 1.0 + xy);
celt_assert(1.0 + xy1_c == 1.0 + *xy1);
celt_assert(1.0 + xy2_c == 1.0 + *xy2);
can avoid the useage of VERY_SMALL.
Hi Jean-Marc,
I added
{
const opus_val32 xy_c = celt_inner_prod_neon_float_c_simulation(x,
y, N);
const int32_t *x_bin = (int32_t*)x;
const int32_t *y_bin = (int32_t*)y;...
2017 Jun 06
0
celt_inner_prod() and dual_inner_prod() NEON intrinsics
...>
> Assuming there's no issue with the patches, next week isn't too late.
>
> Also, I've started looking at your patches. So far there's one thing
> that puzzles me a bit. In the OPUS_CHECK_ASM section of patch 0004, you
> have:
>
> + celt_assert(ABS32(xy1_c - *xy1) <= VERY_SMALL);
>
> Given the normal range of the values (the xy values are often much
> larger than one) and the precision involved here (24-bit mantissa), it
> seems like this test can only succeed if the two values are actually
> equal. Is the float patch actually bit-e...
2017 Jun 05
4
celt_inner_prod() and dual_inner_prod() NEON intrinsics
Hi Jean-Marc,
I attached the new version in inner_prod_5patches_v2.zip which synced to
the current master.
For fixed-point ARM, only 0003-Optimize-fixed-point-celt
_inner_prod-and-dual_inner_.patch changes the performance.
For floating-point ARM, only 0004-Optimize-floating-point-c
elt_inner_prod-and-dual_inn.patch changes the performance.
Patch 1 and 2 are code clean-up and can only affect x86