]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/lls.c
Document av_gcd().
[ffmpeg] / libavutil / lls.c
index 43c6790d7dd49472e4749f28c8468c7ae2b52359..047f976c3f0e37568d20182b921463252d88e46e 100644 (file)
@@ -21,7 +21,7 @@
  */
 
 /**
- * @file lls.c
+ * @file libavutil/lls.c
  * linear least squares model
  */
 
 
 #include "lls.h"
 
-#ifdef TEST
-#define av_log(a,b,...) printf(__VA_ARGS__)
-#endif
-
 void av_init_lls(LLSModel *m, int indep_count){
     memset(m, 0, sizeof(LLSModel));
 
@@ -53,8 +49,8 @@ void av_update_lls(LLSModel *m, double *var, double decay){
 
 void av_solve_lls(LLSModel *m, double threshold, int min_order){
     int i,j,k;
-    double (*factor)[MAX_VARS+1]= &m->covariance[1][0];
-    double (*covar )[MAX_VARS+1]= &m->covariance[1][1];
+    double (*factor)[MAX_VARS+1]= (void*)&m->covariance[1][0];
+    double (*covar )[MAX_VARS+1]= (void*)&m->covariance[1][1];
     double  *covar_y            =  m->covariance[0];
     int count= m->indep_count;
 
@@ -122,25 +118,15 @@ int main(void){
     for(i=0; i<100; i++){
         double var[4];
         double eval;
-#if 0
-        var[1] = rand() / (double)RAND_MAX;
-        var[2] = rand() / (double)RAND_MAX;
-        var[3] = rand() / (double)RAND_MAX;
-
-        var[2]= var[1] + var[3]/2;
-
-        var[0] = var[1] + var[2] + var[3] +  var[1]*var[2]/100;
-#else
         var[0] = (rand() / (double)RAND_MAX - 0.5)*2;
         var[1] = var[0] + rand() / (double)RAND_MAX - 0.5;
         var[2] = var[1] + rand() / (double)RAND_MAX - 0.5;
         var[3] = var[2] + rand() / (double)RAND_MAX - 0.5;
-#endif
         av_update_lls(&m, var, 0.99);
         av_solve_lls(&m, 0.001, 0);
         for(order=0; order<3; order++){
             eval= av_evaluate_lls(&m, var+1, order);
-            av_log(NULL, AV_LOG_DEBUG, "real:%f order:%d pred:%f var:%f coeffs:%f %f %f\n",
+            printf("real:%9f order:%d pred:%9f var:%f coeffs:%f %9f %9f\n",
                 var[0], order, eval, sqrt(m.variance[order] / (i+1)),
                 m.coeff[order][0], m.coeff[order][1], m.coeff[order][2]);
         }