LCOV - code coverage report
Current view: top level - lib_lc3plus - basop_mpy_lc3plus.c (source / functions) Hit Total Coverage
Test: Coverage on main -- dec/rend @ 633e3f2e309758d10805ef21e0436356fe719b7a Lines: 0 32 0.0 %
Date: 2025-08-23 01:22:27 Functions: 0 10 0.0 %

          Line data    Source code
       1             : /******************************************************************************
       2             : *                        ETSI TS 103 634 V1.5.1                               *
       3             : *              Low Complexity Communication Codec Plus (LC3plus)              *
       4             : *                                                                             *
       5             : * Copyright licence is solely granted through ETSI Intellectual Property      *
       6             : * Rights Policy, 3rd April 2019. No patent licence is granted by implication, *
       7             : * estoppel or otherwise.                                                      *
       8             : ******************************************************************************/
       9             : 
      10             : #include "defines.h"
      11             : 
      12             : #include "functions.h"
      13             : 
      14             : #ifdef ENABLE_HR_MODE
      15           0 : Word32 Mpy_32_32_0(Word32 x, Word32 y)
      16             : {
      17             :   Word32 z;
      18             : 
      19           0 :   z = L_shr(L_add(Mpy_32_32_lc3plus(x, y),1), 1);
      20             :   
      21           0 :   return (z);
      22             : }
      23             : 
      24           0 : Word32 Mpy_32_16_0(Word32 x, Word16 y)
      25             : {
      26             :   Word32 z;
      27             : 
      28           0 :   z = L_shr(L_add(Mpy_32_16_lc3plus(x, y),1), 1);
      29             :   
      30           0 :   return (z);
      31             : }
      32             : #endif
      33             : 
      34           0 : Word32 Mpy_32_16_lc3plus(Word32 x, Word16 y)
      35             : {
      36             :     Word32  mh;
      37             :     UWord16 ml;
      38             : 
      39           0 :     Mpy_32_16_ss(x, y, &mh, &ml);
      40             : 
      41           0 :     return (mh);
      42             : }
      43             : 
      44             : 
      45           0 : Word32 Mpy_32_32_lc3plus(Word32 x, Word32 y)
      46             : {
      47             :     Word32  mh;
      48             :     UWord32 ml;
      49             : 
      50           0 :     Mpy_32_32_ss(x, y, &mh, &ml);
      51             : 
      52           0 :     return (mh);
      53             : }
      54             : 
      55             : 
      56           0 : void cplxMpy_32_16(Word32 *c_Re, Word32 *c_Im, const Word32 a_Re, const Word32 a_Im, const Word16 b_Re,
      57             :                    const Word16 b_Im)
      58             : {
      59           0 :     *c_Re = L_sub(Mpy_32_16_lc3plus(a_Re, b_Re), Mpy_32_16_lc3plus(a_Im, b_Im)); move32();
      60           0 :     *c_Im = L_add(Mpy_32_16_lc3plus(a_Re, b_Im), Mpy_32_16_lc3plus(a_Im, b_Re)); move32();
      61           0 : }
      62             : 
      63           0 : void cplxMpy_32_32(Word32 *c_Re, Word32 *c_Im, const Word32 a_Re, const Word32 a_Im, const Word32 b_Re,
      64             :                    const Word32 b_Im)
      65             : {
      66           0 :     *c_Re = L_sub(Mpy_32_32_lc3plus(a_Re, b_Re), Mpy_32_32_lc3plus(a_Im, b_Im)); move32();
      67           0 :     *c_Im = L_add(Mpy_32_32_lc3plus(a_Re, b_Im), Mpy_32_32_lc3plus(a_Im, b_Re)); move32();
      68           0 : }
      69             : 
      70             : #ifdef ENABLE_HR_MODE
      71           0 : Word32 Mac_32_16_0(Word32 z, Word32 x, Word16 y)
      72             : {
      73           0 :   z = L_add(z, Mpy_32_16_0(x, y));
      74             : 
      75           0 :   return (z);
      76             : }
      77             : 
      78           0 : Word32 Mac_32_32_0(Word32 z, Word32 x, Word32 y)
      79             : {
      80           0 :   z = L_add(z, Mpy_32_32_0(x, y));
      81             : 
      82           0 :   return (z);
      83             : }
      84             : 
      85           0 : Word32 Msu_32_16_0(Word32 z, Word32 x, Word16 y)
      86             : {
      87           0 :   z = L_sub(z, Mpy_32_16_0(x, y));
      88             : 
      89           0 :   return (z);
      90             : }
      91             : 
      92           0 : Word32 Msu_32_32_0(Word32 z, Word32 x, Word32 y)
      93             : {
      94           0 :   z = L_sub(z, Mpy_32_32_0(x, y));
      95             : 
      96           0 :   return (z);
      97             : }
      98             : 
      99             : #endif /* #ifdef ENABLE_HR_MODE */

Generated by: LCOV version 1.14