Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Side by Side Diff: celt/mathops.c

Issue 28553003: Updating Opus to a pre-release of 1.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/opus
Patch Set: Removing failing file Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « celt/mathops.h ('k') | celt/mdct.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2002-2008 Jean-Marc Valin 1 /* Copyright (c) 2002-2008 Jean-Marc Valin
2 Copyright (c) 2007-2008 CSIRO 2 Copyright (c) 2007-2008 CSIRO
3 Copyright (c) 2007-2009 Xiph.Org Foundation 3 Copyright (c) 2007-2009 Xiph.Org Foundation
4 Written by Jean-Marc Valin */ 4 Written by Jean-Marc Valin */
5 /** 5 /**
6 @file mathops.h 6 @file mathops.h
7 @brief Various math functions 7 @brief Various math functions
8 */ 8 */
9 /* 9 /*
10 Redistribution and use in source and binary forms, with or without 10 Redistribution and use in source and binary forms, with or without
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 116
117 /** Sqrt approximation (QX input, QX/2 output) */ 117 /** Sqrt approximation (QX input, QX/2 output) */
118 opus_val32 celt_sqrt(opus_val32 x) 118 opus_val32 celt_sqrt(opus_val32 x)
119 { 119 {
120 int k; 120 int k;
121 opus_val16 n; 121 opus_val16 n;
122 opus_val32 rt; 122 opus_val32 rt;
123 static const opus_val16 C[5] = {23175, 11561, -3011, 1699, -664}; 123 static const opus_val16 C[5] = {23175, 11561, -3011, 1699, -664};
124 if (x==0) 124 if (x==0)
125 return 0; 125 return 0;
126 else if (x>=1073741824)
127 return 32767;
126 k = (celt_ilog2(x)>>1)-7; 128 k = (celt_ilog2(x)>>1)-7;
127 x = VSHR32(x, 2*k); 129 x = VSHR32(x, 2*k);
128 n = x-32768; 130 n = x-32768;
129 rt = ADD16(C[0], MULT16_16_Q15(n, ADD16(C[1], MULT16_16_Q15(n, ADD16(C[2], 131 rt = ADD16(C[0], MULT16_16_Q15(n, ADD16(C[1], MULT16_16_Q15(n, ADD16(C[2],
130 MULT16_16_Q15(n, ADD16(C[3], MULT16_16_Q15(n, (C[4]))))))))); 132 MULT16_16_Q15(n, ADD16(C[3], MULT16_16_Q15(n, (C[4])))))))));
131 rt = VSHR32(rt,7-k); 133 rt = VSHR32(rt,7-k);
132 return rt; 134 return rt;
133 } 135 }
134 136
135 #define L1 32767 137 #define L1 32767
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 neatly compensates for truncation error in the rest of the process. */ 199 neatly compensates for truncation error in the rest of the process. */
198 r = SUB16(r, ADD16(1, MULT16_16_Q15(r, 200 r = SUB16(r, ADD16(1, MULT16_16_Q15(r,
199 ADD16(MULT16_16_Q15(r, n), ADD16(r, -32768))))); 201 ADD16(MULT16_16_Q15(r, n), ADD16(r, -32768)))));
200 /* r is now the Q15 solution to 2/(n+1), with a maximum relative error 202 /* r is now the Q15 solution to 2/(n+1), with a maximum relative error
201 of 7.05346E-5, a (relative) RMSE of 2.14418E-5, and a peak absolute 203 of 7.05346E-5, a (relative) RMSE of 2.14418E-5, and a peak absolute
202 error of 1.24665/32768. */ 204 error of 1.24665/32768. */
203 return VSHR32(EXTEND32(r),i-16); 205 return VSHR32(EXTEND32(r),i-16);
204 } 206 }
205 207
206 #endif 208 #endif
OLDNEW
« no previous file with comments | « celt/mathops.h ('k') | celt/mdct.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698