50      if (
distance(__begin, __end) >= NUMBER_OF_PARAMETERS) {
 
   55        V.resize(NUMBER_OF_PARAMETERS);
 
   60        this->xmin = i->getX();  advance(i, 
distance(__begin, __end) - 1);
 
   61        this->xmax = i->getX();
 
   63        for (i = __begin; i != __end; ++i) {
 
   65          const double z = this->getX(i->getX());
 
   67          for (
size_t n = 0; n <= N; ++n) {
 
   68            h[n] = legendre(n, z);
 
   71          for (
size_t row = 0; row <= N; ++row) {
 
   73            V(row, row) += h[row] * h[row];
 
   74            Y[row]      += h[row] * i->getY();
 
   76            for (
size_t col = 0; col != row; ++col) {
 
   77              V(row, col) += h[row] * h[col];
 
   82        for (
size_t row = 0; row <= N; ++row) {
 
   83          for (
size_t col = 0; col != row; ++col) {
 
   84            V(col, row) = V(row, col);
 
   90        for (
size_t row = 0; row <= N; ++row) {
 
   94          for (
size_t col = 0; col <= N; ++col) {
 
   95            (*this)[row] += V(row, col) * Y[col];
 
  100        throw JValueOutOfRange(
"JEstimator<JLegendre>::JEstimator(): Not enough data points.");