[xiph-commits] r17079 - trunk/vorbis/lib

xiphmont at svn.xiph.org xiphmont at svn.xiph.org
Thu Mar 25 23:51:41 PDT 2010


Author: xiphmont
Date: 2010-03-25 23:51:41 -0700 (Thu, 25 Mar 2010)
New Revision: 17079

Modified:
   trunk/vorbis/lib/floor1.c
Log:
OK, desired floor fit behavior settled


Modified: trunk/vorbis/lib/floor1.c
===================================================================
--- trunk/vorbis/lib/floor1.c	2010-03-26 06:39:18 UTC (rev 17078)
+++ trunk/vorbis/lib/floor1.c	2010-03-26 06:51:41 UTC (rev 17079)
@@ -470,27 +470,20 @@
 
 static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1,
                     vorbis_info_floor1 *info){
-  double weight;
-  double xa=0,ya=0,x2a=0,y2a=0,xya=0,an=0;
   double xb=0,yb=0,x2b=0,y2b=0,xyb=0,bn=0;
   int i;
   int x0=a[0].x0;
   int x1=a[fits-1].x1;
 
   for(i=0;i<fits;i++){
-    xa+=a[i].xa;
-    ya+=a[i].ya;
-    x2a+=a[i].x2a;
-    y2a+=a[i].y2a;
-    xya+=a[i].xya;
-    an+=a[i].an;
+    double weight = (a[i].bn+a[i].an)*info->twofitweight/(a[i].an+1)+1.;
 
-    xb+=a[i].xb;
-    yb+=a[i].yb;
-    x2b+=a[i].x2b;
-    y2b+=a[i].y2b;
-    xyb+=a[i].xyb;
-    bn+=a[i].bn;
+    xb+=a[i].xb + a[i].xa * weight;
+    yb+=a[i].yb + a[i].ya * weight;
+    x2b+=a[i].x2b + a[i].x2a * weight;
+    y2b+=a[i].y2b + a[i].y2a * weight;
+    xyb+=a[i].xyb + a[i].xya * weight;
+    bn+=a[i].bn + a[i].an * weight;
   }
 
   if(*y0>=0){
@@ -511,14 +504,6 @@
     bn++;
   }
 
-  weight = (bn+an)*info->twofitweight/(an+1)+1.;
-  xb += xa * weight;
-  yb += ya * weight;
-  x2b += x2a * weight;
-  y2b += y2a * weight;
-  xyb += xya * weight;
-  bn += an * weight;
-
   {
     double denom=(bn*x2b-xb*xb);
 



More information about the commits mailing list