# API compatibility report for the libvolk1-dev library between 1.3-3 and 1.4-1 versions on x86_64

Binary
Compatibility Source
Compatibility

## Test Info

Library Name | libvolk1-dev
Version #1 | 1.3-3
Version #2 | 1.4-1
Arch | x86_64
GCC Version | 7
Subject | Binary Compatibility

## Test Results

Total Header Files | 135
Total Libraries | 1
Total Symbols / Types | 614 / 233
Compatibility | 99.8%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 45
Removed Symbols | High | 0
Problems with Data Types | High | 0
Medium | 0
Low | 1
Problems with Symbols | High | 1
Medium | 0
Low | 0
Problems with Constants | Low | 1

## Added Symbols 45

volk.h, libvolk.so.1.4
volk_32f_64f_add_64f [data]
volk_32f_64f_add_64f_a [data]
volk_32f_64f_add_64f_get_func_desc ( )
volk_32f_64f_add_64f_manual ( double* cVector, float const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_32f_64f_add_64f_u [data]
volk_32f_64f_multiply_64f [data]
volk_32f_64f_multiply_64f_a [data]
volk_32f_64f_multiply_64f_get_func_desc ( )
volk_32f_64f_multiply_64f_manual ( double* cVector, float const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_32f_64f_multiply_64f_u [data]
volk_32f_s32f_mod_rangepuppet_32f [data]
volk_32f_s32f_mod_rangepuppet_32f_a [data]
volk_32f_s32f_mod_rangepuppet_32f_get_func_desc ( )
volk_32f_s32f_mod_rangepuppet_32f_manual ( float* output, float const* input, float bound, unsigned int num_points, char const* impl_name )
volk_32f_s32f_mod_rangepuppet_32f_u [data]
volk_32f_s32f_s32f_mod_range_32f [data]
volk_32f_s32f_s32f_mod_range_32f_a [data]
volk_32f_s32f_s32f_mod_range_32f_get_func_desc ( )
volk_32f_s32f_s32f_mod_range_32f_manual ( float* outputVector, float const* inputVector, float const lower_bound, float const upper_bound, unsigned int num_points, char const* impl_name )
volk_32f_s32f_s32f_mod_range_32f_u [data]
volk_32fc_32f_add_32fc [data]
volk_32fc_32f_add_32fc_a [data]
volk_32fc_32f_add_32fc_get_func_desc ( )
volk_32fc_32f_add_32fc_manual ( lv_32fc_t* cVector, lv_32fc_t const* aVector, float const* bVector, unsigned int num_points, char const* impl_name )
volk_32fc_32f_add_32fc_u [data]
volk_32fc_x2_add_32fc [data]
volk_32fc_x2_add_32fc_a [data]
volk_32fc_x2_add_32fc_get_func_desc ( )
volk_32fc_x2_add_32fc_manual ( lv_32fc_t* cVector, lv_32fc_t const* aVector, lv_32fc_t const* bVector, unsigned int num_points, char const* impl_name )
volk_32fc_x2_add_32fc_u [data]
volk_32u_reverse_32u [data]
volk_32u_reverse_32u_a [data]
volk_32u_reverse_32u_get_func_desc ( )
volk_32u_reverse_32u_manual ( uint32_t* out, uint32_t const* in, unsigned int num_points, char const* impl_name )
volk_32u_reverse_32u_u [data]
volk_64f_x2_add_64f [data]
volk_64f_x2_add_64f_a [data]
volk_64f_x2_add_64f_get_func_desc ( )
volk_64f_x2_add_64f_manual ( double* cVector, double const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_64f_x2_add_64f_u [data]
volk_64f_x2_multiply_64f [data]
volk_64f_x2_multiply_64f_a [data]
volk_64f_x2_multiply_64f_get_func_desc ( )
volk_64f_x2_multiply_64f_manual ( double* cVector, double const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_64f_x2_multiply_64f_u [data]
to the top

## Problems with Symbols, High Severity 1

volk.h, libvolk.so.1.3
[+] volk_32f_8u_polarbutterfly_32f_manual ( float* llrs, unsigned char* u, int const frame_size, int const frame_exp, int const stage, int const u_num, int const row, char const* impl_name ) 1
⇣
volk_32f_8u_polarbutterfly_32f_manual ( float* llrs, unsigned char* u, int const frame_exp, int const stage, int const u_num, int const row, char const* impl_name )

| Change | Effect
--- | --- | ---
1 | 3rd middle parameter frame_size has been removed from the calling stack. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

to the top

## Problems with Data Types, Low Severity 1

volk_typedefs.h
[+] typedef p_32f_8u_polarbutterfly_32f 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from void(*)(float*, unsigned char*, int, int, int, int, int) to void(*)(float*, unsigned char*, int, int, int, int). | Replacement of the base data type may indicate a change in its semantic meaning.

[+] affected symbols: 3 (0.5%)
volk_32f_8u_polarbutterfly_32f [data]
Return value is of type 'p_32f_8u_polarbutterfly_32f'.
volk_32f_8u_polarbutterfly_32f_a [data]
Return value is of type 'p_32f_8u_polarbutterfly_32f'.
volk_32f_8u_polarbutterfly_32f_u [data]
Return value is of type 'p_32f_8u_polarbutterfly_32f'.
to the top

## Problems with Constants, Low Severity 1

volk_32f_log2_32f.h
[+] LOG_POLY_DEGREE

| Change | Effect
--- | --- | ---
1 | The constant LOG_POLY_DEGREE with value 6 has been removed. | The value of this constant may no longer be properly handled by new-version library functions.

to the top

## Header Files 135

constants.h
saturation_arithmetic.h
volk.h
volk_16i_32fc_dot_prod_32fc.h
volk_16i_branch_4_state_8.h
volk_16i_convert_8i.h
volk_16i_max_star_16i.h
volk_16i_max_star_horizontal_16i.h
volk_16i_permute_and_scalar_add.h
volk_16i_s32f_convert_32f.h
volk_16i_x4_quad_max_star_16i.h
volk_16i_x5_add_quad_16i_x4.h
volk_16ic_convert_32fc.h
volk_16ic_deinterleave_16i_x2.h
volk_16ic_deinterleave_real_16i.h
volk_16ic_deinterleave_real_8i.h
volk_16ic_magnitude_16i.h
volk_16ic_s32f_deinterleave_32f_x2.h
volk_16ic_s32f_deinterleave_real_32f.h
volk_16ic_s32f_magnitude_32f.h
volk_16ic_x2_dot_prod_16ic.h
volk_16ic_x2_multiply_16ic.h
volk_16u_byteswap.h
volk_16u_byteswappuppet_16u.h
volk_32f_8u_polarbutterfly_32f.h
volk_32f_8u_polarbutterflypuppet_32f.h
volk_32f_accumulator_s32f.h
volk_32f_acos_32f.h
volk_32f_asin_32f.h
volk_32f_atan_32f.h
volk_32f_binary_slicer_32i.h
volk_32f_binary_slicer_8i.h
volk_32f_convert_64f.h
volk_32f_cos_32f.h
volk_32f_expfast_32f.h
volk_32f_index_max_16u.h
volk_32f_index_max_32u.h
volk_32f_invsqrt_32f.h
volk_32f_log2_32f.h
volk_32f_null_32f.h
volk_32f_s32f_32f_fm_detect_32f.h
volk_32f_s32f_calc_spectral_noise_floor_32f.h
volk_32f_s32f_convert_16i.h
volk_32f_s32f_convert_32i.h
volk_32f_s32f_convert_8i.h
volk_32f_s32f_multiply_32f.h
volk_32f_s32f_normalize.h
volk_32f_s32f_power_32f.h
volk_32f_s32f_stddev_32f.h
volk_32f_sin_32f.h
volk_32f_sqrt_32f.h
volk_32f_stddev_and_mean_32f_x2.h
volk_32f_tan_32f.h
volk_32f_tanh_32f.h
volk_32f_x2_add_32f.h
volk_32f_x2_divide_32f.h
volk_32f_x2_dot_prod_16i.h
volk_32f_x2_dot_prod_32f.h
volk_32f_x2_fm_detectpuppet_32f.h
volk_32f_x2_interleave_32fc.h
volk_32f_x2_max_32f.h
volk_32f_x2_min_32f.h
volk_32f_x2_multiply_32f.h
volk_32f_x2_pow_32f.h
volk_32f_x2_s32f_interleave_16ic.h
volk_32f_x2_subtract_32f.h
volk_32f_x3_sum_of_poly_32f.h
volk_32fc_32f_dot_prod_32fc.h
volk_32fc_32f_multiply_32fc.h
volk_32fc_conjugate_32fc.h
volk_32fc_convert_16ic.h
volk_32fc_deinterleave_32f_x2.h
volk_32fc_deinterleave_64f_x2.h
volk_32fc_deinterleave_imag_32f.h
volk_32fc_deinterleave_real_32f.h
volk_32fc_deinterleave_real_64f.h
volk_32fc_index_max_16u.h
volk_32fc_index_max_32u.h
volk_32fc_magnitude_32f.h
volk_32fc_magnitude_squared_32f.h
volk_32fc_s32f_atan2_32f.h
volk_32fc_s32f_deinterleave_real_16i.h
volk_32fc_s32f_magnitude_16i.h
volk_32fc_s32f_power_32fc.h
volk_32fc_s32f_power_spectrum_32f.h
volk_32fc_s32f_x2_power_spectral_density_32f.h
volk_32fc_s32fc_multiply_32fc.h
volk_32fc_s32fc_rotatorpuppet_32fc.h
volk_32fc_s32fc_x2_rotator_32fc.h
volk_32fc_x2_conjugate_dot_prod_32fc.h
volk_32fc_x2_divide_32fc.h
volk_32fc_x2_dot_prod_32fc.h
volk_32fc_x2_multiply_32fc.h
volk_32fc_x2_multiply_conjugate_32fc.h
volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
volk_32fc_x2_square_dist_32f.h
volk_32i_s32f_convert_32f.h
volk_32i_x2_and_32i.h
volk_32i_x2_or_32i.h
volk_32u_byteswap.h
volk_32u_byteswappuppet_32u.h
volk_32u_popcnt.h
volk_32u_popcntpuppet_32u.h
volk_64f_convert_32f.h
volk_64f_x2_max_64f.h
volk_64f_x2_min_64f.h
volk_64u_byteswap.h
volk_64u_byteswappuppet_64u.h
volk_64u_popcnt.h
volk_64u_popcntpuppet_64u.h
volk_8i_convert_16i.h
volk_8i_s32f_convert_32f.h
volk_8ic_deinterleave_16i_x2.h
volk_8ic_deinterleave_real_16i.h
volk_8ic_deinterleave_real_8i.h
volk_8ic_s32f_deinterleave_32f_x2.h
volk_8ic_s32f_deinterleave_real_32f.h
volk_8ic_x2_multiply_conjugate_16ic.h
volk_8ic_x2_s32f_multiply_conjugate_32fc.h
volk_8u_conv_k7_r2puppet_8u.h
volk_8u_x2_encodeframepolar_8u.h
volk_8u_x3_encodepolar_8u_x2.h
volk_8u_x3_encodepolarpuppet_8u.h
volk_8u_x4_conv_k7_r2_8u.h
volk_avx_intrinsics.h
volk_common.h
volk_complex.h
volk_config_fixed.h
volk_cpu.h
volk_malloc.h
volk_neon_intrinsics.h
volk_prefs.h
volk_sse3_intrinsics.h
volk_sse_intrinsics.h
volk_typedefs.h
to the top

## Libraries 1

libvolk.so.1.3
to the top

## Test Info

Library Name | libvolk1-dev
Version #1 | 1.3-3
Version #2 | 1.4-1
Arch | x86_64
Subject | Source Compatibility

## Test Results

Total Header Files | 135
Total Libraries | 1
Total Symbols / Types | 660 / 235
Compatibility | 99.1%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 46
Removed Symbols | High | 5
Problems with Data Types | High | 0
Medium | 0
Low | 1
Problems with Symbols | High | 1
Medium | 0
Low | 0
Problems with Constants | Low | 1
Other Changes in Constants | - | 2

## Added Symbols 46

volk.h
volk_32f_64f_add_64f [data]
volk_32f_64f_add_64f_a [data]
volk_32f_64f_add_64f_get_func_desc ( )
volk_32f_64f_add_64f_manual ( double* cVector, float const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_32f_64f_add_64f_u [data]
volk_32f_64f_multiply_64f [data]
volk_32f_64f_multiply_64f_a [data]
volk_32f_64f_multiply_64f_get_func_desc ( )
volk_32f_64f_multiply_64f_manual ( double* cVector, float const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_32f_64f_multiply_64f_u [data]
volk_32f_s32f_mod_rangepuppet_32f [data]
volk_32f_s32f_mod_rangepuppet_32f_a [data]
volk_32f_s32f_mod_rangepuppet_32f_get_func_desc ( )
volk_32f_s32f_mod_rangepuppet_32f_manual ( float* output, float const* input, float bound, unsigned int num_points, char const* impl_name )
volk_32f_s32f_mod_rangepuppet_32f_u [data]
volk_32f_s32f_s32f_mod_range_32f [data]
volk_32f_s32f_s32f_mod_range_32f_a [data]
volk_32f_s32f_s32f_mod_range_32f_get_func_desc ( )
volk_32f_s32f_s32f_mod_range_32f_manual ( float* outputVector, float const* inputVector, float const lower_bound, float const upper_bound, unsigned int num_points, char const* impl_name )
volk_32f_s32f_s32f_mod_range_32f_u [data]
volk_32fc_32f_add_32fc [data]
volk_32fc_32f_add_32fc_a [data]
volk_32fc_32f_add_32fc_get_func_desc ( )
volk_32fc_32f_add_32fc_manual ( lv_32fc_t* cVector, lv_32fc_t const* aVector, float const* bVector, unsigned int num_points, char const* impl_name )
volk_32fc_32f_add_32fc_u [data]
volk_32fc_x2_add_32fc [data]
volk_32fc_x2_add_32fc_a [data]
volk_32fc_x2_add_32fc_get_func_desc ( )
volk_32fc_x2_add_32fc_manual ( lv_32fc_t* cVector, lv_32fc_t const* aVector, lv_32fc_t const* bVector, unsigned int num_points, char const* impl_name )
volk_32fc_x2_add_32fc_u [data]
volk_32u_reverse_32u [data]
volk_32u_reverse_32u_a [data]
volk_32u_reverse_32u_get_func_desc ( )
volk_32u_reverse_32u_manual ( uint32_t* out, uint32_t const* in, unsigned int num_points, char const* impl_name )
volk_32u_reverse_32u_u [data]
volk_64f_x2_add_64f [data]
volk_64f_x2_add_64f_a [data]
volk_64f_x2_add_64f_get_func_desc ( )
volk_64f_x2_add_64f_manual ( double* cVector, double const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_64f_x2_add_64f_u [data]
volk_64f_x2_multiply_64f [data]
volk_64f_x2_multiply_64f_a [data]
volk_64f_x2_multiply_64f_get_func_desc ( )
volk_64f_x2_multiply_64f_manual ( double* cVector, double const* aVector, double const* bVector, unsigned int num_points, char const* impl_name )
volk_64f_x2_multiply_64f_u [data]
volk_32u_reverse_32u.h
BitReverseTable256 [data]
_ZL18BitReverseTable256
to the top

## Removed Symbols 5

constants.h
volk_available_machines ( )
volk_c_compiler ( )
volk_compiler_flags ( )
volk_prefix ( )
volk_version ( )
to the top

## Problems with Symbols, High Severity 1

volk.h
[+] volk_32f_8u_polarbutterfly_32f_manual ( float* llrs, unsigned char* u, int const frame_size, int const frame_exp, int const stage, int const u_num, int const row, char const* impl_name ) 1
⇣
volk_32f_8u_polarbutterfly_32f_manual ( float* llrs, unsigned char* u, int const frame_exp, int const stage, int const u_num, int const row, char const* impl_name )

| Change | Effect
--- | --- | ---
1 | 3rd middle parameter frame_size has been removed from the calling stack. | Recompilation of a client program may be broken.

to the top

## Problems with Data Types, Low Severity 1

volk_typedefs.h
[+] typedef p_32f_8u_polarbutterfly_32f 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from void(*)(float*, unsigned char*, int, int, int, int, int) to void(*)(float*, unsigned char*, int, int, int, int). | Recompilation of a client program may be broken.

[+] affected symbols: 3 (0.5%)
volk_32f_8u_polarbutterfly_32f [data]
Return value is of type 'p_32f_8u_polarbutterfly_32f'.
volk_32f_8u_polarbutterfly_32f_a [data]
Return value is of type 'p_32f_8u_polarbutterfly_32f'.
volk_32f_8u_polarbutterfly_32f_u [data]
Return value is of type 'p_32f_8u_polarbutterfly_32f'.
to the top

## Problems with Constants, Low Severity 1

volk_32f_log2_32f.h
[+] LOG_POLY_DEGREE

| Change | Effect
--- | --- | ---
1 | The constant LOG_POLY_DEGREE with value 6 has been removed. | Recompilation of a client program may be broken.

to the top

## Other Changes in Constants 2

volk_common.h
[+] __VOLK_ASM

| Change | Effect
--- | --- | ---
1 | The constant __VOLK_ASM with value __asm__ has been added. | No effect.

[+] __VOLK_VOLATILE

| Change | Effect
--- | --- | ---
1 | The constant __VOLK_VOLATILE with value __volatile__ has been added. | No effect.

to the top

## Header Files 135

constants.h
saturation_arithmetic.h
volk.h
volk_16i_32fc_dot_prod_32fc.h
volk_16i_branch_4_state_8.h
volk_16i_convert_8i.h
volk_16i_max_star_16i.h
volk_16i_max_star_horizontal_16i.h
volk_16i_permute_and_scalar_add.h
volk_16i_s32f_convert_32f.h
volk_16i_x4_quad_max_star_16i.h
volk_16i_x5_add_quad_16i_x4.h
volk_16ic_convert_32fc.h
volk_16ic_deinterleave_16i_x2.h
volk_16ic_deinterleave_real_16i.h
volk_16ic_deinterleave_real_8i.h
volk_16ic_magnitude_16i.h
volk_16ic_s32f_deinterleave_32f_x2.h
volk_16ic_s32f_deinterleave_real_32f.h
volk_16ic_s32f_magnitude_32f.h
volk_16ic_x2_dot_prod_16ic.h
volk_16ic_x2_multiply_16ic.h
volk_16u_byteswap.h
volk_16u_byteswappuppet_16u.h
volk_32f_8u_polarbutterfly_32f.h
volk_32f_8u_polarbutterflypuppet_32f.h
volk_32f_accumulator_s32f.h
volk_32f_acos_32f.h
volk_32f_asin_32f.h
volk_32f_atan_32f.h
volk_32f_binary_slicer_32i.h
volk_32f_binary_slicer_8i.h
volk_32f_convert_64f.h
volk_32f_cos_32f.h
volk_32f_expfast_32f.h
volk_32f_index_max_16u.h
volk_32f_index_max_32u.h
volk_32f_invsqrt_32f.h
volk_32f_log2_32f.h
volk_32f_null_32f.h
volk_32f_s32f_32f_fm_detect_32f.h
volk_32f_s32f_calc_spectral_noise_floor_32f.h
volk_32f_s32f_convert_16i.h
volk_32f_s32f_convert_32i.h
volk_32f_s32f_convert_8i.h
volk_32f_s32f_multiply_32f.h
volk_32f_s32f_normalize.h
volk_32f_s32f_power_32f.h
volk_32f_s32f_stddev_32f.h
volk_32f_sin_32f.h
volk_32f_sqrt_32f.h
volk_32f_stddev_and_mean_32f_x2.h
volk_32f_tan_32f.h
volk_32f_tanh_32f.h
volk_32f_x2_add_32f.h
volk_32f_x2_divide_32f.h
volk_32f_x2_dot_prod_16i.h
volk_32f_x2_dot_prod_32f.h
volk_32f_x2_fm_detectpuppet_32f.h
volk_32f_x2_interleave_32fc.h
volk_32f_x2_max_32f.h
volk_32f_x2_min_32f.h
volk_32f_x2_multiply_32f.h
volk_32f_x2_pow_32f.h
volk_32f_x2_s32f_interleave_16ic.h
volk_32f_x2_subtract_32f.h
volk_32f_x3_sum_of_poly_32f.h
volk_32fc_32f_dot_prod_32fc.h
volk_32fc_32f_multiply_32fc.h
volk_32fc_conjugate_32fc.h
volk_32fc_convert_16ic.h
volk_32fc_deinterleave_32f_x2.h
volk_32fc_deinterleave_64f_x2.h
volk_32fc_deinterleave_imag_32f.h
volk_32fc_deinterleave_real_32f.h
volk_32fc_deinterleave_real_64f.h
volk_32fc_index_max_16u.h
volk_32fc_index_max_32u.h
volk_32fc_magnitude_32f.h
volk_32fc_magnitude_squared_32f.h
volk_32fc_s32f_atan2_32f.h
volk_32fc_s32f_deinterleave_real_16i.h
volk_32fc_s32f_magnitude_16i.h
volk_32fc_s32f_power_32fc.h
volk_32fc_s32f_power_spectrum_32f.h
volk_32fc_s32f_x2_power_spectral_density_32f.h
volk_32fc_s32fc_multiply_32fc.h
volk_32fc_s32fc_rotatorpuppet_32fc.h
volk_32fc_s32fc_x2_rotator_32fc.h
volk_32fc_x2_conjugate_dot_prod_32fc.h
volk_32fc_x2_divide_32fc.h
volk_32fc_x2_dot_prod_32fc.h
volk_32fc_x2_multiply_32fc.h
volk_32fc_x2_multiply_conjugate_32fc.h
volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
volk_32fc_x2_square_dist_32f.h
volk_32i_s32f_convert_32f.h
volk_32i_x2_and_32i.h
volk_32i_x2_or_32i.h
volk_32u_byteswap.h
volk_32u_byteswappuppet_32u.h
volk_32u_popcnt.h
volk_32u_popcntpuppet_32u.h
volk_64f_convert_32f.h
volk_64f_x2_max_64f.h
volk_64f_x2_min_64f.h
volk_64u_byteswap.h
volk_64u_byteswappuppet_64u.h
volk_64u_popcnt.h
volk_64u_popcntpuppet_64u.h
volk_8i_convert_16i.h
volk_8i_s32f_convert_32f.h
volk_8ic_deinterleave_16i_x2.h
volk_8ic_deinterleave_real_16i.h
volk_8ic_deinterleave_real_8i.h
volk_8ic_s32f_deinterleave_32f_x2.h
volk_8ic_s32f_deinterleave_real_32f.h
volk_8ic_x2_multiply_conjugate_16ic.h
volk_8ic_x2_s32f_multiply_conjugate_32fc.h
volk_8u_conv_k7_r2puppet_8u.h
volk_8u_x2_encodeframepolar_8u.h
volk_8u_x3_encodepolar_8u_x2.h
volk_8u_x3_encodepolarpuppet_8u.h
volk_8u_x4_conv_k7_r2_8u.h
volk_avx_intrinsics.h
volk_common.h
volk_complex.h
volk_config_fixed.h
volk_cpu.h
volk_malloc.h
volk_neon_intrinsics.h
volk_prefs.h
volk_sse3_intrinsics.h
volk_sse_intrinsics.h
volk_typedefs.h
to the top

## Libraries 1

libvolk.so.1.3
to the top