/*--------------------------------------------------------------------------
   Author: Thomas Nowotny
  
   Institute: Center for Computational Neuroscience and Robotics
              University of Sussex
	     Falmer, Brighton BN1 9QJ, UK 
  
   email to:  T.Nowotny@sussex.ac.uk
  
   initial version: 2007-02-22
  
--------------------------------------------------------------------------*/


#ifndef LINEAR_REGRESS_CC
#define LINEAR_REGRESS_CC

#include <cmath>

double linear_regress_slope(double *x, double ***y, int j, int n)
{
  double xsum= 0.0, ysum= 0.0, xysum= 0.0, xsqsum= 0.0;
  double slope;

  if (n > 1) {
    for (int i= 0; i < n; i++) {
      xsum+= x[i];
      ysum+= y[i][j][0];
      xysum+= x[i]*y[i][j][0];
      xsqsum+= x[i]*x[i];
    }
    slope= n*(xysum-xsum*ysum)/(n*xsqsum - xsum*xsum);
    return slope;
  }
  return 0.0;
}

#endif