mat_lib.c
上传用户:luckfish
上传日期:2021-12-16
资源大小:77k
文件大小:2k
源码类别:

语音压缩

开发平台:

Visual C++

  1. /*
  2. 2.4 kbps MELP Proposed Federal Standard speech coder
  3. version 1.2
  4. Copyright (c) 1996, Texas Instruments, Inc.  
  5. Texas Instruments has intellectual property rights on the MELP
  6. algorithm.  The Texas Instruments contact for licensing issues for
  7. commercial and non-government use is William Gordon, Director,
  8. Government Contracts, Texas Instruments Incorporated, Semiconductor
  9. Group (phone 972 480 7442).
  10. */
  11. /*
  12.   mat_lib.c: Matrix and vector manipulation library
  13. */
  14. #include "spbstd.h"
  15. #include "mat.h"
  16. /* V_ADD- vector addition */
  17. float *v_add(float *v1,float *v2,int n)
  18. {
  19.     int i;
  20.     for(i=0; i < n; i++)
  21.         v1[i] += v2[i];
  22.     return(v1);
  23. }
  24. /* V_EQU- vector equate */
  25. float *v_equ(float *v1,float *v2,int n)
  26. {
  27.     int i;
  28.     for(i=0; i < n; i++)
  29.         v1[i] = v2[i];
  30.     return(v1);
  31. }
  32. int *v_equ_int(int *v1,int *v2,int n)
  33. {
  34.     int i;
  35.     for(i=0; i < n; i++)
  36.         v1[i] = v2[i];
  37.     return(v1);
  38. }
  39. /* V_INNER- inner product */
  40. float v_inner(float *v1,float *v2,int n)
  41. {
  42.     int i;
  43.     float innerprod;
  44.     for(i=0,innerprod=0.0; i < n; i++)
  45.         innerprod += v1[i] * v2[i];
  46.     return(innerprod);
  47. }
  48. /* v_magsq - sum of squares */
  49. float v_magsq(float *v,int n)
  50. {
  51.     int i;
  52.     float magsq;
  53.     for(i=0,magsq=0.0; i < n; i++)
  54.         magsq += v[i] * v[i];
  55.     return(magsq);
  56. } /* V_MAGSQ */
  57. /* V_SCALE- vector scale */
  58. float *v_scale(float *v,float scale,int n)
  59. {
  60.     int i;
  61.     for(i=0; i < n; i++)
  62.         v[i] *= scale;
  63.     return(v);
  64. }
  65. /* V_SUB- vector difference */
  66. float *v_sub(float *v1,float *v2,int n)
  67. {
  68.     int i;
  69.     for(i=0; i < n; i++)
  70.         v1[i] -= v2[i];
  71.     return(v1);
  72. }
  73. /* v_zap - clear vector */
  74. float *v_zap(float *v,int n)
  75. {
  76.     int i;
  77.     for(i=0; i < n; i++)
  78.         v[i] = 0.0;
  79.     return(v);
  80. } /* V_ZAP */
  81. int *v_zap_int(int *v,int n)
  82. {
  83.     int i;
  84.     for(i=0; i < n; i++)
  85.         v[i] = 0;
  86.     return(v);
  87. } /* V_ZAP */