1 /* 2 ** Copyright 2003-2010, VisualOn, Inc. 3 ** 4 ** Licensed under the Apache License, Version 2.0 (the "License"); 5 ** you may not use this file except in compliance with the License. 6 ** You may obtain a copy of the License at 7 ** 8 ** http://www.apache.org/licenses/LICENSE-2.0 9 ** 10 ** Unless required by applicable law or agreed to in writing, software 11 ** distributed under the License is distributed on an "AS IS" BASIS, 12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 ** See the License for the specific language governing permissions and 14 ** limitations under the License. 15 */ 16 17 /*********************************************************************** 18 * File: util.c * 19 * * 20 * Description: Reset and Copy buffer * 21 * * 22 ************************************************************************/ 23 24 #include "typedef.h" 25 #include "basic_op.h" 26 27 /*********************************************************************** 28 * Function: Set_zero() * 29 * Description: Set vector x[] to zero * 30 ************************************************************************/ 31 32 void Set_zero( 33 Word16 x[], /* (o) : vector to clear */ 34 Word16 L /* (i) : length of vector */ 35 ) 36 { 37 Word32 num = (Word32)L; 38 while (num > 0) { 39 *x++ = 0; 40 --num; 41 } 42 } 43 44 45 /********************************************************************* 46 * Function: Copy() * 47 * * 48 * Description: Copy vector x[] to y[] * 49 *********************************************************************/ 50 51 void Copy( 52 Word16 x[], /* (i) : input vector */ 53 Word16 y[], /* (o) : output vector */ 54 Word16 L /* (i) : vector length */ 55 ) 56 { 57 Word32 temp1,temp2,num; 58 if (L <= 0) { 59 return; 60 } 61 if(L&1) 62 { 63 temp1 = *x++; 64 *y++ = temp1; 65 } 66 num = (Word32)(L>>1); 67 while (num > 0) { 68 temp1 = *x++; 69 temp2 = *x++; 70 *y++ = temp1; 71 *y++ = temp2; 72 --num; 73 } 74 } 75 76 77 78