added a tiny offset to protect against a log(0) error, in response to seg fault repor...
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 1 Oct 2010 08:13:58 +0000 (08:13 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 1 Oct 2010 08:13:58 +0000 (08:13 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@199 01035d8c-6547-0410-b346-abe4f91aad63

codec2/src/interp.c

index ff7faacb6771d9b440ac0cd57fd70224a41a4d07..a0dc762cf0132b048268a3e8d23d0b30a521648e 100644 (file)
@@ -108,13 +108,14 @@ float sample_log_amp(MODEL *model, float w)
     assert(f <= 1.0);
 
     if (m < 1) {
-       log_amp = f*log10(model->A[1]);
+       log_amp = f*log10(model->A[1] + 1E-6);
     }
     else if ((m+1) > model->L) {
-       log_amp = (1.0-f)*log10(model->A[model->L]);
+       log_amp = (1.0-f)*log10(model->A[model->L] + 1E-6);
     }
     else {
-       log_amp = (1.0-f)*log10(model->A[m]) + f*log10(model->A[m+1]);
+       log_amp = (1.0-f)*log10(model->A[m] + 1E-6) + 
+                  f*log10(model->A[m+1] + 1E-6);
     }
 
     return log_amp;